/* ---------- FON SELF-HOSTED (Fasa 6 — tiada pergantungan CDN) ---------- */
@font-face{
  font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/jakarta.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;
  src:url(/fonts/poppins-500.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;
  src:url(/fonts/poppins-600.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;
  src:url(/fonts/poppins-700.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;
  src:url(/fonts/poppins-800.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --hijau-ink:#0F2E21;
  --hijau:#1B4332;
  --hijau-daun:#52A675;
  --hijau-muda:#DCEDE2;
  --krim:#FAF6EF;
  --krim-gelap:#F1EADC;
  --emas:#C49A2C;
  --emas-gelap:#9C7A1E;
  --arang:#2B2B26;
  --kelabu:#6B6B62;
  --putih:#FFFFFF;
  --radius:20px;
  --radius-md:16px;
  --radius-sm:12px;
  --ease:cubic-bezier(0.22,1,0.36,1);
  --shadow-sm:0 4px 14px rgba(15,46,33,.07);
  --shadow-lg:0 22px 48px rgba(15,46,33,.16);
  /* Fasa 6: shadow berlapis lembut (rasa premium) + gradient emas CTA */
  --shadow-kad:0 1px 2px rgba(15,46,33,.05),0 10px 28px rgba(15,46,33,.08);
  --shadow-kad-hover:0 2px 4px rgba(15,46,33,.06),0 22px 48px rgba(15,46,33,.14);
  --emas-gradien:linear-gradient(160deg,#D8B04A 0%,#C49A2C 48%,#AD8722 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
/* text-size-adjust: halang iOS membesarkan teks sendiri dalam PWA standalone
   (tanpa ini butang/teks landing jadi gergasi & layout pecah di iPhone) */
html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}
:focus-visible{outline:2.5px solid var(--emas);outline-offset:3px}
body{
  font-family:'Plus Jakarta Sans',sans-serif;
  background:var(--krim);
  color:var(--arang);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;color:var(--hijau);line-height:1.22;letter-spacing:-.005em;font-weight:700}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
section{padding:110px 0}
@media(max-width:768px){section{padding:70px 0}}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--emas);margin-bottom:18px;
}
.eyebrow::before{content:'';width:34px;height:2px;background:var(--emas);border-radius:2px}
.sec-title{font-size:clamp(1.9rem,4vw,2.9rem);margin-bottom:18px}
.sec-lead{max-width:640px;color:var(--kelabu);font-size:1.06rem}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  /* safe-area atas: nav melitupi kawasan bar status iPhone dalam PWA
     (viewport-fit=cover); pelayar biasa env()=0 — tiada perubahan */
  padding:calc(18px + env(safe-area-inset-top,0px)) 0 18px;transition:all .4s var(--ease);
}
/* fallback pepejal dahulu; glass blur hanya bila disokong (elak janky peranti rendah) */
nav.solid{background:rgba(250,246,239,.96);box-shadow:0 1px 0 rgba(15,46,33,.08),0 8px 24px rgba(15,46,33,.06);padding:calc(16px + env(safe-area-inset-top,0px)) 0 16px}
@supports (backdrop-filter:blur(1px)){
  nav.solid{background:rgba(250,246,239,.74);backdrop-filter:blur(16px) saturate(1.5)}
}
.nav-in{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}
.nav-links{display:flex;gap:34px;align-items:center;font-size:.94rem;font-weight:600;color:var(--hijau)}
nav.solid .nav-links{color:var(--hijau)}
.nav-links a{opacity:.85;transition:opacity .25s}
.nav-links a:hover{opacity:1}
/* ikon troli + kiraan (sentiasa nampak, desktop & mobile) + CTA hujung kanan */
.nav-aksi{display:flex;align-items:center;gap:16px}
@media(max-width:860px){.nav-aksi{gap:6px}}
@media(max-width:860px){.nav-cta{display:none}}
.nav-troli{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:12px;color:var(--hijau);
  transition:background .2s,transform .15s var(--ease);
}
.nav-troli svg{width:23px;height:23px}
.nav-troli:hover{background:rgba(27,67,50,.07)}
.nav-troli:active{transform:scale(.92)}
.nav-troli--kosong{opacity:.55}
.nav-troli-bil{
  position:absolute;top:3px;right:1px;min-width:18px;height:18px;padding:0 5px;
  border-radius:10px;background:var(--emas-gradien);color:#fff;
  font-size:.68rem;font-weight:800;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(196,154,44,.45);
}

/* hamburger toggle */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;background:transparent;border:none;cursor:pointer;
  padding:9px;z-index:101;
}
.nav-toggle span{
  display:block;height:2.5px;width:100%;border-radius:3px;
  background:var(--hijau);transition:all .32s var(--ease);
}
nav.solid .nav-toggle span{background:var(--hijau)}
.nav-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* mobile dropdown menu */
.mobile-menu{
  display:none;flex-direction:column;gap:4px;
  background:rgba(15,46,33,.97);backdrop-filter:blur(14px);
  padding:0 24px;max-height:0;overflow:hidden;
  transition:max-height .4s var(--ease),padding .4s var(--ease);
}
.mobile-menu.open{max-height:420px;padding:14px 24px 26px}
.mobile-menu a{
  color:var(--krim);font-weight:600;font-size:1.05rem;
  padding:14px 4px;border-bottom:1px solid rgba(250,246,239,.12);
  transition:color .2s;
}
.mobile-menu a:last-of-type{border-bottom:none}
.mobile-menu a.btn-emas{
  color:#fff;justify-content:center;border-bottom:none;border-radius:50px;padding:15px;
}

@media(max-width:860px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .mobile-menu{display:flex}
}

/* ---------- BUTANG ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:15px 36px;border-radius:60px;font-weight:700;font-size:.98rem;
  white-space:nowrap;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,filter .3s;
  cursor:pointer;border:none;
}
.btn:active{transform:translateY(0) scale(.97);transition-duration:.08s}
.btn-emas{
  background:var(--emas-gradien);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 16px rgba(196,154,44,.25);
}
.btn-emas:hover{filter:brightness(1.06);transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 14px 30px rgba(196,154,44,.4)}
.btn-ghost{background:rgba(255,255,255,.6);color:var(--hijau);border:1.5px solid rgba(27,67,50,.38)}
.btn-ghost:hover{border-color:var(--hijau);background:rgba(255,255,255,.85);transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.btn-hijau{background:var(--hijau);color:var(--krim)}
.btn-hijau:hover{background:var(--hijau-ink);transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,46,33,.3)}

/* ---------- HERO ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;
  overflow:hidden;padding:140px 0 90px;
  background:radial-gradient(125% 120% at 72% 30%,#FFFDF8 0%,var(--krim) 52%,var(--krim-gelap) 100%);
}
/* video produk kolum kanan — ratio penuh 16:9 (tanpa zoom/potong), tepi lembut lebur ke krim */
.hero-bg-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;z-index:0;
}
.hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(250,246,239,.94) 0%,rgba(250,246,239,.62) 32%,rgba(250,246,239,.14) 56%,rgba(250,246,239,0) 72%);
}
@media(max-width:900px){
  /* Phone: video dianjak (fokus 70% kanan) supaya botol masuk bingkai,
     scrim dinipiskan ke kanan-bawah supaya video kelihatan; zon teks
     (kiri-atas) kekal cukup legap untuk kebolehbacaan */
  .hero-bg-video{object-position:70% center}
  .hero-scrim{background:linear-gradient(115deg,rgba(250,246,239,.92) 0%,rgba(250,246,239,.70) 34%,rgba(250,246,239,.42) 62%,rgba(250,246,239,.18) 88%)}
}
.hero-blob{position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px)}
.blob-a{width:520px;height:520px;top:-160px;right:-120px;background:radial-gradient(circle,rgba(82,166,117,.10),transparent 70%);animation:floatA 12s ease-in-out infinite}
.blob-b{width:420px;height:420px;bottom:-150px;left:-100px;background:radial-gradient(circle,rgba(196,154,44,.10),transparent 70%);animation:floatB 14s ease-in-out infinite}
@keyframes floatA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-55px,45px) scale(1.1)}}
@keyframes floatB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(55px,-45px) scale(1.08)}}
.brand img{height:58px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.12))}
nav.solid .brand img{height:54px;filter:none}
@media(max-width:640px){
  .brand img{height:52px}
  nav.solid .brand img{height:48px}
}
#ambient{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;display:none}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:44px;text-align:left}}
.hero h1{color:var(--hijau-ink);font-size:clamp(2.4rem,5.4vw,4rem);font-weight:700;margin-bottom:22px}
.hero h1 em{font-style:italic;color:var(--emas-gelap)}
.hero .eyebrow{color:var(--emas-gelap)}
.hero .eyebrow::before{background:var(--emas-gelap)}
.hero p.lead{color:#3b4a41;font-size:1.12rem;max-width:520px;margin-bottom:34px}
@media(max-width:900px){.hero p.lead{margin:0 0 34px}}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:42px}
@media(max-width:900px){.hero-cta{justify-content:flex-start}}
.trust{display:flex;gap:26px;flex-wrap:wrap}
@media(max-width:900px){.trust{justify-content:flex-start}}
.trust div{display:flex;align-items:center;gap:9px;color:rgba(40,55,47,.9);font-size:.86rem;font-weight:600}
.trust svg{width:18px;height:18px;flex:none}
.hero-visual{position:relative;display:flex;justify-content:center;perspective:1400px}
.hero-visual::before{display:none}
@keyframes glowPulse{
  0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.09)}
}
.hero-produk{
  width:min(500px,92%);position:relative;z-index:2;display:block;
  filter:drop-shadow(0 34px 46px rgba(15,46,33,.30));
  transform-origin:50% 90%;
  animation:heroFloat 6.5s var(--ease) infinite;
}
@keyframes heroFloat{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-22px) scale(1.014)}
}
/* spotlight glow yang berdenyut belakang botol — rasa "hidup" naturmeric */
.hero-glow-orb{
  position:absolute;z-index:1;width:78%;aspect-ratio:1;top:42%;left:50%;
  transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,rgba(255,247,225,.9) 0%,rgba(196,154,44,.28) 34%,rgba(82,166,117,.14) 56%,transparent 72%);
  animation:orbPulse 6.5s var(--ease) infinite;
}
@keyframes orbPulse{
  0%,100%{opacity:.65;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}
}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}

