:root {
  --primary-green: #00511a;
  --secondary-green: #007427;
  --secondary-yellow: #EEB741;
  --text-dark: #000000;
  --text-light: #ffffff;
  --text-placeholder: #c2c2c2;
  --border-color: #c2c2c2;
  --text-gray: #c2c2c2;
  --background-light: #ffffff;
  --border-gray: #c2c2c2;
  --font-primary: 'Rubik', sans-serif;
  --font-display: 'Changa One', cursive;
}

body {
  font-family: 'Rubik', sans-serif;
  margin: 0;
  padding: 0;
  background-color: #ffffff;
  color: #000000;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

.page-wrapper {
  max-width: 100%;
  margin: 0 auto;
  position: relative;
}

.container {
  width: 100%;
  max-width: 85% !important;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.container-height {
  min-height: 80vh;
  margin-top: 30px;
}

.registration-page {
  display: flex;
  max-width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  background-color: #ffffff;
  position: relative;
  overflow: hidden;
}

.registration-page .deco-leaf {
  position: absolute;
  filter: blur(8px);
  z-index: 10;
}

/* .leaf-top-right {
  width: 249px;
  height: 249px;
  top: -125px;
  right: -28px; 
} */

/* === Tanpa Bootstrap === */
/* Warna navbar kamu (opsional) */
/* .navbar { background:#085a2b; } */

.user-menu { position: relative; list-style: none; }

/* Tombol "Hi, Anggun" */
.user-trigger{
  display:flex; 
  align-items:center; 
  gap:.4rem;
  background:transparent; 
  border:0; color:#fff;
  font-weight:800; 
  font-size:1.3rem; 
  cursor:pointer; 
  padding:.25rem 0;
}
.user-trigger .caret{ width:16px; height:16px; fill:#fff; }

/* Kartu dropdown */
.user-dropdown{
  position:absolute; right:0; top:100%;
  margin-top:.5rem;
  min-width: 280px;
  background:#fff; border-radius:18px;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  padding:14px 16px;
  z-index: 999999; /* pastikan paling depan */

  /* hidden by default */
  opacity:0; transform:translateY(-6px); pointer-events:none;
  transition:opacity .15s ease, transform .15s ease;
}
.user-dropdown.open{ 
  opacity:1; 
  transform:translateY(0); 
  pointer-events:auto; 
  z-index: 99999999;
}

/* Item menu */
.menu-item{
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem;
  text-decoration:none;
  color:#0b5d2c;
  font-weight:800; font-size:1.25rem;
  padding:.35rem 2px;
  border-radius:8px;
}
.menu-item:hover{ 
  background:#f3f5f4; 
}

.menu-item .chev{
   width:18px; 
   height:18px; 
   fill:#0b5d2c; }

/* Garis pemisah */
.divider{ height:1px; background:#e7e7e7; margin:.35rem 0 .25rem; }

/* Logout + titik merah */
.menu-item.logout{ 
  justify-content:flex-start; 
  gap:.6rem; 
}
.menu-item.logout .dot{
  width:14px; 
  height:14px; 
  border-radius:50%; 
  background:#ff2a2a; 
  display:inline-block;
}

/* Util */
.hidden{ 
  display:none; 
}

/* Responsif kecil */
@media (max-width:480px){
  .user-dropdown{ right:auto; left:0; min-width:240px; }
}


.registration-page .leaf-bottom-left {
  width: 249px;
  height: 249px;
  bottom: 103px; /* 1024 - 672 - 249 */
  left: 1000px; /* 3723 - 3032 */
  z-index: 100;
}

.registration-page .form-container {
  flex: 0 0 50%; /* 816px / 1440px */
  /* padding: 118px 150px 118px 164px;  */
  display: flex;
  flex-direction: column;
  padding: 100px 100px 100px 120px;
}

.registration-page .logo {
  width: 107px;
  height: 128px;
  object-fit: contain;
  margin-bottom: 16px;
}

.registration-page .title-group {
  display: flex;
  align-items: center;
  gap: 13px;
}

.registration-page .title-decorator {
  width: 12px;
  height: 53px;
  background-color: var(--secondary-green);
}

.registration-page .title-group h1 {
  font-family: var(--font-display);
  font-size: 50px;
  font-weight: 400;
  line-height: 1.06; /* 53.1px */
  margin: 0;
  color: var(--text-dark);
}

.registration-page .login-prompt {
  font-family: var(--font-primary);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.18; /* 23.7px */
  margin: 25px 0 0 0;
}

.registration-page .login-prompt a {
  font-weight: 800;
  color: var(--primary-green);
}

.registration-page .registration-form {
  margin-top: 98px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.registration-page .form-field {
  display: flex;
  flex-direction: column;
}

.registration-page .form-field .form-label-default {
  font-size: 15px;
  font-weight: 500;
  color: var(--primary-green);
  margin-bottom: 14px;
}

.registration-page .form-field input {
  border: none;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 4px;
  font-family: var(--font-primary);
  font-size: 24px;
  font-weight: 500;
  color: var(--text-dark);
  background-color: transparent;
}

.registration-page .form-field input::placeholder {
  color: var(--text-placeholder);
}

.registration-page .form-field input:focus {
  outline: none;
  border-color: var(--primary-green);
}

.registration-page .form-row {
  display: flex;
  gap: 48px;
}

.registration-page .form-row .form-field {
  flex: 1;
}

.registration-page .submit-btn {
  width: 159px;
  height: 51px;
  background-color: var(--primary-green);
  color: var(--text-light);
  border: none;
  border-radius: 15px;
  font-family: var(--font-primary);
  font-size: 24px;
  font-weight: 500;
  cursor: pointer;
  margin-top: 58px;
}

.registration-page .image-container {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.registration-page .overlay-yellow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(217, 217, 217, 0.05) 45%, #DFCD19 82.97%);
  z-index: 99;
}

.registration-page .main-image {
  width: 692px;
  height: 461px;
  object-fit: cover;
  position: relative;
  top: 22px; /* (265 - (1024-461)/2) to center vertically */
  z-index: 2;
}

.registration-page .decorative-elements {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.registration-page .deco-shape {
  position: absolute;
  z-index: 1;
}

.registration-page .shape-1 { /* Ellipse 70 */
  width: 331px;
  height: 327px;
  top: 235px;
  left: 41px; /* 3889 - 3848 */
}

.registration-page .shape-2 { /* Ellipse 71 */
  width: 278px;
  height: 275px;
  top: 261px;
  left: 68px; /* 3916 - 3848 */
}

.registration-page .shape-3 { /* Group 181 */
  width: 101px;
  height: 376px;
  top: 214px;
  left: 494px; /* 4342 - 3848 */
}

/* Responsive Styles */
@media (max-width: 1200px) {
  .form-container {
    padding: 80px;
  }
}

@media (max-width: 992px) {
  .registration-page {
    flex-direction: column;
  }
  .form-container {
    flex-basis: auto;
    width: 100%;
    padding: 40px;
    order: 2;
  }
  .image-container {
    flex-basis: auto;
    min-height: 400px;
    order: 1;
  }
  .main-image {
    width: 80%;
    height: auto;
    top: 0;
  }
  .deco-leaf {
    display: none;
  }
}

@media (max-width: 576px) {
  .form-container {
    padding: 30px 20px;
  }
  .title-group h1 {
    font-size: 36px;
  }
  .login-prompt {
    font-size: 16px;
  }
  .registration-form {
    margin-top: 40px;
    gap: 24px;
  }
  .form-row {
    flex-direction: column;
    gap: 24px;
  }
  .form-field input {
    font-size: 18px;
  }
  .submit-btn {
    width: 100%;
  }
}

input[type="date"] {
    background-color: #fff;
    border: 1px solid #ccc;
    padding: 8px 10px;
    border-radius: 6px;
    font-family: 'Rubik', sans-serif;
}

.registration-page .form-group {
    margin-bottom: 1rem;
    font-family: sans-serif;
}

.registration-page .form-label {
    font-weight: bold;
    display: block;
    margin-bottom: 0.5rem;
}

.registration-page .radio-group {
    display: flex;
    gap: 20px;
}

.registration-page .custom-radio-label {
    position: relative;
    padding-left: 30px;
    cursor: pointer;
    font-size: 24px;
    user-select: none;
    display: flex;
    align-items: center;
    color: #222;
}

.registration-page .custom-radio-label input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.registration-page .custom-radio-circle {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 20px;
    width: 20px;
    border: 2px solid green;
    border-radius: 50%;
}

.registration-page .custom-radio-label input[type="radio"]:checked + .custom-radio-circle {
    background-color: green;
    box-shadow: inset 0 0 0 4px white;
}


/* Typography styles from css_summary.json */
.font-rubik-800-48 { font-family: 'Rubik', sans-serif; font-weight: 800; font-size: 48px; line-height: 56.88px; }
.font-rubik-500-20 { font-family: 'Rubik', sans-serif; font-weight: 500; font-size: 20px; line-height: 23.7px; }
.font-rubik-600-20 { font-family: 'Rubik', sans-serif; font-weight: 600; font-size: 20px; line-height: 23.7px; }
.font-rubik-600-32 { font-family: 'Rubik', sans-serif; font-weight: 600; font-size: 32px; line-height: 37.92px; }
.font-rubik-400-14 { font-family: 'Rubik', sans-serif; font-weight: 400; font-size: 14px; line-height: 16.59px; }
.font-rubik-700-14 { font-family: 'Rubik', sans-serif; font-weight: 700; font-size: 14px; line-height: 16.59px; }
.font-rubik-500-14-lh25 { font-family: 'Rubik', sans-serif; font-weight: 500; font-size: 14px; line-height: 25px; }
.font-rubik-500-16 { font-family: 'Rubik', sans-serif; font-weight: 500; font-size: 16px; line-height: 18.96px; }
.font-rubik-500-32 { font-family: 'Rubik', sans-serif; font-weight: 500; font-size: 32px; line-height: 37.92px; }
.font-inter-700-40 { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 40px; line-height: 48.41px; }
.font-inter-700-24 { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 24px; line-height: 29.05px; }
.font-rubik-400-16 { font-family: 'Rubik', sans-serif; font-weight: 400; font-size: 16px; line-height: 18.96px; }
.font-rubik-300-14 { font-family: 'Rubik', sans-serif; font-weight: 300; font-size: 14px; line-height: 16.59px; }
.font-rubik-300-20 { font-family: 'Rubik', sans-serif; font-weight: 300; font-size: 20px; line-height: 23.7px; }
.font-rubik-400-20 { font-family: 'Rubik', sans-serif; font-weight: 400; font-size: 20px; line-height: 23.7px; }

.text-white { color: #ffffff; }
.text-green-dark { color: #00511a; }
.text-yellow { color: #eeb741; }
.text-black { color: #000000; }
.text-grey-light { color: #c6c6c6; }
.text-yellow-dark { color: #c8a049; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border-radius: 15px;
  text-decoration: none;
  cursor: pointer;
  border: none;
}
.button-primary { background-color: #ffffff; color: #00511a; } /* style_6 + style_8 */
.button-secondary { background-color: #00511a; color: #ffffff; } /* style_7 + style_5 */
.button-yellow { background-color: #eeb741; color: #00511a; } /* style_17 + style_18 */
.button-green { background-color: #007427; color: #ffffff; } /* style_26 + style_29 */
.button-green-light { background-color: #00aa47; color: #ffffff; } /* style_27 + style_29 */
.button-green-darkest { background-color: #003211; color: #ffffff; } /* style_28 + style_29 */
.button-outline-green { background-color: #ffffff; color: #00511a; border: 5px solid #00511a; } /* style_73 + style_8 */

.section-title {
  text-align: center;
  margin-bottom: 20px;
}
.section-subtitle {
  text-align: center;
  margin-bottom: 40px;
}

@media (max-width: 768px) {
  .font-rubik-800-48 { font-size: 36px; line-height: 1.2; }
  .font-rubik-600-32 { font-size: 28px; line-height: 1.2; }
  .font-inter-700-40 { font-size: 32px; line-height: 1.2; }

  .container {
    padding: 0 15px;
  }
}

.site-header-section {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100001; /* Ensure header is above hero background */
  padding-top: 12px; /* Based on y of Rectangle 6 (Masuk BG) */
}
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px; /* Approx based on logo height 67px, y=1, and button y=12, h=32 */
}
.site-logo .logo-img {
  width: 67px; /* From 4:6 */
  height: 67px; /* From 4:6 */
  display: block;
  margin-left: 60px;
}
.site-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 21px; /* Approx (666-562-83) */
}
.site-nav a {
  text-decoration: none;
  color: #ffffff; /* style_16 */
  font-family: 'Rubik', sans-serif;
  font-weight: 600;
  font-size: 20px;
}
.site-nav a.nav-link-active {
  color: #eeb741; /* style_15 */
}
.auth-buttons {
  display: flex;
  align-items: center;
  gap: 26px; /* Approx (1304-1178-113) */
}
.auth-button-masuk { /* style_17 & style_18 */
  padding: 10px 25px; /* (32-24)/2 vert, (113-63)/2 horiz */
  font-weight: 600;
  font-size: 20px;
}
.auth-link-daftar { /* style_16 */
  color: #ffffff;
  font-family: 'Rubik', sans-serif;
  font-weight: 600;
  font-size: 20px;
  text-decoration: none;
}

@media (max-width: 992px) {
  .site-nav { display: none; } /* Basic responsive: hide nav, would need a burger menu */
  .site-header { justify-content: space-between; }
}
@media (max-width: 768px) {
    .site-header .container {
        padding-left: 20px;
        padding-right: 20px;
    }
   .auth-buttons { gap: 15px;}
   .auth-button-masuk { font-size: 16px; padding: 4px 15px;}
   .auth-link-daftar { font-size: 16px;}
}

/* CSS for section section:hero */
.hero-section {
  background-color: #007427; /* style_3 from 1:4 */
  height: 600px; /* height of 1:4 */
  position: relative;
  overflow: visible; /* To contain absolute positioned shapes */
  display: flex;
  align-items: center;
  padding-top: 80px; /* Approximate space for header */
  /* padding-bottom: 40px; */
}
.hero-background-shape-1
 {
    position: absolute;
    width: 1167.00px;
    height: 800px;
    background-color: #00511a;
    border-radius: 400px;
    transform: rotate(-31.88deg);
    top: -307px;
    left: 60%;
    z-index: 0;
 }

.hero-background-shape-2 { /* style_13 from 4:9 */
  position: absolute;
  width: 233px;
  height: 233px;
  top: -132px;
  left: 7.5%;
  z-index: 0;
}
.hero-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 100px;
  position: relative;
  z-index: 0;
}
.hero-text-content {
  flex: 1;
  max-width: 80%; /* width of 1:5 */
}
.hero-title { /* style_4 */
  margin-bottom: 22px; /* 374 - 166 - 186 */
}
.hero-subtitle { /* style_5 */
  margin-bottom: 22px; /* 493 - 374 - 97 */
  max-width: 611px;
}
.hero-cta-buttons {
  display: flex;
  gap: 15px; /* 330 - 100 - 215 */
}
.hero-cta-buttons .button {
  padding: 11.5px 0; /* (47-24)/2 */
  width: 215px; /* width of 1:8 */
  font-size: 20px;
  font-weight: 500;
}
.hero-cta-buttons .button-icon {
  margin-right: 8px; /* Approx (156-130-19)/2 + space */
  width: 19px; /* from 1:11 */
  height: 19px; /* from 1:11 */
}
.hero-cta-darurat .button-icon { /* from 2:16 */
    width: 21px;
    height: 19px;
}
.hero-main-image { /* style_12 from 4:3 */
  width: 640px;
  height: auto;
  display: block;
  margin-top: 150px;
  z-index: 99;
}

@media (max-width: 1200px) {
  .hero-main-image { width: 600px; height: auto; }
  .hero-text-content { max-width: 500px; }
}
@media (max-width: 992px) {
  .hero-container {
    flex-direction: column;
    text-align: center;
    gap: 40px;
  }
  .hero-text-content { max-width: 100%; }
  .hero-cta-buttons { justify-content: center; }
  .hero-main-image { width: 80%; max-width: 500px; }
  .hero-background-shape-1 { left: 40%; }
}
@media (max-width: 768px) {
  .hero-section { padding-top: 120px; min-height: auto; } /* Adjust for potentially taller header area */
  .hero-title { font-size: 32px; line-height: 1.3; }
  .hero-subtitle { font-size: 16px; line-height: 1.5; }
  .hero-cta-buttons .button { width: 180px; font-size: 18px; }
}

/* CSS for section section:report-types */
.report-types-section {
  padding: 60px 0; /* y=749, hero ends ~693. 749-693 = 56px */
  background-color: #ffffff;
}
.report-types-section .section-title {
  margin-bottom: 36px; /* 823 - 749 - 38 = 36px */
}
.report-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 30px; /* (531-86-378)=67, (976-531-378)=67. Avg ~45px. Let's use 30px for responsiveness */
}
.report-card { /* style_20 */
  background-color: #ffffff;
  border: 1px solid #a0a0a0;
  border-radius: 15px;
  box-shadow: 0px 6px 9px 0px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden; /* To ensure border-radius on header is visible */
}
.report-card-header {
  padding: 20px; /* Approx */
  display: flex;
  align-items: center;
  gap: 15px;
  border-radius: 15px 15px 0px 0px;
  min-height: 119px; /* from 4:22 height */
  box-sizing: border-box;
}
.report-card-header.type-anonim { background-color: #007427; } /* style_21 */
.report-card-header.type-teridentifikasi { background-color: #00aa47; } /* style_22 */
.report-card-header.type-saksi { background-color: #003211; } /* style_23 */

.report-card-icon {
  width: 57px; /* Max width of icons */
  height: 65px; /* Max height of icons */
  flex-shrink: 0;
}
.report-card-header-text h3 {
  margin: 0 0 5px 0;
}
.report-card-header-text p {
  margin: 0;
  line-height: 1.2;
}
.report-card-body {
  padding: 20px;
  flex-grow: 1;
}
.report-card-body ul {
  list-style: disc;
  padding-left: 20px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px; /* Spacing for list items */
}
.report-card-cta {
  margin: 0 20px 20px 20px; /* Align with padding */
  padding-top: 12.5px; /* (42-17)/2 */
  padding-bottom: 12.5px;
  width: auto; /* Let it size by content + padding, or set fixed width if needed */
  align-self: center; /* Center button */
  min-width: 235px; /* from 4:29 */
  box-sizing: border-box;
}

/* CSS for section section:emergency-help */
.emergency-help-section {
  background-color: #ffbbbb; /* style_31 from 4:47 */
  padding: 40px 0; /* y=1243, prev ends ~1114. 1243-1114 = 129px. Use general padding */
}
.emergency-help-content {
  display: flex;
  gap: 0; /* No gap, backgrounds meet */
  max-width: 1245px; /* 625 + 625, with 95px offset for left col */
  margin: 0 auto; /* Centering the content block */
}
.emergency-column-left { /* style_32 */
  background-color: #007427;
  border-radius: 15px 0px 0px 15px;
  padding: 40px; /* Approx based on content */
  width: 625px; /* from 4:48 */
  box-sizing: border-box;
}
.emergency-column-left h2 { margin-top:0; margin-bottom: 15px; } /* 1380-1333-38 */
.emergency-column-left > p { margin-bottom: 20px; } /* 1457-1380-38 */

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 20px;
}
.contact-icon {
  width: 17px; /* from 4:56 / 4:62 */
  height: 16px; /* from 4:56 / 4:62 */
  margin-top: 5px; /* Align with text */
}
.contact-label { margin: 0 0 5px 0; }
.contact-detail { margin: 0; }
.contact-location { margin: 0; }

.emergency-column-right { /* style_33 */
  background-color: #ffffff;
  border-radius: 0px 15px 15px 0px;
  padding: 40px; /* Approx */
  width: 625px; /* from 4:49 */
  box-sizing: border-box;
}
.emergency-column-right h2 { margin-top:0; margin-bottom: 15px; } /* 1425-1333-76 (using first line) */
.emergency-column-right ul {
  list-style: disc;
  padding-left: 20px;
  margin: 0 0 20px 0; /* Space before warning box */
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.emergency-warning-box { /* style_34 */
  background-color: #ffdd9d;
  border-radius: 15px;
  padding: 15px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.warning-icon {
  width: 24px; /* from 4:66 */
  height: 24px; /* from 4:66 */
  flex-shrink: 0;
}
.emergency-warning-box p { margin: 0; }

@media (max-width: 1200px) {
  .emergency-help-content { flex-direction: column; max-width: 700px; }
  .emergency-column-left, .emergency-column-right {
    width: 100%;
    border-radius: 15px; /* Adjust radius for stacked view */
  }
  .emergency-column-left { border-radius: 15px 15px 0 0; }
  .emergency-column-right { border-radius: 0 0 15px 15px; }
}
@media (max-width: 768px) {
    .emergency-column-left, .emergency-column-right { padding: 25px; }
    .emergency-column-left h2, .emergency-column-right h2 { font-size: 24px; }
    .contact-detail { font-size: 24px; }
}

/* CSS for section section:process */
.process-section {
  background-color: #efefef; /* style_43 from 4:80 */
  padding: 60px 0; /* y=1695, prev ends ~1699. Approx start. */
}
.process-section .section-title { margin-bottom: 10px; } /* 1777-1740-38 */
.process-section .section-subtitle { margin-bottom: 60px; } /* 1874 (step1 y) - 1777 - 19 */

.process-timeline-container {
  position: relative;
  padding: 20px 0;
}
.process-timeline-line { /* style_44 from 4:70 */
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 40px; /* Align with first circle's top */
  bottom: 40px; /* Align with last circle's bottom */
  width: 15px;
  background-color: #00511a;
  border-radius: 10px;
  z-index: 0;
}

.process-step {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px; /* Spacing between steps */
  position: relative;
}
.process-step:last-child { margin-bottom: 0; }

.process-step-text { flex-basis: 38%; padding: 0 20px; box-sizing: border-box; }
.process-step-text.left { text-align: right; }
.process-step-text.right { text-align: left; order: 3; } /* For alternating */
.process-step-text h3 { margin-top: 0; margin-bottom: 10px; }

.process-step-marker {
  flex-shrink: 0;
  width: 94px; /* Ellipse size */
  height: 94px; /* Ellipse size */
  position: relative; /* For number positioning */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  order: 2; /* For alternating */
}
.process-step-marker .marker-bg { /* SVGs 4:71, 4:73, 7:8, 7:10 */
  position: absolute;
  width: 100%;
  height: 100%;
  /* Border is part of SVG style_45, etc. */
}
.process-step-marker .marker-number { /* Texts 4:72, 4:74, etc. */
  position: relative; /* To be on top of SVG */
}

.process-step-card { /* style_6 */
  flex-basis: 38%;
  background-color: #ffffff;
  border-radius: 15px;
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 118px; /* from 4:79 */
}
.process-step-card.left { order: 1; } /* For alternating */
.process-step-card.right { order: 3; } /* For alternating */

.process-step-card .card-icon { /* SVGs 4:83, 7:7, etc. */
  width: auto; /* Let SVG define size, or set fixed */
  height: 69px; /* Max height */
  margin-bottom: 10px;
}
.process-step-card h4 { margin-top: 0; margin-bottom: 10px; }
.process-step-card p { margin: 0; }

/* Alternating specific orders for step 2 and 4 */
.process-step:nth-child(2) .process-step-text.right { order: 1; text-align: right;}
.process-step:nth-child(2) .process-step-card.left { order: 3; text-align: center;}

.process-step:nth-child(4) .process-step-text.right { order: 1; text-align: right;}
.process-step:nth-child(4) .process-step-card.left { order: 3; text-align: center;}


@media (max-width: 992px) {
  .process-timeline-line { display: none; }
  .process-step { flex-direction: column; align-items: center; text-align: center !important; }
  .process-step-text, .process-step-card { flex-basis: auto; width: 100%; max-width: 450px; margin-bottom: 20px; }
  .process-step-text.left, .process-step-text.right { text-align: center !important; order: 1 !important; }
  .process-step-marker { order: 2 !important; margin-bottom: 20px; }
  .process-step-card.left, .process-step-card.right { order: 3 !important; }
}

/* CSS for section section:resources */
.resources-section {
  padding: 60px 0; /* y=2718, prev ends ~2612. 2718-2612 = 106px */
  background-color: #efefef; /* Inherited from previous section or default white */
}
.resources-section .section-title { margin-bottom: 10px; } /* 2756-2718-38 */
.resources-section .section-subtitle { margin-bottom: 50px; } /* 2829 (card y) - 2756 - 19 */

.resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 30px; /* Approx (422-103-276)=43, (741-422-276)=43 */
}
.resource-card {
  position: relative;
  border-radius: 15px;
  overflow: hidden;
  height: 287px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  border: 1px solid #e6e4e4;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.resource-card:hover {
  transform: translateY(-5px);
}

.resource-card-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.resource-card-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 40%, #007427 100%);
  z-index: 1;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: 0 0 15px 15px;
}

.resource-card-overlay1 {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, rgba(14, 14, 14, 0.65) 0%, rgba(14, 14, 14, 0.65) 100%);
  z-index: 1;
  opacity: 1;
  transition: opacity 0.3s ease;
  border-radius: 0 0 15px 15px;
}

.resource-card-content {
  position: relative;
  z-index: 2;
  padding: 20px;
  height: 80%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.resource-card-content h3 {
  margin: 0 0 10px 0;
  transition: color 0.3s ease;
  transform: translateY(40px);
}

.resource-card-content p {
  margin: 0;
  line-height: 1.3;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.3s ease;
}

.resource-card:hover .resource-card-overlay {
  opacity: 1;
}

.resource-card:hover .resource-card-content h3 {
  transform: translateY(0);
}

.resource-card:hover .resource-card-content p {
  transform: translateY(0);
  opacity: 1;
}
/* CSS for section section:faq */
.faq-section {
  padding: 60px 0; /* y=3247, prev ends ~3116. 3247-3116 = 131px */
  background-color: #ffffff; /* Default or #efefef if continued */
}
.faq-section .section-title { margin-bottom: 10px; } /* 3285-3247-38 */
.faq-section .section-subtitle { margin-bottom: 40px; } /* 3366 (item y) - 3285 - 19 */

.faq-list {
  max-width: 901px; /* from 9:49 width */
  margin: 0 auto 40px auto; /* Center list and space before CTA */
  display: flex;
  flex-direction: column;
  gap: 20px; /* Spacing between FAQ items */
}
.faq-item { /* style_65 */
  background-color: #ffffff;
  border-radius: 10px;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  padding: 20px;
}
.faq-item[open] .faq-arrow {
    transform: rotate(180deg); /* style_67 for 9:51 */
}
.faq-item summary::-webkit-details-marker { display: none; } /* Hide default marker */
.faq-item summary {
  list-style: none; /* Hide default marker */
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.faq-arrow {
  width: 23px;
  height: 15px;
  transition: transform 0.3s ease;
}
.faq-answer {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #eee;
  line-height: 1.6;
}
.faq-contact-cta {
  text-align: center;
  margin-top: 40px; /* 4045 (button y) - 3888 - 71 (last item approx end) */
}
.faq-contact-cta p { margin-bottom: 15px; }
.faq-contact-button { /* style_26 + style_5 */
  padding: 12px 30px;
  /* min-width: 377px; from 9:68 */
  box-sizing: border-box;
  font-size: 20px;
  font-weight: 500;
}
.faq-contact-button .button-icon {
  width: 33px; /* from 9:72 */
  height: 25px; /* from 9:72 */
  margin-right: 10px;
}

/* CSS for section section:commitment */
.commitment-section {
  background-color: #00511a; /* style_75 from 9:73 */
  padding: 60px 0; /* y=4171, prev ends ~4115. 4171-4115 = 56px */
}
.commitment-section .section-title {
  margin-bottom: 40px; /* 4318 (stat number y) - 4221 - 38 */
}
.commitment-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 30px;
  text-align: center;
}
.stat-item .stat-number {
  margin: 0 0 10px 0;
}
.stat-item .stat-description {
  margin: 0;
  line-height: 1.3;
}

/* CSS for section section:final-cta */
.final-cta-section {
  padding: 60px 0; /* y=4586, prev ends ~4540. 4586-4540 = 46px */
  background-color: #ffffff;
}
.final-cta-section .section-title { margin-bottom: 10px; } /* 4632-4586-38 */
.final-cta-section .section-subtitle { margin-bottom: 40px; } /* 4749 (button y) - 4632 - 38 */

.final-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 20px; /* (728-358-328) = 42px. Use smaller for responsiveness */
  flex-wrap: wrap;
}
.final-cta-button { /* style_26 / style_73 */
  padding: 12px 20px; /* Approx */
  min-width: 328px; /* from 10:85 */
  box-sizing: border-box;
  font-size: 20px;
  font-weight: 500;
  height: 70px;
}
.final-cta-button .button-icon {
  width: 26px; /* from 10:90 / 10:95 */
  height: 26px; /* from 10:90 / 10:95 */
  margin-right: 10px;
}
.final-cta-button.button-outline-green {
    font-weight: 500; /* style_8 */
}

/* CSS for section section:footer */
.site-footer-section {
  background-color: #ffffff; /* style_79 */
  box-shadow: 0px -8px 8px 0px rgba(0, 0, 0, 0.25);
  padding: 20px 0; /* (111 - 48)/2 approx */
  margin-top: 60px; /* y=4948, prev ends ~4819. 4948-4819 = 129px */
}
.site-footer p {
  text-align: center;
  margin: 0;
  line-height: 1.3;
}

.login-container {
    display: flex;
    width: 100%;
    min-height: 1024px;
    margin: 0 auto;
    background-color: var(--background-light);
    overflow: hidden;
}

.promo-panel {
    flex: 0 0 624px;
    position: relative;
    /* background: linear-gradient(180deg, rgba(217, 217, 217, 0.05) 0%, #007427 45.12%); */
    display: flex;
    flex-direction: column;
    /* justify-content: center; */
    padding: 0 28px 0 26px; /* (1582-1552) and (1578-1552) */
    overflow: hidden;
}

.promo-background-images {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.overlay-green {
    position: absolute;
    top: 0;
    left: 0;
    width: 92%;
    height: 100%;
    background: linear-gradient(180deg, rgba(217, 217, 217, 0.05) 37.84%, #007427 82.97%);
    z-index: 9999;
}

.promo-background-images img {
    position: absolute;
    object-fit: cover;
}

.bg-image-blur {
    width: 249px;
    height: 249px;
    left: 476px; /* 2028-1552 */
    top: -59px;
    filter: blur(8px);
    z-index: 99;
}

.bg-image-yellow {
    width: 329px;
    height: 1024px;
    left: 295px; /* 1847-1552 */
    top: 0;
}

.bg-image-hand {
    width: 534px;
    height: 627px;
    left: 90px; /* 1642-1552 */
    top: 221px;
    z-index: 997;
}

.bg-image-deco {
    width: 325px;
    height: 325px;
    left: 151px; /* 1703-1552 */
    top: 444px;
    z-index: 995;
}

.promo-content {
    position: relative;
    z-index: 2;
    margin-top: 20px;
}

.promo-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 60px;
    line-height: 1.06;
    color: var(--primary-green);
    margin: 0 0 0 0; /* (333-255-63) */
}

.promo-title-highlight {
    font-size: 60px;
    color: var(--text-light);
    -webkit-text-stroke: 1px var(--primary-green);
    text-stroke: 1px var(--primary-green);
}

.promo-description {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--text-dark);
    max-width: 242px;
    margin: 0;
}

.login-panel {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.login-form-wrapper {
    width: 100%;
    max-width: 486px;
    display: flex;
    flex-direction: column;
}

.logo {
    width: 107px;
    height: 128px;
    object-fit: contain;
    margin-bottom: 2px; /* 287 - (157+128) */
}

.login-header {
    display: flex;
    align-items: center;
    gap: 13px; /* 2366 - (2341+12) */
    margin-bottom: 26px; /* 365 - (287+53) */
}

.title-decorator {
    width: 12px;
    height: 53px;
    background-color: var(--secondary-green);
}

.login-title {
    font-family: var(--font-display);
    font-size: 50px;
    font-weight: 400;
    line-height: 1.06;
    color: var(--text-dark);
    margin: 0;
}

.signup-prompt {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--text-dark);
    margin: 0 0 75px; /* 466 - (365+24) */
}

.signup-prompt a {
    font-weight: 800;
    color: var(--primary-green);
    text-decoration: none;
}

.signup-prompt a:hover {
    color: var(--secondary-yellow);
}

.login-form {
    display: flex;
    flex-direction: column;
}

.form-group {
    margin-bottom: 48px; /* 580 - (466+18+18) approx */
}

.form-group:last-of-type {
    margin-bottom: 18px; /* 630 - (580+28+4) */
}

.form-group label {
    display: block;
    font-size: 15px;
    font-weight: 500;
    color: var(--primary-green);
    margin-bottom: 16px; /* 500 - (466+18) */
}

.form-group .email-link {
    font-size: 24px;
    font-weight: 500;
    color: var(--text-dark);
    text-decoration: underline;
    display: block;
    padding-bottom: 4px; /* to align with input */
    border-bottom: 1px solid var(--border-gray);
}

.password-input-wrapper {
    position: relative;
    border-bottom: 1px solid var(--border-gray);
}

.password-input-wrapper input {
    width: 100%;
    border: none;
    background: transparent;
    font-family: var(--font-primary);
    font-size: 24px;
    font-weight: 500;
    color: var(--text-gray);
    padding: 0 45px 4px 0;
}

.password-input-wrapper input:focus {
    outline: none;
    color: var(--text-dark);
}

.eye-icon {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    cursor: pointer;
}

.forgot-password-link {
    font-size: 20px;
    font-weight: 500;
    color: var(--primary-green);
    text-decoration: none;
    text-align: right;
    margin-bottom: 35px; /* 689 - (630+24) */
}

.submit-button {
    width: 159px;
    height: 51px;
    background-color: var(--primary-green);
    color: var(--text-light);
    border: none;
    border-radius: 15px;
    font-family: var(--font-primary);
    font-size: 24px;
    font-weight: 500;
    cursor: pointer;
    padding: 0;
}

.submit-button:hover {
    background-color: var(--secondary-yellow);
}

@media (max-width: 1200px) {
    .login-container {
        flex-direction: column;
        min-height: auto;
    }
    .promo-panel {
        flex: 0 0 auto;
        height: 600px;
        padding: 40px 20px;
        align-items: center;
        text-align: center;
    }
    .promo-content {
        margin-top: 0;
    }
    .promo-description {
        max-width: 100%;
    }
    .login-panel {
        padding: 40px 20px;
    }
}

@media (max-width: 768px) {
    .promo-panel {
        height: 400px;
    }
    .promo-title {
        font-size: 36px;
    }
    .promo-title-highlight {
        font-size: 32px;
    }
    .login-title {
        font-size: 40px;
    }
    .login-form-wrapper {
        max-width: 100%;
    }
}

/* ================================PUBLIC LAYUOTS=============================== */
.site-header-public {
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100; /* Ensure header is above hero background */
  padding: 20px 0; /* Based on y of Rectangle 6 (Masuk BG) */
  background-color: var(--primary-green);
}
.site-public {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* min-height: 70px; */
}
.site-logo-public .logo-img {
  width: 75px; /* From 4:6 */
  height: 75px; /* From 4:6 */
  display: block;
}
.site-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 21px; /* Approx (666-562-83) */
}
.site-nav a {
  text-decoration: none;
  color: #ffffff; /* style_16 */
  font-family: 'Rubik', sans-serif;
  font-weight: 600;
  font-size: 20px;
}
.site-nav a.nav-link-active {
  color: #eeb741; /* style_15 */
}
.auth-buttons {
  display: flex;
  align-items: center;
  gap: 26px; /* Approx (1304-1178-113) */
}
.auth-button-masuk { /* style_17 & style_18 */
  padding: 10px 25px; /* (32-24)/2 vert, (113-63)/2 horiz */
  font-weight: 600;
  font-size: 20px;
}
.auth-link-daftar { /* style_16 */
  color: #ffffff;
  font-family: 'Rubik', sans-serif;
  font-weight: 600;
  font-size: 20px;
  text-decoration: none;
}

@media (max-width: 992px) {
  .site-nav { display: none; } /* Basic responsive: hide nav, would need a burger menu */
  .site-header { justify-content: space-between; } 
}
@media (max-width: 768px) {
    .site-header .container {
        padding-left: 20px;
        padding-right: 20px;
    }
   .auth-buttons { gap: 15px;}
   .auth-button-masuk { font-size: 16px; padding: 4px 15px;}
   .auth-link-daftar { font-size: 16px;}
}