/* ============================================================================
   web-events.css — Events landing page + Event detail subpage.
   Requires colors_and_type.css + components.css + web.css.
   ============================================================================ */

/* ---- Extra category tag colors (events taxonomy) ---- */
.fw-tag--sky{background:var(--sky);color:var(--deep);}
.fw-tag--sunshine{background:var(--sunshine);color:var(--sunshine-deep);}

/* ---- Shared event graphic (photo or on-brand color panel) ---- */
.ev-graphic{position:relative;background-size:cover;background-position:center;
  background-color:var(--shell);overflow:hidden}
.ev-graphic.is-past{filter:grayscale(.85) contrast(.95)}
.ev-graphic--panel{display:flex;flex-direction:column;justify-content:flex-end;
  gap:6px;padding:22px}
.ev-graphic__mark{width:22px;height:36px;opacity:.9;margin-bottom:auto}
.ev-graphic__mark svg{display:block;width:100%;height:100%}
.ev-graphic__cat{font-family:var(--font-display);font-weight:800;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.ev-graphic__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(22px,2.4vw,30px);line-height:.94;letter-spacing:-.03em;
  text-transform:uppercase}

/* ============================================================================
   EVENTS LANDING PAGE
   ============================================================================ */
.ev-head{max-width:1180px;margin:0 auto;padding:72px 40px 8px}
.ev-head__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(52px,8vw,112px);letter-spacing:-.035em;line-height:.86;
  text-transform:uppercase;margin:14px 0 0}
.ev-head__lead{font-size:19px;line-height:1.55;color:var(--fg-2);max-width:60ch;margin:24px 0 0}

/* ---- Featured + highlights ---- */
.ev-hero{max-width:1180px;margin:0 auto;padding:40px 40px 8px;
  display:grid;grid-template-columns:1.62fr 1fr;gap:24px;align-items:stretch}

/* Big featured priority card */
.ev-feat{position:relative;display:grid;grid-template-columns:.92fr 1.08fr;gap:0;
  padding:0;overflow:hidden;cursor:pointer;border-radius:var(--radius-lg)}
.ev-feat__media{min-height:420px}
.ev-feat__media.ev-graphic--panel{min-height:420px}
.ev-feat__body{display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  padding:36px 36px 34px}
.ev-feat__ribbon{display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-weight:800;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--flare)}
.ev-feat__ribbon-dot{width:8px;height:8px;border-radius:50%;background:var(--flare);
  box-shadow:0 0 0 0 rgba(254,88,36,.5);animation:evpulse 2s infinite}
@keyframes evpulse{0%{box-shadow:0 0 0 0 rgba(254,88,36,.5)}70%{box-shadow:0 0 0 9px rgba(254,88,36,0)}100%{box-shadow:0 0 0 0 rgba(254,88,36,0)}}
.ev-feat__meta{display:flex;align-items:center;gap:12px;margin-top:2px}
.ev-feat__date{color:var(--fg-3)}
.ev-feat__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(34px,3.8vw,52px);letter-spacing:-.035em;line-height:.92;margin:2px 0 0;
  text-transform:uppercase}
.ev-feat__loc{color:var(--fg-3);font-size:12px}
.ev-feat__blurb{font-size:16px;line-height:1.55;color:var(--fg-2);margin:4px 0 0;max-width:42ch}
.ev-feat__cta{margin-top:auto}

/* Highlights sidebar */
.ev-highlights{display:flex;flex-direction:column;gap:14px}
.ev-highlights__kick{color:var(--fg-3)}
.ev-highlights__list{display:flex;flex-direction:column;gap:12px;flex:1}
.ev-hl{flex:1;display:flex;align-items:stretch;gap:0;text-align:left;
  background:var(--day);border:1.5px solid var(--border);border-radius:var(--radius-md);
  overflow:hidden;cursor:pointer;font:inherit;color:inherit;padding:0;
  transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease}
.ev-hl:hover{transform:translateY(-2px);box-shadow:var(--elev-2);border-color:var(--night)}
.ev-hl__thumb{width:108px;flex-shrink:0}
.ev-hl__thumb.ev-graphic--panel{padding:14px}
.ev-hl__thumb .ev-graphic__mark{width:16px;height:26px}
.ev-hl__thumb .ev-graphic__cat{font-size:9px;letter-spacing:.12em}
.ev-hl__thumb .ev-graphic__title{font-size:15px}
.ev-hl__body{display:flex;flex-direction:column;justify-content:center;gap:4px;
  padding:14px 16px;min-width:0;flex:1}
