@charset "utf-8";

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

html, body { overflow-x: clip; }

html {
  scroll-behavior: smooth;

  scroll-padding-top: clamp(76px, 5.3646vw, 103px);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;

  max-width: 1920px;
  margin-inline: auto;

  padding-top: clamp(14px, 2.6589vw, 51.05px);
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-weight: 400;
  color: var(--purple);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, p, ul, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video { display: block; max-width: 100%; }

a, a:link, a:visited { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; }

:root {

  --purple:    #311b77;
  --teal:      #56c3a4;
  --red:       #e75068;
  --violet:    #8543ed;
  --blue-lt:   #8eb1f9;
  --blue:      #2b58f9;
  --orange:    #f97050;
  --amber:     #f4be40;

  --rule:      #311b77;
  --rule-w:    0.8px;

  --pad: clamp(20px, 3.4167vw, 65.6px);

  --row-in:  clamp(0px, 0.4326vw, 8.31px);
  --row-in2: clamp(0px, 0.2522vw, 4.84px);

  --rule-out: clamp(0px, 0.2292vw, 4.40px);

  --h1: clamp(38px, 5.2605vw, 101px);
  --h2: clamp(34px, 4.4271vw, 85px);
  --h3: clamp(26px, 2.5597vw, 49.147px);
  --h4: clamp(21px, 1.875vw, 36px);
  --h5: clamp(16px, 1.25vw, 24px);

  --fs-cd:     clamp(52px, 5.9375vw, 114px);
  --fs-cdt:    clamp(28px, 2.7126vw, 52.082px);
  --fs-intro:  clamp(19px, 1.7188vw, 33px);
  --fs-body:   clamp(16px, 1.25vw, 24px);
  --fs-label:  clamp(13px, 1.0417vw, 20px);
}

h1, h2, h3, h4, h5 {
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--h4); }
h5 { font-size: var(--h5); }

.container {
  width: 100%;
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: var(--pad);
}

.fw-light { font-weight: 300; }

:is(.h1, .h2, .h3, .h4, .h5) {
  position: relative;
  isolation: isolate;
  color: #fff;
  margin-top: 0.155em;
    display: inline-block;
  padding-inline: 0.055em;
}
:is(.h1, .h2, .h3, .h4, .h5)::before {
  content: "";
  position: absolute;
 inset: 0 -0.02em -0.175em;
  background: var(--teal);
  transform: rotate(-1.87deg);
  z-index: -1;
}


.h1-teal::before,   .h2-teal::before,   .h3-teal::before,
.h4-teal::before,   .h5-teal::before    { background: var(--teal);    transform: rotate(-1.87deg); }

.h1-blue::before,   .h2-blue::before,   .h3-blue::before,
.h4-blue::before,   .h5-blue::before    { background: var(--blue-lt); transform: rotate(-1.7deg); }

.h1-amber::before,  .h2-amber::before,  .h3-amber::before,
.h4-amber::before,  .h5-amber::before   { background: var(--amber);   transform: rotate(-2.4deg); }

.h1-royal::before,  .h2-royal::before,  .h3-royal::before,
.h4-royal::before,  .h5-royal::before   { background: var(--blue);    transform: rotate(-2.64deg); }

.h1-orange::before, .h2-orange::before, .h3-orange::before,
.h4-orange::before, .h5-orange::before  { background: var(--orange);  transform: rotate(0.92deg); }

.h1-violet::before, .h2-violet::before, .h3-violet::before,
.h4-violet::before, .h5-violet::before  { background: var(--violet);  transform: rotate(-1.19deg); }

.h1-red::before,    .h2-red::before,    .h3-red::before,
.h4-red::before,    .h5-red::before     { background: var(--red);     transform: rotate(-2.4deg); }

.sec-ceo      :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(2.35deg); }
.sec-insights :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(-1.03deg); }
.sec-news     :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(2.21deg); }
.sec-timeline .tl-date :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(-5.26deg); }

.sec-ceo,
.sec-news { position: relative; }

.sec-ceo::before,
.sec-about::before,
.sec-news::after {
  content: "";
  position: absolute;
  left: calc(var(--pad) + var(--row-in));
  right: calc(var(--pad) + var(--rule-out));
  height: var(--rule-w);
  background: var(--rule);
  pointer-events: none;
}
.sec-ceo::before,
.sec-about::before { top: 0; }
.sec-news::after   { bottom: 0; }

.btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  min-height: clamp(40px, 2.7083vw, 52px);
  padding: 0 clamp(14px, 1.0938vw, 21px);
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
}
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: rotate(1.25deg);
  z-index: -1;
  transition: filter .25s ease;
}
.btn:hover::before { filter: brightness(1.08); }

/* Section CTAs ("Meet the full panel", "Explore more winners", ...) get a
   visible lift on hover - the brightness change alone was too subtle to read
   as "this is clickable". Transform is on the element, not ::before, so the
   tilted background keeps its rotation. */
.rule-btn .btn {
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.rule-btn .btn:hover,
.rule-btn .btn:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px -10px rgba(49, 27, 119, 0.45);
}
.rule-btn .btn:hover::before { filter: brightness(1.15); }
.rule-btn .btn:active { transform: translateY(-1px); }

@media (prefers-reduced-motion: reduce) {
  .rule-btn .btn { transition: none; }
  .rule-btn .btn:hover { transform: none; }
}
.btn-red::before    { background: var(--red); }
.btn-violet::before { background: var(--violet); }
.btn-teal::before   { background: var(--teal); }
.btn-tilt-l::before { transform: rotate(-1.81deg); }
.btn-tilt-s::before { transform: rotate(0.86deg); }

.link-caret {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.7813vw, 15px);
  font-size: var(--fs-body);
  font-weight: 700;
  color: #000;
}
.link-caret img {
  width: clamp(24px, 1.9271vw, 37px);
  height: auto;
}
.link-caret-purple { color: var(--purple); }

.rule-btn {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.9vw, 36.5px);
}
.rule-btn::before,
.rule-btn::after {
  content: "";
  flex: 1 1 0;
  height: var(--rule-w);
  background: var(--rule);
}

.copy p { font-size: var(--fs-body); line-height: normal; }
.copy p + p { margin-top: 1.5em; }

.head-bar-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
  padding-block: clamp(12px, 1.0417vw, 20px);
  background: #fff;
  transition: box-shadow .3s ease;
}
.head-bar-wrap.is-stuck { box-shadow: 0 2px 18px rgba(49, 27, 119, .10); }

.head-bar {
  display: flex;
  align-items: center;
  min-height: clamp(40px, 3.2813vw, 63px);
}

.brand img {
  width: clamp(140px, 11.25vw, 216px);
  height: auto;
}

.top-nav {
  margin-left: clamp(24px, 7.0729vw, 135.8px);
  margin-right: auto;
}
.top-nav .nav-l1 {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.6vw, 50px);
}
.top-nav li { position: relative; }
.top-nav a {
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
  transition: color .2s ease;
}
.top-nav a:hover { color: var(--violet); }

.top-nav .nav-l2,
.top-nav .nav-l3 {
  position: absolute;
  z-index: 5;
  display: block;
  min-width: 250px;
  padding: 10px 0;
  background: #fff;
  box-shadow: 0 10px 30px rgba(49, 27, 119, .16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.top-nav .nav-l2 { top: 100%; left: -16px; }
.top-nav .nav-l3 { top: -10px; left: 100%; }

.top-nav .nav-l2 a,
.top-nav .nav-l3 a {
  display: block;
  padding: 9px 18px;
  font-size: clamp(15px, 0.9375vw, 18px);
  white-space: nowrap;
}
.top-nav .nav-l2 a:hover,
.top-nav .nav-l3 a:hover { background: rgba(49, 27, 119, .05); }

.top-nav .has-sub > a::after {
  content: "";
  display: inline-block;
  width: .38em;
  height: .38em;
  margin-left: .45em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-.15em) rotate(45deg);
}

.top-nav .nav-l2 .has-sub > a::after { transform: translateY(-.1em) rotate(-45deg); }

.sub-toggle {
  display: none;
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  cursor: pointer;
}
.sub-toggle::before,
.sub-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.sub-toggle::before { width: 13px; height: 2px; }
.sub-toggle::after  { width: 2px; height: 13px; transition: transform .25s ease; }
.top-nav li.is-open > .sub-toggle::after { transform: translate(-50%, -50%) scaleY(0); }

@media (min-width: 993px) {
  .top-nav li:hover > ul,
  .top-nav li:focus-within > ul {
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}

.head-social {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.5078vw, 28.95px);
  color: var(--amber);
}
.head-social img {
  width: clamp(22px, 1.875vw, 36px);
  height: auto;
  transition: transform .2s ease;
}
.head-social a:hover img { transform: translateY(-2px); }

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  padding: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
}
.nav-toggle span {
  display: block;
  width: 34px;
  height: 3px;
  background: var(--purple);
  border-radius: 2px;
  transform-origin: center;
  transition: transform .3s ease, opacity .2s ease;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.mega-nav {

  margin-top: clamp(8px, 0.8385vw, 16.1px);
  border-top: var(--rule-w) solid var(--rule);
  border-bottom: var(--rule-w) solid var(--rule);
}
.mega-nav ul {
  display: grid;

  grid-template-columns: 291fr 374fr 342fr 354fr 418fr;
  padding-block: clamp(8px, 0.9896vw, 19px) clamp(10px, 1.3021vw, 25px);
}
.mega-nav li + li {
  border-left: var(--rule-w) solid var(--rule);
  padding-left: clamp(16px, 2.8646vw, 55px);
}
.mega-nav a {
  display: inline;

  font-size: clamp(20px, 2.5597vw, 49.147px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  transition: color .2s ease;
}
.mega-nav a:hover { color: var(--violet); }
.mega-nav a img {
  display: inline-block;
  vertical-align: middle;
  width: clamp(20px, 1.9271vw, 37px);
  height: auto;
  margin-left: clamp(7px, 0.7813vw, 15px);
  color: var(--teal);
  transition: transform .2s ease;
}
.mega-nav a:hover img { transform: translateX(4px); }

.sec-hero { padding-top: clamp(40px, 6.6854vw, 128.36px); }

.sec-hero h1 { letter-spacing: max(-0.96px, -0.05vw); }

.sec-hero .container { padding-right: clamp(14px, 1.2161vw, 23.35px); }

.hero-row {
  display: grid;
  grid-template-columns: 1101.44fr 719.35fr;
  column-gap: clamp(6px, 0.5344vw, 10.26px);
  align-items: start;
}

.hero-side p {
  margin-top: clamp(6px, 2.1422vw, 41.13px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}

.btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(12px, 2.9vw, 55.7px);
  margin-top: clamp(16px, 2.8906vw, 55.5px);
}

.sec-intro { padding-top: clamp(40px, 6.9292vw, 133.04px); }

.intro-media {
  position: relative;
  width: 97.07%;
  margin-left: 1.6667vw;
}
.intro-media > img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.intro-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #d9d9d9;
  mix-blend-mode: multiply;
  pointer-events: none;
}

.intro-copy {
  position: absolute;
  left: 8.9%;

  top: 64.712%;
  z-index: 1;
  width: 44.2%;
}
.intro-copy p {
  font-size: var(--fs-intro);
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
.intro-copy strong { font-weight: 800; }

.sec-countdown {
  position: relative;
  padding-top: clamp(40px, 5.8536vw, 112.39px);
}

.pinwheel {
  position: absolute;
  top: clamp(46px, 6.3021vw, 121px);
  left: 68.66%;
  width: 31.9010%;
  height: auto;
  z-index: -1;
  pointer-events: none;
}

.cd-grid {
  display: grid;
  grid-template-columns: 715.3fr 1060.8fr;
  /* The middle rule sits on the left edge of the second block. Without a gap
     it was pressed right up against the first clock's digits, while on its
     OTHER side the `.cd-block + .cd-block` padding was already there - the
     line looked completely lopsided. The gap makes the spacing equal on
     both sides. */
  column-gap: clamp(12px, 2.2474vw, 43.15px);
  border-top: var(--rule-w) solid var(--rule);
  border-bottom: var(--rule-w) solid var(--rule);
}

.cd-block {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: clamp(14px, 1.8557vw, 35.63px);
  padding-block: 0 clamp(12px, 1.2964vw, 24.89px);
}
.cd-block + .cd-block { padding-left: clamp(20px, 4.4948vw, 86.3px); }

.cd-block + .cd-block::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(6px, 0.8542vw, 16.4px);
  width: var(--rule-w);
  height: clamp(60px, 7.6908vw, 147.66px);
  background: var(--rule);
}

.cd-title {
  flex: 0 0 auto;
  width: clamp(120px, 15.1896vw, 291.64px);
  margin-top: clamp(6px, 1.1859vw, 22.77px);
  font-size: var(--fs-cdt);
}

.cd-clock { display: block; }
.cd-digits {
  display: block;
  font-size: var(--fs-cd);
  font-weight: 600;
  line-height: 1.11;
  font-variant-numeric: tabular-nums;
}
.cd-labels {
  display: flex;

  margin-top: clamp(0px, 0.0573vw, 1.1px);
  font-size: var(--fs-label);
  font-weight: 600;
  line-height: normal;
}
.cd-labels span { flex: 0 0 auto; width: clamp(52px, 5.5208vw, 106px); }
.cd-labels span:last-child { width: auto; }

/* Minutes at half size. That third number can go up to 1439 (the leftover
   hours are folded into it), and at full size it looked wider than the two
   big numbers. The `:` is inside this same span too - otherwise the colon
   would be big and the number after it small, which looks odd. */
.cd-digits .cd-min { font-size: 50%; }

.cd-block:nth-child(1) { padding-left: clamp(0px, 0.2604vw, 5.00px); }

.cd-block:nth-child(1) .cd-labels span:first-child { width: clamp(52px, 6.3318vw, 121.57px); }

.cd-btn { margin-top: clamp(20px, 2.8203vw, 54.15px); }

.sec-why { padding-top: clamp(44px, 6.6990vw, 128.62px); }

.sec-why .lead,
.sec-presented .lead {
  margin-top: clamp(14px, 1.6vw, 30.8px);
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
}
.sec-why .lead { margin-top: clamp(12px, 1.3099vw, 25.15px); }

.sec-why .copy {
  margin-top: clamp(18px, 2.5182vw, 48.35px);
  margin-left: clamp(0px, 0.1933vw, 3.71px);
}
.sec-why .copy p { max-width: 48.07em; }

.sec-video { padding-top: clamp(46px, 8.1323vw, 156.14px); }

.video-media {
  position: relative;
  width: 96.875%;
  margin-left: 1.6667vw;
}

.video-media > video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1860 / 957;
  object-fit: cover;
  background: var(--purple);
}

.video-caption {
  position: absolute;
  left: 50%;
  top: 81.494%;
  transform: translateX(-50%);
  width: 67.2%;
  font-size: clamp(19px, 2.5521vw, 49px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  text-align: center;
  color: #fff;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.sec-presented {
  padding-top: clamp(46px, 7.4057vw, 142.19px);
  padding-bottom: clamp(34px, 5.7078vw, 109.59px);
}

.pr-row {
  display: grid;
  grid-template-columns: 1fr clamp(240px, 33.058vw, 634.71px);
  column-gap: clamp(24px, 2.2vw, 42.2px);
  align-items: start;
}

.sec-presented .copy { margin-top: clamp(18px, 2.4vw, 46.1px); }
.sec-presented .copy p { max-width: 42.6em; }

.pr-side { padding-top: clamp(8px, 0.8594vw, 16.5px); }
.pr-logo { width: 100%; height: auto; }
.pr-side .link-caret { margin-top: clamp(16px, 1.7448vw, 33.5px); }

.sec-ceo { padding-top: clamp(28px, 3.9370vw, 75.59px); }

.ceo-row {
  display: grid;
  grid-template-columns: 1fr clamp(300px, 47.845vw, 918.63px);
  column-gap: clamp(24px, 2.4vw, 46px);
  align-items: start;

  padding-right: clamp(0px, 0.2292vw, 4.40px);
}

.ceo-copy { padding-top: clamp(14px, 1.6896vw, 32.44px); }

.sec-ceo .copy {
  margin-top: clamp(14px, 1.6438vw, 31.56px);
  margin-left: clamp(0px, 0.1933vw, 3.71px);
}
.sec-ceo .copy p { max-width: 31.8em; }
.sec-ceo .copy .attrib { font-weight: 700; font-style: italic; }

.ceo-copy .btn {
  margin-top: clamp(24px, 4.9229vw, 94.52px);
  margin-left: clamp(0px, 0.4231vw, 8.12px);
}

.ceo-media img {
  width: 100%;
  aspect-ratio: 919 / 736;
  height: auto;
  object-fit: cover;
}

.sec-timeline { padding-top: clamp(46px, 6.7156vw, 128.94px); }

.tl-grid {
  display: grid;
  grid-template-columns: 266fr 406.5fr 545.4fr 558.2fr;
  margin-top: clamp(20px, 2.8422vw, 54.57px);
  border-top: var(--rule-w) solid var(--rule);
  border-bottom: var(--rule-w) solid var(--rule);
}
.tl-cell {
  position: relative;
  padding: clamp(12px, 1.0417vw, 20px) 0 clamp(14px, 1.875vw, 36px);
}
.tl-cell + .tl-cell { padding-left: clamp(18px, 2.7vw, 51.8px); }
.tl-cell + .tl-cell::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(6px, 0.79vw, 15.17px);
  width: var(--rule-w);
  height: clamp(60px, 7.6908vw, 147.66px);
  background: var(--rule);
}

