/* =========================================================================
   RS Public Class Calendar — front-end styles (list + single + modal).
   All scoped under .mecrs. Poppins is inherited from the theme. The sticky
   bits align to the theme header height via --rs-head (set by the site).
   ========================================================================= */

.mecrs{
  --navy:#26334A; --navy-deep:#1d2738; --blue:#546E9A;
  --orange:#F78F2D; --orange-light:#F9BC4D;
  --grey:#F7F7F7; --cream:#F8F0E0; --warm:#F8F0E0; --warm-dark:#EBEBEB;
  --border:#D7DAE0; --text:#26334A; --text-mid:#40444F; --text-light:#708090; --green:#3B6D11;
  --shadow-card:0 2px 4px rgba(38,51,74,.05),0 10px 30px rgba(38,51,74,.07);
  --shadow-sm:0 1px 2px rgba(15,23,42,.04),0 6px 18px rgba(15,23,42,.06);
  --shadow-btn:0 4px 14px rgba(15,23,42,.16);
  --radius:16px;
  font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--text); line-height:1.55; -webkit-font-smoothing:antialiased;
  /* full-bleed, like the site's other sections. overflow-x:clip (NOT hidden) so
     it clips horizontal overflow WITHOUT breaking position:sticky descendants. */
  width:100vw; margin-left:calc(50% - 50vw); overflow-x:clip; background:#fff;
}
.mecrs *{box-sizing:border-box;}
.mecrs a{color:inherit;text-decoration:none;}
.mecrs svg{display:block;}
/* RS homepage container: 1280 max, 60px side padding (→ ~1160 useful), 20px ≤1023 */
.mecrs .wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 60px;}
@media(max-width:1023px){.mecrs .wrap{padding:0 20px;}}

/* ===== Astra single-event canvas reset =====
   Make the CONTENT area (not header/footer) a full-width white canvas so our
   full-bleed sections cover edge-to-edge and no theme (cream) background shows,
   and the content stays centered on tablet/mobile. */
