/* ==========================================================================
   PT Mapson Arya Parahita — main stylesheet
   Dibangun di atas Bootstrap 5. Warna brand diambil dari company profile.
   ========================================================================== */

/* 1. Design tokens
   -------------------------------------------------------------------------- */
:root {
    --mp-gold: #8a6a2f;          /* tombol & aksen utama (kontras aman dgn putih) */
    --mp-gold-600: #74581f;
    --mp-gold-soft: #c4ae82;     /* panel beige di slide */
    --mp-gold-light: #e8dcc2;
    --mp-gold-text: #7a5c12;     /* judul coklat-emas */
    --mp-brown: #5b4a26;         /* teks isi di slide */
    --mp-dark: #161616;
    --mp-dark-2: #232323;
    --mp-cream: #f7f4ee;
    --mp-border: #e7e1d4;
    --mp-gradient-gold: linear-gradient(90deg, #b8860b 0%, #e6c563 30%, #fbefb0 55%, #d6b155 80%, #b38b2d 100%);
    --mp-radius: 1rem;
    --mp-shadow: 0 10px 30px rgba(22, 22, 22, .08);
    --mp-shadow-lg: 0 24px 60px rgba(22, 22, 22, .14);

    /* Bootstrap overrides */
    --bs-body-color: #2b2b2b;
    --bs-body-bg: #ffffff;
    --bs-primary: #8a6a2f;
    --bs-primary-rgb: 138, 106, 47;
    --bs-link-color: #8a6a2f;
    --bs-link-color-rgb: 138, 106, 47;
    --bs-link-hover-color: #5b4a26;
    --bs-link-hover-color-rgb: 91, 74, 38;
    --bs-border-color: #e7e1d4;
    --bs-font-sans-serif: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* 2. Base
   -------------------------------------------------------------------------- */
body {
    font-size: 1rem;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 700;
    line-height: 1.2;
    color: #1d1d1d;
    letter-spacing: -.01em;
}

img { max-width: 100%; height: auto; }

a { text-underline-offset: .2em; }

::selection { background: var(--mp-gold-soft); color: #1d1d1d; }

.skip-link {
    position: absolute;
    top: .5rem;
    left: .5rem;
    z-index: 2000;
    padding: .5rem 1rem;
    background: #fff;
    border-radius: .5rem;
}

/* 3. Helpers
   -------------------------------------------------------------------------- */
.section { padding: 4rem 0; }
.section-sm { padding: 3rem 0; }
@media (min-width: 992px) {
    .section { padding: 6rem 0; }
    .section-sm { padding: 4rem 0; }
}
.bg-cream { background-color: var(--mp-cream) !important; }
.bg-mp-dark { background-color: var(--mp-dark) !important; color: #fff; }
.text-gold { color: var(--mp-gold) !important; }
.text-gold-soft { color: var(--mp-gold-soft) !important; }
.text-brown { color: var(--mp-brown) !important; }

.eyebrow {
    display: inline-block;
    margin-bottom: .75rem;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--mp-gold);
}

.section-title { margin-bottom: 1rem; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.6rem); }
.section-lead { font-size: 1.1rem; color: #5a5a5a; max-width: 46rem; }
.text-center .section-lead { margin-inline: auto; }

.gold-bar {
    display: block;
    width: 72px;
    height: 4px;
    margin: 1.25rem 0 1.5rem;
    border-radius: 4px;
    background: var(--mp-gradient-gold);
}
.text-center .gold-bar { margin-inline: auto; }

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    text-decoration: none;
}
.link-arrow i { transition: transform .2s ease; }
.link-arrow:hover i { transform: translateX(4px); }

/* 4. Buttons
   -------------------------------------------------------------------------- */
.btn { font-weight: 600; border-radius: .6rem; padding: .7rem 1.4rem; }
.btn-lg { padding: .85rem 1.75rem; font-size: 1rem; }

.btn-gold {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--mp-gold);
    --bs-btn-border-color: var(--mp-gold);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--mp-gold-600);
    --bs-btn-hover-border-color: var(--mp-gold-600);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--mp-gold-600);
    --bs-btn-active-border-color: var(--mp-gold-600);
    --bs-btn-focus-shadow-rgb: 138, 106, 47;
}

.btn-outline-gold {
    --bs-btn-color: var(--mp-gold);
    --bs-btn-border-color: var(--mp-gold);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--mp-gold);
    --bs-btn-hover-border-color: var(--mp-gold);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--mp-gold-600);
    --bs-btn-active-border-color: var(--mp-gold-600);
    --bs-btn-focus-shadow-rgb: 138, 106, 47;
}

/* 5. Top bar & navbar
   -------------------------------------------------------------------------- */
.topbar {
    background: var(--mp-dark);
    color: rgba(255, 255, 255, .7);
    font-size: .85rem;
    padding: .5rem 0;
}
.topbar a { color: rgba(255, 255, 255, .7); text-decoration: none; }
.topbar a:hover { color: var(--mp-gold-soft); }
.topbar i { color: var(--mp-gold-soft); margin-right: .3rem; }