.tl-date {
  margin-top: clamp(4px, 1.25vw, 24px);
  font-size: clamp(30px, 3.7577vw, 72.147px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  white-space: nowrap;
}
.tl-note {
  margin-top: clamp(4px, 1.198vw, 23px);
  font-size: var(--fs-body);
  line-height: normal;
}

.tl-btn { margin-top: clamp(20px, 2.8427vw, 54.58px); }

.sec-winners { padding-top: clamp(46px, 6.7635vw, 129.86px); }

.wn-head {
  display: grid;
  grid-template-columns: 1fr clamp(300px, 48.9409vw, 939.67px);
  column-gap: clamp(24px, 2.4vw, 46px);
  align-items: start;
}
.wn-intro { padding-top: clamp(2px, 0.4688vw, 9px); }

.wn-lead { margin-top: clamp(10px, 1.3542vw, 26px); }
.sec-winners .lead {
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
}

.wn-grid {
  --wn-gap: clamp(20px, 7.6745vw, 147.35px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: var(--wn-gap);
  margin-top: clamp(22px, 2.3427vw, 44.98px);
}
.wn-grid li { position: relative; }
.wn-grid li + li::before {
  content: "";
  position: absolute;
  left: calc(-0.5 * var(--wn-gap));
  top: clamp(40px, 6.7615vw, 129.83px);
  width: var(--rule-w);
  height: clamp(200px, 26.1458vw, 502px);
  background: var(--rule);
}

/* The whole card is now a link - see the `winners` case in post_grid.php.
   `<a>` is inline; without making it block the inner heading's margin
   escapes outside it and an empty line is left under the image.
   The colour comes from the heading, not the link - the card looks just like
   the build, it is simply clickable now. */
.wn-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.wn-link h3 { transition: color 0.2s ease; }
.wn-link:hover h3,
.wn-link:focus-visible h3 { color: var(--red); }

@media (prefers-reduced-motion: reduce) {
  .wn-link h3 { transition: none; }
}

.wn-grid h3 {
  font-size: clamp(22px, 2.3438vw, 45px);
  letter-spacing: normal;

  min-height: 2.52em;
}
.wn-grid li:first-child h3 { max-width: clamp(180px, 18.9844vw, 364.5px); }
.wn-grid img {
  width: 100%;
  height: auto;
  margin-top: clamp(14px, 1.8818vw, 36.13px);
  aspect-ratio: 498 / 456;
  object-fit: cover;
}

.sec-winners .rule-btn { margin-top: clamp(24px, 3.4656vw, 66.54px); }

.sec-hub { padding-top: clamp(40px, 5.3688vw, 103.08px); }

.hub-band {
  position: relative;
  isolation: isolate;
  padding-block: clamp(22px, 2.8245vw, 54.23px) clamp(26px, 3.6vw, 69.1px);
  color: #fff;
}
.hub-band::before {
  content: "";
  position: absolute;
  inset: 0 3.7292vw 0 3.25vw;
  background: var(--blue);
  transform: rotate(-0.99deg);
  z-index: -1;
}

.hub-band .container { padding-inline: clamp(24px, 6.9583vw, 133.6px) var(--pad); }
.sec-hub h2 { color: #fff; }
.hub-lead {

  margin-top: 0;
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
}
.sec-hub > .container { padding-inline: clamp(24px, 7.2990vw, 140.14px) var(--pad); }
.hub-note {
  margin-top: clamp(24px, 3.0724vw, 58.99px);
  font-size: var(--fs-body);
  line-height: normal;
  max-width: 50.5em;
}

.sec-insights { padding-top: clamp(34px, 3.2417vw, 62.24px); }

.sec-insights .lead {
  margin-top: clamp(18px, 3.4891vw, 67px);
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
}
.sec-insights .lead,
.ins-copy { margin-left: var(--row-in); }
.ins-copy { margin-top: clamp(10px, 1.3vw, 25px); }
.ins-copy p { max-width: 39.2em; }

.ins-row {
  display: grid;
  grid-template-columns: 421fr 504fr 851fr;
  align-items: center;
  border-top: var(--rule-w) solid var(--rule);
}
.ins-row:first-of-type { margin-top: clamp(26px, 4.0313vw, 77.4px); }
.ins-row:last-of-type { border-bottom: var(--rule-w) solid var(--rule); }
.ins-row li {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 1.6vw, 30.7px);
  padding: clamp(10px, 0.8594vw, 16.5px) 0 clamp(12px, 1.5885vw, 30.5px);
}
.ins-row li + li { padding-left: clamp(18px, 5.8073vw, 111.5px); }
.ins-row li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(6px, 0.6354vw, 12.2px);
  width: var(--rule-w);
  height: clamp(60px, 7.6908vw, 147.66px);
  background: var(--rule);
}
.ins-row li > a:first-child {
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  transition: color .2s ease;
}
.ins-row li > a:first-child:hover { color: var(--violet); }
.ins-row li > a:first-child img {
  display: inline-block;
  vertical-align: middle;
  width: clamp(20px, 1.9271vw, 37px);
  height: auto;
  margin-left: clamp(7px, 0.7813vw, 15px);
  transition: transform .2s ease;
}
.ins-row li > a:first-child:hover img { transform: translateX(4px); }

.ins-btn { flex: 0 0 auto; }

.sec-news { padding-top: clamp(46px, 6.7234vw, 129.09px); }

.news-row {
  display: grid;
  grid-template-columns: 913.96fr 862.13fr;
  margin-top: clamp(26px, 5.3745vw, 103.19px);
}
.news-list {
  position: relative;
  padding-left: clamp(20px, 2.8047vw, 53.85px);
}
.news-list::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: var(--rule-w);
  height: clamp(300px, 46.6693vw, 896.05px);
  background: var(--rule);
}

.news-lead {
  padding-right: clamp(20px, 3.9vw, 74.9px);
  margin-left: clamp(0px, 0.5422vw, 10.41px);
}
.news-lead > img {
  width: 100%;
  height: auto;
  aspect-ratio: 837 / 456;
  object-fit: cover;
}
.news-lead .news-meta { margin-top: clamp(12px, 1.9792vw, 38px); }

.news-lead h3 {
  margin-top: clamp(14px, 2.4vw, 46.1px);
  margin-left: max(-0.1094vw, -2.10px);
  font-size: var(--h4);
  font-weight: 700;
  letter-spacing: normal;
}
.news-lead .copy { margin-top: clamp(12px, 1.6vw, 30.7px); }

.news-meta {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.276vw, 24.5px);
  font-size: var(--fs-label);
  font-weight: 400;
  line-height: normal;
}
.news-meta span + span {
  padding-left: clamp(10px, 1.276vw, 24.5px);
  border-left: var(--rule-w) solid var(--rule);
}

