@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=DM+Serif+Display:ital@0;1&display=swap'); /* ─── Variables ─── */ :root { --green-deep: #2D5A3D; --green-mid: #4F7C59; --green-soft: #7DAA6E; --green-pale: #e7f1e4; --green-mist: #f7faf8; --text-dark: #1a2e1f; --text-muted: #6b7c6e; --white: #ffffff; --radius-xl: 40px; --radius-lg: 24px; --radius-md: 12px; --shadow-card: 0 2px 20px rgba(45,90,61,0.08); --shadow-lg: 0 12px 48px rgba(45,90,61,0.15); } /* ─── Global ─── */ body { font-family: 'Plus Jakarta Sans', sans-serif; color: var(--text-dark); } /* ════════════════════════════════ HERO SECTION ════════════════════════════════ */ .hero-section { padding: 100px 0 80px; background: radial-gradient(circle at 80% 20%, #f0f7ed 0%, #ffffff 70%); overflow: hidden; position: relative; } .hero-section::before { content: ''; position: absolute; width: 600px; height: 600px; background: radial-gradient(circle, rgba(125,170,110,0.12) 0%, transparent 70%); top: -100px; right: -100px; pointer-events: none; } .hero-title { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: clamp(1.8rem, 3.5vw, 2.8rem); line-height: 1.2; color: var(--text-dark); margin-bottom: 20px; } .hero-title span { color: var(--green-mid); font-weight: 800; } .hero-desc { font-size: 1.05rem; color: var(--text-muted); line-height: 1.7; max-width: 500px; margin-bottom: 40px; } /* Hero Buttons */ .btn-hero-primary { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient(135deg, var(--green-soft), var(--green-mid)); color: white; padding: 14px 30px; border-radius: 50px; font-weight: 700; font-size: 14px; text-decoration: none; border: none; box-shadow: 0 6px 24px rgba(79,124,89,0.3); transition: all 0.3s ease; } .btn-hero-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 32px rgba(79,124,89,0.4); color: white; } .btn-hero-outline { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--green-mid); padding: 13px 30px; border-radius: 50px; font-weight: 700; font-size: 14px; text-decoration: none; border: 2px solid var(--green-soft); transition: all 0.3s ease; } .btn-hero-outline:hover { background: var(--green-soft); color: white; transform: translateY(-3px); } /* Hero Image */ .hero-img-wrap { position: relative; display: flex; justify-content: center; align-items: center; } .hero-img-wrap::before { content: ''; position: absolute; width: 360px; height: 360px; background: radial-gradient(circle, rgba(125,170,110,0.18) 0%, transparent 70%); border-radius: 50%; } .hero-img { width: 100%; max-width: 520px; max-height: 420px; height: auto; object-fit: contain; border-radius: 50px; position: relative; z-index: 1; animation: floating 4s ease-in-out infinite; filter: drop-shadow(0 20px 40px rgba(79,124,89,0.2)); } @keyframes floating { 0% { transform: translateY(0px); } 50% { transform: translateY(-14px); } 100% { transform: translateY(0px); } } /* ════════════════════════════════ FEATURE CARDS ════════════════════════════════ */ .features-section { padding: 20px 0 60px; background: var(--white); } .feature-card { background: var(--white); border: 1px solid rgba(0,0,0,0.05); border-radius: var(--radius-lg); padding: 40px; height: 100%; display: flex; flex-direction: column; box-shadow: var(--shadow-card); transition: all 0.35s ease; position: relative; overflow: hidden; } .feature-card::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--green-soft), var(--green-deep)); transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; } .feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); } .feature-card:hover::before { transform: scaleX(1); } .feature-icon { width: 56px; height: 56px; background: var(--green-pale); border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: var(--green-mid); margin-bottom: 20px; transition: all 0.3s ease; } .feature-card:hover .feature-icon { background: var(--green-mid); color: white; transform: scale(1.08); } .feature-card h4 { font-weight: 700; font-size: 1.1rem; margin-bottom: 10px; color: var(--text-dark); } .feature-card p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.65; margin: 0; } /* ════════════════════════════════ TENTANG SECTION ════════════════════════════════ */ .tentang-section { background-color: var(--green-pale); border-radius: 60px 60px 0 0; padding: 80px 0 100px; } /* ── Header ── */ .st-header { text-align: center; margin-bottom: 4rem; } .st-title { font-family: 'Plus Jakarta Sans', sans-serif; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; color: var(--green-deep); margin: 0 0 0.75rem; line-height: 1.2; } .st-subtitle { font-size: 14px; color: var(--text-muted); max-width: 480px; margin: 0 auto; line-height: 1.7; } /* ── Steps wrapper ── */ .st-steps { display: flex; flex-direction: column; gap: 0; margin-bottom: 3rem; position: relative; } /* ── Satu baris step (3 kolom: kiri | center | kanan) ── */ .st-step { display: grid; grid-template-columns: 1fr 56px 1fr; align-items: stretch; min-height: 160px; } .st-step-left { padding: 2rem 2rem 2rem 0; display: flex; align-items: center; justify-content: flex-end; } .st-step-right { padding: 2rem 0 2rem 2rem; display: flex; align-items: center; justify-content: flex-start; } /* Step genap: flip kiri-kanan */ .st-step:nth-child(even) .st-step-left { order: 3; padding: 2rem 0 2rem 2rem; justify-content: flex-start; } .st-step:nth-child(even) .st-step-center { order: 2; } .st-step:nth-child(even) .st-step-right { order: 1; padding: 2rem 2rem 2rem 0; justify-content: flex-end; } /* ── Node tengah ── */ .st-step-center { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } .st-node { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--green-soft); background: var(--green-pale); display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; z-index: 1; transition: border-color 0.3s, background 0.3s, transform 0.3s; } .st-step:hover .st-node { border-color: var(--green-mid); background: #fff; } .st-node.st-active { border-color: var(--green-deep); background: var(--white); transform: scale(1.12); } .st-node-inner { width: 32px; height: 32px; border-radius: 50%; background: rgba(125, 170, 110, 0.15); display: flex; align-items: center; justify-content: center; font-size: 15px; } /* ── Card konten ── */ .st-card { background: var(--white); border: 1px solid rgba(125, 170, 110, 0.2); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; max-width: 300px; width: 100%; box-shadow: var(--shadow-card); transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s; } .st-card:hover { border-color: var(--green-soft); transform: translateY(-3px); box-shadow: var(--shadow-lg); } .st-card.st-active { border-color: var(--green-soft); transform: translateY(-3px); box-shadow: var(--shadow-lg); } .st-card-num { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--green-mid); margin: 0 0 8px; } .st-card-title { font-size: 15px; font-weight: 700; color: var(--text-dark); margin: 0 0 6px; line-height: 1.3; } .st-card-desc { font-size: 12.5px; color: var(--text-muted); line-height: 1.6; margin: 0; } /* ── Ilustrasi SVG ── */ .st-illus { max-width: 240px; width: 100%; display: flex; align-items: center; justify-content: center; } .st-illus svg { width: 100%; height: auto; filter: drop-shadow(0 4px 12px rgba(45, 90, 61, 0.1)); } /* ── Disclaimer ── */ .st-disclaimer { display: flex; gap: 12px; align-items: flex-start; background: #FFF8EC; border: 1px solid rgba(239, 159, 39, 0.4); border-radius: var(--radius-md); padding: 14px 18px; max-width: 640px; margin: 0 auto; } .st-disclaimer-icon { width: 20px; height: 20px; border-radius: 50%; background: #EF9F27; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; } .st-disclaimer-icon svg { width: 10px; height: 10px; } .st-disclaimer-text { font-size: 12.5px; color: #633806; line-height: 1.6; margin: 0; } /* ── Responsive ── */ @media (max-width: 768px) { .tentang-section { border-radius: 40px 40px 0 0; padding: 60px 0 80px; } .st-step { grid-template-columns: 56px 1fr; min-height: auto; } /* sembunyikan kolom kiri (ilustrasi), tampilkan kolom kanan (card) */ .st-step-left { display: none !important; } .st-step-center { order: 1 !important; justify-content: center; } .st-step-right { order: 2 !important; display: flex !important; padding: 1.25rem 0 1.25rem 1rem !important; justify-content: flex-start !important; } /* reset nth-child(even) flip di mobile */ .st-step:nth-child(even) .st-step-left { display: none !important; } .st-step:nth-child(even) .st-step-center { order: 1 !important; } .st-step:nth-child(even) .st-step-right { order: 2 !important; padding: 1.25rem 0 1.25rem 1rem !important; justify-content: flex-start !important; } /* sembunyikan ilustrasi di dalam st-step-right kalau ada */ .st-step-right .st-illus { display: none !important; } .st-card { max-width: 100%; } .st-header { margin-bottom: 2.5rem; } #timelineSvg { display: none; } } /* ════════════════════════════════ PENYAKIT SECTION ════════════════════════════════ */ .penyakit-section { background: var(--white); padding: 80px 0; } .penyakit-card { background: var(--white); border: 1px solid rgba(125,170,110,0.2); border-radius: var(--radius-lg); padding: 32px 28px; height: 100%; display: flex; flex-direction: column; gap: 12px; box-shadow: var(--shadow-card); transition: all 0.3s ease; } .penyakit-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--green-soft); } /* .penyakit-card.featured { border-color: var(--green-mid); border-width: 2px; } */ .penyakit-icon { font-size: 2rem; line-height: 1; } .penyakit-name { font-weight: 800; font-size: 1.15rem; color: var(--green-deep); margin: 0; } .penyakit-desc { font-size: 13px; color: var(--text-muted); line-height: 1.7; margin: 0; flex: 1; } /* .penyakit-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; } .penyakit-tags span { font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 50px; background: var(--green-pale); color: var(--green-deep); border: 1px solid rgba(125,170,110,0.3); } */ /* ════════════════════════════════ GEJALA SECTION ════════════════════════════════ */ .gejala-section { background: var(--green-pale); padding: 80px 0; } .section-title { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.2rem); color: var(--text-dark); letter-spacing: 0.5px; margin-bottom: 12px; } .section-divider { width: 48px; height: 3px; background: linear-gradient(90deg, var(--green-soft), var(--green-deep)); border-radius: 2px; margin: 0 auto 48px; } .gejala-img { max-height: 380px; mix-blend-mode: multiply; border-radius: 40px; filter: drop-shadow(0 15px 30px rgba(200, 240, 200, 0.8)); } .gejala-card { padding: 20px; border-radius: var(--radius-md); background: var(--white); border: 1px solid transparent; transition: all 0.3s ease; height: 100%; } .gejala-card:hover { background: var(--green-pale); border-color: rgba(125,170,110,0.3); box-shadow: var(--shadow-card); transform: translateY(-3px); } .gejala-number { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 2.2rem; color: var(--green-soft); opacity: 0.7; line-height: 1; margin-bottom: 10px; } .gejala-card h6 { font-weight: 700; font-size: 0.9rem; color: var(--text-dark); margin-bottom: 6px; } .gejala-card p { font-size: 0.82rem; color: var(--text-muted); line-height: 1.6; margin: 0; } /* ════════════════════════════════ CTA SECTION ════════════════════════════════ */ .cta-section { padding: 60px 0 80px; background: var(--white); } .cta-box { background: linear-gradient(135deg, var(--green-deep) 0%, var(--green-soft) 100%); color: white; padding: 64px 60px; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); position: relative; overflow: hidden; text-align: center; } .cta-box::before { content: ''; position: absolute; width: 400px; height: 400px; background: rgba(255,255,255,0.05); border-radius: 50%; top: -150px; right: -100px; pointer-events: none; } .cta-box::after { content: ''; position: absolute; width: 250px; height: 250px; background: rgba(255,255,255,0.04); border-radius: 50%; bottom: -80px; left: -60px; pointer-events: none; } .cta-badge { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.92); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; padding: 6px 14px; border-radius: 50px; margin-bottom: 24px; position: relative; z-index: 1; } .cta-title { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: clamp(1.8rem, 3.5vw, 2.4rem); margin-bottom: 14px; line-height: 1.25; position: relative; z-index: 1; } .cta-trust { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 36px; position: relative; z-index: 1; } .cta-trust-item { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.88); } .cta-trust-item i { color: #a8e6a3; font-size: 14px; } .cta-actions { position: relative; z-index: 1; margin-bottom: 20px; } .btn-cta { display: inline-flex; align-items: center; gap: 8px; background: white; color: var(--green-deep); padding: 14px 40px; border-radius: 50px; font-weight: 700; font-size: 15px; text-decoration: none; box-shadow: 0 6px 24px rgba(0,0,0,0.15); transition: all 0.3s ease; } .btn-cta:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 12px 32px rgba(0,0,0,0.2); color: var(--green-deep); } .cta-note { font-size: 13px; color: rgba(255,255,255,0.6); margin: 0; position: relative; z-index: 1; } .cta-note a { color: rgba(255,255,255,0.9); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; } .cta-note a:hover { color: white; } @media (max-width: 768px) { .cta-box { padding: 48px 24px; } .cta-trust { gap: 8px 16px; } .cta-title br { display: none; } .hero-img-wrap { display: none; } .gejala-img { display: none; } }