/**
 * HYROX - Layout, Hub, Training, Guides & Equipment
 * Missing class definitions for base layout, hub.php, training/*, guides/*
 *
 * Scope: .entry-content .hx-* (matches hyrox-missing.css pattern)
 * Tokens: inherits from .hx-app in hyrox.css (--hx-primary, --hx-dark-*, etc.)
 *
 * @package Hyrox
 * @since 1.0.0
 */

/* ==========================================================================
   NAV — Dropdown, Hamburger, Mobile Inner
   ========================================================================== */

/* Dropdown trigger button (desktop nav) */
.entry-content .hx-nav-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.entry-content .hx-nav-dropdown-trigger svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    transition: transform 150ms ease;
}

.entry-content .hx-nav-dropdown[data-open="true"] .hx-nav-dropdown-trigger svg {
    transform: rotate(180deg);
}

/* Active group highlight */
.entry-content .hx-nav-group-active {
    color: #1A1A1A !important;
    background: #F1F3F5;
    font-weight: 600;
}

/* Dropdown panel — single column (items must not use inline-flex or they wrap) */
.entry-content .hx-nav-dropdown-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-width: 200px;
    max-width: min(100vw - 2rem, 20rem);
    padding: 0.5rem;
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    z-index: 100;
}

.entry-content .hx-nav-dropdown[data-open="true"] .hx-nav-dropdown-menu {
    display: flex;
}

.entry-content .hx-nav-dropdown-item {
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 0.5rem 0.875rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    color: #495057 !important;
    text-decoration: none !important;
    transition: background 100ms ease, color 100ms ease;
}

.entry-content .hx-nav-dropdown-item:hover {
    background: #F1F3F5;
    color: #1A1A1A !important;
}

.entry-content .hx-nav-dropdown-item.hx-nav-link-active {
    color: #1A1A1A !important;
    background: #F1F3F5;
    font-weight: 600;
}

/* Nav search input (inline search in base.php) */
.entry-content .hx-nav-search-input {
    padding: 7px 14px 7px 34px;
    font-size: 13px;
    border: 1px solid #E9ECEF;
    border-radius: 9999px;
    background: #F8F9FA;
    color: #1A1A1A;
    width: 180px;
    outline: none;
    font-family: inherit;
    transition: all 0.25s ease;
    line-height: 1.4;
}

.entry-content .hx-nav-search-input::placeholder {
    color: #CED4DA;
    font-size: 13px;
}

.entry-content .hx-nav-search-input:focus {
    border-color: var(--hx-primary-dark, #6B7A00);
    background: #FFFFFF;
    width: 240px;
    box-shadow: 0 0 0 3px rgba(107, 122, 0, 0.15);
    color: #1A1A1A;
}

/* Hamburger button */
.entry-content .hx-nav-hamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    color: #495057;
    border-radius: 6px;
    transition: background 150ms ease;
}

.entry-content .hx-nav-hamburger:hover {
    background: #F1F3F5;
}

.entry-content .hx-nav-hamburger-icon {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 22px;
}

.entry-content .hx-nav-hamburger-icon span {
    display: block;
    width: 100%;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: all 0.2s ease;
}

/* Mobile menu inner */
.entry-content .hx-nav-mobile-inner {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.entry-content .hx-nav-mobile-links {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Mobile menu ID anchor (no styling needed, just ensure display) */
#hx-mobile-menu {
    background: #FFFFFF;
    border-top: 1px solid #E9ECEF;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08);
}

@media (max-width: 768px) {
    .entry-content .hx-nav-hamburger { display: flex; }
}

/* ==========================================================================
   HUB — Welcome Hero, Stat Cards, Quick Bar, CTA Cards
   ========================================================================== */

/* hx-hub-welcome consolidated in hyrox.css for single source of truth */

/* Stat cards in the hub welcome block */
.entry-content .hx-hub-stat-card {
    background: #F8F9FA;
    border: 1px solid #E9ECEF;
    border-radius: 12px;
    padding: 1.25rem 1.75rem;
    text-align: center;
    min-width: 160px;
}

.entry-content .hx-hub-stat-card-value {
    display: block;
    font-size: 1.875rem;
    font-weight: 900;
    color: #1A1A1A;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.entry-content .hx-hub-stat-card-label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #6C757D;
}

/* Quick access bar (inline styles in hub.php supplement this) */
.entry-content .hx-quick-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    background: #FFFFFF;
    border: 1px solid #E9ECEF;
    border-radius: 12px;
    padding: 0.875rem 1.25rem;
    margin-bottom: 1.5rem;
}