.news-item {
  display: grid;
  grid-template-columns: clamp(90px, 10.3646vw, 199px) 1fr;
  column-gap: clamp(16px, 2.3526vw, 45.17px);
  align-items: start;
  padding-bottom: clamp(16px, 2.5vw, 48px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.news-item + .news-item { padding-top: clamp(16px, 2.8906vw, 55.5px); }
.news-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.news-item h3 {
  margin-top: clamp(10px, 2.1875vw, 42px);
  font-size: var(--h4);
  font-weight: 700;
  letter-spacing: normal;
}

.news-more {
  margin-top: clamp(20px, 4.0573vw, 77.90px);
  margin-left: clamp(0px, 0.0932vw, 1.79px);
}

.sec-news { padding-bottom: clamp(28px, 3.5979vw, 69.08px); }

.sec-partners { padding-top: clamp(48px, 9.6547vw, 185.37px); }
.pt-group {
  margin-top: clamp(16px, 1.8729vw, 35.96px);
  padding-bottom: clamp(22px, 2.9214vw, 56.09px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.pt-group-2 { margin-top: clamp(30px, 5.2047vw, 99.93px); }

.sec-partners .accordion { margin-left: var(--row-in); }
.acc-item { border-bottom: var(--rule-w) solid var(--rule); }
.acc-item h4 { margin: 0; font: inherit; }

.acc-head {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.7813vw, 15px);
  width: 100%;

  padding: clamp(16px, 2.0594vw, 39.54px) 0 clamp(16px, 2.2125vw, 42.48px);
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  text-align: left;
  cursor: pointer;
  transition: color .2s ease;
}
.acc-head:hover { color: var(--violet); }
.acc-head img {
  flex: 0 0 auto;
  width: clamp(20px, 1.9271vw, 37px);
  height: auto;
  position:relative; top:5px;
  transition: transform .3s ease;
}
.acc-item.is-open .acc-head img { transform: rotate(90deg); }

.acc-panel {
  overflow: hidden;
  max-height: 0;
  transition: max-height .35s ease;
}
.acc-item.is-open .acc-panel { max-height: 1200px; }

.acc-inner {
  display: grid;
  grid-template-columns: clamp(120px, 13.0201vw, 249.99px) 1fr;
  column-gap: clamp(20px, 4.6563vw, 89.4px);
  align-items: start;
  padding-bottom: clamp(20px, 2.6844vw, 51.54px);
}

.acc-copy { padding-top: clamp(0px, 0.9651vw, 18.53px); }
.acc-inner:not(:has(.acc-logo)) { grid-template-columns: 1fr; }

.acc-logo { width: 100%; height: auto; margin-left: max(-1.4469vw, -27.78px); }
.acc-copy p { font-size: var(--fs-body); line-height: normal; }
.acc-copy p + p { margin-top: 1.5em; }
.acc-copy a { text-decoration: underline; }

.sec-testimonial {
  padding-top: clamp(40px, 6.6693vw, 128.05px);

  padding-bottom: clamp(56px, 9.4760vw, 181.94px);
}

.tm-media {
  position: relative;
  width: 96.77%;
  margin-left: 1.6667vw;
}
.tm-media > video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1858 / 860;
  object-fit: cover;
  background: var(--purple);
}
.tm-media .video-caption { top: 78.683%; }

.tm-title {
  margin-top: clamp(40px, 5.8333vw, 112px);
  margin-left: var(--row-in);
  font-size: var(--h1);
  max-width: 57.35em;
}
.tm-cta {
  margin-top: clamp(30px, 4.5313vw, 87px);
  margin-left: var(--row-in);
  font-size: var(--h1);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.tm-cta :is(.h1, .h2, .h3, .h4, .h5) { color: #fff; padding-inline: 0.14em; }
.tm-cta :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(1.61deg); inset: -0.1025em -0.02em; }

.sec-about {
  position: relative;
  padding-top: clamp(46px, 7.2443vw, 139.09px);
}
.sec-about :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(-0.71deg); }

.ab-lead { margin-top: clamp(16px, 1.875vw, 36px); }

.ab-row { position: static; }
.ab-copy {
  margin-top: clamp(18px, 1.8203vw, 34.95px);
  max-width: clamp(280px, 60.8333vw, 1168px);
}

.ab-graphic {
  position: absolute;
  left: 59.08%;
  top: clamp(240px, 22.2344vw, 426.9px);
  width: 40.9375%;
  height: auto;
  z-index: -1;
  pointer-events: none;
}

.ab-rule {
  width: clamp(200px, 57.3665vw, 1101.44px);
  height: var(--rule-w);
  margin-top: clamp(40px, 7.5563vw, 145.08px);
  margin-left: var(--row-in);
  background: var(--rule);
}

.ab-h2 { margin-top: clamp(40px, 6.1432vw, 117.95px); }
.ab-sub {
  margin-top: clamp(14px, 1.0938vw, 21px);
  max-width: clamp(280px, 45.6181vw, 875.87px);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.ab-bars { margin-top: clamp(20px, 6.2469vw, 119.94px); }
.ab-bars li + li { margin-top: clamp(10px, 1.6vw, 30.7px); }

.bar {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  min-height: clamp(56px, 7.1509vw, 137.3px);
  padding: clamp(8px, 0.5vw, 9.6px) clamp(18px, 3.3802vw, 64.9px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  color: #fff;
}
.bar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}
.bar-orange::before { background: var(--orange); transform: rotate(-1.26deg); }
.bar-violet::before { background: var(--violet); transform: rotate(0.72deg); }
.bar-teal::before   { background: var(--teal);   transform: rotate(-0.11deg); }
.bar-red::before    { background: var(--red); }
.bar-amber::before  { background: var(--amber);  transform: rotate(1.05deg); }
.bar-blue::before   { background: var(--blue);   transform: rotate(-1.4deg); }

.ab-foot { margin-top: clamp(34px, 4.3583vw, 83.68px); }

.sec-enter { padding-top: clamp(46px, 4.7042vw, 90.32px); }

.enter-band {
  position: relative;
  isolation: isolate;
  padding-block: clamp(40px, 5.9583vw, 114.41px) clamp(40px, 6.6vw, 126.7px);
  color: #fff;
}
.enter-band::before {
  content: "";
  position: absolute;
  inset: 0 3.4271vw 0 3.4375vw;
  background: var(--red);
  transform: rotate(0.98deg);
  z-index: -1;
}

.enter-band .container { padding-inline: clamp(28px, 10.0625vw, 193.2px) var(--pad); }

.sec-enter h2 {
  font-size: var(--h1);
  line-height: 1.089;
  max-width: 12.15em;
}
.en-sub {
  margin-top: clamp(16px, 1.7208vw, 33.04px);
  font-size: var(--h3);
  font-weight: 400;
  line-height: normal;
  letter-spacing: -0.06em;
}
.en-copy { margin-top: clamp(18px, 2.8073vw, 53.92px); }
.en-copy p { max-width: 48.7em; }

.btn-white::before { background: #fff; }
.btn-white { color: var(--red); }
.sec-enter .btn { margin-top: clamp(24px, 3.5911vw, 68.95px); }

.sec-process { padding-top: clamp(44px, 5.9052vw, 113.38px); }

.sec-process :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(3.47deg); }

.pr-lead {

  margin-top: clamp(0px, 0.6135vw, 11.78px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.step-list { margin-top: clamp(24px, 5.4vw, 103.7px); }
.step-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(14px, 2.4vw, 46.1px);
  padding-bottom: clamp(14px, 1.3182vw, 25.31px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.step-list li + li { padding-top: clamp(14px, 1.6146vw, 31px); }

.step-list li:nth-child(2) { padding-bottom: clamp(14px, 1.4073vw, 27.02px); }
.step-list li:nth-child(3) { padding-bottom: clamp(12px, 0.9906vw, 19.02px); }
.step-list li:nth-child(4) { padding-bottom: clamp(14px, 1.4073vw, 27.02px); }
.step-list li:nth-child(5) { padding-bottom: clamp(14px, 1.5115vw, 29.02px); }
.step-list li:nth-child(6) { padding-bottom: clamp(20px, 4.5323vw, 87.02px); }
.step-name {
  margin-left: var(--row-in2);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.pill {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  min-height: clamp(38px, 3.3854vw, 65px);
  padding: 0 clamp(14px, 1.1198vw, 21.5px);
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: normal;
  letter-spacing: -0.06em;
  color: #fff;
  white-space: nowrap;
}
.pill::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--violet);
  transform: rotate(-1.09deg);
  z-index: -1;
  transition: filter .25s ease;
}
.pill:hover::before { filter: brightness(1.08); }
.step-list li:nth-child(2) .pill::before { transform: rotate(0.71deg); }
.step-list li:nth-child(3) .pill::before,
.step-list li:nth-child(4) .pill::before { transform: rotate(1.07deg); }
.step-list li:nth-child(5) .pill::before,
.step-list li:nth-child(6) .pill::before { transform: rotate(-0.09deg); }

.sec-dates { padding-top: clamp(48px, 11.3385vw, 217.70px); }
.sec-dates :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(4.08deg); }

.date-list {
  margin-top: clamp(26px, 5.4vw, 103.7px);
  border-top: var(--rule-w) solid var(--rule);
}

.date-list li {
  position: relative;
  display: grid;
  grid-template-columns: var(--dv) 1fr;
  align-items: center;
  padding-block: clamp(14px, 1.4844vw, 28.5px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.date-list li:nth-child(1) { --dv: 23.0615vw; --dx: 31.0198vw; }
.date-list li:nth-child(2) { --dv: 30.6661vw; --dx: 36.7250vw; }
.date-list li:nth-child(3) { --dv: 25.2927vw; --dx: 32.8365vw; }
.date-list li:nth-child(4) { --dv: 28.8813vw; --dx: 35.5130vw; }
.date-list li:nth-child(5) { --dv: 27.4229vw; --dx: 33.0589vw; }

.date-list li::after {
  content: "";
  position: absolute;
  left: var(--dv);
  top: 50%;
  width: var(--rule-w);
  height: clamp(48px, 5.3125vw, 102px);
  background: var(--rule);
  transform: translateY(-50%);
}

.dt-label {
  margin-left: var(--row-in2);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.dt-value {

  margin-left: calc(var(--dx) - var(--dv));
  font-size: clamp(30px, 3.7577vw, 72.147px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.sec-impact { padding-top: clamp(44px, 7.3188vw, 140.52px); }

.im-sub {
  margin-top: clamp(12px, 1.0938vw, 21px);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.impact-list { margin-top: clamp(20px, 3.0vw, 57.6px); }
.impact-list li { border-bottom: var(--rule-w) solid var(--rule); }
.impact-list a {
  display: block;
  margin-left: var(--row-in2);
  padding-block: clamp(12px, 1.2vw, 23px) clamp(10px, 0.7104vw, 13.64px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  text-decoration: underline;
  transition: color .2s ease;
}
.impact-list a:hover { color: var(--violet); }

.impact-list li:nth-child(2) a { padding-bottom: clamp(14px, 1.9802vw, 38.02px); }
.impact-list li:nth-child(3) a { padding-bottom: clamp(14px, 1.5635vw, 30.02px); }
.impact-list li:nth-child(4) a { padding-bottom: clamp(14px, 1.9802vw, 38.02px); }
.impact-list li:nth-child(5) a { padding-bottom: clamp(14px, 2.0844vw, 40.02px); }
.impact-list li:nth-child(6) a { padding-bottom: clamp(14px, 2.0844vw, 40.02px); }

.sec-ready { padding-top: clamp(40px, 6.0380vw, 115.93px); }

.ready-band {
  position: relative;
  isolation: isolate;
  padding-block: clamp(26px, 3.6958vw, 70.96px) clamp(26px, 4.0vw, 76.8px);
  color: #fff;
}
.ready-band::before {
  content: "";
  position: absolute;
  inset: 0 3.4229vw 0 3.5354vw;
  background: var(--orange);
  transform: rotate(-0.58deg);
  z-index: -1;
}
.ready-band .container { padding-inline: clamp(26px, 8.6745vw, 166.55px) var(--pad); }

.sec-ready h2 {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.4vw, 46px);
  font-size: var(--h1);
}
.rd-arrow {
  flex: 0 0 auto;
  width: clamp(56px, 8.0776vw, 155.09px);
  height: auto;
  color: var(--purple);
}
.rd-sub {
  margin-top: clamp(8px, 0.7vw, 13.4px);
  font-size: var(--h3);
  font-weight: 600;
  font-style: italic;
  line-height: normal;
  letter-spacing: -0.06em;
}

.sec-contact { padding-top: clamp(40px, 5.6781vw, 109.02px); }

.h1-flat::before, .h2-flat::before, .h3-flat::before, .h4-flat::before, .h5-flat::before { background: var(--blue-lt); transform: none; inset: -0.16em -0.23em -0.155em; }

.ct-row {
  display: grid;
  grid-template-columns: clamp(220px, 30.4427vw, 584.5px) 1fr;
  column-gap: clamp(24px, 2.4vw, 46px);
  align-items: start;
  margin-top: clamp(20px, 2.6563vw, 51px);
}

.ct-details {
  padding-top: clamp(20px, 8.0542vw, 154.64px);
  margin-left: clamp(0px, 1.1672vw, 22.41px);
}
.ct-details p {
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: normal;
  letter-spacing: -0.06em;
}
.ct-details p + p { margin-top: 1.5em; }
.ct-details strong { font-weight: 700; }
.ct-details a { text-decoration: underline; }
.ct-details a.ct-map { text-decoration: none; }

.ct-field + .ct-field { margin-top: clamp(16px, 2.6042vw, 50px); }
.ct-form input,
.ct-form textarea {
  display: block;
  width: 100%;
  padding: 0 0 clamp(8px, 1.0vw, 19.2px);
  font-family: inherit;
  font-size: clamp(24px, 2.5521vw, 49px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  color: var(--purple);
  background: none;
  border: 0;
  border-bottom: var(--rule-w) solid var(--rule);
  border-radius: 0;
  resize: vertical;
}
.ct-form input::placeholder,
.ct-form textarea::placeholder { color: rgba(49, 27, 119, .49); }
.ct-form input:focus,
.ct-form textarea:focus { outline: 0; border-bottom-color: var(--violet); }

.ct-field-message textarea { height: clamp(180px, 23.2677vw, 446.74px); }

.ct-submit {
  margin-top: clamp(20px, 3.2vw, 61.4px);
  letter-spacing: -0.06em;
}
.ct-submit::before { transform: rotate(1.01deg); }

.sec-footer {
  margin-top: clamp(40px, 6.875vw, 132px);
  padding-block: clamp(30px, 2.6151vw, 50.21px) clamp(24px, 1.7vw, 32.6px);
  color: #fff;
  background: var(--purple);
}

.ft-top {
  display: grid;
  grid-template-columns: 1fr clamp(280px, 32.6vw, 626px);
  column-gap: clamp(24px, 2.4vw, 46px);
  align-items: start;
}
.ft-brand img { width: clamp(150px, 11.6146vw, 223px); height: auto; }

.ft-news-label {
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: normal;
  letter-spacing: -0.06em;
}
.ft-news-row { margin-top: clamp(8px, 1.3vw, 25px); }
.ft-news-row input {
  display: block;
  width: 100%;
  height: clamp(38px, 2.8125vw, 54px);
  padding: 0 clamp(10px, 0.8vw, 15.4px);
  font: inherit;
  color: var(--purple);
  background: #fff;
  border: 0;
  border-radius: 0;
}
.ft-news-row input:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.ft-news-btn {
  margin-top: clamp(10px, 1.0729vw, 20.6px);
  margin-left: auto;
  letter-spacing: -0.06em;
}
.ft-news-row { display: flex; flex-direction: column; align-items: stretch; }
.ft-news-btn::before { transform: rotate(-1.88deg); }

.ft-cols {
  display: grid;
  grid-template-columns: 338fr 372fr 319fr 326fr 266fr;
  column-gap: clamp(16px, 1.2vw, 23px);
  margin-top: clamp(28px, 3.7708vw, 72.4px);
  padding-left: clamp(0px, 1.9531vw, 37.5px);
}
.ft-col,
.ft-col p,
.ft-col a {
  font-size: var(--fs-label);
  font-weight: 300;
  line-height: normal;
  letter-spacing: -0.06em;
}
.ft-col p + p { margin-top: 1.4em; }
.ft-strong,
.ft-col strong { font-weight: 700; }
.ft-col-about .ft-strong { font-weight: 500; }
.ft-col-address p { font-weight: 500; }
.ft-col-address a { text-decoration: underline; }
.ft-col-nav a,
.ft-col-links a,
.ft-col-legal a { transition: opacity .2s ease; }
.ft-col-nav a:hover,
.ft-col-links a:hover,
.ft-col-legal a:hover { opacity: .7; }
.ft-col-links .ft-strong,
.ft-col-legal .ft-strong { font-weight: 500; margin-bottom: 0; }

.ft-copy {
  margin-top: clamp(26px, 3.5260vw, 67.7px);
  font-size: clamp(13px, 0.8333vw, 16px);
  font-weight: 500;
  line-height: normal;
  letter-spacing: -0.06em;
  text-align: center;
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 1200px) {
  .top-nav { margin-left: 24px; }
  .top-nav ul { gap: 18px; }

}

@media (max-width: 992px) {
  :root { --pad: 24px; }

  .nav-toggle { display: flex; }

  .head-bar { flex-wrap: wrap; }
  .head-social { margin-left: auto; }
  .nav-toggle { margin-left: 24px; }

  .top-nav {
    order: 4;
    width: 100%;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
  }
  .top-nav.is-open { max-height: 1400px; }
  .top-nav .nav-l1 {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding-block: 14px;
  }
  .top-nav a { font-size: 17px; }

  .top-nav li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
  }
  .top-nav li > a { flex: 1 1 auto; padding-block: 6px; }
  .sub-toggle { display: inline-flex; }

  .top-nav .nav-l2,
  .top-nav .nav-l3 {
    position: static;
    flex: 0 0 100%;
    min-width: 0;
    padding: 0 0 0 18px;
    background: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
  }
  .top-nav li.is-open > ul { max-height: 700px; }
  .top-nav .nav-l2 a,
  .top-nav .nav-l3 a { padding: 6px 0; font-size: 16px; white-space: normal; }
  .top-nav .nav-l2 a:hover,
  .top-nav .nav-l3 a:hover { background: none; }

  .top-nav .has-sub > a::after { display: none; }

  /* -------- Mega nav: one horizontal scrolling strip on mobile/tablet --------
     All five items stay on a single line (like desktop, with the vertical
     rules) and the user swipes sideways to see the remaining items. This rule
     runs up to 992px - as many items as fit in the available space are shown,
     and the scrollbar only appears when it is needed.

     --mega-gap = the space on either side of the divider; it gets smaller on
     phones (in the 767px block below). It is a variable so it changes from
     one place only.

     The nav itself runs to the edge of the screen (by inverting the
     container's padding), so the top/bottom hairline stretches the full width
     and an item gets cut off at the edge - that cut-off item is what tells
     the user there is more to come. */
  .mega-nav {
    --mega-gap: 16px;
    margin-inline: calc(var(--pad) * -1);
  }
  .mega-nav ul {
    display: flex;
    grid-template-columns: none;   /* base grid off */
    overflow-x: auto;
    overscroll-behavior-x: contain;   /* the page must not drag sideways at the end of the strip */
    /* Left offset - the first item starts on the logo/content line, not stuck
       to the edge of the screen. `--pad` is the container's own padding (18px
       on phone, 24px on tablet), so the nav stays aligned with the rest of
       the page. The padding is on the scroll container, so the right side
       gets the same space at the end of the scroll too.
       NOTE: scroll snap is DELIBERATELY absent here. `scroll-snap-align:
       start` measures from the snapport's start edge, and that edge falls
       BEFORE this padding - the browser would scroll the strip 18px right at
       the start, and the first item drifted left of the logo, outside the
       nav's hairline. Without snap this offset stays the same in every
       browser. */
    padding-inline: var(--pad);
    scrollbar-width: none;   /* Firefox */
  }
  .mega-nav ul::-webkit-scrollbar { display: none; }

  /* An item stays the size of its content and does not shrink. Flex does not
     give the space the fr columns did, so the padding on either side of the
     divider has to be set by hand - no right padding on the last item, the
     strip's own padding-inline provides the end space there. */
  .mega-nav li {
    flex: 0 0 auto;
    padding-right: var(--mega-gap);
  }
  .mega-nav li + li { padding-left: var(--mega-gap); }
  .mega-nav li:last-child { padding-right: 0; }

  /* The label breaks only at the pipe (the walker's <br>), not on its own -
     otherwise the flex item's width keeps growing and shrinking with the
     text. */
  .mega-nav .mega-label { white-space: nowrap; }

  .hero-row { grid-template-columns: 1fr; row-gap: 26px; }
  .hero-side p { margin-top: 0; }

  .cd-grid { grid-template-columns: 1fr; }
  .cd-block + .cd-block { padding-left: 0; padding-top: 24px; border-top: var(--rule-w) solid var(--rule); }
  .cd-block + .cd-block::before { display: none; }

  .pr-row,
  .ceo-row { grid-template-columns: 1fr; row-gap: 30px; }
  .ceo-row { padding-right: 0; }
  .ceo-copy { padding-top: 0; }

  .pinwheel { left: 52%; width: 60%; opacity: .9; }

  .tl-grid { grid-template-columns: 1fr 1fr; }
  .tl-cell:nth-child(odd) { padding-left: 0; }
  .tl-cell:nth-child(odd)::before { display: none; }

  .wn-head { grid-template-columns: 1fr; row-gap: 22px; }
  .wn-grid { grid-template-columns: 1fr; row-gap: 34px; }
  .wn-grid li + li::before { display: none; }

  .ins-row { grid-template-columns: 1fr 1fr; }
  .ins-row li:nth-child(odd) { padding-left: 0; }
  .ins-row li:nth-child(odd)::before { display: none; }
  .ins-row li:last-child { flex-wrap: wrap; }

  .news-row { grid-template-columns: 1fr; row-gap: 40px; }
  .news-list { padding-left: 0; }
  .news-list::before { display: none; }
  .news-lead { padding-right: 0; }

  .acc-inner { grid-template-columns: 1fr; row-gap: 18px; }
  .acc-logo { max-width: 200px; }

  .ab-graphic { display: none; }

  .ct-row { grid-template-columns: 1fr; row-gap: 34px; }
  .ct-details { padding-top: 0; }

  .ft-top { grid-template-columns: 1fr; row-gap: 24px; }
  .ft-cols { grid-template-columns: repeat(2, 1fr); row-gap: 32px; padding-left: 0; column-gap: 30px; }
  .ft-copy { margin-top: 44px; }

  .date-list li { grid-template-columns: 1fr; row-gap: 4px; }
  .date-list li::after { display: none; }
  .dt-value { padding-left: 0; }
}

@media (max-width: 767px) {
  :root { --pad: 18px; }

  .head-social { gap: 10px; }
  .head-social img { width: 24px; }

  /* The strip's layout lives in the 992px block - only the phone sizes here.
     Label + caret on one row, caret centred between the two lines. */
  .mega-nav { --mega-gap: 14px; margin-top: 12px; }
  .mega-nav ul { padding-block: 12px; }
  .mega-nav a {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 22px;
    letter-spacing: -0.03em;   /* at this size -0.06em makes the words look squashed together */
  }
  .mega-nav a img {
    flex: 0 0 auto;
    width: 24px;
    margin-left: 0;
  }
  .mega-nav a:hover img { transform: none; }

  .intro-media,
  .video-media,
  .tm-media { width: auto; margin-inline: var(--pad); }

  .intro-copy {
    position: static;
    width: 100%;
    padding: 18px var(--pad) 26px;
    background: var(--purple);
  }
  .intro-media::after { inset: 0 0 auto 0; height: 100%; }

  .video-caption {
    position: static;
    width: 100%;
    transform: none;
    margin-top: 14px;
    color: var(--purple);
    text-shadow: none;
    text-align: left;
    font-size: 22px;
  }

  .cd-block { flex-direction: column; gap: 10px; }
  .cd-title { width: 100%; margin-top: 12px; }
  .cd-labels span { width: 84px; }

  .btn-row { gap: 14px; }
  .btn { font-size: 15px; }

  .tl-grid { grid-template-columns: 1fr; }
  .tl-cell + .tl-cell { padding-left: 0; border-top: var(--rule-w) solid var(--rule); }
  .tl-cell + .tl-cell::before { display: none; }
  .tl-label, .ins-row li > a:first-child { font-size: 24px; }
  .tl-date { font-size: 34px; }

  .ins-row { grid-template-columns: 1fr; }
  .ins-row li + li { border-top: var(--rule-w) solid var(--rule); }
  .ins-row li > a:first-child br { display: none; }

  .rule-btn::before, .rule-btn::after { display: none; }
  .rule-btn { justify-content: flex-start; }

  .news-item { grid-template-columns: 1fr; row-gap: 12px; }
  .news-item img { max-width: 199px; }
  .news-lead h3, .news-item h3 { font-size: 22px; }

  .acc-head, .step-name, .dt-label,
  .impact-list a, .pt-group, .ab-lead, .ab-foot,
  .en-sub, .pr-lead, .rd-sub { font-size: 24px; }

  .bar { font-size: 20px; min-height: 0; padding: 14px 20px; }

  .dt-value { font-size: 32px; }

  .step-list li { gap: 12px; }

  .ct-form input, .ct-form textarea { font-size: 22px; }

  .ab-copy,
  .ab-sub,
  .wn-grid li:first-child h3 { max-width: 100%; }

  .sec-hub > .container { padding-inline: var(--pad); }

  .hub-band::before,
  .enter-band::before,
  .ready-band::before { inset-inline: 8px; }

  .hub-band .container,
  .ready-band .container { padding-inline: 28px; }
  .enter-band .container { padding-inline: 15px; }

  .ft-cols { grid-template-columns: 1fr; row-gap: 26px; }
  .ft-news-btn { margin-left: 0; }

  .ft-news-btn::before { transform: none; }
}

@media (max-width: 520px) {
  .news-item img { max-width: 100%; }
}

@media (max-width: 400px) {
  .brand { min-width: 0; }
  .brand img { width: clamp(96px, 30vw, 140px); }
  .head-social { gap: 8px; }
  .head-social img { width: 20px; }
  .nav-toggle { margin-left: 14px; }
  .nav-toggle span { width: 30px; }
}

.sec-header-4 .mega-nav ul {
  grid-template-columns: 291fr 373.9fr 341.9fr 772.1fr;
}
.sec-header-4 .mega-nav li:nth-child(2) { padding-left: clamp(16px, 3.1198vw, 59.9px); }
.sec-header-4 .mega-nav li:nth-child(3) { padding-left: clamp(16px, 2.8594vw, 54.9px); }
.sec-header-4 .mega-nav li:nth-child(4) { padding-left: clamp(16px, 3.7969vw, 72.9px); }

.page-news .sec-header-4 .mega-nav ul { max-width: clamp(200px, 92.6563vw, 1779px); }
.page-news .sec-header-4 .mega-nav li:nth-child(4) { padding-left: clamp(16px, 2.8646vw, 55px); }

.sec-ln-hero { padding-top: clamp(40px, 6.6854vw, 128.36px); }

.ln-lead {
  margin-top: clamp(20px, 2.9333vw, 56.32px);
  margin-left: clamp(0px, 0.1563vw, 3px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.ln-intro {
  margin-top: clamp(16px, 1.6245vw, 31.19px);
  margin-left: clamp(0px, 0.1563vw, 3px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
  font-size: var(--fs-body);
  line-height: normal;
}

.sec-ln-featured { padding-top: clamp(30px, 4.3229vw, 83px); }

.sec-ln-featured .container { position: relative; padding-top: clamp(8px, 0.7859vw, 15.09px); }
.sec-ln-featured .container::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(var(--pad) + clamp(0px, 0.2396vw, 4.6px));
  width: clamp(200px, 92.5047vw, 1776.09px);
  height: var(--rule-w);
  background: var(--rule);
}

.ln-title,
.ln-rule-title {
  font-size: clamp(28px, 2.6042vw, 50px);
  font-weight: 600;
}

.feature-img {

  margin-top: clamp(20px, 3.2052vw, 61.54px);
  width: clamp(200px, 92.6563vw, 1779px);
  height: auto;
  object-fit: cover;
  aspect-ratio: 1779 / 804;
}

.feature-title {
  margin-top: clamp(20px, 2.5880vw, 49.69px);
  margin-left: clamp(0px, 0.2766vw, 5.31px);
  max-width: clamp(280px, 66.4453vw, 1275.75px);
  font-size: var(--h2);
  line-height: 1;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.06em;
}

.feature-body {
  margin-top: clamp(18px, 2.7245vw, 52.31px);
  margin-left: clamp(0px, 0.3031vw, 5.82px);
  max-width: clamp(280px, 80.5854vw, 1547.24px);
  font-size: var(--fs-body);
  line-height: normal;
}

.feature-lead {
  font-size: clamp(22px, 1.9792vw, 38px);
  font-weight: 700;
}
.feature-body p + p { margin-top: 1.5em; }

.feature-btn {
  margin-top: clamp(20px, 1.4073vw, 27.02px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
}

.sec-ln-more { padding-top: clamp(40px, 5.1573vw, 99.02px); }
.sec-ln-more .story-grid { margin-top: clamp(24px, 3.3438vw, 64.20px); }

.story-grid,
.art-grid {
  display: grid;
  grid-template-columns: 591.75fr 594fr 593fr;
  margin-left: clamp(0px, 0.2766vw, 5.31px);
  max-width: clamp(200px, 92.6432vw, 1778.75px);
  border-left: var(--rule-w) solid var(--rule);
  border-right: var(--rule-w) solid var(--rule);
}
.story-grid > *,
.art-col { border-right: var(--rule-w) solid var(--rule); }
.story-grid > :nth-child(3n),
.art-col:last-child { border-right: 0; }

.story {
  padding: clamp(6px, 0.6177vw, 11.86px) 0 0 clamp(10px, 1.7448vw, 33.50px);
}
.story img {
  width: clamp(120px, 27.5927vw, 529.78px);
  height: auto;
  aspect-ratio: 529.78 / 388;
  object-fit: cover;
}

/* Square-ish images (the "Winner 20xx" badges) must not be cropped to the
   wide card frame - custom.js adds `img-contain` when an image's natural
   ratio is under 1.25, and it is then shown whole inside the same frame.
   Photos keep the cover crop. */
.story img.img-contain,
.news-lead img.img-contain,
.news-item img.img-contain,
.ann-list img.img-contain {
  object-fit: contain;
  background: #fff;
}
/* The featured badge would otherwise sit tiny in a 1779x804 frame; show it
   at its own proportions instead, capped in height. */
.feature-img.img-contain,
.art-hero.img-contain {
  width: auto;
  max-width: 100%;
  max-height: clamp(260px, 26vw, 500px);
  aspect-ratio: auto;
  object-fit: contain;
}

.story-date {
  margin-top: clamp(12px, 1.6969vw, 32.58px);
  font-size: clamp(13px, 0.8333vw, 16px);
  font-weight: 700;
  line-height: 24px;
}

.story-title,
.art h4 {
  margin-top: clamp(10px, 1.1755vw, 22.57px);
  max-width: clamp(240px, 25.0235vw, 480.45px);
  font-size: clamp(21px, 1.9792vw, 38px);
  font-weight: 700;
  line-height: normal;
  letter-spacing: normal;
}

.story-body {
  margin-top: clamp(16px, 1.3021vw, 25px);
  margin-left: clamp(-4px, -0.1078vw, 0px);
  max-width: clamp(240px, 26.4664vw, 508.16px);
  font-size: var(--fs-body);
  line-height: normal;
}
.story-body a { text-decoration: underline; }

.story-grid > :nth-child(-n+3) {

  padding-bottom: clamp(20px, 4.7000vw, 90.24px);
}
.story-grid > :nth-child(-n+3)::after {
  content: "";
  display: block;
  margin-top: clamp(20px, 4.4271vw, 85px);
  width: clamp(200px, 27.3820vw, 525.74px);
  height: var(--rule-w);
  background: var(--rule);
}

.sec-ln-campaign { padding-top: clamp(40px, 9.5917vw, 184.16px); }

.ln-band { margin-left: clamp(0px, 0.5313vw, 10.20px); }

.ln-band-2 .h1::before { background: var(--blue); }

.ln-band .h1 { padding-inline: clamp(12px, 1.25vw, 24px); }
.ln-band .h1::before { inset-inline: 0; }
.ln-band .h1 { font-size: var(--h1); }

.ln-sub {
  margin-top: clamp(24px, 4.2672vw, 81.93px);
  margin-left: clamp(0px, 0.5313vw, 10.20px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.ln-sub-2 { margin-top: clamp(28px, 4.9604vw, 95.24px); }

.ann-list {
  margin-top: clamp(30px, 5.675vw, 108.96px);
  margin-left: clamp(0px, 0.4469vw, 8.58px);
  max-width: clamp(200px, 92.5047vw, 1776.09px);
  border-top: var(--rule-w) solid var(--rule);
}
.ann-list > li {
  position: relative;
  display: grid;
  grid-template-columns: 866.29fr 909.8fr;
  padding-top: clamp(20px, 2.6021vw, 49.96px);
  padding-bottom: clamp(20px, 2.5979vw, 49.88px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.ann-list > li::after {
  content: "";
  position: absolute;
  left: 45.2949%;
  top: clamp(8px, 0.8542vw, 16.40px);
  width: var(--rule-w);
  height: clamp(80px, 9.9552vw, 191.14px);
  background: var(--rule);
}
.ann h4 { margin-left: clamp(-3.27px, -0.1703vw, 0px); }
.ann + .ann p { margin-left: clamp(0px, 0.0318vw, 0.61px); }

.ann h4 {
  max-width: clamp(240px, 37.4292vw, 718.64px);
  font-size: clamp(28px, 2.7126vw, 52.082px);
  font-weight: 600;
  letter-spacing: -0.06em;
}

.ann-list > li:nth-child(3) { padding-bottom: clamp(20px, 4.0583vw, 77.92px); }
.ann-list > li:nth-child(3) .ann:nth-child(1) p { margin-top: clamp(10px, 1.7151vw, 32.93px); }
.ann-list > li:nth-child(3) .ann:nth-child(2) p { margin-top: clamp(10px, 1.4797vw, 28.41px); }

.ann p {
  margin-top: clamp(10px, 0.9203vw, 17.67px);
  margin-left: clamp(0px, 0.1734vw, 3.33px);
  max-width: clamp(240px, 39.2979vw, 754.52px);
  font-size: var(--fs-body);
  line-height: normal;
}

.ann-btn {
  margin-top: clamp(20px, 2.0411vw, 39.19px);
  margin-left: clamp(0px, 0.7073vw, 13.58px);
  min-width: clamp(180px, 22.1349vw, 424.99px);
  font-size: clamp(21px, 2.0833vw, 40px);
}

.sec-ln-gov { padding-top: clamp(40px, 9.0901vw, 174.53px); }

.sec-ln-gov .ln-sub { margin-top: 32px; }

.sec-ln-gov .ln-sub-2 {
  margin-top: clamp(34px, 4.4271vw, 85px);
  font-size: clamp(34px, 4.4271vw, 85px);
}

.gov-copy {
margin-top: clamp(24px, 2.8177vw, 54.10px);
  margin-left: clamp(0px, 0.2766vw, 5.31px);
  max-width: clamp(280px, 52.1141vw, 1000.59px);
  font-size: var(--fs-body);
  line-height: normal;
}

.art-grid { margin-top: clamp(30px, 4.5234vw, 86.85px); }

.art-col:nth-child(1) { padding-left: clamp(10px, 1.7865vw, 34.30px); }
.art-col:nth-child(2) { padding-left: clamp(12px, 2.3760vw, 45.62px); }
.art-col:nth-child(3) { padding-left: clamp(12px, 2.3177vw, 44.50px); }

.art .story-date { margin-top: 0; }
.art h4 {
  margin-top: clamp(14px, 1.6859vw, 32.37px);
  margin-left: clamp(-2.07px, -0.1078vw, 0px);
  max-width: clamp(240px, 25.4489vw, 488.62px);

  font-size: clamp(26px, 2.5597vw, 49.147px);
  font-weight: 600;
}
.art .story-body { margin-top: clamp(16px, 1.3021vw, 25px); }

.art { position: relative; }
.art::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(200px, 27.3822vw, 525.74px);
  height: var(--rule-w);
  background: var(--rule);
}
.art + .art { margin-top: clamp(24px, 2.8177vw, 54.10px); }
.art-col:nth-child(3) .art + .art { margin-top: clamp(24px, 3.125vw, 60px); }
.art-col .art p.story-body{ padding-bottom: clamp(25px, 3.4552vw, 73.34px); }
.art-col .art p.story-body a{color:rgba(49, 27, 119, 0.40);  text-decoration: none}
.art-col .art p.story-body a:hover{color:rgba(49, 27, 119, 0.40);  text-decoration: underline}

.sec-ln-cta { padding-top: clamp(40px, 5.5750vw, 107.04px); }
.sec-ln-cta h2 { font-size: var(--h2); font-weight: 600; }

.cta-copy {
  margin-top: clamp(18px, 2.0875vw, 40.08px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 64.1714vw, 1232.09px);
  font-size: var(--fs-body);
  line-height: normal;
}

.sec-ln-cta + .sec-footer { margin-top: clamp(40px, 5.0766vw, 97.47px); }

.cta-btn {
  margin-top: clamp(20px, 6.9094vw, 132.66px);
  margin-left: clamp(0px, 0.6203vw, 11.91px);
}

@media (max-width: 990px) {
  /* The 4-item mega nav is the same horizontal strip (see the 992px block).
     In the base each item has its own large padding-left, sized for the
     desktop fr columns - in the strip that is far too much, so here every
     item gets the same gap. The selector's specificity matches the base
     rules. */
  .sec-header-4 .mega-nav li:nth-child(2),
  .sec-header-4 .mega-nav li:nth-child(3),
  .sec-header-4 .mega-nav li:nth-child(4) { padding-left: var(--mega-gap); }

  /* The strip must run to the edge of the screen - this max-width would stop
     it at 347px and leave empty space on the right. */
  .page-news .sec-header-4 .mega-nav ul { max-width: none; }

  .story-grid { grid-template-columns: 1fr 1fr; }
  .story-grid > :nth-child(3n) { border-right: var(--rule-w) solid var(--rule); }
  .story-grid > :nth-child(2n) { border-right: 0; }
}

@media (max-width: 767px) {
  /* The mega nav's mobile spacing is in the 990px block - nothing overrides it here. */

  .ln-lead, .ln-intro, .gov-copy, .cta-copy,
  .feature-title, .feature-body, .story-body, .story-title,
  .art h4, .ann p { max-width: 100%; }

  .feature-img { width: 100%; }

  .story-grid,
  .art-grid { grid-template-columns: 1fr; border-left: 0; border-right: 0; }
  .story-grid > *,
  .story-grid > :nth-child(3n),
  .story-grid > :nth-child(2n),
  .art-col { border-right: 0; }
  .story { padding-left: 0; padding-bottom: 28px; }
  .story img { width: 100%; }
  .story-body { margin-top: 16px; margin-left: 0; }
  .story-grid > :nth-child(-n+3)::after { margin-top: 24px; width: 100%; }
/*  .story-grid > :nth-child(-n+3) { padding-bottom: 0; }*/

  .art-col:nth-child(n) { padding-left: 0; }
  .art-col + .art-col { margin-top: 28px; padding-top: 28px; border-top: var(--rule-w) solid var(--rule); }
  .art .story-body { margin-top: 16px; }

  .ann-list > li { grid-template-columns: 1fr; row-gap: 22px; }
  .ann-list > li::after { display: none; }
  .ann + .ann { padding-left: 0; }
  .ann p { margin-left: 0; }

  .ann-btn { min-width: 0; }
}

.sec-header-4 .mega-nav ul {
  grid-template-columns: 291fr 373.9fr 341.9fr 772.1fr;
}
.sec-header-4 .mega-nav li:nth-child(2) { padding-left: clamp(16px, 3.1198vw, 59.9px); }
.sec-header-4 .mega-nav li:nth-child(3) { padding-left: clamp(16px, 2.8594vw, 54.9px); }
.sec-header-4 .mega-nav li:nth-child(4) { padding-left: clamp(16px, 3.7969vw, 72.9px); }

.sec-ae-hero {
  position: relative;
  padding-top: clamp(40px, 6.6854vw, 128.36px);
}

.ae-pinwheel {
  top: clamp(-106.21px, -5.5318vw, 0px);
  left: 69.0609%;
  width: 30.9740%;
}

.sec-ae-hero h1 { max-width: clamp(280px, 68.05vw, 1306.56px); }

.sec-ae-intro { padding-top: clamp(40px, 5.9536vw, 114.31px); }

.ae-intro-copy { padding-left: clamp(0px, 0.1938vw, 3.72px); }
.ae-intro-copy p { max-width: 48.07em; }

.ae-cat-title { margin-top: clamp(34px, 5.2417vw, 100.64px); }

.cat-list {
  margin-top: clamp(24px, 3.6073vw, 69.26px);
  margin-left: clamp(-14.8px, -0.7708vw, 0px);
}
.cat-list li + li { margin-top: clamp(6px, 1.1458vw, 22px); }

.cat-bar {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  min-height: clamp(34px, 3.0729vw, 59px);
  padding: 0 clamp(14px, 1.7969vw, 34.5px);
  font-size: clamp(19px, 2.0833vw, 40px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  color: #fff;
}
.cat-bar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
}

.cat-orange::before  { background: var(--orange);  transform: rotate(-0.55deg); }
.cat-violet::before  { background: var(--violet);  transform: rotate(0.12deg); }
.cat-teal::before    { background: var(--teal);    transform: rotate(-0.29deg); }
.cat-red::before     { background: var(--red);     transform: rotate(-0.44deg); }
.cat-amber::before   { background: var(--amber);   transform: rotate(0.29deg); }
.cat-blue::before    { background: var(--blue);    transform: rotate(-0.31deg); }
.cat-blue-lt::before { background: var(--blue-lt); transform: rotate(0.41deg); }

.sec-ae-docs { padding-top: clamp(40px, 6.0094vw, 115.38px); }
.ae-doc-hl::before { transform: rotate(0.93deg); }

.ae-docs-copy {
  margin-top: clamp(30px, 3.9870vw, 76.55px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
  margin-left: clamp(0px, 0.1938vw, 3.72px);
  font-size: var(--fs-body);
  line-height: normal;
}

.ae-docs-lead {
  margin-top: clamp(24px, 3.9167vw, 75.2px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  font-size: clamp(19px, 2.0833vw, 40px);
  font-weight: 600;
  line-height: normal;
}

.doc-list {
  margin-top: clamp(20px, 2.7391vw, 52.59px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  border-top: var(--rule-w) solid var(--rule);
}
.doc-list li {
  position: relative;
  display: grid;
  grid-template-columns: 735.84fr 1040.25fr;
  padding: clamp(6px, 0.8943vw, 17.17px) 0 clamp(8px, 1.1901vw, 22.85px);
  border-bottom: var(--rule-w) solid var(--rule);
  font-size: clamp(19px, 2.0833vw, 40px);
  font-weight: 600;
  line-height: normal;
}
.doc-list li > span:last-child { padding-left: clamp(12px, 4.1839vw, 80.33px); }
.doc-list li::after {
  content: "";
  position: absolute;
  left: 41.4267%;
  top: clamp(6px, 0.8943vw, 17.17px);
  width: var(--rule-w);
  height: clamp(30px, 3.2204vw, 61.83px);
  background: var(--rule);
}

.ae-note {
  position: relative;
  isolation: isolate;
  margin-top: clamp(20px, 1.9349vw, 37.15px);
  margin-left: clamp(-22.4px, -1.1672vw, 0px);
  padding: clamp(14px, 2.1875vw, 42px) clamp(16px, 1.3604vw, 26.13px);
  max-width: clamp(300px, 66.7595vw, 1281.78px);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: normal;
  color: #fff;
}
.ae-note::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--orange);
  transform: rotate(-0.68deg);
  z-index: -1;
}

.sec-ae-judging {
  position: relative;
  padding-top: clamp(40px, 7.4234vw, 142.53px);
}
.ae-judge-hl::before { transform: rotate(0deg); }

.ae-pinwheel-2 {
  top: clamp(280px, 43.5vw, 835.2px);
  left: 66.2552%;
  width: 45.3646%;
}

.ae-judge-copy {
  margin-top: clamp(28px, 3.5094vw, 67.38px);
  margin-left: clamp(0px, 0.1938vw, 3.72px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
  font-size: var(--fs-body);
  line-height: normal;
}

.steps { margin-top: clamp(20px, 2.2245vw, 42.71px); }

.step {
  position: relative;
  padding-left: clamp(56px, 8.3375vw, 160.08px);
}
.steps > li:nth-child(2) { margin-top: clamp(26px, 4.2818vw, 82.21px); }
.steps > li:nth-child(3) { margin-top: clamp(22px, 3.3365vw, 64.06px); }
.steps > li:nth-child(4) { margin-top: clamp(22px, 2.9620vw, 56.87px); }
.steps > li:nth-child(5) { margin-top: clamp(26px, 4.1745vw, 80.15px); }
.steps > li:nth-child(6) { margin-top: clamp(30px, 4.9734vw, 95.49px); }

.step-mark {
  position: relative;
  isolation: isolate;
  display: block;
  width: fit-content;
  min-width: clamp(120px, 20.9122vw, 401.51px);
  margin-left: clamp(-184.48px, -9.6083vw, 0px);
  padding: clamp(8px, 1.1984vw, 23.01px) clamp(14px, 1.7969vw, 34.5px)
           clamp(8px, 1.1984vw, 23.01px) clamp(14px, 1.2489vw, 23.98px);
}
.step-mark::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: rotate(-2.37deg);
  z-index: -1;
}

.step-mark::after {
  content: "";
  position: absolute;
  left: clamp(1px, 0.2370vw, 2px);
  top: clamp(6px, 0.7271vw, 13.96px);
  width: clamp(34px, 5.625vw, 108px);
  height: clamp(70px, 11.3583vw, 218.08px);
  transform: rotate(-2.37deg);
  z-index: -2;
}

.step-mark {
  font-size: clamp(24px, 2.6042vw, 50px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: normal;
  color: #fff;
}
.step-mark .acc-head {
  display: block;
  width: 100%;
  padding: 0;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.steps .acc-panel { overflow: hidden; max-height: 0; transition: max-height .35s ease; }
.steps .step.is-open > .acc-panel { max-height: none; }

.step.is-open .step-mark img { transform: rotate(-2.37deg) rotate(180deg); }

.step-mark img {
  position: absolute;
  left: clamp(8px, 1.8927vw, 36.34px);
  top: clamp(58px, 6.5219vw, 125.22px);
  width: clamp(20px, 2.3141vw, 44.43px);
  height: auto;
  transform: rotate(-2.37deg);
  transform-origin: 50% 50%;
  transition: transform .25s ease;
}

.step-red::before,    .step-red::after    { background: var(--red); }
.step-blue::before,   .step-blue::after   { background: var(--blue); }
.step-violet::before, .step-violet::after { background: var(--violet); }
.step-orange::before, .step-orange::after { background: var(--orange); }
.step-teal::before,   .step-teal::after   { background: var(--teal); }
.step-amber::before,  .step-amber::after  { background: var(--amber); }
.step-red   .step-mark::before, .step-red   .step-mark::after { background: var(--red); }
.step-blue  .step-mark::before, .step-blue  .step-mark::after { background: var(--blue); }
.step-violet .step-mark::before, .step-violet .step-mark::after { background: var(--violet); }
.step-orange .step-mark::before, .step-orange .step-mark::after { background: var(--orange); }
.step-teal  .step-mark::before, .step-teal  .step-mark::after { background: var(--teal); }
.step-amber .step-mark::before, .step-amber .step-mark::after { background: var(--amber); }

.step-desc {
  margin-top: clamp(20px, 2.4010vw, 46.1px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
  font-size: var(--fs-body);
  line-height: normal;
}

.crit-lead {
  margin-top: clamp(20px, 3.2344vw, 62.1px);
  font-size: var(--fs-body);
  line-height: normal;
}
.crit-list {
  margin-top: clamp(14px, 2.0714vw, 39.77px);
  margin-left: clamp(-151.77px, -7.9047vw, 0px);
  max-width: clamp(300px, 53.2338vw, 1022.09px);
  border-top: var(--rule-w) solid var(--rule);
}
.crit-list li {
  padding-left: clamp(56px, 7.9047vw, 151.77px);
  border-bottom: var(--rule-w) solid var(--rule);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: clamp(38px, 3.0859vw, 59.25px);
}

.sec-ae-principles { padding-top: clamp(36px, 5.2281vw, 100.38px); }
.ae-gp-hl::before { transform: rotate(0deg); }

.gp-lead {
  margin-top: clamp(30px, 4.5719vw, 87.78px);
  margin-left: clamp(0px, 0.6344vw, 12.18px);
  font-size: var(--fs-body);
  line-height: normal;
}

.gp-list {
  margin-top: clamp(18px, 2.3453vw, 45.03px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(300px, 69.1714vw, 1328.09px);
  border-top: var(--rule-w) solid var(--rule);
}
.gp-list li {
  padding: clamp(8px, 0.8047vw, 15.45px)
           0
           clamp(8px, 0.8078vw, 15.51px)
           clamp(0px, 0.2016vw, 3.87px);
  border-bottom: var(--rule-w) solid var(--rule);
  font-size: var(--fs-body);
  line-height: normal;
}
.gp-list li:nth-child(2) { padding-bottom: clamp(6px, 0.5214vw, 10.01px); }
.gp-list li:nth-child(4) { padding-bottom: clamp(10px, 1.1203vw, 21.51px); }
.gp-list strong { font-weight: 700; }

.sec-ae-faq { padding-top: clamp(40px, 5.8099vw, 111.55px); }
.ae-faq-hl::before { transform: rotate(0deg); }

.faq-accordion {
  margin-top: clamp(30px, 4.6495vw, 89.27px);
  margin-left: clamp(0px, 0.3310vw, 6.36px);
  border-top: var(--rule-w) solid var(--rule);
}

.faq-accordion .acc-head {
  padding: clamp(14px, 2.0599vw, 39.55px) 0 clamp(14px, 1.8990vw, 36.46px);
  font-size: clamp(21px, 2.0833vw, 40px);
}
.faq-accordion .acc-inner {
  display: block;
  padding-bottom: clamp(14px, 1.3422vw, 25.77px);
}
.faq-inner { margin-left: clamp(20px, 7.7136vw, 148.11px); padding-top: clamp(10px, 1.1245vw, 21.59px); }

.faq-qa { max-width: clamp(280px, 55.625vw, 1068px); }
.faq-qa + .faq-qa {
  margin-top: clamp(14px, 1.6120vw, 30.95px);
  padding-top: clamp(14px, 1.6120vw, 30.95px);
  border-top: var(--rule-w) solid var(--rule);
}
.faq-qa h4 {
  font-size: var(--h4);
  letter-spacing: -0.06em;
}
.faq-qa p {
  margin-top: clamp(8px, 0.6vw, 11.52px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}

.sec-ae-form { padding-top: clamp(40px, 7.9859vw, 153.33px); padding-bottom: clamp(10px, 1.1333vw, 21.76px); }

.ae-form-intro {
  margin-left: clamp(-3px, -0.0323vw, 0px);
  width: clamp(100%, 93.3938vw, 1793.16px);
  max-width: none;
  padding: clamp(20px, 1.2146vw, 23.32px) clamp(16px, 3.7089vw, 71.21px)
           clamp(24px, 5.7766vw, 110.91px);
  background: var(--red);
  color: #fff;
}
.ae-form-intro h2 { color: #fff; }
.ae-fi-lead {
  margin-top: clamp(12px, 2.1885vw, 42.02px);
  margin-left: clamp(0px, 0.1594vw, 3.06px);
  font-size: var(--h4);
  font-weight: 600;
  line-height: normal;
}
.ae-fi-body {
  margin-top: clamp(10px, 0.6188vw, 11.88px);
  margin-left: clamp(0px, 0.3407vw, 6.54px);
  max-width: clamp(280px, 63.1156vw, 1211.82px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}
.ae-fi-body a { text-decoration: underline; }

.ae-form {
  margin-left: clamp(0px, 0.3302vw, 6.34px);
  max-width: clamp(300px, 92.5047vw, 1776.09px);
  color: var(--purple);
}

.fld { padding-bottom: clamp(8px, 0.7156vw, 13.74px); border-bottom: var(--rule-w) solid var(--rule); }
.fld + .fld { margin-top: clamp(20px, 1.9740vw, 37.90px); }

.fld > label {
  display: block;
  max-width: clamp(280px, 64.6417vw, 1241.12px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}
.fld input {
  display: block;
  width: 100%;
  margin-top: clamp(18px, 2.8714vw, 55.13px);
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: clamp(19px, 1.875vw, 36px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  color: var(--purple);
}
.fld input::placeholder { color: rgba(49, 27, 119, 0.33); opacity: 1; }
.fld input:focus { outline: none; }

.fld-2line input { margin-top: clamp(12px, 1.3089vw, 25.13px); }

.fld-lead { margin-top: clamp(24px, 3.1292vw, 60.08px); padding-bottom: clamp(12px, 1.1167vw, 21.44px); border-bottom: 0; }
.fld-lead > label { max-width: none; font-size: clamp(21px, 2.0833vw, 40px); font-weight: 600; letter-spacing: -0.06em; }
.fld-lead input {
  margin-top: clamp(10px, 1.1016vw, 21.15px);
  font-size: clamp(21px, 2.0833vw, 40px);
}

.fld-cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(12px, 1.0417vw, 20px); }
.fld-split { padding-bottom: 0; border-bottom: 0; }
.fld-split + .fld { margin-top: clamp(20px, 1.9287vw, 37.03px); }
.fld-cols input { border-bottom: var(--rule-w) solid var(--rule); padding-bottom: clamp(8px, 0.7156vw, 13.74px); }

.ae-form input[type="radio"],
.ae-form input[type="checkbox"] {
  flex: none;
  appearance: none;
  width: clamp(22px, 1.9724vw, 37.87px);
  height: clamp(22px, 1.9724vw, 37.87px);
  margin: 0 0 0 clamp(-1.43px, -0.0745vw, 0px);
  border: var(--rule-w) solid var(--red);
  border-radius: 4px;
  background: none;
  cursor: pointer;
      transform: rotate(-10deg);
}
.ae-form input[type="radio"]:checked,
.ae-form input[type="checkbox"]:checked { background: var(--red); }
.ae-form input[type="radio"]:focus-visible,
.ae-form input[type="checkbox"]:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }

.ae-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }

.cat-grid { border-top: var(--rule-w) solid var(--rule); }
.cat-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: var(--rule-w) solid var(--rule);
}
.cat-row::after {
  content: "";
  position: absolute;
  left: 50%;
  top: clamp(10px, 1.1599vw, 22.27px);
  width: var(--rule-w);
  height: clamp(60px, 7.6906vw, 147.66px);
  background: var(--rule);
}
.cat-row:nth-child(2) { min-height: clamp(0px, 10.8333vw, 208px); }
.cat-row:nth-child(3) { min-height: clamp(0px, 11.0422vw, 212.01px); }
.cat-row:nth-child(4),
.cat-row:nth-child(5) { min-height: clamp(0px, 10.8661vw, 208.63px); }
.cat-row:nth-child(2) .cat-cell { padding-top: clamp(20px, 4.1198vw, 79.10px); }
.cat-row:nth-child(3) .cat-cell { padding-top: clamp(18px, 3.2536vw, 62.47px); }
.cat-row:nth-child(4) .cat-cell,
.cat-row:nth-child(5) .cat-cell { padding-top: clamp(18px, 3.0781vw, 59.10px); }

.cat-cell { display: flex; }
.cat-cell + .cat-cell { padding-left: clamp(12px, 2.3734vw, 45.57px); }
.cat-cell input { margin-top: clamp(4px, 1.0453vw, 20.07px); }
.cat-cell label {
  padding-left: clamp(12px, 2.2995vw, 44.15px);
  cursor: pointer;
  letter-spacing: -0.06em;
}
.cc-t, .cc-d { display: block; font-weight: 600; line-height: normal; }
.cc-t { font-size: var(--h4); }
.cc-d { font-size: clamp(14px, 1.0417vw, 20px); }

.ae-form .org-type { margin-top: clamp(28px, 4.2083vw, 80.80px); }
.org-type legend {
  padding: 0;
  font-size: clamp(18px, 1.5625vw, 30px);
  font-weight: 400;
  line-height: normal;
}
.org-type ul { margin-top: clamp(24px, 3.2016vw, 61.47px); }
.org-type li { display: flex; }
.org-type li + li { margin-top: clamp(16px, 2.3438vw, 45px); }
.org-type input { margin-top: clamp(2px, 0.2750vw, 5.28px); }
.org-type label {
  padding-left: clamp(12px, 2.2995vw, 44.15px);
  font-size: var(--h4);
  font-weight: 700;
  line-height: normal;
  cursor: pointer;
}

.org-type + .fld { margin-top: clamp(30px, 4.8365vw, 92.86px); }

.upload { margin-top: clamp(20px, 1.8484vw, 35.49px); }
.up-zone {
  display: grid;
  grid-template-columns: 530.06fr 646fr 600.03fr;
  min-height: clamp(120px, 10.0344vw, 192.66px);
}
.up-cell + .up-cell { border-left: var(--rule-w) solid var(--rule); }
.up-cell p {
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.up-drop  { padding: clamp(12px, 1.8031vw, 34.62px) 0 0 clamp(12px, 6.3333vw, 121.60px); }
.up-count { padding: clamp(12px, 1.8031vw, 34.62px) 0 0 clamp(10px, 3.2010vw, 61.46px); }
.up-see   { padding: clamp(12px, 1.8031vw, 34.62px) 0 0 clamp(10px, 4.2224vw, 81.07px); }
.up-see p { color: var(--blue-lt); }

.btn-files {
  display: block;
  margin: clamp(8px, 0.8380vw, 16.09px) 0 0 clamp(0px, 3.0177vw, 57.94px);
  width: clamp(140px, 10.6042vw, 203.60px);
  height: clamp(40px, 2.8661vw, 55.03px);
  border-radius: 4px;
  background: var(--teal);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: normal;
  color: #fff;
  cursor: pointer;
}

.up-note {
  margin-top: clamp(16px, 1.6531vw, 31.74px);
  padding-bottom: clamp(20px, 3.5375vw, 67.92px);
  border-bottom: var(--rule-w) solid var(--rule);
  max-width: clamp(280px, 88.9609vw, 1708.05px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}
.up-note a { text-decoration: underline; }

.upload ~ .fld { margin-top: clamp(20px, 1.9432vw, 37.31px); }

.ae-form .heard { margin-top: clamp(20px, 1.8490vw, 35.50px); }
.heard legend {
  padding: 0;
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}
.heard-cols {
  display: grid;
  grid-template-columns: clamp(180px, 19.6vw, 376.32px) auto;
  margin-top: clamp(20px, 2.75vw, 52.80px);
}
.heard ul{display:flex; flex-direction: column; gap: clamp(16px, 1.7vw, 36px);}
.heard li { display: flex; }
.heard input { margin-top: clamp(6px, 0.9969vw, 19.14px); }
.heard label {
  padding-left: clamp(12px, 2.9828vw, 57.27px);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: auto;
  cursor: pointer;
}

.ae-declare {
  margin-top: clamp(24px, 2.8031vw, 53.82px);
  max-width: clamp(280px, 81.4609vw, 1564.05px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}

.tick { display: flex; margin-top: clamp(12px, 0.8255vw, 15.85px); }
.ae-declare + .tick { margin-top: clamp(20px, 2.4380vw, 46.81px); }
.tick label {
  padding-left: clamp(10px, 1.8781vw, 36.06px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
  cursor: pointer;
}

.ae-tc-title {
  margin-top: clamp(36px, 5.1594vw, 99.06px);
  font-size: clamp(21px, 2.0833vw, 40px);
  letter-spacing: -0.06em;
}
.ae-tc-title + .tick { margin-top: clamp(20px, 2.0354vw, 39.08px); }

.ae-tc-link {
  margin-top: clamp(24px, 3.4802vw, 66.82px);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: normal;
}

.btn-submit {
  display: block;
  margin: clamp(30px, 4.4219vw, 84.90px) 0 0 clamp(-12.31px, -0.6411vw, 0px);
  width: clamp(150px, 11.8547vw, 227.61px);
  height: clamp(40px, 2.8286vw, 54.31px);
  padding-left: clamp(10px, 0.6417vw, 12.32px);
  border-radius: 4px;
  background: var(--teal);
  font-size: clamp(21px, 2.0833vw, 40px);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  text-align: left;
  white-space: nowrap;
  color: #fff;
  cursor: pointer;
}

@media (max-width: 990px) {
  /* The 4-item mega nav is the same horizontal strip (see the 992px block).
     In the base each item has its own large padding-left, sized for the
     desktop fr columns - in the strip that is far too much, so here every
     item gets the same gap. The selector's specificity matches the base
     rules. */
  .sec-header-4 .mega-nav li:nth-child(2),
  .sec-header-4 .mega-nav li:nth-child(3),
  .sec-header-4 .mega-nav li:nth-child(4) { padding-left: var(--mega-gap); }

  /* The strip must run to the edge of the screen - this max-width would stop
     it at 347px and leave empty space on the right. */
  .page-news .sec-header-4 .mega-nav ul { max-width: none; }
}

@media (max-width: 767px) {
  /* The mega nav's mobile spacing is in the 990px block - nothing overrides it here. */

  .ae-intro-copy { padding-left: 0; }
  .ae-intro-copy p { max-width: 100%; }

  .cat-bar { font-size: 18px; min-height: 0; padding: 12px 16px; }
  .cat-list li + li { margin-top: 10px; }

  .ae-docs-copy,
  .ae-judge-copy { max-width: 100%; }
  .doc-list li { grid-template-columns: 1fr; row-gap: 6px; }
  .doc-list li > span:last-child { padding-left: 0; }
  .doc-list li::after { display: none; }
  .ae-note { margin-left: 0; max-width: 100%; }

  .step-mark { min-width: 0; margin-left: 0; }
  .crit-list { margin-left: 0; }
    .crit-list li {
        padding-left: 0;
        line-height: 2;
    }

  .ae-form-intro { margin-left: 0; width: 100%; padding: 24px 20px 28px; }
  .ae-form { margin-left: 0; max-width: 100%; }
  .fld > label { max-width: 100%; }

  .cat-grid { display: flex; flex-direction: column; border-top: 0; }
  .cat-row { display: contents; }
  .cat-cell {
    padding: 18px 0;
    border-top: var(--rule-w) solid var(--rule);
  }
  .cat-cell:empty { display: none; }
  .cat-cell + .cat-cell { padding-left: 0; }
  .cat-cell input { margin-top: 2px; }
  .cat-row:nth-child(2) .cat-cell:nth-child(1) { order: 1; }
  .cat-row:nth-child(3) .cat-cell:nth-child(1) { order: 2; }
  .cat-row:nth-child(4) .cat-cell:nth-child(1) { order: 3; }
  .cat-row:nth-child(5) .cat-cell:nth-child(1) { order: 4; }
  .cat-row:nth-child(2) .cat-cell:nth-child(2) { order: 5; }
  .cat-row:nth-child(3) .cat-cell:nth-child(2) { order: 6; }
  .cat-row:nth-child(4) .cat-cell:nth-child(2) { order: 7; border-bottom: var(--rule-w) solid var(--rule); }

  .fld-cols { grid-template-columns: 1fr; row-gap: 20px; }

  .up-zone { grid-template-columns: 1fr; min-height: 0; row-gap: 18px; padding: 20px 0; }
  .up-cell { padding: 0 !important; }
  .up-cell + .up-cell { border-left: 0; }
  .btn-files { margin-left: 0; }

  .heard-cols { grid-template-columns: 1fr; }
  .heard label { line-height: 1.5; padding-left: 14px; }
  .heard li + li { margin-top: 14px; }
  .heard-cols > ul + ul { margin-top: 14px; }

  .ae-form input[type="radio"],
  .ae-form input[type="checkbox"] { margin-left: 0; }
  .org-type label,
  .cat-cell label { padding-left: 14px; }
  .tick label { padding-left: 14px; }
  .btn-submit { margin-left: 0; padding-left: 0; text-align: center; }
}

:root {
  --pw-cyan:    #01c2d7;
  --fs-snap:    clamp(30px, 3.1645vw, 60.759px);
  --fs-quote:   clamp(28px, 3.3333vw, 64px);
  --fs-row:     clamp(21px, 2.0833vw, 40px);
}

.sec-pw-about   :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(1.38deg); }
.sec-pw-snap    :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(-2.79deg); }
.sec-pw-why     :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(4.96deg); }
.sec-pw-gov     :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(-1.47deg); }
.sec-pw-since   :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(2.58deg); }
.sec-pw-numbers :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(-7.33deg); }
.sec-pw-report  :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(3.25deg); }
.pw-cta-title   :is(.h1,.h2,.h3,.h4,.h5)::before { transform: rotate(0.94deg); }

.sec-pw-hero { padding-top: clamp(40px, 6.6854vw, 128.36px); }

.pw-hero {
  display: grid;
  grid-template-columns: 1084.74fr 704.06fr;
  align-items: start;
}

.pw-badge-row { display: flex; margin-top: clamp(4px, 0.4490vw, 8.62px); }

.pw-badge {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  min-height: clamp(52px, 5.8962vw, 113.207px);
  margin-left: clamp(-16.14px, -0.8406vw, 0px);
  padding-inline: clamp(12px, 1.2734vw, 24.45px);
  font-size: var(--fs-row);
  font-weight: 600;
  line-height: normal;
  color: #fff;
}
.pw-badge::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--teal);
  transform: rotate(-1.57deg);
  z-index: -1;
}

.pw-cat {
  margin-top: clamp(12px, 1.2964vw, 24.89px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

/* The winner's own website. Kept smaller than the category - that is the
   award's identity, this is just a way out. Underlined because there is no
   other link in the hero; colour alone does not make it read as a link. */
.pw-web { margin-top: clamp(8px, 0.8333vw, 16px); }
.pw-web a {
  font-size: var(--fs-row);
  font-weight: 600;
  line-height: normal;
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.pw-web a:hover { color: var(--red); }

.pw-brand-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(200px, 25.6771vw, 493px);
  aspect-ratio: 493 / 301;
  margin-top: clamp(0px, 0.1146vw, 2.2px);
  background: var(--pw-cyan);
  transform: rotate(2.35deg);
}
.pw-brand-panel img {
  width: clamp(160px, 21.0417vw, 404px);
  height: auto;

  margin-right: clamp(0px, 0.4448vw, 8.54px);
}

/* The winner's photo in its own section. Same padding as `.sec-pw-about` -
   with or without a photo, the story below it starts from the same place. */
.sec-pw-photo { padding-top: clamp(28px, 3.7948vw, 72.86px); }

.sec-pw-about { padding-top: clamp(28px, 3.7948vw, 72.86px); }

.pw-about-media {
  width: clamp(280px, 97.0682vw, 1863.71px);
  margin-left: clamp(0px, 1.4641vw, 28.11px);
}
.pw-about-media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1863.71 / 850.74;
  object-fit: cover;

  object-position: 50% 66.3%;
  mix-blend-mode: multiply;
}

.sec-pw-about h2 {
  margin-top: clamp(30px, 6.6854vw, 128.36px);

  max-width: clamp(280px, 52.4479vw, 1007px);
}

.pw-about-copy {
  margin-top: clamp(20px, 3.4552vw, 66.34px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}
.pw-lead-line { font-weight: 600; }

.sec-pw-video { padding-top: clamp(24px, 5.8578vw, 112.47px); }

.pw-video {
  position: relative;
  width: clamp(280px, 76.3323vw, 1465.58px);
  margin-left: clamp(20px, 12.2094vw, 234.42px);
}
.pw-video img {
  width: 100%;
  height: auto;
  aspect-ratio: 1465.58 / 850.74;
  object-fit: cover;
  background: var(--purple);
}

.pw-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  cursor: pointer;
}
.pw-play img {
  width: clamp(48px, 5.2083vw, 100px);
  height: auto;
  aspect-ratio: 1;
  background: none;
  transition: transform .25s ease;
}
.pw-play:hover img { transform: scale(1.08); }

.sec-pw-snap { padding-top: clamp(40px, 7.9313vw, 152.28px); }

.snap-grid,
.snap-web {
  margin-left: clamp(0px, 0.1708vw, 3.28px);
  max-width: clamp(280px, 92.5047vw, 1776.09px);
  border-top: var(--rule-w) solid var(--rule);
}
.snap-grid {
  display: grid;

  grid-template-columns: 441.4fr 301.37fr 504.11fr 529.21fr;
  margin-top: clamp(24px, 4.6932vw, 90.11px);
}
.snap-web { margin-top: clamp(16px, 2.4927vw, 47.86px); }

.snap-cell { position: relative; }

.snap-grid .snap-cell + .snap-cell::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(6px, 0.8542vw, 16.4px);
  width: var(--rule-w);
  height: clamp(90px, 10.7204vw, 205.83px);
  background: var(--rule);
}
.snap-grid .snap-cell + .snap-cell { padding-left: clamp(12px, 2.4677vw, 47.38px); }

.snap-grid .snap-cell:first-child { margin-left: clamp(-3.28px, -0.1708vw, 0px); }

.snap-cell dt {
  margin-top: clamp(10px, 1.1859vw, 22.77px);
  font-size: var(--fs-cdt);
  line-height: normal;
  letter-spacing: -0.06em;
}
.snap-cell dd {
  margin: 0;
  font-size: var(--fs-snap);
  font-weight: 600;
  line-height: 0.9412;
  letter-spacing: -0.06em;
}

.snap-grid .snap-cell:nth-child(1) dd { max-width: clamp(160px, 22.1682vw, 425.63px); }
.snap-grid .snap-cell:nth-child(2) dd { max-width: clamp(80px, 8.6220vw, 165.54px); }
.snap-grid .snap-cell:nth-child(3) dd { max-width: clamp(160px, 23.7881vw, 456.73px); }
.snap-grid .snap-cell:nth-child(4) dd { max-width: clamp(160px, 23.7881vw, 456.73px); }

.snap-web .snap-cell { margin-left: clamp(-3.28px, -0.1708vw, 0px); }
.snap-web .snap-cell dt { margin-top: clamp(14px, 1.5745vw, 30.23px); }
.snap-web .snap-cell dd { max-width: clamp(200px, 24.2915vw, 466.4px); }
.snap-web a { text-decoration: underline; }

.sec-pw-why { padding-top: clamp(44px, 8.4760vw, 162.74px); }

.pw-intro {
  margin-top: clamp(20px, 3.9010vw, 74.9px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
  font-size: var(--fs-body);
  line-height: normal;
}

.reason-list,
.since-list {
  margin-top: clamp(20px, 3.4422vw, 66.09px);
  margin-left: clamp(0px, 0.1708vw, 3.28px);
  max-width: clamp(280px, 92.5047vw, 1776.09px);
  border-top: var(--rule-w) solid var(--rule);
}
.reason-list li,
.since-list li {
  position: relative;
  min-height: clamp(56px, 4.7917vw, 92px);
  padding-top: clamp(10px, 0.8943vw, 17.17px);
  border-bottom: var(--rule-w) solid var(--rule);
  font-size: var(--fs-row);
  font-weight: 600;
  line-height: normal;
}

.reason-list li { display: grid; grid-template-columns: 52.461% 1fr; }

.reason-list li::after {
  content: "";
  position: absolute;
  left: 48.748%;
  top: clamp(10px, 0.8943vw, 17.17px);
  width: var(--rule-w);
  height: clamp(34px, 3.2204vw, 61.83px);
  background: var(--rule);
}

.reason-list li:last-child {
  min-height: clamp(64px, 5.4167vw, 104px);
  padding-top: clamp(12px, 1.0026vw, 19.25px);
}
.reason-list li:last-child::after { display: none; }

.sec-pw-gov { padding-top: clamp(34px, 6.2224vw, 119.47px); }

.pw-gov-row {
  display: grid;
  grid-template-columns: 1211.49fr 577.31fr;
  align-items: start;
}
.pw-gov-copy .copy {
  margin-top: clamp(20px, 3.9010vw, 74.9px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}
.pw-gov-img {
  width: clamp(200px, 29.7115vw, 570.46px);
  height: auto;
  margin-top: clamp(20px, 3.1479vw, 60.44px);
  aspect-ratio: 570.46 / 412;
  object-fit: cover;
}

.sec-pw-since { padding-top: clamp(24px, 3.6797vw, 70.65px); }

.pw-since-copy {
  margin-top: clamp(24px, 4.0609vw, 77.97px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}
.pw-since-cue { font-weight: 700; }

.since-list { margin-top: clamp(20px, 2.7302vw, 52.42px); }

.since-list li:nth-child(n+4) {
  min-height: clamp(60px, 5.1906vw, 99.66px);
  padding-top: clamp(14px, 1.2932vw, 24.83px);
}

.sec-pw-numbers { padding-top: clamp(34px, 6.1536vw, 118.15px); }

.stat-grid {
  display: grid;
  grid-template-columns: 820fr 959.36fr;
  margin-top: clamp(30px, 6.3146vw, 121.24px);
  margin-left: clamp(-5.6px, -0.2917vw, 0px);
  max-width: clamp(280px, 92.6753vw, 1779.37px);
}
.stat {
  position: relative;
  padding-top: clamp(12px, 1.1859vw, 22.77px);
  padding-bottom: clamp(20px, 2.5193vw, 48.37px);
}

.stat:nth-child(odd)::before {
  content: "";
  position: absolute;
  left: clamp(0px, 0.1703vw, 3.27px);
  top: 0;
  width: clamp(280px, 92.5047vw, 1776.09px);
  height: var(--rule-w);
  background: var(--rule);
}

.stat-grid { border-bottom: 0; }
.stat:nth-last-child(2)::after {
  content: "";
  position: absolute;
  left: clamp(0px, 0.1703vw, 3.27px);
  bottom: 0;
  width: clamp(280px, 92.5047vw, 1776.09px);
  height: var(--rule-w);
  background: var(--rule);
}

.stat:nth-child(2)::before,
.stat:nth-child(4)::before {
  content: "";
  position: absolute;
  left: clamp(-40px, -3.1687vw, 0px);
  top: clamp(8px, 0.8526vw, 16.37px);
  width: var(--rule-w);
  height: clamp(120px, 12.6152vw, 242.21px);
  background: var(--rule);
}
.stat:nth-child(2)::before,
.stat:nth-child(4)::before { z-index: 1; }

.stat dt {
  font-size: var(--fs-cd);
  font-weight: 600;
  line-height: normal;
}
.stat dd {
  margin: 0;

  margin-top: clamp(4px, 0.4208vw, 8.08px);
  font-size: var(--fs-cdt);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.stat:nth-child(3),
.stat:nth-child(4) { padding-top: clamp(18px, 1.8865vw, 36.22px); }

.sec-pw-quotes { padding-top: clamp(30px, 4.6734vw, 89.73px); }

.pw-quotes-title { max-width: clamp(280px, 39.0831vw, 750.4px); }

.quote {
  position: relative;
  isolation: isolate;
  margin: 0;
  padding-left: clamp(20px, 13.5771vw, 260.68px);
  padding-right: clamp(20px, 1.6667vw, 32px);
}
.quote::before {
  content: "";
  position: absolute;
  top: 0;
  width: clamp(280px, 92.5213vw, 1776.41px);
  height: 100%;
  z-index: -1;
}
.quote p {
  margin: 0;
  max-width: clamp(280px, 65.6921vw, 1261.29px);
  font-size: var(--fs-quote);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.quote footer {
  margin-top: clamp(20px, 3.7500vw, 72px);
  font-size: var(--fs-quote);
  font-weight: 400;
  line-height: normal;
  letter-spacing: -0.06em;
}
.quote footer strong { font-weight: 700; }

.quote-amber {
  margin-top: clamp(24px, 4.0318vw, 77.41px);
  padding-top: clamp(24px, 4.9385vw, 94.82px);
  padding-bottom: clamp(28px, 8.5141vw, 163.47px);
}
.quote-amber::before {
  left: clamp(0px, 0.3646vw, 7px);
  background: var(--amber);
  transform: rotate(-1.52deg);
}
.quote-blue {
  margin-top: clamp(16px, 2.5693vw, 49.33px);
  padding-top: clamp(30px, 8.4396vw, 162.04px);
  padding-bottom: clamp(28px, 7.1589vw, 137.45px);
}

.quote-blue footer { margin-top: clamp(24px, 4.1255vw, 79.21px); }
.quote-blue::before {
  left: clamp(0px, 1.2214vw, 23.45px);
  background: var(--blue-lt);
  transform: rotate(1.07deg);
}

.sec-pw-gallery { padding-top: clamp(30px, 6.0609vw, 116.37px); }

.pw-gallery-title { max-width: clamp(280px, 39.0831vw, 750.4px); }

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 876.41fr));
  column-gap: clamp(10px, 1.2286vw, 23.59px);
  row-gap: clamp(10px, 1.1266vw, 21.63px);
  margin-top: clamp(24px, 3.2531vw, 62.46px);
  margin-left: clamp(0px, 0.4161vw, 7.99px);
  max-width: clamp(280px, 92.5214vw, 1776.41px);
}
.gallery-grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 876.41 / 576;
  object-fit: cover;
}

.sec-pw-report { padding-top: clamp(40px, 8.3385vw, 160.1px); }

.pw-report-lead {
  margin-top: clamp(20px, 2.9359vw, 56.37px);
  margin-left: clamp(0px, 0.3854vw, 7.4px);
  font-size: var(--fs-cdt);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.pw-pdf {
  margin-top: clamp(20px, 2.7083vw, 52px);
  margin-left: clamp(0px, 0.0755vw, 1.45px);
  min-height: clamp(40px, 3.1495vw, 60.47px);
  padding-inline: clamp(14px, 1.0516vw, 20.19px);
  font-size: var(--h4);
  font-weight: 600;
  letter-spacing: -0.06em;
}
.pw-pdf::before { transform: rotate(1.59deg); }

.pw-more-title {
  margin-top: clamp(34px, 5.1271vw, 98.44px);
  margin-left: clamp(-7.3px, -0.3802vw, 0px);
}

.winner-list {
  margin-top: clamp(24px, 3.2776vw, 62.93px);
  margin-left: clamp(-3.99px, -0.2078vw, 0px);
  max-width: clamp(280px, 92.7384vw, 1780.58px);
  border-top: var(--rule-w) solid var(--rule);
}

.winner-list li {
  padding-top: clamp(16px, 1.5833vw, 30.4px);
  padding-bottom: clamp(20px, 2.6406vw, 50.7px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.winner-list li:nth-child(1) { padding-top: clamp(16px, 1.6193vw, 31.09px); padding-bottom: clamp(20px, 2.7031vw, 51.90px); }
.winner-list li:nth-child(2) { padding-top: clamp(14px, 1.3813vw, 26.52px); padding-bottom: clamp(18px, 2.3630vw, 45.37px); }
.winner-list li:nth-child(3) { padding-top: clamp(16px, 1.7297vw, 33.21px); padding-bottom: clamp(18px, 2.4318vw, 46.69px); }
.winner-list li:nth-child(4) { padding-top: clamp(16px, 1.6005vw, 30.73px); padding-bottom: clamp(22px, 2.8563vw, 54.84px); }
.winner-list li:nth-child(1) p { margin-top: clamp(4px, 0.3318vw, 6.37px); }
.winner-list li:nth-child(2) p { margin-top: clamp(6px, 0.6234vw, 11.97px); }
.winner-list li:nth-child(3) p { margin-top: clamp(6px, 0.6229vw, 11.96px); }
.winner-list li:nth-child(4) p { margin-top: clamp(4px, 0.3500vw, 6.72px); }
.winner-name {
  display: inline-flex;
  align-items: center;

  gap: clamp(8px, 1.4776vw, 28.37px);
  margin-left: clamp(0px, 0.0802vw, 1.54px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.winner-name img {
  position: relative;
  top: clamp(0px, 0.2432vw, 4.67px);
  width: clamp(24px, 1.9271vw, 37px);
  height: auto;
}
.winner-list p {
  margin-top: clamp(4px, 0.4823vw, 9.26px);
  margin-left: clamp(0px, 0.2082vw, 4px);
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: normal;
}

/* ---- Winners by year --------------------------------------------------
   Markup is in template-parts/winner-outro.php. The strip of years is just
   anchor links - no JS filter, so the browser does the jump itself and
   `#winners-2024` can be shared too. */

.wy-nav { margin-top: clamp(20px, 2.3427vw, 44.98px); }
/* The strip of years stays pinned under the site header while the winners
   list scrolls past it (sticky is bounded by the section, so it lets go at
   the end of the list). White background so the names slide under it, not
   through it. custom.js marks the year currently in view as `is-active`. */
.wy-nav {
  position: sticky;
  top: calc(clamp(12px, 1.0417vw, 20px) * 2 + clamp(40px, 3.2813vw, 63px));
  z-index: 6;
  padding-block: 12px;
  background: #fff;
}
.wy-nav a.is-active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}
@media (max-width: 767px) {
  /* Pills wrap to two or three rows on a phone - pinning them would eat
     too much of the screen. */
  .wy-nav { position: static; padding-block: 0; }
}
.wy-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 0.8333vw, 16px);
}
.wy-nav a {
  display: inline-block;
  padding: clamp(6px, 0.5729vw, 11px) clamp(14px, 1.2500vw, 24px);
  border: var(--rule-w) solid var(--rule);
  border-radius: 999px;
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: normal;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.wy-nav a:hover,
.wy-nav a:focus-visible {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}

/* The space between groups comes from here, not from the `.wy-year` margin -
   the bucket of winners without a year prints with no heading and needs the
   same amount of space before it too. */
.wy-group + .wy-group { margin-top: clamp(28px, 3.5938vw, 69px); }
/* Breathing room between the year pills and the first year heading. */
.wy-nav + .wy-group { margin-top: 50px; }

.wy-year {
  /* The sticky header sits on top of the page - without this, a year you
     jumped to via an anchor hides underneath it. */
  scroll-margin-top: clamp(80px, 7.8125vw, 150px);
  font-size: var(--h3);
  font-weight: 700;
  line-height: normal;
  letter-spacing: -0.06em;
  color: var(--teal);
}

.wy-group .winner-list { margin-top: clamp(12px, 1.2500vw, 24px); }

@media (prefers-reduced-motion: reduce) {
  .wy-nav a { transition: none; }
}

.pw-cta-title { margin-top: clamp(40px, 5.9661vw, 114.55px); }

.pw-cta-copy {
  margin-top: clamp(20px, 3.1313vw, 60.12px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 64.1715vw, 1232.09px);
}
.pw-cta-btn { margin-top: clamp(20px, 4.1578vw, 79.83px); }

.sec-pw-report { padding-bottom: clamp(40px, 4.6615vw, 89.5px); }

@media (max-width: 992px) {
  .pw-hero { grid-template-columns: 1fr; row-gap: 28px; }
  .pw-brand-panel { width: min(100%, 420px); margin-top: 0; }

  .pw-gov-row { grid-template-columns: 1fr; row-gap: 28px; }
  .pw-gov-img { width: 100%; max-width: 100%; margin-top: 0; }

  .snap-grid { grid-template-columns: 1fr 1fr; row-gap: 24px; }
  .snap-grid .snap-cell + .snap-cell::before { display: none; }
  .snap-grid .snap-cell:nth-child(3) { padding-left: 0; }
  .snap-grid .snap-cell dd { max-width: 100%; }
}

@media (max-width: 767px) {

  .sec-pw-about h2,
  .pw-about-copy,
  .pw-intro,
  .pw-gov-copy .copy,
  .pw-since-copy,
  .pw-cta-copy,
  .pw-quotes-title,
  .pw-gallery-title,
  .quote p,
  .snap-web .snap-cell dd { max-width: 100%; }

  .reason-list,
  .since-list,
  .winner-list,
  .snap-grid,
  .snap-web,
  .stat-grid,
  .gallery-grid { max-width: 100%; margin-left: 0; }

  .pw-about-media,
  .pw-video { width: auto; margin-inline: var(--pad); }

  .snap-grid { grid-template-columns: 1fr; row-gap: 20px; }
  .snap-grid .snap-cell + .snap-cell { padding-left: 0; }
  .snap-grid .snap-cell:first-child { margin-left: 0; }

  .reason-list li { grid-template-columns: 1fr; row-gap: 6px; }
  .reason-list li::after { display: none; }

  .stat-grid { grid-template-columns: 1fr; }
  .stat:nth-child(even)::before { display: none; }
  .stat:nth-child(odd)::before,
  .stat:nth-last-child(2)::after { width: 100%; left: 0; }
  .stat { padding-top: 20px; padding-bottom: 28px; }
  .stat:nth-child(3),
  .stat:nth-child(4) { padding-top: 20px; }

  .stat:nth-child(even)::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: var(--rule-w);
    background: var(--rule);
  }

  .gallery-grid { grid-template-columns: 1fr; }

  .quote { padding-inline: 20px; }
  .quote::before { left: 0; width: 100%; }
  .quote-amber { padding-top: 32px; padding-bottom: 32px; }
  .quote-blue { padding-top: 32px; padding-bottom: 32px; }

  .pw-more-title,
  .winner-list p,
  .winner-name { margin-left: 0; }
}

@media (max-width: 520px) {
  .pw-badge { margin-left: 0; }
  .winner-name { gap: 10px; }
}

:root {
  --gh-row:  clamp(21px, 1.8750vw, 36px);
  --gh-name: clamp(22px, 2.0833vw, 40px);
  --gh-card: clamp(20px, 1.6667vw, 32px);
}

.mega-spacer { min-height: 1px; }

.gh-band {
  position: relative;
  isolation: isolate;
  padding-top: clamp(24px, 2.4120vw, 46.31px);
  padding-bottom: clamp(28px, 3.3911vw, 65.11px);
}
.gh-band::before {
  content: "";
  position: absolute;
  left: clamp(0px, 1.4349vw, 27.55px);
  top: 0;
  width: clamp(280px, 95.8857vw, 1841.006px);
  height: 100%;
  z-index: -1;
}
.gh-band h2 { color: #fff; }
.gh-band-sub {
  margin-top: clamp(6px, 0.6016vw, 11.55px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  color: #fff;
}

.gh-band-orange::before  { background: var(--orange);  transform: rotate(1.38deg); }
.gh-band-blue::before    { background: var(--blue);    transform: rotate(-1.83deg); }
.gh-band-amber::before   { background: var(--amber);   transform: rotate(0.7deg); }
.gh-band-red::before     { background: var(--red);     transform: rotate(-0.82deg); }
.gh-band-blue-lt::before { background: var(--blue-lt); transform: rotate(3.25deg); }
.gh-band-teal::before    { background: var(--teal);    transform: rotate(0.7deg); }

.gh-copy {
  margin-top: clamp(20px, 3.3906vw, 65.1px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}
.gh-cue { font-weight: 700; }

.gh-sub {
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}

.topic-list {
  max-width: clamp(280px, 92.5047vw, 1776.09px);
  border-top: var(--rule-w) solid var(--rule);
}

.topic-list li {
  padding-top: clamp(16px, 2.0599vw, 39.55px);
  padding-bottom: clamp(16px, 2.2000vw, 42.24px);
  border-bottom: var(--rule-w) solid var(--rule);
}

.topic-list a {
  display: inline-flex;
  align-items: center;
  font-size: var(--gh-row);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.topic-list a img {
  width: clamp(24px, 1.9271vw, 37px);
  height: auto;
  transition: transform .2s ease;
}
.topic-list a:hover img { transform: translateX(4px); }

.sec-gh-hero { padding-top: clamp(40px, 6.6854vw, 128.36px); }
.sec-gh-hero :is(.h1, .h2, .h3, .h4, .h5)::before { transform: rotate(-1.57deg); }
.sec-gh-hero h1 { max-width: clamp(280px, 55.3125vw, 1062px); }

.gh-hero-sub {
  margin-top: clamp(10px, 1.1313vw, 21.72px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.gh-hero-copy {
  margin-top: clamp(20px, 3.4287vw, 65.83px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}

.sec-gh-ideas { padding-top: clamp(28px, 3.7396vw, 71.8px); }

.sec-gh-ideas .gh-copy { margin-top: clamp(24px, 3.9922vw, 76.65px); }
.sec-gh-ideas .gh-sub  { margin-top: clamp(20px, 2.5635vw, 49.22px); }

.topic-list-ideas {
  margin-top: clamp(24px, 3.2469vw, 62.34px);
  margin-left: clamp(-11.6px, -0.6042vw, 0px);
}
.topic-list-ideas a { gap: clamp(10px, 1.8542vw, 35.6px); }

.sec-gh-cases { padding-top: clamp(30px, 4.1057vw, 78.83px); }

.case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 573.152fr));
  column-gap: clamp(12px, 1.3948vw, 26.78px);
  row-gap: clamp(28px, 5.1266vw, 98.43px);
  margin-top: clamp(28px, 4.1135vw, 78.98px);
  margin-left: clamp(0px, 0.3307vw, 6.35px);
  max-width: clamp(280px, 92.3448vw, 1773.02px);
}
.case-grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 573.152 / 472;
  object-fit: cover;
}
.case-grid h3 {
  margin-top: clamp(12px, 1.1333vw, 21.76px);
  max-width: clamp(240px, 30.1825vw, 579.503px);
  font-size: var(--gh-name);
  line-height: 1;
}
.case-grid p {
  margin-top: clamp(12px, 1.3411vw, 25.75px);

  margin-left: clamp(0px, 0.4323vw, 8.3px);
  max-width: clamp(240px, 28.2340vw, 542.093px);
  font-size: var(--fs-body);
  line-height: normal;
}
.case-grid li:nth-child(3n+1) p { margin-left: clamp(0px, 0.1016vw, 1.95px); }

.case-grid p a { color: rgba(49, 27, 119, 0.5); }
.case-grid p a:hover { color: var(--violet); }

.sec-gh-practice { padding-top: clamp(40px, 6.6813vw, 128.28px); }

.sec-gh-practice .gh-copy { margin-top: clamp(24px, 3.1724vw, 60.91px); }
.sec-gh-practice .gh-sub  { margin-top: clamp(20px, 2.4708vw, 47.44px); }

.topic-list-practice {
  margin-top: clamp(24px, 2.8177vw, 54.1px);
  margin-left: clamp(0px, 0.3307vw, 6.35px);
}
.topic-list-practice a { gap: clamp(12px, 2.4167vw, 46.4px); }

.topic-list-practice li:last-child {
  padding-top: clamp(16px, 1.9792vw, 38px);
  padding-bottom: clamp(20px, 2.8552vw, 54.82px);
}

.sec-gh-templates { padding-top: clamp(34px, 4.9318vw, 94.69px); }

.sec-gh-templates .gh-copy { margin-top: clamp(24px, 3.3896vw, 65.08px); }
.sec-gh-templates .gh-sub  { margin-top: clamp(24px, 3.1839vw, 61.13px); }

.res-grid {
  display: grid;
  grid-template-columns: 968.38fr 807.71fr;
  margin-top: clamp(24px, 2.8344vw, 54.42px);
  margin-left: clamp(0px, 0.4870vw, 9.35px);
  max-width: clamp(280px, 92.5047vw, 1776.09px);
}
.res-grid li {
  position: relative;
  padding-top: clamp(10px, 0.8385vw, 16.1px);
  padding-bottom: clamp(16px, 1.4583vw, 28px);
  border-bottom: var(--rule-w) solid var(--rule);
}

.res-grid li:nth-child(1),
.res-grid li:nth-child(2) { padding-top: 0; padding-bottom: clamp(16px, 1.4891vw, 28.59px); }

.res-grid h4 {
  font-size: var(--gh-name);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
}
.res-empty { border-bottom: var(--rule-w) solid var(--rule); }

.res-grid li:nth-child(2)::before,
.res-grid li:nth-child(4)::before,
.res-grid li:nth-child(6)::before {
  content: "";
  position: absolute;
  left: clamp(-40px, -4.1839vw, 0px);
  top: 20px;
  width: var(--rule-w);
  height: clamp(60px, 6.4922vw, 124.65px);
  background: var(--rule);
}


.sec-gh-guidance { padding-top: clamp(40px, 6.3125vw, 121.2px); }

.sec-gh-guidance .gh-copy { margin-top: clamp(24px, 3.3891vw, 65.07px); }

.report-grid {
  display: grid;

  grid-template-columns: 449.25fr 446.84fr 451.95fr 448.96fr;
  margin-top: clamp(28px, 3.7411vw, 71.83px);
  margin-left: clamp(0px, 0.3307vw, 6.35px);

  width: clamp(280px, 93.5938vw, 1797px);
  max-width: none;
}
.report-grid li {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: clamp(10px, 1.5396vw, 29.56px);
  align-items: start;
}
.report-grid img {
  width: clamp(80px, 9.6899vw, 186.046px);
  height: auto;
  aspect-ratio: 186.046 / 260;
  object-fit: cover;
}
.report-grid h3 {
  margin-top: clamp(20px, 4.4138vw, 84.75px);

  min-height: clamp(60px, 5.0vw, 96px);
  font-size: var(--gh-card);
  line-height: 1;
  letter-spacing: normal;
}
.gh-view {
  margin-top: clamp(12px, 1.2734vw, 24.45px);
  min-height: clamp(38px, 3.1495vw, 60.47px);
  padding-inline: clamp(12px, 1.2188vw, 23.4px);
  font-size: var(--gh-row);
  font-weight: 600;
  letter-spacing: -0.06em;
}
.gh-view::before { background: var(--teal); transform: rotate(-3.14deg); }

.gh-dots {
  display: flex;
  justify-content: center;
  gap: clamp(14px, 1.5208vw, 29.2px);
}

.sec-gh-guidance .gh-dots { margin-top: clamp(24px, 3.1443vw, 60.37px); }
.sec-gh-experts  .gh-dots { margin-top: clamp(28px, 3.9943vw, 76.69px); }
.gh-dots button {
  display: block;
  width: clamp(14px, 1.25vw, 24px);
  height: clamp(14px, 1.25vw, 24px);
  padding: 0;
  border-radius: 50%;
  background: var(--blue-lt);
  cursor: pointer;
}
.gh-dots button.is-active { background: var(--blue); }

.sec-gh-experts { padding-top: clamp(40px, 6.2141vw, 119.31px); }

.sec-gh-experts .gh-copy { margin-top: clamp(20px, 2.4510vw, 47.06px); }

.expert-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(16px, 4.5375vw, 87.12px);
  margin-top: clamp(28px, 4.2453vw, 81.51px);
  margin-left: clamp(-1.78px, -0.0927vw, 0px);
  max-width: clamp(280px, 92.1323vw, 1768.94px);
}
.expert {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: clamp(80px, 9.2854vw, 178.28px) 1fr;
  column-gap: clamp(14px, 2.9990vw, 57.58px);
  padding: clamp(20px, 2.3833vw, 45.76px) clamp(16px, 2.0000vw, 38.4px)
           clamp(24px, 4.0000vw, 76.8px) clamp(16px, 3.0302vw, 58.18px);
}

.expert-b {
  padding-left: clamp(14px, 2.3703vw, 45.51px);
  column-gap: clamp(14px, 3.2969vw, 63.32px);
}

.expert::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--amber);
  z-index: -1;
}
.expert-a::before { transform: rotate(-1.52deg); }
.expert-b::before { transform: rotate(-2.89deg); }

.expert-who img {
  margin-top: clamp(0px, 0.5208vw, 10px);
  width: 100%;
  height: auto;
  aspect-ratio: 178.28 / 192;
  object-fit: cover;
}
.expert-name {
  margin-top: clamp(12px, 1.25vw, 24px);
  font-size: clamp(15px, 1.2203vw, 23.429px);
  line-height: normal;
  letter-spacing: -0.06em;
}
.expert-name strong { font-weight: 700; }

.expert-body h3 {
  font-size: var(--gh-card);
  line-height: 1;
  letter-spacing: normal;
  max-width: clamp(240px, 25.3643vw, 486.995px);
}
.expert-body p {
  margin-top: clamp(12px, 0.8854vw, 17px);
  margin-left: clamp(-5.71px, -0.2974vw, 0px);
  max-width: clamp(240px, 26.3253vw, 505.445px);
  font-size: var(--fs-body);
  line-height: normal;
}
.expert-body p + p { margin-top: clamp(16px, 1.5vw, 28.8px); }

.expert-more a { color: #fff; }
.expert-more a:hover { text-decoration: underline; }

/* ---- Judges page card (people-grid-full) -----------------------------
   Photo on the left; name, role and the bio all in the right column. The
   homepage teaser cards (people-grid-compact) keep name/role under the photo.
   The bio is collapsed by custom.js to a few lines and slides open on
   "Read more" - the button is only shown when the text actually overflows. */
/* One full-width card per row on the judges page. Two-up, a long bio next to
   a short one left half a card of empty amber, and the text column was too
   narrow for a paragraph. */
.people-grid-full {
  grid-template-columns: minmax(0, 1fr);
  row-gap: clamp(20px, 2.0833vw, 40px);
  max-width: none;
  margin-left: 0;
}
.people-grid-full .expert { align-items: start; }
/* `.expert-b` carries the right-hand card's tighter padding from the two-up
   design; with one card per row every card gets the same spacing. */
.people-grid-full .expert-b {
  padding-left: clamp(16px, 2.0000vw, 38.4px);
  column-gap: clamp(14px, 2.9990vw, 57.58px);
}
/* The base `.expert-body p` rule has a negative margin-left (for the two-up
   design) and a ~505px max-width. Inside the collapsible bio the negative
   margin was clipped by overflow:hidden - first letters were being cut off. */
.people-grid-full .expert-body p {
  margin-left: 0;
  max-width: none;
}
.people-grid-full .expert-body .expert-name {
  margin: 0 0 clamp(10px, 0.9375vw, 18px);
  max-width: none;
  font-size: var(--fs-body);
  line-height: 1.3;
}
.people-grid-full .expert-body .expert-name strong {
  display: block;
  margin-bottom: 0.2em;
  font-size: var(--gh-card);
  line-height: 1.1;
}
.people-grid-full .expert-role { display: block; }

.expert-bio {
  position: relative;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.expert-bio.is-collapsed { max-height: 9.5em; }
/* Fade at the cut so the collapsed text reads as "continues", not "ends". */
.expert-bio.is-collapsed::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2.4em;
  background: linear-gradient(to bottom, rgba(244, 190, 64, 0), var(--amber));
  pointer-events: none;
}
.expert-bio > p:first-child { margin-top: 0; }

.expert-more-btn {
  display: inline-block;
  margin-top: clamp(10px, 0.9375vw, 18px);
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--fs-body);
  font-weight: 700;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  cursor: pointer;
}
.expert-more-btn[hidden] { display: none; }
.expert-more-btn:hover { color: var(--purple); }

@media (prefers-reduced-motion: reduce) {
  .expert-bio { transition: none; }
}

.sec-gh-connect { padding-top: clamp(24px, 3.4672vw, 66.57px); }

.gh-band-connect::before { background: var(--blue); transform: rotate(-0.86deg); }
.gh-band-connect { padding-bottom: clamp(40px, 7.1271vw, 136.84px); }

.connect-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}
.connect-note {
  margin-top: clamp(16px, 1.6266vw, 31.23px);
  margin-left: clamp(0px, 0.4328vw, 8.31px);
  max-width: clamp(280px, 31.4148vw, 603.165px);
  font-size: var(--fs-body);
  line-height: normal;
  color: #fff;
}

.connect-label {
  margin-top: clamp(24px, 7.2917vw, 140.02px);
  margin-left: clamp(0px, 0.625vw, 12px);
  font-size: var(--fs-body);
  line-height: normal;
  color: #fff;
}
.connect-form input {
  width: clamp(200px, 36.4695vw, 700.214px);
  height: clamp(48px, 4.1540vw, 79.756px);
  margin-top: clamp(10px, 2.4479vw, 47px);
  padding-inline: clamp(12px, 1.0417vw, 20px);
  font: inherit;
  font-size: var(--fs-body);
  color: var(--purple);
  background: #fff;
  border: 0;
}
.connect-form input:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }

.page-hub main + .sec-footer { margin-top: clamp(20px, 4.4635vw, 85.7px); }

.gh-pdf {
  margin-top: clamp(12px, 1.3214vw, 25.37px);
  min-height: clamp(38px, 3.1495vw, 60.47px);
  padding-inline: clamp(12px, 1.0927vw, 20.98px);
  font-size: var(--gh-row);
  font-weight: 600;
  letter-spacing: -0.06em;
}
.gh-pdf::before { background: var(--teal); transform: rotate(1.59deg); }

@media (max-width: 992px) {
  .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .expert-grid { grid-template-columns: 1fr; row-gap: 32px; }
  .connect-row { grid-template-columns: 1fr; row-gap: 8px; }
  .connect-label { margin-top: 28px; }
}

@media (max-width: 767px) {

  .gh-hero-copy,
  .gh-copy,
  .sec-gh-hero h1,
  .connect-note,
  .case-grid h3,
  .case-grid p,
  .expert-body h3,
  .expert-body p { max-width: 100%; }

  .topic-list,
  .case-grid,
  .res-grid,
  .report-grid,
  .expert-grid { max-width: 100%; margin-left: 0; }

  .case-grid { grid-template-columns: 1fr; row-gap: 32px; }
  .res-grid { grid-template-columns: 1fr; }
  .res-grid li:nth-child(2) { padding-top: clamp(10px, 0.8385vw, 16.1px); }
  .res-grid li:nth-child(2)::before,
  .res-grid li:nth-child(6)::before { display: none; }
  .res-empty { display: none; }

  .report-grid { grid-template-columns: 1fr; }
  .report-grid h3 { margin-top: 0; }

  .expert { grid-template-columns: 1fr; row-gap: 20px; padding: 26px 20px 30px; }
  .expert-who { display: flex; align-items: center; gap: 16px; }
  .expert-who img { width: 120px; }
  .expert-name { margin-top: 0; }

  .connect-form input { width: 100%; }
  .ins-row li + li::before{display:none}
  .ins-row li + li {
    padding-left: 0;
}
.ab-rule {
    width: 100%;
  
}
.dt-value{ margin-left:0px}
.res-grid li:nth-child(2)::before, .res-grid li:nth-child(4)::before, .res-grid li:nth-child(6)::before{display:none}
.art::after{width:100%}
.art-col + .art-col {
        margin-top: 28px;
        padding-top: 0;
        border-top: none;
    }
}

@media (max-width: 520px) {
  .topic-list a { gap: 10px; }
  .gh-band { padding-top: 20px; padding-bottom: 24px; }
}

:root {
  --art-h2:   clamp(20px, 1.9792vw, 38px);
  --art-cta:  clamp(26px, 2.7769vw, 53.317px);
  --art-meta: clamp(13px, 0.8333vw, 16px);
}

.sec-article { padding-top: clamp(14px, 1.1193vw, 21.49px); }

.art-layout {
  display: grid;
  grid-template-columns: 1201.12fr 574.97fr;
  margin-left: clamp(0px, 0.1708vw, 3.28px);
  max-width: clamp(280px, 92.5047vw, 1776.09px);
  border-top: var(--rule-w) solid var(--rule);
}

.art-meta,
.art-byline {
  margin-left: clamp(0px, 0.0583vw, 1.12px);
  font-size: var(--art-meta);
  font-weight: 700;
  line-height: 1.5;
}
.art-meta   { margin-top: clamp(24px, 3.0979vw, 59.48px); }
.art-byline { margin-top: clamp(16px, 1.9792vw, 38px); }

.sec-article h1 {
  margin-top: clamp(14px, 1.4099vw, 27.07px);
  margin-left: clamp(-6.64px, -0.3458vw, 0px);

  max-width: clamp(280px, 57.6024vw, 1105.967px);
  line-height: 1;
}

.art-hero {
  width: clamp(280px, 63.4375vw, 1218px);
  max-width: none;
  height: auto;
  margin-top: clamp(24px, 3.1490vw, 60.46px);
  margin-left: clamp(-36.88px, -1.9208vw, 0px);
  aspect-ratio: 1218 / 847.146;
  object-fit: cover;
  mix-blend-mode: multiply;
}

.art-body {
  margin-top: clamp(20px, 3.3391vw, 64.11px);
  margin-left: clamp(0px, 0.0583vw, 1.12px);
  max-width: clamp(280px, 60.0906vw, 1153.74px);
}
.art-body p { font-size: var(--fs-body); line-height: normal; }
.art-body p + p { margin-top: 1.5em; }
.art-lead {
  font-size: var(--art-h2) !important;
  font-weight: 700;
  line-height: normal;
}

.art-h2 {
  margin-top: clamp(12px, 1.1786vw, 22.63px);
  margin-left: clamp(0px, 0.0688vw, 1.32px);
  max-width: clamp(280px, 52.2463vw, 1003.129px);
  font-size: var(--art-h2);
  font-weight: 700;
  line-height: normal;
  letter-spacing: normal;
}

.art-para {
  margin-top: clamp(20px, 2.7859vw, 53.49px);
  margin-left: clamp(0px, 0.0583vw, 1.12px);
  max-width: clamp(280px, 61.4583vw, 1180px);
  font-size: var(--fs-body);
  line-height: normal;
}

.art-quote {
  position: relative;
  margin: clamp(20px, 2.4552vw, 47.14px) 0 0;
  margin-left: clamp(0px, 0.0688vw, 1.32px);
  padding-top: clamp(14px, 1.6547vw, 31.77px);
  padding-left: clamp(20px, 2.8927vw, 55.54px);
}
.art-quote::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: var(--rule-w);
  height: clamp(200px, 21.7829vw, 418.232px);
  background: var(--rule);
}
.art-quote p {
  max-width: clamp(280px, 51.0947vw, 981.018px);
  font-size: var(--fs-body);
  line-height: normal;
}
.art-quote p + p { margin-top: 1.5em; }

.art-h2-b { margin-top: clamp(24px, 4.5349vw, 87.07px); }

.art-figure {
  display: grid;
  grid-template-columns: 527.436fr 569.047fr;
  column-gap: clamp(16px, 3.3714vw, 64.73px);
  margin-top: clamp(12px, 1.0021vw, 19.24px);
  margin-left: clamp(0px, 0.2313vw, 4.44px);
  max-width: clamp(280px, 60.4797vw, 1161.21px);
  align-items: start;
}
.art-figure img {
  width: 100%;
  height: auto;
  margin-top: clamp(0px, 0.4271vw, 8.2px);
  aspect-ratio: 527.436 / 436;
  object-fit: cover;
}
.art-figure-copy p { font-size: var(--fs-body); line-height: normal; }
.art-figure-copy p + p { margin-top: 1.5em; }

.art-layout { position: relative; }
.art-layout::after {
  content: "";
  position: absolute;
  left: clamp(200px, 62.5583vw, 1201.12px);
  top: clamp(24px, 3.1490vw, 60.46px);
  width: var(--rule-w);
  height: clamp(400px, 131.3421vw, 2521.768px);
  background: var(--rule);
}

.art-side { padding-left: clamp(16px, 2.1680vw, 41.63px); }

@media (min-width: 993px) {
  .art-side {
    position: sticky;
    top: clamp(96px, 6.4vw, 123px);
    align-self: start;
    max-height: none;
    overflow: visible;
  }
}

.art-explore {
  margin-top: clamp(24px, 5.7229vw, 109.88px);
  margin-left: clamp(0px, 1.1422vw, 21.93px);
  font-size: var(--fs-cdt);
  font-weight: 400;
  line-height: normal;
  letter-spacing: -0.06em;
}

.art-cats {
  margin-top: clamp(24px, 3.9792vw, 76.4px);
  border-top: var(--rule-w) solid var(--rule);
}
.art-cats li {
  padding-top: clamp(10px, 1.1198vw, 21.5px);
  padding-bottom: clamp(12px, 1.4151vw, 27.17px);
  border-bottom: var(--rule-w) solid var(--rule);
}
.art-cats a {
  display: block;
  margin-left: clamp(0px, 1.2906vw, 24.78px);
  font-size: var(--h3);
  font-weight: 600;
  line-height: normal;
  letter-spacing: -0.06em;
  transition: color .2s ease;
}
.art-cats a:hover { color: var(--violet); }

.art-cta-title {
  margin-top: clamp(40px, 9.1260vw, 175.22px);
  margin-left: clamp(0px, 1.3760vw, 26.42px);
  max-width: clamp(240px, 22.9494vw, 440.629px);
  font-size: var(--art-cta);
  line-height: normal;
}
.art-cta-copy {
  margin-top: clamp(20px, 2.4432vw, 46.91px);
  margin-left: clamp(0px, 1.2906vw, 24.78px);
  max-width: clamp(240px, 24.1733vw, 464.127px);
}
.art-cta-btn {
  margin-top: clamp(20px, 2.9755vw, 57.13px);
  margin-left: clamp(0px, 1.3760vw, 26.42px);
}

.page-article main + .sec-footer { margin-top: clamp(30px, 7.5094vw, 144.18px); }

@media (max-width: 992px) {

  .art-layout { grid-template-columns: 1fr; row-gap: 40px; }
  .art-side { padding-left: 0; }
  .art-layout::after { display: none; }
  .art-explore,
  .art-cats a,
  .art-cta-title,
  .art-cta-copy,
  .art-cta-btn { margin-left: 0; }
  .art-explore { margin-top: 0; }
  .art-cta-title { margin-top: 48px; }
}

@media (max-width: 767px) {

  .sec-article h1,
  .art-body,
  .art-h2,
  .art-para,
  .art-quote p,
  .art-cta-title,
  .art-cta-copy { max-width: 100%; }

  .art-layout { max-width: 100%; margin-left: 0; }
  .sec-article h1,
  .art-meta,
  .art-byline,
  .art-body,
  .art-h2,
  .art-para,
  .art-quote { margin-left: 0; }

  .art-hero { width: 100%; margin-left: 0; }

  .art-figure {
    grid-template-columns: 1fr;
    row-gap: 20px;
    margin-left: 0;
    max-width: 100%;
  }
  .art-figure img { margin-top: 0; }

  .art-quote { padding-left: 20px; }
  .reason-list li, .since-list li{ padding-bottom:12px}
  .snap-grid .snap-cell:nth-child(1) dd {
    max-width: 100%;
}
.snap-grid .snap-cell:nth-child(3) dd, .snap-grid .snap-cell:nth-child(4) dd {
    max-width: 100%;
}
}

@media (max-width: 520px) {
  .art-cats li { padding-top: 14px; padding-bottom: 16px; }
}
@media (max-width: 767px) {
.heard ul {
   
    margin-bottom: 28px;
}
.faq-inner {
    margin-left: 0;
   
}
.faq-qa, .gp-list {
    max-width: 100%;
}
.step {
    position: relative;
    padding-left: 0;
}
}



.sec-ae-judging .ae-judge-hl::before {
    transform: rotate(2deg);
}

.sec-ae-form .btn-submit.wpcf7-submit{ padding-inline:clamp(12px, 1.2734vw, 24.45px) !important; border-radius:0px;

width:auto !important}
/* ==================== Winners archive (/winners/) ====================
   Year-by-year list in the middle of the page. At full width the names on
   their own looked stuck to the left and the pagination broke it into eight
   pages - now the whole list is on one page (gga_winner_archive_all in
   functions.php) and this block holds it neatly in the middle. */

/* The caption under the homepage film is hidden - the client's video carries
   its own subtitles, and the placeholder line ("Subtitles will go in here")
   was showing. Hidden in CSS rather than deleted from content so the field
   can be put back to use without a code change. */
.video-caption { display: none; }

.ar-winners { max-width: none; }
.ar-winners .wy-nav ul { justify-content: flex-start; }
.ar-winners .winner-list { max-width: none; }

/* The year heading sticks on scroll - that year's winners pass underneath
   and the top always shows which year is currently in view.

   `top` = the full height of the sticky header (padding-block x2 + the
   .head-bar min-height, both clamps) - set it lower and the year hides
   UNDERNEATH the header. White background so the names coming up from below
   do not show through the text. z-index below the header (50), above the
   rest of the content. */
.ar-winners .wy-year {
  position: sticky;
  /* Sits under the sticky year strip (pills ~46px + 24px padding). */
  top: calc(clamp(12px, 1.0417vw, 20px) * 2 + clamp(40px, 3.2813vw, 63px) + 70px);
  z-index: 5;
  margin: 0;
  padding-block: clamp(10px, 0.8333vw, 16px);
  background: #fff;
  text-align: left;
  scroll-margin-top: 0;
}
/* A faint line under the sticky bar - when names pass beneath it the edge is
   clearly visible, otherwise the bar looks like it is floating in mid-air. */
.ar-winners .wy-year::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: var(--rule-w);
  background: var(--rule);
}
.ar-winners .wy-group .winner-list { margin-top: 0; border-top: 0; }

@media (max-width: 767px) {
  /* On mobile the header is a single row - logo + burger - so the height
     lands at the small end of that same clamp; no separate size needed. The
     pills do not fit on one line, they wrap - smaller gap. */
  .ar-winners .wy-nav ul { gap: 8px; }
  .ar-winners .wy-nav a { padding: 6px 14px; font-size: 15px; }
  .ar-winners .wy-year { font-size: 24px; padding-block: 10px; }
}

/* There is no pager left on the winner archive (everything is on one page),
   but this class must not break the layout on any other archive. */
.ar-winners + .ar-pager { display: none; }

/* ==================== CookieYes consent - theme colours ====================
   The plugin's default blue/generic look was completely at odds with the
   site. Only colours, font and buttons here - the plugin's layout stays as
   it is, so its updates do not break anything. */

.cky-consent-container, .cky-modal, .cky-preference-center {
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Arial, sans-serif !important;
}

.cky-title, .cky-preference-title, .cky-accordion-btn {
  color: #311b77 !important;
  font-weight: 700 !important;
}

.cky-notice-des, .cky-preference-content-wrapper, .cky-accordion-header-des,
.cky-gpc-desc, .cky-dma-desc {
  color: #1c1130 !important;
}

/* All buttons - primary red, the same one the site's .btn-red uses */
.cky-btn {
  font-family: inherit !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}
.cky-btn-accept, .cky-btn-reject, .cky-btn-preferences {
  background: #e75068 !important;
  border: 2px solid #e75068 !important;
  color: #fff !important;
}
/* The middle one (Save My Preferences / Customise) - outline, so the primary
   action stands apart */
.cky-btn-customize, .cky-btn-preferences {
  background: transparent !important;
  color: #311b77 !important;
  border: 2px solid #311b77 !important;
}
.cky-btn:hover { filter: brightness(1.08); }

/* The accordion's "on" switch - teal, like the site's accents */
.cky-switch input[type="checkbox"]:checked + .cky-dummy-btn,
.cky-switch input[type="checkbox"]:checked ~ span,
.cky-always-active { color: #1f8a63 !important; }

.cky-consent-bar { border-top: 4px solid #311b77 !important; }
.cky-btn-revisit-wrapper { background: #311b77 !important; }
