:root {
    --ocean-950: #6f0d12;
    --ocean-900: #8f1117;
    --ocean-800: #b31217;
    --ocean-700: #c91b1f;
    --ocean-600: #de2a2f;
    --ocean-500: #f2c230;

    --ocean-100: #fff1bf;
    --ocean-050: #fff8e1;

    --gold-700: #c99500;
    --gold-600: #d9a400;
    --gold-500: #f2c230;
    --gold-200: #fde68a;
    --gold-100: #fff4c7;
    --gold-050: #fffaf0;

    --text-main: #2a1617;
    --text-soft: #6b4a4a;
    --border-soft: #f0d7c2;
    --surface: #ffffff;
    --shadow-soft: 0 18px 40px rgba(127, 17, 21, 0.12);
    --radius-xl: 24px;
}

body.site-body {
    background: linear-gradient(180deg, #fffaf2 0%, #fff3ea 100%);
    color: var(--text-main);
    font-family: Arial, Helvetica, sans-serif;
}

.topbar {
    background: linear-gradient(90deg, #7f1115, #b31217);
}

.main-navbar {
    background: rgba(111, 13, 18, 0.96);
    backdrop-filter: blur(8px);
}

.main-navbar .nav-link {
    color: rgba(255, 255, 255, 0.80);
}

.main-navbar .nav-link:hover,
.main-navbar .nav-link.active {
    color: #ffffff;
}

/* =========================
   HEADER BRAND - TANPA LOGO
   ========================= */
.site-brand.site-brand-textonly {
    display: flex;
    align-items: center;
    text-decoration: none;
    padding: 0;
    gap: 0;
}

.brand-text-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.brand-title {
    color: #ffffff;
    font-weight: 800;
    font-size: 1.3rem;
    line-height: 1.1;
    margin: 0;
    letter-spacing: 0.01em;
}

.brand-subtitle {
    color: rgba(255, 255, 255, 0.88);
    font-size: 1rem;
    margin-top: 0.3rem;
    line-height: 1.2;
}

/* Responsive */
@media (max-width: 991.98px) {
    .brand-title {
        font-size: 1.45rem;
    }

    .brand-subtitle {
        font-size: 0.92rem;
    }
}

@media (max-width: 575.98px) {
    .brand-title {
        font-size: 1.15rem;
    }

    .brand-subtitle {
        font-size: 0.82rem;
    }
}

/* ============================================================================
TABLET
============================================================================ */

@media (max-width: 1199.98px) {
    .portal-brand {
        gap: 12px;
        margin-right: 14px;
    }

    .madani-logo-wrap {
        width: 96px;
        height: 52px;
    }

    .kpt-logo-wrap {
        width: 48px;
        height: 52px;
    }

    .brand-title {
        font-size: 0.94rem;
    }

    .brand-subtitle {
        font-size: 0.8rem;
    }
}


/* ============================================================================
MOBILE
============================================================================ */

@media (max-width: 767.98px) {
    .portal-brand {
        gap: 10px;
        max-width: calc(100% - 60px);
    }

    .official-brand-logos {
        gap: 5px;
    }

    .madani-logo-wrap {
        width: 78px;
        height: 46px;
        padding: 3px 4px;
        border-radius: 10px;
    }

    .kpt-logo-wrap {
        width: 42px;
        height: 46px;
        padding: 4px;
        border-radius: 10px;
    }

    .brand-title {
        max-width: 190px;
        white-space: normal;
        font-size: 0.78rem;
        line-height: 1.2;
    }

    .brand-subtitle {
        display: none;
    }
}


/* ============================================================================
PHONE KECIL
============================================================================ */

@media (max-width: 480px) {
    .kpt-logo-wrap {
        display: none;
    }

    .madani-logo-wrap {
        width: 74px;
    }

    .brand-title {
        max-width: 175px;
        font-size: 0.75rem;
    }
}

/* ============================================================================
HERO VIDEO BACKGROUND
============================================================================ */

.hero-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 620px;
    display: flex;
    align-items: center;
    color: #ffffff;
    background: #7f1115;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    z-index: -3;

    background:
        linear-gradient(
            90deg,
            rgba(12, 12, 12, 0.28) 0%,
            rgba(12, 12, 12, 0.20) 28%,
            rgba(12, 12, 12, 0.11) 52%,
            rgba(12, 12, 12, 0.04) 75%,
            rgba(12, 12, 12, 0.00) 100%
        );

    pointer-events: none;
}


.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -3;

    background:
        linear-gradient(
            90deg,
            rgba(83, 6, 10, 0.68) 0%,
            rgba(111, 13, 18, 0.57) 28%,
            rgba(143, 17, 23, 0.40) 52%,
            rgba(179, 18, 23, 0.22) 75%,
            rgba(179, 18, 23, 0.08) 100%
        );

    pointer-events: none;
}

.hero-gold-glow {
    position: absolute;
    inset: 0;

    z-index: -2;

    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(255, 255, 255, 0.08),
            transparent 34%
        );

    pointer-events: none;
}


.hero-content {
    position: relative;

    z-index: 2;

    padding-top: 5.5rem;
    padding-bottom: 5.5rem;
}

.hero-section h1 {
    max-width: 860px;

    margin-bottom: 1.4rem;

    color: #ffffff;

    font-size: clamp(
        2.5rem,
        5vw,
        4.6rem
    );

    font-weight: 700;
    line-height: 1.04;

    text-shadow:
        0 3px 18px
        rgba(0, 0, 0, 0.25);
}

.hero-description {
    max-width: 760px;

    color:
        rgba(
            255,
            255,
            255,
            0.96
        );

    font-size: 1.08rem;
    line-height: 1.7;

    text-shadow:
        0 2px 8px
        rgba(0, 0, 0, 0.25);
}

.hero-badge {
    display: inline-block;

    margin-bottom: 1.2rem;

    padding: 0.55rem 1rem;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.30
        );

    border-radius: 999px;

    background:
        rgba(
            0,
            0,
            0,
            0.16
        );

    color: #ffffff;

    font-size: 0.9rem;
    font-weight: 700;

    backdrop-filter:
        blur(8px);

    box-shadow:
        0 8px 20px
        rgba(0, 0, 0, 0.08);
}

.hero-actions .btn {
    min-width: 170px;

    font-weight: 600;
}


.hero-actions .btn-light {
    background: #ffffff;
    border-color: #ffffff;

    color: #6f0d12;
}


.hero-actions .btn-light:hover,
.hero-actions .btn-light:focus {
    background: #fff4c7;
    border-color: #fff4c7;

    color: #6f0d12;
}


.hero-actions .btn-outline-light {
    border-color:
        rgba(
            255,
            255,
            255,
            0.85
        );

    color: #ffffff;

    background:
        rgba(
            0,
            0,
            0,
            0.05
        );
}


.hero-actions .btn-outline-light:hover,
.hero-actions .btn-outline-light:focus {
    background: #ffffff !important;
    border-color: #ffffff !important;

    color: #6f0d12 !important;
}

.hero-location {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    padding: 9px 14px;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.22
        );

    border-radius: 999px;

    background:
        rgba(
            0,
            0,
            0,
            0.17
        );

    color:
        rgba(
            255,
            255,
            255,
            0.94
        );

    font-size: 0.9rem;

    backdrop-filter:
        blur(7px);
}


.hero-location-icon {
    color: #f2c230;

    font-size: 0.75rem;
}


.glass-card {
    background:
        rgba(
            255,
            255,
            255,
            0.12
        );

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.18
        );

    border-radius:
        var(--radius-xl);

    backdrop-filter:
        blur(10px);

    box-shadow:
        0 18px 40px
        rgba(0, 0, 0, 0.12);
}

/* ============================================================================
GENERAL SECTIONS
============================================================================ */

.section-title {
    margin-bottom: 1rem;
    color: var(--ocean-950);
    font-weight: 800;
}

.section-text {
    color: var(--text-soft);
    max-width: 760px;
}

.soft-card {
    background: var(--surface);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
}

.soft-card .card-body {
    padding: 1.5rem;
}

.icon-circle {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg, #fff4c7, #fde68a);
    color: var(--ocean-800);
    font-size: 1.4rem;
    margin-bottom: 1rem;
}

.stats-card {
    background: linear-gradient(180deg, #ffffff, #fff9f1);
    border: 1px solid var(--border-soft);
    border-radius: 22px;
    padding: 1.4rem;
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.stats-card .display-6 {
    color: var(--ocean-800);
    font-weight: 800;
}

.badge-soft {
    background: var(--gold-100);
    color: var(--ocean-800);
    border: 1px solid #f2d57a;
}

.section-block {
    padding: 4.5rem 0;
}

.section-alt {
    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.88),
            rgba(255, 244, 232, 0.92)
        );
}

.page-hero {
    background: linear-gradient(135deg, #fff8df, #fff1d3);
    border-bottom: 1px solid var(--border-soft);
    padding: 4rem 0 3rem;
}

.page-hero h1 {
    color: var(--ocean-950);
    font-weight: 800;
}

.page-hero p {
    color: var(--text-soft);
    max-width: 760px;
}

.list-clean {
    padding-left: 1rem;
    margin-bottom: 0;
}

.list-clean li {
    margin-bottom: 0.45rem;
    color: var(--text-soft);
}

.site-footer {
    background: linear-gradient(135deg, #6f0d12, #8f1117);
}

.footer-text,
.footer-links li,
.footer-links a {
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
}

.footer-links a:hover {
    color: #ffffff;
}

.cta-strip {
    background: linear-gradient(135deg, #fff7de, #fffdf6);
    border: 1px solid #f3db9a;
    border-radius: 24px;
    box-shadow: var(--shadow-soft);
}

.empty-state {
    border: 1px dashed #e4bf77;
    border-radius: 20px;
    background: #fffaf0;
    color: var(--text-soft);
}

/* ============================================================================
CARD MEDIA
============================================================================ */

.card-media {
    height: 220px;
    background: linear-gradient(135deg, #fff4d4, #fffaf1);
    border-bottom: 1px solid var(--border-soft);
}

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

.card-media-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--ocean-800);
    font-weight: 700;
    letter-spacing: 0.03em;
}

/* ============================================================================
ADMIN GALLERY SHARED
============================================================================ */

.admin-gallery-image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    border-radius: 16px;
}

.admin-gallery-card {
    border: 1px solid #f0d7c2;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(127, 17, 21, 0.08);
}

/* ============================================================================
DETAIL GALLERY
============================================================================ */

.detail-hero-card {
    border: 1px solid var(--border-soft);
    border-radius: 24px !important;
    background: #ffffff !important;
    box-shadow: var(--shadow-soft);
    overflow: hidden !important;
}

.detail-gallery-wrap {
    padding: 18px !important;
}

.detail-main-slider {
    border-radius: 20px !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #fff4d4, #fffaf1) !important;
    border: 1px solid var(--border-soft) !important;
}

.detail-main-image {
    width: 100% !important;
    height: clamp(320px, 52vw, 560px) !important;
    object-fit: cover !important;
    display: block !important;
    background: #fff7e5 !important;
}

.detail-placeholder {
    width: 100% !important;
    height: clamp(320px, 52vw, 560px) !important;
    display: grid !important;
    place-items: center !important;
    background: linear-gradient(135deg, #fff1bf, #fffaf0) !important;
    color: var(--ocean-800) !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
}

.detail-thumb-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 14px !important;
}

.detail-thumb-btn {
    border: 2px solid transparent !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    padding: 0 !important;
    background: transparent !important;
    display: block !important;
    width: 100% !important;
    transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease !important;
}

.detail-thumb-btn:hover {
    transform: translateY(-2px) !important;
    border-color: #f2c230 !important;
}

.detail-thumb-btn.active {
    border-color: var(--ocean-800) !important;
    box-shadow: 0 10px 24px rgba(127, 17, 21, 0.14) !important;
}

.detail-thumb {
    width: 100% !important;
    height: 92px !important;
    object-fit: cover !important;
    display: block !important;
    background: #fff7e5 !important;
}

.detail-info-card {
    border: 1px solid var(--border-soft) !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    box-shadow: var(--shadow-soft) !important;
}

.detail-meta-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin-bottom: 0 !important;
}

.detail-meta-list li {
    padding: 0.8rem 0 !important;
    border-bottom: 1px solid #f3e5d8 !important;
    color: var(--text-soft) !important;
}

.detail-meta-list li:last-child {
    border-bottom: 0 !important;
}

.carousel-control-prev,
.carousel-control-next {
    width: 12% !important;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35)) !important;
}

/* ============================================================================
UPLOAD PREVIEW
============================================================================ */

.upload-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.upload-preview-item {
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(127, 17, 21, 0.08);
}

.upload-preview-image {
    width: 100%;
    height: 110px;
    object-fit: cover;
    display: block;
    background: #fff7e5;
}

.upload-preview-caption {
    padding: 8px 10px;
    font-size: 12px;
    color: var(--text-soft);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ============================================================================
BOOTSTRAP COLOR OVERRIDES
============================================================================ */

.btn-primary {
    background: linear-gradient(135deg, #b31217, #de2a2f);
    border-color: #b31217;
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background: linear-gradient(135deg, #8f1117, #c91b1f) !important;
    border-color: #8f1117 !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.2rem rgba(179, 18, 23, 0.18) !important;
}

.btn-outline-primary {
    color: #a51217;
    border-color: #a51217;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background: #a51217 !important;
    border-color: #a51217 !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 0.2rem rgba(165, 18, 23, 0.15) !important;
}

.main-navbar .btn-light {
    background: linear-gradient(135deg, #ffe082, #f2c230);
    border-color: #f2c230;
    color: #7f1115;
    font-weight: 700;
}

.main-navbar .btn-light:hover,
.main-navbar .btn-light:focus {
    background: linear-gradient(135deg, #f6d25f, #e2b319) !important;
    border-color: #e2b319 !important;
    color: #6f0d12 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: #d98b8e;
    box-shadow: 0 0 0 0.2rem rgba(179, 18, 23, 0.12);
}

.form-check-input:checked {
    background-color: #b31217;
    border-color: #b31217;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: #b31217;
}

.pagination .page-link {
    color: #a51217;
}

.pagination .page-item.active .page-link {
    background-color: #b31217;
    border-color: #b31217;
}

.text-primary {
    color: #a51217 !important;
}

.bg-primary {
    background-color: #b31217 !important;
}

.border-primary {
    border-color: #b31217 !important;
}

/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {

    .hero-section {
        min-height: 560px;
    }


    .hero-content {
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
    }


    .hero-background-video {
        object-position: center 60%;
    }


    .hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(10, 10, 10, 0.30) 0%,
                rgba(10, 10, 10, 0.19) 55%,
                rgba(10, 10, 10, 0.04) 100%
            );
    }

}

@media (max-width: 767.98px) {
    .hero-section {
        min-height: 580px;
    }

    .hero-background-video {
        object-position: center 58%;
    }

    .hero-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(83, 6, 10, 0.42) 0%,
                rgba(111, 13, 18, 0.56) 48%,
                rgba(111, 13, 18, 0.72) 100%
            );
    }

    .hero-content {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .hero-section h1 {
        font-size: clamp(2.35rem, 11vw, 3.5rem);
    }

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

    .hero-actions {
        width: 100%;
    }

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

    .hero-location {
        border-radius: 18px;
        line-height: 1.4;
    }

    .detail-thumb-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .detail-thumb {
        height: 78px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-background-video {
        visibility: hidden;
    }

    .hero-section {
        background:
            linear-gradient(
                90deg,
                rgba(83, 6, 10, 0.94),
                rgba(179, 18, 23, 0.62)
            ),
            url("../images/kampung-hero-poster.jpg") center center / cover no-repeat;
    }
}

/* ============================================================================
PROFESSIONAL GOVERNMENT-STYLE FOOTER
============================================================================ */

.site-footer {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 92% 12%,
            rgba(242, 194, 48, 0.10),
            transparent 24%
        ),
        linear-gradient(
            135deg,
            #6f0d12 0%,
            #861015 45%,
            #981318 100%
        );
    color: #ffffff;
}

.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(
        90deg,
        #f2c230,
        #ffe082,
        #f2c230
    );
}

.footer-main {
    padding: 4.5rem 0 3.5rem;
}

.footer-brand-block {
    max-width: 440px;
}

.footer-eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 0.42rem 0.8rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffe69a;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.footer-brand-title {
    margin-bottom: 0.9rem;
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.3;
}

.footer-text {
    margin-bottom: 1.35rem;
    max-width: 430px;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.93rem;
    line-height: 1.7;
}

.footer-location {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9rem;
    font-weight: 600;
}

.footer-location-dot {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 50%;
    background: #f2c230;
    box-shadow: 0 0 0 5px rgba(242, 194, 48, 0.12);
}

.footer-heading {
    margin-bottom: 1.1rem;
    color: #ffe69a;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.footer-contact-heading {
    margin-top: 1.75rem;
}

.footer-links,
.footer-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li,
.footer-contact-list li {
    margin-bottom: 0.62rem;
}

.footer-links a,
.footer-contact-list a {
    display: inline-block;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    font-size: 0.9rem;
    transition:
        color 0.18s ease,
        transform 0.18s ease;
}

.footer-links a:hover,
.footer-contact-list a:hover {
    color: #ffe082;
    transform: translateX(3px);
}

.footer-contact-list li {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.9rem;
}

.strategic-partner-card {
    height: 100%;
    padding: 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.12),
            rgba(255, 255, 255, 0.06)
        );
    backdrop-filter: blur(8px);
    box-shadow: 0 18px 36px rgba(50, 0, 0, 0.14);
}

