/* ===================================================
   MODERN REDESIGN CSS - Website Desa
   Referensi: Kecamatan Megamendung
   =================================================== */

/* 1. Base & Variables
   =================================================== */
:root {
    /* Primary Colors */
    --primary-color: #0c59db;
    --gradient-1: #1fa2ff;
    --gradient-2: #c779d0;
    --gradient-3: #4bc0c8;

    /* Text Colors */
    --text-dark: #333333;
    --text-light: #666666;
    --text-muted: #999999;

    /* Background Colors */
    --white: #ffffff;
    --bg-light: #f8f9fa;
    --bg-gray: #e9ecef;

    /* Spacing */
    --spacing-xs: 5px;
    --spacing-sm: 10px;
    --spacing-md: 20px;
    --spacing-lg: 30px;
    --spacing-xl: 40px;

    /* Border Radius */
    --radius-sm: 8px;
    --radius-md: 15px;
    --radius-lg: 20px;
    --radius-full: 50px;

    /* Shadows */
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 5px 20px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.2);

    /* Transitions */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;

    /* Responsive Breakpoints */
    --breakpoint-mobile: 576px;
    --breakpoint-tablet: 768px;
    --breakpoint-desktop: 992px;
    --breakpoint-large: 1200px;

    /* Responsive Font Sizes - Mobile First */
    --font-size-base-mobile: 16px;
    --font-size-base-tablet: 16px;
    --font-size-base-desktop: 16px;

    /* Responsive Spacing */
    --spacing-mobile-sm: 8px;
    --spacing-mobile-md: 16px;
    --spacing-mobile-lg: 24px;
    --spacing-mobile-xl: 32px;
}

/* 2. Typography
   =================================================== */
/* Base font size - Mobile First */
html {
    font-size: var(--font-size-base-mobile);
    overflow-x: hidden;
    width: 100%;
}

body {
    font-family: "Poppins", sans-serif;
    font-size: 1rem;
    color: var(--text-dark);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    width: 100%;
    position: relative;
}

/* Custom Scrollbar - Webkit (Chrome, Safari, Edge) */
::-webkit-scrollbar {
    width: 14px;
    height: 14px;
}

::-webkit-scrollbar-track {
    background: #e9ecef;
    border-radius: 0;
}

::-webkit-scrollbar-thumb {
    background: #0c59db;
    border-radius: 7px;
    border: 3px solid #e9ecef;
    min-height: 40px;
}

::-webkit-scrollbar-thumb:hover {
    background: #1fa2ff;
}

::-webkit-scrollbar-thumb:active {
    background: #0c59db;
}

::-webkit-scrollbar-corner {
    background: #e9ecef;
}

/* Custom Scrollbar - Firefox */
html {
    scrollbar-width: auto;
    scrollbar-color: #0c59db #e9ecef;
}

body {
    scrollbar-width: auto;
    scrollbar-color: #0c59db #e9ecef;
}

/* Scrollbar for specific elements */
.wrapper,
.container,
.modal-body,
.card-body {
    scrollbar-width: thin;
    scrollbar-color: #0c59db #f8f9fa;
}

/* Tablet typography */
@media (min-width: 768px) {
    html {
        font-size: var(--font-size-base-tablet);
    }
}

/* Desktop typography */
@media (min-width: 992px) {
    html {
        font-size: var(--font-size-base-desktop);
    }
}

/* Global Horizontal Scroll Fix */
* {
    box-sizing: border-box;
}

/* Ensure no element overflows horizontally */
.row,
.container,
.container-fluid,
.wrapper {
    max-width: 100%;
    overflow-x: hidden;
}

/* Fix for any absolute/fixed positioned elements */
.mainmenu,
.footer {
    width: 100%;
    max-width: 100%;
    left: 0;
    right: 0;
}

/* Fix elements with negative margins or transforms */
.menu-overlay {
    left: 0;
    right: 0;
    width: 100%;
}

/* Fix for swiper and sliders */
.swiper-slide,
.xslide,
.xswiper-topbanner {
    max-width: 100%;
    overflow: hidden;
}

/* Fix all absolutely positioned elements to not overflow */
*[style*="position: absolute"],
*[style*="position: fixed"] {
    max-width: 100vw;
}

/* Fix for elements that might overflow */
.xslide-content,
.hero-content,
.hero-overlay {
    max-width: 100%;
    left: 0;
    right: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-sm);
}

h1 {
    font-size: 2.5rem;
    font-weight: 700;
}
h2 {
    font-size: 2rem;
    font-weight: 700;
}
h3 {
    font-size: 1.75rem;
    font-weight: 600;
}
h4 {
    font-size: 1.5rem;
    font-weight: 600;
}
h5 {
    font-size: 1.25rem;
    font-weight: 600;
}
h6 {
    font-size: 1rem;
    font-weight: 600;
}

p {
    margin-bottom: var(--spacing-sm);
    color: var(--text-light);
}

a {
    color: var(--primary-color);
    text-decoration: none;
    transition: var(--transition-normal);
}

a:hover {
    color: var(--gradient-1);
}

/* 3. Utility Classes
   =================================================== */

/* Gradient Text */
.text-gradient {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-2)
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Gradient Background */
.bg-gradient {
    background: linear-gradient(135deg, var(--gradient-1), var(--gradient-2));
}

.bg-gradient-primary {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
}

/* Buttons */
.btn-gradient {
    background: linear-gradient(135deg, var(--gradient-1), var(--gradient-2));
    border: none;
    color: var(--white);
    padding: 12px 30px;
    font-weight: 600;
    border-radius: var(--radius-full);
    transition: var(--transition-normal);
    display: inline-block;
    cursor: pointer;
}

.btn-gradient:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(12, 89, 219, 0.4);
    color: var(--white);
}

.btn-outline-gradient {
    background: transparent;
    border: 2px solid var(--white);
    color: var(--white);
    padding: 12px 30px;
    font-weight: 600;
    border-radius: var(--radius-full);
    transition: var(--transition-normal);
    display: inline-block;
    cursor: pointer;
}

.btn-outline-gradient:hover {
    background: var(--white);
    color: var(--primary-color);
}

/* Cards */
.card-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    border: 2px solid transparent;
    overflow: hidden;
}

.card-modern:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
    border-color: rgba(12, 89, 219, 0.2);
}

/* Section Spacing */
.section-modern {
    padding: var(--spacing-xl) 0;
}

/* Section Title */
.section-title-modern {
    text-align: center;
    margin-bottom: var(--spacing-xl);
}

.section-title-modern h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
    position: relative;
    display: inline-block;
}

.section-title-modern .title-line {
    width: 80px;
    height: 4px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    margin: var(--spacing-sm) auto 0;
    border-radius: 2px;
}

/* Badges */
.badge-gradient {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: 6px 15px;
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    font-weight: 500;
}

/* Icon Circle */
.icon-circle {
    width: 50px;
    height: 50px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.25rem;
    box-shadow: 0 5px 15px rgba(12, 89, 219, 0.3);
}

/* Image Overlay */
.image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.6));
    opacity: 0;
    transition: var(--transition-normal);
}

/* Social Icons */
.social-icon {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.125rem;
    transition: var(--transition-normal);
    text-decoration: none;
}

.social-icon.fb {
    background: #1877f2;
}

.social-icon.ig {
    background: linear-gradient(
        45deg,
        #f09433,
        #e6683c,
        #dc2743,
        #cc2366,
        #bc1888
    );
}

.social-icon.yt {
    background: #ff0000;
}

.social-icon.tt {
    background: #000000;
}

.social-icon:hover {
    transform: translateY(-5px) scale(1.1);
    box-shadow: var(--shadow-md);
}

/* 4. Breadcrumb
   =================================================== */
.breadcrumb-modern {
    background: transparent;
    padding: var(--spacing-md) 0;
    margin-bottom: var(--spacing-md);
}

.breadcrumb-modern .breadcrumb {
    background: transparent;
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
}

.breadcrumb-modern .breadcrumb-item {
    padding: 0 var(--spacing-sm);
}

.breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: var(--text-muted);
    font-size: 1.25rem;
    padding-right: var(--spacing-sm);
}

.breadcrumb-modern .breadcrumb-item a {
    color: var(--text-light);
    text-decoration: none;
    transition: var(--transition-normal);
}

.breadcrumb-modern .breadcrumb-item a:hover {
    color: var(--primary-color);
}

.breadcrumb-modern .breadcrumb-item.active {
    color: var(--primary-color);
    font-weight: 600;
}

/* 5. Filter Chips
   =================================================== */
.filter-chips-modern {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
}

.filter-chip {
    display: inline-block;
    padding: 10px 25px;
    background: var(--bg-light);
    border: 2px solid var(--bg-gray);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: var(--transition-normal);
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-dark);
    text-decoration: none;
}

.filter-chip:hover {
    background: var(--bg-gray);
    border-color: var(--text-muted);
    transform: translateY(-2px);
}

.filter-chip.active {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    border-color: transparent;
}

.filter-chip i {
    margin-right: var(--spacing-xs);
}

/* 6. Responsive Utilities
   =================================================== */
@media (max-width: 991px) {
    h1 {
        font-size: 2rem;
    }
    h2 {
        font-size: 1.75rem;
    }
    h3 {
        font-size: 1.5rem;
    }

    .section-title-modern h2 {
        font-size: 2rem;
    }

    .btn-gradient,
    .btn-outline-gradient {
        padding: 10px 20px;
        font-size: 0.9rem;
    }
}

@media (max-width: 767px) {
    h1 {
        font-size: 1.75rem;
    }
    h2 {
        font-size: 1.5rem;
    }
    h3 {
        font-size: 1.25rem;
    }

    .section-title-modern h2 {
        font-size: 1.75rem;
    }

    .section-modern {
        padding: var(--spacing-lg) 0;
    }
}

/* 7. Animations
   =================================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease;
}

.animate-on-scroll.animate-in {
    opacity: 1;
    transform: translateY(0);
}

/* 8. Helper Classes
   =================================================== */
.text-center {
    text-align: center;
}
.text-left {
    text-align: left;
}
.text-right {
    text-align: right;
}

.mt-1 {
    margin-top: var(--spacing-xs);
}
.mt-2 {
    margin-top: var(--spacing-sm);
}
.mt-3 {
    margin-top: var(--spacing-md);
}
.mt-4 {
    margin-top: var(--spacing-lg);
}
.mt-5 {
    margin-top: var(--spacing-xl);
}

.mb-1 {
    margin-bottom: var(--spacing-xs);
}
.mb-2 {
    margin-bottom: var(--spacing-sm);
}
.mb-3 {
    margin-bottom: var(--spacing-md);
}
.mb-4 {
    margin-bottom: var(--spacing-lg);
}
.mb-5 {
    margin-bottom: var(--spacing-xl);
}

/* ===================================================
   9. Header Styles
   =================================================== */
.mainmenu {
    background: var(--white);
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: 0;
    z-index: 1000;
    margin-bottom: 0 !important;
}

.mainmenu__row {
    margin-bottom: 0 !important;
}

/* Ensure no gap between header and banner */
.mainmenu + .xswiper-topbanner,
.mainmenu + * {
    margin-top: 0 !important;
}

.xswiper-topbanner {
    margin-top: 0 !important;
}

.mainmenu__logotitle-wrap {
    padding: 8px 0;
}

.mainmenu__logo img {
    height: 64px;
    transition: var(--transition-normal);
}

.mainmenu__logo img:hover {
    transform: scale(1.05);
}

.mainmenu__sitetitle-top {
    font-size: 0.75rem;
    color: var(--text-muted);
    letter-spacing: 0.5px;
}

.mainmenu__sitetitle-bottom {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-dark);
}

/* Navigation */
.mainmenu__nav {
    background: var(--white);
    border-top: 2px solid var(--primary-color);
    margin-bottom: 0 !important;
}

.menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}

.menu ul li {
    position: relative;
}

.menu ul li a {
    display: block;
    padding: 12px 20px;
    color: var(--text-dark);
    font-weight: 500;
    text-decoration: none;
    transition: var(--transition-normal);
    position: relative;
}

.menu ul li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    transition: var(--transition-normal);
    transform: translateX(-50%);
}

.menu ul li a:hover::after,
.menu ul li a.active::after {
    width: 80%;
}

.menu ul li a:hover,
.menu ul li a.active {
    color: var(--primary-color);
    background: rgba(12, 89, 219, 0.05);
}

/* Dropdown Menu */
.menu ul li.dropdown {
    position: relative;
}

.menu ul li.dropdown > a::before {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 5px;
    font-size: 0.75rem;
}

.menu ul li.dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 220px;
    box-shadow: var(--shadow-lg);
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: var(--transition-normal);
    list-style: none;
    padding: 10px 0;
    margin: 0;
    z-index: 1000;
}

.menu ul li.dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.menu ul li.dropdown .dropdown-menu li a {
    padding: 12px 20px;
    border-bottom: 1px solid var(--bg-light);
}

.menu ul li.dropdown .dropdown-menu li:last-child a {
    border-bottom: none;
}

/* Mobile Menu */
.burger {
    display: none;
    cursor: pointer;
}

.burger img {
    width: 30px;
    height: 30px;
}

@media (max-width: 991px) {
    /* Burger button - Increase touch target */
    .burger {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 50px;
        cursor: pointer;
        z-index: 1001;
    }

    .burger img {
        width: 35px;
        height: 35px;
    }

    /* Mobile menu container */
    .menu ul {
        position: fixed;
        top: 0;
        right: -100%;
        width: 300px;
        max-width: 85vw;
        height: 100vh;
        background: var(--white);
        flex-direction: column;
        transition: right 0.3s ease;
        box-shadow: var(--shadow-xl);
        padding: 80px var(--spacing-lg) var(--spacing-lg);
        overflow-y: auto;
        z-index: 1000;
    }

    .menu ul.active {
        right: 0;
    }

    /* Mobile menu items */
    .menu ul li {
        width: 100%;
        border-bottom: 1px solid var(--bg-light);
    }

    .menu ul li a {
        padding: 18px 25px;
        font-size: 1.1rem;
        display: flex;
        align-items: center;
        min-height: 54px; /* Touch-friendly height */
    }

    /* Overlay when menu is open */
    .menu-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 999;
    }

    .menu-overlay.active {
        display: block;
    }

    /* Header title adjustments */
    .mainmenu__sitetitle-top {
        font-size: 0.7rem;
    }

    .mainmenu__sitetitle-bottom {
        font-size: 1rem;
    }

    .mainmenu__logo img {
        height: 50px;
    }

    .menu ul li.dropdown .dropdown-menu {
        position: static;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        padding-left: 20px;
    }
}

/* ===================================================
   10. Hero Slider
   =================================================== */
.xswiper-topbanner {
    position: relative;
    overflow: hidden;
}

.swiper-slide .xslide {
    position: relative;
    height: 100%;
}

.swiper-slide .xslide-img {
    position: relative;
}

.swiper-slide .xslide-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Hero Overlay - will be added to HTML */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        135deg,
        rgba(12, 89, 219, 0.85) 0%,
        rgba(31, 162, 255, 0.75) 50%,
        rgba(199, 121, 208, 0.7) 100%
    );
    z-index: 1;
}

/* Hero Content - will be added to HTML */
.hero-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    color: var(--white);
    text-align: center;
    width: 90%;
    max-width: 800px;
}

.hero-content h1 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    animation: fadeInUp 0.8s ease;
}

.hero-content p {
    font-size: 1.25rem;
    margin-bottom: var(--spacing-lg);
    opacity: 0.95;
    animation: fadeInUp 1s ease;
}

.hero-buttons {
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    animation: fadeInUp 1.2s ease;
}

@media (max-width: 767px) {
    .hero-content h1 {
        font-size: 2rem;
    }

    .hero-content p {
        font-size: 1rem;
    }

    .hero-buttons {
        flex-direction: column;
    }

    .hero-buttons .btn {
        width: 100%;
    }
}

/* ===================================================
   Hero Banner - Responsive Heights
   =================================================== */
.hero-slide-modern {
    position: relative;
    min-height: 300px; /* Mobile minimum */
}

/* Mobile (<576px) */
@media (max-width: 575px) {
    .hero-slide-modern .d-only {
        display: none !important;
    }

    .hero-slide-modern .m-only {
        display: block !important;
        height: 250px !important;
    }

    .hero-content h1 {
        font-size: 1.75rem;
        line-height: 1.2;
        margin-bottom: var(--spacing-sm);
    }

    .hero-content p {
        font-size: 0.95rem;
        margin-bottom: var(--spacing-md);
    }

    .hero-buttons {
        flex-direction: column;
        width: 100%;
        padding: 0 var(--spacing-md);
    }

    .hero-buttons .btn {
        width: 100%;
        padding: 12px 20px;
        font-size: 0.95rem;
        margin-bottom: var(--spacing-sm);
    }

    .hero-buttons .btn:last-child {
        margin-bottom: 0;
    }
}

/* Tablet (576px - 991px) */
@media (min-width: 576px) and (max-width: 991px) {
    .hero-slide-modern .d-only {
        display: block !important;
        height: 350px !important;
    }

    .hero-slide-modern .m-only {
        display: none !important;
    }

    .hero-content h1 {
        font-size: 2.25rem;
    }

    .hero-content p {
        font-size: 1.1rem;
    }

    .hero-buttons {
        gap: var(--spacing-sm);
    }

    .hero-buttons .btn {
        padding: 12px 24px;
        font-size: 1rem;
        min-width: 160px;
    }
}

/* Desktop (≥992px) */
@media (min-width: 992px) {
    .hero-slide-modern .d-only {
        height: 450px !important;
    }

    .hero-content h1 {
        font-size: 3rem;
    }

    .hero-content p {
        font-size: 1.25rem;
    }

    .hero-buttons .btn {
        padding: 14px 32px;
        font-size: 1.05rem;
        min-width: 180px;
    }
}

/* ===================================================
   11. News Section - Home Page
   =================================================== */
.latestnews {
    padding: var(--spacing-xl) 0;
}

.news-card-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    height: 100%;
    border: 2px solid transparent;
}

.news-card-modern:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
    border-color: rgba(12, 89, 219, 0.2);
}

.news-image-wrapper {
    position: relative;
    height: 220px;
    overflow: hidden;
}

.news-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.news-card-modern:hover .news-image-wrapper img {
    transform: scale(1.1);
}

.news-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
}

.news-category-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: 6px 15px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
}

.news-date {
    position: absolute;
    bottom: 15px;
    left: 15px;
    color: var(--white);
    font-size: 0.875rem;
}

.news-content {
    padding: var(--spacing-md);
}

.news-content h3 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--spacing-sm);
    line-height: 1.4;
}

.news-content p {
    font-size: 0.875rem;
    color: var(--text-light);
    line-height: 1.6;
    margin-bottom: var(--spacing-sm);
}

.news-read-more {
    color: var(--primary-color);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: var(--transition-normal);
}

.news-read-more:hover {
    color: var(--gradient-2);
    gap: 10px;
}

/* ===================================================
   12. Services Section - Home Page
   =================================================== */
.section-services {
    padding: var(--spacing-xl) 0;
    background: var(--bg-light);
}

.service-card-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    height: 100%;
    border: 2px solid transparent;
    position: relative;
}

.service-card-modern::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(
        to right,
        var(--gradient-1),
        var(--gradient-2),
        var(--gradient-3)
    );
    transform: scaleX(0);
    transition: transform var(--transition-normal);
}

.service-card-modern:hover::before {
    transform: scaleX(1);
}

.service-card-modern:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
    border-color: rgba(12, 89, 219, 0.2);
}

.service-icon {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 50px;
    height: 50px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.25rem;
    z-index: 10;
    box-shadow: 0 5px 15px rgba(12, 89, 219, 0.3);
}

.service-image {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.service-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.service-card-modern:hover .service-image img {
    transform: scale(1.1);
}

.service-content {
    padding: var(--spacing-md);
}

.service-content h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: var(--spacing-sm);
    color: var(--text-dark);
}

.service-content p {
    font-size: 0.875rem;
    color: var(--text-light);
    line-height: 1.6;
    margin-bottom: var(--spacing-sm);
}

/* ===================================================
   13. Gallery Section - Home Page
   =================================================== */
.section-gallery {
    padding: var(--spacing-xl) 0;
}

.gallery-card-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    height: 100%;
}

.gallery-card-modern:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
}

.gallery-thumb-wrapper {
    position: relative;
    height: 280px;
    overflow: hidden;
    cursor: pointer;
}

.gallery-thumb-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.gallery-card-modern:hover .gallery-thumb-wrapper img {
    transform: scale(1.1);
}

.gallery-overlay-modern {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.8));
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    opacity: 0;
    transition: opacity var(--transition-normal);
    padding: var(--spacing-md);
}

.gallery-card-modern:hover .gallery-overlay-modern {
    opacity: 1;
}

.gallery-expand-btn {
    width: 60px;
    height: 60px;
    background: var(--white);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--primary-color);
    cursor: pointer;
    transition: var(--transition-normal);
    margin-bottom: var(--spacing-sm);
}

.gallery-expand-btn:hover {
    background: var(--primary-color);
    color: var(--white);
    transform: scale(1.1);
}

.gallery-overlay-modern h4 {
    color: var(--white);
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    text-align: center;
}

.gallery-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: 6px 15px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
}

.gallery-body {
    padding: var(--spacing-md);
}

.gallery-body h6 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: var(--spacing-xs);
}

/* ===================================================
   14. Profile Section - Home Page
   =================================================== */
.section-profile {
    padding: var(--spacing-xl) 0;
    background: var(--bg-light);
}

.profile-main-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
}

.profile-header {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--bg-light);
}

.profile-header h3 {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

.profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.profile-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-light);
    font-size: 0.875rem;
}

.profile-description h4,
.profile-structure h4 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
    position: relative;
    padding-bottom: var(--spacing-sm);
}

.profile-description h4::after,
.profile-structure h4::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    border-radius: 2px;
}

.profile-description p {
    color: var(--text-light);
    line-height: 1.8;
    font-size: 1rem;
}

.head-village-card-modern {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.card-header-gradient {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    padding: var(--spacing-md);
    color: var(--white);
}

.card-header-gradient h4 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
}

.head-photo-wrapper {
    padding: var(--spacing-lg);
    background: var(--bg-light);
}

.head-photo {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 50%;
    border: 8px solid var(--white);
    box-shadow: var(--shadow-lg);
}

.head-village-card-modern h5 {
    font-size: 1.25rem;
    font-weight: 600;
    margin: var(--spacing-md) 0 var(--spacing-xs);
    color: var(--text-dark);
}

.head-village-card-modern p {
    font-size: 0.875rem;
    color: var(--text-muted);
    font-style: italic;
    padding: 0 var(--spacing-md) var(--spacing-md);
}

/* Statistics Cards */
.stat-cards .stat-card {
    background: var(--white);
    border: none;
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
}

.stat-cards .stat-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
}

/* Quick Contact Card */
.quick-contact-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--spacing-lg);
}

.quick-contact-card h4 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
}

.contact-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 12px 0;
    border-bottom: 1px solid var(--bg-light);
}

.contact-item:last-child {
    border-bottom: none;
}

.contact-item i {
    width: 40px;
    height: 40px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    flex-shrink: 0;
}

.contact-item span {
    color: var(--text-light);
    font-size: 0.875rem;
    line-height: 1.5;
}

/* Social Media Card */
.social-media-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
}

