/* CC 2026 — Events and Grand Choral archives. Presentation only.
   Existing dates, enrolment lifecycle, native tags, photographs and layouts stay intact.
   The night identity is an intentional exception, not a light-page redesign. */
body:is(.cc-events-page, .cc-event-detail-page, .cc-gc-archive-page, .cc-gc-tag-page) .container-component {
    color: var(--cc-text);
}
body:is(.cc-events-page, .cc-event-detail-page, .cc-gc-archive-page, .cc-gc-tag-page) .container-component :is(a, button, summary, input):focus-visible {
    outline: 2px solid var(--cc-purple);
    outline-offset: 4px;
}

/* Light editorial pages retain their large natural photos and overlapping introductions. */
/* Compact panoramic hero shared by the event landing page and light details.
   Keep the original photo focal points, automatic text height and native links.
   The Grand Choral's separate night hero and all training heroes are excluded. */
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media) {
    height: 400px;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media) img {
    object-fit: cover;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) {
    width: min(650px, calc(100% - 64px));
    margin: -100px 0 0 32px;
    padding: 38px 40px;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero, .cc-event-hero) h1 {
    margin-bottom: 14px;
    font-size: clamp(44px, 4vw, 58px);
    line-height: 1.05;
}
body.cc-event-rendezvous-page .cc-event-hero h1 {
    text-wrap: wrap;
}
/* Both original photos place faces near their upper edge: preserve them
   when shortening the panoramic frame, rather than centering the crop. */
body:is(.cc-event-rendezvous-page, .cc-event-joigny-page) .cc-event-hero__media img {
    object-position: center top;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) > .cc-event-eyebrow {
    margin-bottom: 10px;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) > p:not(.cc-event-eyebrow) {
    font-size: clamp(16px, 1.2vw, 17px);
    line-height: 1.55;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero, .cc-event-hero) :is(.cc-event-cta, .cc-rendezvous-jump) {
    margin-top: 18px;
}
body.cc-event-detail-page:not(.cc-event-grand-choral-page) .cc-event-hero {
    margin-bottom: 80px;
}
/* When the next section is in another module, the existing row gap adds 32px. */
body.cc-event-detail-page:not(.cc-event-grand-choral-page) .cc-event-hero:last-child {
    margin-bottom: 48px;
}
body.cc-events-page .cc-events-hero + .cc-events-heading {
    margin-top: 80px;
}
body.cc-event-rendezvous-page .cc-event-hero + .cc-rendezvous-section > .cc-event-section-heading {
    margin-top: 0;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media) {
        height: 340px;
    }
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) {
        width: min(620px, calc(100% - 48px));
        margin: -80px 0 0 24px;
        padding: 32px;
    }
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero, .cc-event-hero) h1 {
        font-size: clamp(40px, 4.3vw, 50px);
    }
}

@media (max-width: 767.98px) {
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media) {
        height: clamp(200px, 54vw, 280px);
    }
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) {
        width: calc(100% - 16px);
        margin: -32px auto 0;
        padding: 24px 20px;
    }
    body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero, .cc-event-hero) h1 {
        font-size: clamp(30px, 8.4vw, 42px);
        margin-bottom: 12px;
    }
    body.cc-event-detail-page:not(.cc-event-grand-choral-page) .cc-event-hero {
        margin-bottom: 48px;
    }
    body.cc-event-detail-page:not(.cc-event-grand-choral-page) .cc-event-hero:last-child {
        margin-bottom: 16px;
    }
    body.cc-events-page .cc-events-hero + .cc-events-heading {
        margin-top: 48px;
    }
}