.strategic-partner-label {
    display: inline-flex;
    padding: 0.35rem 0.72rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    background: #f2c230;
    color: #6f0d12;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.strategic-logo-area {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 125px;
    margin-bottom: 1.1rem;
    padding: 0.9rem 1.1rem;
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.96);
}

.strategic-kpt-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: 105px;
    object-fit: contain;
    object-position: center;
}

.strategic-partner-content h6 {
    margin-bottom: 0.55rem;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 800;
}

.strategic-partner-content p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.84rem;
    line-height: 1.6;
}

.footer-divider {
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.22),
        transparent
    );
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.35rem 0 1.6rem;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.8rem;
}

.footer-bottom-program {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.80);
    font-weight: 600;
}

.footer-bottom-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #f2c230;
}

/* ============================================================================
FOOTER RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {
    .footer-main {
        padding-top: 3.8rem;
        padding-bottom: 3rem;
    }

    .strategic-partner-card {
        margin-top: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .footer-main {
        padding-top: 3.3rem;
        padding-bottom: 2.6rem;
    }

    .footer-brand-title {
        font-size: 1.15rem;
    }

    .strategic-logo-area {
        min-height: 110px;
    }

    .strategic-kpt-logo {
        height: 90px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.65rem;
        padding-bottom: 1.4rem;
    }
}

@media (max-width: 575.98px) {
    .strategic-partner-card {
        padding: 1.1rem;
        border-radius: 18px;
    }

    .strategic-logo-area {
        min-height: 100px;
    }

    .strategic-kpt-logo {
        height: 82px;
    }
}

/* ============================================================================
MADANI — UNIVERSITY COLLABORATION
============================================================================ */

.university-partner-section {
    padding: 4.5rem 0;
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(242, 194, 48, 0.10),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            #fffaf2 0%,
            #fff5e9 100%
        );
    border-bottom: 1px solid var(--border-soft);
}

.university-partner-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}

.university-section-eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.75rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid #f0d27a;
    border-radius: 999px;
    background: #fff1bf;
    color: #8f1117;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.university-count-badge {
    min-width: 150px;
    padding: 1rem 1.2rem;
    border: 1px solid var(--border-soft);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(127, 17, 21, 0.08);
    text-align: center;
}

.university-count-badge strong {
    display: block;
    color: #b31217;
    font-size: 1.7rem;
    line-height: 1;
    font-weight: 800;
}

.university-count-badge span {
    display: block;
    margin-top: 0.4rem;
    color: var(--text-soft);
    font-size: 0.72rem;
    font-weight: 700;
}


/* ============================================================================
7 UNIVERSITI

Desktop:
Baris 1 = 4 universiti
Baris 2 = 3 universiti di tengah
============================================================================ */

.university-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 18px;
}

.university-card {
    position: relative;
    grid-column: span 2;

    display: flex;
    flex-direction: column;

    min-height: 270px;
    padding: 1.2rem;

    overflow: hidden;

    border: 1px solid var(--border-soft);
    border-radius: 22px;

    background: #ffffff;

    box-shadow: 0 14px 32px rgba(127, 17, 21, 0.08);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}


/* Baris kedua: 3 kad berada di tengah */

.university-card:nth-child(5) {
    grid-column: 2 / span 2;
}

.university-card:nth-child(6) {
    grid-column: 4 / span 2;
}

.university-card:nth-child(7) {
    grid-column: 6 / span 2;
}

.university-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    height: 4px;

    background: linear-gradient(
        90deg,
        #b31217,
        #f2c230
    );
}

.university-card:hover {
    transform: translateY(-4px);
    border-color: #e9c88a;
    box-shadow: 0 20px 38px rgba(127, 17, 21, 0.13);
}


/* ============================================================================
KAWASAN LOGO

Logo universiti anda mempunyai nisbah berbeza:
UKM / UM / UTM / UPNM / UIAM / UPM / UiTM.

Semua akan disesuaikan tanpa crop.
============================================================================ */

.university-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 130px;

    margin-bottom: 1rem;
    padding: 1rem;

    overflow: hidden;

    border: 1px solid #f0ddbd;
    border-radius: 16px;

    background: #ffffff;
}

.university-logo {
    display: block;

    width: 100%;
    height: 100%;

    max-width: 100%;
    max-height: 100px;

    object-fit: contain;
    object-position: center;
}


/* Jika fail logo belum dijumpai */

.university-logo-fallback {
    display: grid;
    place-items: center;

    width: 68px;
    height: 68px;

    border-radius: 18px;

    background: linear-gradient(
        135deg,
        #8f1117,
        #c91b1f
    );

    color: #ffe082;

    font-size: 1rem;
    font-weight: 800;

    box-shadow: 0 8px 18px rgba(127, 17, 21, 0.18);
}


/* ============================================================================
MAKLUMAT UNIVERSITI
============================================================================ */

.university-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.university-card-label {
    margin-bottom: 0.4rem;

    color: #b31217;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.university-card-content h5 {
    margin-bottom: 0.5rem;

    color: var(--text-main);

    font-size: 0.93rem;
    font-weight: 800;
    line-height: 1.4;
}

.university-short-name {
    margin-top: auto;

    color: #8f1117;

    font-size: 0.76rem;
    font-weight: 800;

    letter-spacing: 0.04em;
}

.university-website-link {
    display: inline-block;

    margin-top: 0.75rem;

    color: #a51217;

    font-size: 0.78rem;
    font-weight: 700;

    text-decoration: none;
}

.university-website-link:hover {
    color: #6f0d12;
    text-decoration: underline;
}


/* ============================================================================
TABLET BESAR
============================================================================ */

@media (max-width: 1199.98px) {
    .university-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .university-card,
    .university-card:nth-child(5),
    .university-card:nth-child(6),
    .university-card:nth-child(7) {
        grid-column: auto;
    }
}


/* ============================================================================
TABLET
============================================================================ */

@media (max-width: 991.98px) {
    .university-partner-heading {
        align-items: flex-start;
    }

    .university-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .university-logo-box {
        height: 120px;
    }
}


/* ============================================================================
MOBILE
============================================================================ */

@media (max-width: 767.98px) {
    .university-partner-section {
        padding: 3.5rem 0;
    }

    .university-partner-heading {
        flex-direction: column;
        gap: 1.2rem;
    }

    .university-count-badge {
        min-width: 140px;
    }

    .university-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .university-card {
        min-height: 245px;
        padding: 1rem;
    }

    .university-logo-box {
        height: 110px;
        padding: 0.75rem;
    }

    .university-logo {
        max-height: 88px;
    }
}


/* ============================================================================
TELEFON KECIL
============================================================================ */

@media (max-width: 479.98px) {
    .university-grid {
        grid-template-columns: 1fr;
    }

    .university-card {
        min-height: auto;
    }

    .university-logo-box {
        height: 125px;
    }

    .university-logo {
        max-height: 98px;
    }
}

/* ============================================================================
MADANI FINAL OVERRIDES
============================================================================ */

.university-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 18px;
}

.university-card {
    position: relative;
    grid-column: span 2;

    display: flex;
    flex-direction: column;

    min-height: 285px;
    padding: 1.2rem;

    overflow: hidden;

    border: 1px solid var(--border-soft);
    border-radius: 22px;

    background: #ffffff;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, 0.08);
}

.university-card:nth-child(5) {
    grid-column: 2 / span 2;
}

.university-card:nth-child(6) {
    grid-column: 4 / span 2;
}

.university-card:nth-child(7) {
    grid-column: 6 / span 2;
}

.university-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #b31217,
            #f2c230
        );
}

.university-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 135px;

    margin-bottom: 1rem;
    padding: 1rem;

    overflow: hidden;

    border: 1px solid #f0ddbd;
    border-radius: 16px;

    background: #ffffff;
}

.university-logo {
    display: block;

    width: 100%;
    height: 100%;

    max-width: 100%;
    max-height: 105px;

    object-fit: contain;
    object-position: center;
}

.university-logo-fallback {
    display: grid;
    place-items: center;

    width: 68px;
    height: 68px;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #8f1117,
            #c91b1f
        );

    color: #ffe082;

    font-size: 1rem;
    font-weight: 800;
}

.university-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.university-card-label {
    margin-bottom: 0.4rem;

    color: #b31217;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.university-card-content h5 {
    margin-bottom: 0.7rem;

    color: var(--text-main);

    font-size: 0.93rem;
    font-weight: 800;

    line-height: 1.4;
}

.university-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-top: auto;
}

.university-short-name {
    color: #8f1117;

    font-size: 0.76rem;
    font-weight: 800;

    letter-spacing: 0.04em;
}

.university-project-count {
    padding: 0.3rem 0.55rem;

    border-radius: 999px;

    background: #fff4c7;

    color: #8f1117;

    font-size: 0.68rem;
    font-weight: 800;
}


/* PROJECT SUMMARY */

.madani-summary {
    display: flex;
    align-items: stretch;

    gap: 10px;
}

.madani-summary > div {
    min-width: 85px;

    padding: 0.75rem 1rem;

    border: 1px solid var(--border-soft);
    border-radius: 16px;

    background: #ffffff;

    text-align: center;

    box-shadow:
        0 8px 20px
        rgba(127, 17, 21, 0.06);
}

.madani-summary strong {
    display: block;

    color: #b31217;

    font-size: 1.25rem;
    line-height: 1;
}

.madani-summary span {
    display: block;

    margin-top: 0.35rem;

    color: var(--text-soft);

    font-size: 0.67rem;
    font-weight: 700;
}


/* UNIVERSITY PILLS */

.madani-university-pills {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;
}

.madani-university-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0.34rem 0.65rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff2bf;

    color: #8f1117;

    font-size: 0.72rem;
    font-weight: 800;

    letter-spacing: 0.035em;
}


/* PROJECT CARDS */

.madani-project-card {
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.madani-project-card:hover {
    transform: translateY(-3px);

    box-shadow:
        0 22px 44px
        rgba(127, 17, 21, 0.13);
}

.madani-project-description {
    display: -webkit-box;

    overflow: hidden;

    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.madani-card-meta {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.madani-card-meta > div {
    padding: 0.75rem;

    border: 1px solid #f2dfd2;
    border-radius: 14px;

    background: #fffaf5;
}

.madani-card-meta span {
    display: block;

    margin-bottom: 0.25rem;

    color: var(--text-soft);

    font-size: 0.67rem;
    font-weight: 700;
}

.madani-card-meta strong {
    display: block;

    color: var(--text-main);

    font-size: 0.78rem;
    line-height: 1.35;
}


/* PROJECT DETAIL */

.madani-detail-label {
    margin-bottom: 0.7rem;

    color: var(--text-soft);

    font-size: 0.76rem;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.04em;
}

.madani-detail-university {
    display: flex;
    align-items: center;

    gap: 12px;

    padding: 0.75rem 0;

    border-bottom:
        1px solid
        #f3e5d8;
}

.madani-detail-university:last-child {
    border-bottom: 0;
}

.madani-detail-university strong {
    min-width: 52px;

    padding: 0.3rem 0.5rem;

    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    text-align: center;

    font-size: 0.72rem;
}

.madani-detail-university span {
    color: var(--text-main);

    font-size: 0.86rem;
    font-weight: 700;
}

.madani-meta-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.madani-meta-card {
    min-height: 90px;

    padding: 1rem;

    border: 1px solid var(--border-soft);
    border-radius: 16px;

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fffaf5
        );
}

.madani-meta-card span {
    display: block;

    margin-bottom: 0.4rem;

    color: var(--text-soft);

    font-size: 0.7rem;
    font-weight: 700;

    text-transform: uppercase;
}

.madani-meta-card strong {
    display: block;

    color: #7f1115;

    font-size: 0.92rem;
    line-height: 1.4;
}

.madani-content-card {
    padding: 1.8rem;

    border: 1px solid var(--border-soft);
    border-radius: 22px;

    background: #ffffff;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, 0.07);
}

.madani-content-card h3 {
    margin-bottom: 1rem;

    color: #7f1115;

    font-size: 1.25rem;
    font-weight: 800;
}

.madani-content-text {
    color: var(--text-soft);

    line-height: 1.75;
}


/* RESPONSIVE */

@media (max-width: 1199.98px) {

    .university-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .university-card,
    .university-card:nth-child(5),
    .university-card:nth-child(6),
    .university-card:nth-child(7) {
        grid-column: auto;
    }

}


@media (max-width: 991.98px) {

    .university-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 767.98px) {

    .madani-summary {
        width: 100%;
    }

    .madani-summary > div {
        flex: 1;
        min-width: 0;
    }

    .madani-meta-grid {
        grid-template-columns: 1fr;
    }

    .madani-card-meta {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 575.98px) {

    .university-grid {
        grid-template-columns: 1fr;
    }

    .university-card {
        min-height: auto;
    }

    .university-logo-box {
        height: 140px;
    }

}

/* ============================================================================
MADANI UNIVERSITY FILTER
============================================================================ */

.university-card-active {
    border-color: #d9a400;

    box-shadow:
        0 18px 38px
        rgba(127, 17, 21, 0.15);
}

.university-card-active::before {
    height: 5px;

    background:
        linear-gradient(
            90deg,
            #f2c230,
            #d9a400
        );
}


.university-filter-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-top: 1rem;

    padding: 0.65rem 0.8rem;

    border: 1px solid #f0d7c2;
    border-radius: 12px;

    background: #fffaf0;

    color: #8f1117;

    font-size: 0.76rem;
    font-weight: 800;

    text-decoration: none;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.university-filter-link:hover {
    border-color: #f2c230;

    background: #fff4c7;

    color: #6f0d12;

    transform: translateY(-1px);
}

.university-filter-link.active {
    border-color: #d9a400;

    background: #f2c230;

    color: #6f0d12;
}


/* ============================================================================
FILTER BAR
============================================================================ */

.madani-filter-bar {
    margin-bottom: 1.5rem;

    padding: 1.1rem 1.2rem;

    border: 1px solid var(--border-soft);
    border-radius: 20px;

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fffaf5
        );

    box-shadow:
        0 10px 28px
        rgba(127, 17, 21, 0.06);
}

.madani-filter-label {
    margin-bottom: 0.75rem;

    color: #6f0d12;

    font-size: 0.78rem;
    font-weight: 800;

    letter-spacing: 0.025em;
}

.madani-filter-buttons {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}

.madani-filter-button {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    padding: 0.5rem 0.78rem;

    border: 1px solid #efd8c4;
    border-radius: 999px;

    background: #ffffff;

    color: #6f0d12;

    font-size: 0.76rem;
    font-weight: 800;

    text-decoration: none;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.madani-filter-button span {
    display: grid;
    place-items: center;

    min-width: 23px;
    height: 23px;

    padding: 0 5px;

    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.66rem;
    font-weight: 800;
}

.madani-filter-button:hover {
    border-color: #f2c230;

    background: #fff8e1;

    color: #6f0d12;

    transform: translateY(-1px);
}

.madani-filter-button.active {
    border-color: #8f1117;

    background: #8f1117;

    color: #ffffff;

    box-shadow:
        0 7px 18px
        rgba(127, 17, 21, 0.16);
}

.madani-filter-button.active span {
    background: #f2c230;

    color: #6f0d12;
}


/* ============================================================================
ACTIVE FILTER INFORMATION
============================================================================ */

.madani-active-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 1.5rem;

    padding: 0.9rem 1rem;

    border-left: 4px solid #f2c230;
    border-radius: 0 14px 14px 0;

    background: #fff8e1;
}

.madani-active-filter > div {
    display: flex;
    flex-direction: column;

    gap: 2px;
}

.madani-active-filter span {
    color: var(--text-soft);

    font-size: 0.68rem;
    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.04em;
}

.madani-active-filter strong {
    color: #7f1115;

    font-size: 0.86rem;
}


/* ============================================================================
FILTER RESPONSIVE
============================================================================ */

@media (max-width: 767.98px) {

    .madani-filter-bar {
        padding: 1rem;
    }

    .madani-filter-buttons {
        gap: 7px;
    }

    .madani-filter-button {
        padding: 0.46rem 0.65rem;
    }

    .madani-active-filter {
        align-items: flex-start;
        flex-direction: column;
    }

}


@media (max-width: 479.98px) {

    .madani-filter-button {
        flex: 1 1 auto;
        justify-content: space-between;
    }

}

/* ============================================================================
HOMEPAGE — COMMUNITY STATISTICS
============================================================================ */

.community-statistics-section {
    padding: 4.5rem 0;

    background:
        radial-gradient(
            circle at 88% 8%,
            rgba(242, 194, 48, 0.09),
            transparent 25%
        ),
        linear-gradient(
            180deg,
            #fffaf5 0%,
            #fff7ef 100%
        );
}

.community-statistics-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 2rem;

    margin-bottom: 2rem;
}

.community-statistics-eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 0.7rem;

    padding: 0.4rem 0.8rem;

    border: 1px solid #f0d27a;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.75rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.community-statistics-title {
    margin-bottom: 0.55rem;

    color: #7f1115;

    font-size: clamp(
        1.65rem,
        3vw,
        2.15rem
    );

    font-weight: 800;
}

