:root {
    --mg-green: #2d7451;
    --mg-green-dark: #1e573c;
    --mg-navy: #15345f;
    --mg-lime: #9bcb73;
    --mg-ink: #101c22;
    --mg-muted: #66736d;
    --mg-mist: #eef2ed;
    --mg-white: #ffffff;
    --mg-border: rgba(16, 28, 34, 0.16);
    --mg-shell: min(100% - 48px, 1440px);
    --mg-chrome-shell: min(100% - 136px, 1910px);
    --mg-transition: 450ms cubic-bezier(.22, 1, .36, 1);
    --mg-header-bg: #f7f7f7;
    --mg-header-text: #004b8d;
    --mg-header-positive: #4f7f17;
    --mg-footer-bg: #004b8d;
    --mg-footer-text: #ffffff;
    --mg-footer-accent: #ffd400;
    --mg-header-logo-width: 112px;
    --mg-header-top-h: 118px;
    --mg-header-main-h: 116px;
    --mg-header-h: calc(var(--mg-header-top-h) + var(--mg-header-main-h));
    --mg-mobile-header-h: 112px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--mg-ink);
    background: var(--mg-white);
    font-family: "Manrope", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
body.mg-menu-open,
body.mg-search-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.mg-site-content { min-height: 60vh; }
.mehrgan-front-page .mg-site-content { overflow: clip; }

