

:root {
    /* Generic CCA site palette: charcoal, stone, limestone, and parchment. */
    --earth-charcoal: #343731;
    --earth-charcoal-dark: #252823;
    --earth-shale: #5f655f;
    --earth-stone: #8b877e;
    --earth-limestone: #d6d0c3;
    --earth-parchment: #f5f0e6;
    --earth-paper: #fcf9f2;
    --earth-ink: #2d302c;
    --earth-muted: #686c65;
    --earth-border: #d6d0c3;
    --earth-shadow: rgba(45, 48, 44, .11);

    /* Program palettes.  Use only inside program-specific areas. */
    --beaver-primary: #ff7a1a;  /* lighter safety orange */
    --beaver-accent: #65b447;   /* leaf green */
    --beaver-surface: #fff1e5;

    --cub-primary: #4169e1;     /* royal blue */
    --cub-accent: #ffd34e;      /* bright gold */
    --cub-surface: #eef2f6;

    --boy-primary: #7a5c3e;     /* khaki brown */
    --boy-accent: #ef3e3e;      /* bright red */
    --boy-surface: #f3ede4;

    --rover-primary: #7851a9;   /* royal purple */
    --rover-accent: #ffffff;    /* white */
    --rover-surface: #f0e8f8;
}


body {
    background: var(--earth-parchment);
    color: var(--earth-ink);
}

body, input, textarea, select {
    font-family: "Source Sans Pro", "Trebuchet MS", Arial, sans-serif;
    color: var(--earth-ink);
}

h1, h2, h3, h4, h5, h6, #logo {
    color: var(--earth-charcoal);
}

h1, #logo a, .display-title {
    font-family: Arvo, Rockwell, "Roboto Slab", Georgia, serif;
    font-weight: 700;
}

p { text-align: left; }

a { color: var(--earth-shale); }
a:hover { color: var(--earth-charcoal-dark); }

#camp-alert {
    background: var(--earth-charcoal);
    color: var(--earth-paper);
    font-weight: 600;
    letter-spacing: .04em;
    padding: .8rem 1rem;
    text-align: center;
}
#camp-alert a { color: var(--earth-paper); border-bottom-color: rgba(252,249,242,.45); }
#camp-alert strong { color: var(--earth-paper); }

#header {
    background: linear-gradient(180deg, var(--earth-paper) 0%, var(--earth-parchment) 100%);
    border-bottom-color: var(--earth-stone);
    padding-top: 3.5em;
}

.brand-lockup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 1.5rem;
}
.brand-lockup img {
    width: min(250px, 34vw);
    max-height: 190px;
    object-fit: contain;
}
.brand-copy { text-align: left; }
#logo { margin: 0; }
#logo a {
    color: var(--earth-charcoal);
    border: 0;
    letter-spacing: .09em;
    line-height: 1.05;
}
.brand-copy .tagline {
    color: var(--earth-shale);
    font-size: 1.05em;
    font-weight: 600;
    letter-spacing: .08em;
    margin: .85rem 0 0;
    text-transform: uppercase;
}
.brand-copy .status-note {
    color: var(--earth-muted);
    font-size: .82em;
    letter-spacing: .03em;
    margin: .35rem 0 0;
}

#nav > ul > li > a { color: var(--earth-charcoal); }
#nav > ul > li.current > a,
#nav > ul > li > a:hover { color: var(--earth-charcoal-dark); }
#nav > ul > li.camp-nav > a {
    color: var(--earth-shale);
    font-weight: 700;
}

.hero-actions,
.actions.centered { justify-content: center; }
.button.primary,
input[type="submit"].primary,
input[type="reset"].primary,
input[type="button"].primary {
    background: var(--earth-charcoal);
    color: var(--earth-paper) !important;
}
.button.primary:hover { background: var(--earth-charcoal-dark); }
.button.gold {
    background: var(--earth-stone);
    color: var(--earth-paper) !important;
}
.button.gold:hover { background: var(--earth-shale); }

