@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap");
:root{
  --ink:#0a0b10; --navy:#101522; --paper:#f5f3ee; --white:#fff; --charcoal:#898989;
  --red:#e31d2f; --red-dark:#b80f1f; --gold:#f0b84b; --muted:#747985;
  --line:rgba(10,11,16,.12); --max:1300px; --ease:cubic-bezier(.2,.75,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Plus Jakarta Sans",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;overflow-x:hidden}
h1,h2,h3,h4,.display{font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;letter-spacing:-.045em}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.container{width:min(calc(100% - 48px),var(--max));margin:auto}
.nav{position:fixed;z-index:50;top:0;left:0;right:0;height:88px;display:flex;align-items:center;background:#fff;backdrop-filter:blur(16px);color:var(--ink);border-bottom:1px solid rgba(10,11,16,.08);box-shadow:0 1px 0 rgba(10,11,16,.03)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 48px),var(--max));margin:auto}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:-.02em}
.brand-mark{height:54px;width:auto;max-width:160px;max-height:54px;display:block;object-fit:contain}
.brand span:last-child{font-size:14px}
.nav-links{display:flex;gap:28px;font-size:13px;color:var(--ink)}
.nav-links a:hover{color:var(--red)}
.nav-cta{background:var(--red);color:#fff;padding:13px 20px;border-radius:2px;font-weight:700;font-size:13px}
.nav-cta:hover{background:var(--red-dark)}
.menu{display:none;background:none;border:0;color:var(--ink);font-size:25px}

.hero{min-height:100vh;box-sizing:border-box;background-color:var(--ink);background-size:cover;background-position:center;background-repeat:no-repeat;color:#fff;position:relative;isolation:isolate;overflow:hidden;padding:110px 0 40px;display:flex;align-items:center}
.hero:before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.86) 24%,rgba(0,0,0,.58) 48%,rgba(0,0,0,.28) 74%,rgba(0,0,0,.16) 100%),
  linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.04) 42%,rgba(0,0,0,.34) 100%);
z-index:-3}
.orb{position:absolute;border-radius:50%;filter:blur(1px);will-change:transform;z-index:-2}
.orb.three{width:12px;height:12px;right:29%;top:36%;background:var(--gold);box-shadow:0 0 35px 10px rgba(240,184,75,.2)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;min-height:600px}
.kicker{display:inline-flex;align-items:center;gap:10px;color:#f3c76b;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;margin-bottom:25px}
.kicker:before{content:"";width:30px;height:2px;background:var(--red)}
.hero h1{font-size:clamp(42px,5vw,72px);line-height:.88;max-width:900px}
.hero h1 em{color:var(--red);font-style:normal}
.hero-copy{font-size:18px;color:#c8cbd2;max-width:670px;margin:32px 0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 23px;border:1px solid rgba(255,255,255,.25);min-height:52px;font-weight:700;font-size:14px;transition:.25s var(--ease)}
.btn.primary{background:var(--red);border-color:var(--red)}
.btn.primary:hover{transform:translateY(-3px);background:#f02b3d}
.btn.ghost:hover{background:#fff;color:var(--ink)}
.hero-panel{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.045);padding:30px;position:relative;border-radius:20px}
.panel-label{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#9fa4af}
.prize{font-family:"Plus Jakarta Sans";font-size:clamp(48px,6vw,84px);font-weight:700;line-height:1;color:#fff;margin:12px 0 22px}
.prize small{font-size:16px;letter-spacing:0;color:#aeb2bb;font-family:"Plus Jakarta Sans";font-weight:400}
.prize-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.13)}
.prize-item{padding:17px 12px 3px;border-right:1px solid rgba(255,255,255,.13)}
.prize-item:last-child{border:0}
.prize-item strong{display:block;font-family:"Plus Jakarta Sans";font-size:24px}
.prize-item span{font-size:11px;color:#aeb2bb;text-transform:uppercase;letter-spacing:.08em}
.hero-note{margin-top:28px;font-size:12px;color:#8e939d;display:flex;justify-content:space-between;gap:10px}
.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#777e89}

.section{padding:120px 0;min-height:100vh;box-sizing:border-box;display:flex;align-items:center}
.section.dark{background:var(--charcoal);color:#fff}
.section-head{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:60px}
.section-head h2{font-size:clamp(58px,7.4vw,112px);line-height:.95;max-width:700px}
.section-head p{max-width:430px;color:var(--muted)}
.dark .section-head p{color:#a7acb6}
.section-head.stacked{flex-direction:column;align-items:stretch;gap:18px}
.section-head.stacked p{max-width:700px}
.eyebrow{font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:14px}
.eyebrow-wide{display:flex;align-items:center;gap:16px;width:100%}
.eyebrow-wide:after{content:"";flex:1;height:1px;background:var(--line)}

.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.intro-copy{font-size:21px;max-width:680px}
.intro-copy p+p{margin-top:24px;color:#5e626b;font-size:16px}
.mantra{border-left:4px solid var(--red);padding-left:28px;align-self:start}
.mantra span{display:block;font-family:"Plus Jakarta Sans";font-size:42px;line-height:1.05;font-weight:700}
.mantra span:nth-child(2){color:var(--red)}
.mantra span:nth-child(3){color:#999}

.areas-carousel{position:relative;padding:0 60px}
.areas-track-wrap{overflow:hidden}
.areas-track{display:flex;gap:2px;background:var(--line);transition:transform .45s var(--ease)}
.area{flex:0 0 calc((100% - 4px)/3);background-color:var(--paper);background-size:cover!important;background-position:center center;background-repeat:no-repeat;min-height:320px;padding:25px;display:flex;flex-direction:column;justify-content:flex-end;transition:.35s var(--ease);position:relative;overflow:hidden}
.area.has-bg{color:#fff}
.area.has-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,11,16,.25) 0%,rgba(10,11,16,.75) 100%);z-index:0}
.area.has-bg h3{position:relative;z-index:1}
.area:after{content:"";position:absolute;width:110px;height:110px;border:1px solid var(--red);border-radius:50%;right:-45px;bottom:-45px;transition:.35s;z-index:0}
.area:hover{transform:translateY(-8px)}
.area:not(.has-bg):hover{background-color:#fff}
.area:hover:after{transform:scale(1.45)}
.area h3{font-size:24px;line-height:1.05;max-width:220px}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;z-index:2;transition:.25s var(--ease)}
.carousel-arrow:hover{background:var(--red);border-color:var(--red);color:#fff}
.carousel-arrow.prev{left:0}
.carousel-arrow.next{right:0}
.carousel-arrow[disabled]{opacity:.35;cursor:default;pointer-events:none}

.timeline-wrap{position:relative}
.timeline-line{position:absolute;left:32px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.16)}
.timeline-item{display:grid;grid-template-columns:65px 210px 1fr;gap:25px;position:relative;padding:0 0 58px}
.timeline-item:last-child{padding-bottom:0}
.timeline-dot{width:10px;height:10px;background:var(--red);margin:5px 0 0 27px;box-shadow:0 0 0 7px rgba(227,29,47,.1)}
.timeline-date{font-family:"Plus Jakarta Sans";font-weight:700;font-size:17px}
.timeline-content{padding-top:0}
.timeline-content h3{font-size:26px;margin-bottom:8px}
.timeline-content p{color:#aeb3bd;max-width:650px}

.eligibility{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
.elig-card{background:var(--paper);padding:34px;min-height:260px}
.elig-card h3{font-size:28px;margin-bottom:24px}
.elig-card ul{list-style:none}
.elig-card li{padding:11px 0 11px 25px;border-top:1px solid var(--line);position:relative;font-size:15px}
.elig-card li:before{content:"";position:absolute;left:0;top:19px;width:8px;height:2px;background:var(--red)}

.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(255,255,255,.12)}
.step{padding:28px;background:var(--navy);min-height:260px;border:1px solid rgba(255,255,255,.06);transition:.3s}
.step:hover{background:#161d2c}
.step-num{font-family:"Plus Jakarta Sans";font-size:52px;color:var(--red);line-height:1;margin-bottom:45px}
.step h3{font-size:22px;margin-bottom:10px}
.step p{color:#aeb3bd;font-size:14px}

.form-section{background:var(--charcoal);padding:0!important;margin:0;display:block;min-height:0;border-bottom:4px solid var(--red)}
.form-top{padding:52px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:end}
.form-top h2{font-size:clamp(40px,5vw,68px);line-height:.95;max-width:700px}
.form-top p{max-width:420px;color:#6d7179}
.form-body{padding:50px}
.form-block{padding:0 0 52px;margin-bottom:52px;border-bottom:1px solid var(--line)}
.form-block:last-child{border:0;margin:0;padding-bottom:0}
.form-block-head{display:flex;gap:18px;margin-bottom:30px}
.form-index{font-family:"Plus Jakarta Sans";font-size:14px;color:var(--red);font-weight:700}
.form-block h3{font-size:30px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.field input,.field textarea,.field select{width:100%;border:1px solid #d8d6d0;background:#faf9f6;padding:14px 15px;outline:none;border-radius:0}
.field textarea{min-height:125px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);background:#fff}
.team-member{border:1px solid var(--line);padding:20px;margin-bottom:14px}
.team-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-family:"Plus Jakarta Sans";font-weight:700}
.remove{border:0;background:none;color:var(--red);font-size:12px;cursor:pointer}
.add-team{border:1px dashed #aaa;background:#faf9f6;padding:14px 18px;font-weight:700;cursor:pointer}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;margin-top:18px}
.check input{margin-top:4px;accent-color:var(--red)}
.submit-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:35px}
.submit-row p{font-size:12px;color:#777;max-width:520px}
.submit{border:0;background:var(--red);color:#fff;padding:17px 26px;font-weight:700;cursor:pointer}
.submit:hover{background:var(--red-dark)}

.zfi-footer-bar{background:var(--charcoal);color:#fff;box-sizing:border-box;height:80px;display:flex;align-items:center;padding:0}
.zfi-footer-bar-inner{display:flex;justify-content:flex-start;align-items:center;width:100%;height:100%}
.zfi-footer-bar-inner p,.zfi-footer-bar p{color:#fff;font-size:12px}



.intro-grid{grid-template-columns:1fr 1fr;align-items:center}
.intro-visual{min-height:500px}
.visual-frame{height:500px;position:relative;overflow:hidden;background:#111;transform:translateZ(0)}
.visual-frame:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.62))}
.visual-frame img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);transition:transform 1.4s cubic-bezier(.2,.75,.2,1)}
.visual-frame.visible img{transform:scale(1)}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:50px}
.mini-stats div{padding:30px 15px 0 15px;border-right:1px solid var(--line)}
.mini-stats div:first-child{padding-left:18px}
.mini-stats div:last-child{border:0}
.mini-stats strong{display:block;font:700 25px "Plus Jakarta Sans"}.mini-stats span{font-size:10px;color:#777;text-transform:uppercase;letter-spacing:.06em}

.eligibility-system{display:grid;grid-template-columns:.85fr 1.15fr;gap:2px;background:var(--line)}
.elig-hero{background:var(--charcoal);color:#fff;min-height:610px;padding:34px 36px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.elig-hero:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(227,29,47,.28);border-radius:50%;right:-230px;top:70px}
.elig-hero:after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-60px;bottom:-50px}
.elig-kicker{font:600 11px "Plus Jakarta Sans";letter-spacing:.18em;text-transform:uppercase;color:#e31d2f;position:relative;z-index:2}
.elig-formula{position:relative;z-index:2;margin:35px 0 25px}
.formula-row{display:flex;align-items:baseline;gap:18px}
.formula-number{font:700 clamp(78px,10vw,142px) "Plus Jakarta Sans";line-height:.78;letter-spacing:-.09em}
.formula-word{font:700 clamp(22px,3vw,42px) "Plus Jakarta Sans";letter-spacing:-.045em}
.formula-row-small .formula-number{font-size:clamp(68px,8vw,112px)}
.formula-row-small .formula-word{font-size:clamp(20px,2.5vw,34px)}
.formula-idea .formula-number{font-size:clamp(68px,8vw,112px);color:#e31d2f}
.formula-idea .formula-word{font-size:clamp(22px,3vw,42px)}
.formula-divider{display:flex;align-items:center;gap:12px;margin:19px 0 16px;color:#8e929b;font:600 9px "Plus Jakarta Sans";letter-spacing:.17em;text-transform:uppercase}
.formula-divider:after{content:"";height:1px;background:rgba(255,255,255,.16);width:100px}
.elig-bottom{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.15);padding-top:16px;display:flex;justify-content:space-between;gap:20px;color:#8e929b;font-size:12px}
.elig-bottom strong{color:#fff;font-weight:600}
.elig-list{background:#fff}
.elig-list article{display:grid;grid-template-columns:50px 1fr;gap:15px;padding:25px;border-bottom:1px solid var(--line);min-height:112px}
.elig-list article:last-child{border-bottom:0}
.elig-index{font:700 14px "Plus Jakarta Sans";color:#e31d2f}
.elig-list h3{font-size:21px;margin-bottom:5px}.elig-list p{font-size:14px;color:#686c74;max-width:600px}

.application-choice{background:var(--charcoal);color:#fff;display:grid;grid-template-columns:1fr 1fr;min-height:480px;margin:0}
.apply-visual{min-height:480px;background-color:#111;overflow:hidden}
.apply-visual img{width:100%;height:100%;min-height:480px;display:block;object-fit:cover;object-position:center}
.apply-cta{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:14px;padding:0 70px 70px}
.apply-cta span{font-size:10px;color:#a4a8b0;letter-spacing:.16em;text-transform:uppercase}
.apply-cta h3{font-size:32px;max-width:420px}
.apply-cta p{font-size:15px;color:#c7cad2;max-width:400px;line-height:1.6}
.apply-btn{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;padding:16px 26px;background:var(--red);color:#fff;border:1px solid var(--red);font:700 14px "Plus Jakarta Sans";letter-spacing:.02em;transition:.25s var(--ease);white-space:nowrap}
.apply-btn:hover{background:var(--red-dark);transform:translateY(-2px)}

.reveal{opacity:0;transform:translateY(38px);transition:opacity .85s cubic-bezier(.2,.75,.2,1),transform .85s cubic-bezier(.2,.75,.2,1)}
.reveal.visible{opacity:1;transform:none}
[data-reveal-delay="1"]{transition-delay:.1s}[data-reveal-delay="2"]{transition-delay:.2s}[data-reveal-delay="3"]{transition-delay:.3s}
@media(max-width:1000px){.eligibility-system{grid-template-columns:1fr}.application-choice{grid-template-columns:1fr;min-height:auto}.apply-visual{min-height:320px}.apply-visual img{min-height:320px}.apply-cta{padding:32px 24px 40px}.intro-grid{grid-template-columns:1fr}}
@media(max-width:700px){
 .intro-visual,.visual-frame{min-height:380px;height:380px}.mini-stats{grid-template-columns:1fr}.mini-stats div{border-right:0;border-bottom:1px solid var(--line);padding:14px 0}.mini-stats div:last-child{padding-left:0;border-bottom:0}
 .elig-hero{min-height:480px;padding:28px 24px}.formula-row{gap:12px}.elig-bottom{display:block}.elig-bottom strong{display:block;margin-top:5px}
}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.visible{opacity:1;transform:none}
@media(max-width:1000px){
  .nav-links{display:none}.menu{display:block}
  .hero-grid,.intro-grid{grid-template-columns:1fr}
  .hero{min-height:auto;padding-bottom:120px}.hero-panel{max-width:650px}
  .area{flex:0 0 100%}
  .areas-carousel{padding:0 44px}
  .steps{grid-template-columns:repeat(2,1fr)}
  .section-head{align-items:start;flex-direction:column}
}
@media(max-width:700px){
  .container,.nav-inner{width:min(calc(100% - 28px),var(--max))}
  .hero{padding-top:125px}.hero h1{font-size:clamp(32px,8vw,44px)}
  .section{padding:80px 0}
  .areas,.eligibility,.steps,.form-grid{grid-template-columns:1fr}
  .timeline-item{grid-template-columns:45px 1fr;gap:15px}.timeline-content{grid-column:2}.timeline-date{grid-column:2;grid-row:1;padding-top:0}.timeline-dot{margin-left:18px}.timeline-line{left:23px}
  .form-top,.form-body{padding:28px}
  .form-top{display:block}.form-top p{margin-top:25px}
  .submit-row,.zfi-footer-bar-inner{display:block}.submit{margin-top:18px;width:100%}
  .prize-row{grid-template-columns:1fr}.prize-item{border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}
}
/* Mobile nav toggle (added for the plugin build) */
@media(max-width:1000px){
  .zfi-nav .nav-links{display:none;position:absolute;top:88px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:10px 24px;border-bottom:1px solid rgba(10,11,16,.08)}
  .zfi-nav .nav-links.zfi-open{display:flex}
  .zfi-nav .nav-links a{padding:12px 0;border-bottom:1px solid rgba(10,11,16,.06)}
}

/* v1.5.4: font and application split overrides */
#zfi-page, #zfi-page * {
  font-family: "Plus Jakarta Sans", sans-serif !important;
}
#zfi-page {
  font-family: "Plus Jakarta Sans", sans-serif !important;
}
#zfi-page h1, #zfi-page h2, #zfi-page h3, #zfi-page h4,
#zfi-page .display, #zfi-page .prize, #zfi-page .formula-number,
#zfi-page .formula-word, #zfi-page .step-num, #zfi-page .mini-stats strong {
  font-family: "Plus Jakarta Sans", sans-serif !important;
}
#zfi-page .application-choice {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "image content";
  min-height: 480px;
  margin: 0;
}
#zfi-page .apply-visual {
  grid-area: image;
  min-width: 0;
  min-height: 480px;
  height: 480px;
}
#zfi-page .apply-visual img {
  width: 100%;
  height: 100%;
  min-height: 480px;
  display: block;
  object-fit: cover;
  object-position: center center;
}
#zfi-page .apply-cta {
  grid-area: content;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
  padding: 60px 70px;
}
@media (max-width: 1000px) {
  #zfi-page .application-choice {
    grid-template-columns: 1fr;
    grid-template-areas: "image" "content";
    min-height: auto;
  }
  #zfi-page .apply-visual {
    height: 320px;
    min-height: 320px;
  }
  #zfi-page .apply-visual img {
    min-height: 320px;
  }
  #zfi-page .apply-cta {
    padding: 40px 24px 48px;
  }
}

/* Five moves. One idea. — light section */
#participate {
  background:#dedede !important;
  color:#000 !important;
}
#participate .section-head p,
#participate .step p {
  color:#000 !important;
}
#participate .steps {
  background:rgba(0,0,0,.12);
}
#participate .step {
  background:#dedede;
  color:#000;
  border-color:rgba(0,0,0,.10);
}
#participate .step:hover {
  background:#fff;
}
#participate .step h3,
#participate .section-head h2 {
  color:#000 !important;
}


/* v1.5.6: cinematic hero gradient + red prize figures */
#zfi-page .hero:before {
  background:
    linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.86) 24%, rgba(0,0,0,.58) 48%, rgba(0,0,0,.28) 74%, rgba(0,0,0,.16) 100%),
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.04) 42%, rgba(0,0,0,.34) 100%);
}
#zfi-page .hero .prize,
#zfi-page .hero .prize-item strong {
  color: var(--red) !important;
}
#zfi-page .hero .prize small,
#zfi-page .hero .prize-item span {
  color: var(--red) !important;
}


/* v1.5.7 refinements */
#zfi-page .hero .prize-item strong {
  font-size: clamp(34px, 3.2vw, 46px) !important;
  line-height: 1 !important;
  color: var(--red) !important;
}
#zfi-page .hero .prize-item span {
  font-size: 12px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  color: var(--red) !important;
  letter-spacing: .07em !important;
}

