:root {
    --void-bg: #0C0A0D;
    --void-sec: #2D2C40;
    --void-accent: #8C2756;
    --void-footer: #59274C;
}

/* ===== General Layout ===== */
html, body {
    width: 100vw;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background: var(--void-bg) !important;
    color: #fff;
}

/* ===== Navbar ===== */
.navbar-void {
    background: var(--void-sec) !important;
    border-bottom: 3px solid var(--void-accent);
    height: 72px;
    width: 100vw;
}

.nav-logo {
    height: 48px;
}

.void-title {
    color: #fff;
    font-size: 1.3rem;
}

.void-motto {
    font-size: .95rem;
    color: #fff;
}

.nav-link-void {
    color: #fff !important;
    font-weight: 600;
    background: transparent !important;
    border-radius: 0;
    padding: .5rem 1rem;
    transition: background .19s, color .19s;
}

    .nav-link-void:hover, .nav-link-void.active {
        background: var(--void-accent) !important;
        color: #fff !important;
    }

/* ===== Main Content ===== */
.void-main {
    padding-top: 80px;
    width: 100vw;
}

/* ===== Hero Section ===== */
.hero-void {
    width: 100vw;
    height: 100vh;
    min-height: 100vh;
    background: var(--void-bg) no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
    position: relative;
    padding: 0;
    display: flex;
}

    .hero-void::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(44,19,37,0.34);
        z-index: 1;
    }

    .hero-void > .container-void {
        position: relative;
        z-index: 2;
        padding: 4rem 1rem;
        width: 100%;
        max-width: 700px;
        margin: auto;
    }

.parallax-void {
    background-attachment: fixed;
}

/* ===== Sections ===== */
.section-void {
    border-radius: 0;
    margin-bottom: 0;
    box-shadow: none;
    background: none;
    padding: 0;
    width: 100vw;
}

.bg-sec {
    background: var(--void-sec) !important;
}

.bg-accent {
    background: var(--void-accent) !important;
}

.bg-none {
    background: none !important;
}

/* ===== Section with Background Image ===== */
.section-image {
    background-size: cover !important;
    background-position: center !important;
    min-height: 350px;
    width: 100vw;
    padding: 0;
    position: relative;
}

    .section-image::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(12,10,13,0.68);
        z-index: 1;
    }

    .section-image .container-void {
        position: relative;
        z-index: 2;
    }

/* ===== Titles & Icons ===== */
.section-title {
    font-size: 2rem;
    font-weight: bold;
    color: #fff;
    letter-spacing: .7px;
}

.void-accent {
    color: var(--void-accent) !important;
}

.icon-section {
    font-size: 2.5rem;
    color: var(--void-accent);
}

/* ===== Principles Cards (value-card) ===== */
.value-card {
    background: rgba(28, 18, 30, 0.78);
    border-radius: 1.5rem;
    padding: 2.2rem 1.3rem 1.6rem 1.3rem;
    box-shadow: 0 6px 30px 0 rgba(140,39,86, 0.08), 0 1.5px 16px 0 rgba(12,10,13,0.15);
    margin-bottom: 0;
    transition: transform 0.19s cubic-bezier(.19,1,.22,1), box-shadow .19s, background .16s;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 340px;
}

    .value-card:hover {
        background: rgba(140, 39, 86, 0.13);
        transform: translateY(-12px) scale(1.035);
        box-shadow: 0 8px 40px 0 rgba(140,39,86, 0.16), 0 1.5px 16px 0 rgba(12,10,13,0.21);
    }

    .value-card .icon-section {
        font-size: 3.2rem;
        color: var(--void-accent);
        margin-bottom: 1rem;
        transition: color .17s;
    }

    .value-card:hover .icon-section {
        color: #fff;
    }

.valor-title {
    color: var(--void-accent);
    font-size: 1.45rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    margin-top: 0.6rem;
    letter-spacing: .2px;
}

.value-card small {
    color: #eee;
    font-size: 1.08rem;
    font-weight: 400;
    margin-top: .3rem;
}

