:root {
    /* Warna utama logo */
    --primary: #e70304;        /* merah logo */
    --primary-dark: #a20d0d;   /* merah tua */
    --primary-deep: #650707;   /* merah gelap */
    --primary-soft: #fff1f1;   /* merah sangat muda */

    /* Aksen kuning/logo */
    --accent: #f1e72b;         /* kuning logo */
    --accent-dark: #d6bf12;    /* kuning tua */
    --accent-soft: #fffbea;    /* kuning muda */

    /* Warna gelap logo */
    --black: #020202;
    --dark: #151515;
    --charcoal: #333125;
    --muted: #6f6f6f;

    /* Background */
    --soft: #fff7f7;
    --light: #ffffff;
    --border: #f1dada;

    /* Compatibility dengan CSS lama */
    --deep: #1b0505;
    --green: #e70304;
    --gold: #f1e72b;

    /* RGB untuk opacity */
    --primary-rgb: 231, 3, 4;
    --accent-rgb: 241, 231, 43;
    --dark-rgb: 2, 2, 2;

    /* Gradient */
    --gradient-primary: linear-gradient(135deg, #e70304 0%, #a20d0d 55%, #650707 100%);
    --gradient-dark: linear-gradient(135deg, #020202 0%, #1b0505 50%, #a20d0d 100%);
    --gradient-hero: radial-gradient(circle at top left, rgba(241, 231, 43, 0.35), transparent 32%),
                     linear-gradient(135deg, #020202 0%, #650707 45%, #e70304 100%);

    /* Shadow */
    --shadow-soft: 0 12px 35px rgba(231, 3, 4, 0.12);
    --shadow-primary: 0 18px 45px rgba(231, 3, 4, 0.25);
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px
}

body {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--dark);
    background: #fff
}

a {
    text-decoration: none
}

.fw-black {
    font-weight: 900
}

.py-lg-6 {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important
}

.nav-blur {
    backdrop-filter: blur(14px);
    background: rgba(255, 255, 255, .9) !important
}

.brand-logo {
    object-fit: contain;
    border-radius: 12px
}

.navbar .nav-link {
    font-weight: 600;
    color: #31473b
}

.navbar .nav-link:hover {
    color: var(--green)
}

.hero-section {
    background: radial-gradient(circle at 80% 10%, rgba(217, 164, 65, .25), transparent 28%), linear-gradient(180deg, #f9fffb 0%, #fff 78%)
}

.hero-section:before {
    content: "";
    position: absolute;
    inset: auto -10% -25% auto;
    width: 520px;
    height: 520px;
    background: rgba(25, 135, 84, .12);
    border-radius: 50%;
    filter: blur(8px)
}

.soft-badge {
    background: #fff4d8;
    color: #8a5d00;
    padding: .75rem 1rem;
    font-weight: 800
}

.shadow-soft {
    box-shadow: 0 22px 60px rgba(12, 73, 51, .12)
}

.hero-card {
    background: #fff;
    border-radius: 2.25rem;
    padding: .75rem;
    box-shadow: 0 30px 90px rgba(7, 59, 45, .16)
}

.hero-img {
    width: 100%;
    aspect-ratio: 5/4;
    object-fit: cover;
    border-radius: 1.8rem
}

.hero-placeholder,
.profile-placeholder {
    min-height: 420px;
    display: grid;
    place-items: center;
    background: #e9f7ef;
    color: #527364;
    font-weight: 700
}

.floating-offer {
    position: absolute;
    left: -16px;
    bottom: 34px;
    background: #fff;
    border-radius: 1.25rem;
    padding: 1rem 1.2rem;
    min-width: 190px
}

.floating-offer span,
.floating-offer small {
    display: block;
    color: #6c757d
}

.floating-offer strong {
    font-size: 1.35rem;
    color: var(--green)
}

.trust-card {
    background: #fff;
    border: 1px solid #e6f2eb;
    border-radius: 1.25rem;
    padding: 1rem;
    min-height: 96px
}

.trust-card strong {
    display: block;
    font-size: 1.35rem;
    color: var(--deep)
}

.trust-card span {
    font-size: .85rem;
    color: #6c757d
}

.section-padding {
    padding: 6rem 0
}

.section-heading {
    max-width: 760px
}

.section-kicker {
    display: inline-block;
    color: var(--green);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .82rem;
    margin-bottom: .75rem
}

.section-title {
    font-weight: 900;
    letter-spacing: -.03em;
    margin-bottom: 1rem
}

.section-text {
    font-size: 1.07rem;
    color: #647067;
    line-height: 1.8
}

.bg-soft {
    background: var(--soft)
}

.mini-feature {
    background: #fff;
    border: 1px solid #e5f2eb;
    border-radius: 1rem;
    padding: 1rem;
    font-weight: 700;
    color: #29523d
}

.price-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e3efe8;
    border-radius: 1.75rem;
    padding: 2rem;
    height: 100%;
    transition: .25s ease;
    box-shadow: 0 16px 50px rgba(15, 81, 50, .06)
}

.price-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 28px 70px rgba(15, 81, 50, .14)
}

.price-card.featured {
    border: 2px solid var(--green);
    background: linear-gradient(180deg, #fff 0%, #f4fff8 100%)
}

.popular-badge {
    position: absolute;
    right: 1.25rem;
    top: 1.25rem;
    background: var(--gold);
    color: #221800;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 900;
    padding: .42rem .8rem
}

.price-card h3 {
    font-weight: 900;
    margin-right: 110px
}

.normal-price {
    text-decoration: line-through;
    color: #9aa49d;
    font-weight: 600
}

.price {
    font-size: 2.25rem;
    font-weight: 900;
    color: var(--green);
    letter-spacing: -.04em
}

.package-list {
    padding: 0;
    margin: 0 0 1.5rem 0;
    list-style: none
}

.package-list li {
    padding: .58rem 0 .58rem 1.75rem;
    position: relative;
    border-bottom: 1px dashed #e6efe9
}

.package-list li:before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--green);
    font-weight: 900
}