/* Header */
.mg-site-header {
    position: relative;
    z-index: 999;
    color: var(--mg-header-text);
    background: var(--mg-header-bg);
    border-bottom: 1px solid rgba(0, 75, 141, .08);
}
.mg-sticky-header-enabled .mg-site-header {
    position: sticky;
    top: 0;
    box-shadow: 0 8px 28px rgba(0, 58, 112, .08);
}
.mg-desktop-header { display: block; }
.mg-header-row {
    width: var(--mg-chrome-shell);
    margin-inline: auto;
    display: flex;
    align-items: center;
}
.mg-header-row-top {
    min-height: var(--mg-header-top-h);
    justify-content: space-between;
    gap: 48px;
}
.mg-header-row-main {
    min-height: var(--mg-header-main-h);
    justify-content: flex-start;
}
.mg-header-utility-wrap,
.mg-header-tools {
    display: flex;
    align-items: center;
}
.mg-header-utility-wrap { min-width: 0; gap: clamp(28px, 3vw, 58px); }
.mg-header-tools { margin-left: auto; gap: clamp(22px, 2vw, 40px); }
.mg-header-utility-nav { min-width: 0; }
.mg-header-mini-menu,
.mg-header-main-menu,
.mg-header-mini-menu ul,
.mg-header-main-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.mg-header-mini-menu {
    display: flex;
    align-items: center;
    gap: clamp(22px, 2.1vw, 42px);
}
.mg-header-mini-menu > li,
.mg-header-main-menu > li { position: relative; }
.mg-header-mini-menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 20px 0;
    font-size: clamp(14px, 1.02vw, 21px);
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
.mg-header-mini-menu > .menu-item-has-children > a::after,
.mg-header-main-menu > .menu-item-has-children > a::after,
.mg-header-mini-menu > li.menu-item-has-children > a::after {
    content: "";
    width: 10px;
    height: 10px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform var(--mg-transition);
}
.mg-header-mini-menu > li:hover > a::after,
.mg-header-main-menu > li:hover > a::after { transform: translateY(2px) rotate(225deg); }
.mg-header-mini-menu .sub-menu,
.mg-header-main-menu .sub-menu {
    position: absolute;
    top: calc(100% - 8px);
    left: -22px;
    z-index: 20;
    min-width: 245px;
    padding: 14px;
    color: var(--mg-header-text);
    background: #fff;
    border: 1px solid rgba(0, 75, 141, .1);
    box-shadow: 0 22px 56px rgba(0, 58, 112, .14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
}
.mg-header-mini-menu li:hover > .sub-menu,
.mg-header-main-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.mg-header-mini-menu .sub-menu a,
.mg-header-main-menu .sub-menu a {
    display: block;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 600;
}
.mg-header-mini-menu .sub-menu a:hover,
.mg-header-main-menu .sub-menu a:hover { background: rgba(0, 75, 141, .06); }
.mg-header-indicator {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    font-size: clamp(14px, .95vw, 20px);
    white-space: nowrap;
}
.mg-header-indicator-arrow { color: #707070; font-size: 24px; line-height: 1; }
.mg-header-indicator > span:not(.mg-header-indicator-arrow) { color: #696969; }
.mg-header-indicator strong { color: var(--mg-header-positive); font-weight: 500; }
.mg-search-toggle {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--mg-header-text);
    background: rgba(0, 75, 141, .055);
    cursor: pointer;
    transition: background var(--mg-transition), transform var(--mg-transition);
}
.mg-search-toggle:hover { background: rgba(0, 75, 141, .12); transform: scale(1.04); }
.mg-search-toggle svg { width: 25px; height: 25px; fill: currentColor; }
.mg-language-switcher { display: flex; align-items: center; gap: 12px; font-size: clamp(17px, 1.18vw, 24px); font-weight: 600; }
.mg-language-switcher a { color: #666; line-height: 1.1; }
.mg-language-switcher a.is-active { color: var(--mg-header-text); border-bottom: 1px solid currentColor; }
.mg-header-brand,
.mg-header-brand .custom-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
}
.mg-header-brand img,
.mg-header-brand .custom-logo {
    width: var(--mg-header-logo-width);
    max-height: 82px;
    object-fit: contain;
}
.mg-header-main-nav { width: 100%; }
.mg-header-main-menu {
    display: flex;
    align-items: center;
    gap: clamp(48px, 4.5vw, 92px);
}
.mg-header-main-menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    padding: 24px 0;
    color: var(--mg-header-text);
    font-size: clamp(22px, 1.65vw, 34px);
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: 1.1;
    white-space: nowrap;
}
.mg-header-main-menu > li > a::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 12px;
    left: 0;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--mg-transition);
}
.mg-header-main-menu > li:hover > a::before,
.mg-header-main-menu > li.current-menu-item > a::before { transform: scaleX(1); transform-origin: left; }
.mg-mobile-header { display: none; }
.mg-menu-toggle {
    width: 46px;
    height: 46px;
    padding: 8px 0;
    border: 0;
    color: var(--mg-header-text);
    background: transparent;
    cursor: pointer;
}
.mg-menu-toggle span {
    display: block;
    width: 36px;
    height: 3px;
    margin: 7px 0;
    background: currentColor;
    transition: transform var(--mg-transition), opacity var(--mg-transition);
}
.mg-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
.mg-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.mg-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
.mg-mobile-brand,
.mg-mobile-brand .custom-logo-link { display: inline-flex; align-items: center; justify-content: flex-end; }
.mg-mobile-brand img,
.mg-mobile-brand .custom-logo { width: min(var(--mg-header-logo-width), 82px); max-height: 78px; object-fit: contain; }
.mg-mobile-panel {
    position: fixed;
    inset: var(--mg-mobile-header-h) 0 0;
    z-index: 1000;
    display: none;
    padding: 38px clamp(24px, 6vw, 70px) 60px;
    color: var(--mg-footer-text);
    background: var(--mg-footer-bg);
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity 260ms ease, transform 260ms ease, visibility 260ms ease;
}
.mg-mobile-panel.is-open { opacity: 1; visibility: visible; transform: none; }
.mg-mobile-menu,
.mg-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
.mg-mobile-menu > li > a {
    display: block;
    padding: 15px 0;
    border-bottom: 1px solid rgba(255,255,255,.2);
    font-size: clamp(30px, 7vw, 58px);
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: 1.1;
}
.mg-mobile-menu .sub-menu a { display: block; padding: 10px 0 10px 18px; font-size: 17px; opacity: .74; }
.mg-mobile-contact { display: grid; gap: 8px; margin-top: 48px; font-size: 15px; opacity: .8; }
.mg-search-panel {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: grid;
    place-items: start center;
    padding: clamp(140px, 18vh, 230px) 24px 60px;
    color: var(--mg-header-text);
    background: rgba(247,247,247,.985);
    opacity: 0;
    visibility: hidden;
    transition: opacity 240ms ease, visibility 240ms ease;
}
.mg-search-panel.is-open { opacity: 1; visibility: visible; }
.mg-search-panel-inner { position: relative; width: min(100%, 1040px); }
.mg-search-close {
    position: absolute;
    right: 0;
    bottom: calc(100% + 32px);
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    font-size: 48px;
    line-height: 1;
    cursor: pointer;
}
.mg-search-form { display: grid; grid-template-columns: 1fr auto; gap: 16px; }
.mg-search-form input {
    min-width: 0;
    padding: 20px 4px;
    border: 0;
    border-bottom: 3px solid currentColor;
    outline: 0;
    color: inherit;
    background: transparent;
    font-size: clamp(28px, 4vw, 62px);
}
.mg-search-form button {
    min-width: 140px;
    padding: 0 28px;
    border: 1px solid currentColor;
    color: inherit;
    background: transparent;
    font-weight: 700;
    cursor: pointer;
}