.community-statistics-description {
    max-width: 650px;

    margin-bottom: 0;

    color: var(--text-soft);

    line-height: 1.65;
}


/* ============================================================================
STATISTIC CARD
============================================================================ */

.community-stat-card {
    position: relative;

    min-height: 280px;

    padding: 1.65rem;

    overflow: hidden;

    border: 1px solid #efd8c5;
    border-radius: 24px;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #fffdfb 100%
        );

    box-shadow:
        0 18px 38px
        rgba(127, 17, 21, 0.08);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.community-stat-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #8f1117,
            #c91b1f,
            #f2c230
        );
}

.community-stat-card:hover {
    transform: translateY(-4px);

    border-color: #e9c88a;

    box-shadow:
        0 22px 46px
        rgba(127, 17, 21, 0.13);
}

.community-stat-card-featured {
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(242, 194, 48, 0.12),
            transparent 28%
        ),
        #ffffff;
}


/* ============================================================================
CARD CONTENT
============================================================================ */

.community-stat-card-top {
    margin-bottom: 1rem;
}

.community-stat-label {
    display: inline-flex;

    padding: 0.36rem 0.7rem;

    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.community-stat-number {
    margin-bottom: 0.2rem;

    color: #b31217;

    font-size: clamp(
        2.3rem,
        4vw,
        3.2rem
    );

    line-height: 1;

    font-weight: 800;

    letter-spacing: -0.03em;
}

.community-stat-name {
    color: #4f292a;

    font-size: 1rem;
    font-weight: 700;
}

.community-stat-divider {
    height: 1px;

    margin: 1.35rem 0;

    background:
        linear-gradient(
            90deg,
            #efd8c5,
            transparent
        );
}

.community-stat-note {
    color: var(--text-soft);

    font-size: 0.86rem;
    line-height: 1.65;
}


/* ============================================================================
GENDER BREAKDOWN
============================================================================ */

.community-stat-mini-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.community-stat-mini {
    padding: 0.8rem;

    border: 1px solid #f1e1d5;
    border-radius: 14px;

    background: #fffaf5;
}

.community-stat-mini span {
    display: block;

    margin-bottom: 0.2rem;

    color: var(--text-soft);

    font-size: 0.7rem;
    font-weight: 700;
}

.community-stat-mini strong {
    display: block;

    color: #7f1115;

    font-size: 1rem;
    font-weight: 800;
}


/* ============================================================================
AGE BREAKDOWN
============================================================================ */

.community-age-breakdown {
    display: flex;
    flex-direction: column;

    gap: 9px;
}

.community-age-item {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 1rem;

    padding: 0.72rem 0.85rem;

    border: 1px solid #f1e1d5;
    border-radius: 14px;

    background: #fffaf5;
}

.community-age-item span {
    color: var(--text-soft);

    font-size: 0.76rem;
    font-weight: 700;
}

.community-age-item strong {
    color: #8f1117;

    font-size: 0.92rem;
    font-weight: 800;

    white-space: nowrap;
}


/* ============================================================================
SOURCE
============================================================================ */

.community-statistics-source {
    display: flex;
    justify-content: flex-end;

    margin-top: 1.15rem;

    color: #7b6864;

    font-size: 0.75rem;
    font-weight: 600;

    font-style: italic;
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {
    .community-statistics-section {
        padding: 3.8rem 0;
    }

    .community-stat-card {
        min-height: auto;
    }
}


@media (max-width: 767.98px) {
    .community-statistics-section {
        padding: 3.2rem 0;
    }

    .community-statistics-heading {
        margin-bottom: 1.5rem;
    }

    .community-stat-card {
        padding: 1.35rem;
        border-radius: 20px;
    }

    .community-statistics-source {
        justify-content: flex-start;
    }
}


@media (max-width: 479.98px) {
    .community-stat-mini-grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
HOMEPAGE — PORTAL MODULES
============================================================================= */

.portal-modules-section {
    padding: 4.8rem 0;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #fffaf5 100%
        );
}

.portal-section-heading {
    margin-bottom: 2rem;
}

.portal-section-eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 0.7rem;

    padding: 0.4rem 0.8rem;

    border: 1px solid #f0d27a;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.74rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-section-heading h2 {
    margin-bottom: 0.55rem;

    color: #7f1115;

    font-size: clamp(
        1.7rem,
        3vw,
        2.1rem
    );

    font-weight: 800;
}

.portal-section-heading p {
    margin-bottom: 0;

    color: var(--text-soft);

    line-height: 1.65;
}


/* 3 ATAS + 2 TENGAH */

.portal-module-grid {
    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap: 20px;
}

.portal-module-card {
    position: relative;

    grid-column: span 2;

    display: flex;
    flex-direction: column;

    min-height: 270px;

    padding: 1.5rem;

    overflow: hidden;

    border: 1px solid #f0ddd0;
    border-radius: 24px;

    background: #ffffff;

    color: inherit;

    text-decoration: none;

    box-shadow:
        0 16px 36px
        rgba(127, 17, 21, 0.07);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.portal-module-card:nth-child(4) {
    grid-column: 2 / span 2;
}

.portal-module-card:nth-child(5) {
    grid-column: 4 / span 2;
}

.portal-module-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 4px;

    background:
        linear-gradient(
            90deg,
            #8f1117,
            #c91b1f,
            #f2c230
        );

    opacity: 0;

    transition: opacity 0.2s ease;
}

.portal-module-card:hover {
    transform: translateY(-5px);

    border-color: #e7c990;

    color: inherit;

    box-shadow:
        0 22px 46px
        rgba(127, 17, 21, 0.13);
}

.portal-module-card:hover::before {
    opacity: 1;
}

.portal-module-icon {
    display: grid;
    place-items: center;

    width: 52px;
    height: 52px;

    margin-bottom: 1.25rem;

    border: 1px solid #f2d789;
    border-radius: 16px;

    background:
        linear-gradient(
            145deg,
            #fff1bf,
            #ffe58a
        );

    font-size: 1.35rem;
}

.portal-module-content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.portal-module-label {
    margin-bottom: 0.35rem;

    color: #b31217;

    font-size: 0.67rem;
    font-weight: 800;

    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.portal-module-content h3 {
    margin-bottom: 0.6rem;

    color: #2a1617;

    font-size: 1.02rem;
    font-weight: 800;

    line-height: 1.35;
}

.portal-module-content p {
    margin-bottom: 1.2rem;

    color: #677079;

    font-size: 0.86rem;
    line-height: 1.6;
}

.portal-module-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-top: auto;

    color: #8f1117;

    font-size: 0.78rem;
    font-weight: 800;
}

.portal-module-link > span {
    display: grid;
    place-items: center;

    width: 30px;
    height: 30px;

    border-radius: 50%;

    background: #fff1bf;

    transition:
        transform 0.18s ease,
        background 0.18s ease;
}

.portal-module-card:hover
.portal-module-link > span {
    transform: translateX(3px);

    background: #f2c230;
}


/* =============================================================================
ANNOUNCEMENT BOARD
============================================================================= */

.announcement-board-section {
    padding: 4.5rem 0;

    background:
        linear-gradient(
            180deg,
            #fff7ef,
            #fffaf5
        );
}

.announcement-board {
    overflow: hidden;

    border: 1px solid #eed8c8;
    border-radius: 26px;

    background: #ffffff;

    box-shadow:
        0 20px 46px
        rgba(127, 17, 21, 0.09);
}

.announcement-board-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 2rem;

    padding: 1.7rem 2rem;

    background:
        radial-gradient(
            circle at 90% 20%,
            rgba(242, 194, 48, 0.18),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #730d12,
            #961319
        );

    color: #ffffff;
}

.announcement-board-eyebrow {
    display: inline-flex;

    margin-bottom: 0.5rem;

    color: #ffe082;

    font-size: 0.7rem;
    font-weight: 800;

    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.announcement-board-header h2 {
    margin-bottom: 0.35rem;

    color: #ffffff;

    font-size: 1.55rem;
    font-weight: 800;
}

.announcement-board-header p {
    margin-bottom: 0;

    color: rgba(
        255,
        255,
        255,
        0.72
    );

    font-size: 0.86rem;
}

.announcement-board-mark {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    flex-shrink: 0;

    padding: 0.65rem 0.9rem;

    border: 1px solid
        rgba(255, 255, 255, 0.17);

    border-radius: 999px;

    background:
        rgba(255, 255, 255, 0.08);

    color: rgba(
        255,
        255,
        255,
        0.88
    );

    font-size: 0.74rem;
    font-weight: 700;
}

.announcement-board-dot {
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #f2c230;

    box-shadow:
        0 0 0 5px
        rgba(242, 194, 48, 0.13);
}


/* LIST */

.announcement-list {
    padding: 0 2rem;
}

.announcement-item {
    display: grid;

    grid-template-columns:
        120px minmax(0, 1fr) auto;

    align-items: center;

    gap: 1.5rem;

    padding: 1.35rem 0;

    border-bottom:
        1px solid #f1e3da;
}

.announcement-item:last-child {
    border-bottom: 0;
}

.announcement-date {
    display: inline-flex;

    padding: 0.38rem 0.7rem;

    border: 1px solid #efd179;
    border-radius: 999px;

    background: #fff3c5;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;
}

.announcement-item-content h3 {
    margin-bottom: 0.35rem;

    color: #2d1b1c;

    font-size: 0.98rem;
    font-weight: 800;
}

.announcement-item-content p {
    display: -webkit-box;

    margin-bottom: 0;

    overflow: hidden;

    color: #667079;

    font-size: 0.83rem;
    line-height: 1.55;

    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.announcement-read-button {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    padding: 0.55rem 0.8rem;

    border: 1px solid #c91b1f;
    border-radius: 999px;

    background: transparent;

    color: #a51217;

    font-size: 0.74rem;
    font-weight: 800;

    cursor: pointer;

    transition:
        color 0.18s ease,
        background 0.18s ease,
        transform 0.18s ease;
}

.announcement-read-button:hover {
    background: #8f1117;

    color: #ffffff;

    transform: translateX(2px);
}

.announcement-empty {
    padding: 2rem 0;

    color: var(--text-soft);

    text-align: center;
}


/* =============================================================================
ANNOUNCEMENT MODAL
============================================================================= */

.announcement-modal-content {
    overflow: hidden;

    border: 0;
    border-radius: 24px;

    box-shadow:
        0 26px 70px
        rgba(55, 5, 8, 0.24);
}

.announcement-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 1rem;

    padding: 1.2rem 1.5rem;

    border-bottom:
        1px solid #f0dfd4;

    background: #fff8e1;
}

.announcement-modal-label {
    display: block;

    margin-bottom: 0.2rem;

    color: #8f1117;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.announcement-modal-date {
    color: #796463;

    font-size: 0.74rem;
    font-weight: 600;
}

.announcement-modal-body {
    padding: 2rem;
}

.announcement-modal-body h2 {
    margin-bottom: 1.2rem;

    color: #7f1115;

    font-size: 1.55rem;
    font-weight: 800;

    line-height: 1.35;
}

.announcement-modal-text {
    color: #5f5050;

    font-size: 0.92rem;
    line-height: 1.8;

    white-space: pre-line;
}

.announcement-modal-footer {
    display: flex;
    justify-content: flex-end;

    padding: 1rem 2rem 1.5rem;
}


/* =============================================================================
RESPONSIVE
============================================================================= */

@media (max-width: 991.98px) {

    .portal-module-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .portal-module-card,
    .portal-module-card:nth-child(4),
    .portal-module-card:nth-child(5) {
        grid-column: auto;
    }

    .announcement-item {
        grid-template-columns:
            105px minmax(0, 1fr) auto;

        gap: 1rem;
    }

}


@media (max-width: 767.98px) {

    .portal-modules-section,
    .announcement-board-section {
        padding: 3.5rem 0;
    }

    .portal-module-grid {
        grid-template-columns: 1fr;
    }

    .portal-module-card {
        min-height: auto;
    }

    .announcement-board-header {
        align-items: flex-start;
        flex-direction: column;

        padding: 1.4rem;
    }

    .announcement-list {
        padding: 0 1.4rem;
    }

    .announcement-item {
        grid-template-columns: 1fr;

        gap: 0.7rem;

        padding: 1.25rem 0;
    }

    .announcement-item-action {
        justify-self: start;
    }

    .announcement-modal-body {
        padding: 1.5rem;
    }

    .announcement-modal-footer {
        padding:
            0.8rem
            1.5rem
            1.4rem;
    }

}

/* ============================================================================
PROFILE PAGE
============================================================================ */

.profile-page-eyebrow,
.profile-section-eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 0.75rem;

    padding: 0.4rem 0.8rem;

    border: 1px solid #f0d27a;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.74rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}


/* ============================================================================
HISTORY
============================================================================ */

.village-history-section {
    padding: 5rem 0;

    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(242, 194, 48, 0.08),
            transparent 27%
        ),
        linear-gradient(
            180deg,
            #fffaf5,
            #ffffff
        );
}

.profile-section-intro {
    position: sticky;

    top: 130px;
}

.profile-section-intro h2 {
    margin-bottom: 1rem;

    color: #7f1115;

    font-size: clamp(
        1.8rem,
        3vw,
        2.35rem
    );

    font-weight: 800;
    line-height: 1.2;
}

.profile-section-intro > p {
    color: var(--text-soft);

    line-height: 1.7;
}

.history-highlight-card {
    display: flex;
    align-items: center;

    gap: 1rem;

    margin-top: 2rem;

    padding: 1.1rem;

    border: 1px solid #efd9c8;
    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 12px 28px
        rgba(127, 17, 21, 0.07);
}

.history-highlight-number {
    display: grid;
    place-items: center;

    width: 70px;
    height: 70px;

    flex-shrink: 0;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #8f1117,
            #b31217
        );

    color: #ffe082;

    font-size: 0.82rem;
    font-weight: 800;
}

.history-highlight-label {
    display: block;

    margin-bottom: 0.2rem;

    color: #7f1115;

    font-size: 0.85rem;
    font-weight: 800;
}

.history-highlight-card p {
    margin-bottom: 0;

    color: var(--text-soft);

    font-size: 0.8rem;
}


.history-main-card {
    padding: 2rem;

    border: 1px solid #efd9c8;
    border-radius: 26px;

    background: #ffffff;

    box-shadow:
        0 18px 42px
        rgba(127, 17, 21, 0.08);
}

.history-card-heading {
    display: flex;
    align-items: center;

    gap: 1rem;

    margin-bottom: 1.5rem;
}

.history-card-heading span {
    color: #8f1117;

    font-size: 0.78rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;

    white-space: nowrap;
}

.history-heading-line {
    width: 100%;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            #efd079,
            transparent
        );
}

.history-main-card p {
    color: #5f5050;

    font-size: 0.94rem;
    line-height: 1.85;
}


/* ============================================================================
HISTORY TIMELINE
============================================================================ */

.village-history-timeline {
    position: relative;

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;

    margin-top: 4rem;
}

.village-history-timeline::before {
    content: "";

    position: absolute;

    top: 11px;
    left: 10%;

    width: 80%;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            #8f1117,
            #f2c230,
            #8f1117
        );
}

.history-timeline-item {
    position: relative;

    padding-top: 2.2rem;
}

.history-timeline-marker {
    position: absolute;

    top: 0;
    left: 50%;

    width: 22px;
    height: 22px;

    transform:
        translateX(-50%);

    border: 5px solid #fff8e1;
    border-radius: 50%;

    background: #b31217;

    box-shadow:
        0 0 0 2px
        #f2c230;
}

.history-timeline-card {
    height: 100%;

    padding: 1.25rem;

    border: 1px solid #efd9c8;
    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 12px 28px
        rgba(127, 17, 21, 0.06);
}

.history-timeline-year {
    display: inline-block;

    margin-bottom: 0.5rem;

    color: #b31217;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.history-timeline-card h3 {
    margin-bottom: 0.5rem;

    color: #2a1617;

    font-size: 0.95rem;
    font-weight: 800;
}

.history-timeline-card p {
    margin-bottom: 0;

    color: var(--text-soft);

    font-size: 0.8rem;
    line-height: 1.6;
}


/* ============================================================================
ORGANISATION SECTION
============================================================================ */

.village-organisation-section {
    padding: 5rem 0 5.5rem;

    border-top: 1px solid #f0dfd0;

    background:
        radial-gradient(
            circle at 10% 10%,
            rgba(242, 194, 48, 0.10),
            transparent 25%
        ),
        linear-gradient(
            180deg,
            #fff7ef,
            #fffaf5
        );
}

.profile-section-heading {
    max-width: 720px;

    margin: 0 auto 3rem;
}

.profile-section-heading h2 {
    margin-bottom: 0.7rem;

    color: #7f1115;

    font-size: clamp(
        1.8rem,
        3vw,
        2.3rem
    );

    font-weight: 800;
}

.profile-section-heading p {
    margin-bottom: 0;

    color: var(--text-soft);
}


/* ============================================================================
ORGANISATION CHART
============================================================================ */

.organisation-chart {
    max-width: 1080px;

    margin: 0 auto;
}

.organisation-level {
    position: relative;

    display: grid;

    gap: 20px;
}

