  :root{
    --teal-900:#133130;
    --green-500:#04ac6d;
    --mint-300:#76dbd3;
    --sage-100:#daebe1;
    --lime-300:#ccf98a;
    --off-white:#f6f2f1;
    --white:#ffffff;
    --ink:#133130;
    --ink-soft:rgba(19,49,48,0.72);
    --max:1120px;
  }

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

  .wrap{
    max-width:var(--max);
    margin:0 auto;
    padding:0 24px;
  }

  .eyebrow{
    font-family:'Inter', sans-serif;
    font-weight:700;
    font-size:13px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--green-500);
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:15px;
    padding:14px 26px;
    border-radius:8px;
    cursor:pointer;
    border:1px solid transparent;
    white-space:nowrap;
    flex:none;
    transition:transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;}
  .btn-primary{
    background:var(--green-500);
    color:var(--white);
  }
  .btn-primary:hover{background:#039260;}
  .btn-ghost{
    background:transparent;
    color:var(--white);
    border-color:rgba(255,255,255,0.35);
  }
  .btn-ghost:hover{border-color:rgba(255,255,255,0.7);}
  .btn-outline{
    background:transparent;
    color:var(--teal-900);
    border-color:rgba(19,49,48,0.25);
  }
  .btn-outline:hover{border-color:var(--teal-900);}

  /* ---------- Header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(19,49,48,0.96);
    backdrop-filter:blur(6px);
  }
  .nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 24px;
  }
  .nav img{height:26px;flex:none;}
  .nav-links{
    display:flex;
    align-items:center;
    gap:32px;
  }
  .nav-links a{
    font-family:'Inter', sans-serif;
    font-size:14px;
    font-weight:600;
    color:rgba(255,255,255,0.82);
    transition:color .15s ease;
  }
  .nav-links a:hover{color:var(--lime-300);}
  .nav-cta{display:flex;align-items:center;gap:24px;}
  .nav-toggle{display:none;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background:var(--teal-900);
    color:var(--white);
    overflow:hidden;
    padding:88px 0 96px;
  }
  .hero-dots{
    position:absolute;
    top:0;right:0;
    width:340px;height:100%;
    background-image:radial-gradient(circle, var(--green-500) 1.6px, transparent 1.6px);
    background-size:16px 16px;
    -webkit-mask-image:linear-gradient(to left, rgba(0,0,0,0.9), transparent 85%);
    mask-image:linear-gradient(to left, rgba(0,0,0,0.9), transparent 85%);
    opacity:0.55;
    pointer-events:none;
  }
  .hero-inner{
    position:relative;
    z-index:1;
    max-width:700px;
  }
  .hero h1{
    font-size:clamp(34px, 5vw, 54px);
    margin:18px 0 20px;
    letter-spacing:-0.01em;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--lime-300);
  }
  .hero p.lead{
    font-size:19px;
    color:rgba(255,255,255,0.82);
    max-width:560px;
  }
  .hero-cta{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:34px;
    flex-wrap:wrap;
  }
  .trust-line{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:56px;
    padding-top:28px;
    border-top:1px solid rgba(255,255,255,0.14);
  }
  .trust-line img{height:38px;}
  .trust-line span{
    font-size:14px;
    color:rgba(255,255,255,0.72);
  }
  .trust-line strong{color:var(--white);}

  /* ---------- Section basics ---------- */
  section{padding:96px 0;}
  .section-head{
    max-width:640px;
    margin:0 0 56px;
  }
  .section-head h2{
    font-size:clamp(28px, 3.6vw, 38px);
    margin-top:14px;
  }
  .section-head p{
    margin-top:16px;
    font-size:17px;
    color:var(--ink-soft);
  }
  .center{text-align:center;margin-left:auto;margin-right:auto;}

  /* ---------- Services ---------- */
  .services{background:var(--white);}
  .service-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .service-card{
    background:var(--off-white);
    border-radius:16px;
    padding:34px 30px 32px;
    border:1px solid rgba(19,49,48,0.06);
  }
  .service-num{
    font-family:'Inter', sans-serif;
    font-weight:800;
    font-size:13px;
    letter-spacing:0.1em;
    color:var(--green-500);
  }
  .service-card h3{
    font-size:22px;
    margin:16px 0 12px;
  }
  .service-card > p{
    color:var(--ink-soft);
    font-size:15.5px;
    margin-bottom:20px;
  }
  .service-card ul li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:14.5px;
    color:var(--ink);
    padding:7px 0;
    border-top:1px solid rgba(19,49,48,0.08);
  }
  .service-card ul li:first-child{border-top:none;padding-top:0;}
  .service-card ul li::before{
    content:"";
    width:7px;height:7px;
    border-radius:2px;
    background:var(--green-500);
    margin-top:7px;
    flex:none;
  }

  /* ---------- Process ---------- */
  .process{background:var(--sage-100);}
  .process-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    position:relative;
  }
  .process-step{
    position:relative;
    padding:0 22px 0 0;
  }
  .process-step:not(:last-child)::after{
    content:"";
    position:absolute;
    top:23px;
    right:-4px;
    width:36px;
    height:2px;
    background:linear-gradient(90deg, var(--green-500), var(--mint-300));
  }
  .process-step .num{
    width:46px;height:46px;
    border-radius:50%;
    background:var(--teal-900);
    color:var(--white);
    display:flex;align-items:center;justify-content:center;
    font-family:'Inter', sans-serif;
    font-weight:700;
    font-size:16px;
    margin-bottom:20px;
  }
  .process-step h4{
    font-size:17px;
    margin-bottom:10px;
  }
  .process-step p{
    font-size:14.5px;
    color:var(--ink-soft);
  }

  /* ---------- Reviews ---------- */
  .reviews{background:var(--white);}
  .reviews-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:48px;
    flex-wrap:wrap;
  }
  .reviews-head .section-head{margin-bottom:0;}
  .g2-block{
    display:flex;
    align-items:center;
    gap:14px;
  }
  .g2-block img{height:56px;}
  .review-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:22px;
  }
  .review-card{
    background:var(--off-white);
    border-radius:14px;
    padding:26px 24px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .review-card p.quote{
    font-size:15px;
    color:var(--ink);
    font-style:italic;
  }
  .review-card p.quote::before{content:"\201C";}
  .review-card p.quote::after{content:"\201D";}
  .review-meta{
    margin-top:20px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .review-avatar{
    width:34px;height:34px;
    border-radius:50%;
    background:var(--green-500);
    color:var(--white);
    display:flex;align-items:center;justify-content:center;
    font-family:'Inter',sans-serif;
    font-weight:700;
    font-size:13px;
    flex:none;
  }
  .review-meta strong{
    display:block;
    font-size:14px;
    font-family:'Inter', sans-serif;
  }
  .review-meta span{
    display:block;
    font-size:12.5px;
    color:var(--ink-soft);
  }
  .reviews-cta{
    text-align:center;
    margin-top:44px;
  }

  /* ---------- CTA ---------- */
  .cta{
    background:var(--teal-900);
    color:var(--white);
    position:relative;
    overflow:hidden;
    text-align:center;
  }
  .cta-lines{
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(100deg, transparent 0 60px, rgba(4,172,109,0.12) 60px 62px);
    pointer-events:none;
  }
  .cta .wrap{position:relative;z-index:1;max-width:640px;}
  .cta h2{
    font-size:clamp(28px, 4vw, 40px);
  }
  .cta p{
    margin-top:16px;
    font-size:17px;
    color:rgba(255,255,255,0.78);
  }
  .cta .btn{margin-top:32px;}

  .contact-form{
    margin-top:36px;
    text-align:left;
  }
  .form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  .form-field{
    margin-bottom:16px;
  }
  .form-field label{
    display:block;
    font-family:'Inter', sans-serif;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.03em;
    color:rgba(255,255,255,0.72);
    margin-bottom:7px;
  }
  .form-field input,
  .form-field textarea{
    width:100%;
    background:rgba(255,255,255,0.07);
    border:1px solid rgba(255,255,255,0.2);
    border-radius:8px;
    padding:12px 14px;
    font-family:'Nunito Sans', sans-serif;
    font-size:15px;
    color:var(--white);
    resize:vertical;
    transition:border-color .15s ease, background .15s ease;
  }
  .form-field input::placeholder,
  .form-field textarea::placeholder{color:rgba(255,255,255,0.4);}
  .form-field input:focus,
  .form-field textarea:focus{
    outline:none;
    border-color:var(--green-500);
    background:rgba(255,255,255,0.1);
  }
  .form-actions{
    margin-top:8px;
  }
  .form-error{
    text-align:left;
    font-size:14px;
    color:var(--lime-300);
    background:rgba(204,249,138,0.1);
    border:1px solid rgba(204,249,138,0.3);
    border-radius:8px;
    padding:12px 14px;
    margin:0 0 20px;
  }
  .form-error a{text-decoration:underline;}

  .form-success{
    max-width:480px;
    margin:0 auto;
    padding:28px 0 4px;
  }
  .form-success h3{
    font-size:24px;
    color:var(--white);
  }
  .form-success p{
    margin-top:12px;
    font-size:16px;
    color:rgba(255,255,255,0.78);
  }

  /* ---------- Footer ---------- */
  footer{
    background:var(--teal-900);
    color:rgba(255,255,255,0.6);
    padding:36px 0;
    border-top:1px solid rgba(255,255,255,0.1);
  }
  .footer-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
  }
  .footer-inner img{height:22px;opacity:0.9;}
  .footer-links{display:flex;gap:24px;font-size:13.5px;}
  .footer-links a:hover{color:var(--white);}
  .footer-meta{font-size:13px;}

  /* ---------- Responsive ---------- */
  @media (max-width:920px){
    .service-grid{grid-template-columns:1fr;}
    .process-grid{grid-template-columns:1fr 1fr;gap:32px 20px;}
    .process-step::after{display:none;}
    .review-grid{grid-template-columns:1fr;}
    .nav-links{display:none;}
    .reviews-head{align-items:flex-start;}
    .form-row{grid-template-columns:1fr;gap:0;}
  }
  @media (max-width:560px){
    .process-grid{grid-template-columns:1fr;}
    section{padding:64px 0;}
    .hero{padding:56px 0 64px;}
    .footer-inner{flex-direction:column;align-items:flex-start;}
    .nav{padding:14px 20px;gap:12px;}
    .nav img{height:19px;}
    .nav-cta .btn{padding:10px 16px;font-size:13.5px;}
  }

  /* ---------- Blog: page header band ---------- */
  .page-hero{
    position:relative;
    background:var(--teal-900);
    color:var(--white);
    overflow:hidden;
    padding:64px 0 56px;
  }
  .page-hero .hero-dots{opacity:0.4;}
  .page-hero-inner{position:relative;z-index:1;max-width:720px;}
  .page-hero h1{
    font-size:clamp(30px, 4.4vw, 44px);
    margin-top:14px;
    letter-spacing:-0.01em;
  }
  .page-hero p{
    margin-top:16px;
    font-size:17px;
    color:rgba(255,255,255,0.8);
    max-width:640px;
  }
  .breadcrumb{
    font-family:'Inter', sans-serif;
    font-size:13px;
    font-weight:600;
    color:rgba(255,255,255,0.55);
  }
  .breadcrumb a{color:rgba(255,255,255,0.85);}
  .breadcrumb a:hover{color:var(--lime-300);}

  /* ---------- Blog: listing grid ---------- */
  .blog-list{background:var(--white);padding:72px 0 100px;}
  .blog-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .blog-card{
    display:flex;
    flex-direction:column;
    background:var(--off-white);
    border-radius:16px;
    overflow:hidden;
    border:1px solid rgba(19,49,48,0.06);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .blog-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(19,49,48,0.1);}
  .blog-card-img{
    aspect-ratio:16/10;
    overflow:hidden;
    background:var(--sage-100);
  }
  .blog-card-img img{width:100%;height:100%;object-fit:cover;}
  .blog-card-body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1;}
  .blog-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
  .tag-pill{
    font-family:'Inter', sans-serif;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--green-500);
    background:rgba(4,172,109,0.1);
    border-radius:999px;
    padding:4px 10px;
  }
  .blog-card h3{
    font-size:19px;
    line-height:1.3;
    margin-bottom:10px;
  }
  .blog-card p.excerpt{
    font-size:14.5px;
    color:var(--ink-soft);
    flex:1;
  }
  .blog-card-meta{
    margin-top:18px;
    font-size:13px;
    color:var(--ink-soft);
    display:flex;
    align-items:center;
    gap:8px;
  }

  /* ---------- Blog: post article ---------- */
  .post{background:var(--white);padding-bottom:96px;}
  .post-wrap{max-width:760px;margin:0 auto;padding:0 24px;}
  .post-header{padding:56px 0 32px;}
  .post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;}
  .post-header h1{
    font-size:clamp(30px, 4.6vw, 46px);
    letter-spacing:-0.01em;
  }
  .post-byline{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:28px;
  }
  .post-byline img{
    width:38px;height:38px;
    border-radius:50%;
    object-fit:cover;
  }
  .post-byline strong{
    display:block;
    font-family:'Inter', sans-serif;
    font-size:14.5px;
  }
  .post-byline span{
    display:block;
    font-size:13px;
    color:var(--ink-soft);
  }
  .post-hero-img{
    margin:0 0 48px;
    border-radius:16px;
    overflow:hidden;
  }
  .post-hero-img img{width:100%;display:block;}
  .post-body{
    font-size:17px;
    color:var(--ink);
    line-height:1.75;
  }
  .post-body p{margin:0 0 22px;}
  .post-body h2{
    font-size:26px;
    margin:44px 0 18px;
    letter-spacing:-0.01em;
  }
  .post-body h3{
    font-size:20px;
    margin:32px 0 14px;
  }
  .post-body ul, .post-body ol{
    margin:0 0 22px;
    padding-left:22px;
  }
  .post-body ul{list-style:disc;}
  .post-body ol{list-style:decimal;}
  .post-body li{margin-bottom:10px;padding:0;border:none;}
  .post-body li::before{content:none;}
  .post-body a{
    color:var(--green-500);
    text-decoration:underline;
    text-underline-offset:2px;
  }
  .post-body a:hover{color:#039260;}
  .post-body strong{font-weight:700;}
  .post-body img{
    width:100%;
    border-radius:12px;
    margin:8px 0 28px;
    border:1px solid rgba(19,49,48,0.08);
  }
  .post-footer{
    margin-top:48px;
    padding-top:32px;
    border-top:1px solid rgba(19,49,48,0.1);
  }

  @media (max-width:920px){
    .blog-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:640px){
    .blog-grid{grid-template-columns:1fr;}
    .post-header{padding:40px 0 24px;}
    .post-body{font-size:16px;}
    .post{padding-bottom:64px;}
  }

  /* ---------- 404 ---------- */
  .error-page{
    background:var(--teal-900);
    color:var(--white);
    min-height:calc(100vh - 71px);
    display:flex;
    align-items:center;
    position:relative;
    overflow:hidden;
    padding:64px 0;
  }
  .error-inner{position:relative;z-index:1;max-width:560px;text-align:center;margin:0 auto;}
  .error-code{
    font-family:'Inter', sans-serif;
    font-weight:800;
    font-size:clamp(64px, 12vw, 120px);
    color:var(--lime-300);
    line-height:1;
  }
  .error-page h1{
    font-size:clamp(24px, 3.6vw, 32px);
    margin-top:16px;
  }
  .error-page p{
    margin-top:14px;
    font-size:16px;
    color:rgba(255,255,255,0.78);
  }
  .error-actions{
    margin-top:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
  }
