:root{
  --blue-50:#eef6ff;
  --blue-100:#dcedff;
  --blue-200:#b9daff;
  --blue-300:#8ec3ff;
  --blue-400:#5aa6ff;
  --blue-500:#2f86f0;
  --blue-600:#1f66c9;
  --blue-700:#194f9c;
  --navy-900:#0b1e35;
  --navy-800:#122a45;
  --ink:#132539;
  --ink-soft:#4d6178;
  --amber-400:#ffb648;
  --amber-500:#ff9e1f;
  --white:#ffffff;
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --shadow-soft:0 20px 45px -20px rgba(31,102,201,0.25);
  --shadow-card:0 10px 30px -12px rgba(19,37,57,0.15);
  --font:'Plus Jakarta Sans', system-ui, -apple-system, Segoe UI, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{margin:0;line-height:1.15;}
p{margin:0;}

.container{
  width:100%;
  max-width:1160px;
  margin:0 auto;
  padding:0 24px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 28px;
  border-radius:999px;
  font-weight:700;
  font-size:0.95rem;
  cursor:pointer;
  border:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.btn-primary{
  background:linear-gradient(135deg,var(--amber-400),var(--amber-500));
  color:var(--navy-900);
  box-shadow:0 12px 24px -10px rgba(255,158,31,0.55);
}
.btn-primary:hover{box-shadow:0 16px 30px -10px rgba(255,158,31,0.7);}
.btn-ghost{
  background:rgba(255,255,255,0.15);
  color:var(--navy-900);
  border:1.5px solid rgba(19,37,57,0.15);
}
.btn-light{background:var(--white);color:var(--blue-700);}
.btn-small{padding:10px 20px;font-size:0.85rem;}
.btn-large{padding:18px 38px;font-size:1.05rem;}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(19,37,57,0.06);
}
.header-inner{
  display:flex;
  align-items:center;
  gap:24px;
  padding-top:16px;
  padding-bottom:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  font-size:1.1rem;
  margin-right:auto;
  white-space:nowrap;
}
.brand-mark{
  width:36px;height:36px;
  border-radius:11px;
  background:linear-gradient(135deg,var(--blue-400),var(--blue-600));
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;
}
.main-nav ul{display:flex;gap:28px;}
.main-nav a{
  font-weight:600;
  font-size:0.95rem;
  color:var(--ink-soft);
}
.main-nav a:hover{color:var(--blue-600);}
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;border:none;cursor:pointer;padding:6px;
}
.nav-toggle span{width:22px;height:2px;background:var(--ink);}

