/* ==========================================================================
   RwandaEVs — “Lime Pop” design system
   Drop-in stylesheet mapped to the existing markup classes.
   Replace the site's styles.css with this (or merge :root + rules in).

   Load fonts in <head> first:
   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Familjen+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
   ========================================================================== */

/* ---- Design tokens ------------------------------------------------------- */
:root{
  /* color */
  --bg:#FBFBF7; --surface:#FFFFFF; --surface-2:#F4F4EE;
  --photo-bg:linear-gradient(180deg,#F5F6F1,#E8EAE2); /* backdrop behind car photos (object-fit:contain) — tweak here */
  --ink:#0C0C0A; --ink-soft:#55554C;
  --line:rgba(12,12,10,.14); --line-strong:rgba(12,12,10,.26);
  --lime:#84CC16; --lime-bright:#A3E635; --lime-deep:#5FA800;
  --green-ink:#3C7A00; --green-deep:#0C8A4F; --on-lime:#0C0C0A;
  --tag-pure-bg:rgba(132,204,22,.16); --tag-used-bg:rgba(85,85,76,.12);
  --note-bg:rgba(132,204,22,.07); --note-border:rgba(132,204,22,.30);
  --footer-bg:#0C0C0A; --footer-ink:rgba(230,230,222,.70); --focus:#84CC16;

  /* type */
  --font-display:'Bricolage Grotesque',sans-serif;
  --font-body:'Familjen Grotesk','Segoe UI',sans-serif;

  /* layout */
  --maxw:1200px; --gutter:24px;
  --r-sm:10px; --r:14px; --r-lg:18px; --r-pill:999px;
  --shadow-card:0 12px 30px rgba(12,12,10,.10);
  --shadow-hover:0 22px 50px rgba(12,12,10,.16);
}

/* ---- Reset / base -------------------------------------------------------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--green-ink);text-decoration:none;transition:color .15s}
a:hover{color:var(--green-deep)}
::selection{background:rgba(132,204,22,.30)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}

h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;text-wrap:balance}
h1{font-weight:800;font-size:clamp(38px,5.4vw,64px);line-height:1.02;letter-spacing:-.02em}
h2{font-weight:800;font-size:clamp(26px,3.2vw,38px);line-height:1.08;letter-spacing:-.02em;margin:46px 0 20px}
h3{font-weight:700;font-size:20px;line-height:1.2;letter-spacing:-.01em}
p{margin:0 0 1em;text-wrap:pretty}
ul{margin:0;padding-left:20px}

.small{font-size:13px;line-height:1.5}
.muted{color:var(--ink-soft)}

/* ---- Layout helpers ------------------------------------------------------ */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.spacer{flex:1}
main.wrap > section{margin-bottom:8px}

.grid{display:grid;gap:18px}
.grid.g2{grid-template-columns:repeat(2,1fr)}
.grid.g3{grid-template-columns:repeat(3,1fr);gap:16px}

/* ---- Buttons ------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1;
  padding:14px 26px;border-radius:var(--r);border:1.5px solid var(--line-strong);
  background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;
  transition:background .18s,transform .18s,box-shadow .18s,border-color .18s;
}
.btn:hover{background:var(--surface-2);color:var(--ink)}
.btn.primary{
  background:var(--lime);color:var(--on-lime);border-color:transparent;
  box-shadow:var(--shadow-card);
}
.btn.primary:hover{background:var(--lime-bright);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.btn:active{transform:none}
.btn.sm{padding:9px 18px;font-size:14px}

/* ---- Header -------------------------------------------------------------- */
header.site{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb,var(--surface) 85%,transparent);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
header.site .bar{display:flex;align-items:center;gap:28px;height:68px}
.brand{font-family:var(--font-display);font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.02em}
.brand:hover{color:var(--ink)}
.brand b{color:var(--green-ink)}
header.site nav{display:flex;align-items:center;gap:22px}
header.site nav a{color:var(--ink-soft);font-family:var(--font-body);font-weight:500;font-size:14px}
header.site nav a:hover{color:var(--ink)}

/* ---- Hero ---------------------------------------------------------------- */
.hero{padding:54px 0 8px}
.herotext{max-width:760px}
.herotext h1{margin:0 0 18px}
.lead,
p.lead{font-size:clamp(17px,2vw,21px);font-weight:500;color:var(--ink-soft);line-height:1.5;max-width:620px;margin:0}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* Optional eyebrow/overline above the H1 — add <span class="eyebrow"> */
.eyebrow{
  display:inline-block;font-family:var(--font-body);font-weight:700;font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--green-ink);margin-bottom:18px;
}

