/* ============================================================
   Vuka Africa — Business Empowerment
   Crafted by Vertex Automations
   ============================================================ */

:root{
  --ink:#16130D;
  --ink-70:rgba(22,19,13,.70);
  --ink-55:rgba(22,19,13,.55);
  --veld:#2E4715;
  --veld-deep:#1D2F0B;
  --veld-mid:#3B5C1C;
  --sienna:#BE4A0E;
  --sienna-dk:#9A3B08;
  --amber:#F0872B;
  --dust:#ECEDE5;
  --dust-dk:#DFE1D6;
  --paper:#FFFFFF;
  --line:rgba(22,19,13,.13);
  --line-light:rgba(255,255,255,.18);

  --wrap:1180px;
  --pad:20px;
  --r:4px;

  --display:"Anton", "Arial Narrow", Impact, sans-serif;
  --body:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

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

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

body{
  margin:0;
  background:var(--dust);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
ul,ol{margin:0;padding:0;list-style:none;}
p{margin:0 0 1em;}

:focus-visible{outline:3px solid var(--amber);outline-offset:3px;}

.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--amber);color:var(--ink);padding:12px 18px;font-weight:700;
}
.skip:focus{left:12px;top:12px;}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}

/* ---------- type ---------- */
.display{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(2.9rem,11.5vw,6.4rem);
  line-height:.94;
  letter-spacing:-.005em;
  text-transform:uppercase;
  margin:0 0 .42em;
}
.display em{font-style:normal;color:var(--amber);}

.h2{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.95rem,6.2vw,3.5rem);
  line-height:1.02;
  text-transform:uppercase;
  letter-spacing:.002em;
  margin:0 0 .38em;
  color:var(--ink);
}
.h2--light{color:var(--paper);}

.eyebrow{
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.19em;
  color:var(--sienna);margin:0 0 1.1em;display:flex;align-items:center;gap:.7em;
}
.eyebrow::after{content:"";flex:1;height:1px;background:currentColor;opacity:.35;max-width:110px;}
.eyebrow--light{color:var(--amber);}

.lede{font-size:clamp(1.02rem,3.4vw,1.16rem);line-height:1.6;max-width:44ch;}
.section-lede{max-width:56ch;color:var(--ink-70);font-size:1.02rem;margin-bottom:2.4em;}
.section-lede--light{color:rgba(255,255,255,.74);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--body);font-weight:700;font-size:.86rem;
  text-transform:uppercase;letter-spacing:.11em;text-decoration:none;
  padding:16px 28px;border:2px solid transparent;border-radius:var(--r);
  cursor:pointer;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn--amber{background:var(--amber);color:#231303;border-color:var(--amber);}
.btn--amber:hover{background:#ffa04c;border-color:#ffa04c;}
.btn--sienna{background:var(--sienna);color:#fff;border-color:var(--sienna);}
.btn--sienna:hover{background:var(--sienna-dk);border-color:var(--sienna-dk);}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.1);}
.btn--sm{padding:11px 18px;font-size:.76rem;}
.btn--block{width:100%;padding:18px 24px;}

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);
}
.topbar__in{display:flex;align-items:center;gap:18px;min-height:66px;}
.brand{flex:0 0 auto;display:block;}
.brand img{width:auto;height:38px;}
.nav{display:none;gap:26px;margin-left:auto;}
.nav a{
  text-decoration:none;font-weight:600;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.09em;color:var(--ink-70);
  padding:6px 0;border-bottom:2px solid transparent;
}
.nav a:hover{color:var(--sienna);border-bottom-color:var(--sienna);}
.topbar__cta{margin-left:auto;}

