:root{
  --blue:#2563eb;
  --navy:#10254a;
  --text:#5d7390;
  --light:#f5f9fd;
  --border:#dce5ef;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:105px;
}

body{
  margin:0;
  color:#111827;
  background:#fff;
  font-family:Arial,sans-serif;
}

img{
  display:block;
  max-width:100%;
}

a{
  color:var(--navy);
  font-weight:700;
  text-decoration:none;
}

p{
  color:var(--text);
  line-height:1.7;
}

h1,
h2,
h3{
  margin-top:0;
}

h1{
  max-width:760px;
  margin-bottom:25px;
  font-size:clamp(3rem,5vw,5.2rem);
  line-height:1;
  letter-spacing:-.055em;
}

h2{
  font-size:clamp(2.3rem,4vw,4rem);
  line-height:1.05;
  letter-spacing:-.04em;
}

h1 span{
  display:block;
  color:var(--blue);
}

.accent{
  color:var(--blue);
}

section{
  padding:105px 0;
}

.wrap{
  width:min(90%,1150px);
  margin:auto;
}

.label{
  margin-bottom:18px;
  color:var(--blue);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.15em;
}

.btn{
  display:inline-block;
  padding:14px 22px;
  border-radius:6px;
  color:#fff;
  background:var(--blue);
}


/* Navigation */

nav{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  border-bottom:1px solid #edf1f5;
}

nav .wrap{
  position:relative;
  height:105px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

nav img{
  width:245px;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:30px;
}

.nav-links a{
  font-size:.88rem;
}

.nav-phone{
  padding:10px 14px;
  color:var(--blue);
  border:1px solid var(--blue);
  border-radius:6px;
}

.menu-btn{
  display:none;
  width:42px;
  height:42px;
  padding:8px;
  border:0;
  background:none;
  cursor:pointer;
}

.menu-btn span{
  display:block;
  width:25px;
  height:2px;
  margin:5px auto;
  background:var(--navy);
  transition:.2s;
}


/* Hero */

.hero{
  min-height:545px;
  display:flex;
  align-items:center;
  padding:75px 0 85px;

  background:
    linear-gradient(
      180deg,
      #fff,
      #fbfcfe 65%,
      #fff
    );
}

.hero-grid{
  display:grid;
  grid-template-columns:1.45fr .75fr;
  gap:100px;
  align-items:center;
}

.hero-text{
  max-width:570px;
  font-size:1.05rem;
}

.actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
  margin-top:28px;
}

.phone-link{
  display:inline-block;
  margin-top:22px;
  color:var(--text);
  font-size:.88rem;
  font-weight:600;
}

.hero-details{
  padding-left:38px;
  border-left:1px solid var(--border);
}

.detail-label{
  margin:0 0 28px;
  color:var(--blue);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.13em;
}

.detail{
  margin-bottom:27px;
}

.detail:last-child{
  margin-bottom:0;
}

.detail h3{
  margin-bottom:6px;
  color:var(--navy);
  font-size:1rem;
}

.detail p{
  max-width:300px;
  margin:0;
  font-size:.87rem;
  line-height:1.6;
}


/* Headings */

header{
  max-width:760px;
  margin-bottom:55px;
}


/* Websites */

#websites{
  padding-top:70px;
}

.designs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.designs article{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
}

.designs img,
.placeholder{
  width:100%;
  height:230px;
  object-fit:cover;
}

.placeholder{
  display:grid;
  place-items:center;
  color:var(--navy);
  background:#dce8f5;
  font-weight:700;
}

.designs article>div:last-child{
  padding:25px;
}

.designs small{
  color:var(--blue);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
}

.designs h3{
  margin:10px 0;
  color:var(--navy);
  font-size:1.3rem;
}

.designs p{
  font-size:.92rem;
}

.soon{
  color:#8295ad;
  font-size:.85rem;
  font-weight:700;
}


/* About */

