/* ============ TOKENS ============ */
:root{
  --cream:#F8EDEE;
  --cream-2:#F2DDDF;
  --dark:#200507;
  --green:#8B1E2D; /* Maroon utama */
  --green-dark:#6D1623;
  --purple:#B22234; /* Maroon aksen */
  --gray-600:#644B4E;
  --gray-400:#9C7F83;
  --white:#FFFFFF;
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --max-w:1200px;
  --font-display:'Poppins','Inter',sans-serif;
  --font-body:'Inter',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--dark);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-display); margin:0; font-weight:700;}
p{margin:0; line-height:1.6;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font:inherit; cursor:pointer; background:none; border:none; color:inherit;}

.section{
  max-width:var(--max-w);
  margin:0 auto;
  padding:80px 24px;
}
.section-sub{
  color:var(--gray-600);
  max-width:640px;
  margin-top:10px;
}
.text-green{color:var(--green);}
.text-purple{color:var(--purple);}

/* Scroll reveal */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}

/* ============ NOTICE BAR ============ */
.notice-bar{
  background:#3D0E16;
  color:#FFE5E7;
  font-size:13.5px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:10px 16px;
  position:relative;
  text-align:center;
}
.notice-bar__inner{display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center;}
.notice-bar__icon{display:flex; color:#FF7C8A; flex-shrink:0;}
.notice-bar a{text-decoration:underline; font-weight:600; color:#FFE5E7;}
.notice-bar__close{
  position:absolute;
  right:16px; top:50%; transform:translateY(-50%);
  color:#FFC7CC;
  display:flex;
}
.notice-bar.hidden{display:none;}

/* ============ HEADER ============ */
.site-header{
  background:var(--white);
  border-bottom:1px solid #E5C9CC;
  position:sticky;
  top:0;
  z-index:50;
}
.topnav{
  max-width:1400px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 24px;
  gap:24px;
}
.topnav__left{display:flex; align-items:center; gap:36px;}
.logo{
  display:flex; align-items:center; gap:8px;
  font-family:var(--font-display);
  font-weight:800;
  font-size:20px;
  color:var(--dark);
}
.logo__img{
  width:24px; height:24px;
  object-fit:contain;
}
.main-nav{display:flex; align-items:center; gap:26px;}
.nav-item{
  display:flex; align-items:center; gap:6px;
  font-size:14.5px;
  font-weight:500;
  color:var(--dark);
  white-space:nowrap;
}
.caret{
  width:7px; height:7px;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);
  margin-top:-3px;
}
.topnav__right{display:flex; align-items:center; gap:18px;}
.text-link{font-size:14.5px; font-weight:500; white-space:nowrap;}
.btn{
  padding:10px 18px;
  border-radius:999px;
  font-weight:600;
  font-size:14.5px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.btn--primary{background:var(--green); color:var(--white);}
.btn--primary:hover{background:var(--green-dark);}
.btn--dark{background:var(--dark); color:var(--white);}
.btn--dark:hover{background:#000;}
.icon-btn{
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  color:var(--dark);
}
.icon-btn:hover{background:var(--cream);}
.avatar{
  width:34px; height:34px;
  border-radius:50%;
  background:var(--dark);
  color:var(--white);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700;
}
.hamburger{display:none;}

.searchbar{
  max-width:1400px;
  margin:0 auto;
  padding:0 24px 16px;
  display:flex;
  align-items:center;
  gap:14px;
}
.searchbar__all{
  display:flex; align-items:center; gap:6px;
  border:1px solid #D8B8BC;
  border-radius:999px 0 0 999px;
  padding:11px 16px;
  font-size:14px;
  font-weight:500;
  border-right:none;
  flex-shrink:0;
}
.searchbar__field{
  flex:1;
  display:flex; align-items:center; gap:10px;
  border:1px solid #D8B8BC;
  border-left:none;
  padding:11px 16px;
  color:var(--gray-400);
}
.searchbar__field input{
  border:none; outline:none; flex:1; font-size:14px; background:transparent;
}
.searchbar__tools{display:flex; align-items:center; gap:4px;}

/* ============ HERO ============ */
.hero{
  position:relative;
  min-height:640px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--dark);
}
.hero__banner{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
}
.hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(80,0,10,.3) 0%, rgba(35,0,5,.85) 100%);
}
.hero__content{
  position:relative;
  z-index:2;
  text-align:center;
  color:var(--white);
  max-width:680px;
  padding:24px;
}
.hero__content h1{
  font-size:clamp(34px, 6vw, 58px);
  line-height:1.1;
  margin-bottom:22px;
  text-shadow:0 4px 24px rgba(0,0,0,.35);
}
.hero__content p{
  font-size:16px;
  color:#F3EFE8;
  text-shadow:0 2px 14px rgba(0,0,0,.4);
}

/* ============ VALUES ============ */
.values{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
  background:var(--cream);
  max-width:none;
  padding:90px 24px;
}
.values__text{max-width:520px; margin-left:auto;}
.values__text h2{font-size:38px; margin-bottom:18px;}
.values__text p{color:var(--gray-600); font-size:16px;}
.values__text a{color:var(--purple); text-decoration:underline; font-weight:600;}
.values__gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  max-width:520px;
}
.values__img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:var(--radius-md);
  background:var(--cream-2);
}

/* ============ TESTIMONIALS ============ */
.testimonials h2{font-size:34px;}
.testimonials__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px;
  margin-top:36px;
}
.testimonial-card{
  background:var(--cream);
  border-radius:var(--radius-md);
  padding:28px;
}
.testimonial-card__logo{
  height:28px;
  width:auto;
  max-width:140px;
  object-fit:contain;
  object-position:left center;
  margin-bottom:14px;
}
.testimonial-card h3{font-size:20px; margin-bottom:8px;}
.testimonial-card p{color:var(--gray-600); font-size:14.5px;}

/* ============ FOOTER ============ */
.site-footer{
  background:#300A10;
  padding:56px 24px 32px;
}
.footer__top{
  max-width:var(--max-w);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.logo--footer{font-size:19px; color:#fff;}
.socials{display:flex; gap:14px;}
.socials a{
  width:34px; height:34px;
  border-radius:50%;
  background:var(--green);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700;
  color:#fff;
}
.footer__columns{
  max-width:var(--max-w);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  padding-top:36px;
}
.footer__col{display:flex; flex-direction:column; gap:12px;}
.footer__col h4{font-size:14px; margin-bottom:4px; color:#fff;}
.footer__col a{font-size:14px; color:#D6A4AB;}
.footer__col a:hover{color:#fff;}
.footer__legal{
  max-width:var(--max-w);
  margin:36px auto 0;
  font-size:12.5px;
  color:#BFA4A8;
}

/* ============ MOBILE ============ */
@media (max-width: 900px){
  .main-nav{display:none;}
  .hamburger{display:flex;}
  .topnav__right .text-link{display:none;}
  .values{grid-template-columns:1fr;}
  .values__text{margin:0;}
  .values__gallery{margin:0;}
  .testimonials__grid{grid-template-columns:1fr;}
  .policy-list{grid-template-columns:1fr;}
  .join{grid-template-columns:1fr;}
  .join__text{margin:0; padding-right:0;}
  .footer__columns{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width: 560px){
  .btn--primary{display:none;}
  .searchbar__all span.caret{display:none;}
  .hero{min-height:520px;}
  .stats-row{gap:24px;}
}