/* Middlesex Shooting Sports Club - the site's one stylesheet (final pass, 2026-09-29).
   Source of truth: plugins/mssc-site-style/mssc.css in the Middlesex-shooting-sports repo; build/17 copies it to the site.
   The pages are built from build/blocks.py: every element carries one of the classes below and no layout setting of
   its own, so layout lives here only. Tokens first; everything else uses them. */

/* =================================================================== tokens */
:root{
  --gutter:12px; --content-max:100%;
  --section:48px; --head-gap:16px; --btn-gap:24px; --grid-gap:12px; --block-gap:16px;
  --card-h:240px; --radius:0px; --hero-h:220px;
  --blue:#1F5FA8; --blue-dark:#174A85; --red:#B12333; --red-dark:#8E1C29; --text:#212529; --muted:#5A6472; --gray:#F4F6F9; --line:#DCE2EB;
  --font:'Montserrat',sans-serif;
  --h1:clamp(30px,2.5vw + 20px,56px); --h2:clamp(28px,1.53vw + 22px,44px); --h3:clamp(20px,.38vw + 18.5px,24px);
  --header-h:64px; --logo-h:44px; --reading:760px;
  --target:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='%23fff' stroke='%231F5FA8' stroke-width='4'/%3E%3Ccircle cx='32' cy='32' r='21' fill='none' stroke='%231F5FA8' stroke-width='4'/%3E%3Ccircle cx='32' cy='32' r='13' fill='none' stroke='%231F5FA8' stroke-width='4'/%3E%3Ccircle cx='32' cy='32' r='5.5' fill='%23D32027'/%3E%3C/svg%3E");
  --arrow-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E");
  --arrow-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B12333' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E");
}
@media (min-width:768px){
  :root{--gutter:24px; --section:64px; --head-gap:20px; --grid-gap:20px; --card-h:280px; --radius:12px; --hero-h:280px}
}
@media (min-width:1025px){
  :root{--gutter:32px; --content-max:1320px; --section:88px; --head-gap:24px; --grid-gap:24px; --card-h:320px; --hero-h:360px; --header-h:80px; --logo-h:56px}
}

/* =================================================================== base type */
html{scroll-padding-top:16px}
body,button,input,select,textarea,.elementor-widget,.elementor-kit-7{font-family:var(--font)}
body{color:var(--text);font-size:16px;line-height:1.6;background:#fff;overflow-x:clip}
body *:not(i):not([class*="eicon"]):not([class*="fa-"]):not(svg):not(path){font-family:var(--font)}
a{color:var(--blue)}
p,li,td,th,dd,dt,label{overflow-wrap:anywhere}
h1,h2,h3,h4,h5,h6{font-family:var(--font);overflow-wrap:break-word;hyphens:manual;text-wrap:balance}
[id]{scroll-margin-top:16px}
.mssc-text p,.mssc-text ul,.mssc-text ol,.mssc-text table{margin:0 0 12px}
.mssc-text p,.mssc-text li,.mssc-card__line p,.mssc-event__meta{text-wrap:pretty}
.mssc-text>*:last-child,.mssc-text .elementor-widget-container>*:last-child,.elementor-widget-text-editor>*:last-child{margin-bottom:0}
.mssc-text ul,.mssc-text ol{padding-left:22px}
.mssc-text li{margin:0 0 6px}
.mssc-text strong{font-weight:700}

/* =================================================================== sections: one gutter, one content width, one rhythm */
.elementor .e-con.mssc-sec{
  --padding-left:var(--gutter); --padding-right:var(--gutter);
  --padding-top:calc(var(--section) / 2); --padding-bottom:calc(var(--section) / 2);
  --container-max-width:var(--content-max); --content-width:min(100%,var(--content-max));
  --gap:0px; --row-gap:0px; --column-gap:0px; --margin-top:0px; --margin-bottom:0px;
  --min-height:0; --border-radius:0;
}
.elementor .e-con.mssc-sec>.e-con-inner{--gap:0px;--row-gap:0px;--column-gap:0px;gap:0;display:flex;flex-direction:column;align-items:stretch}
.elementor .e-con.mssc-sec .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--width:100%;--min-height:0}
.elementor .e-con.mssc-sec .elementor-widget{--margin-top:0px;--margin-bottom:0px;margin:0;width:100%;max-width:100%}
/* vertical rhythm between blocks inside a section or a column */
.mssc-sec>.e-con-inner>*+*,.mssc-col>*+*,.mssc-group>*+*,.mssc-stack>*+*{margin-top:var(--block-gap)!important}
.mssc-sec>.e-con-inner>.mssc-h+*,.mssc-col>.mssc-h+*,.mssc-stack>.mssc-h+*{margin-top:var(--head-gap)!important}
.mssc-sec>.e-con-inner>*+.mssc-btn,.mssc-sec>.e-con-inner>*+.mssc-link,.mssc-col>*+.mssc-btn,.mssc-col>*+.mssc-link,.mssc-stack>*+.mssc-btn,.mssc-stack>*+.mssc-link,
.mssc-sec>.e-con-inner>*+.mssc-actions,.mssc-col>*+.mssc-actions{margin-top:var(--btn-gap)!important}
.mssc-sec>.e-con-inner>*+.mssc-cards,.mssc-sec>.e-con-inner>*+.mssc-split,.mssc-sec>.e-con-inner>.mssc-cards+*,.mssc-sec>.e-con-inner>.mssc-split+*{margin-top:var(--head-gap)!important}
.mssc-sec>.e-con-inner>.mssc-sub,.mssc-col>.mssc-sub{margin-top:var(--btn-gap)!important}
.mssc-sec>.e-con-inner>.mssc-sub:first-child,.mssc-col>.mssc-sub:first-child{margin-top:0!important}
/* a section that follows a band keeps the same content-to-content gap */
.mssc-sec--band{background-color:var(--gray)}
.mssc-sec--blue{background-color:var(--blue);color:#fff}
.mssc-sec--blue .mssc-h h2,.mssc-sec--blue .mssc-h .elementor-heading-title{color:#fff}

/* reading width: paragraphs and lists never run wider than 760px on desktop */
.elementor .e-con.mssc-sec .elementor-widget.mssc-text,.elementor .e-con.mssc-sec .elementor-widget.mssc-lead{max-width:var(--reading)}
.elementor .e-con.mssc-sec .mssc-card .elementor-widget.mssc-text,.elementor .e-con.mssc-sec .mssc-info .elementor-widget.mssc-text,.elementor .e-con.mssc-footer .elementor-widget.mssc-text{max-width:none}

/* =================================================================== headings */
.mssc-h .elementor-heading-title,.mssc-h h2{font-size:var(--h2);line-height:1.12;font-weight:700;text-transform:uppercase;color:var(--blue);margin:0;letter-spacing:0}
.mssc-h h3.elementor-heading-title,.mssc-h3 .elementor-heading-title,.mssc-sub .elementor-heading-title{font-size:var(--h3);line-height:1.25;font-weight:700;text-transform:none;color:var(--blue);margin:0}
.mssc-sub .elementor-heading-title{text-transform:uppercase}
.mssc-lead p{font-size:16px;line-height:1.6}

/* =================================================================== buttons */
.elementor-widget-button.mssc-btn .elementor-button,.mssc-btn .elementor-button,a.mssc-button,.elementor-widget.mssc-form .elementor-button,
.pmpro_btn:not(.pmpro_btn-plain),.pmpro_btn-submit-checkout,#pmpro_btn-submit,.pmpro_content_message a.pmpro_btn,
.mssc-pmpro input[type=submit],.mssc-pmpro button[type=submit],.mssc-pmpro .button-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 28px;border:0;border-radius:999px;
  background:var(--red);color:#fff;font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.2;
  text-decoration:none;white-space:nowrap;box-shadow:none;transition:background-color .15s ease;cursor:pointer}
.elementor-widget-button.mssc-btn .elementor-button:hover,.mssc-btn .elementor-button:focus-visible,a.mssc-button:hover,.mssc-form .elementor-button:hover,.pmpro_btn:not(.pmpro_btn-plain):hover,#pmpro_btn-submit:hover,.mssc-pmpro input[type=submit]:hover,.mssc-pmpro button[type=submit]:hover{background:var(--red-dark);color:#fff}
.mssc-btn .elementor-button-icon svg,.mssc-btn .elementor-button-icon img{width:22px;height:22px;display:block}
.mssc-btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:10px;flex-direction:row}
.mssc-btn .elementor-button-icon{margin:0!important;order:0}
.mssc-btn .elementor-align-icon-left,.mssc-btn .elementor-button-icon{margin-right:0}
/* secondary: red uppercase text link with the arrow */
.elementor-widget-button.mssc-link .elementor-button,.mssc-link .elementor-button,a.mssc-arrow{
  display:inline-flex;align-items:center;gap:8px;padding:0;min-height:0;border:0;border-radius:0;background:none;color:var(--red);
  font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;box-shadow:none}
