/* ============================================================
   INDONDO LOGISTICS — Freight Manifest Design System
   Palette: manifest paper / asphalt / SA road yellow / ink navy
   Type: Anton (display) · Archivo (body) · IBM Plex Mono (codes)
   ============================================================ */
:root{
  --paper:#F4F2EB;
  --paper-2:#ECE9DF;
  --asphalt:#15181D;
  --asphalt-2:#1E232B;
  --line:#C9C4B4;
  --ink:#1B2B4B;          /* official stamp ink */
  --chevron:#F5B400;       /* SA road-sign yellow */
  --chevron-deep:#D89E00;
  --steel:#5C6470;
  --white:#FFFFFF;
  --ok:#1F7A4D;
  --warn:#B54708;
  --bad:#B42318;
  --radius:4px;
  --disp:'Anton',sans-serif;
  --body:'Archivo',sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --maxw:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);color:var(--asphalt);background:var(--paper);
  line-height:1.6;font-size:16px;
  -webkit-user-select:none;user-select:none;
}
img{max-width:100%;display:block;-webkit-user-drag:none}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:1rem}
:focus-visible{outline:3px solid var(--chevron);outline-offset:2px}

/* ---------- utilities ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
.eyebrow{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--steel);display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--chevron)}
.disp{font-family:var(--disp);text-transform:uppercase;line-height:.96;letter-spacing:.01em}

/* hazard chevron strip — the recurring divider */
.chevron-strip{
  height:14px;
  background:repeating-linear-gradient(-45deg,
    var(--chevron) 0 16px, var(--asphalt) 16px 32px);
}
.chevron-strip.thin{height:8px}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;background:var(--asphalt);color:var(--paper);
  border-bottom:3px solid var(--chevron);
}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:baseline;gap:10px}
.brand .mark{font-family:var(--disp);font-size:1.35rem;letter-spacing:.02em;color:var(--white)}
.brand .mark span{color:var(--chevron)}
.brand .tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:#9aa3ae;text-transform:uppercase}
.nav{display:flex;gap:4px;align-items:center}
.nav a{
  font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:8px 12px;border-radius:var(--radius);color:#C7CCD3;
}
.nav a:hover,.nav a.on{color:var(--asphalt);background:var(--chevron)}
.nav a.portal{border:1.5px solid var(--chevron);color:var(--chevron);margin-left:6px}
.nav a.portal:hover{background:var(--chevron);color:var(--asphalt)}
.burger{display:none;background:none;border:0;width:42px;height:42px;position:relative}
.burger i,.burger i::before,.burger i::after{
  content:"";position:absolute;left:8px;right:8px;height:2.5px;background:var(--chevron);transition:.2s;
}
.burger i{top:20px}.burger i::before{top:-8px;left:0;right:0}.burger i::after{top:8px;left:0;right:0}