.social-media-card h4 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
}

.social-icons-modern {
    display: flex;
    gap: var(--spacing-sm);
    justify-content: center;
    flex-wrap: wrap;
}

/* Map Section */
.map-section-modern {
    background: var(--white);
    padding: var(--spacing-md);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    margin-top: var(--spacing-lg);
}

.map-section-modern iframe {
    border-radius: var(--radius-md);
}

/* ===================================================
   15. Footer Styles
   =================================================== */
.footer {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    color: var(--white);
    position: relative;
    overflow: hidden;
}

.footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120" preserveAspectRatio="none"><path d="M0,0V46.29c47,20.64,94.32,38.81,142.72,53.4,50.68,15.26,102.07,25.74,153.9,32.08,51.15,6.25,102.86,6.75,154.14,1.13,50.91-5.59,101.42-18.78,151.21-36.24,50.17-17.84,100.11-40.38,149.48-67.33,49.29-26.91,98-57,145.37-92.5,47.69-35.43,94.41-73.66,139.82-114.91,45.85-41.66,90.45-86.18,133.34-133.59C1142.33,98.52,1169.5,61.5,1196.36,24.34V0Z" fill="rgba(255,255,255,0.03)"/></svg>');
    opacity: 0.5;
}

.footer__wrap {
    padding: var(--spacing-xl) 0 var(--spacing-md);
    position: relative;
    z-index: 1;
}

.footer__head {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.footer__body {
    margin-bottom: var(--spacing-md);
}

.footer__body h6 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--white);
    position: relative;
    padding-bottom: var(--spacing-sm);
}

.footer__body h6::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    border-radius: 1px;
}

.footer__body p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.8;
    margin-bottom: var(--spacing-xs);
}

.footer__body p i {
    margin-right: 8px;
}

.footer .sosmed ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.footer .sosmed ul li a {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    transition: var(--transition-normal);
}

.footer .sosmed ul li a:hover {
    background: var(--primary-color);
    transform: translateY(-3px);
}

.footer .linefoot {
    border-color: rgba(255, 255, 255, 0.1);
    margin: var(--spacing-lg) 0;
}

.footer__bottom {
    padding: var(--spacing-md) 0;
    background: rgba(0, 0, 0, 0.2);
    position: relative;
    z-index: 1;
}

.footer__bottomwrap {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    text-align: center;
}

.footer__bottomwrap a {
    color: var(--gradient-1);
    font-weight: 600;
}

.footer__bottomwrap a:hover {
    color: var(--gradient-2);
}

@media (max-width: 767px) {
    .footer__wrap {
        padding: var(--spacing-lg) 0 var(--spacing-md);
    }

    .footer__bottom {
        text-align: center;
    }

    .footer__bottomwrap {
        margin-bottom: var(--spacing-xs);
    }
}

/* ===================================================
   16. Sidebar Component
   =================================================== */
.sidebar {
    margin-bottom: var(--spacing-lg);
}

.sidebar-widget-modern {
    background: var(--bg-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.hlm-title {
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.hlm-title-blueborder {
    position: relative;
    display: inline-block;
}

.hlm-title-blueborder .strong {
    font-weight: 700;
    color: var(--primary-color);
    font-size: 2rem;
}

.hlm-title-blueborder span:not(.strong) {
    font-weight: 400;
    color: var(--text-light);
    font-size: 2rem;
}

.kepala-desa-card-modern {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    text-align: center;
    box-shadow: var(--shadow-md);
    border: 2px solid transparent;
    transition: var(--transition-normal);
}

.kepala-desa-card-modern:hover {
    border-color: var(--primary-color);
}

.kepala-desa-card-modern img {
    max-width: 150px;
    height: auto;
    border-radius: 50%;
    border: 5px solid var(--bg-light);
    box-shadow: var(--shadow-md);
    margin-bottom: var(--spacing-md);
}

.kepala-desa-card-modern .btn {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border: none;
    color: var(--white);
    padding: 10px 25px;
    border-radius: var(--radius-full);
    font-weight: 600;
    transition: var(--transition-normal);
}

.kepala-desa-card-modern .btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* ===================================================
   17. Pagination
   =================================================== */
.pagination-modern {
    display: flex;
    justify-content: center;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-lg);
}

.pagination-modern .page-item {
    margin: 0;
}

.pagination-modern .page-link {
    border: none;
    background: var(--white);
    color: var(--text-dark);
    padding: 10px 15px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
}

.pagination-modern .page-link:hover {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    transform: translateY(-2px);
}

.pagination-modern .page-item.active .page-link {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    border-color: transparent;
}

/* ===================================================
   18. Detail Pages Sidebar Widgets
   =================================================== */
.sidebar-widget-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--spacing-lg);
    overflow: hidden;
}

.sidebar-widget-modern .card-header {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: var(--spacing-md);
    border: none;
}

.sidebar-widget-modern .card-header h6 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.sidebar-widget-modern .card-body {
    padding: var(--spacing-md);
}

/* Service List Widget */
.service-list-modern ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.service-list-modern ul li {
    margin-bottom: var(--spacing-xs);
}

.service-list-modern ul li a {
    display: flex;
    align-items: center;
    padding: 12px 15px;
    color: var(--text-dark);
    text-decoration: none;
    border-bottom: 1px solid var(--bg-light);
    transition: var(--transition-normal);
    border-radius: var(--radius-sm);
}

.service-list-modern ul li a:hover {
    background: var(--bg-light);
    color: var(--primary-color);
    padding-left: 20px;
}

.service-list-modern ul li a i {
    margin-right: 10px;
    color: var(--primary-color);
}

/* Category List Widget */
.category-list-modern ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-list-modern ul li a {
    display: block;
    padding: 10px 15px;
    color: var(--text-dark);
    text-decoration: none;
    border-bottom: 1px solid var(--bg-light);
    transition: var(--transition-normal);
}

.category-list-modern ul li a:hover {
    background: var(--bg-light);
    color: var(--primary-color);
    padding-left: 20px;
}

.category-list-modern ul li a i {
    margin-right: 10px;
    color: var(--primary-color);
}

/* Latest News Card Widget */
.latest-news-card-modern {
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--bg-light);
}

.latest-news-card-modern:last-child {
    border-bottom: none;
}

.latest-news-card-modern a {
    text-decoration: none;
    color: var(--text-dark);
}

.latest-news-card-modern a:hover h6 {
    color: var(--primary-color);
}

.latest-news-card-modern h6 {
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: var(--spacing-xs);
    line-height: 1.4;
}

.latest-news-card-modern small {
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* Share Buttons Widget */
.share-buttons-modern {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.share-buttons-modern .btn {
    padding: 8px 20px;
    font-size: 0.875rem;
    border-radius: var(--radius-full);
    transition: var(--transition-normal);
}

.share-buttons-modern .btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

/* ===================================================
   19. Responsive Grid Adjustments
   =================================================== */
@media (max-width: 991px) {
    .news-card-modern,
    .service-card-modern,
    .gallery-card-modern {
        margin-bottom: var(--spacing-md);
    }
}

@media (max-width: 767px) {
    .section-title-modern h2 {
        font-size: 1.75rem;
    }

    .hero-content h1 {
        font-size: 2rem;
    }

    .profile-header h3 {
        font-size: 1.5rem;
    }

    .head-photo {
        width: 150px;
        height: 150px;
    }
}

/* ===================================================
   20. ADDITIONAL FIXES & IMPROVEMENTS
   =================================================== */

/* Header Spacer - Reduce gap between navbar and banner */
.header-spacer {
    height: 0 !important;
}

/* Fix breadcrumb styling */
.breadcrumb-modern {
    background: transparent !important;
    padding: 15px 0 !important;
    margin-bottom: 20px !important;
    border-radius: 0 !important;
}

.breadcrumb-modern .breadcrumb-item {
    font-size: 0.875rem;
}

.breadcrumb-modern .breadcrumb-item a {
    color: var(--primary-color) !important;
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition-normal);
}

.breadcrumb-modern .breadcrumb-item a:hover {
    color: var(--gradient-2) !important;
}

.breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: var(--text-muted);
    font-size: 1.2rem;
    margin: 0 10px;
}

.breadcrumb-modern .breadcrumb-item.active {
    color: var(--text-light) !important;
}

/* Fix filter chips styling */
.filter-chip-modern {
    display: inline-block;
    padding: 10px 20px;
    margin: 5px;
    background: var(--white);
    border: 2px solid var(--bg-gray);
    border-radius: 25px;
    cursor: pointer;
    transition: all var(--transition-normal);
    font-size: 14px;
    font-weight: 500;
    color: var(--text-dark);
    box-shadow: var(--shadow-sm);
}

.filter-chip-modern:hover {
    background: var(--bg-light);
    border-color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.filter-chip-modern.active {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    border-color: transparent;
}

.filter-chip-modern i {
    margin-right: 5px;
}

/* News & Gallery Card Image Spacing */
.news-card .card-body,
.gallery-card-page .card-body {
    padding-top: var(--spacing-md) !important;
}

/* News card image wrapper adjustment */
.news-image-wrapper {
    margin-bottom: 0;
}

.news-card .card-title,
.gallery-card-page .card-title {
    margin-top: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

/* Detail page improvements */
.detail-title-modern {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
    line-height: 1.3;
}

.news-meta-modern {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-md) 0;
    margin-bottom: var(--spacing-lg);
    border-bottom: 2px solid var(--bg-light);
    border-top: 2px solid var(--bg-light);
}

.news-meta-modern .meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-light);
    font-size: 0.875rem;
}

.news-meta-modern .meta-item i {
    color: var(--primary-color);
}

.detail-cover-image {
    width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.detail-content-card {
    background: var(--white);
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
    line-height: 1.8;
    font-size: 1rem;
    color: var(--text-dark);
    box-shadow: var(--shadow-sm);
}

/* Share buttons */
.share-section-modern h6 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
}

.share-buttons-modern {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.share-btn {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    text-decoration: none;
    transition: var(--transition-normal);
    font-size: 1rem;
}

.share-btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.share-btn-facebook {
    background: linear-gradient(135deg, #1877f2, #0d65d9);
}

.share-btn-twitter {
    background: linear-gradient(135deg, #1da1f2, #0c85d0);
}

.share-btn-whatsapp {
    background: linear-gradient(135deg, #25d366, #128c7e);
}

/* Service card improvements */
.service-card .service-icon {
    display: none !important;
}

.service-image-wrapper {
    position: relative;
    height: 200px;
    overflow: hidden;
    margin: 0;
}

.service-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.service-card:hover .service-image {
    transform: scale(1.1);
}

.service-title-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.service-title-link:hover h5 {
    color: var(--primary-color);
}

.service-description {
    color: var(--text-light);
    font-size: 0.875rem;
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
}

.service-btn {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border: none;
    color: var(--white);
    padding: 8px 20px;
    border-radius: var(--radius-full);
    font-weight: 600;
    transition: var(--transition-normal);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}

.service-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    color: var(--white);
}

/* Gallery card improvements */
.gallery-card-page .card-body {
    padding: var(--spacing-md);
}

.gallery-title {
    font-size: 1rem;
    font-weight: 600;
    margin: var(--spacing-sm) 0;
    color: var(--text-dark);
}

.gallery-description {
    color: var(--text-light);
    font-size: 0.875rem;
    line-height: 1.5;
}

.gallery-category-badge {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
}

/* Profile section improvements */
.profile-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
}

.profile-description-text {
    color: var(--text-light);
    line-height: 1.8;
    font-size: 1rem;
}

.profile-main-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-sm);
}

.head-village-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    text-align: center;
    box-shadow: var(--shadow-sm);
    border: 2px solid transparent;
    transition: var(--transition-normal);
}

.head-village-card:hover {
    border-color: rgba(12, 89, 219, 0.2);
}