/* the arrow is the text's own end padding, so it stays with the last word when the link wraps */
.elementor-widget-button.mssc-link .elementor-button{display:inline;white-space:normal;line-height:1.5}
.mssc-link .elementor-button .elementor-button-content-wrapper{display:inline}
.mssc-link .elementor-button .elementor-button-text{display:inline;padding-right:24px;background:var(--arrow-r) no-repeat right center/16px}
a.mssc-arrow::after{content:"";width:16px;height:16px;flex:0 0 16px;background:var(--arrow-r) center/16px no-repeat}
.mssc-link .elementor-button:hover,a.mssc-arrow:hover{color:var(--red-dark);background:none;text-decoration:underline}
.mssc-btn,.mssc-link{text-align:left}
.mssc-btn .elementor-button-wrapper,.mssc-link .elementor-button-wrapper{text-align:left}
@media (max-width:767px){
  .elementor-widget-button.mssc-btn .elementor-button,.mssc-btn .elementor-button,.mssc-form .elementor-button,#pmpro_btn-submit,.pmpro_btn-submit-checkout,.mssc-pmpro input[type=submit],.mssc-pmpro button[type=submit]{width:100%;display:flex}
}
/* a centred intro (heading, one paragraph, one link) on desktop only */
@media (min-width:1025px){
  .mssc-center>.e-con-inner{align-items:center;text-align:center}
  .mssc-center .mssc-text,.mssc-center .mssc-lead{margin-left:auto;margin-right:auto}
  .mssc-center .mssc-link .elementor-button-wrapper,.mssc-center .mssc-btn .elementor-button-wrapper{text-align:center}
}

/* =================================================================== lists with the target */
ul.mssc-targets{list-style:none;padding:0;margin:0;display:grid;gap:10px}
ul.mssc-targets:not(:last-child){margin-bottom:12px}
ul.mssc-targets li{position:relative;padding-left:32px;margin:0;min-height:22px}
ul.mssc-targets li::before{content:"";position:absolute;left:0;top:2px;width:22px;height:22px;background:var(--target) center/22px no-repeat}
.mssc-text a,ul.mssc-targets a,.mssc-info a{color:var(--blue);text-decoration:underline;text-decoration-color:rgba(31,95,168,.4);text-underline-offset:3px}
.mssc-card .mssc-text a,.mssc-footer .mssc-text a{text-decoration:none}
.mssc-text a:hover,ul.mssc-targets a:hover{text-decoration-color:currentColor}
ol.mssc-steps{padding-left:24px}
ol.mssc-steps li::marker{color:var(--blue);font-weight:700}

