/* Umum */
:root{--icon:var(--accent);--ink:#0A0B0C;--paper:#FAFBFC;--tint:#EAEBEC;--accent:#CB2A1A;--active:#CB2A1A;--on-accent:#FAFBFC;--muted:#5A6B6C;--line:#CACBCC;--linehover:#0A0B0C;--band:#0A0B0C;--r:8px;--max:1360px;
--fs-xs:.85rem;--fs-sm:.95rem;--fs-md:1.05rem;--fs-h3:1.2rem;--fs-h2:clamp(2rem,1.6rem + 1.6vw,3rem);--fs-h1:clamp(2.6rem,5.5vw,4.2rem)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Space Grotesk',system-ui,sans-serif;font-size:1rem;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.wrap{max-width:1472px;margin-inline:auto;padding-inline:var(--gutter)}
:root{--gutter:1.25rem}
section{padding:clamp(64px,6vw,96px) 0}
:root{--tab:64px}

/* Tipografi */
h1,h2,h3{font-weight:700;line-height:1.15;letter-spacing:-.015em}
h2{font-size:var(--fs-h2);text-align:center;margin-bottom:16px}
h3{font-size:var(--fs-h3)}

/* Tombol */
.btn{display:inline-block;padding:13px 28px;font:600 var(--fs-sm) 'Space Grotesk',sans-serif;border:2px solid var(--ink);border-radius:var(--r);background:var(--ink);color:var(--paper);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.alt{background:var(--paper);color:var(--ink)}
.btn.alt:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn svg{width:1.15em;height:1.15em;vertical-align:-.22em;margin-right:8px}

/* Header dan navigasi */
header{background:var(--tint);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
nav{display:grid;grid-template-columns: auto 1fr auto;column-gap:40px;align-items:center;height:72px}
.logo{justify-self:start;display:block}
.logo img{display:block;height:36px;width:auto}
.menu{display:flex;gap:32px;align-items:center;justify-content:flex-end;font-size:1rem;font-weight:600}
.menu a:not(.btn):hover{color:var(--accent)}
.menu .menu-cta,.menu .menu-logo,.scrim{display:none}
.burger{display:none;position:relative;z-index:3;min-width:44px;min-height:44px;place-items:center;background:none;border:0;font-size:1.6rem;line-height:1;padding:6px 8px;cursor:pointer;color:var(--ink)}
.menu a.active:not(.btn),.menu a[aria-current]:not(.btn){color:var(--active);font-weight:700}

/* Komponen */
.ci{flex:none;width:46px;height:46px;border-radius:50%;background:var(--paper);color:var(--accent);display:grid;place-items:center}
.ci img{width:21px;height:21px}
.ic{flex:none;width:44px;height:44px;border-radius:12px;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center}
.svc .ico,.skc .ico,.est .ico,.prod .ico{width:28px;height:28px;background:var(--icon);-webkit-mask:var(--src) center/contain no-repeat;mask:var(--src) center/contain no-repeat}
.tool-svg,.tool-png{display:block;width:36px;height:36px;margin:0 auto 10px}
.tool-svg{background:var(--src) center/contain no-repeat}
.tool-png{background:var(--src) center/contain no-repeat}
[data-theme=dark] .tool-svg{background:var(--icon);-webkit-mask:var(--src) center/contain no-repeat;mask:var(--src) center/contain no-repeat}
.ct{font-size:var(--fs-md);color:var(--muted);line-height:1.4}
.ct strong{display:block;color:var(--ink);font-weight:700}

/* Form */
form{display:grid;gap:14px}
form label{display:grid;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--ink)}
input,textarea,select{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--ink);font:var(--fs-sm) 'Space Grotesk',sans-serif}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
textarea{min-height:150px;resize:vertical}
select{cursor:pointer;padding:14px 10px}
form button[type="submit"]{display:block;width:100%;text-align:center;padding:13px 28px;font:600 var(--fs-sm) 'Space Grotesk',sans-serif;border:2px solid var(--ink);border-radius:var(--r);background:var(--ink);color:var(--paper);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
form button[type="submit"]:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* Footer */
footer{background:var(--band);color:#FAFBFC;text-align:center;padding:56px 0;border-top:1px solid var(--line)}
.flogo{display:block;line-height:0;margin-bottom:40px}
.flogo img{display:block;width:100%;height:auto}
footer p{margin-top:28px;font-size:var(--fs-xs);color:#cfc9c9}
.soc{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;max-width:1000px;margin:14px auto 0}
.soc a{width:42px;height:42px;border-radius:50%;border:1.5px solid #5a5760;display:grid;place-items:center;transition:background .2s,border-color .2s}
.soc a:hover{background:var(--accent);border-color:var(--accent)}
.soc svg{width:19px;height:19px}
.copy{margin-top:40px;padding-top:24px;border-top:1px solid #3a3840}
.legal-links{margin:14px 0 0;font-size:var(--fs-sm);display:flex;flex-wrap:wrap;justify-content:center}
.legal-links a{margin:0 10px}
.legal-links a:hover{color:var(--accent)}

/* Tema dan tombol melayang */
.theme-toggle,.totop{flex:none;border-radius:50%;border:2px solid var(--ink);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .2s,border-color .2s,color .2s,opacity .25s,transform .25s,visibility .25s}
.theme-toggle{width:42px;height:42px}
.theme-toggle:hover,.totop:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.theme-toggle svg,.totop svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle svg{width:20px;height:20px}
.totop{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:9;width:48px;height:48px;opacity:0;visibility:hidden;transform:translateY(12px)}
.totop svg{width:22px;height:22px}
html[data-theme=dark]{color-scheme:dark;--icon:#FAFBFC;--ink:#EAEBEC;--paper:#1A1B1C;--tint:#0A0B0C;--muted:#ABABAC;--line:#2A2B2C;--linehover:#EAEBEC;--accent:#AB2A1C;--active:#AB2A1C;--band:#0A0B0C}
[data-theme=dark] .scrim{background:rgba(0,0,0,.6)}
[data-theme=dark] .soc a:hover{color:var(--on-accent)}

/* Tab bar mobile */
.tabbar{display:none}
.tabbar .material-symbols-outlined{font-size:22px;line-height:1;height:22px}

/* Animasi */
@media(prefers-reduced-motion:no-preference){
 .hero-mark path{transform-box:fill-box;transform-origin:center;opacity:0;transform:scale(.5);animation:heroPath 1.6s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i)*160ms + .2s)}
@keyframes heroPath{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
 .art{animation:floaty 7s ease-in-out 2.4s infinite}
 .art::before{animation:haloin 1.2s ease 1.4s both,breathe 6s ease-in-out 2.6s infinite alternate}
}
@keyframes haloin{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes breathe{from{transform:scale(1);opacity:1}to{transform:scale(1.12);opacity:.75}}
@keyframes mq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:no-preference){.mq-track{animation:mq var(--t,70s) linear infinite}.mq.rev .mq-track{animation-direction:reverse}.mq:hover .mq-track,.mq:focus-within .mq-track{animation-play-state:paused}}
@media(prefers-reduced-motion:no-preference){
 .js .rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease var(--d,0s),transform .7s ease var(--d,0s),background .2s,border-color .2s,color .2s}
 .js .rv.in{opacity:1;transform:none}
 .js .w{display:inline-block;opacity:0;transform:translateY(.7em);transition:opacity .6s ease,transform .6s ease}
 .js .in .w{opacity:1;transform:none}
}

/* Responsif */
@media(min-width:600px){.wrap{--gutter:2rem}}
@media(min-width:961px){.wrap{--gutter:3rem}}
@media(min-width:1200px){.wrap{--gutter:2rem}}
@media(max-width:960px){
 html{scroll-padding-top:40px}
}
@media(max-width:1180px){
 nav{display:flex;justify-content:space-between}
 .burger{display:grid}
 .navr .btn{display:none}
 .menu{position:fixed;top:0;right:0;bottom:0;z-index:2;width:min(82vw,340px);background:var(--tint);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:68px 28px 32px;box-shadow:-12px 0 32px rgba(0,0,0,.15);transform:translateX(100%);visibility:hidden;transition:transform .35s ease,visibility 0s .35s}
 .menu.open{transform:none;visibility:visible;transition:transform .35s ease}
 .menu .menu-logo{display:block;margin-bottom:22px}
 .menu .menu-logo img{display:block;width:100%;max-width:260px;height:auto}
 .menu a:not(.btn){padding:15px 4px;font-size:1.1rem;border-bottom:1px solid var(--line)}
 .menu .menu-cta{display:block;text-align:center;margin-top:28px}
 .scrim{display:block;position:fixed;inset:0;z-index:1;background:rgba(28,27,31,.45);opacity:0;pointer-events:none;transition:opacity .3s}
 .scrim.open{opacity:1;pointer-events:auto}
}
@media(max-width:960px){
 .hero .wrap,.contact-grid{grid-template-columns:1fr}
 .hero .wrap{min-height:0;padding-top:48px;text-align:center}
 .hero p{margin-left:auto;margin-right:auto}
 .hero .btns{margin-inline:auto}
 .hero h1{white-space:normal}
 .hero h1 .cta{display:block}
 .hero-mark{width:150px}
 .hero p{font-size:1rem;line-height:1.65}
 .est{flex-direction:column;text-align:center;padding:28px 22px}
 .est .btn{width:100%;text-align:center}
 .art{margin-bottom:20px}
 .art::before{width:min(260px,70vw)}
 .svc{flex-basis:calc((100% - 24px)/2)}
 .carousel{--n:2;--g:24px}
 .skc{flex-basis:calc((100% - 24px)/2)}
}
@media(max-width:600px){
 .legal-links{display:grid;grid-template-columns:1fr 1fr;justify-items:center;row-gap:10px}
 .legal-links a:nth-child(1){order:1}
 .legal-links a:nth-child(4){order:2}
 .legal-links a:nth-child(2){order:3}
 .legal-links a:nth-child(3){order:4}
 .logo img{height:30px}
 .hero .btns{grid-auto-flow:row;width:100%}
 .hero .btns .btn{width:100%;min-width:0}
 .carousel{--n:1;--g:16px}
 .lb-x{top:-14px;right:-6px}
 .svc{flex-basis:100%;padding:24px 22px}
 .skc{flex-basis:100%;padding:24px 22px}
 .svc h3,.skc h3,.est-t h3{font-size:1.125rem}
 .svc p,.skc p{font-size:.9375rem}
 .svc .price{font-size:1rem}
 .tool{flex-basis:128px}
 .tool span{font-size:.8rem}
}
@media(max-width:720px){
 .soc{display:grid;grid-template-columns:repeat(6,minmax(0,42px));gap:12px 10px;justify-content:center}
 .soc a{width:auto;height:auto;aspect-ratio:1}
}
@media(max-width:1180px){[data-theme=dark] .menu{box-shadow:-12px 0 32px rgba(0,0,0,.5)}}
@media(max-width:960px){
 .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:9;background:var(--tint);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 20px rgba(0,0,0,.06)}
 .tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tab);padding:8px 2px;font-size:.7rem;font-weight:600;line-height:1.2;color:var(--muted);transition:color .2s;-webkit-tap-highlight-color:transparent}
 .tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
 .tabbar a.active,.tabbar a[aria-current]{color:var(--active);font-weight:700}
 footer{padding-bottom:calc(56px + var(--tab) + env(safe-area-inset-bottom))}
 .totop{bottom:calc(var(--tab) + 12px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){.mq{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.mq-set[aria-hidden]{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu,.scrim{transition:none}}
@media(prefers-reduced-motion:reduce){.tabbar a{transition:none}}
