@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&family=Open+Sans:wght@400;600&display=swap');

:root {
    --primary-color: #0A2342;
    --primary-color-rgb: 10, 35, 66;
    --primary-color-lightened: #1B3E6A;
    --secondary-color: #005F7A;
    --secondary-color-rgb: 0, 95, 122;
    --accent-color-cta: #FED100;
    --accent-color-cta-hover: #E5A93C;
    --accent-color-highlight: #FFC857;
    --white-color: #FFFFFF;
    --light-bg-color: #F8F9FA;
    --medium-bg-color: #EEF2F5;
    --sand-bg-color: #FDF5E6;
    --sand-border-color: #E0CDA8;
    --border-color: #DDE2E6;
    --card-bg-color: var(--white-color);
    --text-dark-color: #2D2D2D;
    --text-medium-color: #6B7A8F;
    --text-light-color: #8C8C8C;
    --text-on-dark-bg: #F0F8FF;
    --text-on-accent-bg: var(--white-color);
    --link-color: var(--secondary-color);
    --link-hover-color: var(--primary-color-lightened);
    --step-number-bg: var(--secondary-color);
    --step-number-text: var(--white-color);
    --font-family-headings: 'Poppins', sans-serif;
    --font-family-body: 'Open Sans', sans-serif;
    --space-unit: 1rem;
    --section-padding-y: calc(var(--space-unit) * 4);
    --content-max-width: 1200px;
    --grid-gap: calc(var(--space-unit) * 1.75);
    --card-shadow: 0 5px 15px rgba(var(--primary-color-rgb), 0.07);
    --card-hover-shadow: 0 8px 25px rgba(var(--primary-color-rgb), 0.1);
    --button-shadow: 0 3px 8px rgba(var(--primary-color-rgb), 0.1);
    --button-hover-shadow: 0 5px 12px rgba(var(--primary-color-rgb), 0.15);
    --default-transition: all 0.25s ease-in-out;
    --border-radius-small: 5px;
    --border-radius-medium: 8px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body.LayoutMain {
    font-family: var(--font-family-body);
    color: var(--text-dark-color);
    line-height: 1.7;
    font-size: 1rem;
    background-color: var(--white-color);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-headings);
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 var(--space-unit) 0;
    color: var(--primary-color);
}
h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: calc(var(--space-unit) * 1.5); }
h2 { font-size: clamp(1.8rem, 4vw, 2.5rem); margin-bottom: calc(var(--space-unit) * 1.25); }
h3 { font-size: clamp(1.4rem, 3vw, 1.75rem); margin-bottom: var(--space-unit); }
h4 { font-size: clamp(1.1rem, 2.5vw, 1.25rem); margin-bottom: calc(var(--space-unit) * 0.75); }

p { margin: 0 0 var(--space-unit) 0; color: var(--text-medium-color); }
p:last-of-type { margin-bottom: 0; }

a { color: var(--link-color); text-decoration: none; transition: var(--default-transition); }
a:hover, a:focus-visible { color: var(--link-hover-color); text-decoration: underline; outline-offset: 2px; }
a:focus-visible { outline: 2px dashed var(--link-hover-color); }

img { max-width: 100%; height: auto; display: block; border-radius: var(--border-radius-small); border-style: none; }

.content-container { width: 90%; max-width: var(--content-max-width); margin-left: auto; margin-right: auto; padding-left: var(--space-unit); padding-right: var(--space-unit); }
.section-padding { padding-top: var(--section-padding-y); padding-bottom: var(--section-padding-y); }
.text-align-center { text-align: center; }
.text-align-left { text-align: left; }

.section-title { margin-bottom: calc(var(--space-unit) * 0.75); font-weight: 700; }
.section-title + .section-subtitle { margin-top: calc(var(--space-unit) * -0.75); }
.section-subtitle { font-size: clamp(1rem, 2.5vw, 1.15rem); color: var(--text-light-color); max-width: 700px; margin: calc(var(--space-unit) * -0.5) auto calc(var(--space-unit)*1.5) auto; }

.light-bg { background-color: var(--light-bg-color); }
.medium-bg { background-color: var(--medium-bg-color); }
.sand-bg { background-color: var(--sand-bg-color); }

.dark-section-bg { background-color: var(--primary-color); color: var(--text-on-dark-bg); }
.dark-section-bg .section-title, .dark-section-bg h1, .dark-section-bg h2, .dark-section-bg h3, .dark-section-bg h4,
.dark-section-bg p, .dark-section-bg cite, .dark-section-bg .section-subtitle, .dark-section-bg .card-title,
.dark-section-bg .officer-rank, .dark-section-bg .officer-name, .dark-section-bg .meeting-details-card h3, .dark-section-bg .meeting-details-card p,
.dark-section-bg .race-card-header h3, .dark-section-bg .race-month, .dark-section-bg .highlight-link, .dark-section-bg .winner-highlight {
    color: var(--text-on-dark-bg);
}
.dark-section-bg .club-aisc { color: var(--accent-color-highlight) !important; }
.dark-section-bg .button-secondary { background-color: var(--white-color); color: var(--primary-color); border-color: var(--white-color); }
.dark-section-bg .button-secondary:hover, .dark-section-bg .button-secondary:focus-visible { background-color: rgba(255,255,255,0.85); border-color: rgba(255,255,255,0.85); color: var(--primary-color); }