/* Keep the challenge copy in the requested order and remove the now-empty header copy area. */
#zfi-page #challenge .section-head > p:empty { display:none; }
#zfi-page #challenge .intro-copy p { margin-top: 0; }
#zfi-page #challenge .intro-copy p + p { margin-top: 24px; }

/* About image: taller and aligned cleanly with the content block. */
#zfi-page #challenge .intro-visual { min-height: 620px; height: 620px; }
#zfi-page #challenge .visual-frame { height: 620px; }

/* Align the heading and the image at the top of the section, and close the gap after the header. */
#zfi-page #challenge .intro-grid { align-items: flex-start !important; }
#zfi-page #challenge .section-head { margin-bottom: 0 !important; }

/* Challenge stats */
#zfi-page #challenge .mini-stats strong {
  font-size: clamp(32px, 3vw, 44px) !important;
  color: var(--red) !important;
  line-height: 1 !important;
}
#zfi-page #challenge .mini-stats span {
  font-size: 11px !important;
  color: var(--red) !important;
  font-weight: 700 !important;
}
/* Give the divider before "Priority areas" more breathing room. */
#zfi-page #challenge .mini-stats div:first-child {
  margin-right: 20px !important;
}
/* Force-remove any external/legacy border on the timeline entries and align
   the header exactly with the date, regardless of outside CSS. */