@media (min-width:900px){
  .nav{display:flex;}
  .topbar__cta{margin-left:0;}
  .brand img{height:44px;}
  .topbar__in{min-height:80px;gap:34px;}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  background:var(--veld-deep);
  background-image:radial-gradient(120% 90% at 80% 0%, #3B5C1C 0%, #1D2F0B 62%);
  color:#fff;
  overflow:hidden;
  padding:clamp(48px,10vw,92px) 0 0;
}
.furrows{
  position:absolute;left:-6%;right:-6%;bottom:0;width:112%;height:62%;
  color:var(--amber);opacity:.20;pointer-events:none;
}
.furrows g{animation:drift 26s ease-in-out infinite alternate;}
@keyframes drift{from{transform:translate3d(-14px,4px,0);}to{transform:translate3d(14px,-4px,0);}}

.hero__in{position:relative;z-index:2;display:grid;gap:34px;}
.hero__copy{padding-bottom:8px;}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px;}
.hero__note{
  font-size:.8rem;letter-spacing:.05em;color:rgba(255,255,255,.6);
  border-top:1px solid var(--line-light);padding-top:14px;max-width:40ch;margin-bottom:0;
}
.hero__figure{margin:0;position:relative;}
.hero__figure img{
  width:100%;max-height:520px;object-fit:cover;object-position:50% 10%;
  border-radius:var(--r) var(--r) 0 0;
  border-bottom:5px solid var(--amber);
}
.hero__figure figcaption{
  position:absolute;left:0;right:0;bottom:5px;
  font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;font-weight:600;
  color:rgba(255,255,255,.88);
  padding:46px 18px 16px;
  background:linear-gradient(to bottom,rgba(15,20,8,0) 0%,rgba(15,20,8,.82) 72%);
}

@media (min-width:900px){
  .hero{padding-top:96px;}
  .hero__in{grid-template-columns:1.08fr .92fr;align-items:end;gap:56px;}
  .hero__copy{padding-bottom:76px;}
  .hero__figure img{max-height:none;height:560px;}
}

/* ============================================================
   MANDATE BAND
   ============================================================ */