.button { display: inline-block; font-family: var(--font-family-headings); font-weight: 600; font-size: 1rem; padding: calc(var(--space-unit)*0.75) calc(var(--space-unit)*1.75); border-radius: var(--border-radius-small); text-decoration: none; cursor: pointer; text-align: center; transition: var(--default-transition); border: 2px solid transparent; line-height: 1.5; letter-spacing: 0.5px; will-change: transform; }
.button:hover, .button:focus-visible { text-decoration: none; transform: translateY(-3px); box-shadow: var(--button-hover-shadow); }
.button:active { transform: translateY(-1px); box-shadow: var(--button-shadow); }
.button:focus-visible { outline-color: var(--accent-color-highlight); outline-offset: 2px;}
.button-primary { background-color: var(--accent-color-cta); color: var(--text-on-accent-bg); border-color: var(--accent-color-cta); box-shadow: var(--button-shadow); }
.button-primary:hover, .button-primary:focus-visible { background-color: var(--accent-color-cta-hover); border-color: var(--accent-color-cta-hover); color: var(--text-on-accent-bg); }
.button-secondary { background-color: transparent; color: var(--secondary-color); border: 2px solid var(--secondary-color); }
.button-secondary:hover, .button-secondary:focus-visible { background-color: var(--secondary-color); color: var(--white-color); border-color: var(--secondary-color); }
.button-secondary:focus-visible { outline-color: var(--secondary-color); }
.button-large { font-size: 1.1rem; padding: calc(var(--space-unit)*0.9) calc(var(--space-unit)*2.2); }
.button-icon i { margin-right: 0.6em; font-size: 0.95em; vertical-align: -0.05em; }
.button-wrapper { margin-top: calc(var(--space-unit) * 1.25); }
.button-wrapper .button { margin: calc(var(--space-unit)*0.5); }
.button.facebook-button { background-color: #1877F2; color: var(--white-color); border-color: #1877F2; }
.button.facebook-button:hover, .button.facebook-button:focus-visible { background-color: #166FE5; border-color: #166FE5; color: var(--white-color); }

.hero-section.modern-hero { position: relative; background-image: url('/resources/Site/background.jpeg'); background-size: cover; background-position: center center; background-attachment: scroll; color: var(--text-on-dark-bg); padding: calc(var(--section-padding-y) * 1.5) var(--space-unit); min-height: 70vh; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.hero-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(var(--primary-color-rgb), 0.55) 0%, rgba(var(--primary-color-rgb), 0.80) 100%); z-index: 1; }
.hero-content { position: relative; z-index: 2; max-width: 850px; }
.hero-main-title { font-size: clamp(2.5rem, 6vw, 3.5rem); font-weight: 700; color: var(--white-color); margin-bottom: 0.75rem; text-shadow: 1px 1px 5px rgba(0,0,0,0.4); }
.hero-subheadline { font-size: clamp(1.25rem, 4vw, 1.75rem); color: var(--white-color); font-weight: 400; margin-bottom: 1.5rem; opacity: 0.9; }
.hero-intro { font-size: clamp(1rem, 2.5vw, 1.15rem); color: var(--text-on-dark-bg); margin-bottom: 2rem; opacity: 0.95; }
.hero-cta-buttons .button { margin: calc(var(--space-unit)*0.5); }
.hero-cta-buttons .button-secondary { background-color: transparent; border-color: var(--white-color); color: var(--white-color); }
.hero-cta-buttons .button-secondary:hover, .hero-cta-buttons .button-secondary:focus-visible { background-color: var(--white-color); color: var(--primary-color); }

.card-base { background-color: var(--card-bg-color); padding: calc(var(--space-unit) * 1.5); border-radius: var(--border-radius-medium); box-shadow: var(--card-shadow); transition: var(--default-transition); display: flex; flex-direction: column; }
.card-base:hover, .card-base:focus-within { transform: translateY(-6px); box-shadow: var(--card-hover-shadow); }
.card-title { font-size: 1.5rem; color: var(--primary-color); margin-bottom: var(--space-unit); font-weight: 600; }
.card-content p, .card-content ul, .card-content li { color: var(--text-dark-color); }

.highlight-grid, .testimonial-grid, .info-grid-adaptive, .officers-grid, .benefits-grid, .form-steps-grid, .photo-grid, .winner-category-group, .race-info-grid, .info-grid.two-column-grid, .responsive-grid {
    display: grid;
    gap: var(--grid-gap);
    margin-top: calc(var(--space-unit) * 1.5);
}

.highlight-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.highlight-card { background-color:var(--card-bg-color); padding: calc(var(--space-unit) * 1.75) calc(var(--space-unit) * 1.5); border-radius: var(--border-radius-medium); box-shadow: var(--card-shadow); text-align: center; transition: var(--default-transition), transform 0.2s ease-out, box-shadow 0.2s ease-out; display:flex; flex-direction:column; }
.highlight-card:hover, .highlight-card:focus-within { transform: translateY(-8px); box-shadow: var(--card-hover-shadow); }
.highlight-icon { color: var(--secondary-color); margin-bottom: var(--space-unit); font-size: 2.8rem; line-height: 1; }
.highlight-icon i { transition: transform 0.3s ease-in-out; }
.highlight-card:hover .highlight-icon i { transform: scale(1.1) rotate(-5deg); }
.highlight-card h3 { font-size: 1.4rem; margin-bottom: 0.75rem; color: var(--primary-color); }
.highlight-card p { flex-grow: 1; }

.testimonial-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
.dark-section-bg .testimonial-card { background-color: rgba(255,255,255, 0.08); border: 1px solid rgba(255,255,255,0.2); padding: calc(var(--space-unit) * 1.75); border-radius: var(--border-radius-medium); display: flex; flex-direction: column; align-items: center; text-align: center; transition: var(--default-transition); color: var(--text-on-dark-bg); }
.dark-section-bg .testimonial-card:hover { transform: translateY(-6px); background-color: rgba(255,255,255, 0.12); }
.testimonial-image { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; margin: 0 auto var(--space-unit) auto; border: 3px solid var(--white-color); box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.dark-section-bg .testimonial-quote { color:inherit; font-style: italic; font-size: 1.05rem; margin-bottom: var(--space-unit); line-height: 1.6; flex-grow: 1; }
.dark-section-bg .testimonial-author { font-weight: 600; font-size: 0.95rem; color: var(--seafoam-accent); }

.info-grid-adaptive { grid-template-columns: 1fr; }
.info-card { background-color:var(--card-bg-color); padding: calc(var(--space-unit) * 1.5); border-radius: var(--border-radius-medium); box-shadow: var(--card-shadow); text-align: center; transition: var(--default-transition); display: flex; flex-direction: column; border-top: 4px solid transparent; }
.info-card:hover, .info-card:focus-within { transform: translateY(-6px); box-shadow: var(--card-hover-shadow); border-top-color: var(--secondary-color); }
.info-card h3 { font-size: 1.35rem; display: flex; align-items: center; justify-content: center; gap: 0.5em; margin-bottom:var(--space-unit); color: var(--primary-color); }
.info-card h3 i { color: var(--secondary-color); font-size: 1.1em; line-height: 1; margin-right:0; }
.info-card p { flex-grow: 1; margin-bottom:var(--space-unit); }
.info-card .button-wrapper { margin-top: auto; padding-top: var(--space-unit);}
.info-card a.link-icon { font-size: 0.9rem; display: inline-flex; align-items: center; gap: 0.4em; }

.upcoming-events-title-section { padding-bottom: calc(var(--space-unit)*1.25); }
.WaGadgetUpcomingEvents ul { list-style-type: none; padding-left: 0; margin-bottom: 0; }
.WaGadgetUpcomingEvents li { background-color: var(--card-bg-color); padding: calc(var(--space-unit)*1.25); margin-bottom: var(--space-unit); border-radius: var(--border-radius-medium); box-shadow: var(--card-shadow); border-left: 5px solid var(--secondary-color); text-align: left; transition: var(--default-transition); }
.WaGadgetUpcomingEvents li:hover { box-shadow: var(--card-hover-shadow); transform: translateX(4px); }
.WaGadgetUpcomingEvents .title a { font-family: var(--font-family-headings); font-size: 1.25rem; font-weight: 600; color: var(--primary-color); }
.WaGadgetUpcomingEvents .title a:hover { color: var(--secondary-color); }
.WaGadgetUpcomingEvents .date, .WaGadgetUpcomingEvents .location { font-size: 0.9rem; color: var(--text-light-color); margin-top: 0.5rem; }
.WaGadgetUpcomingEvents .location i { margin-right: 0.5em; color: var(--secondary-color); }

.meetings-section { background-color: var(--medium-bg-color); }
.meeting-details-card { background-color: var(--card-bg-color); padding: calc(var(--space-unit) * 2); border-radius: var(--border-radius-medium); box-shadow: var(--card-shadow); max-width: 700px; margin: calc(var(--space-unit) * 1.5) auto 0 auto; border-top: 5px solid var(--primary-color); text-align:center;}
.meeting-icon { color: var(--primary-color); font-size: 2.75rem; margin-bottom: var(--space-unit); line-height: 1; }
.meeting-details-card h3 { font-size: 1.75rem; margin-bottom: 0.75rem; font-weight: 700; color: var(--primary-color); }
.meeting-sub-detail { font-size: 0.95rem; color: var(--text-light-color); margin-bottom: calc(var(--space-unit) * 1.25); }
.meeting-info p { font-size: 1.05rem; margin-bottom: 0.75rem; color: var(--text-dark-color); }
.meeting-info p i { margin-right: 0.75em; color: var(--secondary-color); width: 20px; text-align: center; }
.meeting-cta { margin-top: calc(var(--space-unit) * 1.5); }

.officers-grid { padding-top:0; grid-template-columns: 1fr; }
.officer-card { background-color:var(--card-bg-color); box-shadow:var(--card-shadow); border-radius:var(--border-radius-medium); padding: calc(var(--space-unit) * 1.5); display: flex; flex-direction: column; text-align: center; transition: var(--default-transition); border-top: 4px solid transparent; }
.officer-card:hover, .officer-card:focus-within { transform: translateY(-6px); box-shadow: var(--card-hover-shadow); border-top-color: var(--accent-color-highlight); }
.officer-badge { margin-bottom: var(--space-unit); min-height: 50px; }
.badge-icon { max-width: 100px; height: auto; margin-left: auto; margin-right: auto; border-radius: 0; }
.officer-portrait-container { margin-bottom: calc(var(--space-unit) * 1.25); }
.officer-portrait { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; margin: 0 auto var(--space-unit) auto; border: 4px solid var(--white-color); box-shadow: 0 2px 8px rgba(var(--primary-color-rgb), 0.2); }
.officer-content { flex-grow: 1; display:flex; flex-direction:column;}
.officer-rank { font-size: 1rem; font-weight: 600; color: var(--secondary-color); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: calc(var(--space-unit) * 0.25); }
.officer-name { font-size: clamp(1.5rem, 3.5vw, 1.8rem); font-weight: 700; margin-bottom: calc(var(--space-unit) * 0.75); }
.officer-bio { font-size: 0.95rem; line-height: 1.6; flex-grow: 1; }
.officer-contact { margin-top: auto; padding-top: var(--space-unit); font-size: 0.9rem; }
.officer-contact a { display: inline-flex; align-items: center; gap: 0.5em; }
.emergency-contact a { color: var(--accent-color-cta); font-weight: 600; }
.emergency-contact a:hover { color: var(--accent-color-cta-hover); }
.officer-contact i { font-size: 0.9em; }

.benefits-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));}
.benefit-item { background-color: var(--sand-bg-color); padding: calc(var(--space-unit) * 1.75); border-radius: var(--border-radius-medium); text-align: center; border: 1px solid var(--sand-border-color); box-shadow: var(--card-shadow); }
.benefit-item h3 { color: var(--primary-color); font-size: 1.5rem; margin: 0 0 calc(var(--space-unit) * 0.75) 0; display: flex; align-items: center; justify-content: center; gap: 0.6em; }
.benefit-item h3 i { color: var(--accent-color-highlight); font-size: 1.1em; }
.benefit-item p { font-size: 1.1rem; line-height: 1.65; color: var(--text-dark-color); }

.pricing-card { background-color: var(--white-color); border: 2px solid var(--primary-color); border-radius: var(--border-radius-medium); padding: calc(var(--space-unit) * 2); margin: calc(var(--space-unit) * 1.5) auto; max-width: 550px; box-shadow: var(--card-shadow); text-align:center;}
.price-option-title { color: var(--primary-color); font-size: 1.6rem; margin: 0 0 var(--space-unit) 0; font-weight: 600; }
.price-amount { color: var(--accent-color-cta); font-size: clamp(2.5rem, 8vw, 3.5rem); font-weight: 700; margin: var(--space-unit) 0; }
.price-period { font-size: 1.1rem; color: var(--text-medium-color); font-weight: 400; margin-left: 0.25em; }
.features-list { list-style: none; padding: 0; margin: calc(var(--space-unit) * 1.5) 0; }
.features-list li { margin: calc(var(--space-unit) * 0.75) 0; font-size: 1.1rem; color: var(--text-dark-color); display: flex; align-items: center; justify-content: center; gap: 0.6em;}
.features-list li i { color: var(--accent-color-highlight); font-size: 0.9em; margin-right:0;}
.pricing-note { color: var(--text-medium-color); font-size: 0.95rem; font-style: italic; border-top: 1px solid var(--sand-border-color); padding-top: var(--space-unit); margin: calc(var(--space-unit) * 1.5) 0 0 0; }
.pricing-cta { margin-top: calc(var(--space-unit) * 1.5); }