.organisation-level-single {
    grid-template-columns:
        minmax(260px, 360px);

    justify-content: center;
}

.organisation-level-two {
    grid-template-columns:
        repeat(2, minmax(260px, 330px));

    justify-content: center;
}

.organisation-card {
    position: relative;

    padding: 1.35rem;

    border: 1px solid #ecd4c2;
    border-radius: 22px;

    background: #ffffff;

    text-align: center;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, 0.08);
}

.organisation-card-primary {
    border-color: #dcb255;

    background:
        radial-gradient(
            circle at 85% 10%,
            rgba(242, 194, 48, 0.16),
            transparent 30%
        ),
        #ffffff;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, 0.13);
}

.organisation-avatar {
    display: grid;
    place-items: center;

    width: 58px;
    height: 58px;

    margin: 0 auto 0.9rem;

    border: 4px solid #fff4c7;
    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #8f1117,
            #c91b1f
        );

    color: #ffe082;

    font-size: 0.8rem;
    font-weight: 800;

    box-shadow:
        0 8px 18px
        rgba(127, 17, 21, 0.15);
}

.organisation-role {
    display: inline-block;

    margin-bottom: 0.4rem;

    color: #b31217;

    font-size: 0.67rem;
    font-weight: 800;

    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.organisation-card h3 {
    margin-bottom: 0.3rem;

    color: #2a1617;

    font-size: 1rem;
    font-weight: 800;
}

.organisation-card p {
    margin-bottom: 0;

    color: var(--text-soft);

    font-size: 0.77rem;
    line-height: 1.5;
}


/* ============================================================================
CONNECTOR
============================================================================ */

.organisation-connector-vertical {
    width: 2px;
    height: 34px;

    margin: 0 auto;

    background:
        linear-gradient(
            180deg,
            #b31217,
            #e3b949
        );
}

.organisation-branch {
    position: relative;
}

.organisation-branch-line {
    position: absolute;

    top: -17px;
    left: 50%;

    width: 34%;
    height: 18px;

    transform:
        translateX(-50%);

    border-top: 2px solid #d8b153;
    border-left: 2px solid #d8b153;
    border-right: 2px solid #d8b153;

    border-radius:
        8px 8px 0 0;
}


/* ============================================================================
AJK
============================================================================ */

.organisation-ajk-wrapper {
    padding: 1.5rem;

    border: 1px solid #ecd8c8;
    border-radius: 26px;

    background:
        rgba(255, 255, 255, 0.55);
}

.organisation-ajk-heading {
    margin-bottom: 1.2rem;

    color: #7f1115;

    text-align: center;

    font-size: 0.78rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.organisation-ajk-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 16px;
}

.organisation-card-small {
    padding: 1.1rem;
}

.organisation-card-small
.organisation-avatar {
    width: 50px;
    height: 50px;

    border-radius: 15px;
}


/* ============================================================================
PROFILE RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {

    .profile-section-intro {
        position: static;
    }

    .village-history-timeline {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .village-history-timeline::before {
        display: none;
    }

    .history-timeline-marker {
        left: 20px;
    }

    .history-timeline-item {
        padding-top: 2.4rem;
    }

    .organisation-ajk-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 767.98px) {

    .village-history-section,
    .village-organisation-section {
        padding: 3.7rem 0;
    }

    .history-main-card {
        padding: 1.4rem;

        border-radius: 20px;
    }

    .organisation-level-two {
        grid-template-columns: 1fr;
    }

    .organisation-branch-line {
        display: none;
    }

    .organisation-level-single {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 575.98px) {

    .village-history-timeline {
        grid-template-columns: 1fr;
    }

    .organisation-ajk-grid {
        grid-template-columns: 1fr;
    }

    .organisation-ajk-wrapper {
        padding: 1rem;
    }

}

.history-highlight-card {
    display: flex;
    align-items: center;

    gap: 1rem;

    margin-top: 2rem;
    padding: 0.9rem;

    border: 1px solid #efd9c8;
    border-radius: 20px;

    background: #ffffff;

    box-shadow:
        0 12px 28px
        rgba(127, 17, 21, 0.07);
}

.history-highlight-image-wrap {
    width: 110px;
    height: 85px;

    flex: 0 0 110px;

    overflow: hidden;

    border-radius: 16px;

    background: #f6eee8;
}

.history-highlight-image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}

.history-highlight-content {
    min-width: 0;
}

.history-highlight-label {
    display: block;

    margin-bottom: 0.25rem;

    color: #7f1115;

    font-size: 0.88rem;
    font-weight: 800;
}

.history-highlight-content p {
    margin-bottom: 0;

    color: var(--text-soft);

    font-size: 0.8rem;
}


/* MOBILE */

@media (max-width: 575.98px) {

    .history-highlight-image-wrap {
        width: 95px;
        height: 78px;

        flex-basis: 95px;
    }

    .history-highlight-label {
        font-size: 0.82rem;
    }

}

/* ============================================================================
ORGANISATION — REAL PHOTO SUPPORT
============================================================================ */

.organisation-photo-frame {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 82px;
    height: 82px;

    margin: 0 auto 1rem;

    overflow: hidden;

    border: 4px solid #fff1bf;
    border-radius: 22px;

    background: #ffffff;

    box-shadow:
        0 9px 22px
        rgba(127, 17, 21, 0.15);
}


/* GAMBAR SEBENAR */

.organisation-photo {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center top;
}


/* FALLBACK JIKA GAMBAR BELUM ADA */

.organisation-photo-fallback {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    background:
        linear-gradient(
            135deg,
            #8f1117,
            #c91b1f
        );

    color: #ffe082;

    font-size: 0.82rem;
    font-weight: 800;
}


/* PENGERUSI SEDIKIT LEBIH BESAR */

.organisation-card-primary
.organisation-photo-frame {
    width: 92px;
    height: 92px;

    border-radius: 24px;
}


/* AJK SEDIKIT LEBIH COMPACT */

.organisation-card-small
.organisation-photo-frame {
    width: 70px;
    height: 70px;

    border-radius: 19px;
}


/* MATIKAN AVATAR LAMA JIKA MASIH ADA CSS TERDAHULU */

.organisation-card
.organisation-avatar {
    display: none;
}


/* RESPONSIVE */

@media (max-width: 575.98px) {

    .organisation-photo-frame {
        width: 76px;
        height: 76px;
    }

    .organisation-card-primary
    .organisation-photo-frame {
        width: 84px;
        height: 84px;
    }

}

/* ============================================================================
COMPLAINT STATUS TRACKER
============================================================================ */

.complaint-status-card {
    padding: 1.7rem;

    border: 1px solid #efd9c8;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 16px 38px
        rgba(127, 17, 21, 0.08);
}


.complaint-status-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 2rem;
}


.complaint-status-heading span {
    display: block;

    color: var(--text-soft);

    font-size: 0.72rem;
    font-weight: 700;

    text-transform: uppercase;
}


.complaint-status-heading h3 {
    margin: 0.25rem 0 0;

    color: #7f1115;

    font-size: 1.2rem;
    font-weight: 800;
}


.complaint-current-status {
    padding: 0.5rem 0.8rem;

    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117 !important;

    font-size: 0.74rem !important;
    font-weight: 800 !important;
}


.complaint-status-tracker {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.complaint-status-step {
    position: relative;

    display: flex;
    align-items: center;
    flex-direction: column;

    gap: 0.55rem;

    text-align: center;
}

.complaint-status-step::before {
    content: "";

    position: absolute;

    top: 18px;
    left: -50%;

    width: 100%;
    height: 3px;

    background: #eadfd7;

    z-index: 0;
}

.complaint-status-step:first-child::before {
    display: none;
}

.complaint-status-dot {
    position: relative;
    z-index: 1;

    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    border: 3px solid #eee2d9;
    border-radius: 50%;

    background: #ffffff;

    color: #8b7978;

    font-size: 0.75rem;
    font-weight: 800;
}

.complaint-status-step span {
    color: #776767;

    font-size: 0.73rem;
    font-weight: 700;
}

.complaint-status-step.completed::before,
.complaint-status-step.active::before {
    background: #f2c230;
}

.complaint-status-step.completed
.complaint-status-dot {
    border-color: #f2c230;

    background: #f2c230;

    color: #6f0d12;
}

.complaint-status-step.active
.complaint-status-dot {
    border-color: #8f1117;

    background: #8f1117;

    color: #ffffff;

    box-shadow:
        0 0 0 6px
        rgba(143, 17, 23, 0.10);
}

.complaint-status-step.active span {
    color: #8f1117;

    font-weight: 800;
}


@media (max-width: 767.98px) {

    .complaint-status-tracker {
        grid-template-columns: 1fr;

        gap: 14px;
    }

    .complaint-status-step {
        align-items: flex-start;
        flex-direction: row;

        text-align: left;
    }

    .complaint-status-step::before {
        top: -14px;
        left: 18px;

        width: 3px;
        height: 28px;
    }

}


/* ============================================================================
STATUS META
============================================================================ */

.complaint-status-meta {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 12px;
}


.complaint-status-meta > div {
    padding: 1rem;

    border: 1px solid #f0dfd4;
    border-radius: 16px;

    background: #fffaf5;
}


.complaint-status-meta span {
    display: block;

    margin-bottom: 0.3rem;

    color: var(--text-soft);

    font-size: 0.68rem;
    font-weight: 700;

    text-transform: uppercase;
}


.complaint-status-meta strong {
    color: #5a3031;

    font-size: 0.85rem;
}


/* ============================================================================
RESOLUTION
============================================================================ */

.complaint-resolution-public {
    margin-top: 1.5rem;

    padding: 1.3rem;

    border: 1px solid #efd27d;
    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #fffaf0,
            #fff4c7
        );
}


.complaint-resolution-label {
    display: block;

    margin-bottom: 0.4rem;

    color: #8f1117;

    font-size: 0.68rem;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.04em;
}


.complaint-resolution-public h4 {
    color: #6f0d12;

    font-size: 1.05rem;
    font-weight: 800;
}


.complaint-resolution-public p {
    color: #655454;

    line-height: 1.7;
}


.complaint-resolution-gallery {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;

    margin-top: 1rem;
}