/* ---- Hero slideshow ------------------------------------------------------ */
.slideshow{
  position:relative;margin-top:34px;border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);border:1px solid var(--line);overflow:hidden;
}
.slides{position:relative;width:100%;aspect-ratio:16/9;background:var(--photo-bg)}
.slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  opacity:0;transform:scale(1);transition:opacity .9s ease,transform .9s ease;
}
.slide.active{opacity:1;transform:scale(1.03)}
.slideshow::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.35));
}
.dots{position:absolute;left:0;right:0;bottom:16px;display:flex;gap:8px;justify-content:center;z-index:1}
.dot{width:9px;height:9px;min-height:9px;padding:0;border:none;border-radius:var(--r-pill);
  background:rgba(255,255,255,.55);cursor:pointer;transition:width .3s,background .3s}
.dot.active{width:26px;background:var(--lime)}

/* ---- KPI strip ----------------------------------------------------------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.kpi b{display:block;font-family:var(--font-display);font-weight:800;font-size:25px;line-height:1.1;
  color:var(--green-ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.kpi span{display:block;margin-top:6px;font-size:13px;color:var(--ink-soft);line-height:1.35}

/* ---- Note / tax panel ---------------------------------------------------- */
.note{background:var(--note-bg);border:1px solid var(--note-border);border-radius:var(--r);padding:24px 26px}
.note b{color:var(--ink)}
.note .note-pill{   /* wrap the panel's label in <span class="note-pill"> */
  display:inline-block;background:var(--lime);color:var(--on-lime);
  font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill);margin-bottom:12px;
}
.note ul{color:var(--ink-soft);font-size:14.5px;line-height:1.7;margin:10px 0 0}
.src-line{font-size:12.5px;color:var(--ink-soft);margin:12px 0 0;opacity:.85}

/* ---- Cards --------------------------------------------------------------- */
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-card);padding:20px 22px;height:100%;
  transition:transform .22s ease,box-shadow .22s ease;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}
.card a{color:inherit}
.card a:hover{color:var(--green-ink)}

/* media card (image on top) */
.card.media{padding:0;overflow:hidden}
.card.media .thumb{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:var(--photo-bg)}
.card.media .body{padding:18px 20px 20px}
.card.media .body h3{margin:12px 0 0}
.card.media .body > p:first-of-type{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}

/* row header inside flat cards (dealers / guides) */
.rowhead{display:flex;align-items:flex-start;gap:13px}
.rowhead h3{margin:0}
.avatar,.ic{
  flex-shrink:0;display:grid;place-items:center;border-radius:var(--r);
  background:var(--tag-pure-bg);color:var(--green-ink);
}
.avatar{width:46px;height:46px;font-family:var(--font-display);font-weight:800;font-size:14px}
.ic{width:40px;height:40px}
.ic svg, .ic img{width:20px;height:20px}

/* ---- Tags & price -------------------------------------------------------- */
.tag{
  display:inline-block;font-family:var(--font-display);font-weight:700;font-size:11.5px;
  letter-spacing:.06em;text-transform:uppercase;padding:4px 11px;border-radius:var(--r-pill);
}
.tag.t-pure_ev{background:var(--tag-pure-bg);color:var(--green-ink)}
.tag.t-used_import{background:var(--tag-used-bg);color:var(--ink-soft)}
.price{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--ink);font-variant-numeric:tabular-nums}

/* section heading row (h2 + "view all" link) */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sec-head a{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--green-ink)}

/* ---- Lead capture forms -------------------------------------------------- */
/* ---- Lead capture forms (note: scoped to div.lead so it doesn't hit the hero <p class="lead">) */
div.lead{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 24px;margin-top:26px;box-shadow:var(--shadow-card);
}
div.lead h3{font-size:20px;margin:0 0 4px}
.leadform{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.leadform input{
  flex:1 1 150px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:15px;
  transition:border-color .15s,box-shadow .15s;
}
.leadform input::placeholder{color:var(--ink-soft);opacity:.8}
.leadform input:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 3px rgba(132,204,22,.25)}
.ok{color:var(--green-ink);font-weight:600;margin-top:12px}

/* ---- Footer -------------------------------------------------------------- */
footer.site{background:var(--footer-bg);color:var(--footer-ink);margin-top:70px;padding:52px 0 32px}
footer.site .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
footer.site .cols > div{display:flex;flex-direction:column}
footer.site h4{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:#fff;margin:0 0 14px;opacity:.92}
footer.site .cols a{color:var(--footer-ink);font-family:var(--font-body);font-size:14px;padding:4px 0}
footer.site .cols a:hover{color:var(--lime-bright)}
.fine{margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);
  color:var(--footer-ink);font-size:12.5px;line-height:1.6;opacity:.8}

