.elementor-kit-5{--e-global-color-primary:#1D3461;--e-global-color-secondary:#2D6AA0;--e-global-color-text:#1A1A2E;--e-global-color-accent:#C94A2D;--e-global-color-mpssky:#C5DCF0;--e-global-color-mpsteal:#1A5276;--e-global-color-mpsmist:#EEF4FB;--e-global-color-mpsbrgt:#F2946F;--e-global-typography-primary-font-family:"Roboto Slab";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Inter Tight";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter Tight";--e-global-typography-accent-font-weight:600;font-family:"Inter Tight", Sans-serif;font-weight:400;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1160px;}.e-con{--container-max-width:1160px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===========================================================
   Mainline Protestant Stream — design system
   Edit in Elementor: Site Settings → Custom CSS
   =========================================================== */

:root{
  --mps-navy:#1d3461;
  --mps-blue:#2d6aa0;
  --mps-teal:#1a5276;
  --mps-orange:#c94a2d;
  --mps-orange-bright:#e97952;
  --mps-sky:#c5dcf0;
  --mps-ink:#1a1a2e;
  --mps-mist:#eef4fb;
  --mps-text:#1a1a2e;
  --mps-text-soft:#4a5568;
  --mps-text-faint:#6b7a90;
  --mps-rule:#dde5ee;
  --mps-rule-soft:#e9eff6;
  --mps-tint:#eaf2fa;
}

/* ---------- base ---------- */
body{color:var(--mps-text);font-family:"Inter Tight",ui-sans-serif,system-ui,sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Roboto Slab",ui-serif,Georgia,serif;color:var(--mps-navy);
  text-wrap:balance;line-height:1.18;letter-spacing:-.01em}
.entry-title,.page-header{display:none}

/* accent word inside a headline */
.hl{color:var(--mps-orange)}
.mps-banner .hl,.mps-dark .hl,.mps-cta .hl{color:var(--mps-orange-bright)}

/* Short accent rule under the eyebrow in the two split sections, as in the mockup
   ("Why now" on Home, "What we are building toward" on Vision & Strategy).
   Eyebrows render as <div class="elementor-heading-title">; every other heading
   is an h1-h4, which is what keeps this off the rest of the page. */
.mps-cols-2 div.elementor-heading-title::after{
  content:"";display:block;width:52px;height:3px;background:var(--mps-orange);
  margin-top:14px;
}

/* Text widths are NOT constrained here. Set them per element in Elementor:
   a container > Layout > Content Width / Width, or a single widget via
   Advanced > Width. Readable line length is roughly 60-75 characters. */
/* ---------- shared bits ---------- */
/* Eyebrow labels (WHY NOW, PRESS, ...) are styled per-widget in Elementor:
   select the heading > Style > Typography / Title Color. Nothing here. */
.mps-lede{font-size:1.14rem;line-height:1.6;color:var(--mps-text-soft)}
.mps-dark .mps-lede,.mps-cta .mps-lede{color:#dbe8f5}
.mps-prose{color:var(--mps-text-soft);
  font-size:1.14rem;line-height:1.6}
.mps-prose p+p{margin-top:18px}
.mps-prose strong{color:var(--mps-text);font-weight:600}

/* ---------- page banners ---------- */
.mps-banner{position:relative;overflow:hidden;isolation:isolate;background-color:var(--mps-navy)}
.mps-banner>.e-con-inner,.mps-banner>*{position:relative;z-index:2}
.mps-banner::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(15,29,58,.22) 0%,rgba(15,29,58,0) 40%,rgba(15,29,58,.30) 100%),
    linear-gradient(100deg,rgba(15,30,60,.94) 0%,rgba(18,36,70,.89) 40%,rgba(21,58,98,.55) 70%,rgba(26,82,118,.24) 100%);}
