/* ================================================================
   PORCHESTER GOLF SOCIETY — MAIN STYLESHEET
   Reorganized into logical sections, same selectors/values as
   the original file — no visual changes, just structure/comments.
   ================================================================ */


/* ================================================================
   1. DESIGN TOKENS & FONTS
   ================================================================ */

:root {
    --pgs-green: #1f5c3d;
    --pgs-green-dark: #143d29;
    --pgs-fairway: #eef3ea;
    --pgs-cream: #faf8f3;
    --pgs-gold: #b8862c;
    --pgs-ink: #26312a;
    --pgs-line: #d7ddd2;
}

@font-face {
    font-family: Yanone Kaffeesatz;
    src: url('../fonts/YanoneKaffeesatz-Regular.eot');
    src: local("Yanone Kaffeesatz"), url('../fonts/YanoneKaffeesatz-Regular.ttf');
}

@font-face {
    font-family: News Cycle;
    src: url('../fonts/NewsCycle-Regular.eot');
    src: local("News Cycle"), url('../fonts/NewsCycle-Regular.ttf');
}


/* ================================================================
   2. RESET & BASE ELEMENTS
   ================================================================ */

html {
    height: 100%;
}

* {
    margin: 0;
    padding: 0;
}

/* tell the browser to render HTML 5 elements as block */
article, aside, figure, footer, header, hgroup, nav, section {
    display: block;
}

body {
    font: normal .80em arial, sans-serif;
    background: #eeeeee;
    color: #444;
}

p {
    padding: 0 0 20px 0;
    line-height: 1.7em;
}

img {
    border: 0;
}


/* ================================================================
   3. TYPOGRAPHY (headings, links, lists, blockquote)
   ================================================================ */

h1, h2, h3, h4, h5, h6 {
    color: #000000;
    letter-spacing: 0em;
    padding: 0 0 5px 0;
}

h1, h2, h3 {
    font: normal 140% arial, sans-serif;
    margin: 0 0 15px 0;
    padding: 15px 0 5px 0;
    color: #000000;
}

h2 {
    font-size: 160%;
    padding: 9px 0 5px 0;
    color: #000000;
}

h3 {
    font-size: 140%;
    padding: 5px 0 0 0;
}

h4, h6 {
    color: #000000;
    padding: 0 0 5px 0;
    font: normal 130% arial, sans-serif;
}

h5, h6 {
    color: #000000;
    font: italic 95% arial, sans-serif;
    letter-spacing: normal;
    padding: 0 0 15px 0;
}

a, a:hover {
    outline: none;
    text-decoration: underline;
    color: #09D4FF;
}

    a:hover {
        text-decoration: none;
    }

blockquote {
    margin: 20px 0;
    padding: 10px 20px 0 20px;
    border: 1px solid #E5E5DB;
    background: #FFF;
}

ul {
    margin: 2px 0 22px 17px;
}

    ul li {
        list-style-type: circle;
        margin: 0 0 6px 0;
        padding: 0 0 4px 5px;
        line-height: 1.5em;
    }

ol {
    margin: 8px 0 22px 20px;
}

    ol li {
        margin: 0 0 11px 0;
    }


/* ================================================================
   4. LAYOUT UTILITIES (float/center helpers)
   ================================================================ */

.left {
    float: left;
    width: auto;
    margin-right: 10px;
}

.right {
    float: right;
    width: auto;
    margin-left: 10px;
}

.center {
    display: block;
    text-align: center;
    margin: 20px auto;
}


/* ================================================================
   5. PAGE FRAME (#main, header, logo, nav, footer, #site_content)
   ================================================================ */

#main, nav, #container, #logo, #site_content, footer {
    margin-left: auto;
    margin-right: auto;
}

#main {
    margin: 5px auto;
    width: 950px;
    background: transparent;
    padding-bottom: 10px;
}

header {
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    height: auto;
    min-height: 130px;
}

#logo {
    width: auto;
    height: auto;
    background: transparent;
    color: #888;
    padding: 0;
    float: none;
}

    #logo h1, #logo h2 {
        font: normal 320% 'News Cycle', arial, sans-serif;
        border-bottom: 0;
        text-transform: none;
        margin: 0;
    }

#logo_text h1, #logo_text h1 a, #logo_text h1 a:hover {
    padding: 0;
    color: #444;
    text-decoration: none;
}

    #logo_text h1 a .logo_colour {
        color: #09D4FF;
    }

#logo_text a:hover .logo_colour {
    color: #444;
}

#logo_text h2 {
    font-size: 140%;
    padding: 0 0 0 0;
    color: #222;
}

