/* ========================================
   CSS VARIABLES
   ======================================== */
:root {
    --primary-pr1: #e0ebe3;
    --primary-pr4: #659a71;
    --primary-pr5: #507c5b;
    --primary-pr7: #283e2d;
    --neutral-nt2: #e1e2ea;
    --neutral-nt4: #9ba0c5;
    --neutral-nt6: #696f96;
    --neutral-nt8: #3f425a;
    --neutral-white: #ffffff;
    --smooth-white: #f2f3f7;
    --warning-wr5: #e59c4d;
    --max-width: 1400px;
    --container-padding: 40px;
    --transition: all 0.3s ease;
}

/* ========================================
   GLOBAL RESET
   ======================================== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family:
        "Outfit",
        -apple-system,
        BlinkMacSystemFont,
        sans-serif;
    overflow-x: hidden;
    background: #f2f3f7;
}

/* ========================================
/* ========================================
   CONTAINER SYSTEM - OPTIMIZED
   ======================================== */
.container,
.container-1400,
.hero-content,
.features-grid,
.section-header,
.products-grid,
.testimonials-grid,
.about-content,
.cities-section .section-header,
.cities-grid {
    max-width: var(--max-width);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    box-sizing: border-box;
    position: relative;
    left: 0;
    right: 0;
    transform: none;
}

.container .section-header,
.container .products-grid,
.container .cities-grid {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
}

/* ========================================
   HERO SECTION
   ======================================== */
.hero-section {
    position: relative;
    min-height: 400px;
    padding-bottom: 100px;
    background: linear-gradient(
        236.01deg,
        rgba(242, 243, 247, 0.1) 33.91%,
        #f2f3f7 71.6%
    );
    overflow: hidden;
    padding-top: 110px;
}

.hero-grid {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 150% !important;
    min-height: 800px;
    z-index: 0;
    pointer-events: none;
    opacity: 0.3;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
}

.hero-decoration-left {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 330px;
    height: auto;
    transform: scale(1.6) translate(10px, 10px);
    transform-origin: bottom left;
    z-index: 2;
}

.hero-decoration {
    position: absolute;
    width: 245px;
    height: auto;
    left: 10px;
    top: -10px;
    transform: rotate(-5deg);
    z-index: 0;
}

/* ✅ HERO CONTENT - STANDARDIZED */
.hero-content {
    position: relative;
    z-index: 1;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.hero-text h1 {
    font-weight: 600;
    font-size: 36px;
    line-height: 120%;
    color: var(--neutral-nt8);
    margin-bottom: 24px;
}

.hero-text p {
    font-weight: 400;
    font-size: 16px;
    line-height: 135%;
    color: var(--neutral-nt6);
    margin-bottom: 40px;
}

.hero-buttons {
    display: flex;
    gap: 20px;
    margin-bottom: 80px;
    flex-wrap: wrap;
}

.btn-pesan {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    gap: 12px;
    background: var(--primary-pr4);
    color: var(--neutral-white);
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    transition: all 0.3s ease;
}

.btn-pesan:hover {
    background: var(--primary-pr5);
    color: var(--neutral-white);
    transform: translateY(-2px);
}

.btn-pesan i,
.btn-explore i {
    transition: transform 0.3s ease;
}

.btn-pesan:hover i,
.btn-explore:hover i {
    transform: rotate(-45deg);
}

.btn-explore {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    gap: 12px;
    background: var(--smooth-white);
    color: var(--primary-pr7);
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    border-bottom: 1px dashed var(--neutral-nt6);
    transition: all 0.3s ease;
}

.btn-explore:hover {
    background: var(--neutral-nt2);
    color: var(--primary-pr7);
    transform: translateY(-2px);
}

.hero-stats {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
}

.stat-item {
    display: flex;
    gap: 12px;
    align-items: center;
}

.stat-avatars {
    display: flex;
    position: relative;
    width: 100px;
}

.stat-avatars img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--neutral-nt2);
    margin-left: -16px;
    border: 1px solid white;
}

.stat-avatars img:first-child {
    margin-left: 0;
}

.stat-text h3 {
    font-weight: 700;
    font-size: 20px;
    line-height: 135%;
    color: var(--neutral-nt8);
    margin-bottom: 0;
}

.stat-text p {
    font-weight: 500;
    font-size: 12px;
    line-height: 135%;
    color: var(--neutral-nt8);
    margin-bottom: 0;
}

.stat-rating {
    display: flex;
    align-items: center;
    gap: 2px;
}

.star-icon {
    font-size: 12px;
}

.stat-rating span {
    font-weight: 500;
    font-size: 12px;
    color: var(--neutral-nt8);
}

.stat-icon {
    width: 34px;
    height: 34px;
    background: var(--primary-pr4);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.hero-image {
    position: relative;
    display: flex;
    align-items: flex-end;
}

.hero-image > img {
    position: relative;
    width: 100%;
    max-width: 1000px;
    height: auto;
    border-radius: 8px;
    margin-bottom: 0;

    transform: translateX(-90px);
}

.hero-section {
    isolation: isolate;
}
/* Badge row on desktop */
.hero-badges {
    position: absolute;
    right: 20px; /* Aligned with Header WhatsApp (20px padding) */
    top: -10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    transform: scale(0.8);
    transform-origin: top right;
    z-index: 0;
    align-items: flex-end; /* Ensure alignment to the right */
}

.badge-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 8px;
    background: transparent; /* Fixed: Transparent background as requested */
    box-shadow: none; /* Fixed: No shadow */
    min-width: 200px; /* Optional: ensure consistent width */
}

.badge-icon {
    width: 60px;
    height: 60px;
    background: #e1e2ea; /* Keep user requested color */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--primary-pr5);
    border-radius: 8px;
}

.badge-icon i {
    font-size: 28px;
}

.badge-text h3 {
    font-weight: 700;
    font-size: 28px;
    line-height: 125%;
    color: var(--neutral-nt8);
    margin-bottom: 0;
    text-align: left;
}

.badge-text p {
    font-weight: 500;
    font-size: 12px;
    line-height: 135%;
    color: var(--neutral-nt8);
    margin-bottom: 0;
    text-align: left;
}

/* ========================================
   FEATURES SECTION
   ======================================== */
.features-section {
    padding: 20px 0;
    background: #e0ebe3;
}

.features-grid {
    display: flex;
    justify-content: space-between; /* ini kuncinya */
    align-items: center;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.feature-card {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: transparent;
}

.feature-icon {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
}

.feature-content h3 {
    font-weight: 700;
    font-size: 16px;
    margin-top: px;
    line-height: 135%;
    margin-bottom: 4px;
}

.feature-content p {
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
    text-transform: capitalize;
    color: var(--primary-pr5);
    margin-bottom: 0;
}

/* ========================================
   PRODUCTS SECTION
   ======================================== */
.products-section {
    padding-top: 40px;
    padding-bottom: 10px;
    background: #f2f3f7;
}

/* ✅ SECTION HEADER - STANDARDIZED */
.section-header {
    text-align: center;
    margin-bottom: 8px;
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
    padding: 0 var(--container-padding);
}

.section-header h2 {
    font-weight: 600;
    font-size: 36px;
    line-height: 120%;
    color: var(--neutral-nt8);
    margin-bottom: 8px;
}

.category-filter {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.category-btn {
    padding: 10px 0;
    font-family: "Outfit", sans-serif;
    font-size: 14px;
    line-height: 160%;
    text-align: center;
    text-transform: capitalize;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--neutral-nt4);
    font-weight: 400;
    cursor: pointer;
    transition: all 0.3s ease;
}

.category-btn.active {
    color: var(--neutral-nt8);
    border-bottom-color: var(--primary-pr5);
    font-weight: 500;
}

.category-btn:hover {
    color: var(--neutral-nt8);
}

/* ✅ PRODUCTS GRID - STANDARDIZED & MARGIN NEGATIF DIHAPUS */
.products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    margin-top: 40px;
    margin-bottom: 5%;
}

.product-card {
    background: transparent !important;
    border: 1px solid var(--neutral-nt2);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.product-image {
    width: 100%;
    height: 266px;
    background: #f0f1f5;
    overflow: hidden;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.product-info h3 {
    font-weight: 500;
    font-size: 16px;
    line-height: 135%;
    color: var(--neutral-nt8);
    margin: 0;
}

.product-price {
    font-weight: 700;
    font-size: 20px;
    line-height: 135%;
    color: var(--neutral-nt8);
}

.product-location {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--neutral-nt6);
}

/* ========================================
   ABOUT SECTION - COMPLETELY RESTRUCTURED
   ======================================== */
.about-section {
    background: var(--primary-pr4);
    padding: 0;
    overflow: hidden;
    position: relative;
    margin-bottom: 0;
    min-height: 600px;
    display: flex;
}

/* ✅ ABOUT CONTENT - STANDARDIZED */
.about-content {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0;
    padding-left: 0; /* ✅ UBAH: Hapus padding-left dari sini */
    width: 100%;
    position: static;
}

.about-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 60px 60px 60px 0; /* ✅ UBAH: padding-left jadi 0 */
    gap: 50px;
    flex: 1;
    max-width: 50%;
    background: #659a71;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
    margin-right: 0;
}

.about-text > div:first-child {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 0;
    width: 100%;
    padding-left: var(
        --container-padding
    ); /* ✅ TAMBAHKAN: Hanya text yang punya padding-left 40px */
    padding-right: var(
        --container-padding
    ); /* ✅ TAMBAHKAN: Balance dengan padding-right juga */
}

.about-text h2 {
    width: 100%;
    font-family: "Outfit";
    font-weight: 400;
    font-size: 16px;
    line-height: 135%;
    text-align: center;
    color: #ffffff;
    margin: 0;
    padding: 0;
}

.about-text > div:first-child > p {
    width: 100%;
    font-family: "Outfit";
    font-weight: 500;
    font-size: 28px;
    line-height: 125%;
    text-align: center;
    color: #ffffff;
    margin: 0;
    padding: 0;
}

.about-stats {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 12px 0px;
    gap: 38px;
    margin: 0 auto;
    width: 100%;
    border-top: none; /* ✅ Hapus border asli */
    flex: none;
    order: 1;
    align-self: stretch;
    position: relative; /* ✅ Tambahkan */
}

/* ✅ TAMBAHKAN: Border dengan pseudo-element */
.about-stats::before {
    content: "";
    position: absolute;
    top: 0;
    left: 40px; /* ✅ Mulai dari 40px */
    right: 40px; /* ✅ Berakhir 40px dari kanan */
    height: 1px;
    background: rgba(255, 255, 255, 0.2);
}

.about-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0px;
    gap: 4px;
}

.about-stat h3 {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 700;
    font-size: 28px;
    line-height: 125%;
    text-align: center;
    color: #ffffff;
    margin-bottom: 0;
}

