/* ==========================================================================
   TAMOSA GROUP — V3 "WOW EDITION"
   Palet : #fd0002 (merah grup) · #fefefe · #35a5b3 (resto) · #786aa7 (mitra) · #f88cac (hits)
   Radius: pill untuk tombol/chip · 24px untuk kartu/gambar · 14px input
   Motion: MOTION_INTENSITY 9 — semua animasi dibungkus prefers-reduced-motion
   ========================================================================== */

:root{
  --red:#fd0002;
  --white:#fefefe;
  --teal:#35a5b3;
  --purple:#786aa7;
  --pink:#f88cac;

  --ink:#170a10;
  --ink-soft:#4c3d45;
  --line:rgba(23,10,16,.12);

  --red-soft:rgba(253,0,2,.08);
  --teal-soft:rgba(53,165,179,.12);
  --purple-soft:rgba(120,106,167,.12);

  --font-display:"Bricolage Grotesque",sans-serif;
  --font-body:"Plus Jakarta Sans",sans-serif;
  --font-hand:"Caveat",cursive;

  --r-card:24px;
  --r-input:14px;
  --shadow-card:0 20px 50px -18px rgba(23,10,16,.22);
  --shadow-pop:0 30px 70px -20px rgba(23,10,16,.35);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --header-h:76px;
}

html{scroll-behavior:smooth;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-body);
  background:var(--white);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}
input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--red);color:#fff}

.container{width:min(1180px,92%);margin-inline:auto}
.skip-link{
  position:fixed;top:-60px;left:16px;z-index:2000;background:var(--ink);color:#fff;
  padding:.6rem 1.2rem;border-radius:999px;transition:top .3s;
}
.skip-link:focus{top:12px}

/* Grain halus biar nggak flat */
body::after{
  content:"";position:fixed;inset:0;z-index:1200;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Tipografi ---------- */
h1,h2,h3,.display{
  font-family:var(--font-display);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.02em;
  text-wrap:balance;
}
.h-xl{font-size:clamp(2.6rem,7.5vw,5.6rem)}
.h-lg{font-size:clamp(2rem,5vw,3.8rem)}
.h-md{font-size:clamp(1.4rem,3vw,2.2rem)}
.hand{font-family:var(--font-hand);font-weight:700;font-size:clamp(1.5rem,3vw,2.2rem);color:var(--red);transform:rotate(-2deg);display:inline-block}
.lead{color:var(--ink-soft);max-width:58ch}
.text-red{color:var(--red)}
.outline-text{
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85);
}

/* ---------- Preloader ---------- */
.preloader{
  position:fixed;inset:0;z-index:3000;display:grid;place-content:center;gap:1.4rem;
  justify-items:center;background:var(--ink);color:#fff;
  transition:clip-path .8s var(--ease-out) .1s;
  clip-path:inset(0 0 0 0);
}
.preloader.done{clip-path:inset(0 0 100% 0)}
.preloader-logo{
  width:86px;height:86px;border-radius:26px;background:var(--red);display:grid;place-content:center;
  font-family:var(--font-display);font-weight:800;font-size:2rem;color:#fff;
  animation:logoPop 1s var(--ease-spring) both, logoWiggle 1.6s ease-in-out .9s infinite;
}
@keyframes logoPop{from{transform:scale(0) rotate(-14deg)}to{transform:scale(1) rotate(0)}}
@keyframes logoWiggle{0%,100%{rotate:0deg}25%{rotate:4deg}75%{rotate:-4deg}}
.preloader-word{font-family:var(--font-hand);font-size:1.4rem;opacity:0;animation:fadeUp .6s ease .35s forwards}
.preloader-bar{width:min(260px,60vw);height:4px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden}
.preloader-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--pink));transition:width .2s}
.preloader-num{font-family:var(--font-display);font-size:1rem;letter-spacing:.2em}