nav {
    height: 44px;
    width: 950px;
    float: none;
    margin: 0;
    color: #222;
    background: #ddd;
    background: -moz-linear-gradient(#fff, #ddd);
    background: -o-linear-gradient(#fff, #ddd);
    background: -webkit-linear-gradient(#fff, #ddd);
    -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    border: 1px solid #eee;
    border-radius: 7px 7px 7px 7px;
    -moz-border-radius: 7px 7px 7px 7px;
    -webkit-border-radius: 7px 7px 7px 7px;
    flex-basis: 100%;
    order: 2;
}

footer {
    width: 950px;
    font: 170% 'Yanone Kaffeesatz', arial, sans-serif;
    height: 30px;
    padding: 5px 0 20px 0;
    text-align: center;
    background: #ddd; /* Show a solid color for older browsers */
    background: -moz-linear-gradient(#fff, #ddd);
    background: -o-linear-gradient(#fff, #ddd);
    background: -webkit-linear-gradient(#fff, #ddd);
    -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
    border: 1px solid #eee;
    border-radius: 7px 7px 7px 7px;
    -moz-border-radius: 7px 7px 7px 7px;
    -webkit-border-radius: 7px 7px 7px 7px;
}

    footer p {
        line-height: 1.7em;
        padding: 0 0 10px 0;
    }

    footer a {
        color: #222;
        text-decoration: none;
    }

        footer a:hover {
            color: #222;
            text-shadow: none;
            text-decoration: underline;
        }

#site_content {
    width: 950px;
    overflow: hidden;
    margin: 0px auto 0 auto;
    padding: 0 0 15px 0;
}

.content {
    text-align: left;
    width: 670px;
    margin: 0 0 0 0;
    float: left;
    font-size: 120%;
}

    .content.full-width {
        width: 950px;
        float: none;
    }

    .content ul {
        margin: 2px 0 22px 0px;
    }

        .content ul li, .sidebar ul li {
            list-style-type: none;
            background: url(../images/bullet.png) no-repeat;
            margin: 0 0 0 0;
            padding: 0 0 4px 28px;
            line-height: 1.5em;
        }


/* ================================================================
   6. FORMS (.form_settings)
   ================================================================ */

.form_settings {
    margin: 15px 0 0 0;
}

    .form_settings p {
        padding: 0 0 4px 0;
    }

    .form_settings span {
        float: left;
        width: 200px;
        text-align: left;
    }

    .form_settings input, .form_settings textarea {
        padding: 5px;
        width: 299px;
        font: 100% arial;
        border: 1px solid #D5D5D5;
        background: #FFF;
        color: #47433F;
        border-radius: 7px 7px 7px 7px;
        -moz-border-radius: 7px 7px 7px 7px;
        -webkit-border-radius: 7px 7px 7px 7px;
    }

    .form_settings .submit {
        font: 140% 'Yanone Kaffeesatz', arial, sans-serif;
        border: 0;
        width: 99px;
        margin: 0 0 0 212px;
        height: 33px;
        padding: 2px 0 3px 0;
        cursor: pointer;
        background: #ddd; /* Show a solid color for older browsers */
        background: -moz-linear-gradient(#fff, #ddd);
        background: -o-linear-gradient(#fff, #ddd);
        background: -webkit-linear-gradient(#fff, #ddd);
        -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
        -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
        box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 2px;
        border: 1px solid #ddd;
        border-radius: 7px 7px 7px 7px;
        -moz-border-radius: 7px 7px 7px 7px;
        -webkit-border-radius: 7px 7px 7px 7px;
        color: #222;
        text-shadow: 1px 1px #FFF;
    }

    .form_settings textarea, .form_settings select {
        font: 100% arial;
        width: 299px;
    }

    .form_settings select {
        width: 310px;
    }

    .form_settings .checkbox {
        margin: 4px 0;
        padding: 0;
        width: 14px;
        border: 0;
        background: none;
    }


/* ================================================================
   7. MISC HELPERS (separator, generic table, image list)
   ================================================================ */

.separator {
    width: 100%;
    height: 0;
    border-top: 1px solid #D9D5CF;
    border-bottom: 1px solid #FFF;
    margin: 0 0 20px 0;
}

table {
    margin: 10px 0 30px 0;
}

    table tr th, table tr td {
        background: #BBB;
        color: #FFF;
        padding: 7px 4px;
        text-align: left;
    }

    table tr td {
        background: #DDD;
        color: #444;
        border-top: 1px solid #FFF;
    }

ul.images {
    width: 950px;
    height: 300px;
    overflow: hidden;
    position: relative;
    margin: 0;
    padding: 0;
}

    ul.images li {
        position: absolute;
        margin: 0;
        padding: 0;
        left: 0;
        right: 0;
        list-style: none;
    }

        ul.images li.show {
            z-index: 500;
        }

ul img {
    border: none;
}


/* ================================================================
   8. SOOPERFISH DROPDOWN MENU (framework + theming)
   Stylesheet for SooperFish by www.SooperThemes.com — Jurriaan Roelofs
   ================================================================ */

/* ---- Configuration of menu width ---- */
html body ul.sf-menu ul, html body ul.sf-menu ul li {
    width: 200px;
}

    html body ul.sf-menu ul ul {
        margin: 0 0 0 200px;
    }

/* ---- Framework for proper showing/hiding/positioning ---- */
ul.sf-menu, ul.sf-menu * {
    margin: 0;
    padding: 0;
}

ul.sf-menu {
    display: block;
    position: relative;
}

    ul.sf-menu li {
        display: block;
        list-style: none;
        float: left;
        position: relative;
    }

        ul.sf-menu li:hover {
            visibility: inherit; /* fixes IE7 'sticky bug' */
        }

    ul.sf-menu a {
        display: block;
        position: relative;
    }

    ul.sf-menu ul {
        position: absolute;
        left: 0;
        width: 150px;
        top: auto;
        left: -999999px;
    }

        ul.sf-menu ul a {
            zoom: 1; /* IE6/7 fix */
        }

        ul.sf-menu ul li {
            float: left; /* Must always be floated otherwise there will be a rogue 1px margin-bottom in IE6/7 */
            width: 150px;
        }

        ul.sf-menu ul ul {
            top: 0;
            margin: 0 0 0 150px;
        }

            ul.sf-menu li:hover ul, ul.sf-menu li:focus ul, ul.sf-menu li.sf-hover ul,
            ul.sf-menu ul li:hover ul, ul.sf-menu ul li:focus ul, ul.sf-menu ul li.sf-hover ul,
            ul.sf-menu ul ul li:hover ul, ul.sf-menu ul ul li:focus ul, ul.sf-menu ul ul li.sf-hover ul,
            ul.sf-menu ul ul ul li:hover ul, ul.sf-menu ul ul ul li:focus ul, ul.sf-menu ul ul ul li.sf-hover ul {
                left: auto;
            }

                ul.sf-menu li:hover ul ul, ul.sf-menu li:focus ul ul, ul.sf-menu li.sf-hover ul ul,
                ul.sf-menu ul li:hover ul ul, ul.sf-menu ul li:focus ul ul, ul.sf-menu ul li.sf-hover ul ul,
                ul.sf-menu ul ul li:hover ul ul, ul.sf-menu ul ul li:focus ul ul, ul.sf-menu ul ul li.sf-hover ul ul,
                ul.sf-menu ul ul ul li:hover ul ul, ul.sf-menu ul ul ul li:focus ul ul, ul.sf-menu ul ul ul li.sf-hover ul ul {
                    left: -999999px;
                }

/* ---- autoArrows CSS ---- */
span.sf-arrow {
    width: 7px;
    height: 7px;
    position: absolute;
    top: 20px;
    right: 5px;
    display: block;
    background: url(../images/arrows-black.png) no-repeat 0 0;
    overflow: hidden; /* making sure IE6 doesn't overflow and expand the box */
    font-size: 1px;
}

ul ul span.sf-arrow {
    right: 5px;
    top: 20px;
    background-position: 0 100%;
}

/* ---- Theming the menu ---- */
ul#nav {
    float: left;
}

    ul#nav ul {
        background: #ddd;
        margin-top: 5px;
        padding-bottom: 15px;
    }

    ul#nav li a {
        padding: 7px 25px 6px 25px;
        font: 170% 'Yanone Kaffeesatz', arial, sans-serif;
        text-shadow: 1px 1px #fff;
        text-decoration: none;
        color: #222;
        margin-right: 2px;
    }

        ul#nav li a:hover, ul#nav li a:focus, ul#nav li.selected a, ul#nav li.selected a:hover, ul#nav li.selected a:focus {
            color: #09D4FF;
            text-shadow: none;
        }

    ul#nav ul li a {
        color: #222;
    }

        ul#nav ul li a:hover {
            color: #09D4FF;
            margin-right: 2px;
        }

/* ---- Image Transitions ---- */
ul#images {
    margin: 0 15px 10px 0;
    padding: 0;
    list-style: none;
    position: relative;
}

    ul#images li {
        display: block;
        overflow: hidden;
        padding: 0;
        float: left;
        width: 155px;
        height: 300px;
    }