#features { background: var(--earth-paper); }
#features .program-card {
    background: var(--earth-paper);
    border: 1px solid var(--earth-border);
    border-top: 5px solid var(--earth-stone);
    height: 100%;
    padding: 2rem 1.6rem;
    text-align: left;
}
#features .program-card h3 { color: var(--earth-charcoal); margin-bottom: .5rem; }
#features .program-card .ages {
    color: var(--program-age-text);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.program-mark {
    align-items: center;
    background: var(--earth-charcoal);
    border-radius: 50%;
    color: var(--earth-paper);
    display: flex;
    font-family: Arvo, Rockwell, Georgia, serif;
    font-size: 1.35rem;
    height: 3.3rem;
    justify-content: center;
    margin-bottom: 1rem;
    width: 3.3rem;
}

#banner {
    background-image: linear-gradient(rgba(37,40,35,.80), rgba(37,40,35,.80)), url("../../images/river_bone_ranch_beach_overview.jpg");
    background-position: center 46%;
    background-size: cover;
}
#banner p { text-align: center; }

.box.callout,
.info-panel,
.quick-card,
.payment-card,
.notice-card {
    background: var(--earth-paper);
    border: 1px solid var(--earth-border);
    box-shadow: 0 4px 16px var(--earth-shadow);
    padding: 2rem;
}
.notice-card { border-left: 7px solid var(--earth-stone); }

/* Direct content cards use compact spacing. */
#content > section.notice-card,
#content > section.info-panel,
#content > section.unit-assistance,
#sidebar > section.notice-card,
#sidebar > section.info-panel,
#sidebar > section.payment-card {
    border-top: 1px solid var(--earth-border);
    box-shadow: 0 4px 16px var(--earth-shadow);
    margin: 2.5em 0 0;
    padding: 2rem;
}
#content > section.notice-card:first-child,
#content > section.info-panel:first-child,
#content > section.unit-assistance:first-child { margin-top: 0; }
#content > section.notice-card { border-left: 7px solid var(--earth-stone); }
.payment-card { text-align: center; }
.payment-card img.qr {
    width: min(270px, 90%);
    height: auto;
    margin: 0 auto 1.25rem;
}

.camp-hero {
    align-items: center;
    display: grid;
    gap: 2.5rem;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
}
.camp-hero .camp-photo {
    border: 8px solid var(--earth-paper);
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    max-height: 510px;
    object-fit: cover;
    width: 100%;
}
.event-facts {
    border-top: 1px solid var(--earth-border);
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, 1fr);
    margin: 1.5rem 0;
    padding-top: 1.5rem;
}
.event-facts strong { display: block; color: var(--earth-charcoal); }

.rank-table th { background: var(--earth-charcoal); color: var(--earth-paper); }
.rank-table td, .rank-table th { vertical-align: top; }