.ev-hl__date{font-size:10px;letter-spacing:.13em;color:var(--fg-3)}
.ev-hl__title{font-family:var(--font-display);font-weight:800;font-size:19px;
  letter-spacing:-.025em;line-height:1;color:var(--night)}
.ev-hl__loc{font-size:12.5px;color:var(--fg-3)}
.ev-hl__arrow{display:flex;align-items:center;padding-right:16px;color:var(--night);opacity:.55}
.ev-hl:hover .ev-hl__arrow{opacity:1}

/* ---- Weekly rhythm band (always present) ---- */
.ev-weekly{background:var(--shadow);color:var(--day);margin-top:48px;
  padding:64px max(40px,calc(50% - 590px))}
.ev-weekly__head{max-width:1180px;margin:0 auto 28px;display:flex;flex-direction:column;gap:10px}
.ev-weekly__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(30px,4vw,48px);letter-spacing:-.03em;line-height:.96;margin:0;color:var(--day)}
.ev-weekly__grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ev-wk{display:flex;gap:0;background:#2c2a2b;border:1px solid var(--border-dark);
  border-radius:var(--radius-md);overflow:hidden;cursor:pointer;
  transition:transform .12s ease,background .15s ease}
.ev-wk:hover{transform:translateY(-2px);background:#322f30}
.ev-wk__spine{width:8px;flex-shrink:0}
.ev-wk__main{display:flex;flex-direction:column;gap:12px;padding:26px 28px;flex:1;min-width:0}
.ev-wk__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ev-wk__recurs{display:inline-flex;align-items:center;color:var(--sea-foam);font-size:11px}
.ev-wk__title{font-family:var(--font-display);font-weight:800;font-size:30px;
  letter-spacing:-.03em;line-height:.95;margin:0;color:var(--day)}
.ev-wk__blurb{font-size:14.5px;line-height:1.55;color:#c9c9c4;margin:0;flex:1}
.ev-wk__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-top:14px;border-top:1px solid rgba(247,243,240,.14)}
.ev-wk__when{color:#b9b9b3;font-size:11px}
.ev-wk__cta{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);
  font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--flare)}

/* ---- All events ---- */
.ev-all{max-width:1180px;margin:0 auto;padding:64px 40px}
.ev-all__bar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ev-all__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(30px,4vw,48px);letter-spacing:-.03em;line-height:.96;margin:0}
.ev-toggle{display:flex;gap:6px;background:var(--shell);padding:5px;border-radius:var(--radius-pill)}
.ev-toggle__btn{font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;padding:9px 20px;border-radius:var(--radius-pill);border:none;
  background:transparent;color:var(--fg-2);cursor:pointer;transition:.14s}
.ev-toggle__btn:hover{color:var(--night)}
.ev-toggle__btn.is-on{background:var(--night);color:var(--day)}
.ev-filters{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 32px}
.ev-chip{font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;padding:9px 16px;border-radius:var(--radius-pill);
  border:1.5px solid var(--border);background:var(--day);color:var(--fg-2);cursor:pointer;transition:.14s}
.ev-chip:hover{border-color:var(--night);color:var(--night)}
.ev-chip.is-on{background:var(--night);color:var(--day);border-color:var(--night)}

.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ev-card{display:flex;flex-direction:column;background:var(--day);
  border:1.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;
  transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease}
.ev-card:hover{transform:translateY(-3px);box-shadow:var(--elev-2);border-color:var(--night)}
.ev-card.is-past{opacity:.92}
.ev-card.is-past:hover{opacity:1}
.ev-card__media{position:relative;aspect-ratio:16/10}
.ev-card__media .ev-graphic{position:absolute;inset:0}
.ev-card__media .ev-graphic--panel{padding:18px}
.ev-card__badge{position:absolute;top:12px;left:12px;z-index:2;
  font-family:var(--font-display);font-weight:800;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;padding:6px 11px;border-radius:var(--radius-pill);
  background:var(--flare);color:var(--day)}
