@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');:root{--teal:#00596b;--deep:#063944;--gold:#dfb61f;--ink:#17272d;--muted:#66757c;--line:#dbe4e7;--soft:#f3f7f8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);line-height:1.6}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.1}h1{font-size:clamp(45px,7vw,82px);letter-spacing:-3px;margin:0 0 20px}h2{font-size:clamp(34px,4.5vw,56px);letter-spacing:-2px;margin:0 0 22px}h3{font-size:20px}.container{width:min(1180px,92%);margin:auto}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:var(--teal);margin:0 0 17px}.light{color:#e1f0f2}.gold{color:var(--gold)}header{position:fixed;z-index:50;left:0;right:0;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid #e7edef}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--teal)}.brand img{width:48px;height:48px;object-fit:contain}.mark{display:none}.brand b{display:block;font:800 15px Manrope;letter-spacing:1px}.brand small{font-size:8px;letter-spacing:1.5px;font-weight:800}.brand i{color:var(--gold);font-style:normal}nav{display:flex;gap:28px}nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:700}.menu{display:none;background:none;border:0;font-size:26px;color:var(--teal)}.hero{min-height:790px;padding:170px 0 80px;position:relative;background:var(--deep);color:white;overflow:hidden}.hero-slides{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.035);transition:opacity 1.2s ease,transform 7s ease}.hero-slide.active{opacity:1;transform:scale(1)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,44,54,.94) 0%,rgba(3,44,54,.68) 48%,rgba(3,44,54,.25) 100%),linear-gradient(0deg,rgba(3,25,31,.48),transparent 45%)}.hero-content{position:relative;z-index:2}.hero-project-caption{position:absolute;z-index:3;left:4%;right:4%;bottom:26px;display:flex;align-items:end;justify-content:space-between;gap:20px}.hero-project-caption span{display:block;font:800 15px Manrope}.hero-project-caption small{display:block;color:#c8d9dc;margin-top:3px}.hero-controls{display:flex;align-items:center;gap:8px}.hero-controls button{width:38px;height:38px;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.2);color:white;font-size:26px;cursor:pointer}.hero-controls button:hover{background:rgba(255,255,255,.16)}#heroDots{display:flex;gap:6px}.hero-dot{width:26px;height:3px;border:0;background:rgba(255,255,255,.35);padding:0;cursor:pointer}.hero-dot.active{background:var(--gold)}.hero h1 span{color:#b8d9de}.hero-content>p:not(.eyebrow){font-size:18px;max-width:700px;color:#d4e3e5}.actions{display:flex;gap:12px;margin:34px 0 58px}.btn{display:inline-block;padding:14px 22px;border-radius:4px;text-decoration:none;font-weight:800}.primary{background:white;color:var(--teal)}.outline{border:1px solid rgba(255,255,255,.45);color:white}.stats{display:flex;gap:55px;padding-top:25px;border-top:1px solid rgba(255,255,255,.25);max-width:850px}.stats strong{font:800 29px Manrope;display:block}.stats span{font-size:12px;color:#bed0d4}.section{padding:105px 0}.two{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.copy{color:#56666d;font-size:16px}.copy p{margin-top:0}.dark-band{background:var(--deep);color:white;padding:100px 0}.light-copy{color:#c9dade}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.chips span{border:1px solid rgba(255,255,255,.18);padding:8px 11px;font-size:12px}.soft{background:var(--soft)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.services>div{padding:32px;background:white;border:1px solid var(--line);min-height:300px}.services .featured{background:var(--teal);color:white}.services b{font:800 12px Manrope;color:var(--gold)}.services p{font-size:14px;color:var(--muted)}.featured p{color:#d3e3e6}.heading{margin-bottom:42px}.heading>p:last-child{color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.project-card{background:white;border:1px solid var(--line);cursor:pointer;transition:.25s;overflow:hidden}.project-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(8,42,49,.12)}.project-image{position:relative;aspect-ratio:1.35/1;overflow:hidden;background:#ddd}.project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:.35s}.project-card:hover .project-image img{transform:scale(1.04)}.project-image span{position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.68);color:#fff;font-size:11px;padding:5px 8px}.project-info{padding:20px}.project-info small{color:var(--gold);font-weight:800}.project-info h3{margin:7px 0;font-size:18px}.project-info p{margin:0 0 13px;color:var(--muted);font-size:13px}.project-info button{border:0;background:none;padding:0;color:var(--teal);font-weight:800;cursor:pointer}.timeline{border-left:2px solid #cad9dd;margin:38px 0 0 9px}.timeline>div{position:relative;padding:0 0 30px 35px}.timeline>div:before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--gold)}.timeline span{font-size:12px;font-weight:800;color:var(--teal)}.timeline h3{margin:5px 0;font-size:19px}.timeline p{margin:0;color:var(--muted);font-size:14px}.commit{padding:105px 0;background:#edf3f5}.commit-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cbd8dc}.commit-grid>div{padding:30px 22px;border-right:1px solid #cbd8dc}.commit-grid>div:last-child{border:0}.commit-grid b{color:var(--gold)}.commit-grid p{color:var(--muted);font-size:14px}.cta{background:var(--teal);color:white;padding:80px 0}.cta-flex{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta p:last-child{color:#cfe0e3}.contact{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-details{border-top:2px solid var(--teal)}.contact-details a{display:block;text-decoration:none;color:var(--ink);font-weight:800;padding:18px 0;border-bottom:1px solid var(--line)}.contact-details small{display:block;color:var(--muted);font-size:10px;letter-spacing:1.5px}.map{display:inline-block;margin-top:12px;color:var(--teal);font-weight:800;text-decoration:none}footer{background:#092e38;color:#d5e5e8;padding:35px 0}footer .container{display:flex;gap:22px;align-items:center}footer b{font:800 14px Manrope}footer span,footer small{font-size:10px;color:#91adb2}footer small{margin-left:auto}.modal{position:fixed;inset:0;z-index:100;display:none}.modal.open{display:block}.backdrop{position:absolute;inset:0;background:rgba(3,19,23,.94);backdrop-filter:blur(7px)}.modal-box{position:relative;width:min(1200px,94vw);height:min(94vh,900px);margin:3vh auto;background:#081f25;color:white;padding:25px;display:flex;flex-direction:column}.close{position:absolute;right:18px;top:10px;border:0;background:none;color:white;font-size:38px;cursor:pointer;z-index:3}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 45px 15px 5px}.modal-head small{color:var(--gold);font-weight:800}.modal-head h2{font-size:27px;margin:3px 0}.modal-head p{margin:0;color:#a8c0c5;font-size:13px}.modal-head .note{margin-top:6px;color:#d6e5e8;font-size:12px;max-width:750px}.viewer{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#03161b}.viewer img{max-width:100%;max-height:100%;object-fit:contain}.prev,.next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:70px;border:0;background:rgba(0,0,0,.45);color:white;font-size:50px;cursor:pointer}.prev{left:0}.next{right:0}.thumbs{height:92px;display:flex;gap:9px;overflow-x:auto;padding-top:12px}.thumbs button{border:2px solid transparent;padding:0;background:none;min-width:95px;height:70px;cursor:pointer;opacity:.65}.thumbs button.active{border-color:var(--gold);opacity:1}.thumbs img{width:100%;height:100%;object-fit:cover}@media(max-width:850px){nav{display:none}.menu{display:block}.two,.contact{grid-template-columns:1fr;gap:35px}.services,.project-grid{grid-template-columns:1fr 1fr}.commit-grid{grid-template-columns:1fr 1fr}.stats{gap:25px;flex-wrap:wrap}.cta-flex{flex-direction:column;align-items:flex-start}.modal-box{width:100vw;height:100vh;margin:0;padding:15px}.viewer{margin:0 -15px}.thumbs{height:78px}.thumbs button{min-width:78px;height:60px}}@media(max-width:560px){.services,.project-grid,.commit-grid{grid-template-columns:1fr}.hero{padding-top:135px;min-height:720px}.hero-project-caption{bottom:18px}.hero-controls button{width:34px;height:34px}.hero h1{letter-spacing:-2px}.stats strong{font-size:23px}.stats span{font-size:10px}}
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:80;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:transform .2s ease,box-shadow .2s ease;overflow:hidden}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.28)}
.whatsapp-icon{font-size:30px;font-weight:700;line-height:1;transform:rotate(-18deg)}
.whatsapp-label{position:absolute;right:68px;white-space:nowrap;background:#fff;color:#17343c;font-size:12px;font-weight:800;padding:8px 11px;border-radius:4px;box-shadow:0 6px 20px rgba(0,0,0,.12);opacity:0;transform:translateX(6px);pointer-events:none;transition:.2s ease}
.whatsapp-float:hover .whatsapp-label{opacity:1;transform:translateX(0)}
@media(max-width:560px){.whatsapp-float{right:16px;bottom:16px;width:52px;height:52px}.whatsapp-icon{font-size:27px}.whatsapp-label{display:none}}

/* Mobile layout refinements: prevent hero statistics and slideshow controls from overlapping */
@media (max-width: 560px) {
  .hero {
    min-height: 0;
    padding: 135px 0 28px;
  }
  .hero-content {
    width: 100%;
  }
  .hero h1 {
    font-size: clamp(42px, 11vw, 56px);
    line-height: 1.08;
    letter-spacing: -1.8px;
  }
  .hero-content > p:not(.eyebrow) {
    font-size: 16px;
    line-height: 1.55;
  }
  .actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 24px 0 30px;
  }
  .actions .btn {
    width: 100%;
    text-align: center;
    padding: 13px 16px;
  }
  .stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 14px;
    width: 100%;
    max-width: none;
    padding-top: 20px;
  }
  .stats > div {
    min-width: 0;
  }
  .stats strong {
    display: block;
    font-size: clamp(20px, 6vw, 25px);
    line-height: 1.2;
    white-space: nowrap;
  }
  .stats span {
    display: block;
    font-size: 11px;
    line-height: 1.35;
    margin-top: 4px;
  }
  .hero-project-caption {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin: 24px 4% 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hero-project-caption > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
  }
  .hero-project-caption span {
    font-size: 12px;
    line-height: 1.3;
  }
  .hero-project-caption small {
    font-size: 10px;
    line-height: 1.3;
  }
  .hero-controls {
    flex: 0 0 auto;
    gap: 5px;
  }
  .hero-controls button {
    width: 30px;
    height: 30px;
    font-size: 21px;
  }
  .hero-dot {
    width: 12px;
  }
}