/* ---------- Progress bar ---------- */
.scroll-progress{
  position:fixed;top:0;left:0;height:4px;width:100%;z-index:1500;
  background:var(--red);transform-origin:left;transform:scaleX(0);
}

/* ---------- Curtain transisi halaman ---------- */
.curtain{position:fixed;inset:0;z-index:2500;pointer-events:none}
.curtain span{position:absolute;inset:0;transform:translateY(102%);transition:transform .55s var(--ease-out)}
.curtain .l1{background:var(--red)}
.curtain .l2{background:var(--ink);transition-delay:.08s}
body.entered .curtain span{transform:translateY(-102%)}
body.leaving .curtain span{transform:translateY(0)}
body.leaving main,body.leaving .site-header,body.leaving .site-footer{opacity:.4;filter:blur(4px);transition:.45s}

/* ---------- Kursor kustom ---------- */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:2200;border-radius:50%;translate:-50% -50%}
.cursor-dot{width:8px;height:8px;background:var(--red)}
.cursor-ring{
  width:38px;height:38px;border:1.5px solid var(--red);
  transition:width .25s,height .25s,background-color .25s,border-color .25s;
}
.cursor-ring.is-hover{width:64px;height:64px;background:var(--red-soft);border-color:transparent}
@media (pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--header-h);
  display:flex;align-items:center;
  transition:background .35s,box-shadow .35s,height .35s;
}
.site-header.scrolled{
  background:rgba(254,254,254,.82);
  backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 10px 40px -18px rgba(23,10,16,.25);
  height:64px;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand-mark{display:flex;align-items:center;gap:.7rem;font-family:var(--font-display);font-weight:800;font-size:1.15rem}
.brand-mark img{width:42px;height:42px;border-radius:12px;object-fit:cover;box-shadow:0 6px 16px -6px rgba(23,10,16,.4);transition:transform .4s var(--ease-spring)}
.brand-mark:hover img{transform:rotate(-8deg) scale(1.06)}
.brand-mark em{font-style:normal;color:var(--red)}

.nav-desktop{display:flex;gap:1.6rem;font-weight:600;font-size:.94rem}
.nav-desktop a{position:relative;padding:.2rem 0}
.nav-desktop a::after{
  content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2.5px;border-radius:2px;
  background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease-out);
}
.nav-desktop a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-desktop a.active{color:var(--red)}

.burger{display:none;flex-direction:column;gap:5px;padding:.7rem;z-index:1101}
.burger i{width:26px;height:3px;border-radius:3px;background:var(--ink);transition:.35s var(--ease-out)}
.nav-open .burger i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-open .burger i:nth-child(2){opacity:0;scale:0}
.nav-open .burger i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:900px){.nav-desktop{display:none}.burger{display:flex}}

/* Overlay menu mobile / fullscreen */
.nav-overlay{
  position:fixed;inset:0;z-index:1050;background:var(--ink);color:#fff;
  display:flex;flex-direction:column;justify-content:center;padding:6rem 8vw 3rem;
  clip-path:circle(0% at calc(100% - 44px) 40px);
  visibility:hidden;transition:clip-path .7s var(--ease-out),visibility 0s .7s;
}
.nav-open .nav-overlay{clip-path:circle(150% at calc(100% - 44px) 40px);visibility:visible;transition:clip-path .7s var(--ease-out)}
.nav-overlay nav{display:flex;flex-direction:column;gap:.4rem}
.nav-overlay a{
  font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,8vw,3.4rem);line-height:1.15;
  display:flex;align-items:baseline;gap:1rem;
  opacity:0;translate:0 40px;transition:opacity .5s,translate .5s var(--ease-out),color .25s;
}
.nav-overlay a small{font-family:var(--font-body);font-weight:700;font-size:.85rem;color:var(--pink)}
.nav-overlay a:hover{color:var(--pink)}
.nav-open .nav-overlay a{opacity:1;translate:0 0}
.nav-overlay .nav-foot{margin-top:auto;color:rgba(255,255,255,.55);display:flex;gap:1.4rem;font-size:.9rem;flex-wrap:wrap}

