:root{
  --ink:#171714; --ink-2:#1E201B; --ink-3:#252822;
  --sand:#F2EFE4; --sand-dim:#B9B4A4; --sage:#93A07E;
  --gold:#D6AC3A; --gold-deep:#B08D22; --rule:#33372C;
  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --pad:24px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--ink);color:var(--sand);
  font-family:var(--body);font-size:17px;line-height:1.65;font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:var(--gold);}
.wrap{width:100%;max-width:58rem;margin:0 auto;padding:0 var(--pad);}

/* ---------- site navigation ---------- */
[id]{scroll-margin-top:74px;}
.nav{
  position:sticky;top:0;z-index:60;
  border-bottom:1px solid var(--rule);background:var(--ink);
}
.navwrap{
  width:100%;max-width:70rem;margin:0 auto;padding:10px var(--pad);
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;
}
.nav .brand{
  order:1;margin-right:auto;display:flex;align-items:center;
  text-decoration:none;line-height:0;
}
.nav .brand img{
  height:clamp(26px,4.4vw,32px);width:auto;display:block;
  opacity:.94;transition:opacity .15s ease;
}
.nav .brand:hover img{opacity:1;}
.nav .links{order:2;display:flex;gap:20px;}
.nav .links a{
  font-family:var(--body);font-weight:600;font-size:.68rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--sand-dim);text-decoration:none;white-space:nowrap;
}
.nav .links a:hover{color:var(--gold);}
.nav .links a[aria-current="page"]{color:var(--gold);}
/* same gold and dark text as the hero button, sized for the bar */
.nav .navcta{
  order:3;display:inline-block;
  font-family:var(--body);font-weight:600;font-size:.76rem;letter-spacing:.05em;line-height:1.15;
  padding:8px 18px;border-radius:2px;text-decoration:none;white-space:nowrap;
  background:var(--gold);color:#171714;border:1px solid var(--gold);
  transition:background-color .15s ease,border-color .15s ease;
}
.nav .navcta:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.nav .navcta[aria-current="page"]{background:var(--gold-deep);border-color:var(--gold-deep);}
.nav a:focus-visible,.nav button:focus-visible{outline:2px solid var(--sand);outline-offset:3px;}
.navtoggle{
  order:4;display:none;flex-direction:column;gap:4px;cursor:pointer;
  background:transparent;border:1px solid var(--rule);border-radius:2px;padding:9px 10px;
}
.navtoggle span{display:block;width:17px;height:1.5px;background:var(--sand);}
.navtoggle[aria-expanded="true"]{border-color:var(--gold);}
@media (max-width:767px){
  .navtoggle{display:flex;}
  .nav .links{order:5;flex-basis:100%;display:none;flex-direction:column;gap:14px;
    padding-top:4px;padding-bottom:6px;}
  .nav .links.open{display:flex;}
}

main{padding:52px 0 0;}
.eyebrow{
  font-family:var(--body);font-weight:700;font-size:.62rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--sage);margin:0 0 16px;
}
h1{
  font-family:var(--display);font-weight:400;font-size:clamp(2.3rem,7.5vw,3.4rem);
  line-height:1.02;letter-spacing:-.012em;margin:0 0 16px;
}
h1 em{font-style:italic;color:var(--gold);}
/* ---------- month groups ---------- */
.month{margin:42px 0 0;}
.month h2{
  font-family:var(--display);font-weight:400;font-size:1.45rem;
  color:var(--sand-dim);margin:0 0 4px;
  padding-bottom:12px;border-bottom:1px solid var(--rule);
}

/* ---------- an event ---------- */
.ev{
  display:grid;grid-template-columns:1fr;gap:16px;
  padding:22px 0;border-bottom:1px solid var(--rule);
}
.thumb{
  position:relative;display:block;width:100%;aspect-ratio:16/10;
  border-radius:3px;overflow:hidden;background:var(--ink-3);
  border:1px solid var(--rule);
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95) brightness(.9);}
/* stand-in for events whose Luma cover is still a stock photo */
.thumb.mark{
  background:
    radial-gradient(120% 90% at 50% 12%,rgba(147,160,126,.15),transparent 62%),
    linear-gradient(160deg,#22251E 0%,#1B1D18 100%);
  display:flex;align-items:center;justify-content:center;
}
.thumb.mark svg{
  width:42%;max-width:82px;height:auto;
  fill:none;stroke:var(--gold);stroke-width:1.1;opacity:.5;
}
.when{display:flex;align-items:baseline;gap:10px;}
.dnum{font-family:var(--display);font-weight:400;font-size:2.1rem;line-height:1;color:var(--gold);}
.dtxt{
  font-family:var(--body);font-weight:700;font-size:.58rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sage);line-height:1.5;
}
.nm{
  display:block;font-family:var(--display);font-weight:500;
  font-size:1.45rem;line-height:1.2;color:var(--sand);margin-bottom:6px;
}
.meta{font-size:.9rem;color:var(--sand-dim);margin:0 0 12px;}
.meta span + span::before{content:" · ";opacity:.6;}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;}
.tag{
  font-family:var(--body);font-weight:700;font-size:.54rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sage);
  border:1px solid var(--rule);border-radius:999px;padding:4px 10px;
}
.tag.members{background:var(--gold);color:#171714;border-color:var(--gold);}

.go{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.note{font-size:.82rem;color:var(--sand-dim);}
/* Solid gold means members only, so the button is an outline instead. */
.btn{
  display:inline-block;font-family:var(--body);font-weight:600;font-size:.86rem;
  text-decoration:none;padding:11px 22px;border-radius:2px;cursor:pointer;
  background:transparent;color:var(--gold);border:1px solid var(--gold);
}
/* Luma's checkout script injects its own stylesheet after ours and repaints
   .luma-checkout--button blue. Specific enough to win it back. */
.go a.btn,
.go a.btn.luma-checkout--button{
  background:transparent;color:var(--gold);border:1px solid var(--gold);
  font-family:var(--body);font-weight:600;font-size:.86rem;line-height:normal;
  padding:11px 22px;border-radius:2px;text-decoration:none;box-shadow:none;
}
.go a.btn:hover,
.go a.btn.luma-checkout--button:hover{background:var(--gold);color:#171714;border-color:var(--gold);}
.go a.btn.ghost{background:transparent;color:var(--sand);border-color:rgba(242,239,228,.3);}
.go a.btn.ghost:hover{border-color:var(--gold);color:var(--gold);background:transparent;}

.state{padding:56px 0;text-align:center;color:var(--sand-dim);}
.state p{margin:0 0 18px;}

footer{border-top:1px solid var(--rule);margin-top:54px;padding:28px 0 46px;color:var(--sand-dim);font-size:.86rem;}
footer p{margin:0;}
footer a{color:var(--sand-dim);}

@media (min-width:700px){
  :root{--pad:44px;}
  body{font-size:18px;}
  main{padding:70px 0 0;}
  .ev{grid-template-columns:186px 1fr;gap:26px;align-items:start;}
  .thumb{aspect-ratio:4/3;}
  .when{margin-bottom:10px;}
}
@media (prefers-reduced-motion:reduce){ *{transition:none!important;} }
