/* =================================================== */
/* BAGIAN 1: GAYA DASAR & FONT (DARI STYLE DI HTML)  */
/* =================================================== */

body{font-family:'Inter',sans-serif;margin:0;line-height:1.6;color:#333}.hero-title{font-size:2.5rem;font-weight:bold;margin-bottom:1rem}.hero-tagline{font-size:1.25rem;max-width:800px;margin:0 auto 2rem}.btn{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600}.btn-primary{background-color:#065F46;border-color:#065F46;color:white}.btn-outline-light{border-color:white;color:white}.navbar{background-color:rgba(255,255,255,0.9);backdrop-filter:blur(5px)}.navbar-brand img{border-radius:50%}.sticky-top{position:sticky;top:0;z-index:1000}.container{max-width:1200px;margin:0 auto;padding:0 15px}section{padding:50px 0}.text-secondary{color:#1f2937}.section-kicker{text-transform:uppercase;letter-spacing:1px;font-size:.9rem;color:#065F46;font-weight:bold}.floating-whatsapp-btn{position:fixed;bottom:20px;right:20px;background-color:#25d366;color:white;border-radius:50%;width:60px;height:60px;display:flex;align-items-center;justify-content:center;font-size:2rem;box-shadow:0 4px 8px rgba(0,0,0,0.2);z-index:1000;transition:transform .3s ease}.floating-whatsapp-btn:hover{transform:scale(1.1)}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v13/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMwM.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v13/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMwM.woff2) format('woff2')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v13/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMwM.woff2) format('woff2')}@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v13/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMwM.woff2) format('woff2')}


/* =================================================== */
/* BAGIAN 2: KODE ASLI main.css (THEMING & KOMPONEN) */
/* =================================================== */

[data-aos] {
  min-height: 1px;
}
[data-aos] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}
[data-aos].is-visible {
  opacity: 1;
  transform: translateY(0);
}
:root { --bs-primary: #059669; --bs-primary-rgb: 5, 150, 105; --bs-secondary: #064e3b; --bs-body-color: #475569; --bs-body-bg: #f8f9fa; --bs-tertiary-bg: #ffffff; --bs-border-color: #e2e8f0; --bs-light-green-bg: #f0fdf4; }
[data-bs-theme="dark"] { --bs-primary: #34d399; --bs-primary-rgb: 52, 211, 153; --bs-secondary: #a7f3d0; --bs-body-color: #cbd5e1; --bs-body-bg: #1e293b; --bs-tertiary-bg: #334155; --bs-border-color: #475569; --bs-light-green-bg: #064e3b; --bs-dark: #0f172a; }

html, body { overflow-x: hidden; width: 100%; }
body { font-family: 'Inter', sans-serif; transition: background-color 0.3s ease, color 0.3s ease; }

.bg-light-green { background-color: var(--bs-light-green-bg); }
.bg-white { background-color: var(--bs-tertiary-bg) !important; }
.testimonial-card { background-color: var(--bs-tertiary-bg); border-left: 5px solid var(--bs-primary); }
.nav-tabs .nav-link { color: var(--bs-body-color); font-weight: 600; border-color: transparent; }
.nav-tabs .nav-link.active { color: var(--bs-primary); border-color: var(--bs-primary); border-bottom-width: 3px; background-color: transparent;}
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important; }

[data-bs-theme="dark"] .shadow-sm { box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .15) !important; }
[data-bs-theme="dark"] .navbar { background-color: rgba(30, 41, 59, 0.9) !important; }
[data-bs-theme="dark"] .text-secondary { color: var(--bs-secondary) !important; }
[data-bs-theme="dark"] .slogan-highlight { text-shadow: 0 0 8px rgba(52, 211, 153, 0.7); }
[data-bs-theme="dark"] .form-control { background-color: #475569; color: #f1f5f9; border-color: #64748b;}
[data-bs-theme="dark"] .form-control:focus { background-color: #475569; color: #f1f5f9; border-color: var(--bs-primary); box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);}
[data-bs-theme="dark"] footer { background-color: var(--bs-dark) !important; }
[data-bs-theme="dark"] .hero-bg { background-image: linear-gradient(to top,rgba(15, 23, 42, .9),rgba(15, 23, 42, .3)),url(https://rasyifanusantaragroup.com/img/lap/bg-hero-1.webp); }

.hero-container {
    position: relative; /* Penting untuk positioning gambar */
    min-height: 80vh;
    overflow: hidden; /* Mencegah gambar keluar dari container */
}

.hero-bg-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ini sama dengan background-size: cover */
    z-index: 1; /* Posisikan gambar di belakang konten */
    
    filter: brightness(0.8); /* Contoh overlay sederhana */
}

.btn-primary { --bs-btn-bg: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: #047857; --bs-btn-hover-border-color: #047857; }
[data-bs-theme="dark"] .btn-primary { --bs-btn-hover-bg: #10b981; --bs-btn-hover-border-color: #10b981; }

.hero-bg { background-image: linear-gradient(to top, rgba(5, 46, 22, 0.1), rgba(5, 46, 22, 0.3)), url('https://rasyifanusantaragroup.com/img/lap/bg-hero-1.webp'); background-size: cover; background-position: center; min-height: 80vh; }
.hero-title { font-size: 2.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 2rem; }
.hero-tagline { font-size: 1.25rem; font-weight: 400; line-height: 1.6; max-width: 850px; margin: 0 auto 7rem; }
section h1, .hero-bg h1 { font-size: 2.75rem; }

.section-kicker { font-weight: 600; color: var(--bs-primary); text-transform: uppercase; letter-spacing: .05em; }
.floating-whatsapp-btn { position: fixed; bottom: 25px; right: 25px; background-color: #25d366; color: #fff; border-radius: 50%; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; box-shadow: 2px 2px 10px rgba(0,0,0,.2); z-index: 1030; text-decoration: none; transition: transform .2s ease; }
.floating-whatsapp-btn:hover { transform: scale(1.1); }
footer a { text-decoration: none; color: #adb5bd; transition: color .3s ease; }
footer a:hover { color: #fff; }
@keyframes pulse-glow { 0% { text-shadow: 0 0 5px rgba(110, 231, 183, 0.6); } 50% { text-shadow: 0 0 14px rgba(110, 231, 183, 1); } 100% { text-shadow: 0 0 5px rgba(110, 231, 183, 0.6); } }
.slogan-highlight { color: #6ee7b7; font-weight: 600; animation: pulse-glow 3s infinite ease-in-out; }

.swiper-button-next, .swiper-button-prev { color: var(--bs-primary); width: 24px; height: 24px; }
.swiper-button-next:after, .swiper-button-prev:after { font-size: 24px; font-weight: bold; }
.swiper-pagination-bullet { background-color: var(--bs-body-color); opacity: 0.5; }
.swiper-pagination-bullet-active { background-color: var(--bs-primary); opacity: 1; }

.modal-gallery .modal-dialog { max-width: 90%; }
.modal-gallery .modal-content { background: transparent; border: none; }
.modal-gallery .modal-body { padding: 0; text-align: center; }
.modal-gallery img { max-height: 80vh; width: auto; max-width: 100%; }
.slide-image-wrapper { display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: .25rem; background-color: #e2e8f0; }
[data-bs-theme="dark"] .slide-image-wrapper { background-color: #334155; }
.slide-image-wrapper img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 0.3s ease; }
.slide-image-wrapper:hover img { transform: scale(1.05); }
.gallery-grid-item { display: block; overflow: hidden; aspect-ratio: 1 / 1; border-radius: .25rem; background-color: #e2e8f0; transition: transform .3s ease; box-shadow: 0 .125rem .25rem rgba(0,0,0,.075); }
.gallery-grid-item:hover { transform: scale(1.02); }
.gallery-grid-item img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gallery-card { background-color: var(--bs-tertiary-bg); border-radius: .375rem; box-shadow: 0 .125rem .25rem rgba(0,0,0,.075); overflow: hidden; }
.gallery-caption { padding: 1rem; text-align: center; font-size: 0.875rem; font-weight: 500; }

.clients-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 2.5rem 2rem; align-items: center; }
.client-item { text-align: center; }
.client-logo { height: 80px; max-width: 160px; object-fit: contain; opacity: 0.8; transition: all 0.3s ease-in-out; margin: 0 auto; }
.client-logo:hover { opacity: 1; transform: scale(1.05); }
[data-bs-theme="dark"] .client-logo { opacity: 0.7; }
[data-bs-theme="dark"] .client-logo:hover { opacity: 1; }
.client-name { margin-top: 1rem; font-size: 0.875rem; font-weight: 600; color: var(--bs-body-color); }

.team-tab-content { background-color: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-top: none; border-radius: 0 0 .5rem .5rem; }
.accordion-button { color: var(--bs-secondary); background-color: var(--bs-tertiary-bg); }
.accordion-button:not(.collapsed) { background-color: var(--bs-light-green-bg); color: var(--bs-primary); }
.accordion-item { background-color: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); }

.icon-img { transition: filter 0.3s ease; }
.btn-primary .icon-img { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%); }
.btn-outline-secondary .icon-img { filter: brightness(0) saturate(100%) invert(35%) sepia(11%) saturate(996%) hue-rotate(177deg) brightness(92%) contrast(86%); }
.btn-outline-secondary:hover .icon-img { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%); }
footer .icon-img { filter: brightness(0) saturate(100%) invert(81%) sepia(12%) saturate(228%) hue-rotate(170deg) brightness(88%) contrast(92%); }
footer a:hover .icon-img { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%); }
.icon-img-social { width: 18px; height: 18px; transition: filter 0.3s ease; filter: brightness(0) saturate(100%) invert(81%) sepia(12%) saturate(228%) hue-rotate(170deg) brightness(88%) contrast(92%); }
a:hover .icon-img-social { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%); }
.icon-img-wa { width: 32px; height: 32px; filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%); }
.icon-service { width: 40px; height: 40px; filter: brightness(0) saturate(100%) invert(29%) sepia(93%) saturate(1335%) hue-rotate(130deg) brightness(94%) contrast(96%); }


/* =================================================== */
/* BAGIAN 3: ATURAN RESPONSIVE & PERBAIKAN SPESIFIK  */
/* =================================================== */

@media (max-width: 991.98px) {
  [data-bs-theme="dark"] .navbar-collapse.show,
  [data-bs-theme="dark"] .navbar-collapse.collapsing {
    background-color: rgba(30, 41, 59, 0.95);
    padding: 1rem;
    margin-top: 0.5rem;
    border-radius: 0.5rem;
    border: 1px solid var(--bs-border-color);
  }
  [data-bs-theme="dark"] .navbar-nav .nav-link { color: var(--bs-secondary); }
  [data-bs-theme="dark"] .navbar-nav .nav-link:hover,
  [data-bs-theme="dark"] .navbar-nav .nav-link:focus { color: #ffffff; }
}

.gallery-slider { position: relative; margin: 30px 0; padding: 0; }
@media (min-width: 768px) {
  .gallery-slider { padding: 0 40px; }
}

@media (max-width: 767.98px) {
    .hero-title, section h1, .hero-bg h1 { font-size: 2rem; line-height: 1.3; }
    .hero-tagline { font-size: 1.1rem; margin-bottom: 5rem; }
}

.footer-logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

@media (min-width: 768px) {
  .footer-logo {
    width: 55px;
    height: 55px;
  }
}

/* --- PERBAIKAN UNTUK FOOTER & LAZY LOAD DI MOBILE --- */

/* 1. Memberi tinggi minimal pada placeholder lazy load agar bisa terdeteksi */
.lazy-load-section[data-src="footer.html"] {
    display: block;
    min-height: 50px; 
}

/* 2. Memaksa footer untuk tampil di perangkat mobile (jika ada masalah display) */
@media (max-width: 991.98px) {
    footer#contact {
        display: block !important;
        visibility: visible !important;
    }
}