:root {
    --blue: #0278cc;
    --dark-blue: #064c82;
    --cyan: #94d3ff;
    --yellow: #ffeb65;
    --text: #19364d;
    --background: #f4f8fc;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
    color: var(--text);
    background: var(--background);
}

a {
    color: var(--dark-blue);
}

.site-header {
    background: var(--blue);
    color: white;
}

.header-inner {
    max-width: 1200px;
    margin: auto;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    gap: 32px;
}

.brand {
    flex: 0 0 230px;
}

.brand img {
    display: block;
    width: 100%;
    height: auto;
}

.header-message p {
    margin: 0;
    font-size: 1.2rem;
}

.header-message h1 {
    margin: 0;
    color: var(--yellow);
    font-size: clamp(1.8rem, 4vw, 3rem);
}

.main-nav {
    background: var(--dark-blue);
}

.nav-inner {
    max-width: 1200px;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
}

.main-nav a {
    padding: 13px 20px;
    color: white;
    text-decoration: none;
    font-weight: bold;
}

.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a[aria-current="page"] {
    background: var(--blue);
}

.hero {
    background: linear-gradient(120deg, #063a70, #0278cc);
    color: white;
    padding: 85px 24px;
}

.hero-inner {
    max-width: 1100px;
    margin: auto;
}

.eyebrow {
    color: var(--yellow);
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.hero h2 {
    max-width: 800px;
    font-size: clamp(2rem, 5vw, 3.8rem);
    line-height: 1.15;
    margin: 14px 0;
}

.hero p {
    max-width: 680px;
    font-size: 1.15rem;
}

.button {
    display: inline-block;
    margin-top: 20px;
    padding: 13px 22px;
    border-radius: 6px;
    background: var(--yellow);
    color: #17344a;
    text-decoration: none;
    font-weight: bold;
}

.features {
    max-width: 1200px;
    margin: auto;
    padding: 65px 24px;
}

.features h2,
.about h2 {
    font-size: 2rem;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.feature-card {
    padding: 28px;
    background: white;
    border: 1px solid #dbe5ee;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0, 50, 100, .06);
}

.feature-card h3 {
    margin-top: 0;
}

.about {
    background: #e2f2ff;
    padding: 55px 24px;
}

.about-inner {
    max-width: 1000px;
    margin: auto;
}

.site-footer {
    background: #073c66;
    color: white;
    text-align: center;
    padding: 25px;
}

@media (max-width: 750px) {
    .header-inner {
        flex-direction: column;
        text-align: center;
    }

    .brand {
        flex: none;
        width: 220px;
    }

    .nav-inner {
        justify-content: center;
    }

    .main-nav a {
        padding: 11px 12px;
        font-size: .9rem;
    }

    .hero {
        padding: 55px 22px;
    }

    .feature-grid {
        grid-template-columns: 1fr;
    }

    .features {
        padding: 40px 18px;
    }
}

/* NetSport header alignment */
.header-inner {
    max-width: none;
    padding-left: 16px;
    padding-right: 24px;
}

/* NetSport illustrated masthead */
.site-header.netsport-illustrated-header {
    margin: 0;
    padding: 0;
    width: 100%;
}

.netsport-banner-link {
    display: block;
    width: 100%;
    line-height: 0;
    background-color: #003c78;
}

.netsport-banner-link img {
    display: block;
    width: 100%;
    max-width: 1280px;
    height: auto;
    max-height: none;
    margin-inline: auto;
    object-fit: contain;
    object-position: center;
}

/* ==========================================================
   NetSport graphical Photo Galleries navigation
   ========================================================== */

.main-nav.gallery-graphical-nav {
    position: relative;
    z-index: 20;
    width: 100%;
    background: linear-gradient(
        180deg,
        #1688e2 0%,
        #0862ad 20%,
        #034783 65%,
        #022e59 100%
    );
    border-top: 2px solid #62c9ff;
    border-bottom: 5px solid #ffd000;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.65),
        inset 0 -3px 5px rgba(0,0,0,.35),
        0 4px 9px rgba(0,35,75,.35);
}

.gallery-graphical-nav-inner {
    max-width: 1200px;
    min-height: 64px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: wrap;
}

.main-nav.gallery-graphical-nav .nav-inner a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    padding: 13px 22px;
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    text-shadow: 0 2px 3px #001d42;
    border-right: 1px solid rgba(255,255,255,.22);
    box-shadow: inset -1px 0 rgba(0,0,0,.15);
    transition: background .2s ease, color .2s ease;
}

.gallery-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 27px;
    font-size: 25px;
    line-height: 1;
    color: #fff;
    text-shadow: 0 2px 3px #001d42;
}

.main-nav.gallery-graphical-nav .nav-inner a:hover,
.main-nav.gallery-graphical-nav .nav-inner a:focus-visible {
    color: #fff6a0;
    background: linear-gradient(
        180deg,
        #299df3,
        #0873c6 55%,
        #034b87
    );
    outline: none;
}

.main-nav.gallery-graphical-nav .nav-inner a[aria-current="page"] {
    color: #fff;
    background: linear-gradient(
        180deg,
        #299df3,
        #0876ca 50%,
        #034b87
    );
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,.35),
        inset 0 -3px 0 #ffd000;
}

.main-nav.gallery-graphical-nav .nav-inner a:focus-visible {
    outline: 2px solid #ffe45c;
    outline-offset: -4px;
}

@media (max-width: 750px) {
    .gallery-graphical-nav-inner {
        justify-content: center;
    }

    .main-nav.gallery-graphical-nav .nav-inner a {
        flex: 1 1 45%;
        min-width: 145px;
        padding: 12px 10px;
        font-size: .9rem;
    }

    .gallery-nav-icon {
        font-size: 21px;
        min-width: 23px;
    }
}

/* NetSport graphical gallery navigation */
.main-nav.gallery-graphical-nav {
    position: relative;
    z-index: 20;
    width: 100%;
    background: linear-gradient(
        180deg,
        #1688e2 0%,
        #0862ad 25%,
        #034783 70%,
        #022e59 100%
    );
    border-top: 2px solid #62c9ff;
    border-bottom: 5px solid #ffd000;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.65),
        inset 0 -3px 5px rgba(0,0,0,.35),
        0 4px 9px rgba(0,35,75,.35);
}

.gallery-graphical-nav-inner {
    max-width: 1200px;
    min-height: 62px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}

.main-nav.gallery-graphical-nav .nav-inner a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 22px;
    color: white;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    text-shadow: 0 2px 3px #001d42;
    border-right: 1px solid rgba(255,255,255,.22);
    transition: background .2s ease, color .2s ease;
}

.gallery-nav-icon {
    font-size: 25px;
    line-height: 1;
    color: white;
}

