/* Christmas theme: active immediately, independent of the visitor's date. */
.christmas {
    --cyan: #a8e1f2;
    --cyan-rgb: 168, 225, 242;
    --cyan-soft: #d9f5ff;
    --cyan-bright: #d0f1fc;
    --cyan-bright-rgb: 208, 241, 252;
    --glass-border: rgba(190, 229, 244, .24);
    --glass-panel: linear-gradient(145deg, rgba(42, 65, 78, .65), rgba(10, 19, 29, .72));
}
.christmas .hero {
    background: radial-gradient(ellipse at 50% 0, rgba(121, 189, 216, .18), transparent 58%),
        radial-gradient(ellipse at 0 65%, rgba(147, 208, 228, .08), transparent 42%),
        linear-gradient(145deg, #101d29, #090e16 75%);
}
.christmas .hero h1 .hero-line-one,
.christmas .hero h1 .hero-line-two {
    color: #e9f7fc;
    text-shadow: 0 2px 0 rgba(155, 212, 233, .35), 0 8px 35px rgba(111, 188, 216, .13);
}
.christmas .service-card, .christmas .quote-form {
    border-color: rgba(186, 227, 244, .25);
    box-shadow: inset 0 2px 0 rgba(222, 246, 255, .16), var(--shadow);
}
.christmas .site-footer { border-top: 1px solid rgba(186, 227, 244, .24); }
.christmas-ice {
    position: absolute;
    inset: 0 0 auto;
    height: clamp(45px, 7vw, 95px);
    z-index: 3;
    pointer-events: none;
    background: url('christmas-icicles.svg') repeat-x top center / 600px 100%;
    opacity: .8;
}
.christmas-snow {
    position: fixed;
    inset: 0;
    overflow: hidden;
    z-index: 21;
    pointer-events: none;
    color: #e0f6ff;
}
.snowflake-definitions { position: absolute; width: 0; height: 0; }
.snowflake {
    position: absolute;
    left: var(--x);
    top: -35px;
    width: var(--size);
    height: var(--size);
    opacity: .4;
}
.snowflake svg { width: 100%; height: 100%; }
@keyframes christmas-snowfall {
    from { transform: translate3d(-15px, -10px, 0) rotate(0deg); }
    to { transform: translate3d(25px, calc(100vh + 75px), 0) rotate(160deg); }
}
@media (prefers-reduced-motion: no-preference) {
    .snowflake { animation: christmas-snowfall var(--duration) linear var(--delay) infinite; }
}
@media (prefers-reduced-motion: reduce) {
    .snowflake { top: var(--rest); opacity: .22; }
    .snowflake:nth-child(n+12) { display: none; }
}
@media (max-width: 680px) {
    .snowflake:nth-child(n+18) { display: none; }
    .christmas-ice { opacity: .6; }
}
@media print {
    .christmas-snow, .christmas-ice { display: none; }
}