.about-stat p {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
    text-align: center;
    text-transform: capitalize;
    color: #ffffff;
    margin: 0;
}

.about-image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    right: 0;
    width: 50vw;
    z-index: 0;
    margin: 0;
    padding: 0;
}

.about-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    margin: 0;
    padding: 0;
}

/* ========================================
   TESTIMONIALS SECTION - PERBAIKAN
   ======================================== */
.testimonials-section {
    margin-top: 0;
    padding: 60px 0;
    background-color: #f2f3f7;
    margin-bottom: 10px;
    width: 100%;
}

/* ✅ TESTIMONIALS CONTAINER - STANDARDIZED DENGAN HEADER */
.testimonials-section .container {
    max-width: var(--max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--container-padding); /* Mengikuti variabel global */
    background-color: #f2f3f7;
    box-sizing: border-box;
}

.testimonials-section .section-header {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-end !important;
    width: 100% !important;
    padding-left: var(--container-padding, 40px) !important;
    padding-right: var(--container-padding, 40px) !important;
    max-width: var(--max-width, 1400px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.testimonials-section .section-header-content {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.testimonials-section .section-header-content .headline {
    font-family: "Outfit";
    font-weight: 400;
    font-size: 16px;
    line-height: 135%;
    color: #696f96;
    margin: 0;
    text-align: left;
}

.testimonials-section .section-header-content h2 {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 600;
    font-size: 36px;
    line-height: 120%;
    color: #3f425a;
    text-align: left;
    margin: 0;
}

.testimonials-section .testimonials-link {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    margin-left: 20px !important; /* Beri jarak dengan konten */
}

.testimonials-section .testimonials-link a {
    font-family: "Outfit", sans-serif;
    font-weight: 500;
    font-size: 16px;
    line-height: 135%;
    color: #507c5b;
    text-decoration: none;
    border-bottom: 1px solid #659a71;
    padding-bottom: 4px;
    white-space: nowrap;
}

.testimonials-section .testimonials-link a:hover {
    color: #659a71;
}

.testimonials-grid {
    display: flex;
    flex-direction: row;
    align-items: stretch; /* Changed from center to stretch */
    gap: 20px;
    width: 100%;
}

.testimonial-card {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 12px;

    gap: 18px;
    flex: 1;
    min-width: 0; /* Mencegah overflow */
    background: #f2f3f7;
    border: 1px solid #c3c5d5;
    border-radius: 0;
    min-height: 219px;
}

.testimonial-avatar {
    width: 200px;
    height: 195px;
    flex-shrink: 0;
}

.testimonial-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

.testimonial-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 28px;
    flex: 1;
    align-self: stretch;
    min-width: 0; /* Mencegah overflow teks */
}

.testimonial-text {
    font-family: "Outfit", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 135%;
    color: #3f425a;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.testimonial-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.testimonial-details {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.testimonial-rating {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.testimonial-rating i {
    width: 18px;
    height: 18px;
    color: #507c5b;
    font-size: 14px;
    flex-shrink: 0;
}

.testimonial-info h4 {
    font-family: "Nunito", sans-serif;
    font-style: italic;
    font-weight: 700;
    font-size: 20px;
    line-height: 135%;
    color: #3f425a;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.testimonial-info p {
    font-family: "Outfit", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
    text-transform: capitalize;
    color: #3f425a;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* ========================================
   CITIES SECTION
   ======================================== */
.cities-section {
    padding: 80px 0;
    background: #f2f3f7;
}

/* ✅ CITIES SECTION HEADER - STANDARDIZED */
.cities-section .section-header {
    max-width: var(--max-width);
    margin: 0 auto 40px;
    padding: 0 var(--container-padding);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.cities-header-left {
    display: flex;
    flex-direction: column;
}

.cities-section .section-header h2 {
    font-weight: 600;
    font-size: 36px;
    line-height: 120%;
    color: var(--neutral-nt8);
    margin-bottom: 0;
    text-align: left;
}

.cities-eyebrow {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--neutral-nt6);
    margin-bottom: 6px;
    text-align: left;
}

.section-tabs {
    display: flex;
    gap: 20px;
    border-bottom: 2px solid #c3c5d5;
    padding-bottom: 0;
}

.tab-btn {
    padding: 10px 0;
    font-family: "Outfit", sans-serif;
    font-size: 16px;
    line-height: 135%;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--neutral-nt4);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.tab-btn.active {
    color: var(--neutral-nt8);
    border-bottom-color: var(--primary-pr5);
    font-weight: 600;
}

.tab-btn:hover {
    color: var(--neutral-nt8);
}

/* ✅ CITIES GRID - STANDARDIZED */
.cities-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.city-card {
    border: 1px solid var(--neutral-nt2);
    overflow: hidden;
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
    cursor: pointer;
}

.city-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.city-image {
    width: 100%;
    height: 296px;
    background: #f0f1f5;
}

.city-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.city-info {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.city-location {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--neutral-nt6);
    text-transform: capitalize;
}

.city-location i {
    color: var(--primary-pr5);
}

.city-name {
    font-weight: 600;
    font-size: 18px;
    line-height: 150%;
    color: var(--neutral-nt8);
    margin: 0;
}

/* ========================================
   PARTNERS SECTION - FIX INFINITE LOOP
   ======================================== */
.slide-track {
    background: #f2f3f7;
    display: inline-flex;
    white-space: nowrap;
    animation: scroll 25s linear infinite;
    align-items: center;
}

.slide-track:hover {
    animation-play-state: paused;
}

.partner-logo {
    height: 100px;
    width: 160px; /* Container width fixed */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: 0 20px; /* Total width per logo = 160 + 40 = 200px */
}

.partner-logo img {
    width: 139px;
    height: 60px;
    object-fit: contain;
    object-position: center;
}

/* ANIMASI - FIX CALCULATION */
@keyframes scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        /* 11 logos × 200px (160px width + 20px*2 margin) = 2200px */
        transform: translateX(-2200px);
    }
}
/* ========================================
   FLOATING WHATSAPP BUTTON
   ======================================== */
.whatsapp-float {
    position: fixed;
    bottom: 30px;
    right: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0;
    gap: 0;
    isolation: isolate;
    z-index: 9999;
    text-decoration: none;
}

.whatsapp-float .whatsapp-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--primary-pr5);
    border-radius: 90px;
    flex: none;
    order: 0;
    margin-right: -4px;
    z-index: 1;
    transition: all 0.3s ease;
}

.whatsapp-float .whatsapp-icon i {
    font-size: 24px;
    color: var(--neutral-white);
}

.whatsapp-float .whatsapp-text {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 16px;
    gap: 10px;
    height: 44px;
    background: var(--primary-pr5);
    border-radius: 90px;
    flex: none;
    order: 1;
    align-self: stretch;
    z-index: 0;
    transition: all 0.3s ease;
}

.whatsapp-float .whatsapp-text span {
    font-family: "Outfit", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 160%;
    text-transform: capitalize;
    color: var(--neutral-white);
    white-space: nowrap;
}

.whatsapp-float:hover .whatsapp-icon {
    background: var(--primary-pr4);
    transform: scale(1.05);
}

.whatsapp-float:hover .whatsapp-text {
    background: var(--primary-pr4);
}

/* ========================================
   PRODUCT CARD LINK
   ======================================== */
.product-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform 0.3s ease;
}

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

