.elementor-kit-7{--e-global-color-primary:#142347;--e-global-color-secondary:#1E7B4F;--e-global-color-text:#17202E;--e-global-color-accent:#6FB6E8;--e-global-color-bgalt:#EFF3F8;--e-global-color-line:#D5DCE8;--e-global-color-white:#FFFFFF;--e-global-typography-primary-font-family:"Oswald";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-line-height:0.94em;--e-global-typography-primary-letter-spacing:0.3px;--e-global-typography-secondary-font-family:"Oswald";--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-text-font-family:"Source Sans 3";--e-global-typography-text-font-size:1.0625rem;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Source Sans 3";--e-global-typography-accent-font-size:0.72rem;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-letter-spacing:2px;color:#17202E;font-family:"Source Sans 3", Sans-serif;font-size:1.0625rem;line-height:1.65em;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.page-title{display:var(--page-title-display);}@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 *//* ===== BALLOT — Marquette Greene-Scott for Congress =====
   Design tokens and components. Structure is built with native Elementor
   Containers and widgets; this sheet supplies the visual system. */
:root{
 --brand:#142347; --brand-2:#1E7B4F; --accent:#6FB6E8;
 --ink:#17202E; --bg:#fff; --bg-alt:#EFF3F8; --surface:#fff;
 --on-brand:#fff; --line:#D5DCE8; --line-strong:#142347;
 --font-display:"Oswald","Arial Narrow",sans-serif;
 --font-body:"Source Sans 3",system-ui,-apple-system,sans-serif;
 --rule:5px; --radius:2px; --radius-lg:3px;
 --shadow:0 1px 2px rgba(20,35,71,.06),0 8px 24px rgba(20,35,71,.06);
 --shadow-lift:0 2px 4px rgba(20,35,71,.08),0 18px 40px rgba(20,35,71,.12);
 --tex-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
 --tex-fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035 0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23f)'/%3E%3C/svg%3E");
}
html{scroll-behavior:smooth;scroll-padding-top:var(--scroll-offset,150px)}
body{color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}

/* ---- Type ---- */
h1,h2,h3,.mgs-display{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.005em;line-height:.94;text-wrap:balance;color:var(--brand)}
h1{font-size:clamp(2.35rem,4.6vw,4.05rem)}
h2{font-size:clamp(1.9rem,4vw,3.1rem)}
h3{font-size:clamp(1.15rem,1.7vw,1.5rem)}
h4{font-family:var(--font-body);font-size:.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2)}
.mgs-lede{font-size:clamp(1.075rem,1.5vw,1.3rem);line-height:1.55}
.mgs-fine{font-size:.85rem;line-height:1.55}
.mgs-muted{color:color-mix(in srgb,var(--ink) 62%,transparent)}
.mgs-label{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.mgs-eyebrow{font-family:var(--font-body);font-size:.78rem;font-weight:700;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-2);display:flex;align-items:flex-start;gap:.6rem}
.mgs-eyebrow:before{content:"";width:28px;height:3px;margin-top:.55em;background:var(--brand-2);flex:none}
.mgs-eyebrow.mgs-center{justify-content:center}

/* ---- Dark grounds: one .elementor-kit-7 list so nothing goes invisible ---- */
.mgs-dark,.mgs-dark p,.mgs-dark li{color:var(--on-brand)}
.mgs-dark h1,.mgs-dark h2,.mgs-dark h3{color:var(--on-brand)}
.mgs-dark h4,.mgs-dark .mgs-eyebrow{color:var(--accent)}
.mgs-dark .mgs-eyebrow:before{background:var(--accent)}
.mgs-dark .mgs-muted{color:color-mix(in srgb,var(--on-brand) 76%,transparent)}
.mgs-dark a:not(.elementor-button){color:var(--accent)}

