/*
 * Les Archers de la Tublerie — Halloween 2026
 * Seasonal presentation layer. Requires body.halloween-theme and site.css.
 * No site settings, content, photography or administration styles are changed.
 */

body.halloween-theme {
    --green-950: #171116;
    --green-900: #241b23;
    --green-800: #3b2631;
    --green-700: #f5a15c;
    --green-500: #d28b58;
    --sage: #f0a66c;
    --cream: #21191e;
    --paper: #19141a;
    --ink: #f7eddf;
    --muted: #c3b7b2;
    --gold: #edb96f;
    --white: #fff7ec;
    --shadow: 0 24px 60px rgba(0, 0, 0, .22);
    --halloween-orange: #f39a54;
    --halloween-border: rgba(239, 184, 133, .19);
    color-scheme: dark;
    background: var(--paper);
}

.halloween-theme ::selection { color: #171116; background: #f5b87b; }
.halloween-theme a:focus-visible,
.halloween-theme button:focus-visible,
.halloween-theme [tabindex]:focus-visible {
    outline: 3px solid #f6b66f;
    outline-offset: 4px;
}
.halloween-theme .announcement {
    color: #27180f;
    background: #edb96f;
    border-bottom: 1px solid #f8d8a0;
}
.halloween-theme .announcement-dot {
    background: #63351f;
    box-shadow: 0 0 0 4px rgba(99, 53, 31, .13);
}
.halloween-theme .site-header {
    color: var(--ink);
    background: rgba(22, 17, 22, .95);
    border-color: var(--halloween-border);
}
.halloween-theme .header-inner { min-height: 82px; }
.halloween-theme .brand strong { color: #edb96f; }
.halloween-theme .brand img { filter: drop-shadow(0 2px 8px rgba(237, 185, 111, .1)); }
.halloween-theme .main-nav a { color: #e7ddd3; }
.halloween-theme .main-nav .nav-contact {
    color: #24170f;
    background: #f1a266;
}
.halloween-theme .main-nav .nav-contact:hover { background: #ffbd82; }
.halloween-theme .header-facebook {
    color: var(--ink);
    background: #2f2630;
    border: 1px solid var(--halloween-border);
    box-shadow: none;
}
.halloween-theme .header-facebook:hover,
.halloween-theme .header-facebook:focus-visible {
    color: #20151a;
    background: #edb96f;
    box-shadow: 0 6px 22px rgba(237, 185, 111, .15);
}
.halloween-theme .menu-toggle > span:not(.sr-only) { background: #f5dec7; }

/* Moonlit archery: keep the club crest and its original colours. */
.halloween-theme .hero {
    min-height: 740px;
    align-items: start;
    background:
        radial-gradient(ellipse at 83% 42%, rgba(140, 71, 52, .21), transparent 42%),
        radial-gradient(ellipse at 20% 110%, rgba(123, 65, 89, .15), transparent 54%),
        linear-gradient(120deg, #151116, #241923 74%, #251b20);
    border-bottom: 1px solid var(--halloween-border);
}
.halloween-theme .hero::before {
    opacity: .45;
    background-image:
        radial-gradient(circle at 8% 21%, #dfb994 0 1px, transparent 1.8px),
        radial-gradient(circle at 67% 12%, #dfb994 0 1px, transparent 1.8px),
        radial-gradient(circle at 95% 60%, #dfb994 0 1px, transparent 1.8px),
        radial-gradient(circle at 42% 85%, #dfb994 0 1px, transparent 1.8px),
        radial-gradient(circle at 50% 20%, #dfb994 0 1px, transparent 1.8px);
    background-size: auto;
    mask-image: none;
    pointer-events: none;
}
.halloween-theme .hero::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(180px, 22vw, 330px);
    aspect-ratio: 1;
    opacity: .24;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300' fill='none' stroke='%23ddb78f' stroke-width='.8'%3E%3Cpath d='M300 0H0M300 0 22 114M300 0 89 212M300 0 184 279M300 0V300M246 0Q253 12 250 21Q259 32 260 40Q277 39 279 51Q292 49 300 56M189 0Q201 20 196 43Q215 49 220 80Q242 83 255 108Q280 100 300 113M126 0Q145 34 136 67Q170 91 176 125Q213 134 230 168Q269 157 300 178M62 0Q84 45 79 91Q120 118 132 170Q177 171 209 221Q258 208 300 238M0 0Q29 52 22 114Q77 153 89 212Q147 220 184 279Q245 261 300 300'/%3E%3C/svg%3E") no-repeat center / contain;
    pointer-events: none;
}
.halloween-theme .hero-grid {
    grid-template-columns: 1.12fr .88fr;
    gap: 46px;
    padding-block: 48px 108px;
}
.halloween-theme .hero-copy { align-self: start; }
.halloween-theme .halloween-season {
    width: fit-content;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: 32px;
    padding: 7px 12px;
    color: #f6ba87;
    background: rgba(240, 153, 83, .08);
    border: 1px solid rgba(240, 153, 83, .3);
    border-radius: 5px;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.5;
    letter-spacing: .03em;
}
.halloween-theme .halloween-season-mark { color: #f0a264; font-size: 17px; line-height: 1; }
.halloween-theme .halloween-season-date {
    padding-left: 9px;
    color: #d4bba9;
    border-left: 1px solid rgba(240, 153, 83, .3);
    font-size: 10px;
    font-weight: 500;
}
.halloween-theme .hero-copy .eyebrow { color: #c9b3a4; font-size: 10px; letter-spacing: .22em; }
.halloween-theme .hero-copy h1 {
    margin-block: 19px 24px;
    color: #fff0dc;
    font-size: clamp(64px, 7.2vw, 102px);
    line-height: .98;
    letter-spacing: -.055em;
}
.halloween-theme .hero-copy h1 em { color: #f0a66c; }
.halloween-theme .hero-copy > p { max-width: 430px; color: #c7b9b5; font-size: 19px; line-height: 1.65; }
.halloween-theme .hero-mark { min-height: 460px; }
.halloween-theme .hero-mark::before {
    content: "";
    position: absolute;
    width: min(360px, 88%);
    aspect-ratio: 1;
    border: 1px solid rgba(247, 207, 151, .3);
    border-radius: 50%;
    background:
        radial-gradient(ellipse at 32% 26%, rgba(255, 227, 177, .32), transparent 18%),
        radial-gradient(ellipse at 72% 73%, rgba(91, 41, 28, .22), transparent 18%),
        radial-gradient(ellipse at 22% 66%, rgba(91, 41, 28, .18), transparent 13%),
        radial-gradient(circle at 38% 33%, #dba86f, #b67c4d 70%, #85513b);
    box-shadow: 0 0 75px rgba(245, 174, 91, .11), 0 0 150px rgba(217, 115, 70, .08), inset -16px -9px 35px rgba(65, 29, 23, .22);
}
.halloween-theme .hero-mark img {
    width: min(242px, 56%);
    max-height: 390px;
    filter: drop-shadow(0 22px 26px rgba(12, 8, 13, .48));
}
.halloween-theme .target-rings { width: min(440px, 105%); border-color: rgba(239, 192, 141, .23); }
.halloween-theme .target-rings span { border-color: rgba(239, 192, 141, .17); }
.halloween-theme .target-rings span:nth-child(1) { inset: -8%; border-style: dashed; opacity: .7; }
.halloween-theme .target-rings span:nth-child(2) { inset: -17%; border-color: rgba(239, 192, 141, .08); }
.halloween-theme .target-rings span:nth-child(3) { inset: 4%; background: transparent; border-color: rgba(239, 192, 141, .14); }
.halloween-theme .hero-orbit { border-color: rgba(239, 192, 141, .1); }
.halloween-theme .scroll-cue { background: rgba(27, 19, 25, .8); border-color: rgba(237, 185, 111, .6); }
.halloween-theme .scroll-cue span { background: #edb96f; }

/* Warm surfaces and clear seasonal actions. */
.halloween-theme .eyebrow { color: #f0ad75; }
.halloween-theme .eyebrow-light { color: #edb96f; }
.halloween-theme .button { min-height: 50px; }
.halloween-theme .button-primary,
.halloween-theme .button-light {
    color: #281a12;
    background: #f3a263;
    border-color: #f3a263;
    box-shadow: 0 9px 25px rgba(231, 123, 54, .08);
}
.halloween-theme .button-primary:hover,
.halloween-theme .button-light:hover { background: #ffc18d; border-color: #ffc18d; box-shadow: 0 12px 28px rgba(231, 123, 54, .14); }
.halloween-theme .button-outline-light { color: #f3deca; background: rgba(255, 222, 190, .03); border-color: rgba(239, 184, 133, .35); }
.halloween-theme .button-outline-light:hover { background: rgba(255, 222, 190, .09); }
.halloween-theme .back-to-top { color: #27190f; background: #edb96f; border-color: #f7d8af; box-shadow: 0 10px 30px rgba(0, 0, 0, .28); }
.halloween-theme .back-to-top:hover,
.halloween-theme .back-to-top:focus-visible { background: #ffd3a1; }
.halloween-theme .section-cream { background: #21191e; }
.halloween-theme .section-heading h2,
.halloween-theme .contact-copy h2,
.halloween-theme .committee-heading h2 { color: #f9ecda; }
.halloween-theme .section-heading-light p { color: #c9bcb6; }
.halloween-theme .featured-event-card {
    background: radial-gradient(circle at 84% 18%, rgba(217, 135, 74, .32), transparent 38%), linear-gradient(135deg, #593342, #211921);
    border: 1px solid var(--halloween-border);
    box-shadow: 0 15px 34px rgba(0, 0, 0, .2);
}
.halloween-theme .featured-event-card:hover { box-shadow: 0 21px 42px rgba(0, 0, 0, .3); }
.halloween-theme .featured-event-shade { background: linear-gradient(to top, rgba(22, 14, 21, .96), rgba(22, 14, 21, .18) 80%); }
.halloween-theme .featured-event-date { color: #2a1911; background: #f0b478; }

/* Calendar: colours distinguish club events from the external agenda. */
.halloween-theme .monthly-agenda { border-color: var(--halloween-border); }
.halloween-theme .monthly-agenda-toolbar { background: #30222c; border-bottom: 1px solid var(--halloween-border); }
.halloween-theme .monthly-agenda-today { color: #281a12; background: #efd2ac; }
.halloween-theme .monthly-agenda-legend { color: #d1c1b7; background: #251d23; border-color: var(--halloween-border); }
.halloween-theme .monthly-agenda-legend-admin { background: #f0a366; }
.halloween-theme .monthly-agenda-legend-google { background: #b3a5e2; }
.halloween-theme .monthly-agenda-scroll { scrollbar-color: #8d6450 #251d23; }
.halloween-theme .monthly-agenda-weekdays { color: #ddbda2; background: #211a21; border-color: var(--halloween-border); box-shadow: 0 5px 12px rgba(0, 0, 0, .16); }
.halloween-theme .monthly-agenda-grid { border-color: var(--halloween-border); }
.halloween-theme .monthly-agenda-day { color: #e6d6c6; background: #1d181e; border-color: rgba(239, 184, 133, .13); }
.halloween-theme .monthly-agenda-day:nth-child(7n),
.halloween-theme .monthly-agenda-day:nth-child(7n - 1) { background: #261e26; }
.halloween-theme .monthly-agenda-day.is-outside { color: #b4a4a0; background: #181318; }
.halloween-theme .monthly-agenda-day.is-today { background: #302129; }
.halloween-theme .monthly-agenda-day.is-today .monthly-agenda-day-number { color: #281a12; background: #f4aa6c; box-shadow: 0 0 0 3px rgba(244, 170, 108, .14); }
.halloween-theme .monthly-agenda-month-marker { color: #f0ad75; }
.halloween-theme .monthly-agenda-event-admin { color: #ffcea7; background: #482d2b; border-left-color: #f3a164; }
.halloween-theme .monthly-agenda-event-google { color: #ded5ff; background: #342d47; border-left-color: #baa6ef; }
.halloween-theme .monthly-agenda-day.is-outside .monthly-agenda-event { opacity: .8; }
.halloween-theme .event-source-admin { color: #ffcea7; background: #482d2b; border-color: #744a38; }
.halloween-theme .event-source-google { color: #ded5ff; background: #342d47; border-color: #62547e; }

.halloween-theme .documents-section {
    background: radial-gradient(ellipse at 0 20%, rgba(105, 52, 69, .17), transparent 55%), #181319;
    border-block: 1px solid var(--halloween-border);
}
.halloween-theme .document-card { background: #251c24; border-color: var(--halloween-border); }
.halloween-theme .document-card:hover { background: #33232d; border-color: rgba(239, 184, 133, .4); }
.halloween-theme .document-card::after { border-color: rgba(239, 184, 133, .14); }
.halloween-theme .document-number { color: #efb078; }
.halloween-theme .document-action { color: #ccbdb4; }
.halloween-theme .document-icon { background: #f6e7d1; }
.halloween-theme .document-icon::before { background: linear-gradient(225deg, #251c24 49%, #c7a47b 50%); }
.halloween-theme .document-icon span { color: #291b13; background: #efa266; }
.halloween-theme .documents-contact-banner { color: #f4dec7; background: #34242a; border-color: rgba(239, 184, 133, .3); }
.halloween-theme .documents-contact-banner p span { color: #cbbab0; }
.halloween-theme .documents-contact-icon { color: #281a12; background: #edb96f; }

.halloween-theme .gallery-section { background: #21191e; }
.halloween-theme .gallery-filter { color: #e8c8ac; border-color: rgba(239, 184, 133, .28); }
.halloween-theme .gallery-filter:hover { color: #fff0dc; border-color: #e8ab74; }
.halloween-theme .gallery-filter.is-active { color: #281a12; background: #f2a266; border-color: #f2a266; }
.halloween-theme .gallery-item,
.halloween-theme .gallery-complete-item { background: #30232d; }
.halloween-theme .gallery-zoom { color: #f8debe; background: rgba(34, 22, 29, .88); border-color: rgba(239, 184, 133, .45); }
.halloween-theme .gallery-complete-button span { color: #392317; background: #ffe1bf; }
.halloween-theme .locations-section { background: #181319; border-block: 1px solid var(--halloween-border); }
.halloween-theme .location-card { border: 1px solid var(--halloween-border); }
.halloween-theme .location-card::after { background: linear-gradient(to top, rgba(23, 14, 23, .97), rgba(23, 14, 23, .03) 80%); }
.halloween-theme .season { color: #f5bf89; }
.halloween-theme .location-overlay a { color: #ffd1a6; text-underline-offset: 5px; }
.halloween-theme .location-overlay a:hover { text-decoration: underline; }

/* Dark form fields keep text, attachments and focus indicators readable. */
.halloween-theme .contact-section { background: #241b21; }
.halloween-theme .contact-form-wrap { background: #19141a; border: 1px solid var(--halloween-border); }
.halloween-theme .contact-form label { color: #eadbce; }
.halloween-theme .contact-form input,
.halloween-theme .contact-form textarea { color: #f7eddf; background: #282029; border-color: rgba(239, 184, 133, .24); }
.halloween-theme .contact-form input::placeholder,
.halloween-theme .contact-form textarea::placeholder { color: #b8a8a4; }
.halloween-theme .contact-form input:focus,
.halloween-theme .contact-form textarea:focus { border-color: #f0ad75; box-shadow: 0 0 0 4px rgba(240, 173, 117, .14); }
.halloween-theme .file-field input::file-selector-button { margin-right: 10px; padding: 7px 10px; color: #f8ddc2; background: #48303a; border: 1px solid #79513e; border-radius: 6px; cursor: pointer; }
.halloween-theme .contact-email { color: #f3b07a; overflow-wrap: anywhere; }
.halloween-theme .form-notice-success { color: #c9ebd5; background: #243b30; border: 1px solid #4f7962; }
.halloween-theme .form-notice-error { color: #ffd0cb; background: #48272d; border: 1px solid #8e4c55; }
.halloween-theme .member-portrait { background: #34232d; box-shadow: 0 0 0 1px rgba(239, 184, 133, .4), 0 0 0 7px rgba(239, 184, 133, .035); }
.halloween-theme .member-card p { color: #f0ad75; }
.halloween-theme .site-footer { color: #c2aea5; background: #120f14; border-top: 1px solid var(--halloween-border); }
.halloween-theme .footer-links a:hover,
.halloween-theme .footer-links button:hover { color: #ffd0a7; }

/* Dialogs are part of the theme, including the announcement popup. */
.halloween-theme .gallery-dialog::backdrop,
.halloween-theme .event-dialog::backdrop,
.halloween-theme .site-popup::backdrop { background: rgba(15, 9, 16, .83); }
.halloween-theme .lightbox::backdrop { background: rgba(12, 8, 14, .94); }
.halloween-theme .gallery-dialog-card,
.halloween-theme .event-dialog-card,
.halloween-theme .site-popup-card { color: #f7eddf; background: #211921; border: 1px solid rgba(239, 184, 133, .3); border-radius: 20px; }
.halloween-theme .gallery-dialog-heading { background: #2c202a; border-color: var(--halloween-border); }
.halloween-theme .gallery-dialog-filters { background: rgba(33, 25, 33, .97); border-color: var(--halloween-border); }
.halloween-theme .gallery-dialog-close,
.halloween-theme .event-dialog-close,
.halloween-theme .lightbox-close,
.halloween-theme .lightbox-nav { color: #f9dbc0; background: #39252e; border: 1px solid rgba(239, 184, 133, .35); }
.halloween-theme .gallery-dialog-close:hover,
.halloween-theme .event-dialog-close:hover,
.halloween-theme .lightbox-close:hover,
.halloween-theme .lightbox-nav:hover { color: #25180f; background: #edb96f; }
.halloween-theme .event-dialog-meta p { background: #33232e; }
.halloween-theme .site-popup { color: #e3d2c4; }
.halloween-theme .site-popup-content h2 { color: #f7e7d1; }
.halloween-theme .site-popup-message { color: #d0beb5; }
.halloween-theme .site-popup-close { top: 10px; right: 10px; width: 40px; height: 40px; color: #281a12; background: #f1a266; border-radius: 50%; }
.halloween-theme .site-popup-close:hover,
.halloween-theme .site-popup-close:focus-visible { background: #ffd0a0; }
.halloween-theme .analytics-consent { background: #281d27; border-color: rgba(239, 184, 133, .4); box-shadow: 0 24px 70px rgba(0, 0, 0, .4); }
.halloween-theme .analytics-consent-refuse { color: #f2d7bd; background: #3c2933; border-color: #76513e; }

@media (max-width: 1050px) {
    .halloween-theme .hero-grid { gap: 28px; }
    .halloween-theme .hero-copy h1 { font-size: clamp(62px, 7.2vw, 90px); }
    .halloween-theme .hero-mark img { width: min(218px, 62%); }
    .halloween-theme .main-nav { gap: 16px; }
}

@media (max-width: 820px) {
    .halloween-theme .header-inner { min-height: 68px; }
    .halloween-theme .main-nav { gap: 0; background: #1b151d; transform: none; opacity: 0; transition: opacity .25s ease, visibility .25s ease; }
    .halloween-theme .main-nav.open { opacity: 1; }
    .halloween-theme .main-nav a { border-bottom-color: var(--halloween-border); }
    .halloween-theme .hero { min-height: auto; }
    .halloween-theme .hero-grid { grid-template-columns: 1fr; gap: 38px; padding-block: 24px 62px; }
    .halloween-theme .hero-copy { max-width: 660px; }
    .halloween-theme .hero-copy h1 { font-size: clamp(61px, 11vw, 88px); }
    .halloween-theme .hero-copy > p { max-width: 510px; }
    .halloween-theme .halloween-season { margin-bottom: 26px; }
    .halloween-theme .hero-mark { position: relative; z-index: auto; right: auto; bottom: auto; min-height: 330px; width: min(390px, 90%); margin-inline: auto; opacity: 1; }
    .halloween-theme .hero-mark::before { width: 265px; max-width: 86%; }
    .halloween-theme .hero-mark img { width: 174px; max-height: 290px; }
    .halloween-theme .target-rings { width: 300px; max-width: 96%; }
    .halloween-theme .hero::after { width: 190px; opacity: .18; }
}

@media (max-width: 560px) {
    .halloween-theme .hero-grid { padding-top: 20px; gap: 24px; }
    .halloween-theme .hero-copy h1 { font-size: clamp(51px, 14vw, 75px); line-height: 1.03; }
    .halloween-theme .hero-copy > p { font-size: 17px; }
    .halloween-theme .hero-copy .eyebrow { font-size: 9px; letter-spacing: .13em; }
    .halloween-theme .halloween-season { gap: 7px; font-size: 10px; padding-inline: 9px; }
    .halloween-theme .halloween-season-date { font-size: 9px; padding-left: 7px; }
    .halloween-theme .hero-mark { min-height: 286px; }
    .halloween-theme .hero-mark::before { width: 226px; }
    .halloween-theme .hero-mark img { width: 148px; max-height: 260px; }
    .halloween-theme .target-rings { width: 258px; }
    .halloween-theme .site-popup-card { border-radius: 15px; }
}

@media print {
    body.halloween-theme { color-scheme: light; --ink: #21191e; --muted: #544c49; --paper: #fff; --cream: #fff; color: #21191e; background: #fff; }
    .halloween-theme,
    .halloween-theme * { color: #21191e !important; background: transparent !important; box-shadow: none !important; text-shadow: none !important; }
    .halloween-theme .site-header { position: static; }
    .halloween-theme .reveal { opacity: 1; transform: none; }
    .halloween-theme .hero::before,
    .halloween-theme .hero::after,
    .halloween-theme .hero-mark::before,
    .halloween-theme .target-rings,
    .halloween-theme .hero-orbit,
    .halloween-theme .scroll-cue,
    .halloween-theme .back-to-top { display: none; }
}
