/* DESS events exit popup. Self-contained: every rule is scoped to .dep and sets its own type
   and colours, so it looks the same on any theme template. Each event card gets its own
   brand colour through --ev (tint, date badge, button) and --ev-ink (text on that colour). */
.dep{
  --dep-ink:#121212;
  --dep-body:#5a5a5a;
  --dep-ease:cubic-bezier(.22,.61,.36,1);
  box-sizing:border-box;
  width:min(var(--dep-max,980px),calc(100% - 32px));
  max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);
  margin:auto;padding:0;border:0;background:transparent;overflow:visible;
  font-family:"Montserrat","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  color:var(--dep-ink);
}
.dep *,.dep *::before,.dep *::after{box-sizing:border-box;}
.dep::backdrop{background:rgba(8,8,8,var(--dep-dim,.7));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.dep[open]{animation:dep-in .5s var(--dep-ease);}
.dep[open]::backdrop{animation:dep-fade .5s var(--dep-ease);}
.dep[open] .dep-ev{animation:dep-card .7s var(--dep-ease) both;animation-delay:calc(.12s + var(--i,0) * .1s);}
@keyframes dep-in{from{opacity:0;transform:translateY(28px) scale(.98);}to{opacity:1;transform:none;}}
@keyframes dep-fade{from{opacity:0;}to{opacity:1;}}
@keyframes dep-card{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}

.dep__panel{outline:none;
  position:relative;overflow-y:auto;
  max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);
  padding:34px 34px 22px;border-radius:var(--dep-radius,14px);
  background:#fff;box-shadow:0 50px 120px rgba(0,0,0,.45);
}
/* thin two-tone rule across the top, echoing the two events */
.dep__panel::before{
  content:"";position:absolute;top:0;left:0;right:0;height:5px;border-radius:var(--dep-radius,14px) var(--dep-radius,14px) 0 0;
  background:linear-gradient(90deg,#C8161D 0 50%,#111 50% 100%);
}

.dep__head{max-width:780px;margin:0 auto 24px;padding:0 36px;text-align:center;}
.dep .dep__eyebrow{
  display:inline-flex;align-items:center;gap:12px;margin:0 0 10px;
  font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.26em;text-transform:uppercase;color:var(--dep-accent,#C8161D);
}
.dep .dep__eyebrow::before,.dep .dep__eyebrow::after{content:"";width:26px;height:1px;background:currentColor;opacity:.6;}
.dep .dep__title{
  margin:0;font-family:inherit;font-size:clamp(26px,3.4vw,38px);font-weight:300;line-height:1.12;
  letter-spacing:-.01em;text-transform:none;color:var(--dep-ink);
}
.dep .dep__title em{font-style:normal;font-weight:700;color:var(--dep-accent,#C8161D);}
.dep .dep__intro{margin:12px auto 0;max-width:520px;font-size:14.5px;line-height:1.6;color:var(--dep-body);}

.dep__grid{display:grid;grid-template-columns:repeat(var(--dep-cols,2),minmax(0,1fr));gap:16px;}

/* ---- event card ---- */
.dep .dep-ev{
  position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;
  min-height:440px;padding:20px;overflow:hidden;border-radius:calc(var(--dep-radius,14px) - 4px);
  background:var(--ev,#111);color:#fff;text-decoration:none;
  box-shadow:0 14px 34px rgba(0,0,0,.18);
  transition:transform .4s var(--dep-ease),box-shadow .4s var(--dep-ease);
}
.dep .dep-ev:hover{transform:translateY(-4px);box-shadow:0 26px 50px rgba(0,0,0,.28);color:#fff;}
.dep-ev__photo{position:absolute;inset:0;z-index:-2;}
.dep-ev__photo img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  transform:scale(1.02);transition:transform 1.1s var(--dep-ease);
}
.dep-ev--top .dep-ev__photo img{object-position:center top;}
.dep-ev--bottom .dep-ev__photo img{object-position:center bottom;}
.dep-ev--left .dep-ev__photo img{object-position:left center;}
.dep-ev--right .dep-ev__photo img{object-position:right center;}
.dep .dep-ev:hover .dep-ev__photo img{transform:scale(1.09);}
/* brand-tinted fade from the bottom so the text always reads, photo stays clear at the top */
.dep-ev__shade{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.55) 42%,rgba(0,0,0,0) 72%);
}
@supports (background:color-mix(in srgb,red,blue)){
  .dep-ev__shade{
    background:linear-gradient(0deg,
      color-mix(in srgb,var(--ev) 92%,#000) 0%,
      color-mix(in srgb,var(--ev) 72%,transparent) 38%,
      color-mix(in srgb,var(--ev) 0%,transparent) 70%),
      linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,0) 60%);
  }
}

.dep-ev__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.dep-ev__date{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:68px;padding:10px 10px 9px;border-radius:10px;
  background:var(--ev,#111);color:var(--ev-ink,#fff);box-shadow:0 10px 24px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.22);
}
.dep-ev__date b{font-size:32px;font-weight:800;line-height:1;letter-spacing:-.02em;}
.dep-ev__date span{margin-top:4px;font-size:11px;font-weight:700;line-height:1;letter-spacing:.24em;text-transform:uppercase;}
.dep-ev__kicker{
  padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--dep-ink);
  font-size:10px;font-weight:700;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;text-align:center;
  box-shadow:0 6px 16px rgba(0,0,0,.16);
}

.dep-ev__body{display:flex;flex-direction:column;align-items:flex-start;}
.dep-ev__school{
  font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.22em;text-transform:uppercase;opacity:.9;
}
.dep-ev__name{
  display:block;margin:6px 0 10px;font-size:clamp(30px,3.6vw,42px);font-weight:800;line-height:1;
  letter-spacing:-.02em;text-transform:none;
}
.dep-ev__meta{
  display:inline-flex;align-items:center;gap:8px;padding:6px 0;
  border-top:1px solid rgba(255,255,255,.35);
  font-size:13px;font-weight:600;line-height:1.4;
}
.dep-ev__meta svg{flex:none;width:15px;height:15px;opacity:.85;}
.dep-ev__blurb{margin-top:4px;font-size:13.5px;font-weight:400;line-height:1.55;color:rgba(255,255,255,.88);}
.dep-ev__btn{
  display:inline-flex;align-items:center;gap:12px;margin-top:18px;padding:14px 22px;border-radius:999px;
  background:#fff;color:var(--dep-ink);
  font-size:11.5px;font-weight:700;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;
  box-shadow:0 10px 22px rgba(0,0,0,.22);
  transition:background .3s var(--dep-ease),color .3s var(--dep-ease),gap .3s var(--dep-ease);
}
.dep-ev__btn svg{width:14px;height:14px;transition:transform .3s var(--dep-ease);}
.dep .dep-ev:hover .dep-ev__btn{background:var(--ev,#111);color:var(--ev-ink,#fff);box-shadow:0 0 0 2px #fff,0 12px 26px rgba(0,0,0,.3);}
.dep .dep-ev:hover .dep-ev__btn svg{transform:translateX(4px);}

.dep .dep__foot{margin:16px 0 0;text-align:center;}
.dep .dep__dismiss{
  margin:0;padding:6px 4px;border:0;background:none;cursor:pointer;
  font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--dep-body);
  text-decoration:underline;text-underline-offset:3px;
}
.dep .dep__dismiss:hover{color:var(--dep-ink);}

.dep .dep__close{
  position:absolute;top:16px;right:16px;z-index:3;display:grid;place-items:center;
  width:40px;height:40px;margin:0;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:#f2f2f2;color:var(--dep-ink);
  transition:transform .25s var(--dep-ease),background .25s var(--dep-ease);
}
.dep .dep__close:hover{transform:rotate(90deg);background:#e6e6e6;}
.dep__close svg{width:18px;height:18px;}
.dep :focus-visible{outline:2px solid var(--dep-accent,#C8161D);outline-offset:3px;}
.dep .dep__panel:focus,.dep .dep__panel:focus-visible{outline:none;}
.dep .dep-ev:focus-visible{outline:3px solid var(--ev,#111);outline-offset:3px;}

@media (max-width:720px){
  .dep{width:calc(100% - 20px);}
  .dep__panel{padding:26px 14px 14px;}
  .dep__head{margin-bottom:16px;padding:0 34px;}
  .dep .dep__intro{display:none;}
  .dep__grid{grid-template-columns:minmax(0,1fr);gap:12px;}
  .dep .dep-ev{min-height:236px;padding:16px;}
  .dep-ev__name{margin:4px 0 8px;font-size:28px;}
  .dep-ev__blurb{display:none;}
  .dep-ev__btn{margin-top:12px;padding:12px 18px;}
  .dep-ev__date{min-width:56px;padding:8px 8px 7px;}
  .dep-ev__date b{font-size:24px;}
  .dep .dep__close{top:10px;right:10px;width:36px;height:36px;}
}
@media (prefers-reduced-motion:reduce){
  .dep[open],.dep[open]::backdrop,.dep[open] .dep-ev{animation:none;}
  .dep-ev__photo img,.dep .dep-ev{transition:none;}
}

/* editor preview */
.dep-editor{margin:16px 0;padding:16px;border:2px dashed #c9c9c9;border-radius:10px;background:#fafafa;}
.dep-editor__note{margin:0 0 14px;font-family:"Montserrat",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.5;color:#444;}
.dep--preview{position:static;display:block;width:100%;max-width:var(--dep-max,980px);margin:0 auto;}
.dep--preview .dep__panel{max-height:none;box-shadow:0 10px 30px rgba(0,0,0,.12);}