/* CTA cards (compare section, hub.php) - light variant on light bg */
.entry-content .hx-cta-card {
    display: block;
    padding: 1.25rem 1.5rem;
    background: #FFFFFF;
    border: 1px solid #E9ECEF;
    border-radius: 12px;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.entry-content .hx-cta-card:hover {
    border-color: #E8FF00;
    box-shadow: 0 0 0 1px #E8FF00, 0 4px 20px rgba(0, 0, 0, 0.06);
    transform: translateY(-2px);
}

.entry-content .hx-cta-card-title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1A1A1A;
    margin-bottom: 0.375rem;
}

.entry-content .hx-cta-card-desc {
    font-size: 0.8125rem;
    color: #5A6577;
    line-height: 1.55;
}

/* CTA cards inside the dark cta-section - inherit dark variant */
.entry-content .hx-cta-section .hx-cta-card,
.entry-content .hx-app .hx-cta-section .hx-cta-card {
    background: #1A1A1A !important;
    border-color: #333 !important;
}
.entry-content .hx-cta-section .hx-cta-card:hover,
.entry-content .hx-app .hx-cta-section .hx-cta-card:hover {
    background: #222 !important;
    border-color: #E8FF00 !important;
}
.entry-content .hx-cta-section .hx-cta-card-title,
.entry-content .hx-app .hx-cta-section .hx-cta-card-title {
    color: #FFFFFF !important;
}
.entry-content .hx-cta-section .hx-cta-card-desc,
.entry-content .hx-app .hx-cta-section .hx-cta-card-desc {
    color: rgba(255,255,255,0.75) !important;
}

/* CTA section buttons row */
.entry-content .hx-cta-buttons {
    display: flex;
    gap: 0.875rem;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 1.5rem;
}

/* CTA text (paragraph inside .hx-cta-section) */
.entry-content .hx-cta-text {
    color: rgba(255, 255, 255, 0.65);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 520px;
    margin: 0 auto 0;
}

/* Hero badge dot + text (hub.php) */
.entry-content .hx-hero-badge-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #E8FF00;
    flex-shrink: 0;
    animation: hxPulse 2s ease-in-out infinite;
}

@keyframes hxPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