.form-steps-grid { display: grid; gap: var(--grid-gap); margin: calc(var(--space-unit) * 1.5) 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.form-step-item { background: var(--sand-bg-color); color: var(--primary-color); padding: var(--space-unit); border-radius: var(--border-radius-small); text-align: center; border: 1px solid var(--sand-border-color); }
.step-number { display: inline-block; background-color: var(--step-number-bg); color: var(--step-number-text); width: 30px; height: 30px; line-height: 30px; border-radius: 50%; font-weight: bold; margin-bottom: calc(var(--space-unit) * 0.5); font-size: 1rem; }
.step-title { font-size: 1.1rem; font-weight: 600; color: var(--primary-color); margin: 0; }

.recent-race-summary .race-name-date { color: var(--accent-color-cta); font-size: 1.5rem; margin-bottom: 0.25rem; }
.recent-race-summary .race-links { font-size: 1rem; margin-bottom: var(--space-unit); }
.recent-race-summary .race-details ul { list-style: disc; margin-left: calc(var(--space-unit) * 1.5); padding-left: var(--space-unit); }
.recent-race-summary .race-details ul li { margin-bottom: calc(var(--space-unit) * 0.5); }
.race-winners .winner-category { margin-bottom: var(--space-unit); padding-bottom: var(--space-unit); border-bottom: 1px solid var(--border-color); text-align:center;}
.race-winners .winner-category:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.race-winners .winner-category h4 { font-size: 1.25rem; margin-bottom: calc(var(--space-unit) * 0.5); color: var(--primary-color); font-weight:600;}
.race-winners .winner-category ul { list-style: none; padding-left: 0; }
.race-winners .winner-category ul li { margin-bottom: calc(var(--space-unit) * 0.25); color: var(--text-dark-color); }
.winner-highlight { font-weight: 600; color: var(--primary-color); font-size: 1.1em; }
.club-aisc { color: var(--accent-color-cta); font-weight: bold; }

.next-races-section .race-card { margin-bottom:var(--grid-gap); background-color:var(--card-bg-color); border: 1px solid var(--border-color); border-radius: var(--border-radius-medium); padding: calc(var(--space-unit) * 1.5); box-shadow: var(--card-shadow); transition: var(--default-transition); }
.race-card.upcoming-race { border-left: 5px solid var(--accent-color-highlight); }
.race-card.urgent-alert { animation: pulse-border 2s infinite; border-left-width: 8px !important; border-left-color: var(--primary-color) !important; }
@keyframes pulse-border { 0% { border-left-color: var(--primary-color); } 50% { border-left-color: var(--accent-color-cta); } 100% { border-left-color: var(--primary-color); } }
.race-card-header h3 { font-size: 1.5rem; color: var(--primary-color); margin: 0 0 var(--space-unit) 0; padding-bottom: calc(var(--space-unit) * 0.5); border-bottom: 1px solid var(--border-color); }
.race-month { color: var(--accent-color-cta); font-weight: bold; margin-right: 0.5em; }
.race-card-content h4 { font-size: 1.15rem; color: var(--secondary-color); margin-top: var(--space-unit); margin-bottom: calc(var(--space-unit) * 0.75); }
.race-card-content .details-list { list-style-type: disc; padding-left: calc(var(--space-unit) * 1.5); margin-bottom: var(--space-unit); }
.race-card-content .details-list li { margin-bottom: calc(var(--space-unit) * 0.4); line-height: 1.6; }
.highlight-info { font-weight: 600; color: var(--primary-color); }
.race-info-grid { display: grid; grid-template-columns: 1fr; gap: calc(var(--space-unit) * 0.5); margin-top: var(--space-unit); font-size: 1rem; line-height: 1.6; }
.race-info-grid .info-item { text-align: left; }
.race-info-grid .info-label { font-weight: 600; color: var(--primary-color); display: inline-block; margin-right: 0.5em; }
.race-info-grid .info-value { color: var(--text-dark-color); }
.race-info-grid .info-item em strong { color: var(--accent-color-cta); }

.season-overview { margin-bottom: var(--space-unit); text-align:center;}
.season-overview p { margin-bottom: calc(var(--space-unit) * 0.5); font-size: 1.1rem; }
.highlight-link { color: var(--accent-color-cta); font-weight: 600; }
.highlight-link i { margin-left: 0.3em; }
.specific-race-recap { border-radius: var(--border-radius-medium); margin-top: var(--grid-gap); padding:calc(var(--space-unit)*1.5); background-color:var(--light-bg-color); text-align:center;}
.specific-race-recap .section-subtitle { font-size: 1.8rem; color: var(--primary-color); margin-bottom: var(--space-unit); }
.race-finishers h4 { font-size: 1.2rem; color: var(--secondary-color); margin-bottom: calc(var(--space-unit) * 0.75); }
.finishers-list { list-style-position: inside; padding-left: 0; margin-bottom: var(--space-unit); list-style-type: decimal; text-align:left; display:inline-block;}
.finishers-list li { margin-bottom: calc(var(--space-unit) * 0.3); color: var(--text-dark-color); }
.race-stats { text-align:center; }
.race-stats p { margin-bottom: calc(var(--space-unit) * 0.5); color: var(--text-medium-color); font-size: 1rem; }
.race-stats p strong { color: var(--primary-color); }
.race-documents { margin-top: calc(var(--space-unit) * 1.5); padding-top: calc(var(--space-unit) * 1.5); border-top: 1px solid var(--border-color); }
.race-documents p { margin-bottom: var(--space-unit); font-weight: 600; color: var(--primary-color); text-align:center; }

.race-assistance-contact .section-subtitle { font-size: 1.8rem; color: var(--primary-color); margin-bottom: var(--space-unit); }
.contact-person-details { max-width: 450px; margin-left: auto; margin-right: auto; text-align:center; }
.contact-role { font-size: 1.1rem; font-weight: 600; color: var(--text-dark-color); margin-bottom: calc(var(--space-unit) * 0.75); }
.contact-method { font-size: 1rem; color: var(--text-medium-color); margin-bottom: calc(var(--space-unit) * 0.4); display: flex; align-items: center; justify-content: center; gap: 0.5em; }
.contact-method i { color: var(--secondary-color); font-size: 0.9em; width: 20px; text-align: center; }

.sampling-map { max-width: 100%; height: auto; border-radius: var(--border-radius-medium); margin-top: var(--space-unit); margin-bottom: calc(var(--space-unit) * 2); box-shadow: var(--card-shadow); }
.full-width-image { width: 100%; }
.info-grid.two-column-grid { display: grid; gap: var(--grid-gap); grid-template-columns: 1fr; }
.info-card .card-title { font-size: 1.5rem; color: var(--primary-color); margin-bottom: var(--space-unit); font-weight: 600; text-align:center; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: var(--grid-gap); margin-top: var(--space-unit); }
.gallery-image { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--border-radius-small); box-shadow: var(--card-shadow); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.photo-grid a:hover .gallery-image, .photo-grid a:focus-visible .gallery-image { transform: scale(1.03); box-shadow: var(--card-hover-shadow); }

.club-header-branding { text-align: center; padding: var(--space-unit) 0; }
.club-burgees { margin-bottom: var(--space-unit); line-height: 0; }
.burgee-image { width: 74px; height: 45px; display: inline-block; margin: 0 0.5em; vertical-align: middle; border-radius: 0; }
.club-name { font-family: var(--font-family-headings); font-size: clamp(2.2rem, 7vw, 3.2rem); font-weight: 700; color: var(--primary-color); line-height: 1.2; margin: 0; }

/* Site Header */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.site-header { background-color: var(--white-color); width: 100%; position: sticky; top:0;}
.header-top-bar { background-color: var(--primary-color); color: var(--text-on-dark-bg); padding: calc(var(--space-unit) * 0.4) 0; font-size: 0.85rem; }
.header-top-bar-content { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-unit); }
.header-contact-info a, .header-utility-nav a { color: var(--text-on-dark-bg); text-decoration: none; display: inline-flex; align-items: center; gap: 0.4em; transition: color var(--default-transition); }
.header-contact-info a:hover, .header-utility-nav a:hover { color: var(--accent-color-highlight); }
.top-bar-separator { margin: 0 0.75em; opacity: 0.6; }
.top-bar-login { padding: calc(var(--space-unit)*0.25) calc(var(--space-unit)*0.75); font-size: 0.8rem; background-color: var(--accent-color-highlight); color: var(--primary-color) !important; border-radius: var(--border-radius-small); }
.top-bar-login:hover { background-color: var(--white-color) !important; color: var(--primary-color) !important; }
.header-main-content { display: flex; justify-content: space-between; align-items: center; padding-top: var(--space-unit); padding-bottom: var(--space-unit); min-height: 70px; }
.site-branding { flex-shrink: 0; }
.site-logo-link { display: flex; align-items: center; text-decoration: none; gap: calc(var(--space-unit) * 0.75); }
.site-logo-burgee { height: 45px; width: auto; display: block; }
.site-title { font-family: var(--font-family-headings); font-size: clamp(1.25rem, 3vw, 1.75rem); font-weight: 700; color: var(--primary-color); line-height: 1.1; }
.main-navigation { position: relative; }
.menu-toggle { display: none; background: none; border: none; color: var(--primary-color); font-size: 1.5rem; padding: calc(var(--space-unit) * 0.5); cursor: pointer; }
.menu-toggle .fa-times { display:none; } /* Hide close icon by default */
.menu-toggle.is-active .fa-bars { display:none; } /* Hide hamburger when active */
.menu-toggle.is-active .fa-times { display:inline-block; } /* Show close when active */
.nav-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: calc(var(--space-unit) * 0.3); } /* Reduced gap for more items */
.nav-menu li { position: relative; }
.nav-menu li a { display: block; padding: calc(var(--space-unit) * 0.65) calc(var(--space-unit)*0.85); text-decoration: none; color: var(--primary-color); font-family: var(--font-family-headings); font-weight: 600; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.5px; border-radius: var(--border-radius-small); transition: background-color var(--default-transition), color var(--default-transition); }
.nav-menu li a:hover, .nav-menu li a:focus-visible, .nav-menu li.current-menu-item > a, .nav-menu li.sel > .item > a, .nav-menu li.active > .item > a { background-color: var(--medium-bg-color); color: var(--secondary-color); }
.nav-menu .menu-item-has-children > a { padding-right: calc(var(--space-unit) * 1.8); }
/* .nav-menu .menu-item-has-children > a::after { content: '\f078'; ... } removed to prevent double chevrons with WaGadgetMenuHorizontal */
.nav-menu .menu-item-has-children:hover > a::after, .nav-menu .menu-item-has-children > .dropdown-toggle[aria-expanded="true"] + a::after { transform: translateY(-50%) rotate(180deg); }
.nav-menu .dropdown-toggle { display: none; background: none; border: none; color: inherit; cursor: pointer; padding: 0.5em; position:absolute; right:0; top: 50%; transform: translateY(-50%); z-index:1002; }
.nav-menu .sub-menu { list-style: none; margin: 0; padding: calc(var(--space-unit) * 0.5) 0; position: absolute; top: 100%; left: 0; min-width: 220px; background-color: var(--white-color); box-shadow: 0 4px 12px rgba(var(--primary-color-rgb), 0.15); border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); z-index: 1001; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity 0.2s ease, visibility 0s linear 0.2s, transform 0.2s ease; } /* Delay visibility until fade is done */
.nav-menu .sub-menu .sub-menu { left: 100%; top: calc(var(--space-unit) * -0.5); border-radius: var(--border-radius-medium); }
.nav-menu li:hover > .sub-menu, .nav-menu li:focus-within > .sub-menu, .nav-menu li .dropdown-toggle[aria-expanded="true"] ~ .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s, 0s, 0s; }
.nav-menu .sub-menu li a { padding: calc(var(--space-unit) * 0.6) calc(var(--space-unit) * 1.25); font-size: 0.9rem; text-transform: none; border-bottom: 1px solid var(--border-color); white-space: nowrap; }
.nav-menu .sub-menu li:last-child a { border-bottom: none; border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); }
.nav-menu .sub-menu .sub-menu li:last-child a { border-radius: 0; }
.nav-menu .sub-menu li.menu-item-has-children > a::after { content: '\f054'; right: calc(var(--space-unit) * 0.75); }
.nav-menu .sub-menu li.menu-item-has-children:hover > a::after { transform: translateY(-50%) rotate(0deg); }


