/* --- Variables & Reset --- */
:root { 
    --bg: #ffffff; 
    --fg: #1e293b; 
    --muted: #64748b; 
    
    /* SAEIKI BRAND COLORS (ICE BLUE & CLEAN CYAN) */
    --accent: #86d4ff; 
    --accent-dark: #0ea5e9; 
    --accent-light: #e0f2fe; 
    
    --card: #ffffff; 
    --border: #e2e8f0; 
}

* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    border-radius: 0 !important; 
}

html { scroll-behavior: smooth; }

body { 
    font-family: 'DM Sans', sans-serif; 
    background-color: var(--bg); 
    color: var(--fg); 
    overflow-x: hidden; 
}

.font-display { font-family: 'Space Grotesk', sans-serif; }

/* ==========================================================================
   DYNAMIC HEADER (PROFESSIONAL TRANSPARENT TO SOLID)
   ========================================================================== */
#site-header {
    background-color: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    transition: background-color 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease, padding 0.4s ease;
}

#site-header .top-bar {
    max-height: 50px;
    opacity: 1;
    transition: all 0.4s ease;
    overflow: hidden;
}

/* --- Kondisi Awal (Transparan di atas Hero) --- */
#site-header .nav-link,
#site-header .top-bar a,
#site-header .top-bar span,
#site-header .mobile-btn {
    color: #ffffff;
    transition: color 0.3s ease;
    text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

#site-header .nav-link:hover,
#site-header .mobile-btn:hover {
    color: var(--accent);
}

#site-header .logo-img {
    filter: brightness(0) invert(1); /* Membuat logo jadi putih */
    transition: filter 0.4s ease;
}

#site-header .btn-contact {
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(4px);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

#site-header .btn-contact:hover {
    background-color: #ffffff;
    color: var(--accent-dark);
}

/* --- Kondisi Saat Di-scroll (Background Solid) --- */
#site-header.is-scrolled {
    background-color: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 4px 20px -10px rgba(0, 0, 0, 0.1);
}

#site-header.is-scrolled .top-bar {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    border-bottom: none;
}

#site-header.is-scrolled .nav-link,
#site-header.is-scrolled .mobile-btn {
    color: #1e293b !important; /* Warna teks jadi gelap */
    text-shadow: none !important;
}

#site-header.is-scrolled .nav-link:hover,
#site-header.is-scrolled .mobile-btn:hover {
    color: var(--accent-dark) !important;
}

#site-header.is-scrolled .nav-link::after {
    background-color: var(--accent-dark);
}

#site-header.is-scrolled .logo-img {
    filter: brightness(1) invert(0); /* Mengembalikan warna asli logo */
}

#site-header.is-scrolled .btn-contact {
    background-color: var(--accent-dark) !important;
    color: #ffffff !important;
    border-color: transparent !important;
    text-shadow: none !important;
}

#site-header.is-scrolled .btn-contact:hover {
    background-color: var(--accent) !important;
}

/* Dropdown Menu Overrides */
#site-header .dropdown-menu {
    border-top: 3px solid var(--accent);
}
#site-header .dropdown-link {
    color: #475569 !important;
    text-shadow: none !important;
}
#site-header .dropdown-link:hover {
    color: var(--accent-dark) !important;
    background-color: var(--accent-light) !important;
}

/* ==========================================================================
   GENERAL STYLES & ANIMATIONS
   ========================================================================== */
.bg-cool-gradient { background: linear-gradient(135deg, #0ea5e9 0%, #86d4ff 100%); }
.bg-soft-ice { background: linear-gradient(to bottom, #ffffff, #e0f2fe); }

@keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.animate-scroll { display: flex; width: 200%; animation: scroll 30s linear infinite; }
.animate-scroll:hover { animation-play-state: paused; }
.animate-slide-up { animation: slideUp 0.8s ease-out forwards; }
.animate-scale-in { animation: scaleIn 0.5s ease-out forwards; }
.animate-float { animation: float 3s ease-in-out infinite; }

.stagger-1 { animation-delay: 0.1s; } 
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; } 
.stagger-4 { animation-delay: 0.4s; }

[data-reveal] { opacity: 0; transform: translateY(30px); transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
[data-reveal].revealed { opacity: 1; transform: translateY(0); }

.btn-primary { 
    position: relative; 
    overflow: hidden; 
    transition: all 0.3s ease; 
}
.btn-primary::before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    left: -100%; 
    width: 100%; 
    height: 100%; 
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent); 
    transition: left 0.5s ease; 
}
.btn-primary:hover::before { left: 100%; }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4); }

.service-card, .product-card, .facility-card { transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.service-card:hover, .product-card:hover, .facility-card:hover { transform: translateY(-8px); }

.product-image { filter: grayscale(15%) contrast(1.05); transition: filter 0.5s ease; }
.product-card:hover .product-image { filter: grayscale(0) contrast(1.1); }

.gallery-item { transition: all 0.4s ease; }
.gallery-item:hover { transform: scale(1.02); }

.hero-pattern { 
    background-image: 
        linear-gradient(45deg, rgba(134, 212, 255, 0.05) 25%, transparent 25%, transparent 75%, rgba(134, 212, 255, 0.05) 75%, rgba(134, 212, 255, 0.05)), 
        linear-gradient(45deg, rgba(134, 212, 255, 0.05) 25%, transparent 25%, transparent 75%, rgba(134, 212, 255, 0.05) 75%, rgba(134, 212, 255, 0.05));
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
}

.geo-shape { position: absolute; pointer-events: none; }
.geo-line { width: 1px; background: linear-gradient(to bottom, transparent, rgba(134, 212, 255, 0.4), transparent); }
.geo-dot { width: 8px; height: 8px; background: var(--accent-dark); opacity: 0.3; box-shadow: 0 0 10px var(--accent); }

.testimonial-track { display: flex; transition: transform 0.5s ease; }

.process-step { transition: all 0.4s ease; }
.process-step:hover { transform: translateX(10px); }

::-webkit-scrollbar { width: 8px; } 
::-webkit-scrollbar-track { background: var(--card); } 
::-webkit-scrollbar-thumb { background: var(--accent-dark); }