/*
 Theme Name:   Yarram Country Club
 Theme URI:    https://yarramcountryclub.au
 Description:  Custom child theme for Yarram Country Club - Golf, Tennis, Bowls & Entertainment
 Author:       Yarram CC Development
 Version:      1.9.3
 Template:     generatepress
 Text Domain:  yarramcc
*/

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

:root {
    --ycc-navy: #002863;
    --ycc-navy-dark: #001d4a;
    --ycc-navy-light: #0a3a7a;
    --ycc-gold: #d4b66a;
    --ycc-gold-light: #e5d19a;
    --ycc-teal: #2a7f7f;
    --ycc-green: #4a7c3f;
    --ycc-blue: #2c5f8a;
    --ycc-dark: #1e1e1e;
    --ycc-dark-grey: #1a2332;
    --ycc-grey: #555;
    --ycc-light-grey: #f0f2f5;
    --ycc-white: #ffffff;
    --ycc-font-heading: 'Alegreya SC', serif;
    --ycc-font-body: 'Nunito', sans-serif;
    --ycc-font-accent: 'Roboto Slab', serif;
    --ycc-radius: 6px;
    --ycc-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    --ycc-shadow-hover: 0 4px 20px rgba(0, 0, 0, 0.14);
    --ycc-transition: 0.3s ease;
}

/* ==========================================================================
   GeneratePress Layout Overrides
   ========================================================================== */

/* Full-width pages: remove container constraints */
.page-template-template-calendar .inside-article,
.page-template-template-membership .inside-article,
.page-template-template-facilities .inside-article,
.page-template-template-contact .inside-article,
.home .inside-article,
.page .inside-article {
    padding: 0;
}

.page .site-content .content-area,
.home .site-content .content-area {
    width: 100%;
}

.page .site-main > article,
.home .site-main > article {
    max-width: 100%;
}

.page .entry-content,
.home .entry-content {
    max-width: 100%;
}

/* Remove GP default spacing on our templates */
.home .entry-header,
.page-template-template-calendar .entry-header,
.page-template-template-membership .entry-header,
.page-template-template-facilities .entry-header,
.page-template-template-contact .entry-header {
    display: none;
}

/* Make our sections truly full-width */
.ycc-hero,
.ycc-upcoming-events,
.ycc-section-alt {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
}

/* GP container override */
.site-content {
    display: block;
}

.inside-article {
    max-width: 100%;
}

/* Remove GP sidebar on pages */
.page #right-sidebar,
.home #right-sidebar {
    display: none;
}

/* GP content area full width when no sidebar */
.page .site-content .content-area {
    float: none;
    width: 100%;
}

/* ==========================================================================
   Base Typography
   ========================================================================== */

body {
    font-family: var(--ycc-font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--ycc-dark);
    background-color: var(--ycc-white);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ycc-font-heading);
    color: var(--ycc-navy);
    line-height: 1.3;
    margin-bottom: 0.6em;
}

h1 { font-size: 2.6rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.3rem; }

.subtitle,
.ycc-subtitle {
    font-family: var(--ycc-font-accent);
    color: var(--ycc-grey);
}

a {
    color: var(--ycc-navy);
    transition: color var(--ycc-transition);
}

a:hover {
    color: var(--ycc-navy-dark);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.ycc-btn,
.wp-block-button__link {
    display: inline-block;
    padding: 12px 32px;
    font-family: var(--ycc-font-body);
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    border-radius: var(--ycc-radius);
    transition: all var(--ycc-transition);
    cursor: pointer;
    border: 2px solid transparent;
}

.ycc-btn-primary,
.wp-block-button__link {
    background-color: var(--ycc-navy);
    color: var(--ycc-white);
    border-color: var(--ycc-navy);
}

.ycc-btn-primary:hover,
.wp-block-button__link:hover {
    background-color: var(--ycc-navy-dark);
    border-color: var(--ycc-navy-dark);
    color: var(--ycc-white);
}

.ycc-btn-secondary {
    background-color: transparent;
    color: var(--ycc-gold);
    border-color: var(--ycc-gold);
}

.ycc-btn-secondary:hover {
    background-color: var(--ycc-gold);
    color: var(--ycc-dark);
}

.ycc-btn-white {
    background-color: var(--ycc-white);
    color: var(--ycc-navy);
    border-color: var(--ycc-white);
}

.ycc-btn-white:hover {
    background-color: var(--ycc-gold-light);
    border-color: var(--ycc-gold-light);
}

.ycc-btn-outline {
    background-color: transparent;
    color: var(--ycc-white);
    border-color: var(--ycc-white);
}

.ycc-btn-outline:hover {
    background-color: var(--ycc-white);
    color: var(--ycc-navy);
}

.ycc-hero-ctas {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    background-color: var(--ycc-white);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    position: relative;
    z-index: 100;
}

/* Hide GP site title/description - logo carries the brand */
.site-header .site-title,
.site-header .site-description,
.main-title {
    display: none !important;
}

/* Kill the empty .site-branding wrapper so it doesn't eat flex space */
.site-header .site-branding {
    display: none;
}

/* Header layout: logo left, nav right */
.site-header .inside-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 0.75rem 2rem;
    max-width: 1400px;
    margin: 0 auto;
}