.kepala-desa-photo {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 50%;
    border: 8px solid var(--bg-light);
    box-shadow: var(--shadow-lg);
    margin: 0 auto var(--spacing-md);
}

.kepala-desa-name {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-dark);
    margin: var(--spacing-sm) 0 var(--spacing-xs);
}

.kepala-desa-role {
    color: var(--text-muted);
    font-style: italic;
    margin-bottom: var(--spacing-md);
}

.stat-card-modern {
    background: var(--white);
    border: none;
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    text-align: center;
}

.stat-card-modern:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
}

.stat-card-modern h4 {
    font-size: 1.75rem;
    font-weight: 700;
    margin: var(--spacing-sm) 0;
    color: var(--text-dark);
}

.stat-card-modern small {
    color: var(--text-light);
    font-size: 0.875rem;
}

.stat-icon-area,
.stat-icon-population {
    width: 60px;
    height: 60px;
    margin: 0 auto var(--spacing-sm);
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.5rem;
}

.contact-card {
    background: var(--white);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    height: 100%;
    border-left: 4px solid transparent;
}

.contact-card:hover {
    border-left-color: var(--primary-color);
    box-shadow: var(--shadow-md);
}

.contact-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.25rem;
    margin: 0 auto var(--spacing-sm);
}

.contact-card h6 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-sm);
    text-align: center;
}

.contact-card p {
    color: var(--text-light);
    text-align: center;
    font-size: 0.875rem;
    margin: 0;
}

.social-media-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
}

.social-links-modern {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.social-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: var(--radius-full);
    color: var(--white);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.875rem;
    transition: var(--transition-normal);
    box-shadow: var(--shadow-sm);
}

.social-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    color: var(--white);
}

.social-btn-facebook {
    background: linear-gradient(135deg, #1877f2, #0d65d9);
}

.social-btn-instagram {
    background: linear-gradient(135deg, #e4405f, #c13584);
}

.social-btn-youtube {
    background: linear-gradient(135deg, #ff0000, #cc0000);
}

.social-btn-tiktok {
    background: linear-gradient(135deg, #000000, #25f4ee);
}

/* Hero banner improvements */
.hero-title {
    font-size: 3rem;
    font-weight: 800;
    color: var(--white) !important;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
    margin-bottom: var(--spacing-md);
}

.hero-description {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.95) !important;
    text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
    margin-bottom: var(--spacing-lg);
}

.hero-btn-outline {
    background: transparent !important;
    border: 2px solid var(--white) !important;
    color: var(--white) !important;
}

.hero-btn-outline:hover {
    background: var(--white) !important;
    color: var(--primary-color) !important;
}

/* Section spacing */
.section-modern {
    padding: var(--spacing-xl) 0;
}

.section-title-modern {
    margin-bottom: var(--spacing-lg);
}

/* Card general improvements */
.card-modern {
    background: var(--white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-normal);
    border: 2px solid transparent;
    overflow: hidden;
}

.card-modern:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-xl);
    border-color: rgba(12, 89, 219, 0.2);
}

/* News specific */
.news-title-link {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: color var(--transition-normal);
}

.news-title-link:hover {
    color: var(--primary-color);
}

.news-meta {
    color: var(--text-muted);
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 5px;
}

.news-excerpt {
    color: var(--text-light);
    font-size: 0.875rem;
    line-height: 1.6;
}

.news-read-more {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border: none;
    color: var(--white);
    padding: 8px 20px;
    border-radius: var(--radius-full);
    font-weight: 600;
    font-size: 0.875rem;
    transition: var(--transition-normal);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
}

.news-read-more:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    color: var(--white);
}

/* Sidebar widgets */
.widget-header-gradient {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    padding: var(--spacing-md);
    border: none;
}

.widget-header-gradient h6 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.service-list-item,
.category-list-item {
    display: flex;
    align-items: center;
    padding: 12px 15px;
    color: var(--text-dark);
    text-decoration: none;
    border-bottom: 1px solid var(--bg-light);
    transition: var(--transition-normal);
    border-radius: var(--radius-sm);
}

.service-list-item:hover,
.category-list-item:hover {
    background: var(--bg-light);
    color: var(--primary-color);
    padding-left: 20px;
}

.service-list-item.active,
.category-list-item.active {
    color: var(--primary-color);
    font-weight: 600;
    background: rgba(12, 89, 219, 0.05);
}

.service-list-item i,
.category-list-item i {
    margin-right: 10px;
    color: var(--primary-color);
}

.contact-widget-body {
    padding: var(--spacing-md);
}

.contact-widget-body .contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: 12px 0;
    border-bottom: 1px solid var(--bg-light);
}

.contact-widget-body .contact-item:last-child {
    border-bottom: none;
}

.contact-widget-body .contact-item i {
    width: 35px;
    height: 35px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    flex-shrink: 0;
    font-size: 0.875rem;
}

.contact-widget-body .contact-item strong {
    display: block;
    color: var(--text-dark);
    font-size: 0.875rem;
    margin-bottom: 4px;
}

.contact-widget-body .contact-item a {
    color: var(--primary-color);
    text-decoration: none;
    font-size: 0.875rem;
}

.contact-widget-body .contact-item a:hover {
    text-decoration: underline;
}

.contact-widget-body .contact-item span {
    color: var(--text-light);
    font-size: 0.875rem;
}

/* Footer improvements */
.footer-section {
    margin-bottom: var(--spacing-lg);
}

.footer-heading {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--white);
    position: relative;
    padding-bottom: var(--spacing-sm);
}

.footer-heading::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    border-radius: 1px;
}

.footer-heading i {
    margin-right: 10px;
}

.footer-address,
.footer-contact {
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.8;
    margin-bottom: var(--spacing-xs);
    font-size: 0.875rem;
}

.footer-social {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.footer .sosmed {
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer .sosmed ul {
    justify-content: center;
}

.footer-social-link {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    transition: var(--transition-normal);
}

.footer-social-link:hover {
    background: var(--primary-color);
    transform: translateY(-3px);
}

.footer-powered-link {
    color: var(--gradient-1);
    font-weight: 600;
    text-decoration: none;
}

.footer-powered-link:hover {
    color: var(--gradient-2);
}

/* Structure section */
.structure-section {
    margin-top: var(--spacing-xl);
}

.structure-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--text-dark);
    position: relative;
    padding-bottom: var(--spacing-sm);
}

.structure-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    border-radius: 2px;
}

.structure-image {
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

/* Kepala Desa photo wrapper */
.kepala-desa-photo-wrapper {
    padding: var(--spacing-lg);
    background: var(--bg-light);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    text-align: center;
}

.kepala-desa-photo-wrapper img {
    width: 180px;
    height: 180px;
    object-fit: cover;
    border-radius: 50%;
    border: 8px solid var(--white);
    box-shadow: var(--shadow-lg);
}

.kepala-desa-info {
    padding: var(--spacing-md);
}

.modal-trigger-btn {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    border: none;
    color: var(--white);
    padding: 10px 25px;
    border-radius: var(--radius-full);
    font-weight: 600;
    transition: var(--transition-normal);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.modal-trigger-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Responsive adjustments for new styles */
@media (max-width: 767px) {
    .hero-title {
        font-size: 2rem;
    }

    .hero-description {
        font-size: 1rem;
    }

    .detail-title-modern {
        font-size: 1.5rem;
    }

    .news-meta-modern {
        flex-direction: column;
        gap: var(--spacing-sm);
    }

    .profile-title {
        font-size: 1.5rem;
    }

    .kepala-desa-photo {
        width: 150px;
        height: 150px;
    }

    .section-modern {
        padding: var(--spacing-lg) 0;
    }
}

/* ========================================
   SECTION 21: FINAL FIXES - GREEN COLOR REMOVAL & ADDITIONAL IMPROVEMENTS
   ======================================== */

/* Fix: Remove ALL green colors - Replace with modern gradients */
.bg-success {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
}

.btn-success {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    border-color: transparent !important;
    color: var(--white) !important;
}

.btn-success:hover {
    background: linear-gradient(
        135deg,
        var(--gradient-3),
        var(--gradient-1)
    ) !important;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.text-success {
    color: var(--gradient-2) !important;
}

.alert-success {
    background: linear-gradient(
        135deg,
        rgba(31, 162, 255, 0.1),
        rgba(199, 121, 208, 0.1)
    ) !important;
    border-left: 4px solid var(--gradient-2) !important;
    color: var(--text-dark) !important;
}

.badge-success {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    color: var(--white) !important;
}

/* Fix: Profile page */
.profile-page-wrapper {
    padding: 40px 15px !important;
}

.profile-main-card {
    background: var(--bg-light) !important;
    padding: 40px !important;
    border-radius: var(--radius-lg) !important;
    line-height: 1.8;
    box-shadow: var(--shadow-sm);
}

.profile-section {
    padding: var(--spacing-lg) 0;
    border-bottom: 1px solid var(--border-color);
}

.profile-section:last-child {
    border-bottom: none;
}

.section-heading {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.section-heading i {
    width: 35px;
    height: 35px;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}

.profile-title {
    font-size: 2rem;
    font-weight: 700;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-2)
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: var(--spacing-lg);
}

.head-village-card-modern {
    background: var(--white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    text-align: center;
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
}

.head-village-card-modern::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    margin: -2px;
    border-radius: inherit;
    background: linear-gradient(
        135deg,
        var(--gradient-1),
        var(--gradient-2),
        var(--gradient-3)
    );
}

.stat-card-modern {
    border: none;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    transition: var(--transition-normal);
    overflow: hidden;
}

.stat-card-modern:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.stat-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--spacing-md);
    font-size: 1.5rem;
    color: var(--white);
}

.stat-icon-blue {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
}

.stat-icon-purple {
    background: linear-gradient(135deg, var(--gradient-2), var(--gradient-3));
}

.stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: var(--spacing-xs);
}

.stat-label {
    color: var(--text-light);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.contact-card-modern {
    background: var(--white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    height: 100%;
    transition: var(--transition-normal);
    border: 1px solid var(--border-color);
}

.contact-card-modern:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary-color);
}

.contact-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-md);
    font-size: 1.25rem;
    color: var(--white);
}

.contact-icon-blue {
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-1)
    );
}

.contact-icon-purple {
    background: linear-gradient(135deg, var(--gradient-2), var(--gradient-3));
}

.contact-icon-cyan {
    background: linear-gradient(135deg, var(--gradient-3), var(--gradient-1));
}

.contact-title {
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
}

.contact-text {
    color: var(--text-light);
    font-size: 0.95rem;
}

.contact-text strong {
    color: var(--text-dark);
    font-weight: 600;
}

.social-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
}

.social-links-modern {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.social-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 12px 24px;
    border-radius: var(--radius-full);
    font-weight: 600;
    transition: var(--transition-normal);
    color: var(--white);
    border: none;
    box-shadow: var(--shadow-sm);
}

.social-btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

.social-btn-facebook {
    background: linear-gradient(135deg, #1877f2, #0d65d9);
}

.social-btn-instagram {
    background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045);
}

.social-btn-youtube {
    background: linear-gradient(135deg, #ff0000, #cc0000);
}

.social-btn-tiktok {
    background: linear-gradient(135deg, #000000, #25f4ee);
}

.map-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.map-frame {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    border: 3px solid var(--border-color);
}

.map-frame iframe {
    display: block;
}

/* Fix: Header spacer - Reduce gap between banner and navbar */
.header-spacer {
    height: 0 !important;
    display: none !important;
}

/* Fix: Breadcrumb - More neat styling */
.breadcrumb-modern {
    background: transparent !important;
    padding: 20px 0 !important;
    margin-bottom: 25px !important;
    border-radius: 0 !important;
    border: none !important;
}

.breadcrumb-modern .breadcrumb-item {
    font-size: 0.9rem;
}

.breadcrumb-modern .breadcrumb-item a {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition-fast);
}

.breadcrumb-modern .breadcrumb-item a:hover {
    color: var(--gradient-2);
}

.breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: var(--text-muted);
    font-size: 1.3rem;
    margin: 0 8px;
    font-weight: 300;
}