/* ---------- hero ---------- */
.hero{
  position:relative;background:var(--asphalt);color:var(--paper);overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.32}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(21,24,29,.94) 38%,rgba(21,24,29,.55) 75%,rgba(21,24,29,.85));
}
.hero .wrap{position:relative;z-index:1;padding-top:72px;padding-bottom:64px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(2.6rem,5.6vw,4.4rem);color:var(--white)}
.hero h1 em{font-style:normal;color:var(--chevron)}
.hero .lede{margin:20px 0 28px;max-width:52ch;color:#C9CFD7;font-size:1.06rem}
.hero .eyebrow{color:#9aa3ae;margin-bottom:18px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;font-size:.85rem;padding:14px 24px;border-radius:var(--radius);
  border:2px solid transparent;transition:transform .15s,box-shadow .15s;
}
.btn:active{transform:translateY(1px)}
.btn-yellow{background:var(--chevron);color:var(--asphalt)}
.btn-yellow:hover{box-shadow:0 6px 0 -2px var(--chevron-deep)}
.btn-ghost{border-color:#3A4250;color:var(--paper)}
.btn-ghost:hover{border-color:var(--chevron);color:var(--chevron)}
.btn-ink{background:var(--ink);color:var(--white)}
.btn-ink:hover{filter:brightness(1.15)}
.btn[disabled]{opacity:.55;cursor:wait}

/* ---------- the accreditation plate (signature element) ---------- */
.plate{
  position:relative;background:var(--paper);color:var(--asphalt);
  border:1.5px solid var(--line);border-radius:6px;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.55);
  padding:26px 26px 20px;
}
.plate::before{ /* perforated waybill edge */
  content:"";position:absolute;top:0;bottom:0;left:14px;width:0;
  border-left:2px dashed var(--line);
}
.plate-inner{padding-left:26px}
.plate .label{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);
}
.plate .accr-no{
  font-family:var(--mono);font-weight:600;font-size:clamp(.95rem,1.7vw,1.18rem);
  letter-spacing:.04em;color:var(--ink);margin:2px 0 14px;word-break:break-all;
}
.plate h3{font-family:var(--disp);font-size:1.25rem;text-transform:uppercase;line-height:1.05;margin-bottom:12px}
.plate table{width:100%;border-collapse:collapse;font-size:.82rem}
.plate th{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--steel);text-align:left;padding:6px 8px;border-bottom:1.5px solid var(--asphalt);
}
.plate td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.plate td.code{font-family:var(--mono);white-space:nowrap}
.plate .meta{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:14px;font-family:var(--mono);font-size:.66rem;color:var(--steel);letter-spacing:.06em;
}
.stamp{
  position:absolute;top:-16px;right:18px;transform:rotate(7deg);
  border:2.5px solid var(--ink);color:var(--ink);border-radius:6px;
  font-family:var(--mono);font-weight:600;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;padding:7px 12px;line-height:1.45;text-align:center;
  background:rgba(244,242,235,.92);box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.stamp b{display:block;font-size:.78rem}

/* ---------- sections ---------- */
.sec{padding:84px 0}
.sec.dark{background:var(--asphalt);color:var(--paper)}
.sec.tint{background:var(--paper-2)}
.sec-head{max-width:720px;margin-bottom:44px}
.sec-head h2{font-family:var(--disp);font-size:clamp(1.9rem,3.6vw,2.8rem);text-transform:uppercase;line-height:1;margin:14px 0 12px}
.sec.dark .sec-head h2{color:var(--white)}
.sec-head p{color:var(--steel);font-size:1.02rem}
.sec.dark .sec-head p{color:#ADB5BF}

/* qualification cards as manifest line items */
.qual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;max-width:1000px;margin-inline:auto}
.qual{
  background:var(--white);border:1.5px solid var(--line);border-top:5px solid var(--chevron);
  border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:12px;
  transition:transform .18s,box-shadow .18s;
}
.qual:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(0,0,0,.35)}
.qual .id-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.68rem;color:var(--steel);letter-spacing:.08em}
.qual h3{font-family:var(--disp);text-transform:uppercase;font-size:1.3rem;line-height:1.05}
.qual .facts{display:flex;gap:8px;flex-wrap:wrap}
.qual .chip{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;border:1px solid var(--line);
  border-radius:999px;padding:4px 10px;color:var(--steel);background:var(--paper);
}
.qual p{font-size:.92rem;color:#3C434D;flex:1}
.qual .btn{align-self:flex-start;padding:11px 18px;font-size:.78rem}

/* status timeline (portal) */
.timeline{display:flex;gap:0;margin:26px 0}
.tstep{flex:1;text-align:center;position:relative;padding-top:34px}
.tstep::before{
  content:"";position:absolute;top:12px;left:0;right:0;height:3px;background:var(--line);
}
.tstep::after{
  content:"";position:absolute;top:5px;left:50%;transform:translateX(-50%);
  width:18px;height:18px;border-radius:50%;background:var(--paper);border:3px solid var(--line);
}
.tstep.done::before,.tstep.now::before{background:var(--chevron)}
.tstep.done::after{background:var(--chevron);border-color:var(--chevron)}
.tstep.now::after{background:var(--asphalt);border-color:var(--chevron)}
.tstep:first-child::before{left:50%}.tstep:last-child::before{right:50%}
.tstep .t{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.tstep.now .t{color:var(--asphalt);font-weight:600}

/* forms */
.card{
  background:var(--white);border:1.5px solid var(--line);border-radius:6px;padding:30px;
}
.sec.dark .card{background:var(--asphalt-2);border-color:#2A313C}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.field input,.field select,.field textarea{
  padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius);
  background:var(--paper);color:var(--asphalt);
}
.sec.dark .field input,.sec.dark .field select,.sec.dark .field textarea{
  background:var(--asphalt);border-color:#343C48;color:var(--paper);
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--chevron);outline:none}
.field textarea{min-height:120px;resize:vertical}
.note{
  font-family:var(--mono);font-size:.7rem;color:var(--steel);letter-spacing:.04em;
  border-left:3px solid var(--chevron);padding:8px 12px;background:var(--paper-2);
}
.sec.dark .note{background:var(--asphalt-2);color:#ADB5BF}
.msg{padding:12px 16px;border-radius:var(--radius);font-size:.9rem;margin-top:14px;display:none}
.msg.ok{display:block;background:#E7F4EC;color:var(--ok);border:1px solid #BFE3CD}
.msg.err{display:block;background:#FBEAE8;color:var(--bad);border:1px solid #F2C2BD}

/* status pills */
.pill{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;border:1.5px solid;white-space:nowrap;
}
.pill.submitted{color:var(--steel);border-color:var(--line);background:var(--paper)}
.pill.review{color:var(--warn);border-color:#F0C49B;background:#FFF6EC}
.pill.accepted{color:var(--ink);border-color:#B9C6E2;background:#EEF2FA}
.pill.enrolled{color:var(--ok);border-color:#BFE3CD;background:#E7F4EC}
.pill.declined{color:var(--bad);border-color:#F2C2BD;background:#FBEAE8}

/* services (logistics second act) */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc{
  border:1.5px solid #2A313C;border-radius:var(--radius);padding:24px;background:var(--asphalt-2);
}
.svc .num{font-family:var(--mono);font-size:.66rem;color:var(--chevron);letter-spacing:.12em}
.svc h3{font-family:var(--disp);text-transform:uppercase;font-size:1.15rem;margin:8px 0 8px;color:var(--white)}
.svc p{font-size:.9rem;color:#ADB5BF}

/* admin */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.tab{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  padding:10px 16px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--steel);
}
.tab.on{background:var(--asphalt);color:var(--chevron);border-color:var(--asphalt)}
.row-item{
  background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;
}
.row-item .who{font-weight:700}
.row-item .sub{font-family:var(--mono);font-size:.7rem;color:var(--steel);margin-top:3px;word-break:break-word}
.row-item .body-text{grid-column:1/-1;font-size:.9rem;color:#3C434D;border-top:1px dashed var(--line);padding-top:10px}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.row-actions button,.row-actions select{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;
  padding:8px 12px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);
}
.row-actions button:hover{border-color:var(--asphalt)}
.row-actions .danger{color:var(--bad);border-color:#F2C2BD}
.statbar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px}
.stat{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:16px}
.stat .n{font-family:var(--disp);font-size:2rem}
.stat .l{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}

/* footer */
.site-foot{background:var(--asphalt);color:#9AA3AE;padding:54px 0 30px;border-top:3px solid var(--chevron)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;margin-bottom:34px}
.site-foot h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--chevron);margin-bottom:12px}
.site-foot a:hover{color:var(--white)}
.site-foot li{margin-bottom:8px;font-size:.9rem}
.foot-legal{
  border-top:1px solid #2A313C;padding-top:20px;font-family:var(--mono);
  font-size:.64rem;letter-spacing:.06em;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
}

/* reveal animation */
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
  .rv.in{opacity:1;transform:none}
}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .hero .wrap{grid-template-columns:1fr;gap:36px;padding-top:56px}
  .qual-grid,.svc-grid{grid-template-columns:1fr 1fr}
  .statbar{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .nav{
    position:fixed;inset:64px 0 auto 0;background:var(--asphalt);flex-direction:column;
    align-items:stretch;padding:14px 20px 22px;display:none;border-bottom:3px solid var(--chevron);
  }
  .nav.open{display:flex}
  .nav a{padding:13px 12px}
  .burger{display:block}
  .qual-grid,.svc-grid,.fgrid,.foot-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .timeline{flex-wrap:wrap}
  .tstep{flex-basis:50%;margin-bottom:14px}
  .sec{padding:60px 0}
  .stamp{right:10px}
}

/* ---- learner document uploads + admin downloads (added v2.2) ---- */
.field input[type=file]{padding:9px 10px;font-family:var(--mono);font-size:.76rem;background:var(--white)}
.doclinks{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  border-top:1px dashed var(--line);padding-top:10px;margin-top:4px}
.doclinks .dl-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--steel)}
.doclinks button{font-family:var(--mono);font-size:.72rem;padding:6px 12px;
  border:1.5px solid var(--ink);border-radius:var(--radius);background:#EEF2FA;color:var(--ink)}
.doclinks button:hover{background:var(--ink);color:#fff}
.doclinks button[disabled]{opacity:.5;cursor:wait}
