/* ============================================================
   EVENTS — page styles (featured event, list rows, month
   calendar). Carried from the approved comp; the calendar is
   now generated per-month by assets/js/events.js.
   ============================================================ */

/* ---------------- FEATURED EVENT ---------------- */
.event-feature { display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:14px; overflow:hidden; border:1px solid var(--hairline); background:var(--paper); margin-bottom:2.5rem; box-shadow:var(--shadow-card); }
.event-feature__media { position:relative; min-height:320px; overflow:hidden; }
.event-feature__media .duo-img { position:absolute; inset:0; transition:transform 0.6s var(--ease); }
.event-feature:hover .event-feature__media .duo-img { transform:scale(1.04); }
.event-feature__tag { position:absolute; left:1rem; top:1rem; z-index:3; font-size:0.6875rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--spruce); background:var(--goldenrod); padding:0.4rem 0.85rem; border-radius:100px; box-shadow:0 4px 12px rgba(200,146,43,0.35); }
.event-feature__body { padding:clamp(1.75rem,4vw,2.75rem); display:flex; flex-direction:column; justify-content:center; }
.event-feature__eyebrow { color:var(--ridge); font-weight:700; font-size:0.8125rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.75rem; }
.event-feature__body h2 { font-size:clamp(1.7rem,2.6vw,2.15rem); margin-bottom:0.75rem; }
.event-feature__meta { display:flex; flex-wrap:wrap; gap:1.25rem; margin:0.5rem 0 1.25rem; font-size:0.9rem; color:var(--body-muted); font-weight:600; }
.event-feature__meta span { display:inline-flex; align-items:center; gap:0.4rem; }
.event-feature__body p { color:#4a4b44; margin-bottom:1.5rem; max-width:46ch; }

/* ---------------- EVENTS LIST ---------------- */
.event-list { display:grid; gap:1rem; }
.event-list.is-hidden { display:none; }
.event-row { display:grid; grid-template-columns:82px 1fr auto; gap:1.4rem; align-items:center; background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-lg); padding:1.25rem 1.5rem; transition:transform 0.18s var(--ease), box-shadow 0.18s var(--ease), border-color 0.18s; position:relative; overflow:hidden; }
.event-row::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--rowcol,var(--hairline)); opacity:0; transition:opacity 0.18s; }
.event-row:hover { transform:translateY(-2px); box-shadow:var(--shadow-card-hover); border-color:rgba(36,59,50,0.22); }
.event-row:hover::before { opacity:1; }
.event-row[data-cat="fest"]    { --rowcol:var(--spruce); }
.event-row[data-cat="outdoors"]{ --rowcol:var(--ridge); }
.event-row[data-cat="food"]    { --rowcol:var(--goldenrod); }
.event-row[data-cat="history"] { --rowcol:var(--clay); }
.event-row__date { text-align:center; border-right:1px solid var(--hairline); padding-right:1.4rem; }
.event-row__month { font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--goldenrod); font-weight:700; }
.event-row__day { font-family:'Fraunces',serif; font-size:2.1rem; color:var(--spruce); line-height:1; margin-top:2px; }
.event-row__main h3 { font-size:1.2rem; margin-bottom:0.3rem; }
.event-row__meta { font-size:0.85rem; color:#4a4b44; display:flex; flex-wrap:wrap; gap:0.35rem 1rem; }
.event-row__meta span { display:inline-flex; align-items:center; gap:0.35rem; }
.event-row__cat { font-size:0.6875rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; padding:3px 9px; border-radius:100px; align-self:center; white-space:nowrap; }
.event-row__cat.cat-fest    { background:var(--spruce); }
.event-row__cat.cat-outdoors{ background:var(--ridge); }
.event-row__cat.cat-food    { background:var(--goldenrod); color:var(--spruce); }
.event-row__cat.cat-history { background:var(--clay); }
.event-empty { display:none; padding:2.5rem 1rem; text-align:center; color:#6a6b62; font-size:0.95rem; }
.event-empty.is-shown { display:block; }

/* ---------------- CALENDAR VIEW ---------------- */
.calendar { display:none; }
.calendar.is-visible { display:block; }
.cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.1rem; flex-wrap:wrap; gap:0.75rem; }
.cal-title { display:flex; align-items:center; gap:0.75rem; }
.cal-title h3 { font-size:1.4rem; min-width:9ch; }
.cal-nav { display:inline-flex; gap:0.3rem; }
.cal-nav button { width:34px; height:34px; border-radius:8px; border:1px solid var(--hairline); background:var(--paper); color:var(--spruce); cursor:pointer; display:grid; place-items:center; transition:background 0.14s, border-color 0.14s, opacity 0.14s; }
.cal-nav button:hover { background:var(--limestone-soft); border-color:var(--ridge); }
.cal-nav button:disabled { opacity:0.35; cursor:default; background:var(--paper); border-color:var(--hairline); }
.cal-legend { display:flex; gap:1rem; font-size:0.75rem; font-weight:600; color:#5a5b52; flex-wrap:wrap; }
.cal-legend i { width:9px; height:9px; border-radius:50%; display:inline-block; margin-right:4px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); background:var(--hairline); border:1px solid var(--hairline); border-radius:var(--radius-lg); overflow:hidden; gap:1px; box-shadow:var(--shadow-card); }
.cal-dow { background:var(--spruce); color:rgba(239,235,227,0.85); font-size:0.7rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; text-align:center; padding:0.65rem 0; }
.cal-cell { background:var(--paper); min-height:98px; padding:0.5rem 0.55rem; display:flex; flex-direction:column; gap:0.3rem; transition:background 0.14s; }
.cal-cell.has-ev:hover { background:#fff; }
.cal-cell.empty { background:var(--limestone-soft); }
.cal-cell .n { font-size:0.8rem; font-weight:600; color:#6a6b62; }
.cal-cell.today .n { color:var(--spruce); background:var(--goldenrod); width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-weight:700; }
.cal-ev { font-size:0.6875rem; font-weight:600; color:var(--spruce); line-height:1.2; display:flex; gap:5px; align-items:flex-start; background:var(--limestone-soft); border-radius:5px; padding:3px 6px; transition:transform 0.12s var(--ease), background 0.14s; }
.cal-ev:hover { transform:translateX(2px); background:#e0d8c8; }
.cal-ev i { width:7px; height:7px; border-radius:50%; flex:none; margin-top:4px; }
.cal-ev i.cat-fest    { background:var(--spruce); }
.cal-ev i.cat-outdoors{ background:var(--ridge); }
.cal-ev i.cat-food    { background:var(--goldenrod); }
.cal-ev i.cat-history { background:var(--clay); }
.cal-ev.is-dim { display:none; }
@media (max-width:640px) { .cal-cell { min-height:64px; } .cal-ev { display:none; } .cal-cell.has-ev.has-visible::after { content:""; width:6px; height:6px; border-radius:50%; background:var(--goldenrod); } }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:960px) {
  .event-feature { grid-template-columns:1fr; }
  .event-feature__media { min-height:220px; }
}
@media (max-width:560px) {
  .event-row { grid-template-columns:64px 1fr; }
  .event-row__cat { display:none; }
  .toolbar { align-items:stretch; }
}
