
@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@400;500;600;700;800;900&display=swap');

:root{
  --c21-blue:#155fe8;
  --c21-blue-2:#5f8ff4;
  --c21-blue-3:#dcecff;
  --c21-blue-dark:#092d78;
  --c21-yellow:#ffc52c;
  --c21-yellow-soft:#fff1bc;
  --c21-green:#28aa70;
  --c21-green-soft:#eaf8f0;
  --c21-pink:#ff7898;
  --c21-pink-soft:#fff0f4;
  --c21-bg:#ffffff;
  --c21-soft:#f8fbff;
  --c21-text:#173366;
  --c21-muted:#667793;
  --c21-line:#e4ebf4;
  --c21-shadow:0 18px 48px rgba(37,85,155,.09);
  --c21-radius:28px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:#fff;
  color:var(--c21-text);
  font-family:'Nunito',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

a{
  color:inherit;
  text-decoration:none;
}

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

button,
input{
  font:inherit;
}

.container{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(227,235,246,.8);
}

.navbar{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand{
  flex:0 0 auto;
}

.brand img{
  width:235px;
  max-height:64px;
  object-fit:contain;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:31px;
  margin-left:auto;
}

.nav-links a{
  font-size:14px;
  font-weight:700;
  color:#17346d;
  position:relative;
  padding:30px 0 27px;
}

.nav-links a::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:18px;
  width:0;
  height:3px;
  border-radius:999px;
  background:var(--c21-yellow);
  transform:translateX(-50%);
  transition:.18s ease;
}

.nav-links a:hover::after,
.nav-links a.active::after{
  width:34px;
}

.nav-login{
  min-height:46px;
  padding:0 18px !important;
  border-radius:13px;
  background:linear-gradient(180deg,#2c70ec,#155fe8);
  color:#fff!important;
  display:inline-flex;
  align-items:center;
  gap:9px;
  box-shadow:0 9px 20px rgba(21,95,232,.20);
}

.nav-login::after{
  display:none!important;
}

.nav-login svg{
  width:20px;
  height:20px;
}

.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  border:1px solid var(--c21-line);
  border-radius:12px;
  background:#fff;
  color:var(--c21-blue-dark);
  cursor:pointer;
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
  padding:42px 0 34px;
  background:
    radial-gradient(circle at 88% 20%,rgba(228,240,255,.75),transparent 30%),
    linear-gradient(180deg,#fff 0%,#fff 100%);
}

.hero::before{
  content:"";
  position:absolute;
  width:450px;
  height:450px;
  right:-170px;
  top:25px;
  border-radius:50%;
  background:rgba(218,234,255,.38);
  filter:blur(2px);
}

.hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:38px;
  align-items:center;
}

.hero-copy{
  padding:12px 0 25px;
}

.hero-title{
  margin:0 0 20px;
  max-width:545px;
  color:#12316f;
  font-family:'Baloo 2','Nunito',sans-serif;
  font-size:57px;
  line-height:.96;
  letter-spacing:-1.5px;
  font-weight:800;
}

.hero-title .soft-blue{
  color:#5e8ae9;
}

.hero-lead{
  margin:0 0 27px;
  max-width:500px;
  color:#536684;
  font-size:17px;
  line-height:1.58;
  font-weight:500;
}

.hero-features{
  display:grid;
  gap:17px;
  margin-bottom:27px;
}

.hero-feature{
  display:flex;
  gap:15px;
  align-items:flex-start;
}

.feature-circle{
  flex:0 0 51px;
  width:51px;
  height:51px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#aac8ff,#789ff3);
  color:#fff;
  box-shadow:0 8px 20px rgba(94,139,234,.16);
}

.hero-feature:nth-child(2) .feature-circle{
  background:linear-gradient(145deg,#ffd658,#ffbd1f);
}

.feature-circle svg{
  width:25px;
  height:25px;
}

.hero-feature h3{
  margin:2px 0 4px;
  font-size:16px;
  font-weight:900;
  color:#17366f;
}

.hero-feature p{
  margin:0;
  color:#64758f;
  font-size:13px;
  line-height:1.48;
}

.hero-buttons{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.btn{
  min-height:54px;
  border-radius:14px;
  padding:0 17px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  border:1px solid transparent;
  font-weight:800;
  font-size:14px;
  transition:.18s ease;
}

.btn:hover{
  transform:translateY(-1px);
}

.btn svg{
  width:23px;
  height:23px;
}

.btn-primary{
  min-width:210px;
  background:linear-gradient(180deg,#3677ee,#1c64e7);
  color:#fff;
  box-shadow:0 10px 22px rgba(21,95,232,.18);
}

.btn-outline{
  min-width:205px;
  background:#fff;
  color:#2c68d9;
  border-color:#8db1fb;
}

.btn small{
  display:block;
  font-size:11px;
  font-weight:600;
  margin-top:2px;
  opacity:.88;
}

/* Hero visual */
.hero-visual{
  position:relative;
  min-height:620px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.hero-blob{
  position:absolute;
  inset:16px 8px 18px 12px;
  border-radius:42% 28% 45% 33% / 35% 42% 30% 46%;
  background:
    radial-gradient(circle at 20% 28%,rgba(255,255,255,.52) 0 4px,transparent 5px),
    radial-gradient(circle at 85% 22%,rgba(104,151,240,.35) 0 4px,transparent 5px),
    linear-gradient(145deg,#edf5ff,#dfeeff);
}

.hero-blob::before,
.hero-blob::after{
  content:"";
  position:absolute;
  border-radius:50%;
}

.hero-blob::before{
  width:14px;
  height:14px;
  left:9%;
  top:20%;
  background:#b8d2ff;
}

.hero-blob::after{
  width:9px;
  height:9px;
  right:8%;
  bottom:20%;
  background:#8fb4fb;
}

.hero-product{
  position:relative;
  z-index:2;
  width:100%;
  height:610px;
  object-fit:cover;
  object-position:center center;
  border-radius:36px;
  mix-blend-mode:multiply;
  filter:saturate(.98) contrast(.98);
}

.float-heart{
  position:absolute;
  z-index:4;
  width:37px;
  height:37px;
  color:var(--c21-yellow);
}

.float-heart.h1{
  left:1%;
  top:32%;
}

.float-heart.h2{
  left:45%;
  bottom:16%;
  color:#7aa2ef;
}

/* =========================================================
   BENEFITS
   ========================================================= */
.benefits-section{
  padding:16px 0 44px;
}

.section-title{
  margin:0 auto 22px;
  text-align:center;
  max-width:650px;
  font-family:'Baloo 2','Nunito',sans-serif;
  font-size:30px;
  line-height:1.1;
  font-weight:800;
  color:#17366f;
}

.section-title span{
  color:#5f8ff4;
}

.benefits{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.benefit-card{
  min-height:245px;
  padding:24px 20px 20px;
  border:1px solid #e5ebf4;
  border-radius:20px;
  background:#fff;
  text-align:center;
  box-shadow:0 8px 26px rgba(39,78,134,.045);
}

.benefit-icon{
  width:78px;
  height:78px;
  margin:0 auto 14px;
  border-radius:33px 45px 34px 42px;
  display:grid;
  place-items:center;
  background:#fff2c9;
}

.benefit-card:nth-child(2) .benefit-icon{
  background:#eaf3ff;
}

.benefit-card:nth-child(3) .benefit-icon{
  background:#eaf8f0;
}

.benefit-card:nth-child(4) .benefit-icon{
  background:#fff0f4;
}

.benefit-icon svg{
  width:43px;
  height:43px;
}

.benefit-card h3{
  margin:0 0 8px;
  color:#17366f;
  font-size:15px;
  font-weight:900;
}

.benefit-card p{
  margin:0;
  color:#687892;
  font-size:12px;
  line-height:1.55;
}

/* =========================================================
   HOW
   ========================================================= */
.how-section{
  padding:10px 0 34px;
}

.how-shell{
  position:relative;
  overflow:hidden;
  border-radius:31px;
  padding:22px 34px 30px;
  background:
    radial-gradient(circle at 10% 85%,rgba(255,213,84,.3),transparent 25%),
    radial-gradient(circle at 88% 15%,rgba(255,224,115,.18),transparent 26%),
    linear-gradient(180deg,#fffdf7,#fffaf0);
  border:1px solid #f5ecd4;
}

.how-shell::before{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  left:-80px;
  bottom:-110px;
  border-radius:50%;
  background:#ffdf76;
  opacity:.65;
}

.how-title{
  margin:0 0 20px;
  text-align:center;
  font-family:'Baloo 2','Nunito',sans-serif;
  font-size:31px;
  font-weight:800;
  color:#17366f;
}

.steps{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.step{
  text-align:center;
  padding:6px 14px 14px;
}

.step-visual{
  min-height:114px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:8px;
  position:relative;
}

.step-visual img{
  max-height:105px;
  max-width:170px;
  object-fit:contain;
  border-radius:18px;
}

.step-icon{
  width:76px;
  height:76px;
  border-radius:25px;
  display:grid;
  place-items:center;
  background:#eaf3ff;
  color:#2a69df;
  box-shadow:0 10px 24px rgba(67,108,177,.08);
}

.step-icon svg{
  width:39px;
  height:39px;
}

.step-number{
  position:absolute;
  left:24%;
  top:1px;
  width:31px;
  height:31px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#2b69dd;
  color:#fff;
  font-weight:900;
  box-shadow:0 5px 12px rgba(39,96,201,.18);
}

.step p{
  margin:0 auto;
  max-width:245px;
  color:#556985;
  font-size:12px;
  line-height:1.55;
  font-weight:600;
}

/* =========================================================
   CTA
   ========================================================= */
.final-cta{
  padding:10px 0 60px;
}

.cta-card{
  position:relative;
  min-height:135px;
  overflow:hidden;
  border-radius:27px;
  background:linear-gradient(110deg,#5889ef,#5d8ff0 58%,#6e98ef);
  display:grid;
  grid-template-columns:220px 1fr auto;
  align-items:center;
  gap:24px;
  padding:0 30px 0 0;
  color:#fff;
  box-shadow:0 18px 34px rgba(46,91,174,.13);
}

.cta-photo-wrap{
  align-self:stretch;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}

.cta-photo{
  width:220px;
  height:150px;
  object-fit:cover;
  object-position:center top;
  mix-blend-mode:multiply;
}

.cta-text h2{
  margin:0;
  font-family:'Baloo 2','Nunito',sans-serif;
  font-size:28px;
  line-height:1.05;
  font-weight:700;
}

.cta-text h2 span{
  color:#ffe067;
}

.cta-action{
  text-align:center;
}

.btn-yellow{
  min-width:220px;
  background:#ffd95e;
  color:#17366f;
  border-color:#f5c932;
  box-shadow:0 8px 18px rgba(68,83,130,.12);
}

.cta-action small{
  display:block;
  margin-top:7px;
  color:#edf4ff;
  font-size:11px;
  font-weight:700;
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  padding:30px 0 34px;
  background:#f9fbff;
  border-top:1px solid #e8eef6;
}

.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.footer img{
  width:180px;
}

.footer p{
  margin:0;
  color:#7a88a0;
  font-size:12px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1000px){
  .hero-grid{
    grid-template-columns:1fr;
  }

  .hero-copy{
    max-width:720px;
  }

  .hero-title{
    max-width:680px;
  }

  .hero-visual{
    min-height:540px;
  }

  .hero-product{
    height:530px;
  }

  .benefits{
    grid-template-columns:repeat(2,1fr);
  }

  .cta-card{
    grid-template-columns:180px 1fr;
    padding-right:22px;
  }

  .cta-action{
    grid-column:2;
    text-align:left;
    padding-bottom:18px;
  }
}

@media(max-width:780px){
  .navbar{
    min-height:72px;
  }

  .brand img{
    width:185px;
  }

  .menu-toggle{
    display:grid;
    place-items:center;
  }

  .nav-links{
    position:absolute;
    top:72px;
    left:14px;
    right:14px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:12px;
    border:1px solid #e5ecf6;
    border-radius:16px;
    background:#fff;
    box-shadow:var(--c21-shadow);
  }

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

  .nav-links a{
    padding:12px 10px;
  }

  .nav-links a::after{
    display:none;
  }

  .nav-login{
    margin-top:4px;
  }

  .hero{
    padding-top:27px;
  }

  .hero-title{
    font-size:43px;
  }

  .hero-lead{
    font-size:15px;
  }

  .hero-visual{
    min-height:430px;
  }

  .hero-product{
    height:420px;
  }

  .steps{
    grid-template-columns:1fr;
  }

  .benefits{
    grid-template-columns:1fr;
  }

  .cta-card{
    grid-template-columns:1fr;
    padding:22px;
    text-align:center;
  }

  .cta-photo-wrap{
    display:none;
  }

  .cta-action{
    grid-column:auto;
    padding-bottom:0;
    text-align:center;
  }

  .footer-row{
    flex-direction:column;
    text-align:center;
  }
}

@media(max-width:520px){
  .container{
    width:min(100% - 26px,1180px);
  }

  .hero-title{
    font-size:37px;
  }

  .hero-buttons{
    flex-direction:column;
  }

  .btn-primary,
  .btn-outline{
    width:100%;
  }

  .hero-visual{
    min-height:330px;
  }

  .hero-product{
    height:320px;
    border-radius:24px;
  }

  .section-title,
  .how-title{
    font-size:26px;
  }

  .how-shell{
    padding-left:18px;
    padding-right:18px;
  }

  .cta-text h2{
    font-size:25px;
  }

  .btn-yellow{
    width:100%;
  }
}
