
:root{
  --bc-green:#285745;
  --bc-green-dark:#173c30;
  --bc-cream:#f7f1e2;
  --bc-paper:#fffdf7;
  --bc-gold:#d3a347;
  --bc-orange:#d66a32;
  --bc-blue:#3c8ca9;
  --bc-red:#b84c3a;
}

body{background:var(--bc-cream)}
.site-header{background:rgba(247,241,226,.95)}
.nav-wrap{min-height:88px;height:auto;padding:12px 0;gap:28px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:64px;height:64px;object-fit:contain}
.brand-copy{display:grid;line-height:1.05}
.brand-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:1.18rem;color:var(--bc-green)}
.brand-copy small{margin-top:6px;color:#70685b;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}
.main-nav{margin-left:auto}
.nav-list{gap:6px}
.nav-link{padding:14px 14px;border-radius:14px;font-size:.96rem;font-weight:720}
.nav-link.active{background:#e7ddc6;color:var(--bc-green-dark)}

.bc-hero{min-height:690px}
.bc-hero .hero-media:after{
  background:
    linear-gradient(90deg,rgba(18,42,34,.95) 0%,rgba(18,42,34,.64) 50%,rgba(18,42,34,.08) 100%),
    linear-gradient(0deg,rgba(17,32,27,.66),transparent 62%);
}
.bc-hero .hero-content{max-width:960px}

.bc-quick{
  margin-top:-28px;
}
.bc-quick .quick-nav-inner{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  padding:10px;
  border-radius:24px;
}
.bc-quick a{
  min-height:68px;
  font-size:1rem;
  border-radius:16px;
}

.bc-intro{
  max-width:900px;
  margin-inline:auto;
  text-align:center;
}
.bc-intro .eyebrow{justify-content:center}
.bc-intro .eyebrow:before{display:none}

.facility-grid,
.registration-grid,
.requirement-grid,
.parking-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:22px;
}
.facility-card,
.registration-step,
.requirement-card,
.parking-card{
  flex:1 1 240px;
  max-width:300px;
  min-width:225px;
  padding:24px;
  border:1px solid rgba(40,87,69,.12);
  border-radius:22px;
  background:var(--bc-paper);
  box-shadow:0 14px 38px rgba(31,58,43,.065);
}
.facility-icon,
.requirement-icon{
  display:grid;
  place-items:center;
  width:54px;height:54px;
  margin-bottom:17px;
  border-radius:16px;
  background:#e5eee8;
  color:var(--bc-green);
}
.facility-icon svg,
.requirement-icon svg{width:28px;height:28px}
.facility-card p,
.requirement-card p,
.parking-card p{margin:0;color:#69736d}

.registration-step{
  position:relative;
  text-align:center;
}
.registration-step b{
  display:grid;
  place-items:center;
  width:42px;height:42px;
  margin:0 auto 15px;
  border-radius:50%;
  background:var(--bc-green);
  color:#fff;
}
.registration-step h3{font-size:1.15rem}
.registration-step p{margin:0;color:#68726c}

.process-banner{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);
  gap:clamp(32px,6vw,68px);
  align-items:center;
}
.process-photo{
  overflow:hidden;
  border-radius:30px;
  box-shadow:0 20px 55px rgba(31,58,43,.13);
}
.process-photo img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.process-copy ul{margin-top:22px}

.document-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:22px;
}
.document-card{
  flex:1 1 265px;
  max-width:340px;
  min-width:255px;
  overflow:hidden;
  border:1px solid #dce2dd;
  border-radius:24px;
  background:#fff;
}
.document-card button{
  width:100%;
  border:0;
  padding:0;
  background:#eee;
}
.document-card img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:top center;
}
.document-card__body{padding:20px}
.document-card__body h3{font-size:1.2rem}
.document-card__body p{margin:0;color:#6a746e}

.rules-note{
  display:flex;
  gap:17px;
  align-items:flex-start;
  margin-top:30px;
  padding:22px 24px;
  border:1px solid #e2c989;
  border-radius:20px;
  background:#fff7df;
}
.rules-note svg{flex:0 0 32px;width:32px;color:#8b6820}
.rules-note strong{display:block;margin-bottom:5px;color:#72561c}
.rules-note p{margin:0;color:#76653e}

.ojek-photo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.ojek-photo{
  position:relative;
  overflow:hidden;
  min-height:530px;
  border-radius:28px;
  background:#222;
  box-shadow:0 20px 55px rgba(30,43,36,.15);
}
.ojek-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ojek-photo__cover{
  position:absolute;
  left:50%;
  bottom:25%;
  transform:translateX(-50%);
  width:min(82%,430px);
  padding:14px 18px;
  border-radius:15px;
  background:rgba(22,55,43,.94);
  color:#fff;
  text-align:center;
  font-weight:800;
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.ojek-photo__label{
  position:absolute;
  left:18px;
  top:18px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,253,247,.94);
  color:var(--bc-green-dark);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.fare-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:22px;
}
.fare-card{
  flex:1 1 290px;
  max-width:390px;
  min-width:270px;
  overflow:hidden;
  border:1px solid rgba(40,87,69,.13);
  border-radius:24px;
  background:#fff;
}
.fare-card__head{
  padding:23px;
  background:var(--bc-green);
  color:#fff;
}
.fare-card__head h3{margin:0;color:#fff}
.fare-list{display:grid}
.fare-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:17px 22px;
  border-bottom:1px solid #e2e5e2;
}
.fare-row:last-child{border-bottom:0}
.fare-row span{color:#647069}
.fare-row strong{color:var(--bc-green-dark);font-size:1.05rem}

.schedule-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:22px;
}
.schedule-card{
  flex:1 1 320px;
  max-width:470px;
  min-width:290px;
  padding:26px;
  border-radius:23px;
  background:#fff;
  border:1px solid #dce2dd;
}
.schedule-card h3{margin-bottom:14px}
.schedule-times{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.schedule-times span{
  padding:8px 11px;
  border-radius:999px;
  background:#e8f0ea;
  color:var(--bc-green);
  font-weight:750;
}

.parking-layout{
  display:grid;
  grid-template-columns:minmax(340px,.95fr) minmax(0,1.05fr);
  gap:clamp(34px,6vw,72px);
  align-items:center;
}
.parking-visual{
  overflow:hidden;
  border-radius:30px;
  background:#dfe8e2;
  box-shadow:0 20px 55px rgba(31,58,43,.13);
}
.parking-visual img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.parking-price{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:15px;
  margin:24px 0;
}
.price-box{
  flex:1 1 180px;
  max-width:230px;
  padding:20px;
  border-radius:19px;
  background:#fff;
  border:1px solid #dce2dd;
}
.price-box span{display:block;color:#6d7670}
.price-box strong{
  display:block;
  margin-top:5px;
  color:var(--bc-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.6rem;
}
.parking-small{
  color:#717872;
  font-size:.88rem;
}

.lightbox{
  position:fixed;
  inset:0;
  z-index:3000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:30px;
  background:rgba(10,18,14,.94);
}
.lightbox.is-open{display:flex}
.lightbox img{
  max-width:min(95vw,1200px);
  max-height:90vh;
  object-fit:contain;
  border-radius:14px;
}
.lightbox-close{
  position:absolute;
  right:22px;
  top:18px;
  width:48px;height:48px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.6rem;
}

.site-footer{background:#1c352b}
.footer-brand-row{display:flex;align-items:center;gap:14px}
.footer-brand-row img{width:55px;height:55px;object-fit:contain}
.footer-brand-row img+img{width:50px;height:50px}

@media(max-width:980px){
  .process-banner,
  .parking-layout{grid-template-columns:1fr}
  .ojek-photo-grid{grid-template-columns:1fr}
  .ojek-photo{min-height:600px}
}
@media(max-width:820px){
  .nav-wrap{min-height:82px;padding:10px 0}
  .brand img{width:58px;height:58px}
  .brand-copy{display:none}
  .bc-quick .quick-nav-inner{grid-template-columns:1fr}
}
@media(max-width:640px){
  .facility-card,
  .registration-step,
  .requirement-card,
  .parking-card,
  .fare-card,
  .schedule-card,
  .document-card{
    min-width:100%;
    max-width:none;
  }
  .ojek-photo{min-height:470px}
  .ojek-photo__cover{bottom:23%}
  .parking-price{display:grid;grid-template-columns:1fr}
  .price-box{max-width:none}
}
