/* Public themes are screen-only: the existing clean PDF/print style is preserved. */
@media screen {
    :root[data-site-theme="mediterraneo"] {
        --gge-ink: #123e54; --gge-ink-soft: #245b70; --gge-paper: #e6f3f5; --gge-paper-light: #f7fcfd;
        --gge-terracotta: #087988; --gge-terracotta-dark: #05606d; --gge-sage: #237789; --gge-gold: #a46b27;
        --gge-graphite: #253f4b; --gge-stone: #c5dfe4; --gge-serif: "Segoe UI", ui-sans-serif, system-ui, sans-serif;
        --theme-header: #f7fcfd; --theme-surface: #fff; --theme-muted: #4b626c; --theme-footer: #0b2e40;
        --theme-soft: #dcedf0; --theme-light-accent: #b5e5e9; --theme-radius: 1.35rem;
    }
    :root[data-site-theme="editoriale"] {
        --gge-ink: #242424; --gge-ink-soft: #373737; --gge-paper: #f0eeeb; --gge-paper-light: #fff;
        --gge-terracotta: #9b2942; --gge-terracotta-dark: #7b1730; --gge-sage: #606863; --gge-gold: #9a713b;
        --gge-graphite: #303030; --gge-stone: #c7c4c0; --gge-serif: Georgia, "Times New Roman", serif;
        --theme-header: #fff; --theme-surface: #fff; --theme-muted: #606060; --theme-footer: #1b1b1b;
        --theme-soft: #f4e5e9; --theme-light-accent: #f0bac7; --theme-radius: 0;
    }
    :root[data-site-theme="bosco"] {
        --gge-ink: #183d31; --gge-ink-soft: #2b5544; --gge-paper: #e9efe5; --gge-paper-light: #f8fbf5;
        --gge-terracotta: #4c7040; --gge-terracotta-dark: #35552c; --gge-sage: #5a775b; --gge-gold: #a57532;
        --gge-graphite: #2f4033; --gge-stone: #cbd6c3;
        --theme-header: #f8fbf5; --theme-surface: #fff; --theme-muted: #54614f; --theme-footer: #112d24;
        --theme-soft: #e0ebd7; --theme-light-accent: #d8dfa9; --theme-radius: .9rem;
    }
    :root[data-site-theme="notte"] {
        --gge-ink: #e5edf7; --gge-ink-soft: #b8cae0; --gge-paper: #18283d; --gge-paper-light: #101a2a;
        --gge-terracotta: #e3b669; --gge-terracotta-dark: #f3cb85; --gge-sage: #517a80; --gge-gold: #b38139;
        --gge-graphite: #d7e2ee; --gge-stone: #384d65;
        --theme-header: #101a2a; --theme-surface: #1b2c43; --theme-muted: #b3c1d2; --theme-footer: #0a121f;
        --theme-soft: #293d55; --theme-light-accent: #efd09c; --theme-radius: .65rem;
    }
    :root[data-site-theme="natale"] {
        --gge-ink: #681526; --gge-ink-soft: #8f2336; --gge-paper: #fff0ed; --gge-paper-light: #fffaf6;
        --gge-terracotta: #b51f32; --gge-terracotta-dark: #8d1728; --gge-sage: #38614c; --gge-gold: #a4792d;
        --gge-graphite: #443234; --gge-stone: #e5c6bf;
        --theme-header: #9b1729; --theme-surface: #fff; --theme-muted: #715155; --theme-footer: #570d1b;
        --theme-soft: #f8dedc; --theme-light-accent: #ffe2a8; --theme-radius: .6rem;
    }
    :root[data-site-theme="pasqua"] {
        --gge-ink: #563774; --gge-ink-soft: #6b4d86; --gge-paper: #f0e9f6; --gge-paper-light: #fffdf8;
        --gge-terracotta: #775397; --gge-terracotta-dark: #62417e; --gge-sage: #597743; --gge-gold: #a47b24;
        --gge-graphite: #443c4b; --gge-stone: #d9cce2;
        --theme-header: #fffdf8; --theme-surface: #fff; --theme-muted: #665c6c; --theme-footer: #39244e;
        --theme-soft: #eadff2; --theme-light-accent: #ead0f3; --theme-radius: 1.5rem;
    }

    :root[data-site-theme]:not([data-site-theme="originale"]) {
        --bs-body-color: var(--gge-graphite); --bs-body-bg: var(--gge-paper-light);
        --bs-border-color: var(--gge-stone); --bs-link-color: var(--gge-terracotta-dark);
        --bs-link-hover-color: var(--gge-terracotta); --bs-heading-color: var(--gge-ink);
    }
    /* Keep the original theme untouched; shared overrides cover hard-coded surfaces. */
    [data-site-theme]:not([data-site-theme="originale"]) .site-header { background: var(--theme-header); border-color: var(--gge-stone); }
    [data-site-theme]:not([data-site-theme="originale"]) :where(.navbar-nav .nav-link, .brand-copy small, .hero-lead, .featured-story > p, .signature, .article-subtitle, .article-audio-status, .article-audio-note, .quote-attribution, .small-breadcrumb, .story-meta, .archive-card > p, .prose-card p, .prose-card li, .not-found p, .article-attachment-image p, .article-attachment-link-copy small, .article-attachment-link-copy > span, .rail-label, .card-footer-line) { color: var(--theme-muted); }
    [data-site-theme]:not([data-site-theme="originale"]) .section-heading > div:last-child p,
    [data-site-theme]:not([data-site-theme="originale"]) .principle-card > p:not(.card-number),
    [data-site-theme]:not([data-site-theme="originale"]) .open-letter > p:not(.eyebrow):not(.letter-lead),
    [data-site-theme]:not([data-site-theme="originale"]) .page-hero > .container-xl > p:last-child { color: var(--theme-muted); }
    [data-site-theme]:not([data-site-theme="originale"]) .navbar-nav .nav-link:is(:hover, :focus, .active) { color: var(--gge-ink); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.principle-card, .archive-card, .archive-filters, .article-inline-image, .article-attachment, .article-attachment-image-frame, .prose-card) { background: var(--theme-surface); border-color: var(--gge-stone); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.card-footer-line, .policy-date, .archive-filters .form-control, .archive-filters .form-select, .archive-filters .input-group-text) { border-color: var(--gge-stone); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.principle-card, .featured-story, .story-card, .archive-card, .dedication-card) { border-radius: var(--theme-radius); }
    [data-site-theme]:not([data-site-theme="originale"]) .principle-icon { background: var(--theme-soft); color: var(--gge-terracotta-dark); }
    [data-site-theme]:not([data-site-theme="originale"]) .principle-icon.sage { color: var(--gge-sage); }
    [data-site-theme]:not([data-site-theme="originale"]) .principle-icon.blue { color: var(--gge-ink); }
    [data-site-theme]:not([data-site-theme="originale"]) .principle-icon.gold { color: var(--gge-gold); }
    [data-site-theme]:not([data-site-theme="originale"]) .site-footer { background: var(--theme-footer); }
    [data-site-theme]:not([data-site-theme="originale"]) .site-footer .brand-mark span { border-color: var(--theme-footer); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.eyebrow.light, .quote-glyph, .dedication-kicker, .card-rule, .story-card .story-meta span) { color: var(--theme-light-accent); }
    [data-site-theme]:not([data-site-theme="originale"]) .featured-progress-fill { background: var(--theme-light-accent); }
    [data-site-theme]:not([data-site-theme="originale"]) .story-card .story-meta { color: #d1d7df; }
    [data-site-theme]:not([data-site-theme="originale"]) .open-letter { border-radius: var(--theme-radius); }
    [data-site-theme]:not([data-site-theme="originale"]) .open-letter::before,
    [data-site-theme]:not([data-site-theme="originale"]) .open-letter::after { background: var(--gge-stone); }
    [data-site-theme]:not([data-site-theme="originale"]) .article-body-copy { color: var(--gge-graphite); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.article-inline-image figcaption, .article-attachment figcaption) { color: var(--theme-muted); border-color: var(--gge-stone); }
    [data-site-theme]:not([data-site-theme="originale"]) .article-meta-line { color: var(--theme-muted); }
    [data-site-theme]:not([data-site-theme="originale"]) .article-meta-line a { color: var(--gge-terracotta-dark); background: var(--theme-soft); }
    [data-site-theme]:not([data-site-theme="originale"]) :is(.article-attachment-link-icon, .topic-hero-icon) { background: var(--theme-soft); color: var(--gge-terracotta-dark); }

    /* Mediterranean: open, contemporary typography and rounded controls. */
    [data-site-theme="mediterraneo"] :is(.legacy-hero, .article-header, .page-hero) { background: linear-gradient(120deg, #f7fcfd, #d8eef3); }
    [data-site-theme="mediterraneo"] .legacy-hero { border-bottom: .45rem solid #087988; }
    [data-site-theme="mediterraneo"] .legacy-hero::before { display: none; }
    [data-site-theme="mediterraneo"] :is(.legacy-hero h1, .article-header h1) { font-weight: 750; letter-spacing: -.045em; }
    [data-site-theme="mediterraneo"] :is(.btn, .principle-icon) { border-radius: 999px; }
    [data-site-theme="mediterraneo"] .article-body-copy { font-family: Georgia, serif; }
    [data-site-theme="mediterraneo"] .article-body-copy > p:first-child::first-letter { float: none; font: inherit; margin: 0; }

    /* Editorial: newspaper rules, square cards and a deliberately restrained header. */
    [data-site-theme="editoriale"] .site-header { border-block: .3rem solid #242424; }
    [data-site-theme="editoriale"] .legacy-hero { padding-block: clamp(2.5rem, 4vw, 4rem); background: #fff; border-bottom: 2px solid #242424; }
    [data-site-theme="editoriale"] .legacy-hero::before,
    [data-site-theme="editoriale"] .hero-thread { display: none; }
    [data-site-theme="editoriale"] :is(.legacy-hero h1, .article-header h1) { font-weight: 700; }
    [data-site-theme="editoriale"] :is(.btn, .principle-icon, .open-letter),
    [data-site-theme="editoriale"] .dedication-card::after { border-radius: 0; }
    [data-site-theme="editoriale"] :is(.principle-card, .archive-card) { border-top: 3px solid #242424; box-shadow: none; }
    [data-site-theme="editoriale"] .article-header { background: #fff; border-bottom: 2px solid #242424; }

    /* Woodland: a quiet framed page, forest-green accents and generous line spacing. */
    [data-site-theme="bosco"] .legacy-hero { background: linear-gradient(140deg, #e9efe5, #f8fbf5); }
    [data-site-theme="bosco"] .hero-thread { border-color: #9ab392; }
    :root[data-site-theme="bosco"] .dedication-card { border-radius: 3rem .9rem 3rem .9rem; }
    [data-site-theme="bosco"] .principle-card { border-bottom: .3rem solid #597743; }
    [data-site-theme="bosco"] .open-letter { outline: 1px solid #b5c6a8; outline-offset: -.8rem; }
    [data-site-theme="bosco"] .article-body-copy { line-height: 1.95; }
    [data-site-theme="bosco"] .article-body-copy blockquote { border-radius: 0 1.4rem 1.4rem 0; }

    /* Night: explicit dark surfaces and readable contrast throughout the public site. */
    [data-site-theme="notte"] :is(.dedication-card, .featured-slides > .carousel-item, .latest-section, .article-end) { background: #20344c; }
    [data-site-theme="notte"] .legacy-hero { background: linear-gradient(135deg, #18283d, #101a2a); }
    [data-site-theme="notte"] .site-language-switch { background: #20344c; }
    [data-site-theme="notte"] .site-language-option.active { color: #101a2a; }
    [data-site-theme="notte"] .brand-mark span:first-child { background: #426583; }
    [data-site-theme="notte"] .gge-orbit span:first-child { background: #426583; }
    [data-site-theme="notte"] .gge-orbit span:nth-child(3) { color: #101a2a; }
    [data-site-theme="notte"] :is(.brand-mark span:last-child, .family-monogram span:first-child) { color: #101a2a; }
    [data-site-theme="notte"] .btn-primary { --bs-btn-color: #101a2a; --bs-btn-hover-color: #101a2a; --bs-btn-active-color: #101a2a; }
    [data-site-theme="notte"] .btn-outline-dark { --bs-btn-color: #e5edf7; --bs-btn-border-color: #8dabc6; --bs-btn-hover-bg: #e5edf7; --bs-btn-hover-color: #101a2a; --bs-btn-active-bg: #e5edf7; --bs-btn-active-color: #101a2a; }
    [data-site-theme="notte"] :is(.article-audio, .article-end, .article-attachments, .article-rail a, .article-rail button) { border-color: #384d65; }
    [data-site-theme="notte"] :is(.article-rail a:hover, .article-rail button:hover) { background: #384d65; }
    [data-site-theme="notte"] .article-body-copy blockquote { background: #20344c; }
    [data-site-theme="notte"] .content-page .article-audio-current { color: #17243b; background-color: #fff0c5; box-shadow: 0 0 0 .2rem #fff0c5; }
    [data-site-theme="notte"] .content-page .article-audio-current :is(a, strong, em) { color: #17243b; }
    [data-site-theme="notte"] .content-page .article-audio-current::first-letter { color: #17243b; }
    [data-site-theme="notte"] .text-secondary { color: #b3c1d2 !important; }
    [data-site-theme="notte"] .article-attachment-link { color: #e5edf7; }
    :root[data-site-theme="notte"] .principle-icon:is(.sage, .gold) { color: #d7c292; }
    [data-site-theme="notte"] .empty-state { color: #b3c1d2; }
    [data-site-theme="notte"] .not-found-mark { color: #384d65; }

    /* Holidays use the site's Bootstrap icon font, not extra image downloads. */
    [data-site-theme="natale"] .legacy-hero { background: #9b1729; border-bottom: .35rem solid #a4792d; }
    [data-site-theme="natale"] .legacy-hero h1 { color: #fffaf6; }
    [data-site-theme="natale"] .legacy-hero :is(h1 em, .eyebrow, .quiet-link) { color: #ffe2a8; }
    [data-site-theme="natale"] .legacy-hero .hero-lead { color: #ffebe4; }
    [data-site-theme="natale"] .legacy-hero .hero-thread { border-color: #d5a269; }
    [data-site-theme="natale"] .legacy-hero .btn-primary { --bs-btn-color: #681526; --bs-btn-bg: #ffe2a8; --bs-btn-border-color: #ffe2a8; --bs-btn-hover-color: #681526; --bs-btn-hover-bg: #fffaf6; --bs-btn-hover-border-color: #fffaf6; --bs-btn-active-color: #681526; --bs-btn-active-bg: #fffaf6; --bs-btn-active-border-color: #fffaf6; }
    [data-site-theme="natale"] .dedication-card, [data-site-theme="natale"] .featured-slides > .carousel-item { background: #701427; }
    :root[data-site-theme="natale"] .site-header { border-top: .3rem solid #d5a269; border-bottom-color: #b54b55; }
    :root[data-site-theme="natale"] .site-header :is(.navbar-brand, .navbar-toggler, .navbar-nav .nav-link) { color: #fffaf6; }
    :root[data-site-theme="natale"] .site-header .brand-copy small { color: #ffebe4; }
    :root[data-site-theme="natale"] .navbar-nav .nav-link:is(:hover, :focus, .active),
    :root[data-site-theme="natale"] .site-header .navbar-brand:is(:hover, :focus) { color: #ffe2a8; }
    :root[data-site-theme="natale"] .navbar-nav .nav-link.active::after { background: #ffe2a8; }
    :root[data-site-theme="natale"] .footer-brand small { color: #ffebe4; }
    [data-site-theme="natale"] :is(.article-header, .page-hero) { background: linear-gradient(120deg, #fffaf6, #f8dedc); border-bottom: 1px solid #e5c6bf; }
    [data-site-theme="natale"] .open-letter { border-top: .3rem solid #a4792d; }
    [data-site-theme="pasqua"] .legacy-hero { background: linear-gradient(120deg, #f0e9f6, #edf3df); }
    [data-site-theme="pasqua"] .legacy-hero::before { display: none; }
    [data-site-theme="pasqua"] .hero-thread { border-color: #bda2cf; }
    :root[data-site-theme="pasqua"] .dedication-card { border-radius: 2.5rem 2.5rem .8rem .8rem; }
    [data-site-theme="pasqua"] :is(.btn, .principle-icon) { border-radius: 999px; }
    [data-site-theme="pasqua"] .principle-card { border-bottom: .3rem solid #b3c690; }
}

/* Bootstrap Icons snow2 and egg-fill: https://icons.getbootstrap.com/ (MIT).
   Copyright (c) 2019-2024 The Bootstrap Authors

   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
   in the Software without restriction, including without limitation the rights
   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   copies of the Software, and to permit persons to whom the Software is
   furnished to do so, subject to the following conditions:
   The above copyright notice and this permission notice shall be included in
   all copies or substantial portions of the Software.
   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   THE SOFTWARE.
*/
/* Native cursor with a small Bootstrap snow2/egg-fill badge.
   Fixed 32px image and 2,2 hotspot; no mouse listeners, overlay or cursor hiding. */
@media screen and (hover: hover) and (pointer: fine) and (forced-colors: none) {
    :root[data-site-theme="natale"] body { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M2%202v20l5-5%204%209%204-2-4-9h8Z%22%20fill%3D%22%23b51f32%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8%2016a.5.5%200%200%201-.5-.5v-1.293l-.646.647a.5.5%200%200%201-.707-.708L7.5%2012.793v-1.086l-.646.647a.5.5%200%200%201-.707-.708L7.5%2010.293V8.866l-1.236.713-.495%201.85a.5.5%200%201%201-.966-.26l.237-.882-.94.542-.496%201.85a.5.5%200%201%201-.966-.26l.237-.882-1.12.646a.5.5%200%200%201-.5-.866l1.12-.646-.884-.237a.5.5%200%201%201%20.26-.966l1.848.495.94-.542-.882-.237a.5.5%200%201%201%20.258-.966l1.85.495L7%208l-1.236-.713-1.849.495a.5.5%200%201%201-.258-.966l.883-.237-.94-.542-1.85.495a.5.5%200%200%201-.258-.966l.883-.237-1.12-.646a.5.5%200%201%201%20.5-.866l1.12.646-.237-.883a.5.5%200%200%201%20.966-.258l.495%201.849.94.542-.236-.883a.5.5%200%200%201%20.966-.258l.495%201.849%201.236.713V5.707L6.147%204.354a.5.5%200%201%201%20.707-.708l.646.647V3.207L6.147%201.854a.5.5%200%201%201%20.707-.708l.646.647V.5a.5.5%200%200%201%201%200v1.293l.647-.647a.5.5%200%201%201%20.707.708L8.5%203.207v1.086l.647-.647a.5.5%200%201%201%20.707.708L8.5%205.707v1.427l1.236-.713.495-1.85a.5.5%200%201%201%20.966.26l-.236.882.94-.542.495-1.85a.5.5%200%201%201%20.966.26l-.236.882%201.12-.646a.5.5%200%200%201%20.5.866l-1.12.646.883.237a.5.5%200%201%201-.26.966l-1.848-.495-.94.542.883.237a.5.5%200%201%201-.26.966l-1.848-.495L9%208l1.236.713%201.849-.495a.5.5%200%200%201%20.259.966l-.883.237.94.542%201.849-.495a.5.5%200%200%201%20.259.966l-.883.237%201.12.646a.5.5%200%200%201-.5.866l-1.12-.646.236.883a.5.5%200%201%201-.966.258l-.495-1.849-.94-.542.236.883a.5.5%200%200%201-.966.258L9.736%209.58%208.5%208.866v1.427l1.354%201.353a.5.5%200%200%201-.707.708l-.647-.647v1.086l1.354%201.353a.5.5%200%200%201-.707.708l-.647-.647V15.5a.5.5%200%200%201-.5.5%22%20transform%3D%22translate(15%2015)%22%20fill%3D%22%23b51f32%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221%22%20paint-order%3D%22stroke%22%2F%3E%3C%2Fsvg%3E") 2 2, auto; }
    :root[data-site-theme="pasqua"] body { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M2%202v20l5-5%204%209%204-2-4-9h8Z%22%20fill%3D%22%23775397%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M14%2010a6%206%200%200%201-12%200C2%205.686%205%200%208%200s6%205.686%206%2010%22%20transform%3D%22translate(15%2015)%22%20fill%3D%22%23775397%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221%22%20paint-order%3D%22stroke%22%2F%3E%3C%2Fsvg%3E") 2 2, auto; }
    /* Keep the familiar hand on actions and native editing/disabled states. */
    :root:is([data-site-theme="natale"], [data-site-theme="pasqua"]) :where(a[href], button, summary, [role="button"], label[for]) { cursor: pointer; }
    :root:is([data-site-theme="natale"], [data-site-theme="pasqua"]) :where(input, textarea, select, [contenteditable]:not([contenteditable="false"])) { cursor: auto; }
    :root:is([data-site-theme="natale"], [data-site-theme="pasqua"]) :where(:disabled, [aria-disabled="true"], .disabled) { cursor: not-allowed; }
}

/* Admin picker: native radio buttons work without JavaScript. */
.theme-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1rem; }
.theme-choice-wrap { position: relative; min-width: 0; }
.theme-radio { position: absolute; top: 1rem; left: 1rem; width: 1.15rem; height: 1.15rem; accent-color: #873b2b; z-index: 1; }
.theme-choice { display: flex; flex-direction: column; gap: .55rem; height: 100%; padding: 1rem; color: #17243b; background: #fff; border: 2px solid #d8d2c7; border-radius: .75rem; cursor: pointer; }
.theme-choice strong { font-size: 1rem; }
.theme-choice > span:last-child { color: #535b63; font-size: .875rem; line-height: 1.55; }
.theme-radio:checked + .theme-choice { border-color: #873b2b; box-shadow: 0 0 0 1px #873b2b; }
.theme-radio:focus-visible + .theme-choice { outline: 3px solid #17243b; outline-offset: 3px; }
.theme-swatches { display: flex; align-items: center; gap: .35rem; min-height: 2.7rem; margin-left: 1.85rem; margin-bottom: .5rem; }
.theme-swatches > span { flex: 1; height: 1.6rem; background: var(--swatch-a, #17243b); border-radius: .25rem; border: 1px solid rgba(0, 0, 0, .2); }
.theme-swatches > span:nth-child(2) { background: var(--swatch-b, #a84f3a); }
.theme-swatches > span:nth-child(3) { background: var(--swatch-c, #f6f1e7); }
.theme-swatches .bi { margin-left: .2rem; font-size: 1.25rem; }
.theme-choice--mediterraneo { --swatch-a: #123e54; --swatch-b: #087988; --swatch-c: #d8eef3; }
.theme-choice--editoriale { --swatch-a: #242424; --swatch-b: #9b2942; --swatch-c: #fff; }
.theme-choice--bosco { --swatch-a: #183d31; --swatch-b: #4c7040; --swatch-c: #e9efe5; }
.theme-choice--notte { --swatch-a: #101a2a; --swatch-b: #e3b669; --swatch-c: #d7e2ee; }
.theme-choice--natale { --swatch-a: #9b1729; --swatch-b: #b51f32; --swatch-c: #ffe2a8; }
.theme-choice--pasqua { --swatch-a: #775397; --swatch-b: #b3c690; --swatch-c: #f0e9f6; }

.seasonal-effects { position: fixed; inset: 0; z-index: 20; overflow: hidden; pointer-events: none; user-select: none; }
.seasonal-effects[hidden], .seasonal-controls[hidden], .seasonal-note[hidden] { display: none !important; }
.seasonal-particle { position: absolute; top: -3rem; left: var(--particle-x); color: #fff; font-size: var(--particle-size); opacity: .9; line-height: 1; text-shadow: 0 1px 2px rgba(23, 60, 50, .55), 0 0 1px #315544; animation: seasonal-fall var(--particle-duration) linear var(--particle-delay) infinite; animation-play-state: paused; }
.seasonal-effects[data-running="true"] .seasonal-particle { animation-play-state: running; }
.seasonal-effects[data-seasonal-effects="eggs"] .seasonal-particle { color: #9b6fc0; opacity: .4; text-shadow: none; }
.seasonal-effects[data-seasonal-effects="eggs"] .seasonal-particle:nth-child(3n+2) { color: #7c9c48; }
.seasonal-effects[data-seasonal-effects="eggs"] .seasonal-particle:nth-child(3n) { color: #cd8d3c; }
.seasonal-controls { position: fixed; right: max(.75rem, env(safe-area-inset-right)); bottom: max(.75rem, env(safe-area-inset-bottom)); z-index: 21; display: grid; justify-items: end; gap: .4rem; }
.seasonal-toggle { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.75rem; max-width: calc(100vw - 1.5rem); padding: .5rem .8rem; color: #17243b; background: #fffdf6; border: 1px solid #b6b3a7; border-radius: 999px; box-shadow: 0 .25rem .85rem rgba(0, 0, 0, .12); font: 600 .875rem/1.4 var(--gge-sans); }
.seasonal-toggle:focus-visible { outline: 3px solid #17243b; outline-offset: 3px; }
.seasonal-note { max-width: min(19rem, calc(100vw - 1.5rem)); padding: .65rem .8rem; color: #17243b; background: #fffdf6; border: 1px solid #b6b3a7; border-radius: .6rem; font: 400 .875rem/1.45 var(--gge-sans); }
@keyframes seasonal-fall {
    from { transform: translate3d(0, -3rem, 0) rotate(0deg); }
    to { transform: translate3d(var(--particle-drift), calc(100vh + 6rem), 0) rotate(var(--particle-turn)); }
}
@media (max-width: 767.98px) {
    .seasonal-effects[data-seasonal-effects="snow"] .seasonal-particle:nth-child(n+17),
    .seasonal-effects[data-seasonal-effects="eggs"] .seasonal-particle:nth-child(n+13) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    /* Seasonal effects start by default, with six slow decorations and no spin or drift.
       Override app.css's universal .01ms duration only for these stoppable decorations. */
    .seasonal-effects .seasonal-particle { animation-name: seasonal-fall-reduced; animation-duration: 18s !important; }
    .seasonal-effects .seasonal-particle:nth-child(n+7) { display: none; }
}
@keyframes seasonal-fall-reduced {
    from { transform: translateY(-3rem); }
    to { transform: translateY(calc(100vh + 6rem)); }
}
@media (forced-colors: active) {
    .seasonal-effects, .seasonal-controls { display: none !important; }
    .seasonal-particle { animation: none !important; }
}
@media print {
    .seasonal-effects, .seasonal-controls { display: none !important; }
    .seasonal-particle { animation: none !important; }
}
