/* PLU design tokens, taken from wp-content/themes/plu-theme/style.css so the
   Django site is visually continuous with the WordPress original. */
/* The site typeface. Without this @font-face the whole page fell back to Arial,
   which reflows every heading and paragraph against the reference. */
@font-face {
  font-family: 'Geist PLU';
  src: url("../fonts/Geist-Variable.dfa48d5a8537.woff2") format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --plu-black: #050505;
  --plu-cream: #f5f4ed;
  --plu-line: #dddcd2;
  --plu-red: #e30613;
  --plu-text: #0d0d0d;
  --plu-yellow: #fff200;
  --plu-muted: #626262;
  --plu-font: 'Geist PLU', Arial, Helvetica, sans-serif;
  --plu-radius: 2px;
  --plu-maxw: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--plu-font);
  background: var(--plu-cream);
  color: var(--plu-text);
  font-size: 16px;
  /* 1.5, as the legacy body rule sets. At 1.55 every inherited line box was
     3.3% taller, which drifted section heights against the reference. */
  line-height: 1.5;
}
/* The reference sets this globally at style.css:21. Without it every <button>
   falls back to the UA default 13.3333px instead of inheriting the body's
   16px/24px - measured on .plu-level-button, which also changed height at 1024
   as a result. It was patched onto two individual components here instead,
   which is the tell that the global was missing. */
button, input, select, textarea { font: inherit; }
a { color: inherit; }
/* display:block matches the reference at style.css:22. Without it an <img> is
   inline and carries the baseline descender gap - a few pixels under every
   image on the site. height:auto is ours and stays: the reference omits it, but
   it stops an <img> with explicit width/height attributes distorting once
   max-width constrains it. */
img { display: block; max-width: 100%; height: auto; }

.plu-shell { max-width: var(--plu-maxw); margin: 0 auto; padding: 0 20px; }
/* The stand-off under the header, for pages whose content starts with
   a card rather than a banner. A page with a full-bleed hero declines
   it - otherwise the hero sits under a band of page background, which
   is what the field saw below the navbar. */
.plu-shell--top { padding-top: 44px; }

/* Header ---------------------------------------------------------------- */
.plu-header { background: var(--plu-black); border-bottom: 3px solid var(--plu-yellow); }
.plu-header__inner {
  max-width: var(--plu-maxw); margin: 0 auto; padding: 14px 20px;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.plu-brand {
  color: #fff; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none; font-size: 15px; display: flex; align-items: center; gap: 10px;
}
.plu-brand__mark {
  background: var(--plu-yellow); color: var(--plu-black);
  padding: 5px 8px; border-radius: var(--plu-radius); font-size: 13px;
}
.plu-nav { display: flex; gap: 20px; margin-left: auto; align-items: center; flex-wrap: wrap; }
.plu-nav a {
  color: #fff; text-decoration: none; font-size: 12.5px; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
}
.plu-nav a:hover { color: var(--plu-yellow); }
.plu-btn-join {
  background: var(--plu-yellow); color: var(--plu-black) !important;
  padding: 9px 16px; border-radius: var(--plu-radius);
}

/* Buttons and forms ------------------------------------------------------ */
.plu-btn {
  display: inline-block; background: var(--plu-yellow); color: var(--plu-black);
  border: 0; padding: 13px 26px; font-family: inherit; font-weight: 800;
  letter-spacing: .07em; text-transform: uppercase; font-size: 13px;
  cursor: pointer; border-radius: var(--plu-radius); text-decoration: none;
}
.plu-btn:hover { filter: brightness(.93); }
.plu-btn--ghost { background: transparent; border: 2px solid var(--plu-black); }

.plu-card {
  background: #fff; border: 1px solid var(--plu-line);
  border-top: 4px solid var(--plu-black); padding: 32px; margin: 0 auto 40px;
  max-width: 820px;
}
.plu-card__head { border-bottom: 1px solid var(--plu-line); padding-bottom: 18px; margin-bottom: 26px; }
.plu-card__head h1 { margin: 0 0 6px; font-size: 27px; letter-spacing: -.01em; }
.plu-card__head p { margin: 0; color: var(--plu-muted); font-size: 14.5px; }

.plu-eyebrow {
  margin: 0 0 10px; color: var(--plu-red); font-size: 11px;
  font-weight: 900; letter-spacing: .18em; text-transform: uppercase;
}

.plu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .plu-grid { grid-template-columns: 1fr; } }

.plu-field { margin-bottom: 18px; }
/* Control metrics measured off the reference signup form, not chosen here.
   These style every form on the site, so they live with the shared chrome. */
/* 8px, not 6px. The reference's label is display:grid with gap:8px; measured
   label-to-input reads 9.5px there against 7.5px here, the extra 1.25px on each
   being half-leading on a 17px text box in a 19.5px line. */