/* ---- Responsive ---------------------------------------------------------- */
@media (max-width:900px){
  .grid.g3{grid-template-columns:repeat(2,1fr)}
  footer.site .cols{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  header.site nav{display:none} /* swap in a menu button if needed */
}
@media (max-width:560px){
  .grid.g2,.grid.g3{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr}
}

/* ---- Motion preference --------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .slide{transition:opacity .01s!important;transform:none!important}
}

/* ==========================================================================
   RwandaEVs inner-page components — extends Lime Pop to the full class set.
   ========================================================================== */
:root{ --amber-bg:rgba(214,158,38,.16); --amber-border:rgba(214,158,38,.36); --amber-ink:#7a5708; }

/* model-page hero banner + head */
.banner{width:100%;height:auto;aspect-ratio:16/9;max-height:clamp(280px,48vw,520px);object-fit:contain;background:var(--photo-bg);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);border:1px solid var(--line);display:block;margin:8px 0 0}
.modelhead{margin-top:20px}
.modelhead h1{margin:0 0 10px}
.modelhead .price{font-family:var(--font-display);font-weight:800;font-size:26px;color:var(--ink);margin:14px 0 2px;font-variant-numeric:tabular-nums}
.modelhead .price small{font-family:var(--font-body);font-weight:500;font-size:13px;color:var(--ink-soft)}

/* spec table */
.spec{width:100%;border-collapse:collapse;margin:12px 0}
.spec th,.spec td{border-bottom:1px solid var(--line);padding:11px 8px;text-align:left;font-size:14px;color:var(--ink)}
.spec th{font-family:var(--font-body);font-weight:700;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);width:34%}
.spec td b{font-family:var(--font-display);font-weight:700}

/* compare page: filters + table */
.filters{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:20px 0}
.chip{cursor:pointer;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--r-pill);
  padding:7px 16px;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);
  transition:background .15s,color .15s,border-color .15s}
.chip:hover{background:var(--surface-2)}
.chip.on{background:var(--lime);color:var(--on-lime);border-color:transparent}
.filters input{border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;
  font-family:var(--font-body);font-size:14px;min-width:200px;background:var(--surface);color:var(--ink)}
.filters input:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 3px rgba(132,204,22,.25)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-card)}
table.cmp{width:100%;border-collapse:collapse;min-width:780px}
table.cmp th,table.cmp td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}
table.cmp th{font-family:var(--font-body);background:var(--surface-2);font-size:11px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ink-soft);white-space:nowrap;cursor:pointer}
table.cmp th[data-sort]::after{content:" \2195";color:var(--ink-soft);opacity:.55}
table.cmp tbody tr:last-child td{border-bottom:0}
table.cmp tbody tr:hover{background:var(--surface-2)}
table.cmp td.model b{font-family:var(--font-display);font-weight:700}
table.cmp td.model a{color:var(--ink)}
table.cmp td.model a:hover{color:var(--green-ink)}

/* price-basis micro tag */
.basis{display:inline-block;font-family:var(--font-body);font-size:10.5px;color:var(--ink-soft);
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:1px 7px;margin-top:3px}

/* caution panel + PHEV/hybrid tags (amber, distinct from the lime "note") */
.warnbox{background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:var(--r);
  padding:18px 22px;margin:18px 0;font-size:14.5px;color:var(--amber-ink)}
.warnbox b{color:var(--ink)}
.warnbox.small{font-size:13.5px;padding:14px 18px}
.warnbox .note-pill{background:var(--amber-ink);color:#fff}
.warnbox ul{color:var(--amber-ink);font-size:14px;line-height:1.7;margin:10px 0 0}
.warnbox a{color:var(--green-deep);text-decoration:underline}
.tag.t-phev,.tag.t-hybrid{background:var(--amber-bg);color:var(--amber-ink)}
.tag.t-new_dealer{background:var(--tag-pure-bg);color:var(--green-ink)}
.tag.t-commercial{background:rgba(40,87,158,.12);color:#28579e}

/* dealership-visit checklist */
ul.clean{list-style:none;padding:0;margin:0}
ul.clean li{padding:11px 2px;border-bottom:1px solid var(--line)}
ul.clean li:last-child{border-bottom:0}
ul.clean label{display:flex;align-items:flex-start;gap:11px;cursor:pointer;font-size:15px;color:var(--ink)}
ul.clean input[type=checkbox]{margin-top:3px;width:17px;height:17px;accent-color:var(--lime);flex-shrink:0}

/* contact-form textarea */
.leadform textarea{flex:1 1 100%;min-height:96px;resize:vertical;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:15px}
.leadform textarea::placeholder{color:var(--ink-soft);opacity:.8}
.leadform textarea:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 3px rgba(132,204,22,.25)}

/* ---- AEO answer block ---- */
.answer{max-width:820px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--green-deep);border-radius:var(--r);padding:18px 22px;margin:20px 0;box-shadow:var(--shadow-card)}
.answer .eyebrow{display:block;margin-bottom:8px}
.answer p{margin:0;color:var(--ink-soft)}