/* Operational alert colors remain semantic and are separate from program branding. */
.alert-list li { margin-bottom: 1rem; }
.alert-label {
    display: inline-block;
    font-weight: 700;
    min-width: 9.2rem;
}
.alert-green { color: #1b6b37; }
.alert-grey { color: #59636d; }
.alert-blue { color: #245ea8; }
.alert-yellow { color: #9a6a00; }
.alert-red { color: #9b2c2c; }
.alert-double-red { color: #651414; }

.fortune-wrap {
    background: var(--earth-charcoal);
    color: var(--earth-paper);
    margin-top: 2rem;
    padding: 1.7rem 2rem;
    text-align: center;
}
.fortune-wrap p { margin: 0; text-align: center; }
#fortune a { color: var(--earth-paper); border-bottom-color: rgba(252,249,242,.35); }
#fortune .fortune-text {
    display: block;
    font-family: Arvo, Rockwell, Georgia, serif;
    font-size: 1.15rem;
    letter-spacing: .03em;
}
#fortune .fortune-credit {
    color: var(--earth-limestone);
    display: block;
    font-size: .82rem;
    margin-top: .4rem;
    text-transform: uppercase;
}

#footer { background: var(--earth-limestone); }
.footer-links { columns: 2; }
.footer-links li { break-inside: avoid; margin-bottom: .6rem; }
.footer-brand img { max-width: 190px; width: 60%; }
#copyright { color: var(--earth-muted); }

.page-intro {
    background: var(--earth-paper);
    border-bottom: 1px solid var(--earth-border);
    padding: 3rem 0 1rem;
    text-align: center;
}
.page-intro p { margin-left: auto; margin-right: auto; max-width: 52rem; text-align: center; }

.cta-strip {
    background: var(--earth-charcoal-dark);
    color: var(--earth-paper);
    padding: 2.5rem 0;
    text-align: center;
}
.cta-strip h2, .cta-strip strong { color: var(--earth-paper); }
.cta-strip p { text-align: center; }

.unit-assistance {
    background: repeating-linear-gradient(135deg, var(--earth-paper), var(--earth-paper) 16px, var(--earth-parchment) 16px, var(--earth-parchment) 32px);
    border: 2px dashed var(--earth-stone);
    padding: 2.5rem;
    text-align: center;
}

.contact-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.skip-link {
    background: var(--earth-paper);
    color: var(--earth-ink);
    left: -9999px;
    padding: .8rem 1rem;
    position: absolute;
    top: .5rem;
    z-index: 10000;
}
.skip-link:focus { left: .5rem; }

/* Use a plain-text mobile menu symbol. */
#titleBar .toggle:before {
    content: "☰" !important;
    font-family: Arial, sans-serif !important;
    font-weight: 700 !important;
}


/* Generic controls use the neutral earthy palette. */
input[type="button"],
input[type="submit"],
input[type="reset"],
button,
.button {
    background: var(--earth-charcoal);
    color: var(--earth-paper) !important;
}
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
button:hover,
.button:hover {
    background: var(--earth-charcoal-dark);
}

/* Program-specific visual system. */
.program-beaver {
    --program-primary: var(--beaver-primary);
    --program-accent: var(--beaver-accent);
    --program-surface: var(--beaver-surface);
    --program-mark-text: var(--earth-charcoal-dark);
    --program-age-text: var(--earth-charcoal-dark);
}
.program-cub {
    --program-primary: var(--cub-primary);
    --program-accent: var(--cub-accent);
    --program-surface: var(--cub-surface);
    --program-mark-text: var(--cub-accent);
    --program-age-text: var(--cub-primary);
}
.program-boy {
    --program-primary: var(--boy-primary);
    --program-accent: var(--boy-accent);
    --program-surface: var(--boy-surface);
    --program-mark-text: var(--rover-accent);
    --program-age-text: var(--rover-accent);
}
.program-rover {
    --program-primary: var(--rover-primary);
    --program-accent: var(--rover-accent);
    --program-surface: var(--rover-surface);
    --program-mark-text: var(--rover-accent);
    --program-age-text: var(--rover-primary);
}

#features .program-card {
    background: var(--program-card-surface, var(--program-surface));
    border: 2px solid var(--program-primary);
    border-top: 9px solid var(--program-primary);
    box-shadow: inset 0 -6px 0 var(--program-accent), 0 5px 18px var(--earth-shadow);
    position: relative;
}
#features .program-card .program-mark {
    background: var(--program-primary);
    border: 4px solid var(--program-accent);
    color: var(--program-mark-text);
}
#features .program-card .ages {
    background: var(--program-accent);
    border-radius: 999px;
    color: var(--program-age-text);
    display: inline-block;
    line-height: 1.2;
    margin-bottom: 1.15rem;
    padding: .38rem .78rem;
}
#features .program-card.program-rover .ages {
    color: var(--rover-primary);
}

