body {
    background: #f4f5f7 !important;
}

.container-header {
    background: #0b1f3a !important;
}

.container-header .navbar-brand {
    color: #f47b20 !important;
}

a {
    color: #f47b20 !important;
}

.btn-primary {
    background: #f47b20 !important;
    border-color: #f47b20 !important;
}
/* =========================================
   OCRBL HERO SECTION
   ========================================= */

.ocrbl-hero {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(
        135deg,
        #071a33 0%,
        #0b1f3a 55%,
        #12365c 100%
    ) !important;
    color: #ffffff !important;
    padding: 80px 30px;
    margin: 0 0 50px 0;
    overflow: hidden;
}

.ocrbl-hero::before {
    content: "⚾";
    position: absolute;
    right: 5%;
    top: 50%;
    transform: translateY(-50%) rotate(-15deg);
    font-size: 300px;
    opacity: .06;
}

.ocrbl-hero-content {
    position: relative;
    z-index: 2;
    max-width: 1100px;
    width: 100%;
}

.ocrbl-season {
    display: inline-block;
    background: #f47b20;
    color: #ffffff !important;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 2px;
    padding: 10px 22px;
    border-radius: 4px;
    margin-bottom: 25px;
}

.ocrbl-hero h1 {
    color: #ffffff !important;
    font-size: clamp(38px, 5vw, 68px);
    line-height: 1.05;
    font-weight: 900;
    margin: 0 0 20px;
}

.ocrbl-hero p {
    color: #ffffff !important;
    font-size: 20px;
    margin: 0 0 35px;
}

.ocrbl-hero-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.ocrbl-btn {
    display: inline-block;
    padding: 15px 30px;
    border-radius: 5px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none !important;
    transition: all .2s ease;
}

.ocrbl-btn-orange {
    background: #f47b20 !important;
    color: #ffffff !important;
}

.ocrbl-btn-orange:hover {
    background: #d85f0c !important;
    color: #ffffff !important;
    transform: translateY(-2px);
}

.ocrbl-btn-outline {
    border: 2px solid #ffffff;
    color: #ffffff !important;
    background: transparent;
}

.ocrbl-btn-outline:hover {
    background: #ffffff !important;
    color: #0b1f3a !important;
}

@media (max-width: 768px) {

    .ocrbl-hero {
        min-height: 430px;
        padding: 60px 20px;
    }

    .ocrbl-hero h1 {
        font-size: 36px;
    }

    .ocrbl-hero p {
        font-size: 16px;
    }

    .ocrbl-btn {
        width: 100%;
        max-width: 280px;
    }

}
/* =========================================
   OCRBL UPCOMING GAMES - GAME CARDS
   ========================================= */

.ocrbl-upcoming-games {
    max-width: 1200px;
    margin: 0 auto 50px;
}

.ocrbl-upcoming-games .moduletable {
    background: transparent;
}

/* Section title */
.ocrbl-upcoming-games h3 {
    color: #0b1f3a !important;
    font-size: 32px !important;
    font-weight: 900 !important;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px !important;
}

/* Match rows */
.ocrbl-upcoming-games table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0 14px !important;
}

.ocrbl-upcoming-games tr {
    background: #ffffff !important;
    box-shadow: 0 4px 15px rgba(11, 31, 58, 0.12);
}

/* Cells */
.ocrbl-upcoming-games td {
    padding: 18px 20px !important;
    border: none !important;
    color: #0b1f3a;
    vertical-align: middle;
}

/* Date and time */
.ocrbl-upcoming-games td:first-child {
    font-weight: 700;
    color: #0b1f3a;
}

/* Team names */
.ocrbl-upcoming-games a {
    color: #0b1f3a !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

.ocrbl-upcoming-games a:hover {
    color: #f47b20 !important;
}

/* Venue / field */
.ocrbl-upcoming-games td:last-child {
    color: #555;
    font-weight: 600;
}

/* Orange accent */
.ocrbl-upcoming-games tr {
    border-left: 5px solid #f47b20;
}

/* Hover */
.ocrbl-upcoming-games tr:hover {
    box-shadow: 0 7px 22px rgba(11, 31, 58, 0.18);
    transform: translateY(-2px);
    transition: all .2s ease;
}

/* Mobile */
@media (max-width: 768px) {

    .ocrbl-upcoming-games {
        padding: 0 15px 40px;
    }

    .ocrbl-upcoming-games h3 {
        font-size: 26px !important;
    }

    .ocrbl-upcoming-games table {
        display: block;
    }

    .ocrbl-upcoming-games tbody {
        display: block;
    }

    .ocrbl-upcoming-games tr {
        display: block;
        margin-bottom: 15px;
        padding: 10px;
    }

    .ocrbl-upcoming-games td {
        display: block;
        width: 100%;
        text-align: center;
        padding: 7px !important;
    }
}
/* OCRBL UPCOMING GAMES - FULL WIDTH FIX */

.ocrbl-upcoming-games {
    width: 100% !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
}

.ocrbl-upcoming-games .moduletable {
    width: 100% !important;
    max-width: 1200px !important;
}

.ocrbl-upcoming-games table {
    width: 100% !important;
    min-width: 100% !important;
}
/* =========================================
   OCRBL PROFESSIONAL GAME CARDS
   ========================================= */

.ocrbl-upcoming-games table {
    border-spacing: 0 16px !important;
}

.ocrbl-upcoming-games tr {
    background: #ffffff !important;
    border-left: 6px solid #f47b20 !important;
    box-shadow: 0 5px 18px rgba(11, 31, 58, 0.12);
    transition: all 0.2s ease;
}

.ocrbl-upcoming-games tr:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(11, 31, 58, 0.18);
}