.light{
  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(37,99,235,.05),
      transparent 30%
    ),
    #fafcff;
}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.about-heading{
  max-width:520px;
}

.about-text{
  max-width:500px;
  padding-top:25px;
}

.about-text p:first-child{
  color:var(--navy);
  font-size:1.2rem;
  font-weight:600;
}

.feature-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px 70px;
  margin-top:75px;
}

.feature{
  display:grid;
  grid-template-columns:6px 1fr;
  gap:18px;
}

.feature>span{
  width:3px;
  height:38px;
  border-radius:5px;

  background:
    linear-gradient(
      var(--blue),
      #9fc4f5
    );
}

.feature h3{
  margin:0 0 9px;
  color:var(--navy);
  font-size:1.05rem;
}

.feature p{
  max-width:390px;
  margin:0;
  font-size:.92rem;
}


/* Process */

.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:55px;
  padding-top:45px;
  border-top:1px solid var(--border);
}

.steps b{
  color:var(--blue);
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.steps h3{
  margin:20px 0 10px;
  color:var(--navy);
}


/* Contact */

.cta{
  background:var(--light);
}

.cta .wrap{
  max-width:760px;
}

.cta p:not(.label){
  max-width:550px;
  margin-bottom:30px;
}

.call-btn{
  color:var(--navy);
}


/* Footer */

footer{
  padding:70px 0 25px;
  background:#eef4fa;
}

footer .wrap{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:80px;
}

footer img{
  width:125px;
  margin-bottom:20px;
}

footer .wrap>div:not(:first-child){
  display:flex;
  flex-direction:column;
  gap:12px;
}

footer b{
  color:var(--navy);
}

footer a,
footer p{
  font-size:.9rem;
}

footer .wrap>div:first-child p{
  max-width:300px;
}

.copyright{
  width:min(90%,1150px);
  margin:45px auto 0;
  padding-top:20px;
  border-top:1px solid var(--border);
  text-align:center;
  font-size:.8rem;
}


/* Tablet & Phone */

@media(max-width:800px){

  html{
    scroll-padding-top:85px;
  }

  section{
    padding:80px 0;
  }

  nav .wrap{
    height:85px;
  }

  nav img{
    width:180px;
  }

  .menu-btn{
    display:block;
  }

  .nav-links{
    position:absolute;
    top:85px;
    right:0;
    width:250px;

    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;

    padding:10px;

    background:#fff;
    border:1px solid var(--border);
    border-radius:8px;
    box-shadow:0 12px 30px rgba(16,37,74,.12);
  }

  .nav-links.open{
    display:flex;
  }

  .nav-links a{
    padding:14px 15px;
    font-size:.9rem;
  }

  .nav-phone{
    margin-top:5px;
    text-align:center;
  }

  .menu-btn.open span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  .menu-btn.open span:nth-child(2){
    opacity:0;
  }

  .menu-btn.open span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }

  .hero{
    min-height:auto;
    padding:70px 0;
  }

  .hero-grid{
    grid-template-columns:1fr;
    gap:55px;
  }

  .hero-details{
    padding:30px 0 0;
    border-left:0;
    border-top:1px solid var(--border);
  }

  .detail p{
    max-width:500px;
  }

  .designs,
  .split,
  .feature-grid,
  .steps,
  footer .wrap{
    grid-template-columns:1fr;
  }

  .designs{
    gap:20px;
  }

  .split{
    gap:30px;
  }

  .feature-grid{
    gap:35px;
    margin-top:55px;
  }

  .steps{
    gap:40px;
  }

  footer .wrap{
    gap:45px;
  }
}


/* Small Phones */

@media(max-width:560px){

  nav img{
    width:155px;
  }

  h1{
    font-size:clamp(2.7rem,12vw,4rem);
  }

  h2{
    font-size:clamp(2rem,10vw,3rem);
  }

  .actions{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }

  .hero-details{
    display:none;
  }

  .hero{
    padding:65px 0;
  }

  #websites{
    padding-top:65px;
  }
}