.product-card-link:hover .product-card {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
/* ========================================
   FIX ZOOM 150% di 1920px - HOMEPAGE
   TESTIMONIALS SECTION ONLY
   ======================================== */
@media (min-width: 1280px) and (max-width: 1366px) {
    /* About section - match testimonial container width */
    .about-content {
        max-width: 1200px;
        padding: 0 40px;
    }

    .testimonials-section {
        padding: 50px 0;
    }

    .testimonials-section .container {
        max-width: 1200px !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    .testimonials-section .section-header {
        margin-bottom: 24px;
        gap: 20px;
    }

    .testimonials-section .section-header-content {
        transform: translateX(0);
    }

    .testimonials-section .section-header-content .headline {
        font-size: 15px;
    }

    .testimonials-section .section-header-content h2 {
        font-size: 32px;
        line-height: 120%;
    }

    .testimonials-section .testimonials-link a {
        font-size: 15px;
    }

    .testimonials-grid {
        gap: 16px;
    }

    .testimonial-card {
        padding: 10px;
        gap: 14px;
        min-height: 200px;
    }

    .testimonial-avatar {
        width: 180px;
        height: 175px;
        flex-shrink: 0;
    }

    .testimonial-content {
        gap: 24px;
    }

    .testimonial-text {
        font-size: 15px;
        line-height: 140%;
    }

    .testimonial-rating {
        gap: 5px;
    }

    .testimonial-rating i {
        width: 16px;
        height: 16px;
        font-size: 13px;
    }

    .testimonial-info {
        gap: 6px;
    }

    .testimonial-details {
        gap: 3px;
    }

    .testimonial-info h4 {
        font-size: 14px;
        line-height: 135%;
    }

    .testimonial-info p {
        font-size: 10px;
    }
}

/* ========================================
   TABLET RESPONSIVE (768px - 1024px)
   ======================================== */
@media (max-width: 1024px) {
    /* ========================================
       HERO SECTION - HORIZONTAL LAYOUT
       ======================================== */
    .hero-content,
    .features-grid,
    .section-header,
    .products-grid,
    .about-content,
    .cities-section .section-header,
    .cities-grid {
        padding-left: 30px;
        padding-right: 30px;
    }
    .hero-section {
        min-height: auto;
        padding-top: 100px;
        padding-bottom: 60px;
    }

    .hero-grid {
        height: 120% !important;
        min-height: 600px;
        opacity: 0.4;
    }

    .hero-decoration {
        width: 250px;
        height: auto;
        left: -10px;
        top: -5px;
        transform: rotate(-9deg) scale(0.9);
    }

    .hero-content {
        padding: 0 30px;
    }

    /* Hero tetap 2 kolom horizontal seperti desktop */
    .hero-text {
        text-align: left;
        margin-bottom: 0;
    }

    .hero-text h1 {
        font-size: 48px;
        line-height: 110%;
        margin-bottom: 20px;
    }

    .hero-text p {
        font-size: 14px;
        line-height: 145%;
        margin-bottom: 32px;
    }

    .hero-buttons {
        gap: 16px;
        margin-bottom: 60px;
    }

    .btn-pesan,
    .btn-explore {
        padding: 10px 16px;
        font-size: 14px;
    }

    .hero-stats {
        gap: 24px;
    }

    .stat-avatars {
        width: 90px;
    }

    .stat-avatars img {
        width: 38px;
        height: 38px;
    }

    .stat-text h3 {
        font-size: 18px;
    }

    .stat-text p {
        font-size: 11px;
    }

    .stat-icon {
        width: 32px;
        height: 32px;
    }

    /* Hero Image - tetap di kanan */
    .hero-image {
        position: relative;
        padding-top: 0;
        margin-top: 0;
    }

    .hero-image > img {
        width: 100%;
        max-width: 1000px;
        height: auto;
        display: block;
        margin-left: -60px;
    }

    /* Hero Badges - tetap di kanan */
    .hero-badges {
        right: 20px;
        top: 10px;
        gap: 12px;
        transform: scale(0.7);
    }

    .badge-item {
        padding: 10px 12px;
        gap: 8px;
    }

    .badge-icon {
        width: 50px;
        height: 50px;
    }

    .badge-text h3 {
        font-size: 24px;
    }

    .badge-text p {
        font-size: 11px;
    }

    /* ========================================
       FEATURES SECTION - TETAP 4 KOLOM
       ======================================== */
    .features-section {
        margin-top: 20px;
        padding: 20px 0;
    }

    .features-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        padding: 0 30px;
    }

    .feature-card {
        gap: 10px;
    }

    .feature-icon {
        width: 30px;
        height: 30px;
    }

    .feature-content h3 {
        font-size: 14px;
    }

    .feature-content p {
        font-size: 12px;
    }

    /* ========================================
       PRODUCTS SECTION - 2 KOLOM
       ======================================== */
    .products-section {
        padding-top: 40px;
        padding-bottom: 80px;
    }

    .section-header {
        padding: 0 30px;
        margin-bottom: 20px;
    }

    .section-header h2 {
        font-size: 28px;
    }

    .category-filter {
        gap: 16px;
        padding: 0 30px;
    }

    .category-btn {
        font-size: 13px;
    }

    .products-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        padding: 0 30px;
        margin-top: 0;
        margin-bottom: 60px;
    }

    .product-card {
        padding: 14px;
        gap: 12px;
    }

    .product-image {
        height: 220px;
    }

    .product-info h3 {
        font-size: 15px;
    }

    .product-price {
        font-size: 18px;
    }

    .product-location {
        font-size: 13px;
    }

    /* ========================================
       ABOUT SECTION - HORIZONTAL ADJUSTED
       ======================================== */
    .about-content {
        flex-direction: row;
        margin-left: 0;
        max-width: 100%;
        padding: 0 30px;
    }

    .about-text {
        width: 50%;
        max-width: 50%;
        height: auto;
        padding: 30px 40px 30px 0;
        gap: 40px;
    }

    .about-text h2 {
        font-size: 14px;
    }

    .about-text > div:first-child > p {
        font-size: 22px;
    }

    .about-stats {
        gap: 30px;
        padding: 16px 0;
    }

    .about-stat h3 {
        font-size: 24px;
    }

    .about-stat p {
        font-size: 13px;
    }

    .about-image {
        width: 50%;
        height: auto;
        min-height: 400px;
    }

    /* ========================================
       TESTIMONIALS SECTION - 3 CARDS
       ======================================== */
    .testimonials-section {
        padding: 50px 30px;
    }

    .testimonials-section .container {
        padding: 0;
    }

    .testimonials-section .section-header {
        margin-bottom: 24px;
    }

    .testimonials-section .section-header-content {
        transform: none;
    }

    .testimonials-section .section-header-content .headline {
        font-size: 14px;
    }

    .testimonials-section .section-header-content h2 {
        font-size: 28px;
    }

    .testimonials-section .testimonials-link a {
        font-size: 14px;
    }

    /* Grid 3 cards horizontal */
    .testimonials-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 16px;
    }

    .testimonial-card {
        flex-direction: column;
        padding: 12px;
        gap: 12px;
        min-height: auto;
    }

    .testimonial-avatar {
        width: 100%;
        height: 180px;
    }

    .testimonial-content {
        gap: 16px;
    }

    .testimonial-text {
        font-size: 13px;
        line-height: 150%;
    }

    .testimonial-rating i {
        font-size: 12px;
    }

    .testimonial-info h4 {
        font-size: 16px;
    }

    .testimonial-info p {
        font-size: 12px;
    }

    /* ========================================
       CITIES SECTION - 2 KOLOM
       ======================================== */
    .cities-section {
        padding: 60px 0;
    }

    .cities-section .section-header {
        flex-direction: row;
        padding: 0 30px;
        margin-bottom: 32px;
    }

    .cities-eyebrow {
        font-size: 13px;
    }

    .cities-section .section-header h2 {
        font-size: 28px;
    }

    .section-tabs {
        gap: 16px;
    }

    .tab-btn {
        font-size: 14px;
    }

    .cities-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        padding: 0 30px;
    }

    .city-card {
        border-radius: 8px;
    }

    .city-image {
        height: 240px;
    }

    .city-info {
        padding: 10px 14px;
    }

    .city-location {
        font-size: 13px;
    }

    .city-name {
        font-size: 17px;
    }

    /* ========================================
       PARTNERS SECTION
       ======================================== */
    .partners-section {
        padding: 50px 0;
    }

    .partners-slider {
        height: 90px;
    }

    .partner-logo {
        width: 180px;
        height: 90px;
        margin: 0 16px;
    }

    /* ========================================
       WHATSAPP FLOAT
       ======================================== */
    .whatsapp-float {
        bottom: 26px;
        right: 26px;
    }

    .whatsapp-float .whatsapp-icon {
        width: 42px;
        height: 42px;
    }

    .whatsapp-float .whatsapp-icon i {
        font-size: 22px;
    }

    .whatsapp-float .whatsapp-text {
        height: 42px;
        padding: 9px 15px;
    }

    .whatsapp-float .whatsapp-text span {
        font-size: 13px;
    }
}

/* ========================================
   MOBILE RESPONSIVE (max-width: 767px)
   ======================================== */