/* ================================================================
   9. GOLFER OF THE YEAR / LEADERBOARD TABLE (table.Evresult)
   Uses the same token palette as :root / .theme-alt for consistency.
   ================================================================ */

.theme-alt {
    --pgs-green: #1f5c3d;
    --pgs-green-dark: #143d29;
    --pgs-fairway: #eef3ea;
    --pgs-cream: #faf8f3;
    --pgs-gold: #b8862c;
    --pgs-ink: #26312a;
    --pgs-line: #d7ddd2;
}

table.Evresult {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 12px 0;
    font-size: 13px;
    background: #fff;
}

    table.Evresult td {
        border: 1px solid var(--pgs-line);
        padding: 8px 10px;
        text-align: center;
    }

/* ---- Summary table: title (Evr1) + rows (Evr2) ---- */
.Evr1 {
    background: var(--pgs-green);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
}

.Evr2 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-size: 14px;
    text-align: center;
}

.Evr3 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-size: 13px;
    text-align: center;
}

.Evr4 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-size: 13px;
    text-align: center;
}

/* ---- Leaderboard table: header + data rows both use class Evr3 on
   the <tr>, with individual <td> given Evr3 or Evr4. Style by cell
   class rather than row class so header vs. data both render
   correctly regardless of which class landed on the <tr>. ---- */
