@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{
  --bg:#f3f6fa;
  --panel:#ffffff;
  --card:#ffffff;
  --text:#152337;
  --muted:#66768a;
  --navy:#102b42;
  --navy-deep:#091e30;
  --brand1:#14966f;
  --brand2:#126dcc;
  --brand3:#d98a24;
  --brand4:#bd3444;
  --line:#dfe7ef;
  --shadow:0 12px 32px rgba(22,48,72,.08);
  --radius:8px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans", "Segoe UI", sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#ffffff 0,#f5f8fb 32rem,var(--bg) 100%);
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.container{
  width:min(var(--max),calc(100% - 40px));
  max-width:var(--max);
  padding:0;
  margin: 0 auto;
}
.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background:rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line); box-shadow: 0 6px 18px rgba(2,6,23,.06);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: .9rem 0;
}
.brand{display:flex; gap:.7rem; align-items:center}
.brand img{height:54px;width:auto}
@media (max-width: 768px){.brand img{height:46px}}
.navlinks{display:flex; gap:1rem; align-items:center}
.navlinks a{
  font-weight:750;
  color: var(--text);
  padding:.55rem .7rem;
  border-radius: 12px;
}
.navlinks a:hover{background: rgba(148,163,184,.12)}
.nav-cta{
  display:flex; gap:.7rem; align-items:center
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.75rem 1rem;
  border-radius:6px;
  border: 1px solid var(--line);
  background: rgba(7,22,46,.04);
  color: var(--text);
  font-weight: 850;
  box-shadow: none;
}
.btn:hover{background: rgba(15,23,42,.08)}
.btn.primary{
  border:none;
  background:var(--brand2);
  color:#fff;
}
.btn.primary:hover{filter: brightness(1.03)}
.burger{display:none}
.badge{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.35rem .6rem;
  border-radius: 999px;
  border:1px solid var(--line);
  background: rgba(7,22,46,.04);
  color: var(--text);
  font-weight:800;
  font-size:.85rem;
}
.hero{
  padding: 3.8rem 0 2.2rem;
}
.hero-grid{
  display:grid; gap:2rem;
  grid-template-columns: 1.1fr .9fr;
  align-items:center;
}
h1{
  margin:.6rem 0 1rem;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.08;
  letter-spacing:-.02em;
}
.lead{
  color: #1d3557;
  font-size: 1.08rem;
  line-height:1.65;
  max-width: 60ch;
}
.hero-actions{display:flex; gap:.8rem; margin-top: 1.4rem; flex-wrap:wrap}
.panel{
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.hero-card{padding: 1.2rem}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.9rem}
.kpi{padding:.9rem; border-radius: 16px; border:1px solid var(--line); background: rgba(15,23,42,.03)}
.kpi .n{font-size:1.25rem; font-weight:850}
.kpi .l{color:#365a78; font-weight:750; font-size:.9rem; margin-top:.1rem}
.hr{height:1px; background: var(--line); margin: 1rem 0}
.small{color:#2b4b68; font-size:.95rem; line-height:1.6}
.section{padding: 2.5rem 0}
.section h2{
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  margin:0 0 .6rem;
  letter-spacing:-.015em;
}
.section p{color:var(--muted);line-height:1.7}
.grid3{display:grid; grid-template-columns: repeat(3,1fr); gap:1rem; margin-top:1.1rem}
.card{
  padding: 1.1rem;
  border-radius: var(--radius);
  border:1px solid var(--line);
  background: rgba(15,23,42,.03);
}
.card h3{margin:.1rem 0 .35rem; font-size: 1.05rem}
.card p{margin:.35rem 0 0; color:#26435f; font-size:.98rem}
.icon{
  height:40px; width:40px;
  border-radius: 14px;
  background: rgba(148,163,184,.12);
  border: 1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.icon svg{height:22px; width:22px; opacity:.95}
.split{
  display:grid; grid-template-columns: 1fr 1fr;
  gap:1.2rem; align-items:stretch;
}
.split>*{min-width:0}
.list{
  display:flex; flex-direction:column; gap:.7rem; margin-top:.9rem
}
.li{
  display:flex; gap:.8rem; align-items:flex-start;
  padding:.85rem;
  border-radius: 16px;
  border:1px solid var(--line);
  background: rgba(15,23,42,.03);
}
.li strong{display:block; margin-bottom:.15rem}
.li span{color:#2a4b68}
.quote{
  padding: 1.2rem;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(0,194,168,.16), rgba(31,122,255,.08));
}
.quote p{margin:.2rem 0; color: rgba(226,232,240,.86)}
.quote .by{color:var(--muted); margin-top:.7rem; font-weight:650}
.form{
  display:grid; gap:.9rem; margin-top:1rem
}
.field{display:grid; gap:.35rem}
label{font-weight:700; color: rgba(226,232,240,.9)}
input, textarea, select{
  padding:.8rem .85rem;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--text);
  outline:none;
}
input:focus, textarea:focus, select:focus{border-color: rgba(96,165,250,.55); box-shadow: 0 0 0 4px rgba(96,165,250,.10)}
textarea{min-height: 130px; resize: vertical}
.footer{
  padding: 2rem 0;
  border-top:1px solid #23445f;
  margin-top:2.2rem;background:var(--navy-deep);color:#fff;
}
.footer-grid{
  display:grid; gap:1.2rem;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
}
.footer a{color:#dce8f1}
.footer a:hover{text-decoration:underline}
.muted{color:var(--muted)}
.footer .muted,.footer .small{color:#b9cad8}
.kbd{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:.82rem;
  padding:.12rem .35rem;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(15,23,42,.05);
  color: rgba(226,232,240,.9);
}
.notice{
  padding: .9rem 1rem;
  border-radius: 16px;
  border:1px solid rgba(45,212,191,.25);
  background: rgba(45,212,191,.08);
  color:#17654f;
  margin-top: .9rem;
}
/* Mobile */
@media (max-width: 920px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-grid>*{min-width:0}
  .grid3{grid-template-columns: 1fr; }
  .split{grid-template-columns: 1fr; }
  .footer-grid{grid-template-columns: 1fr; }
  .navlinks{display:none}
  .burger{display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:14px; border:1px solid var(--line); background: rgba(148,163,184,.10)}
  .burger:hover{background: rgba(15,23,42,.08)}
  .mobilemenu{
    display:none;
    padding: 0 0 1rem;
  }
  .mobilemenu.open{display:block}
  .mobilemenu a{
    display:block; padding:.7rem .85rem; border-radius: 14px;
    margin-top:.5rem; border:1px solid var(--line);
    background: rgba(15,23,42,.03);
    font-weight:750;
  }
}

@media (min-width: 1440px){
  .container{
    width: min(var(--max), calc(100% - 4.5rem));
  }
  .hero{
    padding: 4.5rem 0 2.8rem;
  }
  .section{
    padding: 2.9rem 0;
  }
  .hero-grid{
    gap: 2.5rem;
  }
  .kpi{
    padding: 1.05rem;
  }
}

/* =====================================================
   FORCE ALL TEXT TO BLACK (MAX READABILITY OVERRIDE)
  /* Unified AlafaSA public and channel experience */
  h1,h2,h3{font-family:"Manrope","Segoe UI",sans-serif;letter-spacing:0}
  .navlinks{gap:.25rem}.navlinks a{border-radius:5px;font-size:.92rem}.navlinks a.partner-link{color:var(--brand2)}
  .nav-cta{gap:.5rem}.nav-cta a{white-space:nowrap}.nav-cta .partner-login{white-space:nowrap}.nav-cta .partner-join{background:var(--navy);color:#fff;border-color:var(--navy);white-space:nowrap}.nav-cta .partner-join:hover{background:var(--navy-deep)}
  .mobilemenu{display:none}
  .panel,.card,.li,.quote,.kpi{border-radius:var(--radius)}
  .badge{border-radius:999px;background:#eaf5ff;color:#145f9f;border-color:#c7e1f7}
  .partner-band{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center;padding:2rem;background:var(--navy);color:#fff;border-left:6px solid var(--brand1)}
  .partner-band h2{margin:0 0 .55rem;color:#fff}.partner-band p{margin:0;color:#d6e4ee}.partner-band .hero-actions{justify-content:flex-end;margin:0}.partner-band .btn{border-color:#7891a5;color:#fff;background:transparent}.partner-band .btn.primary{background:#fff;color:var(--navy);border-color:#fff}
  .partner-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:1.25rem;background:var(--line);border:1px solid var(--line)}.partner-benefits>div{background:#fff;padding:1.1rem}.partner-benefits strong,.partner-benefits span{display:block}.partner-benefits span{margin-top:.35rem;color:var(--muted);line-height:1.55}
  .footer-brand-logo{width:190px;height:auto;margin-bottom:.7rem}.footer .hr{background:#294961}.footer .kbd{color:#dce8f1;background:#173750;border-color:#36566f}
  @media(max-width:1120px){.navlinks a{padding:.5rem .45rem}.nav-cta .partner-login{display:none}}
  @media(max-width:920px){.partner-band{grid-template-columns:1fr}.partner-band .hero-actions{justify-content:flex-start}.partner-benefits{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.mobilemenu .mobile-partner{background:#eaf5ff;border-color:#b9d9f4;color:#145f9f}}
  @media(max-width:560px){.container{width:min(var(--max),calc(100% - 28px))}.nav-cta>a{display:none}.footer-grid{grid-template-columns:1fr}.partner-band{padding:1.35rem}}
/* Buttons: keep backgrounds, force black text */

/* Connected platform homepage */
.eyebrow{display:block;color:var(--brand1);font-size:.78rem;font-weight:800;letter-spacing:.12em;margin-bottom:.7rem}
.connected-hero{overflow:hidden;padding:4.8rem 0 4rem;background:linear-gradient(120deg,#fff 0%,#f1f8f6 52%,#edf5fc 100%);border-bottom:1px solid var(--line)}
.connected-hero h1{max-width:720px;font-size:clamp(2.55rem,5vw,4.75rem);margin:.35rem 0 .5rem;color:var(--navy-deep)}
.hero-promise{margin:0 0 1.1rem;color:var(--brand2);font-family:"Manrope","Segoe UI",sans-serif;font-size:clamp(1.25rem,2.2vw,1.7rem);font-weight:700}
.hero-copy .lead{max-width:660px}
.connected-mantra{display:flex;flex-wrap:wrap;gap:.45rem 1.3rem;margin-top:1.5rem;padding-top:1.15rem;border-top:1px solid #cbdce6;color:var(--navy);font-size:.92rem}
.connection-map{position:relative;width:100%;max-width:600px;min-height:420px;margin-inline:auto;isolation:isolate}
.connection-map::before{content:"";position:absolute;z-index:1;inset:20% 31%;border:1px dashed #84bfb1;border-radius:50%}
.connection-lines{position:absolute;z-index:0;inset:0;width:100%;height:100%;overflow:visible}.connection-lines path{fill:none;stroke:#a9c4d3;stroke-width:1.5;vector-effect:non-scaling-stroke}
.connection-core{position:absolute;z-index:3;inset:50% auto auto 50%;width:188px;height:188px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px solid #80d8bc;border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 18px 42px rgba(9,30,48,.25),0 0 0 12px rgba(20,150,111,.1)}
.connection-core span{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#79dbbc}.connection-core strong{margin:.55rem 0;font-family:"Manrope","Segoe UI",sans-serif;font-size:1.15rem;line-height:1.25}.connection-core small{color:#c9dbe7}
.connection-node{position:absolute;z-index:4;min-width:148px;min-height:56px;padding:.55rem .8rem;display:flex;align-items:center;gap:.65rem;border:1px solid #bfd2dd;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(22,48,72,.09);color:var(--navy);font-size:.82rem;text-transform:uppercase}
.node-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#dff3ed;color:#087d5b;font-size:.68rem;font-weight:900}
.node-company{top:10%;left:0}.node-contractors{top:0;left:50%;transform:translateX(-50%)}.node-health{top:10%;right:0}.node-sites{top:43%;left:0}.node-incidents{top:43%;right:0}.node-safety{bottom:3%;left:0}.node-risk{right:0;bottom:3%}
.platform-section{background:#fff}.section-intro{max-width:790px;margin-bottom:1.7rem}.section-intro .lead{max-width:none;margin-bottom:0}.section-intro.compact{margin-bottom:1.35rem}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.module-card{position:relative;min-height:285px;padding:1.45rem;background:#fff}.module-card h3{margin:1.55rem 0 .55rem;color:var(--navy);font-family:"Manrope","Segoe UI",sans-serif;font-size:1.22rem}.module-card>strong{display:block;min-height:2.8rem;color:#1d5066;line-height:1.35}.module-card p{margin:.65rem 0 0;font-size:.94rem;line-height:1.58}.module-number{position:absolute;top:1.25rem;right:1.3rem;color:#7890a1;font-size:.7rem;font-weight:800;letter-spacing:.1em}.foundation-card{background:var(--navy);border-top:5px solid var(--brand1)}.foundation-card h3,.foundation-card>strong{color:#fff}.foundation-card p{color:#c8d9e5}.foundation-card .module-number{color:#77d6b8}
.difference-statement{display:grid;grid-template-columns:.48fr 1.52fr;gap:2rem;margin-top:1.3rem;padding:1.5rem 0;border-top:2px solid var(--navy);border-bottom:1px solid var(--line)}.difference-statement>span{color:var(--navy);font-family:"Manrope","Segoe UI",sans-serif;font-size:1.35rem;font-weight:800}.difference-statement p{margin:0;color:#36536a}
.mobile-workplace{background:var(--navy);color:#fff;overflow:hidden}.mobile-workplace-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:4rem;align-items:center}.mobile-workplace h2{color:#fff;font-size:clamp(1.8rem,3.2vw,2.65rem)}.mobile-workplace .lead{color:#d4e2eb;max-width:700px}.worker-app-visual{width:min(100%,351px);margin:0 auto;padding:0;background:#fff;box-shadow:18px 22px 0 rgba(20,150,111,.22),0 20px 50px rgba(3,17,28,.32)}.worker-app-visual img{width:100%;height:auto;object-fit:contain}
.workplace-points{display:grid;gap:0;margin-top:1.6rem;border-top:1px solid #385369}.workplace-points div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid #385369}.workplace-points strong{color:#7fdbbd}.workplace-points span{color:#c5d6e1;line-height:1.5}
.cross-platform{background:#edf3f6}.capability-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.capability-grid article{grid-column:span 3;padding:1.25rem;border-top:4px solid var(--brand2);background:#fff}.capability-grid article:last-child{grid-column:span 12;border-top-color:var(--brand1)}.capability-grid h3{margin:0 0 .45rem;color:var(--navy);font-size:1.05rem}.capability-grid p{margin:0;font-size:.92rem;line-height:1.55}
@media(max-width:920px){.connected-hero{padding:3.3rem 0}.connection-map{min-height:420px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-workplace-grid{grid-template-columns:1fr;gap:2rem}.worker-app-visual{width:min(78vw,351px)}.capability-grid article{grid-column:span 6}.capability-grid article:last-child{grid-column:span 12}}
@media(max-width:600px){.connected-hero h1{font-size:2.45rem}.connection-map{min-height:350px}.connection-core{width:142px;height:142px}.connection-core strong{font-size:.92rem}.connection-core small{font-size:.65rem}.connection-map::before{inset:25% 30%}.connection-node{min-width:96px;min-height:44px;padding:.4rem .5rem;gap:.35rem;font-size:.62rem}.node-icon{flex-basis:25px;width:25px;height:25px;font-size:.55rem}.node-company{top:10%}.node-contractors{top:0}.node-health{top:10%}.node-sites,.node-incidents{top:44%}.node-safety,.node-risk{bottom:2%}.module-grid{grid-template-columns:1fr}.module-card{min-height:0}.module-card>strong{min-height:0}.difference-statement{grid-template-columns:1fr;gap:.6rem}.capability-grid article,.capability-grid article:last-child{grid-column:span 12}.workplace-points div{grid-template-columns:1fr;gap:.3rem}.worker-app-visual{width:min(88vw,351px);box-shadow:10px 12px 0 rgba(20,150,111,.22)}.connected-mantra{display:grid;gap:.45rem}}
