/* ==========================================================================
   Clean C Events — front end
   Figma: 1484:114 (cleanups list), 1484:386 (toolbar), 1484:120 (row),
          1484:370 (footnote bar).

   Scoped entirely under .cc-evlist / .cc-evsingle, house rules. Every token
   carries a literal fallback because Layer 1 lives in Customizer > Additional
   CSS and this plugin must not assume it loaded.

   TWO SPECIFICITY TRAPS, both of which have already bitten:

   1. Layer 1 is printed by the Customizer LATE in wp_head, AFTER this
      stylesheet. So any shared class it defines (.cc-h1, .cc-h2, .cc-eyebrow,
      .cc-btn) beats a same-specificity override here purely on source order.
      Every override of a shared class is therefore written as a compound
      selector, e.g. `.cc-h1.cc-evsingle-hero__title`. Layer 3 Raw HTML blocks
      do NOT have this problem, because their <style> sits in the body and
      wins on order.
   2. The `.cc-evlist button` reset below is (0,1,1) and beats a plain
      component class at (0,1,0). Button components are written as
      `.cc-evlist button.cc-evlist__x`.
   ========================================================================== */

.cc-evlist,
.cc-evlist *{ box-sizing:border-box; }

.cc-evlist{
  background:#f3f9fd;
  padding-block:clamp(56px, 7vw, 104px);
  font-family:var(--cc-font-body, 'Manrope', system-ui, sans-serif);
}

/* Porto injects a:hover{color}, a:hover{text-decoration:underline} and
   ul{list-style:disc} at a specificity our classes do not beat on their own. */
.cc-evlist a{ text-decoration:none !important; }
.cc-evlist ul,
.cc-evlist ol{ list-style:none !important; margin:0; padding:0; }
.cc-evlist li{ list-style:none !important; }

/* Buttons do not inherit font-family, and Porto restyles them.
   NOTE the specificity trap here: this selector is (0,1,1), which BEATS a
   plain .cc-evlist__chip at (0,1,0). Any button component below must be
   written as `.cc-evlist button.cc-evlist__x` so its own border, background
   and radius survive this reset. */
.cc-evlist button{
  -webkit-appearance:none; appearance:none;
  margin:0; background:none; border:0; border-radius:0;
  box-shadow:none; text-transform:none;
  font-family:inherit; color:inherit; cursor:pointer;
}

/* ---------- header ---------- */

.cc-evlist__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px, 3vw, 56px);
  align-items:start;
  margin-bottom:clamp(30px, 3.4vw, 48px);
}

