/* BICA "Warm African Landscape" theme. Loaded after site.css, so it only overrides and adds.
   Palette: forest green, ivory, terracotta, muted gold, sage, charcoal.
   Contrast (WCAG 2.2 AA needs 4.5:1 for text, 3:1 for large text and UI):
   white on forest green 8.0 | charcoal on ivory 14.5 | charcoal on gold button 5.3 | white on terracotta 4.9
   muted text on ivory 5.8 | green link on ivory 7.5 | NOTE white on gold is only 2.95, so gold buttons use charcoal text. */
:root{
  --ivory:#FBF7EE; --sage:#DCE6D9; --sage-l:#EEF3EB; --charcoal:#1F2621; --gold:#C88A2D; --gold-d:#8E5F13; --terra-d:#8A4A1F;
  --sand:#F4EEDF; --line:#DAD6C8; --r:14px; --r-lg:28px; --shadow:0 10px 30px -14px rgba(19,61,39,.35);
}
html{background:var(--ivory)}
body{background:var(--ivory);color:var(--charcoal)}
a{color:#17492E}
/* keyboard focus: two rings so it shows on light and dark backgrounds */
:focus-visible{outline:3px solid var(--charcoal);outline-offset:2px;box-shadow:0 0 0 6px var(--gold)}
.site-head{background:rgba(251,247,238,.96);border-bottom:0;box-shadow:0 1px 0 var(--line)}
.nav a{border-radius:999px}
/* buttons: soft, pill shaped, readable */
.btn{border-radius:999px;padding:.82rem 1.5rem}
.btn-gold{background:var(--gold);color:var(--charcoal)}
.btn-gold:hover{background:#DDA040;color:var(--charcoal)}
.btn-green{background:var(--green);color:#fff}
.btn-line{border-color:var(--green);color:var(--green-d)}
.btn-line:hover{background:var(--green);color:#fff}
/* hero: curved lower edge instead of a hard rectangle */
.hero{border-radius:0 0 var(--r-lg) var(--r-lg);margin-bottom:0}
.hero::after{content:"";position:absolute;left:-4%;right:-4%;bottom:-2px;height:46px;background:var(--ivory);border-radius:50% 50% 0 0/100% 100% 0 0;pointer-events:none}
.hero-in{padding-bottom:4.2rem}
.hero-sub{color:#FBF7EE}
/* sections flow into each other with curved joins and no hard lines */
.band{position:relative}
.band-sand,.band-green,.band-ink,.band-sage{margin-top:-1.6rem;padding-top:calc(clamp(2.8rem,6vw,5rem) + 1.6rem);border-radius:var(--r-lg) var(--r-lg) 0 0}
.band-sand{background:var(--sand)}
.band-sage{background:var(--sage-l)}
.band-green{background:var(--green)}
.band-ink{background:var(--green-d)}
.band-intro{padding-top:2.2rem}
.band + .band:not(.band-sand):not(.band-green):not(.band-ink):not(.band-sage){padding-top:clamp(2rem,4vw,3.4rem)}
main>.band:last-child{padding-bottom:clamp(3rem,6vw,5rem)}
h1,h2,h3,h4{color:#133D27}
.band-green h1,.band-green h2,.band-green h3,.band-ink h1,.band-ink h2,.band-ink h3{color:#fff}
.band-green a,.band-ink a{color:#F6E6C8}
.band-green .btn-gold,.band-ink .btn-gold{color:var(--charcoal)}
.lead{color:#2c372f}
.muted{color:#4b564f}
/* open, un-boxed rows with a growing accent bar */
.prow{border-radius:var(--r);transition:background .2s,transform .2s}
.prow:hover{background:var(--sage-l)}
img{border-radius:var(--r)}
.hero-img,.brand img,.foot-brand img,.site-head img,.site-foot img{border-radius:0}
.callout{background:var(--sage-l);border-radius:var(--r-lg);border:0;padding:1.6rem 1.8rem}
.notice{border-radius:var(--r)}
/* primary actions strip under the hero */
.actions-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:-3.4rem;position:relative;z-index:3}
.actions-strip a{display:block;background:#fff;border-radius:var(--r-lg);padding:1.2rem 1.4rem;text-decoration:none;color:var(--charcoal);box-shadow:var(--shadow);border-bottom:5px solid var(--accent,var(--green));transition:transform .2s}
.actions-strip a:hover{transform:translateY(-3px)}
.actions-strip b{display:block;font:700 1.25rem var(--f-head);color:var(--green-d)}
.actions-strip span{color:#4b564f;font-size:.95rem}
/* admission pathway */
.pathway{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.4rem;counter-reset:p}
.pathway li{position:relative;padding:1.2rem 1rem 0 0;counter-increment:p}
.pathway li::before{content:counter(p);display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--green);color:#fff;font:800 1.15rem var(--f-head);margin-bottom:.7rem}
.pathway b{display:block;font:700 1.15rem var(--f-head);color:var(--green-d);margin-bottom:.2rem}
.pathway p{margin:0;color:#4b564f;font-size:.98rem}
/* breadcrumbs and share */
.crumbs{font-size:.92rem;margin:0 0 1.2rem;color:#4b564f}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:#8a9389}
.crumbs a{color:#17492E}
.share{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:1.6rem 0 0}
.share b{font-size:.92rem;margin-right:.3rem}
.share a,.share button{font:600 .9rem var(--f-body);padding:.45rem .9rem;border-radius:999px;border:2px solid var(--green);background:transparent;color:var(--green-d);text-decoration:none;cursor:pointer}
.share a:hover,.share button:hover{background:var(--green);color:#fff}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem 2rem;margin:1.2rem 0}
.facts-grid h3{font-size:1.1rem;margin-bottom:.3rem}
.updated{font-size:.88rem;color:#4b564f}
.faq details{border-bottom:1px solid var(--line);padding:.9rem 0}
.faq summary{font:700 1.12rem var(--f-head);color:var(--green-d);cursor:pointer}
.faq details[open] summary{margin-bottom:.5rem}
/* ---- application form ---- */
.reg-band{padding-top:2rem}
.reg-wrap{max-width:880px}
.reg-intro{background:var(--sage-l);border-radius:var(--r-lg);padding:1.4rem 1.6rem;margin-bottom:1.6rem}
.reg-intro .lead{font-size:1.1rem;margin-bottom:.6rem}
.tick{list-style:none;padding:0;margin:0}.tick li{padding-left:1.7rem;position:relative;margin:.4rem 0}.tick li::before{content:"\2713";position:absolute;left:0;color:var(--green);font-weight:800}
.regform fieldset{border:0;padding:0;margin:0 0 2rem}
.regform legend{font:700 1.5rem var(--f-head);color:var(--green-d);padding:0;margin-bottom:.4rem;display:flex;gap:.6rem;align-items:center}
.regform legend .n,.steps .n{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--green);color:#fff;font:700 1rem var(--f-head);flex:none}
.stephelp{color:#4b564f;margin:0 0 1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.4rem}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld input[type=date],.fld input[type=url],.fld input[type=number],.fld select,.fld textarea,.fld input[type=file]{border-radius:12px;border:2px solid #b9c2b6;background:#fff;color:var(--charcoal);min-height:46px}
.fld input[aria-invalid=true],.fld select[aria-invalid=true],.fld textarea[aria-invalid=true]{border-color:var(--terra)}
.fld .req{color:var(--terra-d)}
.fld .opt{font-weight:400;color:#4b564f;font-size:.9rem}
.ferr{color:var(--terra-d);font-weight:600;font-size:.94rem;margin-top:.2rem}
.yn{border:0;padding:0}.yn label{display:inline-flex;gap:.4rem;margin-right:1.2rem;font-weight:400}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.warnnote{background:#FFF4E0;border-left:5px solid var(--gold);padding:.7rem 1rem;border-radius:0 12px 12px 0}
.docslot{background:var(--sage-l);border-radius:var(--r);padding:1rem;margin-bottom:.8rem}
.uploadbar{height:10px;border-radius:99px;background:var(--sage);overflow:hidden;margin:.8rem 0}.uploadbar i{display:block;height:100%;background:var(--green);width:0;transition:width .2s}
.copybox{width:100%;font:inherit;padding:.5rem;border-radius:10px;border:2px solid #b9c2b6}
.review{background:#fff;border-radius:var(--r-lg);padding:1.2rem 1.5rem;box-shadow:var(--shadow)}
.review h3{font-size:1.1rem;margin:.9rem 0 .3rem}.review dl{margin:0;display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:.2rem 1rem}.review dt{color:#4b564f}.review dd{margin:0}
.stepnav,.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem}
.statuscard{background:#fff;border-radius:var(--r-lg);padding:1.4rem 1.6rem;box-shadow:var(--shadow)}
.refno{font:800 2rem var(--f-head);color:var(--green-d);letter-spacing:.02em}
/* progressive enhancement: steps show one at a time only when JavaScript is running */
.regform .steps ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0 0 .6rem}
.regform .steps a{display:flex;gap:.45rem;align-items:center;padding:.35rem .8rem .35rem .4rem;border-radius:999px;background:var(--sage-l);color:var(--charcoal);text-decoration:none;font-size:.92rem}
.regform .steps li .n{width:1.7rem;height:1.7rem;font-size:.9rem;background:#6a7c6f}
.regform .steps li.on a{background:var(--green);color:#fff}.regform .steps li.on .n{background:#fff;color:var(--green-d)}
.regform .steps li.done .n{background:var(--green)}
.regform.js .step{display:none}.regform.js .step.on{display:block}
.regform:not(.js) .stepnav,.regform:not(.js) .steps,.regform:not(.js) .steps-live{display:none}
.regform [hidden],.regform .hidden,[data-if].hidden{display:none!important}
.steps-live{position:absolute;left:-9999px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}.review dl{grid-template-columns:1fr}.regform .steps .t{display:none}.regform .steps li.on .t{display:inline}.actions-strip{margin-top:-2.4rem}.btn{width:100%;text-align:center}.hero-cta .btn,.nav .btn{width:auto}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.btn{border:2px solid ButtonText}.hero::after{display:none}}
@media print{.topbar,.site-head,.share,.hero::after,.nav-toggle{display:none!important}}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* contrast fixes found by the automated accessibility scan */
.ringlist .rl-6 b{color:#7A5200}
.ringlist .rl-12 b{color:#245a57}
.pill{color:#5E3C00}
.pill-cat{color:#133D27}
.pill-demo{color:#3d2470}
.crumbs.wrap{margin:1rem auto .2rem}
.hero-home .hero-in{padding-bottom:7rem}
.actions-strip{margin-top:-4.2rem}
@media (max-width:640px){.hero-home .hero-in{padding-bottom:5.6rem}.actions-strip{margin-top:-3.2rem}}