#zfi-page #timeline .timeline-item {
  align-items: flex-start !important;
}
#zfi-page #timeline .timeline-content {
  border-top: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}
#zfi-page #timeline .timeline-date {
  padding-top: 0 !important;
  margin-top: 0 !important;
  line-height: 1.3 !important;
}
#zfi-page #timeline .timeline-content h3 {
  margin-top: 0 !important;
  line-height: 1.3 !important;
}

/* Section eyebrows requested at the same visual scale as the supporting copy. */
#zfi-page #timeline .section-head .eyebrow,
#zfi-page #eligibility .section-head .eyebrow,
#zfi-page #areas .section-head .eyebrow,
#zfi-page #participate .section-head .eyebrow {
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 10px !important;
}

/* National Priority Challenge Areas: no divider line. */
#zfi-page #areas .section-head .eyebrow-wide { display:block !important; width:auto !important; }
#zfi-page #areas .section-head .eyebrow-wide:after { display:none !important; }

/* Reduce the gap above Built for young problem-solvers. */
#zfi-page #eligibility .section-head { gap: 8px !important; margin-bottom: 40px !important; }

/* Eligibility list alignment */
#zfi-page #eligibility .elig-list article {
  grid-template-columns: 34px minmax(0, 1fr) !important;
  align-items: start !important;
}
#zfi-page #eligibility .elig-index { width:34px; }