body:is(.cc-event-sete-page, .cc-event-joigny-page) .cc-event-highlights {
    counter-reset: sete-highlight;
}
body:is(.cc-event-sete-page, .cc-event-joigny-page) .cc-event-highlights li {
    counter-increment: sete-highlight;
    position: relative;
    padding-left: 2.75rem;
}
body:is(.cc-event-sete-page, .cc-event-joigny-page) .cc-event-highlights li::before {
    content: counter(sete-highlight, decimal-leading-zero);
    position: absolute;
    top: 1.3rem;
    left: 1rem;
    color: #0D7995;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.5;
}
body:is(.cc-event-sete-page, .cc-event-joigny-page) .cc-event-video--wide {
    margin-top: clamp(2.5rem, 5vw, 4rem);
}
body:is(.cc-event-sete-page, .cc-event-joigny-page) .cc-event-video--wide .cc-event-section-heading {
    margin-bottom: 1.5rem;
}
body.cc-events-page .cc-event-card:not(.cc-event-card--grand-choral) .cc-event-card__link {
    color: var(--cc-black);
}
body.cc-events-page .cc-event-card:not(.cc-event-card--grand-choral):is(:hover, :focus-visible) .cc-event-card__link {
    color: var(--cc-purple);
}
body.cc-events-page .cc-event-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}
body.cc-events-page .cc-event-card__body h2 {
    line-height: 1.3;
    margin-bottom: .8rem;
}
body.cc-events-page .cc-event-card__link {
    margin-top: auto;
    padding-top: 1rem;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media, .cc-event-photo, .cc-event-card figure, .cc-rendezvous-card figure) {
    background: var(--cc-background-alt);
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__media, .cc-event-hero__media)::after {
    background: linear-gradient(180deg, transparent 48%, rgb(0 0 0 / 20%));
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: none;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero, .cc-event-hero) h1 {
    color: var(--cc-black);
    font-weight: var(--cc-weight-hero);
    letter-spacing: -.035em;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-eyebrow, .cc-event-card__meta, .cc-event-date) {
    color: var(--cc-purple);
    font-weight: 600;
    letter-spacing: .08em;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-events-hero__content, .cc-event-hero__content) > p:not(.cc-event-eyebrow),
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-copy, .cc-event-callout, .cc-event-edition) > p:not(.cc-event-eyebrow),
body:is(.cc-events-page, .cc-event-detail-page) :is(.cc-events-heading, .cc-event-section-heading) > p:not(.cc-event-eyebrow) {
    color: var(--cc-text-secondary);
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-copy, .cc-event-intro-grid, .cc-event-spotlight, .cc-event-callout, .cc-event-edition, .cc-event-video, .cc-events-heading, .cc-event-section-heading) h2,
body.cc-event-rendezvous-page .cc-rendezvous-network__intro h2 {
    color: var(--cc-black);
    font-weight: 600;
    letter-spacing: -.02em;
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-cta {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
    border-radius: var(--cc-radius-button);
    font-weight: 600;
    box-shadow: none;
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-cta--outline {
    color: var(--cc-purple);
    background: var(--cc-white);
    border-color: var(--cc-purple);
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-cta:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-black);
    border-color: var(--cc-black);
    box-shadow: none;
    transform: none;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-spotlight, .cc-event-highlights, .cc-event-card, .cc-rendezvous-card) {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-card, .cc-rendezvous-card):is(:hover, :focus-visible) {
    color: var(--cc-text);
    border-color: var(--cc-border-control);
    box-shadow: var(--cc-shadow-soft);
    transform: none;
}
body:is(.cc-events-page, .cc-event-detail-page) :is(.cc-event-card h2, .cc-rendezvous-card h3, .cc-event-highlights strong) {
    color: var(--cc-black);
    font-weight: 600;
    letter-spacing: -.02em;
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-card__body > p:not(.cc-event-card__meta),
body:is(.cc-events-page, .cc-event-detail-page) :is(.cc-event-location, .cc-event-organizer, .cc-event-highlights span, .cc-rendezvous-card__team, .cc-rendezvous-card__summary, .cc-rendezvous-card__pending),
body.cc-event-rendezvous-page .cc-rendezvous-network__intro p:last-child {
    color: var(--cc-text-secondary);
}
body:is(.cc-events-page, .cc-event-detail-page) :is(.cc-event-card__link, .cc-event-text-link, .cc-rendezvous-card__link, .cc-rendezvous-card__contact) {
    color: var(--cc-purple);
    font-weight: 600;
    text-decoration-color: currentColor;
}
body:is(.cc-events-page, .cc-event-detail-page) :is(.cc-event-text-link, .cc-rendezvous-card__link, .cc-rendezvous-card__contact):is(:hover, :focus-visible) {
    color: var(--cc-black);
}
body.cc-event-rendezvous-page .cc-rendezvous-card__theme {
    color: var(--cc-text);
    font-weight: 600;
}
body:is(.cc-events-page, .cc-event-detail-page):not(.cc-event-grand-choral-page) :is(.cc-event-callout, .cc-event-edition) {
    background: var(--cc-background-alt);
    border-color: var(--cc-border);
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-highlights li + li,
body.cc-event-rendezvous-page .cc-rendezvous-network {
    border-color: var(--cc-border);
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-facts li,
body.cc-event-rendezvous-page .cc-rendezvous-jump a {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-button);
    font-weight: 600;
}
body.cc-event-rendezvous-page .cc-rendezvous-jump a:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
}
body:is(.cc-events-page, .cc-event-detail-page) .cc-event-spotlight .cc-event-date {
    color: var(--cc-white);
    background: var(--cc-purple);
}
body.cc-event-rendezvous-page .cc-rendezvous-status {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
    border-color: var(--cc-border);
    font-weight: 600;
}
body.cc-event-rendezvous-page .cc-rendezvous-status--open {
    color: var(--cc-blue-accessible);
    background: var(--cc-blue-soft);
}
body.cc-event-rendezvous-page :is(.cc-rendezvous-status--current, .cc-rendezvous-status--soon) {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
}
body.cc-event-rendezvous-page :is(.cc-rendezvous-status--closed, .cc-rendezvous-status--past) {
    color: var(--cc-text-secondary);
    background: var(--cc-background-alt);
}
body.cc-event-rendezvous-page .cc-rendezvous-card.is-past {
    background: var(--cc-background-alt);
}
body.cc-event-rendezvous-page .cc-calendar-menu summary {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
    font-weight: 600;
    box-shadow: none;
}
body.cc-event-rendezvous-page .cc-calendar-menu summary:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-black);
    border-color: var(--cc-black);
    box-shadow: none;
    transform: none;
}
body.cc-event-rendezvous-page .cc-calendar-menu__panel {
    background: var(--cc-white);
    border-color: var(--cc-border);
}
body.cc-event-rendezvous-page .cc-calendar-menu__panel a,
body.cc-event-rendezvous-page .cc-calendar-menu__panel > a > span:first-child {
    color: var(--cc-black);
}
body.cc-event-rendezvous-page .cc-calendar-menu__panel a:is(:hover, :focus-visible) {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
}
body.cc-event-rendezvous-page .cc-calendar-menu__panel small {
    color: var(--cc-text-secondary);
}
body.cc-event-sete-page .cc-sete-event-cta {
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-event-sete-page .cc-sete-event-cta p:first-child {
    color: var(--cc-purple);
    font-weight: 600;
}
body.cc-event-sete-page .cc-sete-event-cta h2 {
    color: var(--cc-black);
    font-weight: 600;
}
body.cc-event-sete-page .cc-sete-event-cta p:not(:first-child) {
    color: var(--cc-text-secondary);
}
body.cc-event-sete-page .cc-sete-event-cta a {
    color: var(--cc-white) !important;
    background: var(--cc-purple);
    font-weight: 600;
}
body.cc-event-sete-page .cc-sete-event-cta a:is(:hover, :focus-visible) {
    background: var(--cc-black);
}

/* Shared Grand Choral night vocabulary. Deep purple remains a stage atmosphere;
   official blue/yellow are small luminous accents, never whole bright banners. */
body:is(.cc-event-grand-choral-page, .cc-gc-archive-page, .cc-gc-tag-page, .cc-events-page, .cc-event-rendezvous-page) {
    --cc-gc-night: color-mix(in srgb, var(--cc-black) 88%, var(--cc-purple));
    --cc-gc-panel: color-mix(in srgb, var(--cc-black) 78%, var(--cc-purple));
    --cc-gc-line: rgb(255 255 255 / 20%);
    --cc-gc-muted: color-mix(in srgb, var(--cc-white) 80%, var(--cc-black));
    --gc-night: var(--cc-gc-night);
    --gc-night-soft: var(--cc-gc-panel);
    --gc-panel: var(--cc-gc-panel);
    --gc-panel-deep: var(--cc-gc-night);
    --gc-line: var(--cc-gc-line);
    --gc-text: var(--cc-white);
    --gc-muted: var(--cc-gc-muted);
    --gc-accent: var(--cc-blue);
    --gc-warm: var(--cc-yellow);
    --gca-night: var(--cc-gc-night);
    --gca-panel: var(--cc-gc-panel);
    --gca-line-night: var(--cc-gc-line);
    --gca-text-night: var(--cc-white);
    --gca-muted-night: var(--cc-gc-muted);
    --gca-accent-night: var(--cc-blue);
    --gca-warm-night: var(--cc-yellow);
}
body:is(.cc-event-grand-choral-page, .cc-gc-archive-page) .site-grid {
    background: radial-gradient(circle at 9% 18%, rgb(88 37 131 / 28%), transparent 27rem),
        radial-gradient(circle at 94% 54%, rgb(39 185 215 / 8%), transparent 31rem),
        linear-gradient(180deg, var(--cc-gc-night), var(--cc-black) 50%, var(--cc-gc-night));
}
body:is(.cc-event-grand-choral-page, .cc-gc-archive-page) .container-component {
    color: var(--cc-white);
}
body:is(.cc-event-grand-choral-page, .cc-gc-archive-page) .container-component :is(a, button, summary):focus-visible {
    outline-color: var(--cc-yellow);
}
body.cc-event-grand-choral-page .cc-gc-hero,
body.cc-gc-archive-page .cc-gca-hero {
    border-color: var(--cc-gc-line);
}
body.cc-event-grand-choral-page .cc-gc-hero h1,
body.cc-gc-archive-page .cc-gca-hero h1 {
    color: var(--cc-white);
    font-weight: 650;
    letter-spacing: -.05em;
}
body.cc-event-grand-choral-page .cc-event-eyebrow,
body.cc-event-grand-choral-page .cc-gc-current__heading h2 span,
body.cc-gc-archive-page .cc-gca-hero .cc-gca-eyebrow {
    color: var(--cc-yellow);
    font-weight: 600;
}
body.cc-event-grand-choral-page .cc-gc-hero .cc-event-eyebrow::before,
body.cc-gc-archive-page .cc-gca-hero .cc-gca-eyebrow::before {
    background: var(--cc-yellow);
}
body.cc-event-grand-choral-page :is(.cc-gc-hero__lead, .cc-gc-current__story > p, .cc-gc-current__facts span, .cc-gc-finale__intro > p:not(.cc-event-eyebrow), .cc-gc-finale__signature, .cc-gc-hero__facts span),
body.cc-gc-archive-page :is(.cc-gca-lead, .cc-gca-intro, .cc-gca-hero__facts dd, .cc-gca-description, .cc-gca-artists, .cc-gca-sources) {
    color: var(--cc-gc-muted);
}
body.cc-event-grand-choral-page :is(.cc-event-copy, .cc-event-video) h2,
body.cc-event-grand-choral-page :is(.cc-gc-current__heading, .cc-gc-finale__intro, .cc-gc-archive-promo) h2 {
    color: var(--cc-white);
    font-weight: 650;
    letter-spacing: -.04em;
}
body.cc-event-grand-choral-page .cc-gc-current__heading h2 span {
    letter-spacing: .12em;
}
body.cc-event-grand-choral-page .cc-gc-current__content {
    background: radial-gradient(circle at 11% 12%, rgb(88 37 131 / 18%), transparent 19rem),
        linear-gradient(135deg, var(--cc-gc-night), var(--cc-black));
}
body.cc-event-grand-choral-page .cc-gc-finale__intro h2 span,
body.cc-gc-archive-page .cc-gca-hero h1 em {
    color: var(--cc-blue);
    font-weight: inherit;
}
body.cc-event-grand-choral-page .cc-gc-finale__signature span + span::before {
    color: var(--cc-yellow);
}
body.cc-event-grand-choral-page .cc-gc-hero .cc-event-cta,
body.cc-event-grand-choral-page .cc-gc-current .cc-event-cta,
body.cc-gc-archive-page .cc-gca-button {
    color: var(--cc-black) !important;
    background: var(--cc-yellow);
    border-color: var(--cc-yellow);
    border-radius: var(--cc-radius-button);
    box-shadow: none;
    font-weight: 600;
}
body.cc-event-grand-choral-page .cc-gc-hero .cc-event-cta:is(:hover, :focus-visible),
body.cc-event-grand-choral-page .cc-gc-current .cc-event-cta:is(:hover, :focus-visible),
body.cc-gc-archive-page .cc-gca-button:is(:hover, :focus-visible) {
    color: var(--cc-black) !important;
    background: var(--cc-white);
    border-color: var(--cc-white);
    box-shadow: none;
    transform: none;
}
body.cc-event-grand-choral-page :is(.cc-gc-hero__anchor, .cc-gc-current__document, .cc-gc-hero__archive),
body.cc-event-grand-choral-page .cc-event-copy--history .cc-event-cta--outline,
body.cc-event-grand-choral-page .cc-gc-archive-promo .cc-event-cta,
body.cc-gc-archive-page :is(.cc-gca-back, .cc-gca-text-link, .cc-gca-periods a, .cc-gca-era__heading > a) {
    color: var(--cc-white) !important;
    border-color: rgb(255 255 255 / 55%);
    font-weight: 600;
}
body.cc-event-grand-choral-page .cc-gc-hero__archive,
body.cc-event-grand-choral-page .cc-gc-archive-promo .cc-event-cta {
    background: transparent;
    box-shadow: none;
}
body.cc-event-grand-choral-page .cc-gc-hero__archive:is(:hover, :focus-visible),
body.cc-event-grand-choral-page .cc-event-copy--history .cc-event-cta--outline:is(:hover, :focus-visible),
body.cc-event-grand-choral-page .cc-gc-archive-promo .cc-event-cta:is(:hover, :focus-visible),
body.cc-gc-archive-page :is(.cc-gca-text-link, .cc-gca-periods a):is(:hover, :focus-visible) {
    color: var(--cc-black) !important;
    background: var(--cc-white);
    border-color: var(--cc-white);
    transform: none;
}
body.cc-event-grand-choral-page :is(.cc-gc-current__document, .cc-gc-hero__anchor:not(.cc-gc-hero__archive)):is(:hover, :focus-visible),
body.cc-gc-archive-page .cc-gca-back:is(:hover, :focus-visible) {
    color: var(--cc-yellow) !important;
}
body.cc-event-grand-choral-page .cc-gc-archive-promo {
    background: linear-gradient(115deg, var(--cc-gc-panel), var(--cc-gc-night));
    border-color: var(--cc-gc-line);
}
body.cc-event-grand-choral-page .cc-gc-archive-promo p,
body.cc-event-grand-choral-page .cc-gc-archive-promo__posters a {
    color: var(--cc-gc-muted);
}
body.cc-event-grand-choral-page .cc-gc-archive-promo .cc-event-eyebrow {
    color: var(--cc-yellow);
}

/* Its two teaser cards remain night-themed, including the live agenda status. */
body.cc-events-page .cc-event-card.cc-event-card--grand-choral,
body.cc-event-rendezvous-page .cc-rendezvous-card.cc-rendezvous-card--grand-choral {
    color: var(--cc-white);
    background: radial-gradient(circle at 8% 12%, rgb(88 37 131 / 25%), transparent 15rem),
        linear-gradient(150deg, var(--cc-gc-panel), var(--cc-gc-night));
    border-color: var(--cc-gc-line);
}
body.cc-events-page .cc-event-card.cc-event-card--grand-choral:is(:hover, :focus-visible),
body.cc-event-rendezvous-page .cc-rendezvous-card.cc-rendezvous-card--grand-choral:hover {
    color: var(--cc-white);
    border-color: var(--cc-blue);
}
body.cc-events-page .cc-event-card--grand-choral h2,
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral h3,
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-rendezvous-card__theme {
    color: var(--cc-white);
}
body.cc-events-page .cc-event-card--grand-choral .cc-event-card__meta {
    color: var(--cc-yellow);
}
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-event-date {
    color: var(--cc-white);
}
body.cc-events-page .cc-event-card--grand-choral .cc-event-card__body > p:not(.cc-event-card__meta),
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral :is(.cc-event-location, .cc-rendezvous-card__team, .cc-rendezvous-card__summary) {
    color: var(--cc-gc-muted);
}
body.cc-events-page .cc-event-card--grand-choral .cc-event-card__link,
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-rendezvous-card__link,
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-rendezvous-card__link:is(:hover, :focus-visible) {
    color: var(--cc-white);
}
body.cc-event-rendezvous-page .cc-rendezvous-card .cc-rendezvous-status--open {
    color: #0D7995;
    background: #EAF9FB;
    border-color: #EAF9FB;
}
body.cc-event-rendezvous-page .cc-rendezvous-card .cc-rendezvous-status--soon {
    color: #582583;
    background: #F2EBF8;
    border-color: #F2EBF8;
}
body.cc-event-rendezvous-page .cc-rendezvous-card .cc-rendezvous-status--closed {
    color: #161412;
    background: #F3F4F2;
    border-color: #F3F4F2;
}
body.cc-event-rendezvous-page .cc-rendezvous-card .cc-rendezvous-status--current {
    color: #161412;
    background: #27B9D7;
    border-color: #27B9D7;
}
body.cc-event-rendezvous-page .cc-rendezvous-card .cc-rendezvous-status--past {
    color: #625F5B;
    background: #F3F4F2;
    border-color: #F3F4F2;
}
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-calendar-menu summary {
    color: var(--cc-black);
    background: var(--cc-white);
    border-color: var(--cc-white);
    box-shadow: none;
}
body.cc-event-rendezvous-page .cc-rendezvous-card--grand-choral .cc-calendar-menu summary:is(:hover, :focus-visible) {
    background: #EAF9FB;
    border-color: #EAF9FB;
    color: var(--cc-black);
    box-shadow: none;
}

/* Explore all editions — preserve the photo hero, decades and one-edition timeline. */
body.cc-gc-archive-page .cc-gca-periods {
    background: var(--cc-gc-panel);
    border-color: var(--cc-gc-line);
}
body.cc-gc-archive-page .cc-gca-current,
body.cc-gc-archive-page .cc-gca-journal {
    background: radial-gradient(circle at 8% 20%, rgb(88 37 131 / 15%), transparent 18rem),
        linear-gradient(135deg, var(--cc-gc-panel), var(--cc-gc-night));
    border-color: var(--cc-gc-line);
}
body.cc-gc-archive-page .cc-gca-current::before {
    background: var(--cc-yellow);
}
body.cc-gc-archive-page :is(.cc-gca-current, .cc-gca-journal) h2,
body.cc-gc-archive-page .cc-gca-era__heading h2,
body.cc-gc-archive-page .cc-gca-card h3 {
    color: var(--cc-white);
    font-weight: 600;
    letter-spacing: -.02em;
}
body.cc-gc-archive-page .cc-gca-grid::before,
body.cc-gc-archive-page .cc-gca-card::before {
    background: rgb(249 185 0 / 38%);
}
body.cc-gc-archive-page .cc-gca-card::after {
    background: radial-gradient(circle at 13% 120%, rgb(88 37 131 / 17%), transparent 20rem),
        linear-gradient(145deg, var(--cc-gc-panel), var(--cc-gc-night));
    border-color: var(--cc-gc-line);
}
body.cc-gc-archive-page .cc-gca-year {
    color: var(--cc-black);
    background: var(--cc-yellow);
    box-shadow: none;
    font-weight: 600;
}
body.cc-gc-archive-page :is(.cc-gca-news-link, .cc-gca-video-link, .cc-gca-shop-link) {
    color: var(--cc-white);
    background: transparent;
    border-color: rgb(255 255 255 / 28%);
    border-radius: var(--cc-radius-button);
    box-shadow: none;
    font-weight: 600;
}
body.cc-gc-archive-page :is(.cc-gca-news-link, .cc-gca-video-link, .cc-gca-shop-link):is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-gc-panel);
    border-color: var(--cc-blue);
    box-shadow: none;
    transform: none;
}
body.cc-gc-archive-page .cc-gca-video-link__icon {
    color: var(--cc-white);
    background: var(--cc-purple);
    box-shadow: none;
}
body.cc-gc-archive-page .cc-gca-shop-link__icon {
    color: var(--cc-white);
    background: var(--cc-red);
    box-shadow: none;
}
body.cc-gc-archive-page :is(.cc-gca-video-link, .cc-gca-shop-link) strong,
body.cc-gc-archive-page :is(.cc-gca-video-link__arrow, .cc-gca-shop-link__arrow) {
    color: var(--cc-white);
    font-weight: 600;
}
body.cc-gc-archive-page :is(.cc-gca-video-link, .cc-gca-shop-link) small {
    color: var(--cc-gc-muted);
}
body.cc-gc-archive-page .cc-gca-sources a {
    color: var(--cc-blue);
}