/* Responsive Overrides & Adjustments */
@media (min-width: 576px) {
    .info-grid-adaptive, .officers-grid, .benefits-grid, .form-steps-grid, .winner-category-group, .info-grid.two-column-grid, .race-info-grid { grid-template-columns: repeat(2, 1fr); }
    .photo-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));} /* Smaller base for photo grid */
}
@media (min-width: 992px) {
    .highlight-grid, .testimonial-grid { grid-template-columns: repeat(3, 1fr); }
    .officers-grid:not(.has-exactly-four-officers) { grid-template-columns: repeat(3, 1fr); }
    .officers-grid.has-exactly-four-officers { grid-template-columns: repeat(2, 1fr); max-width: 800px; margin-left: auto; margin-right: auto; }
    .info-grid-adaptive.has-four-items { grid-template-columns: repeat(2, 1fr); }
    .info-grid-adaptive:not(.has-four-items) { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } /* Base min-width for info cards */
    .benefits-grid, .form-steps-grid { grid-template-columns: repeat(3, 1fr); }
    .photo-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
    .race-info-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
@media (max-width: 992px) {
    body.LayoutMain { font-size: 0.9375rem; }
    :root { --section-padding-y: calc(var(--space-unit) * 3.5); }
    .hero-section.modern-hero { padding: calc(var(--section-padding-y) * 1.4) var(--space-unit); min-height: 60vh; }
    .club-name { font-size: clamp(2rem, 6vw, 2.8rem); }
    .menu-toggle { display: block; }
    .main-navigation.is-open .nav-menu { display: flex; } /* JS will add/remove 'is-open' */
    .nav-menu { display: none; position: absolute; top: calc(100% + 1px); left: 0; right: 0; background-color: var(--white-color); box-shadow: 0 5px 10px rgba(var(--primary-color-rgb), 0.1); flex-direction: column; align-items: stretch; padding: var(--space-unit) 0; gap: 0; }
    .nav-menu li { width: 100%; }
    .nav-menu li a { padding: var(--space-unit); border-bottom: 1px solid var(--border-color); text-align: left; border-radius: 0; }
    .nav-menu li:last-child a { border-bottom: none; }
    .nav-menu .menu-item-has-children > a::after { display: none; } /* Hide CSS arrow, rely on button */
    .nav-menu .menu-item-has-children .dropdown-toggle { display: inline-block; position: absolute; right: var(--space-unit); top: 50%; transform: translateY(-50%); padding: var(--space-unit); line-height:1; font-size:0.8em; }
    .nav-menu .sub-menu { position: static; width: 100%; box-shadow: none; border-top: 1px solid var(--border-color); opacity: 1; visibility: visible; transform: none; padding-left: var(--space-unit); display: none; background-color: var(--medium-bg-color); }
    .nav-menu .menu-item-has-children > .dropdown-toggle[aria-expanded="true"] ~ .sub-menu { display: block; }
    .nav-menu .sub-menu li a { padding-left: calc(var(--space-unit) * 1.5); }
    .nav-menu .sub-menu .sub-menu { padding-left: calc(var(--space-unit) * 1.5); }
    .header-top-bar-content { justify-content: center; text-align:center;}
    .header-main-content {padding-top: calc(var(--space-unit)*0.75); padding-bottom:calc(var(--space-unit)*0.75); min-height:60px;}
    .site-title {font-size: clamp(1.1rem, 4vw, 1.5rem);}
    .site-logo-burgee {height: 40px;}
}
@media (max-width: 768px) {
    :root { --section-padding-y: calc(var(--space-unit) * 2.75); }
    .hero-section.modern-hero { min-height: auto; background-attachment: scroll; }
    .hero-cta-buttons { display: flex; flex-direction: column; align-items: center; }
    .hero-cta-buttons .button { width: 90%; max-width: 300px; margin: calc(var(--space-unit)*0.4) 0; }
    .highlight-grid, .testimonial-grid, .info-grid-adaptive, .officers-grid, .benefits-grid, .form-steps-grid, .photo-grid, .winner-category-group, .race-info-grid, .info-grid.two-column-grid {
        grid-template-columns: 1fr !important;
        gap: calc(var(--grid-gap) * 0.7);
    }
    .testimonial-image { width: 80px; height: 80px; }
    .WaGadgetUpcomingEvents li:hover { transform: none; }
}
@media (max-width: 480px) {
    body.LayoutMain { font-size: 0.875rem; }
    :root { --section-padding-y: calc(var(--space-unit) * 2.25); }
    .club-name { font-size: clamp(1.6rem, 7vw, 2rem); }
    .burgee-image { width: 45px; }
    .button { padding: calc(var(--space-unit)*0.55) calc(var(--space-unit)*1.15); font-size: 0.85rem; }
    .button-large { padding: calc(var(--space-unit)*0.7) calc(var(--space-unit)*1.5); font-size: 0.95rem; }
    .card-base, .highlight-card, .dark-section-bg .testimonial-card, .info-card, .officer-card, .benefit-item, .race-card,
    .WaGadgetUpcomingEvents li, .meeting-details-card, .form-step-item, .specific-race-recap,
    .info-card.purpose-card, .info-card.process-card {
        padding: calc(var(--space-unit)*0.9);
    }
    .highlight-icon { font-size: 1.8rem; }
    .testimonial-image { width: 65px; height: 65px; }
    .header-top-bar .top-bar-link-text { display:none;} /* Hide text on very small screens, keep icon */
    .header-top-bar-content { gap: calc(var(--space-unit) * 0.5); justify-content: space-around;}
    .header-main-content {min-height:50px;}
    .site-logo-burgee {height: 35px;}
    .site-title {font-size: clamp(1rem, 4.5vw, 1.25rem);}
    .menu-toggle {font-size:1.3rem;}
}

/* ==========================================================================
   AMELIA ISLAND SAILING CLUB - GLOBAL THEME CSS
   Location: Wild Apricot Admin -> Website -> CSS
   ========================================================================== */

/* 1. Wild Apricot Layout Resets (NO header/footer suppression - that is homepage-only via homepage-landing-code.html <style> block) */
body.publicContentView,
.mLayout,
.layoutMain,
.zoneContent,
.WaPlaceHolderContent,
.WaLayoutContainerFirst,
.WaLayoutTable,
.WaLayoutRow,
.WaLayoutItem,
#id_l6IJY7M {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  width: 100% !important;
  max-width: 100% !important;
}

:root {
  --aisc-navy-950: #040D1A;
  --aisc-navy-900: #0A192F;
  --aisc-navy-800: #002244;
  --aisc-navy-700: #103259;
  --aisc-gold-500: #D97706;
  --aisc-gold-400: #E5A93C;
  --aisc-gold-300: #FED100;
  --aisc-gold-100: #FEF7E6;
  --aisc-slate-50:  #F8FAFC;
  --aisc-slate-100: #F1F5F9;
  --aisc-slate-200: #E2E8F0;
  --aisc-slate-600: #334155;
  --aisc-slate-800: #0F172A;
  --aisc-white:     #FFFFFF;

  --aisc-font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --aisc-font-serif: 'Playfair Display', Georgia, serif;
  
  --aisc-shadow-sm: 0 2px 4px rgba(0,0,0,0.06);
  --aisc-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --aisc-shadow-lg: 0 10px 25px rgba(0,0,0,0.12);
  
  --aisc-radius-sm: 6px;
  --aisc-radius-md: 10px;
  --aisc-radius-lg: 16px;
  --aisc-radius-full: 9999px;
}