/* Logo */
.site-header .site-logo,
.site-header .custom-logo-link {
    line-height: 0;
    flex: 0 0 auto;
}

.site-header .site-logo img,
.site-header .custom-logo,
.site-header .header-image {
    max-height: 96px;
    width: auto;
    display: block;
}

/* Navigation container */
.main-navigation {
    background: transparent !important;
    min-height: 0 !important;
    margin: 0 !important;
    flex: 1 1 auto;
}

.main-navigation .inside-navigation {
    background: transparent !important;
    padding: 0 !important;
    justify-content: flex-end;
}

/* Top-level menu: horizontal, right-aligned, spaced */
.main-navigation .main-nav > ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.15rem;
    background: transparent !important;
}

.main-navigation .main-nav > ul > li {
    background: transparent !important;
}

.main-navigation .main-nav > ul > li > a {
    padding: 0.9rem 1rem;
    color: var(--ycc-navy) !important;
    font-family: var(--ycc-font-body);
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    line-height: 1;
    background: transparent !important;
    border-bottom: 2px solid transparent;
    transition: color var(--ycc-transition), border-color var(--ycc-transition);
}

.main-navigation .main-nav > ul > li > a:hover,
.main-navigation .main-nav > ul > li:hover > a,
.main-navigation .main-nav > ul > li.current-menu-item > a,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a,
.main-navigation .main-nav > ul > li.current-menu-parent > a {
    color: var(--ycc-navy-dark) !important;
    background: transparent !important;
    border-bottom-color: var(--ycc-gold);
}

/* Dropdown indicator arrow */
.main-navigation .dropdown-menu-toggle {
    margin-left: 0.35rem;
}

/* Sub-menu (dropdown) */
.main-navigation ul ul,
.main-navigation .sub-menu {
    background: var(--ycc-white) !important;
    border-top: 3px solid var(--ycc-gold);
    box-shadow: var(--ycc-shadow-hover);
    min-width: 220px;
    padding: 0.35rem 0 !important;
    border-radius: 0 0 var(--ycc-radius) var(--ycc-radius);
}

.main-navigation ul ul li {
    background: transparent !important;
}

.main-navigation ul ul li a {
    padding: 0.7rem 1.1rem !important;
    font-size: 0.8rem !important;
    letter-spacing: 0.4px;
    color: var(--ycc-navy) !important;
    border-bottom: none !important;
    text-transform: uppercase;
    font-weight: 600;
}

.main-navigation ul ul li a:hover,
.main-navigation ul ul li.current-menu-item > a {
    background: var(--ycc-light-grey) !important;
    color: var(--ycc-navy-dark) !important;
}

/* Hide the GP mobile hamburger on desktop */
.main-navigation .menu-toggle {
    display: none;
}

.navigation-search input[type="search"] {
    color: var(--ycc-dark);
}

/* ==========================================================================
   Hero Section
   ========================================================================== */

.ycc-hero {
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-size: cover;
    background-position: center;
    color: var(--ycc-white);
}

.ycc-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(30, 30, 30, 0.3) 0%, rgba(30, 30, 30, 0.6) 100%);
}

.ycc-hero-content {
    position: relative;
    z-index: 2;
    max-width: 700px;
    padding: 2rem;
}

.ycc-hero h1 {
    color: var(--ycc-white);
    font-size: 3.2rem;
    margin-bottom: 0.4em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.ycc-hero p {
    font-size: 1.25rem;
    margin-bottom: 1.5em;
    font-family: var(--ycc-font-accent);
}

/* ==========================================================================
   Facilities Grid
   ========================================================================== */

.ycc-facilities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    padding: 4rem 0;
}

.ycc-facility-card {
    background: var(--ycc-white);
    border-radius: var(--ycc-radius);
    overflow: hidden;
    box-shadow: var(--ycc-shadow);
    transition: transform var(--ycc-transition), box-shadow var(--ycc-transition);
}

.ycc-facility-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ycc-shadow-hover);
}

.ycc-facility-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.ycc-facility-card-body {
    padding: 1.5rem;
}

.ycc-facility-card h3 {
    font-size: 1.3rem;
    margin-bottom: 0.5em;
}

.ycc-facility-card p {
    color: var(--ycc-grey);
    font-size: 0.95rem;
}

/* ==========================================================================
   Upcoming Events
   ========================================================================== */

.ycc-upcoming-events {
    background-color: var(--ycc-light-grey);
    padding: 4rem 0;
}

.ycc-section-title {
    text-align: center;
    margin-bottom: 2.5rem;
}

.ycc-event-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.ycc-event-item {
    background: var(--ycc-white);
    border-radius: var(--ycc-radius);
    padding: 1.5rem;
    box-shadow: var(--ycc-shadow);
    border-left: 4px solid var(--ycc-navy);
    transition: transform var(--ycc-transition);
}

.ycc-event-item:hover {
    transform: translateY(-2px);
}

.ycc-event-date {
    font-family: var(--ycc-font-accent);
    font-size: 0.85rem;
    color: var(--ycc-navy);
    font-weight: 700;
    margin-bottom: 0.3em;
}