/* Eligibility mantra */
#zfi-page #eligibility .elig-bottom span,
#zfi-page #eligibility .elig-bottom strong {
  font-size: 16px !important;
  line-height: 1.35 !important;
  color: #fff !important;
}

/* How to participate copy hierarchy */
#zfi-page #participate .section-head .eyebrow {
  font-size: 16px !important;
  font-weight: 800 !important;
}
#zfi-page #participate .section-head p {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #000 !important;
}
#zfi-page #participate .step h3,
#zfi-page #participate .step p { color:#000 !important; }

/* Footer */
#zfi-page .zfi-footer-bar,
#zfi-page .zfi-footer-bar-inner { height:80px !important; }
#zfi-page .zfi-footer-bar p { color:#fff !important; }

/* Apply CTA hierarchy */
#zfi-page .apply-cta span {
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  color: var(--red) !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
#zfi-page .apply-cta p { font-size:15px !important; }

/* Mobile adjustments for the taller About image. */
@media (max-width:700px) {
  #zfi-page #challenge .intro-visual,
  #zfi-page #challenge .visual-frame { height:380px; min-height:380px; }
  #zfi-page #challenge .mini-stats strong { font-size:32px !important; }
}

/* v1.5.8: approved copy/content layout */
#zfi-page #eligibility .elig-copy-block { position:relative; z-index:2; }
#zfi-page #eligibility .elig-copy-block .elig-kicker { margin:0 0 8px; font-size:16px !important; font-weight:800 !important; color:var(--red) !important; letter-spacing:.06em; }
#zfi-page #eligibility .elig-copy-block p { margin:0 0 20px; color:#fff; font-size:14px; line-height:1.55; max-width:520px; }
#zfi-page #eligibility .elig-copy-block ul { margin:0; padding:0; list-style:none; }
#zfi-page #eligibility .elig-copy-block li { margin:0 0 10px; color:#fff; font-size:14px; line-height:1.5; padding-left:18px; position:relative; }
#zfi-page #eligibility .elig-copy-block li:before { content:'•'; position:absolute; left:0; color:var(--red); }
#zfi-page #eligibility .elig-list article:last-child p { margin-bottom:0; }