/* The advancement table follows the same four program palettes. */
.rank-table th:nth-child(1) {
    background: var(--beaver-primary);
    box-shadow: inset 0 -5px 0 var(--beaver-accent);
    color: var(--earth-charcoal-dark);
}
.rank-table th:nth-child(2) {
    background: var(--cub-primary);
    box-shadow: inset 0 -5px 0 var(--cub-accent);
    color: var(--cub-accent);
}
.rank-table th:nth-child(3) {
    background: var(--boy-primary);
    box-shadow: inset 0 -5px 0 var(--boy-accent);
    color: var(--rover-accent);
}
.rank-table th:nth-child(4) {
    background: var(--rover-primary);
    box-shadow: inset 0 -5px 0 var(--rover-accent);
    color: var(--rover-accent);
}
.rank-table td:nth-child(1) { background: var(--beaver-surface); border-left: 4px solid var(--beaver-primary); }
.rank-table td:nth-child(2) { background: var(--cub-surface); border-left: 4px solid var(--cub-primary); }
.rank-table td:nth-child(3) { background: var(--boy-surface); border-left: 4px solid var(--boy-primary); }
.rank-table td:nth-child(4) { background: var(--rover-surface); border-left: 4px solid var(--rover-primary); }

@media screen and (max-width: 980px) {
    #camp-alert { padding-left: 5.8rem; }
    .brand-lockup { flex-direction: column; gap: 1rem; }
    .brand-copy { text-align: center; }
    .camp-hero, .contact-grid { grid-template-columns: 1fr; }
    .event-facts { grid-template-columns: 1fr; }
    #header { padding-top: 5rem; }
}

@media screen and (max-width: 736px) {
    .brand-lockup img { width: min(220px, 70vw); }
    .brand-copy .status-note { display: none; }
    #logo a { font-size: .82em; }
    .footer-links { columns: 1; }
    .box.callout, .info-panel, .quick-card, .payment-card, .notice-card { padding: 1.35rem; }
}