.main-nav.gallery-graphical-nav .nav-inner a:hover,
.main-nav.gallery-graphical-nav .nav-inner a:focus-visible {
    color: #fff6a0;
    background: linear-gradient(180deg,#299df3,#034b87);
}

.main-nav.gallery-graphical-nav .nav-inner a[aria-current="page"] {
    background: linear-gradient(180deg,#299df3,#034b87);
    box-shadow: inset 0 -3px 0 #ffd000;
}

@media (max-width: 750px) {
    .gallery-graphical-nav-inner {
        justify-content: center;
    }

    .main-nav.gallery-graphical-nav .nav-inner a {
        flex: 1 1 45%;
        min-width: 145px;
        padding: 12px 10px;
        font-size: .9rem;
    }

    .gallery-nav-icon {
        font-size: 21px;
    }
}

/* Compact NetSport gallery navigation */
.gallery-graphical-nav-inner {
    min-height: 43px !important;
}

.main-nav.gallery-graphical-nav .nav-inner a {
    padding: 8px 19px !important;
    font-size: 14px !important;
}

.gallery-nav-icon {
    font-size: 20px !important;
}

.main-nav.gallery-graphical-nav {
    border-top-width: 1px;
    border-bottom-width: 4px;
}

/* NetSport global thin fixed footer */
.site-footer {
    position: fixed !important;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 5px 10px !important;
    background: #0b3b61;
    color: #fff;
    text-align: center;
    font: 12px Arial, sans-serif;
    line-height: 16px;
}

.site-footer p {
    margin: 0 !important;
    padding: 0 !important;
}

/* NetSport footer: blue navigation gradient and gold accent */
.site-footer {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100 !important;

    min-height: 0 !important;
    margin: 0 !important;
    padding: 5px 10px !important;

    background: linear-gradient(
        to bottom,
        #1688d0 0%,
        #0870b6 35%,
        #004780 75%,
        #002c55 100%
    ) !important;

    border-top: 3px solid #ffd400 !important;
    color: #ffffff !important;
    text-align: center !important;
    font: 12px Arial, sans-serif !important;
    line-height: 16px !important;
}

.site-footer p {
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
}


/* NetSport Series Editor */

.series-edit {
    width: 600px;
    max-width: calc(100% - 16px);
    margin: 10px auto 30px;
    font: 12px Arial, sans-serif;
    color: #173c58;
}

.series-edit h1 {
    margin: 6px 0 12px;
    font-size: 19px;
    text-align: center;
}

.series-edit form {
    border: 1px solid #5299df;
    background: #e5f1fc;
    padding: 12px;
}

.series-edit label {
    display: block;
    margin: 9px 0 3px;
    font-weight: bold;
}

.series-edit input,
.series-edit select {
    width: 100%;
    box-sizing: border-box;
    padding: 5px;
    font: inherit;
}

.series-edit .readonly {
    background: #f4f7fa;
    border: 1px solid #9db7ce;
    padding: 6px;
}

.series-edit button {
    margin-top: 12px;
    padding: 5px 14px;
    cursor: pointer;
}

.series-edit .success {
    color: #176327;
    font-weight: bold;
}

.series-edit .error {
    color: #a00000;
    font-weight: bold;
}

.series-edit .links {
    text-align: center;
}

/* =========================================================
   NETSPORT GALLERY MANAGEMENT: SERIES EDITOR
   ========================================================= */

.series-edit {
    width: 960px;
    max-width: calc(100% - 16px);
    margin: 8px auto 24px;
    font: 12px Arial, sans-serif;
    color: #173c58;
}

.series-edit h1 {
    margin: 5px 0 10px;
    font-size: 19px;
    text-align: center;
}

.series-edit h2 {
    margin: 0 0 7px;
    padding: 5px 7px;
    color: #fff;
    background: #285a83;
    font-size: 14px;
}

.series-edit-back {
    margin: 5px 0;
    text-align: center;
}

.series-information,
.series-pages {
    margin: 8px 0 12px;
    padding: 8px;
    border: 1px solid #5299df;
    background: #e5f1fc;
}

.series-information-table,
.series-pages-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.series-information-table th,
.series-information-table td,
.series-pages-table th,
.series-pages-table td {
    padding: 4px 6px;
    border: 1px solid #a8c4dc;
    text-align: left;
    vertical-align: middle;
}

.series-information-table th {
    width: 145px;
    background: #d1e5f6;
}

.series-information-table input,
.series-information-table select,
.series-pages-table input {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 4px;
    font: inherit;
}

.series-information-table select {
    max-width: 360px;
}

.series-pages-table thead th,
.series-pages-table tfoot th {
    background: #d1e5f6;
    font-weight: bold;
}

.series-pages-table tbody tr:nth-child(even) {
    background: #f2f7fc;
}

.series-pages-table .series-page-number {
    width: 65px;
    text-align: center;
    font-weight: bold;
}

.series-pages-table tfoot td {
    background: #eaf3fb;
}

.series-edit-actions {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 9px;
}

.series-edit-actions button {
    padding: 6px 13px;
    cursor: pointer;
}

.series-edit-success {
    color: #176327;
    font-weight: bold;
}

.series-edit-error {
    color: #a00000;
    font-weight: bold;
}

@media (max-width: 650px) {
    .series-pages-table {
        font-size: 11px;
    }

    .series-pages-table th,
    .series-pages-table td {
        padding: 3px;
    }

    .series-information-table th {
        width: 105px;
    }
}

/* Series Pages: allocate space according to field content. */

.series-pages-table {
    table-layout: fixed;
}

.series-pages-table thead th:nth-child(1) {
    width: 8%;
}

.series-pages-table thead th:nth-child(2) {
    width: 20%;
}

.series-pages-table thead th:nth-child(3) {
    width: 20%;
}

.series-pages-table thead th:nth-child(4) {
    width: 52%;
}


/* NetSport Public Photo Archives */
        /* Match the existing NetSport album background */
        body {
            background-color: #a4d5f4 !important;
            background-image:
                radial-gradient(circle at 1px 1px,
                    rgba(255,255,255,.32) .7px,
                    transparent 1px),
                radial-gradient(circle at 3px 3px,
                    rgba(37,95,145,.12) .6px,
                    transparent 1px) !important;
            background-size: 6px 6px, 9px 9px !important;
        }
        .gallery-archive {
            max-width: 940px;
            margin: 20px auto 35px;
            padding: 0 15px;
            color: #163b58;
            font-family: Arial, sans-serif;
        }

        .gallery-archive h1 {
            text-align: center;
            font-size: 23px;
            margin: 12px 0;
        }

        .gallery-archive-intro {
            text-align: center;
            font-size: 14px;
            margin: 10px auto 25px;
            line-height: 1.5;
        }

        .gallery-organization {
            display: grid;
            grid-template-columns: 115px minmax(0, 1fr);
            gap: 12px;
            align-items: center;
            margin: 18px 0 25px;
        }

        .gallery-organization-logo {
            text-align: center;
        }

        .gallery-organization-logo img {
            display: block;
            max-width: 100px;
            max-height: 105px;
            width: auto;
            height: auto;
            margin: auto;
            object-fit: contain;
        }

        .gallery-organization-table {
            min-width: 0;
        }

        .gallery-organization-heading {
            background: #0875c6;
            color: white;
            text-align: center;
            font-size: 15px;
            font-weight: bold;
            padding: 5px 8px;
            margin-bottom: 10px;
            border: 1px solid #005b9d;
        }

        .gallery-archive table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            line-height: 1.2;
            background: #fff;
        }

        .gallery-archive th,
        .gallery-archive td {
            border: 1px solid #2686cf;
            padding: 3px 7px;
        }

        .gallery-archive th {
            background: #eaf5ff;
            color: #142c41;
            text-align: left;
            font-weight: normal;
        }

        .gallery-archive tbody tr:nth-child(even) {
            background: #d8ebfc;
        }

        .gallery-series {
            width: 72px;
            text-align: center;
            font-weight: bold;
            white-space: nowrap;
        }

        .gallery-pictures {
            width: 95px;
            text-align: right;
            font-weight: bold;
            white-space: nowrap;
        }

        .gallery-description a {
            color: #cf2020;
            text-decoration: none;
            font-weight: bold;
        }

        .gallery-description a:hover {
            text-decoration: underline;
        }

        .gallery-organization-total {
            font-size: 12px;
            padding: 5px 8px;
        }

        @media (max-width: 600px) {
            .gallery-organization {
                grid-template-columns: 1fr;
                gap: 8px;
            }

            .gallery-organization-logo img {
                max-height: 75px;
            }

            .gallery-archive {
                padding: 0 8px;
            }

            .gallery-archive table {
                font-size: 12px;
            }

            .gallery-archive th,
            .gallery-archive td {
                padding: 3px 4px;
            }

            .gallery-series {
                width: 48px;
            }

            .gallery-pictures {
                width: 65px;
            }
        }

/* Public archives: match the centered maintenance gallery layout. */
.gallery-archive {
    max-width: 760px;
    margin: 12px auto 35px;
    padding: 0 12px;
}

.gallery-organization {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 12px;
    margin: 16px 0 24px;
}

.gallery-organization-logo img {
    max-width: 78px;
    max-height: 85px;
}

@media (max-width: 600px) {
    .gallery-archive {
        max-width: 100%;
        padding: 0 8px;
    }

    .gallery-organization {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* Public Photo Archives: match Gallery Management organization layout. */
.gallery-archive {
    max-width: 760px;
    margin: 12px auto 35px;
    padding: 0 12px;
}

.gallery-organization {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 8px;
    align-items: center;
    margin: 16px 0 24px;
}

.gallery-organization-heading {
    grid-column: 1 / -1;
    margin: 0;
}

.gallery-organization-logo {
    grid-column: 1;
    grid-row: 2;
}

.gallery-organization-table {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}

.gallery-organization-logo img {
    max-width: 78px;
    max-height: 85px;
}

@media (max-width: 600px) {
    .gallery-organization {
        grid-template-columns: 1fr;
    }

    .gallery-organization-heading,
    .gallery-organization-logo,
    .gallery-organization-table {
        grid-column: 1;
        grid-row: auto;
    }
}


/* NetSport centralized inline styles: STEP 01-015 */

/* gallery/photo_index.php */

        .photo-index-container {
            max-width: 1150px;
            margin: 0 auto;
            padding: 28px 18px 50px;
        }

        .photo-index-container h2 {
            margin-bottom: 6px;
        }

        .photo-index-container h3 {
            margin-top: 0;
        }

        .photo-index-search {
            width: 100%;
            max-width: 520px;
            padding: 12px;
            margin: 20px 0 10px;
            border: 1px solid #9aafc5;
            border-radius: 5px;
            font-size: 16px;
        }

        .photo-index-status {
            margin-bottom: 15px;
        }

        .photo-index-scroll {
            overflow-x: auto;
        }

        .photo-index-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
        }

        .photo-index-table th {
            background: #174d8c;
            color: #fff;
            padding: 11px;
            text-align: left;
        }

        .photo-index-table td {
            padding: 10px;
            border-bottom: 1px solid #c6d4e3;
            vertical-align: top;
        }

        .photo-index-table tbody tr:nth-child(even) {
            background: #eef4fa;
        }

        .photo-index-table tbody tr:hover {
            background: #dcecff;
        }

        .photo-index-table a {
            font-weight: bold;
        }

        .photo-index-description {
            white-space: pre-line;
        }

        .photo-index-range {
            white-space: nowrap;
        }

        .photo-index-date {
            white-space: nowrap;
        }

        .photo-index-empty {
            padding: 20px 0;
        }

        @media (max-width: 650px) {
            .photo-index-table {
                font-size: 12px;
            }

            .photo-index-table th,
            .photo-index-table td {
                padding: 7px 5px;
            }
        }
    

.photo-index-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    line-height: 1 !important;
}
.photo-index-table th {
    padding: 1px 4px !important;
    line-height: 1.05 !important;
    height: auto !important;
}
.photo-index-table td {
    padding: 1px 5px !important;
    line-height: 1.05 !important;
    height: auto !important;
    vertical-align: middle !important;
}
.photo-index-table td.photo-index-description {
    vertical-align: top !important;
    white-space: pre-line !important;
    line-height: 1.05 !important;
}
.photo-index-table td * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    line-height: inherit !important;
}