/* v1.5.9 requested refinements */
#zfi-page .hero .panel-label {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: .08em !important;
}
#zfi-page .hero .prize {
  color: #fff !important;
  font-size: clamp(56px, 6.5vw, 92px) !important;
}
#zfi-page .hero .prize-item strong,
#zfi-page .hero .prize-item span,
#zfi-page .hero .prize small {
  color: #fff !important;
}
#zfi-page .hero .prize-item strong {
  font-size: clamp(38px, 3.8vw, 54px) !important;
}
#zfi-page .hero .prize-item span {
  font-size: 13px !important;
  font-weight: 700 !important;
}
#zfi-page .hero .hero-note span {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: .06em;
}
#zfi-page #areas {
  background: #fff !important;
  padding-top: 48px !important;
  min-height: 0 !important;
}
#zfi-page #areas .section-head { margin-bottom: 40px !important; }
#zfi-page #areas .area {
  background-size: cover !important;
  background-position: center center !important;
}
#zfi-page #areas .area h3 {
  color: #fff !important;
  position: relative;
  z-index: 1;
}
#zfi-page #areas .area:not(.has-bg) {
  background-color: var(--charcoal) !important;
}
#zfi-page #areas .area:not(.has-bg):hover {
  background-color: var(--charcoal) !important;
}
#zfi-page #eligibility .elig-copy-block .elig-intro {
  color: #0a0b10 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  margin-bottom: 24px !important;
}
#zfi-page #eligibility .elig-list article {
  grid-template-columns: minmax(0,1fr) !important;
}
#zfi-page #eligibility .elig-index { display:none !important; }
#zfi-page #eligibility .section-head h2 { max-width: 700px; }
#zfi-page #eligibility .section-head p { max-width: 700px; }
#zfi-page .zfi-footer-bar { background:var(--charcoal) !important; }
#zfi-page .zfi-footer-bar p { color:#fff !important; }

/* v1.5.9: admin-managed section styling */
#zfi-page .zfi-managed-section {
  background: var(--zfi-section-bg, inherit) !important;
  color: var(--zfi-section-text, inherit) !important;
}
#zfi-page .zfi-managed-section h1,
#zfi-page .zfi-managed-section h2,
#zfi-page .zfi-managed-section h3,
#zfi-page .zfi-managed-section h4 {
  color: var(--zfi-section-text, inherit);
}
#zfi-page .zfi-managed-section > .container > .section-head > div > h2,
#zfi-page .zfi-managed-section > .container > .section-head > p {
  color: var(--zfi-section-text, inherit);
}

