/* /evenements — charte crème, sapin, orange. DM Sans vient du layout. */
.ev2 {
    --pine: #1c3c34;
    --pine-soft: #e7efe9;
    --orange: #c4471a;
    --orange-hot: #e06a2b;
    --cream: #f4f1ea;
    --ink: #1c3c34;
    --muted: #5c6b66;
    --line: rgba(28, 60, 52, .12);
    --free: #1b7a43;
    --card: #fff;
    --shadow: 0 14px 40px rgba(28, 60, 52, .08);
    color: var(--ink);
    background: var(--cream);
    font-family: "DM Sans", Manrope, system-ui, sans-serif;
    padding: 8px 0 64px;
}
.ev2 :focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.ev2 .ev2-seg:focus,
.ev2 .ev2-seg:focus-visible,
.ev2 .ev2-seg:focus-within,
.ev2 .ev2-seg.is-on,
.ev2 .ev2-when:focus,
.ev2 .ev2-when:focus-visible {
    background: #fff1e6;
    border-color: transparent;
    outline: none;
    box-shadow: none;
}
.ev2-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.ev2-hero { display: block; text-align: center; padding: 44px 0 0; }
.ev2-hero h1 { margin: 0; font-size: clamp(1.85rem, 4vw, 2.9rem); line-height: 1.08; letter-spacing: -.035em; font-weight: 800; color: var(--pine); }
.ev2-hero h1 .accent { color: var(--orange-hot); position: relative; display: inline-block; }
.ev2-hero h1 .accent svg { position: absolute; left: 0; right: 0; bottom: -6px; width: 100%; height: 10px; }
.ev2-lead { margin: 10px auto 0; max-width: none; color: var(--muted); font-size: 1.02rem; }