/* Hero */
.hero{
  background:linear-gradient(180deg, var(--blue-50) 0%, var(--blue-100) 60%, var(--white) 100%);
  padding:72px 0 96px;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:center;
}
.eyebrow{
  display:inline-block;
  font-weight:700;
  font-size:0.85rem;
  letter-spacing:.04em;
  color:var(--blue-600);
  background:var(--blue-100);
  padding:8px 16px;
  border-radius:999px;
  margin-bottom:20px;
}
.eyebrow.center{display:block;width:fit-content;margin-left:auto;margin-right:auto;}
.eyebrow.light{background:rgba(255,255,255,0.15);color:#fff;}
h1{
  font-size:clamp(2.3rem, 4vw, 3.4rem);
  font-weight:800;
  letter-spacing:-0.01em;
}
h1 span{display:block;}
h1 .accent{
  color:var(--blue-600);
  background:linear-gradient(90deg,var(--blue-500),var(--blue-700));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero-paragraph{
  margin-top:22px;
  font-size:1.08rem;
  color:var(--ink-soft);
  max-width:520px;
  line-height:1.6;
}
.hero-ctas{
  display:flex;
  gap:16px;
  margin-top:34px;
  flex-wrap:wrap;
}
.hero-badge{
  margin-top:40px;
  display:flex;
  align-items:center;
  gap:14px;
}
.hero-badge strong{
  font-size:1.6rem;
  color:var(--blue-700);
}
.hero-badge span{
  color:var(--ink-soft);
  font-size:0.9rem;
  max-width:220px;
}

.hero-visual{position:relative;height:460px;}
.hero-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 22%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  display:block;
}
.floating-card{
  position:absolute;
  left:50%;
  bottom:-28px;
  transform:translateX(-50%);
  z-index:2;
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:24px 28px;
  width:calc(100% - 56px);
  max-width:320px;
}
.floating-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-weight:700;
  color:var(--ink-soft);
  font-size:0.9rem;
}
.floating-card-top .dot{
  width:10px;height:10px;border-radius:50%;
  background:#2ecc71;
  box-shadow:0 0 0 4px rgba(46,204,113,0.2);
}
.metric-label{margin-top:18px;color:var(--ink-soft);font-size:0.85rem;}
.metric-value{font-size:2.2rem;font-weight:800;color:var(--navy-900);margin-top:4px;}
.metric-change{color:#1fa557;font-weight:700;font-size:0.85rem;margin-top:4px;}
.sparkline{margin-top:18px;}
.sparkline svg{width:100%;height:50px;}
.sparkline polyline{fill:none;stroke:var(--blue-500);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
.floating-card-sub{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(19,37,57,0.08);
  display:flex;
  justify-content:space-between;
  font-size:0.9rem;
  color:var(--ink-soft);
}
.floating-card-sub strong{color:var(--navy-900);}

/* Featured strip */
.featured-strip{padding:36px 0;border-bottom:1px solid rgba(19,37,57,0.06);}
.featured-label{
  text-align:center;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:20px;
}
.featured-list{
  display:flex;
  justify-content:center;
  gap:48px;
  flex-wrap:wrap;
}
.featured-list li{
  font-weight:800;
  font-size:1.1rem;
  color:rgba(19,37,57,0.35);
}

/* Section generic */
.section-heading{
  font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:800;
  margin-top:14px;
}
.section-heading.center{text-align:center;margin-left:auto;margin-right:auto;}
.section-heading.light{color:#fff;}
.section-paragraph{
  margin-top:16px;
  color:var(--ink-soft);
  font-size:1.05rem;
  line-height:1.6;
}
.section-paragraph.center{
  text-align:center;
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
}
.section-cta{
  display:flex;
  justify-content:center;
  margin-top:48px;
}

/* Faceless */
.faceless{padding:100px 0;background:linear-gradient(180deg,#fff,var(--blue-50));}
.faceless-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.faceless-card{
  background:#fff;
  border-radius:var(--radius-md);
  padding:32px;
  box-shadow:var(--shadow-card);
  border:1px solid rgba(19,37,57,0.05);
  text-align:left;
}
.faceless-card h3{font-size:1.1rem;margin-bottom:10px;}
.faceless-card p{color:var(--ink-soft);line-height:1.55;font-size:0.95rem;}

/* Comparison */
.comparison{padding:100px 0;background:var(--blue-50);}
.comparison-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.comparison-card{
  border-radius:var(--radius-lg);
  padding:36px;
}
.comparison-card--other{
  background:#fff;
  border:1.5px dashed rgba(19,37,57,0.15);
}
.comparison-card--nova{
  background:linear-gradient(160deg,var(--blue-600),var(--blue-700));
  color:#fff;
  box-shadow:var(--shadow-soft);
}
.comparison-card h3{font-size:1.3rem;margin-bottom:24px;}
.comparison-card ul li{
  padding:12px 0 12px 32px;
  position:relative;
  font-weight:600;
  border-bottom:1px solid rgba(19,37,57,0.08);
}
.comparison-card--nova ul li{border-bottom:1px solid rgba(255,255,255,0.15);}
.comparison-card ul li:last-child{border-bottom:none;}
.comparison-card ul li.x::before{
  content:"\2715";
  position:absolute;left:0;top:12px;
  color:#e0575f;
  font-weight:800;
}
.comparison-card ul li.check::before{
  content:"\2713";
  position:absolute;left:0;top:12px;
  color:var(--amber-400);
  font-weight:800;
}

/* Services */
.services{padding:100px 0;}
.services-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.service-card{
  background:#fff;
  border-radius:var(--radius-md);
  padding:32px;
  box-shadow:var(--shadow-card);
  border:1px solid rgba(19,37,57,0.05);
  transition:transform .2s ease, box-shadow .2s ease;
}
.service-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -16px rgba(19,37,57,0.2);}
.service-icon{
  width:52px;height:52px;
  border-radius:14px;
  background:var(--blue-100);
  color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:20px;
}
.service-card h3{font-size:1.15rem;margin-bottom:12px;}
.service-card p{color:var(--ink-soft);line-height:1.55;font-size:0.95rem;}

/* Steps */
.steps{
  padding:100px 0;
  background:linear-gradient(160deg,var(--navy-900),var(--blue-700));
  background-size:cover;
  background-position:center;
}
.steps-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.step-card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:var(--radius-md);
  padding:32px;
  color:#fff;
}
.step-number{
  font-size:2.2rem;
  font-weight:800;
  color:var(--amber-400);
  margin-bottom:14px;
}
.step-card h3{font-size:1.2rem;margin-bottom:10px;}
.step-card p{color:rgba(255,255,255,0.75);line-height:1.6;font-size:0.95rem;}

/* Calculator */
.calculator{padding:100px 0;}
.calculator-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
}
.calculator-card{
  background:var(--blue-50);
  border-radius:var(--radius-lg);
  padding:36px;
  box-shadow:var(--shadow-card);
}
.calc-field{
  display:block;
  margin-bottom:26px;
}
.calc-field span{
  display:block;
  font-weight:700;
  margin-bottom:10px;
  color:var(--ink);
}
.calc-field input[type=range]{
  width:100%;
  accent-color:var(--blue-600);
}
.calc-field output{
  display:block;
  margin-top:8px;
  font-weight:700;
  color:var(--blue-700);
}
.calc-result{
  background:#fff;
  border-radius:var(--radius-md);
  padding:22px;
  text-align:center;
  margin-top:10px;
}
.calc-result span{display:block;color:var(--ink-soft);font-size:0.9rem;margin-bottom:8px;}
.calc-result strong{font-size:2.2rem;color:var(--blue-700);}
.calc-disclaimer{margin-top:16px;font-size:0.8rem;color:var(--ink-soft);text-align:center;}

/* Testimonials */
.testimonials{padding:100px 0;background:var(--blue-50);}
.testimonials-grid{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:24px;
}
.testimonial-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:36px 32px;
  box-shadow:var(--shadow-card);
  text-align:center;
}
.testimonial-photo{
  width:76px;
  height:76px;
  border-radius:50%;
  object-fit:cover;
  margin:0 auto 20px;
  box-shadow:0 0 0 4px var(--blue-100);
}
.testimonial-quote{
  font-size:1.05rem;
  line-height:1.6;
  font-weight:600;
  color:var(--ink);
}
.testimonial-stats{
  display:flex;
  justify-content:center;
  gap:40px;
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid rgba(19,37,57,0.08);
}
.testimonial-stats div strong{
  display:block;
  font-size:1.8rem;
  color:var(--blue-600);
}
.testimonial-stats div span{color:var(--ink-soft);font-size:0.85rem;}

/* FAQ */
.faq{padding:100px 0;}
.faq-list{
  margin-top:48px;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.faq-item{
  background:var(--blue-50);
  border:1px solid rgba(19,37,57,0.06);
  border-radius:var(--radius-md);
  padding:6px 24px;
}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:18px 0;
  font-weight:700;
  color:var(--ink);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  font-size:1.4rem;
  font-weight:400;
  color:var(--blue-600);
  flex-shrink:0;
  transition:transform .2s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{
  color:var(--ink-soft);
  line-height:1.6;
  padding-bottom:20px;
  padding-right:32px;
}

/* Referral */
.referral{
  padding:80px 0;
  background:linear-gradient(120deg,var(--amber-400),var(--amber-500));
}
.referral-inner{text-align:center;max-width:640px;margin:0 auto;}
.referral h2{font-size:2rem;color:var(--navy-900);}
.referral p{margin-top:14px;color:rgba(11,30,53,0.75);font-size:1.05rem;}
.referral .btn{margin-top:28px;}

/* Apply CTA */
.apply-cta{
  padding:100px 0;
  text-align:center;
  background:var(--navy-900);
  color:#fff;
}
.apply-cta h2{font-size:2.2rem;}
.apply-cta p{margin-top:14px;color:rgba(255,255,255,0.7);}
.apply-cta .btn{margin-top:32px;}

/* Footer */
.site-footer{background:var(--navy-900);color:rgba(255,255,255,0.7);padding-top:60px;}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:40px;
  padding-bottom:40px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.footer-brand .brand{color:#fff;}
.footer-brand p{margin-top:16px;line-height:1.6;font-size:0.9rem;max-width:320px;}
.footer-col h4{color:#fff;font-size:0.95rem;margin-bottom:18px;}
.footer-col ul li{margin-bottom:10px;font-size:0.9rem;}
.footer-col a:hover{color:#fff;}
.footer-bottom{
  padding:24px 0;
  font-size:0.85rem;
  text-align:center;
}

/* Contact page */
.contact-hero{
  background:linear-gradient(180deg, var(--blue-50) 0%, var(--blue-100) 60%, var(--white) 100%);
  padding:64px 0 56px;
}
.contact-hero-inner{max-width:640px;}
.back-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  font-size:0.9rem;
  color:var(--blue-600);
  margin-bottom:24px;
}
.contact-hero-inner h1{
  font-size:clamp(2rem,3.4vw,2.8rem);
  font-weight:800;
  margin-top:16px;
}
.contact-hero-inner .section-paragraph{max-width:560px;}

.contact-form-section{padding:24px 0 100px;}
.form-card{
  max-width:680px;
  margin:0 auto;
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  padding:44px;
}
.form-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:22px;
}
.form-field label{
  font-weight:700;
  font-size:0.92rem;
  color:var(--ink);
}
.form-field input,
.form-field textarea{
  font-family:var(--font);
  font-size:1rem;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  border:1.5px solid rgba(19,37,57,0.15);
  background:var(--blue-50);
  color:var(--ink);
  resize:vertical;
}
.form-field input:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--blue-500);
  background:#fff;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.form-privacy{
  margin-top:16px;
  font-size:0.85rem;
  color:var(--ink-soft);
  text-align:center;
}
.form-card button[type=submit]{width:100%;}
.form-success{
  margin-top:28px;
  padding:24px;
  border-radius:var(--radius-md);
  background:var(--blue-50);
  text-align:center;
}
.form-success h3{color:var(--blue-700);font-size:1.2rem;margin-bottom:8px;}
.form-success p{color:var(--ink-soft);line-height:1.6;}
.form-error{
  margin-top:28px;
  padding:20px 24px;
  border-radius:var(--radius-md);
  background:#fdeceb;
  border:1px solid #f3b7b2;
  text-align:center;
}
.form-error p{color:#a5271f;font-weight:600;font-size:0.95rem;}
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
}

/* Responsive */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-visual{height:400px;}
  .comparison-grid{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .faceless-grid{grid-template-columns:repeat(2,1fr);}
  .steps-grid{grid-template-columns:1fr;}
  .calculator-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .form-card{padding:28px;}
}
@media (max-width:960px){
  .main-nav{
    position:absolute;
    top:100%;left:0;right:0;
    background:#fff;
    flex-direction:column;
    padding:16px 24px;
    box-shadow:0 12px 20px -12px rgba(19,37,57,0.2);
    display:none;
  }
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;gap:16px;}
  .nav-toggle{display:flex;}
}
@media (max-width:640px){
  .header-inner .btn-small{display:none;}
  .services-grid{grid-template-columns:1fr;}
  .faceless-grid{grid-template-columns:1fr;}
  .featured-list{gap:24px;}
}