@media (max-width: 767px) {
    /* ========================================
       HERO SECTION - VERTICAL LAYOUT
       ======================================== */
    .hero-badges {
        position: relative !important;
        z-index: 100 !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important; /* Ubah dari center ke flex-start */
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 8px !important;
        padding: 0 20px !important;
        box-sizing: border-box !important;
        top: 0 !important;
        right: 0 !important;
        transform: none !important;
    }

    .badge-item {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 6px !important;
        width: auto !important;
        flex: 0 1 auto !important;
        min-width: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin-right: 0 !important; /* Reset margin */
    }

    /* Untuk 3 badge dalam satu baris */
    .badge-item {
        max-width: calc(33.333% - 8px) !important;
    }

    .badge-icon {
        width: 30px !important;
        height: 30px !important;
        background: #e1e2ea !important;
        border-radius: 4px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 13px !important;
        color: #507c5b !important;
        flex-shrink: 0 !important;
    }

    .badge-text h3 {
        font-size: 11px !important;
        font-weight: 700 !important;
        margin: 0 !important;
        color: #3f425a !important;
        white-space: nowrap !important;
        line-height: 1.2 !important;
    }

    .badge-text p {
        font-size: 8px !important;
        margin: 0 !important;
        color: #696f96 !important;
        white-space: nowrap !important;
        line-height: 1.2 !important;
    }

    /* Untuk layar yang lebih kecil */
    @media (max-width: 360px) {
        .hero-badges {
            gap: 6px !important;
            padding: 0 15px !important; /* Kurangi padding kiri-kanan */
        }

        .badge-item {
            max-width: calc(33.333% - 4px) !important;
        }

        .badge-icon {
            width: 26px !important;
            height: 26px !important;
            font-size: 11px !important;
        }

        .badge-text h3 {
            font-size: 9px !important;
        }

        .badge-text p {
            font-size: 6px !important;
        }
    }
    .hero-section {
        min-height: auto;
        padding-top: 80px;
        padding-bottom: 20px;
        background: linear-gradient(
            236.01deg,
            rgba(242, 243, 247, 0.1) 33.91%,
            #f2f3f7 71.6%
        );
        overflow-x: hidden;
    }

    .hero-grid {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 338px;
        z-index: 0;
        pointer-events: none;
        opacity: 0.8;
        display: block;
        -webkit-mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
        mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
    }

    .hero-grid path {
        stroke: #c3c5d5;
        stroke-width: 0.5;
    }

    .hero-grid pattern#gridPattern {
        width: 40;
        height: 40;
    }

    .hero-decoration-left,
    .hero-decoration {
        position: absolute;
        transition: transform 0.2s ease;
    }

    .hero-decoration {
        width: 180px;
        height: auto;
        left: -20px;
        top: -10px;
        transform: rotate(-9deg) scale(0.8);
    }

    .hero-content {
        padding: 0 20px;
        position: relative;
        z-index: 1;
    }

    .hero-text {
        text-align: center;
        margin-bottom: 20px;
        margin-top: 0px; /* Reset negative margin to allow more space above */
        position: relative;
        z-index: 10;
    }

    .hero-text h1 {
        font-weight: 700;
        font-size: 34px !important;
        line-height: 110%;
        margin-bottom: 12px;
        color: #3f425a;
    }

    .hero-text p {
        font-weight: 400;
        font-size: 13px !important;
        line-height: 150%;
        margin-bottom: 24px;
        padding: 0;
        color: #696f96;
    }

    .hero-buttons {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        gap: 12px; /* Increased from 12px for better balance */
        margin-bottom: 16px; /* Reduced from 24px */
        flex-wrap: nowrap;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding: 0 20px;
    }

    .btn-pesan,
    .btn-explore {
        width: calc(50% - 6px);
        flex: none;
        padding: 12px 0;
        font-size: 14px;
        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        box-sizing: border-box;
        gap: 8px;
    }

    .btn-pesan {
        background-color: #507c5b;
        color: white;
        border-radius: 6px;
    }

    .btn-explore {
        background-color: #f8f9fb;
        color: #3f425a;
        border-radius: 0;
        border-bottom: 2px dashed #c3c5d5;
    }

    .hero-stats {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 0 !important;
        margin-bottom: 12px !important; /* Reduced from 24px to close gap to badges */
        padding: 0 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }

    .stat-group {
        width: calc(50% - 6px) !important;
        flex: none !important;
        display: flex !important;
    }

    .stat-group.left {
        width: calc(50% - 6px) !important;
        display: flex !important;
        justify-content: flex-start !important; /* Align with left edge padding */
    }

    .stat-group.right {
        width: calc(50% - 6px) !important;
        display: flex !important;
        justify-content: flex-end !important; /* Align with right edge padding */
    }

    .stat-item {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        width: max-content !important;
    }

    .stat-text h3 {
        font-size: 16px !important;
        font-weight: 700 !important;
        margin: 0 !important;
        color: #3f425a !important;
    }

    .stat-rating {
        font-size: 12px !important;
        color: #3f425a !important;
        display: flex !important;
        align-items: center !important;
        gap: 2px !important;
    }

    .stat-avatars {
        display: flex !important;
        position: relative !important;
        width: auto !important;
    }

    .stat-avatars img {
        width: 30px !important;
        height: 30px !important;
        border: 1.5px solid white !important;
        border-radius: 50% !important;
        margin-left: -12px !important;
    }

    .stat-avatars img:first-child {
        margin-left: 0 !important;
    }

    .customer-item .stat-icon {
        width: 36px !important;
        height: 36px !important;
        background-color: #507c5b !important;
        color: white !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 16px !important;
    }

    .customer-item .stat-text p {
        font-size: 10px !important;
        font-weight: 500 !important;
        margin: 0 !important;
        color: #3f425a !important;
        line-height: 1.2 !important;
    }

    /* Badge alignment to button row edges */
    .hero-badges {
        position: relative !important;
        z-index: 100 !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 8px !important; /* Reduced from 15px to close gap to image */
        padding: 0 20px !important;
        box-sizing: border-box !important;
        top: 0 !important;
        right: 0 !important;
        transform: none !important;
    }

    .badge-item {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 6px !important;
        width: auto !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .badge-icon {
        width: 36px !important;
        height: 36px !important;
        background: #e1e2ea !important; /* New box color for hero icon wrappers */
        border-radius: 4px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 14px !important;
        color: #507c5b !important;
        flex-shrink: 0 !important;
    }

    .badge-text h3 {
        font-size: 13px !important;
        font-weight: 700 !important;
        margin: 0 !important;
        color: #3f425a !important;
    }

    .badge-text p {
        font-size: 9px !important;
        margin: 0 !important;
        color: #696f96 !important;
        white-space: nowrap !important;
    }

    /* Position image below text with minimal gap */
    .hero-image {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        margin-top: 0px !important; /* Reduced from 20px to close gap to badges */
        margin-bottom: -150px !important; /* Increased negative margin to truly connect with features */
        z-index: 1 !important;
    }

    .hero-image img {
        width: 100% !important;
        max-width: 100% !important; /* Larger - fill more width */
        position: relative !important;
        margin: 0 auto !important;
        z-index: 5 !important;
        transform: none !important;
        left: 0 !important;
        top: 0 !important;
    }

    .features-section {
        background: #e0ebe3 !important;
        padding: 20px 0 !important;
        margin-top: 20px !important; /* Changed from -65px to connect with image */
        position: relative !important;
        z-index: 10 !important;
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        min-height: auto !important;
        display: flex !important;
        align-items: center !important;
        box-sizing: border-box !important;
    }

    .features-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 20px 12px !important;
        padding: 0 20px !important;
        width: 100% !important;
    }

    .feature-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100% !important;
    }

    /* All Feature Cards: Strictly Left-Aligned */
    .feature-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important; /* All left-aligned */
        gap: 8px !important;
        width: 100% !important;
    }

    .feature-content {
        text-align: left !important; /* All text left-aligned */
        flex: 1 !important;
    }

    .feature-icon {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        border-radius: 6px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .feature-icon svg {
        width: 18px !important;
        height: 18px !important;
    }

    .feature-icon svg path {
        stroke: #507c5b !important;
    }

    .feature-card:nth-child(2) svg path {
        fill: #507c5b !important;
        stroke: none !important;
    }

    .feature-content h3 {
        margin-top: 10px;
        font-size: 11px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        margin-bottom: 2px !important;
        color: #507c5b !important;
    }

    .feature-content p {
        font-size: 9px !important;
        line-height: 1.2 !important;
        margin-bottom: 0 !important;
        color: #507c5b !important;
        opacity: 0.9 !important;
    }

    /* ========================================
       PRODUCTS SECTION - 2 KOLOM
       ======================================== */
    .products-section {
        padding-top: 60px; /* Even more space below features section */
        padding-bottom: 30px;
    }

    .products-section .section-header {
        padding: 0 20px;
        margin-bottom: 16px;
        text-align: center;
    }

    .products-section .section-header h2 {
        font-size: 14px;
        font-weight: 600;
        line-height: 120%;
        color: #3f425a;
    }

    .category-filter {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 6px;
        margin-bottom: 0px;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding: 0 20px;
    }

    .category-btn {
        font-size: 10px;
        padding: 3px 0;
        border-radius: 0;
        background: transparent;
        font-weight: 400;
        white-space: nowrap;
        transition: all 0.3s ease;
    }

    .category-btn.active {
        background: transparent;
        border-bottom: 1px solid #507c5b;
        font-weight: 500;
    }

    .category-btn:hover {
        background: transparent;
        color: #3f425a;
    }

    .products-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px; /* Increased gap to prevent sticking */
        padding: 0 20px;
        margin: 0 auto;
        margin-bottom: 40px;
        max-width: 100%;
        align-items: stretch;
    }

    .products-grid .product-card-link {
        height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        text-decoration: none !important;
    }

    .product-card {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding: 10px; /* Adjusted padding */
        gap: 10px;
        background: #ffffff; /* Restored: White Background (Desktop Style) */
        border: 1px solid #e1e2ea;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important; /* Restored: Shadow for separation */
        height: 100% !important;
        width: 100% !important;
    }

    .product-image {
        width: 100%;
        height: 160px;
        overflow: hidden;
        border-radius: 8px; /* Match inner radius */
        background-color: #f8f9fa;
        margin-bottom: 4px;
    }

    .product-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .product-info {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 0;
    }

    .product-info h3 {
        font-family: "Outfit", sans-serif !important;
        font-size: 12px !important; /* Precision: Slightly larger for readability */
        font-weight: 500 !important;
        line-height: 135% !important;
        color: #3f425a !important;
        margin: 0 !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .product-price {
        font-family: "Outfit", sans-serif !important;
        font-size: 14px !important; /* Precision: Distinct from title */
        font-weight: 700 !important;
        color: #3f425a !important;
        margin: 0 !important;
    }

    .product-location {
        display: none !important; /* Changed: Hidden location */
        align-items: center;
        gap: 4px;
        font-size: 11px;
        color: #9a9ab0;
        margin-top: 2px;
    }

    .product-location i {
        font-size: 10px;
    }

    /* Center empty product state message - more specific selector */
    /* Center empty product state message */
    .products-grid.empty-grid {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 300px;
    }

    .products-grid.empty-grid .col-12 {
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    /* ========================================
       ABOUT SECTION - STACKED VERTICAL
       ======================================== */
    .about-section {
        background: var(--primary-pr4) !important;
        padding: 0 !important;
        min-height: auto !important;
    }

    .about-content {
        flex-direction: column !important; /* Changed from row to column */
        width: 100% !important;
        max-width: 393px !important; /* User specified width */
        margin: 0 auto !important; /* Center content */
        padding: 0 !important;
        align-items: stretch !important;
    }

    .about-text {
        width: 100% !important; /* Changed from 55% to 100% */
        max-width: 100% !important;
        height: auto !important;
        min-height: 250px !important; /* Match image height */
        padding: 30px 20px !important; /* Adjusted padding for full width */
        gap: 12px !important;
        flex-direction: column !important;
        align-items: center !important; /* Center horizontally */
        justify-content: center !important; /* Center vertically */
        background: #659a71 !important;
        order: 1 !important; /* Text first */
    }

    .about-text > div:first-child {
        width: 100% !important;
        max-width: 100% !important;
        gap: 8px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important; /* Center the text block */
    }

    .about-text h2 {
        font-size: 14px !important; /* Increased from 10px */
        text-align: center !important;
        margin-bottom: 0 !important;
        font-weight: 500 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        width: 100% !important;
    }

    .about-text > div:first-child > p {
        font-size: 20px !important; /* Increased from 13px */
        line-height: 1.3 !important;
        text-align: center !important;
        margin-bottom: 0 !important;
        width: 100% !important;
    }

    .about-text > div:last-child {
        margin-top: 5px !important;
        width: 100% !important;
        display: flex !important;
        justify-content: center !important; /* Center the stats container */
    }

    .about-stats {
        width: auto !important; /* Auto width based on content */
        gap: 8px !important;
        padding: 8px 0 !important;
        justify-content: space-between !important;
        border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
        display: flex !important;
    }

    .about-stat {
        gap: 0px !important;
        align-items: flex-start !important;
    }

    .about-stat h3 {
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
    }

    .about-stat p {
        font-size: 7.5px !important;
        line-height: 1.1 !important;
        text-align: center !important; /* Center within stat */
        white-space: nowrap !important;
    }

    .about-image {
        width: 100% !important;
        height: 522px !important; /* User specified height */
        min-height: 522px !important;
        position: relative !important;
        left: 0 !important;
        right: 0 !important;
        order: 2 !important; /* Image second */
        display: block !important;
    }

    .about-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    /* ========================================
       TESTIMONIALS SECTION - 1 CARD
       ======================================== */
    .testimonials-section {
        padding: 40px 20px;
        margin-top: 0;
    }

    .testimonials-section .container {
        padding: 0;
        max-width: 100%;
    }

    .testimonials-section .section-header {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        gap: 0;
        margin-bottom: 24px;
    }

    .testimonials-section .section-header-content {
        transform: none;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .testimonials-section .section-header-content .headline {
        font-size: 14px;
        color: #696f96;
        margin: 0;
        text-align: left;
    }

    .testimonials-section .section-header-content h2 {
        font-size: 24px;
        font-weight: 600;
        line-height: 120%;
        text-align: left;
        margin: 0;
    }

    .testimonials-section .testimonials-link {
        justify-content: flex-end;
    }

    .testimonials-section .testimonials-link a {
        font-size: 10px;
        font-weight: 500;
        color: #507c5b;
        border-bottom: 1px solid #659a71;
        padding-bottom: 2px;
        text-decoration: none;
    }

    .testimonials-grid {
        display: flex;
        flex-direction: row;
        gap: 16px;
        overflow-x: auto;
        padding: 4px 0;
        margin-left: -20px;
        margin-right: -20px;
        padding-left: 20px;
        padding-right: 20px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .testimonials-grid::-webkit-scrollbar {
        display: none;
    }

    .testimonial-card {
        display: flex;
        flex-direction: row;
        gap: 14px;
        padding: 12px;
        background: #f2f3f7;
        border: 1px solid #c3c5d5;
        min-width: 280px;
        max-width: 280px;
        flex-shrink: 0;
    }

    .testimonial-card:nth-child(n + 2) {
        display: flex; /* Show multiple cards for scrolling */
    }

    .testimonial-avatar {
        width: 110px;
        min-width: 110px;
        height: 110px;
        aspect-ratio: 1;
        flex-shrink: 0;
        overflow: hidden;
    }

    .testimonial-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .testimonial-content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 16px;
        flex: 1;
        padding-right: 4px;
    }

    .testimonial-text {
        font-family: "Outfit";
        font-weight: 400;
        font-size: 10px;
        line-height: 160%;
        color: #3f425a;
        margin: 0;
    }

    .testimonial-info {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .testimonial-details {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .testimonial-rating {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 3px;
    }

    .testimonial-rating i {
        font-size: 12px;
        color: #507c5b;
    }

    .testimonial-info h4 {
        font-family: "Nunito";
        font-style: italic;
        font-weight: 700;
        font-size: 12px;
        line-height: 135%;
        color: #3f425a;
        margin: 0;
    }

    .testimonial-info p {
        font-family: "Outfit";
        font-weight: 400;
        font-size: 10px;
        line-height: 160%;
        color: #3f425a;
        margin: 0;
        text-transform: capitalize;
    }

    /* ========================================
       CITIES SECTION - 2 KOLOM
       ======================================== */
    .cities-section {
        padding: 40px 0;
    }

    .cities-section .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 0 20px;
        margin-bottom: 24px;
        display: flex;
        justify-content: flex-start;
    }

    .cities-header-left {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .cities-eyebrow {
        font-size: 12px;
        font-weight: 500;
        color: var(--neutral-nt6);
        margin-bottom: 0;
        text-align: left;
        display: block;
    }

    .cities-section .section-header h2 {
        font-size: 24px;
        font-weight: 600;
        line-height: 120%;
        text-align: left;
        margin-bottom: 0;
    }

    .section-tabs {
        gap: 16px;
        border-bottom: 1px solid #c3c5d5;
        display: flex;
        padding-bottom: 0;
        width: 100%;
    }

    .tab-btn {
        font-size: 13px;
        padding: 8px 0;
        font-weight: 500;
        border-bottom: 2px solid transparent;
        background: transparent;
        border-top: none;
        border-left: none;
        border-right: none;
        color: var(--neutral-nt4);
        cursor: pointer;
        transition: all 0.3s ease;
        white-space: nowrap;
    }

    .tab-btn.active {
        color: var(--neutral-nt8);
        border-bottom-color: var(--primary-pr5);
        font-weight: 600;
    }

    .tab-btn:hover {
        color: var(--neutral-nt8);
    }

    .cities-grid {
        display: flex;
        flex-direction: row;
        gap: 16px;
        overflow-x: auto;
        padding: 10px 20px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .cities-grid::-webkit-scrollbar {
        display: none;
    }

    .city-card {
        min-width: 240px;
        flex-shrink: 0;
        border-radius: 8px;
        overflow: hidden;
        border: 1px solid var(--neutral-nt2);
        background: #f2f3f7;
        display: flex;
        flex-direction: column;
        transition:
            transform 0.3s ease,
            box-shadow 0.3s ease;
    }

    .city-image {
        width: 100%;
        flex: 1;
        min-height: 0;
        background: #f0f1f5;
        overflow: hidden;
        aspect-ratio: 189 / 177.6;
    }

    .city-image img {
        width: 100%;
        height: 100%; /* WAJIB 100% */
        object-fit: cover; /* WAJIB - crop gambar agar isi penuh */
        object-position: center; /* Gambar di-crop dari tengah */
    }

    .city-info {
        padding: 7px 10px;
        display: flex;
        flex-direction: column;
        gap: 4px;
        flex-shrink: 0;
    }

    .city-location {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 12px;
        color: var(--neutral-nt6);
        text-transform: capitalize;
    }

    .city-location i {
        font-size: 11px;
        color: var(--primary-pr5);
    }

    .city-name {
        font-size: 16px;
        font-weight: 600;
        line-height: 140%;
        color: var(--neutral-nt8);
        margin: 0;
    }

    /* ========================================
       PARTNERS SECTION
       ======================================== */
    .partners-section {
        padding: 32px 0;
        border-top: 1px solid #eee;
    }

    .partners-section .container {
        padding: 0;
    }

    .partners-section .partners-text {
        margin-bottom: 20px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .partners-section .partners-text h3 {
        font-size: 16px;
        font-weight: 600;
        line-height: 130%;
        color: var(--neutral-nt8);
    }

    .partners-slider {
        height: 70px;
        overflow: hidden;
        position: relative;
        width: 100%;
    }

    .slide-track {
        display: flex;
        width: max-content;
        animation: scroll 25s linear infinite;
    }

    .partner-logo {
        width: 130px;
        height: 70px;
        margin: 0 12px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .partner-logo img {
        max-width: 100px;
        max-height: 50px;
        object-fit: contain;
        opacity: 0.7;
    }

    @keyframes scroll {
        0% {
            transform: translateX(0);
        }
        100% {
            /* 11 logos × 154px (130px width + 12px*2 margin) = 1694px */
            transform: translateX(-1694px);
        }
    }

    /* ========================================
       WHATSAPP FLOAT BUTTON
       ======================================== */
    body.mobile-menu-open .whatsapp-float {
        display: none !important;
    }

    .whatsapp-float {
        position: fixed;
        bottom: 24px;
        right: 20px;
        top: auto;
        left: auto;
        width: auto;
        height: auto;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 0;
        z-index: 9999;
        text-decoration: none;
    }

    .whatsapp-float .whatsapp-icon {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        margin-right: -4px;
        z-index: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--primary-pr5);
        transition: all 0.3s ease;
    }

    .whatsapp-float .whatsapp-icon i {
        font-size: 20px;
        color: #ffffff;
    }

    .whatsapp-float .whatsapp-text {
        padding: 8px 14px;
        height: 40px;
        border-radius: 20px;
        z-index: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        background: var(--primary-pr5);
        transition: all 0.3s ease;
    }

    .whatsapp-float .whatsapp-text span {
        font-size: 12px;
        line-height: 160%;
        color: #ffffff;
        white-space: nowrap;
        font-weight: 400;
    }

    .whatsapp-float:hover .whatsapp-icon {
        background: var(--primary-pr4);
        transform: scale(1.05);
    }

    .whatsapp-float:hover .whatsapp-text {
        background: var(--primary-pr4);
    }
    /* ========================================
   PAKSA HERO CONTENT MENGIKUTI MARGIN HEADER
   ======================================== */
    .hero-content {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* ========================================
   PAKSA SEMUA SECTION MENGIKUTI MARGIN HEADER
   ======================================== */

    /* Hero Section */
    .hero-section .container,
    .hero-content {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* Features Section */
    .features-section .container,
    .features-grid {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* Products Section */
    .products-section .container,
    .products-section .section-header,
    .category-filter,
    .products-grid {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* About Section */
    .about-section .container,
    .about-content {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .about-text > div:first-child {
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .about-stats::before {
        left: var(--container-padding, 40px) !important;
        right: var(--container-padding, 40px) !important;
    }

    /* Testimonials Section */
    .testimonials-section .container {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    .testimonials-section .section-header {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .testimonials-grid {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* Cities Section */
    .cities-section .container,
    .cities-section .section-header,
    .cities-grid {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* Partners Section */
    .partners-section .container {
        max-width: var(--max-width, 1400px) !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;
        box-sizing: border-box !important;
    }

    /* ========================================
   RESPONSIVE - MENGIKUTI PADDING HEADER
   ======================================== */
    @media (max-width: 1024px) {
        .hero-content,
        .features-grid,
        .products-section .section-header,
        .category-filter,
        .products-grid,
        .testimonials-grid,
        .about-text > div:first-child,
        .testimonials-section .container,
        .cities-section .section-header,
        .cities-grid,
        .partners-section .container {
            padding-left: 30px !important;
            padding-right: 30px !important;
        }

        .about-stats::before {
            left: 30px !important;
            right: 30px !important;
        }
    }

    @media (max-width: 768px) {
        .hero-content,
        .features-grid,
        .products-section .section-header,
        .category-filter,
        .products-grid,
        .testimonials-grid,
        .testimonials-section .section-header,
        .about-text > div:first-child,
        .testimonials-section .container,
        .cities-section .section-header,
        .cities-grid,
        .partners-section .container {
            padding-left: 20px !important;
            padding-right: 20px !important;
        }

        .about-stats::before {
            left: 20px !important;
            right: 20px !important;
        }

        .testimonials-grid {
            display: flex !important;
            flex-wrap: nowrap !important; /* Mencegah kartu turun ke bawah */
            overflow-x: auto; /* Mengaktifkan scroll horizontal */
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-left: 20px; /* Padding awal agar tidak mepet layar */
            padding-right: 20px;
            gap: 15px;
        }

        /* Sembunyikan scrollbar bawaan browser agar clean */
        .testimonials-grid::-webkit-scrollbar {
            display: none;
        }
        .testimonials-grid {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        .testimonial-card {
            flex: 0 0 85%; /* Kartu mengambil 85% lebar layar */
            min-width: 280px;
            scroll-snap-align: center;
            margin-bottom: 10px !important;
            /* Tambahkan bayangan halus agar kartu terlihat terpisah saat sliding */
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
        }
    }

    @media (max-width: 480px) {
        .hero-content,
        .features-grid,
        .products-section .section-header,
        .category-filter,
        .products-grid,
        .testimonials-grid,
        .about-text > div:first-child,
        .testimonials-section .container,
        .cities-section .section-header,
        .cities-grid,
        .partners-section .container {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }

        .about-stats::before {
            left: 15px !important;
            right: 15px !important;
        }
    }
    /* ========================================
   PAKSA SEMUA ELEMEN HERO DI MOBILE MENGIKUTI MARGIN
   ======================================== */
    @media (max-width: 767px) {
        /* PAKSA HERO CONTENT */
        .hero-content {
            padding-left: 20px !important;
            padding-right: 20px !important;
            width: 100% !important;
            box-sizing: border-box !important;
        }

        /* PAKSA HERO STATS - BAGIAN KIRI KANAN */
        .hero-stats {
            padding-left: 0 !important;
            padding-right: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
            margin-left: auto !important;
            margin-right: auto !important;
        }

        /* PAKSA STAT GROUP AGAR TIDAK KELUAR */
        .stat-group.left,
        .stat-group.right {
            width: calc(50% - 6px) !important;
            box-sizing: border-box !important;
        }

        /* PAKSA STAT ITEM */
        .stat-item {
            width: 100% !important;
            box-sizing: border-box !important;
        }

        /* PAKSA HERO BADGES */
        .hero-badges {
            padding-left: 0 !important;
            padding-right: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
            margin-left: auto !important;
            margin-right: auto !important;
        }

        /* PAKSA BADGE ITEM */
        .badge-item {
            box-sizing: border-box !important;
        }

        /* PAKSA HERO BUTTONS */
        .hero-buttons {
            padding-left: 0 !important;
            padding-right: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
            margin-left: auto !important;
            margin-right: auto !important;
        }

        /* PAKSA HERO IMAGE */
        .hero-image {
            padding-left: 0 !important;
            padding-right: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
            margin-left: auto !important;
            margin-right: auto !important;
        }
    }

    /* ========================================
   MOBILE KECIL (480px)
   ======================================== */
    @media (max-width: 480px) {
        .hero-content,
        .hero-stats,
        .hero-badges,
        .hero-buttons,
        .hero-image {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }
    }
    /* ========================================
   PAKSA TESTIMONIALS DI MOBILE MENGIKUTI MARGIN
   ======================================== */
    @media (max-width: 767px) {
        /* PAKSA TESTIMONIALS SECTION */
        .testimonials-section {
            width: 100% !important;
            padding-left: 0 !important;
            padding-right: 0 !important;
        }

        /* PAKSA TESTIMONIALS CONTAINER */
        .testimonials-section .container {
            padding-left: 20px !important;
            padding-right: 20px !important;
            width: 100% !important;
            max-width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            box-sizing: border-box !important;
        }

        /* PAKSA SECTION HEADER TESTIMONIALS - NOW FOLLOWS MARGIN */
        .testimonials-section .section-header {
            padding-left: 20px !important;
            padding-right: 20px !important;
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            box-sizing: border-box !important;
        }

        /* PAKSA TESTIMONIALS GRID WRAPPER - REMOVED NEGATIVE MARGINS */
        .testimonials-grid {
            margin-left: auto !important;
            margin-right: auto !important;
            padding-left: 20px !important;
            padding-right: 20px !important;
            width: 100% !important;
            max-width: 1400px !important;
            box-sizing: border-box !important;
        }

        /* PAKSA TESTIMONIAL CARD */
        .testimonial-card {
            margin-left: 0 !important;
            margin-right: 0 !important;
            box-sizing: border-box !important;
        }
    }

    /* ========================================
   MOBILE KECIL (480px)
   ======================================== */
    @media (max-width: 480px) {
        /* PAKSA TESTIMONIALS CONTAINER */
        .testimonials-section .container {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }

        /* PAKSA TESTIMONIALS GRID WRAPPER */
        .testimonials-grid {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }
    }
}
/* ========================================
   PERBAIKAN JARAK ANTAR SECTION - AGAR TIDAK TERLALU KOSONG
   ======================================== */

/* Hero Section - kurangi padding bottom */
.hero-section {
    padding-bottom: 100px !important; /* dari 100px jadi 20px */
}

@media (max-width: 767px) {
    .hero-section {
        padding-bottom: 65px !important; /* lebih rapat di mobile */
    }
}

/* Features Section - kurangi padding */
.features-section {
    padding: 20px 0 !important; /* dari 20px jadi 10px */
}

@media (max-width: 767px) {
    .features-section {
        padding: 0px 0 10px 0 !important; /* lebih rapat */
        margin-top: -30px !important; /* tarik naik lebih dekat ke hero */
    }
}

/* Products Section - kurangi jarak */
.products-section {
    padding-top: 20px !important; /* dari 40px jadi 20px */
    padding-bottom: 10px !important; /* dari 10px (sudah kecil) */
}

.products-grid {
    margin-top: 20px !important; /* dari 40px jadi 20px */
    margin-bottom: 20px !important; /* dari 5% jadi 20px */
}

@media (max-width: 767px) {
    .products-section {
        padding-top: 30px !important; /* dikurangi dari 60px */
    }

    .products-grid {
        margin-bottom: 20px !important; /* konsisten */
    }
}

/* About Section - kurangi jarak */
.about-section {
    margin-bottom: 0 !important;
}

.about-text {
    padding: 30px 60px 30px 0 !important; /* dari 60px jadi 30px */
}

@media (max-width: 767px) {
    .about-text {
        padding: 20px 20px !important; /* lebih kecil di mobile */
        min-height: auto !important;
    }

    .about-image {
        height: 400px !important; /* kurangi dari 522px */
        min-height: 400px !important;
    }
}

/* Testimonials Section - kurangi jarak */
.testimonials-section {
    padding: 30px 0 !important; /* dari 60px jadi 30px */
    margin-bottom: 0 !important; /* dari 10px jadi 0 */
}

@media (max-width: 767px) {
    .testimonials-section {
        padding: 20px 0 !important; /* dikurangi */
    }
}

/* Cities Section - kurangi jarak */
.cities-section {
    padding: 30px 0 !important; /* dari 80px jadi 30px */
}

.cities-section .section-header {
    margin-bottom: 20px !important; /* dari 40px jadi 20px */
}

@media (max-width: 767px) {
    .cities-section {
        padding: 20px 0 !important; /* lebih kecil */
    }
}

/* Partners Section - kurangi jarak */
.partners-section {
    padding: 20px 0 !important; /* dari 32px jadi 20px */
}

.partners-section .partners-text {
    margin-bottom: 15px !important; /* dari 20px jadi 15px */
}

/* ========================================
   KOMPENSASI UNTUK ELEMEN NEGATIF MARGIN
   ======================================== */
.hero-image {
    margin-bottom: -180px !important; /* sesuaikan agar lebih rapat dengan features */
}

/* ========================================
   HERO IMAGE MARGIN BOTTOM - SEMUA UKURAN LAYAR
   ======================================== */

/* DESKTOP 1400px ke atas */
@media (min-width: 1400px) {
    .hero-image {
        margin-bottom: -220px !important;
    }
}

/* DESKTOP 1200px - 1399px */
@media (min-width: 1200px) and (max-width: 1399px) {
    .hero-image {
        margin-bottom: -200px !important;
    }
}

/* DESKTOP 1025px - 1199px */
@media (min-width: 1025px) and (max-width: 1199px) {
    .hero-image {
        margin-bottom: -180px !important;
    }
}

/* TABLET LANDSCAPE (900px - 1024px) */
@media (min-width: 900px) and (max-width: 1024px) {
    .hero-image {
        margin-bottom: -160px !important;
    }
}

/* TABLET PORTRAIT (768px - 899px) */
@media (min-width: 768px) and (max-width: 899px) {
    .hero-image {
        margin-bottom: -180px !important;
    }
}

/* TABLET KECIL (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .hero-image {
        margin-bottom: -140px !important;
    }
}

/* MOBILE BESAR (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .hero-image {
        margin-bottom: -130px !important;
    }
}

/* MOBILE SEDANG (375px - 479px) */
@media (min-width: 375px) and (max-width: 479px) {
    .hero-image {
        margin-bottom: -120px !important;
    }
}

/* MOBILE KECIL (320px - 374px) */
@media (min-width: 320px) and (max-width: 374px) {
    .hero-image {
        margin-bottom: -110px !important;
    }
}

/* MOBILE SANGAT KECIL (kurang dari 320px) */
@media (max-width: 319px) {
    .hero-image {
        margin-bottom: -100px !important;
    }
}

/* LANDSCAPE MODE - SEMUA UKURAN */
@media (max-width: 1024px) and (orientation: landscape) {
    .hero-image {
        margin-bottom: -80px !important;
    }
}

/* TABLET LANDSCAPE KHUSUS */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
    .hero-image {
        margin-bottom: -100px !important;
    }
}

/* ========================================
   HOME PAGE - HERO IMAGE FIX
   MENGIKUTI POLA SUKSES DARI SEARCH.CSS
   (VERSI TIDAK TERLALU KE BAWAH)
   ======================================== */

/* DESKTOP LARGE (1400px ke atas) */
@media screen and (min-width: 1400px) {
    .hero-image > img {
        position: relative !important;
        width: 100% !important;
        max-width: 800px !important;
        height: auto !important;
        left: -50px !important;
        top: -20px !important;
        margin-bottom: 0;
        object-fit: contain !important;
        display: block !important;
    }
}

/* DESKTOP (1200px - 1399px) */
@media screen and (max-width: 1399px) and (min-width: 1200px) {
    .hero-image > img {
        max-width: 700px !important;
        left: -40px !important;
        top: -15px !important;
        margin-bottom: 0;
    }
}

/* SMALL DESKTOP (1024px - 1199px) */
@media screen and (max-width: 1199px) and (min-width: 1024px) {
    .hero-image > img {
        max-width: 600px !important;
        left: -30px !important;
        top: -10px !important;
        margin-bottom: 0;
    }
}

/* TABLET LANDSCAPE (900px - 1023px) */
@media screen and (max-width: 1023px) and (min-width: 900px) {
    .hero-image > img {
        max-width: 500px !important;
        left: -20px !important;
        top: -5px !important;
        margin-bottom: 0;
    }
}

/* TABLET (768px - 899px) */
@media screen and (max-width: 899px) and (min-width: 768px) {
    .hero-image > img {
        max-width: 450px !important;
        left: -10px !important;
        top: 0 !important;
        margin-bottom: 0;
    }
}

/* ========================================
   MOBILE (max-width: 1023px) - SEMUA HP & TABLET
   ======================================== */
@media screen and (max-width: 1023px) {
    /* Reset hero section */
    .hero-section {
        overflow: visible !important;
        padding-bottom: 0 !important;
    }

    /* Hero image wrapper */
    .hero-image {
        display: flex !important;
        justify-content: center !important;
        align-items: flex-end !important;
        overflow: visible !important;
        width: 100% !important;
        margin: 0 auto !important;
        padding: 0 20px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
    }

    /* Hero image - PAKSA NEMPEL */
    .hero-image > img {
        position: relative !important;
        width: 100% !important;
        max-width: 400px !important;
        height: auto !important;
        margin: 0 auto !important;
        margin-bottom: 0;
        display: block !important;
        object-fit: contain !important;
        pointer-events: none !important;
    }
}

/* ========================================
   MOBILE LARGE (768px - 1023px)
   ======================================== */
@media screen and (max-width: 1023px) and (min-width: 768px) {
    .hero-image > img {
        max-width: 380px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   MOBILE MEDIUM (576px - 767px)
   ======================================== */
@media screen and (max-width: 767px) and (min-width: 576px) {
    .hero-image > img {
        max-width: 350px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   MOBILE SMALL (431px - 575px)
   ======================================== */
@media screen and (max-width: 575px) and (min-width: 431px) {
    .hero-image > img {
        max-width: 320px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   MOBILE 430px (YANG SERING BERMASALAH)
   ======================================== */
@media screen and (max-width: 430px) and (min-width: 376px) {
    .hero-image > img {
        max-width: 280px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   MOBILE 375px
   ======================================== */
@media screen and (max-width: 375px) and (min-width: 321px) {
    .hero-image > img {
        max-width: 240px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   IPHONE SE (320px ke bawah)
   ======================================== */
@media screen and (max-width: 320px) {
    .hero-image > img {
        max-width: 200px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   LANDSCAPE MODE
   ======================================== */
@media screen and (max-width: 1023px) and (orientation: landscape) {
    .hero-image > img {
        max-width: 300px !important;
        margin-bottom: 0;
    }
}

/* ========================================
   FEATURES SECTION - PASTIKAN NEMPEL
   ======================================== */
.features-section {
    position: relative !important;
    z-index: 5 !important;
    margin-top: 0 !important;
}

/* ========================================
   SAFARI MOBILE FIX
   ======================================== */
@supports (-webkit-touch-callout: none) {
    @media screen and (max-width: 1023px) {
        .hero-image > img {
            -webkit-transform: translateZ(0) !important;
            transform: translateZ(0) !important;
        }
    }
}

/* ========================================
   SAFARI HERO IMAGE MARGIN FIX
   ======================================== */
@supports (-webkit-touch-callout: none) {
    /* Desktop Large (1400px ke atas) */
    @media screen and (min-width: 1400px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Desktop (1200px - 1399px) */
    @media screen and (max-width: 1399px) and (min-width: 1200px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Small Desktop (1024px - 1199px) */
    @media screen and (max-width: 1199px) and (min-width: 1024px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile & Tablet - Force attachment */
    @media screen and (max-width: 1023px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile Large (768px - 1023px) */
    @media screen and (max-width: 1023px) and (min-width: 768px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile Medium (576px - 767px) */
    @media screen and (max-width: 767px) and (min-width: 576px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile Small (431px - 575px) */
    @media screen and (max-width: 575px) and (min-width: 431px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile 430px */
    @media screen and (max-width: 430px) and (min-width: 376px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* Mobile 375px */
    @media screen and (max-width: 375px) and (min-width: 321px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }

    /* iPhone SE (320px ke bawah) */
    @media screen and (max-width: 320px) {
        .hero-image > img {
            margin-bottom: 0;
        }
    }
}
/* ========================================
   FORCE ATTACHMENT - SEPERTI SEARCH.CSS
   ======================================== */

/* NOTE:
   Blok ini dibuat untuk mobile/tablet agar image "nempel".
   Jangan biarkan mengubah layout desktop, jadi kita scope ke <=1023px. */
@media screen and (max-width: 1023px) {
    /* Pastikan hero section tidak potong image */
    .hero-section {
        overflow: visible !important;
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
    }

    .hero-section .container {
        overflow: visible !important;
    }

    /* Image wrapper */
    .hero-image {
        overflow: visible !important;
        z-index: 10 !important;
        pointer-events: none;
    }

    /* Image itu sendiri */
    .hero-image > img {
        pointer-events: none;
        z-index: 15 !important;
    }

    /* Section berikutnya (features) nempel */
    .features-section {
        margin-top: 0 !important;
        position: relative !important;
        z-index: 5 !important;
    }
}

/* ========================================
   SAFARI / WEBKIT SPESIFIC
   ======================================== */
@supports (-webkit-touch-callout: none) {
    .hero-image > img {
        -webkit-transform: translateZ(0) !important;
        transform: translateZ(0) !important;
        -webkit-backface-visibility: hidden !important;
        backface-visibility: hidden !important;
    }

    .hero-image {
        -webkit-transform: translateZ(0) !important;
        transform: translateZ(0) !important;
    }

    /* ========================================
   LANDSCAPE MODE
   ======================================== */
    @media (max-width: 1024px) and (orientation: landscape) {
        .hero-image > img {
            max-width: 350px !important;
            margin-bottom: 0;
        }
    }

    /* ========================================
   MEMINDAHKAN TEKS TESTIMONIAL - DESKTOP ONLY
   ======================================== */

    @media (min-width: 1025px) {
        .testimonials-section .section-header {
            padding-left: 40px !important;
            padding-right: 40px !important;
            max-width: 1400px !important;
            margin-left: auto !important;
            margin-right: auto !important;
            box-sizing: border-box !important;
        }
    }
}

@media screen and (min-width: 1025px) {
    .hero-section {
        overflow: hidden !important;
        padding-bottom: 0 !important; /* Tetap 0 agar menempel */
        position: relative;
    }

    /* Memastikan area teks/badges punya prioritas layer lebih tinggi */
    .hero-content {
        position: relative;
        z-index: 10 !important;
    }

    .hero-image {
        margin-bottom: 0 !important;
        display: flex;
        align-items: flex-end;
        position: relative;
        z-index: 1 !important; /* Di bawah badges */
        pointer-events: none; /* Supaya badges di bawahnya tetap bisa diklik */
    }

    .hero-image > img {
        display: block !important;
        vertical-align: bottom;
        margin-bottom: -1px !important; /* Menghilangkan celah saat zoom 110/125% */

        /* --- BAGIAN PENGGESER KE KIRI --- */
        position: relative;
        left: -100px !important; /* Silakan ubah angka ini (misal -50px, -100px) untuk geser lebih jauh ke kiri */
        /* -------------------------------- */

        max-width: clamp(560px, 42vw, 760px) !important;
        top: 0 !important;
        transform: none !important;
    }
    .testimonials-section .container {
        /* Gunakan width 100% agar selalu memenuhi layar sampai batas max-width */
        width: 100% !important;

        /* Pastikan max-width tidak terlalu kecil saat di-zoom */
        max-width: var(--max-width) !important;

        /* Kurangi padding samping jika saat zoom terasa terlalu 'mepet' ke tengah */
        padding-left: 20px !important;
        padding-right: 20px !important;

        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Pastikan pembungkus kartu (wrapper) menggunakan flex-nowrap atau lebar penuh */
    .testimonials-wrapper {
        display: flex;
        justify-content: center;
        width: 100% !important;
        /* Gunakan gap tetap dalam px/rem, jangan vw */
        gap: 2rem !important;
    }

    /* KUNCI UTAMA: Jangan biarkan kartu mengecil */
    .testimonial-card {
        /* Gunakan flex-basis agar ukurannya stabil */
        flex: 1 1 350px !important;
        max-width: 450px !important;
        min-width: 300px !important; /* Mencegah kartu 'gepeng' saat zoom */
    }
}
/* ============================================================
   SCRIPT PEMAKSAAN: FIX HERO IMAGE & TESTIMONIAL ZOOM ISSUE
   ============================================================ */

@media screen and (min-width: 1025px) {

    /* 1. PAKSA HERO IMAGE MENEMPEL (ZERO GAP) */
    .hero-section {
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
        position: relative;
        display: flex;
        flex-direction: column;
    }

    .hero-image {
        margin-bottom: -2px !important; /* Paksa overlap sedikit ke bawah untuk tutup celah zoom */
        line-height: 0 !important;      /* Hilangkan whitespace font baseline */
        display: flex !important;
        align-items: flex-end !important;
        z-index: 1 !important;
        pointer-events: none;           /* Agar tidak menghalangi klik ke badges */
    }

    .hero-image > img {
        display: block !important;
        width: auto !important;
        max-width: clamp(500px, 40vw, 700px) !important; /* Perkecil sedikit agar tidak makan tempat */
        height: auto !important;
        margin-bottom: 0 !important;
        /* Geser ke kiri agar tidak menabrak badges */
        transform: translateX(-10%) !important;
    }

    /* 2. PAKSA TESTIMONIAL TETAP LEBAR (ANTI-MEPET) */
    .testimonials-section .container {
        max-width: 95% !important;     /* Gunakan persentase agar tidak kaku saat zoom */
        width: 1400px !important;      /* Lebar ideal */
        /* Kurangi padding variabel yang bikin mepet */
        padding-left: 15px !important;
        padding-right: 15px !important;
        margin: 0 auto !important;
    }

    .testimonials-wrapper {
        display: flex !important;
        flex-wrap: nowrap !important;  /* Jangan biarkan kartu turun/pindah baris jika tidak perlu */
        justify-content: center !important;
        gap: 20px !important;
        width: 100% !important;
    }

    .testimonial-card {
        /* Paksa ukuran kartu agar tidak menyusut (shrink) */
        flex: 0 0 380px !important;    /* Kartu akan tetap di lebar 380px, tidak boleh kurang */
        max-width: 400px !important;
        min-width: 300px !important;
    }
}

/* 3. FIX KHUSUS UNTUK BADGES AGAR SELALU DI DEPAN */
.hero-content {
    position: relative;
    z-index: 20 !important; /* Pastikan jauh di atas image */
}

/* ============================================================
   FIX TESTIMONIAL ONLY: MENCEGAH PENYUSUTAN SAAT ZOOM
   ============================================================ */

@media screen and (min-width: 1025px) {
    /* 1. Paksa Container Testimonial untuk mengikuti lebar 1400px */
    .testimonials-section .container {
        width: 100% !important;
        max-width: var(--max-width, 1400px) !important;

        /* Pastikan padding tetap konsisten agar 'mentok' sesuai aturan margin */
        padding-left: var(--container-padding, 40px) !important;
        padding-right: var(--container-padding, 40px) !important;

        margin-left: auto !important;
        margin-right: auto !important;
        display: block !important;
    }

    /* 2. Paksa Wrapper Testimonial untuk mengisi seluruh lebar kontainer */
    .testimonials-wrapper {
        display: flex !important;
        width: 100% !important;
        /* justify-content: space-between memastikan elemen mentok ke kiri dan kanan */
        justify-content: space-between !important;
        gap: 24px !important;
        flex-wrap: nowrap !important;
    }

    /* 3. Paksa Kartu Testimonial agar tidak mengecil (shrink) */
    .testimonial-card {
        /* flex-grow: 1, flex-shrink: 0, flex-basis: auto */
        flex: 1 0 auto !important;

        /* Menetapkan ukuran minimal agar tidak terlihat 'gepeng' saat zoom */
        min-width: 350px !important;
        max-width: 450px !important;

        /* Memastikan margin kanan pada kartu terakhir tetap bersih agar mentok ke tepi container */
        margin-right: 0 !important;
    }
}

/* ========================================
   TESTIMONIALS SECTION - REVERT KE ASLI
   ======================================== */

.testimonials-section {
    padding: 60px 0;
    background: var(--smooth-white);
    width: 100%;
}

/* Header - ASLI MILIK ANDA */
.testimonials-section .section-header {
    max-width: var(--max-width);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 20px;
}

/* WRAPPER SCROLL - ASLI MILIK ANDA */
.testimonials-scroll-wrapper {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.testimonials-scroll-wrapper::-webkit-scrollbar {
    display: none;
}

/* GRID - KEMBALI KE ASLI MILIK ANDA (Ini yang menjamin rata kiri & kanan) */
.testimonials-grid {
    display: flex;
    gap: 20px;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    min-width: min-content;
    width: 100%;
    box-sizing: border-box;
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;

    /* HANYA TAMBAH INI: Agar tinggi kartu seragam */
    align-items: stretch;
}

/* KARTU */
.testimonial-card {
    height: auto;
}


/* ========================================
   RESPONSIVE LOGIC (TAMPILAN NORMAL)
   ======================================== */
@media (min-width: 1025px) {
    .testimonials-grid {
        justify-content: space-between;
    }

    .testimonial-card {
        /* FIX MAC: Hitungan ukuran persis agar kartu tidak menyusut/hancur */
        flex: 0 0 calc((100% - 40px) / 3);
        max-width: calc((100% - 40px) / 3);
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .testimonials-grid {
        flex-wrap: wrap;
        justify-content: space-between;
        max-width: 100%;
    }

    .testimonial-card {
        flex: 0 0 calc((100% - 20px) / 2);
        max-width: calc((100% - 20px) / 2);
    }
}

@media (max-width: 767px) {
    .testimonials-scroll-wrapper {
        overflow-x: auto;
    }

    .testimonials-grid {
        width: max-content;
        min-width: 100%;
        justify-content: flex-start;
        flex-wrap: nowrap;
        max-width: none;
        padding-right: 0; /* Hindari double padding dengan ::after di bawah */
    }

    .testimonial-card {
        flex: 0 0 85%;
        min-width: 280px;
        max-width: 320px;
    }

    /* Solusi margin kanan saat scroll di mobile */
    .testimonials-grid::after {
        content: "";
        flex: 0 0 var(--container-padding);
        width: var(--container-padding);
        display: block;
    }
}


/* ========================================
   SAAT ZOOM IN / OVERFLOW AKTIF DARI JS
   ======================================== */
@media (min-width: 1025px) {
    .testimonials-scroll-wrapper.overflow-active {
        overflow-x: auto;
    }

    .testimonials-scroll-wrapper.overflow-active .testimonials-grid {
        width: max-content;
        min-width: 100%;
        max-width: none; /* Lepas batas karena kita butuh area panjang untuk scroll */
        justify-content: flex-start;
        margin-left: 0;
        margin-right: 0;
        padding-left: var(--container-padding); /* Tetap gunakan padding asli */
        padding-right: 0; /* Ganti dengan elemen ::after di bawah agar tidak bug di Safari */
    }

    .testimonials-scroll-wrapper.overflow-active .testimonial-card {
        flex: 0 0 auto;
        width: 320px;
        max-width: 320px;
    }

    /* Tembok buatan agar scroll mentok kanan tidak menabrak batas pinggir layar monitor */
    .testimonials-scroll-wrapper.overflow-active .testimonials-grid::after {
        content: "";
        flex: 0 0 var(--container-padding);
        width: var(--container-padding);
        display: block;
    }
}


/* ========================================
   HERO IMAGE - KEMBALI KE POSISI AMAN
   ======================================== */

@media screen and (min-width: 1025px) {
    .hero-image > img {
        left: -70px !important; /* Nilai lebih besar = lebih ke kiri */
    }
}

/* Desktop Large (1400px ke atas) */
@media screen and (min-width: 1400px) {
    .hero-image > img {
        left: -60px !important;
    }
}

/* Desktop (1200px - 1399px) */
@media screen and (max-width: 1399px) and (min-width: 1200px) {
    .hero-image > img {
        left: -55px !important;
    }
}

/* Small Desktop (1024px - 1199px) */
@media screen and (max-width: 1199px) and (min-width: 1024px) {
    .hero-image > img {
        left: -50px !important;
    }
}

/* ========================================
   TAMBAHAN UNTUK SAFARI MAC COMPATIBILITY
   ======================================== */

/* 1. PASTIKAN SEMUA MASK-IMAGE PUNYA PREFIX WEBKIT */
.hero-grid {
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
}

/* 2. UNTUK BACKFACE-VISIBILITY DI SEMUA ELEMEN YANG TRANSFORM */
.product-card,
.city-card,
.testimonial-card,
.btn-pesan,
.btn-explore,
.whatsapp-float {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* 3. UNTUK SCROLL SMOOTH DI SAFARI */
.testimonials-scroll-wrapper,
.cities-scroll-wrapper {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

/* 4. UNTUK OBJECT-FIT DI GAMBAR (SAFARI 10.1+ SUDAH SUPPORT, TETAP AMAN) */
.product-image img,
.city-image img,
.testimonial-avatar img,
.hero-image img {
    -webkit-object-fit: cover;
    object-fit: cover;
}

/* 5. UNTUK ANIMASI SCROLL PADA PARTNERS */
.slide-track {
    -webkit-animation: scroll 25s linear infinite;
    animation: scroll 25s linear infinite;
}

.slide-track:hover {
    -webkit-animation-play-state: paused;
    animation-play-state: paused;
}

@-webkit-keyframes scroll {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    100% {
        -webkit-transform: translateX(-2200px);
        transform: translateX(-2200px);
    }
}

@keyframes scroll {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    100% {
        -webkit-transform: translateX(-2200px);
        transform: translateX(-2200px);
    }
}

/* 6. UNTUK SAFARI MAC - FIX HOVER PADA ELEMEN DENGAN TRANSFORM */
@media not all and (min-resolution:.001dpcm) {
    @supports (-webkit-appearance:none) {
        .product-card:hover,
        .city-card:hover,
        .testimonial-card:hover {
            -webkit-transform: translateY(-5px);
            transform: translateY(-5px);
        }
    }
}

/* 7. UNTUK SAFARI MAC - FIX POSITION STICKY ATAU RELATIVE YANG BERPINDAH */
.hero-section,
.features-section,
.products-section,
.about-section,
.testimonials-section,
.cities-section {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* 8. UNTUK SAFARI MAC - FIX TEXT RENDERING PADA FONT CUSTOM */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* 9. UNTUK SAFARI MAC - FIX GRID GAP PADA FLEXBOX WRAP */
.features-grid,
.products-grid,
.cities-grid,
.testimonials-grid {
    -webkit-box-align: stretch;
    align-items: stretch;
}

/* 10. UNTUK SAFARI MAC - FIX ELEMEN DENGAN NEGATIVE MARGIN ATAU LEFT NEGATIF */
.hero-image > img {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: left;
}

/* 11. UNTUK SAFARI MAC - FIX BORDER PADA ELEMEN DENGAN BACKGROUND TRANSPARENT */
.badge-item,
.feature-card,
.product-card,
.city-card,
.testimonial-card {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* 12. UNTUK SAFARI MAC - FIX ANIMASI PADA WHATSAPP BUTTON */
.whatsapp-float {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

.whatsapp-float:hover .whatsapp-icon,
.whatsapp-float:hover .whatsapp-text {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
}

/* 13. UNTUK SAFARI MAC - FIX MASK-IMAGE PADA MOBILE */
@media (max-width: 767px) {
    .hero-grid {
        -webkit-mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
        mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
    }
}

/* 14. UNTUK SAFARI MAC - FIX CLAMP PADA FONT SIZE (SAFARI 13.1+ SUPPORT) */
@media not all and (min-resolution:.001dpcm) {
    @supports (-webkit-appearance:none) and (not (overflow:-webkit-marquee)) {
        /* Fallback untuk Safari versi lama yang tidak support clamp */
        .hero-text h1 {
            font-size: 34px;
        }
        .section-header h2 {
            font-size: 32px;
        }
    }
}

/* 15. UNTUK SAFARI MAC - FIX SCROLLBAR HIDING YANG KONSISTEN */
.testimonials-scroll-wrapper::-webkit-scrollbar,
.cities-scroll-wrapper::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.testimonials-scroll-wrapper,
.cities-scroll-wrapper {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ========================================
   SAFARI/MAC COMPATIBILITY - MINIMAL & SAFE
   HANYA TAMBAHAN YANG DIPERLUKAN TANPA MERUSAK LAYOUT
   ======================================== */

/* 1. FALLBACK UNTUK CLAMP() - AMAN, TIDAK MENGUBAH LAYOUT UTAMA */
@supports not (font-size: clamp(1rem, 2vw, 2rem)) {
    .hero-text h1 {
        font-size: 36px;
    }
    
    .section-header h2 {
        font-size: 32px;
    }
    
    .testimonials-section .section-header-content h2 {
        font-size: 32px;
    }
}

/* 2. FALLBACK UNTUK ASPECT-RATIO - HANYA UNTUK CITY IMAGE YANG MENGGUNAKAN ASPECT-RATIO */
@supports not (aspect-ratio: 1 / 1) {
    .city-image {
        position: relative;
        height: 0;
        padding-bottom: 94%;
    }
    
    .city-image img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

/* 3. FIX UNTUK IOS - TAP HIGHLIGHT (TIDAK MERUSAK LAYOUT) */
a, 
button, 
.btn-pesan, 
.btn-explore, 
.category-btn, 
.tab-btn,
.product-card-link {
    -webkit-tap-highlight-color: transparent;
}

/* 4. FIX UNTUK SAFARI - TEXT RENDERING (AMAN) */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 5. FIX UNTUK SAFARI - HARDWARE ACCELERATION (AMAN, HANYA UNTUK ANIMASI) */
.product-card,
.city-card,
.testimonial-card {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* 6. FIX UNTUK SAFARI - SCROLL SMOOTH (TIDAK MERUSAK) */
.testimonials-scroll-wrapper,
.cities-scroll-wrapper {
    -webkit-overflow-scrolling: touch;
}

/* 7. FIX UNTUK SAFARI - MASK-IMAGE DENGAN PREFIX LENGKAP (MEMPERBAIKI YANG SUDAH ADA) */
.hero-grid {
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        transparent 40%,
        black 70%,
        black 100%
    );
}

@media (max-width: 767px) {
    .hero-grid {
        -webkit-mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
        mask-image: linear-gradient(
            to bottom,
            transparent 0%,
            black 20%,
            black 80%,
            transparent 100%
        );
    }
}

/* 8. FIX UNTUK SAFARI - ANIMATION PREFIX LENGKAP */
@-webkit-keyframes scroll {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    100% {
        -webkit-transform: translateX(-2200px);
        transform: translateX(-2200px);
    }
}

@keyframes scroll {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
    100% {
        -webkit-transform: translateX(-2200px);
        transform: translateX(-2200px);
    }
}

.slide-track {
    -webkit-animation: scroll 25s linear infinite;
    animation: scroll 25s linear infinite;
}

/* 9. FIX UNTUK SAFARI - LINE CLAMP (MEMPERBAIKI YANG SUDAH ADA) */
.product-info h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 10. FIX UNTUK SAFARI - SCROLLBAR HIDING (KONSISTEN DENGAN YANG SUDAH ADA) */
.testimonials-scroll-wrapper::-webkit-scrollbar,
.cities-scroll-wrapper::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

/* 11. FIX UNTUK SAFARI - OBJECT-FIT (AMAN) */
.product-image img,
.city-image img,
.testimonial-avatar img,
.hero-image img {
    -webkit-object-fit: cover;
    object-fit: cover;
}

/* 12. FIX UNTUK SAFARI - FLEX GAP ALTERNATIF (HANYA JIKA BROWSER TIDAK SUPPORT) */
@supports not (gap: 20px) {
    .features-grid {
        margin: -10px;
    }
    .feature-card {
        margin: 10px;
    }
    .products-grid {
        margin: -10px;
    }
    .product-card-link {
        margin: 10px;
        display: block;
    }
    .cities-grid {
        margin: -10px;
    }
    .city-card {
        margin: 10px;
    }
}