.photo-index-table tbody td {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}


        .classic-index-heading { margin-bottom: 2px; }
        .photo-index-scroll { margin-top: 0; }
        .photo-index-table {
            border-collapse: collapse;
            line-height: 1.1;
        }
        .photo-index-table th {
            padding: 2px 4px;
            line-height: 1.1;
        }
        .photo-index-table td {
            padding: 2px 6px;
            line-height: 1.15;
        }
        .photo-index-table td p { margin: 0; }
        .photo-index-description {
            white-space: pre-line;
            line-height: 1.15;
        }
    

        body.ns-gallery-photo_index { background: #99d3ff; }
        .photo-index-container {
            max-width: none;
            margin: 0;
            padding: 12px 12px 30px;
            color: navy;
        }
        .classic-index-heading {
            display: grid;
            grid-template-columns: 120px minmax(0, 1fr) 120px;
            align-items: start;
            gap: 12px;
            margin-bottom: 8px;
        }
        .classic-index-heading img {
            width: 110px;
            height: 110px;
            object-fit: contain;
        }
        .classic-index-heading img:last-child {
            justify-self: end;
        }
        .classic-index-title { text-align: center; }
        .classic-index-title h2 {
            font-family: Georgia, serif;
            font-size: clamp(24px, 3vw, 36px);
            color: navy;
            border-top: 1px solid navy;
            border-bottom: 1px solid navy;
            margin: 20px 0 0;
            padding: 0;
            line-height: 1.15;
        }
        .classic-index-title h3 {
            font-size: 20px;
            color: #376cc9;
            margin: 0;
            line-height: 1.2;
        }
        .photo-index-container > p { margin: 5px 0; }
        .photo-index-search {
            margin: 5px 0;
            padding: 5px 8px;
            max-width: 380px;
            font-size: 14px;
        }
        .photo-index-status { margin: 3px 0 7px; }
        .photo-index-scroll {
            max-width: 905px;
            margin: 0 auto;
        }
        .photo-index-table {
            font-family: Arial, sans-serif;
            font-size: 14px;
            border-collapse: collapse;
            color: navy;
        }
        .photo-index-table th {
            background: #0067c9;
            border: 2px solid #99d3ff;
            padding: 2px 5px;
            text-align: center;
        }
        .photo-index-table td {
            border: 1px solid navy;
            padding: 5px 8px;
            background: #dfe9ff;
        }
        .photo-index-table tbody tr:nth-child(even) td {
            background: #cddfff;
        }
        .photo-index-table td:first-child { text-align: center; }
        .photo-index-range a { color: #e22; }
        .photo-index-description { white-space: pre-line; }
        @media (max-width: 650px) {
            .classic-index-heading {
                grid-template-columns: 55px minmax(0, 1fr) 55px;
                gap: 4px;
            }
            .classic-index-heading img { width: 52px; height: 52px; }
            .classic-index-title h2 { font-size: 21px; margin-top: 5px; }
            .classic-index-title h3 { font-size: 14px; }
            .photo-index-container { padding: 8px 5px; }
        }
    

/* gallery/album.php */

        .album-container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 30px 20px;
        }
        .album-back { margin-bottom: 18px; }
        .album-description {
            padding: 16px;
            margin: 20px 0;
            background: #edf3f9;
            border-left: 4px solid #275a89;
        }
        .album-photos {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            gap: 18px;
            margin: 25px 0;
        }
        .album-photo {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            gap: 8px;
        }
        .album-photo img {
            max-width: 100%;
            height: 180px;
            object-fit: contain;
            border-radius: 4px;
        }
        .album-pagination {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-wrap: wrap;
            gap: 14px;
            margin: 25px 0;
        }
        .album-pagination a {
            padding: 9px 15px;
            background: #275a89;
            color: white;
            border-radius: 4px;
            text-decoration: none;
        }
    

.album-container {
    padding-top: 8px !important;
}
.album-classic-header {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) 110px;
    align-items: center;
    gap: 12px;
    max-width: 760px;
    margin: 0 auto 8px;
    text-align: center;
    color: #753600;
}
.album-classic-header img {
    width: 100px;
    height: 100px;
    object-fit: contain;
}
.album-classic-header img:last-child {
    justify-self: end;
}
.album-classic-header h2 {
    margin: 0 !important;
    font-size: 23px;
    line-height: 1.15;
    color: #753600;
}
.album-organization-name {
    margin: 0;
    font-size: 20px;
    line-height: 1.15;
}
.album-page-number {
    margin: 0;
    font-size: 23px;
    line-height: 1.15;
}
@media (max-width: 600px) {
    .album-classic-header {
        grid-template-columns: 55px minmax(0, 1fr) 55px;
        gap: 5px;
    }
    .album-classic-header img {
        width: 52px;
        height: 52px;
    }
    .album-classic-header h2 { font-size: 17px; }
    .album-organization-name { font-size: 14px; }
    .album-page-number { font-size: 16px; }
}