.plu-field label { display: block; font-weight: 900; font-size: 13px; margin-bottom: 8px; }
.plu-field .plu-help { font-size: 10.8333px; color: #8a8d96; margin-top: 8px; }
/* textarea belongs in all of these. Without it a textarea keeps its intrinsic
   cols="40" (~365px) and overflows narrow viewports - 44px of document overflow
   at 320 - and it gets no focus ring at all, which the other controls do. */
.plu-field input, .plu-field select, .plu-field textarea {
  width: 100%; font-family: inherit; font-size: 13px;
  border: 1px solid #d4d4d0; border-radius: 7px; background: #fff;
}
/* The reference centres its text on a fixed 46px control rather than padding
   it vertically. A textarea has to keep real padding, so it is set apart. */
.plu-field input, .plu-field select { height: 46px; padding: 0 14px; }
.plu-field textarea { padding: 12px 14px; }
.plu-field input:focus, .plu-field select:focus, .plu-field textarea:focus {
  outline: 3px solid var(--plu-yellow); outline-offset: 0; border-color: var(--plu-black);
}
/* A DELIBERATE DIVERGENCE, do not "fix" it: the reference has no :focus rule on
   its signup text inputs at all - the only focus styling in its membership.css
   is on buttons and pickers. Matching it would be an accessibility regression,
   so this ring stays. */

/* The reference marks a failed field on the control itself, not only in the
   message underneath. */
.plu-field--error input, .plu-field--error select, .plu-field--error textarea {
  border-color: #b91c1c; background: #fff7f7;
}
.plu-errors { color: #b91c1c; font-size: 10.8333px; margin-top: 5px; font-weight: 700; }
.plu-alert {
  background: #fff4f4; border-left: 4px solid var(--plu-red);
  padding: 13px 16px; margin-bottom: 22px; font-size: 14px; font-weight: 600;
}
.plu-notice {
  background: #fffde6; border-left: 4px solid var(--plu-yellow);
  padding: 13px 16px; margin-bottom: 22px; font-size: 14px;
}

/* Steps ------------------------------------------------------------------ */
.plu-steps { display: flex; border: 1px solid var(--plu-line); background: #fff; margin-bottom: 0; }
.plu-step {
  flex: 1; padding: 15px 12px; text-align: center; font-size: 13px; font-weight: 700;
  color: var(--plu-muted); border-right: 1px solid var(--plu-line);
}
.plu-step:last-child { border-right: 0; }
.plu-step--active { background: #fffdf0; color: var(--plu-black); }
.plu-step__n {
  display: inline-flex; width: 22px; height: 22px; border-radius: 50%;
  align-items: center; justify-content: center; margin-right: 7px; font-size: 12px;
  background: #e9e8e0; color: var(--plu-black);
}
.plu-step--active .plu-step__n { background: var(--plu-yellow); }

/* Dashboard -------------------------------------------------------------- */
.plu-number {
  font-size: 40px; font-weight: 800; letter-spacing: .02em; margin: 0;
  font-variant-numeric: tabular-nums;
}
.plu-badge {
  display: inline-block; padding: 5px 11px; font-size: 11.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em; border-radius: var(--plu-radius);
}
.plu-badge--pending { background: #fff2c2; color: #6b5600; }
.plu-badge--approved { background: var(--plu-yellow); color: var(--plu-black); }
.plu-badge--rejected { background: #ffd9d9; color: #8a0009; }
.plu-dl { display: grid; grid-template-columns: 190px 1fr; gap: 11px 18px; font-size: 14.5px; }
.plu-dl dt { color: var(--plu-muted); font-weight: 600; }
.plu-dl dd { margin: 0; font-weight: 600; }
@media (max-width: 560px) { .plu-dl { grid-template-columns: 1fr; gap: 3px 0; } .plu-dl dd { margin-bottom: 11px; } }

/* Footer ----------------------------------------------------------------- */
.plu-footer { background: var(--plu-black); color: #cfcfc8; margin-top: 60px; padding: 40px 0 26px; }
.plu-footer a { color: #fff; text-decoration: none; }
.plu-footer a:hover { color: var(--plu-yellow); }
.plu-footer__title {
  color: #fff; text-transform: uppercase; letter-spacing: .1em;
  font-size: 12px; font-weight: 800; margin: 0 0 12px;
}
.plu-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 28px; }
.plu-footer__bottom {
  border-top: 1px solid #232323; margin-top: 30px; padding-top: 16px;
  font-size: 12.5px; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
.plu-footer ul { list-style: none; padding: 0; margin: 0; font-size: 13.5px; }
.plu-footer li { margin-bottom: 8px; }

/* Staff console ---------------------------------------------------------- */
.plu-console { max-width: 1180px; margin: 0 auto; }
.plu-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 30px; }
.plu-stat { background: #fff; border: 1px solid var(--plu-line); border-top: 4px solid var(--plu-black); padding: 18px; }
.plu-stat--alert { border-top-color: var(--plu-red); }
.plu-stat__n { font-size: 30px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.plu-stat__label { font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--plu-muted); font-weight: 700; margin-top: 4px; }
.plu-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 14px; }
.plu-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .09em; padding: 11px 12px; background: var(--plu-black); color: #fff; }
.plu-table td { padding: 11px 12px; border-bottom: 1px solid var(--plu-line); }
.plu-table tr:hover td { background: #fffdf0; }
.plu-table a { font-weight: 700; }
.plu-scroll { overflow-x: auto; border: 1px solid var(--plu-line); }
.plu-filters { background: #fff; border: 1px solid var(--plu-line); padding: 16px; margin-bottom: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; align-items: end; }
.plu-filters .plu-field { margin-bottom: 0; }
.plu-pager { display: flex; gap: 10px; align-items: center; margin-top: 18px; font-size: 14px; }
.plu-msg { padding: 12px 16px; margin-bottom: 18px; font-weight: 600; font-size: 14px; border-left: 4px solid var(--plu-yellow); background: #fffde6; }
.plu-msg--error { border-left-color: var(--plu-red); background: #fff4f4; }
.plu-events { font-size: 13px; }
.plu-events li { margin-bottom: 7px; color: var(--plu-muted); }

/* ======================================================================
   Public site
   ----------------------------------------------------------------------
   Everything below serves the recreated public website (cms app). The
   section rules are lifted from wp-content/themes/plu-theme/style.css so
   the Django pages are visually continuous with the WordPress original;
   the header and footer are rewritten under plu-site-* names because the
   theme's .plu-header / .plu-footer would restyle the member and staff
   pages that already use those classes.
   ====================================================================== */

:root { --plu-shadow: 0 10px 24px rgba(0, 0, 0, .06); --plu-site-maxw: 1360px; }

/* Site header ------------------------------------------------------------ */
.plu-site-header { position: sticky; top: 0; z-index: 1001; background: #070707; color: #fff; border-bottom: 3px solid var(--plu-yellow); }
/* 8px, not 10px. The brand is 58px tall, so 10px padding makes the row 78 and
   overshoots the shared 76px min-height; at 8px the content is 74 and the
   min-height wins, giving the reference's 76 (79 with the 3px border). Those
   2px offset every row on every page below the header, which is enough to make
   a whole-page pixel diff of an otherwise identical page report ~10%. */
.plu-site-header__inner { max-width: 1376px; min-height: 76px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 8px 12px; }
.plu-site-brand { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 4px; background: var(--plu-yellow); color: var(--plu-black); text-decoration: none; font-weight: 900; letter-spacing: .06em; font-size: 15px; text-transform: uppercase; }
.plu-site-brand small { display: block; font-size: 9px; letter-spacing: .1em; font-weight: 800; }
/* Brand mark -------------------------------------------------------------
   Sizes taken from plu-theme/style.css. The original accumulated a ladder of
   overlapping rules; this reproduces the size it actually renders at each
   width, without the contradictions. The tile carries no text - the link's
   aria-label is what assistive technology reads. */
.plu-brand {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  padding: 2px 5px;
  border-radius: 4px;
  background: var(--plu-yellow);
  text-decoration: none;
}
/* The reference's public wordmark is plain: 400, no transform, normal
   tracking, 16px. Ours inherited the member header's 800/uppercase/.06em/15px
   because both headers share .plu-brand. Scoped so member chrome is untouched. */
.plu-site-header .plu-brand {
  font-weight: 400; text-transform: none; letter-spacing: normal; font-size: 16px;
}
.plu-brand img {
  width: 46px;
  height: 54px;
  display: block;
  object-fit: contain;
  object-position: center;
  background: var(--plu-yellow);
}
.plu-site-nav { min-width: 0; flex: 0 1 auto; }
.plu-site-nav > ul { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; gap: 2px; }
.plu-site-nav > ul > li { position: relative; }
/* 5px, not 10px: the reference's resolved `@media (min-width:1061px)` value.
   At 10px the nine items need 1018px, which at 1061 pushes the last one
   past the viewport and gives the whole page a horizontal scrollbar. */
.plu-site-nav > ul > li > a { display: flex; min-height: 40px; align-items: center; padding: 8px 5px; border-radius: 4px; color: #fff; text-decoration: none; font-size: 13px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.plu-site-nav > ul > li > a:hover, .plu-site-nav > ul > li.is-current > a { background: var(--plu-yellow); color: #000; }
.plu-site-nav li.has-children > a::after { content: ""; width: 5px; height: 5px; margin-left: 6px; border: solid currentColor; border-width: 0 1px 1px 0; transform: rotate(45deg) translateY(-2px); }
/* The reference makes the parent li the containing block and sizes the panel
   to it: li position:relative, ul width:100%, z-index 80. Ours had the li
   static, so the panel resolved against a further ancestor - the boxes agree
   today and would diverge the moment anything between them gains a position. */
.plu-site-nav li.has-children { position: relative; }
.plu-site-nav ul ul { position: absolute; left: 0; top: 100%; z-index: 80; width: 100%; min-width: 232px; margin: 0; padding: 6px 0; list-style: none; background: #101010; border: 1px solid #262626; border-top: 3px solid var(--plu-yellow); opacity: 0; visibility: hidden; transition: opacity 120ms ease; }
.plu-site-nav li:hover > ul, .plu-site-nav li:focus-within > ul { opacity: 1; visibility: visible; }
.plu-site-nav ul ul a { display: block; padding: 9px 16px; color: #e8e8e2; text-decoration: none; font-size: 13px; font-weight: 700; }
.plu-site-nav ul ul a:hover { background: var(--plu-yellow); color: #000; }
.plu-site-header__actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.plu-site-join { display: inline-flex; align-items: center; min-height: 40px; padding: 0 15px; background: var(--plu-yellow); color: #000; text-decoration: none; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; border-radius: 2px; }
.plu-site-signin { display: inline-flex; align-items: center; min-height: 40px; padding: 0 13px; border: 1px solid rgba(255,255,255,.4); color: #fff; text-decoration: none; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; border-radius: 2px; }
.plu-site-signin:hover { border-color: var(--plu-yellow); color: var(--plu-yellow); }

/* The hamburger. Hidden until the nav collapses, which the reference does at
   1060 - not at a phone width, because 23 top-level items stop fitting long
   before that. Ours used to keep them all and scroll them sideways instead.

   1060 is the reference's *effective* threshold, not one you can read off any
   single rule: its stylesheet collapses at 1400, then a later
   `@media (min-width:1061px)` block puts the bar back with !important. Only the
   resolved cascade tells you where the change actually happens. */
.plu-menu-button { display: none; }
.plu-menu-button span,
.plu-menu-button span::before,
.plu-menu-button span::after { display: block; width: 21px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.plu-menu-button span { position: relative; }
.plu-menu-button span::before, .plu-menu-button span::after { content: ''; position: absolute; left: 0; }
.plu-menu-button span::before { top: -7px; }
.plu-menu-button span::after { top: 7px; }
.plu-menu-button[aria-expanded='true'] span { background: transparent; }
.plu-menu-button[aria-expanded='true'] span::before { top: 0; transform: rotate(45deg); }
.plu-menu-button[aria-expanded='true'] span::after { top: 0; transform: rotate(-45deg); }
.plu-submenu-toggle { display: none; }

@media (max-width: 1060px) {
  .plu-site-header__inner { min-height: auto; flex-wrap: wrap; gap: 14px; padding: 10px 18px; }
  .plu-brand { padding: 3px 7px; }
  .plu-brand img { width: 58px; height: 68px; }
  .plu-menu-button { display: inline-flex; width: 44px; height: 44px; flex: 0 0 44px; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--plu-yellow); border-radius: 4px; background: transparent; color: var(--plu-yellow); cursor: pointer; }
  .plu-site-header__actions { margin-left: auto; }
  .plu-site-nav { display: none; order: 4; width: 100%; overflow: hidden; border-top: 1px solid rgba(255,255,255,.12); }
  .plu-site-nav.is-open { display: block; }
  .plu-site-nav > ul { width: 100%; display: grid; align-items: stretch; justify-content: stretch; gap: 2px; padding: 8px 0 10px; }
  .plu-site-nav > ul > li { width: 100%; position: static; }
  .plu-site-nav > ul > li > a { width: 100%; min-height: 44px; padding: 11px 12px; white-space: normal; }
  /* The reference marks these `menu-item-has-children` and the child list
     `sub-menu`; ours emits `has-children` and a bare nested <ul>. */
  .plu-site-nav li.has-children { display: grid; grid-template-columns: minmax(0,1fr) 44px; }
  .plu-site-nav li.has-children > a { grid-column: 1; }
  .plu-site-nav li.has-children > a::after { display: none; }
  .plu-site-nav ul ul,
  .plu-site-nav li.has-children:hover > ul,
  .plu-site-nav li.has-children:focus-within > ul { position: static; grid-column: 1 / -1; display: none; min-width: 0; gap: 2px; margin: 0 0 4px 12px; padding: 2px 0 4px 12px; border: 0; border-left: 2px solid rgba(255,242,0,.45); border-radius: 0; background: #111; box-shadow: none; opacity: 1; visibility: visible; }
  .plu-site-nav li.has-children.is-submenu-open > ul { display: grid; }
  .plu-submenu-toggle { grid-column: 2; grid-row: 1; display: grid; width: 40px; height: 40px; place-items: center; align-self: center; border: 0; background: transparent; color: var(--plu-yellow); cursor: pointer; }
  .plu-submenu-toggle span { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px,-2px); transition: transform .2s ease; }
  .is-submenu-open > .plu-submenu-toggle span { transform: rotate(225deg) translate(-1px,-1px); }
}

@media (max-width: 980px) {
  .plu-site-header__inner { min-height: 76px; }
  .plu-brand img { width: 50px; height: 58px; }
  .plu-site-nav > ul > li > a { width: 100%; padding: 12px; }
  .plu-site-nav ul ul { padding: 4px 4px 8px 18px; background: rgba(255,255,255,.04); }
}
@media (max-width: 760px) {
  .plu-site-header__inner { min-height: 70px; gap: 8px; padding: 8px 14px; }
  .plu-brand { padding: 2px 5px; }
  .plu-brand img { width: 44px; height: 52px; }
  .plu-menu-button { width: 42px; height: 42px; flex: 0 0 42px; }
  /* Twenty-three items will not fit a phone screen, so the panel scrolls. */
  .plu-site-nav { max-height: min(68vh, 520px); overflow-y: auto; }
  .plu-site-nav > ul > li > a { min-height: 44px; padding: 11px 8px; font-size: 12px; }
  .plu-site-nav ul ul a { min-height: 40px; display: flex; align-items: center; padding: 9px 12px; font-size: 12px; }
}
@media (max-width: 620px) {
  .plu-brand { min-width: 0; }
  .plu-brand img { width: 42px; height: 54px; }
}
@media (max-width: 390px) {
  .plu-site-header__inner { padding-right: 9px; padding-left: 9px; }
  .plu-brand img { width: 38px; height: 48px; }
  .plu-menu-button { width: 38px; height: 38px; flex-basis: 38px; }
  .plu-site-signin { min-height: 38px; padding: 0 9px; font-size: 9px; }
  .plu-site-join { min-height: 38px; padding: 0 9px; font-size: 9px; }
}
@media (max-width: 360px) {
  .plu-site-header__inner { padding-right: 10px; padding-left: 10px; }
  .plu-brand img { width: 40px; height: 48px; }
  .plu-menu-button { width: 38px; height: 38px; flex-basis: 38px; }
  .plu-site-signin, .plu-site-join { min-height: 38px; padding: 0 10px; font-size: 10px; }
}

/* The contact panel's submit ---------------------------------------------- */
/* Ported from plu-theme/style.css. Ours was using the site's generic .plu-btn,
   which is yellow on black - precisely the reference's HOVER state, worn as its
   resting state, so the button also had nowhere to go on hover.

   The reference styles input[type=submit] because Contact Form 7 renders one.
   Ours is a <button>, so both are named here; class-plus-type outranks the
   single .plu-btn class and no !important is needed. */
.plu-contact-form-panel button[type="submit"],
.plu-contact-form-panel input[type="submit"] {
  min-height: 48px;
  padding: 0 28px;
  border: 2px solid #050505;
  border-radius: 4px;
  background: #050505;
  color: var(--plu-yellow);
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  cursor: pointer;
}
.plu-contact-form-panel button[type="submit"]:hover,
.plu-contact-form-panel input[type="submit"]:hover {
  background: var(--plu-yellow);
  color: #050505;
}
.plu-contact-form-panel button[type="submit"]:disabled,
.plu-contact-form-panel input[type="submit"]:disabled { opacity: .55; cursor: wait; }

@media (max-width: 700px) {
  .plu-contact-form-panel button[type="submit"],
  .plu-contact-form-panel input[type="submit"] { width: 100%; }
}

/* Single-page navigation ------------------------------------------------- */
/* While a boosted request is in flight (boost.js sets the class) a thin bar
   sweeps the top of the viewport, so a slow connection shows something is
   happening rather than a page that seems to ignore the click. */
html.is-navigating::before {
  content: ""; position: fixed; top: 0; left: 0; z-index: 9999;
  width: 40%; height: 3px; background: var(--plu-yellow);
  animation: plu-navigating 1s ease-in-out infinite;
}
@keyframes plu-navigating {
  0% { transform: translateX(-100%); } 100% { transform: translateX(250%); }
}
/* No cross-fade on the swap itself: htmx's view-transition mode rejected
   with InvalidStateError on every navigation in testing, an unhandled error
   per click for a 180ms fade. The swap is instant, which is also what a
   reader on a slow connection wants. */
@media (prefers-reduced-motion: reduce) {
  html.is-navigating::before { animation: none; width: 100%; }
}

/* Dashicons ------------------------------------------------------------- */
/* The icon font the reference's theme enqueues site-wide (wp_enqueue_style
   ('dashicons')). The file is WordPress's own, GPL-2.0+, from the same backup;
   every codepoint below is read out of the saved dashicons stylesheet rather
   than guessed. Shipping the font rather than drawing lookalikes is the
   difference between the same icons and similar ones.

   Declared here, not in a page stylesheet, because two pages use it now: the
   membership overview and the verify page's mode tabs. */
@font-face {
  font-family: dashicons;
  src: url("../vendor/dashicons/dashicons.4db6aca14e3a.woff2") format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.dashicons {
  font-family: dashicons;
  display: inline-block;
  line-height: 1;
  font-weight: 400;
  font-style: normal;
  text-decoration: inherit;
  text-transform: none;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
  height: 20px;
  font-size: 20px;
  vertical-align: top;
  text-align: center;
}
.dashicons-id-alt::before { content: "\f337"; }
.dashicons-location-alt::before { content: "\f231"; }
.dashicons-shield-alt::before { content: "\f334"; }
.dashicons-edit-page::before { content: "\f186"; }
.dashicons-id::before { content: "\f336"; }
.dashicons-groups::before { content: "\f307"; }
/* Verify, the document panel's mode tabs. */
.dashicons-editor-code::before { content: "\f475"; }
.dashicons-media-document::before { content: "\f497"; }
.dashicons-camera::before { content: "\f306"; }
.dashicons-upload::before { content: "\f317"; }

/* Site footer ------------------------------------------------------------ */
/* Values measured from the reference's computed styles at 1440, not read off
   its CSS: plu-theme/style.css still describes an older footer (logo tile,
   two-column link list, action buttons) that assets/footer-refresh.css
   overrides. The rendered footer is the refresh, and that is what these match. */
.plu-site-footer { margin-top: 0; background: #050505; color: #fff; }
.plu-site-footer__accent { height: 4px; background: var(--plu-yellow); }
.plu-site-footer__inner {
  max-width: var(--plu-site-maxw); margin: 0 auto;
  display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 2.35fr);
  gap: 54px; align-items: start; padding: 48px 24px 42px;
}
/* Both the brand title and the four column headings are the same eyebrow:
   11px/900 yellow caps. The brand is not a larger heading on the reference. */
.plu-site-footer__brand h2, .plu-site-footer__directory h2 {
  margin: 0; color: var(--plu-yellow); font-size: 11px; font-weight: 900;
  letter-spacing: .18em; text-transform: uppercase;
}
.plu-site-footer__brand p {
  max-width: 320px; margin: 15px 0 0;
  color: rgba(255, 255, 255, .68); font-size: 13px; line-height: 1.7;
}
.plu-site-footer__social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.plu-site-footer__social a {
  display: grid; place-items: center; width: 38px; height: 38px;
  border: 1px solid rgba(255, 255, 255, .24); border-radius: 3px;
  color: var(--plu-yellow); text-decoration: none;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}
.plu-site-footer__social a:hover, .plu-site-footer__social a:focus-visible {
  border-color: var(--plu-yellow); background: var(--plu-yellow); color: #000;
}
.plu-site-footer__social svg { width: 18px; height: 18px; }
.plu-site-footer__directory { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; }
.plu-site-footer__directory section { min-width: 0; }
.plu-site-footer__directory ul { margin: 16px 0 0; padding: 0; list-style: none; }
.plu-site-footer__directory li + li { margin-top: 3px; }
.plu-site-footer__directory a, .plu-site-footer__pending {
  display: inline-block; padding: 5px 0; font-size: 12px; font-weight: 700; line-height: 1.4;
}
.plu-site-footer__directory a {
  color: rgba(255, 255, 255, .76); text-decoration: none; transition: color 180ms ease;
}
.plu-site-footer__directory a:hover, .plu-site-footer__directory a:focus-visible { color: var(--plu-yellow); }
/* Drafts on the reference, rendered there unlinked. Dimmer than a live link
   on purpose - it is the reference's own signal that the page is not published. */
.plu-site-footer__pending { color: rgba(255, 255, 255, .42); cursor: help; }
.plu-site-footer__lower { border-top: 1px solid rgba(255, 255, 255, .1); }
.plu-site-footer__lower > div {
  max-width: var(--plu-site-maxw); margin: 0 auto; display: flex; align-items: center;
  justify-content: space-between; flex-wrap: wrap; gap: 22px; padding: 16px 24px;
  color: rgba(255, 255, 255, .58); font-size: 11px;
}
.plu-site-footer__lower address { font: inherit; font-style: normal; }
/* The reference's own breakpoints, not ours: 980 / 620 / 420. */
@media (max-width: 980px) {
  .plu-site-footer__inner { grid-template-columns: 1fr; gap: 38px; }
  .plu-site-footer__directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .plu-site-footer__directory { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
  .plu-site-footer__lower > div { align-items: flex-start; flex-direction: column; gap: 6px; padding: 15px 20px; }
}
@media (max-width: 420px) { .plu-site-footer__directory { grid-template-columns: 1fr; } }

/* Visually hidden, still announced. The reference's social links pair the icon
   with a text label; without this the label renders inside the 38px box. */
.plu-visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  border: 0; overflow: hidden; clip-path: inset(50%);
}

/* Cadre Sign In ---------------------------------------------------------- */
/* From mu-plugins/plu-membership/assets/membership.css, confirmed against the
   reference's computed styles at 1440. Two deliberate departures, both noted
   below: the reference leaves two controls unstyled and we do not copy that. */
.plu-member-access {
  display: grid; grid-template-columns: .9fr 1.1fr; max-width: 1040px; margin: 0 auto;
  border-top: 4px solid #111; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .08);
}
.plu-member-access__intro { padding: 42px; background: var(--plu-yellow); }
.plu-member-access__intro h2 { margin: 8px 0 16px; font-size: 34px; line-height: 1.08; }
.plu-member-access__intro p:not(.plu-eyebrow) { color: rgba(0, 0, 0, .66); line-height: 1.65; }
.plu-member-login { display: grid; gap: 18px; padding: 42px; align-content: start; }
.plu-member-login label:not(.plu-login-remember) {
  display: grid; gap: 8px; font-size: 13px; font-weight: 900;
}
/* The reference's rule lists only [type=email] and [type=password], but its
   own identifier field is [type=text] - so on the live site it renders as a
   26px browser default beside a 48px PIN box. That is a defect in the
   reference, not a style to reproduce: text and search are included here. */
.plu-member-login input[type=text],
.plu-member-login input[type=search],
.plu-member-login input[type=email],
.plu-member-login input[type=password] {
  min-height: 48px; border: 1px solid #cfcfc8; border-radius: 5px;
  padding: 0 14px; font: inherit; font-weight: 400;
}
.plu-member-login input:focus-visible { outline: 2px solid var(--plu-yellow); outline-offset: 1px; }
.plu-login-remember { display: flex; gap: 9px; align-items: center; font-size: 13px; font-weight: 400; }
.plu-member-login small { font-size: 10.8333px; font-weight: 900; }
.plu-member-login p { margin: 0; color: #71747b; font-size: 13px; }
.plu-member-login a { color: #050505; font-weight: 900; }
/* Same story as the input: the reference's reset button carries no class, so it
   renders as a grey browser default under a black sign-in button. Both are
   .plu-submit here. */
.plu-member-login .plu-submit {
  grid-column: 1 / -1; width: fit-content; min-height: 46px; border: 0;
  background: #050505; color: #fff; padding: 0 20px;
  font: inherit; font-weight: 900; text-transform: uppercase; cursor: pointer;
}
.plu-member-login .plu-submit:hover { background: #222; }
@media (max-width: 780px) {
  .plu-member-access { grid-template-columns: 1fr; }
  .plu-member-access__intro, .plu-member-login { padding: 28px; }
}

/* Shared public-page bits not carried by the extracted theme rules -------- */
.plu-site-main { display: block; }
.plu-empty-note { max-width: 760px; margin: 0 auto; padding: 26px 28px; background: #fff; border: 1px solid var(--plu-line); border-left: 4px solid var(--plu-yellow); font-size: 14.5px; }
.plu-leader-photo--initials { display: grid; place-items: center; background: var(--plu-black); color: var(--plu-yellow); font-size: 34px; font-weight: 900; letter-spacing: .04em; }
.plu-news-body img { margin: 22px 0; }
.plu-slider { position: relative; height: 680px; overflow: hidden; background: #111; }
.plu-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.015); transition: opacity 850ms ease, transform 1400ms ease; pointer-events: none; }
.plu-slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.plu-slide > img { width: 100%; height: 100%; object-fit: cover; object-position: var(--plu-slide-x, 50%) var(--plu-slide-y, 50%); }
.plu-slide__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.44) 42%, rgba(0,0,0,.1)); }
.plu-slide__content { position: absolute; z-index: 2; left: max(64px, calc((100% - 1360px) / 2 + 24px)); top: 178px; width: min(820px, calc(100% - 80px)); color: #fff; }
.plu-slide--text-right .plu-slide__shade { background: linear-gradient(270deg, rgba(0,0,0,.76), rgba(0,0,0,.44) 42%, rgba(0,0,0,.1)); }
.plu-slide--text-right .plu-slide__content { right: max(64px, calc((100% - 1360px) / 2 + 24px)); left: auto; }
.plu-slide--text-bottom-left .plu-slide__shade { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.34) 42%, rgba(0,0,0,.05)); }
.plu-slide--text-bottom-left .plu-slide__content { top: auto; bottom: 92px; }
.plu-slide--text-bottom-right .plu-slide__shade { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.34) 42%, rgba(0,0,0,.05)); }
.plu-slide--text-bottom-right .plu-slide__content { top: auto; right: max(64px, calc((100% - 1360px) / 2 + 24px)); bottom: 92px; left: auto; }
.plu-slide--text-center .plu-slide__shade { background: radial-gradient(circle at center, rgba(0,0,0,.5), rgba(0,0,0,.22) 46%, rgba(0,0,0,.12)); }
.plu-slide--text-center .plu-slide__content { right: 24px; left: 24px; top: 50%; width: min(820px, calc(100% - 48px)); margin: 0 auto; text-align: center; transform: translateY(-50%); }
.plu-slide--text-center .plu-hero-rule { margin-left: auto; margin-right: auto; }
.plu-slide--text-center p:not(.plu-eyebrow) { margin-left: auto; margin-right: auto; }
.plu-slide--text-center .plu-slide__actions { justify-content: center; }
.plu-hero-rule { display: block; width: 74px; height: 5px; background: var(--plu-yellow); margin-bottom: 16px; }
.plu-slide .plu-eyebrow { color: var(--plu-yellow); }
.plu-slide h1 { margin: 0; font-size: clamp(46px, 4.7vw, 70px); line-height: .97; font-weight: 900; letter-spacing: 0; }
.plu-slide p:not(.plu-eyebrow) { max-width: 620px; margin: 18px 0 0; color: rgba(255,255,255,.92); font-size: 20px; line-height: 1.45; font-weight: 800; }
.plu-slide__actions { display: flex; gap: 14px; margin-top: 28px; }
.plu-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 22px; border: 2px solid transparent; text-decoration: none; font-size: 12px; font-weight: 900; text-transform: uppercase; border-radius: 2px; }
.plu-button--yellow { background: var(--plu-yellow); color: #000; }
.plu-button--ghost { border-color: rgba(255,255,255,.75); color: #fff; }
.plu-slider__count { position: absolute; left: max(64px, calc((100% - 1360px) / 2 + 24px)); bottom: 42px; z-index: 3; display: flex; align-items: center; gap: 12px; color: #fff; font-size: 12px; font-weight: 900; }
.plu-slider__count i { display: block; width: 72px; height: 2px; background: rgba(255,255,255,.35); }
.plu-slider__controls { position: absolute; right: max(28px, calc((100% - 1360px) / 2 + 24px)); bottom: 32px; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 8px; background: rgba(0,0,0,.45); border-radius: 2px; }
.plu-slider__controls button { width: 34px; height: 34px; border: 0; background: rgba(255,255,255,.16); color: #fff; font-size: 22px; font-weight: 900; cursor: pointer; }
.plu-slider__controls button[data-plu-dot] { width: 22px; height: 5px; background: rgba(255,255,255,.4); font-size: 0; }
.plu-slider__controls button[data-plu-dot].is-active { background: var(--plu-yellow); }
.plu-top-row, .plu-endorsement-strip, .plu-gs-row, .plu-membership-row, .plu-programmes-section, .plu-news-section { max-width: 1360px; margin-left: auto; margin-right: auto; }
.plu-top-row { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; padding: 44px 24px 22px; }
.plu-chairman-card { display: grid; grid-template-columns: 340px 1fr; min-height: 360px; background: #fff; border: 1px solid var(--plu-line); box-shadow: var(--plu-shadow); }
.plu-person-photo { position: relative; background: #000; overflow: hidden; }
.plu-person-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.plu-person-photo b { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 14px; background: #050505; color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.plu-person-copy { padding: 46px 34px; }
.plu-red-rule { display: block; width: 70px; height: 4px; background: var(--plu-red); margin-bottom: 18px; }
.plu-person-copy h2, .plu-gs-message h2, .plu-vision-card h2 { margin: 0 0 8px; font-size: 32px; line-height: 1.05; font-weight: 900; }
.plu-person-copy strong, .plu-gs-message strong { display: block; margin-bottom: 16px; font-size: 14px; color: rgba(0,0,0,.68); }
.plu-person-copy p,
.plu-gs-message p,
.plu-vision-card p { color: rgba(0,0,0,.68); font-size: 14px; line-height: 1.7; }
.home .plu-person-copy p,
.home .plu-gs-message p { text-align: justify;
  text-justify: inter-word; }
.plu-mini-button { display: inline-flex; min-height: 38px; align-items: center; margin-top: 12px; padding: 0 18px; background: #050505; color: #fff; text-decoration: none; font-size: 11px; font-weight: 900; text-transform: uppercase; border-radius: 2px; }
.plu-mini-button--light { background: #fff; color: #000; border: 1px solid var(--plu-line); }
.plu-vision-card { position: relative; min-height: 290px; padding: 54px 36px 32px; background: #fff; border: 1px solid var(--plu-line); border-left: 8px solid var(--plu-yellow); box-shadow: var(--plu-shadow); overflow: hidden; }
.plu-vision-card::before { content: ''; position: absolute; top: 0; right: 0; width: 155px; height: 150px; background: var(--plu-yellow); clip-path: polygon(35% 0, 100% 0, 100% 100%, 0 100%); }
.plu-vision-card::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--plu-red); }
.plu-icon-box { position: relative; z-index: 2; display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; margin-bottom: 16px; background: #050505; color: var(--plu-yellow); font-size: 24px; font-weight: 900; }
.plu-vision-card h2, .plu-vision-card p, .plu-vision-card a { position: relative; z-index: 2; }
.plu-endorsement-strip { position: relative; display: grid; grid-template-columns: 126px 1fr auto; align-items: center; margin-top: 12px; overflow: hidden; background: #050505; color: #fff; min-height: 136px; box-shadow: var(--plu-shadow); }
.plu-endorsement-strip::after { content: ''; position: absolute; right: 0; bottom: 0; left: 126px; height: 3px; background: var(--plu-red); transform-origin: left; animation: plu-accountability-line 4.8s ease-in-out infinite; }
/* Referenced by the rule above but never defined, so the strip's red underline
   sat frozen at full width instead of pulsing. */
@keyframes plu-accountability-line { 0%, 100% { transform: scaleX(.18); } 50% { transform: scaleX(1); } }
.plu-strip-icon { height: 100%; display: flex; align-items: center; justify-content: center; background: var(--plu-yellow); color: #000; }
.plu-strip-icon svg { width: 48px; height: 48px; }
.plu-endorsement-strip > div:nth-child(2) { padding: 24px 30px; }
.plu-endorsement-strip h2 { margin: 0; font-size: 27px; line-height: 1.1; }
.plu-endorsement-strip p:not(.plu-eyebrow) { margin: 8px 0 0; color: rgba(255,255,255,.7); font-size: 13px; }
.plu-endorsement-strip .plu-button { margin-right: 30px; }
.plu-gs-row { display: grid; grid-template-columns: 310px 1fr 230px; gap: 0; margin-top: 28px; padding: 0 24px; }
.plu-gs-photo,
.plu-gs-message { min-height: 430px; border: 1px solid var(--plu-line); background: #fff; }
.plu-gs-message { padding: 50px 36px; background: #fff9c9; }
.plu-gs-message ul { display: flex; gap: 22px; flex-wrap: wrap; margin: 22px 0; padding: 0; list-style: none; }
.plu-gs-message li { position: relative; padding-left: 18px; font-size: 12px; font-weight: 900; }
.plu-gs-message li::before { content: ''; position: absolute; left: 0; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--plu-yellow); border: 2px solid var(--plu-red); }

@keyframes plu-endorsement-progress { to { transform: scaleX(1); } }
.plu-membership-row { display: grid; grid-template-columns: 300px 1fr; margin-top: 38px; padding: 0 24px; }
.plu-membership-intro { position: relative; background: #fffcee; border: 1px solid var(--plu-line); border-right: 0; padding: 36px 28px; overflow: hidden; }
.plu-membership-intro::before { content: ''; position: absolute; right: 0; top: 0; width: 86px; height: 82px; background: var(--plu-yellow); clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%); }
.plu-membership-intro::after { content: ''; position: absolute; right: 25px; top: 0; width: 3px; height: 88px; background: var(--plu-red); }
.plu-membership-intro h2 { position: relative; margin: 0 0 12px; font-size: 25px; line-height: 1.08; }
.plu-membership-intro p:not(.plu-eyebrow) { position: relative; font-size: 14px; color: rgba(0,0,0,.66); line-height: 1.6; }
.plu-action-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--plu-line); border-left: 1px solid var(--plu-line); }
.plu-action-grid a { min-height: 150px; padding: 28px; background: #fff; border-right: 1px solid var(--plu-line); border-bottom: 1px solid var(--plu-line); text-decoration: none; }
.plu-action-grid b { display: block; margin-bottom: 10px; font-size: 15px; }
.plu-action-grid span { color: rgba(0,0,0,.6); font-size: 13px; line-height: 1.5; }
.plu-programmes-section { padding: 38px 24px 70px; }
.plu-section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.plu-section-title-row h2 { margin: 0; font-size: 37px; line-height: 1.05; }
.plu-programmes-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.plu-programmes-grid article { min-height: 150px; background: #fff; border: 1px solid var(--plu-line); padding: 24px; box-shadow: 0 8px 18px rgba(0,0,0,.035); }
.plu-programmes-grid span { display: flex; width: 58px; height: 58px; align-items: center; justify-content: center; margin-bottom: 18px; background: var(--plu-yellow); color: #050505; }
.plu-programmes-grid h3 { margin: 0 0 10px; font-size: 18px; }
.plu-programmes-grid p { margin: 0; color: rgba(0,0,0,.62); font-size: 13px; line-height: 1.55; }
.plu-news-section { padding: 72px 24px; }
.plu-news-grid { display: grid; grid-template-columns: 1.25fr .95fr; gap: 22px; }
.plu-news-main { background: #fff; box-shadow: var(--plu-shadow); }
.plu-news-main img { width: 100%; height: 350px; object-fit: cover; }
.plu-news-main div { padding: 24px; }
.plu-news-main span { display: inline-flex; margin-bottom: 18px; padding: 8px 12px; background: var(--plu-yellow); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.plu-news-main h3 { margin: 0; font-size: 34px; line-height: 1.08; }
.plu-news-list { display: grid; gap: 18px; }
.plu-news-list article { display: grid; grid-template-columns: 120px 1fr; gap: 18px; align-items: center; min-height: 120px; padding: 14px; background: #fff; border: 1px solid var(--plu-line); }
.plu-news-list img { width: 120px; height: 82px; object-fit: cover; }
.plu-news-list b { font-size: 15px; line-height: 1.25; }
.plu-page-hero { padding: 86px 24px; background: #050505; color: #fff; border-bottom: 4px solid var(--plu-yellow); }
.plu-page-hero > div, .plu-page .plu-section { max-width: 1360px; margin: 0 auto; }
.plu-page-hero h1 { margin: 0; font-size: 58px; line-height: 1; }
.plu-page .plu-section { padding: 44px 24px; background: #fff; min-height: 360px; }
@media (max-width: 980px) {
  .plu-slider { height: 560px; }
  .plu-slide__content { top: 125px; left: 24px; width: calc(100% - 48px); }
  .plu-top-row, .plu-gs-row, .plu-membership-row, .plu-news-grid { grid-template-columns: 1fr; }
  .plu-chairman-card { grid-template-columns: 1fr; }
  .plu-person-photo { min-height: 340px; }
  .plu-endorsement-strip { grid-template-columns: 90px 1fr; }
  .plu-endorsement-strip .plu-button { grid-column: 2; margin: 0 30px 24px; width: fit-content; }
  .plu-programmes-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .plu-slider { height: 590px; }
  .plu-slide h1 { font-size: 44px; }
  .plu-slide p:not(.plu-eyebrow) { font-size: 17px; }
  .plu-slider__count { left: 24px; bottom: 26px; }
  .plu-slider__controls { right: 20px; bottom: 20px; }
  .plu-action-grid, .plu-programmes-grid, .plu-news-list article { grid-template-columns: 1fr; }
  .plu-section-title-row { align-items: start; flex-direction: column; }
  .plu-news-main h3 { font-size: 25px; }
}
.home .plu-slider { height: 640px; }
.home .plu-slide { transform: scale(1.025); transition: opacity 700ms ease, transform 1200ms ease; }
.home .plu-slide.is-active { transform: scale(1); }
.home .plu-slide__content { top: 150px; width: min(690px, calc(100% - 80px)); }
.home .plu-slide--text-bottom-left .plu-slide__content,
.home .plu-slide--text-bottom-right .plu-slide__content { top: auto; bottom: 92px; }
.home .plu-slide h1,
.home .plu-slide h2 { max-width: 680px; margin: 0; color: #fff; font-size: clamp(44px, 4.4vw, 64px); line-height: 1; font-weight: 900; letter-spacing: 0; }
.home .plu-slide p:not(.plu-eyebrow) { max-width: 590px; font-size: 18px; line-height: 1.5; }
.home .plu-slide-member-rail { position: absolute; right: 0; bottom: 0; left: 0; z-index: 4; display: block; min-height: 98px; border-top: 4px solid var(--plu-yellow); background: #fff; color: #050505; text-decoration: none; box-shadow: 0 -14px 34px rgba(0,0,0,.2); transition: border-color 180ms ease; }
.home .plu-slide-member-rail::after { position: absolute; right: 0; bottom: 0; left: 0; height: 4px; content: ''; background: var(--plu-red); }
.home .plu-slide-member-rail__inner { width: min(100%, 1440px); min-height: 94px; display: grid; grid-template-columns: minmax(330px,1.4fr) minmax(150px,.62fr) minmax(150px,.62fr) minmax(220px,.9fr); margin: 0 auto; }
.home .plu-slide-member-rail__lead { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 18px; align-content: center; padding: 14px max(24px, calc((100vw - 1360px) / 2 + 24px)); padding-right: 28px; background: #050505; color: #fff; }
.home .plu-slide-member-rail__lead > small { grid-column: 2; align-self: end; color: var(--plu-yellow); font-size: 10px; line-height: 1.2; font-weight: 900; text-transform: uppercase; }
.home .plu-slide-member-rail__lead > strong { grid-row: 1 / 3; align-self: center; min-width: 70px; color: var(--plu-yellow); font-size: 46px; line-height: .9; font-weight: 900; text-align: right; }
.home .plu-slide-member-rail__lead > span { grid-column: 2; align-self: start; margin-top: 4px; color: rgba(255,255,255,.82); font-size: 12px; line-height: 1.3; font-weight: 800; text-transform: uppercase; }
.home .plu-slide-member-rail__stat { display: grid; align-content: center; gap: 5px; padding: 16px 26px; border-right: 1px solid rgba(0,0,0,.12); background: #fff; }
.home .plu-slide-member-rail__stat strong { font-size: 28px; line-height: 1; font-weight: 900; }
.home .plu-slide-member-rail__stat small { color: rgba(0,0,0,.55); font-size: 10px; line-height: 1.35; font-weight: 850; text-transform: uppercase; }
.home .plu-slide-member-rail__action { display: grid; align-content: center; gap: 5px; padding: 15px max(28px, calc((100vw - 1360px) / 2 + 24px)) 18px 30px; background: var(--plu-yellow); }
.home .plu-slide-member-rail__action small { color: rgba(0,0,0,.56); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.home .plu-slide-member-rail__action strong { display: flex; align-items: center; gap: 12px; font-size: 18px; line-height: 1; font-weight: 900; text-transform: uppercase; }
.home .plu-slide-member-rail__action i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #050505; color: #fff; font-size: 17px; font-style: normal; transition: transform 180ms ease; }
.home .plu-slide-member-rail:hover .plu-slide-member-rail__action i,
.home .plu-slide-member-rail:focus-visible .plu-slide-member-rail__action i { transform: translateX(4px); }
.home .plu-slide-member-rail:focus-visible { outline: 3px solid #fff; outline-offset: -7px; }
.home .plu-slide__actions { align-items: center; gap: 20px; }
.home .plu-slide__secondary { display: inline-flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 2px solid rgba(255,255,255,.7); color: #fff; font-size: 12px; font-weight: 900; text-decoration: none; text-transform: uppercase; transition: border-color 180ms ease, color 180ms ease; }
.home .plu-slide__secondary:hover,
.home .plu-slide__secondary:focus-visible { border-color: var(--plu-yellow); color: var(--plu-yellow); }
.home .plu-slider__controls { gap: 6px; padding: 6px; backdrop-filter: blur(8px); }
.home .plu-slider__count { bottom: 126px; }
.home .plu-slider__controls { bottom: 114px; }
.home .plu-slider__controls button { width: 36px; height: 36px; }
.home .plu-slider__controls .plu-slider__pause { font-size: 13px; }
.home .plu-slider__controls button[data-plu-dot] { width: 18px; height: 4px; }
.home .plu-icon-box svg { width: 22px; height: 22px; }
.home .plu-slide--173 .plu-slide__shade,
.home .plu-slide--the-secretariat-at-work .plu-slide__shade { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.34) 38%, rgba(0,0,0,.04) 66%); }
.home .plu-slide--173 .plu-slide__content,
.home .plu-slide--the-secretariat-at-work .plu-slide__content { top: auto;
  right: max(54px, calc((100% - 1360px) / 2 + 24px));
  bottom: 88px;
  left: auto;
  width: min(520px, calc(46% - 24px)); }
.home .plu-top-row { grid-template-columns: minmax(0,1.4fr) minmax(280px,.6fr); padding-top: 40px; }
.home .plu-chairman-card { grid-template-columns: 320px minmax(0,1fr); min-height: 340px; }
.home .plu-person-copy { padding: 38px 32px; }
.home .plu-person-copy h2,
.home .plu-gs-message h2,
.home .plu-vision-card h2 { font-size: 30px; }
.home .plu-vision-card { min-height: 280px; padding: 42px 32px 30px; }
.home .plu-vision-card::before { width: 132px; height: 126px; }
.home .plu-endorsement-strip { min-height: 118px; }
.home .plu-strip-icon svg { width: 44px; height: 44px; }
.home .plu-gs-row { grid-template-columns: 290px minmax(0,1fr) minmax(320px,.85fr); margin-top: 26px; }
.home .plu-gs-photo,
.home .plu-gs-message { min-height: 390px; }
.home .plu-gs-photo img { height: 118%;
  max-width: none;
  object-position: 50% 100%;
  transform: translateY(-15%); }
.home .plu-gs-message { padding: 38px 32px; border-top: 4px solid var(--plu-yellow); background: #fff; }
.home .plu-gs-message ul { gap: 16px; margin: 18px 0; }
.home .plu-membership-row { display: block; margin-top: 34px; }
.home .plu-membership-intro { display: grid; grid-template-columns: minmax(280px,.75fr) minmax(320px,1.25fr); gap: 40px; align-items: end; padding: 24px 28px; border-right: 1px solid var(--plu-line); border-bottom: 0; }
.home .plu-membership-intro h2 { max-width: 420px; margin-bottom: 0; font-size: 27px; }
.home .plu-membership-intro > p { max-width: 590px; margin: 0; }
.home .plu-membership-intro::before { width: 74px; height: 70px; }
.home .plu-membership-intro::after { right: 22px; height: 74px; }
.home .plu-action-grid { grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); }
.home .plu-action-grid a { min-height: 126px; display: grid; grid-template-columns: 44px minmax(0,1fr) 18px; gap: 14px; align-items: center; padding: 22px 18px; transition: background 180ms ease, transform 180ms ease; }
.home .plu-action-grid a:hover,
.home .plu-action-grid a:focus-visible { position: relative; z-index: 1; background: #fffde1; transform: translateY(-3px); outline: 2px solid #111; outline-offset: -2px; }
.home .plu-action-grid i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #050505; color: var(--plu-yellow); }
.home .plu-action-grid i svg { width: 21px; height: 21px; }
.home .plu-action-grid span { min-width: 0; color: inherit; }
.home .plu-action-grid b { margin: 0; font-size: 14px; line-height: 1.25; }
.home .plu-action-grid small { display: block; margin-top: 7px; color: rgba(0,0,0,.58); font-size: 12px; line-height: 1.45; }
.home .plu-action-grid em { color: #050505; font-size: 18px; font-style: normal; font-weight: 900; }
.home .plu-programmes-section { padding-top: 34px; padding-bottom: 58px; }
.home .plu-programmes-grid { grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); }
.home .plu-programmes-grid article { position: relative; min-height: 174px; padding: 24px; overflow: hidden; border-top: 4px solid #050505; transition: transform 180ms ease, box-shadow 180ms ease; }
.home .plu-programmes-grid article:hover { transform: translateY(-4px); box-shadow: 0 18px 34px rgba(0,0,0,.08); }
.home .plu-programmes-grid header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.home .plu-programmes-grid header span { margin: 0; }
.home .plu-programmes-grid header span svg { width: 30px; height: 30px; }
.home .plu-programmes-grid header b { color: rgba(0,0,0,.16); font-size: 32px; line-height: 1; }
.home .plu-home-news { padding: 52px 0; }
.home .plu-home-news__media { min-height: 340px; }
.home .plu-home-news__content { padding: 24px; }
.home .plu-home-news__content h3 { font-size: 32px; }
.home .plu-home-news__content > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.home .plu-home-news__selectors { gap: 10px; }
.home .plu-home-news__selectors button { min-height: 82px; padding: 10px; }
@media (max-width: 980px) {
  .home .plu-slider { height: 560px; }
  .home .plu-slide__content { top: 116px; }
  .home .plu-slide--text-right .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content { right: 24px; left: auto; }
  .home .plu-slide--text-bottom-left .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content { top: auto; bottom: 82px; }
  .home .plu-top-row { grid-template-columns: 1fr; }
  .home .plu-chairman-card { grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); }
  .home .plu-gs-row { grid-template-columns: 280px minmax(0,1fr); }
  .home .plu-membership-intro { grid-template-columns: 1fr; gap: 10px; }
  .home .plu-action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .home .plu-slider { height: 520px; }
  .home .plu-slide__content { top: 76px; left: 20px; width: calc(100% - 40px); }
  .home .plu-slide--text-right .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content,
  .home .plu-slide--text-bottom-left .plu-slide__content,
  .home .plu-slide--text-center .plu-slide__content { top: auto; right: 20px; bottom: 74px; left: 20px; width: calc(100% - 40px); text-align: left; transform: none; }
  .home .plu-slide--text-center .plu-hero-rule { margin-left: 0; margin-right: 0; }
  .home .plu-slide--text-center p:not(.plu-eyebrow) { margin-left: 0; margin-right: 0; }
  .home .plu-slide--text-center .plu-slide__actions { justify-content: flex-start; }
  .home .plu-slide--text-right .plu-slide__shade,
  .home .plu-slide--text-bottom-right .plu-slide__shade,
  .home .plu-slide--text-bottom-left .plu-slide__shade,
  .home .plu-slide--text-center .plu-slide__shade { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.34) 48%, rgba(0,0,0,.06)); }
  .home .plu-hero-rule { width: 54px; height: 4px; margin-bottom: 12px; }
  .home .plu-slide h1,
  .home .plu-slide h2 { font-size: 38px; line-height: 1.03; }
  .home .plu-slide p:not(.plu-eyebrow) { display: -webkit-box; max-width: 340px; margin-top: 14px; overflow: hidden; font-size: 15px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .home .plu-slide__actions { gap: 16px; margin-top: 20px; }
  .home .plu-button { min-height: 40px; padding: 0 17px; font-size: 11px; }
  .home .plu-slide__secondary { font-size: 11px; }
  .home .plu-slider__count { left: 20px; bottom: 20px; }
  .home .plu-slider__count i { width: 44px; }
  .home .plu-slider__controls { right: 14px; bottom: 14px; }
  .home .plu-slider__controls button { width: 32px; height: 32px; }
  .home .plu-top-row { gap: 14px; padding: 28px 16px 16px; }
  .home .plu-chairman-card { grid-template-columns: 1fr; min-height: 0; }
  .home .plu-chairman-card .plu-person-photo { height: 360px; min-height: 0; }
  .home .plu-person-copy { padding: 28px 22px; }
  .home .plu-person-copy h2,
  .home .plu-gs-message h2,
  .home .plu-vision-card h2 { font-size: 27px; }
  .home .plu-person-copy p:nth-of-type(2) { display: none; }
  .home .plu-vision-card { min-height: 0; padding: 30px 24px 26px; }
  .home .plu-vision-card::before { width: 102px; height: 96px; }
  .home .plu-endorsement-strip { grid-template-columns: 64px 1fr; min-height: 0; margin: 0 16px; }
  .home .plu-endorsement-strip::after { left: 64px; }
  .home .plu-strip-icon svg { width: 34px; height: 34px; }
  .home .plu-endorsement-strip > div:nth-child(2) { padding: 22px 18px 12px; }
  .home .plu-endorsement-strip h2 { font-size: 23px; }
  .home .plu-endorsement-strip .plu-button { margin: 0 18px 22px; }
  .home .plu-gs-row { grid-template-columns: 1fr; margin-top: 20px; padding: 0 16px; }
  .home .plu-gs-photo { height: 360px; min-height: 0; }
  .home .plu-gs-message { min-height: 0; padding: 28px 22px; }
  .home .plu-gs-message > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
  .home .plu-gs-message ul { display: grid; gap: 9px; margin: 16px 0; }
  .home .plu-membership-row { margin-top: 28px; padding: 0 16px; }
  .home .plu-membership-intro { display: block; padding: 24px 22px; }
  .home .plu-membership-intro h2 { font-size: 25px; }
  .home .plu-membership-intro > p { margin-top: 12px; }
  .home .plu-action-grid { grid-template-columns: 1fr; }
  .home .plu-action-grid a { min-height: 94px; padding: 17px 16px; }
  .home .plu-action-grid i { width: 40px; height: 40px; }
  .home .plu-programmes-section { padding: 30px 16px 46px; }
  .home .plu-section-title-row h2 { font-size: 30px; }
  .home .plu-programmes-grid { grid-template-columns: 1fr; gap: 12px; }
  .home .plu-programmes-grid article { min-height: 142px; padding: 20px; }
  .home .plu-programmes-grid header { margin-bottom: 14px; }
  .home .plu-home-news { padding: 40px 0; }
  .home .plu-home-news__inner { width: calc(100% - 32px); }
  .home .plu-home-news__header { gap: 14px; margin-bottom: 18px; }
  .home .plu-home-news__header h2 { font-size: 34px; }
  .home .plu-home-news__media { min-height: 240px; }
  .home .plu-home-news__content { padding: 20px; }
  .home .plu-home-news__content h3 { font-size: 25px; }
  .home .plu-home-news__content > p { font-size: 14px; line-height: 1.6; -webkit-line-clamp: 3; }
  .home .plu-home-news__selectors { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .home .plu-home-news__selectors button { grid-template-columns: 52px minmax(0,1fr); gap: 8px; min-height: 76px; padding: 8px; }
  .home .plu-home-news__selectors img { width: 52px; height: 58px; }
  .home .plu-home-news__selectors strong { font-size: 11px; }
  .home .plu-home-news__selectors time { margin-top: 5px; font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .plu-endorsement-strip::after { animation: none; transform: scaleX(1); }
}
.single-plu_news .plu-news-article { padding-bottom: 0; background: #f3f4f1; }
.single-plu_news .plu-news-article-hero { height: clamp(360px, 56vw, 700px);
  min-height: 0;
  align-items: stretch; }
.single-plu_news .plu-news-article-hero > img { object-position: var(--plu-news-focus-x, 50%) var(--plu-news-focus-y, 32%); }
.single-plu_news .plu-news-article-intro { position: relative; z-index: 2; padding: 44px 0 46px; background: #0a0a0a; color: #fff; }
.single-plu_news .plu-news-article-intro::before { position: absolute; inset: 0 auto 0 0; width: 7px; background: #fff200; content: ""; }
.single-plu_news .plu-news-article-hero__content { max-width: 1080px; padding-bottom: 0; }
.plu-news-article-back { display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
  color: rgba(255,255,255,.82);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase; }
.plu-news-article-back:hover { color: #fff200; }
.single-plu_news .plu-news-article-hero__content > .plu-news-article-category { width: fit-content;
  margin: 0 0 14px;
  padding: 6px 10px;
  background: #fff200;
  color: #050505;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase; }
.single-plu_news .plu-news-article-hero h1 { max-width: 1040px;
  margin-bottom: 17px;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1.02;
  letter-spacing: 0; }
.plu-news-article-deck { max-width: 820px;
  margin: 0 0 22px;
  color: rgba(255,255,255,.82);
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.55; }
.single-plu_news .plu-news-article-meta { flex-direction: row; flex-wrap: wrap; gap: 22px 50px; }
.single-plu_news .plu-news-article-meta span,
.single-plu_news .plu-news-article-meta time { position: relative; font-size: 13px; font-weight: 700; }
.single-plu_news .plu-news-article-meta span + time::before { position: absolute;
  top: 3px;
  left: -26px;
  width: 1px;
  height: 30px;
  background: rgba(255,255,255,.3);
  content: ""; }
.single-plu_news .plu-news-article-body { position: relative;
  z-index: 2;
  width: calc(100% - 48px);
  max-width: 1040px;
  margin: 0 auto 72px;
  padding: 58px 64px 68px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(20,24,22,.08);
  color: #202321;
  font-family: 'Geist PLU', Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.82; }
.plu-news-feature-stage .plu-news-feature { min-height: 0;
  display: grid;
  grid-template-rows: minmax(360px, 54vh) auto;
  background: #fff;
  color: #050505; }
.plu-news-feature-stage .plu-news-feature__image { position: relative; inset: auto; min-height: 0; overflow: hidden; }
.plu-news-feature-stage .plu-news-feature__image img { position: absolute; inset: 0; }
.plu-news-feature-stage .plu-news-feature__image img,
.plu-news-card__image img { object-position: var(--plu-news-focus-x, 50%) var(--plu-news-focus-y, 32%); }
.plu-news-feature-stage .plu-news-feature__shade { display: none; }
.plu-news-feature-stage .plu-news-feature__content { position: relative;
  inset: auto;
  padding: 30px 32px 34px;
  background: #fff;
  color: #050505; }
.plu-news-feature-stage .plu-news-feature .plu-news-meta { color: rgba(0,0,0,.58); }
.plu-news-feature-stage .plu-news-feature__content > p { color: rgba(0,0,0,.68); }
.plu-news-feature-stage .plu-news-feature .plu-news-read--yellow { color: #050505; }
.single-plu_news .plu-news-article-body p { margin: 0 0 1.45em; }
.single-plu_news .plu-news-article-body h2,
.single-plu_news .plu-news-article-body h3,
.single-plu_news .plu-news-article-body h4 { margin: 1.75em 0 .65em;
  color: #0d0e0d;
  font-family: 'Geist PLU', Arial, Helvetica, sans-serif;
  line-height: 1.18; }
.single-plu_news .plu-news-article-body h2 { font-size: 32px; }
.single-plu_news .plu-news-article-body h3 { font-size: 25px; }
.single-plu_news .plu-news-article-body ul,
.single-plu_news .plu-news-article-body ol { margin: 0 0 1.5em; padding-left: 1.35em; }
.single-plu_news .plu-news-article-body li { margin-bottom: .55em; padding-left: .2em; }
.single-plu_news .plu-news-article-body a { color: #9e141a; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.single-plu_news .plu-news-article-body blockquote { position: relative;
  margin: 2.2em 0;
  padding: 28px 30px 28px 35px;
  border: 0;
  border-left: 5px solid #fff200;
  background: #f4f4f0;
  color: #101110;
  font-size: 23px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.48; }
.single-plu_news .plu-news-article-body blockquote p:last-child { margin-bottom: 0; }
.single-plu_news .plu-news-article-body img,
.single-plu_news .plu-news-article-body figure,
.single-plu_news .plu-news-article-body .wp-caption { width: 100% !important;
  max-width: 100% !important; }
.single-plu_news .plu-news-article-body img { display: block;
  float: none !important;
  height: auto !important;
  margin: 2em 0;
  object-fit: contain; }
.single-plu_news .plu-news-article-body figure,
.single-plu_news .plu-news-article-body .wp-caption { margin: 2.15em 0; }
.single-plu_news .plu-news-article-body figure img,
.single-plu_news .plu-news-article-body .wp-caption img { margin: 0; }
.single-plu_news .plu-news-article-body figcaption,
.single-plu_news .plu-news-article-body .wp-caption-text { margin: 0;
  padding: 10px 12px 0;
  border-top: 3px solid #fff200;
  color: #666b67;
  font-family: 'Geist PLU', Arial, Helvetica, sans-serif;
  font-size: 12px;
  line-height: 1.5; }
.single-plu_news .plu-news-related { padding: 58px 0 72px; background: #fff; }
.single-plu_news .plu-news-related header { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.single-plu_news .plu-news-related header h2 { margin: 7px 0 0; font-size: 38px; }
@media (max-width: 700px) {
  .single-plu_news .plu-news-article-hero { height: clamp(250px, 68vw, 390px); min-height: 0; }
  .single-plu_news .plu-news-article-intro { padding: 30px 0 32px; }
  .single-plu_news .plu-news-article-hero__content { padding-bottom: 0; }
  .single-plu_news .plu-news-article-hero h1 { font-size: 32px; line-height: 1.12; }
  .single-plu_news .plu-news-article-deck { font-size: 16px; }
  .single-plu_news .plu-news-article-meta { gap: 18px 34px; }
  .single-plu_news .plu-news-article-meta span + time::before { left: -18px; }
  .single-plu_news .plu-news-article-body { width: 100%;
    margin: 0 auto 42px;
    padding: 38px 20px 48px;
    box-shadow: none;
    font-size: 17px;
    line-height: 1.76; }
  .single-plu_news .plu-news-article-body h2 { font-size: 27px; }
  .single-plu_news .plu-news-article-body h3 { font-size: 22px; }
  .single-plu_news .plu-news-article-body blockquote { padding: 22px 20px; font-size: 20px; }
  .single-plu_news .plu-news-related { padding: 44px 0 54px; }
  .single-plu_news .plu-news-related header h2 { font-size: 30px; }
  .plu-news-feature-stage .plu-news-feature { grid-template-rows: auto auto; }
  .plu-news-feature-stage .plu-news-feature__image { aspect-ratio: 16 / 10; }
  .plu-news-feature-stage .plu-news-feature__content { padding: 24px 20px 28px; }
}
.plu-message-page { background: #f5f5f1; }
.plu-message-hero { display: grid; min-height: 330px; place-items: center; padding: 64px 24px 72px; border-bottom: 4px solid var(--plu-yellow); background: #080808; color: #fff; text-align: center; }
.plu-message-hero > div { width: min(940px, 100%); }
.plu-message-hero .plu-eyebrow { margin-bottom: 18px; color: var(--plu-yellow); }
.plu-message-hero h1 { max-width: 920px; margin: 0 auto; font-size: clamp(38px, 5.4vw, 72px); font-weight: 800; line-height: 1.02; text-wrap: balance; }
.plu-message-hero span { display: block; width: 72px; height: 3px; margin: 30px auto 0; background: var(--plu-red); }
.plu-message { position: relative; width: min(860px, calc(100% - 40px)); margin: 0 auto; padding: 72px 76px 82px; background: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.07); }
.plu-message__mark { position: absolute; top: 34px; left: 36px; color: var(--plu-yellow); font-family: Georgia, serif; font-size: 108px; font-weight: 700; line-height: 1; opacity: .42; pointer-events: none; }
.plu-message__body { position: relative; max-width: 680px; margin: 0 auto; color: #242424; }
.plu-message__body p { margin: 0 0 24px; font-family: 'Geist PLU', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.85; }
.plu-message__body :where(p, h2, h3, h4, li, blockquote, strong, em, a, span) { font-family: 'Geist PLU', Arial, Helvetica, sans-serif !important; }
.plu-message__body .plu-message__salutation { margin-bottom: 34px; font-family: inherit; font-size: 15px; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.plu-message__body .plu-message__opening { margin-bottom: 30px; font-size: 23px; line-height: 1.55; text-align: center; }
.plu-message__pullquote { position: relative; width: min(760px, calc(100% + 80px)); margin: 48px -40px !important; padding: 34px 40px 30px; border-top: 1px solid #d7d7d0; border-bottom: 1px solid #d7d7d0; color: #111; font-size: 26px !important; font-weight: 700; line-height: 1.48 !important; text-align: center; }
.plu-message__pullquote::before { content: '\201C'; display: block; height: 28px; color: var(--plu-red); font-family: Georgia, serif; font-size: 58px; line-height: .9; }
.plu-message__pullquote::after { content: '\201D'; display: block; height: 20px; margin-top: 12px; color: var(--plu-red); font-family: Georgia, serif; font-size: 58px; line-height: .72; }
.plu-message__body p:nth-last-child(3) { margin-top: 42px; padding-top: 25px; border-top: 3px solid var(--plu-yellow); }
.plu-message__body p:last-child { margin-bottom: 0; }
.plu-tracker-v3 .plu-tracker-hero.plu-banner-media::before { inset: 0;
  height: auto;
  background-image: var(--plu-banner-image);
  background-position: var(--plu-banner-x, 50%) var(--plu-banner-y, 50%);
  background-size: cover;
  background-repeat: no-repeat;
  transform: scale(1.012); }
.plu-tracker-v3 .plu-tracker-hero.plu-banner-media::after { inset: 0;
  height: auto;
  background: linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.82) 45%, rgba(0,0,0,.42) 78%, rgba(0,0,0,.62) 100%), linear-gradient(var(--plu-yellow), var(--plu-yellow)) top / 100% 5px no-repeat; }
.plu-tracker-v3 .plu-tracker-hero.plu-banner-media.plu-banner-overlay--light::after { background: linear-gradient(90deg, rgba(0,0,0,.84) 0%, rgba(0,0,0,.66) 45%, rgba(0,0,0,.25) 78%, rgba(0,0,0,.42) 100%), linear-gradient(var(--plu-yellow), var(--plu-yellow)) top / 100% 5px no-repeat; }
.plu-tracker-v3 .plu-tracker-hero.plu-banner-media.plu-banner-overlay--strong::after { background: linear-gradient(90deg, rgba(0,0,0,.99) 0%, rgba(0,0,0,.9) 48%, rgba(0,0,0,.58) 80%, rgba(0,0,0,.74) 100%), linear-gradient(var(--plu-yellow), var(--plu-yellow)) top / 100% 5px no-repeat; }
@media (max-width: 700px) {
  .plu-message-hero { min-height: 250px; padding: 48px 20px 54px; }
  .plu-message-hero h1 { font-size: clamp(34px, 11vw, 48px); }
  .plu-message { width: 100%; padding: 54px 24px 62px; box-shadow: none; }
  .plu-message__mark { top: 24px; left: 12px; font-size: 82px; }
  .plu-message__body p { font-size: 17px; line-height: 1.75; }
  .plu-message__body .plu-message__opening { font-size: 21px; }
  .plu-message__pullquote { width: 100%; margin: 38px 0 !important; padding: 28px 8px 26px; font-size: 22px !important; }
}
@media (max-width: 760px) {
  .plu-tracker-v3 .plu-tracker-hero.plu-banner-media::before,
  .plu-tracker-v3 .plu-tracker-hero.plu-banner-media::after { top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    height: 240px;
    transform: none; }
  .plu-tracker-v3 .plu-tracker-hero.plu-banner-media::after { background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.34)), linear-gradient(var(--plu-yellow), var(--plu-yellow)) top / 100% 5px no-repeat; }
}
.plu-events-hero.plu-banner-media { min-height: 470px; display: flex; align-items: center; }
.plu-events-hero.plu-banner-media::before { background-position: var(--plu-banner-x,50%) var(--plu-banner-y,50%); }
.plu-events-hero.plu-banner-media::after { background: linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.62) 54%,rgba(0,0,0,.4) 100%); }
.plu-events-hero.plu-banner-media.plu-banner-overlay--light::after { background: linear-gradient(90deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.48) 54%,rgba(0,0,0,.24) 100%); }
.plu-events-hero.plu-banner-media.plu-banner-overlay--strong::after { background: linear-gradient(90deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.78) 58%,rgba(0,0,0,.58) 100%); }
.plu-events-hero.plu-banner-media .plu-events-hero__layout { position: relative; z-index: 2; }
.plu-events-hero.plu-banner-media aside { background: rgba(0,0,0,.48); }
@media(max-width:700px) {
  .plu-events-hero.plu-banner-media { min-height:0;display:block;padding:280px 0 0;background:#050505 }
  .plu-events-hero.plu-banner-media::before { inset:0 0 auto;height:280px;background-size:cover;transform:none }
  .plu-events-hero.plu-banner-media::after,.plu-events-hero.plu-banner-media.plu-banner-overlay--light::after,.plu-events-hero.plu-banner-media.plu-banner-overlay--strong::after { inset:0 0 auto;width:auto;height:280px;border:0;border-radius:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.28));box-shadow:none }
  .plu-events-hero.plu-banner-media .plu-events-hero__layout { width:100%;max-width:none;display:grid;gap:28px;padding:32px 20px 40px;box-sizing:border-box;background:#050505 }
  .plu-events-hero.plu-banner-media aside { max-width:none;margin:0;background:rgba(255,255,255,.07) }
}
@media (prefers-reduced-motion: reduce) {
  .home .plu-slide,
  .home .plu-home-news__slide,
  .home .plu-home-news__media img { transition: none; transform: none; }
}
.plu-news-controls { display: flex; align-items: center; gap: 8px; }
.plu-news-controls button { width: 38px; height: 38px; border: 1px solid var(--plu-line); background: #fff; color: #000; font-size: 24px; font-weight: 900; cursor: pointer; }
.plu-news-stage { position: relative; min-height: 570px; }
.plu-news-panel { position: absolute; inset: 0; opacity: 0; transform: translateX(18px); pointer-events: none; transition: opacity 360ms ease, transform 360ms ease; }
.plu-news-panel.is-active { opacity: 1; transform: translateX(0); pointer-events: auto; }
.plu-news-list a { display: grid; grid-template-columns: 120px 1fr; gap: 18px; align-items: center; min-height: 120px; padding: 14px; background: #fff; border: 1px solid var(--plu-line); text-decoration: none; }
@media (max-width: 980px) {
  .plu-news-stage { min-height: 980px; }
}
@media (max-width: 620px) {
  .plu-news-controls { flex-wrap: wrap; }
  .plu-news-stage { min-height: 1180px; }
  .plu-news-list a { grid-template-columns: 1fr; }
}
.plu-news-archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 760px) {
  .plu-news-archive-grid { grid-template-columns: 1fr; }
}
.plu-page-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.plu-button--ghost-dark { border-color: rgba(255,255,255,.34); color: #fff; background: transparent; }
.plu-membership-hero.has-panel-photo .plu-button--ghost-dark { border-color: rgba(0,0,0,.42); color: #111; background: rgba(255,255,255,.34); backdrop-filter: blur(5px); }
.plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(2) { border-color: #050505; background: var(--plu-yellow); color: #050505; box-shadow: none; }
.plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(2):hover, .plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(2):focus { background: #fff; color: #050505; }
.plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(3) { border-color: var(--plu-red); background: var(--plu-red); color: #fff; box-shadow: 0 10px 24px rgba(180,0,0,.2); }
.plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(3):hover, .plu-membership-hero.has-panel-photo .plu-page-actions .plu-button:nth-child(3):focus { border-color: #fff; background: #fff; color: var(--plu-red); }
.plu-membership-hero.has-panel-photo .plu-button--yellow { border-color: #050505; background: #050505; color: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.24); }
.plu-membership-hero.has-panel-photo .plu-button--yellow:hover, .plu-membership-hero.has-panel-photo .plu-button--yellow:focus { border-color: #050505; background: #fff; color: #050505; }
.plu-designed-content { background: #fff; border-top: 4px solid var(--plu-yellow); }
.plu-designed-content { max-width: 1360px; margin: 0 auto 70px; padding: 42px 24px; border: 1px solid var(--plu-line); border-top: 4px solid var(--plu-yellow); box-shadow: var(--plu-shadow); }
.plu-designed-content .plu-section-title-row h2 { font-size: 34px; }
.plu-designed-content .plu-form { margin-top: 18px; }
.plu-join-page .plu-designed-content { max-width: 980px; padding: 0; border-top: 4px solid #050505; background: #fff; }
.plu-conduct { display: flex; gap: 10px; align-items: start; color: #667085; font-size: 14px; }
.plu-join-page .plu-designed-content { margin-top: 58px; margin-bottom: 76px; }
.plu-leadership-hero { min-height: 260px; display: grid; grid-template-columns: 1fr 360px; gap: 40px; align-items: end; padding: 70px max(56px, calc((100% - 1360px) / 2 + 24px)) 42px; background: var(--plu-yellow); border-bottom: 4px solid #050505; }
.plu-leadership-hero h1 { margin: 0; font-size: 42px; line-height: 1.05; font-weight: 900; }
.plu-leadership-hero p:not(.plu-eyebrow) { color: rgba(0,0,0,.65); max-width: 680px; }
.plu-leadership-hero aside { background: #050505; color: #fff; padding: 24px; border-top: 4px solid var(--plu-red); }
.plu-leadership-hero aside span { color: #fff; font-size: 11px; text-transform: uppercase; }
.plu-leadership-hero aside b { display:block; color: var(--plu-yellow); font-size: 26px; }
.plu-leadership-hero aside small { color: rgba(255,255,255,.72); }
.plu-leadership-content { max-width: 1360px; margin: 0 auto; padding: 42px 24px 90px; }
.plu-count-badge { align-self: center; background:#050505; color:var(--plu-yellow); padding:10px 16px; text-transform:uppercase; font-size:12px; }
.plu-featured-leader { display:grid; grid-template-columns: 450px 1fr; background:#fff; border:1px solid var(--plu-line); box-shadow:var(--plu-shadow); overflow:hidden; margin:24px 0 36px; }
.plu-featured-leader img { width:100%; height:420px; object-fit:cover; object-position: top center; border-right:6px solid var(--plu-yellow); }
.plu-featured-leader div { padding:70px 44px; }
.plu-featured-leader h2 { margin:0 0 8px; font-size:34px; line-height:1.05; }
.plu-featured-leader strong { display:block; margin-bottom:18px; }
.plu-featured-leader p:not(.plu-eyebrow) { color:rgba(0,0,0,.66); line-height:1.7; }
.plu-leader-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.plu-leader-card { background:#fff; border:1px solid var(--plu-line); border-radius:6px; overflow:hidden; box-shadow:0 8px 18px rgba(0,0,0,.04); }
.plu-leader-card img { width:100%; height:280px; object-fit:cover; object-position: top center; border-bottom:5px solid var(--plu-yellow); }
.plu-leader-card div { padding:22px; }
.plu-leader-card h3 { margin:0 0 6px; font-size:21px; line-height:1.1; }
.plu-leader-card strong { display:block; margin-bottom:12px; font-size:13px; }
.plu-leader-card p:not(.plu-eyebrow) { color:rgba(0,0,0,.62); font-size:13px; line-height:1.55; }
.plu-structure-hero { min-height:620px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; padding:70px max(56px, calc((100% - 1360px) / 2 + 24px)); background:#050505; color:#fff; border-bottom:4px solid var(--plu-yellow); overflow:hidden; }
.plu-structure-hero h1 { margin:0; max-width:620px; font-size:clamp(58px,7vw,86px); line-height:.98; font-weight:900; }
.plu-structure-hero p:not(.plu-eyebrow) { max-width:590px; color:rgba(255,255,255,.72); font-size:18px; line-height:1.7; }
.plu-structure-orbit { position:relative; min-height:440px; display:flex; align-items:center; justify-content:center; }
.plu-structure-orbit::before { content:''; position:absolute; width:390px; height:390px; border:1px solid rgba(255,242,0,.34); border-radius:50%; }
.plu-structure-orbit img { width:210px; height:210px; object-fit:contain; padding:26px; border-radius:50%; background:#070707; z-index:2; }
.plu-structure-chain { max-width:1360px; margin:0 auto; padding:62px 24px; display:grid; grid-template-columns:.85fr .75fr .7fr; gap:28px; }
.plu-structure-chain h2 { margin:0; font-size:42px; line-height:1.15; }
.plu-structure-chain p { color:rgba(0,0,0,.62); line-height:1.7; }
.plu-level-list { display:grid; gap:12px; }
.plu-level-list button { min-height:62px; border:1px solid var(--plu-line); background:#fff; text-align:left; padding:10px 18px; font-weight:900; box-shadow:0 6px 16px rgba(0,0,0,.04); }
.plu-level-list button:first-child { background:#050505; color:#fff; }
.plu-level-list small { display:block; color:#999; font-weight:400; }
.plu-structure-chain aside { background:#fff; padding:34px; box-shadow:var(--plu-shadow); }
.plu-structure-chain aside b { display:inline-flex; float:right; background:var(--plu-yellow); padding:14px; font-size:24px; }
.plu-structure-chain aside h3 { font-size:29px; margin:64px 0 20px; }
.plu-movement-row,.plu-positions-row,.plu-interest-row,.plu-coordination-row { max-width:1360px; margin:0 auto 56px; padding:36px; background:#fff; box-shadow:var(--plu-shadow); }
.plu-movement-row h2,.plu-positions-row h2,.plu-interest-row h2,.plu-coordination-row h2 { margin:0; font-size:38px; line-height:1.12; }
.plu-move-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:28px; }
.plu-move-cards span { background:#fffdf0; border:1px solid var(--plu-line); padding:20px; font-weight:900; }
.plu-positions-row article,.plu-coordination-row { background:#050505; color:#fff; }
.plu-positions-row div,.plu-interest-row div,.plu-coordination-row div { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.plu-positions-row span,.plu-interest-row span { background:#fff; border:1px solid var(--plu-line); padding:18px; font-weight:900; color:#000; }
.plu-interest-row { display:grid; grid-template-columns:.9fr 1.1fr; gap:24px; }
.plu-coordination-row { display:grid; grid-template-columns:.9fr 1.1fr; gap:24px; }
.plu-coordination-row p { color:rgba(255,255,255,.68); }
.plu-coordination-row span { background:#181818; border:1px solid #333; padding:18px; font-weight:900; color:#fff; }
.plu-coordination-row b { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; margin-right:14px; background:var(--plu-yellow); color:#000; }
@media(max-width:980px) {
  .plu-leadership-hero,.plu-featured-leader,.plu-structure-hero,.plu-structure-chain,.plu-positions-row,.plu-interest-row,.plu-coordination-row { grid-template-columns:1fr }
  .plu-leader-grid { grid-template-columns:repeat(2,1fr) }
  .plu-move-cards { grid-template-columns:1fr 1fr }
  .plu-structure-orbit { min-height:300px }
}
@media(max-width:620px) {
  .plu-leader-grid,.plu-move-cards,.plu-positions-row div,.plu-interest-row div,.plu-coordination-row div { grid-template-columns:1fr }
  .plu-leadership-hero h1,.plu-structure-hero h1 { font-size:46px }
}
.plu-leadership-hero { max-width: none; width: 100%; padding-left: max(42px, calc((100% - 1360px) / 2 + 24px)); padding-right: max(42px, calc((100% - 1360px) / 2 + 24px)); }
.plu-leadership-content { max-width: 1360px; }
.plu-featured-leader { grid-template-columns: 480px 1fr; }
.plu-featured-leader img { height: 440px; object-position: top center; }
.plu-leader-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plu-leader-card img { height: 300px; object-fit: cover; object-position: top center; }
.plu-leader-card p:not(.plu-eyebrow) { font-size: 13.5px; line-height: 1.62; }
.plu-main, .plu-page, .plu-membership-page, .plu-join-page, .plu-verify-page, .plu-officers-page, .plu-leadership-page, .plu-structure-page { width: 100%; }
@media (min-width: 1500px) {
  .plu-leadership-content, .plu-top-row, .plu-endorsement-strip, .plu-gs-row, .plu-membership-row, .plu-programmes-section, .plu-news-section { max-width: 1420px; }
}
@media(max-width:980px) {
  .plu-featured-leader { grid-template-columns:1fr; }
  .plu-leader-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media(max-width:620px) {
  .plu-leader-grid { grid-template-columns:1fr; }
}
.plu-about-page, .plu-what-page { width:100%; padding-bottom:96px; overflow:hidden; background:#f4f4f1; color:#050505; font-family:'Geist PLU',Arial,Helvetica,sans-serif; }
.plu-about-page *, .plu-about-page *::before, .plu-about-page *::after, .plu-what-page *, .plu-what-page *::before, .plu-what-page *::after { box-sizing:border-box; }
.plu-about-page h1,.plu-about-page h2,.plu-about-page h3,.plu-about-page p,.plu-what-page h1,.plu-what-page h2,.plu-what-page h3,.plu-what-page p { letter-spacing:0; }
.plu-about-hero,.plu-what-hero { padding-top:56px; background:var(--plu-yellow); border-bottom:4px solid #050505; }
.plu-about-hero__inner,.plu-what-hero__inner { width:100%; max-width:1376px; min-height:330px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:32px; align-items:stretch; }
.plu-about-hero__inner>div,.plu-what-hero__inner>div { display:flex; flex-direction:column; justify-content:flex-end; padding-bottom:40px; }
.plu-about-hero .plu-eyebrow,.plu-what-hero .plu-eyebrow { color:var(--plu-red); font-size:12px; font-weight:700; }
.plu-about-hero h1,.plu-what-hero h1 { max-width:800px; margin:16px 0 0; font-size:60px; line-height:1.1; font-weight:900; }
.plu-about-hero__inner>div>p:last-child,.plu-what-hero__inner>div>p:last-child { max-width:672px; margin:20px 0 0; color:rgba(0,0,0,.7); font-size:18px; line-height:1.55; }
.plu-about-hero aside,.plu-what-hero aside { align-self:stretch; padding:28px; color:#fff; background:#050505; border-left:4px solid #050505; }
.plu-about-hero.plu-banner-media { min-height: 440px; }
.plu-about-hero.plu-banner-media::before { background-size: cover; background-color: #111; }
.plu-about-hero.plu-banner-media::after { background: linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.28) 42%, rgba(0,0,0,.16) 100%); }
.plu-about-hero.plu-banner-media .plu-about-hero__inner { min-height: 420px; }
.plu-about-hero.plu-banner-media .plu-about-hero__inner>div { max-width: 760px; padding: 32px 34px 42px; align-self: end; background: linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,.12)); border-left: 5px solid var(--plu-yellow); }
.plu-about-hero.plu-banner-media h1 { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.42); }
.plu-about-hero.plu-banner-media .plu-about-hero__inner>div>p:last-child { color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.plu-about-hero.plu-banner-media aside { background: transparent; border-left: 0; box-shadow: none; backdrop-filter: none; }
.plu-about-hero.plu-banner-media aside h2 { color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.52); }
.plu-about-hero.plu-banner-media aside>p:last-of-type { color: rgba(255,255,255,.92); text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.plu-about-hero.plu-banner-media aside>div { border-color: rgba(255,242,0,.42); background: rgba(0,0,0,.14); }
.plu-about-hero aside .plu-eyebrow,.plu-what-hero aside .plu-eyebrow { color:var(--plu-yellow); }
.plu-about-hero aside h2,.plu-what-hero aside h2 { margin:16px 0 0; font-size:24px; line-height:1.25; font-weight:900; }
.plu-about-hero aside>p:last-of-type,.plu-what-hero aside>p:last-child { max-width:390px; margin:16px 0 0; color:rgba(255,255,255,.7); font-size:14px; line-height:1.55; }
.plu-about-hero aside>div { margin-top:28px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.2); }
.plu-about-hero aside span { padding:12px 8px; color:var(--plu-yellow); border-right:1px solid rgba(255,255,255,.2); text-align:center; font-size:12px; font-weight:700; text-transform:uppercase; }
.plu-about-hero aside span:last-child { border-right:0; }
.plu-about-content,.plu-what-content { width:100%; max-width:1376px; margin:0 auto; padding:56px 32px 0; }
.plu-about-purpose,.plu-about-standards,.plu-about-panel,.plu-about-cta { border:1px solid rgba(0,0,0,.1); border-radius:28px; box-shadow:0 10px 30px rgba(0,0,0,.04); }
.plu-about-vision { position:relative; min-height:190px; display:grid; grid-template-columns:minmax(230px,.42fr) minmax(0,1.58fr); align-items:center; overflow:hidden; border:1px solid rgba(0,0,0,.14); border-left:8px solid var(--plu-yellow); background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.05); }
.plu-about-vision__label { height:100%; display:flex; align-items:center; gap:18px; padding:34px 30px; border-right:1px solid rgba(0,0,0,.1); background:#f6f6f2; }
.plu-about-vision__label>span { width:52px; height:52px; flex:0 0 52px; display:grid; place-items:center; background:#050505; color:var(--plu-yellow); }
.plu-about-vision__label svg { width:25px; height:25px; }
.plu-about-vision__label .plu-eyebrow { margin:0; color:var(--plu-red); }
.plu-about-vision__label h2 { margin:7px 0 0; font-size:28px; line-height:1.05; font-weight:900; }
.plu-about-vision blockquote { position:relative; z-index:1; max-width:900px; margin:0; padding:36px 70px 36px 82px; border:0; color:#161616; font-size:clamp(21px,2vw,29px); line-height:1.45; font-weight:750; }
.plu-about-vision blockquote::before { content:'“'; position:absolute; top:18px; left:24px; color:var(--plu-yellow); font-size:62px; line-height:1; font-weight:900; }
.plu-about-vision>i { position:absolute; top:0; right:0; width:54px; height:100%; background:var(--plu-yellow); clip-path:polygon(100% 0,100% 100%,0 100%); }
.plu-about-mission { position:relative; min-height:210px; margin-top:18px; display:grid; grid-template-columns:minmax(230px,.42fr) minmax(0,1.58fr); align-items:stretch; overflow:hidden; border-left:8px solid #e21b23; background:#050505; color:#fff; box-shadow:0 16px 34px rgba(0,0,0,.12); }
.plu-about-mission__label { display:flex; align-items:center; gap:18px; padding:34px 30px; border-right:1px solid rgba(255,255,255,.14); background:#111; }
.plu-about-mission__label>span { width:52px; height:52px; flex:0 0 52px; display:grid; place-items:center; background:var(--plu-yellow); color:#050505; }
.plu-about-mission__label svg { width:25px; height:25px; }
.plu-about-mission__label .plu-eyebrow { margin:0; color:var(--plu-yellow); }
.plu-about-mission__label h2 { margin:7px 0 0; color:#fff; font-size:28px; line-height:1.05; font-weight:900; }
.plu-about-mission__statement { position:relative; z-index:1; display:flex; align-items:center; padding:38px 74px 38px 48px; }
.plu-about-mission__statement:before { content:''; width:42px; height:4px; flex:0 0 42px; align-self:flex-start; margin:11px 22px 0 0; background:#e21b23; }
.plu-about-mission__statement p { max-width:870px; margin:0; color:rgba(255,255,255,.78); font-size:20px; line-height:1.65; font-weight:600; }
.plu-about-mission>i { position:absolute; top:0; right:0; width:54px; height:100%; background:var(--plu-yellow); clip-path:polygon(100% 0,100% 100%,0 100%); }
.plu-about-values { margin-top:56px; }
.plu-about-values>header { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:48px; align-items:end; padding-bottom:24px; border-bottom:2px solid #050505; }
.plu-about-values>header .plu-eyebrow { margin:0; color:var(--plu-red); }
.plu-about-values>header h2 { margin:8px 0 0; font-size:36px; line-height:1.08; font-weight:900; }
.plu-about-values>header>p { max-width:670px; margin:0; color:rgba(0,0,0,.62); font-size:16px; line-height:1.65; }
.plu-about-values-grid { margin-top:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-left:1px solid rgba(0,0,0,.12); }
.plu-about-values-grid article { min-height:280px; padding:28px; border-right:1px solid rgba(0,0,0,.12); border-bottom:1px solid rgba(0,0,0,.12); background:#fff; transition:background 180ms ease, transform 180ms ease; }
.plu-about-values-grid article:hover { position:relative; z-index:1; background:#fffde4; transform:translateY(-3px); box-shadow:0 16px 30px rgba(0,0,0,.07); }
.plu-about-values-grid article>header { display:flex; align-items:center; justify-content:space-between; }
.plu-about-values-grid article>header span { width:64px; height:64px; display:grid; place-items:center; background:var(--plu-yellow); color:#050505; box-shadow:inset 0 -3px 0 rgba(227,6,19,.75); }
.plu-about-values-grid article>header svg { width:32px; height:32px; }
.plu-about-values-grid article>header b { color:rgba(0,0,0,.22); font-size:24px; line-height:1; font-weight:900; }
.plu-about-values-grid h3 { margin:25px 0 0; color:#050505; font-size:20px; line-height:1.15; font-weight:900; }
.plu-about-values-grid p { margin:13px 0 0; color:rgba(0,0,0,.64); font-size:14px; line-height:1.7; }
.plu-about-values-grid article:last-child:nth-child(3n+1) { min-height:0; grid-column:1 / -1; display:grid; grid-template-columns:90px 220px minmax(0,1fr); gap:24px; align-items:center; }
.plu-about-values-grid article:last-child:nth-child(3n+1)>header { grid-column:1; }
.plu-about-values-grid article:last-child:nth-child(3n+1)>header b { display:none; }
.plu-about-values-grid article:last-child:nth-child(3n+1)>h3 { grid-column:2; margin:0; }
.plu-about-values-grid article:last-child:nth-child(3n+1)>p { grid-column:3; margin:0; }
.plu-about-duo { margin-top:40px; display:grid; grid-template-columns:1.1fr .9fr; gap:32px; }
.plu-about-purpose,.plu-about-standards { padding:32px; }
.plu-about-purpose { background:#fffef5; transition:.3s ease; }
.plu-about-purpose:hover { background:#fff8b3; border-color:#f2c94c; box-shadow:0 16px 40px rgba(242,201,76,.18); }
.plu-about-standards { color:#fff; background:#050505; transition:.3s ease; }
.plu-about-standards:hover { color:#050505; background:#f9e865; border-color:#f2c94c; }
.plu-about-purpose header,.plu-about-standards header { display:flex; align-items:center; gap:12px; }
.plu-about-purpose header b,.plu-about-standards header b { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--plu-red); border-radius:50%; color:var(--plu-red); background:#fff2f2; font-size:14px; }
.plu-about-standards header b { color:#f2c94c; background:#1f1f1f; border-color:#f2c94c; }
.plu-about-purpose h2,.plu-about-standards h2 { margin:0; font-size:24px; font-weight:900; }
.plu-about-purpose>p { margin:20px 0 0 48px; color:rgba(0,0,0,.75); font-size:18px; line-height:1.78; }
.plu-about-standards ol { margin:24px 0 0 48px; padding:0; display:grid; gap:16px; color:rgba(255,255,255,.8); font-size:16px; line-height:1.7; }
.plu-about-standards:hover ol { color:#050505; }
.plu-about-panel { margin-top:40px; padding:32px; background:#fff; }
.plu-about-panel>header { padding-left:16px; border-left:4px solid var(--plu-red); }
.plu-about-panel>header h2 { margin:0; font-size:30px; font-weight:900; }
.plu-about-panel>header p { max-width:768px; margin:12px 0 0; color:rgba(0,0,0,.7); font-size:18px; line-height:1.78; }
.plu-about-focus-grid { margin-top:24px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.plu-about-focus-grid article { padding:24px; background:#fffdf5; border:1px solid rgba(0,0,0,.1); border-radius:20px; transition:.3s ease; }
.plu-about-focus-grid article:hover,.plu-about-history article:hover { background:#fff7b3; border-color:#f2c94c; box-shadow:0 12px 24px rgba(242,201,76,.16); }
.plu-about-focus-grid article>div { display:flex; align-items:center; gap:12px; }
.plu-about-focus-grid b { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; color:var(--plu-yellow); background:#050505; border-radius:50%; font-size:14px; }
.plu-about-focus-grid h3 { margin:0; font-size:20px; font-weight:900; }
.plu-about-focus-grid p { margin:16px 0 0 44px; color:rgba(0,0,0,.7); font-size:16px; line-height:1.75; }
.plu-about-history { background:#fffdf5; }
.plu-about-history>header { border-left-color:#f2c94c; }
.plu-about-history>div { margin-top:24px; display:grid; gap:16px; }
.plu-about-history article { padding:24px; display:flex; align-items:flex-start; gap:24px; background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:20px; transition:.3s ease; }
.plu-about-history article>b { width:48px; height:48px; flex:0 0 48px; display:inline-flex; align-items:center; justify-content:center; background:#fff8dc; border:1px solid #050505; border-radius:50%; }
.plu-about-history article span { color:var(--plu-red); font-size:14px; font-weight:900; text-transform:uppercase; }
.plu-about-history article h3 { margin:8px 0 0; font-size:20px; font-weight:900; }
.plu-about-history article p { margin:12px 0 0; color:rgba(0,0,0,.7); font-size:16px; line-height:1.75; }
.plu-about-cta { margin-top:40px; padding:32px; display:flex; align-items:center; justify-content:space-between; gap:32px; background:#f8f8f8; }
.plu-about-cta h2 { margin:0; font-size:24px; font-weight:900; }
.plu-about-cta p { max-width:672px; margin:12px 0 0; color:rgba(0,0,0,.7); font-size:18px; line-height:1.78; }
.plu-about-cta>div:last-child { display:flex; flex-wrap:wrap; gap:12px; }
.plu-about-cta a,.plu-what-actions a { display:inline-flex; align-items:center; padding:12px 20px; border:1px solid #050505; border-radius:999px; color:#050505; text-decoration:none; font-size:14px; font-weight:900; text-transform:uppercase; }
.plu-about-cta a:first-child,.plu-what-actions a:first-child { color:var(--plu-yellow); background:#050505; }
.plu-what-hero__inner { min-height:280px; align-items:end; }
.plu-what-hero__inner>div { padding-bottom:32px; }
.plu-what-hero aside { align-self:end; }
.plu-what-journey { display:grid; grid-template-columns:1.05fr .95fr; gap:40px; }
.plu-what-journey>article { padding:48px; background:#fff; border:1px solid rgba(226,27,35,.2); border-radius:28px; box-shadow:0 20px 60px rgba(0,0,0,.06); }
.plu-what-journey>article>header { display:flex; align-items:center; gap:12px; }
.plu-what-journey>article>header span { width:12px; height:12px; border-radius:50%; background:var(--plu-red); }
.plu-what-journey>article>header p { margin:0; color:rgba(0,0,0,.6); font-size:14px; font-weight:900; text-transform:uppercase; }
.plu-what-journey>article>h2 { margin:24px 0 0; font-size:48px; line-height:1.15; font-weight:900; }
.plu-what-journey>article>p { margin:24px 0 0; color:rgba(0,0,0,.75); font-size:18px; line-height:1.78; }
.plu-what-actions { margin-top:40px; display:flex; flex-wrap:wrap; gap:16px; }
.plu-what-journey>aside { display:grid; align-content:start; gap:32px; }
.plu-what-journey>aside>img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:28px; box-shadow:0 20px 60px rgba(0,0,0,.12); }
.plu-what-journey>aside>section { padding:32px; background:#fffef5; border:1px solid rgba(0,0,0,.1); border-radius:28px; box-shadow:0 10px 30px rgba(0,0,0,.04); }
.plu-what-journey>aside>section>h2 { margin:0; font-size:30px; font-weight:900; }
.plu-what-journey>aside>section>article { margin-top:16px; padding:20px; display:flex; gap:16px; background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:24px; }
.plu-what-journey>aside>section>article>span { width:48px; height:48px; flex:0 0 48px; display:flex; align-items:center; justify-content:center; color:var(--plu-yellow); background:#050505; border-radius:50%; }
.plu-what-journey>aside svg { width:24px; height:24px; }
.plu-what-journey>aside h3 { margin:0; font-size:20px; font-weight:900; }
.plu-what-journey>aside p { margin:8px 0 0; color:rgba(0,0,0,.75); font-size:14px; line-height:1.55; }
.plu-what-service { margin-top:48px; padding:48px; display:grid; gap:24px; background:#fff; border:1px solid rgba(226,27,35,.15); border-radius:28px; box-shadow:0 20px 60px rgba(0,0,0,.05); }
.plu-what-service { grid-template-columns:.9fr 1.1fr; align-items:center; }
.plu-what-service>header { padding-left:24px; border-left:4px solid var(--plu-red); }
.plu-what-service>header>p { margin:0; color:var(--plu-red); font-size:14px; font-weight:900; text-transform:uppercase; }
.plu-what-service>header h2 { margin:16px 0 0; font-size:36px; line-height:1.2; font-weight:900; }
.plu-what-service>header div { margin-top:24px; color:rgba(0,0,0,.75); font-size:18px; line-height:1.78; }
.plu-what-service>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.plu-what-service article { padding:20px; background:#fffaf0; border:1px solid rgba(0,0,0,.1); border-radius:24px; }
.plu-what-service article.is-green { background:#f7fff2; }
.plu-what-service h3 { margin:0; color:rgba(0,0,0,.7); font-size:14px; font-weight:900; text-transform:uppercase; }
.plu-what-service article p { margin:16px 0 0; color:rgba(0,0,0,.75); font-size:16px; line-height:1.75; }
@media(max-width:1000px) {
  .plu-about-hero__inner,.plu-what-hero__inner,.plu-about-duo,.plu-what-journey,.plu-what-service { grid-template-columns:1fr }
  .plu-about-hero aside,.plu-what-hero aside { border-left:0;border-top:4px solid #050505 }
  .plu-what-hero aside { align-self:stretch }
  .plu-about-cta { align-items:flex-start;flex-direction:column }
  .plu-about-vision,.plu-about-mission { grid-template-columns:220px minmax(0,1fr) }
  .plu-about-vision blockquote { padding-right:58px }
  .plu-about-mission__statement { padding-right:58px }
  .plu-about-values-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .plu-about-values-grid article:last-child:nth-child(2n+1) { min-height:0;grid-column:1 / -1;display:grid;grid-template-columns:90px 190px minmax(0,1fr);gap:20px;align-items:center }
  .plu-about-values-grid article:last-child:nth-child(2n+1)>header { grid-column:1 }
  .plu-about-values-grid article:last-child:nth-child(2n+1)>header b { display:none }
  .plu-about-values-grid article:last-child:nth-child(2n+1)>h3 { grid-column:2;margin:0 }
  .plu-about-values-grid article:last-child:nth-child(2n+1)>p { grid-column:3;margin:0 }
}
@media(max-width:700px) {
  .plu-about-hero,.plu-what-hero { padding-top:32px }
  .plu-about-hero__inner,.plu-what-hero__inner { padding:0 20px }
  .plu-about-hero h1,.plu-what-hero h1 { font-size:42px }
  .plu-about-content,.plu-what-content { padding:40px 20px 0 }
  .plu-about-focus-grid,.plu-process-grid,.plu-signal-grid,.plu-what-service>div,.plu-about-values-grid { grid-template-columns:1fr }
  .plu-about-purpose,.plu-about-standards,.plu-about-panel,.plu-about-cta,.plu-what-journey>article,.plu-what-journey>aside>section,.plu-what-service { padding:24px }
  .plu-about-vision,.plu-about-mission { grid-template-columns:1fr }
  .plu-about-vision__label,.plu-about-mission__label { padding:24px;border-right:0;border-bottom:1px solid rgba(0,0,0,.1) }
  .plu-about-mission__label { border-bottom-color:rgba(255,255,255,.14) }
  .plu-about-vision blockquote { padding:34px 34px 38px 68px;font-size:19px }
  .plu-about-vision blockquote::before { top:18px;left:18px;font-size:52px }
  .plu-about-mission__statement { align-items:flex-start;flex-direction:column;padding:30px 42px 34px 24px }
  .plu-about-mission__statement:before { flex-basis:4px;width:42px;height:4px;margin:0 0 18px }
  .plu-about-mission__statement p { font-size:17px }
  .plu-about-values { margin-top:42px }
  .plu-about-values>header { grid-template-columns:1fr;gap:14px }
  .plu-about-values>header h2 { font-size:30px }
  .plu-about-values-grid article,.plu-about-values-grid article:last-child:nth-child(3n+1),.plu-about-values-grid article:last-child:nth-child(2n+1) { min-height:0;display:block;grid-column:auto;padding:24px }
  .plu-about-values-grid article:last-child:nth-child(3n+1)>header,.plu-about-values-grid article:last-child:nth-child(2n+1)>header { display:flex }
  .plu-about-values-grid article:last-child:nth-child(3n+1)>header b,.plu-about-values-grid article:last-child:nth-child(2n+1)>header b { display:block }
  .plu-about-values-grid article:last-child:nth-child(3n+1)>h3,.plu-about-values-grid article:last-child:nth-child(2n+1)>h3 { margin-top:25px }
  .plu-about-values-grid article:last-child:nth-child(3n+1)>p,.plu-about-values-grid article:last-child:nth-child(2n+1)>p { margin-top:13px }
  .plu-what-journey>article>h2 { font-size:36px }
  .plu-about-purpose>p,.plu-about-standards ol { margin-left:0 }
  .plu-about-focus-grid p { margin-left:0 }
  .plu-about-history article { gap:16px }
  .plu-about-cta>div:last-child,.plu-what-actions { width:100%;flex-direction:column }
  .plu-about-cta a,.plu-what-actions a { justify-content:center }
}
.plu-structure-page { width: 100%;
  overflow: hidden;
  background: #f7f7f2;
  color: #050505;
  font-family: 'Geist PLU', Arial, Helvetica, sans-serif; }
.plu-structure-page *, .plu-structure-page *::before, .plu-structure-page *::after { box-sizing: border-box; }
.plu-structure-page h1, .plu-structure-page h2, .plu-structure-page h3, .plu-structure-page p { letter-spacing: 0; }
.plu-structure-hero { position: relative;
  display: block;
  min-height: 520px;
  padding: 0;
  overflow: hidden;
  background: #050505;
  color: #fff;
  border-bottom: 0; }
.plu-structure-hero__inner { position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1376px;
  min-height: 520px;
  margin: 0 auto;
  padding: 64px 32px;
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr);
  align-items: center;
  gap: 40px; }
.plu-structure-hero__decor { display: none; }
.plu-structure-hero .plu-hero-rule { display: block; width: 96px; height: 6px; margin-bottom: 20px; background: var(--plu-yellow); }
.plu-structure-hero .plu-eyebrow { color: var(--plu-yellow); font-size: 14px; font-weight: 900; text-transform: uppercase; }
.plu-structure-hero h1 { max-width: 760px; margin: 16px 0 0; font-size: clamp(50px,5.2vw,72px); line-height: .98; font-weight: 900; }
.plu-structure-hero p:not(.plu-eyebrow) { max-width: 672px; margin: 24px 0 0; color: rgba(255,255,255,.76); font-size: 18px; line-height: 1.78; }
.plu-structure-hero .plu-page-actions { margin-top: 32px; }
.plu-structure-page .plu-button { gap: 8px; border-radius: 4px; font-family: inherit; font-size: 14px; font-weight: 900; letter-spacing: 0; }
.plu-structure-page .plu-button--ghost-dark { border-color: rgba(255,255,255,.25); color: #fff; }
.plu-structure-page .plu-button--ghost-dark:hover { border-color: var(--plu-yellow); color: var(--plu-yellow); }
.plu-structure-orbit { position: relative; width: min(100%,500px); min-height: 0; aspect-ratio: 1; margin: 0 auto; display: block; }
.plu-structure-orbit::before { content: none; }
.plu-structure-orbit__ring { position: absolute; left: 50%; top: 50%; display: block; border-radius: 50%; transform: translate(-50%,-50%); }
.plu-structure-orbit__ring--outer { width: 78%; height: 78%; border: 1px solid rgba(255,242,0,.46); }
.plu-structure-orbit__ring--inner { width: 50%; height: 50%; border: 1px solid rgba(255,255,255,.2); }
.plu-structure-orbit img { position: absolute; left: 50%; top: 50%; z-index: 2; width: 176px; height: 176px; padding: 0; object-fit: contain; background: var(--plu-yellow); border-radius: 4px; transform: translate(-50%,-50%); filter: drop-shadow(0 20px 24px rgba(0,0,0,.45)); }
.plu-structure-jumpbar { position: relative; z-index: 4; border-bottom: 1px solid rgba(0,0,0,.12); background: #fff; box-shadow: 0 12px 26px rgba(0,0,0,.06); }
.plu-structure-jumpbar__inner { width: 100%; max-width: 1376px; min-height: 92px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 145px minmax(0,1fr); align-items: stretch; }
.plu-structure-jumpbar__inner > p { margin: 0; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid rgba(0,0,0,.12); }
.plu-structure-jumpbar__inner > p span { color: var(--plu-red); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.plu-structure-jumpbar__inner > p strong { margin-top: 3px; font-size: 14px; line-height: 1.15; }
.plu-structure-jumpbar__inner > div { min-width: 0; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); }
.plu-structure-jump { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 10px; border: 0; border-right: 1px solid rgba(0,0,0,.1); color: #050505; background: #fff; font: inherit; cursor: pointer; transition: color .18s ease, background .18s ease; }
.plu-structure-jump:last-child { border-right: 0; }
.plu-structure-jump:hover, .plu-structure-jump:focus-visible { background: #fffde1; }
.plu-structure-jump.is-active { color: var(--plu-yellow); background: #050505; }
.plu-structure-jump > span { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 50%; color: #050505; background: var(--plu-yellow); }
.plu-structure-jump svg { width: 17px; height: 17px; }
.plu-structure-jump b { min-width: 0; font-size: 11px; line-height: 1.2; text-align: left; }
.plu-structure-explore { padding: 56px 0; }
.plu-structure-explore__inner { width: 100%; max-width: 1376px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 24px; }
.plu-structure-page .plu-eyebrow { margin: 0; color: var(--plu-red); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.plu-structure-explore header h2 { margin: 12px 0 0; font-size: clamp(36px,4vw,48px); line-height: 1.08; font-weight: 900; }
.plu-structure-explore header > p:last-child { margin: 16px 0 0; color: rgba(0,0,0,.68); font-size: 16px; line-height: 1.75; }
.plu-structure-browser { display: grid; grid-template-columns: minmax(250px,.9fr) minmax(0,1.1fr); gap: 20px; }
.plu-level-list { display: grid; align-content: start; gap: 8px; }
.plu-level-button { width: 100%; min-height: 70px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 12px; color: #050505; background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; text-align: left; font-family: inherit; cursor: pointer; box-shadow: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.plu-level-button:hover { border-color: rgba(0,0,0,.35); transform: translateY(-2px); }
.plu-level-button.is-active { color: #fff; background: #050505; border-color: #050505; box-shadow: 0 18px 40px rgba(0,0,0,.16); }
.plu-level-button__icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #050505; background: var(--plu-yellow); border-radius: 4px; }
.plu-level-button__icon svg { width: 20px; height: 20px; }
.plu-level-button b { display: block; font-size: 14px; line-height: 1.2; font-weight: 900; }
.plu-level-button small { display: block; margin-top: 4px; color: rgba(0,0,0,.55); font-size: 12px; font-weight: 400; }
.plu-level-button.is-active small { color: rgba(255,255,255,.65); }
.plu-level-button__chevron { font-size: 25px; line-height: 1; }
.plu-structure-detail { padding: 28px; background: #fff; border-radius: 4px; box-shadow: 0 22px 50px rgba(0,0,0,.08); scroll-margin-top: 100px; }
.plu-structure-detail__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.plu-structure-detail__top > span { width: 64px; height: 64px; display: inline-flex; align-items: center; justify-content: center; color: var(--plu-yellow); background: #050505; border-radius: 4px; }
.plu-structure-detail__top svg { width: 32px; height: 32px; }
.plu-structure-detail__top > b { padding: 8px 16px; color: #050505; background: var(--plu-yellow); border-radius: 4px; font-size: 24px; line-height: 1.2; font-weight: 900; }
.plu-structure-detail h3 { margin: 24px 0 0; font-size: 30px; line-height: 1.15; font-weight: 900; }
.plu-structure-detail dl { margin: 24px 0 0; display: grid; gap: 16px; }
.plu-structure-detail dl div { padding: 0; }
.plu-structure-detail dt { color: var(--plu-red); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.plu-structure-detail dd { margin: 8px 0 0; color: rgba(0,0,0,.7); font-size: 14px; line-height: 1.75; }
.plu-structure-section { padding: 0 0 56px; }
.plu-structure-section--last { padding-bottom: 64px; }
.plu-structure-panel, .plu-roles-layout, .plu-groups-layout, .plu-coordination-panel { width: calc(100% - 64px); max-width: 1312px; margin: 0 auto; }
.plu-structure-panel { padding: 28px; background: #fff; border-radius: 4px; box-shadow: 0 22px 50px rgba(0,0,0,.08); }
.plu-structure-panel__heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.plu-structure-panel__heading h2, .plu-roles-intro h2, .plu-groups-intro h2, .plu-coordination-panel h2 { margin: 12px 0 0; font-size: clamp(30px,3.2vw,38px); line-height: 1.12; font-weight: 900; }
.plu-structure-panel__heading > p { max-width: 576px; margin: 0; color: rgba(0,0,0,.62); font-size: 14px; line-height: 1.75; }
.plu-flow-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.plu-flow-grid article { min-width: 0; padding: 16px; background: #fffdf0; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; }
.plu-flow-grid article > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.plu-flow-grid b { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; color: var(--plu-yellow); background: #050505; border-radius: 4px; font-size: 14px; }
.plu-flow-grid span { color: rgba(0,0,0,.35); font-size: 20px; }
.plu-flow-grid article:last-child span { color: var(--plu-red); }
.plu-flow-grid h3 { margin: 16px 0 0; font-size: 14px; line-height: 1.25; font-weight: 900; }
.plu-roles-intro .plu-eyebrow, .plu-coordination-panel .plu-eyebrow { color: var(--plu-yellow); }
.plu-roles-intro > p:not(.plu-eyebrow), .plu-coordination-panel article > p:not(.plu-eyebrow) { margin: 16px 0 0; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.75; }
.plu-roles-intro .plu-button { margin-top: 24px; }
.plu-groups-intro { padding: 28px; background: #fff; border-radius: 4px; box-shadow: 0 22px 50px rgba(0,0,0,.08); }
.plu-groups-intro > p:last-child { margin: 16px 0 0; color: rgba(0,0,0,.68); font-size: 14px; line-height: 1.75; }
.plu-group-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.plu-group-grid article { padding: 20px; background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; }
.plu-group-grid article > span { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #050505; background: var(--plu-yellow); border-radius: 4px; }
.plu-group-grid svg { width: 20px; height: 20px; }
.plu-group-grid h3 { margin: 16px 0 0; font-size: 18px; line-height: 1.2; font-weight: 900; }
.plu-group-grid p { margin: 8px 0 0; color: rgba(0,0,0,.62); font-size: 14px; line-height: 1.5; }
.plu-coordination-panel { padding: 28px; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); align-items: center; gap: 24px; color: #fff; background: #050505; border-radius: 4px; }
.plu-coordination-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.plu-coordination-grid > div { display: flex; align-items: center; gap: 12px; padding: 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 4px; }
.plu-coordination-grid b { width: 32px; height: 32px; flex: 0 0 32px; display: inline-flex; align-items: center; justify-content: center; color: #050505; background: var(--plu-yellow); border-radius: 4px; font-size: 12px; }
.plu-coordination-grid span { font-size: 14px; line-height: 1.25; font-weight: 900; }
@media (max-width: 1020px) {
  .plu-structure-hero__inner, .plu-structure-explore__inner, .plu-roles-layout, .plu-groups-layout, .plu-coordination-panel { grid-template-columns: 1fr; }
  .plu-structure-orbit { width: min(100%,460px); min-height: 0; }
  .plu-structure-browser { grid-template-columns: minmax(220px,.8fr) minmax(0,1.2fr); }
  .plu-structure-jumpbar__inner { grid-template-columns: 120px minmax(0,1fr); }
  .plu-structure-jumpbar__inner > div { overflow-x: auto; grid-template-columns: repeat(6,minmax(145px,1fr)); scrollbar-width: thin; }
}
@media (max-width: 760px) {
  .plu-structure-hero__inner { padding: 48px 20px; }
  .plu-structure-hero h1 { font-size: 48px; }
  .plu-structure-orbit { width: min(100%,360px); min-height: 0; }
  .plu-structure-orbit img { width: 140px; height: 140px; }
  .plu-structure-explore__inner { padding: 0 20px; }
  .plu-structure-browser { grid-template-columns: 1fr; }
  .plu-structure-panel, .plu-roles-layout, .plu-groups-layout, .plu-coordination-panel { width: calc(100% - 40px); }
  .plu-structure-panel__heading { align-items: start; flex-direction: column; }
  .plu-flow-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plu-structure-jumpbar__inner { min-height: 78px; padding: 0 20px; grid-template-columns: 1fr; }
  .plu-structure-jumpbar__inner > p { display: none; }
  .plu-structure-jumpbar__inner > div { margin-right: -20px; grid-template-columns: repeat(6,minmax(138px,1fr)); }
  .plu-structure-jump { min-height: 78px; }
}
@media (max-width: 520px) {
  .plu-structure-hero h1 { font-size: 42px; }
  .plu-structure-hero p:not(.plu-eyebrow) { font-size: 16px; line-height: 1.65; }
  .plu-structure-orbit { width: min(100%,310px); min-height: 0; }
  .plu-structure-orbit img { width: 112px; height: 112px; }
  .plu-structure-detail, .plu-structure-panel, .plu-roles-intro, .plu-groups-intro, .plu-coordination-panel { padding: 22px; }
  .plu-flow-grid, .plu-role-grid, .plu-group-grid, .plu-coordination-grid { grid-template-columns: 1fr; }
}
.plu-leadership-page { width: 100%;
  background: #fff;
  color: #000;
  font-family: 'Geist PLU', Arial, Helvetica, sans-serif; }
.plu-regional-leadership-content .plu-section-title-row { margin-bottom:30px; }
.plu-leadership-hero { display: block;
  width: 100%;
  min-height: 0;
  padding: 0;
  background: var(--plu-yellow);
  border-bottom: 4px solid #050505; }
.plu-leadership-hero__inner { width: 100%;
  max-width: 1376px;
  min-height: 290px;
  margin: 0 auto;
  padding: 48px 32px;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr);
  align-items: end;
  gap: 28px; }
.plu-leadership-hero h1 { margin: 16px 0 0;
  font-size: 48px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: 0; }
.plu-leadership-hero p:not(.plu-eyebrow) { max-width: 672px;
  margin: 16px 0 0;
  color: #fff;
  font-size: 16px;
  line-height: 1.75;
  font-weight: 400; }
.plu-leadership-hero aside { margin-bottom: 4px;
  padding: 20px;
  background: transparent;
  backdrop-filter: none;
  border: 0;
  border-left: 4px solid var(--plu-red); }
.plu-leadership-hero aside strong { display: block; margin: 8px 0 6px; color: #fff; font-size: 19px; line-height: 1.2; }
.plu-leadership-hero aside span,
.plu-leadership-hero aside small { font-weight: 700; }
.plu-leadership-content { width: 100%;
  max-width: 1376px;
  padding: 48px 32px 90px;
  font-family: inherit; }
.plu-leadership-page .plu-section-title-row h2 { font-size: 36px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: 0; }
.plu-leadership-page .plu-section-title-row p { max-width: 672px;
  font-size: 18px;
  line-height: 1.6;
  font-weight: 500;
  color: rgba(0,0,0,.7); }
.plu-featured-leader { grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr);
  margin: 24px 0 48px;
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(0,0,0,.10); }
.plu-featured-leader img { height: 100%;
  min-height: 512px;
  border-right: 4px solid var(--plu-yellow); }
.plu-featured-leader .plu-leader-card__content { display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px; }
.plu-leader-card .plu-leader-card__content { padding: 20px; }
.plu-leader-card__identity { display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px; }
.plu-featured-leader .plu-leader-card__identity,
.plu-leader-card .plu-leader-card__identity { padding: 0; }
.plu-leader-card__identity > div,
.plu-featured-leader .plu-leader-card__identity > div { padding: 0; }
.plu-leader-profile-icon { width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--plu-yellow);
  color: #050505; }
.plu-leader-profile-icon svg { width: 24px; height: 24px; }
.plu-featured-leader h2,
.plu-leader-card h3 { margin: 0; font-weight: 900; letter-spacing: 0; }
.plu-featured-leader h2 { font-size: 36px; line-height: 1.18; }
.plu-leader-card h3 { font-size: 20px; line-height: 1.25; }
.plu-featured-leader strong { font-size: 20px; line-height: 1.4; font-weight: 900; }
.plu-leader-card strong { font-size: 16px; line-height: 1.4; font-weight: 900; }
.plu-featured-leader p:not(.plu-eyebrow) { margin-top: 20px;
  font-size: 18px;
  line-height: 1.78;
  font-weight: 400; }
.plu-leader-card p:not(.plu-eyebrow) { margin-top: 12px;
  font-size: 14px;
  line-height: 1.625;
  font-weight: 400; }
.plu-leadership-page .plu-eyebrow { font-weight: 900; letter-spacing: 0; }
.plu-leadership-tier { position: relative; margin-top: 48px; }
.plu-leadership-tier > header { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; gap: 16px; align-items: center; margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid rgba(0,0,0,.14); }
.plu-leadership-tier > header > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: #050505; color: var(--plu-yellow); font-size: 13px; font-weight: 900; }
.plu-leadership-tier > header > div { min-width: 0; }
.plu-leadership-tier > header .plu-eyebrow { margin: 0 0 3px; color: rgba(0,0,0,.52); font-size: 10px; text-transform: uppercase; }
.plu-leadership-tier > header h3 { margin: 0; font-size: 26px; line-height: 1.16; font-weight: 900; }
.plu-leadership-tier > header > b { padding: 7px 10px; border: 1px solid rgba(0,0,0,.14); color: rgba(0,0,0,.58); font-size: 10px; text-transform: uppercase; }
.plu-leadership-tier--chairman { margin-top: 32px; }
.plu-leadership-tier--chairman > header > span { background: var(--plu-yellow); color: #050505; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.plu-leadership-tier--chairman .plu-featured-leader { margin-top: 0; margin-bottom: 0; }
.plu-leadership-tier--executive .plu-leader-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.plu-leadership-content { max-width: 1376px; }
.plu-featured-leader { grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr); }
.plu-featured-leader .plu-leader-photo,
.plu-leader-card .plu-leader-photo { padding: 0; }
.plu-featured-leader .plu-leader-photo { height: auto; min-height: 512px; padding: 8px; border-right: 4px solid var(--plu-yellow); background: linear-gradient(180deg, #f7f6f2, #f1f2f0 78%, rgba(255,242,0,.08)); }
.plu-featured-leader .plu-leader-photo img { width: 100%; height: 100%; object-fit: cover; }
.plu-leader-grid,
.plu-leadership-tier--executive .plu-leader-grid { gap: 20px; }
.plu-leader-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.plu-leadership-tier--executive .plu-leader-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.plu-leader-card .plu-leader-photo { height: 352px; overflow: hidden; padding: 7px; border-bottom: 4px solid var(--plu-yellow); background: linear-gradient(180deg, #f7f6f2, #f1f2f0 78%, rgba(255,242,0,.08)); }
.plu-leader-card .plu-leader-photo img { width: 100%; height: 100%; object-fit: cover; }
.plu-leader-card { display: flex; min-width: 0; flex-direction: column; }
.plu-leader-card .plu-leader-card__content { display: flex; flex: 1; flex-direction: column; }
.plu-leader-card .plu-leader-card__content > p:last-child { margin-bottom: 0; }
@media (max-width: 980px) {
  .plu-leadership-hero__inner { grid-template-columns: 1fr; min-height: 260px; }
  .plu-featured-leader { grid-template-columns: 1fr; }
  .plu-featured-leader .plu-leader-photo { height: 480px; min-height: 0; border-right: 0; border-bottom: 4px solid var(--plu-yellow); }
  .plu-leader-grid,
  .plu-leadership-tier--executive .plu-leader-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plu-leader-card .plu-leader-photo { height: 416px; }
}
@media (max-width: 620px) {
  .plu-leadership-hero__inner,
  .plu-leadership-content { padding-left: 16px; padding-right: 16px; }
  .plu-leadership-hero h1 { font-size: 36px; }
  .plu-leadership-page .plu-section-title-row h2 { font-size: 30px; }
  .plu-featured-leader .plu-leader-card__content { padding: 28px 22px; }
  .plu-featured-leader .plu-leader-photo { height: 384px; }
  .plu-featured-leader h2 { font-size: 30px; }
  .plu-leadership-tier { margin-top: 38px; }
  .plu-leadership-tier > header { grid-template-columns: 46px minmax(0,1fr); gap: 12px; }
  .plu-leadership-tier > header > span { width: 46px; height: 46px; }
  .plu-leadership-tier > header h3 { font-size: 22px; }
  .plu-leadership-tier > header > b { grid-column: 2; width: fit-content; }
  .plu-leader-grid,
  .plu-leadership-tier--executive .plu-leader-grid { grid-template-columns: 1fr; }
  .plu-leader-card .plu-leader-photo { height: 352px; }
}
.plu-contact-page { overflow: hidden; background: #f4f4f1; color: #050505; }
.plu-contact-hero { padding-top: 88px; border-bottom: 4px solid #050505; background: var(--plu-yellow); }
.plu-contact-hero__inner { width: min(100%, 1440px); min-height: 310px; margin: 0 auto; padding: 0 48px; display: grid; grid-template-columns: minmax(0,1.4fr) minmax(310px,.6fr); gap: 44px; align-items: end; }
.plu-contact-hero__inner>div { padding-bottom: 38px; }
.plu-contact-hero h1 { max-width: 850px; margin: 14px 0 0; font-size: 60px; line-height: 1.04; font-weight: 900; }
.plu-contact-hero__inner>div>p:last-child { max-width: 760px; margin: 22px 0 0; color: rgba(0,0,0,.68); font-size: 18px; line-height: 1.65; }
.plu-contact-hero aside { align-self: end; padding: 34px; border-left: 4px solid #050505; background: #050505; color: #fff; }
.plu-contact-hero aside .plu-eyebrow { color: var(--plu-yellow); }
.plu-contact-hero aside h2 { margin: 16px 0 0; font-size: 30px; line-height: 1.12; font-weight: 900; }
.plu-contact-hero aside>p:last-child { margin: 18px 0 0; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.65; }
.plu-contact-content { width: min(100%, 1440px); margin: 0 auto; padding: 58px 48px 96px; }
.plu-contact-layout { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: 40px; align-items: start; }
.plu-contact-information>header { padding: 12px 0 12px 24px; border-left: 4px solid var(--plu-red); }
.plu-contact-information>header h2 { max-width: 650px; margin: 14px 0 0; font-size: 42px; line-height: 1.12; font-weight: 900; }
.plu-contact-information>header>p:last-child { max-width: 700px; margin: 18px 0 0; color: rgba(0,0,0,.64); font-size: 16px; line-height: 1.75; }
.plu-contact-cards { margin-top: 32px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.plu-contact-cards article { min-height: 360px; padding: 30px; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; background: #fff; box-shadow: 0 18px 44px rgba(0,0,0,.05); }
.plu-contact-cards article>span { width: 50px; height: 50px; margin-bottom: 22px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #050505; color: var(--plu-yellow); }
.plu-contact-cards svg { width: 24px; height: 24px; }
.plu-contact-cards .plu-eyebrow { color: rgba(0,0,0,.58); }
.plu-contact-cards h3 { margin: 14px 0 0; font-size: 20px; line-height: 1.35; font-weight: 900; }
.plu-contact-cards article>p:last-child { margin: 20px 0 0; color: rgba(0,0,0,.68); font-size: 14px; line-height: 1.75; }
.plu-contact-cards dl { margin: 24px 0 0; }
.plu-contact-cards dl>div { padding: 12px 0; border-top: 1px solid rgba(0,0,0,.1); }
.plu-contact-cards dt { color: rgba(0,0,0,.52); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.plu-contact-cards dd { margin: 5px 0 0; font-size: 14px; font-weight: 700; }
.plu-contact-cards a { color: #050505; overflow-wrap: anywhere; }
.plu-contact-form-panel { overflow: hidden; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; background: #fff; box-shadow: 0 22px 64px rgba(0,0,0,.07); }
.plu-contact-form-panel__accent { display: block; width: 100%; height: 14px; border-bottom: 4px solid #050505; background: var(--plu-yellow); }
.plu-contact-form-panel>div { padding: 38px; }
.plu-contact-form-panel h2 { margin: 14px 0 0; font-size: 38px; line-height: 1.12; font-weight: 900; }
.plu-contact-form-panel>div>p:nth-of-type(2) { margin: 16px 0 0; color: rgba(0,0,0,.65); line-height: 1.7; }
.plu-contact-form-panel>div>section { margin: 28px 0; padding: 22px 0; border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); }
.plu-contact-form-panel>div>section h3 { margin: 0; font-size: 21px; font-weight: 900; }
.plu-contact-form-panel>div>section p { margin: 10px 0 0; color: rgba(0,0,0,.62); font-size: 14px; line-height: 1.65; }
.plu-contact-form-panel .wpcf7-form-control-wrap { display: block; }
.plu-contact-form-panel input:not([type=checkbox]):not([type=submit]),
.plu-contact-form-panel select,
.plu-contact-form-panel textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #b7b7b2; border-radius: 4px; background: #fff; color: #050505; font: inherit; font-size: 15px; }
.plu-contact-form-panel textarea { min-height: 150px; resize: vertical; }
.plu-contact-form-panel input:focus,
.plu-contact-form-panel select:focus,
.plu-contact-form-panel textarea:focus { outline: 3px solid rgba(255,242,0,.75); outline-offset: 1px; border-color: #050505; }
.plu-contact-form-panel input[type=submit] { min-height: 48px; padding: 0 28px; border: 2px solid #050505; border-radius: 4px; background: #050505; color: var(--plu-yellow); font-size: 13px; font-weight: 900; text-transform: uppercase; cursor: pointer; }
.plu-contact-form-panel input[type=submit]:hover { background: var(--plu-yellow); color: #050505; }
.plu-contact-form-panel input[type=submit]:disabled { opacity: .55; cursor: wait; }
.plu-contact-form-panel .wpcf7-not-valid-tip { margin-top: 6px; color: #b51219; font-size: 12px; font-weight: 700; }
.plu-contact-form-panel .wpcf7-response-output { margin: 22px 0 0 !important; padding: 14px 16px !important; border: 0 !important; border-left: 4px solid #050505 !important; background: #f3f3ef; font-size: 14px; line-height: 1.55; }
.plu-contact-form-panel form.sent .wpcf7-response-output { border-left-color: #287a3f !important; background: #eef8f0; }
.plu-contact-form-panel form.invalid .wpcf7-response-output,
.plu-contact-form-panel form.failed .wpcf7-response-output { border-left-color: var(--plu-red) !important; background: #fff1f1; }
.plu-contact-form-panel .wpcf7-spinner { margin: 0; }
.plu-contact-form-missing { padding: 16px; border-left: 4px solid var(--plu-red); background: #fff1f1; }
@media(max-width:1050px) {
  .plu-contact-hero__inner,.plu-contact-layout { grid-template-columns:1fr }
  .plu-contact-hero__inner { gap:0 }
  .plu-contact-hero aside { border-left:0;border-top:4px solid #050505 }
  .plu-contact-cards article { min-height:0 }
}
@media(max-width:700px) {
  .plu-contact-hero { padding-top:32px }
  .plu-contact-hero__inner { padding:0 20px }
  .plu-contact-hero h1 { font-size:42px }
  .plu-contact-hero__inner>div { padding-bottom:30px }
  .plu-contact-hero aside { padding:26px }
  .plu-contact-content { padding:40px 20px 72px }
  .plu-contact-information>header h2 { font-size:34px }
  .plu-contact-cards,.plu-cf7-grid { grid-template-columns:1fr }
  .plu-contact-form-panel>div { padding:26px }
  .plu-contact-form-panel h2 { font-size:32px }
  .plu-contact-form-panel input[type=submit] { width:100% }
}
.plu-news-pagination[hidden] { display:none!important }
.plu-home-news { padding:56px 0;background:#f7f7f2;color:#000;font-family:'Geist PLU',Arial,Helvetica,sans-serif }
.plu-home-news__inner { width:calc(100% - 64px);max-width:1376px;margin:0 auto }
.plu-home-news__header { display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px }
.plu-home-news__header .plu-eyebrow { color:#e21b23;font-size:12px;font-weight:900;text-transform:uppercase }
.plu-home-news__header h2 { margin:12px 0 0;font-size:48px;line-height:1.08;font-weight:900 }
.plu-home-news__all { display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid rgba(0,0,0,.15);border-radius:4px;font-size:14px;font-weight:900;text-transform:uppercase;text-decoration:none;transition:.2s }
.plu-home-news__all:hover { border-color:#000;background:#000;color:#fff }
.plu-home-news__layout { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:20px;align-items:start }
.plu-home-news__stage { position:relative;min-width:0 }
.plu-home-news__slide { position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:4px;background:#fff;box-shadow:0 22px 50px rgba(0,0,0,.08);opacity:0;transform:translateX(12px);pointer-events:none;transition:opacity .4s ease,transform .4s ease }
.plu-home-news__slide.is-active { position:relative;z-index:1;opacity:1;transform:translateX(0);pointer-events:auto }
.plu-home-news__media { position:relative;min-height:390px;overflow:hidden;background:#e8e8e3 }
.plu-home-news__media img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 7s ease-out }
.plu-home-news__slide.is-active .plu-home-news__media img { transform:scale(1.035) }
.plu-home-news__media:after { content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.12),transparent) }
.plu-home-news__media>span { position:absolute;right:auto;bottom:20px;left:20px;z-index:1;padding:6px 12px;border-radius:4px;background:#fff200;color:#000;font-size:12px;font-weight:900;text-transform:uppercase }
.plu-home-news__content { padding:28px }
.plu-home-news__content h3 { margin:0;font-size:36px;line-height:1.12;font-weight:900 }
.plu-home-news__content>p { max-width:768px;margin:16px 0 0;color:rgba(0,0,0,.68);font-size:16px;line-height:1.75 }
.plu-home-news__actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:24px }
.plu-home-news__actions>a { display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:4px;background:#000;color:#fff;font-size:14px;font-weight:900;text-transform:uppercase;text-decoration:none;transition:background .2s }
.plu-home-news__actions>a:hover { background:#e21b23 }
.plu-home-news__actions button { width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.15);border-radius:4px;background:#fff;color:#000;font-size:19px;font-weight:900;cursor:pointer;transition:.2s }
.plu-home-news__actions button:hover { border-color:#000;background:#000;color:#fff }
.plu-home-news__selectors { display:grid;gap:12px }
.plu-home-news__selectors button { width:100%;display:grid;grid-template-columns:78px 1fr;align-items:center;gap:12px;padding:12px;border:1px solid rgba(0,0,0,.1);border-radius:4px;background:#fff;color:#000;text-align:left;font:inherit;cursor:pointer;transition:transform .2s,border-color .2s,background .2s,color .2s }
.plu-home-news__selectors button:hover { transform:translateY(-2px);border-color:rgba(0,0,0,.3) }
.plu-home-news__selectors button.is-active { border-color:#000;background:#000;color:#fff;box-shadow:0 16px 34px rgba(0,0,0,.18) }
.plu-home-news__selectors img { width:78px;height:80px;object-fit:cover;border-radius:4px;background:#eee }
.plu-home-news__selectors button>span { min-width:0 }
.plu-home-news__selectors strong { display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:14px;line-height:1.25;font-weight:900 }
.plu-home-news__selectors time { display:block;margin-top:8px;color:rgba(0,0,0,.5);font-size:10px;font-weight:700;text-transform:uppercase }
.plu-home-news__selectors button.is-active time { color:#fff200 }
@media(max-width:980px) {
  .plu-home-news__layout { grid-template-columns:1fr }
  .plu-home-news__selectors { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:700px) {
  .plu-home-news { padding:40px 0 }
  .plu-home-news__inner { width:calc(100% - 40px) }
  .plu-home-news__header { align-items:flex-start;flex-direction:column }
  .plu-home-news__header h2 { font-size:36px }
  .plu-home-news__media { min-height:260px }
  .plu-home-news__content { padding:20px }
  .plu-home-news__content h3 { font-size:26px }
  .plu-home-news__selectors { grid-template-columns:1fr }
  .plu-home-news__all { padding:10px 14px }
  .plu-home-news__actions>a { flex:1;justify-content:center }
}
.plu-newsroom,.plu-news-article { background:#f4f4f1;color:#000;font-family:'Geist PLU',Arial,Helvetica,sans-serif }
.plu-news-container { width:calc(100% - 64px);max-width:1376px;margin:0 auto }
.plu-news-eyebrow { margin:0;color:#e21b23;font-size:12px;font-weight:800;text-transform:uppercase }
.plu-newsroom-hero { padding:44px 0 28px;border-bottom:4px solid #000;background:#fff200 }
.plu-newsroom-hero__copy { max-width:768px }
.plu-newsroom-hero h1 { margin:16px 0 0;font-size:60px;line-height:1.08;font-weight:900;letter-spacing:0 }
.plu-newsroom-hero__copy>p:last-child { max-width:672px;margin:20px 0 0;color:rgba(0,0,0,.7);font-size:18px;line-height:1.56 }
.plu-news-feature-stage { padding:0 0 64px;background:#050505;color:#fff }
.plu-news-feature-layout { display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.75fr);gap:32px }
.plu-news-feature { position:relative;min-height:540px;overflow:hidden;background:#191919 }
.plu-news-feature__image { position:absolute;inset:0 }
.plu-news-feature__image img { width:100%;height:100%;object-fit:cover;transition:transform .7s ease }
.plu-news-feature:hover .plu-news-feature__image img { transform:scale(1.02) }
.plu-news-feature__shade { position:absolute;inset:0;background:linear-gradient(to top,#000 0%,rgba(0,0,0,.38) 52%,transparent 100%);pointer-events:none }
.plu-news-feature__content { position:absolute;right:0;bottom:0;left:0;padding:40px }
.plu-news-meta { display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:rgba(255,255,255,.7);font-size:12px;font-weight:800;text-transform:uppercase }
.plu-news-featured-label { padding:6px 12px;background:#fff200;color:#000 }
.plu-news-feature h2 { max-width:900px;margin:20px 0 0;font-size:48px;line-height:1.08;font-weight:900 }
.plu-news-feature h2 a { text-decoration:none }
.plu-news-feature__content>p { max-width:672px;margin:16px 0 0;color:rgba(255,255,255,.76);font-size:16px;line-height:1.5 }
.plu-news-read { display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:14px;font-weight:800;text-decoration:none }
.plu-news-read span { transition:transform .2s }
.plu-news-card:hover .plu-news-read span,.plu-news-feature:hover .plu-news-read span { transform:translateX(4px) }
.plu-news-read--yellow { margin-top:24px;color:#fff200 }
.plu-news-latest { padding:0 0 0 32px;border-left:1px solid rgba(255,255,255,.2) }
.plu-news-latest header { display:flex;align-items:center;justify-content:space-between;margin:0 0 20px }
.plu-news-latest header h2 { margin:0;font-size:18px;font-weight:900 }
.plu-news-latest header span { width:40px;height:4px;background:#e21b23 }
.plu-news-latest>div>a { display:grid;grid-template-columns:32px 1fr;gap:12px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.15);text-decoration:none }
.plu-news-latest>div>a:first-child { padding-top:0 }
.plu-news-latest b { color:#fff200;font-size:14px }
.plu-news-latest time { display:block;color:rgba(255,255,255,.5);font-size:12px;font-weight:700;text-transform:uppercase }
.plu-news-latest strong { display:block;margin-top:8px;font-size:16px;line-height:1.5;transition:color .2s }
.plu-news-latest a:hover strong { color:#fff200 }
.plu-news-toolbar { padding:20px 0;border-bottom:1px solid rgba(0,0,0,.1);background:#fff }
.plu-news-toolbar>.plu-news-container { display:flex;align-items:center;justify-content:space-between;gap:24px }
.plu-news-filters { display:flex;gap:8px;overflow-x:auto;padding-bottom:1px }
.plu-news-filters button { flex:0 0 auto;padding:9px 16px;border:1px solid rgba(0,0,0,.15);border-radius:0;background:#fff;color:#000;font:inherit;font-size:12px;font-weight:800;text-transform:uppercase;cursor:pointer }
.plu-news-filters button:hover { border-color:#000 }
.plu-news-filters button.is-active { border-color:#000;background:#000;color:#fff200 }
.plu-news-search { width:320px;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid rgba(0,0,0,.2);background:#fff }
.plu-news-search>span:first-child { width:15px;height:15px;border:2px solid #000;border-radius:50%;position:relative }
.plu-news-search>span:first-child:after { content:'';position:absolute;width:6px;height:2px;right:-5px;bottom:-2px;background:#000;transform:rotate(45deg) }
.plu-news-search input { min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:14px }
.plu-news-archive { padding:64px 0 }
.plu-news-archive__header { display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 32px;padding:0 0 20px;border-bottom:1px solid rgba(0,0,0,.15) }
.plu-news-archive__header h2,.plu-news-related header h2 { margin:8px 0 0;font-size:30px;font-weight:900 }
.plu-news-archive__header>p { margin:0;color:rgba(0,0,0,.55);font-size:14px }
.plu-news-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:40px }
.plu-news-card { height:100%;display:flex;flex-direction:column;padding:0 0 28px;border-bottom:1px solid rgba(0,0,0,.2) }
.plu-news-card[hidden] { display:none }
.plu-news-card__image { aspect-ratio:16/10;overflow:hidden;background:#deded8 }
.plu-news-card__image img { width:100%;height:100%;object-fit:cover;transition:transform .5s ease }
.plu-news-card:hover .plu-news-card__image img { transform:scale(1.03) }
.plu-news-card__meta { display:flex;align-items:center;gap:12px;margin-top:20px;font-size:12px;font-weight:800;text-transform:uppercase }
.plu-news-card__meta span { color:#e21b23 }
.plu-news-card__meta time { color:rgba(0,0,0,.5) }
.plu-news-card__meta time:before { content:'\2022';margin-right:12px;color:rgba(0,0,0,.25) }
.plu-news-card__meta time:first-child:before { display:none }
.plu-news-card h3 { margin:12px 0 0;font-size:20px;line-height:1.38;font-weight:900 }
.plu-news-card h3 a { text-decoration:none }
.plu-news-card>p { display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:12px 0 0;color:rgba(0,0,0,.6);font-size:14px;line-height:1.55 }
.plu-news-card>.plu-news-read { margin-top:auto;padding-top:20px }
.plu-news-empty { padding:64px 24px;border:1px solid rgba(0,0,0,.15);background:#fff;text-align:center }
.plu-news-empty h3 { margin:0;font-size:20px;font-weight:900 }
.plu-news-empty p { margin:8px 0 0;color:rgba(0,0,0,.6) }
.plu-news-pagination { display:flex;align-items:center;justify-content:space-between;margin-top:56px;padding-top:24px;border-top:1px solid rgba(0,0,0,.15) }
.plu-news-pagination button { border:0;background:none;font:inherit;font-size:14px;font-weight:800;cursor:pointer }
.plu-news-pagination button:disabled { opacity:.35;cursor:not-allowed }
.plu-news-pagination span { color:rgba(0,0,0,.55);font-size:12px;font-weight:800;text-transform:uppercase }
.plu-news-cta { padding:32px 0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);background:#fff200 }
.plu-news-cta>.plu-news-container { display:flex;align-items:center;justify-content:space-between;gap:20px }
.plu-news-cta p { margin:0;font-size:12px;font-weight:800;text-transform:uppercase }
.plu-news-cta h2 { margin:8px 0 0;font-size:24px;font-weight:900 }
.plu-news-cta a { display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:#000;color:#fff;font-size:14px;font-weight:800;text-decoration:none }
.plu-news-article { padding-bottom:64px }
.plu-news-article-hero { height:80vh;min-height:580px;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#191919;color:#fff }
.plu-news-article-hero>img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover }
.plu-news-article-hero__shade { position:absolute;inset:0;background:linear-gradient(to top,#000 0%,rgba(0,0,0,.32) 55%,transparent 100%) }
.plu-news-article-hero__content { position:relative;padding-bottom:44px }
.plu-news-article-hero__content>p { margin:0 0 24px;font-size:14px;font-weight:700;text-transform:uppercase }
.plu-news-article-hero h1 { max-width:1100px;margin:0 0 24px;font-size:60px;line-height:1.08;font-weight:900 }
.plu-news-article-hero__content>div { display:flex;gap:64px }
.plu-news-article-hero__content span,.plu-news-article-hero__content time { display:flex;flex-direction:column;gap:4px }
.plu-news-article-hero__content small { font-size:12px;color:rgba(255,255,255,.7) }
.plu-news-article-body { width:calc(100% - 40px);max-width:768px;margin:0 auto;padding:48px 0;font-size:17px;line-height:1.8 }
.plu-news-article-body>*:first-child { margin-top:0 }
.plu-news-article-body img { height:auto }
.plu-news-related { padding:48px 0 24px;border-top:1px solid rgba(0,0,0,.15) }
.plu-news-related header { margin-bottom:28px }
@media(max-width:980px) {
  .plu-news-feature-layout { grid-template-columns:1fr }
  .plu-news-latest { padding:24px 0 0;border-top:1px solid rgba(255,255,255,.2);border-left:0 }
  .plu-news-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:700px) {
  .plu-news-container { width:calc(100% - 40px) }
  .plu-newsroom-hero { padding:36px 0 26px }
  .plu-newsroom-hero h1 { font-size:40px }
  .plu-newsroom-hero__copy>p:last-child { font-size:16px }
  .plu-news-feature-stage { padding-bottom:48px }
  .plu-news-feature { min-height:0;display:grid;grid-template-rows:auto auto;background:#fff;color:#000 }
  .plu-news-feature__image { position:relative;inset:auto;aspect-ratio:16/10;overflow:hidden }
  .plu-news-feature__image img { position:absolute;inset:0 }
  .plu-news-feature__shade { display:none }
  .plu-news-feature__content { position:relative;inset:auto;padding:24px;background:#fff;color:#000 }
  .plu-news-feature .plu-news-meta { color:rgba(0,0,0,.58) }
  .plu-news-feature h2 { font-size:30px }
  .plu-news-feature__content>p { color:rgba(0,0,0,.68) }
  .plu-news-feature .plu-news-read--yellow { color:#000 }
  .plu-news-toolbar>.plu-news-container { align-items:stretch;flex-direction:column }
  .plu-news-search { width:100% }
  .plu-news-filters { width:100% }
  .plu-news-archive { padding:48px 0 }
  .plu-news-grid { grid-template-columns:1fr }
  .plu-news-archive__header>p { display:none }
  .plu-news-cta>.plu-news-container { align-items:flex-start;flex-direction:column }
  .plu-news-article-hero { height:72vh;min-height:540px }
  .plu-news-article-hero h1 { font-size:38px }
  .plu-news-article-hero__content>div { gap:24px;flex-direction:column }
  .plu-news-article-body { font-size:16px }
}
.plu-banner-media { position:relative;isolation:isolate;overflow:hidden;background:#050505;color:#fff }
.plu-banner-media::before,.plu-banner-media::after { content:"";position:absolute;inset:0;pointer-events:none }
.plu-banner-media::before { z-index:0;background-image:var(--plu-banner-image);background-position:var(--plu-banner-x,50%) var(--plu-banner-y,50%);background-size:cover;background-repeat:no-repeat;transform:scale(1.012) }
.plu-banner-media::after { z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.68) 48%,rgba(0,0,0,.38) 100%) }
.plu-banner-media.plu-banner-overlay--light::after { background:linear-gradient(90deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.5) 48%,rgba(0,0,0,.22) 100%) }
.plu-banner-media.plu-banner-overlay--strong::after { background:linear-gradient(90deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.82) 52%,rgba(0,0,0,.62) 100%) }
.plu-membership-hero.plu-banner-media>.plu-membership-hero__copy,.plu-membership-hero.plu-banner-media>.plu-membership-hero__mark,.plu-join-banner.plu-banner-media>div,.plu-verify-hero.plu-banner-media>div,.plu-verify-hero.plu-banner-media>aside,.plu-officers-hero.plu-banner-media>div,.plu-officers-hero.plu-banner-media>aside,.plu-page-hero.plu-banner-media>div,.plu-leadership-hero.plu-banner-media>.plu-leadership-hero__inner,.plu-structure-hero.plu-banner-media>.plu-structure-hero__inner,.plu-about-hero.plu-banner-media>.plu-about-hero__inner,.plu-what-hero.plu-banner-media>.plu-what-hero__inner,.plu-contact-hero.plu-banner-media>.plu-contact-hero__inner,.plu-tracker-hero.plu-banner-media>.plu-tracker-hero__inner { position:relative;z-index:2 }
.plu-banner-media .plu-eyebrow,.plu-banner-media .plu-tracker-eyebrow { color:#fff200 }
.plu-banner-media p:not(.plu-eyebrow):not(.plu-tracker-eyebrow) { text-shadow:0 1px 16px rgba(0,0,0,.28) }
/* The membership hero, which needs its own treatment because it already spends
   both pseudo-elements: ::before is its designed ground (a 105deg black-to-red
   wash, pages/membership-overview.css) and ::after is the three-colour strip
   along its foot. Page stylesheets load after this file, so on equal
   specificity that ground wins - which is why setting a banner on /membership/
   changed the markup and painted nothing at all, and why lightening the
   overlay from strong to light looked like nothing happening. It was not.
   Two classes beat one, so these rules take the ground back without touching
   the strip, and the overlay rides WITH the photograph in one background stack
   rather than claiming ::after, which the strip needs. The wash is reproduced
   as that overlay - same angle, same red accent at the same stop, lower alpha -
   so the hero keeps its design and gains the photograph behind it, instead of
   a generic black wipe over somebody's measured composition. */
.plu-membership-hero.plu-banner-media::before { z-index:0;
  background-image:linear-gradient(105deg,rgba(5,5,5,.88) 0%,rgba(5,5,5,.66) 40%,rgba(190,0,18,.22) 67%,rgba(5,5,5,.82) 100%),var(--plu-banner-image);
  background-position:center,var(--plu-banner-x,50%) var(--plu-banner-y,50%);
  background-size:cover,cover; background-repeat:no-repeat,no-repeat }
.plu-membership-hero.plu-banner-media.plu-banner-overlay--light::before {
  background-image:linear-gradient(105deg,rgba(5,5,5,.76) 0%,rgba(5,5,5,.5) 40%,rgba(190,0,18,.18) 67%,rgba(5,5,5,.66) 100%),var(--plu-banner-image) }
.plu-membership-hero.plu-banner-media.plu-banner-overlay--strong::before {
  background-image:linear-gradient(105deg,rgba(5,5,5,.95) 0%,rgba(5,5,5,.82) 40%,rgba(190,0,18,.26) 67%,rgba(5,5,5,.92) 100%),var(--plu-banner-image) }
/* And the strip has to be given back. It lives on ::after in the page
   stylesheet at one class, while the generic overlay rules above are two, so
   turning a banner on replaced yellow-red-white with an 8px black band - which
   is what the live page shows today, under the banner that never painted.
   Restated here at two and three classes so it outranks them. The gradient is
   the page stylesheet's, and a test holds the two identical so they cannot
   drift apart. */
.plu-membership-hero.plu-banner-media::after,
.plu-membership-hero.plu-banner-media.plu-banner-overlay--light::after,
.plu-membership-hero.plu-banner-media.plu-banner-overlay--strong::after {
  background:linear-gradient(90deg,var(--plu-yellow) 0 62%,var(--plu-red) 62% 78%,#fff 78%) }
.plu-structure-hero.plu-banner-media::after { background:linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.76) 43%,rgba(0,0,0,.43) 72%,rgba(0,0,0,.56) 100%) }
.plu-structure-hero.plu-banner-media.plu-banner-overlay--light::after { background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.62) 43%,rgba(0,0,0,.28) 72%,rgba(0,0,0,.4) 100%) }
.plu-structure-hero.plu-banner-media.plu-banner-overlay--strong::after { background:linear-gradient(90deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.86) 48%,rgba(0,0,0,.62) 76%,rgba(0,0,0,.7) 100%) }
.plu-structure-hero.plu-banner-media .plu-structure-orbit { border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,.62) 0%,rgba(0,0,0,.34) 43%,transparent 70%) }
.plu-structure-hero.plu-banner-media .plu-structure-orbit__ring--outer { border-color:rgba(255,242,0,.72) }
.plu-structure-hero.plu-banner-media .plu-structure-orbit__ring--inner { border-color:rgba(255,255,255,.4) }
@media(max-width:760px) {
  .plu-banner-media::after,.plu-banner-media.plu-banner-overlay--light::after,.plu-structure-hero.plu-banner-media::after,.plu-structure-hero.plu-banner-media.plu-banner-overlay--light::after { background:linear-gradient(180deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.68) 58%,rgba(0,0,0,.55) 100%) }
  .plu-banner-media.plu-banner-overlay--strong::after,.plu-structure-hero.plu-banner-media.plu-banner-overlay--strong::after { background:linear-gradient(180deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.82) 58%,rgba(0,0,0,.7) 100%) }
}
.plu-main h1, .plu-main h2, .plu-main h3, .plu-page h1, .plu-page h2, .plu-page h3 { font-family: inherit; letter-spacing: 0; }
.plu-slide h1 { font-size: clamp(48px, 5vw, 68px); line-height: .98; }
.plu-page-hero h1 { font-size: clamp(42px, 5vw, 62px); line-height: 1; }
.plu-membership-hero h1, .plu-verify-hero h1, .plu-officers-hero h1, .plu-structure-hero h1 { font-size: clamp(48px, 5.6vw, 72px); line-height: 1; }
.plu-person-copy h2, .plu-gs-message h2, .plu-vision-card h2, .plu-section-title-row h2 { font-size: clamp(28px, 2.7vw, 38px); line-height: 1.08; }
@media (max-width: 620px) {
  .plu-slide h1 { font-size: 42px; }
  .plu-membership-hero h1, .plu-verify-hero h1, .plu-officers-hero h1, .plu-structure-hero h1 { font-size: 42px; }
}
.plu-home-news__layout { grid-template-columns: minmax(0,1.55fr) minmax(310px,.65fr); gap: 24px; }
.plu-home-news__news-column { min-width: 0; }
.plu-home-news__selectors { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.plu-home-news__selectors button { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 9px; min-height: 76px; padding: 8px; }
.plu-home-news__selectors img { width: 48px; height: 58px; }
.plu-home-news__selectors strong { font-size: 11px; }
.plu-home-news__selectors time { margin-top: 5px; font-size: 8px; }
.plu-home-events { min-height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 4px; background: #050505; color: #fff; box-shadow: 0 22px 50px rgba(0,0,0,.14); }
.plu-home-events > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 28px 26px 24px; border-bottom: 1px solid rgba(255,255,255,.16); }
.plu-home-events > header .plu-eyebrow { margin: 0; color: #fff200; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.plu-home-events > header h3 { margin: 8px 0 0; color: #fff; font-size: 26px; line-height: 1.1; font-weight: 900; }
.plu-home-events > header > span { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; background: #fff200; color: #000; }
.plu-home-events > header svg { width: 23px; height: 23px; }
.plu-home-events__list { flex: 1; }
.plu-home-events__list > a { display: grid; grid-template-columns: 54px minmax(0,1fr) 18px; align-items: center; gap: 14px; padding: 22px 24px; border-bottom: 1px solid rgba(255,255,255,.13); color: #fff; text-decoration: none; transition: background .2s; }
.plu-home-events__list > a:hover { background: rgba(255,242,0,.09); }
.plu-home-events__list time { min-height: 58px; display: grid; place-content: center; border: 1px solid rgba(255,242,0,.5); color: #fff200; text-align: center; }
.plu-home-events__list time b { font-size: 23px; line-height: 1; }
.plu-home-events__list time span { margin-top: 4px; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.plu-home-events__list a > span { min-width: 0; }
.plu-home-events__list small { display: block; color: rgba(255,255,255,.55); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.plu-home-events__list strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin-top: 6px; font-size: 15px; line-height: 1.3; }
.plu-home-events__list em { display: block; overflow: hidden; margin-top: 6px; color: rgba(255,255,255,.65); font-size: 11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.plu-home-events__list i { color: #fff200; font-style: normal; transition: transform .2s; }
.plu-home-events__list a:hover i { transform: translateX(3px); }
.plu-home-events__empty { min-height: 300px; display: grid; align-content: center; justify-items: start; gap: 16px; padding: 30px; }
.plu-home-events__empty > span { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(255,242,0,.45); color: #fff200; font-size: 28px; }
.plu-home-events__empty p { max-width: 250px; margin: 0; color: rgba(255,255,255,.65); line-height: 1.65; }
.plu-home-events > footer { padding: 20px 24px; background: #fff200; }
.plu-home-events > footer a { display: flex; align-items: center; justify-content: space-between; color: #000; font-size: 12px; font-weight: 900; text-transform: uppercase; text-decoration: none; }
.plu-events-page,.plu-event-single { background: #f7f7f2; color: #050505; font-family: 'Geist PLU',Arial,Helvetica,sans-serif; }
.plu-events-shell { width: calc(100% - 64px); max-width: 1376px; margin: 0 auto; }
.plu-events-hero { position: relative; overflow: hidden; padding: 80px 0; background: #050505; color: #fff; }
.plu-events-hero:after { content: ''; position: absolute; top: -110px; right: 4%; width: 330px; height: 330px; border: 1px solid rgba(255,242,0,.25); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,242,0,.04),0 0 0 140px rgba(255,242,0,.025); }
.plu-events-hero__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.4fr) minmax(270px,.6fr); align-items: end; gap: 80px; }
.plu-events-hero .plu-hero-rule { display: block; width: 64px; height: 5px; margin-bottom: 20px; background: #fff200; }
.plu-events-hero .plu-eyebrow { margin: 0; color: #fff200; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.plu-events-hero h1 { max-width: 850px; margin: 14px 0 18px; color: #fff; font-size: 68px; line-height: 1; font-weight: 900; }
.plu-events-hero__layout > div > p:last-child { max-width: 720px; margin: 0; color: rgba(255,255,255,.7); font-size: 18px; line-height: 1.65; }
.plu-events-hero aside { display: grid; grid-template-columns: 78px 1fr; gap: 16px; padding: 20px; border-left: 4px solid #fff200; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.plu-events-hero aside > small { grid-column: 1/-1; color: #fff200; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.plu-events-hero aside time { display: grid; place-content: center; min-height: 76px; background: #fff200; color: #000; text-align: center; }
.plu-events-hero aside time b { font-size: 31px; line-height: 1; }
.plu-events-hero aside time span { font-size: 9px; font-weight: 900; text-transform: uppercase; }
.plu-events-hero aside a,.plu-events-hero aside > strong { align-self: center; color: #fff; font-size: 15px; line-height: 1.35; font-weight: 800; text-decoration: none; }
.plu-events-list { padding: 72px 0; }
.plu-events-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid rgba(0,0,0,.16); }
.plu-events-section-title .plu-eyebrow { margin: 0; color: #e21b23; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.plu-events-section-title h2 { margin: 8px 0 0; font-size: 38px; line-height: 1.1; font-weight: 900; }
.plu-events-section-title > span { color: rgba(0,0,0,.55); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.plu-event-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.plu-event-card { display: grid; grid-template-columns: minmax(160px,.55fr) 76px minmax(0,1.2fr); min-height: 260px; overflow: hidden; border: 1px solid rgba(0,0,0,.12); background: #fff; }
.plu-event-card__media { position: relative; min-height: 100%; overflow: hidden; background: #fff200; text-decoration: none; }
.plu-event-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.plu-event-card:hover .plu-event-card__media img { transform: scale(1.03); }
.plu-event-card__media > span { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: #050505; font-size: 52px; line-height: 1; font-weight: 900; text-transform: uppercase; }
.plu-event-card__date { display: flex; align-items: center; flex-direction: column; padding-top: 26px; border-right: 1px solid rgba(0,0,0,.1); }
.plu-event-card__date time { text-align: center; }
.plu-event-card__date time b { display: block; font-size: 34px; line-height: 1; }
.plu-event-card__date time span { display: block; margin-top: 5px; color: #e21b23; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.plu-event-card__date small { margin-top: 24px; color: rgba(0,0,0,.45); font-size: 9px; font-weight: 800; writing-mode: vertical-rl; }
.plu-event-card__copy { display: flex; align-items: flex-start; flex-direction: column; padding: 26px; }
.plu-event-card__copy > div { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; color: rgba(0,0,0,.5); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.plu-event-status { display: inline-flex; width: fit-content; padding: 5px 8px; background: #fff200; color: #000; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.plu-event-status--cancelled { background: #e21b23; color: #fff; }
.plu-event-status--postponed { background: #eee; }
.plu-event-status--completed { background: #111; color: #fff; }
.plu-event-card h3 { margin: 14px 0 0; font-size: 21px; line-height: 1.25; font-weight: 900; }
.plu-event-card h3 a { color: inherit; text-decoration: none; }
.plu-event-card__copy > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 12px 0 0; color: rgba(0,0,0,.6); font-size: 13px; line-height: 1.55; }
.plu-event-card__copy > a { margin-top: auto; padding-top: 18px; color: #000; font-size: 11px; font-weight: 900; text-transform: uppercase; text-decoration: none; }
.plu-events-empty { min-height: 280px; display: grid; align-content: center; justify-items: center; padding: 40px; border: 1px solid rgba(0,0,0,.14); background: #fff; text-align: center; }
.plu-events-empty > span { width: 58px; height: 58px; display: grid; place-items: center; background: #fff200; font-size: 28px; }
.plu-events-empty h3 { margin: 18px 0 0; font-size: 23px; }
.plu-events-empty p { max-width: 520px; margin: 8px 0 0; color: rgba(0,0,0,.6); }
.plu-events-past { padding: 56px 0 72px; border-top: 1px solid rgba(0,0,0,.1); background: #fff; }
.plu-events-past__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: rgba(0,0,0,.12); }
.plu-events-past__grid a { min-height: 140px; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 10px; padding: 24px; background: #fff; color: #000; text-decoration: none; }
.plu-events-past__grid time { grid-column: 1/-1; color: #e21b23; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.plu-events-past__grid strong { font-size: 16px; line-height: 1.35; }
.plu-event-single__hero { padding: 88px 0 70px; background: #050505; color: #fff; }
.plu-event-single__hero.has-image { position: relative; min-height: 620px; display: flex; align-items: flex-end; overflow: hidden; }
.plu-event-single__hero > img,.plu-event-single__hero > span { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.plu-event-single__hero > span { background: linear-gradient(to top,#000 0%,rgba(0,0,0,.45) 55%,rgba(0,0,0,.08)); }
.plu-event-single__hero .plu-events-shell { position: relative; z-index: 1; }
.plu-event-single__hero .plu-eyebrow { margin: 0 0 18px; color: #fff200; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.plu-event-single__hero .plu-eyebrow a { color: inherit; }
.plu-event-single__hero h1 { max-width: 980px; margin: 0; color: #fff; font-size: 58px; line-height: 1.05; font-weight: 900; }
.plu-event-single__hero .plu-events-shell > p:last-child { max-width: 760px; margin: 20px 0 0; color: rgba(255,255,255,.75); font-size: 18px; }
.plu-event-single__layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; align-items: start; gap: 72px; padding-top: 64px; padding-bottom: 80px; }
.plu-event-single__body { min-width: 0; font-size: 17px; line-height: 1.8; }
.plu-event-single__body > *:first-child { margin-top: 0; }
.plu-event-single__body img { height: auto; }
.plu-event-single__details { position: sticky; top: 110px; padding: 28px; border-top: 5px solid #fff200; background: #050505; color: #fff; }
.plu-event-single__details > div { display: grid; gap: 5px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.plu-event-single__details small { color: #fff200; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.plu-event-single__details strong { font-size: 16px; }
.plu-event-single__details span { color: rgba(255,255,255,.6); font-size: 13px; }
.plu-event-single__details > a { display: flex; justify-content: space-between; margin-top: 24px; padding: 13px 16px; background: #fff200; color: #000; font-size: 11px; font-weight: 900; text-transform: uppercase; text-decoration: none; }
.plu-event-single__details > .plu-event-single__back { justify-content: center; margin-top: 10px; border: 1px solid rgba(255,255,255,.25); background: transparent; color: #fff; }
@media(max-width:1100px) {
  .plu-event-grid { grid-template-columns:1fr }
  .plu-events-hero__layout { gap:40px }
  .plu-event-single__layout { gap:40px }
}
@media(max-width:980px) {
  .plu-home-news__layout { grid-template-columns:1fr }
  .plu-home-news__selectors { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .plu-home-events { min-height:0 }
  .plu-home-events__list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) }
  .plu-home-events__list>a { grid-template-columns:48px minmax(0,1fr);align-items:start }
  .plu-home-events__list>a>i { display:none }
  .plu-home-events__empty { grid-column:1/-1;min-height:180px }
  .plu-events-hero__layout { grid-template-columns:1fr }
  .plu-events-hero aside { max-width:440px }
  .plu-event-single__layout { grid-template-columns:1fr }
  .plu-event-single__details { position:static }
}
@media(max-width:700px) {
  .plu-events-shell { width:calc(100% - 40px) }
  .plu-events-hero { padding:58px 0 }
  .plu-events-hero h1 { font-size:44px }
  .plu-events-hero__layout>div>p:last-child { font-size:16px }
  .plu-home-events__list { grid-template-columns:1fr }
  .plu-home-events__list>a { grid-template-columns:54px minmax(0,1fr) 18px;align-items:center }
  .plu-home-events__list>a>i { display:block }
  .plu-home-news__selectors { grid-template-columns:1fr }
  .plu-events-list { padding:48px 0 }
  .plu-events-section-title { align-items:flex-start;flex-direction:column }
  .plu-events-section-title h2 { font-size:32px }
  .plu-event-card { grid-template-columns:72px minmax(0,1fr) }
  .plu-event-card__media { grid-column:1/-1;min-height:210px }
  .plu-event-card__date { grid-column:1;padding-top:22px }
  .plu-event-card__copy { grid-column:2;padding:22px 18px }
  .plu-events-past__grid { grid-template-columns:1fr }
  .plu-event-single__hero { padding:62px 0 50px }
  .plu-event-single__hero.has-image { min-height:520px }
  .plu-event-single__hero h1 { font-size:40px }
  .plu-event-single__layout { padding-top:42px;padding-bottom:56px }
}
.plu-home-news__media img,
.plu-home-news__selectors img { object-position: var(--plu-news-focus-x,50%) var(--plu-news-focus-y,32%); }
@media (max-width: 760px) {
  /* The legacy theme's mobile baseline. These five global rules head its
     "Mobile experience" block; without them every inherited line box below
     760px was 6% short of the reference and long words could not break. */
  html, body { max-width: 100%; overflow-x: clip; }
  body { font-size: 16px; line-height: 1.6; }
  main, section, article, aside, div, form { min-width: 0; }
  h1, h2, h3, p, a, button, label, td, th { overflow-wrap: break-word; }
  input, select, textarea, button { max-width: 100%; }

  .plu-button, .plu-mini-button { min-height: 44px; }
  .plu-page-actions { gap: 10px; }
  .plu-page-actions > a { flex: 1 1 100%; width: 100%; }
  .plu-leadership-hero.plu-banner-media,
  .plu-structure-hero.plu-banner-media,
  .plu-about-hero.plu-banner-media,
  .plu-what-hero.plu-banner-media,
  .plu-officers-hero.plu-banner-media,
  .plu-contact-hero.plu-banner-media,
  .plu-tracker-hero.plu-banner-media,
  .plu-join-banner.plu-banner-media,
  .plu-page-hero.plu-banner-media { min-height: 0;
    padding-top: 240px;
    background: #050505; }
  .plu-leadership-hero.plu-banner-media::before,
  .plu-structure-hero.plu-banner-media::before,
  .plu-about-hero.plu-banner-media::before,
  .plu-what-hero.plu-banner-media::before,
  .plu-officers-hero.plu-banner-media::before,
  .plu-contact-hero.plu-banner-media::before,
  .plu-tracker-hero.plu-banner-media::before,
  .plu-join-banner.plu-banner-media::before,
  .plu-page-hero.plu-banner-media::before,
  .plu-leadership-hero.plu-banner-media::after,
  .plu-structure-hero.plu-banner-media::after,
  .plu-about-hero.plu-banner-media::after,
  .plu-what-hero.plu-banner-media::after,
  .plu-officers-hero.plu-banner-media::after,
  .plu-contact-hero.plu-banner-media::after,
  .plu-tracker-hero.plu-banner-media::after,
  .plu-join-banner.plu-banner-media::after,
  .plu-page-hero.plu-banner-media::after { top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    height: 240px;
    transform: none; }
  .plu-leadership-hero.plu-banner-media::after,
  .plu-structure-hero.plu-banner-media::after,
  .plu-about-hero.plu-banner-media::after,
  .plu-what-hero.plu-banner-media::after,
  .plu-officers-hero.plu-banner-media::after,
  .plu-contact-hero.plu-banner-media::after,
  .plu-tracker-hero.plu-banner-media::after,
  .plu-join-banner.plu-banner-media::after,
  .plu-page-hero.plu-banner-media::after { background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.22)); }
  .plu-leadership-hero__inner,
  .plu-structure-hero__inner,
  .plu-about-hero__inner,
  .plu-what-hero__inner,
  .plu-contact-hero__inner,
  .plu-tracker-hero__inner { min-height: 0;
    padding: 28px 20px 32px;
    background: #050505; }
  .plu-leadership-hero h1,
  .plu-structure-hero h1,
  .plu-about-hero h1,
  .plu-what-hero h1,
  .plu-officers-hero h1,
  .plu-contact-hero h1,
  .plu-tracker-hero h1,
  .plu-page-hero h1 { font-size: 36px; line-height: 1.08; }
  .plu-leadership-hero aside,
  .plu-about-hero aside,
  .plu-what-hero aside,
  .plu-contact-hero aside { margin-top: 22px; padding: 20px 0 0; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; }
  .plu-join-banner.plu-banner-media > div,
  .plu-page-hero.plu-banner-media > div { padding: 28px 20px 32px; background: #050505; }
  .home .plu-slider { height: 640px; background: #050505; }
  .home .plu-slider--member-count { height: 760px; }
  .home .plu-slide > img { top: 0; height: 310px; object-fit: cover; }
  .home .plu-slide__shade,
  .home .plu-slide--text-right .plu-slide__shade,
  .home .plu-slide--text-bottom-right .plu-slide__shade,
  .home .plu-slide--text-bottom-left .plu-slide__shade,
  .home .plu-slide--text-center .plu-slide__shade { top: 0;
    bottom: auto;
    height: 310px;
    background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.34)); }
  .home .plu-slide__content,
  .home .plu-slide--text-right .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content,
  .home .plu-slide--text-bottom-left .plu-slide__content,
  .home .plu-slide--text-center .plu-slide__content { top: 330px;
    right: 20px;
    bottom: auto;
    left: 20px;
    width: auto;
    max-width: calc(100vw - 40px);
    overflow: hidden;
    text-align: left;
    transform: none; }
  .home .plu-slide--text-center .plu-hero-rule,
  .home .plu-slide--text-center p:not(.plu-eyebrow) { margin-right: 0; margin-left: 0; }
  .home .plu-slide--text-center .plu-slide__actions { justify-content: flex-start; }
  .home .plu-slide h1,
  .home .plu-slide h2 { max-width: 100%; font-size: clamp(29px, 8.5vw, 34px); line-height: 1.08; overflow-wrap: break-word; }
  .home .plu-slide p:not(.plu-eyebrow) { max-width: none; font-size: 14px; line-height: 1.5; -webkit-line-clamp: 2; }
  .home .plu-slide-member-rail { min-height: 122px; }
  .home .plu-slide-member-rail__inner { min-height: 118px; grid-template-columns: minmax(0,1.35fr) minmax(118px,.65fr); grid-template-rows: 1fr 1fr; }
  .home .plu-slide-member-rail__lead { grid-row: 1 / 3; grid-template-columns: 1fr; grid-template-rows: auto auto auto; column-gap: 0; padding: 14px 16px 17px 20px; }
  .home .plu-slide-member-rail__lead > small { grid-column: 1; grid-row: 1; }
  .home .plu-slide-member-rail__lead > strong { grid-column: 1; grid-row: 2; min-width: 0; margin-top: 5px; font-size: 36px; text-align: left; }
  .home .plu-slide-member-rail__lead > span { grid-column: 1; grid-row: 3; margin-top: 4px; font-size: 9px; }
  .home .plu-slide-member-rail__stat { gap: 1px; padding: 9px 13px; border-right: 0; border-bottom: 1px solid rgba(0,0,0,.12); }
  .home .plu-slide-member-rail__stat strong { font-size: 21px; }
  .home .plu-slide-member-rail__stat small { font-size: 8px; }
  .home .plu-slide-member-rail__stat--diaspora { display: none; }
  .home .plu-slide-member-rail__action { gap: 2px; padding: 8px 13px 11px; }
  .home .plu-slide-member-rail__action small { font-size: 8px; }
  .home .plu-slide-member-rail__action strong { gap: 7px; font-size: 12px; }
  .home .plu-slide-member-rail__action i { width: 22px; height: 22px; font-size: 13px; }
  .home .plu-slide__actions { margin-top: 18px; }
  .home .plu-slider__count { bottom: 143px; left: 20px; }
  .home .plu-slider__controls { right: 14px; bottom: 135px; }
  .home .plu-top-row,
  .home .plu-gs-row,
  .home .plu-membership-row,
  .home .plu-programmes-section { padding-right: 16px; padding-left: 16px; }
  .home .plu-chairman-card .plu-person-photo,
  .home .plu-gs-photo { height: 310px; min-height: 0; }
  .home .plu-gs-photo img { height: 100%; max-width: 100%; object-position: 50% 92%; transform: none; }
  .home .plu-person-copy,
  .home .plu-gs-message { padding: 26px 22px; }
  .home .plu-home-news__inner { width: calc(100% - 32px); }
  .home .plu-home-news__media { min-height: 225px; }
  .home .plu-home-news__content h3 { font-size: 24px; }
  .plu-leadership-content { padding: 34px 16px 64px; }
  .plu-featured-leader .plu-leader-photo { height: 340px; }
  .plu-leader-card .plu-leader-photo { height: 300px; }
  .plu-featured-leader .plu-leader-photo img,
  .plu-leader-card .plu-leader-photo img { object-fit: contain;
    object-position: var(--plu-leader-focus-x, 50%) var(--plu-leader-focus-y, 50%); }
  .plu-leader-card .plu-leader-card__content { padding: 20px; }
  .plu-leader-card h3 { font-size: 20px; }
  .plu-leader-card p:not(.plu-eyebrow) { font-size: 14px; line-height: 1.65; }
  .plu-form, .plu-designed-content { padding: 20px 16px; }
  .plu-structure-jumpbar__inner { padding: 0; grid-template-columns: 1fr; }
  .plu-structure-jumpbar__inner > p { display: none; }
  .plu-structure-jumpbar__inner > div { padding: 0 12px; scroll-snap-type: x proximity; }
  .plu-structure-jump { scroll-snap-align: start; }
  .plu-structure-explore__inner, .plu-roles-layout, .plu-groups-layout, .plu-coordination-panel { padding-right: 18px; padding-left: 18px; }
  .plu-contact-content { padding: 40px 16px 64px; }
  .plu-contact-form-panel > div, .plu-contact-cards article { padding: 22px 18px; }
  .plu-contact-information > header h2, .plu-contact-form-panel h2 { font-size: 30px; }
  .plu-news-container, .plu-events-shell, .plu-tracker-container { width: calc(100% - 32px); }
  .plu-news-feature { min-height: 0; }
  .plu-news-feature__content { padding: 22px 18px; }
  .plu-news-feature h2 { font-size: 30px; }
  .plu-news-article-hero h1, .plu-event-single__hero h1 { font-size: 34px; }
  .plu-event-card { grid-template-columns: 66px minmax(0,1fr); }
  .plu-event-card__copy { padding: 20px 16px; }
}
@media (max-width: 360px) {
  .home .plu-slide h1, .home .plu-slide h2 { font-size: 31px; }
  .plu-leadership-hero h1, .plu-structure-hero h1, .plu-about-hero h1, .plu-what-hero h1,
  .plu-officers-hero h1, .plu-contact-hero h1, .plu-tracker-hero h1, .plu-page-hero h1 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .plu-slide, .plu-slide > img, [data-plu-reveal], .plu-home-news__media img { transition: none !important; animation: none !important; transform: none !important; }
}
.single-plu_news .plu-news-article { background:#f2f3ef; }
.single-plu_news .plu-news-article-hero { height:480px; min-height:0; background:#161616; }
.single-plu_news .plu-news-article-hero > img { object-position:var(--plu-news-focus-x,50%) var(--plu-news-focus-y,32%); }
.single-plu_news .plu-news-article-intro { padding:38px 0 40px; border-bottom:4px solid #fff200; }
.single-plu_news .plu-news-article-intro::before { display:none; }
.single-plu_news .plu-news-article-hero__content { width:calc(100% - 64px); max-width:1120px; }
.single-plu_news .plu-news-article-back { margin-bottom:20px; }
.single-plu_news .plu-news-article-hero h1 { max-width:980px; margin:0 0 16px; font-size:50px; line-height:1.06; }
.single-plu_news .plu-news-article-deck { max-width:820px; font-size:18px; }
.single-plu_news .plu-news-article-meta { gap:18px 42px; }
.single-plu_news .plu-news-article-meta span,
.single-plu_news .plu-news-article-meta time { display:flex; flex-direction:column; gap:4px; font-size:12px; }
.single-plu_news .plu-news-article-meta small { color:rgba(255,255,255,.52); font-size:9px; font-weight:900; text-transform:uppercase; }
.single-plu_news .plu-news-article-meta span + time::before { left:-22px; height:27px; }
.single-plu_news .plu-news-story-stage { padding:58px 0 72px; background:#f2f3ef; }
.single-plu_news .plu-news-story-layout { width:calc(100% - 64px); max-width:1120px; display:grid; grid-template-columns:210px minmax(0,1fr); align-items:start; gap:58px; padding:54px 56px 70px; background:#fff; box-shadow:0 18px 48px rgba(20,24,22,.07); }
.single-plu_news .plu-news-article-rail { position:sticky; top:104px; min-width:0; padding-top:18px; border-top:5px solid #fff200; }
.single-plu_news .plu-news-article-rail > p { margin:0; color:#b3161c; font-size:9px; font-weight:900; text-transform:uppercase; }
.single-plu_news .plu-news-article-rail dl { display:grid; gap:0; margin:18px 0 0; }
.single-plu_news .plu-news-article-rail dl > div { padding:14px 0; border-top:1px solid #deded8; }
.single-plu_news .plu-news-article-rail dt { color:#757575; font-size:9px; font-weight:900; text-transform:uppercase; }
.single-plu_news .plu-news-article-rail dd { margin:5px 0 0; overflow-wrap:anywhere; font-size:12px; font-weight:800; line-height:1.45; }
.single-plu_news .plu-news-article-rail nav { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; padding-top:17px; border-top:1px solid #deded8; }
.single-plu_news .plu-news-article-rail nav > span { width:100%; margin-bottom:2px; color:#757575; font-size:9px; font-weight:900; text-transform:uppercase; }
.single-plu_news .plu-news-article-rail nav a { min-height:30px; display:inline-flex; align-items:center; padding:0 9px; border:1px solid #cfcfca; color:#111; font-size:9px; font-weight:900; text-decoration:none; }
.single-plu_news .plu-news-article-rail nav a:hover { border-color:#111; background:#111; color:#fff; }
.single-plu_news .plu-news-article-rail__back { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:24px; padding-top:16px; border-top:1px solid #deded8; color:#111; font-size:10px; font-weight:900; text-decoration:none; text-transform:uppercase; }
.single-plu_news .plu-news-article-body { width:auto; max-width:790px; margin:0; padding:0; background:transparent; box-shadow:none; color:#252825; font-family:'Geist PLU',Arial,Helvetica,sans-serif; font-size:17px; line-height:1.78; }
.single-plu_news .plu-news-article-body > p:first-of-type { color:#151715; font-size:20px; font-weight:560; line-height:1.65; }
.single-plu_news .plu-news-article-body p { margin:0 0 1.35em; }
.single-plu_news .plu-news-article-body p:empty { display:none; }
.single-plu_news .plu-news-article-body h2 { font-size:29px; }
.single-plu_news .plu-news-article-body h3 { font-size:23px; }
.single-plu_news .plu-news-article-body blockquote { margin:2em 0; padding:26px 28px 26px 32px; font-size:21px; }
.single-plu_news .plu-news-article-body img,
.single-plu_news .plu-news-article-body figure,
.single-plu_news .plu-news-article-body .wp-caption { width:100% !important; max-width:100% !important; }
.single-plu_news .plu-news-article-body img { margin:30px 0; }
.single-plu_news .plu-news-article-body figure,
.single-plu_news .plu-news-article-body .wp-caption { margin:34px 0; }
.single-plu_news .plu-news-article-body figure img,
.single-plu_news .plu-news-article-body .wp-caption img { width:100%; margin:0; }
.single-plu_news .plu-news-article-body figcaption,
.single-plu_news .plu-news-article-body .wp-caption-text { padding:10px 0 0; font-size:11px; }
.single-plu_news .plu-news-related { padding:58px 0 72px; }
.single-plu_news .plu-news-related > .plu-news-container { max-width:1120px; }
.single-plu_news .plu-news-related header { margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid #dadad5; }
.single-plu_news .plu-news-related header h2 { font-size:32px; }
.single-plu_news .plu-news-related header > a { display:inline-flex; align-items:center; gap:8px; color:#111; font-size:10px; font-weight:900; text-decoration:none; text-transform:uppercase; }
.single-plu_news .plu-news-related .plu-news-card__image { aspect-ratio:16/9; }
.single-plu_news .plu-news-related .plu-news-card h3 { font-size:17px; }
@media (max-width:980px) {
  .single-plu_news .plu-news-article-hero { height:400px; }
  .single-plu_news .plu-news-article-hero h1 { font-size:43px; }
  .single-plu_news .plu-news-story-layout { grid-template-columns:1fr; gap:34px; padding:42px 44px 58px; }
  .single-plu_news .plu-news-article-rail { position:static; display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px 30px; padding-top:15px; }
  .single-plu_news .plu-news-article-rail > p { grid-column:1 / -1; }
  .single-plu_news .plu-news-article-rail dl { grid-column:1; grid-row:2; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; }
  .single-plu_news .plu-news-article-rail dl > div { padding:0; border-top:0; }
  .single-plu_news .plu-news-article-rail nav { grid-column:2; grid-row:2; align-content:start; margin:0; padding:0 0 0 24px; border-top:0; border-left:1px solid #ddd; }
  .single-plu_news .plu-news-article-rail__back { display:none; }
  .single-plu_news .plu-news-article-body { max-width:none; }
}
@media (max-width:700px) {
  .single-plu_news .plu-news-article-hero { height:260px; }
  .single-plu_news .plu-news-article-intro { padding:28px 0 30px; }
  .single-plu_news .plu-news-article-hero__content { width:calc(100% - 32px); }
  .single-plu_news .plu-news-article-back { margin-bottom:16px; }
  .single-plu_news .plu-news-article-hero__content > .plu-news-article-category { margin-bottom:12px; }
  .single-plu_news .plu-news-article-hero h1 { font-size:32px; line-height:1.1; }
  .single-plu_news .plu-news-article-deck { font-size:16px; }
  .single-plu_news .plu-news-article-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 22px; }
  .single-plu_news .plu-news-article-meta span + time::before { display:none; }
  .single-plu_news .plu-news-story-stage { padding:0 0 42px; }
  .single-plu_news .plu-news-story-layout { width:100%; display:block; padding:0; box-shadow:none; }
  .single-plu_news .plu-news-article-rail { display:grid; grid-template-columns:1fr; gap:12px; padding:18px 20px; border-top:0; border-bottom:1px solid #e0d500; background:#fffbd0; }
  .single-plu_news .plu-news-article-rail > p { display:none; }
  .single-plu_news .plu-news-article-rail dl { grid-column:1; grid-row:auto; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .single-plu_news .plu-news-article-rail dl > div:first-child { display:none; }
  .single-plu_news .plu-news-article-rail nav { grid-column:1; grid-row:auto; padding:12px 0 0; border-top:1px solid rgba(0,0,0,.12); border-left:0; }
  .single-plu_news .plu-news-article-body { width:100%; margin:0; padding:34px 20px 48px; font-size:16px; line-height:1.72; }
  .single-plu_news .plu-news-article-body > p:first-of-type { font-size:18px; line-height:1.6; }
  .single-plu_news .plu-news-article-body h2 { font-size:25px; }
  .single-plu_news .plu-news-article-body h3 { font-size:21px; }
  .single-plu_news .plu-news-article-body img { margin:26px 0; }
  .single-plu_news .plu-news-article-body figure,
  .single-plu_news .plu-news-article-body .wp-caption { margin:28px 0; }
  .single-plu_news .plu-news-related { padding:42px 0 52px; }
  .single-plu_news .plu-news-related header { align-items:flex-start; }
  .single-plu_news .plu-news-related header h2 { font-size:28px; }
}
@media (max-width:760px) {
  .home .plu-slider { height:704px; }
  .home .plu-slider--member-count { height:760px; }
  .home .plu-slide > img { height:276px; }
  .home .plu-slide__shade,
  .home .plu-slide--text-right .plu-slide__shade,
  .home .plu-slide--text-bottom-right .plu-slide__shade,
  .home .plu-slide--text-bottom-left .plu-slide__shade,
  .home .plu-slide--text-center .plu-slide__shade { height:276px;
    background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.28)); }
  .home .plu-slide__content,
  .home .plu-slide--text-right .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content,
  .home .plu-slide--text-bottom-left .plu-slide__content,
  .home .plu-slide--text-center .plu-slide__content { top:352px;
    right:20px;
    left:20px;
    max-width:calc(100vw - 40px); }
  .home .plu-slide h1,
  .home .plu-slide h2 { font-size:clamp(28px,8vw,32px); line-height:1.06; }
  .home .plu-slide p:not(.plu-eyebrow) { margin-top:12px; -webkit-line-clamp:2; }
  .home .plu-slide__actions { gap:12px; margin-top:14px; }
  .home .plu-slide__secondary { padding:9px 0; }
  .home .plu-slider__count { top:299px; bottom:auto; left:20px; }
  .home .plu-slider__controls { top:288px; right:14px; bottom:auto; }
  .home .plu-slide-member-rail { min-height:150px; }
  .home .plu-slide-member-rail__inner { min-height:146px;
    grid-template-columns:minmax(0,1fr) 134px;
    grid-template-rows:1fr 1fr; }
  .home .plu-slide-member-rail__lead { padding:16px 15px 18px 20px; }
  .home .plu-slide-member-rail__lead > strong { margin-top:5px; font-size:38px; }
  .home .plu-slide-member-rail__lead > span { font-size:9px; }
  .home .plu-slide-member-rail__stat { gap:3px; padding:10px 13px; }
  .home .plu-slide-member-rail__stat strong { font-size:24px; }
  .home .plu-slide-member-rail__stat small { font-size:9px; line-height:1.2; }
  .home .plu-slide-member-rail__action { gap:4px; padding:10px 13px 12px; }
  .home .plu-slide-member-rail__action small { font-size:9px; }
  .home .plu-slide-member-rail__action strong { gap:7px; font-size:13px; }
  .home .plu-slide-member-rail__action i { width:23px; height:23px; font-size:13px; }
  .home .plu-slide--has-member-rail .plu-slide__content { max-height:238px; overflow:hidden; }
}
@media (max-width:760px) {
  .home .plu-slider--member-count { height:740px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { min-height:128px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr) minmax(118px,.95fr); }
  .home .plu-slide-member-rail.plu-slide-endorsement-rail { min-height:132px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { min-width:0; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead { padding:12px 10px 12px 16px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > strong { font-size:29px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > small,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > span,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat small { overflow-wrap:anywhere; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat { padding:12px 9px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat strong { font-size:23px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { padding:12px 9px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action strong { font-size:10px; }
}
@media (max-width:380px) {
  .home .plu-slider--member-count { height:728px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { grid-template-columns:minmax(0,1.1fr) minmax(78px,.72fr) minmax(105px,.88fr); }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > strong { font-size:26px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action strong { font-size:9px; }
}
@media (max-width:380px) {
  .home .plu-slider--member-count { height:748px; }
  .home .plu-slide__content,
  .home .plu-slide--text-right .plu-slide__content,
  .home .plu-slide--text-bottom-right .plu-slide__content,
  .home .plu-slide--text-bottom-left .plu-slide__content,
  .home .plu-slide--text-center .plu-slide__content { top:344px; }
  .home .plu-slide p:not(.plu-eyebrow) { -webkit-line-clamp:1; }
  .home .plu-slide-member-rail { min-height:142px; }
  .home .plu-slide-member-rail__inner { min-height:138px; grid-template-columns:minmax(0,1fr) 124px; }
  .home .plu-slide-member-rail__lead > strong { font-size:35px; }
}
.plu-banner-media h1,
.plu-banner-media h2 { color:#fff; }
.plu-banner-media p:not(.plu-eyebrow):not(.plu-tracker-eyebrow) { color:rgba(255,255,255,.86);
  text-shadow:none; }
@media (max-width:980px) {
  .plu-membership-hero.has-panel-photo .plu-button--ghost-dark { border-color:#050505;
    background:#fff;
    color:#050505; }
}
@media (max-width:760px) {
  .plu-page-actions > a,
  .plu-news-cta a,
  .plu-home-news__actions > a { min-height:44px; }
  .plu-contact-form-panel input,
  .plu-contact-form-panel textarea,
  .plu-contact-form-panel select { color:#050505; background:#fff; }
}
@media (max-width:760px) {
  .home .plu-slider--member-count { height:740px; }
  .home .plu-slide-member-rail.plu-slide-endorsement-rail { min-height:132px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { min-height:128px;
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr) minmax(118px,.95fr); }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { min-width:0; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead { padding:12px 10px 12px 16px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > strong { font-size:29px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > small,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > span,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat small { overflow-wrap:anywhere; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat { padding:12px 9px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat strong { font-size:23px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { padding:12px 9px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action strong { font-size:10px; }
}
@media (max-width:380px) {
  .home .plu-slider--member-count { height:728px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { grid-template-columns:minmax(0,1.1fr) minmax(78px,.72fr) minmax(105px,.88fr); }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > strong { font-size:26px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action strong { font-size:9px; }
}
@media (max-width:760px) {
  .home .plu-slider--member-count { height:710px; }
  .home .plu-slider--member-count,
  .home .plu-slide,
  .home .plu-slide-member-rail.plu-slide-endorsement-rail,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { width:100%; max-width:100vw; }
  .home .plu-slide-member-rail.plu-slide-endorsement-rail { display:block; min-height:118px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { min-height:114px; display:flex; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { flex:1 1 0; min-width:0; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead { grid-row:auto; padding:13px 10px 13px 16px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > small { font-size:8px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > strong { margin-top:4px; font-size:31px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > span { font-size:8px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat { padding:13px 11px; border-bottom:0; border-right:1px solid rgba(0,0,0,.12); }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat strong { font-size:25px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat small { font-size:8px; line-height:1.25; }
  /* The rail is three columns wide on a phone - lead, one figure, the
     call to action - so one of the two secondary figures gives way. It
     used to be this one, back when it held the diaspora count the class is
     still named after. It now holds members registered, which is the number
     the organisation is counted by, so districts gives way instead. */
  /* Put the third figure back. The rule above, which is not scoped to a
     rail, hides it in both - and on this one it is members registered. */
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat--diaspora { display:grid; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat:not(.plu-slide-member-rail__stat--diaspora) { display:none; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { padding:13px 10px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action small { display:none; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action strong { justify-content:center; gap:6px; font-size:11px; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action i { width:22px; height:22px; font-size:12px; }
  .home .plu-slide--has-member-rail .plu-slide__content { top:328px;
    right:16px;
    left:16px;
    width:auto;
    max-width:calc(100vw - 32px);
    max-height:none;
    overflow:visible; }
  .home .plu-slide h1,
  .home .plu-slide h2 { max-width:310px; font-size:30px; line-height:1.06; overflow-wrap:anywhere; }
  .home .plu-slide p:not(.plu-eyebrow) { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; font-size:13px; line-height:1.46; }
  .home .plu-slide__actions { flex-wrap:wrap; gap:10px; margin-top:16px; }
  .home .plu-slide__actions .plu-button { min-height:42px; padding:0 13px; font-size:10px; }
  .home .plu-slide__secondary { padding:10px 0; font-size:10px; }
  .home .plu-slider__controls { top:276px; right:10px; bottom:auto; }
}
@media (max-width:760px) {
  .home .plu-slider--member-count { height:740px !important; }
  .home .plu-slide-member-rail.plu-slide-endorsement-rail { min-height:132px !important; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { min-height:128px !important; display:grid !important; grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr) minmax(118px,.95fr) !important; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__action { min-width:0; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > small,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__lead > span,
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__stat small { overflow-wrap:anywhere; }
}
@media (max-width:380px) {
  .home .plu-slider--member-count { height:728px !important; }
  .home .plu-slide-endorsement-rail .plu-slide-member-rail__inner { grid-template-columns:minmax(0,1.1fr) minmax(78px,.72fr) minmax(105px,.88fr) !important; }
}


/* Residency toggle --------------------------------------------------------
   Two tabs, as on the WordPress form: choosing one swaps the location fields
   between an official Ugandan district and a free-text country. */
.plu-residency { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--plu-black); margin-bottom: 0; }
.plu-residency input { position: absolute; opacity: 0; pointer-events: none; }
.plu-residency label {
  display: block; text-align: center; padding: 15px 12px; cursor: pointer;
  font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 13.5px;
  background: #fff; color: var(--plu-black); user-select: none;
}
.plu-residency label + label { border-left: 1px solid var(--plu-black); }
.plu-residency input:checked + label { background: var(--plu-black); color: var(--plu-yellow); }
.plu-residency input:focus-visible + label { outline: 3px solid var(--plu-yellow); outline-offset: -3px; }
[data-residency-panel][hidden] { display: none; }














