/* ==========================================================================
   Pages: Events (index) + Event (detail)
   Layout signature — one page, two halves with different visual logic.
   Upcoming is a dark date rail: chronological, dense, scannable. Past events
   are triptychs, each built on three large images in an offset composition
   that flips on alternate posts, so it never settles into a card row.
   ========================================================================== */

.blob[data-pos="e1"]{--s:320px;left:-9%;top:8%;}
.blob[data-pos="e2"]{--s:280px;right:-7%;top:38%;--d:2s;}
.blob[data-pos="e3"]{--s:300px;left:-6%;top:70%;--d:4s;}
.blob[data-pos="e4"]{--s:300px;right:-8%;top:24%;--d:1.5s;}

/* ==========================================================================
   HERO
   ========================================================================== */
.ev-hero{position:relative;background:var(--forest);padding:190px 0 var(--sec);}
.ev-hero-media{position:absolute;inset:0;z-index:0;}
.ev-hero-media .ph{width:100%;height:100%;}
.ev-hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(75deg,rgba(14,31,23,.95) 20%,rgba(14,31,23,.6));
}
.ev-hero .wrap{position:relative;z-index:var(--z-content);}
.ev-hero-in{max-width:52ch;}
.ev-hero h1{color:#fff;margin-top:22px;font-size:clamp(2.3rem,5vw,3.8rem);}
.ev-hero h1 em{font-style:normal;color:var(--hivis);}
.ev-hero-lede{margin-top:20px;}
.ev-hero-act{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap;}

/* ==========================================================================
   (a) UPCOMING — date rail on a dark ground
   ========================================================================== */
.ev-up{position:relative;background:var(--forest-2);padding:var(--sec) 0 150px;}
.ev-up::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--forest) 0%,var(--forest-2) 40%);
}
.ev-up .wrap{position:relative;z-index:var(--z-content);}
.ev-up .split-head h2{color:#fff;}

.ev-rail{display:grid;gap:16px;}
.ev-row{
  display:grid;grid-template-columns:96px 1fr auto;gap:28px;align-items:center;
  border-radius:var(--r);padding:24px 28px;color:#fff;
  transition:transform var(--dur),box-shadow var(--dur);
}
.ev-row:hover{transform:translateX(6px);box-shadow:0 18px 36px rgba(0,0,0,.28);}

.ev-date{
  text-align:center;border-right:1px solid rgba(255,255,255,.18);
  padding-right:24px;display:flex;flex-direction:column;gap:2px;
}
.ev-date-d{font-family:var(--f-display);font-weight:800;font-size:2.3rem;line-height:1;color:var(--hivis);}
.ev-date-m{font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;}
.ev-date-y{font-size:.66rem;color:var(--on-dark-soft);}

.ev-row-tags{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px;}
.ev-row-b h3{font-size:1.25rem;margin-bottom:8px;color:#fff;}
.ev-row-b h3 a:hover{color:var(--hivis);}
.ev-row-b > p{font-size:.9rem;color:var(--on-dark);margin-bottom:14px;max-width:56ch;}
.ev-row-meta{display:flex;gap:22px;flex-wrap:wrap;}
.ev-row-meta dd{
  display:flex;align-items:center;gap:7px;
  font-family:var(--f-mono);font-size:.76rem;color:var(--on-dark-soft);
}
.ev-row-meta svg{color:var(--hivis);flex-shrink:0;}

/* Registration status reads as a fact, not a nudge — no urgency styling. */
.ev-flag{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;padding:6px 12px;border-radius:var(--pill);
  border:1px solid currentColor;
}
.ev-flag--reg{color:var(--hivis);}
/* On a glass card over forest, so the lightened teal, not the darkened one. */
.ev-flag--open{color:var(--teal-light);}
.ev-flag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}

.ev-empty{border-radius:var(--r);padding:44px 40px;color:#fff;max-width:56ch;}
.ev-empty h3{font-size:1.3rem;margin-bottom:10px;color:#fff;}
.ev-empty p{color:var(--on-dark);margin-bottom:24px;}

/* ==========================================================================
   (b) PAST — triptych grid
   ========================================================================== */
.ev-past{padding:var(--sec) 0;}
.triptychs{display:grid;gap:100px;position:relative;z-index:var(--z-content);}

.tri{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center;}
.tri--flip{grid-template-columns:.75fr 1.25fr;}
.tri--flip .tri-photos{order:2;}
.tri--flip .tri-body{order:1;}

/* Three images: one tall anchor plus two companions, offset rather than
   aligned so the composition never reads as a card. */
.tri-photos{
  display:grid;
  grid-template-columns:1.35fr 1fr;
  grid-template-rows:auto auto;
  gap:16px;
}
.tri-ph{border-radius:var(--r);}
.tri-ph--1{grid-row:1 / span 2;min-height:460px;}
.tri-ph--2{min-height:222px;transform:translateY(-22px);}
.tri-ph--3{min-height:222px;transform:translateY(-22px);}
.tri--flip .tri-photos{grid-template-columns:1fr 1.35fr;}
.tri--flip .tri-ph--1{grid-column:2;}
.tri--flip .tri-ph--2,.tri--flip .tri-ph--3{grid-column:1;}

.tri-meta{display:flex;gap:9px;align-items:center;margin-bottom:12px;}
.tri-dot{color:var(--muted-2);}
.tri-body h3{font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:12px;}
.tri-body h3 a:hover{color:var(--forest-3);}
.tri-body > p{color:var(--muted);margin-bottom:18px;}
.tri-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;}

/* ---- CTA ---- */
.ev-cta{padding:var(--sec) 0;}
.ev-cta-in{max-width:52ch;}
.ev-cta-in .lede{margin:14px 0 28px;}

/* ==========================================================================
   DETAIL
   ========================================================================== */
.eshow-hero{position:relative;background:var(--forest);padding:170px 0 var(--sec);}
.eshow-hero-media{position:absolute;inset:0;z-index:0;}
.eshow-hero-media .ph{width:100%;height:100%;}
.eshow-hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,31,23,.8),rgba(14,31,23,.95));
}
.eshow-hero .wrap{position:relative;z-index:var(--z-content);}
.eshow-hero-in{max-width:58ch;}
.eshow-flags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.eshow-hero h1{color:#fff;font-size:clamp(2rem,4.2vw,3rem);margin-bottom:28px;}

.eshow-facts{display:flex;gap:40px;flex-wrap:wrap;}
.eshow-facts dt{
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--on-dark-soft);margin-bottom:6px;
}
.eshow-facts dd{display:flex;align-items:center;gap:9px;color:#fff;font-weight:600;font-size:.94rem;}
.eshow-facts svg{color:var(--hivis);flex-shrink:0;}

/* ---- Upcoming detail ---- */
.eshow-detail{padding:var(--sec) 0;}
.eshow-grid{display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:start;position:relative;z-index:var(--z-content);}
.eshow-main{max-width:62ch;}
.eshow-detail-text{margin-top:18px;color:var(--muted);}
.eshow-sub{font-size:1.3rem;margin:34px 0 16px;}
.eshow-bring{display:grid;gap:2px;}
.eshow-bring li{
  display:flex;gap:14px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--line);font-size:.96rem;
}
.eshow-bring li:last-child{border-bottom:none;}