.album-pagination.gallery-toolbar {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
    margin: 8px auto !important;
    padding: 5px;
    background: linear-gradient(#64717e, #202833);
    border: 1px solid #17212b;
    border-radius: 11px;
    box-shadow: 0 3px 7px #0004, inset 0 1px #ffffff70;
}
.gallery-toolbar .gallery-nav-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    min-height: 33px;
    padding: 5px 14px;
    border: 1px solid #6d111e;
    border-radius: 7px;
    background: linear-gradient(#f05066 0%, #b71932 46%, #720c21 100%);
    box-shadow: inset 0 1px #ffffff70, 0 2px 3px #0005;
    color: #fff;
    font: 700 12px Arial, sans-serif;
    letter-spacing: .3px;
    text-decoration: none;
    white-space: nowrap;
    text-shadow: 0 1px 2px #0009;
}
.gallery-toolbar a.gallery-nav-button:hover {
    background: linear-gradient(#ff7181, #d52b45 48%, #92142b);
    color: white;
    transform: translateY(-1px);
}
.gallery-toolbar a.gallery-nav-button:focus-visible {
    outline: 3px solid #ffdf64;
    outline-offset: 2px;
}
.gallery-toolbar .gallery-nav-button.is-disabled {
    background: linear-gradient(#777, #444);
    border-color: #555;
    color: #ddd;
    opacity: .55;
    box-shadow: none;
    cursor: default;
}
@media (max-width: 520px) {
    .gallery-toolbar .gallery-nav-button {
        padding: 5px 9px;
        font-size: 11px;
    }
}


.album-photos {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 3px !important;
    max-width: 875px;
    margin: 12px auto !important;
    padding: 0;
}
.album-photos .album-photo {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    height: 245px;
    padding: 3px;
    box-sizing: border-box;
    border: 1px solid #649ac3;
    border-radius: 0;
    background: #99d3ff;
    text-align: center;
    text-decoration: none;
    gap: 2px;
}
.album-photos .album-photo img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 218px;
    object-fit: contain;
    border-radius: 0;
    margin: auto;
}
.album-photos .album-photo span {
    display: block;
    width: 100%;
    margin-top: auto;
    font: bold 12px Arial, sans-serif;
    line-height: 16px;
    color: #bd1830;
}
.album-photos .album-photo:hover {
    background: #b8e2ff;
    border-color: #005eae;
}
@media (max-width: 650px) {
    .album-photos {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    .album-photos .album-photo { height: 190px; }
    .album-photos .album-photo img { max-height: 165px; }
}
@media (max-width: 400px) {
    .album-photos {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* NetSport fine blue grain background */
body.ns-gallery-album {
    background-color: #a4d5f4 !important;
    background-image:
        radial-gradient(circle at 1px 1px,
            rgba(255,255,255,.32) .7px,
            transparent 1px),
        radial-gradient(circle at 3px 3px,
            rgba(37,95,145,.12) .6px,
            transparent 1px) !important;
    background-size: 6px 6px, 9px 9px !important;
}
.album-photos .album-photo {
    background-color: #b4ddf7 !important;
}
.album-photos .album-photo:hover {
    background-color: #cceaff !important;
}


/* Center photographs while keeping labels at the bottom */
.album-photos .album-photo {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) 18px;
    justify-items: center;
    align-items: center;
    gap: 0 !important;
}
.album-photos .album-photo img {
    grid-row: 1;
    align-self: center !important;
    justify-self: center !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
}
.album-photos .album-photo span {
    grid-row: 2;
    align-self: center;
    justify-self: stretch;
    margin: 0 !important;
    line-height: 18px;
}


/* maintain/login.php */

.maint-panel {
    max-width: 390px;
    margin: 45px auto 70px;
    padding: 24px;
    background: #fff;
    border: 1px solid #9bb9cc;
    border-radius: 6px;
    box-shadow: 0 3px 12px #0002;
}
.maint-panel h1 { font-size: 22px; margin-top: 0; }
.maint-panel label { display: block; margin-top: 14px; }
.maint-panel input {
    width: 100%;
    box-sizing: border-box;
    padding: 9px;
    margin-top: 5px;
}
.maint-panel button {
    margin-top: 20px;
    padding: 9px 20px;
    background: #0067a8;
    border: 0;
    border-radius: 4px;
    color: white;
    cursor: pointer;
}
.maint-error { color: #a00000; }


/* maintain/index.php */

.maint-wrap {
    max-width: 850px;
    margin: 35px auto 70px;
    padding: 24px;
    background: white;
    border: 1px solid #9bb9cc;
    border-radius: 6px;
}
.maint-menu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
    margin-top: 25px;
}
.maint-menu a {
    display: block;
    padding: 20px;
    text-align: center;
    background: #0067a8;
    color: white;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
}
.maint-menu a:hover { background: #004b7c; }
.maint-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}


/* maintain/gallery_organizations.php */

.org-admin {
    max-width: 1050px;
    margin: 28px auto 80px;
    padding: 22px;
    background: white;
    border: 1px solid #9bb9cc;
    border-radius: 6px;
}
.org-admin table {
    width: 100%;
    border-collapse: collapse;
}
.org-admin th, .org-admin td {
    padding: 10px;
    border-bottom: 1px solid #d7e4ee;
    text-align: left;
}
.org-admin th { background: #e8f2fa; }
.org-admin .org-logo {
    max-width: 110px;
    max-height: 65px;
    object-fit: contain;
}
.org-admin .count { text-align: center; }
.org-admin .actions { white-space: nowrap; }


/* maintain/gallery_organization_edit.php */

.org-edit {
    width: 600px;
    max-width: calc(100% - 16px);
    margin: 10px auto 45px;
    font: 12px Arial, sans-serif;
}
.org-edit h1 {
    margin: 6px 0;
    font-size: 19px;
}
.org-edit form {
    border: 1px solid #5299df;
    background: #e5f1fc;
    padding: 10px;
}
.org-edit label {
    display: block;
    margin: 8px 0 3px;
    font-weight: bold;
}
.org-edit input,
.org-edit select {
    width: 100%;
    box-sizing: border-box;
    padding: 5px;
}
.org-edit button {
    margin-top: 10px;
    padding: 5px 14px;
}
.org-edit .logo-preview {
    margin: 8px 0;
    min-height: 40px;
}
.org-edit .logo-preview img {
    max-width: 130px;
    max-height: 100px;
    object-fit: contain;
}
.org-edit .success { color: #176327; }
.org-edit .error { color: #a00000; }


/* maintain/gallery.php */

.gallery-admin {
    width: 704px;
    max-width: calc(100% - 12px);
    margin: 10px auto 42px;
    font: 12px Arial, sans-serif;
    color: #173c58;
}
.gallery-admin h1 {
    margin: 5px 0;
    font-size: 19px;
    text-align: center;
}
.gallery-admin .intro {
    margin: 5px 0 12px;
    text-align: center;
}
.gallery-admin .admin-links {
    margin: 5px 0 10px;
    text-align: center;
}
.gallery-admin section {
    margin: 12px 0 17px;
}
.gallery-admin h2 {
    margin: 0 0 7px;
    padding: 8px 6px;
    background: #0872be;
    color: #fff;
    font-size: 13px;
    text-align: center;
}
.gallery-admin .org-content {
    display: grid;
    grid-template-columns: 95px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}
.gallery-admin .org-logo {
    text-align: center;
}
.gallery-admin .org-logo img {
    max-width: 88px;
    max-height: 95px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.gallery-admin .table-scroll {
    overflow-x: auto;
}
.gallery-admin table {
    width: 100%;
    border-collapse: collapse;
    font: 12px Arial, sans-serif;
}
.gallery-admin th,
.gallery-admin td {
    padding: 3px 5px;
    border: 1px solid #5299df;
    line-height: 15px;
    text-align: left;
}
.gallery-admin th {
    background: #e5f1fc;
    font-weight: normal;
}
.gallery-admin tbody tr:nth-child(odd) {
    background: #fff;
}
.gallery-admin tbody tr:nth-child(even) {
    background: #d4e9fa;
}
.gallery-admin .number {
    text-align: right;
    white-space: nowrap;
}
.gallery-admin .actions {
    text-align: center;
    white-space: nowrap;
}
.gallery-admin .visible {
    color: #176327;
}
.gallery-admin .hidden {
    color: #a00000;
}
@media (max-width: 650px) {
    .gallery-admin .org-content {
        grid-template-columns: 1fr;
    }
    .gallery-admin .org-logo img {
        max-height: 55px;
    }
    .gallery-admin table {
        min-width: 570px;
    }
}


/* maintain/gallery_thumbs.php */

.thumb-admin {
    padding: 12px 16px 16px;
    color: #17354b;
}
.thumb-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.thumb-heading h1 {
    margin: 0;
    font-size: 25px;
    line-height: 1.2;
}
.thumb-heading a {
    font-weight: bold;
}
.thumb-status {
    padding: 11px 14px;
    margin-bottom: 12px;
    border: 1px solid #7599b0;
    border-left: 5px solid #16669c;
    border-radius: 5px;
    background: #eaf5fc;
    font-weight: bold;
}
.thumb-status[hidden] {
    display: none;
}
.thumb-status.success {
    background: #e4f5df;
    border-color: #7aa56b;
    border-left-color: #168128;
    color: #174b20;
}
.thumb-status.error {
    background: #ffe5e5;
    border-color: #cc7777;
    border-left-color: #bd1717;
    color: #8a1010;
}
.thumb-layout {
    display: grid;
    grid-template-columns: minmax(0, 560px) minmax(0, 560px);
    gap: 12px;
    justify-content: center;
    max-width: 1140px;
    margin: 0 auto;
    align-items: start;
}
.thumb-panel {
    background: #f5fbff;
    border: 1px solid #6e9dc0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 10px;
}
.thumb-panel h2 {
    margin: 0;
    padding: 7px 11px;
    background: linear-gradient(#1267a9, #073e77);
    color: #fff;
    border-bottom: 2px solid #e7c628;
    font-size: 18px;
    line-height: 1.25;
}
.thumb-panel-body {
    padding: 9px 11px;
}
.thumb-info {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.thumb-info th,
.thumb-info td {
    padding: 6px 9px;
    border: 1px solid #a8bdc8;
    text-align: left;
    vertical-align: top;
}
.thumb-info th {
    width: 42%;
    background: #e2f0f5;
    white-space: nowrap;
}
.thumb-info td {
    background: #fff;
}
.thumb-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
}
.thumb-actions p {
    margin: 0;
    line-height: 1.5;
    flex: none;
}
.thumb-buttons {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.thumb-buttons button {
    padding: 9px 15px;
    background: linear-gradient(#177bc4, #064c91);
    color: #fff;
    border: 1px solid #034478;
    border-radius: 5px;
    font-weight: bold;
    cursor: pointer;
}
.thumb-buttons button:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.thumb-progress-track {
    width: 100%;
    height: 25px;
    display: block;
    accent-color: #16833a;
}
.thumb-progress-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
}
.thumb-stat {
    padding: 7px;
    background: #e9f3f9;
    border: 1px solid #b1cbd9;
    border-radius: 4px;
    text-align: center;
    min-width: 0;
}
.thumb-stat strong {
    display: block;
    font-size: 12px;
}
.thumb-stat span {
    display: block;
    margin-top: 3px;
    font-size: 15px;
    font-weight: bold;
    overflow-wrap: anywhere;
}
.thumb-file {
    margin: 8px 0 0;
    font-size: 13px;
    overflow-wrap: anywhere;
}
.thumb-note {
    font-size: 13px;
    margin: 7px 0 0;
}
@media (max-width: 850px) {
    .thumb-layout {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 520px) {
    .thumb-admin {
        padding: 9px;
    }
    .thumb-progress-stats {
        grid-template-columns: 1fr;
    }
    .thumb-info th {
        white-space: normal;
    }
}


/* Replaces the three inline action-cell alignments. */
.org-admin th.ns-text-center,
.org-admin td.ns-text-center,
.gallery-admin th.ns-text-center {
    text-align: center;
}



/* NETSPORT HOME MOSAIC - BEGIN */
.netsport-photo-home .ns-home-mosaic { max-width: 1400px; margin: 0 auto; padding: 24px 24px 55px; }
.netsport-photo-home .ns-home-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.netsport-photo-home .ns-home-heading h1 { position: relative; color: #002c59; font-size: clamp(28px, 3vw, 42px); font-style: italic; line-height: 1.2; margin: 0; padding-bottom: 12px; }
.netsport-photo-home .ns-home-heading h1::after { content: ''; position: absolute; bottom: 0; left: 0; width: 86%; height: 5px; border-radius: 80% 15%; background: #ffe000; transform: rotate(-2deg); }
.netsport-photo-home .ns-home-heading a { color: #004887; font-size: 17px; font-weight: bold; }
.netsport-photo-home .ns-home-photos { display: grid; grid-template-columns: 1.55fr 1fr; grid-template-rows: 240px 240px 190px; gap: 14px; }
.netsport-photo-home .ns-home-photo { position: relative; display: block; min-width: 0; overflow: hidden; border: 5px solid #fff9e9; background: #063b68; box-shadow: 0 5px 10px #003b5b55; color: white; text-decoration: none; }
.netsport-photo-home .ns-home-photo:first-child { grid-row: span 2; }
.netsport-photo-home .ns-home-photo:nth-child(4) { grid-column: 1 / -1; margin: 9px 18px 0; transform: rotate(-0.8deg); }
.netsport-photo-home .ns-home-scene { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; transition: transform 220ms ease; }
.netsport-photo-home .ns-home-photo:hover .ns-home-scene { transform: scale(1.025); }
.netsport-photo-home .ns-home-photo:focus-visible { outline: 4px solid #ffdc00; outline-offset: 4px; }
.netsport-photo-home .ns-home-badge { position: absolute; z-index: 1; left: 20px; bottom: 55px; width: 24%; max-width: 160px; height: auto; max-height: 150px; object-fit: contain; filter: drop-shadow(0 1px 2px #fff) drop-shadow(0 3px 5px #001a36aa); }
.netsport-photo-home .ns-home-photo:nth-child(n+2) .ns-home-badge { left: auto; right: 18px; bottom: 40px; max-height: 130px; }
.netsport-photo-home .ns-home-photo:nth-child(4) .ns-home-badge { bottom: 25px; right: 25px; max-height: 140px; }
.netsport-photo-home .ns-home-caption { position: absolute; inset: auto 0 0; min-height: 62px; box-sizing: border-box; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 28px 17px 12px; background: linear-gradient(transparent, #001b43e8 65%); color: white; text-shadow: 0 1px 2px #00132b; }
.netsport-photo-home .ns-home-caption strong { font-size: 18px; font-style: italic; line-height: 1.2; }
.netsport-photo-home .ns-home-caption > span { white-space: nowrap; font-size: 15px; }
.netsport-photo-home .ns-home-about { margin: 26px 0 0; text-align: center; color: #1f4a68; font-size: 13px; }
@media (max-width: 800px) {
.netsport-photo-home .ns-home-mosaic { padding: 20px 16px 55px; }
.netsport-photo-home .ns-home-photos { grid-template-rows: 200px 200px 165px; }
.netsport-photo-home .ns-home-caption { flex-wrap: wrap; gap: 4px; padding: 24px 10px 9px; }
.netsport-photo-home .ns-home-caption strong { font-size: 16px; }
.netsport-photo-home .ns-home-caption > span { font-size: 13px; }
.netsport-photo-home .ns-home-badge { width: 30%; }
}
@media (max-width: 580px) {
.netsport-photo-home .ns-home-heading { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.netsport-photo-home .ns-home-heading a { font-size: 15px; }
.netsport-photo-home .ns-home-photos { display: flex; flex-direction: column; gap: 16px; }
.netsport-photo-home .ns-home-photo { height: 260px; }
.netsport-photo-home .ns-home-photo:first-child { height: 310px; }
.netsport-photo-home .ns-home-photo:nth-child(4) { margin: 4px 3px 0; height: 240px; }
.netsport-photo-home .ns-home-badge { max-height: 115px; }
.netsport-photo-home .ns-home-caption { min-height: 74px; }
}
@media (prefers-reduced-motion: reduce) {
.netsport-photo-home .ns-home-scene { transition: none; }
.netsport-photo-home .ns-home-photo:hover .ns-home-scene { transform: none; }
}
/* NETSPORT HOME MOSAIC - END */

/* NETSPORT UPCOMING - BEGIN */
.netsport-photo-home .ns-home-upcoming {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 0 12px;
    overflow: hidden;
    border: 1px solid #86d8ff;
    border-radius: 8px;
    color: #fff;
    background: linear-gradient(115deg, #0040a0, #002365 48%, #004aaa);
    box-shadow: inset 0 2px 6px #5bc6ff99, 0 3px 9px #00365b44;
}

.netsport-photo-home .ns-home-upcoming::after {
    position: absolute;
    z-index: -1;
    left: -10%;
    bottom: -51px;
    width: 120%;
    height: 64px;
    border: 5px solid #ffdc00;
    border-radius: 50%;
    box-shadow: 0 -3px 0 #069ee9;
    box-sizing: border-box;
    content: '';
    pointer-events: none;
}

.netsport-photo-home .ns-product {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 9px 20px 12px;
}

.netsport-photo-home .ns-product + .ns-product::before {
    position: absolute;
    left: 0;
    top: -15px;
    bottom: -15px;
    width: 4px;
    background: #ffdc00;
    content: '';
    transform: skewX(-25deg);
}

.netsport-photo-home .ns-product-mark {
    position: relative;
    display: block;
    flex: 0 0 50px;
    height: 42px;
    border-right: 1px solid #c1eaff99;
}

.netsport-photo-home .ns-product-mark::before {
    position: absolute;
    left: 7px;
    top: 7px;
    width: 27px;
    height: 27px;
    border: 2px solid #ffdc00;
    box-sizing: border-box;
    content: '';
    transform: rotate(45deg);
}

.netsport-photo-home .ns-product-mark i {
    position: absolute;
    width: 6px;
    height: 6px;
    border: 1px solid #08295a;
    box-sizing: border-box;
    background: #fff9e6;
    transform: rotate(45deg);
}

.netsport-photo-home .ns-product-mark i:nth-child(1) {
    left: 18px;
    top: 0;
}

.netsport-photo-home .ns-product-mark i:nth-child(2) {
    left: 36px;
    top: 18px;
}

.netsport-photo-home .ns-product-mark i:nth-child(3) {
    left: 18px;
    top: 36px;
}

.netsport-photo-home .ns-product-mark i:nth-child(4) {
    left: 0;
    top: 18px;
}

.netsport-photo-home .ns-product-copy {
    min-width: 0;
}

.netsport-photo-home .ns-product-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 9px;
}

.netsport-photo-home .ns-product h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(17px, 1.25vw, 22px);
    font-weight: bold;
    font-style: italic;
    line-height: 1.05;
    text-shadow: 0 2px 2px #001b53;
}

.netsport-photo-home .ns-upcoming-status {
    display: inline-block;
    padding: 3px 6px;
    border-radius: 3px;
    background: #ffdf00;
    color: #092349;
    font-size: 10px;
    font-weight: bold;
    font-style: italic;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
    transform: skewX(-7deg);
}

.netsport-photo-home .ns-product p {
    margin: 4px 0 0;
    color: #9ee7ff;
    font-size: 13px;
    font-weight: 600;
    font-style: italic;
    line-height: 1.2;
}

@media (max-width: 760px) {
    .netsport-photo-home .ns-home-upcoming {
        grid-template-columns: 1fr;
    }

    .netsport-photo-home .ns-product {
        padding: 9px 14px 12px;
    }

    .netsport-photo-home .ns-product + .ns-product::before {
        left: 14px;
        right: 14px;
        top: 0;
        bottom: auto;
        width: auto;
        height: 1px;
        background: #ffdc0099;
        transform: none;
    }
}
/* NETSPORT UPCOMING - END */

/* NETSPORT BASEBALL WEBSITES - BEGIN */
.ns-baseball {
    width: min(1100px, calc(100% - 32px));
    margin: 26px auto 48px;
}

.ns-baseball-heading {
    padding: 24px clamp(16px, 4vw, 36px);
    margin-bottom: 18px;
    color: #fff;
    background: linear-gradient(120deg, #06305f, #075b9c);
    border-bottom: 4px solid #ffd633;
    border-radius: 8px;
}

.ns-baseball-heading p { margin: 0; }
.ns-baseball-kicker {
    color: #ffe673;
    font-size: .8rem;
    font-weight: bold;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ns-baseball-heading h1 {
    margin: 4px 0 8px;
    color: inherit;
    font-size: clamp(1.65rem, 4vw, 2.6rem);
    line-height: 1.15;
}

.ns-baseball-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ns-baseball-panel {
    padding: clamp(16px, 3vw, 24px);
    background: #fff;
    color: #19364d;
    border: 1px solid #a8c4dd;
    border-radius: 8px;
}

.ns-baseball-panel h2 { margin: 0 0 6px; color: #063a70; }
.ns-baseball-panel p { margin: 0 0 10px; }
.ns-baseball-lookup { margin-top: 18px; }
.ns-baseball-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 10px;
    margin: 14px 0 20px;
}

.ns-baseball-form label { display: block; font-weight: bold; }
.ns-baseball-form input, .ns-baseball-form button {
    min-height: 44px;
    padding: 8px 14px;
    font: inherit;
    border: 1px solid #6689a9;
    border-radius: 5px;
}

.ns-baseball-form input { width: 9em; background: #fff; color: #19364d; }
.ns-baseball-form button {
    color: #fff;
    background: #064c82;
    font-weight: bold;
    cursor: pointer;
}

.ns-baseball :is(a, input, button):focus-visible {
    outline: 3px solid #ae5800;
    outline-offset: 3px;
}

.ns-baseball-error { color: #962d17; font-weight: bold; }
.ns-baseball-results-heading { margin: 0 0 6px; }
.ns-baseball-results h4 {
    margin: 0;
    padding: 8px 12px;
    color: #fff;
    background: #064c82;
    border-radius: 5px 5px 0 0;
}

.ns-baseball-results ul { margin: 0; padding: 0; list-style: none; }
.ns-baseball-results li, .ns-baseball-results p {
    padding: 10px 12px;
    background: #eff6fc;
    border-bottom: 1px solid #c5daec;
    overflow-wrap: anywhere;
}

.ns-baseball-results li span { display: block; font-size: .9rem; }
.ns-baseball-results li a { font-weight: bold; }
.ns-baseball-panel .ns-baseball-sources { margin: 18px 0 0; font-size: .85rem; }

@media (max-width: 640px) {
    .ns-baseball-grid { grid-template-columns: 1fr; }
}
/* NETSPORT BASEBALL WEBSITES - END */

/* NetSport league navigation */
.ns-league-nav {
    background: linear-gradient(#00376e, #06264e);
    border-bottom: 2px solid #e8b94a;
}

.ns-league-nav-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 0 clamp(0px, 0.4vw, 7px);
    max-width: 1280px;
    margin-inline: auto;
}

.ns-league-nav a {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    padding-inline: clamp(7px, 1vw, 15px);
    border-bottom: 3px solid transparent;
    color: #eef5ff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.ns-league-nav a:hover,
.ns-league-nav a:focus-visible,
.ns-league-nav a[aria-current="page"] {
    color: #ffdc7b;
    background: #ffffff0a;
    border-bottom-color: #ffcf56;
}

.ns-league-nav a:focus-visible {
    outline: 2px solid #ffe9a2;
    outline-offset: -3px;
}

.ns-league-nav svg {
    flex: none;
    color: #ffda79;
}

.ns-league-nav-label {
    align-self: center;
    padding-inline: 12px 5px;
    border-left: 1px solid #ffffff45;
    color: #ffdc7b;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.ns-league-nav .ns-scouting-nav-link {
    border-inline-start: 1px solid #ffffff45;
}

.ns-scouting-list {
    margin-block-start: 1rem;
}

/* NetSport single-row league navigation */
.ns-league-nav {
    overflow-x: auto;
}

.ns-league-nav-inner {
    width: max-content;
    max-width: none;
    flex-wrap: nowrap;
    gap: 0;
}

.ns-league-nav a {
    flex: none;
    padding-inline: clamp(8px, 0.7vw, 13px);
}

.ns-league-nav-label {
    flex: none;
}

.ns-league-nav a[href="/"] svg { color: #83d7ff; }
.ns-league-nav a[href="/gallery/"] svg { color: #b7cfff; }
.ns-league-nav a[href="/baseball.php"] svg circle { fill: #fff9eb; stroke: #fff9eb; }
.ns-league-nav a[href="/baseball.php"] svg path { stroke: #be303f; }
.ns-league-nav a[href="/basketball.php"] svg circle { fill: #ff9b47; stroke: #ffbb75; }
.ns-league-nav a[href="/basketball.php"] svg path { stroke: #68300f; }
.ns-league-nav a[href="/football.php"] svg path { fill: #a85532; stroke: #fff3da; }
.ns-league-nav a[href="/soccer.php"] svg circle { fill: #f3f7ff; stroke: #f3f7ff; }
.ns-league-nav a[href="/soccer.php"] svg path { stroke: #23354c; }
.ns-league-nav a[href="/hockey.php"] svg { color: #88e1fa; }
.ns-league-nav a[href="/volleyball.php"] svg { color: #a5e8b6; }
.ns-league-nav a[href="/lacrosse.php"] svg { color: #e2b6ff; }
.ns-league-nav .ns-scouting-nav-link svg { color: #9be299; }

/* NetSport regional organizations */
.ns-regional-organizations {
    margin-block: 1rem;
}

.ns-regional-organizations h2 {
    margin-block: 0 0.5rem;
    font-size: 1.125rem;
}

.ns-regional-organizations ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.75rem;
    margin-block: 0;
    padding-inline-start: 1.25rem;
}

@media (min-width: 850px) {
    header.ns-baseball-heading.ns-baseball-heading-stacked {
        display: block;
    }
}

/* NetSport top-aligned sport guide */
.ns-baseball-heading.ns-sport-guide-heading {
    display: grid;
    align-items: start;
    gap: 1rem clamp(20px, 3vw, 36px);
    min-height: 0;
    height: auto;
    padding-block: 24px;
    text-align: left;
}

.ns-sport-guide-title,
.ns-sport-guide-description {
    min-width: 0;
}

.ns-sport-guide-title h1,
.ns-sport-guide-description > p {
    margin: 0;
}

.ns-sport-guide-description > p {
    max-width: none;
    line-height: 1.45;
}

.ns-sport-guide-description > p + p {
    margin-block-start: 0.55rem;
}

.ns-sport-guide-description > p:has(> strong) {
    padding-inline-start: 1.125rem;
}

.ns-sport-guide-description > p > strong {
    display: block;
    margin-inline-start: -1.125rem;
}

@media (min-width: 850px) {
    .ns-baseball-heading.ns-sport-guide-heading {
        grid-template-columns: minmax(0, 31%) minmax(0, 1fr);
    }
}

/* NetSport ZIP-matched regional priority */
.ns-baseball-results li.ns-regional-match {
    margin-block: 0.35rem 0.65rem;
    padding: 0.65rem 0.8rem;
    border-inline-start: 4px solid #d59b1e;
    border-radius: 0.25rem;
    background: #edf6ff;
    list-style: none;
}

.ns-baseball-results .ns-regional-match a {
    color: #08396b;
    font-weight: 700;
}

.ns-baseball-results .ns-regional-match .ns-regional-match-label {
    display: block;
    margin-block-start: 0.15rem;
    color: #36526c;
    font-size: 0.8125rem;
    font-weight: 600;
}

/* NetSport compact baseball information cards */
.ns-baseball > .ns-baseball-grid > .ns-baseball-panel:is(
    [aria-labelledby="pony-heading"],
    [aria-labelledby="ll-heading"]
) {
    padding: 13px 16px;
    background: #eef0f3;
    border-color: #c8d0d8;
    font-size: 0.875rem;
    line-height: 1.4;
}

.ns-baseball > .ns-baseball-grid > .ns-baseball-panel:is(
    [aria-labelledby="pony-heading"],
    [aria-labelledby="ll-heading"]
) > h2 {
    font-size: 1.05rem;
    margin-block: 0 0.3rem;
}

.ns-baseball > .ns-baseball-grid > .ns-baseball-panel:is(
    [aria-labelledby="pony-heading"],
    [aria-labelledby="ll-heading"]
) > p {
    margin-block: 0 0.35rem;
}

/* NETSPORT HOME MOTION - BEGIN */
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-photo {
    isolation: isolate;
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-scene {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0;
    transform: scale(1.025);
    transition: opacity 1200ms ease-in-out, transform 8s ease-out;
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-scene.is-current {
    opacity: 1;
    transform: scale(1);
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-photo.is-changing .ns-home-scene.is-current {
    opacity: 0;
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-photo.is-changing .ns-home-scene.is-next {
    opacity: 1;
    transform: scale(1);
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-badge {
    z-index: 3;
    opacity: 0;
    transition: opacity 850ms ease-in-out, transform 850ms ease-in-out;
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-badge.is-current {
    opacity: 1;
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-photo.is-changing .ns-home-badge.is-current {
    opacity: 0;
    transform: translateY(5px) scale(.97);
}
.netsport-photo-home .ns-home-photos.has-home-motion .ns-home-photo.is-changing .ns-home-badge.is-next {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.netsport-photo-home .ns-home-caption {
    display: none;
}
.netsport-photo-home .ns-home-photo::after {
    position: absolute;
    inset: auto 0 0;
    z-index: 2;
    height: 42%;
    background: linear-gradient(transparent, rgba(0, 28, 65, .38));
    content: '';
    pointer-events: none;
}
.netsport-photo-home .ns-home-photo:hover .ns-home-scene,
.netsport-photo-home .ns-home-photo:focus .ns-home-scene {
    transform: scale(1.018);
}
@media (prefers-reduced-motion: reduce) {
    .netsport-photo-home .ns-home-photos.has-home-motion .ns-home-scene,
    .netsport-photo-home .ns-home-photos.has-home-motion .ns-home-badge {
        transition: none;
    }
}
/* NETSPORT HOME MOTION - END */

/* NETSPORT HOME MOTION FRAMING - BEGIN */
.netsport-photo-home .ns-home-photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 14px;
}
.netsport-photo-home .ns-home-photo,
.netsport-photo-home .ns-home-photo:first-child,
.netsport-photo-home .ns-home-photo:nth-child(4) {
    grid-column: auto;
    grid-row: auto;
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0;
    aspect-ratio: 4 / 3;
    transform: none;
}
@media (max-width: 680px) {
    .netsport-photo-home .ns-home-photos {
        display: grid;
        grid-template-columns: 1fr;
    }
    .netsport-photo-home .ns-home-photo,
    .netsport-photo-home .ns-home-photo:first-child,
    .netsport-photo-home .ns-home-photo:nth-child(4) {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
    }
}
/* NETSPORT HOME MOTION FRAMING - END */

/* NETSPORT HOME MOTION COMPACT - BEGIN */
.netsport-photo-home .ns-home-photos {
    width: 100%;
    max-width: 1050px;
    margin-right: auto;
    margin-left: auto;
}
@media (max-width: 1090px) {
    .netsport-photo-home .ns-home-photos {
        max-width: 100%;
    }
}
/* NETSPORT HOME MOTION COMPACT - END */





/* NETSPORT HOME GRID FINAL - BEGIN */
.netsport-photo-home .ns-home-photos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
}

.netsport-photo-home .ns-home-photo {
    min-width: 0;
    width: auto;
    aspect-ratio: 4 / 3;
}

.netsport-photo-home .ns-home-photo.is-generated-slot[hidden] {
    display: none;
}

@media (max-width: 680px) {
    .netsport-photo-home .ns-home-photos {
        grid-template-columns: 1fr;
    }
}
/* NETSPORT HOME GRID FINAL - END */


/* NetSport Links dropdown */
.ns-league-nav {
    position: relative;
    z-index: 20;
}

.ns-league-nav .ns-league-nav-inner {
    overflow: visible;
    flex-wrap: wrap;
}

.ns-links-menu {
    position: relative;
    display: flex;
    align-self: stretch;
}

.ns-links-menu summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    height: 100%;
    padding: .55rem .75rem;
    box-sizing: border-box;
    list-style: none;
    color: #edf5ff;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
}

.ns-links-menu summary::-webkit-details-marker {
    display: none;
}

.ns-links-menu summary:hover,
.ns-links-menu summary:focus-visible,
.ns-links-menu[open] summary,
.ns-links-menu:has([aria-current="page"]) summary {
    color: #ffd36a;
    background: #103b65;
}

.ns-links-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 10rem;
    margin: 0;
    padding: .25rem 0;
    list-style: none;
    background: #082b51;
    border-bottom: 2px solid #ffd36a;
    box-shadow: 0 .25rem .6rem rgb(0 0 0 / 25%);
}

.ns-league-nav .ns-links-dropdown a {
    display: flex;
    justify-content: flex-start;
    padding: .45rem .75rem;
    border: 0;
}


/* NetSport Links dropdown fix */
.ns-league-nav,
.ns-league-nav .ns-league-nav-inner {
    overflow: visible;
}

.ns-league-nav .ns-links-menu {
    display: block;
}

.ns-league-nav .ns-links-menu:not([open]) > .ns-links-dropdown {
    display: none;
}

.ns-league-nav .ns-links-menu[open] > .ns-links-dropdown {
    display: block;
    z-index: 1;
}

.ns-league-nav .ns-links-dropdown .ns-scouting-nav-link {
    margin: 0;
    border: 0;
}
