/* Program menus. Region is a small label. Every country is a green bar,
   including a country with one program. The program name, status, and
   price sit under that bar. */

.mboard .mcol,
.mboard .mctry,
.mboard .mclist,
.mboard .mprog {
  min-width: 0;
  max-width: 100%;
}

.mboard .mtl {
  margin: 12px 0 4px;
  padding: 0;
  font-family: "DM Sans", system-ui, sans-serif;
  font-weight: 500;
  font-variation-settings: normal;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--ink-3);
}

.mboard .mcol > .mtl:first-child {
  margin-top: 0;
}

.mboard .mctry {
  margin: 10px 0 0;
  padding: 0;
  border: 0;
}

.mboard .mcountry {
  margin: 8px 0 0;
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--ink-3);
}

.mboard .mtl + .mctry {
  margin-top: 0;
}

.mboard .mch {
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 7px 12px 8px;
  border: 0;
  border-radius: 2px;
  background: var(--meadow);
  font-family: "Fraunces", Georgia, serif;
  font-weight: 400;
  font-variation-settings: "SOFT" 0, "WONK" 0;
  font-size: 16px;
  letter-spacing: -0.01em;
  text-transform: none;
  line-height: 1.2;
  color: #fff;
}

.mboard .mclist {
  margin: 0;
  padding: 4px 4px 2px;
  border: 0;
}

.mboard .mclist .mprog,
.mboard .mprog.mrow {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  min-height: 0;
  margin: 0;
  padding: 5px 8px 6px;
  border: 0;
  border-radius: 6px;
  text-align: left;
  transition: background-color 150ms ease, color 150ms ease;
}

.mboard .mprog.mrow .mname {
  flex: none;
  width: 100%;
  min-width: 0;
  font-size: 15.5px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.mboard a.mprog:hover,
.mboard a.mprog:focus,
.mboard a.mprog:focus-visible {
  background: rgba(47, 78, 11, 0.12);
}

.mboard a.mprog:hover .mname,
.mboard a.mprog:focus .mname,
.mboard a.mprog:focus-visible .mname {
  color: var(--meadow-dk);
  text-decoration: none;
}

.mboard .mprog.mrow .mfact {
  margin: 1px 0 0;
  font-size: 12.5px;
  line-height: 1.35;
  color: var(--ink-3);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.mboard .mmeta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 8px;
  margin-top: 1px;
}

.mboard .mprice {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
}

.mboard .mname .mstat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin: 0 0 0 6px;
  vertical-align: 0.08em;
  line-height: 0;
}

.mboard .mdot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: none;
  background: #8d9288;
}

.mboard .mstat.is-open .mdot { background: #2f6b32; }
.mboard .mstat.is-closed .mdot { background: #8d9288; }
.mboard .mstat.is-pending .mdot,
.mboard .mstat.is-paused .mdot,
.mboard .mstat.is-limited .mdot,
.mboard .mstat.is-announced .mdot { background: #b0893a; }

.mboard .mdetail {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}

/* Phone menu: one column, each country a tight block. Nothing hangs off the side. */
#mnav {
  overflow-x: hidden;
  max-width: 100%;
}

#mnav .macc-panel,
#mnav .mreg-list,
#mnav .mctry,
#mnav .mclist,
#mnav .mprog {
  min-width: 0;
  max-width: 100%;
}

#mnav .mreg-btn {
  min-height: 48px;
  font-family: "DM Sans", system-ui, sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

#mnav .mreg-btn .mcnt {
  font-size: 11px;
  letter-spacing: 0.08em;
}

#mnav .mreg-list {
  padding: 2px 0 8px;
}

#mnav .mreg-list .mctry {
  margin: 10px 0 0;
  padding: 0;
  border: 0;
}

#mnav .mcountry {
  margin: 10px 0 0;
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--ink-3);
}

#mnav .mreg-list > .mctry:first-child {
  margin-top: 2px;
  padding-top: 0;
  border-top: 0;
}

#mnav .mch {
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-radius: 2px;
  background: var(--meadow);
  font-family: "Fraunces", Georgia, serif;
  font-weight: 400;
  font-variation-settings: "SOFT" 0, "WONK" 0;
  font-size: 17px;
  letter-spacing: -0.01em;
  text-transform: none;
  line-height: 1.2;
  color: #fff;
}