table.Evresult tr:first-child td {
    background: var(--pgs-green-dark);
    color: #fff;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

table.Evresult tr:not(:first-child) td.Evr4 {
    text-align: center;
    background: #fff;
}

table.Evresult tr:not(:first-child):nth-child(even) td.Evr4 {
    background: var(--pgs-fairway);
}

/* ---- Horizontal scroll wrapper for the wide 12-column table
   Wrap the leaderboard <table> in <div class="table-scroll">
   so it scrolls instead of squashing on narrow screens:
     <div class="table-scroll">
       <table class="Evresult"> ... </table>
     </div> ---- */
.table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 24px;
    border: 1px solid var(--pgs-line);
}

    .table-scroll table.Evresult {
        margin-bottom: 0;
        min-width: 760px; /* forces scroll instead of column-squashing */
    }

        /* Sticky header row while scrolling vertically on long leaderboards */
        .table-scroll table.Evresult tr:first-child td {
            position: sticky;
            top: 0;
            z-index: 1;
        }

/* ---- Responsive ---- */
@media (max-width: 600px) {
    table.Evresult {
        font-size: 11.5px;
    }

        table.Evresult td {
            padding: 6px 6px;
        }
}

.masters-summary .Evr1,
.masters-summary .Evr2 {
    text-align: center;
    font-weight: bold;
}

.masters-summary tr td:nth-child(2) {
    text-align: left;
}


/* ================================================================
   10. CONSTITUTION PAGE
   Relies on the --pgs-* tokens already defined in :root / .theme-alt,
   and reuses table.Evresult for the points table so it matches
   the results pages.
   ================================================================ */

.constitution-page {
    text-align: left;
}

/* ---- Title block ---- */
.constitution-title {
    text-align: center;
    padding: 30px 0 25px 0;
    border-bottom: 3px solid var(--pgs-green);
    margin-bottom: 30px;
}

    .constitution-title .eyebrow {
        font-size: 105%;
        color: var(--pgs-ink);
        font-style: italic;
    }

    .constitution-title h1 {
        font-size: 220%;
        color: var(--pgs-green-dark);
        margin: 5px 0 8px 0;
        padding: 0;
        border-bottom: 0;
    }

    .constitution-title .est {
        font-size: 90%;
        color: var(--pgs-gold);
        font-weight: bold;
        letter-spacing: 0.5px;
    }

/* ---- Table of contents ---- */
nav.constitution-toc {
    background: var(--pgs-fairway);
    border: 1px solid var(--pgs-line);
    border-radius: 6px;
    padding: 18px 24px;
    margin-bottom: 30px;
    height: auto;
    width: auto;
    float: none;
    margin-top: 0;
}

    nav.constitution-toc h2 {
        font-size: 130%;
        color: var(--pgs-green-dark);
        margin-bottom: 10px;
        padding: 0 0 8px 0;
        border-bottom: 1px solid var(--pgs-line);
    }

    nav.constitution-toc ol {
        list-style: none;
        margin: 0;
    }

    nav.constitution-toc li {
        margin: 0 0 6px 0;
        padding: 0;
    }

    nav.constitution-toc a {
        color: var(--pgs-ink);
        text-decoration: none;
        display: inline-block;
        padding: 2px 0;
        border-bottom: 1px dotted transparent;
    }

        nav.constitution-toc a:hover {
            color: var(--pgs-green);
            border-bottom-color: var(--pgs-green);
            text-decoration: none;
        }

/* ---- Sections ---- */
section.constitution-section {
    padding: 25px 0;
    border-bottom: 1px solid var(--pgs-line);
}

    section.constitution-section:last-of-type {
        border-bottom: none;
    }

    section.constitution-section h2 {
        font-size: 150%;
        color: var(--pgs-green-dark);
        background: var(--pgs-fairway);
        padding: 8px 14px;
        border-left: 5px solid var(--pgs-green);
        border-radius: 3px;
        margin: 0 0 15px 0;
    }

    section.constitution-section h3 {
        font-size: 115%;
        color: var(--pgs-green-dark);
        margin: 15px 0 6px 0;
        padding: 5px 0 0 0;
    }

    section.constitution-section p {
        text-align: justify;
    }

.back-to-top {
    display: inline-block;
    margin-top: 5px;
    font-size: 80%;
    color: var(--pgs-green);
    text-decoration: none;
}

    .back-to-top:hover {
        text-decoration: underline;
    }

/* ---- Officer role cards ---- */
.officer-card {
    border: 1px solid var(--pgs-line);
    border-radius: 6px;
    overflow: hidden;
    margin: 0 0 15px 0;
}

    .officer-card .role-title {
        background: var(--pgs-green);
        color: #fff;
        font-weight: bold;
        padding: 8px 14px;
    }

    .officer-card ul {
        background: var(--pgs-fairway);
        margin: 0;
        padding: 12px 12px 12px 32px;
    }

    .officer-card li {
        list-style-type: disc;
        background: none;
        padding: 0 0 4px 0;
        margin: 0 0 4px 0;
    }

/* ---- Points table — reuses table.Evresult, just adds the gold
   highlight for the points column ---- */
table.Evresult.points-table td.points-val {
    color: var(--pgs-gold);
    font-weight: 700;
}


/* ================================================================
   11. FAQ PAGE (table version)
   Relies on the --pgs-* tokens already defined in :root / .theme-alt,
   and reuses table.Evresult so it matches the results pages.
   ================================================================ */

.faq-page {
    text-align: left;
}

