/* Theme reproduced from the Elementor kit: Karla 600 headings, Montserrat body, Dark #2B2D30, program colour background */
*{box-sizing:border-box}
html,body{margin:0}
body{background:#fff}.site-main{background:var(--program)}
.site-main,.site-footer,.el-text-editor,.el-theme-post-content{font-family:var(--font-body);font-weight:var(--weight-body);color:var(--color-text)}
body.s-main{background:#2B2D30}body.s-main .site-main{background:#2B2D30}
b,strong{font-weight:var(--weight-strong)}
.el-heading,.post-title,.ib-title,.page-head h1{font-family:var(--font-heading);font-weight:var(--weight-heading)}
p{margin:0 0 .9rem}
img{max-width:100%;height:auto;vertical-align:middle}
figure{margin:0}
del{opacity:.8}

/* ---- Elementor-like layout primitives */
.el-sec{position:relative;width:100%}
.el-sec>.el-row{display:flex;flex-wrap:wrap;max-width:1140px;margin:0 auto}
.el-sec .el-sec>.el-row{max-width:none}
.el-col{display:flex;flex-direction:column;min-height:1px}
.el-wrap{padding:10px;width:100%;display:flex;flex-direction:column;justify-content:inherit;flex:1}
.el-col[style*="justify-content:center"]>.el-wrap{justify-content:center}
.el-col[style*="justify-content:flex-end"]>.el-wrap{justify-content:flex-end}
.el-w{margin-bottom:20px}.el-w:last-child{margin-bottom:0}
.el-heading{margin:0}
.el-heading a{color:inherit}
.el-text-editor>:last-child{margin-bottom:0}
.ib-icon{font-size:50px;line-height:1;margin-bottom:15px}
.ib-title{margin:0 0 10px;font-size:1.6rem}
.ib-left{display:flex;gap:15px;text-align:left}.ib-left .ib-icon{margin:0}
.btn{display:inline-block;background:#61CE70;color:#fff;font-family:var(--font-body);font-size:15px;padding:12px 24px;border-radius:3px;font-weight:500}
.btn:hover{filter:brightness(1.1);color:#fff}
.divider{border-top:1px solid var(--c,#ddd);margin:15px 0;text-align:center}
.divider span{position:relative;top:-.8em;background:#fff;padding:0 10px}
.video{position:relative;padding-top:56.25%}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.gallery img{aspect-ratio:1;object-fit:cover;width:100%}
.slide{color:#fff;padding:60px 30px;text-align:center;border-radius:4px}
.icon-list{list-style:none;padding:0}
@media(max-width:767px){.el-col{flex-basis:100%!important;max-width:100%!important}}

/* ---- header: dark band + menu bar */
.site-header .el-sec:has(.topnav){position:sticky;top:0;z-index:20;padding:0!important;background:linear-gradient(#ececec,#f7f7f7)!important;border-bottom:1px solid #dcdcdc;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.site-header .el-sec:has(.topnav) .el-wrap{padding:0}
.topnav{max-width:1140px;margin:0 auto;padding:0 10px}
.menu{list-style:none;margin:0;padding:0;display:flex;justify-content:flex-start;align-items:stretch}
.menu>li{position:relative;display:flex;align-items:stretch}
.menu>li>a{display:flex;align-items:center;gap:7px;height:52px;padding:0 16px;color:#5f6368;font-family:var(--font-heading);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;border-bottom:3px solid transparent;transition:color .15s,border-color .15s,background .15s}
.menu>li>a:hover{color:#2B2D30;background:rgba(0,0,0,.04)}
.menu>li>a.on{color:#2B2D30;border-bottom-color:var(--program)}
body.s-main .menu>li>a.on{border-bottom-color:#54595F}
.caret{font-size:10px;opacity:.7;transition:transform .15s}
.has-sub:hover .caret{transform:rotate(180deg)}
.sub-toggle,.menu-toggle{display:none}
.menu>li.switcher>a{color:#2B2D30}
.menu>li.switcher .sub{min-width:210px}
.menu .switcher .sub a{display:flex;align-items:center;gap:10px;font-weight:600}
.sw-dot{width:11px;height:11px;border-radius:50%;flex:none;background:#2B2D30}
.sw-challenge .sw-dot{background:#D80606}.sw-explore .sw-dot{background:#299134}
.sw-here{margin-left:auto;font-size:12px;color:var(--program)}
.menu .sub{display:none;position:absolute;top:100%;left:0;min-width:250px;list-style:none;margin:0;padding:8px 0;background:#fff;border-radius:0 0 8px 8px;box-shadow:0 10px 24px rgba(0,0,0,.18);border-top:3px solid var(--program);z-index:30}
.menu li:hover>.sub,.menu li:focus-within>.sub{display:block}
.menu .sub a{display:block;padding:9px 18px;color:#333;font-family:var(--font-body);font-weight:400;font-size:14px;text-transform:none;letter-spacing:0;white-space:nowrap}
.menu .sub a:hover,.menu .sub a.on{background:#f3f4f6;color:var(--program)}
body.s-main .menu .sub a:hover{color:#2B2D30}
@media(max-width:1180px){
  .menu{flex-wrap:wrap}
  .menu>li>a{padding:0 10px;font-size:13px;letter-spacing:.3px;height:46px}
}
@media(max-width:767px){
  .site-header .el-col{flex-basis:100%!important;max-width:100%!important}
  .site-header .el-wrap{align-items:center;padding:6px 10px}
  .site-header .el-image img,.site-header figure img{max-width:150px!important;width:150px!important}
  .site-header .el-heading{font-size:1.45rem!important;line-height:1.25;text-align:center!important}
  .topnav{padding:0}
  .menu-toggle{display:flex;align-items:center;gap:8px;width:100%;height:48px;padding:0 16px;border:0;background:none;font:700 14px var(--font-heading);text-transform:uppercase;letter-spacing:.6px;color:#2B2D30;cursor:pointer}
  .menu{display:none;flex-direction:column;background:#fff;border-top:1px solid #ddd}
  .topnav.open .menu{display:flex}
  .menu>li{flex-wrap:wrap;border-bottom:1px solid #eee}
  .menu>li>a{flex:1;height:48px;border-bottom:0;border-left:4px solid transparent}
  .menu>li>a.on{border-left-color:var(--program)}
  .caret{display:none}
  .sub-toggle{display:block;width:52px;border:0;border-left:1px solid #eee;background:none;color:#666;cursor:pointer}
  .menu .sub{position:static;display:none;width:100%;box-shadow:none;border-top:1px solid #eee;border-radius:0;padding:4px 0 8px;background:#fafafa}
  .menu li:hover>.sub{display:none}
  .menu li.open>.sub{display:block}
  .menu .sub a{padding:10px 28px;white-space:normal}
}
.site-header h1,.site-header .el-heading{font-size:2.6rem;font-weight:var(--weight-heading)}

/* ---- content areas from the Single templates */
.site-main{min-height:40vh;padding-bottom:40px}
.hf{width:100%}
.page-head{max-width:1140px;margin:0 auto;padding:30px 10px 10px}
.page-head h1{color:#fff;font-size:2.2rem}
.card{background:#fff;border-radius:6px;box-shadow:0 0 10px rgba(0,0,0,.3)}
.card.wide{max-width:1120px;margin:20px auto;padding:30px 40px}
.loop{display:flex;flex-direction:column;gap:30px}

.loop-card .post-title{font-size:2rem;margin:10px 0 0}
.post-title{color:#54595F}
.post-info{display:flex;flex-wrap:wrap;gap:16px;font-size:15px;color:#7A7A7A}
.post-info i{color:#6EC1E4;font-size:13px;margin-right:2px}
.recent{padding:5px}.recent h5{font-family:var(--font-heading);font-weight:var(--weight-heading);color:#222;font-size:1.15rem}
.recent ul{padding-left:20px;margin:0}.recent a{font-family:var(--font-body);font-weight:600}
.more{text-align:center;margin-top:20px}.more a{color:#fff;font-weight:600;font-family:var(--font-heading)}
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.arch{display:block;padding:18px;background:#f4f4f4;border-radius:6px;font-family:var(--font-heading);font-weight:600;color:#54595F;font-size:1.15rem}
.arch:hover{background:#54595F;color:#fff}
.hello{max-width:1140px;margin:0 auto;padding:30px 10px;color:#ddd}
.hello .entry-title{color:#fff}
.list{list-style:none;padding:0}.list li{padding:6px 0;border-bottom:1px solid #eee}.list time{display:inline-block;min-width:170px;font-size:14px}
.missing{display:inline-block;padding:14px 16px;border:1px dashed #c3c8d1;border-radius:6px;color:#8a909b;background:#fafbfc;font-size:14px}
.row{margin:2px 0;font-size:14px}
blockquote{border-left:4px solid var(--program);margin:12px 0;padding:4px 14px}

/* ---- footer template sits on Dark */
.site-footer{background:#2B2D30;color:#ccc}
.site-footer .el-heading{color:#fff}
.slide{height:400px;display:flex;flex-direction:column;justify-content:center}
.col-link{display:flex;flex:1;color:inherit}.col-link:hover{filter:brightness(1.08)}
.el-heading{color:var(--color-info)}
.el-text-editor h1,.el-text-editor h2,.el-text-editor h3,.el-text-editor h4,.el-text-editor h5,.el-text-editor h6{color:inherit}
.ib.grow{transition:transform .3s}.ib.grow:hover{transform:scale(1.05)}
.ib-img{margin-bottom:0}
@media(max-width:767px){
  .page-head{padding:18px 16px 4px}.page-head h1{font-size:1.6rem}
  .card.wide{padding:18px;margin:12px}
  .el-sec>.el-row{padding:0 6px}
  .slide{height:220px}
  .list time{display:block;min-width:0}
  h1{font-size:1.8rem}
  .site-footer .el-col{flex-basis:100%!important;max-width:100%!important}
}
@media(max-width:767px){.site-main .el-heading{font-size:1.5rem!important}.site-main .el-sec>.el-row>.el-col>.el-wrap{padding:8px}}
.el-nav-menu{width:100%!important;margin-inline:0!important}
.topnav{width:100%}
.menu-toggle,.menu-toggle:hover,.menu-toggle:focus,.sub-toggle,.sub-toggle:hover,.sub-toggle:focus{background:none!important;color:#2B2D30!important;border-radius:0;outline:none}
.menu-toggle{border:0!important;justify-content:center}
.sub-toggle{border-top:0!important;border-right:0!important;border-bottom:0!important}
.topnav.open .menu-toggle .fa-bars:before{content:"\f00d"}
.has-sub.open>.sub-toggle i{transform:rotate(180deg)}
@media(max-width:767px){.site-header .el-sec:has(.topnav) .el-col{flex-basis:100%!important;max-width:100%!important}.site-header .el-sec:has(.topnav) .el-wrap{padding:0!important}}

/* ---- Useful Links */
.links-page{font-family:var(--font-body);color:#555}
.lintro{font-size:1.05rem;margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:#f2f3f5;color:#2B2D30;font:600 14px var(--font-heading)}
.chip i{color:var(--program)}.chip:hover{background:var(--program);color:#fff}.chip:hover i{color:#fff}
.lgroup{margin:0 0 30px;scroll-margin-top:70px}
.lgroup h2{font:600 1.35rem var(--font-heading);color:#2B2D30;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #eee}
.lgroup h2 i{color:var(--program);margin-right:6px;font-size:1.05rem}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.lcard{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #e6e7ea;border-left:4px solid var(--program);border-radius:8px;background:#fff;color:#555;transition:box-shadow .15s,transform .15s}
.lcard:hover{box-shadow:0 6px 16px rgba(0,0,0,.12);transform:translateY(-1px);color:#555}
.lname{font:600 1.02rem var(--font-heading);color:#2B2D30;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lhost{font-size:12px;color:#999}
.ldesc{font-size:14px;line-height:1.45}
.lcard.local{border-left-color:#2B2D30;background:#fafafa}
.badge{font:600 10px var(--font-body);text-transform:uppercase;letter-spacing:.5px;background:#fff3cd;color:#8a6d00;padding:2px 7px;border-radius:999px}
.lextra{font-size:13px;margin:-4px 0 0 4px}
.lnote{background:#f7f7f9;border-radius:8px;padding:14px 16px;font-weight:500}.lnote i{color:#e0a800;margin-right:6px}
.site-main a,.site-main p,.site-main li{overflow-wrap:anywhere}html,body{overflow-x:hidden}
@media(max-width:767px){.site-header .el-image img,.site-header figure img{max-width:120px!important;width:120px!important}.site-header .el-heading{font-size:1.2rem!important}.site-header .el-sec:not(:has(.topnav)) .el-wrap{padding:4px 10px!important}}

/* ---- 2026-27 season additions */
.season-notice{background:#f4f8ec;border:1px solid #c6de94;border-left:6px solid #70a334;border-radius:10px;padding:18px 22px;margin:0 0 24px;color:#2b2d30;font-family:var(--font-body);font-weight:400}
.season-notice h2{font:600 1.45rem var(--font-heading);color:#2c5535;margin:0 0 8px}
.season-notice p:last-child,.season-notice ul:last-child{margin-bottom:0}
.season-notice ul{padding-left:20px;margin:0}.season-notice li{margin:4px 0}
.notice-sec{max-width:1140px;margin:0 auto}
.season-page{font-family:var(--font-body);color:#555}
.season-page h2{font:600 1.5rem var(--font-heading);color:#2b2d30;margin:28px 0 12px}
.season-logo{text-align:center;margin:0 0 10px}.season-logo img{width:340px;max-width:80%}
.season-lead{font-size:1.1rem;line-height:1.6;color:#444;margin-bottom:22px}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.res{display:grid;grid-template-columns:34px 1fr;align-items:center;column-gap:10px;padding:12px 14px;border:1px solid #e6e7ea;border-radius:8px;background:#fff;color:#2b2d30;font:600 15px var(--font-heading);transition:box-shadow .15s}
.res:hover{box-shadow:0 6px 16px rgba(0,0,0,.12);color:var(--program)}
.res i{grid-row:span 2;font-size:20px;color:var(--program);text-align:center}
.res small{font:400 12px var(--font-body);color:#888}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.video-grid h3{font:600 1.1rem var(--font-heading);color:#2b2d30;margin:0 0 8px}
.small-note{font-size:13px;color:#888;margin-top:22px}
.struck{position:relative;opacity:.55}
.struck,.struck *{text-decoration:line-through;text-decoration-color:rgba(0,0,0,.45)}
.struck .btn,.struck a{pointer-events:none}
.grayed{position:relative;margin-top:10px}
.gray-body{filter:grayscale(1);opacity:.35;pointer-events:none;user-select:none}
.gray-note{position:sticky;top:70px;z-index:5;margin:0 auto 14px;max-width:760px;background:rgba(84,89,95,.95);color:#fff;border-radius:10px;padding:18px 22px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-family:var(--font-body);font-weight:400}
.gray-note h3{font:600 1.35rem var(--font-heading);color:#fff;margin:0 0 6px}.gray-note b{color:#fff}
.ev-btn{text-align:center;margin:10px 0 16px}.ev-btn .btn i{margin-right:6px}
.ev-frame{border:1px solid #e3e3e3;border-radius:10px;overflow:hidden;background:#fff}.ev-frame iframe{width:100%;height:640px;border:0;display:block}
/* home news */
.home-news{max-width:1140px;margin:10px auto 30px}
.home-news-h{font:600 1.8rem var(--font-heading);color:#fff;margin:8px 0 14px}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.news-card{display:flex;flex-direction:column;gap:6px;background:#fff;border-radius:8px;padding:16px 18px;border-top:5px solid #54595F;color:#555;box-shadow:0 0 10px rgba(0,0,0,.3);transition:transform .15s}
.news-card:hover{transform:translateY(-2px);color:#555}
.nc-challenge{border-top-color:#CE1C1C}.nc-explore{border-top-color:#299134}
.nc-prog{font:700 11px var(--font-body);text-transform:uppercase;letter-spacing:.8px;color:#888}
.nc-challenge .nc-prog{color:#CE1C1C}.nc-explore .nc-prog{color:#299134}
.nc-date{font-size:13px;color:#999}.nc-date i{color:#6EC1E4;margin-right:3px}
.nc-title{font:600 1.25rem var(--font-heading);color:#2b2d30}
.nc-ex{font-size:14px;line-height:1.5}.nc-more{margin-top:auto;font-weight:600;color:#c36;font-size:14px}
.home-news-more{text-align:center;margin-top:16px}.home-news-more a{color:#fff;font:600 15px var(--font-heading)}
/* shared footer */
.site-footer .ft{max-width:1140px;margin:0 auto;padding:40px 16px 28px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;font-family:var(--font-body);font-weight:var(--weight-body);color:#c9ccd1}
.ft h4{font:600 1.05rem var(--font-heading);color:#fff;margin:0 0 10px;text-transform:uppercase;letter-spacing:.6px}
.ft ul{list-style:none;padding:0;margin:0}.ft li{margin:5px 0}
.ft a{color:#e3e3e3}.ft a:hover{color:#fff;text-decoration:underline}
.ft-logo{width:110px;margin-bottom:10px}.ft-brand p{max-width:320px}
.ft-bottom{border-top:1px solid #3d4045;max-width:none;padding:14px 16px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font:400 12px var(--font-body);color:#8d9096}
.ft-bottom span{max-width:1140px}
@media(max-width:767px){.site-footer .ft{grid-template-columns:1fr;gap:18px;padding:28px 18px}.ev-frame iframe{height:520px}.gray-note{top:56px}}
.prog-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;padding:16px 10px 6px}
.prog-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:28px 26px 22px;border-radius:6px;color:#E3E3E3;font-family:var(--font-body);font-weight:var(--weight-body);font-size:16px;line-height:1.55;transition:transform .2s,box-shadow .2s}
.prog-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.35);color:#fff}
.prog-card img{height:150px;width:auto}
.prog-card p{margin:0;flex:1}
.pc-challenge{background:#CE1C1C}.pc-explore{background:#299134}
.pc-go{font:700 14px var(--font-heading);text-transform:uppercase;letter-spacing:.8px;color:#fff;border:2px solid rgba(255,255,255,.7);border-radius:999px;padding:7px 16px}
@media(max-width:767px){.prog-cards{grid-template-columns:1fr}.prog-card img{height:120px}}
.slide{background-origin:content-box!important;padding:28px!important}@media(max-width:767px){.slide{padding:14px!important}}

/* ================================================================
   SHARED LAYOUTS (templates/*.html): one style per layout
   ================================================================ */
body{font-family:var(--font-body);font-size:var(--text-size);line-height:var(--line-height);background:#fff}
.site-main{background:var(--program);padding-bottom:40px}
.site-main,.content{font-family:var(--font-body);font-weight:var(--weight-body);color:var(--color-text)}
a{color:var(--color-link)}
/* header */
.brand-band{background:var(--color-dark)}
/* Same header on every page: fixed band height, a fixed logo box, and the title starting at the same spot.
   Logos in theme/header/ are cropped to one width with the FIRST LEGO League mark at the same size, so only the program badge differs. */
.brand{max-width:var(--content-width);margin:0 auto;padding:16px var(--gutter);display:grid;grid-template-columns:var(--logo-w) 1fr;align-items:center;gap:36px;--logo-w:222px;--logo-h:124px}
.brand-logo{display:flex;align-items:center;height:var(--logo-h)}
.brand-logo img{width:var(--logo-w);height:auto;max-width:none;display:block}
.brand-title{font-family:var(--font-heading);font-weight:var(--weight-heading);color:#fff;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.15;text-align:left;white-space:nowrap}
.nav-band{position:sticky;top:0;z-index:20;background:linear-gradient(#ececec,#f7f7f7);border-bottom:1px solid #dcdcdc;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.nav-band .menu>li>a{font-family:var(--font-heading)}
/* page title + card */
.page-title{max-width:var(--content-width);margin:0 auto;padding:30px var(--gutter) 14px}
.page-title h1{color:#fff;font-family:var(--font-heading);font-weight:var(--weight-heading);font-size:2.4rem;margin:0}
.card{background:var(--color-card);border-radius:var(--radius);box-shadow:var(--shadow)}
article.card.content{max-width:var(--content-width);margin:12px auto 0;padding:34px 44px}
.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-family:var(--font-heading);font-weight:var(--weight-heading);color:var(--color-heading);line-height:1.2;margin:1.1em 0 .5em}
.content>h2:first-child,.content>h3:first-child{margin-top:0}
.content img{max-width:100%;height:auto;border-radius:4px}
.content blockquote{border-left:4px solid var(--program);margin:14px 0;padding:6px 16px;background:#f7f7f9;border-radius:0 6px 6px 0}
/* Elementor-built bodies sit flush inside the card */
.content .el-sec>.el-row{max-width:none}
/* posts */
.post-layout{max-width:var(--content-width);margin:0 auto;padding:30px var(--gutter) 0;display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.post-layout article.card.content{margin:0;padding:30px 36px}
.post-title{font-family:var(--font-heading);font-weight:var(--weight-heading);color:var(--color-heading);font-size:2rem;margin:0 0 6px}
.post-title a{color:inherit}
.post-info{margin-bottom:18px}
.recent{padding:20px 22px}.recent h5{font-family:var(--font-heading);font-weight:var(--weight-heading);color:var(--color-dark);font-size:1.2rem;margin:0 0 8px}
/* program home news */
.program-home{max-width:var(--content-width);margin:0 auto;padding:30px var(--gutter) 0}
.program-home>h2{color:#fff;font-family:var(--font-heading);font-weight:var(--weight-heading);font-size:2rem;margin:0 0 18px}
.news-full{padding:26px 30px;margin-bottom:24px}
.news-full .post-title{font-size:1.8rem}
.news-more{text-align:center}.news-more a{color:#fff;font:600 16px var(--font-heading)}
/* home */
.home{padding-top:20px}
/* links layout (Useful Links) */
.links-page h2{font:var(--weight-heading) 1.35rem var(--font-heading);color:var(--color-dark);margin:28px 0 12px;padding-bottom:8px;border-bottom:2px solid #eee}
.links-page h2 i{color:var(--program);margin-right:6px;font-size:1.05rem}
.links-page .lgrid{margin-bottom:6px}
@media(max-width:900px){.post-layout{grid-template-columns:1fr}}
@media(max-width:767px){
  .brand{grid-template-columns:1fr;justify-items:center;gap:8px;padding:12px var(--gutter);--logo-w:150px;--logo-h:84px}
  .brand-title{font-size:1.4rem;text-align:center;white-space:normal}
  .page-title{padding:20px var(--gutter) 8px}.page-title h1{font-size:1.7rem}
  article.card.content{padding:20px 18px;margin:8px 10px 0}
  .post-layout{padding:16px 10px 0}.post-layout article.card.content{padding:20px 18px}
  .program-home{padding:18px 10px 0}.news-full{padding:18px}
}
.gray-note h3,.content .gray-note h3{color:#fff!important;margin:0 0 6px}.content .season-notice h2{color:#2c5535;margin-top:0}
.home-news{padding:0 var(--gutter)}.home-news-h,.nc-title,.lgroup h2,.lname,.chip,.res,.arch,.pc-go{font-weight:var(--weight-heading)!important}

/* live data from /scripts/site_data.php (theme/live.js) */
.live-past{text-decoration:line-through;opacity:.7}
.live-map{height:520px;border-radius:var(--radius);border:1px solid #d9dde3;background:#eef2f5;display:flex;align-items:center;justify-content:center;margin:16px 0}
.live-map.live-map-ready{display:block}
.live-map.live-map-failed p{display:none}
.live-map.live-map-failed::after{content:"The map couldn't be loaded right now. Please try again later.";color:var(--color-text)}
.live-map-legend{background:#fff;padding:6px 10px;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.25);font:400 .9rem var(--font-body);line-height:1.6}
.live-map-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.live-map-note{font-size:.9rem;color:#666}
@media (max-width:600px){.live-map{height:400px}}

/* Calendar of Events (theme/live.js, data-live-calendar) */
.cal-intro{margin-bottom:20px}
.cal-event{border:1px solid #d9dde3;border-left:6px solid var(--color-info);border-radius:10px;padding:16px 18px;margin:0 0 16px;background:#fff}
.cal-championship{border-left-color:#e0a100}
.cal-qualifier{border-left-color:var(--color-challenge)}
.cal-festival{border-left-color:var(--color-explore)}
.cal-past{opacity:.6}
.cal-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.cal-stamp{flex:0 0 64px;text-align:center;border-radius:8px;background:var(--color-season-dark);color:#fff;padding:6px 0;line-height:1.1}
.cal-month{display:block;font:700 .8rem var(--font-heading);text-transform:uppercase;letter-spacing:.06em}
.cal-day{display:block;font:800 1.7rem var(--font-heading)}
.cal-title{flex:1 1 240px;min-width:0}
.cal-title h3{margin:2px 0 4px;font:800 1.25rem var(--font-heading);color:var(--color-heading)}
.cal-type{font-size:.85rem;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.04em}
.cal-when,.cal-where{font-size:.95rem;color:var(--color-text)}
.cal-badge{align-self:center;font-size:.85rem;font-weight:700;padding:4px 10px;border-radius:999px;background:#eceff2;color:#444;white-space:nowrap}
.cal-open{background:#e6f4e1;color:#2c5535}
.cal-full{background:#fbe3e3;color:#9b1c1c}
.cal-warning{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:#fbe3e3;color:#7a1414}
.cal-warning>*:last-child{margin-bottom:0}
.cal-past-heading{margin:32px 0 12px;font:800 1.3rem var(--font-heading)}
.cal-volunteer{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:#e6f4e1;color:#2c5535}
.cal-volunteer a{font-weight:700}
.vol-when{font-weight:700}
.vol-info>*:last-child{margin-bottom:0}
.vol-signup{margin:16px 0 0}
.vol-signup .btn{background:#2c5535;color:#fff}
.cal-empty{padding:18px;border:1px dashed #c9ced6;border-radius:10px;text-align:center;color:#555}
/* program home hero, tiles, numbered steps (Explore pages) */
.prog-hero{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center;background:var(--color-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 30px;margin:0 0 22px;font-family:var(--font-body);color:#555}
.prog-hero-logo{margin:0;text-align:center}.prog-hero-logo img{width:100%;max-width:220px}
.prog-hero h1{font:var(--weight-heading) 1.9rem/1.2 var(--font-heading);color:var(--color-heading);margin:0 0 12px}
.prog-hero .season-notice{margin:0}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:0 0 30px}
.tile{display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:start;align-content:start;background:#fff;border:1px solid #e6e7ea;border-radius:10px;padding:16px 18px;color:#555;font-family:var(--font-body);transition:box-shadow .15s,transform .15s}
.tile i{grid-row:span 2;font-size:24px;color:var(--program);text-align:center;padding-top:3px}
.tile b{font:700 1.05rem var(--font-heading);color:var(--color-heading)}
.tile span{font-size:14px;line-height:1.45}
a.tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.18);transform:translateY(-2px)}
.season-page .tile-grid{margin-bottom:10px}
.step-list{list-style:none;counter-reset:step;padding:0;margin:0}
.step-list li{counter-increment:step;position:relative;padding:4px 0 18px 44px;border-left:3px solid #c6de94;margin-left:22px}
.step-list li:last-child{border-left-color:transparent}
.step-list li::before{content:counter(step);position:absolute;left:-23px;top:0;width:42px;height:42px;border-radius:50%;background:var(--program);color:#fff;font:800 1.2rem/42px var(--font-heading);text-align:center}
.step-list h3{font:700 1.25rem var(--font-heading);color:var(--color-heading);margin:6px 0 6px}
.step-list p{margin:0}
@media (max-width:700px){.prog-hero{grid-template-columns:1fr;padding:22px 18px}.prog-hero-logo img{max-width:160px}.prog-hero h1{font-size:1.5rem}}
/* Calendar card links to the event's own page; the whole card is clickable */
.cal-event{position:relative;transition:box-shadow .15s,border-color .15s}
.cal-event:hover{box-shadow:0 4px 14px rgba(0,0,0,.1)}
.cal-link{color:inherit;text-decoration:none}
.cal-link::after{content:"";position:absolute;inset:0;border-radius:10px}
.cal-event:hover .cal-link{text-decoration:underline}
.cal-volunteer{position:relative;z-index:1}
.cal-details{display:inline-block;margin-top:10px;font-weight:700;color:var(--color-link)}
.cal-back{margin:24px 0 0}
/* Event page */
.ev-hero{padding:0 0 20px;border-bottom:1px solid #e3e6ea;margin:0 0 20px}
.ev-hero .cal-title{flex-basis:200px}
.ev-hero .cal-when{font-weight:600}
.ev-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0 80px}
.content .ev-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;border:1px solid #c9ced6;background:#fff;color:var(--color-heading);font-weight:700;font-size:.95rem;text-decoration:none;line-height:1.2}
.content .ev-btn:hover{border-color:var(--color-heading);color:var(--color-heading)}
.content .ev-btn-main{background:var(--color-season-dark);border-color:var(--color-season-dark);color:#fff}
.content .ev-btn-main:hover{filter:brightness(1.15);color:#fff}
.ev-page .cal-warning{margin:0 0 20px;font-weight:600}
.ev-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 28px}
.ev-fact{background:#f5f7f9;border-radius:10px;padding:12px 14px}
.ev-fact dt{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;margin:0 0 4px}
.ev-fact dd{margin:0;line-height:1.45}
.ev-strong{font-weight:700;color:var(--color-heading)}
.ev-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 40px}
.ev-section{margin:0 0 28px}
.content .ev-h{margin:0 0 12px;padding:0 0 8px;border-bottom:3px solid var(--program,#2c5535);font:800 1.15rem var(--font-heading);color:var(--color-heading)}
.ev-html>*:last-child{margin-bottom:0}
.content .ev-html table{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:.95rem}
.content .ev-html td{border:0;border-bottom:1px solid #eceff2;padding:7px 12px 7px 0;background:none;vertical-align:top}
.content .ev-html tr:last-child td{border-bottom:0}
.content .ev-html td:last-child{white-space:nowrap;font-weight:700;padding-right:0;text-align:right;color:var(--color-heading)}
.ev-html ul{list-style:none;padding:0;margin:0}
.ev-html li{position:relative;padding:8px 0 8px 18px;border-bottom:1px solid #eceff2}
.ev-html li:last-child{border-bottom:0}
.ev-html li::before{content:"";position:absolute;left:2px;top:17px;width:7px;height:7px;border-radius:50%;background:var(--program,#2c5535)}
.ev-html img{width:auto!important;max-width:min(100%,560px);height:auto;border-radius:10px;border:1px solid #e3e6ea}
.ev-volunteer{background:#f4f8ec;border:1px solid #c6de94;border-radius:12px;padding:18px 20px}
.content .ev-volunteer .ev-h{border-bottom:0;padding:0;color:#2c5535}
.ev-roles{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 12px}
.ev-roles li{background:#fff;border:1px solid #c6de94;border-radius:999px;padding:4px 12px;font-size:.9rem;font-weight:600;color:#2c5535}
.ev-vol-btn{margin:14px 0 0}
@media (max-width:600px){.ev-actions{margin-left:0}.ev-actions .ev-btn{flex:1 1 auto;justify-content:center}}

/* imported WordPress pieces: step boxes fill their row's min-height; emoji images stay text-sized */
.el-sec[style*="min-height"]{display:flex;flex-direction:column}.el-sec[style*="min-height"]>.el-row{flex:1 0 auto;width:100%}
img.emoji{display:inline!important;width:1em!important;height:1em!important;margin:0 .07em!important;vertical-align:-.1em;border:0;box-shadow:none;padding:0}