.ev-card__badge--past{background:rgba(17,17,17,.78);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.ev-card__body{display:flex;flex-direction:column;gap:11px;padding:22px 22px 24px;flex:1}
.ev-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ev-card__date{color:var(--fg-3);font-size:11px}
.ev-card__title{font-family:var(--font-display);font-weight:800;font-size:25px;
  letter-spacing:-.03em;line-height:.96;margin:0}
.ev-card__blurb{font-size:14px;line-height:1.5;color:var(--fg-2);margin:0;flex:1}
.ev-card__link{display:inline-flex;align-items:center;gap:7px;margin-top:2px;
  font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--night)}
.ev-card:hover .ev-card__link{color:var(--flare)}

.ev-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
  padding:72px 24px;border:1.5px dashed var(--border);border-radius:var(--radius-lg);color:var(--fg-3)}
.ev-empty__mark{font-family:var(--font-display);font-weight:800;font-size:48px;line-height:.7;color:var(--sand)}
.ev-empty__t{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--night);margin:8px 0 0}
.ev-empty__b{font-size:15px;margin:0;max-width:38ch}

/* ============================================================================
   EVENT DETAIL SUBPAGE
   ============================================================================ */
.ed{max-width:1180px;margin:0 auto;padding:28px 40px 0}
.ed-back{padding:8px 0 4px}
.ed-back__btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;
  cursor:pointer;font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fg-3);padding:8px 0;transition:color .14s ease}
.ed-back__btn:hover{color:var(--night)}

/* Hero */
.ed-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
  padding:28px 0 56px;border-bottom:1px solid var(--line)}
.ed-hero__text{display:flex;flex-direction:column;gap:18px;min-width:0}
.ed-hero__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ed-hero__flag{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);
  font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--flare)}
.ed-hero__flag--past{color:var(--fg-3)}
.ed-hero__flag--weekly{color:var(--foam)}
.ed-hero__title{font-family:var(--font-display);font-weight:800;
  font-size:clamp(44px,6vw,84px);letter-spacing:-.035em;line-height:.88;margin:0;text-transform:uppercase}
.ed-hero__when{color:var(--fg-3);font-size:13px}
.ed-hero__media{aspect-ratio:4/3;border-radius:var(--radius-lg);min-height:340px}
.ed-hero__media.ev-graphic--panel{padding:32px}
.ed-hero__media .ev-graphic__mark{width:28px;height:46px}
.ed-hero__media .ev-graphic__title{font-size:clamp(30px,3.4vw,46px)}

/* Body */
.ed-body{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start;
  padding:56px 0 64px}
.ed-body__main{display:flex;flex-direction:column;gap:48px;min-width:0}
.ed-lead{font-size:22px;line-height:1.5;color:var(--fg);margin:0;letter-spacing:-.01em;
  font-family:var(--font-body);max-width:52ch}
.ed-section-kick{display:block;color:var(--fg-3);margin-bottom:20px}

.ed-expect__grid{display:flex;flex-direction:column;gap:0}
.ed-expect__item{display:grid;grid-template-columns:48px 1fr;gap:0 18px;
  padding:20px 0;border-top:1px solid var(--line);align-items:baseline}
.ed-expect__item:last-child{border-bottom:1px solid var(--line)}
.ed-expect__n{font-family:var(--font-mono);font-size:13px;color:var(--flare);grid-row:span 2}
.ed-expect__t{font-family:var(--font-display);font-weight:800;font-size:21px;letter-spacing:-.02em;
  line-height:1;margin:0}
.ed-expect__b{font-size:15px;line-height:1.55;color:var(--fg-2);margin:8px 0 0}

.ed-facts__list{display:flex;flex-direction:column;gap:0;margin:0}
.ed-facts__row{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:baseline;
  padding:16px 0;border-top:1px solid var(--line)}
.ed-facts__row:last-child{border-bottom:1px solid var(--line)}
.ed-facts__row dt{color:var(--fg-3)}
.ed-facts__row dd{margin:0;font-family:var(--font-display);font-weight:800;font-size:19px;
  letter-spacing:-.02em;color:var(--night)}
.ed-facts p {margin: 0;}
.ed-facts ul, .ed-facts li {padding: 0;}