#mnav .mreg-list .mclist {
  margin: 0;
  padding: 4px 4px 2px;
  border: 0;
}

#mnav .mclist .mprog,
#mnav .mprog.mrow {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  margin: 0;
  padding: 6px 8px 7px;
  border: 0;
  border-radius: 6px;
  text-align: left;
  transition: background-color 150ms ease, color 150ms ease;
}

#mnav .mprog.mrow .mname {
  flex: none;
  width: 100%;
  min-width: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

#mnav a.mprog:hover,
#mnav a.mprog:focus,
#mnav a.mprog:focus-visible {
  background: rgba(47, 78, 11, 0.12);
}

#mnav a.mprog:hover .mname,
#mnav a.mprog:focus .mname,
#mnav a.mprog:focus-visible .mname {
  color: var(--meadow-dk);
  text-decoration: none;
}

#mnav .mprog.mrow .mfact {
  margin: 1px 0 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--ink-3);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

#mnav .mmeta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 8px;
  margin-top: 1px;
}

#mnav .mprice {
  color: var(--ink-3);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
}

#mnav .mname .mstat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin: 0 0 0 6px;
  vertical-align: 0.08em;
  line-height: 0;
}

#mnav .mdot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: none;
  background: #8d9288;
}

#mnav .mstat.is-open .mdot { background: #2f6b32; }
#mnav .mstat.is-closed .mdot { background: #8d9288; }
#mnav .mstat.is-pending .mdot,
#mnav .mstat.is-paused .mdot,
#mnav .mstat.is-limited .mdot,
#mnav .mstat.is-announced .mdot { background: #b0893a; }

#mnav .mdetail {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}

/* Page container. The inlined sheet still says 1320px; this linked rule wins. */
.wrap {
  max-width: 1440px;
  padding-left: clamp(20px, 4vw, 64px);
  padding-right: clamp(20px, 4vw, 64px);
}

/* Desktop panels stay inside the page container. Equal columns: 3 from 1024, 4 from 1440. */
.mega {
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega .mg.mg-board {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 10px;
  padding-bottom: 4px;
  padding-left: 24px;
  padding-right: 24px;
}

.mega .mflow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 28px;
  align-items: start;
  width: 100%;
  min-width: 0;
}

@media (min-width: 1440px) {
  .mega .mflow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 32px;
  }
}

.mflow.mboard .mtl {
  display: block;
  margin: 12px 0 4px;
  font-family: "DM Sans", system-ui, sans-serif;
  font-weight: 500;
  font-variation-settings: normal;
  font-size: 11px;
  line-height: 1.3;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.mflow.mboard .mcol > .mtl:first-child {
  margin-top: 0;
}

/* Dropdown items: soft green fill, rounded, with the padding already on the row. */
.mega .mfoot a,
#mnav .mreg-foot a {
  border-radius: 6px;
  padding-left: 8px;
  padding-right: 8px;
  transition: background-color 150ms ease, color 150ms ease;
}

.mega .mfoot a:hover,
.mega .mfoot a:focus,
.mega .mfoot a:focus-visible,
#mnav .mreg-foot a:hover,
#mnav .mreg-foot a:focus,
#mnav .mreg-foot a:focus-visible {
  background: rgba(47, 78, 11, 0.12);
  color: var(--meadow-dk);
  text-decoration: none;
}

/* Desktop nav. One size and weight for every item. Gaps ease from 54px at
   1024 to 75px at 1440. The phone sheet is untouched. */
@media (min-width: 1024px) {
  .hdr .nav {
    column-gap: clamp(54px, calc(54px + (100vw - 1024px) * 0.0505), 75px);
    row-gap: 0;
    align-items: stretch;
  }

  .hdr .nav > .nv {
    align-self: stretch;
  }

  .hdr .nav > a {
    align-self: center;
  }

  .hdr .nav > a,
  .hdr .nv-btn {
    font-family: "DM Sans", system-ui, sans-serif;
    font-size: 15px;
    font-weight: 500;
    font-variation-settings: normal;
    letter-spacing: 0;
    line-height: 1.2;
  }

  .hdr .nv-btn {
    gap: 5px;
  }

  .hdr .nv-btn .nv-caret {
    width: 0;
    height: 0;
    margin: 1px 0 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4px solid currentColor;
    flex: none;
    align-self: center;
    opacity: 0.75;
  }
}