/* ---- Title block ---- */
.faq-title {
    text-align: center;
    padding: 30px 0 25px 0;
    border-bottom: 3px solid var(--pgs-green);
    margin-bottom: 30px;
}

    .faq-title .eyebrow {
        font-size: 105%;
        color: var(--pgs-ink);
        font-style: italic;
    }

    .faq-title h1 {
        font-size: 220%;
        color: var(--pgs-green-dark);
        margin: 5px 0 0 0;
        padding: 0;
        border-bottom: 0;
    }

/* ---- FAQ table — question / answer columns
   table.Evresult already gives the header-row and border styling;
   these rules just adjust alignment and column proportions for
   a 2-column Q&A layout instead of a leaderboard. ---- */
table.Evresult.faq-table td {
    text-align: left;
    vertical-align: top;
}

table.Evresult.faq-table tr:not(:first-child) td:nth-child(1) {
    width: 38%;
    font-weight: 600;
    color: var(--pgs-green-dark);
}

table.Evresult.faq-table tr:not(:first-child) td:nth-child(2) {
    width: 62%;
    color: var(--pgs-ink);
}

table.Evresult.faq-table tr:not(:first-child):nth-child(even) td {
    background: var(--pgs-fairway);
}

@media (max-width: 600px) {
    .faq-title h1 {
        font-size: 170%;
    }

    table.Evresult.faq-table tr:not(:first-child) td:nth-child(1),
    table.Evresult.faq-table tr:not(:first-child) td:nth-child(2) {
        width: auto;
    }
}


/* ================================================================
   12. MONTHLY RESULTS TABLE (table.Results)
   Same structure/token palette as table.Evresult (section 9),
   used on the individual monthly event results pages.
   ================================================================ */

table.Results {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 12px 0;
    font-size: 13px;
    background: #fff;
}

    table.Results td {
        border: 1px solid var(--pgs-line);
        padding: 8px 10px;
        text-align: center;
    }

/* ---- Summary table: title (Evr1) + rows (Evr2) ---- */
.Resultevr1 {
    background: var(--pgs-green);
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
}

.Resultevr2 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-weight: bold;
    font-size: 14px;
    text-align: center;
}

.Resultevr3 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-weight: bold;
    font-size: 14px;
    text-align: center;
}

.Resultevr4 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
    font-weight: bold;
    font-size: 14px;
    text-align: center;
}

/* ---- Leaderboard table: header + data rows both use class Evr3 on
   the <tr>, with individual <td> given Evr3 or Evr4. Style by cell
   class rather than row class so header vs. data both render
   correctly regardless of which class landed on the <tr>. ---- */
table.Results tr:first-child td {
    background: var(--pgs-green-dark);
    color: #fff;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

table.Results tr:not(:first-child) td.Resultevr4 {
    text-align: center;
    background: #fff;
}

table.Results tr:not(:first-child):nth-child(even) td.Resultevr4 {
    background: var(--pgs-fairway);
}

/* Name column (1st cell in each data row) reads left-aligned and bold */
table.Results.leaderboard tr:not(:first-child) td:nth-child(1) {
    text-align: left;
    font-weight: 600;
    color: var(--pgs-green-dark);
}

/* GOY Points column stands out (13th column: Pts1) */
table.Results.leaderboard tr:not(:first-child) td.Resultevr4:nth-child(13) {
    font-weight: 700;
    color: var(--pgs-gold);
}

/* ---- Podium highlight for top 3 positions — matches first-table
   color scheme ---- */
table.Results.leaderboard tr.podium-1 td.Resultevr4 {
    background: var(--pgs-green);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
}

    table.Results.leaderboard tr.podium-1 td.Resultevr4:nth-child(1) {
        text-align: left;
    }

table.Results.leaderboard tr.podium-2 td.Resultevr4 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
}

table.Results.leaderboard tr.podium-3 td.Resultevr4 {
    background: var(--pgs-cream);
    color: var(--pgs-ink);
}

/* ---- Horizontal scroll wrapper for the wide 12-column table
   Wrap the leaderboard <table> in <div class="table-scroll">
   so it scrolls instead of squashing on narrow screens:
     <div class="table-scroll">
       <table class="Results"> ... </table>
     </div> ---- */
.table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 24px;
    border: 1px solid var(--pgs-line);
}

    .table-scroll table.Results {
        margin-bottom: 0;
        min-width: 760px; /* forces scroll instead of column-squashing */
    }

        /* Sticky header row while scrolling vertically on long leaderboards */
        .table-scroll table.Results tr:first-child td {
            position: sticky;
            top: 0;
            z-index: 1;
        }

/* ---- Responsive ---- */
@media (max-width: 600px) {
    table.Results {
        font-size: 11.5px;
    }

        table.Results td {
            padding: 6px 6px;
        }
}

.masters-summary .Resultevr1,
.masters-summary .Resultevr2 {
    text-align: center;
    font-weight: bold;
}

.masters-summary tr td:nth-child(2) {
    text-align: left;
}


/* ================================================================
   13. GOY LEADERBOARD PODIUM ROWS (GridView-driven)
   Mirrors the Table1 podium styling from section 9/12, driven by
   explicit classes from RowDataBound rather than nth-child.
   ================================================================ */