.mps-banner h1{color:#fff;text-shadow:0 1px 18px rgba(10,20,42,.4)}
.mps-banner .mps-lede{color:#dbe8f5;text-shadow:0 1px 12px rgba(10,20,42,.45)}
.mps-banner-home h1.elementor-heading-title{font-size:clamp(2.05rem,3.75vw,3.25rem);
  line-height:1.14}

/* concentric rings, cropped off the top-right corner */
.mps-rings::before{content:"";position:absolute;z-index:1;pointer-events:none;
  top:-340px;right:-330px;left:auto;bottom:auto;width:880px;height:880px;background-size:100% 100%;background-repeat:no-repeat;
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 720'><g fill='none' stroke='%23ffffff' stroke-opacity='0.22' stroke-width='1.4'><circle cx='360' cy='360' r='360'/><circle cx='360' cy='360' r='317'/><circle cx='360' cy='360' r='273.5'/><circle cx='360' cy='360' r='230.5'/><circle cx='360' cy='360' r='187'/><circle cx='360' cy='360' r='144'/><circle cx='360' cy='360' r='101'/></g></svg>")}

/* banners with no photograph */
.mps-banner-plain::after{background:linear-gradient(115deg,rgba(26,82,118,.45) 0%,rgba(29,52,97,0) 62%)}
.mps-banner-plain h1,.mps-banner-plain .mps-lede{text-shadow:none}
.mps-banner-plain::before{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 720'><g fill='none' stroke='%23ffffff' stroke-opacity='0.17' stroke-width='1.2'><circle cx='360' cy='360' r='360'/><circle cx='360' cy='360' r='317'/><circle cx='360' cy='360' r='273.5'/><circle cx='360' cy='360' r='230.5'/><circle cx='360' cy='360' r='187'/><circle cx='360' cy='360' r='144'/><circle cx='360' cy='360' r='101'/></g></svg>")}

.mps-credit{position:absolute;right:16px;bottom:10px;z-index:2;font-size:.62rem;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.5)}

/* ---------- dark band + rings ---------- */
.mps-dark{position:relative;overflow:hidden;background-color:var(--mps-navy)}
.mps-dark h2,.mps-dark h3{color:#fff}
.mps-dark::before{content:"";position:absolute;z-index:1;pointer-events:none;
  top:-120px;right:-170px;left:auto;bottom:auto;width:720px;height:720px;background-size:100% 100%;background-repeat:no-repeat;
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 720'><g fill='none' stroke='%23ffffff' stroke-opacity='0.13' stroke-width='1'><circle cx='360' cy='360' r='360'/><circle cx='360' cy='360' r='317'/><circle cx='360' cy='360' r='273.5'/><circle cx='360' cy='360' r='230.5'/><circle cx='360' cy='360' r='187'/><circle cx='360' cy='360' r='144'/><circle cx='360' cy='360' r='101'/></g></svg>")}
.mps-dark>.e-con-inner{position:relative;z-index:2}

/* ---------- grounding vision ---------- */
.mps-vision{background-color:var(--mps-navy);border-left:6px solid var(--mps-ink)}
.mps-vision h3{color:#fff;font-size:clamp(1.35rem,2.4vw,1.75rem)}
.mps-vision p{color:#d8e6f4}

/* ---------- track cards ---------- */
.mps-track{background:#fff;border:1px solid var(--mps-rule);border-top:3px solid var(--mps-orange)}
.mps-track-meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600}
.mps-track-meta b{color:var(--mps-orange);font-weight:600}
.mps-track-meta span{color:var(--mps-text-faint)}
.mps-track p{color:var(--mps-text-soft);font-size:1rem;line-height:1.58}

/* ---------- cities ---------- */
.mps-cities{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.mps-cities>div{background:var(--mps-navy);padding:24px 22px;border-left:3px solid var(--mps-sky)}
.mps-cities b{display:block;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--mps-sky);font-weight:600}
.mps-cities span{display:block;font-family:"Roboto Slab",serif;font-size:1.15rem;color:#fff;margin-top:7px;line-height:1.3}

/* ---------- partners / streams / markers ---------- */
.mps-partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:0;
  border-top:1px solid var(--mps-rule);margin:0;padding:0}
.mps-partners li{list-style:none;padding:14px 4px;border-bottom:1px solid var(--mps-rule-soft);
  font-size:1rem;font-weight:500;color:var(--mps-text);margin:0}
.mps-streams{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.mps-streams li{list-style:none;font-size:.92rem;font-weight:500;padding:8px 16px;border-radius:100px;
  border:1px solid var(--mps-rule);color:var(--mps-text-soft);background:#fff;margin:0}
.mps-streams li.is-us{background:var(--mps-orange);border-color:var(--mps-orange);color:#fff;font-weight:600}
.mps-markers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;
  border-top:1px solid var(--mps-rule);margin:0;padding:0}
.mps-markers>div{padding:24px 22px 26px 0;border-bottom:1px solid var(--mps-rule-soft)}
.mps-markers b{font-family:"Roboto Slab",serif;font-size:.82rem;color:var(--mps-orange);letter-spacing:.04em;display:block}
.mps-markers h4{font-size:1.02rem;margin:9px 0}
.mps-markers p{font-size:.96rem;color:var(--mps-text-soft);line-height:1.55;margin:0}

/* ---------- people ---------- */
.mps-person{border-left:3px solid var(--mps-orange);padding:4px 0 4px 20px}
.mps-person .role{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;
  color:var(--mps-text-faint);line-height:1.5;display:block}
.mps-person h3{font-size:1.3rem;margin:8px 0}
.mps-person p{font-size:.99rem;color:var(--mps-text-soft);margin:0}

/* ---------- resources + press rows ---------- */
.mps-cat{margin-bottom:46px}
.mps-cat-head{display:flex;align-items:baseline;gap:14px;padding-bottom:12px;
  border-bottom:2px solid var(--mps-orange)}
.mps-cat-head h3{font-size:1.35rem;margin:0}
.mps-cat-head .count{font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--mps-text-faint);font-weight:600;margin-left:auto;font-variant-numeric:tabular-nums}
.mps-subhead{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--mps-text-faint);margin:22px 0 2px}
.mps-row{display:flex;align-items:flex-start;gap:16px;padding:17px 2px;
  border-bottom:1px solid var(--mps-rule-soft)}
.mps-row:hover{background:var(--mps-tint)}
.mps-row .body{flex:1;min-width:0}
.mps-row .title{font-size:1.05rem;font-weight:600;line-height:1.4;color:var(--mps-navy);
  text-decoration:none;display:block}
.mps-row .title:hover{text-decoration:underline;text-decoration-color:var(--mps-orange)}
.mps-row .src{font-size:.88rem;color:var(--mps-text-faint);display:block;margin-top:4px}
.mps-row .note{font-size:.92rem;color:var(--mps-text-soft);line-height:1.5;display:block;margin-top:4px}
.mps-row .tags{flex-shrink:0;padding-top:3px}
.mps-month{font-family:"Roboto Slab",serif;font-size:.86rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--mps-orange);padding:26px 0 10px;border-bottom:1px solid var(--mps-rule)}
.mps-dead{font-size:.64rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#a33b22}

/* type tags */
.tag{display:inline-flex;align-items:center;font-size:.69rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;padding:4px 9px;border-radius:3px;border:1px solid;white-space:nowrap}
.tag-pdf{color:#a33b22;border-color:#e3b5a8;background:#fbeee9}
.tag-web{color:#1f5c8b;border-color:#b4cfe5;background:#ecf3fa}
.tag-toolkit{color:#1d6b5f;border-color:#a9d3cb;background:#e9f5f2}
.tag-video{color:#6b3d8f;border-color:#cbb5de;background:#f3edf9}

/* ---------- events ---------- */
.mps-event{background:#fff;border:1px solid var(--mps-rule);border-top:4px solid var(--mps-orange)}
.mps-event .when{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;
  color:var(--mps-orange);display:block}
.mps-event .where{font-size:.92rem;color:var(--mps-text-faint)}
.mps-event p{font-size:.99rem;color:var(--mps-text-soft);line-height:1.58}

/* ---------- build notes ---------- */
.mps-note{border:1.5px dashed var(--mps-sky);background:var(--mps-mist);padding:26px 28px}
.mps-note b{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--mps-text-faint);display:block;margin-bottom:8px}
.mps-note p{font-size:.97rem;color:var(--mps-text-soft);margin:0}

/* ---------- CTA band ---------- */
.mps-cta{position:relative;overflow:hidden;isolation:isolate;background-color:var(--mps-navy)}
.mps-cta>.e-con-inner{position:relative;z-index:2}
.mps-cta::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(16,32,63,.92) 0%,rgba(20,42,79,.8) 40%,rgba(24,70,108,.5) 100%)}
.mps-cta h2{color:#fff}

/* ---------- photo bands: equal gaps ---------- */
.mps-band img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.mps-band-2 img{aspect-ratio:16/10}

/* ---------- header ---------- */
.mps-header{background:#fff;border-bottom:1px solid var(--mps-rule)}
.mps-header .elementor-nav-menu .elementor-item{font-size:.83rem;font-weight:500;
  color:var(--mps-text-soft)}
.mps-header .elementor-widget-nav-menu .elementor-nav-menu .elementor-item{padding:11px 12px 13px}
.mps-header .elementor-nav-menu .elementor-item:hover{color:var(--mps-navy);background:none}
.mps-header .elementor-nav-menu .elementor-item.elementor-item-active{color:var(--mps-navy);
  font-weight:600}
/* underline sits on the horizontal menu only, never the mobile dropdown */
.mps-header .elementor-nav-menu:not(.sm-vertical) .elementor-item{position:relative}
.mps-header .elementor-nav-menu:not(.sm-vertical) .elementor-item::after{content:"";
  position:absolute;left:9px;right:9px;bottom:0;height:2px;background:var(--mps-orange);
  opacity:0;transition:opacity .18s ease}
.mps-header .elementor-nav-menu:not(.sm-vertical) .elementor-item:hover::after,
.mps-header .elementor-nav-menu:not(.sm-vertical) .elementor-item:focus-visible::after,
.mps-header .elementor-nav-menu:not(.sm-vertical) .elementor-item.elementor-item-active::after{opacity:1}

/* ---------- footer ---------- */
.mps-footer{background:var(--mps-ink);color:#9fb0c8}
.mps-footer h4{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#7f90a8}
.mps-footer a{color:#c3d0e2;text-decoration:none}
.mps-footer a:hover{color:#fff}
.mps-footer .elementor-nav-menu .elementor-item{color:#c3d0e2;font-size:.88rem}
.mps-footer .elementor-widget-nav-menu .elementor-nav-menu .elementor-item{padding:4px 0}
.mps-footer .elementor-nav-menu .elementor-item:hover{color:#fff;background:none}
.mps-colophon{font-size:.84rem;color:#7f90a8;border-top:1px solid rgba(255,255,255,.11);padding-top:22px}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .mps-cities{grid-template-columns:1fr}
}
@media (max-width:767px){
  .mps-banner::after{background:linear-gradient(175deg,rgba(16,32,63,.9) 0%,rgba(22,55,94,.82) 100%)}
  .mps-banner-plain::after{background:linear-gradient(160deg,rgba(26,82,118,.5) 0%,rgba(29,52,97,0) 70%)}
  .mps-rings::before,.mps-banner-plain::before{width:560px;height:560px;top:-215px;right:-210px;left:auto}
  .mps-band img,.mps-band-2 img{aspect-ratio:16/10}
  .mps-row{flex-direction:column;gap:9px}
  .mps-cat-head{flex-wrap:wrap}
}

/* ===========================================================
   Elementor layout bridges
   =========================================================== */

/* child containers in a row share the row instead of stacking */
/* Content columns size from CSS, not from Elementor's Width control: Elementor
   defaults these children to --width:100%, which would put every column on its
   own line. Ask me if you need a different split here. The footer row below is
   the exception - its widths are set in the editor and honoured. */
.mps-cols-2>.e-con{flex:1 1 340px;width:auto}
.mps-cols-3>.e-con{flex:1 1 260px;width:auto}
.mps-band>.elementor-widget{flex:1 1 0;width:auto;min-width:0}
.mps-band>.elementor-widget .elementor-widget-container,
.mps-band>.elementor-widget figure,
.mps-band>.elementor-widget a{height:100%}

/* section heads and prose keep their measure */

/* Elementor's own widget CSS is more specific than plain element .elementor-kit-5s,
   so dark-context colour is set per widget in the editor; these cover the rest */
.mps-banner .elementor-heading-title .hl,
.mps-dark .elementor-heading-title .hl,
.mps-cta .elementor-heading-title .hl{color:var(--mps-orange-bright)}
.elementor-heading-title .hl{color:var(--mps-orange)}

/* header columns are structural, so they carry no padding of their own */
.mps-header>.e-con-inner>.e-con{
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}
/* header: nav centred, button never wraps */
.mps-header .elementor-widget-button .elementor-button{white-space:nowrap}
.mps-header .elementor-nav-menu--main .elementor-nav-menu{flex-wrap:wrap;justify-content:flex-end}

/* footer columns share one row */
/* Footer columns honour Elementor's Width control. Their percentages sum to ~94%,
   which with the row gap exceeds one line, so the row is held to a single line on
   desktop and the columns shrink to fit instead of wrapping. */
.mps-footer-row>.e-con{flex-grow:1;flex-shrink:1;flex-basis:var(--width,200px);min-width:0}
.mps-footer-row>.e-con:first-child{flex-basis:var(--width,320px)}
@media (min-width:768px){
  .mps-footer .mps-footer-row{--flex-wrap:nowrap!important}
}
/* the active-page marker belongs to the main nav only */
.mps-footer .elementor-nav-menu .elementor-item.elementor-item-active{color:#fff}

/* ---------- links ---------- */
.mps-prose a,.mps-lede a,.elementor-widget-text-editor a,.mps-aside a,.mps-note a{
  color:var(--mps-blue);text-decoration-color:rgba(45,106,160,.35);text-underline-offset:3px}
.mps-prose a:hover,.mps-lede a:hover,.elementor-widget-text-editor a:hover,.mps-aside a:hover{
  text-decoration-color:currentColor}

/* ---------- contact / join sidebar ---------- */
.mps-aside{background:var(--mps-mist);border:1px solid var(--mps-rule);
  border-left:3px solid var(--mps-sky);padding:28px 26px}
.mps-aside h3{font-size:1.05rem;margin:0 0 18px}
.mps-aside p{margin:0;font-size:.99rem;color:var(--mps-text-soft);line-height:1.55}
.mps-aside .mps-step{margin-bottom:20px}
.mps-aside .mps-step:last-child{margin-bottom:0}
.mps-aside b{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--mps-text-faint);font-weight:600;display:block;margin:0 0 5px;line-height:1.5}
.mps-aside a{font-weight:500;word-break:break-word}

/* ---------- form slot, until the Solidarity Tech embed is dropped in ---------- */
.mps-formslot{border:1.5px dashed var(--mps-sky);background:var(--mps-mist);
  padding:34px 30px;text-align:left}
.mps-formslot b{display:block;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--mps-text-faint);margin-bottom:10px}
.mps-formslot h4{font-size:1.08rem;margin:0 0 10px}
.mps-formslot p{font-size:.97rem;color:var(--mps-text-soft);line-height:1.6;margin:0 0 8px}
.mps-formslot .mps-emails{margin-top:18px;padding-top:16px;border-top:1px solid var(--mps-rule)}

/* ---------- mobile header: logo left, menu + button right on one row ---------- */
@media (max-width:767px){
  .mps-header{--padding-top:14px!important;--padding-bottom:14px!important;
    --padding-left:16px!important;--padding-right:16px!important}
  .mps-header>.e-con-inner{flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;gap:10px!important}
  .mps-header>.e-con-inner>.e-con{width:auto!important;flex:0 0 auto!important}
  /* Mobile logo cap. 375px viewport leaves ~180px once the burger and button
     are placed; set Advanced > Width > Mobile on the logo column to take this
     over and this cap can be removed. */
  .mps-header>.e-con-inner>.e-con:first-child{flex:0 0 150px!important;min-width:0}
  .mps-header>.e-con-inner>.e-con:nth-child(2){flex:1 1 auto!important;min-width:0;
    align-items:flex-end!important}
  .mps-header .elementor-widget-image img{max-width:150px}
  .mps-header .elementor-button{padding:9px 12px!important;font-size:.74rem!important}
  /* the off-canvas menu still needs room to breathe */
  .mps-header .elementor-nav-menu--dropdown .elementor-item{padding:13px 18px!important}
}

/* layout wrappers add no inset of their own, so cards line up with full-width siblings */
.mps-cols-2,.mps-cols-3,.mps-sechead,.mps-btnrow,.mps-footer-row{
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}

/* ---------- buttons: pill shape, smooth hover ---------- */
.elementor-button{
  border-radius:100px;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease,
             transform .18s ease,box-shadow .25s ease;
}
.elementor-button:hover,.elementor-button:focus-visible{transform:translateY(-1px)}
.mps-header .elementor-button:hover{box-shadow:0 5px 16px rgba(201,74,45,.28)}
.mps-cta .elementor-button:hover,.mps-banner .elementor-button:hover{
  box-shadow:0 5px 18px rgba(8,16,34,.3)}
.elementor-button:focus-visible{outline:2.5px solid var(--mps-orange);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  .elementor-button{transition:none}
  .elementor-button:hover,.elementor-button:focus-visible{transform:none}
}

/* ---------- Resources: Loop Grid rows ---------- */
.mps-res-grid .elementor-grid{display:block}
/* row columns size to content, not to Elementor's default 100% */
.mps-res-row>.e-con{--width:auto}
.mps-res-body{flex:1 1 auto}
.mps-res-tagwrap{flex:0 0 auto;margin-left:auto}
.mps-res-row{border-bottom:1px solid var(--mps-rule-soft)}
.mps-res-row:hover{background:var(--mps-tint)}
.mps-res-body{min-width:0}
.mps-res-titleline .mps-res-title{font-size:1.05rem;font-weight:600;line-height:1.4;
  color:var(--mps-navy);text-decoration:none;display:block}
.mps-res-titleline a.mps-res-title:hover{text-decoration:underline;
  text-decoration-color:var(--mps-orange)}
.mps-res-title.is-missing{color:var(--mps-text-soft)}
.mps-res-src{font-size:.88rem;color:var(--mps-text-faint)}
.mps-res-src p,.mps-res-note p{margin:0}
.mps-res-note,.mps-res-noteline{font-size:.92rem;color:var(--mps-text-soft);line-height:1.5}

/* the chip takes its colour from the Type field, via a class on the loop item */
.mps-res-tag{display:inline-flex;align-items:center;font-size:.69rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:3px;
  border:1px solid;white-space:nowrap;
  color:#1f5c8b;border-color:#b4cfe5;background:#ecf3fa}
.mps-type-pdf     .mps-res-tag{color:#a33b22;border-color:#e3b5a8;background:#fbeee9}
.mps-type-toolkit .mps-res-tag{color:#1d6b5f;border-color:#a9d3cb;background:#e9f5f2}
.mps-type-video   .mps-res-tag{color:#6b3d8f;border-color:#cbb5de;background:#f3edf9}
.mps-type-form    .mps-res-tag{color:#8a6212;border-color:#e0cb9a;background:#faf3e2}
.mps-type-doc     .mps-res-tag{color:#4a5568;border-color:#cbd4e0;background:#f1f4f8}
@media (max-width:767px){
  .mps-res-row{flex-direction:column!important;gap:9px!important}
}

/* ---------- Press: month headings inside the loop ---------- */
.mps-press-grid .elementor-grid{display:block}
/* Each month sits inside its own loop wrapper, and those wrappers are not the
   grid's first child, so :first-child can't identify the top one. Instead: no
   top padding by default, and space above any loop item that follows another. */
.mps-press-item .mps-month{margin:0;padding:0 0 12px}
.mps-press-grid .e-loop-item ~ .e-loop-item .mps-month{padding-top:46px}

/* ---------- Strategic Priorities: accent icons ----------
   Hairline marks drawn to match the concentric-ring motif. The stroke colour is
   baked into each SVG (orange #c94a2d on the cards, white on
   the navy box) - to recolour one, change the stroke value inside its URL. */
.mps-track::before{
  /* position:static resets Elementor's .e-con::before, which is absolutely
     positioned for container background overlays and would pin this to 0,0 */
  content:"";position:static;display:block;width:30px;height:30px;
  margin-bottom:15px;flex:0 0 auto;
  background-repeat:no-repeat;background-position:left center;background-size:contain;
}
.mps-track:nth-child(1)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2032%2032%27%20fill%3D%27none%27%20stroke%3D%27%23c94a2d%27%20stroke-width%3D%271.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%203.2%205.5%207v8.6c0%206.7%204.4%2010.8%2010.5%2012.4%206.1-1.6%2010.5-5.7%2010.5-12.4V7L16%203.2Z%27%2F%3E%3Cpath%20d%3D%27m11.4%2015.9%203.4%203.4%206.2-6.6%27%2F%3E%3C%2Fsvg%3E")}
.mps-track:nth-child(2)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2032%2032%27%20fill%3D%27none%27%20stroke%3D%27%23c94a2d%27%20stroke-width%3D%271.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%205.5v20%27%2F%3E%3Cpath%20d%3D%27M10%2025.5h12%27%2F%3E%3Cpath%20d%3D%27M4%2010h24%27%2F%3E%3Cpath%20d%3D%27M4%2010%20.8%2017.5h6.4L4%2010Z%27%2F%3E%3Cpath%20d%3D%27M28%2010l-3.2%207.5h6.4L28%2010Z%27%2F%3E%3C%2Fsvg%3E")}
.mps-track:nth-child(3)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2032%2032%27%20fill%3D%27none%27%20stroke%3D%27%23c94a2d%27%20stroke-width%3D%271.4%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M27%2019.5a3%203%200%200%201-3%203H11.5L5.5%2027V8.5a3%203%200%200%201%203-3H24a3%203%200%200%201%203%203v11Z%27%2F%3E%3Cpath%20d%3D%27M10.5%2011.5h11%27%2F%3E%3Cpath%20d%3D%27M10.5%2016.2h7%27%2F%3E%3C%2Fsvg%3E")}

/* the grounding-vision box carries the ring motif, large and quiet */
.mps-vision{position:relative;overflow:hidden}
.mps-vision::after{
  content:"";position:absolute;top:28px;right:32px;width:88px;height:88px;
  pointer-events:none;opacity:.38;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2032%2032%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%270.47%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2716%27%20cy%3D%2716%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2716%27%20cy%3D%2716%27%20r%3D%279.3%27%2F%3E%3Ccircle%20cx%3D%2716%27%20cy%3D%2716%27%20r%3D%274.6%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
}
@media (max-width:900px){ .mps-vision::after{display:none} }

/* ---------- Resources: jump links to each category ---------- */
/* spacing sits on the nav itself, not the Elementor widget wrapper, whose
   margin the kit already controls */
.mps-res-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.mps-res-jump{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.88rem;font-weight:500;line-height:1;
  padding:11px 18px;border-radius:100px;text-decoration:none;
  color:var(--mps-navy);background:#fff;border:1px solid var(--mps-rule);
  transition:background-color .25s ease,border-color .25s ease,color .25s ease,
             transform .18s ease,box-shadow .25s ease;
}
.mps-res-jump:hover,.mps-res-jump:focus-visible{
  background:var(--mps-tint);border-color:var(--mps-blue);transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(29,52,97,.1);
}
.mps-res-jump:focus-visible{outline:2.5px solid var(--mps-orange);outline-offset:3px}
.mps-res-jump-n{
  font-size:.72rem;font-weight:600;color:var(--mps-text-faint);
  background:var(--mps-mist);border-radius:100px;padding:3px 8px;
  font-variant-numeric:tabular-nums;
}
.mps-res-jump:hover .mps-res-jump-n{background:#fff}

/* Land clear of the top when jumping to a category.
   Deliberately no scroll-behavior:smooth here - smooth scrolling swallowed the
   jump entirely in testing, and an instant jump is the reliable behaviour. */
.mps-cat-head{scroll-margin-top:28px}
@media (prefers-reduced-motion:reduce){
  .mps-res-jump{transition:none}
  .mps-res-jump:hover,.mps-res-jump:focus-visible{transform:none}
}/* End custom CSS */