/* Compact nav lists. Programs, Resources and About are short cards. */
.nv.nv-simple{position:relative}
.nv-simple .mega.nv-drop{left:0;right:auto;top:calc(100% + 6px);width:max-content;min-width:196px;max-width:280px;max-height:none;overflow:visible;padding:6px;background:#fff;color:var(--ink);border:1px solid #e7e8e3;border-radius:12px;box-shadow:0 18px 40px -24px rgba(16,20,16,.45)}
.nv-simple .mega.nv-drop::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nv-simple .mega.nv-drop a{display:flex;align-items:center;min-height:40px;padding:0 12px;border-radius:8px;font-size:15px;font-weight:500;color:var(--ink);white-space:nowrap;transition:background-color 150ms ease,color 150ms ease,box-shadow 150ms ease}
.nv-simple .mega.nv-drop a.nv-sub{min-height:32px;padding-left:22px;font-size:13px;font-weight:400;color:var(--ink-3)}
.nv-simple .mega.nv-drop a.on{background:#f4f1ea;color:var(--meadow)}
.nv-simple .mega.nv-drop a:hover,.nv-simple .mega.nv-drop a:focus-visible,.mega .mfoot a:hover,.mega .mfoot a:focus-visible,#mnav a.mprog:hover,#mnav a.mprog:focus-visible,#mnav .navacc-panel>a.mac:hover,#mnav .navacc-panel>a.mac:focus-visible,#mnav .mreg-foot a:hover,#mnav .mreg-foot a:focus-visible{background:rgba(47,78,11,.12);color:var(--meadow-dk);box-shadow:0 0 0 1px rgba(47,78,11,.14),0 0 14px rgba(47,78,11,.2)}
.nv-simple .mega.nv-drop a:focus-visible,.mboard a.mprog:focus-visible,#mnav a.mprog:focus-visible,#mnav .navacc-panel>a.mac:focus-visible,#mnav .mreg-foot a:focus-visible,.mega .mfoot a:focus-visible{outline:2px solid var(--meadow);outline-offset:2px}
#mnav a.mprog,#mnav .navacc-panel>a.mac,#mnav .mreg-foot a,.mega .mfoot a{border-radius:8px;transition:background-color 150ms ease,color 150ms ease,box-shadow 150ms ease}
#mnav a.mprog:hover .mname,#mnav a.mprog:focus-visible .mname{color:var(--meadow-dk);text-decoration:none}
.mega .mfoot a:hover,.mega .mfoot a:focus-visible{text-decoration:none}
.prog-tabs{display:none}
.prog-tab{height:36px;padding:0 16px;border-radius:999px;border:1px solid #d5d0c6;background:transparent;color:var(--ink-2);font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.prog-tab.on{background:var(--meadow);border-color:var(--meadow);color:#fff}
.prog-pane{display:none}
.prog-pane.on{display:block}
/* Sections, not tabs: both panels show, each under a labelled heading. */
.msec-h{box-sizing:border-box;width:100%;max-width:1440px;margin:0 auto;padding:22px clamp(20px,4vw,64px) 0;font-family:'Fraunces',Georgia,serif;font-weight:300;font-size:22px;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}
.prog-pane + .prog-pane .msec-h{margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.navacc{border-bottom:1px solid var(--line)}
.navacc-panel{padding:0 0 8px}
.navacc-panel>.mac{display:flex;align-items:center;min-height:44px;padding:0 4px;color:var(--ink);font-size:1rem}
.navacc-panel>.mac.mac-sub{min-height:38px;padding-left:18px;font-size:.88rem;color:var(--ink-3)}
.navacc-panel>.mac.on,.navacc-link.on,.macc-btn.on{color:var(--meadow)}
.navacc-panel>.macc>.macc-btn{min-height:48px;font-size:.98rem;color:var(--ink-2)}
.navacc-panel>.macc:last-child{border-bottom:0}
.navacc.open>.macc-btn .nv-caret{transform:rotate(180deg)}
.navacc-link{display:flex;align-items:center;min-height:56px;border-bottom:1px solid var(--line);font-size:1.05rem;color:inherit}
@media(min-width:1024px){.hdr .nav{align-items:stretch}.hdr .nav>.nv{align-self:stretch}.hdr .nav>a{align-self:center}}
