*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:132px}
body{margin:0;color:#201020;font-family:Georgia,"Times New Roman",serif;background:#fff;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
.container{width:min(1160px,92%);margin:auto}

:root{
  --brand:#10a0e0;
  --brand-dark:#201020;
  --brand-deep:#0b7fb4;
  --brand-soft:#eef9fe;
  --text:#201020;
  --muted:#5f6870;
  --line:#dce8ee;
}

.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:#fff;box-shadow:0 2px 15px rgba(32,16,32,.10);font-family:Arial,Helvetica,sans-serif}
.topbar{height:82px;background:#fff}
.top-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{width:245px;height:58px;object-fit:contain;object-position:left center}
.quick-info{display:flex;align-items:center;gap:30px;color:#5f6870;font-size:11px}
.quick-info>div{display:flex;gap:9px;align-items:center}
.quick-info small{display:block;color:#84909a;font-size:7px;letter-spacing:1px;margin-bottom:3px}
.quick-info b{font-size:12px;color:var(--brand-dark)}
.ico{width:24px;height:24px;display:inline-flex;color:var(--brand);flex:0 0 24px}
.ico svg,.service-icon svg,.contact-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.navrow{height:50px;border-top:1px solid #edf0f2;background:#fff}
.nav-inner{height:50px;display:flex;align-items:center;gap:18px;position:relative}
nav{display:flex;gap:28px;flex:1}
nav a{font-size:11px;color:#201020;font-weight:800;letter-spacing:.25px;white-space:nowrap}
nav a:first-child{color:var(--brand-deep)}
nav a:hover{color:var(--brand)}
.request{background:var(--brand);color:#fff;padding:11px 22px;border-radius:22px;font:800 10px Arial;letter-spacing:.2px;white-space:nowrap}
.request:hover{background:var(--brand-deep)}
.menu{display:none;background:none;border:0;font-size:27px;line-height:1;color:var(--brand-deep);cursor:pointer;padding:6px}

.hero{height:min(68vh,760px);min-height:500px;margin-top:132px;position:relative;overflow:hidden;background:#201020}
.hero-slides,.hero-slide{position:absolute;inset:0;width:100%;height:100%}
.hero-slide{object-fit:cover;object-position:center;opacity:0;transition:opacity 1s ease}
.hero-slide.active{opacity:1}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,16,32,.10),rgba(32,16,32,0),rgba(32,16,32,.08));pointer-events:none}
.hero-dots{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:8px;z-index:3}
.hero-dot{width:10px;height:10px;padding:0;border:1px solid rgba(255,255,255,.9);border-radius:50%;background:transparent;cursor:pointer}
.hero-dot.active{background:var(--brand);border-color:var(--brand)}

section{position:relative}
.section-head{max-width:820px;margin-bottom:26px}
.section-head h2{font:800 38px/1.15 Arial,Helvetica,sans-serif;letter-spacing:.6px;text-transform:uppercase;margin:0;color:var(--brand-dark);position:relative;padding-bottom:14px}
.section-head h2::after{content:"";display:block;width:58px;height:3px;background:var(--brand);margin-top:12px;border-radius:2px}
.section-head.centered h2::after{margin-left:auto;margin-right:auto}
.section-intro{max-width:820px;font:700 14px/1.8 Arial,Helvetica,sans-serif;color:#68737b;letter-spacing:.35px;margin:0 0 42px}
.centered{text-align:center;margin-left:auto;margin-right:auto}
.centered-intro{margin-left:auto;margin-right:auto;text-align:center}

.about{padding:100px 0;background:#fff}
.about-copy{max-width:980px;font:16px/1.85 Arial,Helvetica,sans-serif;color:#5f6870;text-align:justify;text-justify:inter-word}
.about-copy p{margin:0 0 18px}
.about-copy strong{color:var(--brand-dark)}

.services{padding:100px 0;background:linear-gradient(180deg,#f4fbfe 0%,#fff 100%)}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}
.service-grid article{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);padding:22px;min-height:220px;transition:.25s;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.service-grid article:hover{transform:translateY(-5px);box-shadow:0 15px 35px rgba(16,160,224,.14);border-color:#9bdcf7}
.service-icon{width:3cm;height:3cm;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;flex:0 0 3cm}.service-icon img{width:3cm;height:3cm;object-fit:contain}
.service-grid h3{font:800 18px/1.25 Arial,Helvetica,sans-serif;letter-spacing:.4px;margin:25px 0 0;color:var(--brand-dark)}

.clients{padding:100px 0;background:#fff}
.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:45px}
.client-grid div{width:3cm;min-width:3cm;height:3cm;min-height:3cm;margin:0 auto;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;font:800 14px Arial;color:var(--brand-dark);letter-spacing:.5px;transition:.25s;min-width:0}
.client-grid div:hover{border-color:#82d5f4;transform:translateY(-3px);box-shadow:0 10px 25px rgba(16,160,224,.09)}

.contact{padding:100px 0;background:var(--brand-soft)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:75px;align-items:start}
.contact-details{font-family:Arial}
.contact-item{display:flex;gap:17px;padding:18px 0;border-bottom:1px solid #cfe3ec}
.contact-icon{width:34px;height:34px;color:var(--brand);flex:0 0 34px}
.contact-details small{display:block;font-size:8px;letter-spacing:1.5px;color:#7a8b96;margin-bottom:6px}
.contact-details b{font-size:15px;line-height:1.65;color:var(--brand-dark)}
.contact-details a:hover b{color:var(--brand-deep)}

.enquiry-form{background:#fff;padding:32px;border:1px solid var(--line);box-shadow:0 14px 40px rgba(32,16,32,.07);font-family:Arial,Helvetica,sans-serif;min-width:0}
.enquiry-form h3{font:800 22px Arial;text-transform:uppercase;letter-spacing:.4px;color:var(--brand-dark);margin:0 0 25px}
.enquiry-form label{display:block;font:800 10px Arial;letter-spacing:1.1px;color:#56636c;margin-bottom:16px}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;max-width:100%;margin-top:7px;padding:13px 14px;border:1px solid #d5e3e9;border-radius:3px;background:#fbfdfe;color:var(--brand-dark);font:14px Arial;outline:none}
.enquiry-form textarea{resize:vertical;min-height:120px}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(16,160,224,.10)}
.submit-btn{border:0;background:var(--brand);color:#fff;padding:14px 20px;border-radius:3px;font:800 11px Arial;letter-spacing:.6px;cursor:pointer;width:100%}
.submit-btn:hover{background:var(--brand-deep)}
.form-note{font:11px/1.5 Arial;color:#7a8790;text-align:center;margin:12px 0 0}

.whatsapp-float{position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;z-index:110;box-shadow:0 8px 22px rgba(0,0,0,.20);transition:.2s}
.whatsapp-float:hover{transform:scale(1.07)}
.whatsapp-float svg{width:31px;height:31px;fill:currentColor}

footer{background:var(--brand-dark);color:#d8e7ef;padding:22px 0;font:11px Arial}
footer .container{display:flex;justify-content:space-between;gap:20px}

/* TABLET */
@media(max-width:1000px){
 .quick-info{gap:16px}
 .quick-info>div:nth-child(1){display:none}
 nav{gap:18px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-grid{gap:40px}
}

/* PHONES AND MOBILE DEVICES
   The pointer/coarse rule also handles phones where Chrome is displaying
   the page at a desktop-style CSS width. */
@media(max-width:700px), (hover:none) and (pointer:coarse) and (max-width:1200px), (max-width:1200px) and (orientation:portrait){
 html{scroll-padding-top:68px}
 .container{width:min(100% - 32px,700px)}
 .topbar{height:68px}
 .top-inner{height:68px}
 .brand img{width:165px;height:50px}
 .quick-info{display:none}
 .navrow{height:0;border:0}
 .nav-inner{height:0}
 nav{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;padding:14px 20px 18px;flex-direction:column;gap:0;border-top:1px solid #edf0f2;box-shadow:0 10px 18px rgba(0,0,0,.08);z-index:101}
 nav.open{display:flex}
 nav a{font-size:13px;padding:12px 0;border-bottom:1px solid #edf0f2}
 nav a:last-child{border-bottom:0}
 .request{display:none}
 .menu{display:block;margin-left:auto;position:absolute;right:0;top:14px}
 .hero{margin-top:68px;height:clamp(280px,70vw,450px);min-height:0}
 .hero-slide{object-position:center}
 .hero-dots{bottom:12px;gap:6px}
 .hero-dot{width:8px;height:8px}
 .about,.services,.clients,.contact{padding:56px 0}
 .section-head{margin-bottom:20px}
 .section-head h2{font-size:28px;line-height:1.15;padding-bottom:10px;letter-spacing:.3px}
 .section-head h2::after{width:48px;height:3px;margin-top:9px}
 .section-intro{font-size:11px;line-height:1.7;letter-spacing:.2px;margin-bottom:28px}
 .about-copy{font-size:15px;line-height:1.75;text-align:justify}
 .about-copy p{margin-bottom:15px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .service-grid article{min-height:190px;padding:16px 10px}
 .service-icon{width:3cm;height:3cm;flex-basis:3cm;margin-bottom:5px}
 .service-icon img{width:3cm;height:3cm}
 .service-grid h3{font-size:13px;line-height:1.25;margin-top:8px;text-align:center}
 .client-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}
 .client-grid div{width:3cm;min-width:3cm;height:3cm;min-height:3cm;padding:8px;font-size:11px;line-height:1.25}
 .contact-grid{grid-template-columns:1fr;gap:26px}
 .contact-item{padding:15px 0}
 .contact-details b{font-size:14px}
 .enquiry-form{padding:24px 18px}
 .enquiry-form h3{font-size:20px;margin-bottom:20px}
 .form-row{grid-template-columns:1fr;gap:0}
 .enquiry-form label{font-size:9px;margin-bottom:14px}
 .enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px;padding:12px}
 .enquiry-form textarea{min-height:110px}
 .whatsapp-float{right:15px;bottom:15px;width:54px;height:54px}
 .whatsapp-float svg{width:29px;height:29px}
 footer .container{display:block;text-align:center;line-height:1.9}
}

/* Very narrow phones */
@media(max-width:380px){
 .container{width:calc(100% - 24px)}
 .brand img{width:145px}
 .section-head h2{font-size:25px}
 .about-copy{font-size:14px}
 .service-grid h3{font-size:13px}
}


/* CLIENT IMAGE CARDS - supplied client images */
.client-grid .client-card{
  width:3cm;
  min-width:3cm;
  height:auto;
  min-height:3cm;
  margin:0 auto;
  padding:8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--line);
  background:#fff;
  text-align:center;
}
.client-grid .client-card img{
  width:3cm;
  height:1cm;
  max-width:3cm;
  max-height:1cm;
  object-fit:fill;
  flex:0 0 auto;
}
.client-grid .client-card span{
  display:block;
  font:800 11px/1.25 Arial,Helvetica,sans-serif;
  color:var(--brand-dark);
  letter-spacing:.3px;
}
.client-grid .client-card:hover{
  border-color:#82d5f4;
  transform:translateY(-3px);
  box-shadow:0 10px 25px rgba(16,160,224,.09);
}

@media(max-width:700px), (hover:none) and (pointer:coarse) and (max-width:1200px), (max-width:1200px) and (orientation:portrait){
  .client-grid .client-card{
    width:3cm;
    min-width:3cm;
    min-height:3cm;
    padding:8px;
  }
  .client-grid .client-card img{
    width:3cm;
    height:1cm;
    max-width:3cm;
    max-height:1cm;
  }
  .client-grid .client-card span{
    font-size:10px;
  }
}