/* v1.5.10 — restore the original prize-card and formula presentation */
#zfi-page .hero-panel{
  border:1px solid rgba(255,255,255,.20);
  background:rgba(20,21,27,.58);
  border-radius:20px;
  padding:38px 38px 30px;
  backdrop-filter:blur(8px);
}
#zfi-page .hero-panel .panel-label{
  font-size:13px!important;
  color:#aeb2bb!important;
  letter-spacing:.18em!important;
}
#zfi-page .hero-panel .prize{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin:26px 0 30px;
  color:#fff!important;
}
#zfi-page .hero-panel .prize-main{
  font-size:clamp(62px,7vw,100px)!important;
  font-weight:700!important;
  line-height:.9!important;
  color:#fff!important;
}
#zfi-page .hero-panel .prize small{
  font-size:18px!important;
  color:#aeb2bb!important;
  font-weight:400!important;
}
#zfi-page .hero-panel .prize-item strong,
#zfi-page .hero-panel .prize-item span{
  color:#fff!important;
}
#zfi-page .hero-panel .prize-item strong{
  font-size:30px!important;
}
#zfi-page .hero-panel .prize-item span{
  font-size:12px!important;
  font-weight:400!important;
  letter-spacing:.06em!important;
}
#zfi-page .hero-panel .hero-note{
  margin-top:34px;
  font-size:14px!important;
  color:#aeb2bb!important;
}
#zfi-page .hero-panel .hero-note strong{color:#fff!important}

/* Restore formula block and remove the fifth empty step column. */
#zfi-page #eligibility .eligibility-system{grid-template-columns:.85fr 1.15fr;}
#zfi-page #eligibility .elig-hero{min-height:610px;padding:42px 45px 30px;}
#zfi-page #eligibility .elig-formula{margin:70px 0 55px;}
#zfi-page #eligibility .formula-number{color:#fff!important;}
#zfi-page #eligibility .formula-word{color:#fff!important;}
#zfi-page #eligibility .formula-idea .formula-number{color:var(--red)!important;}
#zfi-page #eligibility .elig-list{background:#fff;padding:38px 42px;}
#zfi-page #eligibility .elig-list-intro{padding-bottom:24px;border-bottom:1px solid var(--line);}
#zfi-page #eligibility .elig-list-intro .elig-kicker{margin-bottom:12px;}
#zfi-page #eligibility .elig-list-intro h3{font-size:36px;line-height:1;max-width:480px;margin-bottom:12px;}
#zfi-page #eligibility .elig-list-intro p{font-size:15px;color:#686c74;max-width:560px;}
#zfi-page #eligibility .elig-requirements article{display:block;padding:22px 0;border-bottom:1px solid var(--line);min-height:0;}
#zfi-page #eligibility .elig-requirements article:last-child{border-bottom:0;}
#zfi-page #eligibility .elig-requirements h3{font-size:20px;margin-bottom:5px;}
#zfi-page #eligibility .elig-requirements p{font-size:14px;color:#686c74;max-width:600px;}
#zfi-page #participate .steps{grid-template-columns:repeat(4,1fr);}
@media(max-width:1000px){
  #zfi-page #participate .steps{grid-template-columns:repeat(2,1fr);}
  #zfi-page #eligibility .eligibility-system{grid-template-columns:1fr;}
}
@media(max-width:700px){
  #zfi-page #participate .steps{grid-template-columns:1fr;}
  #zfi-page #eligibility .elig-list{padding:28px 24px;}
  #zfi-page #eligibility .elig-hero{padding:30px 24px;}
  #zfi-page #eligibility .elig-formula{margin:48px 0 40px;}
}


/* v1.5.11 — latest layout refinements */
#zfi-page .hero-grid{grid-template-columns:minmax(0,60fr) minmax(0,40fr);gap:50px;}

/* Keep prize values in compact display form. */
#zfi-page .hero-panel .prize-item strong{font-size:30px!important;}

/* Eligibility intro is rendered once in the section header, not inside the right column. */
#zfi-page #eligibility .elig-list-intro{display:none!important;}
#zfi-page #eligibility .elig-list{padding-top:0!important;}

/* Remove any trailing page-colour gap after the footer. */
#zfi-page{margin-bottom:0!important;padding-bottom:0!important;background:var(--charcoal);}
#zfi-page .zfi-footer-bar{margin-bottom:0!important;}

/* Ensure copyright text always renders white inside the black footer bar. */
#zfi-page .zfi-footer-bar .zfi-footer-bar-inner p{color:#fff!important;}

/* Timeline connecting line — solid white for visibility against the red section. */
#zfi-page #timeline .timeline-line {
  background: #ffffff !important;
}

/* 1. Hero overlay — reverted to black gradient. */
#zfi-page .hero:before {
  background:
    linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.8) 24%, rgba(0,0,0,.42) 48%, rgba(0,0,0,.12) 74%, rgba(0,0,0,.02) 100%),
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.04) 42%, rgba(0,0,0,.34) 100%) !important;
}

/* 2. Hero right-hand prize panel, solid red. */
#zfi-page .hero-panel {
  background: #E3010F !important;
  border-color: #E3010F !important;
}

/* 3. "Start your application" button — off-white with black text. */
#zfi-page .hero-actions .btn.primary {
  background: #F5F5F5 !important;
  border-color: #F5F5F5 !important;
  color: #000 !important;
}
#zfi-page .hero-actions .btn.primary:hover {
  background: #e6e6e6 !important;
  color: #000 !important;
}