/* Public photo albums and reusable image sections. */
.photo-feature {
    align-items: center;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
}
.photo-feature.reverse { grid-template-columns: minmax(280px, .9fr) minmax(0, 1fr); }
.photo-feature.reverse .photo-copy { order: 2; }
.photo-feature img,
.image-panel img {
    border: 7px solid var(--earth-paper);
    box-shadow: 0 4px 18px var(--earth-shadow);
    display: block;
    height: auto;
    width: 100%;
}
.photo-strip {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
    margin: 2rem 0;
}
.photo-strip figure { margin: 0; }
.photo-strip img {
    aspect-ratio: 4 / 3;
    border: 5px solid var(--earth-paper);
    box-shadow: 0 3px 12px rgba(45,48,44,.14);
    object-fit: cover;
    width: 100%;
}
.photo-strip figcaption,
.gallery-item figcaption {
    color: var(--earth-muted);
    font-size: .9rem;
    line-height: 1.35;
    margin-top: .65rem;
    text-align: left;
}
.album-index {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 2rem 0 3rem;
}
.album-card {
    background: var(--earth-paper);
    border: 1px solid var(--earth-border);
    box-shadow: 0 4px 16px var(--earth-shadow);
    display: block;
    padding: 1rem;
}
.album-card img {
    aspect-ratio: 16 / 9;
    display: block;
    object-fit: cover;
    width: 100%;
}
.album-card h3 { margin: 1rem 0 .35rem; }
.album-card p { margin: 0; }
.gallery-grid {
    display: grid;
    gap: 1.4rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gallery-item {
    appearance: none;
    background: var(--earth-paper);
    border: 1px solid var(--earth-border);
    border-radius: 0;
    box-shadow: 0 4px 16px var(--earth-shadow);
    cursor: zoom-in;
    display: block;
    font: inherit;
    letter-spacing: normal;
    padding: .85rem;
    text-align: left;
    text-transform: none;
    width: 100%;
}
.gallery-item:hover,
.gallery-item:focus-visible {
    border-color: var(--earth-stone);
    box-shadow: 0 6px 22px rgba(45,48,44,.14);
}
.gallery-item img {
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    width: 100%;
}
.gallery-item.wide img { aspect-ratio: 16 / 9; }
.gallery-dialog {
    background: rgba(30,32,29,.96);
    border: 0;
    color: var(--earth-paper);
    height: 100%;
    margin: 0;
    max-height: none;
    max-width: none;
    padding: 1.5rem;
    width: 100%;
}
.gallery-dialog::backdrop { background: rgba(30,32,29,.96); }
.gallery-dialog .dialog-inner {
    align-items: center;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    height: 100%;
    margin: auto;
    max-width: 1500px;
}
.gallery-dialog figure { margin: 0; text-align: center; }
.gallery-dialog img {
    max-height: calc(100vh - 9rem);
    max-width: 100%;
    object-fit: contain;
}
.gallery-dialog figcaption { color: var(--earth-paper); margin-top: .9rem; text-align: center; }
.gallery-dialog button {
    background: rgba(252,249,242,.14);
    border: 1px solid rgba(252,249,242,.45);
    color: var(--earth-paper);
    cursor: pointer;
    font-size: 1.3rem;
    min-width: 3rem;
    padding: .75rem;
}
.gallery-dialog .dialog-close {
    position: absolute;
    right: 1.2rem;
    top: 1rem;
}
.gallery-dialog .dialog-prev { margin-right: 1rem; }
.gallery-dialog .dialog-next { margin-left: 1rem; }


/* Generic controls use the neutral earthy palette. */
input[type="button"],
input[type="submit"],
input[type="reset"],
button,
.button {
    background: var(--earth-charcoal);
    color: var(--earth-paper) !important;
}
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
button:hover,
.button:hover {
    background: var(--earth-charcoal-dark);
}

/* Program-specific visual system. */
.program-beaver {
    --program-primary: var(--beaver-primary);
    --program-accent: var(--beaver-accent);
    --program-surface: var(--beaver-surface);
    --program-mark-text: var(--earth-charcoal-dark);
    --program-age-text: var(--earth-charcoal-dark);
}
.program-cub {
    --program-primary: var(--cub-primary);
    --program-accent: var(--cub-accent);
    --program-surface: var(--cub-surface);
    --program-mark-text: var(--cub-accent);
    --program-age-text: var(--cub-primary);
}
.program-boy {
    --program-primary: var(--boy-primary);
    --program-accent: var(--boy-accent);
    --program-surface: var(--boy-surface);
    --program-mark-text: var(--rover-accent);
    --program-age-text: var(--rover-accent);
}
.program-rover {
    --program-primary: var(--rover-primary);
    --program-accent: var(--rover-accent);
    --program-surface: var(--rover-surface);
    --program-mark-text: var(--rover-accent);
    --program-age-text: var(--rover-primary);
}

#features .program-card {
    background: var(--program-card-surface, var(--program-surface));
    border: 2px solid var(--program-primary);
    border-top: 9px solid var(--program-primary);
    box-shadow: inset 0 -6px 0 var(--program-accent), 0 5px 18px var(--earth-shadow);
    position: relative;
}
#features .program-card .program-mark {
    background: var(--program-primary);
    border: 4px solid var(--program-accent);
    color: var(--program-mark-text);
}
#features .program-card .ages {
    background: var(--program-accent);
    border-radius: 999px;
    color: var(--program-age-text);
    display: inline-block;
    line-height: 1.2;
    margin-bottom: 1.15rem;
    padding: .38rem .78rem;
}
#features .program-card.program-rover .ages {
    color: var(--rover-primary);
}