.site-navbar {
    background: #fff;
    border-bottom: 1px solid var(--mp-border);
    padding: .9rem 0;
    transition: box-shadow .25s ease, padding .25s ease;
}
.site-navbar.is-scrolled { box-shadow: 0 6px 24px rgba(0, 0, 0, .08); padding: .55rem 0; }
.site-navbar .navbar-brand img { width: clamp(200px, 22vw, 260px); height: auto; }

.site-navbar .nav-link {
    position: relative;
    font-weight: 600;
    font-size: .95rem;
    color: #2b2b2b;
    padding: .5rem .9rem !important;
}
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus,
.site-navbar .nav-link.active,
.site-navbar .nav-link.show { color: var(--mp-gold); }

@media (min-width: 992px) {
    .site-navbar { background: rgba(255, 255, 255, .96); backdrop-filter: saturate(180%) blur(10px); }
    .site-navbar .nav-link::after {
        content: "";
        position: absolute;
        left: .9rem;
        right: .9rem;
        bottom: .1rem;
        height: 2px;
        border: 0;
        margin: 0;
        border-radius: 2px;
        background: var(--mp-gradient-gold);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform .25s ease;
    }
    .site-navbar .nav-link.dropdown-toggle::after { vertical-align: 0; }
    .site-navbar .nav-link:hover::after,
    .site-navbar .nav-link.active::after { transform: scaleX(1); }
    .site-navbar .dropdown:hover > .dropdown-menu { display: block; margin-top: 0; }
    .site-navbar .dropdown-toggle { padding-right: 1.6rem !important; }
    .site-navbar .dropdown-toggle.nav-link::after { right: 1.6rem; }
    .site-navbar .dropdown-toggle::before {
        content: "\F282";
        font-family: "bootstrap-icons";
        position: absolute;
        right: .55rem;
        top: 50%;
        font-size: .65rem;
        transform: translateY(-50%);
    }
    .site-navbar .btn-gold { white-space: nowrap; }
}

/* Layar 992–1199px: jarak antar menu dirapatkan agar semua menu muat dalam satu baris */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .site-navbar .nav-link { padding-left: .55rem !important; padding-right: .55rem !important; }
    .site-navbar .nav-link::after { left: .55rem; right: .55rem; }
    .site-navbar .dropdown-toggle { padding-right: 1.35rem !important; }
    .site-navbar .dropdown-toggle.nav-link::after { right: 1.35rem; }
    .site-navbar .dropdown-toggle::before { right: .35rem; }
    .site-navbar .btn-gold { padding-left: 1.1rem; padding-right: 1.1rem; }
}

.site-navbar .dropdown-menu {
    border: 1px solid var(--mp-border);
    border-radius: .8rem;
    box-shadow: var(--mp-shadow-lg);
    padding: .5rem;
    min-width: 15rem;
}
.site-navbar .dropdown-item {
    border-radius: .5rem;
    padding: .5rem .85rem;
    font-size: .93rem;
}
.site-navbar .dropdown-item:hover,
.site-navbar .dropdown-item:focus { background: var(--mp-cream); color: var(--mp-gold); }
.site-navbar .dropdown-item.active,
.site-navbar .dropdown-item:active { background: var(--mp-gold); color: #fff; }
.site-navbar .dropdown-header {
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--mp-gold);
    padding: .6rem .85rem .25rem;
}

@media (max-width: 991.98px) {
    .site-navbar .offcanvas { max-width: 320px; }
    .site-navbar .nav-link { padding: .75rem 0 !important; border-bottom: 1px solid var(--mp-border); }
    .site-navbar .dropdown-toggle { display: flex; justify-content: space-between; align-items: center; }
    .site-navbar .dropdown-menu { border: 0; box-shadow: none; padding: 0 0 .5rem .5rem; }
    .site-navbar .btn-gold { width: 100%; }
}

/* 6. Home hero slider (Bootstrap Carousel)
   -------------------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; color: #fff; background: #141414; }

/* Semua slide ditumpuk dalam satu grid sehingga tinggi slider = slide tertinggi
   (halaman tidak "melompat" saat slide berganti, terutama di mobile) */
.hero .carousel-inner { display: grid; }
.hero .carousel-item {
    display: block;
    grid-area: 1 / 1;
    float: none;
    margin-right: 0;
    visibility: hidden;
    transition: opacity .6s ease, visibility 0s linear .6s;
}
.hero .carousel-item.active { visibility: visible; }
.hero .carousel-item-next,
.hero .carousel-item-prev { visibility: visible; transition: opacity .6s ease, visibility 0s; }