.complaint-resolution-gallery img {
    width: 100%;
    height: 110px;

    object-fit: cover;

    border: 3px solid #ffffff;
    border-radius: 14px;

    box-shadow:
        0 8px 20px
        rgba(127, 17, 21, 0.10);
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 767.98px) {

    .complaint-status-tracker {
        grid-template-columns: 1fr;

        gap: 14px;
    }


    .complaint-status-step {
        align-items: flex-start;

        flex-direction: row;

        text-align: left;
    }


    .complaint-status-step::before {
        top: -14px;
        left: 18px;

        width: 3px;
        height: 28px;
    }


    .complaint-status-meta {
        grid-template-columns: 1fr;
    }


    .complaint-resolution-gallery {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

/* ============================================================================
ADMIN COMPLAINT TABLE — NO HORIZONTAL SCROLL
============================================================================ */

.complaints-admin-table {
    width: 100%;

    table-layout: fixed;

    font-size: 0.82rem;
}

.complaints-admin-table th,
.complaints-admin-table td {
    padding: 0.8rem 0.5rem;

    vertical-align: top;

    white-space: normal;

    overflow-wrap: anywhere;

    word-break: normal;
}


/* COLUMN WIDTH */

.complaints-admin-table th:nth-child(1),
.complaints-admin-table td:nth-child(1) {
    width: 13%;
}

.complaints-admin-table th:nth-child(2),
.complaints-admin-table td:nth-child(2) {
    width: 10%;
}

.complaints-admin-table th:nth-child(3),
.complaints-admin-table td:nth-child(3) {
    width: 9%;
}

.complaints-admin-table th:nth-child(4),
.complaints-admin-table td:nth-child(4) {
    width: 9%;
}

.complaints-admin-table th:nth-child(5),
.complaints-admin-table td:nth-child(5) {
    width: 17%;
}

.complaints-admin-table th:nth-child(6),
.complaints-admin-table td:nth-child(6) {
    width: 8%;
}

.complaints-admin-table th:nth-child(7),
.complaints-admin-table td:nth-child(7) {
    width: 13%;
}

.complaints-admin-table th:nth-child(8),
.complaints-admin-table td:nth-child(8) {
    width: 8%;
}

.complaints-admin-table th:nth-child(9),
.complaints-admin-table td:nth-child(9) {
    width: 13%;
}


.complaint-reference-text {
    color: #5e171a;

    font-size: 0.77rem;
}


.complaint-details-text {
    line-height: 1.5;
}


.complaint-evidence-thumbnail {
    display: block;

    width: 52px;
    height: 52px;

    object-fit: cover;

    border: 1px solid #e8d2c5;
    border-radius: 10px;
}


.complaint-status-form {
    width: 100%;
}


.complaint-status-form .form-select {
    width: 100%;

    min-width: 0;

    font-size: 0.76rem;
}


.complaints-admin-table .btn {
    white-space: normal;

    line-height: 1.25;
}


/* ============================================================================
TABLET / MOBILE → CARD VIEW
============================================================================ */

@media (max-width: 991.98px) {

    .complaints-admin-table,
    .complaints-admin-table tbody,
    .complaints-admin-table tr,
    .complaints-admin-table td {
        display: block;

        width: 100% !important;
    }


    .complaints-admin-table thead {
        display: none;
    }


    .complaints-admin-table tr {
        margin-bottom: 1.25rem;

        padding: 1rem;

        border: 1px solid #ecd8ca;
        border-radius: 18px;

        background: #ffffff;

        box-shadow:
            0 8px 20px
            rgba(127, 17, 21, 0.06);
    }


    .complaints-admin-table td {
        display: grid;

        grid-template-columns:
            125px minmax(0, 1fr);

        gap: 12px;

        padding: 0.65rem 0;

        border-bottom: 1px solid #f0e1d8;
    }


    .complaints-admin-table td:last-child {
        border-bottom: 0;
    }


    .complaints-admin-table td::before {
        content:
            attr(data-label);

        color: #7f1115;

        font-weight: 800;
    }

}


@media (max-width: 575.98px) {

    .complaints-admin-table td {
        grid-template-columns: 1fr;

        gap: 4px;
    }

}

/* ============================================================================
ADMIN COMPLAINTS — FINAL TABLE FIX
============================================================================ */

.admin-card:has(.complaints-admin-table) {
    overflow: hidden;
}


/* TABLE */

.complaints-admin-table {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0;

    table-layout: fixed !important;

    font-size: 0.78rem;
}

.complaints-admin-table th,
.complaints-admin-table td {
    padding: 0.75rem 0.45rem;

    vertical-align: middle;

    white-space: normal !important;

    overflow: hidden;

    overflow-wrap: anywhere;
    word-break: normal;
}

.complaints-admin-table th {
    color: #7f1115;

    font-size: 0.75rem;
    font-weight: 800;
}


/* ============================================================================
COLUMN WIDTH
Jumlah = 100%
============================================================================ */

.complaints-admin-table th:nth-child(1),
.complaints-admin-table td:nth-child(1) {
    width: 12%;
}

.complaints-admin-table th:nth-child(2),
.complaints-admin-table td:nth-child(2) {
    width: 10%;
}

.complaints-admin-table th:nth-child(3),
.complaints-admin-table td:nth-child(3) {
    width: 8%;
}

.complaints-admin-table th:nth-child(4),
.complaints-admin-table td:nth-child(4) {
    width: 9%;
}

.complaints-admin-table th:nth-child(5),
.complaints-admin-table td:nth-child(5) {
    width: 16%;
}

.complaints-admin-table th:nth-child(6),
.complaints-admin-table td:nth-child(6) {
    width: 7%;

    text-align: center;
}

.complaints-admin-table th:nth-child(7),
.complaints-admin-table td:nth-child(7) {
    width: 13%;
}

.complaints-admin-table th:nth-child(8),
.complaints-admin-table td:nth-child(8) {
    width: 10%;
}

.complaints-admin-table th:nth-child(9),
.complaints-admin-table td:nth-child(9) {
    width: 15%;
}


/* ============================================================================
RUJUKAN
============================================================================ */

.complaint-reference-text {
    display: block;

    color: #54181a;

    font-size: 0.72rem;
    font-weight: 800;

    line-height: 1.4;

    overflow-wrap: anywhere;
}


/* ============================================================================
KETERANGAN
============================================================================ */

.complaint-details-text {
    color: #3c2d2e;

    font-size: 0.77rem;
    line-height: 1.45;
}


/* ============================================================================
GAMBAR BUKTI — FIX UTAMA

!important digunakan di sini kerana kemungkinan terdapat generic rule
seperti .card img / .admin-card img yang sedang membesarkan gambar.
============================================================================ */

.complaint-evidence-cell {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.complaint-evidence-button {
    display: block !important;

    width: 56px !important;
    height: 56px !important;

    min-width: 56px !important;
    min-height: 56px !important;

    max-width: 56px !important;
    max-height: 56px !important;

    padding: 0 !important;
    margin: 0 !important;

    overflow: hidden !important;

    border: 1px solid #e4ccbd !important;
    border-radius: 11px !important;

    background: #ffffff;

    cursor: pointer;

    box-shadow:
        0 5px 12px
        rgba(127, 17, 21, 0.08);

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.complaint-evidence-button:hover {
    transform: scale(1.05);

    box-shadow:
        0 8px 18px
        rgba(127, 17, 21, 0.15);
}

.complaints-admin-table
.complaint-evidence-thumbnail {
    display: block !important;

    width: 56px !important;
    height: 56px !important;

    min-width: 56px !important;
    min-height: 56px !important;

    max-width: 56px !important;
    max-height: 56px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: cover !important;
    object-position: center !important;

    border: 0 !important;
    border-radius: 10px !important;
}

.complaint-evidence-count {
    position: absolute;

    right: -7px;
    bottom: -7px;

    display: grid;
    place-items: center;

    min-width: 24px;
    height: 24px;

    padding: 0 5px;

    border: 2px solid #ffffff;
    border-radius: 999px;

    background: #8f1117;

    color: #ffffff;

    font-size: 0.62rem;
    font-weight: 800;

    box-shadow:
        0 4px 10px
        rgba(127, 17, 21, 0.18);
}

.complaint-no-image {
    color: #8a7774;

    font-size: 0.72rem;
}


/* ============================================================================
STATUS
============================================================================ */

.complaint-status-form {
    display: block;

    width: 100%;
}

.complaint-status-form .form-select {
    width: 100% !important;
    min-width: 0 !important;

    padding-left: 0.65rem;
    padding-right: 1.8rem;

    font-size: 0.72rem;
}

.complaint-status-form .btn {
    width: 100%;

    margin-top: 0.45rem !important;

    padding: 0.42rem 0.45rem;

    font-size: 0.7rem;
}


/* ============================================================================
TINDAKAN
============================================================================ */

.complaints-admin-table td:nth-child(9) .d-grid {
    gap: 0.45rem !important;
}

.complaints-admin-table td:nth-child(9) .btn {
    width: 100%;

    padding: 0.45rem 0.4rem;

    white-space: normal;

    font-size: 0.69rem;
    line-height: 1.25;
}


/* ============================================================================
ROW
============================================================================ */

.complaints-admin-table tbody tr {
    border-bottom: 1px solid #edd9cc;
}

.complaints-admin-table tbody tr:last-child {
    border-bottom: 0;
}


/* ============================================================================
JANGAN BENARKAN GAMBAR DALAM TABLE MEMBESARKAN ROW

Rule ini hanya untuk TABLE.
Ia tidak menjejaskan gambar besar dalam Bootstrap modal.
============================================================================ */

.complaints-admin-table td img {
    max-width: 56px !important;
}


/* ============================================================================
TABLET / MOBILE

Di bawah 992px, jadual bertukar menjadi card.
Tidak ada horizontal scroll.
============================================================================ */

@media (max-width: 991.98px) {

    .complaints-admin-table,
    .complaints-admin-table tbody,
    .complaints-admin-table tr,
    .complaints-admin-table td {
        display: block;

        width: 100% !important;
    }


    .complaints-admin-table thead {
        display: none;
    }


    .complaints-admin-table tbody tr {
        margin-bottom: 1.2rem;

        padding: 1rem;

        border: 1px solid #ecd5c6;
        border-radius: 18px;

        background: #ffffff;

        box-shadow:
            0 8px 20px
            rgba(127, 17, 21, 0.06);
    }


    .complaints-admin-table td {
        display: grid;

        grid-template-columns:
            135px minmax(0, 1fr);

        gap: 12px;

        padding: 0.65rem 0;

        overflow: visible;

        border-bottom:
            1px solid #f0e1d8;
    }


    .complaints-admin-table td:last-child {
        border-bottom: 0;
    }


    .complaints-admin-table td::before {
        content: attr(data-label);

        color: #7f1115;

        font-size: 0.74rem;
        font-weight: 800;
    }


    .complaints-admin-table td:nth-child(6) {
        text-align: left;
    }

}


@media (max-width: 575.98px) {

    .complaints-admin-table td {
        grid-template-columns: 1fr;

        gap: 5px;
    }

}

/* ============================================================================
PUBLIC RENTAL PAGE
============================================================================ */

.rental-eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 0.7rem;

    padding: 0.38rem 0.75rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}


.rental-facility-section {
    padding: 4.5rem 0;

    background:
        linear-gradient(
            180deg,
            #fffaf5,
            #ffffff
        );
}


.rental-facility-card,
.rental-process-card,
.rental-form-card,
.rental-status-search-card {
    overflow: hidden;

    border: 1px solid #eed8c8;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 16px 36px
        rgba(127, 17, 21, 0.08);
}


.rental-facility-image {
    height: 310px;

    background: #fff8e1;
}


.rental-facility-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.rental-image-placeholder {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    color: #a51217;

    font-weight: 800;
}


.rental-facility-content {
    padding: 1.6rem;
}


.rental-facility-content h2,
.rental-form-card h2 {
    color: #7f1115;

    font-weight: 800;
}


.rental-facility-content > p {
    color: var(--text-soft);

    line-height: 1.7;
}


.rental-facility-info {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;

    margin-top: 1.4rem;
}


.rental-facility-info > div,
.rental-status-meta {
    padding: 1rem;

    border: 1px solid #f0e1d8;
    border-radius: 16px;

    background: #fffaf5;
}


.rental-facility-info span,
.rental-status-meta span {
    display: block;

    margin-bottom: 0.3rem;

    color: var(--text-soft);

    font-size: 0.68rem;
    font-weight: 700;

    text-transform: uppercase;
}


.rental-facility-info strong,
.rental-status-meta strong {
    color: #552c2e;

    font-size: 0.85rem;
}


.rental-process-card {
    padding: 1.6rem;
}


.rental-process-card h3 {
    margin-bottom: 1.5rem;

    color: #7f1115;

    font-weight: 800;
}


.rental-process-step {
    display: flex;

    gap: 1rem;

    padding: 1rem 0;

    border-bottom:
        1px solid #f0e1d8;
}


.rental-process-step:last-child {
    border-bottom: 0;
}


.rental-process-step > span {
    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    border-radius: 50%;

    background: #8f1117;

    color: #ffffff;

    font-size: 0.8rem;
    font-weight: 800;
}


.rental-process-step strong {
    color: #3c2325;
}


.rental-process-step p {
    margin:
        0.25rem
        0
        0;

    color: var(--text-soft);

    font-size: 0.82rem;
    line-height: 1.55;
}


.rental-booking-section {
    padding: 4.5rem 0;

    background:
        linear-gradient(
            180deg,
            #fff7ef,
            #fffaf5
        );
}


.rental-form-card,
.rental-status-search-card {
    padding: 1.7rem;
}


.rental-status-search-card {
    position: sticky;

    top: 110px;
}


.rental-form-notice {
    padding: 0.9rem 1rem;

    border-left: 4px solid #f2c230;
    border-radius: 0 14px 14px 0;

    background: #fff8e1;

    color: #685555;

    font-size: 0.82rem;
    line-height: 1.6;
}


.rental-status-result {
    padding: 1rem;

    border: 1px solid #efd079;
    border-radius: 16px;

    background:
        linear-gradient(
            135deg,
            #fffaf0,
            #fff4c7
        );
}


.rental-status-result span {
    display: block;

    margin-bottom: 0.3rem;

    color: #725757;

    font-size: 0.68rem;
    font-weight: 700;

    text-transform: uppercase;
}


.rental-status-result strong {
    color: #8f1117;

    font-size: 1.15rem;
}


.rental-status-message {
    margin-top: 1rem;

    padding: 1rem;

    border-left:
        4px solid #f2c230;

    border-radius:
        0 14px 14px 0;

    background: #fffaf0;

    color: #5f5050;

    line-height: 1.7;
}


.rental-public-note {
    margin-top: 1rem;

    padding: 1rem;

    border: 1px solid #eed8c8;
    border-radius: 16px;

    background: #ffffff;
}


.rental-public-note span {
    display: block;

    margin-bottom: 0.4rem;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;

    text-transform: uppercase;
}


.rental-public-note p {
    margin-bottom: 0;

    color: #5f5050;

    line-height: 1.7;
}


.rental-not-found-icon {
    display: grid;
    place-items: center;

    width: 60px;
    height: 60px;

    margin:
        0 auto
        1rem;

    border-radius: 50%;

    background: #fff1bf;

    color: #8f1117;

    font-size: 1.4rem;
    font-weight: 800;
}


@media (max-width: 991.98px) {

    .rental-status-search-card {
        position: static;
    }

}


@media (max-width: 575.98px) {

    .rental-facility-section,
    .rental-booking-section {
        padding: 3.3rem 0;
    }


    .rental-facility-image {
        height: 230px;
    }


    .rental-facility-info {
        grid-template-columns: 1fr;
    }


    .rental-form-card,
    .rental-status-search-card {
        padding: 1.3rem;
    }

}

.rental-section-heading {
    max-width: 720px;
    margin-bottom: 2rem;
}

.rental-section-heading h2 {
    margin-bottom: .6rem;
    color: #7f1115;
    font-weight: 800;
}

.rental-section-heading p {
    margin-bottom: 0;
    color: var(--text-soft);
}


.rental-items-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 22px;
}


.rental-item-card {
    display: flex;
    flex-direction: column;

    overflow: hidden;

    border: 1px solid #eed8c8;
    border-radius: 24px;

    background: #fff;

    box-shadow:
        0 16px 36px
        rgba(127, 17, 21, .08);
}


.rental-item-image {
    height: 230px;

    background: #fff8e1;
}


.rental-item-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.rental-item-content {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 1.4rem;
}


.rental-item-content h3 {
    color: #7f1115;

    font-size: 1.15rem;
    font-weight: 800;
}


.rental-item-content > p {
    color: var(--text-soft);

    font-size: .85rem;
    line-height: 1.65;
}


.rental-item-meta {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;

    margin-top: auto;
}


.rental-item-meta > div {
    padding: .8rem;

    border: 1px solid #f0e1d8;
    border-radius: 14px;

    background: #fffaf5;
}


.rental-item-meta span {
    display: block;

    margin-bottom: .25rem;

    color: var(--text-soft);

    font-size: .65rem;
    font-weight: 700;

    text-transform: uppercase;
}


.rental-item-meta strong {
    color: #552c2e;

    font-size: .78rem;
}


.rental-process-section {
    padding: 0 0 4.5rem;

    background: #fff;
}


.rental-process-card {
    padding: 1.6rem;

    border: 1px solid #eed8c8;
    border-radius: 24px;

    background: #fff;

    box-shadow:
        0 16px 36px
        rgba(127, 17, 21, .07);
}


.rental-process-heading {
    margin-bottom: 1.4rem;
}


.rental-process-heading h2 {
    color: #7f1115;

    font-weight: 800;
}


.rental-process-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 20px;
}


.rental-process-grid
.rental-process-step {
    border: 0;

    padding: 1rem;

    border-radius: 18px;

    background: #fffaf5;
}


@media (max-width: 991.98px) {

    .rental-items-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .rental-process-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 575.98px) {

    .rental-items-grid {
        grid-template-columns: 1fr;
    }

    .rental-item-image {
        height: 220px;
    }

    .rental-item-meta {
        grid-template-columns: 1fr;
    }

}

/* ============================================================================
TOURISM — PUBLIC PAGE
============================================================================ */

.tourism-page-eyebrow {
    display: inline-flex;
    align-items: center;

    margin-bottom: 0.7rem;

    padding: 0.38rem 0.78rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}


.tourism-list-section {
    padding: 4.7rem 0 5rem;

    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(242, 194, 48, 0.09),
            transparent 26%
        ),
        linear-gradient(
            180deg,
            #fffaf5,
            #ffffff
        );
}


/* ============================================================================
HEADING
============================================================================ */

.tourism-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 2rem;

    margin-bottom: 2rem;
}


.tourism-section-heading h2 {
    margin-bottom: 0.45rem;

    color: #7f1115;

    font-size: clamp(
        1.65rem,
        3vw,
        2.15rem
    );

    font-weight: 800;
}


.tourism-section-heading p {
    margin-bottom: 0;

    color: var(--text-soft);
}


.tourism-total-badge {
    display: flex;
    align-items: center;

    gap: 10px;

    padding: 0.7rem 1rem;

    flex-shrink: 0;

    border: 1px solid #ecd2bd;
    border-radius: 16px;

    background: #ffffff;

    box-shadow:
        0 8px 20px
        rgba(127, 17, 21, 0.06);
}


.tourism-total-badge strong {
    color: #b31217;

    font-size: 1.3rem;
    font-weight: 800;
}


.tourism-total-badge span {
    color: #715758;

    font-size: 0.72rem;
    font-weight: 700;

    text-transform: uppercase;
}


/* ============================================================================
GRID
============================================================================ */

.tourism-card-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}


/* ============================================================================
CARD
============================================================================ */

.tourism-modern-card {
    display: flex;
    flex-direction: column;

    min-width: 0;

    overflow: hidden;

    border: 1px solid #ecd9cc;
    border-radius: 26px;

    background: #ffffff;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, 0.08);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.tourism-modern-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 24px 52px
        rgba(127, 17, 21, 0.14);
}


/* ============================================================================
IMAGE
============================================================================ */

.tourism-modern-image {
    position: relative;

    height: 245px;

    overflow: hidden;

    background: #fff8e1;
}


.tourism-modern-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.4s ease;
}


.tourism-modern-card:hover
.tourism-modern-image img {
    transform: scale(1.04);
}


.tourism-image-placeholder {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    background:
        linear-gradient(
            135deg,
            #fff8e1,
            #fff1d2
        );

    color: #b31217;

    font-weight: 800;
}


.tourism-image-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            transparent 50%,
            rgba(70, 8, 10, 0.15)
        );

    pointer-events: none;
}


/* ============================================================================
BADGES
============================================================================ */

.tourism-category-badge {
    position: absolute;

    left: 16px;
    bottom: 16px;

    padding: 0.38rem 0.7rem;

    border: 1px solid rgba(242, 194, 48, 0.65);
    border-radius: 999px;

    background: rgba(255, 249, 227, 0.96);

    color: #9f1116;

    font-size: 0.68rem;
    font-weight: 800;
}


.tourism-featured-badge {
    position: absolute;

    top: 16px;
    right: 16px;

    padding: 0.35rem 0.65rem;

    border-radius: 999px;

    background: #f2c230;

    color: #6f0d12;

    font-size: 0.65rem;
    font-weight: 800;

    box-shadow:
        0 5px 14px
        rgba(70, 8, 10, 0.12);
}


/* ============================================================================
CONTENT
============================================================================ */

.tourism-modern-content {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 1.45rem;
}


.tourism-modern-content h3 {
    margin-bottom: 0.6rem;

    color: #292021;

    font-size: 1.12rem;
    font-weight: 800;

    line-height: 1.35;
}


.tourism-modern-description {
    display: -webkit-box;

    margin-bottom: 1.2rem;

    overflow: hidden;

    color: #69727a;

    font-size: 0.84rem;
    line-height: 1.65;

    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}


/* ============================================================================
INFO
============================================================================ */

.tourism-info-list {
    display: grid;

    gap: 9px;

    margin-bottom: 1.35rem;
}


.tourism-info-row {
    display: flex;
    align-items: center;

    gap: 10px;
}


.tourism-info-icon {
    display: grid;
    place-items: center;

    width: 32px;
    height: 32px;

    flex: 0 0 32px;

    border-radius: 10px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.67rem;
    font-weight: 800;
}


.tourism-info-row small {
    display: block;

    margin-bottom: 1px;

    color: #917b79;

    font-size: 0.61rem;
    font-weight: 700;

    text-transform: uppercase;
}


.tourism-info-row strong,
.tourism-info-row a {
    display: block;

    color: #654849;

    font-size: 0.78rem;
    font-weight: 700;

    text-decoration: none;
}


.tourism-info-row a:hover {
    color: #b31217;
}


/* ============================================================================
BUTTONS
============================================================================ */

.tourism-card-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-top: auto;
}


.tourism-card-actions .btn {
    padding: 0.55rem 0.85rem;

    font-size: 0.73rem;
    font-weight: 700;
}


.tourism-contact-button {
    background: #ffffff;
}


/* ============================================================================
EMPTY STATE
============================================================================ */

.tourism-empty-state {
    max-width: 620px;

    margin: 0 auto;

    padding: 3rem;

    border: 1px solid #edd9ca;
    border-radius: 24px;

    background: #ffffff;

    text-align: center;
}


.tourism-empty-icon {
    display: grid;
    place-items: center;

    width: 60px;
    height: 60px;

    margin: 0 auto 1rem;

    border-radius: 50%;

    background: #fff1bf;

    color: #8f1117;

    font-size: 1.4rem;
}


.tourism-empty-state h3 {
    color: #7f1115;

    font-weight: 800;
}