/* Inline SVG icon system (sprite markup lives in the landing/top-bar gadgets) */
.aisc-icon {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
  display: inline-block;
  vertical-align: -0.18em;
}

#aisc-app .aisc-benefit-icon .aisc-icon {
  width: 1.75rem;
  height: 1.75rem;
}

#aisc-app .aisc-testimonial-stars .aisc-icon {
  width: 1.25rem;
  height: 1.25rem;
}

/* Yellow layout stripe override */
#id_JpFJ3Gl {
  background-color: var(--aisc-navy-950) !important;
}

/* 2. AISC Design Tokens & Base Typography */
#aisc-app {
  font-family: var(--aisc-font-sans);
  color: var(--aisc-slate-800);
  background-color: var(--aisc-white);
  line-height: 1.65;
  font-size: 18px;
  -webkit-font-smoothing: antialiased;
  margin: 0 auto !important;
  padding: 0;
  display: block !important;
  max-width: 1200px !important;
}

/* Force centering of all parent containers in the landing zone (homepage only) */
#aisc-app .zoneContent,
#aisc-app .WaPlaceHolderContent,
#aisc-app .WaLayoutContainerFirst,
#aisc-app .WaLayoutTable,
#aisc-app .WaLayoutRow,
#aisc-app .WaLayoutItem {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

/* AISC Alignment & Suppression */
.aisc-top-bar,
.aisc-header,
.aisc-footer {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Homepage header/footer zone suppression is handled by the homepage gadget's
   own <style> block (homepage-landing-code.html), so it is NOT repeated here
   globally. A global version here would hide WA chrome (e.g. #id_Header1) on
   every page, breaking pages whose content lives in those zones. */

#aisc-app .aisc-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  text-align: left;
}


/* 3. Top Bar & Header (site-wide, no #aisc-app scoping) */
.aisc-top-bar {
  background: #0B1A30;
  color: #E2E8F0;
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  font-size: 0.95rem;
}

.aisc-top-bar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

/* On interior pages the top-bar gadget must share the template content edges
   (.content-container = width 90% / max 1200px). Homepage (PAGEID_18330) renders
   its own top bar inside #aisc-app and is excluded. */
body:not(#PAGEID_18330) .aisc-top-bar-inner {
  width: 90%;
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
}

.aisc-top-links {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.aisc-top-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #CBD5E1;
  font-weight: 500;
}

.aisc-top-link:hover {
  color: var(--aisc-gold-300);
}

/* Skip link (offscreen until focused) — needed on interior pages where the
   top-bar gadget renders without the homepage style block */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  background: var(--aisc-navy-900);
  color: var(--aisc-white);
  padding: 0.75rem 1.5rem;
  font-weight: 700;
  border-radius: 0 0 8px 0;
}
.skip-link:focus {
  left: 0;
}

/* Interior page header fixes: remove the template wrapper padding, hide the
   legacy logo strip and login form gadget that sit beside the top bar, and
   neutralise the yellow-stripe layout container background. The menu gadget
   (WaGadgetMenuHorizontal) below the table stays visible. */
body:not(#PAGEID_18330) .WaPlaceHolderHeader > div:first-child {
  padding-top: 0 !important;
}

body:not(#PAGEID_18330) .site-header.modern-header-aisc {
  display: none !important;
}

body:not(#PAGEID_18330) .WaGadgetLoginForm {
  display: none !important;
}

body:not(#PAGEID_18330) .WaPlaceHolderHeader .WaLayoutTable {
  width: 100% !important;
  table-layout: fixed !important;
}

body:not(#PAGEID_18330) .WaPlaceHolderHeader .WaLayoutSeparator {
  display: none !important;
}

body:not(#PAGEID_18330) .WaPlaceHolderHeader .WaLayoutItem {
  width: 100% !important;
}

body:not(#PAGEID_18330) #id_SBGxG2Q {
  display: none !important;
}

body:not(#PAGEID_18330) #id_BWXD8xQ {
  width: 100% !important;
}

/* Force interior top bar to span full viewport width */
body:not(#PAGEID_18330) .WaPlaceHolderHeader {
  width: 100% !important;
  max-width: none !important;
}

body:not(#PAGEID_18330) .WaPlaceHolderHeader .aisc-top-bar {
  max-width: none !important;
}

body:not(#PAGEID_18330) .WaPlaceHolderHeader .aisc-top-bar-inner {
  max-width: var(--content-max-width) !important;
}

/* Interior menu centering: align nav bar with top bar (1200px centered) */
body:not(#PAGEID_18330) .WaGadgetMenuHorizontal {
  max-width: var(--content-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Center interior page content zones that lack their own centering wrapper */
body:not(#PAGEID_18330) .WaPlaceHolderContent {
  max-width: var(--content-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Center Racing Center (page-18452) footer-zone content */
body:not(#PAGEID_18330) #idFooterContentHolder {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Center Events calendar widget */
body:not(#PAGEID_18330) .EventListCalendar {
  max-width: var(--content-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.aisc-btn-top-login {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--aisc-gold-300);
  color: #0B1A30;
  padding: 0.55rem 1.4rem;
  border-radius: var(--aisc-radius-full);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  box-shadow: var(--aisc-shadow-sm);
}

.aisc-btn-top-login:hover {
  background: var(--aisc-gold-400);
  transform: translateY(-1px);
}

.aisc-header {
  background: #FFFFFF;
  border-bottom: 2px solid var(--aisc-slate-200);
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.aisc-header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.85rem 0;
}

.aisc-brand {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}

.aisc-burgee-frame {
  width: 64px;
  height: 40px;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 5px rgba(0,0,0,0.2));
}

.aisc-brand-titles {
  display: flex;
  flex-direction: column;
}

.aisc-brand-name {
  font-family: var(--aisc-font-serif);
  font-size: 1.45rem;
  font-weight: 700;
  color: #0A192F;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

.aisc-brand-sub {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--aisc-gold-500);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 2px;
}

.aisc-nav-menu {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.aisc-nav-link {
  color: #0F172A;
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.5rem 0.25rem;
  white-space: nowrap;
}

.aisc-nav-link:hover,
.aisc-nav-link.active {
  color: #005F7A;
}

/* Tighten header metrics between 993-1200px so all 8 items stay on one baseline */
@media (min-width: 993px) and (max-width: 1200px) {
  .aisc-nav-menu { gap: 0.85rem; }
  .aisc-nav-link { font-size: 0.82rem; letter-spacing: 0.02em; }
  .aisc-brand-name { font-size: 1.25rem; }
  .aisc-burgee-frame { width: 54px; height: 34px; }
}

/* Suppress WA default profile/login avatar gadgets */
.WaGadgetLoginButton,
.idLoginBox,
.idUserProfile,
.WaGadgetProfile,
#idLoginButton,
.wa-login-button,
.wa-profile-box,
.loginBox,
.loginBoxContainer {
  display: none !important;
}

.aisc-member-portal-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--aisc-radius-full);
  background: var(--aisc-navy-700);
  color: var(--aisc-gold-300);
  border: 2px solid rgba(254, 209, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}

.aisc-member-portal-icon:hover {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
}

/* 4. Hero Section */
/* Layer order: gradient scrim, live site photo (/resources/...), Unsplash photo as
   local-staging fallback (failed layers render transparent, revealing the next one). */
#aisc-app .aisc-hero {
  position: relative;
  background-image:
    linear-gradient(180deg, rgba(10, 25, 47, 0.80) 0%, rgba(0, 34, 68, 0.74) 100%),
    url('/resources/Site/background.jpeg'),
    url('https://images.unsplash.com/photo-1534447677768-be436bb09401?q=80&w=2094&auto=format&fit=crop');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 4.5rem 0 5.5rem;
  color: var(--aisc-white);
  text-align: center;
}

#aisc-app .aisc-hero-content {
  margin: 0 auto;
  text-align: center;
}

#aisc-app .aisc-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(254, 209, 0, 0.16);
  border: 1px solid var(--aisc-gold-300);
  color: var(--aisc-gold-300);
  padding: 0.4rem 1.25rem;
  border-radius: var(--aisc-radius-full);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

#aisc-app .aisc-hero-title {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2.2rem, 4.5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 1.25rem;
  letter-spacing: -0.01em;
  color: #FFFFFF !important;
  /* Override the WA theme's global uppercase heading rule */
  text-transform: none !important;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55);
}

#aisc-app .aisc-hero-desc {
  font-size: 1.2rem;
  color: #F1F5F9;
  line-height: 1.75;
  max-width: 760px;
  margin: 0 auto 2.5rem;
}

#aisc-app .aisc-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
}

#aisc-app .aisc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  font-size: 1.1rem;
  font-weight: 800;
  padding: 0.95rem 2rem;
  border-radius: var(--aisc-radius-md);
  min-height: 52px;
  cursor: pointer;
}

#aisc-app .aisc-btn-primary {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
  border: 2px solid var(--aisc-gold-300);
  box-shadow: 0 4px 14px rgba(254, 209, 0, 0.35);
}

#aisc-app .aisc-btn-primary:hover {
  background: var(--aisc-gold-400);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(254, 209, 0, 0.45);
}

#aisc-app .aisc-btn-secondary {
  background: rgba(255, 255, 255, 0.12);
  color: var(--aisc-white);
  border: 2px solid var(--aisc-white);
  backdrop-filter: blur(6px);
}

#aisc-app .aisc-btn-secondary:hover {
  background: var(--aisc-white);
  color: var(--aisc-navy-950);
  transform: translateY(-2px);
}

/* 4b. Next-gathering ribbon (docked inside hero; links to #gathering-details) */
#aisc-app .aisc-hero-ribbon {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  max-width: 760px;
  width: 100%;
  margin: 2.75rem auto 0;
  padding: 0.95rem 1.35rem;
  background: rgba(4, 13, 26, 0.72);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--aisc-radius-md);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  text-align: left;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