.entry-content .hx-hero-badge-text {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

/* Responsive hub welcome (only stat-card sizing - layout grid handled in hyrox.css) */
@media (max-width: 900px) {
    .entry-content .hx-hub-welcome-right {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .entry-content .hx-hub-stat-card {
        flex: 1;
        min-width: 120px;
    }
}

@media (max-width: 640px) {
    .entry-content .hx-hub-welcome-title {
        font-size: 1.875rem;
    }
}

/* ==========================================================================
   STATION REFERENCE — Hub weight table section
   ========================================================================== */

.entry-content .hx-station-ref {
    background: #FFFFFF;
    border: 1px solid #E9ECEF;
    border-radius: 12px;
    padding: 1.5rem;
}

/* Tab strip inside station-ref (uses hx-tab / hx-tab-active) */
.entry-content .hx-tabs .hx-tab {
    padding: 0.5rem 1rem;
    border: none;
    background: none;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #6C757D;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 150ms ease, border-color 150ms ease;
    white-space: nowrap;
}

.entry-content .hx-tabs .hx-tab:hover {
    color: #1A1A1A;
}

.entry-content .hx-tabs .hx-tab.hx-tab-active,
.entry-content .hx-tabs .hx-tab[aria-selected="true"] {
    color: #1A1A1A;
    font-weight: 700;
    border-bottom-color: #E8FF00;
}

/* ==========================================================================
   TAB BAR — weight-reference.php standalone tab strip
   ========================================================================== */

.entry-content .hx-tab-bar {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #E9ECEF;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.entry-content .hx-tab-bar::-webkit-scrollbar { display: none; }

.entry-content .hx-tab-bar .hx-tab-btn {
    padding: 0.625rem 1.125rem;
    font-family: inherit;
    font-weight: 500;
    font-size: 0.875rem;
    color: #6C757D;
    border: none;
    background: none;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: all 150ms ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.entry-content .hx-tab-bar .hx-tab-btn:hover {
    color: #1A1A1A;
    background: #F8F9FA;
}

.entry-content .hx-tab-bar .hx-tab-btn.hx-tab-btn-active,
.entry-content .hx-tab-bar .hx-tab-btn[aria-selected="true"] {
    color: #1A1A1A;
    font-weight: 700;
    border-bottom-color: #E8FF00;
}

/* Generic hx-tab-btn-active (used with Alpine :class binding) */
.entry-content .hx-tab-btn-active {
    color: #1A1A1A !important;
    font-weight: 700 !important;
    border-bottom-color: #E8FF00 !important;
}

/* Generic hx-tab / hx-tab-active (hub.php station weights) */
.entry-content .hx-tab {
    padding: 0.5rem 0.875rem;
    border: none;
    background: none;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #6C757D;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 150ms ease, border-color 150ms ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.entry-content .hx-tab:hover { color: #1A1A1A; }

.entry-content .hx-tab.hx-tab-active {
    color: #1A1A1A;
    font-weight: 700;
    border-bottom-color: #E8FF00;
}

/* Unit btn active state (Alpine :class binding variant) */
.entry-content .hx-unit-btn-active {
    background: #E8FF00 !important;
    color: #1A1A1A !important;
}

/* ==========================================================================
   PAGE HEADER — All guide/training pages
   ========================================================================== */

.entry-content .hx-page-header {
    padding: 2rem 0 1.75rem;
    border-bottom: 1px solid #E9ECEF;
    margin-bottom: 2rem;
}

.entry-content .hx-page-header-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: rgba(232, 255, 0, 0.12);
    color: #5A6400;
    border: 1px solid rgba(232, 255, 0, 0.35);
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 1rem;
}

.entry-content .hx-page-title {
    font-size: 2rem;
    font-weight: 900;
    color: #1A1A1A;
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin: 0 0 0.75rem;
}

.entry-content .hx-page-subtitle {
    font-size: 1.0625rem;
    color: #495057;
    line-height: 1.65;
    max-width: 640px;
    margin: 0 0 1rem;
}

.entry-content .hx-page-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.entry-content .hx-page-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: #6C757D;
    font-weight: 500;
}

.entry-content .hx-page-meta-item svg {
    flex-shrink: 0;
    color: #ADB5BD;
}

@media (max-width: 640px) {
    .entry-content .hx-page-title { font-size: 1.625rem; }
}

/* ==========================================================================
   CARD GRID — training/index.php guide cards
   ========================================================================== */

.entry-content .hx-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.25rem;
    margin: 1.25rem 0;
}

/* Guide cards use .hx-card (already defined in hyrox.css) with these children */
.entry-content .hx-card-icon {
    width: 52px;
    height: 52px;
    background: rgba(232, 255, 0, 0.1);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #5A6400;
    margin-bottom: 1rem;
    flex-shrink: 0;
    transition: background 150ms ease;
}

.entry-content .hx-card:hover .hx-card-icon {
    background: rgba(232, 255, 0, 0.2);
}

.entry-content .hx-card-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #1A1A1A;
    margin: 0 0 0.5rem;
    line-height: 1.3;
}

.entry-content .hx-card-desc {
    font-size: 0.875rem;
    color: #6C757D;
    line-height: 1.6;
    margin: 0 0 1rem;
    flex: 1;
}

.entry-content .hx-card-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1A1A1A;
    text-decoration: none !important;
    transition: gap 150ms ease;
}

.entry-content .hx-card:hover .hx-card-link {
    gap: 0.5rem;
}

/* Make the card itself a flex column when used as a link */
.entry-content a.hx-card {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.entry-content a.hx-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

/* ==========================================================================
   TIMELINE — label + content variant (guides, training pages)
   ========================================================================== */

/* The existing hx-timeline in hyrox.css uses ::before line + dot.
   These templates use a simpler label/content pair without the dot. */
.entry-content .hx-timeline-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    background: #E8FF00;
    color: #1A1A1A;
    font-size: 0.6875rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 9999px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-bottom: 0.5rem;
    align-self: flex-start;
}

.entry-content .hx-timeline-content {
    font-size: 0.9375rem;
    color: #495057;
    line-height: 1.65;
}

.entry-content .hx-timeline-content strong {
    color: #1A1A1A;
    font-weight: 700;
}

/* Override: when timeline items use the label/content pair inside .hx-timeline */
.entry-content .hx-timeline .hx-timeline-item {
    display: flex;
    flex-direction: column;
    padding-bottom: 1.75rem;
}

/* ==========================================================================
   INFO BOXES — tip-box override for guide content
   (hx-info-box-title is already in hyrox.css — this covers flex display variant)
   ========================================================================== */

/* The guide templates use hx-info-box as a block (not flex) */
.entry-content .hx-info-box {
    display: block;
}