.doc-card {
    overflow: hidden;
    border-radius: 1.5rem;
    border: 1px solid #e8efe9;
    background: #fff;
    box-shadow: 0 16px 50px rgba(15, 81, 50, .07);
    height: 100%
}

.doc-card img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: .35s ease
}

.doc-card:hover img {
    transform: scale(1.04)
}

.bg-deep {
    background: radial-gradient(circle at 10% 0%, rgba(217, 164, 65, .25), transparent 25%), var(--deep)
}

.adv-card {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1.5rem;
    padding: 1.6rem
}

.adv-icon {
    font-size: 2rem;
    margin-bottom: 1rem
}

.adv-card h3 {
    font-size: 1.15rem;
    font-weight: 900
}

.adv-card p {
    opacity: .75;
    margin-bottom: 0
}

.cta-band {
    background: var(--primary);
    color: #fff;
    padding: 3rem 0
}

.cta-band h2 {
    font-weight: 900
}

.faq-box {
    max-width: 850px
}

.accordion-item {
    border-color: #e4eee8
}

.accordion-button {
    font-weight: 800
}

.accordion-button:not(.collapsed) {
    background: #f4fff8;
    color: var(--deep)
}

.map-wrap {
    height: 100%;
    min-height: 360px;
    border-radius: 1.5rem;
    overflow: hidden;
    background: #eaf5ef;
    border: 1px solid #dcebe3
}

.map-wrap iframe {
    width: 100%;
    height: 100%;
    min-height: 360px;
    border: 0
}

.map-placeholder {
    height: 360px;
    display: grid;
    place-items: center;
    color: #637b6e;
    font-weight: 700
}

.footer {
    background: #071f18;
    color: #fff
}

.footer .text-muted {
    color: rgba(255, 255, 255, .62) !important
}

.floating-wa {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1030;
    background: #25d366;
    color: #fff;
    font-weight: 900;
    border-radius: 999px;
    padding: .9rem 1.2rem;
    box-shadow: 0 16px 45px rgba(0, 0, 0, .22)
}

.floating-wa:hover {
    color: #fff;
    transform: translateY(-2px)
}

@media (max-width:991.98px) {
    .section-padding {
        padding: 4rem 0
    }

    .display-4 {
        font-size: 2.45rem
    }

    .floating-offer {
        left: 18px
    }

    .price-card h3 {
        margin-right: 0
    }

    .popular-badge {
        position: static;
        display: inline-block;
        width: max-content;
        margin-bottom: 1rem
    }
}

@media (max-width:575.98px) {

    .hero-placeholder,
    .profile-placeholder {
        min-height: 280px
    }

    .trust-card {
        padding: .8rem
    }

    .trust-card strong {
        font-size: 1.05rem
    }

    .trust-card span {
        font-size: .72rem
    }

    .price {
        font-size: 1.8rem
    }

    .floating-wa {
        left: 16px;
        right: 16px;
        text-align: center
    }
}

.btn-primary-custom {
    background: var(--gradient-primary);
    color: #fff;
    border: none;
    border-radius: 999px;
    font-weight: 700;
    box-shadow: var(--shadow-primary);
}

.btn-primary-custom:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 22px 50px rgba(231, 3, 4, 0.35);
}


.text-primary-custom {
    color: var(--primary) !important;
}

.bg-soft-custom {
    background: var(--soft);
}

.badge-accent-custom {
    background: var(--accent-soft);
    color: var(--primary-deep);
    border: 1px solid rgba(241, 231, 43, 0.55);
}