.ycc-event-item h4 {
    margin-bottom: 0.3em;
    color: var(--ycc-dark);
}

.ycc-event-meta {
    font-size: 0.85rem;
    color: var(--ycc-grey);
}

/* Category color accents */
.ycc-event-item[data-category="tennis"] { border-left-color: var(--ycc-teal); }
.ycc-event-item[data-category="bowls"] { border-left-color: var(--ycc-green); }
.ycc-event-item[data-category="golf"] { border-left-color: var(--ycc-blue); }
.ycc-event-item[data-category="entertainment"],
.ycc-event-item[data-category="live-music"] { border-left-color: var(--ycc-gold); }
.ycc-event-item[data-category="member-nights"] { border-left-color: var(--ycc-navy); }

/* ==========================================================================
   Sections
   ========================================================================== */

.ycc-section {
    padding: 4rem 0;
}

.ycc-section-alt {
    background-color: var(--ycc-light-grey);
}

.ycc-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ==========================================================================
   Facility Detail Sections (Facilities Page)
   ========================================================================== */

.ycc-facility-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    padding: 4rem 0;
}

.ycc-facility-detail:nth-child(even) {
    direction: rtl;
}

.ycc-facility-detail:nth-child(even) > * {
    direction: ltr;
}

.ycc-facility-detail img {
    width: 100%;
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer,
.ycc-footer {
    background-color: var(--ycc-dark-grey);
    color: #ccc;
    padding: 0;
}

.ycc-footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 4rem 2rem 3rem;
}

.ycc-footer-col h4 {
    color: var(--ycc-gold);
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.ycc-footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ycc-footer-col li {
    margin-bottom: 0.5rem;
}

.ycc-footer-col a {
    color: #ccc;
    text-decoration: none;
    font-size: 0.9rem;
}

.ycc-footer-col a:hover {
    color: var(--ycc-gold);
}

.ycc-footer-col p {
    font-size: 0.9rem;
    line-height: 1.6;
}

/* Compliance logos carousel — top of footer, all pages */
.ycc-compliance-carousel {
    background: var(--ycc-white);
    border-bottom: 1px solid #e4e7ec;
    overflow: hidden;
    padding: 1.25rem 0;
    position: relative;
}

.ycc-compliance-carousel::before,
.ycc-compliance-carousel::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
}

.ycc-compliance-carousel::before {
    left: 0;
    background: linear-gradient(to right, var(--ycc-white), rgba(255,255,255,0));
}

.ycc-compliance-carousel::after {
    right: 0;
    background: linear-gradient(to left, var(--ycc-white), rgba(255,255,255,0));
}

.ycc-compliance-track {
    display: flex;
    align-items: center;
    gap: 3rem;
    width: max-content;
    animation: ycc-marquee 45s linear infinite;
}

.ycc-compliance-carousel:hover .ycc-compliance-track {
    animation-play-state: paused;
}

@keyframes ycc-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.ycc-compliance-logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    min-width: 80px;
    padding: 0 0.5rem;
    opacity: 0.75;
    transition: opacity var(--ycc-transition);
    text-decoration: none;
}

.ycc-compliance-logo:hover {
    opacity: 1;
}

.ycc-compliance-logo img {
    max-height: 48px;
    max-width: 140px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: grayscale(100%);
    transition: filter var(--ycc-transition);
}

.ycc-compliance-logo:hover img {
    filter: grayscale(0);
}

/* Logos whose source file is white-on-transparent (VGCCC, etc.). Invert
   them so the wordmark becomes dark-on-transparent and greyscales
   alongside the other logos instead of disappearing into the light
   carousel background. */
.ycc-compliance-logo--invert img {
    filter: grayscale(100%) invert(1);
}
.ycc-compliance-logo--invert:hover img {
    filter: invert(1);
}

/* Logos that should NOT be greyscaled (e.g. multi-coloured artwork
   that would otherwise look muddy). They render in full colour at
   the same opacity as the rest of the carousel. */
.ycc-compliance-logo--keep-colour img {
    filter: none;
}

.ycc-compliance-logo--text {
    font-family: var(--ycc-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--ycc-grey);
    border: 2px dashed #cfd4db;
    border-radius: var(--ycc-radius);
    padding: 0.5rem 1rem;
    min-height: 48px;
}

@media (prefers-reduced-motion: reduce) {
    .ycc-compliance-track {
        animation: none;
        flex-wrap: wrap;
        width: 100%;
        justify-content: center;
    }
}

/* Sponsor list on Community page */
.ycc-sponsor-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ycc-sponsor-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid #eef0f3;
}

.ycc-sponsor-item:last-child {
    border-bottom: none;
}

.ycc-sponsor-link {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    color: var(--ycc-dark);
    text-decoration: none;
    transition: color var(--ycc-transition);
}

a.ycc-sponsor-link:hover {
    color: var(--ycc-navy);
}

a.ycc-sponsor-link:hover .ycc-sponsor-name {
    text-decoration: underline;
    text-decoration-color: var(--ycc-gold);
    text-underline-offset: 3px;
}

.ycc-sponsor-logo-thumb {
    flex: 0 0 auto;
    width: 44px !important;
    height: 44px !important;
    object-fit: contain;
    background: var(--ycc-white);
    border-radius: var(--ycc-radius);
    padding: 3px;
    border: 1px solid #eef0f3;
}

