/**
 * Event calendar (system/pages/eventcalendar.php). Loaded by template.php only on PAGE eventcalendar;
 * the page is full width (sidebar below). Shared pieces: telara-components.css.
 *
 * One HTML for every screen:
 *  - from 768 px: a 7-column month grid with the weekday header;
 *  - below 768 px: a list of days (date on the left, events on the right), past days of the
 *    current month hidden behind the "Show past days" checkbox (no JavaScript).
 * Event colours come from the server (--ec on every chip); the chip keeps light text on them.
 * Static: no animations.
 */

.ec {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    margin: 6px 0 10px;
    color: var(--tl-parchment);
}

/* Chip: one event. --ec = event colour from events.xml */
.ec-chip {
    --ec: #235c00;
    display: block;
    padding: 4px 7px 4px 8px;
    border-left: 3px solid rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    background: var(--ec);
    color: #f6efe2;
    font-size: 0.75rem;
    line-height: 1.3;
    text-decoration: none;
    overflow-wrap: break-word;
}

@supports (background: color-mix(in srgb, red 50%, blue)) {
    .ec-chip {
        border-left-color: color-mix(in srgb, var(--ec) 45%, #fff3d6);
        background: color-mix(in srgb, var(--ec) 82%, #17140f);
    }
}

a.ec-chip:hover,
a.ec-chip:focus {
    color: #fff;
    text-decoration: none;
    box-shadow: inset 0 0 0 1px rgba(255, 230, 155, 0.55);
}

.ec-chip__title {
    display: block;
    font-weight: 600;
}

.ec-chip--link .ec-chip__title::after {
    content: '\00a0\203A';
    color: var(--tl-gold-pale);
}

.ec-chip__desc {
    display: block;
    margin-top: 2px;
    color: rgba(246, 239, 226, 0.78);
    font-size: 0.8125rem;
    font-weight: 400;
}

.ec-empty {
    margin: 0;
    color: var(--tl-faint);
    font-size: 0.875rem;
}

/* Today / Tomorrow */
.ec-spot {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ec-spot__day {
    padding: 18px 20px 20px;
}

.ec-spot__day.is-today {
    box-shadow: 0 0 0 1px var(--tl-gold-frame), var(--tl-panel-shadow);
}

.ec-spot__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 12px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--tl-line);
}

.ec-spot__head h2 {
    margin: 0;
    color: var(--tl-gold-pale);
    font-size: 1.25rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ec-spot__head span {
    color: var(--tl-muted);
    font-size: 0.875rem;
}

.ec-spot__list {
    display: grid;
    gap: 8px;
}

.ec-spot__list .ec-chip {
    padding: 8px 10px 8px 12px;
    font-size: 0.9375rem;
}

/* Month */
.ec-month {
    padding: 18px 20px 22px;
}

.ec-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.ec-nav__now {
    text-align: center;
}

.ec-nav__now h2 {
    margin: 0;
    color: var(--tl-title);
    font-size: 1.5rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ec-nav__now .tl-link {
    display: inline-block;
    margin-top: 4px;
}

.ec-nav__btn,
a.ec-nav__btn {
    min-height: 40px;
    padding: 0 14px;
    gap: 8px;
    font-size: 0.75rem;
}

.ec-nav__btn span[aria-hidden] {
    font-size: 1.25rem;
    line-height: 1;
}

.ec-notice {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid rgba(242, 197, 127, 0.45);
    border-radius: 3px;
    background: #2a2010;
    color: var(--tl-warning);
    font-size: 0.875rem;
}

/* "Show past days" is used on phones only */
.ec-past-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ec-past-label {
    display: none;
}

.ec-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.ec-grid__wd {
    padding: 6px 0;
    color: var(--tl-faint);
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
}

.ec-grid__wd.is-weekend {
    color: var(--tl-gold);
}

.ec-day {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    min-height: 118px;
    padding: 6px 6px 8px;
    border: 1px solid var(--tl-line);
    border-radius: 3px;
    background: rgba(10, 9, 7, 0.55);
}

.ec-day.is-weekend {
    background: rgba(42, 34, 25, 0.55);
}

.ec-day--pad {
    border-style: dashed;
    border-color: rgba(58, 45, 32, 0.5);
    background: transparent;
}

.ec-day.is-past {
    opacity: 0.55;
}

.ec-day.is-today {
    border-color: var(--tl-gold-frame);
    background: radial-gradient(120% 60% at 50% 0%, rgba(230, 195, 92, 0.16), transparent 70%), rgba(10, 9, 7, 0.6);
    box-shadow: inset 0 0 0 1px rgba(230, 195, 92, 0.35);
}

.ec-day__date {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ec-day__num {
    color: var(--tl-title);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
}

.ec-day.is-today .ec-day__num {
    color: var(--tl-gold-pale);
}

.ec-day__wd,
.ec-day__none {
    display: none;
}

.ec-day__today {
    padding: 1px 6px;
    border-radius: 2px;
    background: var(--tl-gold-button);
    color: var(--tl-ink);
    font-family: var(--font-heading);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ec-day__events {
    display: grid;
    gap: 4px;
}

/* Legend and note */
.ec-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 18px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--tl-line);
    list-style: none;
    color: var(--tl-muted);
    font-size: 0.8125rem;
}

.ec-legend li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ec-legend i {
    --ec: #235c00;
    width: 14px;
    height: 14px;
    border-radius: 2px;
    background: var(--ec);
    box-shadow: 0 0 0 1px rgba(255, 243, 214, 0.25);
}

.ec-foot {
    margin: 10px 0 0;
    color: var(--tl-faint);
    font-size: 0.8125rem;
}

/* Narrow computers / tablets: a bit less padding */
@media (max-width: 991px) {
    .ec-month {
        padding: 16px 14px 18px;
    }

    .ec-grid {
        gap: 3px;
    }

    .ec-day {
        padding: 5px 4px 6px;
    }

    .ec-chip {
        padding: 3px 5px 3px 6px;
        font-size: 0.6875rem;
    }
}

/* Phones: list of days */
@media (max-width: 767px) {
    .ec {
        gap: 16px;
    }

    .ec-spot {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .ec-spot__day {
        padding: 16px;
    }

    .ec-month {
        padding: 14px 12px 16px;
    }

    .ec-nav {
        gap: 8px;
    }

    .ec-nav__now h2 {
        font-size: 1.125rem;
    }

    .ec-nav__label {
        display: none;
    }

    .ec-nav__btn,
    a.ec-nav__btn {
        width: 44px;
        min-height: 44px;
        padding: 0;
    }

    .ec-past-label {
        display: flex;
        width: 100%;
        min-height: 40px;
        margin: 0 0 10px;
        font-size: 0.75rem;
        cursor: pointer;
    }

    .ec-past-label__hide,
    .ec-past-toggle:checked + .ec-past-label .ec-past-label__show {
        display: none;
    }

    .ec-past-toggle:checked + .ec-past-label .ec-past-label__hide {
        display: inline;
    }

    .ec-past-toggle:focus-visible + .ec-past-label {
        outline: 2px solid var(--tl-gold-pale);
        outline-offset: 2px;
    }

    .ec-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    .ec-grid__wd,
    .ec-day.ec-day--pad {
        display: none;
    }

    .ec-past-toggle ~ .ec-grid .ec-day.is-past {
        display: none;
    }

    .ec-past-toggle:checked ~ .ec-grid .ec-day.is-past {
        display: grid;
    }

    .ec-day {
        display: grid;
        grid-template-columns: 86px minmax(0, 1fr);
        gap: 10px;
        min-height: 0;
        padding: 10px;
    }

    .ec-day.is-past {
        opacity: 0.6;
    }

    .ec-day__date {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        padding-right: 8px;
        border-right: 1px solid var(--tl-line);
    }

    .ec-day__num {
        font-size: 1.5rem;
        line-height: 1;
    }

    .ec-day__wd {
        display: block;
        color: var(--tl-faint);
        font-size: 0.75rem;
    }

    .ec-day.is-weekend .ec-day__wd {
        color: var(--tl-gold);
    }

    .ec-day__today {
        margin-top: 4px;
    }

    .ec-day__events {
        align-content: start;
        gap: 6px;
    }

    .ec-day__none {
        display: block;
        color: var(--tl-faint);
        font-size: 0.8125rem;
        align-self: center;
    }

    .ec-chip {
        padding: 6px 8px 6px 10px;
        font-size: 0.875rem;
    }

    .ec-legend {
        gap: 8px 14px;
        font-size: 0.8125rem;
    }
}

/* ------------------------------------------------------------------
 * Halloween (seasonal; dates: game server data/libs/systems/seasonal_event_dates.lua)
 *  - .ec-chip--halloween: its chip on every day of the event (pumpkin, orange to violet);
 *  - .ec-day.is-halloween: the days tinted, an orange line on top, Start / Last day marks;
 *  - .ec-hw-banner: the event in the month panel;
 *  - .ec--halloween: while the event runs, the panels get a Halloween frame, bats and a web.
 * Pictures are inline SVG (no extra requests), no animations.
 * ------------------------------------------------------------------ */
.ec {
    --hw-orange: #ff8a1f;
    --hw-pumpkin: #e8650f;
    --hw-deep: #9a3d06;
    --hw-violet: #6b2fa0;
    --hw-night: #1b1023;
    --hw-text: #ffb066;
}

.ec-chip.ec-chip--halloween {
    position: relative;
    padding-left: 24px;
    border: 1px solid rgba(255, 166, 77, 0.55);
    border-left: 3px solid var(--hw-orange);
    background: linear-gradient(100deg, rgba(232, 101, 15, 0.95) 0%, rgba(154, 61, 6, 0.96) 48%, rgba(74, 28, 104, 0.97) 100%);
    box-shadow: 0 0 10px -2px rgba(255, 122, 26, 0.45);
    color: #fff4e6;
}

.ec-chip--halloween .ec-chip__title {
    color: #fff1dc;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
}

.ec-chip--halloween .ec-chip__desc {
    color: rgba(255, 241, 220, 0.86);
}

.ec-chip--halloween.ec-chip--link .ec-chip__title::after {
    color: #ffe1b8;
}

.ec-chip__icon {
    position: absolute;
    top: 4px;
    left: 5px;
    width: 15px;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 9c-.6-3 .4-5.4 3.2-6.6' fill='none' stroke='%236b8a22' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M18.4 6.2c2.6-2.3 5.6-2 7.2.2-2.8 1.3-5 1.4-7.2-.2z' fill='%238cc63f'/%3E%3Cellipse cx='10.6' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='21.4' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='16' cy='19' rx='7.2' ry='10.6' fill='%23ff8a1f'/%3E%3Cpath d='M10.5 17L13 13.3 15 17zM17 17l2-3.7 2.5 3.7z' fill='%232a1206'/%3E%3Cpath d='M9.6 21.4c2.3 3.4 10.5 3.4 12.8 0l-2 .9-1.5-1.3-1.6 1.4-1.3-1.4-1.3 1.4-1.6-1.4-1.5 1.3z' fill='%232a1206'/%3E%3C/svg%3E") center / contain no-repeat;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));
}

a.ec-chip--halloween:hover,
a.ec-chip--halloween:focus {
    box-shadow: inset 0 0 0 1px rgba(255, 225, 160, 0.7), 0 0 14px -2px rgba(255, 122, 26, 0.6);
}

/* Today / Tomorrow: a bigger chip with bats on the right */
.ec-spot__list .ec-chip.ec-chip--halloween {
    padding: 10px 92px 10px 46px;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 44' fill='%231b0b24'%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(4 0) scale(.9)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(62 14) scale(.62) rotate(-12 32 12)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(88 28) scale(.42) rotate(10 32 12)'/%3E%3C/svg%3E") right 8px center / 78px auto no-repeat,
        linear-gradient(100deg, rgba(232, 101, 15, 0.95) 0%, rgba(154, 61, 6, 0.96) 48%, rgba(74, 28, 104, 0.97) 100%);
}

.ec-spot__list .ec-chip--halloween .ec-chip__icon {
    top: 50%;
    left: 10px;
    width: 26px;
    height: 26px;
    margin-top: -13px;
}

/* Days of the event */
.ec-day.is-halloween {
    border-color: rgba(255, 138, 31, 0.4);
    background: linear-gradient(180deg, rgba(107, 47, 160, 0.3) 0%, rgba(27, 16, 35, 0.78) 52%, rgba(154, 61, 6, 0.2) 100%);
    box-shadow: inset 0 2px 0 rgba(255, 138, 31, 0.9);
}

.ec-day.is-halloween.is-weekend {
    background: linear-gradient(180deg, rgba(122, 52, 180, 0.38) 0%, rgba(30, 17, 40, 0.8) 52%, rgba(154, 61, 6, 0.24) 100%);
}

.ec-day.is-halloween .ec-day__num {
    color: var(--hw-text);
}

.ec-day.is-halloween.is-today {
    border-color: var(--tl-gold-frame);
    box-shadow: inset 0 2px 0 var(--hw-orange), inset 0 0 0 1px rgba(230, 195, 92, 0.45), 0 0 14px -4px rgba(255, 138, 31, 0.55);
}

.ec-day.is-halloween-first {
    box-shadow: inset 0 2px 0 rgba(255, 138, 31, 0.9), inset 3px 0 0 var(--hw-orange);
}

.ec-day.is-halloween-last {
    box-shadow: inset 0 2px 0 rgba(255, 138, 31, 0.9), inset -3px 0 0 var(--hw-violet);
}

.ec-day__hw {
    padding: 1px 6px;
    border-radius: 2px;
    background: linear-gradient(180deg, #ffa24a, var(--hw-pumpkin));
    color: #2a1206;
    font-family: var(--font-heading);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ec-day__hw--end {
    background: linear-gradient(180deg, #8b4cc4, var(--hw-violet));
    color: #f6ecff;
}

/* The event in the month */
.ec-hw-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 138, 31, 0.45);
    border-left: 3px solid var(--hw-orange);
    border-radius: 3px;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 44' fill='%239b6cc4'%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(4 0) scale(.9)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(62 14) scale(.62) rotate(-12 32 12)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(88 28) scale(.42) rotate(10 32 12)'/%3E%3C/svg%3E") right 14px top 2px / 64px auto no-repeat,
        linear-gradient(100deg, rgba(232, 101, 15, 0.22), rgba(107, 47, 160, 0.3) 70%, rgba(27, 16, 35, 0.6));
}

.ec-hw-banner__icon {
    flex: none;
    width: 40px;
    height: 40px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 9c-.6-3 .4-5.4 3.2-6.6' fill='none' stroke='%236b8a22' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M18.4 6.2c2.6-2.3 5.6-2 7.2.2-2.8 1.3-5 1.4-7.2-.2z' fill='%238cc63f'/%3E%3Cellipse cx='10.6' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='21.4' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='16' cy='19' rx='7.2' ry='10.6' fill='%23ff8a1f'/%3E%3Cpath d='M10.5 17L13 13.3 15 17zM17 17l2-3.7 2.5 3.7z' fill='%232a1206'/%3E%3Cpath d='M9.6 21.4c2.3 3.4 10.5 3.4 12.8 0l-2 .9-1.5-1.3-1.6 1.4-1.3-1.4-1.3 1.4-1.6-1.4-1.5 1.3z' fill='%232a1206'/%3E%3C/svg%3E") center / contain no-repeat;
    filter: drop-shadow(0 0 8px rgba(255, 138, 31, 0.55));
}

.ec-hw-banner__text {
    display: grid;
    gap: 3px;
    min-width: 0;
    flex: 1;
}

.ec-hw-banner__title {
    color: var(--hw-text);
    font-family: var(--font-heading);
    font-size: 1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ec-hw-banner__period {
    margin-left: 8px;
    color: #f3e6ff;
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.ec-hw-banner__desc {
    color: rgba(246, 239, 226, 0.85);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.ec-hw-banner__more,
a.ec-hw-banner__more {
    flex: none;
    margin-top: 12px;
    padding: 7px 12px;
    border: 1px solid rgba(255, 166, 77, 0.6);
    border-radius: 3px;
    color: var(--hw-text);
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

a.ec-hw-banner__more:hover,
a.ec-hw-banner__more:focus {
    border-color: var(--hw-orange);
    color: #ffe1b8;
    text-decoration: none;
}

.ec-legend__hw i {
    background: linear-gradient(135deg, var(--hw-orange), var(--hw-violet));
}

/* While the event runs: the Halloween frame */
.ec--halloween .tl-panel {
    --tl-panel-bg:
        radial-gradient(120% 70% at 50% 0%, rgba(140, 60, 200, 0.18), transparent 62%) padding-box,
        linear-gradient(180deg, #1e1522, #16110f 55%) padding-box,
        linear-gradient(180deg, #ffb35c, var(--hw-pumpkin) 28%, var(--hw-violet) 72%, #3d1a5c) border-box;
    box-shadow: 0 0 0 1px #050403, 0 0 26px -6px rgba(232, 101, 15, 0.5), 0 14px 30px -12px rgba(0, 0, 0, 0.75);
}

.ec--halloween .ec-spot__day.is-today {
    box-shadow: 0 0 0 1px var(--hw-orange), 0 0 30px -4px rgba(255, 138, 31, 0.55), 0 14px 30px -12px rgba(0, 0, 0, 0.75);
}

.ec--halloween .ec-spot__head h2,
.ec--halloween .ec-nav__now h2 {
    color: var(--hw-text);
    text-shadow: 0 0 14px rgba(255, 122, 26, 0.45);
}

.ec--halloween .ec-spot__head {
    border-bottom-color: rgba(255, 138, 31, 0.35);
}

.ec--halloween .ec-month::before,
.ec--halloween .ec-month::after,
.ec--halloween .ec-spot__day.is-today::after {
    content: '';
    position: absolute;
    pointer-events: none;
}

/* bats over the top right corner, a web in the bottom left corner */
.ec--halloween .ec-month::after {
    top: -16px;
    right: 18px;
    width: 120px;
    height: 44px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 44' fill='%239b6cc4'%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(4 0) scale(.9)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(62 14) scale(.62) rotate(-12 32 12)'/%3E%3Cpath d='M32 10L33.2 7.2 34.3 10.2C38 7 46 4.5 58 5Q55 7 55 10.5Q51 8.5 47.5 11Q44.5 9 41.5 12.5Q38 11.5 35.5 15L32 19 28.5 15Q26 11.5 22.5 12.5Q19.5 9 16.5 11Q13 8.5 9 10.5Q9 7 6 5C18 4.5 26 7 29.7 10.2L30.8 7.2Z' transform='translate(88 28) scale(.42) rotate(10 32 12)'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0.9;
}

.ec--halloween .ec-month::before {
    bottom: 0;
    left: 0;
    width: 64px;
    height: 64px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23e9dcff' stroke-width='.7' stroke-linecap='round'%3E%3Cpath d='M0 0L58 14M0 0L44 44M0 0L14 58'/%3E%3Cpath d='M14 3.4Q12 12 3.4 14M26 6.3Q22 22 6.3 26M38 9.2Q31 31 9.2 38M50 12Q40 40 12 50'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0.32;
    transform: scaleY(-1);
}

.ec--halloween .ec-spot__day.is-today::after {
    top: 12px;
    right: 14px;
    width: 30px;
    height: 30px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 9c-.6-3 .4-5.4 3.2-6.6' fill='none' stroke='%236b8a22' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M18.4 6.2c2.6-2.3 5.6-2 7.2.2-2.8 1.3-5 1.4-7.2-.2z' fill='%238cc63f'/%3E%3Cellipse cx='10.6' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='21.4' cy='19' rx='7.6' ry='10' fill='%23d9560b'/%3E%3Cellipse cx='16' cy='19' rx='7.2' ry='10.6' fill='%23ff8a1f'/%3E%3Cpath d='M10.5 17L13 13.3 15 17zM17 17l2-3.7 2.5 3.7z' fill='%232a1206'/%3E%3Cpath d='M9.6 21.4c2.3 3.4 10.5 3.4 12.8 0l-2 .9-1.5-1.3-1.6 1.4-1.3-1.4-1.3 1.4-1.6-1.4-1.5 1.3z' fill='%232a1206'/%3E%3C/svg%3E") center / contain no-repeat;
    filter: drop-shadow(0 0 8px rgba(255, 138, 31, 0.6));
}

.ec--halloween .ec-day__today {
    background: linear-gradient(180deg, #ffe08a, #f0a43a);
}

@media (max-width: 991px) {
    .ec-chip.ec-chip--halloween {
        padding-left: 19px;
    }

    .ec-chip__icon {
        top: 3px;
        left: 3px;
        width: 13px;
        height: 13px;
    }

    .ec-hw-banner {
        background: linear-gradient(100deg, rgba(232, 101, 15, 0.22), rgba(107, 47, 160, 0.3) 70%, rgba(27, 16, 35, 0.6));
    }
}

@media (max-width: 767px) {
    .ec-chip.ec-chip--halloween {
        padding-left: 28px;
    }

    .ec-chip__icon {
        top: 50%;
        left: 7px;
        width: 16px;
        height: 16px;
        margin-top: -8px;
    }

    .ec-spot__list .ec-chip.ec-chip--halloween {
        padding: 10px 12px 10px 44px;
        background: linear-gradient(100deg, rgba(232, 101, 15, 0.95) 0%, rgba(154, 61, 6, 0.96) 48%, rgba(74, 28, 104, 0.97) 100%);
    }

    .ec-day.is-halloween .ec-day__date {
        border-right-color: rgba(255, 138, 31, 0.45);
    }

    .ec-day__hw {
        margin-top: 4px;
    }

    .ec-hw-banner {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 10px 12px;
    }

    .ec-hw-banner__icon {
        width: 34px;
        height: 34px;
    }

    .ec-hw-banner__text {
        flex-basis: calc(100% - 48px);
    }

    .ec-hw-banner__title {
        font-size: 0.9375rem;
    }

    .ec-hw-banner__more,
    a.ec-hw-banner__more {
        margin: 0 0 0 46px;
    }

    .ec-hw-banner__period {
        display: block;
        margin: 2px 0 0;
    }

    .ec--halloween .ec-month::after {
        right: 8px;
        width: 90px;
        height: 33px;
    }

    .ec--halloween .ec-spot__day.is-today::after {
        top: 12px;
        right: 12px;
        width: 24px;
        height: 24px;
    }
}