/* ---------- Tombol ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:.6rem;
  padding:.95rem 1.9rem;border-radius:999px;font-weight:700;font-size:.98rem;
  transition:transform .35s var(--ease-spring),box-shadow .35s,background .3s,color .3s;
  will-change:transform;
}
.btn i{font-size:1.15em;transition:transform .3s}
.btn:hover i{transform:translateX(4px)}
.btn:active{scale:.96}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 14px 34px -12px rgba(253,0,2,.55)}
.btn-primary:hover{box-shadow:0 20px 44px -12px rgba(253,0,2,.65)}
.btn-dark{background:var(--ink);color:#fff}
.btn-ghost{border:2px solid var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-white-outline{border:2px solid rgba(255,255,255,.5);color:#fff}
.btn-white-outline:hover{background:#fff;color:var(--ink)}

.chip{
  display:inline-flex;align-items:center;gap:.45rem;padding:.45rem 1.05rem;border-radius:999px;
  font-size:.83rem;font-weight:700;
}
.chip-red{background:var(--red-soft);color:var(--red)}
.chip-teal{background:var(--teal-soft);color:#20727e}
.chip-purple{background:var(--purple-soft);color:#5b4f87}
.chip-pink{background:var(--pink-soft);color:#d84f80}

/* Eyebrow section (dipakai hemat) */
.kicker{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.kicker::before{content:"";width:34px;height:3px;border-radius:3px;background:var(--red)}

/* ---------- Section shell ---------- */
.section{padding:clamp(4.5rem,9vw,7.5rem) 0;position:relative}
.section-head{display:flex;flex-direction:column;gap:1rem;margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.35;z-index:-1;pointer-events:none}

/* ---------- HERO ---------- */
.hero{
  min-height:100svh;display:flex;align-items:center;position:relative;
  padding:calc(var(--header-h) + 2.5rem) 0 3rem;overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:940px){.hero-grid{grid-template-columns:1fr}}

.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem}
.hero-title{font-size:clamp(3rem,9vw,6.4rem);text-transform:uppercase;line-height:.98}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line>span{display:inline-block;translate:0 110%;animation:lineUp .9s var(--ease-out) forwards}
.hero-title .line:nth-child(2)>span{animation-delay:.12s}
.hero-title .line:nth-child(3)>span{animation-delay:.24s}
@keyframes lineUp{to{translate:0 0}}
.hero-title .accent{color:var(--red);font-style:normal}

.rotator{display:inline-grid;text-align:left}
.rotator span{
  grid-area:1/1;opacity:0;transform:translateY(60%) rotate(6deg);
  transition:opacity .45s,transform .55s var(--ease-spring);
  clip-path:none;-webkit-text-fill-color:currentColor;
}
.rotator span.on{opacity:1;transform:translateY(0) rotate(0)}
.rotator .w-red{-webkit-text-stroke:0;color:var(--red)}
.rotator .w-teal{color:var(--teal)}
.rotator .w-purple{color:var(--purple)}
.rotator .w-pink{color:var(--pink)}

.hero-sub{opacity:0;animation:fadeUp .8s ease .55s forwards}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;opacity:0;animation:fadeUp .8s ease .7s forwards}
.hero-mini{display:flex;gap:1.6rem;flex-wrap:wrap;opacity:0;animation:fadeUp .8s ease .85s forwards}
.hero-mini b{font-family:var(--font-display);font-size:1.25rem;display:block;line-height:1}
.hero-mini span{font-size:.8rem;color:var(--ink-soft)}
@keyframes fadeUp{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}