.ycc-sponsor-item:not(.has-logo) .ycc-sponsor-link {
    padding-left: 0;
}

.ycc-sponsor-name {
    font-size: 0.95rem;
    line-height: 1.4;
}

.ycc-sponsor-note {
    color: #888;
    font-size: 0.85rem;
    display: inline;
}

/* Sponsor logo strip (homepage shortcode) */
.ycc-sponsor-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    padding: 1.5rem 1rem;
}

.ycc-sponsor-strip-item img {
    max-height: 60px;
    max-width: 140px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0.85;
    transition: opacity var(--ycc-transition);
}

.ycc-sponsor-strip-item:hover img {
    opacity: 1;
}

/* Newsletter (footer) */
.ycc-newsletter-label {
    display: block;
    color: var(--ycc-gold);
    font-size: 1.1rem;
    font-family: var(--ycc-font-heading);
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 0.3em;
}

.ycc-newsletter-blurb {
    color: #bbb;
    font-size: 0.85rem;
    margin-bottom: 0.75em;
}

.ycc-newsletter-row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ycc-newsletter-row input {
    padding: 0.6rem 0.8rem;
    border: 1px solid #444;
    border-radius: var(--ycc-radius);
    background: #222;
    color: var(--ycc-white);
    font-family: var(--ycc-font-body);
    font-size: 0.9rem;
}

.ycc-newsletter-row input::placeholder {
    color: #888;
}

.ycc-newsletter-row input:focus {
    outline: none;
    border-color: var(--ycc-gold);
}

.ycc-newsletter-row button {
    padding: 0.65rem 1rem !important;
    font-size: 0.9rem !important;
}

.ycc-newsletter-ok {
    background: rgba(74, 124, 63, 0.2);
    border-left: 3px solid #6bbf59;
    color: #d4e5c8;
    padding: 0.75rem 1rem;
    border-radius: var(--ycc-radius);
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

.ycc-newsletter-err {
    background: rgba(192, 57, 43, 0.2);
    border-left: 3px solid #e74c3c;
    color: #f5c6c1;
    padding: 0.75rem 1rem;
    border-radius: var(--ycc-radius);
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

/* Compliance Bar */
.ycc-compliance-bar {
    background-color: var(--ycc-dark);
    padding: 1.2rem 2rem;
    text-align: center;
    font-size: 0.82rem;
    color: #999;
    border-top: 1px solid #444;
}

.ycc-compliance-bar a {
    color: var(--ycc-gold);
    margin: 0 0.8rem;
}

.ycc-compliance-bar a:hover {
    color: var(--ycc-gold-light);
}

.ycc-compliance-message {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: #bbb;
}

/* ==========================================================================
   Calendar Page
   ========================================================================== */

.ycc-calendar-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}

.ycc-category-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    justify-content: center;
}

.ycc-filter-btn {
    padding: 6px 18px;
    border: 2px solid var(--ycc-navy);
    background: transparent;
    color: var(--ycc-navy);
    border-radius: 20px;
    cursor: pointer;
    font-family: var(--ycc-font-body);
    font-size: 0.85rem;
    font-weight: 600;
    transition: all var(--ycc-transition);
}

.ycc-filter-btn:hover,
.ycc-filter-btn.active {
    background-color: var(--ycc-navy);
    color: var(--ycc-white);
}