.ocrbl-upcoming-games td {
    padding: 18px 22px !important;
}

/* Date and time */
.ocrbl-upcoming-games td:first-child {
    color: #0b1f3a !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

/* Team names */
.ocrbl-upcoming-games td a {
    color: #0b1f3a !important;
    font-size: 17px !important;
    font-weight: 900 !important;
}

.ocrbl-upcoming-games td a:hover {
    color: #f47b20 !important;
}

/* Field */
.ocrbl-upcoming-games td:last-child {
    color: #555 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

/* Make the VS separator orange */
.ocrbl-upcoming-games td {
    line-height: 1.6;
}

/* Mobile */
@media (max-width: 768px) {
    .ocrbl-upcoming-games td a {
        font-size: 16px !important;
    }

    .ocrbl-upcoming-games td {
        padding: 10px 15px !important;
    }
}
/* =========================================
   OCRBL JOOMLEAGUE TEAM NAMES
   ========================================= */

.ocrbl-upcoming-games div.min-w-0.text-end .text-truncate,
.ocrbl-upcoming-games div.min-w-0.text-start .text-truncate {
    color: #0b1f3a !important;
    font-size: 20px !important;
    font-weight: 900 !important;
    letter-spacing: .3px;
}

/* Team name hover */
.ocrbl-upcoming-games div.min-w-0.text-end .text-truncate:hover,
.ocrbl-upcoming-games div.min-w-0.text-start .text-truncate:hover {
    color: #f47b20 !important;
}

/* Give the matchup more breathing room */
.ocrbl-upcoming-games .d-inline-flex {
    min-height: 30px;
}

/* Orange accent for the matchup */
.ocrbl-upcoming-games .d-inline-flex.align-items-center {
    color: #f47b20;
}
/* OCRBL - Team names black */
.ocrbl-upcoming-games .text-truncate {
    color: #000000 !important;
}

.ocrbl-upcoming-games .text-truncate:hover {
    color: #000000 !important;
}
/* OCRBL - FORCE BOTH TEAM NAMES BLACK */

.ocrbl-upcoming-games a,
.ocrbl-upcoming-games a span,
.ocrbl-upcoming-games a .text-truncate,
.ocrbl-upcoming-games .text-end a,
.ocrbl-upcoming-games .text-start a {
    color: #000000 !important;
    text-decoration: none !important;
}

.ocrbl-upcoming-games a:hover,
.ocrbl-upcoming-games a:hover span,
.ocrbl-upcoming-games a:hover .text-truncate {
    color: #000000 !important;
}
/* OCRBL - Matchup team names */
.ocrbl-upcoming-games .text-truncate {
    color: #000000 !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}
/* OCRBL - Make all team links behave the same */

.ocrbl-upcoming-games a .text-truncate {
    color: #000000 !important;
    font-weight: 900 !important;
}

.ocrbl-upcoming-games a:hover .text-truncate,
.ocrbl-upcoming-games a:focus .text-truncate {
    color: #f47b20 !important;
}
/* =========================================
   OCRBL UPCOMING GAME CARDS
   ========================================= */

.ocrbl-upcoming-games {
    max-width: 1000px;
    margin: 0 auto 50px;
}

/* Individual game card */
.ocrbl-upcoming-games .card,
.ocrbl-upcoming-games .table,
.ocrbl-upcoming-games > div {
    border-radius: 8px;
}

/* Add spacing between games */
.ocrbl-upcoming-games tr {
    margin-bottom: 15px;
}

/* Game rows */
.ocrbl-upcoming-games tr {
    background: #ffffff;
    border: 1px solid #e3e6ea;
    box-shadow: 0 3px 10px rgba(0,0,0,.06);
}

/* Team names */
.ocrbl-upcoming-games .text-truncate {
    color: #000000 !important;
    font-weight: 900 !important;
}

/* Team links */
.ocrbl-upcoming-games a .text-truncate {
    color: #000000 !important;
}

.ocrbl-upcoming-games a:hover .text-truncate {
    color: #f47b20 !important;
}

/* Date/time */
.ocrbl-upcoming-games time {
    color: #0b1f3a;
    font-weight: 700;
}

/* Field / venue text */
.ocrbl-upcoming-games .text-muted {
    color: #555555 !important;
    font-size: 13px;
}

/* Mobile */
@media (max-width: 768px) {
    .ocrbl-upcoming-games {
        margin-left: 15px;
        margin-right: 15px;
    }
}
/* OCRBL - Field / Venue */
.ocrbl-upcoming-games .small.text-muted {
    color: #555555 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin-top: 8px !important;
}

.ocrbl-upcoming-games .small.text-muted span {
    color: #555555 !important;
}
/* HIDE DEFAULT CASSIOPEIA HEADER */
.container-header {
    display: none !important;
}