/* Elementor utility classes */
.elementor .mg-kicker,
.mg-kicker { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.mg-display-title .elementor-heading-title,
.mg-display-title { font-size: clamp(54px, 8.4vw, 148px) !important; line-height: .88 !important; letter-spacing: -.075em !important; font-weight: 700 !important; }
.mg-section-title .elementor-heading-title,
.mg-section-title { font-size: clamp(42px, 5vw, 88px) !important; line-height: .98 !important; letter-spacing: -.055em !important; font-weight: 650 !important; }
.mg-card-title .elementor-heading-title,
.mg-card-title { font-size: clamp(28px, 3vw, 48px) !important; line-height: 1.04 !important; letter-spacing: -.045em !important; }
.mg-body-large, .mg-body-large p { font-size: clamp(18px, 1.4vw, 23px); line-height: 1.55; }
.mg-body-muted, .mg-body-muted p { color: var(--mg-muted); }
.mg-reveal { opacity: 0; transform: translateY(36px); transition: opacity 900ms cubic-bezier(.22,1,.36,1), transform 900ms cubic-bezier(.22,1,.36,1); }
.mg-reveal.is-visible { opacity: 1; transform: none; }
.mg-delay-1 { transition-delay: 100ms; }
.mg-delay-2 { transition-delay: 200ms; }
.mg-delay-3 { transition-delay: 300ms; }

/* Home */
.mg-hero { position: relative; min-height: 100svh; overflow: hidden; color: var(--mg-white); background: #0f2a3c; }
.mg-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(7,25,31,.78) 0%, rgba(7,25,31,.44) 44%, rgba(7,25,31,.16) 100%),
        linear-gradient(0deg, rgba(7,25,31,.48), transparent 50%);
    pointer-events: none;
}
.mg-hero::after {
    content: "";
    position: absolute;
    width: min(50vw, 820px);
    aspect-ratio: 1;
    right: -9%;
    bottom: -32%;
    z-index: 0;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 50%;
    box-shadow: 0 0 0 90px rgba(255,255,255,.035), 0 0 0 180px rgba(255,255,255,.025);
}
.mg-hero > .e-con-inner, .mg-hero > .elementor-container { position: relative; z-index: 1; width: var(--mg-shell); margin: 0 auto; }
.mg-hero-content { width: min(100%, 1120px); padding-top: clamp(160px, 20vh, 245px); padding-bottom: 110px; }
.mg-hero-lead { max-width: 730px; margin-top: 34px; }
.mg-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.mg-button .elementor-button,
.mg-solid-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0 28px;
    border: 1px solid var(--mg-green);
    border-radius: 0;
    color: var(--mg-white);
    background: var(--mg-green);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .035em;
    transition: background var(--mg-transition), color var(--mg-transition), transform var(--mg-transition);
}
.mg-button .elementor-button:hover, .mg-solid-button:hover { color: var(--mg-green); background: var(--mg-white); transform: translateY(-2px); }
.mg-button-outline .elementor-button { border-color: rgba(255,255,255,.5); color: var(--mg-white); background: transparent; }
.mg-button-outline .elementor-button:hover { border-color: var(--mg-white); color: var(--mg-ink); background: var(--mg-white); }
.mg-scroll-label { position: absolute; right: 32px; bottom: 34px; z-index: 2; writing-mode: vertical-rl; font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; opacity: .72; }
.mg-scroll-label::after { content: ""; display: inline-block; width: 1px; height: 74px; margin-top: 14px; background: currentColor; animation: mg-scroll-line 1.8s ease-in-out infinite; }
@keyframes mg-scroll-line { 0%,100% { transform: scaleY(.35); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } }

.mg-intro-section { padding: clamp(90px, 10vw, 180px) 0; background: var(--mg-white); }
.mg-shell { width: var(--mg-shell); margin-inline: auto; }
.mg-intro-grid { display: grid !important; grid-template-columns: .65fr 1.35fr; gap: clamp(40px, 8vw, 140px); align-items: start; }
.mg-intro-copy { max-width: 840px; }
.mg-intro-copy .elementor-widget-text-editor { max-width: 760px; }