.breadcrumb-modern .breadcrumb-item.active {
    color: var(--text-light);
    font-weight: 500;
}

/* Fix: News card - Reduce gap between image and title */
.news-card .card-img-top,
.news-card-modern .card-img-top {
    margin-bottom: 0 !important;
}

.news-card .card-body,
.news-card-modern .card-body {
    padding-top: var(--spacing-md) !important;
}

.news-card .card-title,
.news-card-modern .card-title {
    margin-top: var(--spacing-sm) !important;
    margin-bottom: var(--spacing-md) !important;
}

/* Fix: Gallery card - Reduce gap between image and title */
.gallery-card .card-img-top,
.gallery-card-modern .card-img-top {
    margin-bottom: 0 !important;
}

.gallery-card .card-body,
.gallery-card-modern .card-body {
    padding-top: var(--spacing-sm) !important;
}

.gallery-card .card-title,
.gallery-card-modern .card-title {
    margin-top: var(--spacing-xs) !important;
    margin-bottom: var(--spacing-sm) !important;
}

/* Fix: Service card */
.service-card .card-img-top,
.service-card-modern .card-img-top {
    margin-bottom: 0 !important;
}

.service-card .card-body,
.service-card-modern .card-body {
    padding-top: var(--spacing-md) !important;
}

/* Fix: Navbar active menu - Remove double color stacking */
.menu a.active {
    background: transparent !important;
    color: var(--primary-color) !important;
    position: relative;
}

.menu a.active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        to right,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 2px;
}

.menu a.active:focus,
.menu a.active:hover {
    background: transparent !important;
    outline: none !important;
}

/* Fix: Service detail page - Contact info alignment */
.contact-widget-body .contact-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border-color);
}

.contact-widget-body .contact-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.contact-widget-body .contact-item i {
    flex-shrink: 0;
    width: 20px;
    margin-right: var(--spacing-sm);
}

.contact-widget-body .contact-item strong {
    color: var(--text-dark);
    font-weight: 600;
    text-align: left;
    flex-shrink: 0;
}

.contact-widget-body .contact-item a,
.contact-widget-body .contact-item span:not(i) {
    text-align: right;
    color: var(--text-light);
    margin-left: auto;
}

.contact-widget-modern .contact-info-row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    align-items: center;
}

.contact-widget-modern .contact-label {
    font-weight: 600;
    color: var(--text-dark);
    text-align: left;
}

.contact-widget-modern .contact-value {
    text-align: right;
    color: var(--text-light);
}

.card-modern .card-img-top {
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.card-modern .card-body {
    padding: var(--spacing-lg);
}

/* Fix: Remove green borders */
*:focus:not(.btn):not(input):not(textarea):not(select) {
    outline-color: var(--primary-color) !important;
}

/* Fix: Hero banner text */
.hero-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 10;
    text-align: center;
    color: var(--white);
}

.hero-title {
    color: var(--white) !important;
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
}

.hero-description {
    color: rgba(255, 255, 255, 0.95) !important;
    font-size: 1.2rem;
    margin-bottom: var(--spacing-lg);
    text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
}

.hero-buttons {
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}

.hero-btn-outline {
    border-color: var(--white) !important;
    color: var(--white) !important;
}

.hero-btn-outline:hover {
    background: var(--white) !important;
    color: var(--primary-color) !important;
}

.mainmenu {
    margin: 0 !important;
    padding: 0 !important;
}

.table-success {
    background: linear-gradient(
        135deg,
        rgba(31, 162, 255, 0.1),
        rgba(199, 121, 208, 0.1)
    ) !important;
}