.tourism-empty-state p {
    margin-bottom: 0;

    color: var(--text-soft);
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {

    .tourism-card-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 767.98px) {

    .tourism-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

}


@media (max-width: 575.98px) {

    .tourism-list-section {
        padding: 3.5rem 0;
    }

    .tourism-card-grid {
        grid-template-columns: 1fr;
    }

    .tourism-modern-image {
        height: 230px;
    }

    .tourism-card-actions .btn {
        flex: 1;
    }

}

/* ============================================================================
TOURISM DETAIL
============================================================================ */

.tourism-detail-hero {
    padding: 4.2rem 0;

    border-bottom: 1px solid #ecd6c5;

    background:
        radial-gradient(
            circle at 90% 15%,
            rgba(242, 194, 48, 0.13),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #fff8e1,
            #fff4d4
        );
}


.tourism-detail-back {
    display: inline-flex;

    margin-bottom: 1.4rem;

    color: #8f1117;

    font-size: 0.78rem;
    font-weight: 800;

    text-decoration: none;
}


.tourism-detail-back:hover {
    color: #c91b1f;
}


.tourism-detail-category,
.tourism-detail-eyebrow {
    display: inline-flex;
    align-items: center;

    padding: 0.38rem 0.75rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}


.tourism-detail-hero h1 {
    max-width: 850px;

    margin:
        0.8rem
        0
        0.6rem;

    color: #7f1115;

    font-size: clamp(
        2rem,
        4vw,
        3rem
    );

    font-weight: 800;
    line-height: 1.15;
}


.tourism-detail-hero-location {
    margin-bottom: 0;

    color: #6c5051;

    font-size: 0.95rem;
}


/* ============================================================================
SECTION
============================================================================ */

.tourism-detail-section {
    padding: 4.5rem 0 5.5rem;

    background:
        linear-gradient(
            180deg,
            #fffaf5,
            #ffffff
        );
}


/* ============================================================================
GALLERY
============================================================================ */

.tourism-detail-gallery {
    margin-bottom: 1.5rem;
}


.tourism-detail-main-image-wrap {
    overflow: hidden;

    border: 1px solid #ead5c6;
    border-radius: 26px;

    background: #fff8e1;

    box-shadow:
        0 16px 38px
        rgba(127, 17, 21, 0.08);
}


.tourism-detail-main-image-button {
    position: relative;

    display: block;

    width: 100%;

    padding: 0;

    overflow: hidden;

    border: 0;

    background: transparent;

    cursor: zoom-in;
}


.tourism-detail-main-image {
    display: block;

    width: 100%;
    height: 470px;

    object-fit: cover;

    transition:
        transform 0.35s ease;
}


.tourism-detail-main-image-button:hover
.tourism-detail-main-image {
    transform: scale(1.02);
}


.tourism-detail-view-image {
    position: absolute;

    right: 18px;
    bottom: 18px;

    padding: 0.55rem 0.85rem;

    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 999px;

    background:
        rgba(70, 10, 12, 0.76);

    color: #ffffff;

    font-size: 0.7rem;
    font-weight: 800;

    backdrop-filter:
        blur(6px);
}


.tourism-detail-no-image {
    display: grid;
    place-items: center;

    height: 430px;

    color: #b31217;

    font-weight: 800;
}


.tourism-detail-thumbnails {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 12px;

    margin-top: 12px;
}


.tourism-detail-thumbnail {
    height: 105px;

    padding: 3px;

    overflow: hidden;

    border: 2px solid transparent;
    border-radius: 16px;

    background: #ffffff;

    cursor: pointer;

    transition:
        border-color 0.18s ease,
        transform 0.18s ease;
}


.tourism-detail-thumbnail:hover {
    transform:
        translateY(-2px);
}


.tourism-detail-thumbnail.active {
    border-color: #f2c230;
}


.tourism-detail-thumbnail img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 11px;
}


/* ============================================================================
DESCRIPTION
============================================================================ */

.tourism-detail-description-card {
    padding: 1.7rem;

    border: 1px solid #ead8ca;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, 0.06);
}


.tourism-detail-description-card h2 {
    margin:
        0.8rem
        0
        1rem;

    color: #7f1115;

    font-size: 1.5rem;
    font-weight: 800;
}


.tourism-detail-description {
    color: #5f5152;

    font-size: 0.92rem;
    line-height: 1.8;
}


/* ============================================================================
INFO CARDS
============================================================================ */

.tourism-detail-info-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 14px;

    margin-top: 1.5rem;
}


.tourism-detail-info-card {
    padding: 1rem 1.1rem;

    border: 1px solid #ead9cd;
    border-radius: 18px;

    background: #fffaf5;
}


.tourism-detail-info-card span {
    display: block;

    margin-bottom: 0.3rem;

    color: #8c7474;

    font-size: 0.65rem;
    font-weight: 800;

    letter-spacing: 0.03em;
    text-transform: uppercase;
}


.tourism-detail-info-card strong {
    color: #553638;

    font-size: 0.87rem;
}


/* ============================================================================
CONTACT CARD
============================================================================ */

.tourism-detail-contact-card {
    position: sticky;

    top: 110px;

    padding: 1.6rem;

    border: 1px solid #e7cdb9;
    border-radius: 24px;

    background:
        radial-gradient(
            circle at 90% 5%,
            rgba(242, 194, 48, 0.13),
            transparent 30%
        ),
        #ffffff;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, 0.10);
}


.tourism-detail-contact-card h2 {
    margin:
        0.8rem
        0
        0.7rem;

    color: #7f1115;

    font-size: 1.35rem;
    font-weight: 800;
}


.tourism-detail-contact-card > p {
    color: #6d5959;

    font-size: 0.84rem;
    line-height: 1.65;
}


.tourism-detail-contact-number {
    margin-top: 1.2rem;

    padding: 1rem;

    border: 1px solid #efd079;
    border-radius: 17px;

    background: #fff8e1;
}


.tourism-detail-contact-number small {
    display: block;

    margin-bottom: 0.25rem;

    color: #806566;

    font-size: 0.65rem;
    font-weight: 700;

    text-transform: uppercase;
}


.tourism-detail-contact-number strong {
    color: #8f1117;

    font-size: 1.05rem;
}


.tourism-detail-contact-actions {
    display: grid;

    gap: 9px;

    margin-top: 1rem;
}


.tourism-detail-contact-actions .btn {
    width: 100%;

    font-size: 0.8rem;
    font-weight: 700;
}


.tourism-detail-contact-note,
.tourism-detail-contact-unavailable {
    margin-top: 1rem;

    padding: 0.85rem;

    border-left: 4px solid #f2c230;
    border-radius: 0 12px 12px 0;

    background: #fffaf0;

    color: #725e5f;

    font-size: 0.74rem;
    line-height: 1.55;
}


/* ============================================================================
IMAGE MODAL
============================================================================ */

.tourism-image-modal-content {
    overflow: hidden;

    border: 0;
    border-radius: 22px;
}


.tourism-image-modal-body {
    display: grid;
    place-items: center;

    min-height: 300px;

    padding: 1rem;

    background: #181313;
}


.tourism-image-modal-body img {
    display: block;

    max-width: 100%;
    max-height: 76vh;

    object-fit: contain;

    border-radius: 10px;
}


/* ============================================================================
MOBILE CONTACT BAR
============================================================================ */

.tourism-mobile-contact-bar {
    display: none;
}


/* ============================================================================
NOT FOUND
============================================================================ */

.tourism-detail-not-found {
    min-height: 65vh;

    display: grid;
    align-items: center;

    padding: 5rem 0;

    background: #fffaf5;
}


.tourism-detail-not-found-card {
    max-width: 620px;

    margin: 0 auto;

    padding: 3rem;

    border: 1px solid #ead6c7;
    border-radius: 26px;

    background: #ffffff;

    text-align: center;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, 0.08);
}


.tourism-detail-not-found-icon {
    display: grid;
    place-items: center;

    width: 58px;
    height: 58px;

    margin:
        0 auto
        1rem;

    border-radius: 50%;

    background: #fff1bf;

    color: #8f1117;

    font-size: 1.3rem;
    font-weight: 800;
}


.tourism-detail-not-found-card h1 {
    color: #7f1115;

    font-weight: 800;
}


.tourism-detail-not-found-card p {
    color: var(--text-soft);
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {

    .tourism-detail-contact-card {
        position: static;
    }

}


@media (max-width: 767.98px) {

    .tourism-detail-section {
        padding:
            3.3rem
            0
            6.5rem;
    }


    .tourism-detail-main-image {
        height: 360px;
    }


    .tourism-detail-thumbnails {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    .tourism-mobile-contact-bar {
        position: fixed;

        right: 0;
        bottom: 0;
        left: 0;

        z-index: 1030;

        display: flex;

        gap: 9px;

        padding:
            0.8rem
            1rem
            calc(
                0.8rem +
                env(safe-area-inset-bottom)
            );

        border-top:
            1px solid #e8d2c3;

        background:
            rgba(255, 255, 255, 0.96);

        box-shadow:
            0 -10px 28px
            rgba(80, 10, 12, 0.10);

        backdrop-filter:
            blur(10px);
    }


    .tourism-mobile-contact-bar .btn {
        flex: 1;

        font-size: 0.78rem;
    }

}


@media (max-width: 575.98px) {

    .tourism-detail-hero {
        padding:
            3.2rem
            0;
    }


    .tourism-detail-main-image {
        height: 280px;
    }


    .tourism-detail-thumbnails {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 8px;
    }


    .tourism-detail-thumbnail {
        height: 80px;
    }


    .tourism-detail-info-grid {
        grid-template-columns: 1fr;
    }


    .tourism-detail-description-card,
    .tourism-detail-contact-card {
        padding: 1.3rem;
    }

}

.hero-section {
    position: relative !important;
    isolation: auto !important;

    display: flex !important;
    align-items: center !important;

    min-height: 720px !important;

    overflow: hidden !important;

    background: #1c1c1c !important;

    color: #ffffff !important;
}


/* Matikan pseudo overlay lama jika ada */
.hero-section::before,
.hero-section::after {
    content: none !important;
    display: none !important;
}


/* ============================================================================
VIDEO — FIX UTAMA

Jangan guna z-index negatif.
============================================================================ */

.hero-background-video {
    position: absolute !important;

    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;

    z-index: 0 !important;

    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    width: 100% !important;
    height: 100% !important;

    max-width: none !important;

    object-fit: cover !important;
    object-position: center 62% !important;

    pointer-events: none !important;
}


/* ============================================================================
OVERLAY — NEUTRAL / CERAH

Tiada warna merah.
Sedikit gelap di kiri sahaja supaya tulisan putih boleh dibaca.
============================================================================ */

.hero-overlay {
    position: absolute !important;

    inset: 0 !important;

    z-index: 1 !important;

    display: block !important;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.34) 0%,
            rgba(0, 0, 0, 0.25) 30%,
            rgba(0, 0, 0, 0.14) 52%,
            rgba(0, 0, 0, 0.05) 75%,
            rgba(0, 0, 0, 0.00) 100%
        ) !important;

    pointer-events: none !important;
}


/* ============================================================================
GLOW LAMA

Buang semua tint merah / gold yang kuat.
============================================================================ */

.hero-gold-glow {
    position: absolute !important;

    inset: 0 !important;

    z-index: 1 !important;

    display: block !important;

    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(255, 255, 255, 0.06),
            transparent 34%
        ) !important;

    pointer-events: none !important;
}


/* ============================================================================
CONTENT
============================================================================ */

.hero-content {
    position: relative !important;

    z-index: 3 !important;

    width: 100% !important;

    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}


/* ============================================================================
TEXT
============================================================================ */

.hero-section h1 {
    position: relative !important;

    z-index: 3 !important;

    max-width: 760px !important;

    margin-bottom: 1.25rem !important;

    color: #ffffff !important;

    font-weight: 800 !important;
    line-height: 1.03 !important;

    text-shadow:
        0 3px 15px
        rgba(0, 0, 0, 0.30) !important;
}


.hero-description,
.hero-section .hero-description {
    position: relative !important;

    z-index: 3 !important;

    max-width: 760px !important;

    color:
        rgba(
            255,
            255,
            255,
            0.96
        ) !important;

    text-shadow:
        0 2px 10px
        rgba(0, 0, 0, 0.28) !important;
}


/* ============================================================================
BADGE
============================================================================ */

.hero-badge {
    position: relative !important;

    z-index: 3 !important;

    color: #ffffff !important;

    background:
        rgba(
            0,
            0,
            0,
            0.18
        ) !important;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.32
        ) !important;

    backdrop-filter:
        blur(7px);
}


/* ============================================================================
BUTTONS
============================================================================ */

.hero-actions {
    position: relative !important;

    z-index: 3 !important;
}


.hero-actions .btn-light {
    background: #ffffff !important;
    border-color: #ffffff !important;

    color: #6f0d12 !important;
}


.hero-actions .btn-light:hover {
    background: #fff4c7 !important;
    border-color: #fff4c7 !important;

    color: #6f0d12 !important;
}


.hero-actions .btn-outline-light {
    color: #ffffff !important;

    border-color:
        rgba(
            255,
            255,
            255,
            0.82
        ) !important;

    background:
        rgba(
            0,
            0,
            0,
            0.08
        ) !important;
}


.hero-actions .btn-outline-light:hover {
    color: #6f0d12 !important;

    background: #ffffff !important;
    border-color: #ffffff !important;
}


/* ============================================================================
LOCATION
============================================================================ */

.hero-location {
    position: relative !important;

    z-index: 3 !important;

    color: #ffffff !important;

    background:
        rgba(
            0,
            0,
            0,
            0.20
        ) !important;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.24
        ) !important;

    backdrop-filter:
        blur(7px);
}


/* ============================================================================
TABLET
============================================================================ */

@media (max-width: 991.98px) {

    .hero-section {
        min-height: 650px !important;
    }


    .hero-background-video {
        object-position:
            center 60% !important;
    }


    .hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(0, 0, 0, 0.36) 0%,
                rgba(0, 0, 0, 0.23) 55%,
                rgba(0, 0, 0, 0.05) 100%
            ) !important;
    }


    .hero-content {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }

}


/* ============================================================================
MOBILE
============================================================================ */

@media (max-width: 767.98px) {

    .hero-section {
        min-height: 620px !important;
    }


    .hero-background-video {
        object-position:
            center 58% !important;
    }


    .hero-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(0, 0, 0, 0.15) 0%,
                rgba(0, 0, 0, 0.22) 45%,
                rgba(0, 0, 0, 0.36) 100%
            ) !important;
    }


    .hero-content {
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
    }

}


/* ============================================================================
REDUCED MOTION FIX

Jangan sembunyikan video.
============================================================================ */

@media (prefers-reduced-motion: reduce) {

    .hero-background-video {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

}

/* =========================================
   FOOTER - RAKAN STRATEGIK
========================================= */

.footer-strategic-card {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 28px;
    padding: 24px;
    backdrop-filter: blur(8px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10);
    max-width: 420px;
}

.footer-strategic-badge {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 999px;
    background: #f4c534;
    color: #7f1118;
    font-weight: 800;
    font-size: 0.85rem;
    margin-bottom: 18px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.footer-partner-item {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 22px;
    padding: 16px;
}

.footer-partner-item + .footer-partner-item {
    margin-top: 18px;
}

.footer-partner-logo-box {
    background: #ffffff;
    border-radius: 18px;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 130px;
    margin-bottom: 16px;
}

.footer-partner-logo {
    max-width: 100%;
    max-height: 95px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.footer-partner-text h5 {
    margin: 0 0 6px;
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 800;
}

.footer-partner-text strong {
    display: block;
    margin-bottom: 8px;
    color: #fff3d4;
    font-size: 1rem;
    font-weight: 700;
}

.footer-partner-text p {
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.7;
    font-size: 0.98rem;
}

.footer-partner-item-secondary .footer-partner-logo-box {
    min-height: 120px;
}

.footer-partner-item-secondary .footer-partner-logo {
    max-height: 88px;
}

/* Responsive */
@media (max-width: 767.98px) {
    .footer-strategic-card {
        max-width: 100%;
        padding: 20px;
    }

    .footer-partner-logo-box {
        min-height: 110px;
        padding: 14px;
    }

    .footer-partner-logo {
        max-height: 78px;
    }

    .footer-partner-text h5 {
        font-size: 1.2rem;
    }
}

.footer-strategic-card {
    width: 100%;
    max-width: 540px;

    padding: 20px;

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius: 24px;

    background:
        rgba(255, 255, 255, 0.08);

    box-shadow:
        0 12px 28px
        rgba(70, 5, 8, 0.10);
}


.footer-strategic-heading {
    display: inline-flex;

    margin-bottom: 16px;

    padding: 8px 16px;

    border-radius: 999px;

    background: #f2c230;

    color: #6f0d12;

    font-size: 0.78rem;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.03em;
}


/* =========================================================
DUA LOGO SEBARIS
========================================================= */

.footer-strategic-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 14px;
}


/* =========================================================
INDIVIDUAL ITEM
========================================================= */

.footer-strategic-item {
    min-width: 0;

    padding: 12px;

    border:
        1px solid
        rgba(255, 255, 255, 0.12);

    border-radius: 18px;

    background:
        rgba(255, 255, 255, 0.05);

    text-align: center;
}


/* =========================================================
LOGO BOX
========================================================= */

.footer-strategic-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 105px;

    padding: 12px;

    margin-bottom: 10px;

    overflow: hidden;

    border-radius: 15px;

    background: #ffffff;
}


.footer-strategic-logo {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: center;
}


/* KPT sedikit lebih kecil kerana bentuk logo */
.footer-kpt-logo {
    max-width: 150px;
    max-height: 78px;
}


/* Kampung Angkat Madani lebih lebar */
.footer-madani-logo {
    max-width: 175px;
    max-height: 75px;
}


/* =========================================================
NAMA
========================================================= */

.footer-strategic-name {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;

    color: #ffffff;

    font-size: 0.83rem;
    font-weight: 700;

    line-height: 1.35;
}


/* =========================================================
MOBILE

Masih kekal 2 logo sebaris.
========================================================= */

@media (max-width: 575.98px) {

    .footer-strategic-card {
        padding: 15px;

        border-radius: 20px;
    }


    .footer-strategic-grid {
        gap: 9px;
    }


    .footer-strategic-item {
        padding: 8px;
    }


    .footer-strategic-logo-box {
        height: 82px;

        padding: 8px;

        margin-bottom: 8px;
    }


    .footer-kpt-logo {
        max-width: 115px;
        max-height: 62px;
    }


    .footer-madani-logo {
        max-width: 130px;
        max-height: 58px;
    }


    .footer-strategic-name {
        min-height: 36px;

        font-size: 0.68rem;
    }

}

.footer-bottom {
    width: 100%;

    margin-top: 30px;
    padding-top: 18px;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.14);

    text-align: center;
}