.mg-programs { background: var(--mg-mist); }
.mg-programs-head { width: var(--mg-shell); margin: 0 auto; padding: clamp(88px, 9vw, 150px) 0 58px; display: flex !important; justify-content: space-between; align-items: end; gap: 32px; }
.mg-programs-head-copy { max-width: 850px; }
.mg-program-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 1px !important; background: rgba(16,28,34,.18); }
.mg-program-card {
    position: relative;
    min-height: min(68vw, 760px);
    overflow: hidden;
    isolation: isolate;
    color: var(--mg-white);
    background: var(--mg-navy);
}
.mg-program-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(0deg, rgba(5,20,28,.86), rgba(5,20,28,.08) 65%);
}
.mg-program-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background: inherit;
    transform: scale(1.01);
    transition: transform 1.1s cubic-bezier(.22,1,.36,1);
}
.mg-program-card:hover::after { transform: scale(1.08); }
.mg-program-card > .e-con-inner, .mg-program-card > .elementor-container { min-height: inherit; padding: 42px; display: flex; flex-direction: column; justify-content: flex-end; }
.mg-program-number { position: absolute; top: 34px; left: 38px; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.mg-program-text { max-width: 460px; }
.mg-program-card .mg-arrow-link { margin-top: 22px; }
.mg-program-card-1 { background-image: linear-gradient(45deg,#183b38,#5c8c68); }
.mg-program-card-2 { background-image: linear-gradient(45deg,#183054,#456b97); }
.mg-program-card-3 { background-image: linear-gradient(45deg,#223727,#7fa15f); }

.mg-news { padding: clamp(92px, 10vw, 170px) 0; }
.mg-news-head { width: var(--mg-shell); margin: 0 auto 54px; display: flex !important; justify-content: space-between; align-items: end; gap: 30px; }
.mg-arrow-link { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; }
.mg-arrow-link span { font-size: 21px; transition: transform var(--mg-transition); }
.mg-arrow-link:hover span { transform: translate(4px,-4px); }
.mg-news-list { width: var(--mg-shell); margin: 0 auto; border-top: 1px solid var(--mg-border); }
.mg-news-item {
    display: grid !important;
    grid-template-columns: 210px 1fr auto;
    align-items: center;
    gap: 30px;
    min-height: 132px;
    padding: 24px 0;
    border-bottom: 1px solid var(--mg-border);
    transition: color var(--mg-transition), padding var(--mg-transition);
}
.mg-news-item:hover { color: var(--mg-green); padding-left: 12px; }
.mg-news-meta { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--mg-muted); }
.mg-news-item .elementor-heading-title { margin: 0; font-size: clamp(21px, 2vw, 34px); line-height: 1.18; letter-spacing: -.035em; }
.mg-news-arrow { font-size: 26px; }

.mg-impact-section { position: relative; min-height: 88svh; color: var(--mg-white); overflow: hidden; background: var(--mg-green-dark); }
.mg-impact-section::before { content:""; position:absolute; inset:0; background: linear-gradient(90deg,rgba(7,28,22,.78),rgba(7,28,22,.18)); }
.mg-impact-section > .e-con-inner, .mg-impact-section > .elementor-container { position: relative; z-index: 1; width: var(--mg-shell); min-height: inherit; margin:0 auto; display:flex; align-items:center; }
.mg-impact-copy { max-width: 920px; padding: 120px 0; }
.mg-impact-copy .elementor-widget-text-editor { max-width: 700px; margin-top: 30px; }

.mg-people { padding: clamp(90px, 10vw, 170px) 0; background: var(--mg-navy); color: var(--mg-white); }
.mg-people-grid { width: var(--mg-shell); margin:0 auto; display:grid !important; grid-template-columns: .95fr 1.05fr; gap: clamp(45px, 8vw, 130px); align-items:center; }
.mg-people-visual { min-height: 650px; position:relative; overflow:hidden; background: linear-gradient(145deg,#4b7e69,#122d49); }
.mg-people-visual::before { content:""; position:absolute; width:78%; aspect-ratio:1; border-radius:50%; left:-18%; bottom:-24%; background:rgba(255,255,255,.10); box-shadow:0 0 0 80px rgba(255,255,255,.04); }
.mg-people-visual::after { content:"TRAIN\A TOGETHER"; white-space:pre; position:absolute; right:40px; bottom:36px; font-size:clamp(40px,5vw,78px); line-height:.9; letter-spacing:-.06em; font-weight:700; text-align:right; }
.mg-quote { margin: 34px 0 0; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.22); }
.mg-quote, .mg-quote p { font-size: clamp(23px, 2.2vw, 37px); line-height: 1.35; letter-spacing: -.035em; }
.mg-person-meta { margin-top: 22px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity:.68; }

.mg-journal { padding: clamp(90px, 10vw, 170px) 0; }
.mg-journal-head { width:var(--mg-shell); margin:0 auto 50px; display:flex !important; justify-content:space-between; align-items:end; gap:30px; }
.mg-journal-grid { width:var(--mg-shell); margin:0 auto; display:grid !important; grid-template-columns:repeat(3,1fr); gap:26px; }
.mg-journal-card { border-top:1px solid var(--mg-border); padding-top:18px; }
.mg-journal-thumb { aspect-ratio: 4/3; overflow:hidden; background:linear-gradient(145deg,#d7e2d5,#76977f); }
.mg-journal-card:nth-child(2) .mg-journal-thumb { background:linear-gradient(145deg,#dbe4ee,#527296); }
.mg-journal-card:nth-child(3) .mg-journal-thumb { background:linear-gradient(145deg,#e4e7d0,#91a35f); }
.mg-journal-meta { margin-top:20px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--mg-muted); }
.mg-journal-card .elementor-heading-title { margin-top:14px; font-size:clamp(23px,2vw,34px); line-height:1.2; letter-spacing:-.04em; }

.mg-cta-section { padding: clamp(95px, 11vw, 185px) 0; color:var(--mg-white); background:var(--mg-green); }
.mg-cta-inner { width:var(--mg-shell); margin:0 auto; display:grid !important; grid-template-columns:1.4fr .6fr; align-items:end; gap:50px; }
.mg-cta-section .mg-section-title .elementor-heading-title { max-width:1050px; }
.mg-cta-actions { justify-self:end; }
.mg-cta-section .mg-button .elementor-button { color:var(--mg-ink); background:var(--mg-white); border-color:var(--mg-white); }
.mg-cta-section .mg-button .elementor-button:hover { color:var(--mg-white); background:transparent; }

/* Footer */
.mg-site-footer {
    color: var(--mg-footer-text);
    background: var(--mg-footer-bg);
}
.mg-footer-top {
    width: var(--mg-chrome-shell);
    margin-inline: auto;
    padding: clamp(52px, 4vw, 78px) 0 clamp(58px, 4vw, 82px);
    display: grid;
    grid-template-columns: minmax(270px, .95fr) minmax(620px, 2.05fr) minmax(440px, 1.35fr);
    gap: clamp(50px, 5.5vw, 120px);
}
.mg-footer-heading {
    margin: 0 0 34px;
    color: inherit;
    font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
    font-size: clamp(25px, 1.55vw, 34px);
    font-weight: 700;
    letter-spacing: .015em;
    line-height: 1;
    text-transform: uppercase;
}
.mg-footer-contact-copy {
    font-size: clamp(16px, 1.08vw, 23px);
    font-weight: 600;
    line-height: 1.45;
}
.mg-footer-phone { margin: 0 0 22px; }
.mg-footer-address { margin: 0 0 12px; }
.mg-footer-hours {
    max-width: 340px;
    margin: 0;
    font-size: clamp(13px, .88vw, 18px);
    font-weight: 500;
    line-height: 1.45;
}
.mg-footer-contact-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    margin-top: clamp(44px, 4vw, 72px);
    padding: 0 34px;
    border: 1px solid currentColor;
    font-size: clamp(16px, 1.05vw, 21px);
    font-weight: 600;
    transition: color var(--mg-transition), background var(--mg-transition);
}
.mg-footer-contact-button:hover { color: var(--mg-footer-bg); background: var(--mg-footer-text); }
.mg-footer-site-grid {
    display: grid;
    grid-template-columns: minmax(390px, 1.4fr) minmax(210px, .72fr);
    gap: clamp(48px, 5vw, 105px);
}
.mg-footer-actions-block h3 {
    margin: 0 0 8px;
    font-size: clamp(16px, 1.08vw, 23px);
    font-weight: 600;
}
.mg-footer-actions-menu,
.mg-footer-main-menu,
.mg-footer-ecosystem-links,
.mg-footer-bottom-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}
.mg-footer-actions-menu,
.mg-footer-main-menu,
.mg-footer-ecosystem-links {
    display: grid;
    gap: 8px;
    font-size: clamp(16px, 1.08vw, 23px);
    font-weight: 600;
    line-height: 1.45;
}
.mg-footer-actions-menu li { position: relative; padding-left: 20px; }
.mg-footer-actions-menu li::before { content: "·"; position: absolute; left: 0; top: -.03em; font-size: 1.35em; }
.mg-footer-actions-menu a,
.mg-footer-main-menu a,
.mg-footer-ecosystem-links a,
.mg-footer-bottom-menu a { transition: opacity var(--mg-transition); }
.mg-footer-actions-menu a:hover,
.mg-footer-main-menu a:hover,
.mg-footer-ecosystem-links a:hover,
.mg-footer-bottom-menu a:hover { opacity: .68; }
.mg-footer-main-block { padding-top: 0; }
.mg-footer-social-heading { margin-top: clamp(48px, 4vw, 72px); }
.mg-footer-socials { display: flex; align-items: center; gap: clamp(24px, 2.4vw, 48px); }
.mg-footer-socials a {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    border-radius: 50%;
    color: var(--mg-footer-bg);
    background: var(--mg-footer-text);
    transition: transform var(--mg-transition), opacity var(--mg-transition);
}
.mg-footer-socials a:hover { transform: translateY(-4px); opacity: .88; }
.mg-footer-socials svg { width: 30px; height: 30px; fill: currentColor; }
.mg-footer-widget-row {
    width: var(--mg-chrome-shell);
    margin-inline: auto;
    padding-bottom: 40px;
}
.mg-footer-bottom-wrap { border-top: 1px solid rgba(255,255,255,.2); }
.mg-footer-bottom {
    position: relative;
    width: var(--mg-chrome-shell);
    min-height: 112px;
    margin-inline: auto;
    padding: 28px 72px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mg-footer-bottom-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: clamp(22px, 2.1vw, 44px);
    font-size: clamp(13px, .88vw, 18px);
    font-weight: 600;
}
.mg-footer-copyright { margin: 14px 0 0; font-size: 12px; opacity: .7; }
.mg-accessibility-button {
    position: absolute;
    right: 0;
    bottom: 18px;
    display: grid;
    place-items: center;
    width: 48px;
    height: 58px;
    color: var(--mg-footer-bg);
    background: var(--mg-footer-accent);
    border: 3px solid var(--mg-footer-accent);
    border-radius: 24px 24px 8px 8px;
    font-size: 28px;
    font-weight: 800;
    box-shadow: inset 0 0 0 2px var(--mg-footer-bg);
}

/* Standard pages */
.mg-standard-page { padding: 80px 0 100px; }
.mg-content-shell { width:var(--mg-shell); margin:0 auto; }
.mg-narrow-shell { max-width:900px; }
.mg-page-header { margin-bottom:50px; }
.mg-page-header h1 { margin:0; font-size:clamp(46px,7vw,104px); line-height:.95; letter-spacing:-.065em; }
.mg-entry-content { font-size:18px; }
.mg-entry-content > * { max-width:900px; }
.mg-entry-content img, .mg-entry-content .alignwide { max-width:1200px; }
.mg-post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.mg-post-card { border:1px solid var(--mg-border); }
.mg-post-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.mg-post-card-body { padding:25px; }
.mg-post-card h2 { font-size:26px; line-height:1.2; }
.mg-post-date { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--mg-muted); }
.mg-single-image { margin-bottom:42px; }
.mg-error-page { min-height:100vh; display:grid; place-items:center; padding:120px 24px; text-align:center; }
.mg-error-page span { font-size:clamp(100px,18vw,260px); line-height:.8; font-weight:800; color:var(--mg-mist); }
.mg-error-page h1 { font-size:clamp(40px,6vw,80px); margin:30px 0 10px; }
.mg-error-page .mg-solid-button { margin-top:25px; }

@media (max-width: 1500px) {
    :root { --mg-chrome-shell: min(100% - 72px, 1910px); }
    .mg-header-utility-wrap { gap: 28px; }
    .mg-header-mini-menu { gap: 24px; }
    .mg-header-main-menu { gap: 52px; }
    .mg-footer-top { grid-template-columns: minmax(240px, .8fr) minmax(540px, 1.7fr) minmax(360px, 1.15fr); gap: 54px; }
    .mg-footer-site-grid { grid-template-columns: minmax(320px, 1.25fr) minmax(190px, .75fr); gap: 54px; }
    .mg-footer-socials { gap: 26px; }
}


@media (max-width: 1350px) {
    .mg-footer-top { grid-template-columns: 1fr 2fr; }
    .mg-footer-ecosystem-column { grid-column: 1 / -1; }
    .mg-footer-ecosystem-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mg-footer-social-heading { margin-top: 42px; }
}

@media (max-width: 1180px) {
    :root { --mg-shell: min(100% - 36px, 1440px); --mg-chrome-shell: min(100% - 72px, 1910px); }
    .mg-desktop-header { display: none; }
    .mg-mobile-header {
        min-height: var(--mg-mobile-header-h);
        width: var(--mg-chrome-shell);
        margin-inline: auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .mg-mobile-panel { display: block; }
    .mg-program-card { min-height: 720px; }
}

@media (max-width: 820px) {
    :root { --mg-shell: min(100% - 28px, 1440px); --mg-chrome-shell: min(100% - 40px, 1910px); --mg-mobile-header-h: 96px; }
    .mg-mobile-brand img,
    .mg-mobile-brand .custom-logo { width: min(var(--mg-header-logo-width), 70px); max-height: 68px; }
    .mg-menu-toggle span { width: 32px; }
    .mg-hero-content { padding-top:145px; }
    .mg-scroll-label { display:none; }
    .mg-intro-grid, .mg-people-grid, .mg-cta-inner { grid-template-columns:1fr; }
    .mg-programs-head, .mg-news-head, .mg-journal-head { align-items:flex-start; flex-direction:column; }
    .mg-program-grid { grid-template-columns:1fr; }
    .mg-program-card { min-height:620px; }
    .mg-news-item { grid-template-columns:1fr auto; gap:12px 20px; }
    .mg-news-meta { grid-column:1 / -1; }
    .mg-people-visual { min-height:520px; }
    .mg-journal-grid, .mg-post-grid { grid-template-columns:1fr; }
    .mg-cta-actions { justify-self:start; }
    .mg-footer-top { grid-template-columns: 1fr; gap: 54px; }
    .mg-footer-site-grid { grid-template-columns: 1.3fr .7fr; }
    .mg-footer-ecosystem-column { grid-column: auto; }
    .mg-footer-bottom { padding-inline: 0; justify-content: flex-start; }
    .mg-footer-bottom-menu { justify-content: flex-start; padding-right: 56px; }
    .mg-search-form { grid-template-columns: 1fr; }
    .mg-search-form button { min-height: 58px; }
}

@media (max-width: 560px) {
    :root { --mg-chrome-shell: min(100% - 28px, 1910px); --mg-mobile-header-h: 86px; }
    .mg-mobile-brand img,
    .mg-mobile-brand .custom-logo { width: min(var(--mg-header-logo-width), 62px); max-height: 60px; }
    .mg-menu-toggle { width: 40px; }
    .mg-menu-toggle span { width: 28px; height: 3px; margin: 6px 0; }
    .mg-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
    .mg-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
    .mg-hero-actions { flex-direction:column; align-items:stretch; }
    .mg-button .elementor-button { width:100%; }
    .mg-program-card > .e-con-inner, .mg-program-card > .elementor-container { padding:28px; }
    .mg-program-number { top:28px; left:28px; }
    .mg-news-item { min-height:0; padding:26px 0; }
    .mg-people-visual { min-height:410px; }
    .mg-footer-site-grid { grid-template-columns: 1fr; gap: 44px; }
    .mg-footer-actions-menu, .mg-footer-main-menu, .mg-footer-ecosystem-links { font-size: 17px; }
    .mg-footer-ecosystem-links { grid-template-columns: 1fr; }
    .mg-footer-socials { gap: 16px; flex-wrap: wrap; }
    .mg-footer-socials a { width: 46px; height: 46px; flex-basis: 46px; }
    .mg-footer-bottom { min-height: 160px; align-items: flex-start; padding-top: 32px; }
    .mg-footer-bottom-menu { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 18px; padding-right: 46px; }
    .mg-accessibility-button { right: 0; bottom: 22px; }
    .mg-search-panel { padding-top: 120px; }
}
