@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700;800&display=swap");

:root {
    --npl-ink: #101827;
    --npl-navy: #223f8e;
    --npl-blue: #223f8e;
    --npl-red: #d82827;
    --npl-gold: #223f8e;
    --npl-crimson: #d82827;
    --npl-paper: #f4f5f2;
    --npl-line: #dfe3e7;
    --npl-muted: #687487;
}
body.npl-page {
    font-family: "DM Sans", sans-serif;
    background: var(--npl-paper);
    color: var(--npl-ink);
}
.npl-page h1,
.npl-page h2,
.npl-page h3,
.npl-page h4,
.npl-page .font-display {
    font-family: "Barlow Condensed", "DM Sans", sans-serif;
    letter-spacing: -0.025em;
}
.npl-page :focus-visible {
    outline: 3px solid var(--npl-gold);
    outline-offset: 3px;
}
.npl-page a,
.npl-page button {
    transition:
        color 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

/* Navigation */
.npl-page .ni-header {
    background: #fff !important;
    border-bottom: 2px solid var(--npl-blue);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 4px 16px rgba(16, 24, 39, 0.08);
}
.npl-page .ni-header a,
.npl-page .ni-header button {
    color: var(--npl-blue);
}
.npl-page .ni-header a:hover,
.npl-page .ni-header button:hover {
    color: var(--npl-red);
}
.npl-page .ni-header .ni-nav a.active {
    background: rgba(34, 63, 142, 0.09);
    color: var(--npl-blue);
}
.npl-page .ni-header .ni-nav a.active::after {
    background: var(--npl-red);
}
.npl-page .ni-header .ni-btn-primary {
    background: var(--npl-blue);
    border-color: var(--npl-blue);
    color: #fff;
}
.npl-page .ni-header .ni-btn-primary:hover {
    background: #1b3478;
    border-color: #1b3478;
    color: #fff;
}
.npl-page .ni-sidebar .ni-sb-link:hover,
.npl-page .ni-sidebar .ni-sb-link.active {
    background: rgba(34, 63, 142, 0.09);
    color: var(--npl-blue);
}
.npl-page .ni-sidebar .ni-sb-link:hover .ni-sb-icon,
.npl-page .ni-sidebar .ni-sb-link.active .ni-sb-icon {
    background: rgba(34, 63, 142, 0.12);
    color: var(--npl-blue);
}

/* Landing hero and replaceable local artwork */
.npl-home .hero {
    position: relative;
    overflow: hidden;
    background: #101827;
    background-image:
        linear-gradient(
            90deg,
            rgba(16, 24, 39, 0.98),
            rgba(16, 24, 39, 0.78) 54%,
            rgba(16, 24, 39, 0.34)
        ),
        url("/images/npl-stadium-hero.svg");
    background-position: center 58%;
    background-size: cover;
}
.npl-home .hero::before {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
    mask-image: linear-gradient(90deg, #000, transparent 90%);
}
.npl-home .hero-stripe,
.npl-home .hero-glow {
    display: none;
}
.npl-home .hero-top-bar {
    background: linear-gradient(90deg, var(--npl-red), transparent);
}
.npl-home .hero-pill {
    border: 1px solid #223f8e70;
    background: #101827;
    color: #dfe8ff;
    border-radius: 3px;
}
.npl-home .hero h1 {
    font-size: clamp(2.8rem, 7vw, 5.5rem);
    letter-spacing: 0.02em;
}
.npl-home .hero-cta,
.npl-page .npl-match-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    background: var(--npl-blue);
    color: #fff;
    border: 1px solid var(--npl-blue);
    border-radius: 3px;
    font-weight: 800;
    text-decoration: none;
}
.npl-home .hero-cta {
    padding: 13px 24px;
}
.npl-home .hero-cta:hover,
.npl-page .npl-match-card__cta:hover {
    background: #1b3478;
    border-color: #1b3478;
    transform: translateY(-1px);
}
.npl-home .hero-cta-ghost {
    border: 1px solid #ffffff70;
    border-radius: 3px;
    color: #fff;
    text-decoration: none;
}
.npl-home .hero-cta-ghost:hover {
    border-color: var(--npl-gold);
    color: var(--npl-gold);
}
.npl-home .hero-trust i {
    color: var(--npl-gold);
}
.npl-home .text-red-grad {
    color: var(--npl-gold);
    background: none;
    -webkit-text-fill-color: currentColor;
}
.npl-home .bg-red-grad,
.npl-home .text-red-grad {
    background-image: none;
    background-color: transparent;
}
.npl-home a[style*="linear-gradient"],
.npl-home a[class*="bg-gradient"] {
    background: var(--npl-gold) !important;
    background-image: none !important;
    border: 1px solid var(--npl-gold);
    border-radius: 3px;
}
.npl-home section[style*="linear-gradient"] {
    background: var(--npl-ink) !important;
    background-image: none !important;
}
.npl-home .section-pill {
    background: #223f8e18;
    color: #8a651d;
    border: 1px solid #223f8e75;
    border-radius: 3px;
}
.npl-home .live-dot {
    background: var(--npl-gold);
}
.npl-home .npl-featured-desktop {
    display: none;
}
.npl-home .npl-featured-mobile {
    display: block;
    width: 100%;
    max-width: 460px;
    margin: 1.5rem auto 0;
}
@media (min-width: 1024px) {
    .npl-home .npl-featured-desktop {
        display: block;
        width: 100%;
        max-width: 430px;
        margin-left: auto;
    }
    .npl-home .npl-featured-mobile {
        display: none;
    }
}

/* Match card: the dynamic fixture is equally accessible on phones and desktop. */
.npl-page .npl-match-card,
.npl-page .npl-match-empty {
    overflow: hidden;
    border: 1px solid #344259;
    border-top: 3px solid var(--npl-gold);
    background: var(--npl-ink);
    color: #f8fafc;
    padding: 1.1rem 1.2rem 1.2rem;
}
.npl-page .npl-match-card__heading,
.npl-page .npl-match-card__stats {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.npl-page .npl-eyebrow {
    color: var(--npl-blue);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}
.npl-page .npl-match-card__state {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: #d4dbe4;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.npl-page .npl-match-card__teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.55rem;
    padding: 1.15rem 0;
}
.npl-page .npl-match-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    text-align: center;
    min-width: 0;
}
.npl-page .npl-team-mark {
    width: 54px;
    height: 54px;
    object-fit: contain;
}
.npl-page .npl-team-mark--initial {
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--team-color, var(--npl-navy));
    border: 1px solid #ffffff35;
    color: #fff;
    font-weight: 800;
    font-size: 0.8rem;
}
.npl-page .npl-team-mark--away {
    background: #27384c;
}
.npl-page .npl-match-team__name {
    color: #f8fafc;
    font-size: 0.83rem;
    font-weight: 700;
    line-height: 1.25;
}
.npl-page .npl-match-vs {
    color: #9aa6b7;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}
.npl-page .npl-match-card__stats {
    justify-content: center;
    border-top: 1px solid #344259;
    border-bottom: 1px solid #344259;
    padding: 0.7rem 0;
    color: #aeb8c6;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}
.npl-page .npl-match-card__stats strong {
    color: #fff;
    margin-right: 0.25rem;
}
.npl-page .npl-match-card__divider {
    height: 20px;
    width: 1px;
    background: #344259;
    margin: 0 0.65rem;
}
.npl-page .npl-match-card__cta {
    width: 100%;
    padding: 0.8rem;
    margin-top: 0.9rem;
    font-size: 0.82rem;
}
.npl-page .npl-match-empty p {
    color: #fff;
    margin: 0.5rem 0;
}

/* Local, changeable NPL Season 3 fan poll. */
.npl-page .npl-poll {
    margin-top: 2.5rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: #fff;
    border: 1px solid #d8282733;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(16, 24, 39, 0.06);
}
.npl-page .npl-poll__eyebrow {
    color: var(--npl-red);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.npl-page .npl-poll__intro h2 {
    margin: 0.35rem 0 0.5rem;
    color: var(--npl-ink);
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1;
    text-transform: uppercase;
}
.npl-page .npl-poll__intro p {
    margin: 0;
    color: #4b5563;
    font-size: clamp(0.95rem, 2vw, 1.12rem);
    line-height: 1.6;
}
.npl-page .npl-poll__options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 1rem;
    margin-top: 1.5rem;
}
.npl-page .npl-poll__option {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-width: 0;
    min-height: 66px;
    padding: 0.65rem 0.8rem;
    border: 1px solid transparent;
    border-radius: 5px;
    background: #fff;
    color: var(--npl-ink);
    text-align: left;
    cursor: pointer;
}
.npl-page .npl-poll__option:hover {
    border-color: var(--npl-blue);
    background: #f5f7fc;
}
.npl-page .npl-poll__option.is-selected {
    border-color: var(--npl-blue);
    background: #eef2fc;
}
.npl-page .npl-poll__mark {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--npl-blue);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.npl-page .npl-poll__option:nth-child(3n) .npl-poll__mark {
    background: var(--npl-red);
}
.npl-page .npl-poll__team-name {
    flex: 1;
    min-width: 0;
    font-weight: 750;
    line-height: 1.25;
}
.npl-page .npl-poll__percent {
    color: #b93816;
    font-size: 0.9rem;
    font-weight: 800;
}
.npl-page .npl-poll__result {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--npl-line);
    color: #4b5563;
    font-size: 0.9rem;
}
.npl-page .npl-poll__result p {
    flex: 1 1 260px;
    margin: 0;
    color: var(--npl-ink);
    font-weight: 700;
}
.npl-page .npl-poll__change {
    padding: 0.55rem 1rem;
    border: 1px solid var(--npl-blue);
    border-radius: 4px;
    background: #fff;
    color: var(--npl-blue);
    font-weight: 800;
    cursor: pointer;
}
.npl-page .npl-poll__change:hover {
    background: var(--npl-blue);
    color: #fff;
}
.npl-page .npl-poll__note {
    margin: 0.7rem 0 0;
    color: #687487;
    font-size: 0.78rem;
}
@media (max-width: 640px) {
    .npl-page .npl-poll__options {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    .npl-page .npl-poll__option {
        min-height: 58px;
        padding: 0.5rem;
    }
    .npl-page .npl-poll__mark {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
    }
}

/* Predictable flat data surfaces */
.npl-page .card {
    background: #fff;
    border: 1px solid var(--npl-line);
    border-radius: 4px;
    box-shadow: 0 7px 20px #1018270a;
}
.npl-page .card-lift {
    transition:
        transform 0.2s,
        box-shadow 0.2s;
}
.npl-page .card-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px #10182714;
}
.npl-home .stat-bar {
    background: #fff;
    border-block: 1px solid var(--npl-line);
}
.npl-home .stat-bar [style*="var(--red)"] {
    color: var(--npl-ink) !important;
}
.npl-home .step-cell {
    background: #fff;
    border: 1px solid var(--npl-line);
    border-top: 2px solid var(--npl-gold);
    border-radius: 4px;
    backdrop-filter: none;
    box-shadow: none;
}
.npl-home .step-cell.accent {
    background: var(--npl-ink);
    border-color: #344259;
    border-top-color: var(--npl-gold);
}
.npl-home .npl-how-rule {
    height: 2px;
    width: 52px;
    background: var(--npl-gold);
    margin-bottom: 1.4rem;
}
.npl-home .npl-how-section .section-pill {
    border-radius: 3px;
}
.npl-home [style*="backdrop-filter"] {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.npl-home [style*="linear-gradient"]:not(.hero):not(.hero-top-bar) {
    background-image: none !important;
}
.npl-home section[style*="linear-gradient"] {
    background: var(--npl-ink) !important;
}
.npl-page .tab-btn.active,
.npl-page .tab-active {
    color: var(--npl-ink);
    border-color: var(--npl-gold);
}
.npl-page .tab-inactive {
    color: var(--npl-muted);
}
.npl-page .dark-card {
    background: var(--npl-ink);
    border: 1px solid #344259;
    border-top: 2px solid var(--npl-gold);
    border-radius: 4px;
}
.npl-page .rule-row {
    border-bottom: 1px solid var(--npl-line);
}
.npl-page table {
    border-collapse: separate;
    border-spacing: 0;
}
.npl-page thead {
    background: var(--npl-ink);
    color: #f9fafb;
}
.npl-page th {
    font-size: 0.72rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}
.npl-page td,
.npl-page th {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}
.npl-page tr:hover td {
    background: #fbf7ea;
}
.npl-page input,
.npl-page select,
.npl-page textarea {
    border-color: #cbd2da;
    border-radius: 4px;
}
.npl-page input:focus,
.npl-page select:focus,
.npl-page textarea:focus {
    border-color: var(--npl-gold);
    box-shadow: 0 0 0 3px #223f8e35;
}
.npl-page [class*="rounded-3xl"],
.npl-page [class*="rounded-2xl"],
.npl-page [class*="rounded-xl"] {
    border-radius: 4px;
}
.npl-page .gradient-bg,
.npl-page .gradient-hero,
.npl-page .gradient-card {
    background: var(--npl-ink);
    background-image: none;
}
.npl-page .gradient-gold {
    background: #c79838;
}
.npl-page .gradient-silver {
    background: #7f8c9a;
}
.npl-page .gradient-bronze {
    background: #9a6543;
}
.npl-page [class*="bg-gradient-to-"] {
    background: var(--npl-gold);
    background-image: none;
    color: var(--npl-ink);
}
.npl-page .team-card.selected,
.npl-page .option-btn.selected {
    border-color: var(--npl-gold);
    background: #fbf7ea;
    box-shadow: 0 0 0 2px #223f8e35;
}
.npl-page [class*="bg-red-500"],
.npl-page [class*="bg-red-600"],
.npl-page [class*="bg-\[\#e4002b\]"] {
    background: var(--npl-crimson);
}
.npl-page [class*="text-red-500"],
.npl-page [class*="text-red-600"],
.npl-page [class*="text-\[\#e4002b\]"] {
    color: var(--npl-crimson);
}

/* Single, reserved ad position under the featured content. */
.npl-page .npl-ad-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 90px;
    max-width: 100%;
    overflow: hidden;
    margin: 0 auto;
    background: #eef0ed;
    border-bottom: 1px solid var(--npl-line);
}
.npl-page .npl-ad-slot iframe,
.npl-page .npl-ad-slot img {
    max-width: 100%;
}

@media (max-width: 640px) {
    .npl-home .hero h1 {
        font-size: 2.7rem;
    }
    .npl-home .hero .grid {
        gap: 1rem;
    }
    .npl-page .npl-featured-mobile {
        max-width: none;
    }
    .npl-page .npl-match-card {
        padding: 1rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .npl-page *,
    .npl-page *::before,
    .npl-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