.ed-verse{margin:0;padding:36px;background:var(--sea-foam);color:var(--moss);
  border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.ed-verse__cross{width:22px;height:36px}
.ed-verse__cross svg{display:block;width:100%;height:100%}
.ed-verse__t{font-family:var(--font-glare);font-style:italic;font-weight:400;
  font-size:clamp(22px,2.6vw,30px);line-height:1.3;margin:0}
.ed-verse__ref{color:var(--moss);opacity:.8}

/* Action card (sticky) */
.ed-body__side{min-width:0}
.ed-sticky{position:sticky;top:96px}
.ed-action{display:flex;flex-direction:column;gap:14px}
.ed-action__kick{color:var(--fg-3)}
.ed-action__t{font-family:var(--font-display);font-weight:800;font-size:30px;
  letter-spacing:-.03em;line-height:.96;margin:0}
.ed-action__note{font-size:15px;line-height:1.55;color:var(--fg-2);margin:0}
.ed-action__fine{font-size:12.5px;color:var(--fg-3);margin:2px 0 0;text-align:center}
.ed-action--register .ed-action__kick{color:var(--flare-deep)}
.ed-action__price{font-family:var(--font-display);font-weight:800;font-size:72px;
  letter-spacing:-.04em;line-height:.85;color:var(--night)}
.ed-action__price small{font-family:var(--font-body);font-weight:400;font-size:15px;
  letter-spacing:0;margin-left:10px;color:var(--fg-3);text-transform:uppercase}
.ed-action--done,.ed-action--past{align-items:flex-start}
.ed-action__mark{font-family:var(--font-display);font-weight:800;font-size:56px;line-height:.7;color:var(--flare)}
.ed-action__recap{font-size:16px;line-height:1.55;color:var(--fg);margin:0}

/* More events */
.ed-more{padding:56px 0 80px;border-top:1px solid var(--line)}
.ed-more__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}
.ed-more__title{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.4vw,40px);
  letter-spacing:-.03em;line-height:1;margin:0}
.ed-more__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ed-more__card{display:flex;flex-direction:column;gap:0;text-align:left;background:none;border:none;
  cursor:pointer;font:inherit;color:inherit;padding:0}
.ed-more__thumb{aspect-ratio:16/10;border-radius:var(--radius-md);overflow:hidden}
.ed-more__thumb.ev-graphic--panel{padding:16px}
.ed-more__thumb .ev-graphic__title{font-size:19px}
.ed-more__card:hover .ed-more__thumb{box-shadow:var(--elev-2)}
.ed-more__date{color:var(--fg-3);font-size:10px;margin:14px 0 5px}
.ed-more__name{font-family:var(--font-display);font-weight:800;font-size:20px;
  letter-spacing:-.025em;line-height:1;color:var(--night)}
.ed-more__card:hover .ed-more__name{color:var(--flare)}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media(max-width:1080px){
  .ev-hero{grid-template-columns:1fr;gap:20px}
  .ev-feat{grid-template-columns:1fr}
  .ev-feat__media,.ev-feat__media.ev-graphic--panel{min-height:300px}
  .ev-highlights__list{flex-direction:row;flex-wrap:wrap}
  .ev-hl{flex:1 1 280px}
}
@media(max-width:860px){
  .ev-head,.ev-hero,.ev-all,.ed{padding-left:24px;padding-right:24px}
  .ev-weekly{padding-left:24px;padding-right:24px}
  .ev-weekly__grid,.ev-grid,.ed-more__grid{grid-template-columns:1fr}
  .ev-highlights__list{flex-direction:column}
  .ed-hero,.ed-body{grid-template-columns:1fr;gap:28px}
  .ed-hero{padding-bottom:36px}
  .ed-hero__media{order:-1;min-height:260px}
  .ed-sticky{position:static}
  .ev-all__bar{align-items:flex-start}
}
@media(max-width:560px){
  .ev-grid{grid-template-columns:1fr}
}

/* ---- Anchor resets: Kirby renders <a> where static source used <button>/<article> ---- */
a.ev-card,a.ev-hl,a.ev-wk,a.ev-chip,a.ev-toggle__btn,a.ev-feat__cta,a.ev-more__card,
a.ed-more__card{text-decoration:none;color:inherit}