.ev2-search {
    margin: 26px auto 0; display: flex; align-items: stretch; gap: 0;
    background: #fff; border: 1.5px solid #efeae3; border-radius: 20px;
    box-shadow: 0 8px 24px rgba(28, 60, 52, .06); padding: 6px; position: relative;
}
.ev2-seg {
    position: relative; min-width: 0; flex: 1 1 0; min-height: 58px; padding: 8px 14px 8px 46px;
    background: transparent; border: 0; border-radius: 14px; box-shadow: none;
    text-align: left; font: inherit; color: inherit;
    display: flex; flex-direction: column; justify-content: center; appearance: none; -webkit-appearance: none;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.ev2-search > .ev2-seg + .ev2-seg::before {
    content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 1px;
    background: #e7e2d8; pointer-events: none;
}
.ev2-seg:focus-within::before,
.ev2-seg.is-on::before,
.ev2-seg:focus-within + .ev2-seg::before,
.ev2-seg.is-on + .ev2-seg::before { background: transparent; }
.ev2-seg:focus-within, .ev2-seg.is-on {
    background: #fff1e6; border-color: transparent; outline: none; box-shadow: none;
}
.ev2-field-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--pine); display: grid; }
.ev2-field-ico svg { width: 20px; height: 20px; }
.ev2-caret { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); display: grid; }
.ev2-caret svg { width: 16px; height: 16px; }
.ev2-seg .lbl, .ev2-seg label { display: block; margin: 0; font-weight: 700; font-size: .95rem; line-height: 1.2; color: var(--pine); }
.ev2-seg input, .ev2-when .val {
    width: 100%; border: 0; padding: 0; margin: 2px 0 0; background: transparent; font: inherit;
    font-size: .92rem; line-height: 1.3; height: 1.3em; color: var(--muted);
}
.ev2 .ev2-seg input:focus,
.ev2 .ev2-seg input:focus-visible {
    outline: none; border: 0; background: transparent; box-shadow: none;
}
.ev2-seg input:-webkit-autofill,
.ev2-seg input:-webkit-autofill:hover,
.ev2-seg input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--muted);
    caret-color: var(--ink);
    box-shadow: 0 0 0 1000px transparent inset;
    transition: background-color 99999s ease-out;
}
.ev2-seg input::placeholder { color: #8b9692; }
.ev2-when { cursor: pointer; padding-right: 36px; }
.ev2-when .val { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev2-go {
    flex: none; align-self: stretch; margin: 4px 4px 4px 8px; border: 0; border-radius: 14px; background: var(--orange); color: #fff;
    font: inherit; font-weight: 700; font-size: 1rem; padding: 0 18px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer;
}
.ev2-go svg { width: 18px; height: 18px; flex: none; }
.ev2-go:hover { background: #a53b16; }

.ev2-cats { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin-top: 16px; }
.ev2-chips { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; min-width: 0; overflow: hidden; }
.ev2-chip.is-overflow { display: none; }
.ev2-chip {
    display: inline-flex; align-items: center; gap: 8px; border: 1px solid #e6e2d9; background: #fff; color: var(--pine);
    border-radius: 8px; padding: 8px 12px; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; white-space: nowrap;
    box-shadow: 0 1px 2px rgba(28, 60, 52, .05); flex: none;
}
.ev2-chip svg { flex: none; width: 16px; height: 16px; }
.ev2-chip.is-on { background: var(--pine); color: #fff; border-color: var(--pine); }
.ev2-ccount {
    margin-left: 2px; padding: 1px 6px; border-radius: 999px; background: #f3efe6; color: #5c6b66;
    font-size: 11px; font-weight: 700; line-height: 1.4;
}
.ev2-chip.is-on .ev2-ccount { background: rgba(255, 255, 255, .2); color: #fff; }
.ev2-morewrap { position: relative; flex: none; }
.ev2-morecats .ev2-morecaret { font-size: .8rem; line-height: 1; }
.ev2-morepop {
    position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; min-width: 230px; max-height: 320px;
    overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 14px;
    box-shadow: 0 18px 40px rgba(28, 60, 52, .14); padding: 6px;
    display: flex; flex-direction: column; gap: 4px;
}
.ev2-morepop[hidden] { display: none; }
.ev2-morepop .ev2-chip { width: 100%; justify-content: flex-start; }
.ev2-catsep { flex: none; width: 1px; height: 22px; background: #ddd6c8; margin-left: auto; }
.ev2-filters {
    flex: none; border: 1px solid #e6e2d9; background: #fff; color: var(--pine); border-radius: 8px; padding: 8px 14px;
    font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
    box-shadow: 0 1px 2px rgba(28, 60, 52, .04);
}
.ev2-filters svg { width: 16px; height: 16px; }
.ev2-fbadge {
    min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--pine); color: #fff;
    font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
}
.ev2-fbadge[hidden] { display: none; }
.ev2-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.ev2-quick-lead { color: var(--muted); font-size: .95rem; margin-right: 2px; }
.ev2-quick-pill {
    display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--pine);
    border: 1px solid #e6e2d9; border-radius: 999px; padding: 6px 12px; font: inherit; font-weight: 600;
    font-size: .88rem; cursor: pointer;
}
.ev2-quick-pill svg { width: 15px; height: 15px; flex: none; }
.ev2-quick-pill.is-on { background: var(--pine); color: #fff; border-color: var(--pine); }
.ev2-quick-pill.is-on svg { color: #fff; }
.ev2-propose {
    margin-left: auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    background: #fff; color: var(--orange); border: 1px solid var(--orange); border-radius: 999px;
    padding: 6px 14px; font-weight: 700; font-size: .88rem; line-height: 1.2; text-decoration: none;
    white-space: nowrap;
}
.ev2-propose:hover, .ev2-propose:focus-visible { background: #fff1e6; color: var(--orange); text-decoration: none; }
.ev2-propose-plus { color: var(--orange); font-weight: 700; font-size: 1.05rem; line-height: 1; }

.ev2-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 28px 0 8px; }
.ev2-head h2 { margin: 0; font-size: 1.55rem; letter-spacing: -.03em; }
.ev2-sub { margin: 4px 0 0; color: var(--muted); font-size: .92rem; }
.ev2-tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ev2-sort { display: flex; align-items: center; gap: 6px; height: 40px; color: var(--muted); font-size: .92rem; }
.ev2-sort select { border: 0; background: transparent; font: inherit; font-weight: 700; color: var(--pine); cursor: pointer; height: 34px; line-height: 34px; margin: 0; padding: 0 2px; }

.ev2-pills { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-height: 0; margin: 14px 0 0; }
.ev2-pills:empty { display: none; margin: 0; }
.ev2-pillwrap { display: inline-flex; align-items: center; background: #fff; border-radius: 999px; }
.ev2-pill { display: inline-flex; align-items: center; gap: 6px; background: #fff; border-radius: 999px; padding: 5px 10px; font-size: .82rem; color: var(--pine); border: 0; font: inherit; cursor: pointer; }
.ev2-pillwrap .ev2-pill { border-radius: 999px 0 0 999px; padding-right: 2px; }
.ev2-pill-x { border: 0; background: transparent; color: var(--pine); font: inherit; font-size: .95rem; line-height: 1; cursor: pointer; padding: 5px 10px 5px 4px; border-radius: 0 999px 999px 0; }
.ev2-clear {
    display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px;
    border-radius: 999px; border: 1px solid #e4dfd6; background: #f7f4ee; color: var(--pine);
    font: inherit; font-size: .82rem; font-weight: 600; line-height: 1; cursor: pointer; text-decoration: none;
}
.ev2-clear:hover, .ev2-clear:focus-visible { border-color: #e07a3a; color: #c4471a; background: #fff1e6; outline: none; }

.ev2-results { display: grid; gap: 16px; }
.ev2.is-grille .ev2-results { grid-template-columns: minmax(0, 1fr); }
a.ev2-card { color: inherit; text-decoration: none; }
a.ev2-card:hover { box-shadow: 0 12px 28px rgba(28, 60, 52, .1); }
.ev2-card { background: var(--card); border-radius: 18px; overflow: hidden; box-shadow: 0 8px 24px rgba(28, 60, 52, .05); display: flex; flex-direction: column; min-width: 0; height: 100%; }
.ev2-card.is-hot { box-shadow: 0 0 0 2px var(--pine), var(--shadow); }
.ev2-media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #e7e1d6; flex: none; }
.ev2-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.ev2-media::after {
    content: "";
    position: absolute; left: 0; right: 0; top: 0; height: 38%; z-index: 1;
    background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0));
    pointer-events: none;
}
.is-skel .ev2-media::after { content: none; }
.ev2-date {
    position: absolute; left: 10px; top: 10px; background: #fff; color: var(--pine); border-radius: 12px;
    min-width: 46px; text-align: center; padding: 6px 6px 5px; line-height: 1; box-shadow: 0 4px 12px rgba(0,0,0,.08); z-index: 2;
}
.ev2-date b { display: block; font-size: 1.05rem; }
.ev2-date small { display: block; font-size: .62rem; letter-spacing: .04em; font-weight: 700; }
.ev2-date.is-wide { min-width: 74px; padding: 6px 8px; }
.ev2-date.is-today { background: #1b7a43; color: #fff; }
.ev2-date.is-tomorrow { background: #c4471a; color: #fff; }
.ev2-date.is-today b, .ev2-date.is-tomorrow b { font-size: .78rem; font-weight: 800; letter-spacing: .01em; line-height: 1.2; }
.ev2-catpill {
    position: absolute; right: 10px; top: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 5px;
    max-width: calc(100% - 78px); background: #fff; color: var(--pine); border-radius: 999px; padding: 5px 10px;
    font-size: .75rem; font-weight: 700; box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.ev2-catpill.is-sponsored { background: var(--pine); color: #fff; }
.ev2-catpill svg { width: 14px; height: 14px; flex: none; }
.ev2-catpill span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev2-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 0; }
.ev2-title { margin: 0; font-size: 1.35rem; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; color: var(--pine); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.4em; }
.ev2-line { margin: 0; display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: .92rem; min-width: 0; }
.ev2-line svg { width: 16px; height: 16px; flex: none; color: var(--muted); }
.ev2-line span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev2-line.is-empty { color: var(--muted); }
.ev2-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); }
.ev2-price { font-weight: 700; color: var(--pine); font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ev2-price.is-unknown { color: var(--muted); font-weight: 600; }
.ev2-price.is-free { color: var(--free); font-weight: 700; }
.ev2-chev { color: #8a948e; display: grid; place-items: center; flex: none; }
.ev2-chev svg { width: 18px; height: 18px; }

.ev2-stage { min-height: 0; }
.ev2.is-gate .ev2-head,
.ev2.is-gate .ev2-stage,
.ev2.is-gate .ev2-progress,
.ev2.is-gate .ev2-morebtn,
.ev2.is-gate .ev2-morelink,
.ev2.is-gate .ev2-sentinel,
.ev2.is-gate #ev2-sentinel,
.ev2.is-gate .ev2-further { display: none; }
.ev2-geo-msg { margin: 12px 0 0; text-align: center; color: #9a3b12; font-size: .95rem; }
.ev2-geo-msg[hidden] { display: none; }
#ev2-sentinel, .ev2-sentinel { height: 1px; width: 100%; }
#ev2-sentinel[hidden], .ev2-sentinel[hidden] { display: none; }
.ev2-morelink { display: block; width: fit-content; margin: 8px auto 0; color: var(--pine); font-weight: 700; }
.ev2-morelink[hidden], .ev2-more-fallback[hidden] { display: none; }
.ev2:not(.is-gate) .ev2-gate { display: none; }
.ev2-gate { margin: 18px 0 36px; display: block; }
.ev2-gate-card { background: #fff; border-radius: 28px; box-shadow: var(--shadow); padding: 36px 28px 28px; text-align: center; width: 100%; max-width: none; }
.ev2-gate-art { width: 168px; height: 118px; margin: 0 auto 6px; }
.ev2-gate-art svg { width: 100%; height: 100%; display: block; }
.ev2-gate-card h2 { margin: 8px 0 0; font-size: clamp(1.45rem, 3vw, 1.9rem); letter-spacing: -.03em; color: var(--pine); }
.ev2-gate-lead { margin: 10px auto 0; max-width: none; color: #5c6f68; font-size: 1.05rem; line-height: 1.45; }
.ev2-gate-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.ev2-gate-pick, .ev2-gate-geo {
    display: inline-flex; align-items: center; gap: 8px; border-radius: 12px; padding: 12px 18px;
    font: inherit; font-weight: 700; cursor: pointer;
}
.ev2-gate-pick { background: var(--orange); color: #fff; border: 0; }
.ev2-gate-pick:hover { background: #a53b16; }
.ev2-gate-geo { background: #fff; color: var(--pine); border: 1.5px solid #d5ddd8; }
.ev2-gate-geo:hover { border-color: var(--pine); }
.ev2-gate-pick svg, .ev2-gate-geo svg { width: 18px; height: 18px; flex: none; }
.ev2-gate-note { margin: 18px 0 0; color: #7d8b86; font-size: .95rem; }

.ev2-progress { margin: 28px 0 12px; text-align: center; color: #8a948e; font-size: .98rem; }
.ev2-progress[hidden] { display: none; }
.ev2-morebtn {
    display: grid; grid-template-columns: 24px 1fr 24px; align-items: center; width: min(720px, 100%);
    margin: 0 auto; border: 1px solid #e3ddd2; background: #f7f4ee; color: var(--pine);
    border-radius: 12px; padding: 16px 18px; font: inherit; font-weight: 700; font-size: 1.05rem; cursor: pointer;
}
.ev2-morebtn .ev2-more-label { grid-column: 2; text-align: center; }
.ev2-morebtn .ev2-more-arrow { grid-column: 3; justify-self: end; }
.ev2-morebtn[hidden] { display: none; }
.ev2-morebtn:disabled { cursor: progress; }
.ev2-morebtn .ev2-spin { width: 16px; height: 16px; border: 2px solid rgba(28, 60, 52, .18); border-top-color: var(--pine); border-radius: 50%; animation: ev2spin .7s linear infinite; justify-self: end; }
@keyframes ev2spin { to { transform: rotate(360deg); } }
.ev2-further {
    margin: 16px 0 0; width: 100%; max-width: none; background: #fff; border-radius: 28px;
    box-shadow: var(--shadow); padding: 36px 28px 28px; text-align: center;
}
.ev2-further[hidden] { display: none; }
.ev2-further h3 { margin: 8px 0 0; font-size: clamp(1.35rem, 3vw, 1.7rem); letter-spacing: -.03em; color: var(--pine); }
.ev2-empty {
    grid-column: 1 / -1; background: #fff; border-radius: 28px; box-shadow: var(--shadow);
    padding: 36px 28px 28px; text-align: center; width: 100%; max-width: none; margin: 8px 0;
}
.ev2-empty-art { width: 168px; height: 118px; margin: 0 auto 4px; }
.ev2-empty-art svg { width: 100%; height: 100%; display: block; }
.ev2-empty h3 { margin: 8px 0 0; font-size: clamp(1.35rem, 3vw, 1.7rem); letter-spacing: -.03em; color: var(--pine); }
.ev2-empty-lead { margin: 10px auto 0; max-width: none; color: #5c6f68; font-size: 1.02rem; line-height: 1.45; }
.ev2-empty-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.ev2-empty-dates, .ev2-empty-radius {
    display: inline-flex; align-items: center; gap: 8px; border-radius: 12px; padding: 12px 18px;
    font: inherit; font-weight: 700; cursor: pointer;
}
.ev2-empty-dates { background: var(--orange); color: #fff; border: 0; }
.ev2-empty-dates:hover { background: #a53b16; }
.ev2-empty-radius { background: #fff; color: var(--pine); border: 1.5px solid #d5ddd8; }
.ev2-empty-radius:hover { border-color: var(--pine); }
.ev2-empty-dates svg, .ev2-empty-radius svg { width: 18px; height: 18px; flex: none; }
.ev2-empty[hidden], .ev2-empty-dates[hidden], .ev2-empty-radius[hidden] { display: none; }
.ev2-empty-note { margin: 18px 0 0; color: #7d8b86; font-size: .95rem; }
.ev2.is-busy #ev2-results > :not(.is-skel) { display: none; }
.is-skel { pointer-events: none; }
.is-skel .ev2-media,
.is-skel .ev2-bone {
    background: linear-gradient(90deg, #ece7de 25%, #f7f4ee 37%, #ece7de 63%);
    background-size: 400% 100%; animation: ev2sh 1.1s infinite;
}
.is-skel .ev2-date,
.is-skel .ev2-catpill { background: #f7f4ee; box-shadow: none; color: transparent; animation: none; }
.is-skel .ev2-date { width: 46px; height: 52px; padding: 0; }
.is-skel .ev2-catpill { width: 108px; height: 32px; padding: 0; }
.is-skel .ev2-bone { display: block; height: .8em; width: 72%; border-radius: 6px; }
.is-skel .ev2-title { display: flex; flex-direction: column; gap: 6px; -webkit-line-clamp: unset; overflow: visible; }
.is-skel .ev2-title .ev2-bone { width: 92%; height: .9em; }
.is-skel .ev2-title .ev2-bone:last-child { width: 64%; }
.is-skel .ev2-line .ev2-bone { width: 58%; height: .85em; }
.is-skel .ev2-foot .ev2-bone { width: 46%; height: .85em; }
.is-skel .ev2-chev .ev2-bone { width: 16px; height: 16px; border-radius: 4px; }
@keyframes ev2sh { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

.ev2-suggest, .ev2-cal {
    position: absolute; z-index: 40; background: #fff; border-radius: 16px; box-shadow: var(--shadow); border: 1px solid var(--line);
}
.ev2-suggest {
    left: 0; right: auto; top: calc(100% + 8px); width: 100%; min-width: 100%; margin: 0; padding: 6px;
    list-style: none; max-height: 320px; overflow: auto; border-radius: 16px;
    box-shadow: 0 18px 40px rgba(28, 60, 52, .14);
}
.ev2-suggest[hidden], .ev2-cal[hidden], .ev2-drawer[hidden] { display: none; }
.ev2-suggest button {
    width: 100%; text-align: left; border: 0; background: transparent; font: inherit;
    padding: 10px 12px; border-radius: 10px; cursor: pointer; color: var(--pine);
    display: flex; align-items: center; gap: 10px;
}
.ev2-suggest button[aria-selected="true"], .ev2-suggest button:hover { background: #fff1e6; }
.ev2-suggest button[aria-selected="true"] { background: #e7f3ea; box-shadow: inset 0 0 0 1px #b7d4c6; }
.ev2-suggest .ev2-suggest-name {
    display: inline; flex: 1 1 auto; min-width: 0; gap: 0; font-weight: 700; white-space: pre;
}
.ev2-suggest small { margin-left: auto; color: var(--muted); font-size: .82rem; white-space: nowrap; }
.ev2-suggest-geo svg { width: 16px; height: 16px; flex: none; color: var(--orange); }
.ev2-suggest mark {
    display: inline; margin: 0; padding: 0; background: transparent; color: var(--orange);
    font-weight: 800; letter-spacing: 0;
}
.ev2-cal { top: calc(100% + 10px); left: 0; width: min(640px, calc(100vw - 32px)); padding: 14px; }
.ev2-cal-shortcuts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ev2-cal-shortcuts button, .ev2-cal-nav button { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 10px; font: inherit; font-size: .82rem; cursor: pointer; color: var(--pine); }
.ev2-cal-shortcuts button.is-on { background: var(--pine); color: #fff; border-color: var(--pine); }
.ev2-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-weight: 700; }
.ev2-months { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ev2-dow, .ev2-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.ev2-dow { color: var(--muted); font-size: .72rem; font-weight: 700; margin-bottom: 4px; }
.ev2-days button { border: 0; background: transparent; border-radius: 999px; height: 34px; font: inherit; cursor: pointer; color: var(--pine); }
.ev2-days button:disabled { color: #c5cdc9; cursor: default; }
.ev2-days button.is-in { background: var(--pine-soft); }
.ev2-days button.is-end { background: var(--pine); color: #fff; }
.ev2-sheet-bg[hidden] { display: none; }
.ev2-drawer {
    position: fixed; z-index: 60; top: 0; right: 0; height: 100%; width: min(380px, 100%); background: #fff;
    box-shadow: var(--shadow); padding: 22px 18px; overflow: auto;
}
.ev2-drawer h3 { margin: 16px 0 8px; }
.ev2-drawer label { display: flex; gap: 8px; align-items: center; margin: 6px 0; }
.ev2-sheet-bg { position: fixed; inset: 0; background: rgba(28, 60, 52, .35); z-index: 50; border: 0; }

@media (min-width: 720px) {
    .ev2.is-grille .ev2-results { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (min-width: 1040px) {
    .ev2.is-grille .ev2-results { grid-template-columns: 1fr 1fr 1fr; }
}
@media (min-width: 1440px) {
    .ev2.is-grille .ev2-results { grid-template-columns: 1fr 1fr 1fr 1fr; }
}
@media (max-width: 860px) {
    .ev2, .ev2-wrap { max-width: 100%; }
    .ev2-wrap { overflow-x: clip; padding: 0 12px; }
    .ev2-hero { padding-top: 28px; }
    .ev2-hero h1 { overflow-wrap: anywhere; }
    .ev2-search { flex-direction: column; width: 100%; }
    .ev2-search > .ev2-seg { width: 100%; min-height: 52px; }
    .ev2-search > .ev2-seg + .ev2-seg::before { top: 0; bottom: auto; left: 16px; right: 16px; width: auto; height: 1px; }
    .ev2-go { align-self: stretch; width: auto; min-height: 48px; margin: 8px 4px 4px; }
    .ev2-months { grid-template-columns: 1fr; }
    .ev2-head { flex-wrap: wrap; align-items: stretch; }
    .ev2-tools { width: 100%; margin-left: 0; }
    .ev2-sort { width: 100%; height: auto; min-height: 44px; }
    .ev2-sort select { min-height: 44px; width: 100%; font-size: 16px; }
    .ev2-cats { max-width: 100%; min-width: 0; }
    .ev2-chip, .ev2-filters, .ev2-quick-pill, .ev2-suggest button, .ev2-segrow button { min-height: 44px; }
    .ev2-quick-pill { padding: 10px 14px; }
    .ev2-propose { flex: 1 0 100%; margin-left: 0; min-height: 44px; justify-content: flex-end; }
    .ev2-gate-card, .ev2-empty, .ev2-further { padding: 28px 16px 22px; }
    .ev2-sheet-bg { z-index: 4100; }
    .ev2-pop-bg { z-index: 4100; }
    .ev2-cal,
    .ev2-cal.is-anchored,
    .ev2-cal.is-sheet {
        position: fixed; z-index: 4200; left: 0; right: 0; top: auto; bottom: 0; width: 100%; max-width: none;
        height: auto; max-height: 92vh; margin: 0; border-radius: 18px 18px 0 0;
        display: flex; flex-direction: column; overflow: hidden;
        padding: 14px 14px calc(12px + env(safe-area-inset-bottom));
    }
    .ev2-cal.is-over-modal,
    .ev2-cal.is-sheet.is-over-modal { z-index: 5020; }
    .ev2-cal-scroll { overflow: auto; min-height: 0; flex: 1 1 auto; }
    .ev2-cal-shortcuts button, .ev2-cal-nav button, .ev2-days button { min-height: 44px; height: 44px; }
    .ev2-cal-foot {
        display: flex; gap: 8px; flex: none; background: #fff; padding-top: 10px;
        position: sticky; bottom: 0;
    }
    .ev2-cal-foot button {
        flex: 1; min-height: 48px; border-radius: 12px; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer;
    }
    .ev2-cal-foot [data-clear-date] { background: #fff; color: var(--pine); border: 1px solid var(--line); }
    .ev2-cal-foot [data-apply] { background: var(--orange); color: #fff; border: 0; }
    .ev2-suggest.is-sheet {
        position: fixed; z-index: 4200; width: auto; max-height: 60vh; margin: 0;
        border-radius: 16px; box-shadow: 0 18px 40px rgba(28, 60, 52, .18);
    }
    .ev2-morepop.is-sheet {
        position: fixed; z-index: 4200; left: 0; right: 0; top: auto; bottom: 0; width: 100%; min-width: 0;
        max-height: 70vh; border-radius: 18px 18px 0 0; padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
    }
    .ev2-pop, .ev2-pop.is-sheet {
        position: fixed; z-index: 4200; left: 0; right: 0; top: auto; bottom: 0; width: 100%; max-width: none;
        border-radius: 18px 18px 0 0; max-height: 86vh; overflow: auto;
        padding-bottom: calc(14px + env(safe-area-inset-bottom));
    }
    .ev2 input, .ev2 select, .ev2 textarea,
    .ev2 .ev2-seg input, .ev2 .ev2-sort select,
    .ev2-modal input, .ev2-modal select, .ev2-modal textarea { font-size: 16px; }
    .ev2-modal-x { width: 44px; height: 44px; }
    .ev2-modal-apply, .ev2-modal-clear { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .is-skel .ev2-media, .is-skel .ev2-bone, .ev2-morebtn .ev2-spin { animation: none; }
    .ev2-seg,
    .ev2-modal.is-fade, .ev2-modal-bg.is-fade,
    .ev2-pop.is-fade, .ev2-pop-bg.is-fade,
    .ev2-cal.is-fade, .ev2-sheet-bg.is-fade, .ev2-suggest.is-fade, .ev2-morepop.is-fade,
    .ev2-gate.is-fade, .ev2-stage.is-fade, .ev2-head.is-fade {
        transition: none;
    }
}

.ev2-modal-bg { position: fixed; inset: 0; z-index: 5000; border: 0; background: rgba(28, 36, 32, .46); backdrop-filter: blur(3px); }
.ev2-modal-bg[hidden], .ev2-modal[hidden] { display: none; }
.ev2-modal {
    position: fixed; z-index: 5010; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: min(640px, calc(100vw - 32px)); max-height: min(86vh, 820px);
    background: #fff; color: var(--pine); border-radius: 28px; box-shadow: 0 24px 70px rgba(20, 32, 28, .22);
    display: flex; flex-direction: column; overflow: hidden;
}
.ev2-modal-head { position: relative; padding: 26px 56px 8px 28px; text-align: center; }
.ev2-modal-kicker { margin: 0; font-size: .72rem; letter-spacing: .16em; font-weight: 700; color: #8d978f; }
.ev2-modal-head h2 { margin: 6px 0 0; font-size: 1.7rem; letter-spacing: -.03em; }
.ev2-modal-x {
    position: absolute; right: 16px; top: 16px; width: 36px; height: 36px; border-radius: 999px;
    border: 1px solid #e6e2d9; background: #fff; color: var(--pine); font-size: 1.3rem; cursor: pointer;
}
.ev2-modal-body { overflow: auto; padding: 8px 28px 12px; }
.ev2-modal-body section { padding: 16px 0; border-top: 1px solid #eeeae3; }
.ev2-modal-body h3 { margin: 0 0 12px; font-size: 1.02rem; }
.ev2-segrow { display: flex; flex-wrap: wrap; gap: 8px; }
.ev2-segrow button, .ev2-datefield {
    border: 1px solid #e6e2d9; background: #fff; color: var(--pine); border-radius: 10px;
    padding: 10px 12px; font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer;
}
.ev2-segrow button.is-on, .ev2-datefield.is-on { background: #e7f3ea; border-color: #1b7a43; color: var(--pine); }
.ev2-segrow.ev2-audchips button.is-on { background: var(--pine); color: #fff; border-color: var(--pine); }
.ev2-pop-bg { position: fixed; inset: 0; background: rgba(28, 60, 52, .35); z-index: 70; border: 0; }
.ev2-pop-bg[hidden], .ev2-pop[hidden] { display: none; }
.ev2-pop {
    position: fixed; z-index: 80; width: min(420px, calc(100vw - 24px)); background: #fff; color: var(--pine);
    border-radius: 16px; box-shadow: var(--shadow); border: 1px solid var(--line); padding: 14px;
}
.ev2-pop-kicker { margin: 0; font-size: .72rem; letter-spacing: .12em; font-weight: 700; color: var(--muted); }
.ev2-pop-title { margin: 4px 0 12px; font-weight: 700; }
.ev2-pop-count { margin: 12px 0 0; color: var(--muted); font-size: .9rem; }
.ev2-pop-apply, .ev2-cal-apply button {
    border: 0; background: var(--orange); color: #fff; border-radius: 12px; padding: 12px 14px;
    font: inherit; font-weight: 700; cursor: pointer;
}
.ev2-pop-apply { width: 100%; margin-top: 12px; }
.ev2-cal-apply { display: flex; justify-content: flex-end; margin-top: 12px; position: sticky; bottom: 0; background: #fff; padding-top: 8px; }
.ev2-cal.is-anchored { position: fixed; z-index: 80; top: auto; left: auto; overflow: auto; }
.ev2-catgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.ev2-catpick { display: flex; align-items: center; gap: 8px; font-weight: 600; cursor: pointer; }
.ev2-catpick svg { width: 16px; height: 16px; flex: none; }
.ev2-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ev2-datefield { text-align: left; }
.ev2-datefield b { display: block; font-weight: 600; color: var(--muted); }
.ev2-modal-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 22px 18px; border-top: 1px solid #eeeae3; background: #fff;
}
.ev2-modal-clear { border: 0; background: transparent; color: var(--pine); text-decoration: underline; font: inherit; font-weight: 600; cursor: pointer; }
.ev2-modal-apply {
    border: 0; background: var(--orange); color: #fff; border-radius: 12px; padding: 12px 16px;
    font: inherit; font-weight: 700; cursor: pointer;
}
.ev2-cal.is-over-modal { z-index: 5020; }
@media (max-width: 860px) {
    .ev2-modal {
        left: 0; right: 0; top: auto; bottom: 0; transform: none; width: 100%; max-width: none;
        max-height: 100%; height: 100%; border-radius: 18px 18px 0 0;
    }
    .ev2-modal-bg { z-index: 5000; }
    .ev2-modal { z-index: 5010; }
    .ev2-catgrid, .ev2-dates { grid-template-columns: 1fr; }
}

.ev2-modal.is-fade,
.ev2-modal-bg.is-fade,
.ev2-pop.is-fade,
.ev2-pop-bg.is-fade,
.ev2-cal.is-fade,
.ev2-sheet-bg.is-fade,
.ev2-suggest.is-fade,
.ev2-morepop.is-fade,
.ev2-gate.is-fade,
.ev2-stage.is-fade,
.ev2-head.is-fade {
    opacity: 0;
    transition: opacity 200ms ease, transform 200ms ease;
}
.ev2-modal.is-fade.is-in,
.ev2-modal-bg.is-fade.is-in,
.ev2-pop.is-fade.is-in,
.ev2-pop-bg.is-fade.is-in,
.ev2-cal.is-fade.is-in,
.ev2-sheet-bg.is-fade.is-in,
.ev2-suggest.is-fade.is-in,
.ev2-morepop.is-fade.is-in,
.ev2-gate.is-fade.is-in,
.ev2-stage.is-fade.is-in,
.ev2-head.is-fade.is-in { opacity: 1; }
.ev2-modal.is-fade { transform: translate(-50%, calc(-50% + 8px)); }
.ev2-modal.is-fade.is-in { transform: translate(-50%, -50%); }
.ev2-pop.is-fade, .ev2-cal.is-fade, .ev2-suggest.is-fade, .ev2-morepop.is-fade,
.ev2-gate.is-fade, .ev2-stage.is-fade, .ev2-head.is-fade { transform: translateY(8px); }
.ev2-pop.is-fade.is-in, .ev2-cal.is-fade.is-in, .ev2-suggest.is-fade.is-in, .ev2-morepop.is-fade.is-in,
.ev2-gate.is-fade.is-in, .ev2-stage.is-fade.is-in, .ev2-head.is-fade.is-in { transform: none; }
@media (max-width: 860px) {
    .ev2-modal.is-fade { transform: translateY(8px); }
    .ev2-modal.is-fade.is-in { transform: none; }
    .ev2-cal.is-fade.is-in, .ev2-pop.is-fade.is-in, .ev2-suggest.is-fade.is-in, .ev2-morepop.is-fade.is-in { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .ev2-seg,
    .ev2-modal.is-fade, .ev2-modal-bg.is-fade,
    .ev2-pop.is-fade, .ev2-pop-bg.is-fade,
    .ev2-cal.is-fade, .ev2-sheet-bg.is-fade, .ev2-suggest.is-fade, .ev2-morepop.is-fade,
    .ev2-gate.is-fade, .ev2-stage.is-fade, .ev2-head.is-fade {
        transition: none;
    }
}
.ev2-cal[hidden], .ev2-suggest[hidden], .ev2-morepop[hidden], .ev2-pop[hidden], .ev2-sheet-bg[hidden], .ev2-modal[hidden] { display: none !important; }