/* Final mobile refinement: keep all three stats and the hero caption in separate flow rows */
@media (max-width: 560px) {
  .hero {
    min-height: 0;
    padding: 128px 0 30px;
  }
  .hero-content .container {
    width: 92%;
  }
  .stats {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 13px;
    margin-top: 28px;
    padding-top: 18px;
    width: 100%;
  }
  .stats > div {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: baseline;
    column-gap: 10px;
    width: 100%;
  }
  .stats strong {
    font-size: 22px;
    line-height: 1.2;
    white-space: nowrap;
  }
  .stats span {
    font-size: 11px;
    line-height: 1.35;
    margin: 0;
  }
  .hero-project-caption {
    position: relative !important;
    inset: auto !important;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    margin: 26px 4% 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,.25);
  }
  .hero-project-caption > div:first-child {
    min-width: 0;
    width: 100%;
  }
  .hero-project-caption span {
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  .hero-project-caption small {
    font-size: 11px;
    line-height: 1.4;
  }
  .hero-controls {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 7px;
    width: 100%;
  }
  .hero-controls button {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
  }
  #heroDots {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .hero-dot {
    width: 17px;
    height: 3px;
  }
}


/* Definitive mobile hero layout fix */
@media screen and (max-width: 560px) {
  .hero {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 158px 0 30px !important;
    overflow: hidden !important;
  }

  .hero-content {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    z-index: 2 !important;
  }

  .hero-content > .container {
    width: 92% !important;
    max-width: none !important;
    margin: 0 auto !important;
  }

  .hero .eyebrow {
    margin-top: 0 !important;
    margin-bottom: 18px !important;
    line-height: 1.45 !important;
  }

  .hero h1 {
    font-size: clamp(40px, 10.5vw, 54px) !important;
    line-height: 1.08 !important;
    letter-spacing: -1.6px !important;
    margin: 0 0 20px !important;
  }

  .hero-content > p:not(.eyebrow) {
    font-size: 16px !important;
    line-height: 1.55 !important;
    margin: 0 !important;
  }

  .hero .actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin: 24px 0 30px !important;
  }

  .hero .actions .btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 12px 9px !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  .hero .stats {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 13px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 20px 0 0 !important;
    border-top: 1px solid rgba(255,255,255,.28) !important;
  }

  .hero .stats > div {
    display: grid !important;
    grid-template-columns: 86px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .hero .stats strong {
    display: block !important;
    white-space: nowrap !important;
    font-size: 23px !important;
    line-height: 1.2 !important;
    margin: 0 !important;
  }

  .hero .stats span {
    display: block !important;
    min-width: 0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    overflow-wrap: normal !important;
  }

  .hero > .hero-project-caption {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 3 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    width: 92% !important;
    margin: 24px auto 0 !important;
    padding: 18px 0 0 !important;
    border-top: 1px solid rgba(255,255,255,.28) !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .hero > .hero-project-caption > div:first-child {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
  }

  .hero-project-caption span {
    display: block !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: 800 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  .hero-project-caption small {
    display: block !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    margin-top: 5px !important;
  }

  .hero .hero-controls {
    display: flex !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    overflow-x: auto !important;
    padding: 0 0 4px !important;
  }

  .hero .hero-controls button {
    display: flex !important;
    flex: 0 0 34px !important;
    width: 34px !important;
    height: 34px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 22px !important;
  }

  .hero #heroDots {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 6px !important;
  }

  .hero #heroDots .hero-dot {
    flex: 0 0 16px !important;
    width: 16px !important;
    height: 4px !important;
  }
}