#aisc-app .aisc-hero-ribbon-icon {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  background: rgba(254, 209, 0, 0.18);
  color: var(--aisc-gold-300);
  border-radius: var(--aisc-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}

#aisc-app .aisc-hero-ribbon-icon .aisc-icon {
  width: 1.35rem;
  height: 1.35rem;
}

#aisc-app .aisc-hero-ribbon-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

#aisc-app .aisc-hero-ribbon-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--aisc-gold-300);
}

#aisc-app .aisc-hero-ribbon-detail {
  font-size: 0.98rem;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.4;
}

#aisc-app .aisc-hero-ribbon-cta {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 0.85rem;
  font-weight: 800;
  color: #CBD5E1;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: color 0.2s ease;
}

#aisc-app .aisc-hero-ribbon:hover {
  border-color: rgba(254, 209, 0, 0.6);
  transform: translateY(-1px);
}

#aisc-app .aisc-hero-ribbon:hover .aisc-hero-ribbon-cta {
  color: var(--aisc-gold-300);
}

/* Anchor offset so #gathering-details clears the sticky header */
#gathering-details {
  scroll-margin-top: 128px;
}

/* 5. Spotlight Section */
#aisc-app .aisc-spotlight-section {
  margin-top: 3rem;
  margin-bottom: 4rem;
}

#aisc-app .aisc-spotlight-card {
  background: var(--aisc-white);
  border-radius: var(--aisc-radius-lg);
  border: 2px solid var(--aisc-gold-400);
  box-shadow: var(--aisc-shadow-lg);
  padding: 2.25rem 2.5rem;
  margin: 0 auto;
}

#aisc-app .aisc-spotlight-badge {
  display: inline-block;
  background: var(--aisc-navy-900);
  color: var(--aisc-gold-300);
  font-size: 0.8rem;
  font-weight: 800;
  padding: 0.35rem 1rem;
  border-radius: var(--aisc-radius-full);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
}

#aisc-app .aisc-spotlight-title {
  font-family: var(--aisc-font-serif);
  font-size: 2rem;
  color: var(--aisc-navy-900);
  margin-bottom: 0.4rem;
}

#aisc-app .aisc-spotlight-subtitle {
  font-size: 1.1rem;
  color: var(--aisc-slate-600);
  margin-bottom: 1.5rem;
}

#aisc-app .aisc-spotlight-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 2rem;
  background: var(--aisc-slate-50);
  padding: 1.75rem;
  border-radius: var(--aisc-radius-md);
  border: 1px solid var(--aisc-slate-200);
  align-items: center;
}

#aisc-app .aisc-spotlight-detail-header {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--aisc-navy-900);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

#aisc-app .aisc-spotlight-detail-text {
  font-size: 1rem;
  color: var(--aisc-slate-600);
  line-height: 1.6;
}

#aisc-app .aisc-spotlight-side {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border-left: 2px solid var(--aisc-slate-200);
  padding-left: 1.75rem;
}

#aisc-app .aisc-spotlight-welcome-note {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--aisc-gold-500);
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

#aisc-app .aisc-btn-directions {
  background: var(--aisc-navy-800);
  color: var(--aisc-white);
  padding: 0.75rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 700;
  border-radius: var(--aisc-radius-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

#aisc-app .aisc-btn-directions:hover {
  background: var(--aisc-navy-950);
  color: var(--aisc-gold-300);
}

/* 6. Stats Ribbon */
#aisc-app .aisc-stats-section {
  background: var(--aisc-navy-900);
  color: var(--aisc-white);
  padding: 3.5rem 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

#aisc-app .aisc-stats-header {
  text-align: center;
  font-size: 1rem;
  font-weight: 800;
  color: var(--aisc-gold-300);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 2rem;
}

#aisc-app .aisc-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  text-align: center;
}

#aisc-app .aisc-stat-box {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--aisc-radius-md);
  padding: 1.75rem 1rem;
}

#aisc-app .aisc-stat-num {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 800;
  color: var(--aisc-gold-300);
  line-height: 1;
  margin-bottom: 0.5rem;
}

#aisc-app .aisc-stat-label {
  font-size: 1.05rem;
  font-weight: 700;
  color: #E2E8F0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* 7. Pathways & Benefits */
#aisc-app .aisc-section {
  padding: 5rem 0;
}

#aisc-app .aisc-section-header {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 3.5rem;
}

#aisc-app .aisc-tag {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--aisc-gold-500);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
  display: block;
}

#aisc-app .aisc-title {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  color: var(--aisc-navy-900);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

#aisc-app .aisc-desc {
  font-size: 1.15rem;
  color: var(--aisc-slate-600);
}

#aisc-app .aisc-paths-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

#aisc-app .aisc-path-card {
  background: var(--aisc-white);
  border: 2px solid var(--aisc-slate-200);
  border-radius: var(--aisc-radius-lg);
  padding: 2.5rem;
  box-shadow: var(--aisc-shadow-sm);
  display: flex;
  flex-direction: column;
}

#aisc-app .aisc-path-card:hover {
  border-color: var(--aisc-gold-400);
  box-shadow: var(--aisc-shadow-lg);
}

#aisc-app .aisc-path-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 1rem;
  border-radius: var(--aisc-radius-full);
  font-size: 0.85rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.25rem;
  align-self: flex-start;
}

#aisc-app .aisc-path-badge.crew {
  background: #E0F2FE;
  color: #0369A1;
}

#aisc-app .aisc-path-badge.skipper {
  background: #FEF3C7;
  color: #92400E;
}

#aisc-app .aisc-path-title {
  font-family: var(--aisc-font-serif);
  font-size: 1.75rem;
  color: var(--aisc-navy-900);
  margin-bottom: 1.25rem;
}

#aisc-app .aisc-path-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  flex-grow: 1;
}

#aisc-app .aisc-path-step {
  font-size: 1.05rem;
  color: var(--aisc-slate-600);
  line-height: 1.6;
}

#aisc-app .aisc-path-step strong {
  color: var(--aisc-navy-900);
}

#aisc-app .aisc-btn-path {
  width: 100%;
  background: var(--aisc-navy-900);
  color: var(--aisc-white);
  padding: 1rem;
  font-size: 1.05rem;
  font-weight: 800;
  border-radius: var(--aisc-radius-md);
  text-align: center;
}

#aisc-app .aisc-btn-path:hover {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
}

#aisc-app .aisc-benefits-section {
  background: var(--aisc-slate-50);
  border-top: 1px solid var(--aisc-slate-200);
  border-bottom: 1px solid var(--aisc-slate-200);
}

#aisc-app .aisc-benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

#aisc-app .aisc-benefit-card {
  background: var(--aisc-white);
  border: 1px solid var(--aisc-slate-200);
  border-radius: var(--aisc-radius-lg);
  padding: 2.25rem 2rem;
  text-align: center;
  box-shadow: var(--aisc-shadow-sm);
}

#aisc-app .aisc-benefit-card:hover {
  border-color: var(--aisc-gold-400);
  transform: translateY(-3px);
  box-shadow: var(--aisc-shadow-md);
}

#aisc-app .aisc-benefit-icon {
  width: 60px;
  height: 60px;
  background: var(--aisc-gold-100);
  color: var(--aisc-navy-900);
  border-radius: var(--aisc-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
}

#aisc-app .aisc-benefit-title {
  font-family: var(--aisc-font-serif);
  font-size: 1.45rem;
  color: var(--aisc-navy-900);
  margin-bottom: 0.75rem;
}

#aisc-app .aisc-benefit-desc {
  font-size: 1rem;
  color: var(--aisc-slate-600);
  line-height: 1.7;
}

/* 8. Events List */
#aisc-app .aisc-events-filter-bar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 2.5rem;
}

#aisc-app .aisc-filter-btn {
  background: var(--aisc-slate-100);
  color: var(--aisc-slate-800);
  padding: 0.55rem 1.25rem;
  border-radius: var(--aisc-radius-full);
  font-size: 0.95rem;
  font-weight: 700;
  border: 1px solid var(--aisc-slate-200);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

#aisc-app .aisc-filter-btn.active,
#aisc-app .aisc-filter-btn:hover {
  background: var(--aisc-navy-900);
  color: var(--aisc-gold-300);
  border-color: var(--aisc-navy-900);
}

#aisc-app .aisc-events-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0 auto 2.5rem;
}

#aisc-app .aisc-event-row {
  background: var(--aisc-white);
  border: 1px solid var(--aisc-slate-200);
  border-radius: var(--aisc-radius-md);
  padding: 1.25rem 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  box-shadow: var(--aisc-shadow-sm);
  transition: all 0.2s ease;
}

#aisc-app .aisc-event-row:hover {
  border-color: var(--aisc-gold-400);
  box-shadow: var(--aisc-shadow-md);
}

#aisc-app .aisc-event-date-badge {
  background: var(--aisc-navy-900);
  color: var(--aisc-white);
  padding: 0.6rem 1rem;
  border-radius: var(--aisc-radius-md);
  text-align: center;
  min-width: 80px;
  flex-shrink: 0;
}

#aisc-app .aisc-event-day {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--aisc-gold-300);
  line-height: 1;
}

#aisc-app .aisc-event-month {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#aisc-app .aisc-event-info {
  flex-grow: 1;
}

#aisc-app .aisc-event-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--aisc-navy-900);
  margin-bottom: 0.25rem;
}

#aisc-app .aisc-event-meta {
  font-size: 0.95rem;
  color: var(--aisc-slate-600);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

#aisc-app .aisc-event-cat-tag {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.65rem;
  border-radius: var(--aisc-radius-full);
  border: 1px solid var(--aisc-slate-200);
  color: var(--aisc-slate-600);
  background: var(--aisc-slate-50);
  min-width: 84px;
  text-align: center;
  flex-shrink: 0;
}