.ycc-filter-btn[data-category="tennis"] { border-color: var(--ycc-teal); color: var(--ycc-teal); }
.ycc-filter-btn[data-category="tennis"]:hover,
.ycc-filter-btn[data-category="tennis"].active { background: var(--ycc-teal); color: #fff; }

.ycc-filter-btn[data-category="bowls"] { border-color: var(--ycc-green); color: var(--ycc-green); }
.ycc-filter-btn[data-category="bowls"]:hover,
.ycc-filter-btn[data-category="bowls"].active { background: var(--ycc-green); color: #fff; }

.ycc-filter-btn[data-category="golf"] { border-color: var(--ycc-blue); color: var(--ycc-blue); }
.ycc-filter-btn[data-category="golf"]:hover,
.ycc-filter-btn[data-category="golf"].active { background: var(--ycc-blue); color: #fff; }

/* FullCalendar overrides */
.fc .fc-toolbar-title {
    font-family: var(--ycc-font-heading);
    color: var(--ycc-navy);
}

.fc .fc-button-primary {
    background-color: var(--ycc-navy);
    border-color: var(--ycc-navy);
}

.fc .fc-button-primary:hover {
    background-color: var(--ycc-navy-dark);
    border-color: var(--ycc-navy-dark);
}

.fc .fc-button-primary:not(:disabled).fc-button-active {
    background-color: var(--ycc-navy-dark);
    border-color: var(--ycc-navy-dark);
}

.fc .fc-daygrid-day.fc-day-today {
    background-color: rgba(212, 182, 106, 0.15);
}

.fc-event { cursor: pointer; }

/* Event category colors in calendar */
.fc-event.cat-tennis { background-color: var(--ycc-teal); border-color: var(--ycc-teal); }
.fc-event.cat-bowls { background-color: var(--ycc-green); border-color: var(--ycc-green); }
.fc-event.cat-golf { background-color: var(--ycc-blue); border-color: var(--ycc-blue); }
.fc-event.cat-entertainment,
.fc-event.cat-live-music { background-color: var(--ycc-gold); border-color: var(--ycc-gold); color: var(--ycc-dark); }
.fc-event.cat-member-nights { background-color: var(--ycc-navy); border-color: var(--ycc-navy); color: #fff; }
.fc-event.cat-dining { background-color: var(--ycc-navy-light); border-color: var(--ycc-navy-light); }

/* ==========================================================================
   Contact Page
   ========================================================================== */

.ycc-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}

.ycc-contact-info h3 {
    margin-top: 1.5rem;
}

.ycc-contact-info p {
    margin-bottom: 0.5rem;
}

.ycc-map-wrap {
    border-radius: var(--ycc-radius);
    overflow: hidden;
    box-shadow: var(--ycc-shadow);
}

.ycc-map-wrap iframe {
    width: 100%;
    height: 400px;
    border: 0;
}

/* ==========================================================================
   Photo Galleries (Tennis/Bowls pages)
   ========================================================================== */

.ycc-photo-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.25rem;
}

.ycc-gallery-item {
    border-radius: var(--ycc-radius);
    overflow: hidden;
    box-shadow: var(--ycc-shadow);
    aspect-ratio: 4/3;
    transition: transform var(--ycc-transition);
}

.ycc-gallery-item:hover {
    transform: scale(1.02);
    box-shadow: var(--ycc-shadow-hover);
}

.ycc-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Results & Ladders styles live in the "Results table" section near
   the end of this file — the new CPT-driven implementation. */

.ycc-results-note {
    font-size: 0.85rem;
    color: var(--ycc-grey);
    margin-top: 0.5rem;
}

/* ==========================================================================
   About Page Grid
   ========================================================================== */

.ycc-about-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}

.ycc-about-card {
    background: var(--ycc-white);
    padding: 1.75rem;
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
    border-top: 4px solid var(--ycc-navy);
}

.ycc-about-card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.6em;
}

.ycc-about-card p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--ycc-grey);
}

/* Imaged variant — used by /local-area/ attractions and similar */
.ycc-about-card--imaged {
    padding: 0;
    overflow: hidden;
    border-top: none;
    display: flex;
    flex-direction: column;
}

.ycc-about-card--imaged img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.ycc-about-card--imaged .ycc-about-card__body {
    padding: 1.5rem;
    border-top: 4px solid var(--ycc-navy);
}

/* Plain (non-imaged) cards inside the imaged grid still get a body wrapper */
.ycc-about-grid--imaged .ycc-about-card:not(.ycc-about-card--imaged) .ycc-about-card__body {
    padding: 0;
}

.ycc-board-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.25rem;
    margin-top: 2rem;
}

.ycc-board-member {
    text-align: center;
    padding: 1.5rem 1rem;
    background: var(--ycc-light-grey);
    border-radius: var(--ycc-radius);
}

.ycc-board-member h4 {
    color: var(--ycc-navy);
    margin-bottom: 0.2em;
}

.ycc-board-member p {
    margin: 0;
    color: var(--ycc-grey);
    font-style: italic;
    font-family: var(--ycc-font-accent);
}

/* ==========================================================================
   Dining & Entertainment
   ========================================================================== */

.ycc-weekly-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.ycc-weekly-card {
    background: var(--ycc-white);
    padding: 1.25rem;
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
    text-align: center;
}

.ycc-weekly-card h4 {
    color: var(--ycc-navy);
    font-size: 1.1rem;
    margin-bottom: 0.75em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid var(--ycc-gold);
}

.ycc-weekly-card p {
    margin: 0.4em 0;
    font-size: 0.9rem;
    color: var(--ycc-grey);
}

.ycc-weekly-card p strong {
    color: var(--ycc-dark);
    display: block;
}

.ycc-weekly-highlight {
    background: var(--ycc-navy);
    color: var(--ycc-white);
}

.ycc-weekly-highlight h4 {
    color: var(--ycc-gold);
    border-bottom-color: var(--ycc-gold);
}

.ycc-weekly-highlight p,
.ycc-weekly-highlight p strong {
    color: var(--ycc-white);
}

/* ==========================================================================
   Courtesy Bus Callout
   ========================================================================== */

.ycc-courtesy-bus {
    text-align: center;
    background: var(--ycc-navy);
    color: var(--ycc-white);
    padding: 3rem 2rem;
    border-radius: var(--ycc-radius);
    max-width: 800px;
    margin: 0 auto;
}

.ycc-courtesy-bus h2 {
    color: var(--ycc-gold);
}

.ycc-courtesy-bus p {
    font-size: 1.1rem;
    margin-bottom: 1.5em;
}

.ycc-courtesy-bus .ycc-btn-primary {
    background: var(--ycc-gold);
    border-color: var(--ycc-gold);
    color: var(--ycc-navy);
    font-weight: 700;
}

.ycc-courtesy-bus .ycc-btn-primary:hover {
    background: var(--ycc-gold-light);
    border-color: var(--ycc-gold-light);
    color: var(--ycc-navy);
}