/* =================================================================== header */
.elementor-location-header .e-con.mssc-header{background:var(--blue);--padding-top:10px;--padding-bottom:10px;position:relative;z-index:50}
.mssc-header .mssc-header__row{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;justify-content:space-between;gap:16px;min-height:calc(var(--header-h) - 20px)}
.mssc-header .elementor-widget{width:auto!important;flex:0 0 auto;margin:0!important}
.mssc-header .mssc-header__logo{margin-right:auto!important}
.mssc-header .mssc-header__logo img{height:var(--logo-h);width:auto;max-width:none;display:block}
.mssc-header .mssc-header__logo a{display:block;line-height:0}
.mssc-header .mssc-nav--desktop{flex:0 1 auto}
.mssc-nav--desktop .elementor-nav-menu--main>.elementor-nav-menu{display:flex;flex-wrap:nowrap;align-items:center;gap:2px}
.mssc-nav--desktop .elementor-nav-menu--main .elementor-item{color:#fff!important;fill:#fff;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:10px 9px!important;white-space:nowrap;line-height:1.2}
.mssc-nav--desktop .elementor-nav-menu--main .elementor-item:hover,.mssc-nav--desktop .elementor-nav-menu--main .elementor-item.elementor-item-active,.mssc-nav--desktop .elementor-nav-menu--main .current-menu-ancestor>.elementor-item,.mssc-nav--desktop .elementor-nav-menu--main .current-menu-parent>.elementor-item{color:#fff!important;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:6px}
.mssc-nav--desktop .sub-arrow{padding-left:4px}
.mssc-nav--desktop .sub-arrow svg,.mssc-nav--desktop .sub-arrow i{width:9px;height:9px;fill:#fff;color:#fff;font-size:9px}
.mssc-nav--desktop .elementor-nav-menu--main ul.sub-menu{background:#fff;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:8px 0;min-width:210px}
.mssc-nav--desktop .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item{color:var(--text)!important;background:#fff;font-size:14px;font-weight:600;text-transform:none;padding:10px 18px!important;border:0}
.mssc-nav--desktop .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover{color:var(--blue)!important;background:var(--gray)}
.mssc-header .mssc-header__account a{color:#fff;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;white-space:nowrap;padding:10px 9px;line-height:1.2;display:inline-block}
.mssc-header .mssc-header__account a:hover{text-decoration:underline;text-underline-offset:6px}
.mssc-header .mssc-header__join .elementor-button{min-height:44px;padding:0 22px}
/* phones and tablets: the flat menu behind the hamburger */
.mssc-nav--touch .elementor-menu-toggle{margin:0;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:flex-end;background:transparent!important;border:0!important;box-shadow:none!important;color:#fff;font-size:28px}
.mssc-nav--touch .elementor-menu-toggle svg{width:28px;height:28px;fill:#fff}
.mssc-nav--touch .elementor-menu-toggle i{color:#fff;font-size:28px}
.mssc-nav--touch nav.elementor-nav-menu--dropdown{background:#fff;box-shadow:0 14px 28px rgba(0,0,0,.18);border-top:1px solid var(--line);padding:6px 0 var(--gutter)}
.mssc-nav--touch .elementor-menu-toggle.elementor-active+nav.elementor-nav-menu--dropdown{height:auto;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:20px}
.mssc-nav--touch .elementor-nav-menu--dropdown .elementor-nav-menu{display:block}
.mssc-nav--touch .elementor-nav-menu--dropdown li{border:0}
.mssc-nav--touch .elementor-nav-menu--dropdown a.elementor-item{display:block;color:var(--text)!important;background:#fff!important;font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.3;padding:8px var(--gutter)!important;border:0!important;border-radius:0}
.mssc-nav--touch .elementor-nav-menu--dropdown a.elementor-item:hover,.mssc-nav--touch .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{color:var(--blue)!important;background:var(--gray)!important}
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-menu-cta{padding:0 var(--gutter);margin-top:10px}
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-signin{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-menu-cta>a.elementor-item,
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-menu-cta:last-child>a.elementor-item{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px!important;border-radius:999px!important;font-size:15px;letter-spacing:.03em}
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-join>a.elementor-item{background:var(--red)!important;color:#fff!important}
.mssc-nav--touch .elementor-nav-menu--dropdown li.mssc-signin>a.elementor-item{background:#fff!important;color:var(--blue)!important;box-shadow:inset 0 0 0 2px var(--blue)}
@media (max-width:1024px){ .mssc-only-desktop,.mssc-nav--desktop,.mssc-header__account,.mssc-header__join{display:none!important} }
@media (min-width:1025px){ .mssc-nav--touch{display:none!important} }

/* =================================================================== hero */
.elementor .e-con.mssc-hero{--min-height:var(--hero-h);min-height:var(--hero-h);justify-content:flex-end;background-color:#1b2533;position:relative;isolation:isolate}
.elementor .e-con.mssc-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,18,30,.72) 0%,rgba(10,18,30,.35) 55%,rgba(10,18,30,.15) 100%);z-index:0;opacity:1;mix-blend-mode:normal;border-radius:0}
.elementor .e-con.mssc-hero>.e-con-inner{position:relative;z-index:1;justify-content:flex-end;height:100%;min-height:calc(var(--hero-h) - var(--section))}
.mssc-hero__title .elementor-heading-title,.mssc-hero__title h1{font-size:var(--h1);line-height:1.08;font-weight:700;text-transform:uppercase;color:#fff;margin:0;letter-spacing:0}
.mssc-hero__sub p{color:#fff;font-size:18px;margin:0}
.mssc-hero--home{--hero-h:520px}
@media (min-width:768px){ .mssc-hero--home{--hero-h:560px} }
@media (min-width:1025px){ .mssc-hero--home{--hero-h:640px} }
.mssc-hero__logo img{width:160px;height:auto;display:block}
@media (min-width:1025px){ .mssc-hero__logo img{width:220px} }
.mssc-hero__tagline p{color:#fff;font-size:clamp(18px,1vw + 14px,26px);line-height:1.35;font-weight:600;margin:0;max-width:720px}
.mssc-hero__tagline p.mssc-hero__place{font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:8px;opacity:.95}
.mssc-hero .mssc-btn{margin-top:var(--btn-gap)!important}

/* =================================================================== range status band */
.elementor .e-con.mssc-status{background:var(--gray);--padding-top:12px;--padding-bottom:12px}
.elementor .e-con.mssc-status+.e-con.mssc-sec{--padding-top:calc(var(--section) - 12px)}
.mssc-status>.e-con-inner{display:flex!important;flex-direction:column!important;gap:8px!important}
.mssc-status>.e-con-inner>*+*{margin-top:0!important}
.mssc-status__label .elementor-heading-title{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin:0;line-height:1.2}
.mssc-status .marquee-wrapper{background:none;padding:0;overflow:visible;width:100%}
.mssc-status .marquee-wrapper .marquee-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;justify-content:stretch;gap:8px;padding:0;margin:0;max-width:none}
.mssc-status .marquee-wrapper .marquee-content .status-item{display:flex!important;align-items:center;justify-content:space-between;gap:8px;width:100%;justify-self:stretch;box-sizing:border-box;min-width:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;white-space:normal;line-height:1.2}
.mssc-status .marquee-wrapper .marquee-content .status-item p{flex:1 1 auto;min-width:auto;overflow-wrap:normal;word-break:normal;margin:0;padding:0;font-size:12px;font-weight:700;letter-spacing:.02em;text-align:left;color:var(--text)}
.mssc-status .marquee-wrapper .badge{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:999px;line-height:1.2}
.mssc-status .marquee-wrapper .badge-open{background:var(--blue)!important;color:#fff}
.mssc-status .marquee-wrapper .badge-closed{background:var(--red)!important;color:#fff}
/* phones 2 + 2 + 1 (the last across the row), tablets 3 + 2, desktop 5 across */
@media (max-width:767px){ .mssc-status .marquee-wrapper .marquee-content .status-item:last-child:nth-child(odd){grid-column:1 / -1} }
@media (min-width:768px){ .mssc-status .marquee-wrapper .marquee-content{grid-template-columns:repeat(6,minmax(0,1fr))} .mssc-status .marquee-wrapper .marquee-content .status-item{grid-column:span 2} .mssc-status .marquee-wrapper .marquee-content .status-item:nth-child(n+4){grid-column:span 3} }
@media (min-width:1025px){ .mssc-status .marquee-wrapper .marquee-content{grid-template-columns:repeat(5,minmax(0,1fr))} .mssc-status .marquee-wrapper .marquee-content .status-item,.mssc-status .marquee-wrapper .marquee-content .status-item:nth-child(n+4){grid-column:auto} }

/* =================================================================== two columns */
.mssc-split{display:grid!important;grid-template-columns:1fr;gap:var(--head-gap) var(--grid-gap)}
.mssc-split>.mssc-col{display:flex!important;flex-direction:column;min-width:0}
@media (max-width:767px){ .mssc-split>.mssc-col:has(>.mssc-photo:only-child){order:-1} }
@media (min-width:768px){
  .mssc-split>.mssc-col:has(>.mssc-photo:only-child){align-self:stretch}
  .mssc-split>.mssc-col>.mssc-photo:only-child{flex:1 1 auto;position:relative;aspect-ratio:3/2;height:auto}
  .mssc-split>.mssc-col>.mssc-photo:only-child img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
}
@media (min-width:768px){
  .mssc-split{grid-template-columns:1fr 1fr;column-gap:calc(var(--grid-gap) * 2);align-items:start}
  .mssc-split--center{align-items:center}
}

/* =================================================================== photos */
.mssc-photo img,.elementor-widget-image.mssc-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:var(--radius)}
.mssc-photo .elementor-widget-container,.mssc-photo a{display:block;line-height:0}

/* =================================================================== cards */
.mssc-cards{display:grid!important;grid-template-columns:1fr;gap:var(--grid-gap)!important;width:100%}
@media (min-width:768px){
  .mssc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mssc-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mssc-cards--5{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mssc-cards--5>*{grid-column:span 2}
  .mssc-cards--5>*:nth-child(n+4){grid-column:span 3}
}
@media (min-width:1025px){
  .mssc-cards--4,.mssc-cards--8{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.elementor .e-con.mssc-card{
  position:relative;isolation:isolate;display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch;
  min-height:var(--card-h);--min-height:var(--card-h);padding:20px;border-radius:var(--radius);overflow:hidden;
  background-color:var(--blue);background-size:cover;background-repeat:no-repeat;color:#fff;text-decoration:none;width:auto!important}
.elementor .e-con.mssc-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(8,14,24,.82) 0%,rgba(8,14,24,.45) 45%,rgba(8,14,24,0) 80%);opacity:1;mix-blend-mode:normal;border-radius:0;transition:none}
.elementor .e-con.mssc-card::after{content:"";position:absolute;right:20px;bottom:20px;width:36px;height:36px;border:2px solid #fff;border-radius:50%;background:var(--arrow-w) center/16px no-repeat;box-sizing:border-box;transition:transform .15s ease}
.elementor .e-con.mssc-card:hover::after{transform:translate(2px,-2px)}
.elementor .e-con.mssc-card:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.mssc-card>*+*{margin-top:6px!important}
.mssc-card__title .elementor-heading-title{color:#fff;font-size:var(--h3);line-height:1.2;font-weight:700;text-transform:uppercase;margin:0}
.mssc-card__line p{text-wrap:balance;color:#fff;font-size:15px;line-height:1.4;margin:0;opacity:.95;padding-right:56px;min-height:36px;display:flex;align-items:center}
.elementor .e-con.mssc-card--blue{background-color:var(--blue);justify-content:flex-start!important;padding:16px}
.mssc-card--blue .mssc-card__title .elementor-heading-title{font-size:18px}
.elementor .e-con.mssc-card--blue::after{top:16px;bottom:auto}
.mssc-card--blue .mssc-card__title{padding-right:48px;min-height:36px;display:flex;align-items:center}
.elementor .e-con.mssc-card--blue::before{display:none}
.mssc-card__body{color:#fff}
.mssc-card__body .mssc-hours{color:#fff}
@media (max-width:767px){ .elementor .e-con.mssc-card{padding:16px} .elementor .e-con.mssc-card::after{right:16px;bottom:16px} .elementor .e-con.mssc-card--blue{padding:16px} }
/* cards side by side: the line keeps two lines of room so titles in a row sit at the same height */
@media (min-width:768px){ .mssc-card__line p{min-height:calc(2 * 1.4em)} }
/* four across below 1280: a smaller title */
@media (min-width:1025px) and (max-width:1279px){ .mssc-cards--4 .mssc-card__title .elementor-heading-title,.mssc-cards--8 .mssc-card__title .elementor-heading-title{font-size:18px} .mssc-cards--4 .mssc-card__line p,.mssc-cards--8 .mssc-card__line p{font-size:14px} }
/* three or more across on a tablet: a smaller title so long names fit */
@media (min-width:768px) and (max-width:1024px){ .mssc-cards--3 .mssc-card__title .elementor-heading-title,.mssc-cards--5 .mssc-card__title .elementor-heading-title{font-size:18px} .mssc-cards--3 .mssc-card__line p,.mssc-cards--5 .mssc-card__line p{font-size:14px} }

/* =================================================================== range hours (one component) */
table.mssc-hours{width:100%;border-collapse:collapse;margin:0;font-size:15px;line-height:1.4;color:inherit}
/* the full table reads as a schedule, not a spreadsheet: it stops at 640px on wide screens */
.mssc-hours-full table.mssc-hours,.mssc-hours-full ul.mssc-hours-notes,.mssc-info table.mssc-hours{max-width:640px}
table.mssc-hours th,table.mssc-hours td{padding:6px 0;border:0;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;background:none;line-height:1.4}
table.mssc-hours th{font-weight:700;width:38%;padding-right:12px;white-space:nowrap}
table.mssc-hours td{text-align:right}
table.mssc-hours .mssc-hours__line{display:block}
table.mssc-hours tr.is-closed td{color:var(--muted)}
/* compact (home card, footer): each day is a flex row; hours that don't fit beside the day drop under it, full width */
table.mssc-hours--compact{display:block;font-size:12px;line-height:1.25}
table.mssc-hours--compact tbody{display:block}
table.mssc-hours--compact tr{display:flex;flex-wrap:wrap;justify-content:space-between;column-gap:10px;row-gap:0;padding:1px 0;margin:0;border-bottom:1px solid rgba(255,255,255,.22)}
table.mssc-hours--compact th,table.mssc-hours--compact td{display:block;padding:0;margin:0;border:0;width:auto;line-height:1.2}
table.mssc-hours--compact th{flex:0 0 auto}
table.mssc-hours--compact td{flex:1 1 auto;text-align:right}
.mssc-card--blue table.mssc-hours tr.is-closed td,.mssc-footer table.mssc-hours tr.is-closed td{color:rgba(255,255,255,.78)}
ul.mssc-hours-notes{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px;font-size:16px;max-width:var(--reading)}
ul.mssc-hours-notes li{margin:0}

/* =================================================================== tables (officers) */
table.mssc-officers{width:100%;max-width:var(--reading);border-collapse:collapse;font-size:16px;margin:0}
table.mssc-officers th,table.mssc-officers td{text-align:left;padding:10px 12px;border:1px solid var(--line);background:none}
/* the theme stripes odd table rows; these tables are not striped */
table.mssc-officers tbody>tr>th,table.mssc-officers tbody>tr>td,table.mssc-hours tbody>tr>th,table.mssc-hours tbody>tr>td{background-color:transparent}
table.mssc-officers thead th{background:var(--blue);color:#fff;font-weight:700}
table.mssc-officers tbody th{font-weight:700;width:40%}
.mssc-note{color:var(--muted);font-style:italic;margin:12px 0 0}
@media (max-width:767px){
  table.mssc-officers thead{display:none}
  table.mssc-officers,table.mssc-officers tbody,table.mssc-officers tr,table.mssc-officers th,table.mssc-officers td{display:block;width:100%}
  table.mssc-officers tr{border:1px solid var(--line);border-radius:0;padding:10px 12px;margin:0 0 8px}
  table.mssc-officers th,table.mssc-officers td,table.mssc-officers tbody th{border:0;padding:0;width:100%}
  table.mssc-officers tbody th{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--blue)}
}

/* =================================================================== events (club list) */
ul.mssc-events{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:var(--grid-gap)}
@media (min-width:768px){ ul.mssc-events{grid-template-columns:repeat(2,minmax(0,1fr))} ul.mssc-events>li:last-child:nth-child(odd){grid-column:1 / -1} }
@media (min-width:1280px){
  .mssc-events-month ul.mssc-events{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mssc-events-month ul.mssc-events>li,.mssc-events-month ul.mssc-events>li:last-child:nth-child(odd){grid-column:span 2}
  .mssc-events-month ul.mssc-events>li:nth-child(3n+1):nth-last-child(4),.mssc-events-month ul.mssc-events>li:nth-child(3n+1):nth-last-child(4)~li,
  .mssc-events-month ul.mssc-events>li:nth-child(3n+1):nth-last-child(2),.mssc-events-month ul.mssc-events>li:nth-child(3n+1):nth-last-child(2)~li{grid-column:span 3}
  .mssc-events-month ul.mssc-events>li:nth-child(3n+1):last-child{grid-column:1 / -1}
}
li.mssc-event{margin:0}
a.mssc-event__link{display:flex;gap:14px;align-items:flex-start;height:100%;padding:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--text);text-decoration:none;position:relative;padding-right:52px;box-sizing:border-box}
a.mssc-event__link::after{content:"";position:absolute;right:14px;top:14px;width:24px;height:24px;background:var(--arrow-r) center/16px no-repeat}
a.mssc-event__link:hover{border-color:var(--blue)}
.mssc-event__date{flex:0 0 56px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--blue);color:#fff;border-radius:8px;padding:6px 0;line-height:1.05}
.mssc-event__dow,.mssc-event__mon{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.mssc-event__day{font-size:22px;font-weight:700}
.mssc-event__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.mssc-event__title{font-weight:700;font-size:16px;line-height:1.3;color:var(--blue);text-wrap:balance}
.mssc-event__when{font-size:14px;font-weight:600}
.mssc-event__meta{font-size:15px;color:var(--text);line-height:1.45}
.mssc-events-month+.mssc-events-month{margin-top:var(--btn-gap)}
.mssc-events-month__title{font-size:var(--h3);font-weight:700;color:var(--blue);margin:0 0 var(--head-gap);text-transform:uppercase}
.mssc-sec--band a.mssc-event__link{border-color:#fff}

/* =================================================================== galleries: 2 across on phones, 3 above; no orphan tile */
.mssc-gallery .gallery{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);margin:0!important}
.mssc-gallery .gallery-item{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;float:none!important}
.mssc-gallery .gallery-icon,.mssc-gallery .gallery-icon a{display:block;line-height:0}
.mssc-gallery .gallery-item img{width:100%!important;height:auto!important;aspect-ratio:3/2;object-fit:cover;display:block;border:0!important;border-radius:var(--radius)}
.mssc-gallery .gallery br{display:none}
.mssc-gallery .gallery-caption{display:none}
/* phones, two across: an odd last photo spans the row at the same 3:2 shape */
@media (max-width:767px){ .mssc-gallery .gallery-item:last-child:nth-child(odd){grid-column:1 / -1} }
/* three across from 768px on a six-column grid: one photo left over -> the last four sit 2 x 2; two left over -> they share the row */
@media (min-width:768px){
  .mssc-gallery .gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mssc-gallery .gallery-item{grid-column:span 2}
  .mssc-gallery .gallery-item:nth-child(3n+1):nth-last-child(4),.mssc-gallery .gallery-item:nth-child(3n+1):nth-last-child(4)~.gallery-item,
  .mssc-gallery .gallery-item:nth-child(3n+1):nth-last-child(2),.mssc-gallery .gallery-item:nth-child(3n+1):nth-last-child(2)~.gallery-item{grid-column:span 3}
}

/* =================================================================== facilities slides */
.mssc-slides .elementor-slides-wrapper,.mssc-slides .swiper{border-radius:var(--radius);overflow:hidden}
.mssc-slides .swiper-slide{height:360px!important}
@media (min-width:768px){ .mssc-slides .swiper-slide{height:440px!important} }
@media (min-width:1025px){ .mssc-slides .swiper-slide{height:520px!important} }
.mssc-slides .swiper-slide-bg{background-size:cover;background-position:center}
.mssc-slides .swiper-slide-inner{position:absolute!important;inset:0;display:flex!important;align-items:flex-end!important;justify-content:flex-start!important;padding:20px!important;text-align:left!important;
  background:linear-gradient(to top,rgba(8,14,24,.85) 0%,rgba(8,14,24,.5) 40%,rgba(8,14,24,0) 75%);text-decoration:none}
.mssc-slides .swiper-slide-contents{max-width:640px!important;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.mssc-slides .elementor-slide-heading{font-size:var(--h2)!important;line-height:1.1!important;font-weight:700!important;text-transform:uppercase;color:#fff!important;margin:0!important}
.mssc-slides .elementor-slide-description{font-size:16px!important;line-height:1.5!important;color:#fff!important;margin:0!important;font-weight:500}
.mssc-slides .elementor-slide-button{display:inline-flex!important;align-items:center;gap:10px;min-height:48px;padding:0 24px 0 18px!important;margin-top:16px!important;border:0!important;border-radius:999px!important;background:var(--red)!important;color:#fff!important;font-size:15px!important;font-weight:700!important;letter-spacing:.03em;text-transform:uppercase}
.mssc-slides .elementor-slide-button::before{content:"";width:22px;height:22px;flex:0 0 22px;background:var(--target) center/22px no-repeat}
@media (max-width:767px){ .mssc-slides .elementor-slides-wrapper,.mssc-slides .swiper{border-radius:0} .mssc-slides .elementor-slide-button{width:100%;justify-content:center} .mssc-slides .swiper-slide-contents{width:100%} }
.mssc-slides .swiper-pagination-bullet{background:#fff;opacity:.6}
.mssc-slides .swiper-pagination-bullet-active{opacity:1}
.mssc-slides .elementor-swiper-button{color:#fff}
.mssc-slides .elementor-swiper-button svg{fill:#fff}
@media (max-width:1024px){ .elementor-widget.mssc-slides .elementor-swiper-button{display:none} }
@media (min-width:1025px){ .mssc-slides .swiper-slide-inner{padding:40px 72px!important} }
.mssc-slides .elementor-slide-heading{text-wrap:balance}

/* =================================================================== forms (Elementor Pro form, the contact forms) */
.elementor .e-con.mssc-sec>.e-con-inner>.elementor-widget.mssc-form{max-width:var(--reading)}
.mssc-form .elementor-form-fields-wrapper{margin:0!important;display:grid!important;grid-template-columns:1fr;gap:12px}
.mssc-form .elementor-field-group{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;flex:none}
.mssc-form .elementor-field-group.elementor-field-type-submit{margin-top:12px!important}
.mssc-form .elementor-field,.mssc-form .elementor-field-textual{font-family:var(--font);font-size:16px;line-height:1.4;color:var(--text);background:#fff;border:1px solid #C9D2DE;border-radius:8px;min-height:48px;padding:10px 14px}
.mssc-form textarea.elementor-field{min-height:140px}
.mssc-form .elementor-field:focus{border-color:var(--blue);outline:2px solid rgba(31,95,168,.25)}
.mssc-form .elementor-field-label{font-weight:600;font-size:14px;margin-bottom:6px;color:var(--text)}
.mssc-form .elementor-field-type-submit{display:flex;justify-content:flex-start}
@media (min-width:768px){ .mssc-form .elementor-field-type-submit .elementor-button{width:auto;flex:0 0 auto;min-width:160px} }
.mssc-sec--band .mssc-form .elementor-field{border-color:#C9D2DE}

/* =================================================================== contact page info blocks */
.mssc-info{display:grid!important;grid-template-columns:1fr;gap:var(--grid-gap)!important}
/* two blocks with an email address on the first row, three below */
@media (min-width:768px){ .mssc-info{grid-template-columns:repeat(6,minmax(0,1fr))} .mssc-info>*{grid-column:span 2} .mssc-info>*:nth-child(-n+2){grid-column:span 3} }
.elementor .e-con.mssc-info__item{background:var(--gray);border-radius:var(--radius);padding:20px;display:flex!important;flex-direction:column;gap:0;min-height:0;--min-height:0;height:auto}
.mssc-info__item>*+*{margin-top:8px!important}
.mssc-info__item .mssc-info__title .elementor-heading-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;text-transform:uppercase;color:var(--blue);margin:0}
.mssc-info__title .elementor-heading-title::before{content:"";width:28px;height:28px;flex:0 0 28px;background-color:var(--blue);-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.mssc-icon-mail{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L4.4 7H3.9v.6L12 13.3l8.1-5.7V7h-.5z'/%3E%3C/svg%3E")}
.mssc-icon-pin{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E")}
.mssc-icon-clock{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10.4 3.6 2.1-1 1.7L11 13V6h2z'/%3E%3C/svg%3E")}
.mssc-icon-facebook{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 12a10 10 0 1 0-11.6 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7A10 10 0 0 0 22 12z'/%3E%3C/svg%3E")}
.mssc-icon-user{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E")}
.mssc-icon-building{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 9v2h20V9zM4 12v7H3v2h18v-2h-1v-7h-2v7h-3v-7h-2v7h-2v-7H9v7H6v-7z'/%3E%3C/svg%3E")}
.mssc-map iframe{display:block;width:100%;height:320px;border:0;border-radius:var(--radius)}
@media (min-width:1025px){ .mssc-map iframe{height:480px} }

/* =================================================================== footer */
.elementor-location-footer .e-con.mssc-footer{background:var(--blue);color:#fff;--padding-top:calc(var(--section) / 2);--padding-bottom:20px}
.mssc-footer a{color:#fff;text-decoration:none}
.mssc-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.mssc-footer .mssc-footer__photo img{width:100%;height:auto;aspect-ratio:21/9;max-height:380px;object-fit:cover;object-position:50% 25%;display:block;border-radius:var(--radius)}
@media (max-width:767px){ .mssc-footer .mssc-footer__photo img{aspect-ratio:auto;height:190px;max-height:190px} }
.mssc-footer>.e-con-inner>*+*{margin-top:var(--head-gap)!important}
.mssc-footer__main{display:flex!important;flex-direction:column!important;gap:var(--head-gap)!important}
.mssc-footer__logo img{width:120px;height:auto;display:block}
.mssc-footer__cols{display:grid!important;grid-template-columns:1fr;gap:var(--head-gap) var(--grid-gap)!important}
@media (min-width:1025px){
  .mssc-footer__main{flex-direction:row!important;align-items:flex-start;gap:calc(var(--grid-gap) * 2)!important}
  .mssc-footer__logo{width:150px!important;flex:0 0 150px}
  .mssc-footer__logo img{width:150px}
  .mssc-footer__cols{flex:1 1 auto;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1280px){ .mssc-footer__cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.5fr)} }
.mssc-footer__logo{text-align:left}
.mssc-footer__col>*+*{margin-top:10px!important}
.mssc-footer table.mssc-hours--compact{max-width:420px}
.mssc-footer__title .elementor-heading-title{font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:0}
.mssc-footer .mssc-text,.mssc-footer .mssc-text p{color:#fff;font-size:15px;line-height:1.6}
ul.mssc-footer__links{list-style:none;padding:0;margin:0;display:grid;gap:6px}
ul.mssc-footer__links li{margin:0}
.mssc-footer__bottom{border-top:1px solid rgba(255,255,255,.28);padding-top:16px!important;display:flex!important;flex-direction:column!important;gap:8px!important}
.mssc-footer__bottom .mssc-text p{font-size:13px;margin:0}
.mssc-footer__legal ul.mssc-footer__links{display:flex;flex-wrap:wrap;gap:6px 24px;font-size:13px}
@media (min-width:768px){ .mssc-footer__bottom{flex-direction:row!important;justify-content:space-between;align-items:center} .mssc-footer__bottom>*{width:auto!important} }
@media (max-width:767px){ .mssc-footer{text-align:center} .mssc-footer__logo{text-align:center} .mssc-footer__logo img{margin:0 auto} ul.mssc-footer__links{justify-items:center} .mssc-footer__legal ul.mssc-footer__links{justify-content:center} .mssc-footer table.mssc-hours th{text-align:left} }

/* =================================================================== PMPro: checkout, account, login
   PMPro 3 styles itself from custom properties; set them to the site tokens instead of overriding its rules. */
.mssc-pmpro,.pmpro{
  --pmpro--base--spacing--small:12px; --pmpro--base--spacing--medium:var(--grid-gap); --pmpro--base--spacing--large:20px;
  --pmpro--base--border-radius:var(--radius); --pmpro--box-shadow:none; --pmpro--color--border--variation:var(--line);
  --pmpro--color--contrast:var(--text); --pmpro--color--accent:var(--blue); --pmpro--color--base:#fff;
  --pmpro--base--font-family:var(--font); font-family:var(--font); color:var(--text)}
@media (max-width:767px){ .mssc-pmpro,.pmpro{--pmpro--base--spacing--large:16px} }
.mssc-pmpro .pmpro_card{margin:0 0 var(--grid-gap)}
/* forms read down one column: on wide screens they stop at 880px instead of stretching across 1320 */
@media (min-width:1025px){ .mssc-pmpro #pmpro_form,.mssc-pmpro .pmpro_login_wrap,.mssc-pmpro #pmpro_account-profile-edit,.mssc-pmpro .pmpro_billing_wrap{max-width:880px} }
.mssc-pmpro .pmpro_card:last-child{margin-bottom:0}
.mssc-pmpro .pmpro_section{margin:0}
.mssc-pmpro h2.pmpro_card_title,.mssc-pmpro .pmpro_card_title,.mssc-pmpro .pmpro_form_legend h2{font-size:var(--h3);font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:0;line-height:1.25}
.mssc-pmpro h2.pmpro_section_title,.mssc-pmpro .pmpro_section_title{font-size:var(--h3);font-weight:700;color:var(--blue);text-transform:uppercase;margin:0 0 12px}
.mssc-pmpro .pmpro_form_field{margin:0 0 14px}
.mssc-pmpro .pmpro_form_label,.mssc-pmpro label{font-weight:600;font-size:15px;color:var(--text)}
.mssc-pmpro input.pmpro_form_input,.mssc-pmpro select.pmpro_form_input,.mssc-pmpro textarea.pmpro_form_input,.mssc-pmpro input[type=text],.mssc-pmpro input[type=email],.mssc-pmpro input[type=tel],.mssc-pmpro input[type=password],.mssc-pmpro input[type=date],.mssc-pmpro select{
  width:100%;max-width:100%;box-sizing:border-box;min-height:48px;margin-left:0;margin-right:0;padding:10px 14px;font-family:var(--font);font-size:16px;color:var(--text);background:#fff;border:1px solid #C9D2DE;border-radius:8px}
.mssc-pmpro .pmpro_form_field-date input[type=text],.mssc-pmpro .pmpro_form_field-dob .eergc-bd-input{margin-left:0;width:100%;max-width:100%}
.mssc-pmpro input[type=checkbox]{width:20px;height:20px;min-height:0;margin:2px 10px 0 0;flex:0 0 20px}
.mssc-pmpro .pmpro_form_submit{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
@media (max-width:767px){ .mssc-pmpro .pmpro_form_submit{align-items:stretch} .mssc-pmpro .pmpro_form_submit input[type=submit],.mssc-pmpro .pmpro_form_submit .pmpro_btn,.mssc-pmpro #loginform input[type=submit]{width:100%} }
.mssc-pmpro .pmpro_section{margin:0 0 var(--grid-gap)}
.mssc-pmpro .pmpro_section:last-child{margin-bottom:0}
.mssc-pmpro .pmpro_section_title,.mssc-pmpro h2.pmpro_section_title{margin:0 0 12px!important;padding:0}
.mssc-pmpro .pmpro_card_actions{text-align:left}
.mssc-pmpro .pmpro_card_actions a{white-space:nowrap}
.mssc-pmpro img.avatar,.mssc-pmpro .pmpro_account-profile-avatar{display:none}
.mssc-pmpro #loginform input[type=text],.mssc-pmpro #loginform input[type=password]{border:1px solid #C9D2DE;border-radius:8px;box-shadow:none}
.mssc-pmpro .pmpro_form_field-password-toggle,.mssc-pmpro .pmpro_form_field-password-toggle button{margin:0;padding:0;line-height:1.2;min-height:0}
.mssc-pmpro .pmpro_form_field-password-toggle button{background:none;border:0;color:var(--blue);font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;width:auto;box-shadow:none;border-radius:0}
.mssc-pmpro #loginform label{font-weight:600;font-size:15px}
.mssc-pmpro .pmpro_message{border-radius:8px}
.mssc-pmpro .pmpro_level_cost_text,.mssc-pmpro .pmpro_level_name_text{font-size:16px}
.mssc-pmpro .pmpro_card_actions a,.mssc-pmpro .pmpro_actions_nav a{color:var(--blue);font-weight:600}

/* =================================================================== signing (wonderboy-esign markup, on /sign/, My Account, checkout)
   The plugin ships structure only; its cards, headings, checkboxes and buttons take the site tokens here. */
.mssc-esign .pmpro_form_fieldset,.wbes-checkout{border:0;margin:0 0 var(--grid-gap);padding:0;min-width:0}
@media (min-width:1025px){ .mssc-esign .wbes-form,.mssc-esign .wbes-sign,.mssc-esign .wbes-docs{max-width:880px} }
.mssc-esign .pmpro_card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;margin:0;overflow:hidden}
.mssc-esign .pmpro_card_content{padding:20px}
@media (max-width:767px){ .mssc-esign .pmpro_card_content{padding:16px} }
.mssc-esign legend.pmpro_form_legend,.wbes legend.pmpro_form_legend{float:left;width:100%;padding:0;margin:0 0 12px}
.mssc-esign legend.pmpro_form_legend+*,.wbes legend.pmpro_form_legend+*{clear:both}
.mssc-esign h2.pmpro_form_heading,.wbes h2.pmpro_form_heading{font-size:var(--h3);line-height:1.25;font-weight:700;color:var(--blue);text-transform:uppercase;margin:0}
.wbes-doc-text,.wbes-document{font-size:16px;line-height:1.6;color:var(--text)}
.wbes-doc-text h3,.wbes-document h3{font-size:18px;line-height:1.35;font-weight:700;color:var(--text);margin:0 0 12px}
.wbes-doc-text h4,.wbes-document h4{font-size:14px;line-height:1.4;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin:18px 0 8px}
.wbes-doc-text ol,.wbes-doc-text ul,.wbes-document ol,.wbes-document ul{padding-left:22px;margin:0 0 12px}
.wbes-doc-text li,.wbes-document li{margin:0 0 6px}
.wbes-doc-text p,.wbes-document p{margin:0 0 12px}
.mssc-esign-doc .wbes-document h3{font-size:var(--h3);color:var(--blue);text-transform:uppercase}
.mssc-esign-doc .wbes-document h4{font-size:16px;margin-top:28px}
.wbes-fields-note,.wbes-signature__notice,.wbes-signature__date{font-size:14px;color:var(--muted);margin:8px 0 0}
.wbes-check{margin:0 0 12px}
.wbes-check label,.mssc-esign .pmpro_form_label-inline{display:flex;align-items:flex-start;gap:10px;font-weight:600;font-size:15px;line-height:1.45;cursor:pointer}
.wbes-check input[type=checkbox],.mssc-esign input[type=checkbox]{width:20px;height:20px;min-height:0;margin:1px 0 0;flex:0 0 20px;accent-color:var(--blue)}
.mssc-esign .pmpro_form_field{margin:0 0 14px}
.mssc-esign .pmpro_form_label{display:block;font-weight:600;font-size:15px;margin:0 0 6px;color:var(--text)}
.mssc-esign input[type=text],.mssc-esign input[type=email],.mssc-esign input[type=tel],.mssc-esign input[type=date],.mssc-esign select,.mssc-esign textarea{
  width:100%;max-width:100%;box-sizing:border-box;min-height:48px;padding:10px 14px;font-family:var(--font);font-size:16px;color:var(--text);background:#fff;border:1px solid #C9D2DE;border-radius:8px}
.wbes-signature input[type=text]{font-size:18px;font-weight:600;letter-spacing:.01em}
.mssc-esign .pmpro_form_submit{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:8px}
.mssc-esign button.pmpro_btn:not(.pmpro_btn-plain),.mssc-esign .wbes-submit,.mssc-esign input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border:0;border-radius:999px;background:var(--red);color:#fff;font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}
.mssc-esign button.pmpro_btn:not(.pmpro_btn-plain):hover,.mssc-esign .wbes-submit:hover{background:var(--red-dark)}
@media (max-width:767px){ .mssc-esign button.pmpro_btn:not(.pmpro_btn-plain),.mssc-esign .wbes-submit,.mssc-esign input[type=submit]{width:100%} .mssc-esign .pmpro_form_submit,.mssc-pmpro .pmpro_form_submit{align-items:stretch} .mssc-pmpro .pmpro_form_submit>span,.mssc-pmpro #pmpro_submit_span{display:block;width:100%} }
.wbes-later a,.wbes-action,.wbes-doc__link,.wbes-panel-toggle{color:var(--blue);font-weight:600}
.wbes-action+.wbes-action,.wbes-banner a+a{margin-left:14px}
.wbes-panel-toggle{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer}
.wbes-panel{border:1px solid var(--line);border-radius:8px;padding:16px;margin:8px 0 12px;background:var(--gray)}
.wbes-notice{border-radius:8px;padding:12px 16px;margin:0 0 var(--grid-gap)}
/* My Documents and the confirmation page */
ul.wbes-doclist,ul.wbes-needs,ul.wbes-family-step__list{display:grid;gap:10px;margin:0;padding:0}
.wbes-doc,.wbes-needs__item,.wbes-family-step__person{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:#fff;line-height:1.5;margin:0}
.wbes-doc__title,.wbes-person__name{font-weight:700;color:var(--text)}
.wbes-doc--needed,.wbes-needs__item{border-color:#E7B7BD;background:#FDF5F6}
.wbes-person+.wbes-person{margin-top:16px}
.wbes-person__name{display:block;font-size:17px;margin:0 0 8px}
.wbes-confirm,.wbes-family-step{margin:24px 0 0}
.wbes-confirm__title,.wbes-family-step__title{font-size:var(--h3);font-weight:700;color:var(--blue);text-transform:uppercase;margin:0 0 12px}
.wbes-banner{border:1px solid #E7B7BD;background:#FDF5F6;border-radius:var(--radius);padding:14px 16px}
.wbes-banner__title{margin:0 0 6px}
.wbes-banner a{color:var(--red);font-weight:700}

/* =================================================================== My Account (the platform's member dashboard, kept)
   Only the two outer bands follow the site gutter and rhythm; the dashboard's own cards keep their layout. */
.elementor .e-con.mssc-dash{--padding-left:var(--gutter);--padding-right:var(--gutter);--padding-top:calc(var(--section) / 2);--padding-bottom:calc(var(--section) / 2);
  --container-max-width:var(--content-max);--content-width:min(100%,var(--content-max));--margin-top:0px;--margin-bottom:0px}
.mssc-dash .mssc-esign-banner:not(:empty){margin-bottom:var(--grid-gap)}
.mssc-dash-card{background:#fff;border-radius:12px;box-shadow:0 3px 6px rgba(0,0,0,.16);padding:16px 18px}
.mssc-dash-card__title{font-size:16px;font-weight:700;color:var(--text);margin:0 0 8px}
ul.mssc-dash-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px;line-height:1.45}
ul.mssc-dash-list li{margin:0}
.mssc-dash-card__more{margin:10px 0 0;font-size:14px}
.mssc-dash-card__more a{color:var(--blue);font-weight:600}
.mssc-dash-family{display:grid;gap:10px;width:100%}
.mssc-dash-family__card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.mssc-dash-family__name{margin:0;font-weight:700;color:var(--text)}
.mssc-dash-family__meta{margin:2px 0 0;font-size:14px;color:var(--muted)}
.mssc-dash-empty{font-size:14px;color:var(--muted);margin:0}
.mssc-dash-add{margin:12px 0 0}
a.mssc-dash-add__link{display:flex;align-items:center;justify-content:center;min-height:44px;border:2px dashed var(--blue);border-radius:8px;color:var(--blue);font-weight:700;text-decoration:none}
a.mssc-dash-add__link:hover{background:var(--gray)}
.mssc-dash-sub .elementor-heading-title{font-size:var(--h3);font-weight:700;color:var(--blue);margin:0}
.mssc-dash .mssc-dash-docs{width:100%}
.mssc-dash .eergc-mdash-payinfo__date{color:rgba(255,255,255,.82)}
/* tablets: the profile card and the middle column side by side, Member Plan and Orientation under them */
@media (min-width:768px) and (max-width:1024px){ .elementor .e-con.mssc-dash-row{flex-wrap:wrap} .elementor .e-con.mssc-dash-row>.e-con{--width:calc(50% - 20px);width:calc(50% - 20px)} .elementor .e-con.mssc-dash-row>.e-con:nth-child(3){--width:100%;width:100%} }
.mssc-dash .mssc-dash-panel p{color:inherit}
.mssc-pmpro .StripeElement,.mssc-pmpro #AccountNumber,.mssc-pmpro #Expiry,.mssc-pmpro #CVV{box-sizing:border-box;min-height:48px;padding:14px;border:1px solid #C9D2DE;border-radius:8px;background:#fff}
/* the photo button: the theme's button reset ([type=button], same weight as the dashboard's class, loaded later) made
   it full width in Safari once a photo was uploaded; hold it to the 110px circle */
.eergc-mdash-avatar button.eergc-mdash-avatar__trigger{display:inline-flex;width:110px;height:110px;min-width:110px;max-width:110px;flex:0 0 110px;padding:0;border:0;border-radius:50%;background:transparent;appearance:none;-webkit-appearance:none;box-sizing:border-box;overflow:hidden}
.eergc-mdash-avatar button.eergc-mdash-avatar__trigger img,.eergc-mdash-avatar button.eergc-mdash-avatar__trigger svg{width:100%;height:100%;object-fit:cover}

/* checkout: long texts fold into expandable sections that stay on the page (J.C., 2026-09-29) */
details.wbes-details{border:1px solid var(--line);border-radius:8px;background:var(--gray);margin:0 0 14px}
details.wbes-details>summary{list-style:none;cursor:pointer;padding:12px 44px 12px 14px;position:relative;font-weight:700;font-size:15px;color:var(--blue);line-height:1.35}
details.wbes-details>summary::-webkit-details-marker{display:none}
details.wbes-details>summary::after{content:"";position:absolute;right:14px;top:50%;width:10px;height:10px;margin-top:-7px;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg);transition:transform .15s ease}
details.wbes-details[open]>summary::after{transform:rotate(-135deg);margin-top:-2px}
details.wbes-details>*:not(summary){padding:0 14px 14px;margin:0}
details.wbes-details .wbes-doc-text{background:#fff;border-radius:6px;padding:14px;margin:0 14px 14px}
/* checkout price: itemized lines, the total in bold, then the renewal */
.mssc-pmpro ul.mssc-fam-lines{list-style:none;padding:0;margin:8px 0 0;border-top:1px solid var(--line)}
.mssc-pmpro ul.mssc-fam-lines li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);margin:0}
.mssc-pmpro ul.mssc-fam-lines li.mssc-fam-line--total{font-weight:700;border-bottom:0}
.mssc-pmpro p.mssc-fam-renews{margin:4px 0 0;font-size:15px;color:var(--muted)}
.mssc-pmpro .pmpro_level_cost_text:empty{display:none}
/* password: the eye sits inside the box, no "Show Password" button */
.mssc-pmpro .pmpro_form_field-password{position:relative}
.mssc-pmpro .pmpro_form_field-password input.pmpro_form_input{padding-right:48px}
.mssc-pmpro .pmpro_form_field-password .pmpro_form_field-password-toggle,
.mssc-pmpro #pmpro_user_fields .pmpro_form_field-password .pmpro_form_field-password-toggle,.mssc-pmpro .pmpro_section #loginform .login-password .pmpro_form_field-password-toggle{grid-area:input;position:relative;z-index:1;justify-self:end;align-self:center;margin:0 4px 0 0;padding:0;display:flex;align-items:center}
.mssc-pmpro .pmpro_form_field-password .pmpro_btn-password-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:0;padding:0;margin:0;background:none;border:0;border-radius:6px;box-shadow:none}
.mssc-pmpro .pmpro_btn-password-toggle .pmpro_form_field-password-toggle-state{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mssc-pmpro .pmpro_btn-password-toggle svg{stroke:var(--muted);width:20px;height:20px}

/* checkout: family members as cards, added one at a time */
.mssc-pmpro .mssc-fam-count{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0!important}
.mssc-fam-cards{display:grid;gap:12px;margin:0 0 12px}
.mssc-fam-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--gray)}
.mssc-fam-card[hidden]{display:none}
.mssc-fam-card__head{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px}
.mssc-fam-card__title{font-weight:700;color:var(--blue);text-transform:uppercase;font-size:14px;letter-spacing:.04em}
.mssc-pmpro button.mssc-fam-card__remove{background:none;border:0;padding:4px 0;min-height:0;color:var(--red);font-weight:600;font-size:14px;text-transform:none;letter-spacing:0;width:auto;box-shadow:none;cursor:pointer}
.mssc-fam-card .pmpro_form_field{margin:0 0 10px}
.mssc-fam-card .pmpro_form_field:last-child{margin-bottom:0}
.mssc-pmpro button.mssc-fam-add{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:0 20px;border:2px dashed var(--blue);border-radius:8px;background:#fff;color:var(--blue);font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:none;box-shadow:none;cursor:pointer}
.mssc-pmpro button.mssc-fam-add:hover{background:var(--gray)}
.mssc-pmpro button.mssc-fam-add[hidden]{display:none}

/* family rows at checkout (moved here from mssc-family-addon, which printed it in wp_footer) */
.mssc-family-row{display:none!important}
.mssc-family-row.is-on{display:block!important}

/* =================================================================== WordPress pages without Elementor (404, plain pages) */
body.error404 main.site-main,body:not([class*=elementor-page-]) main.site-main:not(:has(.elementor)){box-sizing:border-box;width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));margin:0 auto;padding:calc(var(--section) / 2) var(--gutter)}
.error404 .site-main>*,.error404 .site-main .page-header,.error404 .site-main .page-content,.error404 .page-header .entry-title{margin-left:0;margin-right:0;padding-left:0;padding-right:0;max-width:none}
.error404 .page-header .entry-title,.site-main .page-header .entry-title{font-size:var(--h2);font-weight:700;text-transform:uppercase;color:var(--blue);margin:0 0 var(--head-gap)}
.error404 .page-content p{max-width:var(--reading)}

/* =================================================================== small print */
.mssc-muted p,.mssc-muted{color:var(--muted);font-size:14px}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