.mandate{background:var(--sienna);color:#fff;}
.mandate__in{padding:34px 20px 30px;}
.mandate__line{
  font-family:var(--display);text-transform:uppercase;
  font-size:clamp(1.5rem,6.4vw,2.6rem);line-height:1.06;margin:0;
}
.mandate__line + .mandate__line{color:rgba(255,255,255,.72);}
.mandate__line:nth-child(3){color:rgba(255,255,255,.46);}
.mandate__ndebele{
  margin:18px 0 0;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:rgba(255,255,255,.82);
}
@media (min-width:900px){
  .mandate__in{display:flex;align-items:baseline;gap:26px;flex-wrap:wrap;padding:40px 20px;}
  .mandate__ndebele{margin:0 0 0 auto;}
}

/* ============================================================
   ABOUT
   ============================================================ */
.about{background:var(--dust);padding:clamp(56px,9vw,104px) 0;}
.grid-2{display:grid;gap:14px;}
.about__body{max-width:62ch;color:var(--ink-70);}
.about__pull{
  color:var(--ink);font-weight:600;font-size:1.1rem;line-height:1.5;
  border-left:4px solid var(--sienna);padding-left:18px;margin-top:26px;
}
@media (min-width:900px){
  .grid-2{grid-template-columns:.85fr 1.15fr;gap:56px;}
}

/* ============================================================
   THE SEAM — signature element
   ============================================================ */
.seam-section{
  background:var(--ink);
  color:#fff;
  padding:clamp(56px,9vw,104px) 0 clamp(48px,8vw,88px);
  overflow:hidden;
}
.seam{
  display:grid;gap:0;
  margin:8px 0 0;
  padding:0 var(--pad);
  max-width:var(--wrap);
  margin-left:auto;margin-right:auto;
}
.seam__side{
  position:relative;
  opacity:0;
  transition:transform .85s cubic-bezier(.2,.7,.25,1),opacity .6s ease;
}
.seam__side--ours{background:var(--veld);transform:translate3d(0,-34px,0);}
.seam__side--yours{background:var(--sienna);transform:translate3d(0,34px,0);}
.seam.is-joined .seam__side{opacity:1;transform:none;}

.seam__inner{padding:32px 26px 34px;}
.seam__label{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  color:rgba(255,255,255,.72);margin:0 0 18px;
}
.seam__list li{
  font-family:var(--display);text-transform:uppercase;
  font-size:clamp(1.28rem,5.4vw,1.75rem);line-height:1.16;
  padding:9px 0;border-bottom:1px solid rgba(255,255,255,.17);
}
.seam__list li:last-child{border-bottom:0;}

@media (min-width:820px){
  .seam{grid-template-columns:1fr 1fr;}
  .seam__side--ours{
    transform:translate3d(-56px,0,0);
    clip-path:polygon(0 0, 100% 0, calc(100% - 62px) 100%, 0 100%);
    padding-right:62px;
  }
  .seam__side--yours{
    transform:translate3d(56px,0,0);
    margin-left:-62px;
    clip-path:polygon(62px 0, 100% 0, 100% 100%, 0 100%);
    padding-left:62px;
  }
  .seam__inner{padding:46px 34px 52px;}
  .seam__side--yours .seam__inner{padding-left:20px;}
}

.together{
  margin-top:0;
  background:var(--amber);color:#231303;
  padding:28px 26px 32px;
}
.together__head{
  font-family:var(--display);text-transform:uppercase;
  font-size:clamp(1.7rem,7vw,2.6rem);line-height:1;margin:0 0 16px;
}
.together__list{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 24px;}
.together__list li{
  font-weight:700;font-size:.88rem;text-transform:uppercase;letter-spacing:.09em;
  padding-left:16px;position:relative;
}
.together__list li::before{
  content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;
  background:#231303;border-radius:50%;
}
.together .btn--amber{background:#231303;border-color:#231303;color:var(--amber);}
.together .btn--amber:hover{background:#000;border-color:#000;}
@media (min-width:820px){
  .together{display:flex;align-items:center;gap:34px;flex-wrap:wrap;padding:30px 34px;}
  .together__head{margin:0;}
  .together__list{margin:0;flex:1;}
  .together .btn{flex:0 0 auto;}
}

/* ============================================================
   ENTERPRISES
   ============================================================ */
.enterprises{background:var(--dust);padding:clamp(56px,9vw,104px) 0;}
.stock{display:grid;gap:14px;}
.stock__item{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:24px 22px 26px;
  transition:border-color .2s ease,transform .2s ease;
}
.stock__item:hover{border-color:var(--sienna);transform:translateY(-3px);}
.stock__mark{display:block;width:52px;height:52px;color:var(--veld);margin-bottom:14px;}
.stock__mark svg{width:100%;height:100%;}
.stock__item:hover .stock__mark{color:var(--sienna);}
.stock__item h3{
  font-family:var(--display);text-transform:uppercase;font-weight:400;
  font-size:1.5rem;margin:0 0 6px;letter-spacing:.01em;
}
.stock__item p{margin:0;color:var(--ink-70);font-size:.94rem;line-height:1.5;}
@media (min-width:640px){.stock{grid-template-columns:1fr 1fr;}}
@media (min-width:960px){.stock{grid-template-columns:repeat(3,1fr);gap:18px;}}

/* ============================================================
   TRAINING
   ============================================================ */
.training{
  background:var(--veld-deep);
  background-image:linear-gradient(180deg,#233A0E 0%,#16250A 100%);
  color:#fff;
  padding:clamp(56px,9vw,104px) 0;
}
.training__grid{display:grid;gap:14px;}
.panel{
  background:rgba(255,255,255,.055);
  border:1px solid var(--line-light);
  border-radius:var(--r);
  padding:26px 24px 28px;
}
.panel__label{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  color:var(--amber);margin:0 0 18px;
}
.modules li{
  display:flex;gap:14px;align-items:baseline;
  padding:12px 0;border-bottom:1px solid rgba(255,255,255,.13);
  font-size:1.02rem;font-weight:500;
}
.modules li:last-child{border-bottom:0;}
.modules__n{
  font-family:var(--display);font-size:1.1rem;color:var(--amber);
  flex:0 0 auto;min-width:2ch;opacity:.9;
}
.ticks li{
  position:relative;padding:8px 0 8px 26px;color:rgba(255,255,255,.86);font-size:.97rem;
}
.ticks li::before{
  content:"";position:absolute;left:0;top:15px;
  width:11px;height:6px;border-left:2px solid var(--amber);border-bottom:2px solid var(--amber);
  transform:rotate(-45deg);
}
.panel--apply{background:rgba(240,135,43,.11);border-color:rgba(240,135,43,.4);}
.apply__line{font-size:.95rem;color:rgba(255,255,255,.86);margin:0 0 14px;line-height:1.45;}
.apply__line strong{
  display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;
  color:rgba(255,255,255,.55);font-weight:700;margin-bottom:3px;
}
.apply__line a{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.panel--apply .btn{margin-top:6px;}

@media (min-width:820px){
  .training__grid{grid-template-columns:1fr 1fr;gap:18px;}
  .panel--wide{grid-row:span 2;}
  .panel--apply{grid-column:1 / -1;}
}
@media (min-width:1040px){
  .training__grid{grid-template-columns:1.25fr 1fr 1fr;}
  .panel--wide{grid-row:span 2;}
  .panel--apply{grid-column:2 / -1;}
}

/* ============================================================
   CAMPAIGNS
   ============================================================ */
.campaigns{background:var(--dust-dk);padding:clamp(56px,9vw,104px) 0;}
.posters{display:grid;gap:22px;}
.poster{margin:0;}
.poster img{
  width:100%;border-radius:var(--r);
  box-shadow:0 18px 40px -22px rgba(22,19,13,.6);
  border:1px solid var(--line);
}
.poster figcaption{
  font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;
  color:var(--ink-55);padding-top:12px;
}
@media (min-width:700px){.posters{grid-template-columns:1fr 1fr;gap:28px;}}

/* ============================================================
   AREAS
   ============================================================ */
.areas{background:var(--paper);padding:clamp(56px,9vw,104px) 0;}
.areas__in{display:grid;gap:30px;}
.provinces li{
  font-family:var(--display);text-transform:uppercase;
  font-size:clamp(1.5rem,6vw,2.35rem);line-height:1.1;
  padding:14px 0;border-bottom:2px solid var(--line);
  transition:color .2s ease,padding-left .2s ease;
}
.provinces li:hover{color:var(--sienna);padding-left:10px;}
.provinces__soft{
  font-family:var(--body);font-size:.85rem !important;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--ink-55);
  border-bottom:0;
}
.provinces__soft:hover{color:var(--ink-55);padding-left:0;}
@media (min-width:900px){.areas__in{grid-template-columns:1fr 1fr;gap:64px;align-items:start;}}

/* ============================================================
   JOIN
   ============================================================ */
.join{
  background:var(--ink);
  background-image:radial-gradient(90% 70% at 12% 0%, #2E4715 0%, #16130D 58%);
  color:#fff;
  padding:clamp(56px,9vw,104px) 0;
}
.join__in{display:grid;gap:36px;}
.direct{margin-top:26px;border-top:1px solid var(--line-light);}
.direct__label{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  color:rgba(255,255,255,.5);margin:18px 0 6px;
}
.direct__row{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:13px 0;border-bottom:1px solid var(--line-light);
  text-decoration:none;transition:padding-left .2s ease;
}
.direct__row:hover{padding-left:8px;}
.direct__row span{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);}
.direct__row strong{font-weight:700;font-size:.98rem;color:var(--amber);white-space:nowrap;}

.formcard{
  background:var(--paper);color:var(--ink);
  border-radius:var(--r);
  padding:26px 22px 28px;
  border-top:5px solid var(--amber);
}
.notice{
  padding:13px 16px;border-radius:var(--r);font-size:.92rem;font-weight:600;margin-bottom:20px;
}
.notice--ok{background:#E7F0DA;color:#2E4715;border:1px solid #B9D096;}
.notice--error{background:#FBE7DC;color:#9A3B08;border:1px solid #EFC0A2;}

.field{margin:0 0 18px;border:0;padding:0;}
.field label,.field legend{
  display:block;font-size:.74rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.13em;color:var(--ink-70);margin-bottom:8px;padding:0;
}
.opt{font-weight:500;letter-spacing:.06em;text-transform:none;color:var(--ink-55);}
.field input[type=text],
.field input[type=tel],
.field input[type=email],
.field textarea{
  width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);
  background:#FAFAF6;border:1px solid var(--line);border-radius:var(--r);
  padding:14px 14px;transition:border-color .18s ease,background-color .18s ease;
}
.field input:focus,.field textarea:focus{background:#fff;border-color:var(--sienna);outline-offset:1px;}
.field textarea{resize:vertical;min-height:100px;}
.field-row{display:grid;gap:0;}
@media (min-width:520px){.field-row{grid-template-columns:1fr 1fr;gap:0 16px;}}

.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.choice{cursor:pointer;margin:0;}
.choice input{position:absolute;opacity:0;width:0;height:0;}
.choice span{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:56px;padding:10px 12px;
  border:2px solid var(--line);border-radius:var(--r);
  font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;
  color:var(--ink-70);transition:all .18s ease;
}
.choice input:checked + span{background:var(--veld);border-color:var(--veld);color:#fff;}
.choice input:focus-visible + span{outline:3px solid var(--amber);outline-offset:2px;}
.choice:hover span{border-color:var(--sienna);}

.formcard__fine{font-size:.78rem;color:var(--ink-55);margin:14px 0 0;text-align:center;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

@media (min-width:940px){
  .join__in{grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  .formcard{padding:34px 32px 36px;}
}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{background:#0F0D08;color:rgba(255,255,255,.78);padding:52px 0 0;font-size:.94rem;}
.foot__in{display:grid;gap:32px;}
.foot__brand img{
  width:200px;height:auto;
  background:#fff;padding:12px 16px;border-radius:var(--r);
}
.foot__motto{
  font-family:var(--display);text-transform:uppercase;font-size:1.15rem;
  color:var(--amber);margin:16px 0 0;line-height:1.15;max-width:16ch;
}
.foot__cols{display:grid;gap:26px;}
.foot__label{
  font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;
  color:rgba(255,255,255,.45);margin:0 0 10px;
}
.foot__cols p{margin:0 0 5px;}
.foot__cols a{text-decoration:none;}
.foot__cols a:hover{color:var(--amber);}
.foot__base{
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:20px;padding-bottom:24px;
  font-size:.78rem;letter-spacing:.06em;color:rgba(255,255,255,.45);
}
.foot__base p{margin:0;}
.foot__vertex{color:rgba(255,255,255,.34);}
@media (min-width:640px){.foot__cols{grid-template-columns:repeat(3,1fr);}}
@media (min-width:940px){.foot__in{grid-template-columns:.8fr 1.6fr;gap:56px;}}

/* ============================================================
   REVEAL + MOTION PREFERENCES
   ============================================================ */
.reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.25,1);}
.reveal.is-in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .reveal,.seam__side{opacity:1 !important;transform:none !important;}
  .furrows g{animation:none;}
}

/* ============================================================
   APPLICATION FORM — added for the online application flow
   Crafted by Vertex Automations
   ============================================================ */

.anchor-alias{display:block;height:0;}

/* --- quick facts strip in the training section --- */
.facts{
  display:grid;grid-template-columns:1fr;gap:1px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r);margin:0 0 30px;overflow:hidden;
}
.facts li{background:#23350F;padding:16px 18px;display:flex;flex-direction:column;gap:3px;}
.facts__k{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--amber);}
.facts__v{font-family:var(--display);font-size:1.5rem;line-height:1.1;text-transform:uppercase;color:#fff;}
@media (min-width:640px){.facts{grid-template-columns:repeat(3,1fr);}}

/* --- choice cards --- */
.choice span{flex-direction:column;gap:3px;line-height:1.2;}
.choice span small{
  display:block;font-weight:500;font-size:.68rem;letter-spacing:.06em;
  text-transform:none;opacity:.72;
}

/* --- selects --- */
.field select{
  width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);
  background:#FAFAF6;border:1px solid var(--line);border-radius:var(--r);
  padding:14px 14px;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316130D' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:18px;
  padding-right:40px;
}
.field select:focus{background-color:#fff;border-color:var(--sienna);}

/* --- conditional sub-forms --- */
.subform{
  border-left:3px solid var(--amber);
  padding:18px 0 2px 16px;margin:0 0 20px;
}
body.js .subform{display:none;}
body.js .subform.is-on{display:block;animation:beFade .28s ease both;}
.subform__head{
  font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.13em;
  color:var(--sienna);margin:0 0 16px;
}
@keyframes beFade{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

/* --- checkbox grid --- */
.checkgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
@media (min-width:520px){.checkgrid{grid-template-columns:repeat(3,1fr);}}
.check{cursor:pointer;margin:0;}
.check input{position:absolute;opacity:0;width:0;height:0;}
.check span{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:44px;padding:8px 6px;border:1.5px solid var(--line);border-radius:var(--r);
  font-size:.84rem;font-weight:600;color:var(--ink-70);transition:all .16s ease;
}
.check input:checked + span{background:var(--veld);border-color:var(--veld);color:#fff;}
.check input:focus-visible + span{outline:3px solid var(--amber);outline-offset:2px;}

/* --- file field --- */
.filefield{position:relative;}
.filefield input[type=file]{position:absolute;opacity:0;width:.1px;height:.1px;overflow:hidden;}
.filefield__btn{
  display:flex !important;align-items:center;gap:12px;
  padding:16px 16px;border:1.5px dashed var(--line);border-radius:var(--r);
  background:#FAFAF6;cursor:pointer;
  font-size:.92rem !important;font-weight:600 !important;letter-spacing:0 !important;
  text-transform:none !important;color:var(--ink-70) !important;margin:0 !important;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease;
  word-break:break-word;
}
.filefield__btn svg{width:22px;height:22px;flex:0 0 22px;color:var(--sienna);}
.filefield__btn:hover{border-color:var(--sienna);background:#fff;}
.filefield.has-file .filefield__btn{border-style:solid;border-color:var(--veld);background:#F1F5EA;color:var(--veld) !important;}
.filefield.is-bad .filefield__btn{border-color:var(--sienna);background:#FBE7DC;color:var(--sienna-dk) !important;}
.filefield input[type=file]:focus-visible + .filefield__btn{outline:3px solid var(--amber);outline-offset:2px;}
.hint{font-size:.79rem;color:var(--ink-55);margin:8px 0 0;}

/* --- notices --- */
.notice__list{margin:8px 0 0;padding-left:18px;list-style:disc;font-weight:500;}
.notice__list li{margin-bottom:4px;}

/* --- success card --- */
.done{text-align:center;padding:8px 0 4px;}
.done__tick{width:56px;height:56px;color:var(--veld);margin:0 auto 14px;display:block;}
.done__h{font-family:var(--display);font-size:1.9rem;text-transform:uppercase;margin:0 0 12px;color:var(--veld);font-weight:400;}
.done__ref{
  display:inline-flex;flex-direction:column;gap:4px;align-items:center;
  background:#F1F5EA;border:1px solid #C7D8AE;border-radius:var(--r);
  padding:12px 22px;margin:0 0 16px;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--veld);
}
.done__ref strong{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;color:var(--ink);}
.done p{font-size:.95rem;color:var(--ink-70);}
.done__next{font-size:.9rem !important;}
.done__actions{display:grid;gap:10px;margin-top:18px;}
.done__actions .btn--ghost{color:var(--ink);border-color:var(--line);}
.done__actions .btn--ghost:hover{border-color:var(--ink);background:rgba(22,19,13,.05);}
@media (min-width:520px){.done__actions{grid-template-columns:1fr 1fr;}}

/* --- sticky apply bar (mobile) --- */
.applybar{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:120;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--veld-deep);color:#fff;text-decoration:none;
  padding:12px 16px;border-radius:var(--r);
  box-shadow:0 14px 34px -14px rgba(0,0,0,.65);
  transition:transform .3s ease,opacity .3s ease;
}
.applybar span{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.7);}
.applybar strong{
  background:var(--amber);color:#231303;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.11em;padding:10px 16px;border-radius:var(--r);
}
.applybar.is-hidden{transform:translateY(140%);opacity:0;pointer-events:none;}
@media (min-width:900px){.applybar{display:none;}}

.foot__soft{font-size:.8rem;color:rgba(255,255,255,.45);}
.choices.is-missing .choice span{border-color:var(--sienna);background:#FBE7DC;}
