@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --white:#FFFFFF;
  --offwhite:#F7F7F7;
  --light:#F0F0F0;
  --border:#E2E2E2;
  --text:#0D0D0D;
  --sub:#5C5C5C;
  --muted:#999999;
  --teal:#00A896;
  --teal-light:rgba(0,168,150,0.1);
  --teal-border:rgba(0,168,150,0.25);
  --teal-bright:#00E5CC;
}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--text);font-family:'Montserrat',sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}

/* LAYOUT */
.container{max-width:1160px;margin:0 auto;padding:0 40px}
section{padding:110px 0;position:relative}
.teal{color:var(--teal)}

/* TAGS */
.tag{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:20px}
.tag::before{content:'';width:22px;height:2px;background:var(--teal);display:inline-block}
.tag.center{justify-content:center}
.tag.center::before{display:none}

/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--teal);color:var(--white);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:17px 34px;border-radius:3px;border:none;cursor:pointer;text-decoration:none;transition:all .25s;white-space:nowrap}
.btn-primary:hover{background:#008a7b;transform:translateY(-2px);box-shadow:0 14px 40px rgba(0,168,150,.22)}
.btn-dark{display:inline-flex;align-items:center;gap:10px;background:var(--text);color:var(--white);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:17px 34px;border-radius:3px;border:none;cursor:pointer;text-decoration:none;transition:all .25s;white-space:nowrap}
.btn-dark:hover{background:#2a2a2a;transform:translateY(-2px);box-shadow:0 14px 40px rgba(0,0,0,.18)}
.btn-ghost{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--text);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:16px 34px;border-radius:3px;border:1px solid var(--border);cursor:pointer;text-decoration:none;transition:all .25s}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-ghost-white{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--white);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:16px 34px;border-radius:3px;border:1px solid rgba(255,255,255,.45);cursor:pointer;text-decoration:none;transition:all .25s}
.btn-ghost-white:hover{border-color:var(--white);background:rgba(255,255,255,.1)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:20px 0;background:transparent;transition:padding .3s,background .3s,box-shadow .3s}
nav.scrolled{background:var(--white);box-shadow:0 2px 24px rgba(0,0,0,.08);padding:14px 0}
nav.scrolled .nav-links a{color:var(--sub)}
nav.scrolled .nav-links a:hover,nav.scrolled .nav-links a.active{color:var(--teal)}
nav.scrolled .nav-logo-white{display:none}
nav.scrolled .nav-logo-dark{display:block !important}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.nav-logo img{height:32px;width:auto;display:block}
.nav-logo-dark{display:none}
.nav-links{display:flex;align-items:center;gap:30px;list-style:none}
.nav-links a{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);text-decoration:none;letter-spacing:.06em;text-transform:uppercase;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
nav.scrolled .nav-links a.active{color:var(--teal)}
.nav-cta{padding:12px 22px;font-size:11px}
nav .nav-cta{background:var(--white);color:var(--text)}
nav.scrolled .nav-cta{background:var(--teal);color:var(--white)}
nav .nav-cta:hover{background:rgba(255,255,255,.9);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}
nav.scrolled .nav-cta:hover{background:#008a7b}
.nav-mobile-btn{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px}
.nav-mobile-btn span{width:22px;height:2px;background:var(--white);display:block;transition:all .3s}
nav.scrolled .nav-mobile-btn span{background:var(--text)}
.mobile-menu{display:none;position:fixed;inset:0;background:var(--white);z-index:199;padding:100px 40px 40px;flex-direction:column;gap:24px}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:22px;font-weight:700;color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:20px;letter-spacing:-.01em}
.mobile-menu a:hover{color:var(--teal)}

/* SECTION HEADERS */
.section-header{max-width:600px;margin-bottom:68px}
.section-header.center{max-width:680px;margin:0 auto 68px;text-align:center}
.section-title{font-size:clamp(28px,3.2vw,46px);font-weight:800;line-height:1.08;letter-spacing:-.03em;margin-bottom:16px;color:var(--text)}
.section-sub{font-size:17px;color:var(--sub);line-height:1.75;font-weight:400}

/* PAGE HERO (inner pages — white bg) */
.page-hero{padding:160px 0 90px;position:relative;overflow:hidden;background:var(--white);border-bottom:1px solid var(--border)}
.page-hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 70% 50%,rgba(0,168,150,.07) 0%,transparent 60%);pointer-events:none}
.page-hero-tag{display:inline-flex;align-items:center;gap:8px;background:var(--teal-light);border:1px solid var(--teal-border);border-radius:40px;padding:7px 16px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:24px}
.page-hero h1{font-size:clamp(38px,4.5vw,64px);font-weight:900;line-height:1.06;letter-spacing:-.04em;margin-bottom:20px;color:var(--text)}
.page-hero p{font-size:18px;color:var(--sub);line-height:1.75;max-width:560px;font-weight:400}