/* ---- Surfaces ---- */
.mgs-surface{position:relative;isolation:isolate;overflow:clip}
.mgs-surface>*{position:relative;z-index:2}
.mgs-surface:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--tex-grain);background-size:180px 180px;opacity:.085;mix-blend-mode:multiply}
.mgs-navy,.mgs-green{color:var(--on-brand)}
.mgs-navy:after,.mgs-green:after,.mgs-hero:after{opacity:.15;mix-blend-mode:soft-light}
.mgs-hero{background-color:var(--brand);background-image:radial-gradient(115% 85% at 12% -10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 62%),linear-gradient(165deg,color-mix(in srgb,var(--brand) 84%,#fff) 0%,var(--brand) 46%,color-mix(in srgb,var(--brand) 82%,#000) 100%)}
.mgs-navy{background-color:var(--brand);background-image:radial-gradient(100% 120% at 88% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 58%),linear-gradient(180deg,color-mix(in srgb,var(--brand) 90%,#fff) 0%,var(--brand) 70%)}
.mgs-green{background-color:var(--brand-2);background-image:linear-gradient(125deg,color-mix(in srgb,var(--brand-2) 86%,#fff) 0%,var(--brand-2) 52%,color-mix(in srgb,var(--brand-2) 84%,#000) 100%)}
.mgs-pale{background-color:var(--bg-alt);background-image:radial-gradient(85% 130% at 100% 0%,color-mix(in srgb,var(--brand-2) 8%,transparent),transparent 58%),linear-gradient(180deg,color-mix(in srgb,var(--bg-alt) 45%,var(--bg)) 0%,var(--bg-alt) 100%)}
.mgs-tint{background-color:var(--bg);background-image:radial-gradient(70% 110% at 0% 100%,color-mix(in srgb,var(--brand) 15%,transparent),transparent 64%),radial-gradient(65% 95% at 100% 0%,color-mix(in srgb,var(--brand-2) 15%,transparent),transparent 60%)}
.mgs-paper{background-color:color-mix(in srgb,var(--bg-alt) 78%,var(--bg));background-image:linear-gradient(178deg,color-mix(in srgb,var(--bg) 70%,transparent) 0%,transparent 45%)}
.mgs-paper:after{background-image:var(--tex-fiber);background-size:240px 240px;opacity:.13;mix-blend-mode:multiply}
.mgs-halftone{background-color:color-mix(in srgb,var(--bg-alt) 45%,var(--bg))}
.mgs-halftone:after{background-image:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--brand) 55%,transparent) 0 1.1px,transparent 1.4px),var(--tex-grain);background-size:11px 11px,180px 180px;opacity:.14;mix-blend-mode:multiply}
.mgs-vignette:after{background-image:radial-gradient(120% 130% at 50% 45%,transparent 30%,rgba(0,0,0,.55) 100%),var(--tex-grain);background-size:auto,180px 180px;opacity:.55;mix-blend-mode:multiply}
@media print{.mgs-surface:after{display:none}}
/* ---- Buttons (native Elementor button widget) ---- */
.elementor-button{font-family:var(--font-body);font-size:.82rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding:.95rem 1.6rem;border:3px solid transparent;border-radius:var(--radius);transition:transform .12s ease,background-color .15s ease,color .15s ease;fill:currentColor}
.elementor-button:hover{transform:translateY(-2px)}
.mgs-btn-primary .elementor-button{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.mgs-btn-primary .elementor-button:hover{background:color-mix(in srgb,var(--brand-2) 84%,#000);color:#fff}
.mgs-btn-navy .elementor-button{background:var(--brand);color:#fff;border-color:var(--brand)}
.mgs-btn-navy .elementor-button:hover{background:color-mix(in srgb,var(--brand) 82%,#000);color:#fff}
.mgs-btn-ghost .elementor-button{background:transparent;color:var(--brand);border-color:var(--brand)}
.mgs-btn-ghost .elementor-button:hover{background:var(--brand);color:var(--on-brand)}
.mgs-dark .mgs-btn-ghost .elementor-button{color:var(--on-brand);border-color:var(--on-brand)}
.mgs-dark .mgs-btn-ghost .elementor-button:hover{background:var(--on-brand);color:var(--brand)}
.mgs-btn-lg .elementor-button{padding:1.15rem 2.1rem;font-size:.9rem}

/* ---- Section head ---- */
.mgs-head{max-width:60ch}
.mgs-head.mgs-center{margin-inline:auto;text-align:center}
.mgs-rule{width:96px;height:var(--rule);background:var(--brand-2);border:0}
.mgs-head-rule{border-bottom:var(--rule) solid var(--brand-2);padding-bottom:1.25rem}

/* ---- Cards ---- */
.mgs-card{background:var(--surface);border:1px solid var(--line);border-top:var(--rule) solid var(--brand-2);border-radius:var(--radius-lg);box-shadow:var(--shadow);height:100%}
.mgs-card:hover{box-shadow:var(--shadow-lift)}
.mgs-card h3{color:var(--brand)}
.mgs-card .mgs-more{margin-top:auto;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);text-decoration:none}
.mgs-card .mgs-more:hover{text-decoration:underline;text-underline-offset:4px}
.mgs-plain{border-top-color:var(--line)}

/* ---- Ballot-check card ---- */
.mgs-check{position:relative;padding-left:clamp(4rem,6.5vw,5rem)!important}
.mgs-check:before{content:"";position:absolute;left:clamp(1.5rem,2.4vw,2rem);top:calc(clamp(1.5rem,2.4vw,2rem) + .25rem);width:30px;height:30px;border:3px solid var(--brand);border-radius:2px;z-index:3}
.mgs-check:after{content:"";position:absolute;left:calc(clamp(1.5rem,2.4vw,2rem) + 2px);top:clamp(1.5rem,2.4vw,2rem);width:32px;height:32px;background:var(--brand-2);z-index:3;-webkit-mask:var(--mgs-check) no-repeat center/contain;mask:var(--mgs-check) no-repeat center/contain}
:root{--mgs-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.5 12.5 L9.5 19 L21 3.5' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* ---- Pill ---- */
.mgs-pill{display:inline-block;align-self:flex-start;padding:.3rem .7rem;background:color-mix(in srgb,var(--brand-2) 12%,transparent);color:var(--brand-2);border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* ---- Credential strip ---- */
.mgs-cred{border-left:1px solid rgba(255,255,255,.24)}
.mgs-cred:first-child{border-left:0}
.mgs-cred .mgs-cred-num{font-family:var(--font-display);font-weight:700;text-transform:uppercase;line-height:1;font-size:clamp(2rem,3.6vw,3.1rem);color:#fff}
.mgs-cred .mgs-cred-lab{font-size:.82rem;line-height:1.4;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85)}
@media(max-width:767px){.mgs-cred{border-left:0;border-top:1px solid rgba(255,255,255,.24)}.mgs-cred:first-child{border-top:0}}

/* ---- Steps ---- */
.mgs-step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);height:100%}
.mgs-step .mgs-step-n{display:grid;place-items:center;width:2.75rem;height:2.75rem;background:var(--brand);color:#fff;font-family:var(--font-display);font-size:1.5rem;font-weight:700;border-radius:50%}
.mgs-step .mgs-date{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-2)}

/* ---- Action list (native Icon List widget) ---- */
.mgs-actions .elementor-icon-list-icon svg{fill:var(--brand-2)}
.mgs-actions .elementor-icon-list-text{color:var(--ink);font-size:.98rem}
.mgs-dark .mgs-actions .elementor-icon-list-text{color:var(--on-brand)}
.mgs-dark .mgs-actions .elementor-icon-list-icon svg{fill:var(--accent)}

/* ---- Quote ---- */
.mgs-quote{border-left:var(--rule) solid var(--brand-2);padding-left:clamp(1.25rem,3vw,2.25rem)}
.mgs-quote p,.mgs-quote .elementor-heading-title{font-family:var(--font-display);text-transform:none;font-weight:500;font-size:clamp(1.25rem,2.4vw,1.9rem);line-height:1.32;letter-spacing:0;color:var(--on-brand)}
.mgs-cite{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}

/* ---- Issue index rows ---- */
.mgs-issuerow{border-bottom:1px solid var(--line);text-decoration:none;transition:background-color .15s ease}
.mgs-issuerow:hover{background:var(--bg-alt)}
.mgs-issuerow .mgs-num{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--brand-2);letter-spacing:.05em}
.mgs-issuelist{border-top:2px solid var(--line-strong)}
.mgs-numbadge{display:inline-block;font-family:var(--font-display);font-weight:700;background:var(--brand);color:#fff;padding:.2rem .6rem;font-size:.9rem;letter-spacing:.08em}

/* ---- Post rows ---- */
.mgs-post{border-bottom:1px solid var(--line);text-decoration:none}
.mgs-post time,.mgs-post .mgs-time{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2)}
.mgs-post:hover h3{color:var(--brand-2)}

/* ---- Empty state ---- */
.mgs-empty{border:2px dashed var(--line);border-radius:var(--radius-lg);background:var(--bg-alt);text-align:center}
/* ---- Header: utility bar ---- */
.mgs-utilbar{background:var(--brand);border-bottom:1px solid rgba(255,255,255,.14)}
.mgs-utilbar,.mgs-utilbar p,.mgs-utilbar a{color:rgba(255,255,255,.8);font-size:.78rem;text-decoration:none}
.mgs-utilbar a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.mgs-utilbar .elementor-social-icon{background:transparent;--icon-padding:.35em}
.mgs-utilbar .elementor-social-icon svg{fill:rgba(255,255,255,.8)}
.mgs-utilbar .elementor-social-icon:hover{background:var(--accent)}
.mgs-utilbar .elementor-social-icon:hover svg{fill:var(--brand)}

/* ---- Header: election bar ---- */
.mgs-electionbar{background:var(--brand-2)}
.mgs-electionbar,.mgs-electionbar p,.mgs-electionbar a,.mgs-electionbar .elementor-heading-title{color:#fff;font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.mgs-electionbar a{text-decoration:underline;text-underline-offset:3px}
.mgs-electionbar .elementor-countdown-wrapper .elementor-countdown-item{padding:0}
.mgs-electionbar .elementor-countdown-digits{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;color:#fff}
.mgs-electionbar .elementor-countdown-label{font-size:.68rem;letter-spacing:.12em;color:rgba(255,255,255,.85)}

/* ---- Header: masthead + nav ---- */
.mgs-masthead{background:var(--surface);border-bottom:1px solid var(--line)}
.mgs-nav .elementor-nav-menu .elementor-item{font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);padding:.5rem 0;border-bottom:3px solid transparent}
.mgs-nav .elementor-nav-menu .elementor-item:hover,.mgs-nav .elementor-nav-menu .elementor-item.elementor-item-active{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.mgs-nav .elementor-nav-menu--dropdown .elementor-item{color:var(--brand);border-bottom:1px solid var(--line);padding:.85rem 1rem}

/* ---- Sub-nav (jump-to) ---- */
.mgs-subnav{background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--line),0 6px 16px -12px rgba(20,35,71,.4)}
.mgs-subnav .elementor-nav-menu .elementor-item,.mgs-subnav a{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 72%,transparent);text-decoration:none;padding:1rem .95rem;display:inline-flex;align-items:center;border-bottom:3px solid transparent}
.mgs-subnav a:hover,.mgs-subnav a.is-active{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.mgs-subnav-label{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 55%,transparent);border-right:1px solid var(--line);padding-right:1.25rem}

/* ---- Footer ---- */
.mgs-foot{background-color:var(--brand);background-image:radial-gradient(90% 140% at 0% 0%,color-mix(in srgb,var(--brand-2) 22%,transparent),transparent 55%),linear-gradient(180deg,color-mix(in srgb,var(--brand) 92%,#fff) 0%,color-mix(in srgb,var(--brand) 88%,#000) 100%);border-top:var(--rule) solid var(--brand-2);color:var(--on-brand)}
.mgs-foot a{color:rgba(255,255,255,.82);text-decoration:none}
.mgs-foot a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.mgs-foot h4,.mgs-foot .mgs-foot-h .elementor-heading-title{color:var(--accent);font-family:var(--font-body);font-size:.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.mgs-foot .elementor-icon-list-item a{color:rgba(255,255,255,.82)}
.mgs-legal{border-top:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.68);font-size:.8rem}
.mgs-legal p{color:rgba(255,255,255,.68);font-size:.8rem}

/* ---- Figures / galleries ---- */
.mgs-shot{position:relative;display:block;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background-color:var(--bg-alt);background-image:radial-gradient(80% 90% at 25% 15%,color-mix(in srgb,var(--brand) 14%,transparent),transparent 70%),radial-gradient(70% 80% at 85% 95%,color-mix(in srgb,var(--brand-2) 16%,transparent),transparent 68%)}
.mgs-shot img{width:100%;height:100%;object-fit:cover;display:block}
.mgs-cap{font-size:.85rem;line-height:1.45;color:color-mix(in srgb,var(--ink) 62%,transparent)}
.mgs-cap b{display:block;color:var(--ink);font-weight:700}
.mgs-badge{background:var(--brand-2);color:#fff;font-family:var(--font-display);text-transform:uppercase;font-size:clamp(.95rem,1.4vw,1.2rem);line-height:1.15;letter-spacing:.02em;padding:.7rem 1.1rem;display:inline-block}

/* ---- WPForms, styled to the system ---- */
.wpforms-container .wpforms-field-label{font-family:var(--font-body);font-size:.78rem!important;font-weight:700!important;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)!important}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container input[type=url],.wpforms-container input[type=number],.wpforms-container select,.wpforms-container textarea{padding:.85rem 1rem!important;background:var(--surface);border:2px solid var(--line)!important;border-radius:var(--radius)!important;font-family:var(--font-body);color:var(--ink);box-shadow:none!important}
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{border-color:var(--brand-2)!important;outline:3px solid var(--accent);outline-offset:2px}
.wpforms-container textarea{min-height:9rem}
.wpforms-container .wpforms-field-description{font-size:.8rem;color:color-mix(in srgb,var(--ink) 60%,transparent)}
.wpforms-container button[type=submit]{font-family:var(--font-body)!important;font-size:.82rem!important;font-weight:700!important;letter-spacing:.11em;text-transform:uppercase;padding:.95rem 1.6rem!important;background:var(--brand-2)!important;color:#fff!important;border:3px solid var(--brand-2)!important;border-radius:var(--radius)!important}
.wpforms-container button[type=submit]:hover{background:color-mix(in srgb,var(--brand-2) 84%,#000)!important}
.mgs-dark .wpforms-container .wpforms-field-label{color:var(--on-brand)!important}
.mgs-dark .wpforms-container .wpforms-field-description{color:rgba(255,255,255,.75)}

/* ---- Focus, skip link, motion ---- */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mgs-skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--brand-2);color:#fff;padding:.75rem 1.25rem;font-weight:700}
.mgs-skip:focus{left:0}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* ===== Specificity bridges over Elementor + Hello Biz defaults ===== */
.elementor-widget.mgs-btn-primary .elementor-button,
.elementor .mgs-btn-primary .elementor-button{background-color:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.elementor-widget.mgs-btn-primary .elementor-button:hover{background-color:#186541;color:#fff}
.elementor-widget.mgs-btn-navy .elementor-button{background-color:var(--brand);color:#fff;border-color:var(--brand)}
.elementor-widget.mgs-btn-navy .elementor-button:hover{background-color:#0d1730;color:#fff}
.elementor-widget.mgs-btn-ghost .elementor-button{background-color:transparent;color:var(--brand);border-color:var(--brand)}
.elementor-widget.mgs-btn-ghost .elementor-button:hover{background-color:var(--brand);color:#fff}
.mgs-dark .elementor-widget.mgs-btn-ghost .elementor-button{color:#fff;border-color:#fff}
.mgs-dark .elementor-widget.mgs-btn-ghost .elementor-button:hover{background-color:#fff;color:var(--brand)}

/* Election bar: countdown must read as one line of text, not a widget block */
.mgs-electionbar .elementor-countdown-wrapper{width:auto}
.mgs-electionbar .elementor-countdown-item{background-color:transparent!important;padding:0;margin:0}
.mgs-electionbar .elementor-countdown-digits,
.mgs-electionbar .elementor-countdown-label{display:inline;background:transparent;font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;line-height:1.4}
.mgs-electionbar .elementor-countdown-label:before{content:" "}
.mgs-electionbar .elementor-heading-title,.mgs-electionbar p,.mgs-electionbar a{margin:0}

/* Utility bar */
.mgs-utilbar .elementor-icon-list-text{color:rgba(255,255,255,.82)}
.mgs-utilbar .elementor-icon-list-icon svg{fill:var(--accent)}

/* Footer text and links need explicit colour on the navy ground */
.mgs-foot p,.mgs-foot li,.mgs-foot .elementor-icon-list-text{color:rgba(255,255,255,.82)}
.mgs-foot .elementor-nav-menu .elementor-item{color:rgba(255,255,255,.88);font-family:var(--font-body);font-size:.95rem;font-weight:400;letter-spacing:0;text-transform:none;padding:.3rem 0;fill:currentColor}
.mgs-foot .elementor-nav-menu .elementor-item:hover,.mgs-foot .elementor-nav-menu .elementor-item.elementor-item-active{color:var(--accent)}
.mgs-foot .elementor-icon-list-icon svg{fill:var(--accent)}
.mgs-foot .elementor-social-icon svg{fill:#fff}
.mgs-foot .elementor-social-icon{background-color:rgba(255,255,255,.08)}
.mgs-foot .elementor-social-icon:hover{background-color:var(--accent)}
.mgs-foot .elementor-social-icon:hover svg{fill:var(--brand)}

/* ===== Masthead frame ==================================================
   The header rail is wider than the body grid, the logo is a fixed width,
   and the nav takes whatever is left. Type and spacing for the nav items
   themselves live in MASTHEAD + FOOTER FINAL at the foot of this file.
   Five earlier passes at this were removed on 2026-07-26; the pre-cleanup
   CSS is kept in option mgs_css_backup_20260726. */
.mgs-masthead .e-con-inner{flex-wrap:nowrap}
.mgs-masthead > .e-con-inner{padding-block:12px!important}
.mgs-masthead .elementor-nav-menu--dropdown{background-color:#fff}
.mgs-masthead .mgs-logo-wrap{width:125px!important;max-width:125px!important}
.mgs-masthead .mgs-logo-wrap img{max-width:125px!important}
@media(max-width:1024px){
  .mgs-masthead .mgs-logo-wrap,
  .mgs-masthead .mgs-logo-wrap img{width:110px!important;max-width:110px!important}
}
@media(max-width:767px){
  .mgs-masthead .mgs-logo-wrap,
  .mgs-masthead .mgs-logo-wrap img{width:100px!important;max-width:100px!important}
}
@media(min-width:1025px){
  .mgs-masthead > .e-con-inner{max-width:1460px!important;
    padding-inline:clamp(1.25rem,3vw,2.5rem)!important}
  .mgs-masthead .elementor-widget-nav-menu{flex:1 1 auto;min-width:0}
  .mgs-masthead .elementor-widget-button{flex:0 0 auto}
}


/* Body copy inside dark grounds */
.mgs-dark p,.mgs-dark li,.mgs-dark .elementor-icon-list-text{color:rgba(255,255,255,.88)}
.mgs-dark .mgs-fine{color:rgba(255,255,255,.76)}
/* Photo placeholders sit on light and dark grounds alike */
.mgs-dark .mgs-shot{background-color:rgba(255,255,255,.07);border-color:rgba(255,255,255,.22);background-image:radial-gradient(75% 60% at 50% 15%,rgba(111,182,232,.20),transparent 70%),linear-gradient(180deg,transparent 42%,rgba(30,123,79,.28) 100%)}
.mgs-dark .mgs-shot .elementor-heading-title{color:rgba(255,255,255,.62)!important}
.mgs-dark .mgs-cap,.mgs-dark .mgs-cap b{color:rgba(255,255,255,.8)}
/* Badge overlaps the foot of its image, as in the design */
.mgs-badge{margin-top:-3.2rem;position:relative;z-index:4;align-self:flex-start}
/* Quote panel type */
.mgs-quote p{font-family:var(--font-display);text-transform:none;font-weight:500;font-size:clamp(1.25rem,2.4vw,1.9rem);line-height:1.32;color:#fff}
/* Issue rows keep the arrow affordance without an extra element */
.mgs-issuerow{position:relative;padding-right:2rem!important}

@media(max-width:767px){.mgs-issuerow{padding-right:0!important}.mgs-issuerow .mgs-label{display:none}}
/* Cards: action pinned to the foot so a row aligns */
.mgs-card .mgs-more-wrap{margin-top:auto;padding-top:.75rem}
.mgs-card .mgs-more-wrap p{margin:0}
.mgs-more{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);text-decoration:none}
.mgs-more:hover{text-decoration:underline;text-underline-offset:4px}
/* WPForms inside the hero */
.mgs-signup .wpforms-container{margin:0}
.mgs-signup .wpforms-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);padding:1.1rem}
.mgs-signup .wpforms-field{padding:0!important;flex:1 1 11rem;min-width:0}
.mgs-signup .wpforms-field-label{display:none!important}
.mgs-signup .wpforms-submit-container{padding:0!important;flex:0 0 auto}
.mgs-signup button[type=submit]{margin:0}
/* Sub-nav link row */
.mgs-subnav .mgs-subnav-wrap{width:100%}
.mgs-subnav .mgs-subnav-wrap p{margin:0}
.mgs-subnav-links{display:flex;overflow-x:auto;gap:0;scrollbar-width:none}
.mgs-subnav-links::-webkit-scrollbar{display:none}
.mgs-subnav-links a{white-space:nowrap;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 72%,transparent);text-decoration:none;padding:1rem .95rem;border-bottom:3px solid transparent;display:inline-flex;align-items:center}
.mgs-subnav-links a:first-child{padding-left:0}
.mgs-subnav-links a:hover{color:var(--brand-2);border-bottom-color:var(--brand-2)}
.mgs-subnav{position:sticky;top:0;z-index:40}
@media(max-width:767px){.mgs-subnav-label{display:none}}
/* Issue blocks */
.mgs-issueblock .mgs-numbadge{align-self:flex-start}
.mgs-issueblock:last-of-type{border-bottom:0}
/* Amount grid built from native buttons */
.mgs-amounts .elementor-button{width:100%;justify-content:center;background:#fff;color:var(--brand);border:3px solid var(--brand);font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.7rem);letter-spacing:.02em;padding:1.1rem .5rem}
.mgs-amounts .elementor-button:hover,.mgs-amount-featured .elementor-button{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
/* ===== Heading-widget utilities need to outrank the global kit typography ===== */
.elementor-widget-heading.mgs-eyebrow .elementor-heading-title{font-family:var(--font-body);font-size:.78rem;font-weight:700;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-2)}
.elementor-widget-heading.mgs-eyebrow{display:flex;align-items:flex-start;gap:.6rem}
.elementor-widget-heading.mgs-eyebrow:before{content:"";width:28px;height:3px;margin-top:.62em;background:var(--brand-2);flex:none}
.elementor-widget-heading.mgs-eyebrow.mgs-center{justify-content:center}
.mgs-dark .elementor-widget-heading.mgs-eyebrow .elementor-heading-title{color:var(--accent)}
.mgs-dark .elementor-widget-heading.mgs-eyebrow:before{background:var(--accent)}

.elementor-widget-heading.mgs-cite .elementor-heading-title{font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--brand-2)}
.mgs-dark .elementor-widget-heading.mgs-cite .elementor-heading-title{color:var(--accent)}

.elementor-widget-heading.mgs-label .elementor-heading-title{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--brand-2)}
.elementor-widget-heading.mgs-num .elementor-heading-title{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.05em;line-height:1;color:var(--brand-2)}
.elementor-widget-heading.mgs-numbadge .elementor-heading-title{font-family:var(--font-display);font-weight:700;font-size:.9rem;letter-spacing:.08em;line-height:1.6;background:var(--brand);color:#fff;padding:.2rem .6rem;display:inline-block}
.elementor-widget-heading.mgs-numbadge{align-self:flex-start}

.elementor-widget-heading.mgs-cred-num .elementor-heading-title{font-family:var(--font-display);font-weight:700;text-transform:uppercase;line-height:1;font-size:clamp(2rem,3.6vw,3.1rem);color:#fff}
.elementor-widget-heading.mgs-cred-lab .elementor-heading-title{font-family:var(--font-body);font-size:.82rem;line-height:1.4;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85)}

.elementor-widget-heading.mgs-step-n .elementor-heading-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:2.75rem;color:#fff;display:block;width:2.75rem;height:2.75rem;text-align:center;background:var(--brand);border-radius:50%}
.elementor-widget-heading.mgs-step-n{align-self:flex-start}
.elementor-widget-heading.mgs-date .elementor-heading-title{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--brand-2)}

.elementor-widget-heading.mgs-pill .elementor-heading-title{font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:var(--brand-2);background:color-mix(in srgb,var(--brand-2) 12%,transparent);border-radius:999px;padding:.3rem .7rem;display:inline-block}
.elementor-widget-heading.mgs-pill{align-self:flex-start}

.elementor-widget-heading.mgs-time .elementor-heading-title{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.6;color:var(--brand-2)}
.elementor-widget-heading.mgs-subnav-label .elementor-heading-title{font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.4;color:color-mix(in srgb,var(--ink) 55%,transparent)}
.elementor-widget-heading.mgs-badge .elementor-heading-title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(.95rem,1.4vw,1.2rem);line-height:1.15;letter-spacing:.02em;color:#fff}
.elementor-widget-heading.mgs-badge{background:var(--brand-2);padding:.7rem 1.1rem;margin-top:-3.2rem;position:relative;z-index:4;align-self:flex-start}
.elementor-widget-heading.mgs-follow .elementor-heading-title{font-family:var(--font-body)}
.elementor-widget-heading.mgs-elec-date .elementor-heading-title{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;line-height:1.4}

/* Divider used as the section rule */
.elementor-widget-divider.mgs-rule .elementor-divider{padding:0}
.elementor-widget-divider.mgs-rule .elementor-divider-separator{width:96px;margin:0 auto;border-top-width:5px;border-top-color:var(--brand-2)}

/* Quote body copy */
.mgs-quote .elementor-widget-text-editor p{font-family:var(--font-display);text-transform:none;font-weight:500;font-size:clamp(1.2rem,2.2vw,1.8rem);line-height:1.34}
/* Countdown: keep the number visible even before the script paints */
.mgs-electionbar .elementor-countdown-wrapper{min-width:0}
.mgs-electionbar .elementor-countdown-item{display:inline}
/* ===== Real brand assets ===== */
.elementor-widget-image.mgs-logo img{display:block;height:auto}
.mgs-masthead .mgs-logo img{max-width:250px}
@media(max-width:1024px){.mgs-masthead .mgs-logo img{max-width:200px}}
@media(max-width:767px){.mgs-masthead .mgs-logo img{max-width:170px}}
.mgs-foot .mgs-logo img{max-width:240px}

/* Hero portrait fills its slot and keeps the head high in frame */
.elementor-widget-image.mgs-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;border-radius:var(--radius-lg);display:block}
@media(max-width:860px){.elementor-widget-image.mgs-portrait img{aspect-ratio:3/2;object-position:50% 18%}}

/* Video sits in the same frame the placeholder occupied */
.elementor-widget-video.mgs-video .elementor-wrapper{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line)}
/* Wide portraits (three-quarter studio shots) crop to the slot */
.elementor-widget-image.mgs-portrait-wide img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:56% 20%;border-radius:var(--radius-lg);display:block}
@media(max-width:860px){.elementor-widget-image.mgs-portrait-wide img{aspect-ratio:3/2;object-position:56% 24%}}
/* Gallery and post images share the figure treatment */
.elementor-widget-image.mgs-figimg img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius-lg);display:block}
.elementor-widget-image.mgs-postimg img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius-lg);display:block}
/* Alt text is not optional: these are real photographs of a real person */
/* Logo lockup sits inside the boxed row and never pushes the nav out */
.mgs-masthead .mgs-logo-wrap{flex:0 0 auto!important}
.mgs-masthead .mgs-logo-wrap .elementor-widget-image{width:100%}
.mgs-masthead .mgs-logo-wrap img{width:100%;height:auto;max-width:250px}
@media(max-width:1024px){.mgs-masthead .mgs-logo-wrap img{max-width:200px}}
@media(max-width:767px){.mgs-masthead .mgs-logo-wrap img{max-width:170px}}
.mgs-foot .mgs-logo-wrap img{max-width:240px}
/* ===== Election bar: one baseline, evenly spaced ===== */
.mgs-electionbar > .e-con-inner{
  gap:clamp(1.5rem,4vw,3.25rem)!important;
  align-items:center;
  padding-block:11px!important;
}
.mgs-electionbar .elementor-widget-countdown{width:auto}
.mgs-electionbar .elementor-widget-countdown .elementor-countdown-wrapper{
  display:flex;align-items:baseline;margin:0;width:auto
}
.mgs-electionbar .elementor-widget-countdown .elementor-countdown-item{
  display:flex!important;
  flex-direction:row!important;
  align-items:baseline;
  gap:.42em;
  padding:0!important;
  margin:0!important;
  background-color:transparent!important;
  border:0!important;
  width:auto!important;
}
.mgs-electionbar .elementor-widget-countdown .elementor-countdown-digits,
.mgs-electionbar .elementor-widget-countdown .elementor-countdown-label{
  display:inline-block!important;
  font-family:var(--font-body)!important;
  font-size:.78rem!important;
  font-weight:700!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  line-height:1.4!important;
  color:#fff!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap;
}
.mgs-electionbar .elementor-heading-title,
.mgs-electionbar .mgs-elec-link p{margin:0;line-height:1.4;white-space:nowrap}
.mgs-electionbar .mgs-elec-link{width:auto}
@media(max-width:900px){
  .mgs-electionbar > .e-con-inner{gap:.35rem 1.25rem!important}
  .mgs-electionbar .elementor-heading-title,
  .mgs-electionbar .elementor-widget-countdown .elementor-countdown-digits,
  .mgs-electionbar .elementor-widget-countdown .elementor-countdown-label{font-size:.7rem!important;letter-spacing:.06em!important}
  .mgs-electionbar .elementor-heading-title{white-space:normal}
}
/* ===== Centerd section heads get room for one line ===== */
.mgs-head.mgs-center{max-width:56rem}
.mgs-head.mgs-center h2{max-width:none}
/* ===== Quote panel: give the navy a material, not a pattern =====
   Three layers of light and grain. No lattice, no watermark:
   a raking light from upper-left, a woven fibre, and film grain. */
.mgs-navy.mgs-vignette{
  background-color:var(--brand);
  background-image:
    radial-gradient(58% 78% at 18% 8%, rgba(111,182,232,.20), transparent 62%),
    radial-gradient(46% 62% at 88% 96%, rgba(30,123,79,.24), transparent 66%),
    linear-gradient(112deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(168deg, #1B2E58 0%, #142347 52%, #0C1630 100%);
}
.mgs-navy.mgs-vignette:after{
  background-image:
    radial-gradient(125% 135% at 50% 42%, transparent 26%, rgba(0,0,0,.62) 100%),
    var(--tex-fiber),
    var(--tex-grain);
  background-size:auto, 300px 300px, 180px 180px;
  opacity:.62;
  mix-blend-mode:multiply;
}
/* A second pass of pure grain on top, lightening rather than darkening,
   so the surface reads as printed stock instead of flat ink. */
.mgs-navy.mgs-vignette:before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:var(--tex-grain);
  background-size:200px 200px;
  opacity:.20;
  mix-blend-mode:soft-light;
}

/* Same material on the other dark bands so the page reads as one stock */
.mgs-hero:after,.mgs-navy:after,.mgs-green:after{opacity:.22}
.mgs-foot:after{opacity:.18}
/* ===== Issue index rows: kicker holds the right edge, no pseudo arrow ===== */
.mgs-issuerow{padding-right:0!important;position:relative}
.mgs-issuerow:after{content:none!important;display:none!important}
.mgs-issuerow .elementor-widget-heading.mgs-label{margin-left:auto}
.mgs-issuerow .elementor-widget-heading.mgs-label .elementor-heading-title{
  white-space:nowrap;text-align:right;display:block
}
@media(max-width:900px){.mgs-issuerow .elementor-widget-heading.mgs-label{display:none}}
/* ===== Cards and steps in a row all take the height of the tallest =====
   align-self on the child beats whatever the parent row is doing, so this
   holds without having to touch every container's alignment setting. */
.mgs-card,.mgs-step{align-self:stretch!important;height:auto!important}
.mgs-card > .e-con-inner,.mgs-step > .e-con-inner{height:100%}
/* Their trailing action still sits on the foot line */
.mgs-card .mgs-more-wrap,.mgs-step .elementor-widget-button{margin-top:auto}
/* Any row that holds cards or steps stretches them to a common height */
.e-con:has(> .mgs-card),
.e-con:has(> .mgs-step),
.e-con-inner:has(> .mgs-card),
.e-con-inner:has(> .mgs-step){align-items:stretch!important}
.mgs-card,.mgs-step{align-self:stretch!important;height:auto!important;display:flex;flex-direction:column}
/* The action is the last child of a card or step, whether it is a bare button
   widget or a container wrapping one. Push whichever it is to the foot. */
.mgs-card > *:last-child,
.mgs-step > *:last-child{margin-top:auto}
.mgs-card > .mgs-more-wrap:last-child,
.mgs-step > .e-con:last-child{padding-top:1.1rem}
/* Never let the auto margin collapse a lone paragraph card */
.mgs-card > .elementor-widget-text-editor:last-child,
.mgs-step > .elementor-widget-text-editor:last-child{margin-top:0}
/* ---- Studio portraits on the navy panel -------------------------------
   profile-pic ships with its own grey studio backdrop. Dropped straight onto
   the navy it reads as a pasted rectangle, so frame it as a deliberate plate
   and scrim the bottom edge where grey meets navy. */
.mgs-navy .elementor-widget-image.mgs-portrait,
.mgs-navy .elementor-widget-image.mgs-portrait-wide{position:relative}
.mgs-navy .elementor-widget-image.mgs-portrait img,
.mgs-navy .elementor-widget-image.mgs-portrait-wide img{
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 28px 64px -30px rgba(0,0,0,.8)}
.mgs-navy .elementor-widget-image.mgs-portrait:after,
.mgs-navy .elementor-widget-image.mgs-portrait-wide:after{
  content:"";position:absolute;inset:auto 0 0 0;height:26%;pointer-events:none;
  background:linear-gradient(to top, rgba(20,35,71,.55), rgba(20,35,71,0));
  border-radius:0 0 var(--radius-lg) var(--radius-lg)}

/* ---- Photo crop utilities ---------------------------------------------
   Vertical source frames need their crop pulled up so faces and signage sit
   inside the landscape window rather than being cut in half. */
.elementor-widget-image.mgs-fp-t img{object-position:50% 25%}
.elementor-widget-image.mgs-fp-b img{object-position:50% 78%}

/* The groundbreaking frame is shot tall; this crop keeps the project sign and
   the row of hard hats together instead of slicing through the heads. */
.elementor-widget-image.mgs-fp-gb img{object-position:50% 4%}

/* ---- Full-width media band -------------------------------------------- */
.mgs-band .mgs-band-cap p{font-size:clamp(1.05rem,1.9vw,1.35rem);line-height:1.45;color:#fff;max-width:44rem;margin:0}
.mgs-band .mgs-eyebrow .elementor-heading-title{color:var(--accent)}

/* The band caption sits on live photography, so it carries its own scrim
   rather than relying on a flat overlay that dulls the whole picture. */
.mgs-band:before,.mgs-band.elementor-element:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(12,22,48,.94) 0%,rgba(12,22,48,.72) 22%,rgba(12,22,48,.30) 52%,rgba(12,22,48,0) 82%)}
.mgs-band .mgs-band-cap p{text-shadow:0 1px 2px rgba(0,0,0,.45)}

/* ---- Issue rail imagery ------------------------------------------------
   The supplied issue photographs arrive as a stock duotone in an azure that
   is not in this palette. Rather than introduce a third blue, the image is
   reduced to luminance and re-duotoned onto the campaign navy and sky. To
   revert to the file as supplied, delete this block. */
.elementor-widget-image.mgs-issueimg{position:relative;isolation:isolate;overflow:hidden;
  background-color:var(--brand);border:1px solid var(--line);border-radius:var(--radius-lg);line-height:0}
.elementor-widget-image.mgs-issueimg img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  filter:grayscale(1) brightness(1.5) contrast(1.25);mix-blend-mode:screen}
.elementor-widget-image.mgs-issueimg:after{content:"";position:absolute;inset:0;pointer-events:none;
  background-color:var(--accent);mix-blend-mode:multiply}
@media print{.elementor-widget-image.mgs-issueimg img{filter:none;mix-blend-mode:normal}
  .elementor-widget-image.mgs-issueimg:after{display:none}}

/* ===================== MASTHEAD + FOOTER FINAL ==========================
   This block is authoritative for header nav rhythm and mobile behaviour.
   It comes last on purpose and supersedes the earlier masthead experiments. */

/* The dropdown resolves its absolute position against the whole masthead so
   it can span the full header width instead of the nav widget's own box. */
.mgs-masthead{position:relative}
.mgs-masthead .elementor-widget-nav-menu,
.mgs-masthead .elementor-widget-nav-menu > .elementor-widget-container{position:static}

@media(min-width:1025px){
  /* One gap value across the row. No per-item margins fighting it. */
  /* --main is the NAV element; the flex row is the UL inside it, so the gap
     has to land there or it applies to a single child and does nothing. */
  .mgs-nav .elementor-nav-menu--main{display:block}
  /* space-between distributes whatever room is left rather than adding a
     fixed gap that can push the first item back under the logo. The
     column-gap is only the floor. */
  .mgs-nav .elementor-nav-menu--main > ul.elementor-nav-menu{
    display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;
    column-gap:clamp(.55rem,1.1vw,1.35rem);width:100%;max-width:100%}
  .mgs-nav .elementor-nav-menu--main > ul.elementor-nav-menu > li{margin:0!important;padding:0!important}
  .mgs-nav .elementor-nav-menu--main .elementor-item{
    font-size:clamp(.78rem,.95vw,1rem)!important;letter-spacing:.08em!important;
    white-space:nowrap;padding:.5rem 0!important}
  /* The standalone Donate button already covers this on desktop. */
  .mgs-nav .mgs-menu-donate{display:none!important}
}

@media(max-width:1024px){
  .mgs-masthead .e-con-inner{flex-wrap:nowrap!important;align-items:center}
  .mgs-masthead .e-con-inner > .elementor-widget-nav-menu{margin-left:auto;flex:0 0 auto}
  .mgs-masthead .e-con-inner > .elementor-widget-button{display:none!important}
  .mgs-masthead .elementor-widget-nav-menu > .elementor-widget-container{
    display:flex;justify-content:flex-end}
  .mgs-masthead .elementor-menu-toggle{margin-left:auto}

  /* Panel spans the header, edge to edge. */
  .mgs-masthead .elementor-nav-menu--dropdown{
    position:absolute!important;top:100%!important;left:0!important;right:0!important;
    width:auto!important;max-width:none!important;
    border-top:1px solid var(--line);box-shadow:0 18px 40px -24px rgba(20,35,71,.55)}
  .mgs-masthead .elementor-nav-menu--dropdown .elementor-item{
    padding:1rem clamp(1.25rem,5vw,2rem)!important;font-size:.95rem;letter-spacing:.06em}

  /* Donate reads as the action it is, inside the panel. */
  .mgs-nav .elementor-nav-menu--dropdown .mgs-menu-donate{
    padding:.9rem clamp(1.25rem,5vw,2rem) 1.2rem;border-bottom:0}
  .mgs-nav .elementor-nav-menu--dropdown .mgs-menu-donate .elementor-item{
    background-color:var(--brand-2);color:#fff!important;justify-content:center;text-align:center;
    border-radius:var(--radius);border-bottom:0!important;padding:.95rem 1.25rem!important;
    font-weight:700;letter-spacing:.11em;text-transform:uppercase}
  .mgs-nav .elementor-nav-menu--dropdown .mgs-menu-donate .elementor-item:hover,
  .mgs-nav .elementor-nav-menu--dropdown .mgs-menu-donate .elementor-item:focus{
    background-color:color-mix(in srgb,var(--brand-2) 86%,#000);color:#fff!important}
}

/* ---- Footer legal bar ---- */
.mgs-legal .mgs-copyright p{margin:0}
.mgs-legal .mgs-copyright a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.mgs-legal .mgs-copyright a:hover{color:#fff}
@media(max-width:767px){.mgs-legal-links{align-items:flex-start!important}}

/* ---- Mobile gutter -----------------------------------------------------
   Boxed sections take their gutter from the centred content width, which
   collapses to zero once the viewport is narrower than that width. Below
   that point the gutter has to be explicit or the type sits on the screen
   edge. */
@media(max-width:1249px){
  .e-con.e-con-boxed > .e-con-inner{padding-inline:clamp(18px,5vw,26px)}
  .mgs-masthead .elementor-nav-menu--dropdown .elementor-item{padding-inline:clamp(18px,5vw,26px)!important}
  .mgs-nav .elementor-nav-menu--dropdown .mgs-menu-donate{padding-inline:clamp(18px,5vw,26px)}
}

/* ---- Statement cards ---------------------------------------------------
   Statements read as a three-up grid rather than a stacked list, so the row
   rule that separated list items has to go and the image leads the card. */
.mgs-postgrid{border-top:0}
.mgs-postcard{border-bottom:1px solid var(--line)}
.mgs-postcard .elementor-widget-image{order:-1;margin-bottom:.25rem}
.elementor-widget-image.mgs-postimg img{width:100%;aspect-ratio:16/10;object-fit:cover;
  border:1px solid var(--line);border-radius:var(--radius);display:block}
.mgs-postcard .elementor-widget-heading.mgs-pill{margin-top:auto}
.mgs-postcard h3,.mgs-postcard .elementor-heading-title{line-height:1.15}

/* ---- Form labels stay left --------------------------------------------
   Several forms sit inside centred sections and inherit text-align:center,
   which centres the label over a full-width field and breaks the reading
   line. Fields, labels and help text are left-aligned regardless of the
   section's alignment. */
.wpforms-container .wpforms-field{text-align:left}
.wpforms-container .wpforms-field-label,
.wpforms-container .wpforms-field-sublabel,
.wpforms-container .wpforms-field-description,
.wpforms-container .wpforms-error{text-align:left!important;display:block}
/* A left label over a centred button reads as a mistake; the whole block
   sits on one edge. .mgs-signup keeps its own inline layout. */
.wpforms-container:not(.mgs-signup) .wpforms-submit-container{text-align:left}/* End custom CSS */