table.Evresult.leaderboard tr.podium-1 td.Evr4 {
    background: var(--pgs-green);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
}

    table.Evresult.leaderboard tr.podium-1 td.Evr4:nth-child(1) {
        text-align: left;
    }

table.Evresult.leaderboard tr.podium-2 td.Evr4 {
    background: var(--pgs-fairway);
    color: var(--pgs-ink);
}

table.Evresult.leaderboard tr.podium-3 td.Evr4 {
    background: var(--pgs-cream);
    color: var(--pgs-ink);
}

/* GOY Points column (10th BoundField: Position, Name1, Event1-7, GOY1...) */
table.Evresult.leaderboard tr:not(:first-child) td:nth-child(1) {
    text-align: left;
    font-weight: 600;
    color: var(--pgs-green-dark);
}

table.Evresult.leaderboard tr:not(:first-child) td.Evr4:nth-child(10) {
    font-weight: 700;
    color: var(--pgs-gold);
}


/* ================================================================
   14. HALL OF FAME (.roh + rohtd/rohhead variants)
   Gold-on-dark themed table used for the Roll of Honour pages.
   ================================================================ */

.roh {
    border: 0px;
    width: 100%;
    background-image: url('../images/rohbg.jpg');
    border-right: #b22222 10pt ridge;
    border-top: #b22222 10pt ridge;
    border-left: #b22222 10pt ridge;
    border-bottom: #b22222 10pt ridge;
}