.entry-content .hx-info-box .hx-info-box-title {
    font-weight: 700;
    font-size: 0.9375rem;
    color: #1A1A1A;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #DEE2E6;
}

/* List inside info box */
.entry-content .hx-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.entry-content .hx-list li {
    padding-left: 1.125rem;
    position: relative;
    font-size: 0.9rem;
    color: #495057;
    line-height: 1.6;
}

.entry-content .hx-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #E8FF00;
    border: 1px solid #B8CC00;
}

.entry-content .hx-list li strong {
    color: #1A1A1A;
    font-weight: 700;
}

/* ==========================================================================
   TABLE VARIANTS — weights, notes, wrapper
   ========================================================================== */

/* Table wrapper (scrollable, replaces hx-table-responsive for guide pages) */
.entry-content .hx-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 1.25rem 0;
    border-radius: 8px;
    border: 1px solid #E9ECEF;
}

/* Weight-specific table modifier */
.entry-content .hx-table-weights td strong {
    color: #1A1A1A;
}

/* Highlighted cell (e.g. "Updated" badge in wall balls row) */
.entry-content .hx-highlight-cell {
    background: rgba(232, 255, 0, 0.08);
    font-weight: 600;
    color: #1A1A1A;
}

/* Note below a table */
.entry-content .hx-table-note {
    font-size: 0.8125rem;
    color: #6C757D;
    margin-top: 0.75rem;
    line-height: 1.6;
    font-style: italic;
}

/* Rule note (weight-reference.php, after each division panel) */
.entry-content .hx-rule-note {
    background: #F8F9FA;
    border: 1px solid #E9ECEF;
    border-left: 4px solid #E8FF00;
    border-radius: 0 8px 8px 0;
    padding: 0.875rem 1.125rem;
    font-size: 0.875rem;
    color: #495057;
    line-height: 1.6;
    margin-top: 1rem;
}

.entry-content .hx-rule-note strong {
    color: #1A1A1A;
}

/* ==========================================================================
   SEO SECTION — base.php hyrox_seo_section()
   ========================================================================== */

.entry-content .hx-seo-section {
    margin: 2.5rem 0 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #E9ECEF;
}

.entry-content .hx-seo-heading {
    font-size: 1.125rem;
    font-weight: 700;
    color: #1A1A1A;
    margin: 0 0 0.875rem;
    letter-spacing: -0.01em;
}

.entry-content .hx-seo-content {
    font-size: 0.9rem;
    color: #6C757D;
    line-height: 1.75;
    max-width: 720px;
}

.entry-content .hx-seo-content p {
    margin: 0 0 0.875rem;
}

.entry-content .hx-seo-content p:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   FAQ ICON — chevron in faq questions
   ========================================================================== */

.entry-content .hx-faq-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #ADB5BD;
    transition: transform 250ms ease, color 150ms ease;
}

.entry-content .hx-faq-question:hover .hx-faq-icon {
    color: #6C757D;
}

.entry-content .hx-faq-icon.hx-faq-icon-open,
.entry-content .hx-faq-icon-open {
    transform: rotate(180deg);
    color: #1A1A1A;
}

/* ==========================================================================
   BADGE — new/updated badge (weight-reference.php)
   ========================================================================== */

.entry-content .hx-badge-new {
    background: #E8FF00;
    color: #1A1A1A;
    font-size: 0.625rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 7px;
    border-radius: 9999px;
    vertical-align: middle;
    display: inline-block;
    margin-left: 4px;
}

/* ==========================================================================
   STATION GRID — beginners.php station list in info box
   ========================================================================== */

.entry-content .hx-station-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.625rem;
    margin-top: 0.875rem;
}

.entry-content .hx-station-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: #FFFFFF;
    border: 1px solid #E9ECEF;
    border-radius: 8px;
    transition: border-color 150ms ease;
}

.entry-content .hx-station-item:hover {
    border-color: #E8FF00;
}

.entry-content .hx-station-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: #E8FF00;
    color: #1A1A1A;
    font-size: 0.8125rem;
    font-weight: 800;
    border-radius: 50%;
    flex-shrink: 0;
}

.entry-content .hx-station-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.entry-content .hx-station-info strong {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1A1A1A;
    display: block;
    line-height: 1.3;
}

.entry-content .hx-station-info span {
    font-size: 0.8rem;
    color: #6C757D;
    display: block;
}

/* ==========================================================================
   WORLD RECORDS — records-hero, record cards
   ========================================================================== */