/* The advancement table follows the same four program palettes. */
.rank-table th:nth-child(1) {
    background: var(--beaver-primary);
    box-shadow: inset 0 -5px 0 var(--beaver-accent);
    color: var(--earth-charcoal-dark);
}
.rank-table th:nth-child(2) {
    background: var(--cub-primary);
    box-shadow: inset 0 -5px 0 var(--cub-accent);
    color: var(--cub-accent);
}
.rank-table th:nth-child(3) {
    background: var(--boy-primary);
    box-shadow: inset 0 -5px 0 var(--boy-accent);
    color: var(--rover-accent);
}
.rank-table th:nth-child(4) {
    background: var(--rover-primary);
    box-shadow: inset 0 -5px 0 var(--rover-accent);
    color: var(--rover-accent);
}
.rank-table td:nth-child(1) { background: var(--beaver-surface); border-left: 4px solid var(--beaver-primary); }
.rank-table td:nth-child(2) { background: var(--cub-surface); border-left: 4px solid var(--cub-primary); }
.rank-table td:nth-child(3) { background: var(--boy-surface); border-left: 4px solid var(--boy-primary); }
.rank-table td:nth-child(4) { background: var(--rover-surface); border-left: 4px solid var(--rover-primary); }

@media screen and (max-width: 980px) {
    .photo-feature,
    .photo-feature.reverse { grid-template-columns: 1fr; }
    .photo-feature.reverse .photo-copy { order: initial; }
    .album-index,
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 736px) {
    .photo-strip,
    .album-index,
    .gallery-grid { grid-template-columns: 1fr; }
    .gallery-dialog { padding: .75rem; }
    .gallery-dialog .dialog-inner { grid-template-columns: 1fr; }
    .gallery-dialog .dialog-prev,
    .gallery-dialog .dialog-next {
        bottom: .75rem;
        position: absolute;
    }
    .gallery-dialog .dialog-prev { left: .75rem; }
    .gallery-dialog .dialog-next { right: .75rem; }
    .gallery-dialog img { max-height: calc(100vh - 11rem); }
}

/* Programs page: keep the four program columns aligned while separating their colors. */
#features .program-grid {
    align-items: stretch;
    background: #ffffff;
    display: grid;
    gap: 1.1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 1.1rem;
}
#features .program-grid > * {
    display: flex;
    min-width: 0;
    padding: 0;
    width: auto;
}
#features .program-grid .program-card {
    width: 100%;
}

.payment-purpose {
    background: var(--earth-parchment);
    border-left: 5px solid var(--earth-stone);
    padding: .85rem 1rem;
}

@media screen and (max-width: 980px) {
    #features .program-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 736px) {
    #features .program-grid {
        grid-template-columns: 1fr;
    }
}

/* Programs page: independent advancement columns arranged as a close staircase. */
.advancement-steps {
    --step-gap: 6px;
    align-items: start;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: var(--step-gap);
    margin: 2.5rem 0 2rem;
}
.rank-step {
    background: var(--program-surface);
    border: 2px solid var(--program-primary);
    box-shadow: 0 5px 18px var(--earth-shadow);
    grid-row: 1;
    margin-top: var(--step-offset, 0px);
    min-width: 0;
}
.rank-step-beaver { grid-column: 1; }
.rank-step-cub { grid-column: 2; }
.rank-step-boy { grid-column: 3; }
.rank-step-rover { grid-column: 4; }
.rank-step h3 {
    background: var(--program-primary);
    box-shadow: inset 0 -6px 0 var(--program-accent);
    color: var(--program-heading-text);
    font-size: .95rem;
    line-height: 1.4;
    margin: 0;
    padding: 1rem;
}
.rank-step h3 span {
    display: block;
    font-family: "Source Sans Pro", Arial, sans-serif;
    font-size: .78rem;
    letter-spacing: .1em;
    margin-top: .25rem;
    text-transform: uppercase;
}
.rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rank-list li {
    border-top: 1px solid rgba(52, 55, 49, .12);
    line-height: 1.35;
    margin: 0;
    padding: .85rem 1rem;
}
.rank-list li:first-child { border-top: 0; }
.program-beaver { --program-heading-text: var(--earth-charcoal-dark); }
.program-cub { --program-heading-text: var(--cub-accent); }
.program-boy { --program-heading-text: var(--rover-accent); }
.program-rover { --program-heading-text: var(--rover-accent); }