/* 4. "Innovate" headline word — red. */
#zfi-page .hero h1 em {
  color: #E3010F !important;
}

/* 5. About / Challenge section background. */
#zfi-page #challenge {
  background: #F5F5F5 !important;
}

/* 6. Timeline section — red instead of black, dots turned white.
      Eyebrow recoloured to white so it stays legible on the new red background. */
#zfi-page #timeline {
  background: #E3010F !important;
}
#zfi-page #timeline .timeline-dot {
  background: #ffffff !important;
  box-shadow: 0 0 0 7px rgba(255,255,255,.15) !important;
}
#zfi-page #timeline .section-head .eyebrow {
  color: #ffffff !important;
}

/* 7. Eligibility criteria left panel — reverted to black per follow-up request. */

/* ===== v1.5.19 — follow-up contrast pass ===== */

/* 2. Timeline item descriptions (e.g. "Submit your ideas...") — white on the red background. */
#zfi-page #timeline .timeline-content p {
  color: #ffffff !important;
}

/* 3. Hero intro paragraph — white. */
#zfi-page .hero-copy {
  color: #ffffff !important;
}

/* 4. "Prize Pool" label and "total" — white. */
#zfi-page .hero-panel .panel-label {
  color: #ffffff !important;
}
#zfi-page .hero-panel .prize small {
  color: #ffffff !important;
}

/* 5. Prize row dividers (between ₦5M Winner / ₦3M 1st Runner-up / ₦2M 2nd Runner-up) — solid white borders, both sides of each item. */
#zfi-page .hero-panel .prize-row {
  border-top-color: #ffffff !important;
}
#zfi-page .hero-panel .prize-item {
  border-left: 1px solid #ffffff !important;
  border-right: 1px solid #ffffff !important;
}
#zfi-page .hero-panel .prize-item:first-child {
  border-left: 1px solid #ffffff !important;
}
#zfi-page .hero-panel .prize-item:last-child {
  border-right: 1px solid #ffffff !important;
}
#zfi-page .hero-panel .prize-item {
  border-bottom: 1px solid #ffffff !important;
  padding-bottom: 10px !important;
}

/* ===== v1.5.22 — hero type, floating CTA visibility, logo side, red match ===== */

/* 1. Hero heading size/weight — size later swapped with the section big-header size (see v1.5.29). */
#zfi-page .hero h1 {
  font-weight: 600 !important;
}

/* Floating "Open a Zenith Bank Account Now!" button restored (was hidden). */

/* 3. Move the logo from the left side of the nav to the right. */
#zfi-page .zfi-nav .nav-inner .brand {
  order: 3;
}
#zfi-page .zfi-nav .nav-inner .nav-links {
  order: 1;
}
#zfi-page .zfi-nav .nav-inner .nav-cta {
  order: 2;
}
#zfi-page .zfi-nav .nav-inner .menu {
  order: 4;
}

/* 4. Canonical brand red, matched everywhere var(--red) is used. */
#zfi-page {
  --red: #E3010F !important;
}

/* ===== v1.5.24 — apply section split, nav layout ===== */

/* Apply section: image at 50%, copy column at 40% (remaining space is the gap). */
#zfi-page .application-choice {
  grid-template-columns: 50% 40% !important;
  justify-content: space-between !important;
}

/* Header/nav: "Apply now" moved to the left and stretched full nav height,
   nav links centred, logo kept on the right. */
#zfi-page .zfi-nav .nav-inner {
  height: 100%;
}
#zfi-page .zfi-nav .nav-inner .nav-cta {
  order: 1;
  align-self: stretch;
  display: flex;
  align-items: center;
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0;
}
#zfi-page .zfi-nav .nav-inner .nav-links {
  order: 2;
  margin: 0 auto;
}
#zfi-page .zfi-nav .nav-inner .brand {
  order: 3;
}
#zfi-page .zfi-nav .nav-inner .menu {
  order: 4;
}

/* ===== v1.5.25 — mobile hero fix ===== */

/* Stop the hero grid/panel from forcing horizontal overflow on small screens:
   grid items don't shrink below their content's intrinsic width by default. */
#zfi-page .hero-grid,
#zfi-page .hero-grid > * {
  min-width: 0;
}
#zfi-page .hero-panel {
  min-width: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
#zfi-page .hero-panel .prize,
#zfi-page .hero-panel .prize-item strong {
  min-width: 0;
  word-break: break-word;
}

@media (max-width: 1000px) {
  /* Undo the desktop "full header height" Apply-now treatment on mobile —
     it only makes sense next to the wide, non-collapsed nav. */
  #zfi-page .zfi-nav .nav-inner .nav-cta {
    align-self: auto;
    height: auto;
    padding: 12px 16px;
    border-radius: 2px;
  }
  #zfi-page .zfi-nav .nav-inner {
    height: auto;
  }
}

@media (max-width: 700px) {
  /* Scale the prize figures down so they fit inside the panel instead of
     spilling past the edge of the screen. */
  #zfi-page .hero-panel {
    padding: 28px 22px 22px;
  }
  #zfi-page .hero-panel .prize-main {
    font-size: 44px !important;
  }
  #zfi-page .hero-panel .prize-item strong {
    font-size: 22px !important;
  }
}