/* Setiap slide punya latar sendiri agar teks tidak bertumpuk saat transisi fade */
.hero-slide {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 660px;
    background:
        radial-gradient(circle at 15% 20%, rgba(196, 174, 130, .16), transparent 45%),
        linear-gradient(135deg, #111 0%, #1f1f1f 60%, #161616 100%);
}
.hero-slide > .container { position: relative; z-index: 2; }
.hero-content { padding-top: 5rem; padding-bottom: 10rem; }
.hero-title {
    font-size: clamp(2.1rem, 1.3rem + 3.2vw, 3.6rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.25rem;
}
.hero-title span {
    background: var(--mp-gradient-gold);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.hero-lead { font-size: 1.12rem; color: rgba(255, 255, 255, .75); max-width: 36rem; margin-bottom: 2rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

.hero-media {
    position: absolute;
    inset: 0 0 0 auto;
    width: 48%;
    overflow: hidden;
    clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
}
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(17, 17, 17, .55), rgba(17, 17, 17, 0) 45%);
}
/* Foto produk transparan (cutout) */
.hero-media.is-product { background: radial-gradient(circle at 62% 45%, #3d3428 0%, #1b1a18 50%, #121212 100%); }
.hero-media.is-product img { object-fit: contain; padding: 2.5rem 2rem 6.5rem 22%; }
.hero-media.is-product::after { background: linear-gradient(90deg, rgba(17, 17, 17, .35), rgba(17, 17, 17, 0) 35%); }

.hero-slash {
    position: absolute;
    inset: 0 0 0 auto;
    width: calc(48% + 26px);
    background: var(--mp-gradient-gold);
    clip-path: polygon(calc(22% * .96) 0, calc(22% * .96 + 10px) 0, 10px 100%, 0 100%);
    z-index: 1;
}

/* Animasi: gambar zoom perlahan, teks muncul bertahap (hanya bila JS aktif) */
.carousel-item.active .hero-media img { animation: hero-zoom 7s ease-out both; }
@keyframes hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.js .hero-content > * { opacity: 0; transform: translateY(24px); }
.js.is-loaded .carousel-item.active .hero-content > * { animation: hero-in .7s cubic-bezier(.2, .7, .2, 1) forwards; }
.js.is-loaded .carousel-item.active .hero-content > :nth-child(2) { animation-delay: .1s; }
.js.is-loaded .carousel-item.active .hero-content > :nth-child(3) { animation-delay: .2s; }
.js.is-loaded .carousel-item.active .hero-content > :nth-child(4) { animation-delay: .3s; }
@keyframes hero-in { to { opacity: 1; transform: none; } }

/* Kontrol slider */
.hero-controls { position: absolute; left: 0; right: 0; bottom: 5.5rem; z-index: 3; }
.hero-indicators { position: static; margin: 0; padding: 0; justify-content: flex-start; gap: .5rem; }
.hero-indicators [data-bs-target] {
    width: 28px;
    height: 4px;
    margin: 0;
    border-radius: 4px;
    background-color: rgba(255, 255, 255, .35);
    background-image: var(--mp-gradient-gold);
    background-repeat: no-repeat;
    background-size: 0% 100%;
    opacity: 1;
    transition: width .35s ease;
}
/* Indikator aktif terisi emas selama durasi slide (samakan dengan data-bs-interval="6500") */
.hero-indicators .active { width: 64px; background-size: 100% 100%; animation: hero-progress 6.5s linear both; }
@keyframes hero-progress { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
.hero-nav {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(214, 177, 85, .6);
    background: rgba(17, 17, 17, .78);
    color: #fff;
    font-size: 1.1rem;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
    transition: background .2s ease, border-color .2s ease;
}
.hero-nav:hover, .hero-nav:focus-visible { background: var(--mp-gold); border-color: var(--mp-gold); color: #fff; }

@media (max-width: 991.98px) {
    .hero-slide { display: block; min-height: 0; }
    .hero-media { position: relative; width: 100%; height: 300px; clip-path: none; }
    .hero-media::after { background: linear-gradient(0deg, rgba(17, 17, 17, .85), rgba(17, 17, 17, 0) 60%); }
    .hero-media.is-product img { padding: 1.25rem 1rem 2.5rem; }
    .hero-slash { display: none; }
    .hero-content { padding-top: 2.25rem; padding-bottom: 9.5rem; min-height: 27rem; }
    .hero-controls { bottom: 4.75rem; }
    .hero-nav { width: 42px; height: 42px; }
}

/* 7. Stats
   -------------------------------------------------------------------------- */
.stats-wrap { position: relative; z-index: 5; margin-top: -3.5rem; }
.stats-card {
    background: #fff;
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow-lg);
    overflow: hidden;
}
.stat { padding: 2rem 1.5rem; text-align: center; height: 100%; }
.stat + .stat { border-left: 1px solid var(--mp-border); }
.stat-value { font-size: clamp(1.8rem, 1.3rem + 1.5vw, 2.5rem); font-weight: 800; color: var(--mp-gold); line-height: 1.1; }
.stat-label { font-size: .9rem; color: #666; margin: .35rem 0 0; }
@media (max-width: 767.98px) {
    .stat + .stat { border-left: 0; }
    .stats-card .col-6:nth-child(odd) .stat { border-right: 1px solid var(--mp-border); }
    .stats-card .col-6:nth-child(-n+2) .stat { border-bottom: 1px solid var(--mp-border); }
}

/* 8. Page hero (inner pages)
   -------------------------------------------------------------------------- */
.page-hero {
    position: relative;
    overflow: hidden;
    padding: 5.5rem 0 5rem;
    color: #fff;
    background-color: var(--mp-dark);
    background-image:
        linear-gradient(100deg, rgba(17, 17, 17, .96) 0%, rgba(17, 17, 17, .88) 45%, rgba(17, 17, 17, .45) 100%),
        var(--hero-img);
    background-size: cover;
    background-position: center;
}
.page-hero::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 32%;
    height: 100%;
    background: var(--mp-gold-soft);
    opacity: .18;
    clip-path: polygon(35% 0, 100% 0, 100% 100%, 0 100%);
}
.page-hero::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: min(40%, 520px);
    height: 6px;
    background: var(--mp-gradient-gold);
    clip-path: polygon(0 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}
.page-hero-title { color: #fff; font-size: clamp(2rem, 1.4rem + 2.4vw, 3.1rem); font-weight: 700; margin-bottom: .75rem; max-width: 48rem; }
.page-hero-lead { color: rgba(255, 255, 255, .75); font-size: 1.1rem; max-width: 42rem; margin: 0; }
.page-hero .breadcrumb { --bs-breadcrumb-divider-color: rgba(255, 255, 255, .45); --bs-breadcrumb-item-active-color: var(--mp-gold-soft); font-size: .9rem; margin-bottom: 1rem; }
.page-hero .breadcrumb a { color: rgba(255, 255, 255, .75); text-decoration: none; }
.page-hero .breadcrumb a:hover { color: #fff; }

/* 9. Cards
   -------------------------------------------------------------------------- */
.card-mp {
    height: 100%;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    padding: 2rem;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card-mp:hover { transform: translateY(-4px); box-shadow: var(--mp-shadow-lg); border-color: transparent; }

.icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1.25rem;
    border-radius: .9rem;
    font-size: 1.5rem;
    color: var(--mp-gold);
    background: var(--mp-cream);
    border: 1px solid var(--mp-gold-light);
}
.card-mp:hover .icon-box { background: var(--mp-gold); color: #fff; border-color: var(--mp-gold); }
.card-mp h3 { font-size: 1.2rem; margin-bottom: .6rem; }
.card-mp p { color: #5f5f5f; margin-bottom: 0; }

/* Product card */
.product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    text-decoration: none;
    color: inherit;
    transition: transform .25s ease, box-shadow .25s ease;
}
.product-card:hover { transform: translateY(-5px); box-shadow: var(--mp-shadow-lg); color: inherit; }
.product-card-media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: radial-gradient(circle at 50% 30%, #2d2a24 0%, #141414 75%);
    overflow: hidden;
}
.product-card-media img { width: 100%; height: 100%; object-fit: contain; padding: .75rem; transition: transform .4s ease; }
.product-card-media.is-cover img { object-fit: cover; padding: 0; }
.product-card:hover .product-card-media img { transform: scale(1.04); }
.product-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem 1.5rem 1.75rem; }
.product-card-body h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.product-card-body p { color: #5f5f5f; font-size: .95rem; }
.product-card-body .link-arrow { margin-top: auto; }
.badge-gold {
    align-self: flex-start;
    margin-bottom: .75rem;
    padding: .35rem .7rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--mp-gold-text);
    background: var(--mp-cream);
    border: 1px solid var(--mp-gold-light);
    border-radius: 2rem;
}

/* Logo tiles (partners & clients) */
.logo-tile {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 110px;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    transition: transform .25s ease, box-shadow .25s ease;
}
.logo-tile:hover { transform: translateY(-3px); box-shadow: var(--mp-shadow); }
.logo-tile img { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; }
.logo-tile.is-lg { min-height: 140px; }
.logo-tile.is-lg img { max-height: 70px; }
.logo-tile.is-dark { background: #111; border-color: #111; }
@media (max-width: 575.98px) {
    .logo-tile { min-height: 84px; padding: .75rem; border-radius: .75rem; }
    .logo-tile img { max-height: 48px; }
    .client-grid .logo-tile { min-height: 90px; padding: .6rem; }
    .client-grid .logo-tile img { max-height: 60px; }
}

.client-grid .logo-tile { min-height: 120px; padding: 1rem; }
.client-grid .logo-tile img { max-height: 78px; }

.partner-card { height: 100%; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--mp-border); border-radius: var(--mp-radius); overflow: hidden; transition: box-shadow .25s ease, transform .25s ease; }
.partner-card:hover { transform: translateY(-4px); box-shadow: var(--mp-shadow-lg); }
.partner-card-logo { display: flex; align-items: center; justify-content: center; height: 150px; padding: 1.5rem 2rem; background: var(--mp-cream); }
.partner-card-logo img { max-height: 70px; max-width: 100%; width: auto; object-fit: contain; }
.partner-card-body { padding: 1.25rem 1.5rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.partner-card-body h3 { font-size: 1.1rem; margin-bottom: .35rem; }
.partner-card-body p { font-size: .92rem; color: #5f5f5f; }
.partner-card-body .link-arrow { margin-top: auto; font-size: .92rem; }
@media (max-width: 575.98px) {
    .partner-card-logo { height: 96px; padding: 1rem; }
    .partner-card-logo img { max-height: 44px; }
    .partner-card-body { padding: 1rem; }
    .partner-card-body h3 { font-size: 1rem; }
    .partner-card-body p, .partner-card-body .link-arrow { font-size: .85rem; }
    .cert-card-media { padding: 1rem; }
    .cert-card-body { padding: 1rem; }
    .cert-card-body h3 { font-size: 1rem; }
    .cert-card-body p { font-size: .82rem; }
}

/* 10. About
   -------------------------------------------------------------------------- */
.image-stack { position: relative; padding: 0 0 3rem 3rem; }
.image-stack .img-main { border-radius: var(--mp-radius); box-shadow: var(--mp-shadow-lg); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.image-stack .img-sub {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 45%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 6px solid #fff;
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow-lg);
}
.image-stack::before {
    content: "";
    position: absolute;
    top: 2.5rem;
    left: 1.5rem;
    width: 40%;
    height: 60%;
    border-radius: var(--mp-radius);
    background: var(--mp-gold-soft);
    z-index: -1;
}

.vision-card {
    height: 100%;
    padding: 2.5rem;
    border-radius: var(--mp-radius);
    background: linear-gradient(150deg, #1b1b1b, #2b2b2b);
    color: rgba(255, 255, 255, .8);
    position: relative;
    overflow: hidden;
}
.vision-card::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -60px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    border: 30px solid rgba(196, 174, 130, .12);
}
.vision-card h3 { color: #fff; }
.vision-card .icon-box { background: rgba(196, 174, 130, .15); border-color: rgba(196, 174, 130, .3); color: var(--mp-gold-soft); }

.mission-list { counter-reset: mission; list-style: none; padding: 0; margin: 0; }
.mission-list li {
    counter-increment: mission;
    position: relative;
    padding: 0 0 1.5rem 4rem;
    color: #4f4f4f;
}
.mission-list li:last-child { padding-bottom: 0; }
.mission-list li::before {
    content: "0" counter(mission);
    position: absolute;
    left: 0;
    top: -.2rem;
    width: 2.8rem;
    height: 2.8rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 700;
    color: var(--mp-gold);
    background: var(--mp-cream);
    border: 1px solid var(--mp-gold-light);
}
.mission-list strong { display: block; color: #1d1d1d; }

/* Org chart */
.org-chart { position: relative; }
.org-top { margin-bottom: 1.5rem; }
.org-node {
    display: inline-block;
    padding: .9rem 1.5rem;
    border-radius: .8rem;
    font-weight: 700;
    text-align: center;
}
.org-ceo { background: var(--mp-dark); color: #fff; box-shadow: var(--mp-shadow-lg); min-width: 260px; padding: 1.25rem 2rem; }
.org-ceo small { display: block; font-weight: 500; color: var(--mp-gold-soft); letter-spacing: .02em; font-size: 1rem; }
.org-ceo span { display: block; font-size: 1.6rem; letter-spacing: .08em; }
.org-head { background: var(--mp-gold); color: #fff; min-width: 140px; letter-spacing: .1em; }
.org-branch { position: relative; }
.org-dept {
    height: 100%;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-top: 3px solid var(--mp-gold-soft);
    border-radius: .8rem;
}
.org-dept h4 { font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mp-gold-text); margin-bottom: .5rem; }
.org-dept ul { list-style: none; padding: 0; margin: 0; font-size: .88rem; color: #555; }
.org-dept li { padding: .2rem 0 .2rem 1rem; position: relative; }
.org-dept li::before { content: ""; position: absolute; left: 0; top: .8em; width: 6px; height: 6px; border-radius: 50%; background: var(--mp-gold-soft); }

@media (min-width: 992px) {
    .org-top { position: relative; margin-bottom: 0; padding-bottom: 2.5rem; }
    .org-top::after { content: ""; position: absolute; left: 50%; bottom: 0; height: 2.5rem; border-left: 2px solid var(--mp-gold-soft); }
    .org-branches { position: relative; }
    .org-branches::before {
        content: "";
        position: absolute;
        top: 0;
        left: var(--org-line-start, 12%);
        right: var(--org-line-end, 22%);
        border-top: 2px solid var(--mp-gold-soft);
    }
    .org-branches > .org-branch { margin-top: 0; padding-top: 2rem; }
    .org-branch::before { content: ""; position: absolute; top: 0; left: 50%; height: 2rem; border-left: 2px solid var(--mp-gold-soft); }
    .org-branch .org-head { position: relative; margin-bottom: 1.5rem; }
}

/* 11. Coverage map
   -------------------------------------------------------------------------- */
.coverage-map { position: relative; }
.coverage-map > img { width: 100%; opacity: .85; }
.map-pin {
    position: absolute;
    transform: translate(-50%, -100%);
    color: #c8373b;
    font-size: clamp(.8rem, .4rem + 1.2vw, 1.6rem);
    line-height: 1;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .25));
    animation: pin-drop .6s ease both;
}
.map-pin::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2px;
    width: .5em;
    height: .2em;
    border-radius: 50%;
    background: rgba(200, 55, 59, .35);
    transform: translateX(-50%);
    animation: pin-pulse 2.4s ease-out infinite;
}
@keyframes pin-drop { from { opacity: 0; transform: translate(-50%, -160%); } to { opacity: 1; transform: translate(-50%, -100%); } }
@keyframes pin-pulse { 0% { box-shadow: 0 0 0 0 rgba(200, 55, 59, .3); } 100% { box-shadow: 0 0 0 .8em rgba(200, 55, 59, 0); } }

/* 12. Galleries, certificates
   -------------------------------------------------------------------------- */
.gallery-item {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: .8rem;
    aspect-ratio: 4 / 3;
    background: #eee;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.gallery-item::after {
    content: "\F62C"; /* bi-zoom-in */
    font-family: "bootstrap-icons";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 1.6rem;
    color: #fff;
    background: rgba(17, 17, 17, .45);
    opacity: 0;
    transition: opacity .3s ease;
}
.gallery-item:hover img { transform: scale(1.06); }
.gallery-item:hover::after,
.gallery-item:focus-visible::after { opacity: 1; }
.gallery-item.is-wide { aspect-ratio: 16 / 9; }
.gallery-item.is-tall { aspect-ratio: 3 / 4; }

.cert-card {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.cert-card:hover { transform: translateY(-4px); box-shadow: var(--mp-shadow-lg); color: inherit; }
.cert-card-media { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 4; padding: 1.5rem; background: var(--mp-cream); }
.cert-card-media img { max-height: 100%; width: auto; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }
.cert-card-media.is-landscape { aspect-ratio: 4 / 3; }
.cert-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.cert-card-body h3 { font-size: 1.1rem; margin-bottom: .25rem; }
.cert-card-body p { font-size: .9rem; color: #666; margin: 0; }

.nav-pills-gold { gap: .5rem; }
.nav-pills-gold .nav-link {
    border: 1px solid var(--mp-border);
    border-radius: 2rem;
    padding: .55rem 1.25rem;
    font-weight: 600;
    color: #444;
    background: #fff;
}
.nav-pills-gold .nav-link:hover { border-color: var(--mp-gold-soft); color: var(--mp-gold); }
.nav-pills-gold .nav-link.active { background: var(--mp-gold); border-color: var(--mp-gold); color: #fff; }

/* 13. Product detail
   -------------------------------------------------------------------------- */
.product-showcase {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    border-radius: 1.25rem;
    background: radial-gradient(circle at 50% 35%, #2f2b24 0%, #121212 72%);
    box-shadow: var(--mp-shadow-lg);
    overflow: hidden;
}
.product-showcase img { max-height: 620px; width: auto; }
.product-showcase.is-light { background: radial-gradient(circle at 50% 35%, #ffffff 0%, var(--mp-cream) 75%); }

.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { position: relative; padding: .35rem 0 .35rem 2rem; color: #444; }
.check-list li::before {
    content: "\F270"; /* bi-check2-circle */
    font-family: "bootstrap-icons";
    position: absolute;
    left: 0;
    top: .35rem;
    color: var(--mp-gold);
    font-size: 1.15rem;
    line-height: 1.5;
}
.bg-mp-dark .check-list li { color: rgba(255, 255, 255, .8); }

.spec-table { --bs-table-bg: transparent; margin: 0; }
.spec-table th { width: 55%; font-weight: 600; color: #333; }
.spec-table td { color: var(--mp-gold-text); font-weight: 700; text-align: right; }

.feature-tile {
    height: 100%;
    padding: 1.5rem;
    border-radius: var(--mp-radius);
    background: #fff;
    border: 1px solid var(--mp-border);
    text-align: center;
}
.feature-tile i { font-size: 1.75rem; color: var(--mp-gold); display: block; margin-bottom: .75rem; }
.feature-tile h3 { font-size: 1rem; margin-bottom: .25rem; }
.feature-tile p { font-size: .88rem; color: #666; margin: 0; }

.specialty-chip {
    display: flex;
    align-items: center;
    gap: .75rem;
    height: 100%;
    padding: 1rem 1.1rem;
    border-radius: .8rem;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(196, 174, 130, .25);
    color: #fff;
    font-weight: 600;
}
.specialty-chip i { font-size: 1.35rem; color: var(--mp-gold-soft); }

.big-number {
    font-size: clamp(3rem, 2rem + 4vw, 5.5rem);
    font-weight: 800;
    line-height: 1;
    background: var(--mp-gradient-gold);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.dark-feature {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #111 0%, #222 100%);
    color: rgba(255, 255, 255, .8);
}
.dark-feature h2, .dark-feature h3 { color: #fff; }
.dark-feature::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 30%;
    height: 100%;
    background: #2a2a2a;
    clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
    opacity: .6;
}
.dark-feature .container { position: relative; }
.pioneer-img { max-height: 520px; width: auto; }
@media (max-width: 991.98px) { .pioneer-img { max-height: 320px; } }
.rounded-media { border-radius: var(--mp-radius); overflow: hidden; box-shadow: var(--mp-shadow-lg); }
.rounded-media img { width: 100%; height: 100%; object-fit: cover; }

/* 14. Contact
   -------------------------------------------------------------------------- */
.inquiry-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-radius: var(--mp-radius);
    background: var(--mp-cream);
    border: 1px solid var(--mp-gold-light);
    border-left: 4px solid var(--mp-gold);
}

.contact-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 2rem;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-top: 3px solid var(--mp-gold-soft);
    border-radius: var(--mp-radius);
    transition: transform .25s ease, box-shadow .25s ease;
}
.contact-card:hover { transform: translateY(-4px); box-shadow: var(--mp-shadow-lg); }
.contact-card h3 { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #777; margin-bottom: .5rem; }
.contact-card-value { font-size: 1.25rem; font-weight: 700; color: #1d1d1d; margin-bottom: .5rem; word-break: break-word; }
.contact-card-address { font-size: 1.05rem; line-height: 1.55; }
.contact-card-note { color: #666; font-size: .95rem; margin-bottom: 1.5rem; }
.contact-card-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; }

.map-embed { min-height: 420px; border-radius: var(--mp-radius); overflow: hidden; box-shadow: var(--mp-shadow); background: #e9e5dc; }
.map-embed iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }

.company-card { padding: 2rem; }
.company-card-logo { width: 100%; max-width: 280px; height: auto; margin-bottom: 1.5rem; }
.company-card-list li { display: flex; gap: .75rem; margin-bottom: .9rem; color: #444; font-size: .95rem; }
.company-card-list i { color: var(--mp-gold); font-size: 1.05rem; }
.company-card-list a { color: #222; text-decoration: none; word-break: break-word; }
.company-card-list a:hover { color: var(--mp-gold); }
.company-card-social { padding: 1.25rem 0; border-top: 1px solid var(--mp-border); border-bottom: 1px solid var(--mp-border); }
.company-card-social a { display: flex; align-items: center; gap: .5rem; padding: .25rem 0; font-weight: 600; color: #222; text-decoration: none; }
.company-card-social a:hover { color: var(--mp-gold); }
.company-card-social i { color: var(--mp-gold); }
.company-card-cert { display: flex; flex-direction: column; gap: .5rem; padding-top: 1.25rem; }
.company-card-cert img { width: 160px; height: auto; }
@media (max-width: 575.98px) {
    .contact-card, .company-card { padding: 1.5rem; }
    .inquiry-card { padding: 1.25rem; }
}

/* 14b. Brochures (download center)
   -------------------------------------------------------------------------- */
.brochure-group + .brochure-group { margin-top: 3.5rem; }
.brochure-group-title {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.5rem;
    font-size: .85rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--mp-gold-text);
}
.brochure-group-title::after { content: ""; flex: 1; height: 1px; background: var(--mp-border); }
.brochure-group-title span { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: none; color: #888; }

.brochure-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    transition: transform .25s ease, box-shadow .25s ease;
}
.brochure-card:hover { transform: translateY(-4px); box-shadow: var(--mp-shadow-lg); }
.brochure-card-media {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 1.75rem;
    background: var(--mp-cream);
    border-bottom: 1px solid var(--mp-border);
    text-decoration: none;
}
.brochure-card-media > img,
.brochure-cover-placeholder {
    max-height: 100%;
    width: auto;
    border-radius: .25rem;
    box-shadow: 0 12px 28px rgba(22, 22, 22, .2);
    transition: transform .35s ease;
}
.brochure-card:hover .brochure-card-media > img,
.brochure-card:hover .brochure-cover-placeholder { transform: translateY(-4px); }
/* Sampul pengganti bila gambar sampul belum ada */
.brochure-cover-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    height: 100%;
    aspect-ratio: 3 / 4;
    padding: 1.25rem;
    text-align: center;
    font-weight: 700;
    line-height: 1.3;
    color: var(--mp-gold-soft);
    background: radial-gradient(circle at 50% 30%, #2d2a24 0%, #141414 75%);
}
.brochure-cover-placeholder img { width: 56px; }

.brochure-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem 1.5rem 1.75rem; }
.brochure-card-body h4 { font-size: 1.2rem; margin-bottom: .2rem; }
.brochure-card-type { font-size: .9rem; font-weight: 600; color: var(--mp-gold-text); margin-bottom: .75rem; }
.brochure-card-summary { font-size: .93rem; color: #5f5f5f; margin-bottom: 1rem; }
.brochure-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    font-size: .85rem;
    color: #777;
}
.brochure-card-meta i { margin-right: .2rem; color: var(--mp-gold); }
.brochure-card-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; }
.brochure-card-actions .btn { flex: 1 1 auto; padding: .6rem 1rem; }

/* 15. CTA band & footer
   -------------------------------------------------------------------------- */
.cta-band {
    position: relative;
    overflow: hidden;
    padding: 4.5rem 0;
    background: linear-gradient(120deg, #151515 0%, #262626 100%);
}
.cta-band::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 35%;
    height: 100%;
    background: var(--mp-gold);
    opacity: .9;
    clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}
.cta-band::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: calc(35% + 14px);
    height: 100%;
    background: var(--mp-gradient-gold);
    clip-path: polygon(calc(30% - 10px) 0, 30% 0, 14px 100%, 0 100%);
}
.cta-band .container { position: relative; z-index: 2; }
@media (max-width: 991.98px) { .cta-band::before, .cta-band::after { display: none; } }

.site-footer { background: var(--mp-dark); color: rgba(255, 255, 255, .7); padding-top: 5rem; font-size: .95rem; }
.footer-logo { width: 260px; height: auto; }
.footer-title { font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; color: #fff; margin-bottom: 1.25rem; }
.footer-links li { margin-bottom: .6rem; }
.footer-links a, .footer-contact a { color: rgba(255, 255, 255, .7); text-decoration: none; }
.footer-links a:hover, .footer-contact a:hover { color: var(--mp-gold-soft); }
.footer-contact li { display: flex; gap: .75rem; margin-bottom: .85rem; }
.footer-contact i { color: var(--mp-gold-soft); }
.footer-social {
    display: inline-grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    text-decoration: none;
    transition: background .2s ease;
}
.footer-social:hover { background: var(--mp-gold); color: #fff; }
.footer-cert { display: inline-block; margin-top: .5rem; padding: .5rem .75rem; background: #fff; border-radius: .6rem; }
.footer-cert img { width: 180px; height: auto; }
.footer-bottom { margin-top: 4rem; padding: 1.5rem 0; border-top: 1px solid rgba(255, 255, 255, .08); font-size: .85rem; position: relative; }
.footer-bottom::before { content: ""; position: absolute; top: -1px; left: 0; width: min(40%, 520px); height: 3px; background: var(--mp-gradient-gold); }

.whatsapp-float {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 1015; /* di bawah navbar sticky (1020) agar tidak menutupi menu mobile */
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    font-size: 1.6rem;
    color: #fff;
    background: #25d366;
    box-shadow: 0 10px 25px rgba(37, 211, 102, .35);
    text-decoration: none;
    transition: transform .2s ease;
}
.whatsapp-float:hover { color: #fff; transform: scale(1.08); }

/* 16. Lightbox
   -------------------------------------------------------------------------- */
#lightbox .modal-content { box-shadow: none; }
#lightbox .lightbox-img { max-height: 80vh; width: auto; }
.modal-backdrop.show { opacity: .85; }

/* 17. Error page
   -------------------------------------------------------------------------- */
.error-code { font-size: clamp(6rem, 4rem + 10vw, 11rem); font-weight: 800; line-height: 1; background: var(--mp-gradient-gold); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* 18. Page loader ("Now Loading......")
   Hanya tampil bila JS aktif (class .js ditambahkan di <head>), jadi tidak
   pernah menutupi halaman ketika JavaScript mati.
   -------------------------------------------------------------------------- */
.page-loader { display: none; }
.js .page-loader {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.75rem;
    background: radial-gradient(circle at 50% 42%, #2a251c 0%, #141414 55%, #0e0e0e 100%);
    transition: opacity .45s ease, visibility .45s ease;
}
.page-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.loader-logo { position: relative; display: grid; place-items: center; width: 132px; height: 132px; }
.loader-logo::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(196, 174, 130, .15);
    border-top-color: #d6b155;
    border-right-color: #d6b155;
    animation: loader-spin 1.1s linear infinite;
}
.loader-logo img { width: 70px; height: auto; animation: loader-pulse 1.6s ease-in-out infinite; }

.loader-text {
    display: flex;
    align-items: baseline;
    padding: 0 1rem;
    font-size: clamp(.72rem, .6rem + .5vw, .9rem);
    font-weight: 600;
    letter-spacing: .28em;
    white-space: nowrap;
    text-transform: uppercase;
    color: var(--mp-gold-soft);
}
/* Wadah titik lebar tetap supaya teks tidak bergeser saat titik bertambah */
.loader-dots { display: inline-block; width: 3.6em; text-align: left; }
.loader-dots span {
    display: inline-block;
    width: 0;
    overflow: hidden;
    vertical-align: bottom;
    white-space: nowrap;
    letter-spacing: 0;
    animation: loader-dots 2.1s steps(7, end) infinite;
}
.loader-dots i { display: inline-block; width: .6em; font-style: normal; }
.loader-bar { position: relative; width: 180px; height: 2px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, .1); }
.loader-bar::after {
    content: "";
    position: absolute;
    inset: 0;
    width: 40%;
    background: var(--mp-gradient-gold);
    animation: loader-bar 1.2s ease-in-out infinite;
}
@keyframes loader-spin { to { transform: rotate(360deg); } }
@keyframes loader-pulse { 50% { transform: scale(.9); opacity: .75; } }
@keyframes loader-dots { from { width: 0; } to { width: 4.2em; } }
@keyframes loader-bar { from { transform: translateX(-100%); } to { transform: translateX(260%); } }

/* 19. Motion preferences
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .js .hero-content > * { opacity: 1; transform: none; }
    .loader-dots span { width: 3.6em; }
}

/* 19. Extra ratio helper (Bootstrap hanya menyediakan 1x1, 4x3, 16x9, 21x9) */
.ratio-3x4 { --bs-aspect-ratio: 133.3333%; }