body.single-mec-events{background:#fff !important;}
body.single-mec-events #content,
body.single-mec-events .site-content{background:#fff !important;overflow:visible !important;}
body.single-mec-events #primary{margin:0 !important;padding:0 !important;max-width:100% !important;width:100% !important;}
body.single-mec-events #content > .ast-container{max-width:100% !important;padding:0 !important;display:block !important;}
body.single-mec-events .ast-article-single,
body.single-mec-events article.mec-events,
body.single-mec-events .entry-content{margin:0 !important;padding:0 !important;border:0 !important;background:transparent !important;}
body.single-mec-events .entry-content > *{margin-top:0 !important;}
body.single-mec-events .entry-header,
body.single-mec-events .ast-single-post .entry-title,
body.single-mec-events .ast-breadcrumbs-wrapper,
body.single-mec-events .mec-single-modal{display:none !important;}
/* hide MEC's page-level gateway banner ("You returned from payment gateway successfully").
   IMPORTANT: only re-show .info-msg that MEC has NOT hidden itself (mec-util-hidden),
   otherwise we'd force-show the sold-out ticket notice (which also uses .info-msg). */
body.single-mec-events .info-msg{display:none !important;}
body.single-mec-events .mecrs .info-msg:not(.mec-util-hidden){display:block !important;}
.mecrs a:focus-visible,.mecrs button:focus-visible,.mecrs .pill:focus-visible{outline:3px solid var(--orange-light);outline-offset:2px;border-radius:8px;}

/* ---------------- LIST: filter bar ---------------- */
.mecrs .filters{position:sticky;top:var(--rs-head,0px);z-index:40;background:var(--warm);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.mecrs .filters .wrap{padding:12px 60px;}
.mecrs .filters-grid{display:flex;flex-direction:column;gap:9px;}
.mecrs .filter-group{display:flex;flex-direction:row;align-items:center;gap:6px 12px;flex-wrap:wrap;}
.mecrs .filter-label{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);min-width:104px;flex:none;}
.mecrs .pills{display:flex;gap:6px;flex-wrap:wrap;}
.mecrs .pill{font-family:inherit;font-size:.8rem;font-weight:500;cursor:pointer;padding:5px 12px;border-radius:999px;background:#fff;color:var(--text-mid);border:1.5px solid var(--border);transition:all .16s ease;white-space:nowrap;}
.mecrs .pill:hover{border-color:var(--blue);color:var(--navy);}
.mecrs .pill.active{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600;box-shadow:0 4px 12px rgba(38,51,74,.2);}
.mecrs .filter-select{display:none;font-family:inherit;font-size:.9rem;font-weight:500;color:var(--navy);padding:10px 13px;border:1.5px solid var(--border);border-radius:9px;background:#fff;width:100%;}
@media(max-width:1023px){
  .mecrs .filters .wrap{padding-left:20px;padding-right:20px;}
  .mecrs .calendar .wrap{padding-left:20px;padding-right:20px;}
  .mecrs .filter-group{flex-direction:column;align-items:stretch;gap:6px;}
  .mecrs .filter-label{min-width:0;}
  .mecrs .filters .pills{display:none;}
  .mecrs .filter-select{display:block;}
}

/* ---------------- LIST: calendar ---------------- */
.mecrs .calendar{background:#fff;}
.mecrs .calendar .wrap{padding:36px 60px 40px;}
.mecrs .check-back{font-size:.88rem;color:var(--text-light);margin:0 0 26px;display:flex;align-items:center;gap:9px;}
.mecrs .check-back svg{width:16px;height:16px;stroke:var(--orange);flex:none;}
.mecrs .month-group{margin-bottom:12px;}
.mecrs .month-head{display:flex;align-items:center;gap:16px;margin:24px 0 16px;}
.mecrs .month-head h2{font-size:1.15rem;font-weight:600;color:var(--navy);letter-spacing:-.01em;white-space:nowrap;margin:0;}
.mecrs .month-head .line{flex:1;height:1px;background:var(--border);}
.mecrs .month-head .count{font-size:.75rem;font-weight:600;color:var(--text-light);background:var(--warm);border-radius:999px;padding:3px 11px;white-space:nowrap;}

.mecrs .card{display:flex;align-items:stretch;gap:18px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:11px;box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.mecrs .card:hover{transform:translateY(-3px);box-shadow:0 6px 14px rgba(38,51,74,.08),0 18px 40px rgba(38,51,74,.1);border-color:var(--blue);}
.mecrs .datebox{flex:none;width:100px;border-radius:13px;overflow:hidden;background:linear-gradient(165deg,var(--navy),var(--navy-deep));color:#fff;text-align:center;display:flex;flex-direction:column;box-shadow:0 6px 16px rgba(38,51,74,.22);}
.mecrs .datebox .strip{height:7px;background:linear-gradient(90deg,var(--orange),var(--orange-light));}
.mecrs .datebox .mon{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--orange-light);margin-top:13px;}
.mecrs .datebox .day{font-weight:700;line-height:1;letter-spacing:-.02em;margin:5px 0 2px;font-size:2.4rem;}
.mecrs .datebox .day.range{font-size:1.55rem;letter-spacing:0;}
.mecrs .datebox .day.span{font-size:.92rem;line-height:1.3;font-weight:600;padding:6px 4px;}
.mecrs .datebox .yr{font-size:.7rem;font-weight:400;color:#9fb0c7;margin-bottom:13px;letter-spacing:.06em;}
.mecrs .card-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.mecrs .card-title{font-size:1.05rem;font-weight:600;color:var(--navy);line-height:1.28;letter-spacing:-.01em;margin:0;}
.mecrs .card-title sup{font-size:.6em;font-weight:600;top:-.6em;}
.mecrs .card-outcome{font-size:.88rem;color:var(--text-mid);margin-top:4px;line-height:1.4;max-width:64ch;}
.mecrs .tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}
.mecrs .tag{display:inline-flex;align-items:center;gap:6px;font-size:.73rem;font-weight:600;letter-spacing:.01em;padding:5px 11px;border-radius:8px;}
.mecrs .tag svg{width:13px;height:13px;flex:none;}
.mecrs .tag-format{background:#fff;border:1.5px solid var(--border);color:var(--text-mid);}
.mecrs .tag-format.hands{background:rgba(59,109,17,.09);border-color:rgba(59,109,17,.22);color:var(--green);}
.mecrs .tag-disc{background:var(--navy);color:#fff;}
.mecrs .tag-disc svg{stroke:var(--orange-light);}
.mecrs .facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;}
.mecrs .fact{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:500;color:var(--text-light);}
.mecrs .fact svg{width:14px;height:14px;stroke:var(--blue);flex:none;}
.mecrs .fact b{color:var(--text-mid);font-weight:600;}
.mecrs .card-loc{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:.84rem;color:var(--text-mid);}
.mecrs .card-loc svg{width:16px;height:16px;stroke:var(--blue);flex:none;margin-top:2px;}
.mecrs .card-loc b{font-weight:600;color:var(--navy);}
.mecrs .card-loc .addr{color:var(--text-light);font-weight:400;}
.mecrs .card-actions{flex:none;display:flex;flex-direction:column;justify-content:center;gap:14px;min-width:188px;border-left:1px solid var(--warm-dark);padding-left:22px;}
.mecrs .price-wrap{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;}
.mecrs .price-from{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-light);}
.mecrs .price{font-size:1.42rem;font-weight:700;color:var(--navy);letter-spacing:-.01em;}
.mecrs .price-sub{font-size:.72rem;color:var(--text-light);font-weight:500;margin-top:3px;}
.mecrs .btn-row{display:flex;flex-direction:column;gap:9px;}
.mecrs .btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:.87rem;font-weight:600;cursor:pointer;padding:10px 18px;border-radius:10px;border:1.5px solid transparent;width:100%;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,border-color .16s ease,color .16s ease;}
.mecrs .btn-sm svg{width:15px;height:15px;}
.mecrs .btn-book{background:var(--orange);color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12);}
.mecrs .btn-book:hover{background:var(--navy);transform:translateY(-2px);color:#fff;}
.mecrs .btn-detail{background:#fff;color:var(--navy);border-color:var(--border);}
.mecrs .btn-detail:hover{border-color:var(--navy);background:#F7F7F7;}
.mecrs .empty{display:none;text-align:center;padding:60px 24px;border:2px dashed var(--border);border-radius:var(--radius);background:var(--warm);margin:10px 0 26px;}
.mecrs .empty.show{display:block;}
.mecrs .empty .ico{width:56px;height:56px;border-radius:16px;margin:0 auto 18px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;}
.mecrs .empty .ico svg{width:28px;height:28px;stroke:var(--orange);}
.mecrs .empty h3{font-size:1.2rem;font-weight:600;color:var(--navy);margin-bottom:8px;}
.mecrs .empty p{color:var(--text-mid);max-width:42ch;margin:0 auto;font-size:.94rem;}

.mecrs .reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease;}
.mecrs .reveal.is-visible{opacity:1;transform:none;}

@media(max-width:680px){
  .mecrs .card{flex-direction:column;gap:16px;padding:16px;}
  .mecrs .datebox{width:100%;flex-direction:row;align-items:stretch;}
  .mecrs .datebox .strip{height:auto;width:7px;}
  .mecrs .datebox .inner{display:flex;align-items:baseline;gap:12px;padding:12px 16px;}
  .mecrs .datebox .mon,.mecrs .datebox .day,.mecrs .datebox .yr{margin:0;}
  .mecrs .datebox .day{font-size:1.8rem;}
  .mecrs .datebox .day.range{font-size:1.45rem;}
  .mecrs .card-actions{min-width:0;border-left:none;border-top:1px solid var(--warm-dark);padding-left:0;padding-top:16px;}
  .mecrs .btn-row{flex-direction:row;}
  .mecrs .btn-row .btn-sm{width:auto;flex:1;}
}
@media(min-width:681px){.mecrs .datebox .inner{display:contents;}}

/* ---------------- SINGLE: hero ---------------- */
.mecrs .ev-hero{position:relative;background:radial-gradient(120% 130% at 85% -10%,#324563 0%,var(--navy) 45%,var(--navy-deep) 100%);color:#fff;overflow:hidden;}
.mecrs .ev-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(80% 80% at 80% 10%,#000,transparent 75%);mask-image:radial-gradient(80% 80% at 80% 10%,#000,transparent 75%);pointer-events:none;}
.mecrs .ev-hero .hhead{position:relative;max-width:1280px;margin:0 auto;padding:32px 60px 42px;display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;}
.mecrs .hero-eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:14px;}
.mecrs .ev-hero h1{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:600;line-height:1.12;letter-spacing:-.02em;max-width:22ch;margin:0;color:#fff;}
.mecrs .ev-hero h1 sup{font-size:.5em;top:-.7em;}
.mecrs .hero-meta2{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:26px;}
.mecrs .hm{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#8fa0b8;display:inline-flex;align-items:center;gap:8px;}
.mecrs .hm .dot{color:var(--orange);font-style:normal;font-weight:700;}
.mecrs .hm b{color:#fff;font-weight:700;font-size:.92rem;letter-spacing:0;text-transform:none;}
.mecrs .hero-img{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 22px 50px rgba(0,0,0,.4);background:linear-gradient(150deg,#324563,#1d2738);}
.mecrs .hero-img img{width:100%;height:100%;object-fit:cover;display:block;}
.mecrs .hero-img.noimg{display:flex;align-items:center;justify-content:center;}
.mecrs .hero-img .himg-cap{color:#9fb0c7;font-size:.82rem;font-weight:500;padding:20px;text-align:center;}
@media(max-width:760px){.mecrs .ev-hero .hhead{grid-template-columns:1fr;gap:24px;}.mecrs .hero-img{aspect-ratio:16/9;}}

/* ---------------- SINGLE: body / content ---------------- */
.mecrs .ev-body{background:#fff;}
.mecrs .ev-grid{display:grid;grid-template-columns:1fr 332px;gap:42px;padding:60px 60px 60px;max-width:1280px;margin:0 auto;align-items:start;}
.mecrs .sec{margin-bottom:34px;}
.mecrs .sec:last-child{margin-bottom:0;}
.mecrs .sec-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:12px;}
.mecrs .sec-eyebrow::before{content:"";width:22px;height:2px;background:var(--orange);border-radius:2px;}
.mecrs .sec h2{font-size:1.5rem;font-weight:700;color:var(--navy);letter-spacing:-.02em;margin:0 0 14px;}
.mecrs .sec h3{font-size:1.02rem;font-weight:600;color:var(--navy);margin:18px 0 7px;}
.mecrs .sec h3.rspcc-gap{margin-top:40px;}
.mecrs .sec p,.mecrs .rspcc-rte p{font-size:.95rem;color:var(--text-mid);margin:0 0 12px;}
/* light rich-text (card descriptions + daily outline content) */
.mecrs .rspcc-rte p:last-child{margin-bottom:0;}
.mecrs .rspcc-rte ul{margin:0 0 10px;padding-left:20px;}
.mecrs .rspcc-rte li{font-size:.93rem;color:var(--text-mid);margin:3px 0;}
.mecrs .rspcc-rte a{color:var(--orange);}
.mecrs .able .box .rspcc-rte p{font-size:.93rem;}
.mecrs ul.ticks{list-style:none;padding:0;margin:0;}
.mecrs ul.ticks li{position:relative;padding:6px 0 6px 28px;font-size:.93rem;color:var(--text-mid);}
.mecrs ul.ticks li::before{content:"";position:absolute;left:0;top:9px;width:16px;height:16px;border-radius:5px;background:rgba(59,109,17,.12);}
.mecrs ul.ticks li::after{content:"";position:absolute;left:5px;top:12px;width:6px;height:3px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg);}
.mecrs .kit{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.mecrs .kit .box{background:var(--grey);border:1px solid var(--border);border-radius:14px;padding:20px 22px;}
.mecrs .kit .box.cream{background:var(--cream);border-color:#ecdfc2;}
.mecrs .kit .box h3{margin:0 0 12px;font-size:1.02rem;font-weight:700;color:var(--navy);}
.mecrs .able{display:flex;flex-direction:column;gap:14px;}
.mecrs .able .box{background:var(--grey);border:1px solid var(--border);border-radius:14px;padding:18px 22px;}
.mecrs .able .box h3{margin:0 0 10px;font-size:1rem;font-weight:700;color:var(--navy);}
/* 60px white gap between the navy Daily Outline and the Includes/Expected cards */
.mecrs .lp-wrap{padding:60px 60px 56px;}

/* ---------------- SINGLE: registration card ---------------- */
.mecrs .reg-card{position:sticky;top:calc(var(--rs-head,68px) + 20px);border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden;}
.mecrs .reg-card .strip{height:6px;background:linear-gradient(90deg,var(--orange),var(--orange-light));}
.mecrs .reg-in{padding:20px;}
.mecrs .reg-price .lbl{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);}
.mecrs .reg-price .amt{font-size:1.9rem;font-weight:700;color:var(--navy);letter-spacing:-.01em;line-height:1;margin-top:3px;}
.mecrs .reg-price .per{font-size:.74rem;color:var(--text-light);font-weight:500;}
.mecrs .reg-list{margin:18px 0;border-top:1px solid var(--warm-dark);}
.mecrs .reg-item{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--warm-dark);font-size:.86rem;}
.mecrs .reg-item svg{width:16px;height:16px;stroke:var(--blue);flex:none;margin-top:2px;}
.mecrs .reg-item b{color:var(--navy);font-weight:600;}
.mecrs .reg-item .muted{color:var(--text-light);}
.mecrs .reg-org{background:var(--grey);border-radius:12px;padding:14px 15px;margin-bottom:18px;}
.mecrs .reg-org .h{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);margin-bottom:6px;}
.mecrs .reg-org .nm{font-size:.95rem;font-weight:600;color:var(--navy);margin-bottom:7px;}
.mecrs .reg-org .row{display:flex;align-items:center;gap:8px;font-size:.83rem;color:var(--text-mid);margin-top:4px;}
.mecrs .reg-org .row svg{width:14px;height:14px;stroke:var(--blue);flex:none;}
.mecrs .reg-org .row a:hover{color:var(--orange);}
.mecrs .btn-cta{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;padding:14px 22px;border-radius:11px;border:none;background:var(--orange);color:#fff;box-shadow:var(--shadow-btn);transition:transform .18s ease,background .18s ease,box-shadow .18s ease;}
.mecrs .btn-cta:hover{background:var(--navy);transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.22);color:#fff;}
.mecrs .btn-cta svg{width:17px;height:17px;}
.mecrs .btn-cta.full{width:100%;}
.mecrs .reg-trust{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;font-size:.74rem;color:var(--text-light);}
.mecrs .reg-trust svg{width:13px;height:13px;stroke:var(--green);}

/* ---------------- SINGLE: daily outline (navy tabs) ---------------- */
.mecrs .outline-sec{background:var(--navy);color:#fff;}
.mecrs .outline-sec .wrap{padding:60px 60px 48px;}
.mecrs .outline-sec h2{font-size:1.9rem;font-weight:700;color:#fff;letter-spacing:-.02em;margin:0 0 26px;}
.mecrs .tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px;}
.mecrs .tab{flex:1 1 130px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-bottom:3px solid transparent;border-radius:10px 10px 8px 8px;padding:13px 10px;color:#9fb0c7;font-family:inherit;font-weight:600;font-size:.9rem;cursor:pointer;text-align:center;transition:all .16s ease;}
.mecrs .tab:hover{background:rgba(255,255,255,.08);color:#fff;}
.mecrs .tab.active{background:rgba(255,255,255,.09);color:#fff;border-bottom-color:var(--orange);}
.mecrs .topic{display:none;}
.mecrs .topic.active{display:block;animation:rspccFade .25s ease;}
@keyframes rspccFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.mecrs .topic h3{font-size:1.45rem;font-weight:700;color:#fff;margin:0 0 14px;letter-spacing:-.01em;}
.mecrs .topic ul{list-style:none;padding:0;margin:0;}
.mecrs .topic li{position:relative;padding:14px 0 14px 24px;border-bottom:1px solid rgba(255,255,255,.09);color:#d4dbe6;font-size:.98rem;}
.mecrs .topic li:last-child{border-bottom:none;}
.mecrs .topic li::before{content:"";position:absolute;left:0;top:21px;width:9px;height:9px;border-radius:50%;background:var(--orange);}
/* daily outline description (navy section) — light text; lists reuse .topic li */
.mecrs .topic .rspcc-rte p{color:#d4dbe6;font-size:.98rem;margin:0 0 12px;}
.mecrs .topic .rspcc-rte a{color:var(--orange-light);}
.mecrs .topic .rspcc-rte ul{list-style:none;padding:0;margin:0;}

/* ---------------- SINGLE: responsive + sticky CTA ---------------- */
.mecrs .reg-sticky-spacer{height:0;}
@media(max-width:1023px){
  .mecrs .ev-grid{grid-template-columns:1fr;gap:28px;padding:36px 20px 40px;}
  .mecrs .ev-hero .hhead{padding-left:20px;padding-right:20px;}
  .mecrs .outline-sec .wrap{padding:40px 20px;}
  .mecrs .lp-wrap{padding:48px 20px;}
  .mecrs .reg-card{position:static;order:-1;}
  .mecrs .kit{grid-template-columns:1fr;}
  /* Register bar pins to the top only after it is scrolled past (.pinned via JS) */
  .mecrs .reg-sticky.pinned{position:fixed;top:calc(var(--rs-head,68px) + 8px);left:0;right:0;z-index:120;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 6px 22px rgba(15,23,42,.14);padding:10px 16px;display:flex;align-items:center;gap:16px;max-width:100%;}
  .mecrs .reg-sticky.pinned .btn-cta{margin:0;flex:1;}
  .mecrs .reg-sticky.pinned .reg-trust{margin:0;white-space:nowrap;}
}

/* ---------------- SINGLE: booking modal (native MEC inside) ---------------- */
.mecrs .ovl{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);}
.mecrs .ovl.open{display:flex;}
.mecrs .modal{background:#fff;width:100%;max-width:680px;max-height:92vh;border-radius:18px;box-shadow:0 30px 70px rgba(15,23,42,.4);display:flex;flex-direction:column;overflow:hidden;}
.mecrs .modal-h{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex:none;}
.mecrs .modal-h .ttl{font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);}
.mecrs .modal-x{width:34px;height:34px;border-radius:9px;border:none;background:var(--grey);color:var(--text-mid);cursor:pointer;font-size:1rem;display:grid;place-items:center;}
.mecrs .modal-x:hover{background:var(--warm-dark);}
.mecrs .modal-b{padding:18px 20px;overflow-y:auto;}

/* ===== Native MEC booking module, restyled to resemble the mockup =====
   (First pass — refined once seen live. Uses the real MEC classes.) */
.mecrs .modal-b .mec-booking,
.mecrs .modal-b .mec-events-meta-group-booking,
.mecrs .modal-b .mec-event-meta{margin:0;padding:0;border:none;box-shadow:none;background:transparent;}
.mecrs .modal-b .mec-booking,
.mecrs .modal-b .mec-booking *{font-family:inherit;}

/* progress bar (stepper) */
.mecrs .modal-b .mec-booking-progress-bar{display:flex;list-style:none;margin:0 0 24px;padding:0;}
.mecrs .modal-b .mec-booking-progress-bar li{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:.68rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.02em;text-align:center;position:relative;}
.mecrs .modal-b .mec-booking-progress-bar li::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--warm-dark);z-index:0;}
.mecrs .modal-b .mec-booking-progress-bar li:first-child::before{display:none;}
.mecrs .modal-b .mec-booking-progress-bar li .progress-index{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--border);display:grid;place-items:center;font-weight:700;color:var(--text-light);font-size:.82rem;}
.mecrs .modal-b .mec-booking-progress-bar li.mec-active{color:var(--navy);}
.mecrs .modal-b .mec-booking-progress-bar li.mec-active::before{background:var(--orange);}
.mecrs .modal-b .mec-booking-progress-bar li.mec-active .progress-index{background:var(--navy);border-color:var(--navy);color:#fff;}

/* tickets */
.mecrs .modal-b .mec-event-tickets-list{margin:0 0 8px;}
.mecrs .modal-b .mec-book-ticket-container,
.mecrs .modal-b .mec-event-ticket{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;margin:0 0 11px;background:#fff;}
.mecrs .modal-b .mec-ticket-icon-wrapper{display:none;}
.mecrs .modal-b .mec-ticket-name-description-wrapper,
.mecrs .modal-b .mec-ticket-style-row-section-2{flex:1;min-width:150px;}
.mecrs .modal-b .mec-event-ticket-name{font-weight:600;color:var(--navy);font-size:.96rem;}
.mecrs .modal-b .mec-event-ticket-description{font-size:.8rem;color:var(--text-light);margin-top:2px;}
.mecrs .modal-b .mec-event-ticket-price{font-weight:700;color:var(--navy);font-size:1.05rem;white-space:nowrap;}
.mecrs .modal-b .mec-event-ticket-available{font-size:.74rem;color:var(--text-light);width:100%;}
.mecrs .modal-b .mec-ticket-style-row-section-3{margin-left:auto;display:flex;align-items:center;gap:12px;}
.mecrs .modal-b .mec-booking-quantity-holder input,
.mecrs .modal-b .mec-booking-quantity-holder select{border:1.5px solid var(--border);border-radius:9px;padding:8px 10px;font-family:inherit;font-size:.9rem;background:#fff;}
.mecrs .modal-b .mec-book-price-total,
.mecrs .modal-b .mec-book-price-payable,
.mecrs .modal-b .mec-book-form-price{font-weight:700;color:var(--navy);}
/* attendee/reg field rows */
.mecrs .modal-b .mec-book-reg-field-name,
.mecrs .modal-b .mec-book-reg-field-email,
.mecrs .modal-b .mec-book-reg-field-tel,
.mecrs .modal-b .mec-book-reg-field-text,
.mecrs .modal-b .mec-book-reg-field-textarea,
.mecrs .modal-b .mec-book-reg-field-date{margin:0 0 13px;display:flex;flex-direction:column;gap:6px;}
/* button row */
.mecrs .modal-b .mec-book-form-btn-wrap{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}

/* form fields */
.mecrs .modal-b .mec-booking label{font-size:.78rem;font-weight:600;color:var(--text-mid);}
.mecrs .modal-b .mec-booking input[type="text"],
.mecrs .modal-b .mec-booking input[type="email"],
.mecrs .modal-b .mec-booking input[type="tel"],
.mecrs .modal-b .mec-booking input[type="number"],
.mecrs .modal-b .mec-booking textarea,
.mecrs .modal-b .mec-booking select{font-family:inherit;font-size:.92rem;padding:11px 13px;border:1.5px solid var(--border);border-radius:9px;background:#fff;color:var(--text);max-width:100%;}
.mecrs .modal-b .mec-booking input:focus,
.mecrs .modal-b .mec-booking textarea:focus,
.mecrs .modal-b .mec-booking select:focus{outline:none;border-color:var(--blue);}

/* payment gateways (Credit Card / Purchase Order) */
.mecrs .modal-b .mec-book-form-gateways{display:block;margin:6px 0 18px;padding:0;}
.mecrs .modal-b .mec-book-form-gateways-title{font-size:1.05rem;font-weight:700;color:var(--navy);margin:0 0 12px;}
.mecrs .modal-b .mec-book-form-gateways-radio-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:0;list-style:none;}
.mecrs .modal-b .mec-book-form-gateway-option{flex:1;min-width:180px;display:flex;align-items:center;gap:10px;border:1.5px solid var(--border);border-radius:11px;padding:13px 15px;font-weight:600;color:var(--navy);cursor:pointer;background:#fff;margin:0;}
.mecrs .modal-b .mec-book-form-gateway-option-title{flex:1;}
.mecrs .modal-b .mec-book-form-gateway-option-svg{width:26px;height:26px;display:grid;place-items:center;flex:none;}
.mecrs .modal-b .mec-book-form-gateway-option-radio{flex:none;}

/* primary buttons (Next / Book / Submit) */
.mecrs .modal-b .mec-book-form-next-button,
.mecrs .modal-b .mec-book-form-btn-step-1,
.mecrs .modal-b .mec-book-buttons a,
.mecrs .modal-b .mec-booking button[type="submit"],
.mecrs .modal-b .mec-booking input[type="submit"]{background:var(--orange);color:#fff;border:none;border-radius:11px;padding:13px 24px;font-weight:600;font-family:inherit;font-size:.95rem;box-shadow:var(--shadow-btn);cursor:pointer;transition:background .18s ease,transform .18s ease;}
.mecrs .modal-b .mec-book-form-next-button:hover,
.mecrs .modal-b .mec-book-form-btn-step-1:hover{background:var(--navy);transform:translateY(-1px);}

/* messages */
.mecrs .modal-b .mec-red-notification,
.mecrs .modal-b .mec-error{color:#b32d2e;}
.mecrs .modal-b .mec-success{color:var(--green);}
.mecrs .modal-b .mec-util-hidden{display:none;}

/* --- Neutralize MEC's internal grid (.row / columns) → one clean column --- */
.mecrs .modal-b .mec-wrap-checkout,
.mecrs .modal-b .mec-booking-form-container,
.mecrs .modal-b .mec-booking .row{display:block !important;margin-left:0 !important;margin-right:0 !important;width:100% !important;}
.mecrs .modal-b .mec-booking .row > div,
.mecrs .modal-b .mec-booking [class*="mec-col-"],
.mecrs .modal-b .mec-booking [class^="col-"],
.mecrs .modal-b .mec-booking [class*=" col-"]{float:none !important;width:100% !important;max-width:100% !important;flex:0 0 100% !important;padding-left:0 !important;padding-right:0 !important;}
.mecrs .modal-b .mec-booking:after,
.mecrs .modal-b .mec-booking .row:after{content:"";display:block;clear:both;}

/* price summary as a tidy grey card (was a floating left column) */
.mecrs .modal-b .mec-book-form-price{background:var(--grey) !important;border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin:0 0 18px !important;float:none !important;width:100% !important;}
.mecrs .modal-b .mec-book-available-tickets-details-item,
.mecrs .modal-b .mec-book-price-detail{display:flex;justify-content:space-between;gap:10px;font-size:.86rem;color:var(--text-mid);margin:4px 0;padding:0;border:none;}
.mecrs .modal-b .mec-book-price-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--warm-dark);}
.mecrs .modal-b .mec-book-price-total-amount{font-size:1.2rem;font-weight:700;color:var(--navy);}
.mecrs .modal-b .mec-book-price-detail-icon{display:none;}

/* payment gateways stacked below the heading, full width */
.mecrs .modal-b .mec-book-form-gateways{clear:both;width:100% !important;float:none !important;}

/* --- Final booking polish (Option A) --- */
/* one title only: keep our header, hide MEC's per-step <h4> ("Book Event"/"Attendee's Form"/"Checkout") */
.mecrs .modal-b .mec-booking h4{display:none !important;}
/* no field icons anywhere in the booking form. MEC uses several icon classes:
   attendee step = .mec-field-icon ; Stripe checkout = .mec-booking-name/email-field-icon */
.mecrs .modal-b [class*="field-icon"]{display:none !important;}
.mecrs .modal-b .mec-field-wrapper,
.mecrs .modal-b .mec-booking-name-field-wrapper,
.mecrs .modal-b .mec-booking-email-field-wrapper{display:block;position:static;}
/* kill list bullets on the reg-field / ticket lists */
.mecrs .modal-b .mec-book-tickets-reg-fields-container,
.mecrs .modal-b .mec-book-tickets-reg-fields-container > li,
.mecrs .modal-b .mec-book-bfixed-fields-container,
.mecrs .modal-b .mec-book-bfixed-fields-container > li,
.mecrs .modal-b .mec-book-tickets-container,
.mecrs .modal-b .mec-book-tickets-container > li{list-style:none !important;}
.mecrs .modal-b .mec-book-tickets-reg-fields-container,
.mecrs .modal-b .mec-book-bfixed-fields-container,
.mecrs .modal-b .mec-book-tickets-container{margin:0;padding:0;}
/* "Fill other attendees" checkbox → navy #26334A (default is cyan) */
.mecrs .modal-b input[type="checkbox"]{accent-color:var(--navy);}
.mecrs .modal-b .wn-checkbox-label{border-color:var(--navy) !important;}
.mecrs .modal-b input[type="checkbox"]:checked + .wn-checkbox-label{background-color:var(--navy) !important;border-color:var(--navy) !important;}
.mecrs .modal-b .wn-checkbox-label:before,
.mecrs .modal-b .wn-checkbox-label:after{background-color:#fff !important;}
/* buttons: navy Back (no arrow), orange Next/Pay (no arrow) */
.mecrs .modal-b .mec-book-form-back-button{background:var(--navy) !important;color:#fff !important;border:none !important;border-radius:11px !important;padding:13px 24px !important;font-weight:600 !important;font-family:inherit !important;font-size:.95rem !important;box-shadow:var(--shadow-btn) !important;cursor:pointer;}
.mecrs .modal-b .mec-book-form-back-button:hover{background:var(--navy-deep) !important;}
/* no arrows in Next/Back/Pay — MEC renders them as inline <svg> OR <img class="mec-svg-icon"> */
.mecrs .modal-b .mec-book-form-next-button svg,
.mecrs .modal-b .mec-book-form-next-button img,
.mecrs .modal-b .mec-book-form-next-button .mec-svg-icon,
.mecrs .modal-b .mec-book-form-back-button svg,
.mecrs .modal-b .mec-book-form-back-button img,
.mecrs .modal-b .mec-book-form-back-button .mec-svg-icon,
.mecrs .modal-b .mec-book-form-pay-button svg,
.mecrs .modal-b .mec-book-form-pay-button img,
.mecrs .modal-b .mec-book-form-pay-button .mec-svg-icon,
.mecrs .modal-b .mec-book-form-btn-wrap button svg,
.mecrs .modal-b .mec-book-form-btn-wrap button img{display:none !important;}
/* our attendee split (Continue / Back / hidden fields) — high specificity so it always wins */
.mecrs .modal-b .rspcc-att-hide,
.mecrs .modal-b button.rspcc-att-hide,
.mecrs .modal-b li.rspcc-att-hide{display:none !important;}
/* the MEC button wrap becomes a clean right-aligned flex row (no floats / stray margins) */
.mecrs .modal-b .rspcc-btn-wrap{display:flex !important;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;}
.mecrs .modal-b .rspcc-btn-wrap > *{float:none !important;margin:0 !important;}
.mecrs .modal-b .rspcc-continue{background:var(--orange);color:#fff;border:none;border-radius:11px;padding:13px 24px;font-weight:600;font-family:inherit;font-size:.95rem;box-shadow:var(--shadow-btn);cursor:pointer;transition:background .18s ease;}
.mecrs .modal-b .rspcc-continue:hover{background:var(--navy);}
.mecrs .modal-b .rspcc-att-back{background:var(--navy);color:#fff;border:none;border-radius:11px;padding:13px 24px;font-weight:600;font-family:inherit;font-size:.95rem;box-shadow:var(--shadow-btn);cursor:pointer;}
.mecrs .modal-b .rspcc-att-back:hover{background:var(--navy-deep);}
.mecrs .modal-b .rspcc-invalid input,
.mecrs .modal-b input.rspcc-invalid{border-color:#b32d2e !important;}

/* only ONE Subtotal: keep the overall top wrapper, hide the per-ticket duplicate */
.mecrs .modal-b .mec-book-ticket-container .mec-ticket-detail .mec-ticket-price-wrapper{display:none !important;}

/* identical FIXED size for every modal action button (Back / Next / Pay / Continue / my Back).
   The MEC Back button carries an #id with high-specificity rules, so we force height + flex-center. */
.mecrs .modal-b .mec-book-form-back-button:not(.rspcc-att-hide),
.mecrs .modal-b .mec-book-form-next-button:not(.rspcc-att-hide),
.mecrs .modal-b .mec-book-form-pay-button:not(.rspcc-att-hide),
.mecrs .modal-b .rspcc-continue:not(.rspcc-att-hide),
.mecrs .modal-b .rspcc-att-back:not(.rspcc-att-hide){
  display:inline-flex !important;align-items:center !important;justify-content:center !important;
  height:48px !important;min-height:48px !important;max-height:48px !important;
  padding:0 26px !important;
  font-size:.95rem !important;line-height:1 !important;font-weight:600 !important;
  border-radius:11px !important;box-sizing:border-box !important;vertical-align:middle !important;width:auto !important;}

/* Stripe checkout: align Name / Email fields (full width, left aligned, equal) */
.mecrs .modal-b .mec-stripe-name-and-email-wrapper{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 16px;}
.mecrs .modal-b .mec-stripe-name-and-email-wrapper .mec-name-stripe,
.mecrs .modal-b .mec-stripe-name-and-email-wrapper .mec-email-stripe{flex:1 1 240px;min-width:0;margin:0;padding:0;float:none;width:auto;}
.mecrs .modal-b .mec-stripe-name-and-email-wrapper input{width:100% !important;box-sizing:border-box;}

/* =========================================================================
   Intro shortcode: [rs-public-class-calendar-introduction]
   Distinct .ri-* classes (do NOT reuse the list card's .datebox/.card-title).
   The scope modifier neutralises .mecrs full-bleed so it fits inside a WP block.
   ========================================================================= */
.mecrs.rspcc-intro-scope{width:auto;margin:0;overflow:visible;background:transparent;}
.mecrs .rspcc-intro{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.mecrs .ri-card{display:flex;gap:16px;background:#fff;border:1px solid #f1f1f1;border-radius:18px;padding:26px;box-shadow:0 10px 30px rgba(15,23,42,.06);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.mecrs .ri-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(15,23,42,.12);border-color:#e6e8ec;}
.mecrs .ri-date{flex:none;align-self:flex-start;width:60px;height:60px;border-radius:15px;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.mecrs .ri-date .mon{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);line-height:1;}
.mecrs .ri-date .day{font-size:1.45rem;font-weight:700;line-height:1;margin-top:3px;}
.mecrs .ri-date .day.two{font-size:1.1rem;}                                   /* date range, same month */
.mecrs .ri-date .day.span{font-size:.58rem;font-weight:700;line-height:1.25;letter-spacing:.01em;margin-top:2px;padding:0 4px;}  /* range across two months */
.mecrs .ri-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.mecrs .ri-title{font-size:16px;font-weight:700;color:var(--navy);line-height:1.3;letter-spacing:-.01em;margin:0;}
.mecrs .ri-meta{margin:12px 0 0;color:var(--text-light);font-size:.92rem;line-height:1.55;}
.mecrs .ri-foot{margin-top:auto;padding-top:18px;}
.mecrs .ri-cta{display:inline-flex;align-items:center;gap:8px;color:var(--orange);font-weight:600;font-size:.95rem;}
.mecrs .ri-card:hover .ri-cta{gap:12px;}
.mecrs .ri-cta svg{width:16px;height:12px;}
@media(max-width:1023px){.mecrs .rspcc-intro{grid-template-columns:1fr;gap:16px;}}