/* ===== Contact Form Card ===== */
.contact-card {
    max-width: 620px;
    background: rgba(15,15,20,0.97);
    border-radius: 1.5rem;
    box-shadow: 0 8px 38px 0 rgba(0,0,0,0.19), 0 1.5px 8px 0 rgba(44,19,37,0.14);
    margin: 2rem auto;
    padding: 3rem 2.2rem 2.4rem 2.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contact-input,
.form-select {
    background: #181821 !important;
    border: 1.5px solid #333;
    color: #fff;
    border-radius: 0.8rem;
    padding: 1.1rem 1.2rem;
    font-size: 1.15rem;
    margin-bottom: 0.35rem;
    transition: border-color .14s, box-shadow .14s;
    box-shadow: 0 2px 10px 0 rgba(12,10,13,0.06);
}

    .contact-input:focus, .form-select:focus {
        border-color: var(--void-accent);
        outline: none;
        box-shadow: 0 0 0 1.5px var(--void-accent);
        background: #232333 !important;
        color: #fff;
    }

.form-check-input:checked {
    background-color: var(--void-accent) !important;
    border-color: var(--void-accent) !important;
}

.form-check-label {
    font-size: 1.05rem;
}

    .form-check-label a {
        color: var(--void-accent);
        text-decoration: underline;
    }

        .form-check-label a:hover {
            color: #fff;
        }

/* ===== Buttons & Links ===== */
.btn-void-accent {
    background: var(--void-accent);
    color: #fff;
    border-radius: 0;
    font-weight: 600;
    padding: 0.75rem 2.3rem;
    font-size: 1.12rem;
    border: none;
    transition: all 0.22s;
}

    .btn-void-accent:hover, .btn-void-accent:focus {
        background: #fff;
        color: var(--void-accent);
        outline: 2px solid var(--void-accent);
    }

.btn-void-dark {
    background: var(--void-bg);
    color: var(--void-accent);
    border-radius: 0;
    font-weight: 600;
    padding: 0.7rem 2.1rem;
    font-size: 1rem;
    border: none;
    transition: all 0.18s;
}

    .btn-void-dark:hover, .btn-void-dark:focus {
        background: #fff;
        color: var(--void-bg);
        outline: 2px solid var(--void-accent);
    }

.link-void-accent {
    color: var(--void-accent);
    font-weight: bold;
    text-decoration: none;
    transition: color .18s;
}

    .link-void-accent:hover {
        color: #fff;
        text-decoration: underline;
    }

/* ===== Footer ===== */
.footer-void {
    background: var(--void-footer);
    color: #ccc;
    border-radius: 0;
    margin-top: 0;
    letter-spacing: .5px;
    border-top: 2px solid var(--void-accent);
    width: 100vw;
}

/* ===== Loader ===== */
.loader {
    position: relative;
    width: 64px;
    height: 64px;
    background-color: rgba(0, 0, 0, 0.5);
    transform: rotate(45deg);
    overflow: hidden;
}

    .loader:after {
        content: '';
        position: absolute;
        inset: 8px;
        margin: auto;
        background: #222b32;
    }

    .loader:before {
        content: '';
        position: absolute;
        inset: -15px;
        margin: auto;
        background: var(--void-accent);
        animation: diamondLoader 2s linear infinite;
    }

@keyframes diamondLoader {
    0%,10% {
        transform: translate(-64px, -64px) rotate(-45deg)
    }

    90%, 100% {
        transform: translate(0px, 0px) rotate(-45deg)
    }
}

/* ===== Utilities ===== */
.container-void {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0;
}

.lore-box {
    background: transparent;
    max-width: 600px;
    margin: auto;
}

/* ===== Responsive ===== */
@media (max-width: 900px) {
    .section-title {
        font-size: 1.13rem;
    }

    .hero-void > .container-void {
        padding: 2.3rem 0.5rem;
    }

    .value-card {
        min-height: 270px;
        padding: 1.2rem .7rem 1.1rem .7rem;
    }

    .contact-card {
        max-width: 97vw;
        padding: 2rem 1rem 1.5rem 1rem;
    }
}

@media (max-width: 600px) {
    .navbar-void {
        height: auto;
    }

    .nav-logo {
        height: 36px;
    }

    .footer-void {
        font-size: 0.91rem;
    }

    .hero-void > .container-void {
        padding: 1.2rem 0.2rem;
    }

    .hero-void {
        min-height: 85vh;
    }

    .value-card {
        min-height: 0;
        padding: .8rem .4rem;
        border-radius: 1.1rem;
    }

    .valor-title {
        font-size: 1.18rem;
    }

    .value-card .icon-section {
        font-size: 2.1rem;
    }

    .contact-card {
        max-width: 99vw;
        border-radius: 1.1rem;
    }
}