.rohhead {
    background: url('../images/plate.gif');
    text-align: center;
    border-right: #ffd700 ridge;
    border-top: #ffd700 ridge;
    FONT-SIZE: 17px;
    BORDER-LEFT: #ffd700 ridge;
    COLOR: #000000;
    BORDER-BOTTOM: #ffd700 ridge;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

/* Roll of Honour data cells — widths sized for name / year columns.
   background: transparent lets .roh's background image show through
   instead of the generic "table tr td" grey fallback (section 7). */
td.rohtd {
    background: transparent;
    FONT-SIZE: 12px;
    font-weight: bold;
    width: 60%;
    COLOR: #ffd700;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

td.rohtd1 {
    background: transparent;
    FONT-SIZE: 12px;
    font-weight: bold;
    width: 12%;
    COLOR: #ffd700;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

td.rohtd2 {
    background: transparent;
    FONT-SIZE: 12px;
    font-weight: bold;
    width: 15%;
    COLOR: #ffd700;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

td.rohtd3 {
    background: transparent;
    FONT-SIZE: 12px;
    font-weight: bold;
    width: 25%;
    COLOR: #ffd700;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

td.rohtd4 {
    background: transparent;
    FONT-SIZE: 12px;
    font-weight: bold;
    width: 25%;
    COLOR: #ffd700;
    FONT-FAMILY: Georgia, "Times New Roman", Times, serif;
}

/* Roll of Honour spacer/frame columns */
td.roh1 {
    background: transparent;
    width: 15%;
}

td.roh2 {
    background: transparent;
    width: 60%;
}

td.roh3 {
    background: transparent;
    width: 10%;
}

/* Roll of Honour link styling */
a.rohtd {
    FONT-SIZE: 11pt;
    font-weight: bold;
    COLOR: #ffd700;
    FONT-FAMILY: 'Verdana';
}


/* ================================================================
   15. ITINERARY PAGE
   Relies on the --pgs-* tokens already defined in :root / .theme-alt.
   Reuses .constitution-title / .constitution-section for the page
   shell, and adds a two-column card grid for the events.
   ================================================================ */

.itinerary-page {
    text-align: left;
}

.event-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 10px;
}

.event-card {
    border: 1px solid var(--pgs-line);
    border-radius: 6px;
    overflow: hidden;
}

    .event-card .event-number {
        background: var(--pgs-green);
        color: #fff;
        font-weight: bold;
        padding: 8px 14px;
    }

    .event-card .event-name {
        background: var(--pgs-fairway);
        color: var(--pgs-green-dark);
        font-weight: bold;
        font-size: 105%;
        padding: 8px 14px;
        border-bottom: 1px solid var(--pgs-line);
    }

    .event-card ul {
        background: var(--pgs-cream);
        margin: 0;
        padding: 12px 12px 12px 32px;
    }

    .event-card li {
        list-style-type: disc;
        background: none;
        padding: 0 0 4px 0;
        margin: 0 0 4px 0;
    }

@media (max-width: 700px) {
    .event-grid {
        grid-template-columns: 1fr;
    }
}

/* ---- Society Details section, centered ---- */
#sec-details {
    text-align: center;
}

    #sec-details h2 {
        text-align: center;
    }

    #sec-details p {
        text-align: center;
    }

.welcome-msg {
    display: block;
    text-align: right;
    font-size: 80%;
    padding: 4px 10px 0 0;
    color: #444;
}

.section-label {
    text-align: center;
    font-weight: bold;
}


/* ================================================================
   16. WINNERS AND LOSERS TABLE
   Compact columns, headers can wrap — reuses table.Results (section 12).
   ================================================================ */

.table-scroll table.Results.winloser-table {
    min-width: 100%;
    table-layout: fixed;
}

    .table-scroll table.Results.winloser-table td {
        padding: 6px 4px;
        font-size: 11px;
        white-space: normal;
        word-wrap: break-word;
    }

    .table-scroll table.Results.winloser-table tr:first-child td {
        font-size: 10.5px;
        white-space: normal;
        line-height: 1.2;
    }


/* ================================================================
   17. PROFILE PAGE — label/value table
   ================================================================ */

table.profile {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
}

    table.profile td {
        padding: 8px 10px;
        border: none;
        background: none;
        vertical-align: middle;
    }

        table.profile td.p1 {
            text-align: right;
            font-weight: bold;
            color: var(--pgs-green-dark);
            width: 140px;
            white-space: nowrap;
        }

        table.profile td.p2 {
            text-align: left;
        }


/* ================================================================
   18. EVENT DETAIL PAGE (event1.aspx etc.) — label/value table
   ================================================================ */

table.event {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
    background: #fff;
}

    table.event th.r1 {
        background: var(--pgs-green);
        color: #fff;
        font-weight: 700;
        font-size: 15px;
        text-align: center;
        padding: 10px;
    }

    table.event td.r1 {
        background: var(--pgs-fairway);
        color: var(--pgs-green-dark);
        font-weight: 600;
        text-align: right;
        width: 200px;
        padding: 8px 12px;
        border: 1px solid var(--pgs-line);
        vertical-align: top;
    }

    table.event td.r2 {
        background: #fff;
        color: var(--pgs-ink);
        text-align: center;
        font-weight: bold;
        padding: 8px 12px;
        border: 1px solid var(--pgs-line);
    }


/* ================================================================
   19. CONFIRMATION / NON-ATTENDANCE FORMS (table.confirm)
   ================================================================ */

table.confirm {
    width: 100%;
    max-width: 700px;
    border-collapse: collapse;
    margin: 15px 0;
    background: #fff;
}

    table.confirm th.r1,
    table.confirm th.r3 {
        background: var(--pgs-green);
        color: #fff;
        font-weight: 700;
        font-size: 15px;
        text-align: center;
        padding: 10px;
    }

    table.confirm td.r2 {
        background: var(--pgs-fairway);
        color: var(--pgs-green-dark);
        font-weight: 600;
        text-align: center;
        padding: 8px 12px;
    }

    table.confirm td.r3 {
        color: var(--pgs-gold);
        font-weight: 600;
        text-align: center;
        padding: 6px 12px;
    }

    table.confirm td.r4 {
        background: var(--pgs-fairway);
        color: var(--pgs-ink);
        font-weight: 600;
        text-align: left;
        vertical-align: top;
        width: 220px;
        padding: 10px 12px;
        border: 1px solid var(--pgs-line);
    }

    table.confirm td.r5 {
        background: #fff;
        text-align: center;
        vertical-align: top;
        padding: 10px 12px;
        border: 1px solid var(--pgs-line);
    }

    table.confirm td.r6 {
        text-align: center;
        padding: 8px 12px;
    }

        table.confirm td.r6 a {
            font-weight: 600;
        }

    table.confirm td.r7,
    table.confirm td.r8 {
        padding: 10px 12px;
        text-align: center;
    }

.opt-standard {
    color: var(--pgs-ink);
    font-weight: 600;
}

.opt-veg {
    color: #1e5ec2;
    font-weight: 600;
}

/* Full-width variant, used where the confirm table should match
   nav width (950px) instead of the default 700px cap */
table.confirm.confirm-wide {
    max-width: 100%;
}


/* ================================================================
   20. RESPONSIVE / MOBILE LAYOUT
   Covers: page frame reflow, mobile nav toggle + dropdown behavior
   (nav-toggle.js adds/removes "open" on <nav> and "submenu-open" on
   a parent <li>), and wide-table horizontal scrolling.
   ================================================================ */

@media (max-width: 960px) {

    /* ---- Page frame reflow ---- */
    #main {
        width: 100%;
        padding: 0 10px;
        box-sizing: border-box;
    }

    header {
        padding: 10px 0;
    }

    #logo {
        text-align: center;
        width: 100%;
    }

        #logo h1 {
            font-size: 200%;
        }

    nav {
        width: 100%;
    }

    #site_content {
        width: 100%;
        box-sizing: border-box;
    }

    .content,
    .content.full-width {
        width: 100%;
        float: none;
        box-sizing: border-box;
        padding: 0 5px;
    }

    footer {
        width: 100%;
    }

    /* ---- Mobile nav toggle button — hidden on desktop, shown here ---- */
    #nav-toggle {
        display: block;
        margin-left: auto;
        background: none;
        border: 1px solid #ccc;
        border-radius: 4px;
        padding: 8px 12px;
        cursor: pointer;
    }

    #nav-toggle,
    ul.sf-menu a {
        cursor: pointer;
        -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    }

    /* ---- Collapse the dropdown menu by default on mobile;
       nav-toggle.js adds/removes an "open" class on <nav> ---- */
    ul.sf-menu {
        display: none;
        float: none;
        width: 100%;
    }

    nav.open ul.sf-menu {
        display: block;
    }

    ul.sf-menu li {
        float: none;
        width: 100%;
    }

    /* ---- Submenus are hidden by default on mobile; nav-toggle.js
       adds "submenu-open" to the parent <li> when tapped ---- */
    ul.sf-menu ul {
        display: none;
        position: static;
        left: auto;
        width: 100%;
        margin: 0;
        background: #f5f5f5;
    }

    ul.sf-menu li.submenu-open > ul {
        display: block;
    }

    ul.sf-menu ul li {
        width: 100%;
    }

    /* ---- Small visual cue that a link has a submenu, on mobile only —
       drawn with CSS borders (not a text glyph) so it renders
       immediately without waiting on any font to load ---- */
    ul.sf-menu li > a[href="#"] {
        position: relative;
        padding-right: 30px !important;
    }

        ul.sf-menu li > a[href="#"]::after {
            content: "";
            position: absolute;
            right: 15px;
            top: 50%;
            width: 0;
            height: 0;
            border-left: 5px solid transparent;
            border-right: 5px solid transparent;
            border-top: 6px solid #666;
            transform: translateY(-50%);
        }

    ul.sf-menu li.submenu-open > a[href="#"]::after {
        border-top: none;
        border-bottom: 6px solid #666;
    }

    /* ---- Override legacy #nav id-selector styling on mobile — the
       old "ul#nav li a" rule (170% font, no background, text-shadow)
       has higher specificity than plain class-based mobile rules
       since it uses an ID selector, so without this it wins and
       causes menu items to render oversized with no background,
       overlapping the page content underneath. ---- */
    nav.open ul.sf-menu#nav li a {
        font-size: 100%;
        padding: 12px 15px;
        background: #fff;
        border-bottom: 1px solid #eee;
        text-shadow: none;
        display: block;
        width: 100%;
        box-sizing: border-box;
        margin-right: 0;
    }

    nav.open ul.sf-menu#nav {
        background: #fff;
        border: 1px solid #ccc;
        border-radius: 4px;
        box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    }

        nav.open ul.sf-menu#nav > li {
            border-bottom: 1px solid #eee;
        }

            nav.open ul.sf-menu#nav > li:last-child {
                border-bottom: none;
            }

        nav.open ul.sf-menu#nav ul {
            background: #f5f5f5;
        }

            /* ---- Extend the mobile menu fix to nested submenu items too ---- */
            nav.open ul.sf-menu#nav ul li a {
                font-size: 95%;
                padding: 10px 15px 10px 30px;
                background: #f5f5f5;
                border-bottom: 1px solid #e5e5e5;
                text-shadow: none;
                color: #333;
                display: block;
                width: 100%;
                box-sizing: border-box;
                margin-right: 0;
                float: none;
                text-align: left;
            }

        /* Force every top-level link to be left-aligned and full-width,
       overriding any leftover float/margin from the old desktop rule */
        nav.open ul.sf-menu#nav > li > a {
            text-align: left;
            float: none;
        }

        /* Third-level nesting (Monthly Events → Event 1-7) needs the
       same treatment, indented a bit further */
        nav.open ul.sf-menu#nav ul ul li a {
            padding-left: 45px;
        }

        /* ---- Nested submenus (e.g. "Monthly Events" under "Events") were
       still inheriting position:absolute / left:-999999px from the
       original SooperFish framework rules at deeper nesting levels;
       force them static/visible in place on mobile ---- */
        nav.open ul.sf-menu#nav ul {
            position: static !important;
            left: auto !important;
            width: 100% !important;
        }

            nav.open ul.sf-menu#nav ul ul {
                position: static !important;
                left: auto !important;
                width: 100% !important;
                margin: 0 !important;
            }

        nav.open ul.sf-menu#nav li.submenu-open > ul {
            display: block !important;
        }

        /* ---- The parent <li> was still floated/position:relative from
       the desktop SooperFish rules, so its box never grew to contain
       the now-visible submenu — causing overlap instead of push-down ---- */
        nav.open ul.sf-menu#nav > li {
            float: none !important;
            position: static !important;
            width: 100% !important;
            overflow: visible !important;
        }

        /* ---- The submenu's own <li> children (FAQ, Constitutions, etc.)
       were still floated from the desktop SooperFish rules, which
       collapsed the parent <ul>'s height to almost nothing since
       floated children don't contribute to their parent's height ---- */
        nav.open ul.sf-menu#nav ul li {
            float: none !important;
            width: 100% !important;
            position: static !important;
        }

    /* ---- Event, confirm and profile tables scroll horizontally
       instead of squashing ---- */
    table.event,
    table.confirm,
    table.profile {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }

        table.event td.r1,
        table.event td.r2 {
            white-space: normal;
        }

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

@media (min-width: 961px) {
    /* Hide the mobile toggle button entirely on desktop */
    #nav-toggle {
        display: none;
    }
}

@media (max-width: 480px) {
    body {
        font-size: 0.75em;
    }

    #logo h1 {
        font-size: 160%;
    }

    .form_settings input,
    .form_settings textarea,
    .form_settings select {
        width: 100%;
        box-sizing: border-box;
    }
}

/* Keep hover-triggered submenu hidden on touch devices — nav-toggle.js
   adds "touch-device" to <html> when it detects a touch-capable device */
html.touch-device ul.sf-menu li:hover ul {
    left: -999999px;
}