.footer-copyright {
    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            0.72
        );

    font-size: 0.78rem;
    line-height: 1.5;
}


/* Mobile */
@media (max-width: 767.98px) {

    .footer-bottom {
        margin-top: 24px;
        padding-top: 16px;
    }


    .footer-copyright {
        font-size: 0.72rem;
    }

}

/* ============================================================================
CARTA ORGANISASI — IMAGE VERSION
============================================================================ */

.organisation-chart-image-card {
    max-width: 930px;

    margin:
        2.5rem
        auto
        0;

    padding: 14px;

    overflow: hidden;

    border: 1px solid #ead4c5;
    border-radius: 26px;

    background: #ffffff;

    box-shadow:
        0 18px 42px
        rgba(127, 17, 21, 0.10);
}


/* ============================================================================
BUTTON WRAPPER
============================================================================ */

.organisation-chart-image-button {
    position: relative;

    display: block;

    width: 100%;

    padding: 0;

    overflow: hidden;

    border: 0;
    border-radius: 18px;

    background: #ffffff;

    cursor: zoom-in;
}


/* ============================================================================
IMAGE

width 100% memastikan gambar tidak melebihi container.
height auto mengekalkan nisbah asal carta.
============================================================================ */

.organisation-chart-full-image {
    display: block;

    width: 100%;
    height: auto;

    max-width: 100%;

    margin: 0 auto;

    object-fit: contain;

    border-radius: 16px;
}


/* ============================================================================
CLICK LABEL
============================================================================ */

.organisation-chart-view-label {
    position: absolute;

    right: 18px;
    bottom: 18px;

    padding: 0.55rem 0.85rem;

    border:
        1px solid
        rgba(255, 255, 255, 0.65);

    border-radius: 999px;

    background:
        rgba(111, 13, 18, 0.88);

    color: #ffffff;

    font-size: 0.7rem;
    font-weight: 800;

    box-shadow:
        0 7px 18px
        rgba(0, 0, 0, 0.16);

    backdrop-filter:
        blur(6px);
}


/* ============================================================================
MODAL
============================================================================ */

.organisation-chart-modal-content {
    overflow: hidden;

    border: 0;
    border-radius: 24px;
}


.organisation-modal-label {
    display: block;

    margin-bottom: 3px;

    color: #8f1117;

    font-size: 0.67rem;
    font-weight: 800;

    letter-spacing: 0.04em;

    text-transform: uppercase;
}


.organisation-chart-modal-body {
    max-height: 82vh;

    padding: 18px;

    overflow: auto;

    background: #f3eee9;

    text-align: center;
}


.organisation-chart-modal-body img {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;

    margin: 0 auto;

    border-radius: 12px;

    background: #ffffff;

    box-shadow:
        0 10px 28px
        rgba(0, 0, 0, 0.12);
}


/* ============================================================================
MOBILE
============================================================================ */

@media (max-width: 767.98px) {

    .organisation-chart-image-card {
        margin-top: 1.8rem;

        padding: 8px;

        border-radius: 18px;
    }


    .organisation-chart-image-button,
    .organisation-chart-full-image {
        border-radius: 12px;
    }


    .organisation-chart-view-label {
        right: 10px;
        bottom: 10px;

        padding: 0.45rem 0.65rem;

        font-size: 0.62rem;
    }


    .organisation-chart-modal-body {
        padding: 8px;
    }

}

.entrepreneur-detail-hero {
    padding: 4rem 0;

    border-bottom: 1px solid #ecd6c5;

    background:
        radial-gradient(
            circle at 90% 15%,
            rgba(242, 194, 48, .13),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #fff8e1,
            #fff4d4
        );
}


.entrepreneur-detail-back {
    display: block;

    margin-bottom: 1.3rem;

    color: #8f1117;

    font-size: .78rem;
    font-weight: 800;

    text-decoration: none;
}


.entrepreneur-detail-category,
.entrepreneur-detail-eyebrow {
    display: inline-flex;

    padding: .38rem .75rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: .68rem;
    font-weight: 800;

    letter-spacing: .04em;
    text-transform: uppercase;
}


.entrepreneur-detail-hero h1 {
    margin: .8rem 0 .5rem;

    color: #7f1115;

    font-size:
        clamp(
            2rem,
            4vw,
            3rem
        );

    font-weight: 800;
}


.entrepreneur-detail-owner,
.entrepreneur-detail-location {
    margin-bottom: .35rem;

    color: #6c5051;
}


.entrepreneur-detail-section {
    padding: 4.5rem 0 5rem;

    background:
        linear-gradient(
            180deg,
            #fffaf5,
            #ffffff
        );
}


/* GALLERY */

.entrepreneur-main-image-wrap {
    overflow: hidden;

    border: 1px solid #ead5c6;
    border-radius: 26px;

    background: #fff8e1;

    box-shadow:
        0 16px 38px
        rgba(127, 17, 21, .08);
}


.entrepreneur-main-image-button {
    position: relative;

    display: block;

    width: 100%;

    padding: 0;

    border: 0;

    background: transparent;

    cursor: zoom-in;
}


.entrepreneur-main-image {
    display: block;

    width: 100%;
    height: 460px;

    object-fit: cover;
    object-position: center;

    transition: transform .25s ease;
}


.entrepreneur-main-image-button:hover
.entrepreneur-main-image {
    transform: scale(1.02);
}


.entrepreneur-view-image {
    position: absolute;

    right: 18px;
    bottom: 18px;

    padding: .55rem .85rem;

    border-radius: 999px;

    background:
        rgba(80, 10, 12, .80);

    color: #ffffff;

    font-size: .7rem;
    font-weight: 800;
}


.entrepreneur-no-image {
    display: grid;
    place-items: center;

    height: 430px;

    color: #b31217;

    font-weight: 800;
}


.entrepreneur-thumbnails {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    gap: 12px;

    margin-top: 12px;
}


.entrepreneur-thumbnail {
    height: 105px;

    padding: 3px;

    overflow: hidden;

    border: 2px solid transparent;
    border-radius: 16px;

    background: #ffffff;

    cursor: pointer;
}


.entrepreneur-thumbnail.active {
    border-color: #f2c230;
}


.entrepreneur-thumbnail img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 11px;
}


/* DESCRIPTION */

.entrepreneur-description-card {
    margin-top: 1.5rem;

    padding: 1.7rem;

    border: 1px solid #ead8ca;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, .06);
}


.entrepreneur-description-card h2 {
    margin: .8rem 0 1rem;

    color: #7f1115;

    font-size: 1.5rem;
    font-weight: 800;
}


.entrepreneur-description {
    color: #5f5152;

    line-height: 1.8;
}


/* INFO */

.entrepreneur-info-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 14px;

    margin-top: 1.5rem;
}


.entrepreneur-info-card {
    padding: 1rem 1.1rem;

    border: 1px solid #ead9cd;
    border-radius: 18px;

    background: #fffaf5;
}


.entrepreneur-info-card span {
    display: block;

    margin-bottom: .3rem;

    color: #8c7474;

    font-size: .65rem;
    font-weight: 800;

    text-transform: uppercase;
}


.entrepreneur-info-card strong {
    color: #553638;

    font-size: .87rem;
}


/* CONTACT */

.entrepreneur-contact-card {
    position: sticky;

    top: 110px;

    padding: 1.6rem;

    border: 1px solid #e7cdb9;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, .10);
}


.entrepreneur-contact-card h2 {
    margin: .8rem 0 .7rem;

    color: #7f1115;

    font-size: 1.3rem;
    font-weight: 800;
}


.entrepreneur-contact-card > p {
    color: #6d5959;

    font-size: .84rem;
    line-height: 1.65;
}


.entrepreneur-contact-number {
    margin-top: 1rem;

    padding: 1rem;

    border: 1px solid #efd079;
    border-radius: 17px;

    background: #fff8e1;
}


.entrepreneur-contact-number small {
    display: block;

    margin-bottom: .2rem;

    color: #806566;

    font-size: .65rem;
    font-weight: 700;

    text-transform: uppercase;
}


.entrepreneur-contact-number strong {
    color: #8f1117;

    font-size: 1.05rem;
}


.entrepreneur-contact-actions {
    display: grid;

    gap: 9px;

    margin-top: 1rem;
}


.entrepreneur-contact-actions .btn {
    width: 100%;

    font-size: .8rem;
    font-weight: 700;
}


.entrepreneur-contact-note {
    margin-top: 1rem;

    padding: .85rem;

    border-left: 4px solid #f2c230;
    border-radius: 0 12px 12px 0;

    background: #fffaf0;

    color: #725e5f;

    font-size: .74rem;
    line-height: 1.55;
}


/* IMAGE POPUP */

.entrepreneur-image-modal-content {
    overflow: hidden;

    border: 0;
    border-radius: 22px;
}


.entrepreneur-image-modal-body {
    display: grid;
    place-items: center;

    min-height: 300px;

    padding: 1rem;

    background: #181313;
}


.entrepreneur-image-modal-body img {
    display: block;

    max-width: 100%;
    max-height: 76vh;

    object-fit: contain;

    border-radius: 10px;
}


/* NOT FOUND */

.entrepreneur-detail-not-found {
    display: grid;
    align-items: center;

    min-height: 65vh;

    padding: 5rem 0;

    background: #fffaf5;
}


.entrepreneur-not-found-card {
    max-width: 620px;

    margin: 0 auto;

    padding: 3rem;

    border: 1px solid #ead6c7;
    border-radius: 26px;

    background: #ffffff;

    text-align: center;
}


.entrepreneur-not-found-icon {
    display: grid;
    place-items: center;

    width: 58px;
    height: 58px;

    margin: 0 auto 1rem;

    border-radius: 50%;

    background: #fff1bf;

    color: #8f1117;

    font-size: 1.3rem;
    font-weight: 800;
}


/* RESPONSIVE */

@media (max-width: 991.98px) {

    .entrepreneur-contact-card {
        position: static;
    }

}


@media (max-width: 767.98px) {

    .entrepreneur-main-image {
        height: 350px;
    }


    .entrepreneur-thumbnails {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

}


@media (max-width: 575.98px) {

    .entrepreneur-detail-hero {
        padding: 3rem 0;
    }


    .entrepreneur-detail-section {
        padding: 3rem 0;
    }


    .entrepreneur-main-image {
        height: 280px;
    }


    .entrepreneur-thumbnail {
        height: 80px;
    }


    .entrepreneur-info-grid {
        grid-template-columns: 1fr;
    }


    .entrepreneur-description-card,
    .entrepreneur-contact-card {
        padding: 1.3rem;
    }

}

/* =============================================================================
CSS UNTUK BUTTON DALAM entrepreneurs.php

PASTE JUGA DI PALING BAWAH style.css
============================================================================= */

.entrepreneur-card-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-top: 1rem;
}


.entrepreneur-card-actions .btn {
    padding: .5rem .75rem;

    font-size: .75rem;
    font-weight: 700;
}

/* ============================================================================
ENTREPRENEUR DIRECTORY
============================================================================ */

.entrepreneur-directory-section {
    padding: 4.5rem 0 5.5rem;

    background:
        linear-gradient(
            180deg,
            #fffaf5,
            #fff7ef
        );
}


/* ============================================================================
GRID
============================================================================ */

.entrepreneur-directory-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 24px;
}


/* ============================================================================
CARD
============================================================================ */

.entrepreneur-directory-card {
    display: flex;
    flex-direction: column;

    min-width: 0;

    overflow: hidden;

    border: 1px solid #eedbcd;
    border-radius: 26px;

    background: #ffffff;

    box-shadow:
        0 18px 42px
        rgba(127, 17, 21, 0.09);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.entrepreneur-directory-card:hover {
    transform: translateY(-4px);

    box-shadow:
        0 24px 52px
        rgba(127, 17, 21, 0.13);
}


/* ============================================================================
IMAGE
============================================================================ */

.entrepreneur-directory-image {
    width: 100%;
    height: 300px;

    overflow: hidden;

    background: #fff8e1;
}


.entrepreneur-directory-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}


.entrepreneur-directory-placeholder {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    color: #c7151b;

    font-weight: 800;
}


/* ============================================================================
BODY
============================================================================ */

.entrepreneur-directory-body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 1.5rem;
}


/* ============================================================================
CATEGORY
============================================================================ */

.entrepreneur-directory-category {
    align-self: flex-start;

    margin-bottom: 0.85rem;

    padding:
        0.3rem
        0.65rem;

    border:
        1px solid #efd079;

    border-radius: 999px;

    background: #fff4c7;

    color: #c3151b;

    font-size: 0.7rem;
    font-weight: 800;
}


/* ============================================================================
TITLE
============================================================================ */

.entrepreneur-directory-body h2 {
    margin-bottom: 0.45rem;

    color: #292426;

    font-size: 1.25rem;
    font-weight: 800;

    line-height: 1.3;
}


/* ============================================================================
OWNER
============================================================================ */

.entrepreneur-directory-owner {
    margin-bottom: 0.7rem;

    color: #69727a;

    font-size: 0.82rem;
}


/* ============================================================================
DESCRIPTION
============================================================================ */

.entrepreneur-directory-description {
    display: -webkit-box;

    margin-bottom: 1rem;

    overflow: hidden;

    color: #69727a;

    font-size: 0.9rem;
    line-height: 1.55;

    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}


/* ============================================================================
META
============================================================================ */

.entrepreneur-directory-meta {
    display: grid;

    gap: 7px;

    margin-bottom: 1.1rem;
}


.entrepreneur-directory-meta > div {
    display: flex;
    align-items: flex-start;

    gap: 7px;

    color: #69727a;

    font-size: 0.82rem;
    line-height: 1.45;
}


.entrepreneur-meta-icon {
    flex-shrink: 0;
}


/* ============================================================================
ACTIONS
============================================================================ */

.entrepreneur-directory-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-top: auto;
}


.entrepreneur-directory-actions .btn {
    padding:
        0.5rem
        0.72rem;

    font-size: 0.72rem;
    font-weight: 700;
}


/* ============================================================================
EMPTY
============================================================================ */

.entrepreneur-directory-empty {
    max-width: 620px;

    margin: 0 auto;

    padding: 3rem;

    border: 1px solid #ead7c8;
    border-radius: 24px;

    background: #ffffff;

    text-align: center;
}


.entrepreneur-directory-empty h3 {
    color: #7f1115;

    font-weight: 800;
}


.entrepreneur-directory-empty p {
    margin-bottom: 0;

    color: #776466;
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 991.98px) {

    .entrepreneur-directory-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}


@media (max-width: 575.98px) {

    .entrepreneur-directory-section {
        padding: 3rem 0;
    }


    .entrepreneur-directory-grid {
        grid-template-columns: 1fr;
    }


    .entrepreneur-directory-image {
        height: 260px;
    }


    .entrepreneur-directory-body {
        padding: 1.3rem;
    }


    .entrepreneur-directory-actions .btn {
        flex: 0 0 auto;
    }

}

/* =========================================================
   USAHAWAN PILIHAN - HOMEPAGE
========================================================= */

.portal-section {
    padding: 70px 0;
}

.section-title {
    font-size: 2.4rem;
    font-weight: 800;
    color: #7b0d12;
}

.section-subtitle {
    font-size: 1.05rem;
    color: #6b5a5a;
}

.portal-card {
    background: #ffffff;
    border: 1px solid #efd8c8;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 14px 35px rgba(120, 20, 20, 0.08);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.portal-card-media {
    width: 100%;
    height: 260px;
    background: #fff5d8;
    overflow: hidden;
}

.portal-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.portal-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c5151a;
    font-weight: 700;
    font-size: 1.2rem;
}

