    :root {
      --green-dark: #1a3a1f;
      --green-mid: #2d6a35;
      --green-light: #4caf50;
      --green-pale: #e8f5e9;
      --earth: #8d6e45;
      --earth-light: #f5efe6;
      --gold: #f0b429;
      --gold-dark: #c47d17;
      --white: #fafaf8;
      --gray-100: #f4f4f0;
      --gray-300: #d0cfc8;
      --gray-600: #5a5a52;
      --gray-900: #1c1c18;
      --red: #e53e3e;
      --font-display: 'Fraunces', Georgia, serif;
      --font-body: 'DM Sans', sans-serif;
      --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
      --shadow-md: 0 6px 24px rgba(0,0,0,0.12);
      --shadow-lg: 0 16px 48px rgba(0,0,0,0.18);
      --radius: 12px;
      --radius-lg: 20px;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; }

    body {
      font-family: var(--font-body);
      background: var(--white);
      color: var(--gray-900);
      line-height: 1.6;
      overflow-x: hidden;
    }

    /* ── TOPBAR ── */
    .topbar {
      background: var(--green-dark);
      color: #fff;
      text-align: center;
      padding: 8px 16px;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.02em;
    }
    .topbar span { color: var(--gold); }

    /* ── HERO ── */
    .hero {
      background: linear-gradient(135deg, var(--green-dark) 0%, #2a5c30 60%, #3d7a44 100%);
      color: #fff;
      padding: 56px 20px 80px;
      position: relative;
      overflow: hidden;
    }
    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle at 80% 20%, rgba(76,175,80,0.15) 0%, transparent 50%),
                        radial-gradient(circle at 10% 80%, rgba(240,180,41,0.08) 0%, transparent 40%);
    }
    .hero-badge {
      display: inline-block;
      background: var(--gold);
      color: var(--green-dark);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 4px 14px;
      border-radius: 99px;
      margin-bottom: 18px;
    }
    .hero h1 {
      font-family: var(--font-display);
      font-size: clamp(32px, 7vw, 56px);
      font-weight: 900;
      line-height: 1.1;
      margin-bottom: 16px;
    }
    .hero h1 em {
      font-style: italic;
      color: #a8d5ab;
    }
    .hero-sub {
      font-size: clamp(15px, 3vw, 18px);
      color: rgba(255,255,255,0.85);
      max-width: 540px;
      margin-bottom: 32px;
    }
    .hero-benefits {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-bottom: 36px;
    }
    .hero-benefit {
      display: flex;
      align-items: center;
      gap: 6px;
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 99px;
      padding: 6px 14px;
      font-size: 13px;
      font-weight: 500;
    }
    .hero-benefit::before { content: '✓'; color: var(--gold); font-weight: 700; }

    .btn-wa {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: #25d366;
      color: #fff;
      font-family: var(--font-body);
      font-size: 16px;
      font-weight: 700;
      padding: 16px 32px;
      border-radius: 99px;
      text-decoration: none;
      box-shadow: 0 4px 20px rgba(37,211,102,0.4);
      transition: transform 0.2s, box-shadow 0.2s;
      border: none;
      cursor: pointer;
    }
    .btn-wa:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(37,211,102,0.5); }
    .btn-wa svg { width: 22px; height: 22px; fill: #fff; flex-shrink: 0; }

    .btn-wa-outline {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: transparent;
      color: #25d366;
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 600;
      padding: 12px 24px;
      border-radius: 99px;
      text-decoration: none;
      border: 2px solid #25d366;
      transition: all 0.2s;
      cursor: pointer;
    }
    .btn-wa-outline:hover { background: #25d366; color: #fff; }
    .btn-wa-outline svg { width: 20px; height: 20px; fill: currentColor; flex-shrink: 0; }

    .hero-image-strip {
      display: flex;
      gap: 10px;
      margin-top: 40px;
      overflow-x: auto;
      padding-bottom: 4px;
      -webkit-overflow-scrolling: touch;
    }
    .hero-image-strip::-webkit-scrollbar { height: 4px; }
    .hero-image-strip::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.3); border-radius: 4px; }
    .hero-img-card {
      flex-shrink: 0;
      width: 160px;
      height: 110px;
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: var(--radius);
      overflow: hidden;
      position: relative;
    }
    .hero-img-placeholder {
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      color: rgba(255,255,255,0.6);
      font-size: 11px;
      text-align: center;
      padding: 8px;
    }
    .hero-img-placeholder svg { width: 28px; height: 28px; opacity: 0.5; }

    /* ── SECTION WRAPPER ── */
    .section { padding: 64px 20px; }
    .section-inner { max-width: 700px; margin: 0 auto; }
    .section-inner-wide { max-width: 960px; margin: 0 auto; }
    .section-label {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--green-mid);
      margin-bottom: 10px;
    }
    .section-title {
      font-family: var(--font-display);
      font-size: clamp(26px, 5vw, 38px);
      font-weight: 800;
      line-height: 1.2;
      color: var(--green-dark);
      margin-bottom: 14px;
    }
    .section-body {
      font-size: 15px;
      color: var(--gray-600);
      line-height: 1.75;
    }

    /* ── WHAT IS ── */
    .what-is { background: var(--green-pale); }
    .what-card {
      display: grid;
      grid-template-columns: 1fr;
      gap: 32px;
      margin-top: 32px;
    }
    @media (min-width: 600px) {
      .what-card { grid-template-columns: 1fr 1fr; }
    }
    .info-box {
      background: #fff;
      border-radius: var(--radius);
      padding: 24px;
      box-shadow: var(--shadow-sm);
    }
    .info-box-icon {
      width: 44px;
      height: 44px;
      background: var(--green-pale);
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 14px;
      font-size: 22px;
    }
    .info-box h3 { font-size: 16px; font-weight: 700; color: var(--green-dark); margin-bottom: 8px; }
    .info-box p { font-size: 14px; color: var(--gray-600); line-height: 1.65; }

    /* ── STAT STRIP ── */
    .stat-strip {
      background: var(--green-dark);
      color: #fff;
      padding: 40px 20px;
    }
    .stats-grid {
      max-width: 700px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      text-align: center;
    }
    .stat-num {
      font-family: var(--font-display);
      font-size: clamp(28px, 6vw, 44px);
      font-weight: 900;
      color: var(--gold);
      line-height: 1;
    }
    .stat-label { font-size: 12px; color: rgba(255,255,255,0.7); margin-top: 6px; }

    /* ── PRODUCTS ── */
    .products { background: var(--white); }
    .prod-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 16px;
      margin-top: 32px;
    }
    @media (min-width: 480px) {
      .prod-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (min-width: 720px) {
      .prod-grid { grid-template-columns: repeat(3, 1fr); }
    }
    .prod-card {
      background: #fff;
      border: 1.5px solid var(--gray-300);
      border-radius: var(--radius-lg);
      overflow: hidden;
      transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
    }
    .prod-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--green-light); }
    .prod-card.featured { border-color: var(--green-mid); box-shadow: 0 0 0 2px var(--green-mid); }
    .prod-badge {
      background: var(--green-mid);
      color: #fff;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.06em;
      padding: 4px 12px;
      text-align: center;
    }
    .prod-img {
      width: 100%;
      height: 150px;
      background: var(--green-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 40px;
    }
    .prod-body { padding: 16px; }
    .prod-name { font-size: 15px; font-weight: 700; color: var(--green-dark); margin-bottom: 4px; }
    .prod-spec { font-size: 12px; color: var(--gray-600); margin-bottom: 12px; line-height: 1.6; }
    .prod-price {
      font-family: var(--font-display);
      font-size: 22px;
      font-weight: 900;
      color: var(--red);
    }
    .prod-price-note { font-size: 11px; color: var(--gray-600); margin-top: 2px; }
    .prod-cta {
      display: block;
      width: 100%;
      margin-top: 14px;
      background: #25d366;
      color: #fff;
      font-family: var(--font-body);
      font-size: 14px;
      font-weight: 700;
      padding: 11px;
      border-radius: 99px;
      text-align: center;
      text-decoration: none;
      border: none;
      cursor: pointer;
      transition: opacity 0.2s;
    }
    .prod-cta:hover { opacity: 0.88; }

    /* ── WHY US ── */
    .why { background: var(--earth-light); }
    .why-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
      margin-top: 28px;
    }
    @media (min-width: 540px) {
      .why-list { grid-template-columns: 1fr 1fr; }
    }
    .why-item {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      background: #fff;
      border-radius: var(--radius);
      padding: 18px;
      box-shadow: var(--shadow-sm);
    }
    .why-icon {
      width: 42px;
      height: 42px;
      flex-shrink: 0;
      border-radius: 10px;
      background: var(--green-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
    }
    .why-text h4 { font-size: 14px; font-weight: 700; color: var(--green-dark); margin-bottom: 4px; }
    .why-text p { font-size: 13px; color: var(--gray-600); line-height: 1.55; }

    /* ── STEPS ── */
    .steps { background: var(--white); }
    .steps-list { display: flex; flex-direction: column; gap: 0; margin-top: 32px; position: relative; }
    .step {
      display: flex;
      gap: 16px;
      padding-bottom: 28px;
      position: relative;
    }
    .step:last-child { padding-bottom: 0; }
    .step-num {
      width: 40px;
      height: 40px;
      flex-shrink: 0;
      border-radius: 50%;
      background: var(--green-dark);
      color: #fff;
      font-family: var(--font-display);
      font-size: 18px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 1;
    }
    .step-line {
      position: absolute;
      left: 19px;
      top: 40px;
      bottom: 0;
      width: 2px;
      background: var(--gray-300);
    }
    .step:last-child .step-line { display: none; }
    .step-content { padding-top: 8px; }
    .step-content h3 { font-size: 15px; font-weight: 700; color: var(--green-dark); margin-bottom: 4px; }
    .step-content p { font-size: 14px; color: var(--gray-600); }

    /* ── TESTIMONIALS ── */
    .testimonials { background: var(--green-dark); color: #fff; }
    .testimonials .section-label { color: var(--gold); }
    .testimonials .section-title { color: #fff; }
    .testi-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 16px;
      margin-top: 32px;
    }
    @media (min-width: 540px) {
      .testi-grid { grid-template-columns: 1fr 1fr; }
    }
    .testi-card {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: var(--radius-lg);
      padding: 22px;
    }
    .testi-stars { color: var(--gold); font-size: 16px; margin-bottom: 10px; }
    .testi-text { font-size: 14px; color: rgba(255,255,255,0.85); line-height: 1.7; margin-bottom: 16px; font-style: italic; }
    .testi-author { display: flex; align-items: center; gap: 12px; }
    .testi-avatar {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: var(--green-mid);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 14px;
      color: #fff;
      flex-shrink: 0;
    }
    .testi-name { font-size: 13px; font-weight: 700; }
    .testi-loc { font-size: 12px; color: rgba(255,255,255,0.5); }

    /* ── FAQ ── */
    .faq { background: var(--gray-100); }
    .faq-list { margin-top: 28px; display: flex; flex-direction: column; gap: 10px; }
    .faq-item {
      background: #fff;
      border-radius: var(--radius);
      border: 1px solid var(--gray-300);
      overflow: hidden;
    }
    .faq-q {
      width: 100%;
      background: none;
      border: none;
      text-align: left;
      padding: 18px 20px;
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 600;
      color: var(--green-dark);
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
    }
    .faq-q:focus { outline: 2px solid var(--green-mid); outline-offset: -2px; }
    .faq-chevron {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      transition: transform 0.25s;
      color: var(--green-mid);
    }
    .faq-item.open .faq-chevron { transform: rotate(180deg); }
    .faq-a {
      display: none;
      padding: 0 20px 18px;
      font-size: 14px;
      color: var(--gray-600);
      line-height: 1.75;
    }
    .faq-item.open .faq-a { display: block; }

    /* ── CTA FINAL ── */
    .cta-final {
      background: linear-gradient(135deg, var(--green-dark), #2a5c30);
      color: #fff;
      text-align: center;
      padding: 72px 20px;
      position: relative;
      overflow: hidden;
    }
    .cta-final::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 50% 100%, rgba(240,180,41,0.08), transparent 60%);
    }
    .cta-final .section-title { color: #fff; margin-bottom: 12px; }
    .cta-final p { color: rgba(255,255,255,0.75); font-size: 16px; margin-bottom: 32px; }
    .cta-stack { display: flex; flex-direction: column; align-items: center; gap: 12px; }
    @media (min-width: 400px) { .cta-stack { flex-direction: row; justify-content: center; } }

    /* ── FOOTER ── */
    footer {
      background: var(--gray-900);
      color: rgba(255,255,255,0.5);
      text-align: center;
      padding: 28px 20px;
      font-size: 13px;
    }
    footer a { color: rgba(255,255,255,0.5); text-decoration: underline; }

    /* ── STICKY WA ── */
    .sticky-wa {
      position: fixed;
      bottom: 20px;
      right: 20px;
      z-index: 999;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 8px;
    }
    .sticky-wa-bubble {
      background: #fff;
      color: var(--green-dark);
      font-size: 13px;
      font-weight: 600;
      padding: 8px 14px;
      border-radius: 12px 12px 0 12px;
      box-shadow: var(--shadow-md);
      animation: bubblePop 0.4s 2s backwards;
    }
    @keyframes bubblePop {
      from { opacity: 0; transform: scale(0.8) translateY(8px); }
      to { opacity: 1; transform: none; }
    }
    .sticky-btn {
      width: 58px;
      height: 58px;
      background: #25d366;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 18px rgba(37,211,102,0.45);
      text-decoration: none;
      transition: transform 0.2s;
    }
    .sticky-btn:hover { transform: scale(1.08); }
    .sticky-btn svg { width: 30px; height: 30px; fill: #fff; }
    .pulse-ring {
      position: absolute;
      width: 58px;
      height: 58px;
      border: 3px solid #25d366;
      border-radius: 50%;
      animation: pulse 2s infinite;
    }
    @keyframes pulse {
      0% { transform: scale(1); opacity: 0.7; }
      100% { transform: scale(1.7); opacity: 0; }
    }
    .sticky-wa-wrap { position: relative; }

    /* ── DIVIDER ── */
    .divider-leaf {
      text-align: center;
      padding: 8px;
      background: var(--green-pale);
      font-size: 20px;
      letter-spacing: 8px;
    }

    /* ── ANIMATIONS ── */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(24px); }
      to { opacity: 1; transform: none; }
    }
    .anim-fadeup { animation: fadeUp 0.6s both; }
    .anim-delay-1 { animation-delay: 0.1s; }
    .anim-delay-2 { animation-delay: 0.2s; }
    .anim-delay-3 { animation-delay: 0.3s; }

    /* ── image produk ── */
    .prod-img {
    width: 100%;
    height: 250px;           /* sesuaikan tinggi sesuai kebutuhan */
    overflow: hidden;
    border-radius: 8px 8px 0 0; /* kalau mau rounded di atas */
    }

    .prod-image {
        width: 100%;
        height: 100%;
        object-fit: cover;       /* memenuhi area tanpa distort */
        object-position: center;
    }

    /* ─── STICKY WA BAR ─── */
    .sticky-wa {
        position: fixed;
        bottom: 0; 
        left: 0; 
        right: 0;
        z-index: 999;
        background: var(--white);
        border-top: 2px solid var(--green-pale);
        padding: 12px 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        box-shadow: 0 -4px 20px rgba(0,0,0,.10);
        flex-wrap: nowrap;           /* Penting: jangan wrap */
        min-height: 58px;
    }

    .sticky-wa-text { 
        font-size: 0.9rem; 
        font-weight: 600; 
        color: var(--text-mid); 
        white-space: nowrap;         /* Teks tidak turun baris */
    }

    .sticky-wa-text strong { 
        color: var(--green-dark); 
    }

    .sticky-wa .btn-wa { 
        font-size: 0.92rem; 
        padding: 10px 20px;
        white-space: nowrap;
        flex-shrink: 0;              /* Tombol tidak mengecil */
    }

    /* Untuk HP (responsif) */
    @media (max-width: 576px) {
        .sticky-wa {
            padding: 10px 15px;
            gap: 10px;
        }
        .sticky-wa-text {
            font-size: 0.85rem;
        }
    }