/* ============================================================
   PLANTSAFE CMS - Tema Utama
   Warna dapat diubah dari Panel Admin > Pengaturan.
   ============================================================ */
:root{
  --ps-primary:#1f6f3f;
  --ps-primary-dark:#0f3d22;
  --ps-accent:#d9a441;
  --ps-ink:#16241c;
  --ps-body:#4a5a52;
  --ps-line:#e4ebe6;
  --ps-soft:#f4f8f5;
  --ps-radius:14px;
  --ps-shadow:0 10px 30px rgba(15,61,34,.08);
}
*{box-sizing:border-box}
body{font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;color:var(--ps-body);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{color:var(--ps-ink);font-weight:700;line-height:1.25}
a{text-decoration:none}
img{max-width:100%;height:auto}

/* Topbar & Navbar */
.ps-topbar{background:var(--ps-primary-dark);color:#dcebe1;padding:.45rem 0;font-size:.85rem}
.ps-nav{background:#fff;box-shadow:0 2px 14px rgba(15,61,34,.07);padding:.65rem 0}
.ps-nav .nav-link{color:var(--ps-ink);font-weight:600;font-size:.95rem;padding:.5rem .8rem;border-radius:8px}
.ps-nav .nav-link:hover,.ps-nav .nav-link.active{color:var(--ps-primary);background:var(--ps-soft)}
.ps-logo{display:inline-flex;align-items:center;gap:.55rem}
.ps-logo-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--ps-primary);color:#fff;font-weight:800;letter-spacing:.5px}
.ps-logo-text{font-weight:800;color:var(--ps-ink);letter-spacing:.06em}

/* Tombol */
.ps-btn{border-radius:999px;padding:.65rem 1.5rem;font-weight:600;border:2px solid transparent;transition:.2s}
.ps-btn-primary{background:var(--ps-primary);color:#fff}
.ps-btn-primary:hover{background:var(--ps-primary-dark);color:#fff}
.ps-btn-accent{background:var(--ps-accent);color:#2b2004}
.ps-btn-accent:hover{filter:brightness(.94);color:#2b2004}
.ps-btn-outline{border-color:var(--ps-primary);color:var(--ps-primary);background:transparent}
.ps-btn-outline:hover{background:var(--ps-primary);color:#fff}
.ps-btn-outline-light{border-color:rgba(255,255,255,.6);color:#fff}
.ps-btn-outline-light:hover{background:#fff;color:var(--ps-primary-dark)}

/* Hero */
.ps-hero{background:linear-gradient(135deg,#0f3d22,#1f6f3f);background-size:cover;background-position:center;color:#eaf5ee;padding:5.5rem 0 4.5rem}
.ps-badge{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;padding:.35rem .9rem;border-radius:999px;font-size:.8rem;margin-bottom:1.1rem}
.ps-hero-title{color:#fff;font-size:clamp(2rem,4.2vw,3.2rem);margin-bottom:.4rem}
.ps-hero-sub{color:var(--ps-accent);font-size:1.35rem;font-weight:700;margin-bottom:1rem}
.ps-hero-text{color:#d7e8dd;max-width:38rem;margin-bottom:1.6rem}
.ps-hero-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:var(--ps-radius);padding:1.5rem;color:#fff;backdrop-filter:blur(4px)}
.ps-compare-row{display:grid;grid-template-columns:9rem 1fr auto;gap:.6rem;align-items:center;margin-bottom:.7rem;font-size:.86rem}
.ps-bar{height:9px;border-radius:999px;background:rgba(255,255,255,.22);overflow:hidden}
.ps-bar>span{display:block;height:100%;background:#fff;border-radius:999px}
.ps-bar-accent>span{background:var(--ps-accent)}
.ps-compare-light .ps-bar{background:var(--ps-line)}
.ps-compare-light .ps-bar>span{background:var(--ps-primary)}
.ps-compare-light .ps-compare-row{color:var(--ps-ink)}
@media(max-width:575px){.ps-compare-row{grid-template-columns:1fr;gap:.2rem}}

/* Statistik */
.ps-stats{margin-top:-2.5rem;position:relative;z-index:2;padding-bottom:1rem}
.ps-stat{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.2rem .6rem;box-shadow:var(--ps-shadow);height:100%}
.ps-stat-value{font-size:1.5rem;font-weight:800;color:var(--ps-primary)}
.ps-stat-label{font-size:.82rem;color:var(--ps-body)}

/* Section */
.ps-section{padding:4.5rem 0}
.ps-section-alt{background:var(--ps-soft)}
.ps-section-dark{background:var(--ps-primary-dark)}
.ps-section-head{max-width:46rem;margin:0 auto 2.5rem}
.ps-eyebrow{display:inline-block;color:var(--ps-accent);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;margin-bottom:.5rem}
.ps-section-title{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:.6rem}
.ps-section-sub{color:var(--ps-body);margin-bottom:0}

/* Kartu */
.ps-card{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.6rem;transition:.25s}
.ps-card:hover{box-shadow:var(--ps-shadow);transform:translateY(-3px)}
.ps-card-title{font-size:1.08rem;margin-bottom:.5rem}
.ps-card-text{color:var(--ps-body);font-size:.94rem;margin-bottom:.6rem}
.ps-icon{width:48px;height:48px;border-radius:12px;background:var(--ps-soft);color:var(--ps-primary);display:grid;place-items:center;font-size:1.35rem;margin-bottom:1rem}
.ps-icon-light{background:rgba(255,255,255,.12);color:var(--ps-accent)}
.ps-mini{display:flex;gap:.7rem;align-items:flex-start;background:#fff;border:1px solid var(--ps-line);border-radius:12px;padding:.85rem 1rem;height:100%;font-size:.92rem;color:var(--ps-ink);font-weight:600}
.ps-mini i{color:var(--ps-primary);font-size:1.1rem;flex:0 0 auto}
.ps-chip{display:inline-block;background:var(--ps-soft);color:var(--ps-primary);border-radius:999px;padding:.2rem .7rem;font-size:.75rem;font-weight:700;margin-bottom:.5rem}
.ps-chip-accent{background:rgba(217,164,65,.18);color:var(--ps-accent)}
.ps-link{color:var(--ps-primary);font-weight:700;font-size:.9rem}
.ps-link:hover{color:var(--ps-primary-dark)}

/* Produk */
.ps-product{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.ps-product:hover{box-shadow:var(--ps-shadow);transform:translateY(-3px)}
.ps-product-media{aspect-ratio:16/10;background:var(--ps-soft);overflow:hidden}
.ps-product-media img{width:100%;height:100%;object-fit:cover}
.ps-product-body{padding:1.3rem;display:flex;flex-direction:column;flex:1}
.ps-detail-media{border:1px solid var(--ps-line);border-radius:var(--ps-radius);overflow:hidden;background:var(--ps-soft)}
.ps-detail-media img{width:100%;display:block}

/* Aplikasi & studi */
.ps-app-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--ps-radius);padding:1.4rem}
.ps-app-adv ul{color:rgba(255,255,255,.72);font-size:.87rem;padding-left:1.1rem;margin:0}
.ps-step{display:flex;gap:1rem;background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.5rem}
.ps-step-no{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:var(--ps-primary);color:#fff;display:grid;place-items:center;font-weight:800}
.ps-study{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.5rem;transition:.25s}
.ps-study:hover{box-shadow:var(--ps-shadow);transform:translateY(-3px)}
.ps-study-metric{display:flex;flex-direction:column;margin-bottom:.8rem}
.ps-study-value{font-size:1.5rem;font-weight:800;color:var(--ps-primary);line-height:1.2}
.ps-study-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ps-accent);font-weight:700}

/* Testimoni & klien */
.ps-testi{background:var(--ps-soft);border-radius:var(--ps-radius);padding:1.6rem;border:1px solid var(--ps-line)}
.ps-quote{font-size:2rem;color:var(--ps-accent);line-height:1}
.ps-testi-name{font-weight:700;color:var(--ps-ink)}
.ps-clients{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.ps-client{background:#fff;border:1px solid var(--ps-line);border-radius:10px;padding:.7rem 1.2rem;font-weight:700;color:var(--ps-ink);font-size:.88rem;min-width:150px;display:grid;place-items:center}
.ps-client img{max-height:34px;width:auto}

/* Blog */
.ps-post{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.ps-post:hover{box-shadow:var(--ps-shadow);transform:translateY(-3px)}
.ps-post-media{aspect-ratio:16/9;background:var(--ps-soft);overflow:hidden}
.ps-post-media img{width:100%;height:100%;object-fit:cover}
.ps-post-body{padding:1.3rem}

/* Page head & prose */
.ps-pagehead{background:linear-gradient(135deg,#0f3d22,#1f6f3f);color:#eaf5ee;padding:3rem 0 2.6rem}
.ps-pagehead-title{color:#fff;font-size:clamp(1.7rem,3.4vw,2.5rem);margin-bottom:.35rem}
.ps-pagehead-sub{color:#cfe4d7;margin:0}
.ps-crumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);margin-bottom:.7rem;font-size:.85rem}
.ps-crumb a{color:#bfdcc9}
.ps-crumb .active{color:#fff}
.ps-prose h3{margin:1.6rem 0 .6rem;font-size:1.15rem;color:var(--ps-primary)}
.ps-prose p{margin-bottom:.9rem}
.ps-prose-center{max-width:52rem;margin:0 auto}
.ps-prose-sm p,.ps-prose-sm li{font-size:.88rem}
.ps-list{padding-left:1.1rem;margin-bottom:1rem}
.ps-list li{margin-bottom:.35rem}
.ps-figure{width:100%;border-radius:var(--ps-radius);border:1px solid var(--ps-line)}

/* Kartu samping & tabel */
.ps-side-card{background:var(--ps-soft);border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.5rem}
.ps-kv{list-style:none;padding:0;margin:0}
.ps-kv li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px dashed var(--ps-line);font-size:.9rem}
.ps-kv li:last-child{border-bottom:0}
.ps-kv span{color:var(--ps-body)}
.ps-kv strong{color:var(--ps-ink);text-align:right}
.ps-kv-sm li{padding:.35rem 0;font-size:.84rem}
.ps-table th{background:var(--ps-soft);color:var(--ps-ink);font-size:.85rem}
.ps-linklist{list-style:none;padding:0;margin:0}
.ps-linklist li{border-bottom:1px solid var(--ps-line);padding:.6rem 0}
.ps-linklist li:last-child{border-bottom:0}
.ps-linklist a{color:var(--ps-ink);font-weight:600;font-size:.92rem}
.ps-linklist a:hover{color:var(--ps-primary)}
.ps-linklist-lg a{font-size:1rem}

/* Timeline */
.ps-timeline{position:relative;max-width:52rem;margin:0 auto;padding-left:1.6rem}
.ps-timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--ps-line)}
.ps-tl-item{position:relative;padding-bottom:1.6rem}
.ps-tl-dot{position:absolute;left:-1.6rem;top:.4rem;width:14px;height:14px;border-radius:50%;background:var(--ps-primary);border:3px solid #fff;box-shadow:0 0 0 2px var(--ps-line)}
.ps-tl-body{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.1rem 1.3rem}

/* Galeri & filter */
.ps-gal{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);overflow:hidden;margin:0;height:100%}
.ps-gal img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ps-soft)}
.ps-gal figcaption{padding:1rem;display:flex;flex-direction:column;gap:.15rem}
.ps-gal figcaption strong{color:var(--ps-ink)}
.ps-filter{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.ps-filter-btn{border:1px solid var(--ps-line);border-radius:999px;padding:.35rem 1rem;font-size:.85rem;font-weight:600;color:var(--ps-ink);background:#fff}
.ps-filter-btn.active,.ps-filter-btn:hover{background:var(--ps-primary);color:#fff;border-color:var(--ps-primary)}

/* Form & lain-lain */
.ps-form-card{background:#fff;border:1px solid var(--ps-line);border-radius:var(--ps-radius);padding:1.8rem;box-shadow:var(--ps-shadow)}
.form-control:focus,.form-select:focus{border-color:var(--ps-primary);box-shadow:0 0 0 .2rem rgba(31,111,63,.15)}
.ps-contact-list{list-style:none;padding:0;margin:0}
.ps-contact-list li{display:flex;gap:.8rem;padding:.65rem 0;border-bottom:1px dashed var(--ps-line)}
.ps-contact-list li:last-child{border-bottom:0}
.ps-contact-list i{color:var(--ps-primary);font-size:1.1rem;margin-top:.2rem}
.ps-contact-list strong{display:block;color:var(--ps-ink);font-size:.9rem}
.ps-contact-list span{font-size:.9rem}
.ps-map iframe{width:100%;height:260px;border:0;border-radius:var(--ps-radius)}
.ps-accordion .accordion-button{font-weight:700;color:var(--ps-ink)}
.ps-accordion .accordion-button:not(.collapsed){background:var(--ps-soft);color:var(--ps-primary)}
.ps-accordion .accordion-button:focus{box-shadow:none;border-color:var(--ps-line)}
.ps-empty{text-align:center;padding:3.5rem 1rem;color:var(--ps-body)}
.ps-empty i{font-size:2.5rem;color:var(--ps-line);display:block;margin-bottom:.7rem}
.ps-pagination .page-link{color:var(--ps-primary);border-radius:8px;margin:0 .15rem;border-color:var(--ps-line)}
.ps-pagination .active .page-link{background:var(--ps-primary);border-color:var(--ps-primary);color:#fff}

/* CTA & footer */
.ps-cta{background:linear-gradient(135deg,#1f6f3f,#0f3d22);color:#eaf5ee;padding:3.5rem 0}
.ps-cta-title{color:#fff;font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:.6rem}
.ps-cta-text{max-width:44rem;margin:0 auto 1.5rem;color:#cfe4d7}
.ps-footer{background:#0b2b18;color:#a9c6b5;padding:3rem 0 1.5rem;font-size:.92rem}
.ps-foot-title{color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}
.ps-foot-list,.ps-foot-contact{list-style:none;padding:0;margin:0}
.ps-foot-list li{margin-bottom:.45rem}
.ps-foot-list a{color:#a9c6b5}
.ps-foot-list a:hover{color:#fff}
.ps-foot-contact li{display:flex;gap:.6rem;margin-bottom:.55rem}
.ps-foot-contact i{color:var(--ps-accent)}
.ps-foot-hr{border-color:rgba(255,255,255,.12);margin:2rem 0 1rem}
.ps-foot-admin{color:#7fa891}
.ps-foot-admin:hover{color:#fff}
.ps-social{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center}
.ps-social:hover{background:var(--ps-accent);color:#2b2004}
.ps-wa{position:fixed;right:18px;bottom:18px;width:52px;height:52px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:1.5rem;box-shadow:0 8px 20px rgba(0,0,0,.2);z-index:1030}
.ps-wa:hover{color:#fff;transform:scale(1.05)}
@media print{.ps-nav,.ps-topbar,.ps-cta,.ps-wa,.ps-footer{display:none!important}}