.portal-card-body {
    padding: 22px 20px 20px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.portal-badge {
    display: inline-block;
    align-self: flex-start;
    margin-bottom: 14px;
    padding: 6px 12px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #bf1d18;
    background: #fff0b8;
    border: 1px solid #ebc95c;
    border-radius: 999px;
}

.portal-card-title {
    font-size: 1.9rem;
    font-weight: 800;
    color: #2a2a2a;
    margin-bottom: 12px;
    line-height: 1.2;
}

.portal-card-text {
    font-size: 1rem;
    line-height: 1.7;
    color: #66707c;
    margin-bottom: 16px;
}

.portal-meta {
    font-size: 0.98rem;
    color: #66707c;
    margin-bottom: 0;
}

/* Butang lebih kemas */
.entrepreneur-card .btn {
    font-weight: 600;
}

/* responsive */
@media (max-width: 991.98px) {
    .portal-card-title {
        font-size: 1.55rem;
    }
}

@media (max-width: 767.98px) {
    .section-title {
        font-size: 2rem;
    }

    .portal-card-media {
        height: 220px;
    }
}


.tourism-v2-section {
    padding: 4.5rem 0;
    background: #fffaf5;
}

.tourism-v2-section + .tourism-v2-section {
    border-top: 1px solid #efd9ca;
    background: #ffffff;
}

.tourism-v2-heading {
    margin-bottom: 2rem;
}

.tourism-v2-heading h2 {
    margin: .65rem 0 .4rem;
    color: #7f1115;
    font-size: 2rem;
    font-weight: 800;
}

.tourism-v2-heading p {
    max-width: 760px;
    margin: 0;
    color: #6d5859;
}

.tourism-v2-eyebrow {
    display: inline-flex;
    padding: .38rem .75rem;
    border: 1px solid #efd079;
    border-radius: 999px;
    background: #fff1bf;
    color: #8f1117;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.tourism-v2-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.tourism-v2-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #ecd8ca;
    border-radius: 24px;
    background: #ffffff;
    box-shadow:
        0 16px 36px rgba(127, 17, 21, .08);
}

.tourism-v2-image {
    height: 260px;
    overflow: hidden;
    background: #fff8e1;
}

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

.tourism-v2-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #c4151b;
    font-weight: 800;
}

.tourism-v2-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.4rem;
}

.tourism-v2-category {
    align-self: flex-start;
    margin-bottom: .75rem;
    padding: .3rem .65rem;
    border: 1px solid #efd079;
    border-radius: 999px;
    background: #fff4c7;
    color: #b31217;
    font-size: .68rem;
    font-weight: 800;
}

.tourism-v2-manager {
    margin-bottom: .75rem;
    padding: .7rem .8rem;
    border-left: 4px solid #f2c230;
    border-radius: 0 10px 10px 0;
    background: #fff8e1;
    color: #76595a;
    font-size: .73rem;
}

.tourism-v2-manager strong {
    color: #8f1117;
}

.tourism-v2-body h3 {
    color: #292426;
    font-size: 1.2rem;
    font-weight: 800;
}

.tourism-v2-description {
    display: -webkit-box;
    overflow: hidden;
    color: #69727a;
    line-height: 1.6;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.tourism-v2-meta {
    display: grid;
    gap: 6px;
    margin: 1rem 0;
    color: #69727a;
    font-size: .8rem;
}

.tourism-v2-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

.tourism-v2-actions .btn {
    font-size: .7rem;
    font-weight: 700;
}

.tourism-v2-detail {
    padding: 4rem 0 5rem;
    background: #fffaf5;
}

.tourism-v2-back {
    display: inline-flex;
    margin-bottom: 1.5rem;
    color: #8f1117;
    font-weight: 800;
    text-decoration: none;
}

.tourism-v2-detail-main,
.tourism-v2-detail-placeholder {
    overflow: hidden;
    height: 470px;
    border: 1px solid #ead5c6;
    border-radius: 24px;
    background: #fff8e1;
}

.tourism-v2-detail-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tourism-v2-detail-placeholder {
    display: grid;
    place-items: center;
    color: #b31217;
    font-weight: 800;
}

.tourism-v2-thumbs {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.tourism-v2-thumbs button {
    height: 95px;
    padding: 3px;
    overflow: hidden;
    border: 1px solid #ead6c8;
    border-radius: 14px;
    background: #ffffff;
}

.tourism-v2-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
}

.tourism-v2-detail-card {
    margin-top: 1.5rem;
    padding: 1.5rem;
    border: 1px solid #ead6c8;
    border-radius: 22px;
    background: #ffffff;
}

.tourism-v2-detail-card h1 {
    margin: .8rem 0 1rem;
    color: #7f1115;
    font-weight: 800;
}

.tourism-v2-detail-description {
    color: #5e5051;
    line-height: 1.8;
}

.tourism-v2-contact {
    position: sticky;
    top: 110px;
    padding: 1.5rem;
    border: 1px solid #ead2c0;
    border-radius: 22px;
    background: #ffffff;
    box-shadow:
        0 16px 36px rgba(127, 17, 21, .09);
}

.tourism-v2-contact h3 {
    margin: .8rem 0 1rem;
    color: #7f1115;
    font-weight: 800;
}

.tourism-v2-contact-info {
    padding: .8rem 0;
    border-bottom: 1px solid #f0e1d8;
}

.tourism-v2-contact-info span {
    display: block;
    margin-bottom: 3px;
    color: #8c7474;
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
}

.tourism-v2-contact-info strong {
    color: #553638;
}

.tourism-v2-contact-actions {
    display: grid;
    gap: 8px;
    margin-top: 1.2rem;
}

@media (max-width: 991.98px) {
    .tourism-v2-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .tourism-v2-contact {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .tourism-v2-grid {
        grid-template-columns: 1fr;
    }

    .tourism-v2-image {
        height: 230px;
    }

    .tourism-v2-detail-main,
    .tourism-v2-detail-placeholder {
        height: 300px;
    }

    .tourism-v2-thumbs {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

.featured-tourism-home {
    background:
        linear-gradient(
            180deg,
            #fff9f4,
            #fff7ef
        );
}


/* ============================================================================
CARD
============================================================================ */

.tourism-home-card {
    display: flex;
    flex-direction: column;

    overflow: hidden;

    border:
        1px solid #ecd8ca;

    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 16px 36px
        rgba(127, 17, 21, .08);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}


.tourism-home-card:hover {
    transform:
        translateY(-4px);

    box-shadow:
        0 22px 45px
        rgba(127, 17, 21, .12);
}


/* ============================================================================
IMAGE
============================================================================ */

.tourism-home-image {
    width: 100%;
    height: 260px;

    overflow: hidden;

    background: #fff8e1;
}


.tourism-home-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}


.tourism-home-placeholder {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    color: #c4151b;

    font-weight: 800;
}


/* ============================================================================
BODY
============================================================================ */

.tourism-home-body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 1.35rem;
}


.tourism-home-category,
.tourism-home-external {
    display: inline-flex;

    padding:
        .28rem
        .6rem;

    border-radius: 999px;

    font-size: .65rem;
    font-weight: 800;
}


.tourism-home-category {
    border:
        1px solid #efd079;

    background: #fff4c7;

    color: #b31217;
}


.tourism-home-external {
    border:
        1px solid #e8c8c9;

    background: #fff2f2;

    color: #8f1117;
}


.tourism-home-body h3 {
    margin-bottom: .55rem;

    color: #292426;

    font-size: 1.2rem;
    font-weight: 800;

    line-height: 1.3;
}


.tourism-home-operator {
    margin-bottom: .7rem;

    color: #7b6667;

    font-size: .73rem;
}


.tourism-home-operator strong {
    color: #8f1117;
}


/* ============================================================================
DESCRIPTION
============================================================================ */

.tourism-home-description {
    display: -webkit-box;

    margin-bottom: 1rem;

    overflow: hidden;

    color: #69727a;

    font-size: .87rem;
    line-height: 1.6;

    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}


/* ============================================================================
META
============================================================================ */

.tourism-home-meta {
    display: grid;

    gap: 6px;

    color: #69727a;

    font-size: .78rem;
}


/* ============================================================================
EMPTY
============================================================================ */

.tourism-home-empty {
    padding: 1.7rem;

    border:
        1px dashed #e6bd6b;

    border-radius: 18px;

    background: #fffaf0;

    color: #6b5051;
}


/* ============================================================================
RESPONSIVE
============================================================================ */

@media (max-width: 575.98px) {

    .tourism-home-image {
        height: 230px;
    }

}

/* =========================================================
   MADANI DETAIL - FORMAT KPT
========================================================= */

.madani-kpt-hero {
    padding-bottom: 3rem;
}

.madani-kpt-hero-label {
    display: inline-flex;

    margin-bottom: 0.8rem;

    padding: 0.35rem 0.75rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.7rem;
    font-weight: 800;

    text-transform: uppercase;
}


.madani-kpt-hero h1 {
    max-width: 950px;

    margin-bottom: 0;

    color: #7f1115;

    font-weight: 800;
}



/* =========================================================
   PAGE
========================================================= */

.madani-kpt-page {
    padding: 4rem 0 5rem;

    background: #fffaf5;
}



/* =========================================================
   MAIN INFORMATION CARD
========================================================= */

.madani-kpt-card {
    max-width: 1100px;

    margin: 0 auto;

    padding: 0 2rem;

    border: 1px solid #ecd6c8;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 18px 40px
        rgba(127, 17, 21, 0.08);
}


.madani-kpt-block {
    padding: 1.7rem 0;

    border-bottom:
        1px solid #f0dfd4;
}


.madani-kpt-block:last-child {
    border-bottom: 0;
}



/* =========================================================
   LABEL
========================================================= */

.madani-kpt-label {
    display: inline-flex;

    margin-bottom: 0.65rem;

    padding: 0.3rem 0.65rem;

    border: 1px solid #efd079;
    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.66rem;
    font-weight: 800;

    letter-spacing: 0.02em;

    text-transform: uppercase;
}



/* =========================================================
   TITLES
========================================================= */

.madani-kpt-value-title {
    margin: 0;

    color: #402829;

    font-size: 1.15rem;
    font-weight: 800;
}


.madani-kpt-project-name {
    max-width: 900px;

    margin: 0;

    color: #7f1115;

    font-size: 1.8rem;
    font-weight: 800;

    line-height: 1.35;
}



/* =========================================================
   DESCRIPTION
========================================================= */

.madani-kpt-text {
    max-width: 950px;

    color: #5d4d4e;

    font-size: 0.95rem;
    line-height: 1.8;
}



/* =========================================================
   UNIVERSITY
========================================================= */

.madani-kpt-universities {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 0.25rem;
}


.madani-kpt-university {
    display: flex;
    align-items: center;

    gap: 8px;

    padding: 0.65rem 0.9rem;

    border: 1px solid #efd8c5;
    border-radius: 14px;

    background: #fffaf2;

    color: #5b4142;
}


.madani-kpt-university strong {
    display: inline-flex;

    padding: 0.2rem 0.5rem;

    border-radius: 999px;

    background: #fff1bf;

    color: #8f1117;

    font-size: 0.68rem;
}


.madani-kpt-university span {
    font-size: 0.8rem;
    font-weight: 700;
}


.madani-kpt-empty-value {
    color: #7a6969;

    font-size: 0.9rem;
}



/* =========================================================
   BENEFICIARIES
========================================================= */

.madani-kpt-beneficiaries {
    color: #8f1117;

    font-size: 1.65rem;
    font-weight: 800;
}



/* =========================================================
   GALLERY
========================================================= */

.madani-kpt-gallery {
    max-width: 1100px;

    margin: 1.5rem auto 0;
}


.madani-kpt-gallery-heading {
    margin-bottom: 1rem;
}


.madani-kpt-gallery-heading h2 {
    margin: 0;

    color: #7f1115;

    font-size: 1.45rem;
    font-weight: 800;
}



/* MAIN IMAGE */

.madani-kpt-main-photo {
    width: 100%;
    height: 520px;

    overflow: hidden;

    border: 1px solid #ecd6c8;
    border-radius: 22px;

    background: #fff8e1;

    box-shadow:
        0 14px 32px
        rgba(127, 17, 21, 0.08);
}


.madani-kpt-main-photo img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}



/* THUMBNAILS */

.madani-kpt-gallery-grid {
    display: grid;

    grid-template-columns:
        repeat(
            6,
            minmax(0, 1fr)
        );

    gap: 10px;

    margin-top: 10px;
}


.madani-kpt-gallery-item {
    height: 110px;

    padding: 3px;

    overflow: hidden;

    border: 2px solid transparent;
    border-radius: 14px;

    background: #ffffff;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        transform 0.2s ease;
}


.madani-kpt-gallery-item:hover {
    transform: translateY(-2px);

    border-color: #efd079;
}


.madani-kpt-gallery-item.active {
    border-color: #b31217;
}


.madani-kpt-gallery-item img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 10px;
}



/* EMPTY */

.madani-kpt-gallery-empty {
    padding: 2rem;

    border: 1px dashed #e5c36d;
    border-radius: 18px;

    background: #fffaf0;

    color: #705556;
}



/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991.98px) {

    .madani-kpt-main-photo {
        height: 430px;
    }


    .madani-kpt-gallery-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

}

/* =========================================================
   MADANI DETAIL - FORCE TWO COLUMN
   PASTE PALING BAWAH style.css
========================================================= */

.madani-kpt-card.madani-kpt-two-column {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr) !important;
    gap: 28px !important;

    width: 100% !important;
    max-width: 1100px !important;

    padding: 28px !important;
}


/* KIRI */
.madani-kpt-primary {
    display: block !important;
    min-width: 0 !important;
}


/* KANAN */
.madani-kpt-sidebar {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;

    min-width: 0 !important;
}


/* CARD KANAN */
.madani-kpt-side-card {
    display: block !important;

    padding: 20px !important;

    border: 1px solid #ead5c7 !important;
    border-radius: 18px !important;

    background: #fffaf5 !important;
}


/* BAHAGIAN KIRI */
.madani-kpt-info-group {
    display: block !important;

    padding-bottom: 22px !important;
    margin-bottom: 22px !important;

    border-bottom: 1px solid #f0dfd4 !important;
}

.madani-kpt-info-group:last-child {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;

    border-bottom: 0 !important;
}


/* JENIS PROGRAM */
.madani-kpt-program-type {
    margin-top: 2px !important;

    color: #3e3031 !important;

    font-size: 18px !important;
    font-weight: 800 !important;

    line-height: 1.4 !important;
}


/* NAMA PROJEK */
.madani-kpt-project-name {
    max-width: 760px !important;

    margin: 4px 0 0 !important;

    color: #7f1115 !important;

    font-size: 30px !important;
    font-weight: 800 !important;

    line-height: 1.3 !important;
}


/* MAKLUMAT */
.madani-kpt-text {
    max-width: 780px !important;

    margin-top: 4px !important;

    color: #59494a !important;

    font-size: 15px !important;
    line-height: 1.75 !important;
}


/* UNIVERSITI */
.madani-kpt-universities {
    display: grid !important;
    gap: 9px !important;

    margin-top: 5px !important;
}

.madani-kpt-university {
    display: flex !important;
    align-items: center !important;

    gap: 8px !important;

    width: 100% !important;

    padding: 10px !important;

    background: #ffffff !important;
}


/* PENERIMA MANFAAT */
.madani-kpt-beneficiaries {
    margin-top: 5px !important;

    color: #8f1117 !important;

    font-size: 21px !important;
    font-weight: 800 !important;
}


/* TABLET / MOBILE */
@media (max-width: 767.98px) {

    .madani-kpt-card.madani-kpt-two-column {
        grid-template-columns: 1fr !important;

        gap: 22px !important;

        padding: 20px !important;
    }

    .madani-kpt-project-name {
        font-size: 24px !important;
    }
}

/* =========================================================
   MADANI DETAIL - COMPACT BACK AREA
========================================================= */

.madani-detail-back-section {
    padding: 32px 0 20px;

    background: #fff8e1;

    border-bottom:
        1px solid #efd8c5;
}


.madani-detail-back-section .container {
    width: min(
        1100px,
        calc(100% - 40px)
    );

    max-width: 1100px;

    margin: 0 auto;
}


.madani-detail-back-button {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    padding:
        9px
        15px;

    border:
        1px solid #c91b1f;

    border-radius:
        999px;

    background:
        transparent;

    color:
        #9d151a;

    font-size:
        0.86rem;

    font-weight:
        700;

    line-height:
        1;

    text-decoration:
        none;

    transition:
        background-color .2s ease,
        color .2s ease,
        transform .2s ease;
}


.madani-detail-back-button:hover {
    background:
        #9d151a;

    color:
        #ffffff;

    transform:
        translateX(-2px);
}


/* MOBILE */

@media (max-width: 767.98px) {

    .madani-detail-back-section {
        padding:
            22px
            0
            16px;
    }


    .madani-detail-back-section .container {
        width:
            calc(100% - 28px);
    }


    .madani-detail-back-button {
        padding:
            8px
            13px;

        font-size:
            0.78rem;
    }

}


/* =========================================================

/* =========================================================
   MADANI DETAIL - BACK BUTTON
========================================================= */

.madani-detail-back-section {
    padding: 28px 0 18px;
    background: #fff8e1;
}

.madani-detail-back-section .container {
    width: min(1100px, calc(100% - 40px));
    max-width: 1100px;
    margin: 0 auto;
}

.madani-detail-back-button {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;

    color: #9d151a !important;
    border-color: #c91b1f !important;
    background: transparent !important;

    font-size: 0.85rem;
    font-weight: 700;

    text-decoration: none !important;
}

.madani-detail-back-button:hover {
    color: #ffffff !important;
    background: #9d151a !important;
    border-color: #9d151a !important;
}

@media (max-width: 767.98px) {
    .madani-detail-back-section {
        padding: 20px 0 14px;
    }

    .madani-detail-back-section .container {
        width: calc(100% - 28px);
    }

    .madani-detail-back-button {
        font-size: 0.78rem;
    }
}