.cc-eyebrow.cc-evlist__eyebrow{
  /* Brand blue measures 4.68:1 on #f3f9fd, which passes but with no margin.
     The darker token measures well clear and matches blocks 39 and 43. */
  color:var(--cc-blue-hover, #0b63a0);
  letter-spacing:.153em;                /* Figma 2.816px on 18px */
  margin:0 0 clamp(10px, 1.2vw, 16px);
}

.cc-h2.cc-evlist__title{
  max-width:16ch;
  color:var(--cc-navy, #08334d);
}

.cc-evlist__intro{
  margin:0;
  padding-top:clamp(0px, .6vw, 10px);
  font-size:clamp(16px, 1.05vw, 18px);
  line-height:1.6;
  color:var(--cc-ink, #33454f);
  text-wrap:pretty;
}

/* ---------- toolbar ---------- */

.cc-evlist__bar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:16px;
  min-height:77px;
  padding:14px 22px 14px 16px;
  margin-bottom:clamp(16px, 1.6vw, 22px);
  background:#fff;
  border:1px solid var(--cc-line, #dce7ef);
  border-radius:var(--cc-radius, 14px);
  box-shadow:0 20px 40px -32px rgba(8,51,77,.35);
}

.cc-evlist__filters{ display:flex; flex-wrap:wrap; gap:6px; }

.cc-evlist button.cc-evlist__chip{
  display:inline-flex; align-items:center;
  min-height:38px; padding:0 14px;
  border:1px solid var(--cc-line, #dce7ef);
  border-radius:var(--cc-pill, 999px);
  background:#fff;
  font-weight:700; font-size:13px; line-height:1;
  color:var(--cc-navy, #08334d);
  transition:background-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             border-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evlist button.cc-evlist__chip:hover{
  border-color:var(--cc-blue-mid, #4ea3d8);
  background:var(--cc-pale, #e6f0f6);
}
.cc-evlist button.cc-evlist__chip.is-on{
  background:var(--cc-blue, #0d75bb);
  border-color:var(--cc-blue, #0d75bb);
  color:#fff;
}
.cc-evlist button.cc-evlist__chip:focus-visible{
  outline:3px solid var(--cc-blue-mid, #4ea3d8);
  outline-offset:2px;
}

.cc-evlist__barend{
  display:flex; flex-wrap:wrap; align-items:center; gap:20px;
  margin-left:auto;
}

.cc-evlist__next{
  display:inline-flex; align-items:center; gap:10px;
  margin:0; font-size:14px; line-height:1.35;
  color:var(--cc-ink, #33454f);
}
.cc-evlist__next strong{ color:var(--cc-navy, #08334d); font-weight:700; }
.cc-evlist__next .cc-evlist__icon{ color:var(--cc-blue, #0d75bb); }

.cc-evlist__sub{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; font-size:13.5px; line-height:1;
  color:var(--cc-blue-hover, #0b63a0) !important;
  border-bottom:1px solid rgba(13,117,187,.35);
  padding-bottom:3px;
  transition:border-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evlist__sub:hover{ border-bottom-color:var(--cc-blue, #0d75bb); }
.cc-evlist__sub:focus-visible{
  outline:3px solid var(--cc-blue-mid, #4ea3d8);
  outline-offset:3px; border-radius:3px;
}
.cc-evlist__sub .cc-evlist__icon{ transition:transform .35s var(--cc-ease, cubic-bezier(.22,1,.36,1)); }
.cc-evlist__sub:hover .cc-evlist__icon{ transform:translate(2px,-2px); }

/* ---------- icons ---------- */

.cc-evlist__icon{
  display:inline-flex; flex:0 0 auto;
  width:16px; height:16px;
  color:var(--cc-blue, #0d75bb);
}
.cc-evlist__icon svg{ width:100%; height:100%; display:block; }
.cc-evlist__next .cc-evlist__icon{ width:18px; height:18px; }
.cc-evlist__sub .cc-evlist__icon{ width:14px; height:14px; }
.cc-evlist__icon--info{ width:20px; height:20px; }

/* ---------- rows ---------- */

.cc-evlist__rows{ display:flex; flex-direction:column; gap:12px; }

.cc-evlist__row{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  padding:18px;
  background:#fff;
  border:1px solid var(--cc-line, #dce7ef);
  border-radius:var(--cc-radius, 14px);
  box-shadow:0 20px 40px -32px rgba(8,51,77,.35);
  transition:transform .4s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             box-shadow .4s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             border-color .4s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evlist__row:hover,
.cc-evlist__row:focus-within{
  transform:translateY(-3px);
  border-color:#c7dcea;
  box-shadow:0 26px 48px -28px rgba(8,51,77,.42);
}
.cc-evlist__row[hidden]{ display:none; }

/* date chip */
.cc-evlist__date{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:96px; height:96px; margin:0;
  border-radius:12px;
  background:linear-gradient(160deg, #0b4568 0%, var(--cc-navy, #08334d) 100%);
  text-align:center;
}
.cc-evlist__dow{
  font-weight:700; font-size:10.5px; line-height:1.2;
  letter-spacing:.1em; text-transform:uppercase;
  color:#9fd0f2;
}
.cc-evlist__day{
  font-family:var(--cc-font-display, 'Fraunces', Georgia, serif);
  font-weight:400; font-size:30px; line-height:1.24;
  font-variation-settings:'opsz' 38, 'wght' 400, 'WONK' 1;
  color:#fff;
}
.cc-evlist__mon{
  font-weight:600; font-size:11px; line-height:1.2;
  color:#cfe6f7;
}

/* body */
.cc-evlist__body{ min-width:0; }

.cc-evlist__name{
  margin:0 0 9px;
  font-family:var(--cc-font-display, 'Fraunces', Georgia, serif);
  font-weight:400;
  font-variation-settings:'opsz' 25, 'wght' 400, 'WONK' 1;
  font-size:clamp(18px, 1.55vw, 22.4px);
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--cc-navy, #08334d);
}

.cc-evlist__meta{
  display:flex; flex-wrap:wrap; gap:5px 18px;
  font-size:14.5px; line-height:1.3;
  color:var(--cc-ink, #33454f);
}
.cc-evlist__meta li{ display:flex; align-items:center; gap:7px; min-width:0; }
.cc-evlist__meta strong{ color:var(--cc-navy, #08334d); font-weight:700; }

.cc-evlist__note{
  margin:8px 0 0;
  font-size:13.5px; line-height:1.45;
  color:var(--cc-ink, #33454f);
  font-style:italic;
}

.cc-evlist__tag{
  display:inline-block;
  margin:10px 0 0; padding:3px 10px;
  border-radius:var(--cc-pill, 999px);
  background:#eaf4fb;
  font-weight:700; font-size:11px; line-height:1.4;
  letter-spacing:.08em; text-transform:uppercase;
  color:#095a91;
}

.cc-evlist__cancel{
  margin:9px 0 0;
  font-size:14px; line-height:1.45;
  color:#a3242a;
}
.cc-evlist__cancel strong{ font-weight:700; }

.cc-evlist__row.is-cancelled .cc-evlist__name,
.cc-evlist__row.is-cancelled .cc-evlist__meta{
  text-decoration:line-through;
  opacity:.72;
}
/* Measured: #9fd0f2 on the old lighter grey read 3.55:1. The chip is darker
   and the two labels lighter so the cancelled row is still AA. */
.cc-evlist__row.is-cancelled .cc-evlist__date{
  background:linear-gradient(160deg, #4c5860 0%, #39434a 100%);
}
.cc-evlist__row.is-cancelled .cc-evlist__dow,
.cc-evlist__row.is-cancelled .cc-evlist__mon{ color:#dfe9ee; }
.cc-evlist__row.is-cancelled:hover{ transform:none; }

/* action */
.cc-evlist__act{ margin:0; }

.cc-evlist__btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-width:227px; min-height:38px; padding:0 18px;
  border:1px solid var(--cc-line, #dce7ef);
  border-radius:var(--cc-pill, 999px);
  background:#fff;
  font-weight:700; font-size:13px; line-height:1;
  color:var(--cc-blue-hover, #0b63a0) !important;
  transition:background-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             border-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1)),
             color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evlist__btn:hover{
  background:var(--cc-blue, #0d75bb);
  border-color:var(--cc-blue, #0d75bb);
  color:#fff !important;
}
.cc-evlist__btn:hover .cc-evlist__icon{ color:#fff; transform:translate(2px,-2px); }
.cc-evlist__btn:focus-visible{
  outline:3px solid var(--cc-blue-mid, #4ea3d8);
  outline-offset:3px;
}
.cc-evlist__btn .cc-evlist__icon{
  width:14px; height:14px; color:inherit;
  transition:transform .35s var(--cc-ease, cubic-bezier(.22,1,.36,1)), color .3s ease;
}

/* ---------- empty state ---------- */

.cc-evlist__empty{
  margin:20px 0 0; padding:26px;
  text-align:center;
  background:#fff;
  border:1px dashed rgba(13,117,187,.4);
  border-radius:var(--cc-radius, 14px);
  font-size:15px; line-height:1.6;
  color:var(--cc-ink, #33454f);
}
.cc-evlist__empty[hidden]{ display:none; }

/* ---------- footnote ---------- */

.cc-evlist__foot{
  display:flex; align-items:flex-start; gap:14px;
  max-width:1200px;
  margin:clamp(20px, 2.2vw, 30px) auto 0;
  padding:18px 22px;
  background:#fff;
  border:1px dashed rgba(13,117,187,.4);
  border-radius:var(--cc-radius, 14px);
  font-size:14.5px; line-height:1.6;
  color:var(--cc-ink, #33454f);
}
.cc-evlist__foot a{
  font-weight:700;
  color:var(--cc-blue-hover, #0b63a0) !important;
  border-bottom:1px solid rgba(13,117,187,.35);
}
.cc-evlist__foot a:hover{ border-bottom-color:var(--cc-blue, #0d75bb); }
.cc-evlist__foot .cc-evlist__icon{ margin-top:2px; }

/* ---------- Coming Up variant ---------- */

.cc-evlist--other{ background:#fff; }
/* Figma's brand blue at the top of this chip put the small uppercase "SAT"
   at 4.41:1, just under AA. One step darker, measured at 5.39:1. */
.cc-evlist--other .cc-evlist__date{
  background:linear-gradient(160deg, #0b63a0 0%, #084c76 100%);
}
.cc-evlist--other .cc-evlist__dow{ color:#dcefff; }
.cc-evlist--other .cc-evlist__mon{ color:#e4f2fd; }
.cc-evlist--other .cc-evlist__tag--type{
  background:#f6f0e6;
  color:#7a5518;
}
.cc-evlist--other .cc-evlist__row{ border-color:#e4edf4; }

/* ---------- responsive ---------- */

@media (max-width:1199px){
  .cc-evlist__head{ grid-template-columns:minmax(0,1fr); gap:16px; }
  .cc-h2.cc-evlist__title{ max-width:22ch; }
  .cc-evlist__intro{ max-width:70ch; padding-top:0; }
  .cc-evlist__btn{ min-width:190px; }
  .cc-evlist__row{ gap:22px; }
}

@media (max-width:991px){
  .cc-evlist__row{
    grid-template-columns:84px minmax(0,1fr);
    grid-template-areas:
      "date body"
      "act  act";
    gap:18px;
    row-gap:16px;
  }
  .cc-evlist__date{ grid-area:date; width:84px; height:84px; align-self:start; }
  .cc-evlist__body{ grid-area:body; }
  .cc-evlist__act{ grid-area:act; }
  .cc-evlist__btn{ width:100%; min-width:0; }
  .cc-evlist__day{ font-size:27px; }
}

@media (max-width:767px){
  .cc-evlist__bar{ padding:14px 16px; }
  .cc-evlist__barend{ width:100%; margin-left:0; justify-content:space-between; gap:12px; }
  .cc-evlist__meta{ gap:4px 14px; }
  .cc-evlist__foot{ padding:16px 18px; font-size:14px; }
}

@media (max-width:575px){
  .cc-evlist__row{
    grid-template-columns:72px minmax(0,1fr);
    padding:16px;
    gap:14px; row-gap:14px;
  }
  .cc-evlist__date{ width:72px; height:72px; }
  .cc-evlist__day{ font-size:24px; }
  .cc-evlist__dow{ font-size:10px; }
  .cc-evlist__mon{ font-size:10px; }
  .cc-evlist__meta{ font-size:14px; }
  .cc-evlist__meta li{ width:100%; }
  .cc-evlist__barend{ flex-direction:column; align-items:flex-start; }
}

/* ==========================================================================
   Single event / cleanup detail page
   ========================================================================== */

/* ---------- Porto wrappers ----------
   Porto's single template wraps our output in
     #main.boxed > .container > .row.main-content-wrap > .main-content.col-lg-12
   and Layer 1 additionally pins .container to --cc-max with gutters. The hero
   has to run edge to edge and the page supplies its own .cc-container, so for
   this page only those wrappers are flattened. Scoped to the body class the
   plugin adds, so nothing else on the site is touched. */
body.cc-evsingle-page #main,
body.cc-evsingle-page #main > .container,
body.cc-evsingle-page #main .main-content-wrap,
body.cc-evsingle-page #main .main-content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
}
body.cc-evsingle-page #main .main-content-wrap{ display:block !important; }

/* box-sizing is scoped per component, not block, so this block needs its own.
   Without it .cc-container's padding is added to its 100% width and the
   details card is pushed off the right edge. Porto happens to set border-box
   globally, which would have hidden this until the theme changed. */
.cc-evsingle-hero, .cc-evsingle-hero *,
.cc-evsingle, .cc-evsingle *{ box-sizing:border-box; }

/* ---------- hero ----------
   The site header sits transparent with white links, which only works over a
   dark band. Layer 1's solid-nav fallback is scoped to body.single-post and
   never fires here, so without this hero the nav is white on white. */

.cc-evsingle-hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(135deg, #08334d 0%, #0b4a73 52%, #0b63a0 100%);
  color:#fff;
  font-family:var(--cc-font-body, 'Manrope', system-ui, sans-serif);
}
.cc-evsingle-hero__glow{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60% 120% at 88% 10%, rgba(78,163,216,.34) 0%, rgba(78,163,216,0) 62%),
    radial-gradient(50% 130% at 4% 96%, rgba(11,99,160,.36) 0%, rgba(11,99,160,0) 60%);
}

.cc-evsingle-hero__inner{
  padding-top:calc(var(--cc-nav-h, 122px) + clamp(22px, 3vh, 40px));
  padding-bottom:clamp(40px, 5.4vw, 72px);
}

/* Sits below the fixed nav rather than under it. */
.cc-evsingle-hero__back{
  display:inline-flex; align-items:center; gap:8px;
  margin-bottom:clamp(20px, 2.6vw, 34px);
  font-weight:700; font-size:13px; line-height:1;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--cc-sky, #dcefff) !important;
}
.cc-evsingle-hero__back svg{
  width:16px; height:16px; flex:0 0 16px;
  transition:transform .35s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evsingle-hero__back:hover{ color:#fff !important; }
.cc-evsingle-hero__back:hover svg{ transform:translateX(-4px); }
.cc-evsingle-hero__back span{ border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:3px; }
.cc-evsingle-hero__back:focus-visible{
  outline:3px solid var(--cc-blue-mid, #4ea3d8); outline-offset:4px; border-radius:4px;
}

.cc-eyebrow.cc-evsingle-hero__eyebrow{
  color:var(--cc-sky, #dcefff);
  letter-spacing:.14em;
  margin:0 0 clamp(12px, 1.4vw, 18px);
}

/* .cc-h1 tops out at 112px, which is hero-of-the-homepage scale. A detail
   page title is a heading, not a banner. */
.cc-h1.cc-evsingle-hero__title{
  max-width:20ch;
  color:#fff;
  font-size:clamp(2.2rem, 4.6vw, 68px);
  line-height:1.04;
  letter-spacing:-.02em;
}

.cc-evsingle-hero__meta{
  display:flex; flex-wrap:wrap; gap:10px 30px;
  margin:clamp(20px, 2.4vw, 30px) 0 0; padding:0;
  list-style:none !important;
  font-size:clamp(15px, 1.05vw, 17px); line-height:1.4;
  color:rgba(255,255,255,.94);
}
.cc-evsingle-hero__meta li{
  display:flex; align-items:center; gap:9px;
  list-style:none !important;
}
.cc-evsingle-hero__meta .cc-evsingle__icon{ color:var(--cc-blue-mid, #4ea3d8); }

/* ---------- shared icon ---------- */

.cc-evsingle__icon{
  display:inline-flex; flex:0 0 auto;
  width:16px; height:16px;
  color:var(--cc-blue, #0d75bb);
}
.cc-evsingle__icon svg{ width:100%; height:100%; display:block; }

/* ---------- body ---------- */

.cc-evsingle{
  background:#fff;
  padding-block:clamp(44px, 5.4vw, 84px);
  font-family:var(--cc-font-body, 'Manrope', system-ui, sans-serif);
  color:var(--cc-ink, #33454f);
}
.cc-evsingle a{ text-decoration:none !important; }

.cc-evsingle__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) 372px;
  gap:clamp(32px, 4vw, 64px);
  align-items:start;
}

.cc-evsingle__main{ min-width:0; }

/* Said plainly, because someone about to pay R550 needs to know whose
   bank account it lands in. */
.cc-evsingle__org{
  display:flex; align-items:flex-start; gap:12px;
  margin:0 0 clamp(24px, 3vw, 34px); padding:16px 20px;
  background:#f3f9fd;
  border-left:4px solid var(--cc-blue, #0d75bb);
  border-radius:8px;
  font-size:15px; line-height:1.6;
}
.cc-evsingle__org .cc-evsingle__icon{ width:20px; height:20px; margin-top:2px; }
.cc-evsingle__org strong{ color:var(--cc-navy, #08334d); }
.cc-evsingle__org a{
  font-weight:700;
  color:var(--cc-blue-hover, #0b63a0) !important;
  border-bottom:1px solid rgba(13,117,187,.35);
}

.cc-evsingle__figure{
  margin:0 0 clamp(26px, 3vw, 38px);
  border-radius:var(--cc-radius, 14px);
  overflow:hidden;
  background:linear-gradient(135deg,#0b4a73,#0d75bb 55%,#4ea3d8);
}
.cc-evsingle__img{
  display:block; width:100%; height:auto;
  max-height:520px; object-fit:cover;
}

/* ---------- prose ----------
   Everything inside here comes from the WordPress editor, so it has to be
   styled by element. Without this the headings fall through to Porto's own
   font and the page looks like a different website. */

.cc-evsingle__body{
  max-width:70ch;
  font-size:clamp(16px, 1.08vw, 17.5px);
  line-height:1.7;
  color:var(--cc-ink, #33454f);
  text-wrap:pretty;
}
.cc-evsingle__body > *:first-child{ margin-top:0; }
.cc-evsingle__body > *:last-child{ margin-bottom:0; }

.cc-evsingle__body p{ margin:0 0 1.15em; }

.cc-evsingle__body h2,
.cc-evsingle__body h3,
.cc-evsingle__body h4{
  font-family:var(--cc-font-head, 'Playfair Display', Georgia, serif) !important;
  font-weight:600;
  color:var(--cc-navy, #08334d);
  line-height:1.2;
  text-wrap:balance;
}
.cc-evsingle__body h2{ margin:1.9em 0 .55em; font-size:clamp(24px, 2.1vw, 32px); }
.cc-evsingle__body h3{ margin:1.7em 0 .5em;  font-size:clamp(20px, 1.6vw, 24px); }
.cc-evsingle__body h4{ margin:1.5em 0 .45em; font-size:clamp(18px, 1.3vw, 20px); }

.cc-evsingle__body ul,
.cc-evsingle__body ol{
  margin:0 0 1.25em; padding-left:1.35em;
}
.cc-evsingle__body ul{ list-style:disc !important; }
.cc-evsingle__body ol{ list-style:decimal !important; }
.cc-evsingle__body li{
  list-style:inherit !important;
  margin-bottom:.45em; padding-left:.2em;
}
.cc-evsingle__body li::marker{ color:var(--cc-blue, #0d75bb); }

.cc-evsingle__body strong,
.cc-evsingle__body b{ font-weight:700; color:var(--cc-navy, #08334d); }

.cc-evsingle__body a{
  font-weight:600;
  color:var(--cc-blue-hover, #0b63a0) !important;
  border-bottom:1px solid rgba(13,117,187,.4);
  transition:border-color .3s var(--cc-ease, cubic-bezier(.22,1,.36,1));
}
.cc-evsingle__body a:hover{ border-bottom-color:var(--cc-blue, #0d75bb); }

.cc-evsingle__body blockquote{
  margin:1.6em 0; padding:4px 0 4px 22px;
  border-left:3px solid var(--cc-blue-mid, #4ea3d8);
  font-family:var(--cc-font-head, 'Playfair Display', Georgia, serif);
  font-style:italic; font-size:1.12em; line-height:1.45;
  color:var(--cc-navy, #08334d);
}
.cc-evsingle__body img{
  max-width:100%; height:auto; display:block;
  border-radius:var(--cc-radius, 14px); margin:1.5em 0;
}
.cc-evsingle__body hr{
  border:0; height:1px; margin:2.2em 0;
  background:var(--cc-line, #dce7ef);
}
.cc-evsingle__body table{
  width:100%; border-collapse:collapse; margin:0 0 1.4em; font-size:.96em;
}
.cc-evsingle__body th,
.cc-evsingle__body td{
  text-align:left; padding:10px 12px;
  border-bottom:1px solid var(--cc-line, #dce7ef);
}
.cc-evsingle__body th{ color:var(--cc-navy, #08334d); font-weight:700; }

/* ---------- details card ---------- */

.cc-evsingle__aside{ min-width:0; }

.cc-evsingle__card{
  position:sticky;
  top:calc(var(--cc-nav-h-scrolled, 84px) + 20px);
  padding:26px 26px 28px;
  background:#f3f9fd;
  border:1px solid var(--cc-line, #dce7ef);
  border-radius:var(--cc-radius, 14px);
  box-shadow:0 20px 40px -32px rgba(8,51,77,.35);
}

.cc-evsingle__kicker{
  margin:0 0 16px;
  font-weight:700; font-size:11px; line-height:1;
  letter-spacing:.14em; text-transform:uppercase;
  color:#095a91;
}

.cc-evsingle__dl{ margin:0; padding:0; border-top:1px solid var(--cc-line, #dce7ef); }
.cc-evsingle__row{
  display:flex; align-items:baseline; justify-content:space-between; gap:18px;
  padding:11px 0;
  border-bottom:1px solid var(--cc-line, #dce7ef);
}
.cc-evsingle__row dt{
  margin:0; flex:0 0 auto;
  font-size:14px; line-height:1.4; color:var(--cc-ink, #33454f);
}
.cc-evsingle__row dd{
  margin:0; text-align:right;
  font-size:14px; line-height:1.4; font-weight:700;
  color:var(--cc-navy, #08334d);
}

.cc-evsingle__cardnote{
  margin:16px 0 0;
  font-size:13.5px; line-height:1.5; font-style:italic;
  color:var(--cc-ink, #33454f);
}

.cc-btn.cc-evsingle__cta{
  display:flex; width:100%; margin-top:22px;
  font-size:15px; letter-spacing:.06em; padding-inline:18px;
  white-space:normal; text-align:center;
}

.cc-evsingle__maps{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:16px;
  font-weight:700; font-size:14px; line-height:1;
  color:var(--cc-blue-hover, #0b63a0) !important;
}
.cc-evsingle__maps span:last-child{
  border-bottom:1px solid rgba(13,117,187,.35); padding-bottom:3px;
}
.cc-evsingle__maps:hover span:last-child{ border-bottom-color:var(--cc-blue, #0d75bb); }

/* ---------- responsive ---------- */

@media (max-width:1199px){
  .cc-evsingle__inner{ grid-template-columns:minmax(0,1fr); gap:34px; }
  .cc-evsingle__card{ position:static; max-width:520px; }
  .cc-evsingle__body{ max-width:none; }
  .cc-h1.cc-evsingle-hero__title{ max-width:24ch; }
}

@media (max-width:767px){
  .cc-evsingle-hero__inner{
    padding-top:calc(var(--cc-nav-h, 122px) + 18px);
    padding-bottom:40px;
  }
  .cc-evsingle-hero__meta{ gap:8px 20px; font-size:15px; }
  .cc-evsingle-hero__meta li{ width:100%; }
  .cc-evsingle__card{ padding:22px 20px 24px; }
}

@media (max-width:575px){
  .cc-evsingle__row{ flex-direction:column; align-items:flex-start; gap:2px; }
  .cc-evsingle__row dd{ text-align:left; }
}

/* ---------- motion ---------- */

@media (prefers-reduced-motion:reduce){
  .cc-evsingle-hero__back svg,
  .cc-evsingle__body a,
  .cc-evsingle__maps span{ transition:none !important; }
  .cc-evsingle-hero__back:hover svg{ transform:none; }
  .cc-evlist__row,
  .cc-evlist__btn,
  .cc-evlist button.cc-evlist__chip,
  .cc-evlist__sub,
  .cc-evlist__icon{ transition:none !important; }
  .cc-evlist__row:hover,
  .cc-evlist__row:focus-within{ transform:none; }
  .cc-evlist__btn:hover .cc-evlist__icon,
  .cc-evlist__sub:hover .cc-evlist__icon{ transform:none; }
}