.entry-content .hx-records-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin: 1.5rem 0;
}

.entry-content .hx-record-card {
    background: #FFFFFF;
    border: 1px solid #E9ECEF;
    border-radius: 14px;
    padding: 1.75rem;
    transition: box-shadow 200ms ease;
}

.entry-content .hx-record-card:hover {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.07);
}

.entry-content .hx-record-card-featured {
    background: #0A0A0A;
    border-color: #222222;
    position: relative;
    overflow: hidden;
}

.entry-content .hx-record-card-featured::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #E8FF00;
}

.entry-content .hx-record-division {
    font-size: 0.6875rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #E8FF00;
    margin-bottom: 0.5rem;
}

.entry-content .hx-record-time {
    font-size: 3rem;
    font-weight: 900;
    color: #FFFFFF;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.entry-content .hx-record-athlete {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 0.375rem;
}

.entry-content .hx-record-meta {
    display: flex;
    gap: 1rem;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 0.875rem;
}

.entry-content .hx-record-context {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.6;
}

/* Record time cell in the all-division table */
.entry-content .hx-record-time-cell {
    font-size: 1.0625rem;
    font-weight: 800;
    color: #1A1A1A;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 640px) {
    .entry-content .hx-records-hero {
        grid-template-columns: 1fr;
    }
    .entry-content .hx-record-time {
        font-size: 2.25rem;
    }
}

/* ==========================================================================
   WEIGHT REFERENCE — info cards, two-col layout
   ========================================================================== */

.entry-content .hx-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin: 1.25rem 0;
}

.entry-content .hx-info-card {
    background: #F8F9FA;
    border: 1px solid #E9ECEF;
    border-radius: 12px;
    padding: 1.5rem;
    text-align: center;
}

.entry-content .hx-info-card-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #6C757D;
    margin-bottom: 0.625rem;
}

.entry-content .hx-info-card-stat {
    font-size: 1.625rem;
    font-weight: 900;
    color: #1A1A1A;
    letter-spacing: -0.03em;
    margin-bottom: 0.375rem;
}

.entry-content .hx-info-card-note {
    font-size: 0.8125rem;
    color: #6C757D;
}

@media (max-width: 540px) {
    .entry-content .hx-two-col {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SEARCH — listbox, groups, result states (nav search)
   ========================================================================== */

/* These are used in Alpine x-for loops in base.php footer script.
   The base styles are in the <style> block in hyrox_footer() but
   these cover the semantic class names referenced in the template markup. */

.entry-content .hx-search-group {
    padding: 4px 0;
}

.entry-content .hx-search-empty {
    padding: 1.25rem 0.875rem;
    text-align: center;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.45);
}

.entry-content .hx-search-result-active {
    background: rgba(232, 255, 0, 0.08) !important;
    color: var(--hx-dark-700, #1A1A2E) !important;
}

/* Search listbox container ID (no class but keep specificity clean) */
#hx-search-listbox {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: 320px;
    background: #1a1a2e;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
    z-index: 100;
    overflow: hidden;
    max-height: 380px;
    overflow-y: auto;
}

/* ==========================================================================
   FOOTER EXTRAS — brand link, disclaimer
   ========================================================================== */

.entry-content .hx-footer-brand {
    font-size: 0.8125rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.55) !important;
    text-decoration: none !important;
    letter-spacing: 0.02em;
    transition: color 150ms ease;
}

.entry-content .hx-footer-brand:hover {
    color: rgba(255, 255, 255, 0.85) !important;
}

.entry-content .hx-footer-disclaimer {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.3);
    line-height: 1.6;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

/* ==========================================================================
   UTILITY ADDITIONS — mt-3, spin keyframe name
   ========================================================================== */

.entry-content .hx-mt-3 {
    margin-top: 0.75rem;
}

/* hx-spin is used as an animation name reference, not a class,
   but define it as a class for any elements that may use it directly */
.entry-content .hx-spin {
    animation: hxSpin 0.65s linear infinite;
}