.eshow-side{position:sticky;top:110px;display:grid;gap:18px;}
.eshow-reg .card-body,.eshow-open .card-body{padding:30px 28px;}
.eshow-reg-h{font-size:1.25rem;margin-bottom:8px;}
.eshow-reg-p{font-size:.9rem;color:var(--muted);margin-bottom:22px;}
.textarea--short{min-height:96px;}
.eshow-reg-note{font-size:.76rem;color:var(--muted);text-align:center;margin-top:12px;}
.eshow-contact{font-size:.86rem;color:var(--muted);text-align:center;}
.eshow-contact a{color:var(--forest-3);text-decoration:underline;}

/* ---- Past field report ----
   The three images get the full measure. This is the format the Events
   Manager composes to, so the page is built around them rather than
   treating them as decoration.
   ------------------------------------------------------------------------ */
.eshow-report{padding:var(--sec) 0;}
.eshow-report .wrap{position:relative;z-index:var(--z-content);}
.eshow-report-lede{max-width:62ch;margin-bottom:44px;}
.eshow-big{min-height:min(64vh,560px);border-radius:var(--r);margin-bottom:44px;}
.eshow-pair{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;margin-bottom:44px;}
.eshow-prose p{color:var(--muted);font-size:1.02rem;}
.eshow-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;}
.eshow-tall{min-height:520px;border-radius:var(--r);}
.eshow-wide{min-height:420px;border-radius:var(--r);}
.eshow-next{padding:0 0 var(--sec);}
.eshow-next-in{max-width:44ch;margin:0 auto;}
.eshow-next-in h2{margin-bottom:26px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .eshow-grid{grid-template-columns:1fr;gap:44px;}
  .eshow-side{position:static;max-width:520px;}
  .tri,.tri--flip{grid-template-columns:1fr;gap:32px;}
  .tri--flip .tri-photos{order:1;}
  .tri--flip .tri-body{order:2;}
  .triptychs{gap:72px;}
}

@media (max-width:860px){
  .ev-hero{padding:150px 0 var(--sec);}
  .ev-row{grid-template-columns:1fr;gap:18px;padding:22px 22px;}
  .ev-date{
    flex-direction:row;align-items:baseline;gap:10px;text-align:left;
    border-right:none;border-bottom:1px solid rgba(255,255,255,.18);
    padding:0 0 14px;
  }
  .ev-date-d{font-size:1.6rem;}
  .ev-row-act .btn{width:100%;}
  .tri-ph--1{min-height:280px;grid-row:1;grid-column:1 / -1;}
  .tri--flip .tri-ph--1{grid-column:1 / -1;}
  .tri-photos,.tri--flip .tri-photos{grid-template-columns:1fr 1fr;}
  .tri-ph--2,.tri-ph--3{min-height:150px;transform:none;}
  .tri--flip .tri-ph--2{grid-column:1;}
  .tri--flip .tri-ph--3{grid-column:2;}
  .eshow-pair{grid-template-columns:1fr;gap:30px;}
  .eshow-tall{min-height:360px;}
  .eshow-wide{min-height:260px;}
  .eshow-big{min-height:280px;}
  .eshow-facts{gap:24px;}
}