/* Grand Choral journal — its photo/night hero remains unique, blog stays white. */
body.cc-gc-tag-page .site-grid {
    background: var(--cc-white);
}
body.cc-gc-tag-page :is(.cc-gc-year-nav, .cc-gc-blog-search, .cc-gc-story) {
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-gc-tag-page .cc-gc-year-nav {
    backdrop-filter: none;
}
body.cc-gc-tag-page .cc-gc-year-nav::before,
body.cc-gc-tag-page .cc-gc-blog-search__heading strong,
body.cc-gc-tag-page .cc-gc-story h2 {
    color: var(--cc-black);
    font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-year-nav .mod-menu a {
    --cc-inline-link: var(--cc-black);
    color: var(--cc-black);
    background: var(--cc-background-alt);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-button);
    font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-year-nav .mod-menu a:is(:hover, :focus-visible) {
    color: var(--cc-black);
    background: var(--cc-background-alt);
    border-color: var(--cc-border-control);
    transform: none;
}
body.cc-gc-tag-page .cc-gc-year-nav .mod-menu .current > a {
    --cc-inline-link: var(--cc-white);
    color: var(--cc-white);
    background: var(--cc-black);
    border-color: var(--cc-black);
    box-shadow: none;
}
body.cc-gc-tag-page .cc-gc-journal-hero,
body.cc-gc-tag-page .cc-gc-journal-hero__copy,
body.cc-gc-tag-page .cc-gc-story--lead {
    color: var(--cc-white);
    background: linear-gradient(105deg, var(--cc-gc-panel), var(--cc-gc-night));
    border-color: var(--cc-gc-line);
}
body.cc-gc-tag-page .cc-gc-journal-hero h1 {
    font-weight: 650;
    letter-spacing: -.035em;
}
body.cc-gc-tag-page .cc-gc-journal-hero__eyebrow {
    color: var(--cc-yellow);
    font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-journal-hero .com-tags-tag__description,
body.cc-gc-tag-page .cc-gc-journal-hero__visual small,
body.cc-gc-tag-page .cc-gc-story--lead .cc-gc-story__excerpt {
    color: var(--cc-gc-muted);
}
body.cc-gc-tag-page .cc-gc-journal-hero .com-tags-tag__description a {
    --cc-inline-link: var(--cc-white);
    text-decoration: none !important;
    color: var(--cc-white);
    background: transparent;
    border-color: rgb(255 255 255 / 55%);
    font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-journal-hero .com-tags-tag__description a:is(:hover, :focus-visible) {
    --cc-inline-link: var(--cc-black);
    color: var(--cc-black);
    background: var(--cc-white);
    border-color: var(--cc-white);
}
body.cc-gc-tag-page .cc-gc-journal-hero__visual span {
    color: var(--cc-black);
    background: var(--cc-yellow);
    font-weight: 600;
}
body.cc-gc-tag-page :is(.cc-gc-blog-search__heading span, .cc-gc-story__meta, .cc-gc-story__excerpt) {
    color: var(--cc-text-secondary);
    font-weight: 400;
}
/* Same search control as Explorer les actualités; native Tags POST/reset stay intact. */
body.cc-gc-tag-page .cc-gc-blog-search {
    display: grid; grid-template-columns: minmax(14rem,.36fr) minmax(0,1fr);
    align-items: center; gap: .875rem 2rem; padding: 1.5rem 1.75rem;
    background: #FFFFFF; border: 1px solid #DEE2E3; border-radius: 20px;
    box-shadow: 0 6px 20px rgba(22,20,18,.05);
}
body.cc-gc-tag-page .cc-gc-blog-search__heading { margin: 0; }
body.cc-gc-tag-page .cc-gc-blog-search__heading strong {
    color: #161412; font-size: 1.25rem; font-weight: 600; line-height: 1.35;
}
body.cc-gc-tag-page .cc-gc-blog-search__heading span {
    margin: .375rem 0 0; color: #625F5B; font-size: .75rem;
    font-weight: 400; letter-spacing: normal; line-height: 1.5; text-transform: none;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter {
    display: flex; align-items: center; gap: .5rem; min-width: 0; width: 100%;
    min-height: 4rem; padding: .375rem; margin: 0;
    background: #FFFFFF; border: 1px solid #AEB8BC; border-radius: 999px;
}
body.cc-gc-tag-page .cc-gc-blog-search__icon {
    flex: 0 0 auto; margin-left: .875rem; color: #0D7995; font-size: 1rem;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter input {
    flex: 1 1 0; width: auto; min-width: 0; min-height: 3rem; margin: 0;
    padding: .625rem .5rem; color: #161412; background: transparent;
    border: 0; border-radius: 0 !important; font-size: .9375rem; box-shadow: none;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter .btn-primary {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: auto; min-height: 3rem; margin: 0; padding: .75rem 1.5rem;
    color: #FFFFFF; background: #161412; border: 1px solid #161412;
    border-radius: 999px !important; font-size: .8125rem; font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter .btn-primary:is(:hover,:focus-visible) {
    color: #161412; background: #27B9D7; border-color: #27B9D7;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter:focus-within {
    border-color: #0D7995; outline: 2px solid #0D7995; outline-offset: 3px;
}
body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter input:focus { outline: none; box-shadow: none; }
body.cc-gc-tag-page .cc-gc-blog-search .cc-gc-blog-search__reset {
    grid-column: 2; justify-self: end; width: auto; padding: .375rem .75rem;
    color: #161412; background: #FFFFFF; border: 1px solid #CDD2D3;
    border-radius: 999px !important; font-size: .75rem; font-weight: 500;
}
body.cc-gc-tag-page .cc-gc-blog-search .cc-gc-blog-search__reset:hover { background: #F7F7F6; border-color: #0D7995; }
body.cc-gc-tag-page .cc-gc-blog-search button:focus-visible { outline: 2px solid #0D7995; outline-offset: 3px; }
@media (max-width: 991.98px) {
    body.cc-gc-tag-page .cc-gc-blog-search { grid-template-columns: minmax(0,1fr); }
    body.cc-gc-tag-page .cc-gc-blog-search .cc-gc-blog-search__reset { grid-column: 1; }
}
@media (max-width: 767.98px) {
    body.cc-gc-tag-page .cc-gc-blog-search { padding: 1.25rem 1rem; }
    body.cc-gc-tag-page .cc-gc-blog-search__heading strong { font-size: 1.125rem; }
    body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter { min-height: 3.5rem; padding: .25rem; }
    body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter input { min-height: 2.75rem; font-size: 1rem; }
    body.cc-gc-tag-page .cc-gc-blog-search .com-tags-tags__filter .btn-primary { min-height: 2.75rem; padding-inline: 1rem; font-size: .75rem; }
}
body.cc-gc-tag-page .cc-gc-story:is(:hover, :focus-within) {
    border-color: var(--cc-border-control);
    box-shadow: var(--cc-shadow-soft);
    transform: none;
}
body.cc-gc-tag-page .cc-gc-story h2 a:is(:hover, :focus-visible) {
    color: var(--cc-blue-accessible);
}
body.cc-gc-tag-page .cc-gc-story__read {
    color: var(--cc-blue-accessible);
    border-color: var(--cc-border);
    font-weight: 600;
}
body.cc-gc-tag-page .cc-gc-story--lead h2,
body.cc-gc-tag-page .cc-gc-story--lead h2 a:is(:hover, :focus-visible) {
    color: var(--cc-white);
}
body.cc-gc-tag-page .cc-gc-story--lead .cc-gc-story__meta {
    color: var(--cc-gc-muted);
}
body.cc-gc-tag-page .cc-gc-story--lead .cc-gc-story__read {
    color: var(--cc-black);
    background: var(--cc-yellow);
}
body.cc-gc-tag-page .cc-gc-story--lead .cc-gc-story__read:is(:hover, :focus-visible) {
    background: var(--cc-white);
}
body.cc-gc-tag-page .com-tags-tag__pagination {
    border-color: var(--cc-border);
}
body.cc-gc-tag-page .com-tags-tag__pagination .page-link {
    color: var(--cc-black);
    background: var(--cc-white);
    border-color: var(--cc-border);
    border-radius: var(--cc-radius-button);
}
body.cc-gc-tag-page .com-tags-tag__pagination .active .page-link,
body.cc-gc-tag-page .com-tags-tag__pagination .page-link:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
}
/* Grand Choral: one outer alignment and spacing rhythm, regardless of module position. */
body.cc-event-grand-choral-page .container-component > .cc-module-row {
    box-sizing: border-box;
    width: min(calc(100% - clamp(1.25rem, 4vw, 4rem)), 92rem);
    max-width: 92rem;
    margin: 0 auto;
    min-width: 0;
}
body.cc-event-grand-choral-page .container-component > .cc-module-row + .cc-module-row {
    margin-top: 40px;
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-01"] {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-01"] > .no-card {
    width: 100%;
    min-width: 0;
    margin: 0;
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-01"] :is(.cc-gc-hero,.cc-gc-current,.cc-gc-signup) {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-04"]:has(> .no-card:only-child) {
    grid-template-columns: minmax(0,1fr);
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-06"] {
    display: block;
}
body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-06"] .cc-gc-archive-promo {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    margin: 0;
}
body.cc-event-grand-choral-page .cc-gc-finale { padding-top: 0; }
@media (max-width: 767.98px) {
    body.cc-event-grand-choral-page .container-component > .cc-module-row {
        width: calc(100% - 1.25rem);
    }
    body.cc-event-grand-choral-page .container-component > .cc-module-row + .cc-module-row {
        margin-top: 28px;
    }
    body.cc-event-grand-choral-page .container-component > [data-position="cc-main-top-01"] {
        gap: 24px;
    }
}