.ycc-courtesy-box {
    background: var(--ycc-light-grey);
    padding: 1.25rem;
    border-radius: var(--ycc-radius);
    border-left: 4px solid var(--ycc-gold);
    margin-top: 1.5rem !important;
}

/* ==========================================================================
   Contact Page
   ========================================================================== */

.ycc-contact-detail {
    margin-bottom: 1.5rem;
}

.ycc-contact-detail h4 {
    color: var(--ycc-navy);
    font-size: 1rem;
    margin-bottom: 0.3em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ycc-contact-detail p {
    margin: 0;
    color: var(--ycc-dark);
    line-height: 1.6;
}

.ycc-contact-detail a {
    color: var(--ycc-navy);
    text-decoration: none;
    font-weight: 600;
}

.ycc-contact-detail a:hover {
    text-decoration: underline;
}

/* Styled Contact Form */
.ycc-contact-form-wrap {
    background: var(--ycc-white);
    padding: 2.5rem;
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
}

.ycc-contact-form-wrap h2 {
    margin-top: 0;
    padding-bottom: 0.5em;
    border-bottom: 3px solid var(--ycc-gold);
}

.ycc-contact-form .ycc-form-field {
    margin-bottom: 1.25rem;
}

.ycc-contact-form .ycc-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.ycc-contact-form label {
    display: block;
    font-weight: 600;
    color: var(--ycc-navy);
    margin-bottom: 0.4em;
    font-size: 0.9rem;
}

.ycc-contact-form .required {
    color: #c0392b;
}

.ycc-contact-form input[type="text"],
.ycc-contact-form input[type="email"],
.ycc-contact-form input[type="tel"],
.ycc-contact-form select,
.ycc-contact-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 2px solid #e0e4eb;
    border-radius: var(--ycc-radius);
    font-family: var(--ycc-font-body);
    font-size: 1rem;
    color: var(--ycc-dark);
    background: var(--ycc-white);
    transition: border-color var(--ycc-transition), box-shadow var(--ycc-transition);
}

.ycc-contact-form input:focus,
.ycc-contact-form select:focus,
.ycc-contact-form textarea:focus {
    outline: none;
    border-color: var(--ycc-navy);
    box-shadow: 0 0 0 3px rgba(0, 40, 99, 0.1);
}

.ycc-contact-form textarea {
    resize: vertical;
    min-height: 140px;
}

.ycc-contact-form button {
    width: 100%;
    padding: 14px 32px;
    font-size: 1.05rem;
    margin-top: 0.5rem;
}

.ycc-form-success {
    background: #d4edda;
    border-left: 4px solid #28a745;
    color: #155724;
    padding: 1.5rem;
    border-radius: var(--ycc-radius);
    margin-bottom: 1rem;
}

.ycc-form-success h3 {
    color: #155724;
    margin-top: 0;
}

.ycc-form-errors {
    background: #f8d7da;
    border-left: 4px solid #dc3545;
    color: #721c24;
    padding: 1rem 1.25rem;
    border-radius: var(--ycc-radius);
    margin-bottom: 1rem;
}

