
:root{--ivory:#f2eee6;--ink:#111;--red:#a52b22;--line:rgba(17,17,17,.16);--muted:#6f6a63}
*{box-sizing:border-box}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",sans-serif}
a{color:inherit;text-decoration:none}
.header{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(242,238,230,.96);backdrop-filter:blur(10px);z-index:20}
.brand{font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.nav{display:flex;gap:24px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.hero{padding:86px clamp(28px,6vw,96px) 72px;display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}
.kicker{color:var(--red);font-size:10px;letter-spacing:.22em;text-transform:uppercase}
h1{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:clamp(80px,11vw,170px);line-height:.86;letter-spacing:-.04em;margin:0}
.intro{max-width:700px;font-size:20px;line-height:1.55;align-self:end}
.footer{background:#0b0b0b;color:#f2eee6;padding:50px clamp(28px,6vw,96px);display:flex;justify-content:space-between;gap:30px;font-size:12px}
@media(max-width:760px){.hero{grid-template-columns:1fr}.nav{display:none}.header{padding:22px}}

.events{margin:0 clamp(28px,6vw,96px) 110px;border-top:1px solid var(--ink)}
.event{display:grid;grid-template-columns:180px minmax(0,1fr);gap:34px;padding:36px 0;border-bottom:1px solid var(--line)}
.when{font-size:10px;letter-spacing:.15em;color:var(--red)}
.event-title-heading{display:block;font-family:"Libre Caslon Display",serif;font-weight:400;font-size:clamp(30px,3vw,48px);line-height:1.05;margin:0 0 8px}
.event p{max-width:720px;font-size:14px;line-height:1.65;margin:10px 0 0}
.place{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px!important;color:var(--muted)}
.event-details summary{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:34px;cursor:pointer;list-style:none}
.event-details summary::-webkit-details-marker{display:none}
.event-details summary:focus-visible{outline:2px solid var(--red);outline-offset:8px}
.event-more{justify-self:end;align-self:start;font-size:10px;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}
.event-more span{display:inline-block;margin-left:8px;color:var(--red);transition:transform .2s ease}
.event-details[open] .event-more span{transform:rotate(45deg)}
.event-details>p{margin-top:22px}
.past{background:#0b0b0b;color:#f2eee6;padding:82px clamp(28px,6vw,96px)}
.past h2{font-family:"Libre Caslon Display",serif;font-size:50px;font-weight:400;margin:0 0 45px}
.past-row{display:grid;grid-template-columns:210px 1fr 180px;gap:24px;border-top:1px solid rgba(255,255,255,.18);padding:18px 0;font-size:12px}
.past-row strong{font-weight:500}
@media(max-width:760px){.event,.past-row{grid-template-columns:1fr;gap:10px}.event-details summary{grid-template-columns:1fr;gap:18px}.event-more{justify-self:start}}

body::after{
  content:"";
  position:fixed;
  z-index:9999;
  left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,#111 0 50%,#a52b22 50% 100%);
  pointer-events:none;
}
.nav-item{
  position:relative;
}
.nav-item-org{
  padding-bottom:12px;
  margin-bottom:-12px;
}
.nav-trigger{
  display:inline-block;
}
.nav-submenu{
  position:absolute;
  top:100%;
  left:-14px;
  min-width:220px;
  padding:12px 0;
  background:rgba(11,11,11,.98);
  color:#f2eee6;
  border:1px solid rgba(255,255,255,.12);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
  z-index:1000;
}
.nav-submenu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-14px;
  height:14px;
}
.nav-submenu a{
  display:block;
  padding:10px 14px;
  white-space:nowrap;
  font-size:10px;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nav-submenu a:hover{
  background:rgba(255,255,255,.08);
}
.nav-item-org:hover .nav-submenu,
.nav-item-org:focus-within .nav-submenu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
@media(max-width:900px){
  .site-nav{display:none}
}
.nav-trigger{
  appearance:none;border:0;background:none;color:inherit;
  display:flex;align-items:center;gap:8px;padding:0;cursor:pointer;
  font:500 9px/1 "DM Sans",sans-serif;
  letter-spacing:.13em;text-transform:uppercase;
}
.nav-trigger i{
  width:5px;height:5px;border-radius:50%;background:#bd3b30;
  display:block;transition:transform .25s ease;
}
.compact-subitem{display:block}
.compact-org-trigger{
  appearance:none;border:0;width:100%;background:none;color:#f4f0e8;
  padding:12px 14px;border-radius:12px;display:flex;
  justify-content:space-between;align-items:center;cursor:pointer;
  font:500 10px/1 "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;
}
.compact-org-trigger:hover{background:rgba(255,255,255,.08)}
.compact-org-trigger span{color:#bd3b30;font-size:14px;line-height:1}
.compact-submenu{display:none;padding:2px 6px 7px 12px}
.compact-subitem.is-open .compact-submenu{display:block}
.compact-submenu a{padding:9px 12px;font-size:9px;opacity:.82}
.compact-submenu a:hover{opacity:1}

/* Header Organisation submenu: no dead hover gap */
.site-nav .nav-item-org{position:relative;padding-bottom:14px;margin-bottom:-14px}
.site-nav .nav-submenu{
  top:100%;
  margin-top:0;
}
.site-nav .nav-submenu::before{
  content:"";
  position:absolute;
  left:0;right:0;
  top:-16px;height:16px;
}
.site-nav .nav-item-org:hover .nav-submenu,
.site-nav .nav-item-org:focus-within .nav-submenu{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}




/* v25: top header is only visible at the top of the page; no separator line */
.header{
  border-bottom:0 !important;
  transition:opacity .22s ease, transform .22s ease !important;
}
.header.header-hidden{
  opacity:0 !important;
  transform:translateY(-110%) !important;
  pointer-events:none !important;
}


/* v27: Organisation submenu stays open across the full hover/focus zone */
.site-nav .nav-item-org{
  position:relative;
  padding-bottom:18px;
  margin-bottom:-18px;
}
.site-nav .nav-item-org::after{
  content:"";
  position:absolute;
  left:-18px;
  right:-18px;
  top:100%;
  height:24px;
}
.site-nav .nav-submenu{
  top:calc(100% + 6px) !important;
  margin-top:0 !important;
  padding-top:14px !important;
}
.site-nav .nav-submenu::before{
  content:"";
  position:absolute;
  left:-18px;
  right:-18px;
  top:-28px;
  height:28px;
}
.site-nav .nav-item-org:hover .nav-submenu,
.site-nav .nav-item-org:focus-within .nav-submenu,
.site-nav .nav-submenu:hover{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:none !important;
}

.site-nav .nav-item-org.submenu-open .nav-submenu{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:none !important;
}


/* definitive Organisation dropdown */
.nav-item-org,.hero-org-item{position:relative}
.nav-item-org:hover .nav-submenu,
.nav-item-org:focus-within .nav-submenu,
.nav-item-org.submenu-open .nav-submenu,
.hero-org-item:hover .hero-submenu,
.hero-org-item:focus-within .hero-submenu,
.hero-org-item.submenu-open .hero-submenu{
 opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important
}
.nav-item-org .nav-submenu::before,.hero-org-item .hero-submenu::before{
 content:"";position:absolute;left:-24px;right:-24px;top:-32px;height:32px
}


/* v38 unified menu behavior */
.page-hero-menu{
  position:fixed;
  top:0; left:0; right:0;
  z-index:1100;
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  padding:26px 34px 0;
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.page-hero-menu.is-hidden{
  opacity:0;
  transform:translateY(-18px);
  pointer-events:none;
}
.page-hero-nav{
  display:flex;
  align-items:center;
  gap:22px;
  color:inherit;
  pointer-events:auto;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.page-hero-nav a{
  text-decoration:none;
  color:inherit;
  white-space:nowrap;
}
.page-org-item{
  position:relative;
  padding-bottom:14px;
  margin-bottom:-14px;
}
.page-org-submenu{
  position:absolute;
  top:100%;
  right:0;
  min-width:220px;
  padding:10px;
  border-radius:14px;
  background:rgba(12,12,12,.94);
  color:#f2eee6;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.page-org-submenu::before{
  content:"";
  position:absolute;
  left:0; right:0; top:-16px; height:16px;
}
.page-org-submenu a{
  display:block;
  padding:9px 11px;
  border-radius:9px;
}
.page-org-submenu a:hover{
  background:rgba(255,255,255,.08);
}
.page-org-item:hover .page-org-submenu,
.page-org-item:focus-within .page-org-submenu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}

@media(max-width:900px){
  .page-hero-menu{display:none}
}


/* v39: after navigation/deep-link, top hero menu is visible first.
   The compact P/T menu only takes over after deliberate scrolling. */
.page-hero-menu.force-visible,
.header.force-visible{
  opacity:1 !important;
  transform:none !important;
  pointer-events:auto !important;
}


/* v40 — authoritative deep-section landing navigation */
.deep-landing-hero-menu{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:2147483000;
  display:flex;
  justify-content:flex-end;
  padding:27px 34px 0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
  transform:translateY(-10px);
}
.deep-landing-hero-menu.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.deep-landing-nav{
  display:flex;
  align-items:center;
  gap:22px;
  color:#111;
  font:500 10px/1 "DM Sans",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.deep-landing-nav a{
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.deep-org-item{
  position:relative;
  padding-bottom:16px;
  margin-bottom:-16px;
}
.deep-org-submenu{
  position:absolute;
  top:100%;
  right:0;
  min-width:225px;
  padding:10px;
  border-radius:14px;
  background:rgba(12,12,12,.96);
  color:#F2EEE6;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(6px);
  transition:.16s ease;
}
.deep-org-submenu::before{
  content:"";
  position:absolute;
  left:0;right:0;top:-18px;height:18px;
}
.deep-org-submenu a{
  display:block;
  padding:10px 12px;
  border-radius:9px;
}
.deep-org-submenu a:hover{background:rgba(255,255,255,.08)}
.deep-org-item:hover .deep-org-submenu,
.deep-org-item:focus-within .deep-org-submenu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}

/* On loose pages, also suppress the normal fixed page menu so there is only one menu. */
body.deep-landing-active .page-hero-menu{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

@media(max-width:900px){
  .deep-landing-hero-menu{display:none}
}


/* v42 — donation CTA */
.donate-menu-btn{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  padding:9px 14px !important;
  border-radius:999px;
  background:#A52B22 !important;
  color:#F2EEE6 !important;
  border:1px solid #A52B22 !important;
  text-decoration:none !important;
}
.donate-menu-btn:hover{
  background:#111 !important;
  border-color:#111 !important;
}


/* v53 — refined navigation: keep entire Hero menu in-frame */
.page-hero-menu,
.deep-landing-hero-menu{
  padding-left:24px !important;
  padding-right:24px !important;
}
.page-hero-nav,
.deep-landing-nav{
  gap:clamp(11px,1.35vw,20px) !important;
  max-width:calc(100vw - 48px);
}
.page-hero-nav a,
.deep-landing-nav a{
  letter-spacing:.105em !important;
}

/* Donate should feel like navigation, not a commercial CTA. */
a.donate-menu-btn{
  display:inline !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:inherit !important;
  text-decoration:none !important;
}
a.donate-menu-btn:hover{
  background:transparent !important;
  border-color:transparent !important;
  opacity:.62;
}

@media(max-width:1180px) and (min-width:901px){
  .page-hero-menu,
  .deep-landing-hero-menu{
    padding-left:18px !important;
    padding-right:18px !important;
  }
  .page-hero-nav,
  .deep-landing-nav{
    gap:10px !important;
    font-size:9px !important;
    letter-spacing:.09em !important;
    max-width:calc(100vw - 36px);
  }
  .page-hero-nav a,
  .deep-landing-nav a{
    letter-spacing:.09em !important;
  }
}


.event h2 .venue{color:var(--red);}