/* Kolase visual kanan */
.hero-visual{position:relative;height:min(560px,72vw)}
.collage-main{
  width:78%;aspect-ratio:4/4.6;object-fit:cover;border-radius:var(--r-card) var(--r-card) var(--r-card) 90px;
  box-shadow:var(--shadow-pop);position:absolute;right:0;top:0;
}
.collage-a,.collage-b{position:absolute;object-fit:cover;border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.collage-a{width:44%;aspect-ratio:1;left:0;bottom:8%;rotate:-6deg}
.collage-b{width:36%;aspect-ratio:1;left:16%;bottom:-4%;rotate:5deg;z-index:2}
.sticker{
  position:absolute;left:-6%;top:6%;width:132px;height:132px;z-index:3;
  animation:spinSlow 16s linear infinite;
}
.sticker svg{width:100%;height:100%}
.sticker .sticker-core{
  position:absolute;inset:0;margin:auto;width:54px;height:54px;border-radius:50%;
  background:var(--red);display:grid;place-content:center;color:#fff;font-size:1.5rem;
  animation:spinReverse 16s linear infinite;
}
@keyframes spinSlow{to{rotate:360deg}}
@keyframes spinReverse{to{rotate:-360deg}}

.float-chip{
  position:absolute;display:grid;place-content:center;border-radius:50%;
  width:58px;height:58px;color:#fff;font-size:1.55rem;box-shadow:var(--shadow-card);z-index:3;
  animation:bob var(--dur,4s) ease-in-out infinite alternate;
}
.fc-red{background:var(--red)}.fc-teal{background:var(--teal)}.fc-purple{background:var(--purple)}.fc-pink{background:var(--pink)}
@keyframes bob{from{translate:0 -10px}to{translate:0 12px}}

.hero-blob-1{width:480px;height:480px;background:var(--pink);top:-140px;right:-120px}
.hero-blob-2{width:380px;height:380px;background:var(--teal);bottom:-160px;left:-140px}
.hero-blob-3{width:260px;height:260px;background:var(--purple);top:30%;left:38%;opacity:.22}

/* ---------- Marquee ---------- */
.marquee{
  background:var(--red);color:#fff;overflow:hidden;rotate:-1.6deg;scale:1.02;
  padding:.9rem 0;position:relative;z-index:3;box-shadow:0 18px 40px -18px rgba(253,0,2,.5);
}
.marquee-track{display:flex;gap:2.6rem;width:max-content;animation:marqueeMove 26s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:inline-flex;align-items:center;gap:2.6rem;font-family:var(--font-display);font-weight:800;font-size:1.25rem;letter-spacing:.04em;white-space:nowrap;text-transform:uppercase}
.marquee-track .dot{color:var(--pink);font-size:1.1rem}
@keyframes marqueeMove{to{translate:-50% 0}}

/* ---------- Judul section: reveal mask ---------- */
.mask-line{display:block;overflow:hidden}
.mask-line>span{display:inline-block;translate:0 115%;transition:translate .9s var(--ease-out)}
.in-view .mask-line>span{translate:0 0}
.mask-line:nth-child(2)>span{transition-delay:.1s}
.mask-line:nth-child(3)>span{transition-delay:.2s}

/* ---------- Kartu Brand (tilt 3D) ---------- */
.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media (max-width:940px){.brand-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}
.brand-card{
  position:relative;border-radius:var(--r-card);padding:1.2rem;background:#fff;
  border:1.5px solid var(--line);box-shadow:var(--shadow-card);
  transition:box-shadow .4s;transform-style:preserve-3d;
}
.brand-card:hover{box-shadow:var(--shadow-pop)}
.brand-media{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3}
.brand-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out),filter .5s}
.brand-card:hover .brand-media img{transform:scale(1.08) rotate(1deg)}
.brand-tag{
  position:absolute;top:.9rem;left:.9rem;z-index:2;
  backdrop-filter:blur(8px);color:#fff;
}
.brand-card h3{font-size:1.5rem;margin:1.1rem 0 .35rem}
.brand-card p{font-size:.93rem;color:var(--ink-soft)}
.brand-link{
  margin-top:1rem;display:inline-flex;align-items:center;gap:.45rem;font-weight:800;color:var(--ink);
}
.brand-link i{transition:transform .3s var(--ease-spring)}
.brand-card:hover .brand-link i{transform:translateX(6px)}
.glare{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 42%);
  z-index:4;
}
.brand-card:hover .glare{opacity:1}

