/* Lapisan desain situs multi-halaman. Dimuat setelah base.css. */
:root { --display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif; }
h1, h2, h3, .h2, .h3 { font-family: var(--display); }
.h2, .h3 { font-weight: 700; }
[id] { scroll-margin-top: 130px; }
.nav a[aria-current="page"] { color: var(--c-teal); background: var(--b-teal); }
.nav a.btn-nav[aria-current="page"] { color: #fff; }
.hero .kicker { text-transform: none; letter-spacing: .01em; font-size: 15px; font-weight: 600; }
.hero .kicker::before { width: 32px; }

/* bilah progres */
.prog { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 60; background: var(--hs, var(--teal)); transform: scaleX(0); transform-origin: left; }

/* beranda */
.home-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 5vw, 64px); align-items: center; padding-block: clamp(48px, 8vw, 96px); }
.home-hero h1 { font-size: clamp(42px, 6.4vw, 84px); font-weight: 700; line-height: 1.02; letter-spacing: -.035em; margin-top: 20px; }
.home-hero .hero-tag { max-width: 46ch; }
.orbit { width: 100%; max-width: 520px; margin-inline: auto; display: block; overflow: visible; }
.orbit .ring { fill: none; stroke: rgba(255,255,255,.22); stroke-dasharray: 2 8; stroke-linecap: round; transform-origin: 260px 260px; animation: spin 120s linear infinite; }
.orbit .ring2 { fill: none; stroke: rgba(255,255,255,.08); }
.orbit .spoke { stroke: var(--k); stroke-width: 2; stroke-opacity: .55; stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1s .2s forwards; }
.orbit .pulse { fill: var(--k); }
.orbit .hub circle { fill: var(--navy); stroke: #52e0d2; stroke-width: 2; }
.orbit .hub text { font: 700 34px var(--display); fill: #fff; text-anchor: middle; dominant-baseline: central; }
.orbit .node { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: transform .2s; animation: show .6s var(--d) both; outline: none; }
.orbit .node rect { fill: var(--k); }
.orbit .node text { font: 700 18px var(--font); fill: var(--t); text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.orbit .node:hover, .orbit .node:focus-visible { transform: scale(1.08); }
.orbit .node:focus-visible rect { stroke: #fff; stroke-width: 3; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes show { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .orbit .ring, .orbit .node { animation: none; }
  .orbit .spoke { animation: none; stroke-dashoffset: 0; }
  .orbit .pulse { display: none; }
}

/* panel lini usaha */
.lines { display: flex; gap: 14px; min-height: 400px; margin-top: 36px; }
.ln { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; padding: 26px; border-radius: var(--radius); background: var(--cb); border: 1px solid var(--line); border-top: 4px solid var(--s); text-decoration: none; transition: flex .45s cubic-bezier(.2,.7,.2,1); }
.ln:hover, .ln:focus-visible { flex: 1.7; }
.ln h3 { font-size: clamp(22px, 2.2vw, 28px); font-weight: 700; }
.ln p { margin-top: 10px; color: var(--muted); font-size: 15px; }
.ln .go { font-weight: 700; color: var(--c); text-decoration: underline; text-underline-offset: 4px; }
.figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--line-strong); }
.figs div { padding: 32px 24px; border-left: 1px solid var(--line); }
.figs div:first-child { border-left: 0; padding-left: 0; }
.figs b { display: block; font: 700 clamp(44px, 6.5vw, 84px)/1 var(--display); letter-spacing: -.04em; }
.figs span { display: block; margin-top: 10px; color: var(--muted); font-size: 14px; max-width: 24ch; }
.closing { text-align: left; }
.closing .lede { margin-bottom: 28px; }

/* hero halaman dalam */
.sub-hero::before { background: radial-gradient(55% 80% at 90% 0%, color-mix(in srgb, var(--hs) 42%, transparent), transparent 70%), radial-gradient(40% 50% at 8% 110%, rgba(43,107,232,.2), transparent 70%); }
.sub-inner { position: relative; z-index: 1; padding-block: clamp(48px, 8vw, 96px) clamp(40px, 6vw, 64px); }
.crumb { font-size: 14px; color: #8ea1bf; }
.crumb a { color: #b8c6dc; }
.sub-hero h1 { font-size: clamp(38px, 6.4vw, 78px); font-weight: 700; letter-spacing: -.035em; line-height: 1.02; margin-top: 16px; max-width: 16ch; }
.lede-h { margin-top: 20px; color: #b8c6dc; font-size: clamp(17px, 2vw, 21px); max-width: 58ch; }
.bignum { position: absolute; right: clamp(8px, 3vw, 40px); top: 50%; transform: translateY(-50%); font: 800 clamp(140px, 26vw, 340px)/.8 var(--display); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 2px var(--hs); opacity: .5; pointer-events: none; }

/* navigasi dalam halaman */
.pagenav { position: sticky; top: 68px; z-index: 40; background: var(--header-bg); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.pagenav .wrap { display: flex; gap: 6px; overflow-x: auto; padding-block: 8px; }
.pagenav a { white-space: nowrap; text-decoration: none; font-size: 14px; font-weight: 600; color: var(--muted); padding: 8px 14px; border-radius: 999px; }
.pagenav a:hover { color: var(--ink); background: var(--surface); }
.pagenav a[aria-current="true"] { background: var(--ink); color: var(--bg); }

/* lini berikutnya */
.nextline { display: block; text-decoration: none; background: var(--navy-deep); color: #fff; padding-block: clamp(48px, 8vw, 96px); border-top: 6px solid var(--hs); }
.nextline small { color: #8ea1bf; font-size: 15px; }
.nextline b { display: block; margin-top: 8px; font: 700 clamp(32px, 6vw, 72px)/1.05 var(--display); letter-spacing: -.03em; transition: transform .3s; }
.nextline:hover b, .nextline:focus-visible b { transform: translateX(14px); }

/* kontak */
.sub-hero + .contact { padding-top: clamp(32px, 5vw, 56px); border-top: 1px solid rgba(255,255,255,.1); }

/* footer */
.sf { background: var(--navy-deep); color: #8ea1bf; font-size: 14px; }
.sf-bar { display: flex; height: 6px; } .sf-bar i { flex: 1; }
.sf-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; padding-block: 56px 40px; }
.sf h4 { color: #fff; font-size: 15px; margin-bottom: 12px; }
.sf a { color: #b8c6dc; text-decoration: none; } .sf a:hover { color: #fff; text-decoration: underline; }
.sf li { margin-bottom: 8px; }
.sf-name { font: 700 clamp(28px, 4vw, 44px)/1.05 var(--display); color: #fff; letter-spacing: -.03em; }
.sf-bot { border-top: 1px solid rgba(255,255,255,.1); padding-block: 18px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13px; }

@media (max-width: 900px) {
  .home-hero { grid-template-columns: 1fr; }
  .orbit { max-width: 440px; }
  .lines { flex-direction: column; min-height: 0; }
  .ln, .ln:hover, .ln:focus-visible { flex: none; }
  .figs { grid-template-columns: 1fr 1fr; }
  .figs div:nth-child(3) { border-left: 0; padding-left: 0; }
  .figs div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .bignum { opacity: .22; }
  .sf-top { grid-template-columns: 1fr; }
}