/* ===== v1.5.26 — mobile hero stacking order per wireframe ===== */
/* Wireframe order: heading -> copy -> prize panel -> the two CTA buttons
   side-by-side. The buttons currently sit inside the same wrapper as the
   heading/copy, so we use display:contents to let them re-order independently. */
@media (max-width: 1000px) {
  #zfi-page .hero-grid {
    display: grid;
    grid-template-columns: 1fr;
  }
  #zfi-page .hero-grid > .reveal:first-child {
    display: contents;
  }
  #zfi-page .hero-grid h1 {
    order: 1;
  }
  #zfi-page .hero-grid .hero-copy {
    order: 2;
  }
  #zfi-page .hero-grid .hero-panel {
    order: 3;
    margin-top: 14px;
  }
  #zfi-page .hero-grid .hero-actions {
    order: 4;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 14px;
  }
  #zfi-page .hero-grid .hero-actions .btn {
    width: 100%;
    text-align: center;
  }
  #zfi-page .hero-copy {
    margin: 12px 0 0 !important;
  }
}

/* ===== v1.5.28 — mobile Apply media/copy width, mini-stats grid, header size ===== */

/* Image 1: Apply section image + content block both 90vw on mobile. */
@media (max-width: 1000px) {
  #zfi-page .application-choice {
    display: block;
  }
  #zfi-page .apply-visual,
  #zfi-page .apply-cta {
    width: 90vw;
    max-width: 90vw;
    margin-left: auto;
    margin-right: auto;
  }
  #zfi-page .apply-visual {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  #zfi-page .apply-visual img {
    height: 100%;
    min-height: 0;
  }
  #zfi-page .apply-cta {
    padding: 32px 0;
  }
}

/* Image 2: "2-4 / 5 / ₦10M" mini-stats back to three equal columns on mobile
   instead of stacking full-width. */
@media (max-width: 700px) {
  #zfi-page .mini-stats {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  #zfi-page .mini-stats div {
    border-right: 1px solid var(--line) !important;
    border-bottom: 0 !important;
    padding: 20px 10px 0 0 !important;
  }
  #zfi-page .mini-stats div:first-child {
    padding-left: 0 !important;
  }
  #zfi-page .mini-stats div:last-child {
    border-right: 0 !important;
    padding-right: 0 !important;
  }
}

/* Slightly smaller section headers on mobile — swapped back to the hero's old mobile size. */
@media (max-width: 700px) {
  #zfi-page .section-head h2 {
    font-size: 58px !important;
  }
}

/* ===== v1.5.31 — hero heading reverted, sizes split, image alignment ===== */
#zfi-page .hero h1 {
  font-size: 60px !important;
}
#zfi-page .section-head h2 {
  font-size: 50px !important;
}

/* 3. About section: heading now lives in the same column as the body copy,
      so both columns (text and image) start flush at the top. */
#zfi-page #challenge .intro-grid {
  align-items: flex-start !important;
}
#zfi-page #challenge .intro-copy .section-head {
  margin-bottom: 20px !important;
}
#zfi-page #challenge .intro-copy .section-head h2 {
  margin-bottom: 0;
}

/* Hide the About/Challenge section image on mobile. */
@media (max-width: 700px) {
  #zfi-page #challenge .intro-visual {
    display: none !important;
  }
}

/* Footer: copyright stays left, new QR/service link is centered in the bar. */
#zfi-page .zfi-footer-bar-inner {
  position: relative;
}
#zfi-page .zfi-footer-bar-inner .zfi-footer-qr-link {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-decoration: underline;
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 700px) {
  #zfi-page .zfi-footer-bar-inner {
    flex-direction: column;
    gap: 6px;
    padding: 16px 0;
  }
  #zfi-page .zfi-footer-bar-inner .zfi-footer-qr-link {
    position: static;
    transform: none;
  }
}

/* ===== v1.5.38 — force-guard: Formula box + Apply section must never be black ===== */
#zfi-page .elig-hero {
  background: #898989 !important;
}
#zfi-page .application-choice,
#zfi-page #apply {
  background: #898989 !important;
}

/* ===== v1.5.39 — white text for Formula label + Apply section copy ===== */
#zfi-page .elig-hero .elig-kicker {
  color: #ffffff !important;
}
#zfi-page .apply-cta span {
  color: #ffffff !important;
}
#zfi-page .apply-cta p {
  color: #ffffff !important;
}

/* ===== v1.5.40 — footer matches the section above it (Apply) exactly ===== */
#zfi-page .zfi-footer-bar {
  background: var(--charcoal) !important;
}

/* Footer "Explore Zenith Bank Services" link — white + all caps on hover. */
#zfi-page .zfi-footer-bar-inner .zfi-footer-qr-link:hover {
  color: #ffffff !important;
  text-transform: uppercase !important;
}

/* ===== v1.5.43 — guard the header logo against breaking on file swaps ===== */
#zfi-page .zfi-nav .brand-mark {
  height: 54px !important;
  width: auto !important;
  max-width: 160px !important;
  max-height: 54px !important;
  object-fit: contain !important;
}
#zfi-page .zfi-nav .nav-inner .brand {
  flex-shrink: 0;
}

/* ===== v1.5.44 — hard-clip the nav logo container as a failsafe ===== */
#zfi-page .zfi-nav .brand {
  display: flex !important;
  align-items: center !important;
  height: 54px !important;
  max-height: 54px !important;
  overflow: hidden !important;
}
#zfi-page .zfi-nav .brand img {
  height: 54px !important;
  width: auto !important;
  max-width: 160px !important;
  max-height: 54px !important;
  object-fit: contain !important;
}
