:root {
    --duration: 30s;
    --totalitems: 4;
    
    /* Base font sizes */
    --font-size-base: 16px;
    --font-size-h1: clamp(2rem, 3rem, 4rem);
    --font-size-nav: clamp(1rem, 1.25rem, 1.5rem);
    --font-size-text: clamp(1rem, 1.1rem, 1.2rem);
    
    /* Border radius */
    --border-radius-sm: clamp(0.5rem, 0.75rem, 1rem);
    --border-radius-md: clamp(1rem, 1.5rem, 2rem);
    --border-radius-lg: clamp(1.5rem, 2.25rem, 3rem);
}

/* Global Styles */
body {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    color: #333;
    font-size: var(--font-size-base);
}

section {
    padding: clamp(2rem, 5vw, 8rem) clamp(1rem, 3vw, 4rem) !important;
}

/* Utility Classes */
.w7 { font-weight: 700; }
.h1 {
    font-size: var(--font-size-h1);
    font-weight: 700;
}

.text-color-primary { color: #B92F9E; }
.bg-color-primary { background-color: #B92F9E; }

/* Navigation */
.navbar-brand {
    font-size: clamp(1.5rem, 2.25rem, 3rem);
    font-weight: bold;
    line-height: 100%;
    color: #FFFFFF;
}

.nav-link {
    font-weight: 700;
    font-size: var(--font-size-nav);
    color: #FFFFFF;
    line-height: 100%;
}

.nav-link.active,
.navbar-brand:hover,
.nav-link:hover {
    color: #98CD03 !important;
}

.btn-hijau {
    background-color: #98CD03;
    color: #FFFFFF;
    font-weight: 700;
    font-size: var(--font-size-nav);
    line-height: 100%;
    padding: clamp(0.5rem, 0.875rem, 1.25rem);
    margin-top: clamp(1rem, 1.125rem, 1.25rem);
    border-radius: var(--border-radius-sm);
}

section {
    padding-top: clamp(5vh, 15vh, 20vh) !important;
    padding-bottom: clamp(5vh, 15vh, 20vh) !important;
}

/* Section 1 */
#sec1 {
    width: 100%;
}

#btnSec1 {
    margin-top: clamp(2rem, 2.5rem, 3rem);
    border-radius: clamp(25px, 37.5px, 50px);
}

#btnSec1:hover {
    background-color: #B92F9E !important;
    color: #FFFFFF !important;
}

#img-s1 {
    width: 100%;
    max-width: 657px;
    height: auto;
    right: 0;
    position: absolute;
    float: right;
    margin-left: auto;
}

/* Section 2 */
#sec2 {
    background-color: #f1f1f1;
}

.btn-sec2:hover {
    background-color: #FFFFFF !important;
    color: #B92F9E !important;
}

.btn-accordion:hover {
    color: #B92F9E !important;
    font-weight: bold;
}

/* Section 5 */
#sec5 {
    background-color: #B92F9E;
    text-align: center;
}

#sec5 .btn-hijau {
    width: clamp(120px, 160px, 200px) !important;
}

.border-bottom-white {
    border-bottom: 4px solid #FFFFFF !important;
    display: block !important;
    width: fit-content !important;
    padding-bottom: 0.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.form-sec4 {
    padding: 2vh;
}

.btn-sec4:hover {
    background-color: #B92F9E !important;
    color: #FFFFFF !important;
}

/* Section 8 */
#sec8 {
    background-color: #f6ebe5;
}

.border-bottom {
    border-color: #B92F9E !important;
    border-width: 4px !important;
}

/* Components */
.card {
    border-radius: var(--border-radius-lg) !important;
}

.btn-accordion {
    font-size: clamp(1rem, 1.25rem, 1.5rem);
    width: clamp(200px, 250px, 300px);
    padding: clamp(0.75rem, 1rem, 1.25rem) !important;
    border-radius: var(--border-radius-sm);
}

.btn-accordion.active {
    color: #B92F9E;
    font-weight: bold;
}

.content-accordion img {
    border-radius: var(--border-radius-sm);
    width: 100%;
    height: auto;
}

.content-accordion .h3 {
    color: #B92F9E;
}

/* Text Styles */
.text { font-size: clamp(1rem, 1.175rem, 1.35rem); }
.text2 { font-size: clamp(1rem, 1.175rem, 1.35rem); }
.fa-play { color: #98CD03; }
.fa-solid { font-size: clamp(1rem, 1.25rem, 1.5rem); }

/* Gallery */
.gallery .wrapper {
    height: clamp(15vh, 30vh, 40vh);
}

/* Footer */
footer {
    background-color: #B92F9E;
    color: #FFFFFF;
    padding-top: clamp(5vh, 10vh, 20vh);
    padding-bottom: clamp(5vh, 10vh, 20vh);
}

footer .table-responsive {
    font-size: clamp(0.875rem, 1.063rem, 1.25rem);
}

/* Media Queries */
@media (max-width: 768px) {
    .text, span, p, button {
        font-size: clamp(0.875rem, 0.938rem, 1rem) !important;
    }
    
    .btn-hijau {
        padding: clamp(0.5rem, 0.625rem, 0.75rem) !important;
    }
}

@media (min-width: 769px) {
    .btn-hijau {
        padding: clamp(1rem, 1.125rem, 1.25rem) !important;
    }
}

/* Animation keyframes remain unchanged */
@keyframes scrollX {
    to {
        left: -50vw;
    }
}

@keyframes scrollX2 {
    from {
        left: -50vw;
    }
    to {
        left: 100%;
    }
}