/* ============================================
   RIGHT — Jasa Pembukuan Indonesia
   Design tokens
   ============================================ */
:root{
  --ink:      #16233F;
  --ink-80:   #16233Fcc;
  --paper:    #F3EFE4;
  --paper-alt:#EAE3D0;
  --paper-dk: #DDD3B8;
  --brass:    #9C7A3C;
  --brass-lt: #C9A227;
  --emerald:  #1F4D3D;
  --charcoal: #22252B;
  --slate:    #5C6370;
  --white:    #FFFFFF;
  --line:     #C9BFA2;

  --display: "Fraunces", ui-serif, Georgia, serif;
  --body:    "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  --maxw: 1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--charcoal);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:600;
  color:var(--ink);
  margin:0 0 .4em 0;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em 0;}
.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 32px;
}
.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--brass);
  display:inline-block;
}
.btn{
  font-family:var(--mono);
  font-size:13.5px;
  letter-spacing:.04em;
  padding:13px 26px;
  border-radius:2px;
  display:inline-block;
  border:1px solid var(--ink);
  transition:all .2s ease;
  cursor:pointer;
}
.btn-primary{
  background:var(--ink);
  color:var(--paper);
}
.btn-primary:hover{
  background:var(--emerald);
  border-color:var(--emerald);
}
.btn-ghost{
  background:transparent;
  color:var(--ink);
}
.btn-ghost:hover{
  background:var(--ink);
  color:var(--paper);
}

/* === Header / Nav === */
header.site{
  position:sticky; top:0; z-index:40;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 32px;
  max-width:var(--maxw);
  margin:0 auto;
}
.brand{
  font-family:var(--display);
  font-weight:700;
  font-size:22px;
  color:var(--ink);
  display:flex;
  align-items:baseline;
  gap:8px;
}
.brand .brand-sub{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--slate);
  text-transform:uppercase;
}
.navlinks{
  display:flex;
  gap:36px;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.03em;
}
.navlinks a{
  position:relative;
  color:var(--charcoal);
  padding-bottom:4px;
}
.navlinks a.active,
.navlinks a:hover{ color:var(--brass); }
.navlinks a.active::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:2px;
  background:var(--brass);
}
.nav-cta{
  font-family:var(--mono);
  font-size:12.5px;
}

/* === Ledger rule (structural motif) === */
.rule{
  border:0;
  border-top:1px solid var(--line);
  margin:0;
}
.ledger-frame{
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.section{
  padding:88px 0;
}
.section-alt{
  background:var(--paper-alt);
}
.section-ink{
  background:var(--ink);
  color:var(--paper);
}
.section-ink h1, .section-ink h2, .section-ink h3{ color:var(--paper); }
.section-ink .eyebrow{ color:var(--brass-lt); }
.section-ink .eyebrow::before{ background:var(--brass-lt); }

/* === Hero === */
.hero{
  padding:110px 0 90px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:60px;
  align-items:center;
}
.hero h1{
  font-size:clamp(38px,5vw,60px);
  line-height:1.05;
}
.hero .lead{
  font-size:18px;
  color:var(--slate);
  max-width:52ch;
  margin-bottom:32px;
}
.hero-actions{
  display:flex;
  gap:14px;
  margin-bottom:36px;
}
.hero-meta{
  display:flex;
  gap:36px;
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--slate);
  border-top:1px solid var(--line);
  padding-top:18px;
}
.hero-meta strong{
  display:block;
  color:var(--ink);
  font-size:15px;
  font-family:var(--body);
  font-weight:600;
}

/* === Seal / stamp signature element === */
.seal-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.seal{
  width:280px;height:280px;
}
.seal .ring-text{
  font-family:var(--mono);
  font-size:12.4px;
  letter-spacing:.05em;
  fill:var(--emerald);
}
.seal .ring{
  fill:none;
  stroke:var(--emerald);
}
.seal .center-txt{
  font-family:var(--display);
  fill:var(--ink);
}
.seal .spin{
  animation:spin 34s linear infinite;
  transform-origin:140px 140px;
}
@media (prefers-reduced-motion: reduce){
  .seal .spin{ animation:none; }
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* === Digital integration illustration (hero) === */
.integration-illustration{
  width:100%;
  max-width:400px;
  margin:0 auto;
}
.integration-illustration svg{
  width:100%;
  height:auto;
  display:block;
}
.sys-caption{
  font-family:var(--mono);
  font-size:11px;
  color:var(--slate);
  text-align:center;
  margin-top:14px;
  letter-spacing:.03em;
}

/* === Ledger table (services / clients) === */
.ledger{
  width:100%;
  border-collapse:collapse;
  font-size:15.5px;
}
.ledger thead th{
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate);
  text-align:left;
  padding:0 0 14px 0;
  border-bottom:1px solid var(--ink);
}
.ledger tbody td{
  padding:22px 0;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.ledger tbody tr:last-child td{ border-bottom:1px solid var(--ink); }
.ledger .col-no{
  font-family:var(--mono);
  color:var(--brass);
  width:70px;
  font-size:14px;
  padding-right:12px;
}
.ledger .col-title{
  font-family:var(--display);
  font-size:19px;
  color:var(--ink);
  width:30%;
  padding-right:24px;
}
.ledger .col-desc{
  color:var(--slate);
  max-width:52ch;
}
.ledger .tag{
  display:inline-block;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--emerald);
  border:1px solid var(--emerald);
  border-radius:2px;
  padding:2px 8px;
  margin-top:8px;
}