/* ---------- Stats ---------- */
.stats-band{background:var(--ink);color:#fff;border-radius:calc(var(--r-card)*1.4);padding:clamp(2.4rem,6vw,4rem);position:relative;overflow:hidden}
.stats-band .blob{opacity:.4}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative;text-align:center}
@media (max-width:820px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
.stat b{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.4rem);line-height:1;display:block}
.stat b em{font-style:normal;color:var(--pink)}
.stat span{font-size:.88rem;color:rgba(255,255,255,.62)}

/* ---------- Menu andalan ---------- */
.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:940px){.dish-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.dish-grid{grid-template-columns:1fr}}
.dish{
  border-radius:var(--r-card);overflow:hidden;background:#fff;border:1.5px solid var(--line);
  transition:transform .5s var(--ease-spring),box-shadow .5s;
}
.dish:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:var(--shadow-pop)}
.dish-media{aspect-ratio:4/3;overflow:hidden;position:relative}
.dish-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}
.dish:hover .dish-media img{transform:scale(1.1)}
.dish-price{
  position:absolute;right:.8rem;bottom:.8rem;background:#fff;padding:.4rem .9rem;border-radius:999px;
  font-weight:800;font-size:.9rem;box-shadow:var(--shadow-card);
}
.dish-body{padding:1.05rem 1.15rem 1.25rem}
.dish-body h3{font-size:1.12rem}
.dish-body p{font-size:.85rem;color:var(--ink-soft);margin-top:.25rem}
.dish-brand{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.15rem;display:block}

/* ---------- Promo ticket ---------- */
.ticket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media (max-width:940px){.ticket-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}
.ticket{
  --tc:var(--red);
  position:relative;border-radius:var(--r-card);color:#fff;overflow:hidden;
  background:linear-gradient(135deg,var(--tc),color-mix(in srgb,var(--tc) 68%,#000));
  padding:1.7rem 1.6rem 1.6rem;
  transition:transform .5s var(--ease-spring),box-shadow .5s;
}
.ticket:hover{transform:translateY(-10px) scale(1.015) rotate(-.5deg);box-shadow:0 34px 60px -22px color-mix(in srgb,var(--tc) 60%,transparent)}
.ticket.t-teal{--tc:var(--teal)}
.ticket.t-purple{--tc:var(--purple)}
.ticket.t-pink{--tc:var(--pink)}
.ticket.t-red{--tc:var(--red)}
.ticket::before,.ticket::after{
  content:"";position:absolute;top:50%;width:34px;height:34px;border-radius:50%;
  background:var(--white);translate:0 -50%;
}
.ticket::before{left:-17px}.ticket::after{right:-17px}
.ticket-kicker{font-size:.74rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.ticket h3{font-size:clamp(1.7rem,3vw,2.3rem);margin:.5rem 0 .3rem;text-transform:uppercase}
.ticket p{font-size:.9rem;opacity:.9;max-width:30ch}
.ticket-foot{
  display:flex;justify-content:space-between;align-items:center;margin-top:1.4rem;padding-top:1.1rem;
  border-top:2px dashed rgba(255,255,255,.4);font-size:.85rem;font-weight:700;gap:1rem;flex-wrap:wrap;
}
.ticket-foot code{background:rgba(255,255,255,.18);padding:.3rem .8rem;border-radius:8px;font-family:var(--font-body);letter-spacing:.08em}
.ticket-shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.25) 48%,transparent 62%) no-repeat;translate:-120% 0;transition:translate .9s var(--ease-out)}
.ticket:hover .ticket-shine{translate:120% 0}