/* ---------- HERO MOBILE REFINEMENT ---------- */
@media(max-width:900px){
  .hero{padding:138px 0 70px;min-height:auto}
  .hero-grid{gap:32px}
  .hero-visual{order:2;margin-top:4px}
  .hero-produk{width:min(380px,86%)}
  .hero .eyebrow{margin-bottom:14px}
  .hero h1{font-size:clamp(2.1rem,8vw,2.9rem);margin-bottom:18px}
  .hero p.lead{font-size:1.02rem;margin-bottom:28px}
  .hero-cta{margin-bottom:30px}
}
/* glow halus belakang logo supaya tak terapung */
.brand{position:relative}
.brand::before{
  content:'';position:absolute;left:-12px;top:50%;transform:translateY(-50%);
  width:130px;height:130px;border-radius:50%;
  background:radial-gradient(circle,rgba(82,166,117,.14),transparent 70%);
  pointer-events:none;z-index:-1;
}
nav.solid .brand::before{opacity:0}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--emas);overflow:hidden;padding:15px 0}
.marquee-track{display:flex;gap:60px;white-space:nowrap;animation:marquee 26s linear infinite;width:max-content}
.marquee span{color:#fff;font-weight:700;font-size:.92rem;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:60px}
.marquee span::after{content:'✦';font-size:.8rem}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- MARQUEE PENYAKIT ---------- */
/* penjajaran marquee (Fasa 6 pembetulan #2): kad pertama mula sejajar dengan
   tepi kandungan .wrap; fade mask kemas di kedua-dua tepi viewport */
.pmq{
  overflow:hidden;padding:48px 0 16px;
  padding-left:max(24px,calc((100% - 1132px)/2));
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.pmq-track{display:flex;gap:22px;width:max-content;animation:marquee 55s linear infinite}
.pmq:hover .pmq-track{animation-play-state:paused}
.p-card{
  position:relative;width:252px;height:252px;border-radius:18px;
  overflow:hidden;flex:none;box-shadow:var(--shadow-kad);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
@media(hover:hover){
  .p-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-kad-hover)}
}
.p-card img{width:100%;height:100%;object-fit:cover;object-position:center}
.p-card span{
  position:absolute;left:0;right:0;bottom:0;padding:52px 16px 16px;
  background:linear-gradient(transparent,rgba(0,0,0,.6) 35%,rgba(0,0,0,.95));
  color:#fff;font-weight:800;font-size:1.05rem;letter-spacing:.02em;
  text-shadow:0 1px 6px rgba(0,0,0,.9);line-height:1.3;
}

/* ---------- MARQUEE VIDEO ---------- */
.vmq{
  overflow:hidden;padding:50px 0 10px;
  padding-left:max(24px,calc((100% - 1132px)/2));
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.vmq-track{display:flex;gap:22px;width:max-content;animation:vmarquee 60s linear infinite}
.vmq:hover .vmq-track{animation-play-state:paused}
.vid-card{
  position:relative;flex:0 0 246px;width:246px;aspect-ratio:9/16;
  border-radius:var(--radius);overflow:hidden;
  background:var(--hijau-ink);cursor:pointer;box-shadow:var(--shadow-kad);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
@media(hover:hover){
  .vid-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-kad-hover)}
}
.vid-card:active{transform:scale(.98)}
.vid-card video,.vid-card img.poster{width:100%;height:100%;object-fit:cover;display:block}
@keyframes vmarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.vid-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(transparent 55%,rgba(15,46,33,.8));
  transition:opacity .3s;
}
.vid-play{
  width:58px;height:58px;border-radius:50%;background:rgba(250,246,239,.92);
  display:flex;align-items:center;justify-content:center;
  transition:transform .35s var(--ease),background .3s;
  box-shadow:0 6px 20px rgba(0,0,0,.3);
}
.vid-card:hover .vid-play{transform:scale(1.12);background:var(--emas)}
.vid-play svg{width:22px;height:22px;fill:var(--hijau);margin-left:3px;transition:fill .3s}
.vid-card:hover .vid-play svg{fill:#fff}
.vid-title{
  position:absolute;left:0;right:0;bottom:0;padding:0 14px 16px;
  color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:.92rem;
  line-height:1.3;text-shadow:0 1px 6px rgba(0,0,0,.85);z-index:1;
}

/* modal video penuh */
.vid-modal{
  position:fixed;inset:0;z-index:200;background:rgba(10,26,18,.92);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.vid-modal.open{display:flex}
.vid-modal video{
  max-width:min(420px,92vw);max-height:88vh;border-radius:18px;
  box-shadow:0 30px 70px rgba(0,0,0,.6);background:#000;
}
.vid-modal-close{
  position:absolute;top:22px;right:24px;width:46px;height:46px;border-radius:50%;
  background:rgba(250,246,239,.15);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .3s;
}
.vid-modal-close:hover{background:rgba(250,246,239,.3)}
.vid-modal-close svg{width:24px;height:24px;stroke:#fff;stroke-width:2.2}

/* ---------- KAD KELEBIHAN ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
@media(max-width:960px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid-3{grid-template-columns:1fr}}
.card{
  background:var(--putih);border-radius:var(--radius);padding:38px 30px;
  box-shadow:var(--shadow-kad);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
  border:1px solid rgba(15,46,33,.06);
}
@media(hover:hover){
  .card:hover{transform:translateY(-10px);box-shadow:var(--shadow-kad-hover)}
}
.card .ico{
  width:58px;height:58px;border-radius:16px;background:var(--hijau-muda);
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;
  transition:background .3s,transform .45s var(--ease);
}
.card:hover .ico{background:var(--hijau);transform:rotate(-6deg) scale(1.06)}
.card .ico svg{width:28px;height:28px;stroke:var(--hijau);transition:stroke .3s}
.card:hover .ico svg{stroke:var(--krim)}
.card h3{font-size:1.18rem;margin-bottom:12px}
.card p{color:var(--kelabu);font-size:.95rem}

/* ---------- QUOTE ---------- */
.quote{background:var(--hijau);position:relative;overflow:hidden}
.quote::before{
  content:'';position:absolute;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(82,166,117,.3),transparent 70%);
  top:-200px;right:-160px;animation:floatA 13s ease-in-out infinite;
}
#ambient2{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.quote-grid{position:relative;z-index:1;display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
@media(max-width:880px){.quote-grid{grid-template-columns:1fr;text-align:center}}
.quote-img{position:relative;display:flex;justify-content:center;align-items:flex-end}
@keyframes morph{
  0%,100%{border-radius:46% 54% 52% 48%/48% 46% 54% 52%}
  50%{border-radius:54% 46% 48% 52%/52% 54% 46% 48%}
}
.quote-img img{
  width:min(360px,80%);position:relative;z-index:1;
  -webkit-mask-image:linear-gradient(to bottom,#000 76%,transparent 98%);
  mask-image:linear-gradient(to bottom,#000 76%,transparent 98%);
}
.quote blockquote{
  font-family:'Poppins',sans-serif;font-size:clamp(1.25rem,2.4vw,1.7rem);
  color:var(--krim);font-weight:500;font-style:italic;line-height:1.55;margin-bottom:26px;
}
.quote blockquote::before{
  content:'“';display:block;font-size:5rem;line-height:.6;color:#E9C45F;
  margin-bottom:24px;font-style:normal;
}
.quote cite{color:#E9C45F;font-weight:700;font-style:normal;letter-spacing:.06em;font-size:.95rem}

/* ---------- MASALAH KESIHATAN (scroll-snap) ---------- */
.health{background:var(--krim-gelap)}
.h-scroll{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:54px 6px 26px;margin:0 -6px;
  scrollbar-width:thin;scrollbar-color:var(--hijau-daun) transparent;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
}
.h-card{
  flex:0 0 290px;scroll-snap-align:start;background:var(--putih);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-kad);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
@media(hover:hover){
  .h-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-kad-hover)}
}
.h-card img{height:200px;width:100%;object-fit:cover}
.h-card .pad{padding:24px 22px 28px}
.h-card h3{font-size:1.08rem;margin-bottom:10px}
.h-card p{font-size:.88rem;color:var(--kelabu)}
.h-hint{display:flex;align-items:center;gap:10px;color:var(--kelabu);font-size:.88rem;font-weight:600;margin-top:8px}

/* ---------- TESTIMONI (review cards) ---------- */
.testi{background:var(--putih);position:relative;overflow:hidden}
.testi-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.btn-outline{
  background:transparent;color:var(--hijau);border:1.5px solid var(--hijau);
  padding:13px 30px;
}
.btn-outline:hover{background:var(--hijau);color:var(--krim);transform:translateY(-3px)}
.slider{position:relative;margin-top:48px}
.slides{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:8px 4px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
}
.slides::-webkit-scrollbar{display:none}
.r-card{
  flex:0 0 350px;scroll-snap-align:center;background:var(--krim);
  border:1px solid rgba(15,46,33,.08);border-radius:var(--radius);
  padding:28px 26px;display:flex;flex-direction:column;gap:14px;
  box-shadow:var(--shadow-kad);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
@media(hover:hover){
  .r-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-kad-hover)}
}
@media(max-width:640px){
  .slides{gap:16px;padding:8px 0 18px}
  .r-card{flex:0 0 calc(100vw - 48px);scroll-snap-align:center;padding:24px 22px}
  .r-head{flex-wrap:wrap}
  .r-src{margin-left:0}
}
.r-head{display:flex;align-items:center;gap:13px}
.r-ava{
  width:46px;height:46px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:1.1rem;color:#fff;background:var(--hijau-daun);
}
.r-head strong{display:block;font-size:.97rem;color:var(--arang)}
.r-stars{color:var(--emas);font-size:.85rem;letter-spacing:2px}
.r-src{
  margin-left:auto;font-size:.7rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--hijau-daun);
  background:var(--hijau-muda);padding:5px 11px;border-radius:30px;white-space:nowrap;
}
.r-item{font-size:.8rem;color:var(--kelabu);font-weight:600}
.r-text{font-size:.94rem;color:var(--arang);line-height:1.7}
.r-verify{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--hijau-daun);margin-top:auto}
.r-verify svg{width:15px;height:15px;flex:none}
.slider-nav{display:flex;gap:14px;justify-content:center;margin-top:26px}
.slider-nav button{
  width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(15,46,33,.25);
  background:transparent;color:var(--hijau);font-size:1.2rem;cursor:pointer;
  transition:all .3s var(--ease);display:flex;align-items:center;justify-content:center;
}
.slider-nav button:hover{background:var(--emas);border-color:var(--emas);color:#fff;transform:translateY(-3px)}
.slider-nav button:active{transform:scale(.92)}

/* ---------- PRODUK / CTA ---------- */
.produk-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
@media(max-width:880px){.produk-grid{grid-template-columns:1fr;text-align:center}}
.produk-img{position:relative;display:flex;justify-content:center}
.produk-img::before{
  content:'';position:absolute;inset:4%;border-radius:46% 54% 52% 48%/48% 46% 54% 52%;
  background:var(--hijau-muda);animation:morph 10s ease-in-out infinite;
}
.produk-img img{width:min(420px,88%);position:relative;z-index:1;filter:drop-shadow(0 26px 50px rgba(15,46,33,.25));animation:heroFloat 7s ease-in-out infinite}
.harga{font-family:'Poppins',sans-serif;font-size:2rem;font-weight:700;color:var(--hijau);margin:18px 0 6px}
.harga small{font-size:1rem;color:var(--kelabu);font-weight:500;font-family:'Plus Jakarta Sans',sans-serif}
.harga-lama{font-size:1.3rem;color:var(--kelabu);text-decoration:line-through;font-weight:500;margin-right:12px}
.harga-baru{font-family:'Poppins',sans-serif;font-size:2.6rem;font-weight:800;color:var(--hijau)}
.jimat-badge{
  display:inline-block;background:#D64545;color:#fff;font-family:'Poppins',sans-serif;
  font-weight:700;font-size:.82rem;letter-spacing:.04em;padding:6px 14px;
  border-radius:40px;margin-left:10px;vertical-align:middle;
  box-shadow:0 4px 12px rgba(214,69,69,.3);
}
.kupon{
  margin:20px 0;padding:18px 22px;background:#fff;border:2px dashed var(--emas);
  border-radius:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
@media(max-width:880px){.kupon{justify-content:center;text-align:center}}
.kupon-info{flex:1;min-width:180px}
.kupon-info strong{display:block;font-family:'Poppins',sans-serif;color:var(--hijau);font-size:1.05rem;margin-bottom:2px}
.kupon-info span{font-size:.86rem;color:var(--kelabu)}
.kupon-kod{
  font-family:'Poppins',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:.05em;
  color:var(--emas-gelap);background:var(--krim-gelap);padding:10px 20px;
  border-radius:10px;border:1.5px solid var(--emas);white-space:nowrap;
}
.beli-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
@media(max-width:880px){.beli-row{justify-content:center}}
.trust-mini{display:flex;flex-direction:column;gap:9px}
.trust-mini span{
  display:flex;align-items:center;gap:8px;font-size:.86rem;font-weight:600;color:var(--hijau);
}
.trust-mini svg{width:18px;height:18px;flex:none;stroke:var(--hijau-daun)}
.sale-tag{
  display:inline-block;background:var(--emas);color:#fff;font-weight:700;
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 18px;border-radius:40px;margin-bottom:16px;
}
.cod{margin-top:26px;padding:20px 26px;background:var(--krim-gelap);border-radius:16px;font-size:.95rem;display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}
.cod a{color:var(--hijau);font-weight:700;border-bottom:2px solid var(--emas)}

/* ---------- PRODUK: GRID KAD (2+ produk aktif) ---------- */
.produk-kad-head{text-align:center;margin-bottom:48px}
.produk-kad-head .sec-title{margin-bottom:0}
.produk-kad-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:28px;max-width:920px;margin:0 auto;
}
.produk-kad{
  background:var(--putih);border:1px solid rgba(27,67,50,.08);border-radius:22px;
  padding:30px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;
  box-shadow:var(--shadow-kad);transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
@media(hover:hover){
  .produk-kad:hover{transform:translateY(-6px);box-shadow:var(--shadow-kad-hover)}
}
.produk-kad-img{height:190px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.produk-kad-img img{max-height:100%;max-width:82%;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(15,46,33,.2))}
.produk-kad-nama{font-size:1.22rem;margin-bottom:6px}
.produk-kad-harga{margin-bottom:18px}
.produk-kad-harga .harga-lama{font-size:.95rem;margin-right:8px}
.produk-kad-harga .harga-baru{font-size:1.7rem}
.produk-kad-harga .jimat-badge{font-size:.7rem;padding:4px 11px;margin-left:8px}
.produk-kad-aksi{margin-top:auto;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}
.produk-kad .sale-tag{margin-bottom:12px;font-size:.68rem;padding:5px 14px}
.produk-kad-cod{
  display:inline-flex;align-items:center;min-height:44px;padding:2px 12px;
  font-size:.85rem;font-weight:600;color:var(--kelabu);transition:color .2s;
}
.produk-kad-cod:hover{color:var(--hijau)}
/* kad solo — 1 produk: kad MENDATAR mengisi lebar (gambar kiri | butiran
   kanan) dengan permukaan kad sama seperti grid; bertindan menegak di mobile */
.produk-kad-solo{grid-template-columns:min(920px,100%);justify-content:center}
.produk-kad-solo .produk-kad{
  display:grid;grid-template-columns:.85fr 1.15fr;column-gap:48px;row-gap:10px;
  grid-template-areas:"img tag" "img nama" "img harga" "img aksi";
  align-items:center;align-content:center;text-align:left;padding:44px 48px;
}
.produk-kad-solo .sale-tag{grid-area:tag;justify-self:start;margin-bottom:2px}
.produk-kad-solo .produk-kad-img{grid-area:img;height:auto;margin:0;align-self:center}
.produk-kad-solo .produk-kad-img img{max-height:340px;max-width:100%}
.produk-kad-solo .produk-kad-nama{grid-area:nama;font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:0}
.produk-kad-solo .produk-kad-harga{grid-area:harga;margin-bottom:10px}
.produk-kad-solo .produk-kad-harga .harga-baru{font-size:2.2rem}
.produk-kad-solo .produk-kad-harga .harga-lama{font-size:1.15rem}
.produk-kad-solo .produk-kad-aksi{
  grid-area:aksi;margin-top:4px;width:auto;
  flex-direction:row;align-items:center;justify-content:flex-start;gap:6px 14px;flex-wrap:wrap;
}
@media(max-width:759px){
  .produk-kad-solo .produk-kad{
    display:flex;flex-direction:column;align-items:center;text-align:center;
    padding:32px 26px 28px;gap:10px;
  }
  .produk-kad-solo .sale-tag{margin-bottom:4px}
  .produk-kad-solo .produk-kad-img img{max-height:250px}
  .produk-kad-solo .produk-kad-aksi{flex-direction:column;width:100%;margin-top:6px}
}
/* strip kupon + trust — satu blok bersepadu (Fasa 6 pembetulan #3) */
.produk-strip{
  max-width:920px;margin:44px auto 0;display:flex;align-items:stretch;
  flex-wrap:wrap;background:var(--putih);border:1px solid rgba(27,67,50,.08);
  border-radius:var(--radius-md);box-shadow:var(--shadow-kad);overflow:hidden;
}
.produk-strip .kupon{flex:1 1 380px;margin:0;border:none;border-radius:0;background:transparent;padding:22px 26px}
.produk-strip .trust-mini-baris{
  flex:1 1 260px;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:12px;padding:22px 26px;border-left:1.5px dashed rgba(196,154,44,.45);
}
@media(max-width:719px){
  .produk-strip .trust-mini-baris{border-left:none;border-top:1.5px dashed rgba(196,154,44,.45)}
}
.cod-grid{max-width:920px;margin-left:auto;margin-right:auto}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:780px;margin:50px auto 0}
details{
  background:var(--putih);border-radius:var(--radius-md);margin-bottom:14px;
  box-shadow:var(--shadow-kad);overflow:hidden;
  border:1px solid rgba(15,46,33,.06);transition:box-shadow .3s,border-color .3s;
}
details[open]{box-shadow:var(--shadow-kad-hover);border-color:rgba(196,154,44,.4)}
summary{
  list-style:none;cursor:pointer;padding:22px 26px;font-weight:700;
  font-size:1rem;color:var(--hijau);display:flex;justify-content:space-between;
  align-items:center;gap:18px;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:'+';font-size:1.5rem;color:var(--emas);flex:none;
  transition:transform .35s var(--ease);line-height:1;
}
details[open] summary::after{transform:rotate(45deg)}
details .ans{padding:0 26px 24px;color:var(--kelabu);font-size:.95rem}

/* ---------- FOOTER (redesign Fasa 8+ — pautan dalaman sahaja) ---------- */
footer{background:var(--hijau-ink);color:rgba(250,246,239,.75);padding:70px 0 34px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px 48px;margin-bottom:48px}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:34px 40px}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;gap:30px}}
footer h4{color:var(--krim);font-size:.85rem;margin-bottom:14px;letter-spacing:.08em;text-transform:uppercase}
footer ul{list-style:none;display:grid;gap:2px;font-size:.94rem}
footer ul a{
  display:inline-flex;align-items:center;min-height:36px;
  transition:color .2s,transform .15s var(--ease);
}
footer ul a[hidden]{display:none} /* atribut hidden mesti menang (cth. Pasang App) */
footer ul a:active{transform:translateX(2px)}
footer a:hover{color:#E9C45F}
@media(max-width:760px){
  footer ul a{min-height:44px}
}
.foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.foot-brand img{width:50px;height:50px;border-radius:50%;background:var(--krim);padding:3px}
.foot-brand span{font-family:'Poppins',sans-serif;font-weight:700;font-size:1.2rem;color:var(--krim)}
.copyright{border-top:1px solid rgba(250,246,239,.14);padding-top:26px;font-size:.84rem;text-align:center}

/* ---------- WHATSAPP FLOAT ---------- */
.wa-float{
  position:fixed;bottom:calc(26px + env(safe-area-inset-bottom,0px));right:26px;z-index:99;width:68px;height:68px;
  border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.45);
  transition:transform .35s var(--ease);
  animation:waPulse 2.6s ease-in-out infinite;
}
.wa-float:hover{transform:scale(1.12)}
.wa-float svg{width:54px;height:54px;fill:#fff}
@keyframes waPulse{0%,100%{box-shadow:0 10px 26px rgba(37,211,102,.45)}50%{box-shadow:0 10px 26px rgba(37,211,102,.45),0 0 0 14px rgba(37,211,102,0)}}

/* ---------- BELI SEKARANG — denyut + glow ---------- */
.btn-pulse{animation:beliPulse 1.9s ease-in-out infinite}
.btn-pulse:hover{animation:none}
@keyframes beliPulse{
  0%,100%{
    transform:scale(1);
    box-shadow:0 6px 18px rgba(196,154,44,.35),0 0 0 0 rgba(196,154,44,.5);
  }
  50%{
    transform:scale(1.05);
    box-shadow:0 10px 30px rgba(196,154,44,.6),0 0 0 12px rgba(196,154,44,0);
  }
}
@media(prefers-reduced-motion:reduce){
  .btn-pulse{animation:none}
}
.nav-links .btn-pulse{animation:beliPulseNav 1.9s ease-in-out infinite}
@keyframes beliPulseNav{
  0%,100%{box-shadow:0 4px 14px rgba(196,154,44,.35),0 0 0 0 rgba(196,154,44,.5)}
  50%{box-shadow:0 6px 20px rgba(196,154,44,.6),0 0 0 9px rgba(196,154,44,0)}
}

/* ---------- REVEAL ---------- */
.rv-on .rv{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:translateY(0)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv-on .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- TROLI (Fasa 3) ---------- */
.troli-sec{padding:150px 0 90px;min-height:70vh}
.troli-sec .sec-title{margin-bottom:34px}
.troli-alert{
  max-width:820px;background:#FDF3E7;border:1.5px solid var(--emas);border-radius:12px;
  padding:14px 18px;color:var(--emas-gelap);font-weight:600;margin-bottom:22px;
}
.troli-kosong{display:grid;gap:20px;justify-items:start;color:var(--kelabu)}
.troli-senarai{display:grid;gap:16px;max-width:820px}
.troli-item{
  display:flex;align-items:center;gap:18px;background:var(--putih);
  border:1px solid rgba(27,67,50,.08);border-radius:18px;padding:16px 20px;
  box-shadow:0 10px 26px rgba(15,46,33,.06);
}
.troli-item-img{width:64px;height:64px;flex:none;display:flex;align-items:center;justify-content:center}
.troli-item-img img{max-width:100%;max-height:100%;object-fit:contain}
.troli-item-info{flex:1;display:grid;gap:2px;min-width:140px}
.troli-item-harga{font-size:.85rem;color:var(--kelabu)}
.troli-qty{display:flex;align-items:center;gap:10px}
.troli-qty button{
  width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(27,67,50,.25);
  background:#fff;color:var(--hijau);font-size:1.1rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,border-color .2s;
}
.troli-qty button:hover{background:var(--krim-gelap);border-color:var(--hijau)}
.troli-qty button:active{transform:scale(.92);background:var(--krim-gelap)}
.troli-qty span{min-width:24px;text-align:center;font-weight:700}
.troli-item-jumlah{font-weight:800;color:var(--hijau);min-width:90px;text-align:right}
.troli-buang{border:none;background:none;color:var(--kelabu);font-size:1.4rem;cursor:pointer;line-height:1;padding:4px}
.troli-buang:hover{color:#B3261E}
.troli-ringkasan{
  max-width:820px;margin-top:28px;background:var(--putih);
  border:2px dashed var(--emas);border-radius:18px;padding:24px 26px;
}
.troli-subtotal{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem}
.troli-subtotal strong{font-size:1.5rem;color:var(--hijau)}
.troli-nota{color:var(--kelabu);font-size:.88rem;margin:8px 0 18px}
.troli-aksi{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.troli-sambung{color:var(--hijau);font-weight:600}
button.btn{font-family:inherit}
.produk-kad-aksi form{display:contents}
.beli-row form{display:contents}
@media(max-width:600px){
  .troli-item{flex-wrap:wrap}
  .troli-item-jumlah{text-align:left}
}

/* ---------- CHECKOUT (Fasa 3) ---------- */
.checkout-sec{padding:150px 0 90px}
.checkout-sec .sec-title{margin-bottom:34px}
.checkout-subtajuk{font-size:1.05rem;color:var(--hijau);margin:26px 0 14px}
.checkout-subtajuk:first-child{margin-top:0}
.checkout-grid{display:grid;grid-template-columns:1fr 360px;gap:36px;align-items:start;max-width:1020px}
.checkout-borang{background:var(--putih);border:1px solid rgba(27,67,50,.08);border-radius:18px;padding:26px 28px;box-shadow:0 10px 26px rgba(15,46,33,.06)}
.cf-baris{margin-bottom:16px}
.cf-baris label{display:block;font-weight:600;font-size:.9rem;color:var(--hijau);margin-bottom:6px}
.cf-baris input,.cf-baris select,.cf-baris textarea{
  width:100%;padding:12px 14px;border:1.5px solid rgba(27,67,50,.2);border-radius:12px;
  font-family:inherit;font-size:.95rem;color:inherit;background:#fff;
  transition:border-color .2s,box-shadow .2s;
}
.cf-baris input:focus,.cf-baris select:focus,.cf-baris textarea:focus{
  outline:none;border-color:var(--emas);box-shadow:0 0 0 3px rgba(196,154,44,.15);
}
.cf-dua{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf-tiga{display:grid;grid-template-columns:110px 1fr 1fr;gap:14px}
.cf-ralat{display:block;color:#B3261E;font-size:.82rem;margin-top:5px}
.cf-ralat-blok{margin:0 0 14px}
.cf-kaedah{display:grid;gap:12px;margin-bottom:18px}
.cf-kaedah-kad{
  display:grid;gap:3px;padding:15px 16px 15px 44px;border:1.5px solid rgba(27,67,50,.2);
  border-radius:14px;cursor:pointer;position:relative;transition:border-color .2s,background .2s;
}
.cf-kaedah-kad input{position:absolute;left:16px;top:19px;accent-color:var(--emas)}
.cf-kaedah-kad strong{color:var(--hijau)}
.cf-kaedah-kad span{font-size:.86rem;color:var(--kelabu)}
.cf-kaedah-kad.dipilih{border-color:var(--emas);background:#FDF9EF}
/* panel Bank In / Transfer Terus — butiran akaun + upload resit */
.cf-bankin{
  border:1.5px dashed var(--emas);border-radius:14px;background:#FDF9EF;
  padding:16px 18px;margin-bottom:18px;
}
.cf-bankin-arahan{font-size:.9rem;color:var(--kelabu);margin-bottom:12px}
.cf-bankin-arahan strong{color:var(--hijau)}
.cf-bankin-akaun{display:grid;gap:8px;margin-bottom:14px}
.cf-bankin-akaun div{display:flex;gap:10px;font-size:.92rem}
.cf-bankin-akaun dt{flex:none;width:130px;color:var(--kelabu)}
.cf-bankin-akaun dd{font-weight:700;color:var(--hijau);letter-spacing:.02em}
.cf-bankin input[type=file]{font-size:.88rem}
.cf-bankin-memuat{display:block;font-size:.85rem;color:var(--kelabu);margin-top:6px}
.cf-bankin-sedia{display:block;font-size:.85rem;color:var(--hijau);font-weight:600;margin-top:6px}
.checkout-hantar{width:100%;justify-content:center}
.checkout-hantar:disabled{opacity:.6;cursor:wait;transform:none}
.checkout-ringkasan{
  background:var(--putih);border:2px dashed var(--emas);border-radius:18px;
  padding:24px 26px;position:sticky;top:110px;
}
.cr-senarai{list-style:none;display:grid;gap:10px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(27,67,50,.12)}
.cr-senarai li{display:flex;justify-content:space-between;gap:12px;font-size:.92rem}
.cr-baris{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:8px}
.cr-jumlah{font-size:1.05rem;margin-top:10px;padding-top:12px;border-top:1px solid rgba(27,67,50,.12)}
.cr-jumlah strong{font-size:1.35rem;color:var(--hijau)}
.checkout-ringkasan .troli-sambung{display:inline-block;margin-top:14px;font-size:.9rem}
@media(max-width:860px){
  .checkout-grid{grid-template-columns:1fr}
  .checkout-ringkasan{position:static}
}
@media(max-width:520px){
  .cf-dua,.cf-tiga{grid-template-columns:1fr}
}

/* ---------- TERIMA KASIH (Fasa 3) ---------- */
.tk-sec{padding:150px 0 90px;min-height:70vh}
.tk-sec .sec-lead{margin-bottom:26px}
.tk-sec .btn{margin-bottom:30px}
.tk-butiran{
  max-width:460px;background:var(--putih);border:1px solid rgba(27,67,50,.08);
  border-radius:18px;padding:22px 26px;box-shadow:var(--shadow-kad);
  display:grid;gap:12px;margin-bottom:26px;
}
.tk-butiran div{display:flex;justify-content:space-between;gap:16px}
.tk-butiran span{color:var(--kelabu)}
.tk-butiran strong{color:var(--hijau)}

/* ---------- SEMAK PESANAN (Fasa 8) ---------- */
.sp-borang{max-width:620px}
.sp-borang .checkout-hantar{width:auto;min-width:200px}
.sp-hasil{margin-top:30px;display:grid;gap:16px;max-width:620px}
.sp-butiran{max-width:none;margin-bottom:0}
.sp-jumlah{border-top:1px solid rgba(27,67,50,.12);padding-top:10px;font-weight:800}
.sp-jumlah strong{font-size:1.2rem}
.sp-badge{
  display:inline-flex;align-items:center;padding:5px 13px;border-radius:30px;
  font-size:.8rem;font-weight:700;letter-spacing:.03em;
}
.sp-badge--hijau{background:var(--hijau-muda);color:var(--hijau)}
.sp-badge--amber{background:#FBEEC9;color:var(--emas-gelap)}
.sp-badge--merah{background:#F8DEDE;color:#B3261E}
.sp-badge--biru{background:#DDEBF7;color:#1B4F72}
.sp-badge--kelabu{background:var(--krim-gelap);color:var(--kelabu)}
@media(max-width:760px){
  .sp-borang .checkout-hantar{width:100%}
}

/* ---------- AUDIT JARAK (ruang nafas pautan bawah halaman) ---------- */
.troli-sec > .wrap > .troli-sambung,
.checkout-sec > .wrap > .troli-sambung,
.tk-sec > .wrap > .troli-sambung{display:inline-block;margin-top:26px}
.sp-hasil + .troli-sambung{margin-top:20px}
.tk-sec .troli-sambung{display:inline-block}

/* ---------- STEPPER ALIRAN BELI (Fasa 6 R2) ---------- */
.stepper{
  list-style:none;display:flex;align-items:flex-start;gap:0;
  max-width:420px;margin:0 0 36px;padding:0;
}
.stepper li{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;
  position:relative;color:var(--kelabu);font-size:.8rem;font-weight:700;
}
.stepper li:not(:last-child)::after{
  content:'';position:absolute;top:16px;left:calc(50% + 22px);right:calc(-50% + 22px);
  height:2.5px;border-radius:2px;background:rgba(27,67,50,.15);
}
.stepper li.siap:not(:last-child)::after{background:var(--hijau-daun)}
.stepper-dot{
  width:33px;height:33px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#fff;border:2px solid rgba(27,67,50,.2);color:var(--kelabu);
  font-size:.85rem;font-weight:800;transition:all .3s var(--ease);
}
.stepper-dot svg{width:16px;height:16px}
.stepper li.aktif{color:var(--hijau)}
.stepper li.aktif .stepper-dot{background:var(--emas-gradien);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(196,154,44,.35)}
.stepper li.siap .stepper-dot{background:var(--hijau-daun);border-color:transparent;color:#fff;box-shadow:none}
.stepper-label{letter-spacing:.04em;text-transform:uppercase}

/* ---------- R2: NATIVE POLISH TROLI/CHECKOUT ---------- */
/* input >= 16px — elak auto-zoom iOS */
.cf-baris input,.cf-baris select,.cf-baris textarea{font-size:1rem;padding:13px 14px}
/* kad kaedah bayaran lebih besar, jelas boleh tekan */
.cf-kaedah-kad{
  padding:18px 18px 18px 54px;border-radius:var(--radius-md);min-height:64px;
  border-width:2px;transition:border-color .2s,background .2s,transform .15s var(--ease);
}
.cf-kaedah-kad:active{transform:scale(.99)}
.cf-kaedah-kad input{left:18px;top:23px;width:19px;height:19px}
.cf-kaedah-kad.dipilih{box-shadow:0 0 0 3px rgba(196,154,44,.14)}
/* spinner butang bayar */
.checkout-memproses{display:inline-flex;align-items:center;gap:10px}
.spinner{
  width:17px;height:17px;border-radius:50%;flex:none;
  border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
/* butang qty troli — sasaran sentuh >= 44px */
.troli-qty button{width:44px;height:44px;font-size:1.25rem}
.troli-buang{padding:10px;min-width:44px;min-height:44px}
/* bar CTA tetap di bawah (mobile) — troli */
.troli-bar{display:none}
@media(max-width:760px){
  .troli-sec{padding-bottom:150px}
  .troli-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:90;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));
    background:rgba(250,246,239,.97);box-shadow:0 -6px 24px rgba(15,46,33,.12);
    border-top:1px solid rgba(27,67,50,.08);
  }
  @supports (backdrop-filter:blur(1px)){
    .troli-bar{background:rgba(250,246,239,.86);backdrop-filter:blur(14px)}
  }
  .troli-bar-subtotal{display:grid;line-height:1.3}
  .troli-bar-subtotal span{font-size:.78rem;color:var(--kelabu);font-weight:600}
  .troli-bar-subtotal strong{font-size:1.15rem;color:var(--hijau)}
  .troli-bar .btn{padding:13px 26px;min-height:48px;flex:none}
  .troli-ringkasan .troli-aksi .btn{display:none} /* elak dua butang sama di skrin kecil */
  /* butang WhatsApp terapung mengalah kepada bar CTA */
  body:has(.troli-bar) .wa-float{display:none}
}
/* bar butang checkout — statik desktop, TETAP di bawah pada mobile.
   PENTING (Challenge #4): padding-bottom seksyen menampung tinggi bar supaya
   borang boleh discroll penuh dan medan terakhir tidak tertutup. */
@media(max-width:760px){
  .checkout-sec{padding-bottom:170px}
  .checkout-hantar-bar{
    position:fixed;left:0;right:0;bottom:0;z-index:90;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));
    background:rgba(250,246,239,.97);box-shadow:0 -6px 24px rgba(15,46,33,.12);
    border-top:1px solid rgba(27,67,50,.08);
  }
  @supports (backdrop-filter:blur(1px)){
    .checkout-hantar-bar{background:rgba(250,246,239,.86);backdrop-filter:blur(14px)}
  }
  body:has(.checkout-hantar-bar) .wa-float{display:none}
}
/* Desktop: beri jarak antara checkbox langgan & butang hantar (mobile guna
   bar tetap, tak terjejas). */
@media(min-width:761px){
  .checkout-hantar-bar{margin-top:20px}
}

/* ---- Review pengamal: halaman /review + borang /review/tulis ---- */
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin:36px 0 28px}
.review-grid .r-card{flex:none}
.r-foto{border-radius:12px;overflow:hidden}
.r-foto img{width:100%;max-height:220px;object-fit:cover;display:block}
.rv-bintang{display:flex;gap:2px}
.rv-bintang button{background:none;border:none;font-size:1.8rem;line-height:1;color:#cfd8d1;cursor:pointer;padding:2px 4px;transition:color .15s,transform .15s}
.rv-bintang button.aktif{color:var(--emas)}
.rv-bintang button:active{transform:scale(1.15)}
/* Honeypot: disorok dari manusia & pembaca skrin, kekal wujud untuk bot */
.hp-medan{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ---- Langganan emel: checkbox checkout + borang footer ---- */
.cf-langgan{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-size:.85rem;color:var(--kelabu);cursor:pointer}
.cf-langgan input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--hijau)}
.foot-langgan{margin-top:18px;max-width:320px}
/* Borang langgan naik ke petak kosong bawah Platform + Ejen (desktop).
   grid-template-areas deterministik — elak kekaburan auto-placement.
   Skrin kecil: tiada area, semua rebah jadi timbunan menegak. */
.foot-langgan-sel{margin-top:8px}
@media(min-width:901px){
  .foot-grid{
    grid-template-areas:
      "jenama kedai platform ejen"
      "jenama kedai news     news";
  }
  .foot-jenama{grid-area:jenama}
  .foot-kedai{grid-area:kedai}
  .foot-platform{grid-area:platform}
  .foot-ejen{grid-area:ejen}
  .foot-langgan-sel{grid-area:news;margin-top:0;align-self:start}
  .foot-langgan-sel .foot-langgan{margin-top:0;max-width:420px}
}
.foot-langgan label{display:block;font-size:.85rem;font-weight:700;margin-bottom:8px}
.foot-langgan-baris{display:flex;gap:8px}
.foot-langgan-baris input{
  flex:1;min-width:0;padding:11px 14px;border-radius:12px;font-size:16px;
  border:1px solid rgba(250,246,239,.25);background:rgba(250,246,239,.08);color:inherit;
}
.foot-langgan-baris input::placeholder{color:inherit;opacity:.55}
.foot-langgan-baris .btn{padding:11px 18px;flex:none}
.foot-langgan-nota{font-size:.75rem;opacity:.7;margin-top:8px}
.foot-langgan-ralat{font-size:.8rem;color:#f2b8b5;margin-top:6px}
.foot-langgan-ok{font-size:.88rem;font-weight:700}

/* ---- Bar tab bawah (PWA standalone SAHAJA) — rasa native app ----
   Muncul hanya bila dibuka sebagai app terpasang (display-mode:standalone)
   pada skrin kecil; pelawat browser biasa TIDAK nampak sebarang perubahan. */
.app-tabbar{display:none}
@media (display-mode:standalone) and (max-width:820px){
  .app-tabbar{
    position:fixed;left:0;right:0;bottom:0;z-index:95;
    display:flex;justify-content:space-around;align-items:stretch;
    background:rgba(250,246,239,.97);border-top:1px solid rgba(27,67,50,.1);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -6px 24px rgba(15,46,33,.08);
  }
  @supports (backdrop-filter:blur(1px)){
    .app-tabbar{background:rgba(250,246,239,.88);backdrop-filter:blur(14px)}
  }
  .app-tabbar a{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:48px;text-decoration:none;border-radius:12px;
    font-size:.68rem;font-weight:700;color:var(--kelabu);
  }
  .app-tabbar a svg{width:22px;height:22px;stroke:currentColor;fill:none}
  .app-tabbar a.aktif{color:var(--hijau)}
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}
  /* Bar CTA checkout/troli mengambil alih ruang bawah — tab disorok */
  body:has(.checkout-hantar-bar) .app-tabbar,
  body:has(.troli-bar) .app-tabbar{display:none}
  body:has(.checkout-hantar-bar){padding-bottom:0}
  body:has(.troli-bar){padding-bottom:0}
}

/* Bintang borang review: sasaran sentuh >=44px di mobile (piawai Fasa 6 R3) */
@media (max-width:640px){
  .rv-bintang button{font-size:2.1rem;padding:4px 8px;min-width:44px;min-height:44px}
}

/* ---------- POLISH PREMIUM MOBILE (24 Jul 2026) ----------
   Prinsip: premium = kekangan. Skala visual turun ~20% di telefon, ruang
   bernafas dikekalkan, aksen tenang; sasaran sentuh kekal >=44px.
   Desktop TIDAK diubah — semua dalam media query telefon sahaja. */
@media(max-width:760px){
  /* Nav nipis & senyap; CTA nav disorok — laluan beli tetap ada di
     hero, kad produk & bar tab PWA */
  /* Header lega sedikit (maklum balas: jangan terlalu fit) */
  nav{padding:calc(17px + env(safe-area-inset-top,0px)) 0 17px}
  nav.solid{padding:calc(14px + env(safe-area-inset-top,0px)) 0 14px}
  .brand img{height:36px}
  nav.solid .brand img{height:34px}
  .nav-cta{display:none}
}
@media(max-width:640px){
  /* Tipografi: lebih kecil, lebih ketat, lebih yakin */
  .hero h1{font-size:clamp(1.85rem,6.4vw,2.25rem);letter-spacing:-.02em;line-height:1.18;margin-bottom:16px}
  .hero p.lead{font-size:.95rem;line-height:1.75;margin-bottom:26px}
  .eyebrow{font-size:.68rem;letter-spacing:.16em;margin-bottom:14px}
  .eyebrow::before{width:26px}
  .sec-title{font-size:clamp(1.45rem,5.4vw,1.8rem)}
  .sec-lead{font-size:.94rem}
  /* Butang langsing; pulse Beli Sekarang DIKEKALKAN (keputusan pemilik
     24 Jul — kesan berdenyut kekal seperti asal) */
  .btn{min-height:46px;padding:12px 26px;font-size:.9rem;gap:8px}
  .hero-cta{gap:12px;margin-bottom:26px}
  /* Elemen sokongan dikecilkan — hierarki jelas: kandungan dulu */
  .trust{gap:16px}
  .trust div{font-size:.76rem;gap:7px}
  .trust svg{width:15px;height:15px}
}

/* Penalaan susulan mata Abu Nuha (24 Jul pagi) */
@media(max-width:760px){
  /* Hamburger: lebih kecil + petak berbingkai supaya jelas ia butang */
  .nav-toggle{
    width:42px;height:42px;padding:11px;gap:4.5px;
    border:1.5px solid rgba(27,67,50,.22);border-radius:12px;
    background:rgba(250,246,239,.6);
  }
  .nav-toggle span{height:2px}
  .nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  /* Jarak nav -> eyebrow dilega supaya hero ngam paparan penuh phone */
  .hero{padding:calc(134px + env(safe-area-inset-top,0px)) 0 64px}
  /* Butang WhatsApp terapung dikecilkan */
  .wa-float{width:54px;height:54px;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px}
  .wa-float svg{width:40px;height:40px}
}
@media(max-width:640px){
  /* Tajuk utama dibesarkan semula sedikit (maklum balas: 2.25 terlalu kecil) */
  .hero h1{font-size:clamp(2.05rem,7vw,2.5rem)}
}

/* Panel menu mobile premium: kad terapung kemas, bukan bar penuh mentah */
@media(max-width:760px){
  /* Latar & bingkai HANYA bila terbuka — elak garisan sisa 2px
     (background menembusi border lutsinar) ketika tertutup */
  .mobile-menu{
    margin:0 14px;border-radius:20px;
    background:transparent;border:0;box-shadow:none;
  }
  .mobile-menu.open{
    margin-top:8px;max-height:440px;padding:10px 20px 20px;
    background:rgba(13,40,29,.96);
    border:1px solid rgba(250,246,239,.08);
    box-shadow:0 18px 44px rgba(10,26,18,.35);
  }
  .mobile-menu a{
    display:flex;align-items:center;justify-content:space-between;
    font-size:.98rem;letter-spacing:.01em;padding:13px 6px;
    border-bottom:1px solid rgba(250,246,239,.08);
  }
  .mobile-menu a:not(.btn-emas)::after{content:'\2192';opacity:.35;font-size:.9em}
  .mobile-menu a.btn-emas{margin-top:14px;padding:13px;font-size:.95rem}
}

/* ---- Ketahanan PWA terpasang ----
   1. Bar tab: kedudukan tetap ditakrif di peringkat asas — mustahil
      jatuh ke aliran dokumen walau apa pun keadaan media query.
   2. Reveal-on-scroll DIMATIKAN dalam app terpasang: kandungan terus
      kelihatan (app native tiada animasi kemunculan; elak kandungan
      "hantu" bila observer tak menembak dalam standalone). */
/* top:auto WAJIB — bar tab ialah <nav>, mewarisi top:0 dari peraturan
   nav global; tanpa ini ia teregang top+bottom menutupi seluruh skrin
   (punca "paparan hantu" dalam app, ditemui via diagnostik 24 Jul). */
.app-tabbar{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:95}
@media (display-mode:standalone){
  .rv-on .rv{opacity:1;transform:none;transition:none}
}

/* ---- Banner ajakan pasang PWA (browser mobile sahaja) ---- */
.pwa-banner{
  position:fixed;left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:96;
  display:flex;flex-direction:column;gap:12px;
  background:rgba(15,46,33,.97);color:var(--krim);
  border:1px solid rgba(250,246,239,.1);border-radius:18px;
  padding:14px 16px;box-shadow:0 18px 44px rgba(10,26,18,.4);
  animation:pwaNaik .5s var(--ease);
}
.pwa-banner[hidden]{display:none}
@keyframes pwaNaik{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.pwa-banner-atas{display:flex;align-items:center;gap:12px;padding-right:30px}
.pwa-banner img{border-radius:10px;flex:none}
.pwa-banner-teks{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pwa-banner-teks strong{font-size:.92rem}
.pwa-banner-teks span{font-size:.78rem;opacity:.85;line-height:1.45}
.pwa-banner-aksi{display:flex;gap:10px}
.pwa-banner-aksi .btn{flex:1;min-height:42px;padding:9px 14px;font-size:.85rem}
.pwa-banner-faham{background:transparent;border:1px solid rgba(250,246,239,.3);color:var(--krim)}
.pwa-banner-tutup{
  position:absolute;top:8px;right:8px;width:34px;height:34px;
  border:none;background:transparent;color:var(--krim);
  font-size:22px;line-height:1;cursor:pointer;opacity:.7;
}
@media(min-width:821px){.pwa-banner{display:none!important}}

/* ---- Pepijat WebKit iOS standalone: backdrop-filter (kesan kaca) boleh
   mengaburkan SELURUH paparan & memesongkan kedudukan elemen dalam app
   terpasang. Dalam standalone: matikan semua kesan kaca, ganti latar
   pejal (rupa hampir sama, bebas pepijat). Browser biasa tak terjejas. */
@media (display-mode:standalone){
  nav,nav.solid,.mobile-menu,.mobile-menu.open,.app-tabbar,
  .checkout-hantar-bar,.troli-bar,.pwa-banner{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  nav.solid{background:rgba(250,246,239,.98)}
  .app-tabbar{background:rgba(250,246,239,.98)}
  .mobile-menu.open{background:rgba(13,40,29,.98)}
  .checkout-hantar-bar{background:rgba(250,246,239,.98)}
}

/* Hero memenuhi satu skrin penuh phone (maklum balas: elak rasa
   "paparan tak penuh") — kandungan diapit tengah oleh flex sedia ada */
@media(max-width:760px){
  .hero{min-height:100svh}
}
/* Dalam app: butang WhatsApp dinaikkan atas bar tab (elak bertindih
   dengan tab Pesanan) — mesti selepas penalaan .wa-float 20px di atas */
@media (display-mode:standalone) and (max-width:820px){
  .wa-float{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}

/* Halaman dalaman phone (semak pesanan/review/troli): jarak header -> tajuk
   (150px era nav tebal -> 92px terlalu rapat -> 120px + safe-area) */
@media(max-width:760px){
  .troli-sec{padding-top:calc(120px + env(safe-area-inset-top,0px))}
}