/* CLIENTS STRIP — scrolling marquee */
.clients-strip{padding:44px 0;border-bottom:1px solid var(--border);background:var(--white);overflow:hidden}
.clients-label{text-align:center;font-size:11px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-bottom:28px;font-weight:600}
.clients-marquee-wrap{overflow:hidden;-webkit-mask:linear-gradient(to right,transparent,black 8%,black 92%,transparent);mask:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}
.clients-marquee{display:flex;align-items:center;width:max-content;animation:marquee 36s linear infinite}
.clients-marquee:hover{animation-play-state:paused}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.client-item{padding:0 36px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;height:56px;opacity:.35;transition:opacity .3s;filter:grayscale(100%);flex-shrink:0}
.client-item:hover{opacity:.75}
.client-item img{height:28px;width:auto;max-width:120px;object-fit:contain;display:block}
/* PHola & Thafiso have dark backgrounds — invert so they read on white */
.logo-invert img{filter:invert(1) grayscale(1)}
.logo-invert:hover img{filter:invert(1) grayscale(0)}
/* Thafiso PNG has tall canvas with lots of padding — bump height */
.logo-thafiso img{height:46px;max-width:96px}
.client-text{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--text);white-space:nowrap;text-transform:uppercase}
/* legacy row fallback */
.clients-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}

/* CTA BAND */
.cta-band{background:var(--text);padding:80px 0;text-align:center;position:relative;overflow:hidden}
.cta-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(0,229,204,.12) 0%,transparent 65%)}
.cta-band h2{font-size:clamp(28px,3vw,44px);font-weight:900;letter-spacing:-.03em;margin-bottom:16px;color:var(--white);position:relative;z-index:1}
.cta-band p{font-size:16px;color:rgba(255,255,255,.6);max-width:480px;margin:0 auto 36px;line-height:1.7;position:relative;z-index:1}
.cta-band .teal{color:var(--teal-bright)}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.cta-band .btn-primary{background:var(--teal);color:var(--white)}

/* FOOTER */
footer{background:var(--offwhite);border-top:1px solid var(--border);padding:64px 0 40px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px;margin-bottom:48px}
.footer-logo img{height:28px;width:auto;margin-bottom:16px;display:block}
.footer-tagline{font-size:14px;color:var(--sub);line-height:1.7;max-width:240px;margin-bottom:22px}
.footer-contact a{display:block;font-size:13px;color:var(--sub);text-decoration:none;margin-bottom:6px;transition:color .2s}
.footer-contact a:hover{color:var(--teal)}
.footer-col-title{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.footer-nav-links{list-style:none;display:flex;flex-direction:column;gap:9px}
.footer-nav-links a{font-size:14px;color:var(--sub);text-decoration:none;transition:color .2s;font-weight:500}
.footer-nav-links a:hover{color:var(--teal)}
.footer-address{font-size:13px;color:var(--muted);line-height:1.8}
.footer-address strong{color:var(--sub);display:block;margin-top:12px;margin-bottom:2px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.footer-address strong:first-child{margin-top:0}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:28px;border-top:1px solid var(--border);flex-wrap:wrap;gap:14px}
.footer-copy{font-size:12px;color:var(--muted);font-weight:500}
.social-row{display:flex;gap:20px}
.social-row a{font-size:12px;color:var(--muted);text-decoration:none;transition:color .2s;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.social-row a:hover{color:var(--teal)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* FAQ */
.faq-item{background:var(--white);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.faq-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:transparent;border:none;cursor:pointer;text-align:left;gap:16px}
.faq-q-text{font-size:14px;font-weight:700;color:var(--text);line-height:1.4}
.faq-ico{width:28px;height:28px;border-radius:50%;background:var(--teal-light);border:1px solid var(--teal-border);display:flex;align-items:center;justify-content:center;color:var(--teal);font-size:16px;flex-shrink:0;transition:transform .3s,background .3s,color .3s}
.faq-item.open .faq-ico{transform:rotate(45deg);background:var(--teal);color:var(--white);border-color:var(--teal)}
.faq-body{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;padding:0 24px}
.faq-item.open .faq-body{max-height:300px;padding:0 24px 20px}
.faq-body p{font-size:13.5px;color:var(--sub);line-height:1.75}

/* RESPONSIVE */
@media(max-width:980px){
  .nav-links,.nav-cta{display:none}
  .nav-mobile-btn{display:flex}
  .footer-top{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .container{padding:0 20px}
  .footer-top{grid-template-columns:1fr}
  .client-item{padding:0 20px}
}