/* ---------- Nilai / why us ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.4rem,6vw,5rem);align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.value-list{display:grid;gap:1.1rem;margin-top:1.6rem}
.value-item{
  display:flex;gap:1.1rem;align-items:flex-start;padding:1.15rem 1.3rem;border-radius:18px;
  border:1.5px solid var(--line);background:#fff;
  transition:transform .4s var(--ease-spring),box-shadow .4s,border-color .3s;
}
.value-item:hover{transform:translateX(10px);box-shadow:var(--shadow-card);border-color:var(--vc,var(--red))}
.value-icon{
  flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:grid;place-content:center;
  background:color-mix(in srgb,var(--vc,var(--red)) 12%,#fff);color:var(--vc,var(--red));font-size:1.3rem;
}
.value-item h3{font-size:1.02rem;margin-bottom:.15rem}
.value-item p{font-size:.87rem;color:var(--ink-soft)}

/* ---------- Testimoni scroller ---------- */
.quote-scroller{
  display:flex;gap:1.3rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem 4px 1.6rem;
  scrollbar-width:none;cursor:grab;
}
.quote-scroller::-webkit-scrollbar{display:none}
.quote-card{
  flex:0 0 min(360px,82vw);scroll-snap-align:start;border-radius:var(--r-card);
  border:1.5px solid var(--line);background:#fff;padding:1.6rem;position:relative;
  transition:transform .4s var(--ease-spring),box-shadow .4s;
}
.quote-card:hover{transform:translateY(-6px) rotate(.5deg);box-shadow:var(--shadow-card)}
.quote-card .q-mark{font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--qc,var(--red))}
.quote-card p{margin:.9rem 0 1.2rem;font-size:.95rem}
.quote-who{display:flex;align-items:center;gap:.8rem}
.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2.5px solid var(--qc,var(--red))}
.quote-who b{display:block;font-size:.92rem;line-height:1.2}
.quote-who span{font-size:.78rem;color:var(--ink-soft)}
.stars{color:#f7b500;font-size:.85rem;letter-spacing:.1em}

/* ---------- Banner CTA ---------- */
.cta-banner{
  position:relative;overflow:hidden;border-radius:calc(var(--r-card)*1.4);
  background:var(--ink);color:#fff;padding:clamp(3rem,7vw,5.5rem);text-align:center;
}
.cta-banner .hand{color:var(--pink)}
.cta-banner p{color:rgba(255,255,255,.7);max-width:52ch;margin:1rem auto 2rem}
.cta-banner .blob{opacity:.45}
.cta-banner .blob-1{width:340px;height:340px;background:var(--purple);top:-120px;left:-80px}
.cta-banner .blob-2{width:300px;height:300px;background:var(--red);bottom:-140px;right:-60px}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#fff;padding:clamp(3.5rem,7vw,5.5rem) 0 2rem;margin-top:clamp(3rem,7vw,5rem);position:relative;overflow:hidden}
.footer-giant{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(3.4rem,13vw,11rem);line-height:.9;letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.22);
  user-select:none;text-align:center;white-space:nowrap;
  transition:-webkit-text-stroke-color .4s,color .4s;
}
.footer-giant:hover{color:var(--red);-webkit-text-stroke-color:var(--red)}
.footer-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.4rem;margin-top:3.2rem}
@media (max-width:900px){.footer-cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-cols{grid-template-columns:1fr}}
.footer-cols h4{font-family:var(--font-display);font-size:1rem;margin-bottom:1rem}
.footer-cols li{margin-bottom:.55rem}
.footer-cols a{color:rgba(255,255,255,.66);font-size:.92rem;transition:color .25s,padding-left .3s}
.footer-cols a:hover{color:var(--pink);padding-left:6px}
.social-row{display:flex;gap:.7rem;margin-top:1.2rem}
.social-row a{
  width:44px;height:44px;border-radius:14px;display:grid;place-content:center;font-size:1.25rem;
  background:rgba(255,255,255,.08);color:#fff;
  transition:transform .35s var(--ease-spring),background .3s;
}
.social-row a:hover{transform:translateY(-5px) rotate(-6deg);background:var(--red)}
.footer-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;color:rgba(255,255,255,.5)}
.to-top{
  position:fixed;right:1.4rem;bottom:1.4rem;z-index:900;width:52px;height:52px;border-radius:50%;
  background:var(--red);color:#fff;display:grid;place-content:center;font-size:1.3rem;
  box-shadow:0 16px 34px -12px rgba(253,0,2,.6);
  opacity:0;translate:0 20px;pointer-events:none;
  transition:opacity .4s,translate .4s var(--ease-spring);
}
.to-top.show{opacity:1;translate:0 0;pointer-events:auto}