#aisc-app .aisc-event-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

#aisc-app .aisc-btn-event-rsvp {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
  padding: 0.65rem 1.25rem;
  border-radius: var(--aisc-radius-md);
  font-size: 0.95rem;
  font-weight: 800;
  flex-shrink: 0;
  border: 1px solid var(--aisc-gold-400);
}

#aisc-app .aisc-btn-event-rsvp:hover {
  background: var(--aisc-gold-400);
}

#aisc-app .aisc-events-calendar-cta {
  text-align: center;
}

/* 9. Testimonials & CTA */
#aisc-app .aisc-testimonials-section {
  background: var(--aisc-navy-900);
  color: var(--aisc-white);
}

#aisc-app .aisc-testimonials-section .aisc-title {
  color: var(--aisc-white);
}

#aisc-app .aisc-testimonials-section .aisc-desc {
  color: #CBD5E1;
}

#aisc-app .aisc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

#aisc-app .aisc-testimonial-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--aisc-radius-lg);
  padding: 2.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

#aisc-app .aisc-testimonial-stars {
  color: var(--aisc-gold-300);
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  margin-bottom: 1rem;
}

#aisc-app .aisc-testimonial-quote {
  font-size: 1.1rem;
  font-style: italic;
  color: #F1F5F9;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

#aisc-app .aisc-testimonial-author {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--aisc-gold-300);
}

#aisc-app .aisc-testimonial-meta {
  font-size: 0.9rem;
  color: #94A3B8;
}

#aisc-app .aisc-cta-section {
  background: linear-gradient(135deg, var(--aisc-navy-800) 0%, var(--aisc-navy-950) 100%);
  color: var(--aisc-white);
  padding: 5.5rem 0;
  text-align: center;
  border-top: 3px solid var(--aisc-gold-300);
}

#aisc-app .aisc-cta-box {
  margin: 0 auto;
}

#aisc-app .aisc-cta-title {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2.2rem, 4vw, 3rem);
  color: var(--aisc-white);
  margin-bottom: 1rem;
}

#aisc-app .aisc-cta-desc {
  font-size: 1.2rem;
  color: #E2E8F0;
  margin-bottom: 2.5rem;
}

#aisc-app .aisc-cta-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.25rem;
}

/* 10. Pre-Footer CTA Banner & Footer (site-wide, no #aisc-app scoping) */
.aisc-cta-banner {
  background: linear-gradient(135deg, var(--aisc-navy-800) 0%, var(--aisc-navy-950) 100%);
  color: var(--aisc-white);
  padding: 4.5rem 1.5rem;
  text-align: center;
  border-top: 3px solid var(--aisc-gold-300);
}

.cta-banner-heading {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--aisc-white) !important;
  margin-bottom: 1rem;
}

.cta-banner-sub {
  font-size: 1.15rem;
  color: #E2E8F0 !important;
  margin-bottom: 2rem;
}

.cta-banner-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.25rem;
}

.button-tertiary {
  background: transparent;
  color: var(--aisc-white);
  border: 2px solid var(--aisc-white);
}

.button-tertiary:hover {
  background: var(--aisc-white);
  color: var(--aisc-navy-950);
}

.aisc-footer {
  background: #06111E;
  color: #CBD5E1;
  padding: 4.5rem 0 2rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 0.95rem;
}

.aisc-footer a {
  color: #CBD5E1;
  text-decoration: none;
  transition: color 0.2s ease;
}

.aisc-footer a:hover {
  color: #FFFFFF;
}

.aisc-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 3rem;
  margin-bottom: 3.5rem;
}

.aisc-footer-col {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.aisc-footer-heading,
.aisc-footer-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #FFD100 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
}

.aisc-footer-logo-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.aisc-footer-burgee {
  width: 48px;
  height: auto;
}

.aisc-footer-nonprofit,
.aisc-footer-address {
  color: #CBD5E1 !important;
  font-size: 0.95rem;
  line-height: 1.6;
}

.aisc-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.aisc-footer-link,
.footer-link {
  color: #CBD5E1;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.footer-icon {
  flex-shrink: 0;
}

.aisc-footer-email {
  color: #FFD100 !important;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
}

.aisc-footer-legal-links {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: #CBD5E1;
}

.aisc-footer-bottom {
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  text-align: center;
  font-size: 0.85rem;
}

.aisc-footer-bottom p {
  color: #CBD5E1 !important;
}

/* Integrated WA Search Bar & System Footer Overrides */
.zoneFooter1,
.zoneFooter2,
#id_Footer1,
#idFooterContentHolder,
.WaPlaceHolderFooter1,
#id_cwKntdc,
.WaGadgetSearchBox,
.WaGadgetSearch {
  background: #06111E !important;
  color: #CBD5E1 !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 1rem 0 !important;
  text-align: center !important;
}

.WaGadgetSearchBox input[type="text"],
.WaGadgetSearchBox .searchBoxInput,
#id_cwKntdc input[type="text"] {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 9999px !important;
  padding: 0.45rem 1.1rem !important;
  font-size: 0.9rem !important;
}

.WaGadgetSearchBox input[type="submit"],
.WaGadgetSearchBox .searchBoxButton,
#id_cwKntdc input[type="submit"] {
  background: #FFD100 !important;
  color: #06111E !important;
  border: none !important;
  border-radius: 9999px !important;
  padding: 0.45rem 1.2rem !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

/* Ghost Section Suppression for Home Page (Page 18330) — homepage-scoped only.
   The homepage gadget's own <style> block already hides WA chrome on the
   homepage; this only catches stray stock gadgets on the homepage and must
   NOT touch the content wrapper (#idPrimaryContentBlock1Content) or its
   padding container, or every page's content disappears. */
body#PAGEID_18330 .WaGadgetUpcomingEvents:not(#aisc-app .WaGadgetUpcomingEvents),
body#PAGEID_18330 .WaPlaceHolderContent > div:not([style]),
body#PAGEID_18330 .zoneContent > .WaGadget:empty {
  display: none !important;
}

/* 11. Responsive Breakpoints
   NOTE: overrides below must match the specificity of their #aisc-app-scoped
   base rules, or they silently lose the cascade on the live site. */
@media (max-width: 992px) {
  .aisc-nav-menu {
    display: none;
  }
  #aisc-app .testimonial-controls {
    display: flex;
  }
  #aisc-app .aisc-spotlight-grid {
    grid-template-columns: 1fr;
  }
  #aisc-app .aisc-spotlight-side {
    border-left: none;
    border-top: 2px solid var(--aisc-slate-200);
    padding-left: 0;
    padding-top: 1.25rem;
  }
  #aisc-app .aisc-paths-grid,
  #aisc-app .aisc-benefits-grid,
  #aisc-app .aisc-testimonials-grid {
    grid-template-columns: 1fr;
  }
  .aisc-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  #aisc-app .aisc-stats-grid {
    grid-template-columns: 1fr;
  }
  .aisc-footer-grid {
    grid-template-columns: 1fr;
  }
  #aisc-app .aisc-event-row {
    flex-direction: column;
    align-items: flex-start;
  }
  #aisc-app .aisc-btn-event-rsvp {
    width: 100%;
    text-align: center;
  }
  #aisc-app .aisc-segmenter {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  #aisc-app .aisc-segmenter-tab {
    justify-content: center;
  }
  #aisc-app .aisc-hero-ribbon {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }
  #aisc-app .aisc-hero-ribbon-cta {
    margin-left: 0;
  }
}

/* 12. UI/UX Enhancements: Segmenter, Reveal, Carousel, FAQ, Newsletter & CMS Cleanup */

/* CMS Gadget Placeholder Cleanup */
.WaGadgetCustomHTML:empty,
.gadget-empty-message,
[data-gadget-placeholder] {
  display: none !important;
}

/* Contrast Fixes */
.hero-main-title,
.aisc-hero-title {
  color: #FFFFFF !important;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55) !important;
}

/* Hero Path Segmenter */
#aisc-app .hero-path-box {
  margin-top: 2rem;
}

#aisc-app .hero-path-label {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--aisc-gold-300);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

#aisc-app .aisc-segmenter {
  display: flex;
  width: fit-content;
  margin: 0 auto;
  background: rgba(4, 13, 26, 0.75);
  border: 1px solid var(--aisc-gold-300);
  padding: 5px;
  border-radius: var(--aisc-radius-full);
  gap: 6px;
  backdrop-filter: blur(8px);
}

#aisc-app .aisc-segmenter-tab {
  padding: 0.65rem 1.5rem;
  border-radius: var(--aisc-radius-full);
  color: #E2E8F0;
  font-weight: 800;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.25s ease;
  border: none;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

#aisc-app .aisc-segmenter-tab.is-active,
#aisc-app .aisc-segmenter-tab[aria-pressed="true"] {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

#aisc-app .aisc-tab-hint {
  font-size: 0.8em;
  font-weight: 600;
  opacity: 0.75;
}

/* Expectation-management note under hero segmenter (Aug 2026 messaging fix) */
#aisc-app .hero-path-note {
  margin: 1rem auto 0;
  max-width: 560px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #CBD5E1;
}

/* Reveal on Scroll */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Testimonials Carousel & Avatars */
#aisc-app .testimonial-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid var(--aisc-gold-300);
  margin: 0 auto 1rem;
  display: block;
}

#aisc-app .testimonial-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Carousel controls are mobile-only; desktop shows a static 3-up grid */
#aisc-app .testimonial-controls {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 2rem;
}

#aisc-app .testimonial-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: var(--aisc-gold-300);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 1.1rem;
}

#aisc-app .testimonial-arrow:hover {
  background: var(--aisc-gold-300);
  color: var(--aisc-navy-950);
}