@media screen and (max-width: 736px) {
    .advancement-steps {
        display: block;
    }
    .rank-step {
        margin: 0 0 var(--step-gap);
        width: 100%;
    }
}

/* Rover cards use the same light-body structure as the other program cards. */
#features .program-card.program-rover {
    background: var(--rover-surface);
    color: var(--earth-ink);
}
#features .program-card.program-rover h3,
#features .program-card.program-rover p,
#features .program-card.program-rover strong {
    color: var(--earth-ink);
}
#features .program-card.program-rover .program-mark {
    background: var(--rover-primary);
    border-color: var(--rover-accent);
    color: var(--rover-accent);
}
#features .program-card.program-rover .ages {
    background: var(--rover-accent);
    color: var(--rover-primary);
}

/* v0.9: programs-page spacing and a more compact site footer. */
.advancement-article > header {
    margin-bottom: 0;
}
.advancement-note {
    margin: .8rem auto 1rem;
    max-width: 68rem;
    position: relative;
    text-align: center;
    user-select: text;
    -webkit-user-select: text;
    z-index: 2;
}
.advancement-steps {
    margin-top: .8rem;
}
#footer {
    padding: 3em 0 2.5em;
}
#footer > .container > header {
    margin-bottom: 2em;
}
#copyright {
    margin-top: 2.25em;
    padding-top: 1.5em;
}

@media screen and (max-width: 980px) {
    #footer {
        padding: 2.5em 0 2em;
    }
    #copyright {
        margin-top: 1.75em;
        padding-top: 1.25em;
    }
}

@media screen and (max-width: 736px) {
    #footer {
        padding: 2em 0 1.5em;
    }
}

/* v0.10: Summer Camp fee callout and separation below the advancement staircase. */
.camp-requirement {
    background: var(--earth-parchment);
    border-left: 5px solid var(--earth-stone);
    margin: 1rem 0 1.5rem;
    padding: .85rem 1rem;
}
.advancement-article {
    margin-bottom: 1.25rem !important;
}

/* v0.12: define Rover white accents with thin royal-purple edges. */
#features .program-card.program-rover {
    box-shadow:
        inset 0 -6px 0 var(--rover-accent),
        inset 0 -7px 0 var(--rover-primary),
        0 5px 18px var(--earth-shadow);
}
.rank-step-rover h3 {
    border-bottom: 1px solid var(--rover-primary);
}

/* v0.15: public Summer Camp daily calendar. */
.camp-calendar {
    margin: 2.5rem 0;
}
.camp-calendar > header {
    margin-bottom: 1.15rem;
    text-align: center;
}
.camp-calendar > header h3 {
    margin-bottom: 0;
}
.camp-calendar .table-wrapper {
    overflow-x: auto;
}
.camp-calendar-table {
    border: 1px solid #a8a8a8;
    margin: 0;
    width: 100%;
}
.camp-calendar-table thead {
    background: var(--earth-charcoal);
    color: var(--earth-paper);
}
.camp-calendar-table th {
    font-family: Arvo, Rockwell, Georgia, serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.camp-calendar-table th,
.camp-calendar-table td {
    border-left: 1px solid #b8b8b8;
    padding: .85rem 1rem;
}
.camp-calendar-table th:first-child,
.camp-calendar-table td:first-child {
    border-left: 0;
    font-weight: 700;
    width: 34%;
}
.camp-calendar-table tbody tr:nth-child(odd) {
    background: #eeeeee;
}
.camp-calendar-table tbody tr:nth-child(even) {
    background: #cccccc;
}
.camp-calendar-table tbody tr {
    border-top: 1px solid #b8b8b8;
}

@media screen and (max-width: 736px) {
    .camp-calendar {
        margin: 2rem 0;
    }
    .camp-calendar-table th,
    .camp-calendar-table td {
        padding: .75rem .7rem;
    }
    .camp-calendar-table th:first-child,
    .camp-calendar-table td:first-child {
        width: 42%;
    }
}