/* ---------- Page hero (halaman dalam) ---------- */
.page-hero{
  padding:calc(var(--header-h) + clamp(3rem,7vw,5rem)) 0 clamp(2.5rem,5vw,4rem);
  position:relative;overflow:hidden;
}
.page-hero h1{text-transform:uppercase}
.crumb{display:flex;gap:.5rem;font-size:.85rem;color:var(--ink-soft);margin-top:1rem}
.crumb a:hover{color:var(--red)}

/* ---------- Filter tabs menu ---------- */
.tabs{display:flex;gap:.6rem;flex-wrap:wrap}
.tab{
  padding:.7rem 1.4rem;border-radius:999px;border:2px solid var(--line);font-weight:700;font-size:.9rem;
  transition:.3s;background:#fff;
}
.tab:hover{border-color:var(--ink)}
.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.2rem}
@media (max-width:940px){.menu-panel{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.menu-panel{grid-template-columns:1fr}}
.menu-item.hide{display:none}
.menu-item.pop{animation:popIn .55s var(--ease-spring) both}
@keyframes popIn{from{opacity:0;transform:scale(.85) translateY(18px)}to{opacity:1;transform:none}}

/* ---------- Steps kemitraan ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:step}
@media (max-width:940px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.step{
  position:relative;padding:1.7rem 1.4rem;border-radius:var(--r-card);background:#fff;
  border:1.5px solid var(--line);transition:transform .4s var(--ease-spring),box-shadow .4s;
}
.step:hover{transform:translateY(-7px);box-shadow:var(--shadow-card)}
.step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--font-display);font-weight:800;font-size:2.6rem;
  color:transparent;-webkit-text-stroke:1.5px var(--sc,var(--red));
  display:block;line-height:1;margin-bottom:.7rem;
}
.step h3{font-size:1.05rem;margin-bottom:.3rem}
.step p{font-size:.86rem;color:var(--ink-soft)}
.step-arrow{position:absolute;right:1.2rem;top:1.9rem;color:var(--sc,var(--red));font-size:1.3rem;animation:nudge 1.4s ease-in-out infinite}
@keyframes nudge{0%,100%{translate:0 0}50%{translate:6px 0}}

/* ---------- FAQ accordion ---------- */
.faq{display:grid;gap:1rem;max-width:760px}
.faq-item{border:1.5px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;transition:border-color .3s,box-shadow .3s}
.faq-item.open{border-color:var(--purple);box-shadow:var(--shadow-card)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.15rem 1.4rem;text-align:left;font-weight:700;
}
.faq-q i{transition:transform .4s var(--ease-spring);color:var(--purple);font-size:1.2rem;flex:0 0 auto}
.faq-item.open .faq-q i{transform:rotate(135deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-out)}
.faq-a>div{overflow:hidden}
.faq-a p{padding:0 1.4rem 1.3rem;color:var(--ink-soft);font-size:.92rem}
.faq-item.open .faq-a{grid-template-rows:1fr}

/* ---------- Outlet ---------- */
.outlet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
@media (max-width:820px){.outlet-grid{grid-template-columns:1fr}}
.outlet-card{
  display:flex;gap:1.3rem;padding:1.5rem;border-radius:var(--r-card);background:#fff;
  border:1.5px solid var(--line);transition:transform .4s var(--ease-spring),box-shadow .4s;
}
.outlet-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}
.outlet-badge{
  flex:0 0 auto;width:58px;height:58px;border-radius:18px;display:grid;place-content:center;
  color:#fff;font-size:1.5rem;background:var(--oc,var(--red));
}
.outlet-card h3{font-size:1.15rem}
.outlet-card address{font-style:normal;font-size:.9rem;color:var(--ink-soft);margin:.3rem 0 .8rem}
.outlet-hours{font-size:.8rem;font-weight:700;display:flex;align-items:center;gap:.4rem;color:#1d7a37}
.outlet-links{display:flex;gap:.5rem;margin-top:.9rem;flex-wrap:wrap}
.mini-btn{
  display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:800;
  padding:.42rem .9rem;border-radius:999px;border:1.5px solid var(--line);transition:.3s;
}
.mini-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.delivery-chips{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.7rem}
.delivery-chips span{font-size:.7rem;font-weight:800;letter-spacing:.06em;padding:.32rem .7rem;border-radius:8px;background:var(--teal-soft);color:#20727e}

/* ---------- Form ---------- */
.form-card{
  border-radius:var(--r-card);background:#fff;border:1.5px solid var(--line);
  padding:clamp(1.6rem,4vw,2.4rem);box-shadow:var(--shadow-card);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:600px){.form-grid{grid-template-columns:1fr}}
.field{display:grid;gap:.4rem}
.field label{font-size:.82rem;font-weight:800}
.field input,.field select,.field textarea{
  border:1.5px solid var(--line);border-radius:var(--r-input);padding:.85rem 1rem;background:var(--white);
  transition:border-color .3s,box-shadow .3s;width:100%;
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--red);box-shadow:0 0 0 4px var(--red-soft);
}
.contact-line{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 0;border-bottom:1px dashed var(--line)}
.contact-line:last-of-type{border:0}
.contact-line .ci{width:46px;height:46px;flex:0 0 auto;border-radius:14px;display:grid;place-content:center;color:#fff;font-size:1.25rem;background:var(--cc,var(--red))}
.contact-line b{display:block;font-size:.95rem}
.contact-line span{font-size:.86rem;color:var(--ink-soft)}

/* ---------- Job list karier ---------- */
.job-list{display:grid;gap:1rem}
.job{
  display:flex;justify-content:space-between;align-items:center;gap:1.2rem;flex-wrap:wrap;
  padding:1.4rem 1.6rem;border-radius:var(--r-card);border:1.5px solid var(--line);background:#fff;
  transition:transform .4s var(--ease-spring),box-shadow .4s,border-color .3s;
}
.job:hover{transform:translateX(8px);box-shadow:var(--shadow-card);border-color:var(--jc,var(--red))}
.job h3{font-size:1.08rem}
.job-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.45rem}

/* ---------- Reveal system (IntersectionObserver) ---------- */
[data-reveal]{opacity:0;will-change:transform,opacity;transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--d,0s)}
[data-reveal="up"]{transform:translateY(44px)}
[data-reveal="down"]{transform:translateY(-44px)}
[data-reveal="left"]{transform:translateX(-56px)}
[data-reveal="right"]{transform:translateX(56px)}
[data-reveal="zoom"]{transform:scale(.86)}
[data-reveal="tilt"]{transform:perspective(800px) rotateX(14deg) translateY(40px)}
[data-reveal].in-view{opacity:1;transform:none}
.section-tight{padding:clamp(2.5rem,5vw,4rem) 0;position:relative}
.split.flip .split-media{order:2}
@media (max-width:900px){.split.flip .split-media{order:0}}
@media (min-width:941px){.steps.cols-3{grid-template-columns:repeat(3,1fr)}}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  [data-reveal]{opacity:1;transform:none}
  .cursor-dot,.cursor-ring{display:none}
  .marquee-track{animation-duration:26s !important;animation-iteration-count:infinite !important}
}