#aisc-app .testimonial-dots {
  display: flex;
  gap: 0.6rem;
}

#aisc-app .testimonial-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  border: none;
  cursor: pointer;
  transition: all 0.25s ease;
}

#aisc-app .testimonial-dot.is-active {
  background: var(--aisc-gold-300);
  width: 28px;
  border-radius: 14px;
}

#aisc-app .social-proof {
  text-align: center;
  margin-top: 3rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#aisc-app .social-proof p {
  color: #CBD5E1;
  font-size: 1.1rem;
  margin-bottom: 1.25rem;
}

/* FAQ Section */
#aisc-app .aisc-faq-section {
  background: var(--aisc-white);
  padding: 5rem 0;
}

#aisc-app .aisc-faq-list {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

#aisc-app .aisc-faq-item {
  border: 1px solid var(--aisc-slate-200);
  border-radius: var(--aisc-radius-md);
  padding: 1.35rem 1.65rem;
  background: var(--aisc-slate-50);
  transition: all 0.2s ease;
}

#aisc-app .aisc-faq-item[open] {
  border-color: var(--aisc-gold-400);
  background: var(--aisc-white);
  box-shadow: var(--aisc-shadow-md);
}

#aisc-app .aisc-faq-item summary {
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--aisc-navy-900);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#aisc-app .aisc-faq-item summary::-webkit-details-marker {
  display: none;
}

#aisc-app .aisc-faq-item summary::after {
  content: '+';
  font-size: 1.5rem;
  color: var(--aisc-gold-500);
  font-weight: 800;
  line-height: 1;
}

#aisc-app .aisc-faq-item[open] summary::after {
  content: '−';
}

#aisc-app .aisc-faq-item p {
  margin-top: 1rem;
  color: var(--aisc-slate-600);
  font-size: 1.05rem;
  line-height: 1.7;
}

/* Newsletter Section */
#aisc-app .aisc-newsletter-section {
  background: var(--aisc-gold-100);
  border-top: 1px solid rgba(217, 119, 6, 0.25);
  border-bottom: 1px solid rgba(217, 119, 6, 0.25);
  padding: 5rem 0;
  text-align: center;
}

#aisc-app .aisc-newsletter-section .aisc-tag {
  color: #B45309;
}

#aisc-app .aisc-newsletter-form {
  display: flex;
  justify-content: center;
  max-width: 580px;
  margin: 1.75rem auto 0;
  gap: 0.75rem;
  flex-wrap: wrap;
}

#aisc-app .aisc-newsletter-input {
  flex: 1 1 300px;
  padding: 0.95rem 1.35rem;
  border-radius: var(--aisc-radius-md);
  border: 1px solid rgba(217, 119, 6, 0.35);
  background: var(--aisc-white);
  font-size: 1.05rem;
  font-family: inherit;
}

#aisc-app .aisc-newsletter-input:focus {
  outline: none;
  border-color: var(--aisc-navy-900);
  box-shadow: 0 0 0 3px rgba(10, 25, 47, 0.1);
}

/* Navy subscribe button for contrast on the cream band */
#aisc-app .aisc-newsletter-form .aisc-btn-primary {
  background: var(--aisc-navy-900);
  border-color: var(--aisc-navy-900);
  color: var(--aisc-white);
  box-shadow: none;
}

#aisc-app .aisc-newsletter-form .aisc-btn-primary:hover {
  background: var(--aisc-navy-800);
  border-color: var(--aisc-navy-800);
  box-shadow: var(--aisc-shadow-md);
}

/* ==========================================================================
   13. INTERIOR PAGES — Cohesion Pass (Aug 2026)
   Bridges the legacy WA theme layer (sections 0-11, --primary-color etc.)
   onto the AISC redesign tokens so every menu page shares one language:
   navy + gold palette, Playfair headings, eyebrow kickers, card system.
   ========================================================================== */

/* 13a. Token bridge: retarget legacy theme vars at the AISC palette.
   --secondary-color (was teal #005F7A) drives links/icons on Photos,
   Racing, River Quality; navy keeps contrast on cream/white sections. */
:root {
  --secondary-color: var(--aisc-navy-800);
  --secondary-color-rgb: 0, 34, 68;
  --primary-color-lightened: var(--aisc-navy-700);
  --link-color: var(--aisc-navy-800);
  --link-hover-color: var(--aisc-gold-500);
  --light-bg-color: var(--aisc-slate-50);
}

/* 13b. Interior hero pattern — matches homepage hero language */
.interior-hero {
  background:
    linear-gradient(180deg, rgba(4,13,26,0.88) 0%, rgba(10,25,47,0.94) 100%);
  color: #FFFFFF;
  text-align: center;
  padding: 4rem 1.25rem 3.5rem;
}

.interior-hero .interior-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--aisc-font-sans);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--aisc-gold-300);
  margin-bottom: 0.9rem;
}

.interior-hero h1 {
  font-family: var(--aisc-font-serif);
  font-size: clamp(2.1rem, 4.5vw, 3rem);
  line-height: 1.15;
  margin: 0 auto 0.75rem;
  max-width: 820px;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55);
}

.interior-hero p {
  color: #CBD5E1;
  font-size: 1.1rem;
  max-width: 640px;
  margin: 0 auto;
}

/* 13c. WildApricot event calendar theming (Events page) */
.EventListCalendarHeader {
  background: transparent !important;
  border-bottom: 2px solid var(--aisc-gold-300);
  padding-bottom: 0.75rem !important;
  margin-bottom: 1.5rem;
}

.EventListCalendarHeader select,
.EventListCalendarHeader input[type="submit"],
.todayButton {
  font-family: var(--aisc-font-sans);
  border-radius: var(--aisc-radius-sm);
  border: 1px solid var(--aisc-slate-200);
  background: var(--aisc-white);
  padding: 0.4rem 0.9rem;
}

.todayButton {
  background: var(--aisc-navy-900) !important;
  color: #FFFFFF !important;
  border-color: var(--aisc-navy-900) !important;
  cursor: pointer;
}

.EventListCalendarItemDefault,
.EventListCalendarItemSelected {
  background: var(--aisc-white) !important;
  border: 1px solid var(--aisc-slate-200) !important;
  border-radius: var(--aisc-radius-md) !important;
  box-shadow: var(--aisc-shadow-sm);
  margin-bottom: 1rem !important;
  padding: 1.25rem 1.5rem !important;
  transition: all 0.2s ease;
}

.EventListCalendarItemDefault:hover,
.EventListCalendarItemSelected:hover {
  transform: translateY(-3px);
  box-shadow: var(--aisc-shadow-md);
  border-color: rgba(217, 119, 6, 0.4) !important;
}

.EventListCalendarItemSelected {
  border-left: 4px solid var(--aisc-gold-400) !important;
}

.eventDivItem .calendarDate {
  background: var(--aisc-navy-900) !important;
  color: #FFFFFF !important;
  border-radius: var(--aisc-radius-sm);
  font-family: var(--aisc-font-sans);
  text-align: center;
  padding: 0.4rem 0.6rem;
}

.calendarDate .eventDayNumber { font-weight: 800; font-size: 1.3rem; display: block; }
.calendarDate .eventDayName,
.calendarDate .eventMonthYear { font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.85; }

.eventTime {
  color: var(--aisc-slate-600);
  font-weight: 600;
  font-size: 0.92rem;
}

.eventDivItem h3, .eventDivItem .eventName a {
  font-family: var(--aisc-font-serif);
  color: var(--aisc-navy-900);
}

/* 13d. Scuttlebutt normalization (retires inline rgb(45,45,45)) */
.scuttlebutt-card,
.scuttlebutt-card-header,
.scuttlebutt-card-content,
.card-title {
  color: var(--aisc-slate-800) !important;
}

.scuttlebutt-card .status-badge.upcoming {
  background: var(--aisc-gold-100);
  color: #B45309;
}

.archive-pill {
  border-radius: var(--aisc-radius-full);
  border: 1px solid var(--aisc-slate-200);
  background: var(--aisc-white);
  transition: all 0.2s ease;
}

.archive-pill:hover {
  border-color: var(--aisc-gold-400);
  box-shadow: var(--aisc-shadow-sm);
}

/* 13e. Photo portal palette fix (was teal via legacy --secondary-color) */
.photo-portal .highlight-icon {
  color: var(--aisc-gold-500);
  font-size: 3.5rem;
  margin-bottom: 1.5rem;
  transition: transform 0.3s ease;
}

.photo-portal .highlight-card { justify-content: space-between; min-height: 320px; }
.photo-portal .highlight-card h3 { color: var(--aisc-navy-900); font-weight: 700; margin-bottom: 1rem; }
.photo-portal .highlight-card:hover .highlight-icon { transform: scale(1.1) translateY(-5px); }

@media (max-width: 768px) {
  .photo-portal .hero-main-title { font-size: 2.2rem; }
}

/* 13f. Emoji-free icon sizing for landside grids */
.grid-item h3 .aisc-icon,
.schedule-grid .aisc-icon {
  width: 1.4em;
  height: 1.4em;
  vertical-align: -0.25em;
  color: var(--aisc-gold-500);
}

/* 13g. Plain-text page rescue (About / Past Years / Sitemap) */
.wa-simple-content {
  max-width: 820px;
  margin: 0 auto;
  padding: 3rem 1.25rem;
  text-align: left;
}

.wa-simple-content h1, .wa-simple-content h2 {
  font-family: var(--aisc-font-serif);
  color: var(--aisc-navy-900);
}

.wa-simple-content a {
  color: var(--aisc-navy-800);
  text-decoration-color: var(--aisc-gold-400);
  text-underline-offset: 3px;
}

.wa-simple-content a:hover { color: var(--aisc-gold-500); }