.ycc-form-errors ul {
    margin: 0;
    padding-left: 1.25rem;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
    .ycc-hero h1 {
        font-size: 2.4rem;
    }

    .ycc-facility-detail {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .ycc-facility-detail:nth-child(even) {
        direction: ltr;
    }
}

/* Nav switches to hamburger below 900px — logo + toggle stay on one row */
@media (max-width: 900px) {
    .site-header .inside-header {
        flex-wrap: wrap;
        padding: 0.5rem 1rem;
        gap: 0.75rem;
    }

    .main-navigation {
        flex: 0 0 auto;
        width: auto;
        order: 2;
        margin-left: auto !important;
    }

    .main-navigation .menu-toggle {
        display: inline-flex !important;
        align-items: center;
        gap: 0.5rem;
        background: var(--ycc-navy) !important;
        color: var(--ycc-white) !important;
        border: 0;
        border-radius: var(--ycc-radius);
        padding: 0.55rem 1.1rem;
        font-family: var(--ycc-font-body);
        font-weight: 700;
        font-size: 0.8rem;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        cursor: pointer;
    }

    .main-navigation .menu-toggle:hover {
        background: var(--ycc-navy-dark) !important;
    }

    /* Hide the inline menu until toggled */
    .main-navigation .main-nav {
        flex: 1 0 100%;
        order: 3;
    }

    .main-navigation:not(.toggled) .main-nav > ul {
        display: none;
    }

    .main-navigation.toggled .main-nav > ul {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 0.5rem 0;
        background: var(--ycc-white) !important;
        border-top: 1px solid #e4e7ec;
    }

    .main-navigation.toggled .main-nav > ul > li {
        width: 100%;
    }

    .main-navigation.toggled .main-nav > ul > li > a {
        padding: 0.95rem 1rem;
        border-bottom: 1px solid #eef0f3;
    }

    .main-navigation.toggled .main-nav > ul > li:last-child > a {
        border-bottom: 0;
    }

    .main-navigation.toggled ul ul,
    .main-navigation.toggled .sub-menu {
        position: static !important;
        opacity: 1 !important;
        visibility: visible !important;
        box-shadow: none !important;
        border-top: 0 !important;
        border-radius: 0 !important;
        background: var(--ycc-light-grey) !important;
        padding: 0 !important;
        min-width: 0 !important;
    }

    .main-navigation.toggled ul ul li a {
        padding: 0.75rem 2rem !important;
    }
}

@media (max-width: 768px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 1.6rem; }
    h3 { font-size: 1.3rem; }

    .ycc-hero {
        min-height: 50vh;
    }

    .ycc-hero h1 {
        font-size: 2rem;
    }

    .ycc-hero p {
        font-size: 1.05rem;
    }

    .ycc-section {
        padding: 2.5rem 0;
    }

    .ycc-container {
        padding: 0 1rem;
    }

    .ycc-footer-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .ycc-contact-grid {
        grid-template-columns: 1fr;
    }

    .ycc-facilities-grid {
        grid-template-columns: 1fr;
    }

    .ycc-calendar-wrap {
        padding: 1rem;
    }

    .ycc-contact-form .ycc-form-row {
        grid-template-columns: 1fr;
    }

    .ycc-contact-form-wrap {
        padding: 1.5rem;
    }

    .ycc-results-table th,
    .ycc-results-table td {
        padding: 8px;
    }

    .fc .fc-toolbar {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* ==========================================================================
   Header fixes for gilboai.net.au/yarramcc (prod)
   ========================================================================== */

/* Cap the custom logo so it doesn't dominate the header */
.site-logo img.header-image,
.site-logo img {
    max-height: 64px !important;
    width: auto !important;
    height: auto !important;
}

/* Hide the duplicate mobile menu toggle — keep only the top-right inline one */
#site-navigation > .inside-navigation > .menu-toggle {
    display: none !important;
}

/* ==========================================================================
   Bistro menu — /menu/
   ========================================================================== */

.ycc-menu {
    max-width: 880px;
}

.ycc-menu-section {
    margin-bottom: 3.5rem;
}

.ycc-menu-section:last-child {
    margin-bottom: 0;
}

.ycc-menu-section__title {
    font-family: var(--ycc-font-heading);
    color: var(--ycc-navy);
    font-size: 2rem;
    text-align: center;
    margin-bottom: 0.4em;
    padding-bottom: 0.6rem;
    border-bottom: 2px solid var(--ycc-gold);
    letter-spacing: 1.5px;
}

.ycc-menu-section__desc {
    text-align: center;
    color: var(--ycc-grey);
    font-style: italic;
    margin: 0 auto 2rem;
    max-width: 640px;
}

.ycc-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ycc-menu-item {
    padding: 1.25rem 0;
    border-bottom: 1px dashed #e1d8c2;
}

.ycc-menu-item:last-child {
    border-bottom: 0;
}

.ycc-menu-item__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.ycc-menu-item__name {
    margin: 0;
    color: var(--ycc-dark);
    font-size: 1.15rem;
    font-weight: 600;
    flex: 1;
}

.ycc-menu-item__price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

.ycc-menu-item__price-main {
    color: var(--ycc-navy);
    font-weight: 700;
    font-size: 1.1rem;
}

.ycc-menu-item__price-member {
    color: var(--ycc-grey);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.1rem;
}

.ycc-menu-item__desc {
    margin: 0.5rem 0 0;
    color: var(--ycc-grey);
    font-size: 0.95rem;
    line-height: 1.55;
}

.ycc-menu-item__tags {
    margin-top: 0.5rem;
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.ycc-menu-tag {
    display: inline-block;
    background: rgba(212, 182, 106, 0.18);
    color: #7a5d20;
    border-radius: 999px;
    padding: 0.18rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.ycc-menu-empty {
    text-align: center;
    padding: 4rem 1rem;
    background: var(--ycc-white);
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
    max-width: 640px;
    margin: 0 auto;
}

.ycc-menu-empty h2 {
    color: var(--ycc-navy);
    margin-bottom: 0.5em;
}

@media (max-width: 600px) {
    .ycc-menu-item__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
    .ycc-menu-item__price {
        flex-direction: row;
        align-items: baseline;
        gap: 0.6rem;
        text-align: left;
    }
    .ycc-menu-item__price-member {
        margin-top: 0;
    }
}

/* ==========================================================================
   Results table — tennis & bowls match results
   ========================================================================== */

.ycc-results-section {
    /* sits inside an existing .ycc-section .ycc-container — no extra layout */
}

.ycc-results-table-wrap {
    overflow-x: auto;
    background: var(--ycc-white);
    border-radius: var(--ycc-radius);
    box-shadow: var(--ycc-shadow);
}

.ycc-results-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--ycc-font-body);
    font-size: 0.95rem;
}

.ycc-results-table thead {
    background: var(--ycc-navy);
    color: var(--ycc-white);
}

.ycc-results-table th {
    padding: 0.85rem 1rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    border: none;
}

.ycc-results-table th.ycc-results-score,
.ycc-results-table th.ycc-results-outcome {
    text-align: center;
}

.ycc-results-table tbody tr {
    border-bottom: 1px solid #eee;
    transition: background 0.15s ease;
}

.ycc-results-table tbody tr:hover {
    background: #f8f9fb;
}

.ycc-results-table tbody tr:last-child {
    border-bottom: none;
}

.ycc-results-table td {
    padding: 0.85rem 1rem;
    vertical-align: middle;
    color: var(--ycc-dark);
}

.ycc-results-table td.ycc-results-score {
    text-align: center;
    font-weight: 600;
    color: var(--ycc-navy);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ycc-results-table td.ycc-results-outcome {
    text-align: center;
}

.ycc-results-table a {
    color: var(--ycc-navy);
    text-decoration: none;
    font-weight: 600;
}

.ycc-results-table a:hover {
    color: var(--ycc-gold);
    text-decoration: underline;
}

.ycc-results-venue {
    color: var(--ycc-grey);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-left: 0.3em;
}

.ycc-results-muted {
    color: #b8bcc4;
}

.ycc-result-badge {
    display: inline-block;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1;
    text-transform: uppercase;
    background: #eee;
    color: #555;
}

.ycc-result-badge--won {
    background: rgba(74, 124, 63, 0.12);
    color: #2d5a26;
}

.ycc-result-badge--lost {
    background: rgba(179, 51, 51, 0.10);
    color: #a52a2a;
}

.ycc-result-badge--drew {
    background: rgba(0, 40, 99, 0.08);
    color: var(--ycc-navy);
}

.ycc-result-badge--tbc {
    background: rgba(212, 182, 106, 0.18);
    color: #7a5d20;
}

/* Mobile: stack the table cells with labels */
@media (max-width: 600px) {
    .ycc-results-table thead {
        display: none;
    }
    .ycc-results-table,
    .ycc-results-table tbody,
    .ycc-results-table tr,
    .ycc-results-table td {
        display: block;
        width: 100%;
    }
    .ycc-results-table tr {
        padding: 0.85rem 1rem;
        border-bottom: 1px solid #eee;
    }
    .ycc-results-table td {
        padding: 0.25rem 0;
        text-align: left !important;
    }
    .ycc-results-table td::before {
        content: attr(data-label) ":";
        display: inline-block;
        min-width: 110px;
        font-weight: 600;
        color: var(--ycc-grey);
        font-size: 0.78rem;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    .ycc-results-table td.ycc-results-score,
    .ycc-results-table td.ycc-results-outcome {
        text-align: left;
    }
}

/* ----- v1.8.0 additions ----- */

/* YourPlay anchor badge — fixed bottom-right (gaming-licence requirement) */
.ycc-yourplay-anchor {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 950;
    display: inline-flex;
    background: #fff;
    border-radius: 12px;
    padding: 8px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    line-height: 0;
}
.ycc-yourplay-anchor:hover,
.ycc-yourplay-anchor:focus {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}
.ycc-yourplay-anchor img {
    height: 56px;
    width: auto;
    max-width: 110px;
    display: block;
}
@media (max-width: 640px) {
    .ycc-yourplay-anchor {
        right: 10px;
        bottom: 10px;
        padding: 6px;
    }
    .ycc-yourplay-anchor img {
        height: 44px;
    }
}

/* Paused weekly schedule card — keeps the card visible with a clear "on hold" badge */
.ycc-weekly-card.ycc-weekly-paused {
    position: relative;
    opacity: 0.78;
}
.ycc-weekly-card.ycc-weekly-paused h4,
.ycc-weekly-card.ycc-weekly-paused p {
    color: #5e6770;
}
.ycc-weekly-paused-badge {
    display: inline-block;
    background: #b33;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 3px;
    margin-bottom: 0.6rem;
}
.ycc-weekly-pause-note {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed #c8cdd2;
    font-size: 0.92rem;
    font-style: italic;
}

/* Membership tier perks list */
.ycc-tier-perks {
    list-style: none;
    padding: 0;
    margin: 0.75rem 0 0;
    text-align: left;
}
.ycc-tier-perks li {
    position: relative;
    padding-left: 1.1em;
    margin-bottom: 0.35em;
    font-size: 0.94rem;
    line-height: 1.4;
}
.ycc-tier-perks li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ycc-gold);
    font-weight: 700;
}

/* Rewards section — responsive 50/50 that stacks on narrow screens */
.ycc-rewards-grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 3rem;
    align-items: center;
}
.ycc-rewards-badge {
    text-align: center;
}
.ycc-rewards-badge img {
    max-width: 260px;
    width: 100%;
    height: auto;
}
@media (max-width: 720px) {
    .ycc-rewards-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Page content (the_content() injected into custom templates) */
.ycc-page-content {
    margin: 1.5rem 0;
}
.ycc-page-content p:last-child {
    margin-bottom: 0;
}

/* Optional site-wide notice strip (just above the YourPlay anchor) */
.ycc-site-notice {
    position: relative;
    background: var(--ycc-navy);
    color: #fff;
    padding: 0.9rem 1.25rem;
    text-align: center;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.ycc-site-notice__body {
    max-width: 900px;
}
.ycc-site-notice__cta {
    color: var(--ycc-gold);
    font-weight: 700;
    text-decoration: underline;
}
.ycc-site-notice__cta:hover,
.ycc-site-notice__cta:focus {
    color: #fff;
}