/* === Client industries: journal-style groups === */
.journal{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  border-top:1px solid var(--ink);
  border-left:1px solid var(--line);
}
.journal-item{
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  padding:28px 30px;
}
.journal-item .jnum{
  font-family:var(--mono);
  font-size:11px;
  color:var(--brass);
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:8px;
  display:block;
}
.journal-item h4{
  font-size:19px;
  margin-bottom:8px;
}
.journal-item p{
  color:var(--slate);
  font-size:14.5px;
  margin:0;
}

/* === Timeline (About) === */
.timeline{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:0 28px;
}
.timeline .year{
  font-family:var(--mono);
  font-size:15px;
  color:var(--brass);
  padding-top:2px;
}
.timeline .event{
  padding-bottom:44px;
  border-left:1px solid var(--line);
  margin-left:0;
  padding-left:28px;
  position:relative;
}
.timeline .event::before{
  content:"";
  position:absolute;
  left:-5px; top:6px;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--emerald);
}
.timeline .event h4{ margin-bottom:6px; font-size:19px; }
.timeline .event p{ color:var(--slate); margin:0; max-width:56ch; }

/* === Founder credential blocks === */
.cred-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.cred-block .eyebrow{ margin-bottom:18px; }
.cred-list{
  list-style:none;
  margin:0;padding:0;
}
.cred-list li{
  padding:16px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  gap:16px;
  font-size:15px;
}
.cred-list li:first-child{ padding-top:0; }
.cred-list .mk{
  font-family:var(--mono);
  color:var(--brass);
  font-size:13px;
  padding-top:2px;
}

/* === Footer === */
footer.site{
  background:var(--ink);
  color:var(--paper);
  padding:64px 0 32px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:40px;
  padding-bottom:40px;
  border-bottom:1px solid #34426266;
}
.footer-grid h4{
  color:var(--paper);
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.footer-grid a{ color:#C8D0E0; display:block; margin-bottom:10px; font-size:14.5px; }
.footer-grid a:hover{ color:var(--brass-lt); }
.footer-brand{
  font-family:var(--display);
  font-size:24px;
  color:var(--paper);
  margin-bottom:12px;
}
.footer-bottom{
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  font-family:var(--mono);
  font-size:12px;
  color:#8FA0BC;
}

/* === Page header (non-home pages) === */
.page-head{
  padding:70px 0 50px;
  border-bottom:1px solid var(--line);
}
.page-head h1{ font-size:clamp(32px,4.4vw,48px); }
.page-head .lead{
  color:var(--slate);
  font-size:17px;
  max-width:60ch;
}

/* === Contact page specifics === */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.contact-card{
  border:1px solid var(--ink);
  padding:40px;
}
.contact-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.contact-row:last-child{ border-bottom:none; }
.contact-row .k{
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--slate);
}
.contact-row .v{
  font-family:var(--display);
  font-size:19px;
  color:var(--ink);
}

/* === Responsive === */
@media (max-width: 880px){
  .hero{ grid-template-columns:1fr; }
  .seal-wrap{ order:-1; }
  .seal{ width:200px;height:200px; }
  .journal{ grid-template-columns:1fr; }
  .cred-grid{ grid-template-columns:1fr; gap:8px; }
  .footer-grid{ grid-template-columns:1fr; gap:28px; }
  .contact-grid{ grid-template-columns:1fr; }
  .navlinks{ display:none; }
  .ledger .col-title{ width:auto; }
  .timeline{ grid-template-columns:1fr; }
  .timeline .year{ margin-bottom:6px; }
}

/* Focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:2px;
}