.progress-bar-success {
    background: linear-gradient(
        90deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
}

.sidebar-widget-modern .card-body {
    padding: var(--spacing-lg);
}

.contact-widget-body {
    padding: var(--spacing-md);
}

.contact-widget-body p {
    margin-bottom: var(--spacing-sm);
}

.contact-widget-body a {
    color: var(--primary-color);
    text-decoration: none;
    transition: var(--transition-fast);
}

.contact-widget-body a:hover {
    color: var(--gradient-2);
}

@media (max-width: 991px) {
    .profile-main-card {
        padding: var(--spacing-lg) !important;
    }

    .head-village-card-modern {
        padding: var(--spacing-lg) !important;
    }

    .contact-card-modern {
        padding: var(--spacing-md) !important;
    }

    .social-links-modern {
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .profile-page-wrapper {
        padding: var(--spacing-lg) 15px !important;
    }

    .profile-main-card {
        padding: var(--spacing-md) !important;
    }

    .hero-title {
        font-size: 1.75rem !important;
    }

    .hero-description {
        font-size: 1rem !important;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .hero-buttons .btn {
        width: 100%;
    }

    .contact-info-row {
        grid-template-columns: 1fr !important;
        gap: var(--spacing-xs) !important;
    }

    .contact-widget-modern .contact-label,
    .contact-widget-modern .contact-value {
        text-align: left !important;
    }
}
/* ========================================
   SECTION 22: ADDITIONAL FIXES - ROUND 2
   ======================================== */

/* 1. Fix: Remove ANY remaining green colors from entire site */
/* Target all Bootstrap success variants */
.bg-success,
.alert-success,
.badge-success,
.border-success,
.text-success {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    color: var(--white) !important;
    border-color: transparent !important;
}

.btn-success,
.btn-outline-success {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    border-color: transparent !important;
    color: var(--white) !important;
}

.btn-outline-success:hover {
    background: linear-gradient(
        135deg,
        var(--gradient-3),
        var(--gradient-1)
    ) !important;
    color: var(--white) !important;
}

/* Fix progress bars */
.progress-bar-success {
    background: linear-gradient(
        90deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
}

/* Fix dropdown items with success class */
.dropdown-item-success,
.page-item-success .page-link {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    color: var(--white) !important;
}

/* 2. Fix: Breadcrumb alignment - make all items vertically centered */
.breadcrumb-modern {
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
    padding: 20px 0 !important;
    margin-bottom: 25px !important;
    border-radius: 0 !important;
    border: none !important;
}

.breadcrumb-modern .breadcrumb-item {
    font-size: 0.9rem;
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

.breadcrumb-modern .breadcrumb-item a {
    color: var(--primary-color) !important;
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition-fast);
    display: inline-flex;
    align-items: center;
}

.breadcrumb-modern .breadcrumb-item a:hover {
    color: var(--gradient-2) !important;
}

.breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    color: var(--text-muted);
    font-size: 1.3rem;
    margin: 0 8px;
    font-weight: 300;
    display: inline-flex;
    align-items: center;
}

.breadcrumb-modern .breadcrumb-item.active {
    color: var(--text-light) !important;
    display: inline-flex;
    align-items: center;
}

/* 3. Fix: Reduce gap between image and title in news cards even more */
.news-card .card-body,
.news-card-modern .card-body {
    padding-top: var(--spacing-sm) !important;
}

.news-card .card-title,
.news-card-modern .card-title {
    margin-top: var(--spacing-xs) !important;
    margin-bottom: var(--spacing-xs) !important;
}

/* 4. Fix: Navbar active menu - remove double colors and fix offset */
.menu ul li a {
    position: relative;
    display: flex;
    align-items: center;
}

.menu ul li a.active {
    background: transparent !important;
    color: var(--primary-color) !important;
}

.menu ul li a.active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        to right,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 2px;
    transform: none !important;
    margin: 0 !important;
}

.menu ul li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(to right, var(--gradient-1), var(--gradient-2));
    transition: var(--transition-normal);
    transform: translateX(-50%);
}

.menu ul li a:hover::after {
    width: 80%;
}

/* Remove background from active state */
.menu ul li a.active,
.menu ul li a:hover {
    background: transparent !important;
}

/* 5. Fix: Reduce gap between social media buttons in service detail */
.sidebar-widget-modern .social-links-modern {
    gap: var(--spacing-xs) !important;
}

.sidebar-widget-modern .social-btn {
    padding: 8px 16px !important;
    font-size: 0.875rem !important;
}

.sidebar-widget-modern .social-btn i {
    font-size: 0.875rem !important;
}

/* 6. Fix: Gallery card spacing - same as service cards */
.gallery-card-page .card-body,
.gallery-card-modern .card-body {
    padding-top: var(--spacing-md) !important;
}

.gallery-card-page .card-title,
.gallery-card-modern .card-title {
    margin-top: var(--spacing-sm) !important;
    margin-bottom: var(--spacing-sm) !important;
}

/* 8. Profile section on home - match profile.blade.php styling */
.home-profile-main-card {
    background: var(--white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.home-profile-title {
    font-size: 2rem;
    font-weight: 700;
    background: linear-gradient(
        135deg,
        var(--primary-color),
        var(--gradient-2)
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: var(--spacing-lg);
}

/* Fix: Ensure all gallery images have proper spacing */
.gallery-thumb-page {
    margin: 0;
}

.gallery-thumb-page img {
    display: block;
    margin-bottom: 0;
}

.gallery-card-page .card-body {
    padding-top: var(--spacing-md) !important;
}

/* Fix: Service card consistency */
.service-card .card-body {
    padding-top: var(--spacing-md) !important;
}

.service-card .card-title {
    margin-top: var(--spacing-sm) !important;
    margin-bottom: var(--spacing-sm) !important;
}

/* Additional navbar fixes */
.menu ul li a {
    padding: 15px 20px;
}

.menu ul li a:focus {
    outline: none;
    background: transparent;
}

/* Fix header spacing issues */
.mainmenu .container-fluid,
.mainmenu .container {
    padding-top: 5px;
    padding-bottom: 5px;
}

/* Responsive adjustments */
@media (max-width: 767px) {
    .breadcrumb-modern .breadcrumb-item {
        font-size: 0.8rem;
    }

    .breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
        font-size: 1.1rem;
        margin: 0 5px;
    }

    .mainmenu__logotitle-wrap {
        gap: var(--spacing-sm);
    }

    .mainmenu__sitetitle-bottom {
        font-size: 1.1rem;
    }

    .mainmenu__logo img {
        height: 45px;
    }
}

/* ============================================
   SECTION 23: FINAL FIXES ROUND 3
   - Remove green colors from header
   - Fix navbar active menu double line
   - Fix gallery card spacing to match news/service
   ============================================ */

/* 1. Fix: Remove green color from header text and date */
.mainmenu__sitetitle {
    color: var(--primary-color) !important;
}

/* Fix calendar icon color */
.mainmenu__sitetitle .fa-calendar,
.fa-calendar {
    color: var(--gradient-2) !important;
}

/* Fix header background on mobile to use gradient instead of green */
@media screen and (max-width: 991px) {
    .mainmenu {
        background: linear-gradient(
            135deg,
            var(--primary-color),
            var(--gradient-1)
        ) !important;
    }

    .mainmenu__sitetitle {
        color: var(--white) !important;
    }
}

/* 2. Fix: Navbar active menu - remove red border line */
.menu ul li a.active {
    color: var(--primary-color) !important;
    border-bottom: none !important;
}

/* Remove the ::after pseudo-element from active state to prevent double lines */
.menu ul li a.active::after {
    content: none !important;
}

/* Add single gradient underline for active menu items */
.menu ul li a.active {
    position: relative;
}

.menu ul li a.active::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(
        to right,
        var(--primary-color),
        var(--gradient-1)
    );
    border-radius: 2px;
}

/* 3. Fix: Gallery card spacing - match news/service card spacing exactly */
.gallery-card-page .card-body,
.gallery-card-modern .card-body {
    padding-top: var(--spacing-sm) !important;
    padding-bottom: var(--spacing-sm) !important;
}

.gallery-card-page .card-title,
.gallery-card-modern .card-title {
    margin-top: 0 !important;
    margin-bottom: var(--spacing-xs) !important;
}

/* Fix gallery image wrapper to match news/service spacing */
.gallery-card-page .card-image-top,
.gallery-card-modern .card-image-top,
.gallery-card-page .gallery-image-wrapper,
.gallery-card-modern .gallery-image-wrapper {
    margin-bottom: var(--spacing-sm) !important;
}

/* 4. Fix: Section heading underlines (Berita Terbaru, etc.) */
.hlm-title-blueborder:before {
    background: linear-gradient(
        to right,
        var(--primary-color),
        var(--gradient-1)
    ) !important;
    height: 4px !important;
}

/* Ensure section title styling is modern */
.hlm-title.section-title-modern {
    border-bottom: none !important;
}

/* 5. Additional: Fix any remaining color issues in header */
.mainmenu a:hover {
    color: var(--gradient-1) !important;
}

/* Fix mobile header title color on smaller screens */
@media screen and (max-width: 767px) {
    .mainmenu__sitetitle {
        color: var(--white) !important;
    }
}

/* Ensure all header icons use modern colors */
.mainmenu .fa,
.mainmenu .fas,
.mainmenu .far,
.mainmenu .fab {
    color: var(--primary-color);
}

@media screen and (max-width: 991px) {
    .mainmenu .fa,
    .mainmenu .fas,
    .mainmenu .far,
    .mainmenu .fab {
        color: var(--white) !important;
    }
}

/* End of Section 23 */

/* ============================================
   SECTION 24: FINAL FIXES ROUND 4
   - Fix green CTA buttons in banner
   - Fix gallery card spacing (move title closer to image)
   - Fix CTA button proportions in banner
   ============================================ */

/* 1. Fix: CTA buttons in hero banner - remove green, use gradients */
/* Target all buttons in hero content */
.hero-content .btn,
.hero-buttons .btn,
.slide-buttons .btn,
.xslide-content .btn {
    background: linear-gradient(
        135deg,
        var(--gradient-1),
        var(--gradient-2)
    ) !important;
    border-color: transparent !important;
    color: var(--white) !important;
    padding: 12px 30px !important;
    border-radius: var(--radius-full) !important;
    font-weight: 600 !important;
    transition: all var(--transition-normal) !important;
    display: inline-block !important;
    text-decoration: none !important;
}

.hero-content .btn:hover,
.hero-buttons .btn:hover,
.slide-buttons .btn:hover,
.xslide-content .btn:hover {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    transform: translateY(-3px) !important;
    box-shadow: var(--shadow-lg) !important;
    color: var(--white) !important;
}

/* Outline button variant in banner */
.hero-content .btn-outline-light,
.hero-buttons .btn-outline-light,
.slide-buttons .btn-outline-light,
.xslide-content .btn-outline-light {
    background: transparent !important;
    border: 2px solid var(--white) !important;
    color: var(--white) !important;
}

.hero-content .btn-outline-light:hover,
.hero-buttons .btn-outline-light:hover,
.slide-buttons .btn-outline-light:hover,
.xslide-content .btn-outline-light:hover {
    background: var(--white) !important;
    color: var(--primary-color) !important;
    border-color: var(--white) !important;
}

/* 2. Fix: Gallery card spacing - move title MUCH closer to image */
.gallery-card-page .card-body,
.gallery-card-modern .card-body {
    padding-top: 0 !important;
    padding-bottom: var(--spacing-md) !important;
    padding-left: var(--spacing-md) !important;
    padding-right: var(--spacing-md) !important;
}

.gallery-card-page .card-title,
.gallery-card-modern .card-title {
    margin-top: 5px !important;
    margin-bottom: var(--spacing-xs) !important;
}

/* Fix gallery image wrapper - remove bottom margin */
.gallery-card-page .gallery-thumb-page,
.gallery-card-modern .gallery-thumb-page,
.gallery-card-page .card-img-top,
.gallery-card-modern .card-img-top {
    margin-bottom: 0 !important;
    display: block;
}

/* Fix badge positioning in gallery cards */
.gallery-card-page .gallery-category-badge,
.gallery-card-modern .gallery-category-badge {
    margin-top: var(--spacing-xs) !important;
    margin-bottom: var(--spacing-xs) !important;
}

/* Fix gallery description spacing */
.gallery-card-page .gallery-description,
.gallery-card-modern .gallery-description {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* 3. Fix: CTA button proportions in banner */
.hero-buttons,
.slide-buttons,
.xslide-content .hero-buttons {
    display: flex !important;
    gap: var(--spacing-md) !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

.hero-buttons .btn,
.slide-buttons .btn {
    min-width: 160px !important;
    max-width: 220px !important;
    padding: 12px 28px !important;
    font-size: 1rem !important;
    border-radius: var(--radius-full) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
}

/* Ensure proportional button sizes */
@media (min-width: 768px) {
    .hero-buttons .btn,
    .slide-buttons .btn {
        min-width: 180px !important;
        padding: 14px 32px !important;
        font-size: 1.05rem !important;
    }
}

/* Fix button alignment in mobile */
@media (max-width: 767px) {
    .hero-buttons,
    .slide-buttons {
        flex-direction: column !important;
        width: 100% !important;
    }

    .hero-buttons .btn,
    .slide-buttons .btn {
        width: 100% !important;
        max-width: none !important;
        min-width: auto !important;
    }
}

/* Ensure all slide content buttons are consistent */
.xslide-content .hero-buttons {
    margin-top: var(--spacing-lg) !important;
}

/* Fix any remaining button size inconsistencies */
.hero-content .btn,
.xslide-content .btn {
    line-height: 1.5 !important;
    height: auto !important;
}

/* End of Section 24 */

/* ============================================
   SECTION 25: FINAL FIXES ROUND 5
   - Fix green buttons in banner (more specific targets)
   - Fix gallery card spacing (ultra compact)
   - Fix icon-text spacing in CTA buttons
   ============================================ */

/* 1. Fix: More specific targeting for green buttons in banner */
/* Target swiper slide buttons specifically */
.swiper-slide .btn,
.swiper-slide .slide-buttons .btn,
.swiper-slide .xslide .btn,
.xslide .btn,
.xslide-buttons .btn,
.slide-buttons .btn {
    background: linear-gradient(
        135deg,
        var(--gradient-1),
        var(--gradient-2)
    ) !important;
    border-color: transparent !important;
    color: var(--white) !important;
}

/* Target any button in swiper/topbanner */
.xswiper-topbanner .btn,
.topbanner .btn {
    background: linear-gradient(
        135deg,
        var(--gradient-1),
        var(--gradient-2)
    ) !important;
    border-color: transparent !important;
    color: var(--white) !important;
}

/* Override any inline styles or other CSS for buttons in banner */
.swiper-slide .btn[href*="layanan"],
.swiper-slide .btn[href*="profil"],
.swiper-slide a.btn {
    background: linear-gradient(
        135deg,
        var(--gradient-1),
        var(--gradient-2)
    ) !important;
    border: none !important;
    color: var(--white) !important;
}

/* 2. Fix: Gallery card spacing - ULTRA compact mode */
.gallery-card-page .card-body,
.gallery-card-modern .card-body {
    padding-top: 0 !important;
    padding-bottom: var(--spacing-sm) !important;
    padding-left: var(--spacing-sm) !important;
    padding-right: var(--spacing-sm) !important;
}

.gallery-card-page .card-title,
.gallery-card-modern .card-title {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
}

/* Remove ALL margins from gallery badge */
.gallery-card-page .gallery-category-badge,
.gallery-card-modern .gallery-category-badge {
    margin-top: 0 !important;
    margin-bottom: 2px !important;
}

/* Remove margins from gallery description */
.gallery-card-page .gallery-description,
.gallery-card-modern .gallery-description {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Ensure card-img-top has no margin */
.gallery-card-page .card-img-top,
.gallery-card-modern .card-img-top,
.gallery-thumb-page img {
    margin-bottom: 0 !important;
    display: block;
}

/* 3. Fix: Icon and text spacing in CTA buttons */
.hero-buttons .btn i,
.slide-buttons .btn i,
.xslide-content .btn i {
    margin-left: 8px !important;
    margin-right: 0 !important;
}

.hero-buttons .btn,
.slide-buttons .btn,
.xslide-content .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

/* ============================================
   SECTION 26: FINAL FIXES ROUND 6
   - Fix swiper navigation button colors (remove green)
   - Fix gallery card spacing (move title closer to image)
   ============================================ */

/* 1. Fix: Swiper navigation buttons - remove green color */
.swiper-button-custom,
.swiper-button-next,
.swiper-button-prev,
.xswiper-topbanner .swiper-button-next,
.xswiper-topbanner .swiper-button-prev {
    background: linear-gradient(135deg, var(--gradient-1)) !important;
    color: var(--white) !important;
    border: none !important;
}

.swiper-button-custom::after,
.swiper-button-next::after,
.swiper-button-prev::after {
    color: var(--white) !important;
}

.swiper-button-custom:hover,
.swiper-button-next:hover,
.swiper-button-prev:hover {
    background: linear-gradient(
        135deg,
        var(--gradient-2),
        var(--gradient-3)
    ) !important;
    transform: scale(1.1) !important;
}

/* Ensure swiper buttons are visible */
.swiper-button-custom {
    opacity: 1 !important;
}

/* 2. Fix: Gallery card spacing - move title VERY CLOSE to image */
/* ================================================
   GALLERY CARD FIXES - Perbaikan Tampilan Card
   ================================================ */

/* Reset semua margin dan padding pada card */
.gallery-card-page,
.card-modern.gallery-card-page {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Perbaikan wrapper gambar - hapus semua spacing */
.gallery-thumb-page {
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0; /* Penting untuk menghapus whitespace */
    display: block;
}

/* Perbaikan gambar gallery */
.gallery-thumb-page img,
.gallery-card-page .card-img-top,
.gallery-card-modern .card-img-top {
    width: 100%;
    height: 250px; /* Tinggi tetap untuk konsistensi */
    object-fit: cover;
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    border: none;
    vertical-align: middle;
}

/* Perbaikan card body */
.gallery-card-page .card-body,
.card-modern.gallery-card-page .card-body {
    padding: 12px 15px !important;
    margin: 0 !important;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Perbaikan badge kategori */
.gallery-card-page .gallery-category-badge,
.card-modern .gallery-category-badge {
    display: inline-block;
    margin: 0 0 8px 0 !important;
    padding: 4px 10px;
    background: #007bff;
    color: white;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
}

/* Perbaikan title */
.gallery-card-page .card-title,
.gallery-card-page .gallery-title,
.card-modern .gallery-title {
    margin: 0 0 8px 0 !important;
    padding: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: #333;
}

/* Perbaikan description */
.gallery-card-page .gallery-description,
.card-modern .gallery-description {
    margin: 0 !important;
    padding: 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: #6c757d;
}

/* Perbaikan overlay */
.gallery-overlay-page {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* Responsive adjustments */
@media (max-width: 1200px) {
    .gallery-thumb-page img,
    .gallery-card-page .card-img-top {
        height: 220px;
    }
}

@media (max-width: 768px) {
    .gallery-thumb-page img,
    .gallery-card-page .card-img-top {
        height: 200px;
    }

    .gallery-card-page .card-body {
        padding: 10px 12px !important;
    }
}

@media (max-width: 576px) {
    .gallery-thumb-page img,
    .gallery-card-page .card-img-top {
        height: 180px;
    }
}

/* End of Section 26 */

/* ============================================
   SECTION 27: RESPONSIVE DESIGN ENHANCEMENTS
   - News Cards Responsive
   - Gallery Cards Responsive
   - Service Cards Responsive
   - Footer Responsive
   - Touch-Friendly Targets
   ============================================ */

/* News Cards - Responsive Improvements */
@media (max-width: 575px) {
    .news-item {
        margin-bottom: var(--spacing-md);
    }

    .news-card {
        box-shadow: var(--shadow-sm);
    }

    .news-image-wrapper {
        height: 180px;
    }

    .news-card .card-body {
        padding: var(--spacing-sm);
    }

    .news-card .card-title {
        font-size: 1rem;
        margin-bottom: var(--spacing-xs);
    }

    .news-card .news-excerpt {
        font-size: 0.875rem;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .news-read-more {
        font-size: 0.875rem;
        padding: 8px 16px;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .news-image-wrapper {
        height: 200px;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .news-image-wrapper {
        height: 220px;
    }
}

@media (min-width: 992px) {
    .news-image-wrapper {
        height: 250px;
    }
}

/* Gallery Cards - Responsive Improvements */
@media (max-width: 575px) {
    .gallery-item-page {
        margin-bottom: var(--spacing-md);
    }

    .gallery-thumb-page img,
    .gallery-card-page .card-img-top {
        height: 200px;
    }

    .gallery-card-page .card-body {
        padding: 10px 12px;
    }

    .gallery-card-page .gallery-title {
        font-size: 0.95rem;
    }

    .gallery-card-page .gallery-description {
        font-size: 0.8rem;
        -webkit-line-clamp: 2;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .gallery-thumb-page img {
        height: 220px;
    }
}

@media (min-width: 768px) {
    .gallery-thumb-page img {
        height: 250px;
    }
}

/* Lightbox responsive */
@media (max-width: 575px) {
    .lightbox-close {
        top: 10px;
        right: 10px;
        font-size: 32px;
    }

    .lightbox-prev,
    .lightbox-next {
        padding: 12px;
        font-size: 18px;
    }

    #lightboxImage,
    #homeLightboxImage {
        max-width: 95%;
        max-height: 75vh;
    }
}

/* Service Cards - Responsive */
@media (max-width: 575px) {
    .service-card .service-image {
        height: 160px;
    }

    .service-card .card-body {
        padding: var(--spacing-sm);
    }

    .service-card .card-title {
        font-size: 1rem;
    }

    .service-card .service-description {
        font-size: 0.875rem;
        -webkit-line-clamp: 3;
    }

    .service-btn {
        font-size: 0.875rem;
        padding: 8px 16px;
    }
}

@media (min-width: 576px) {
    .service-card .service-image {
        height: 180px;
    }
}

@media (min-width: 768px) {
    .service-card .service-image {
        height: 200px;
    }
}

/* Footer - Responsive */
.footer {
    padding: var(--spacing-mobile-lg) 0;
}

@media (max-width: 767px) {
    .footer__wrap {
        padding: var(--spacing-mobile-lg) 0 var(--spacing-mobile-md);
    }

    .footer__head {
        font-size: 1.25rem;
        margin-bottom: var(--spacing-mobile-md);
        text-align: center;
    }

    .footer-section {
        margin-bottom: var(--spacing-mobile-md);
        text-align: center;
    }

    .footer-heading {
        font-size: 1rem;
        margin-bottom: var(--spacing-mobile-sm);
        justify-content: center;
    }

    .footer-heading::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .footer-address,
    .footer-contact {
        font-size: 0.9rem;
        text-align: center;
    }

    .footer-social {
        justify-content: center;
    }

    .footer__bottom {
        text-align: center;
    }

    .footer__bottomwrap {
        font-size: 0.8rem;
        margin-bottom: var(--spacing-xs);
    }
}

@media (min-width: 768px) {
    .footer {
        padding: var(--spacing-xl) 0;
    }

    .footer__wrap {
        padding: var(--spacing-xl) 0 var(--spacing-md);
    }
}

/* Touch-Friendly Targets - Ensure 44x44px minimum */
@media (max-width: 991px) {
    /* Buttons */
    .btn,
    .news-read-more,
    .service-btn,
    .filter-chip-modern,
    .filter-chip {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Links in cards */
    .news-title-link,
    .service-title-link,
    .gallery-trigger {
        display: block;
        padding: 12px 0;
        min-height: 44px;
    }

    /* Navigation links */
    .menu ul li a {
        min-height: 54px;
    }

    /* Social links */
    .social-btn,
    .footer-social-link {
        min-width: 44px;
        min-height: 44px;
    }

    /* Pagination */
    .page-link {
        min-width: 44px;
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* Filter Chips - Responsive */
.filter-chips-modern,
.news-filter,
.gallery-filter {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    justify-content: center;
}

@media (max-width: 575px) {
    .filter-chip-modern,
    .filter-chip {
        padding: 8px 16px;
        font-size: 0.85rem;
        margin: 4px;
    }

    .filter-chip-modern i,
    .filter-chip i {
        font-size: 0.8rem;
        margin-right: 4px;
    }
}

@media (min-width: 576px) {
    .filter-chips-modern,
    .news-filter,
    .gallery-filter {
        justify-content: flex-start;
    }
}

/* Breadcrumb - Responsive */
.breadcrumb-modern {
    padding: var(--spacing-md) 0;
    margin-bottom: var(--spacing-md);
}

@media (max-width: 575px) {
    .breadcrumb-modern {
        padding: var(--spacing-sm) 0;
        font-size: 0.8rem;
    }

    .breadcrumb-modern .breadcrumb-item + .breadcrumb-item::before {
        font-size: 1rem;
        margin: 0 6px;
    }

    .breadcrumb-item {
        padding: 0 var(--spacing-xs);
    }
}

/* Profile Page - Responsive */
@media (max-width: 767px) {
    .profile-title {
        font-size: 1.75rem;
        text-align: center;
    }

    .profile-main-card {
        padding: var(--spacing-mobile-md);
    }

    .section-heading {
        font-size: 1.1rem;
        flex-wrap: wrap;
        justify-content: center;
    }

    .profile-section {
        padding: var(--spacing-mobile-sm) 0;
    }

    .structure-image {
        max-width: 100%;
        height: auto;
    }

    /* Head village card */
    .head-village-card-modern {
        padding: var(--spacing-mobile-md);
        margin-bottom: var(--spacing-mobile-md);
    }

    .kepala-desa-photo-wrapper img {
        width: 150px;
        height: 150px;
    }

    .kepala-desa-name {
        font-size: 1.1rem;
    }

    /* Statistics cards */
    .stat-card-modern {
        padding: var(--spacing-mobile-sm);
        margin-bottom: var(--spacing-mobile-sm);
    }

    .stat-icon {
        width: 50px;
        height: 50px;
        font-size: 1.25rem;
    }

    .stat-value {
        font-size: 1.5rem;
    }

    .stat-label {
        font-size: 0.75rem;
    }

    /* Contact cards */
    .contact-card-modern {
        padding: var(--spacing-mobile-sm);
        margin-bottom: var(--spacing-mobile-md);
    }

    .contact-icon {
        width: 45px;
        height: 45px;
        font-size: 1.1rem;
    }

    .contact-title {
        font-size: 0.95rem;
    }

    .contact-text {
        font-size: 0.85rem;
    }

    /* Social buttons */
    .social-links-modern {
        justify-content: center;
    }

    .social-btn {
        padding: 10px 18px;
        font-size: 0.85rem;
    }

    /* Map */
    .map-frame iframe {
        height: 250px;
    }
}

@media (min-width: 768px) {
    .profile-page-wrapper {
        padding: 40px 15px;
    }
}

/* Responsive Images */
img {
    max-width: 100%;
    height: auto;
}

/* Lazy loading placeholder */
img[loading="lazy"] {
    background: var(--bg-light);
    min-height: 200px;
}

/* Responsive image containers */
.news-image-wrapper img,
.service-image-wrapper img,
.gallery-thumb-page img,
.card-img-top {
    width: 100%;
    object-fit: cover;
}

/* Prevent horizontal scroll */
html,
body {
    overflow-x: hidden !important;
    width: 100%;
}

* {
    max-width: 100%;
    box-sizing: border-box;
}

/* Fix elements that might cause horizontal scroll */
img,
video,
iframe,
embed,
object {
    max-width: 100%;
    height: auto;
}

/* Ensure wrapper doesn't overflow */
.wrapper,
.container,
.container-fluid {
    max-width: 100%;
    overflow-x: hidden;
}

/* Fix for tables */
table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    display: block;
}

/* Fix for pre and code elements */
pre,
code {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Map responsive */
.map-frame iframe {
    width: 100%;
    height: 100%;
    min-height: 250px;
}

@media (min-width: 768px) {
    .map-frame iframe {
        min-height: 350px;
    }
}

/* Section Spacing - Mobile First */
.section-modern {
    padding: var(--spacing-mobile-lg) 0;
}

@media (min-width: 768px) {
    .section-modern {
        padding: var(--spacing-xl) 0;
    }
}

.section-title-modern {
    margin-bottom: var(--spacing-mobile-md);
}

@media (min-width: 768px) {
    .section-title-modern {
        margin-bottom: var(--spacing-xl);
    }
}

.hlm-title-blueborder .strong,
.hlm-title-blueborder span:not(.strong) {
    font-size: 1.5rem;
}

@media (min-width: 576px) {
    .hlm-title-blueborder .strong,
    .hlm-title-blueborder span:not(.strong) {
        font-size: 1.75rem;
    }
}

@media (min-width: 768px) {
    .hlm-title-blueborder .strong,
    .hlm-title-blueborder span:not(.strong) {
        font-size: 2rem;
    }
}

/* End of Section 27 - Responsive Design Enhancements */

/* ============================================
   SECTION 28: MOBILE & TABLET CRITICAL FIXES
   - Fix navbar usability on mobile/tablet
   - Remove gap between header and banner
   - Make banner text and CTA responsive
   - Fix logo overlap issue
   - Remove vertical scrollbar from header
   ============================================ */

/* 1. Fix: Remove vertical scrollbar from header - ALL screen sizes */
.mainmenu,
.mainmenu__row,
.mainmenu__logotitle-wrap,
.mainmenu__nav {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    max-height: none !important;
}

/* Ensure no overflow on mainmenu container */
.mainmenu {
    width: 100%;
    max-width: 100vw;
}

/* Fix any container inside mainmenu */
.mainmenu .container,
.mainmenu .container-fluid,
.mainmenu .row,
.mainmenu .wrapper {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
    max-height: none !important;
}

/* 2. Fix: Remove gap between header and banner - REMOVED */
/* These aggressive overrides were breaking the header design.
 Header spacing is now handled by mobile-fixes.css with 'initial' values.
 Only header-spacer needs to be hidden. */

/* 3. Fix: Banner text and CTA responsive for mobile and tablet */
@media (max-width: 991px) {
    /* Mobile & tablet banner adjustments */
    .hero-title {
        font-size: 1.4rem !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
        padding: 0 15px;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    .hero-description {
        font-size: 0.85rem !important;
        line-height: 1.4 !important;
        margin-bottom: 15px !important;
        padding: 0 15px;
        max-width: 100% !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    .hero-buttons {
        flex-direction: column !important;
        gap: 8px !important;
        padding: 0 15px;
    }

    .hero-buttons .btn {
        width: 100% !important;
        max-width: 220px !important;
        padding: 10px 16px !important;
        font-size: 0.85rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        white-space: nowrap !important;
    }

    .hero-buttons .btn i {
        font-size: 0.8rem !important;
    }
}

@media (max-width: 767px) {
    /* Small mobile banner adjustments */
    .hero-title {
        font-size: 1.2rem !important;
        margin-bottom: 10px !important;
        line-height: 1.2 !important;
    }

    .hero-description {
        font-size: 0.75rem !important;
        margin-bottom: 12px !important;
        line-height: 1.3 !important;
    }

    .hero-buttons .btn {
        font-size: 0.8rem !important;
        padding: 8px 14px !important;
        max-width: 200px !important;
    }

    .hero-buttons .btn i {
        font-size: 0.75rem !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    /* Tablet specific adjustments */
    .hero-title {
        font-size: 1.6rem !important;
        line-height: 1.3 !important;
    }

    .hero-description {
        font-size: 0.9rem !important;
        line-height: 1.4 !important;
    }

    .hero-buttons {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 8px !important;
    }

    .hero-buttons .btn {
        width: auto !important;
        min-width: 140px !important;
        max-width: none !important;
        font-size: 0.85rem !important;
        padding: 10px 18px !important;
    }
}

@media (max-width: 480px) {
    /* Extra small mobile - very compact */
    .hero-title {
        font-size: 1rem !important;
        margin-bottom: 8px !important;
    }

    .hero-description {
        font-size: 0.7rem !important;
        margin-bottom: 10px !important;
    }

    .hero-buttons .btn {
        font-size: 0.75rem !important;
        padding: 8px 12px !important;
        max-width: 180px !important;
    }
}

/* 4. Fix: Logo overlap issue on mobile and tablet */
@media (max-width: 991px) {
    /* Prevent logo from overlapping with title */
    .mainmenu__logotitle-wrap {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 10px !important;
    }

    .mainmenu__logo {
        flex: 0 0 auto !important;
        order: 1 !important;
        z-index: 1002 !important;
    }

    .mainmenu__logo img {
        height: 50px !important;
        max-width: none !important;
        width: auto !important;
    }

    .burger {
        order: 0 !important;
        margin-right: 10px !important;
    }

    .mainmenu__sitetitle {
        flex: 1 1 auto !important;
        order: 2 !important;
        min-width: 0 !important;
        padding-left: 10px !important;
    }

    .mainmenu__sitetitle-top,
    .mainmenu__sitetitle-bottom {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    /* Adjust date display */
    .mainmenu__sitetitle .d-only {
        display: none !important;
    }

    .mainmenu__sitetitle .m-only {
        display: block !important;
    }
}

@media (max-width: 767px) {
    /* Extra small mobile - more compact layout */
    .mainmenu__logotitle-wrap {
        gap: 5px !important;
        padding: 5px 8px !important;
    }

    .mainmenu__logo img {
        height: 40px !important;
    }

    .burger img {
        width: 28px !important;
        height: 28px !important;
    }

    .mainmenu__sitetitle-top {
        font-size: 0.65rem !important;
    }

    .mainmenu__sitetitle-bottom {
        font-size: 0.95rem !important;
    }

    .burger {
        width: 40px !important;
        height: 40px !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    /* Tablet - prevent logo overlap */
    .mainmenu__logotitle-wrap {
        flex-wrap: nowrap !important;
    }

    .mainmenu__logo img {
        height: 55px !important;
    }

    .mainmenu__sitetitle-top {
        font-size: 0.75rem !important;
    }

    .mainmenu__sitetitle-bottom {
        font-size: 1.15rem !important;
    }
}

/* 5. Fix: Navbar usability on mobile and tablet */
@media (max-width: 991px) {
    /* Ensure menu is fully accessible */
    .menu ul {
        top: 0 !important;
        right: -100% !important;
        width: 280px !important;
        max-width: 85vw !important;
        height: 100vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: #ffffff !important;
        box-shadow: -2px 0 10px rgba(0, 0, 0, 0.2) !important;
        transition: right 0.3s ease !important;
        z-index: 1000 !important;
    }

    .menu ul.active {
        right: 0 !important;
    }

    /* Ensure menu items are fully clickable */
    .menu ul li {
        width: 100% !important;
        border-bottom: 1px solid #f0f0f0 !important;
    }

    .menu ul li a {
        display: flex !important;
        align-items: center !important;
        padding: 18px 25px !important;
        font-size: 1.05rem !important;
        min-height: 54px !important;
        width: 100% !important;
        color: #333 !important;
        text-decoration: none !important;
        cursor: pointer !important;
    }

    .menu ul li a:hover,
    .menu ul li a.active {
        background: rgba(12, 89, 219, 0.08) !important;
        color: #0c59db !important;
    }

    /* Remove pseudo-elements on mobile for cleaner look */
    .menu ul li a::after,
    .menu ul li a::before {
        display: none !important;
    }

    /* Overlay styling */
    .menu-overlay {
        display: none !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: rgba(0, 0, 0, 0.5) !important;
        z-index: 999 !important;
        cursor: pointer !important;
    }

    .menu-overlay.active {
        display: block !important;
    }

    /* Burger button improvements */
    .burger {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 50px !important;
        height: 50px !important;
        cursor: pointer !important;
        z-index: 1001 !important;
        background: rgba(12, 89, 219, 0.1) !important;
        border-radius: 8px !important;
        transition: background 0.2s ease !important;
    }

    .burger:hover,
    .burger:active {
        background: rgba(12, 89, 219, 0.2) !important;
    }

    .burger img {
        width: 32px !important;
        height: 32px !important;
    }
}

@media (max-width: 767px) {
    /* Extra small mobile - menu adjustments */
    .menu ul {
        width: 260px !important;
        max-width: 80vw !important;
    }

    .menu ul li a {
        padding: 16px 20px !important;
        font-size: 1rem !important;
        min-height: 50px !important;
    }

    .burger {
        width: 44px !important;
        height: 44px !important;
    }

    .burger img {
        width: 28px !important;
        height: 28px !important;
    }
}

/* 6. Additional fixes: Prevent body scroll when menu is open */
body.menu-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
}

/* Ensure banner images are properly sized */
@media (max-width: 991px) {
    .xslide-img.hero-slide-modern {
        position: relative !important;
        height: auto !important;
        min-height: 250px !important;
    }

    .xslide-img.hero-slide-modern img.d-only {
        display: none !important;
    }

    .xslide-img.hero-slide-modern img.m-only {
        display: block !important;
        height: 250px !important;
        width: 100% !important;
        object-fit: cover !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    /* Tablet banner image height */
    .xslide-img.hero-slide-modern {
        min-height: 300px !important;
    }

    .xslide-img.hero-slide-modern img.m-only {
        height: 300px !important;
    }
}

/* 7. Fix: Hero content positioning on mobile */
@media (max-width: 991px) {
    .hero-content {
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: 95% !important;
        max-width: 100% !important;
        padding: 0 !important;
        z-index: 10 !important;
    }

    .hero-content .container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }
}

/* 8. Fix: Navigation bar spacing */
.mainmenu__nav {
    border-top: 2px solid var(--primary-color) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

@media (max-width: 991px) {
    .mainmenu__nav {
        position: static !important;
        margin-top: 0 !important;
        border-top: none !important;
    }
}

/* ============================================
   SECTION 29: NEWS CARD HEIGHT EQUALIZATION
   - Make all news cards same height
   - Fix body to full width
   - Hide overflow Y on banner
   ============================================ */

/* 0. Banner Overflow Fix */
.hero-content .container {
    overflow-y: hidden !important;
    overflow-x: hidden !important;
}

/* 1. News Card Equal Height Fix */
.news-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.news-card .card-modern {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.news-card .news-image-wrapper {
    flex-shrink: 0 !important;
    height: 220px !important;
    overflow: hidden !important;
}

.news-card .card-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    height: 100% !important;
}

.news-card .card-title {
    flex-shrink: 0 !important;
}

.news-card .news-excerpt {
    flex: 1 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
}

.news-card .news-read-more {
    flex-shrink: 0 !important;
    margin-top: auto !important;
}

/* Ensure consistent card height across all breakpoints */
@media (min-width: 576px) {
    .news-card {
        min-height: 480px !important;
    }
}

@media (min-width: 768px) {
    .news-card {
        min-height: 500px !important;
    }
}

@media (min-width: 992px) {
    .news-card {
        min-height: 520px !important;
    }
}

/* 2. Full Width for Specific Elements Only */
/* Body base - prevent horizontal overflow */
body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Header & Navigation Full Width */
.mainmenu,
.mainmenu__row,
.mainmenu__nav {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
}

/* Banner Full Width */
.xswiper-topbanner,
.xswiper,
.xswiper-outer,
.swiper-containerx {
    width: 100% !important;
    max-width: 100% !important;
}

/* Maps Full Width */
.map-section,
.map-container,
iframe[src*="maps"],
iframe[src*="google"] {
    width: 100% !important;
    max-width: 100% !important;
}

/* Footer Full Width */
.footer,
.footer-top,
.footer-bottom,
.footer-section {
    width: 100% !important;
    max-width: 100% !important;
}

/* Content body should use container - NOT full width */
.wrapper .container {
    max-width: 1140px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Specific override for news page content */
.wrapper {
    max-width: 100% !important;
}

.wrapper > .container {
    max-width: 1140px !important;
}

/* 3. Header Full Width with Gradient Background */
.mainmenu {
    background: linear-gradient(
        135deg,
        #0c59db 0%,
        #1fa2ff 50%,
        #c779d0 100%
    ) !important;
    padding: 10px 0 !important;
}

/* Make header text white */
.mainmenu__sitetitle-top,
.mainmenu__sitetitle-bottom,
.mainmenu__sitetitle-top span,
.mainmenu__sitetitle-bottom span {
    color: #ffffff !important;
}

.mainmenu__sitetitle .fa-calendar {
    color: #ffffff !important;
}

/* Make date text white - both desktop and mobile */
.mainmenu__sitetitle .font-size-11,
.mainmenu__sitetitle .font-size-8 {
    color: #ffffff !important;
}

/* Navigation bar full width */
.mainmenu__nav {
    width: 100% !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-top: 2px solid rgba(255, 255, 255, 0.3) !important;
}

.mainmenu__nav .menu ul li a {
    color: var(--text-dark) !important;
}

.mainmenu__nav .menu ul li a:hover,
.mainmenu__nav .menu ul li a.active {
    color: var(--primary-color) !important;
    background: rgba(12, 89, 219, 0.1) !important;
}

/* Mobile header adjustments */
@media (max-width: 991px) {
    .mainmenu {
        background: linear-gradient(
            135deg,
            #0c59db 0%,
            #1fa2ff 50%,
            #c779d0 100%
        ) !important;
    }

    .mainmenu__sitetitle-top,
    .mainmenu__sitetitle-bottom {
        color: #ffffff !important;
    }

    .burger img {
        filter: brightness(0) invert(1) !important;
    }
}

/* Desktop header adjustments */
@media (min-width: 992px) {
    /* Keep original logo color - no filter applied */
}

/* 4. Map Section Above Footer */
.map-section-above-footer {
    width: 100% !important;
    max-width: 100% !important;
    background: var(--bg-light);
    padding: 40px 0;
    margin-top: var(--spacing-xl);
    border-top: 3px solid var(--primary-color);
}

.map-section-above-footer .container {
    max-width: 1140px !important;
    margin: 0 auto !important;
}

.map-section-above-footer .map-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--spacing-md);
}

.map-section-above-footer .map-frame {
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 2px solid var(--bg-gray);
}

.map-section-above-footer iframe {
    display: block;
    width: 100% !important;
}

/* Responsive map section */
@media (max-width: 767px) {
    .map-section-above-footer {
        padding: 30px 0;
    }

    .map-section-above-footer .map-title {
        font-size: 1.1rem;
    }

    .map-section-above-footer iframe {
        height: 250px !important;
    }
}

/* 5. Global Map Section - Outside Footer, Full Width with 0 Gap */
.global-map-section {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.global-map-section .global-map-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.global-map-section iframe {
    display: block;
    width: 100% !important;
    border: none;
    margin: 0 !important;
    padding: 0 !important;
    height: 400px !important;
}

/* Responsive global map */
@media (max-width: 767px) {
    .global-map-section iframe {
        height: 250px !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .global-map-section iframe {
        height: 350px !important;
    }
}

/* End of Section 29 */