/* Mobile menu ID (Alpine x-show target) */
#hx-mobile-menu.hx-nav-mobile {
    background: var(--hx-surface, #ffffff);
    border-top: 1px solid var(--hx-border, #e9ecef);
}

/* ==========================================================================
   RESPONSIVE — global mobile adjustments for guide pages
   ========================================================================== */

@media (max-width: 768px) {
    .entry-content .hx-card-grid {
        grid-template-columns: 1fr;
    }

    .entry-content .hx-station-grid {
        grid-template-columns: 1fr;
    }

    .entry-content .hx-page-header {
        padding: 1.5rem 0 1.25rem;
    }
}

@media (max-width: 480px) {
    .entry-content .hx-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .entry-content .hx-cta-buttons .hx-btn {
        text-align: center;
        justify-content: center;
    }
}

/* ==========================================================================
   DARK HERO TEXT SAFETY OVERRIDES
   Re-assert readable text inside dark HYROX hero variants after legacy light-theme rules.
   ========================================================================== */

.entry-content .hx-page-header-dark .hx-page-title,
.entry-content .hx-page-header-dark h1,
.entry-content .hx-page-header-dark h2,
.entry-content .hx-page-header-dark h3,
.entry-content .hx-page-header-dark h4,
.entry-content .hx-page-header-dark h5,
.entry-content .hx-page-header-dark h6,
.entry-content .hx-hub-welcome-title,
.entry-content .hx-hub-stat-card-value {
    color: #ffffff !important;
}

.entry-content .hx-page-header-dark .hx-page-subtitle,
.entry-content .hx-page-header-dark p,
.entry-content .hx-hub-welcome-sub,
.entry-content .hx-hub-stat-card-label,
.entry-content .hx-hero-badge-text {
    color: rgba(255, 255, 255, 0.74) !important;
}

.entry-content .hx-hub-welcome-title span,
.entry-content .hx-hub-welcome-title .hx-brand-accent {
    color: var(--hx-primary) !important;
}

.entry-content .hx-hub-stat-card {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

/* ==========================================================================
   SHARED POLISH PATCHES — guide badges, calculator result cards
   ========================================================================== */

.entry-content .hx-page-header-badge,
.entry-content.rbct .hx-app .hx-page-header-badge,
.hx-app .hx-page-header.hx-hero-with-bg .hx-page-header-badge {
    display: inline-flex !important;
    width: max-content !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    justify-content: center;
}

.entry-content .hx-gauge,
.hx-app .hx-gauge {
    display: inline-flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 0.25rem !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
    overflow: visible !important;
}

.entry-content .hx-gauge .hx-gauge-value,
.hx-app .hx-gauge .hx-gauge-value {
    position: static !important;
    display: inline-block !important;
    transform: none !important;
    white-space: nowrap;
}

.entry-content .hx-gauge .hx-gauge-max,
.hx-app .hx-gauge .hx-gauge-max {
    display: inline-block !important;
    padding-bottom: 0.35rem !important;
}

.entry-content .hx-results-section > .hx-card,
.entry-content.rbct .hx-app .hx-results-section > .hx-card {
    padding: 1.5rem !important;
    margin: 1rem 0 !important;
    border-radius: 14px !important;
    overflow: visible !important;
}

.entry-content .hx-results-section > .hx-card:not(.hx-card-warning):not(.hx-card-success):not(.hx-card-error),
.entry-content.rbct .hx-app .hx-results-section > .hx-card:not(.hx-card-warning):not(.hx-card-success):not(.hx-card-error) {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05);
}

.entry-content .hx-results-section > .hx-card .hx-section-title,
.entry-content.rbct .hx-app .hx-results-section > .hx-card .hx-section-title {
    margin: 0 0 0.875rem !important;
}

/* Keep all dark/image heroes internally aligned. */
.entry-content .hx-app .hx-hero.hx-hero-with-bg,
.entry-content .hx-app .hx-page-header.hx-hero-with-bg,
.entry-content.rbct .hx-app .hx-hero.hx-hero-with-bg,
.entry-content.rbct .hx-app .hx-page-header.hx-hero-with-bg {
    text-align: left !important;
    align-items: flex-start !important;
}

.entry-content .hx-app .hx-hero.hx-hero-with-bg h1,
.entry-content .hx-app .hx-hero.hx-hero-with-bg .hx-subtitle,
.entry-content .hx-app .hx-page-header.hx-hero-with-bg .hx-page-title,
.entry-content .hx-app .hx-page-header.hx-hero-with-bg .hx-page-subtitle,
.entry-content.rbct .hx-app .hx-hero.hx-hero-with-bg h1,
.entry-content.rbct .hx-app .hx-hero.hx-hero-with-bg .hx-subtitle,
.entry-content.rbct .hx-app .hx-page-header.hx-hero-with-bg .hx-page-title,
.entry-content.rbct .hx-app .hx-page-header.hx-hero-with-bg .hx-page-subtitle {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
}
