@import url("responsive.css");
@import url("https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap");

@font-face {
    font-family: "Helvetica";
    font-style: normal;
    font-weight: normal;
    src: local("Helvetica"), url("/assets/fonts/Helvetica.woff") format("woff");
}
@font-face {
    font-family: "Helvetica Light";
    font-style: normal;
    font-weight: normal;
    src: local("Helvetica Light"),
        url("/assets/fonts/Helvetica-light.woff") format("woff");
}

:root {
    /* colors */
    --black-color: #1e1e1e;
    --red-color: #cf3434;
    --grey1-color: #555555;
    --grey2-color: #c8c8c8;
    --white-color: #ffffff;
    --white2-color: #f6f6f6;
    /* fonts */
    --font-primary: "Helvetica", sans-serif;
    --font-primary-light: "Helvetica Light", sans-serif;
    --font-secondary: "Libre Baskerville", serif;
    /* sizes */
    --font-h1: 48px;
    --font-h2: 20px;
    --font-h3: 16px;
    --b1-size: 16px;
    --hl2-size: 20px;
    --hs1-size: 40px;
    --hs2-size: 24px;
    --hs3-size: 20px;
}

body {
    font-family: var(--font-primary);
}

h1 {
    font-family: var(--font-primary);
    font-size: var(--font-h1);
    color: var(--black-color);
}

/* === NAVBAR ==== */
.navbar {
    transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.navbar.scrolled {
    background-color: var(--black-color) !important;
    /* box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05); */
}
.navbar.scrolled .navbar-brand {
    color: var(--white-color);
}
.navbar.scrolled .nav-link {
    color: var(--grey2-color);
}
.navbar.scrolled .nav-link.active,
.navbar.scrolled .nav-link:hover {
    color: var(--white-color) !important;
}
.navbar-brand {
    font-family: var(--font-secondary);
    font-size: 24px;
    color: var(--white-color);
    transition: color 0.3s ease-in-out;
}
.navbar .nav-link {
    color: var(--grey2-color);
    transition: color 0.3s ease-in-out;
}
.navbar .nav-link.active,
.navbar .nav-link:hover {
    color: var(--white-color);
}

/* === HERO === */
#hero {
    background: linear-gradient(270deg, rgba(0, 0, 0, 0) 1.72%, #000000 101.72%),
        url("/assets/images/hero.jpg") no-repeat center center/cover;
}
.hero-tag {
    color: var(--white2-color);
    font-family: var(--font-secondary);
}
.hero-h {
    color: var(--white2-color);
    font-family: var(--font-primary);
    font-size: var(--font-h1);
}
.hero-p {
    color: var(--white2-color);
    font-family: var(--font-primary-light);
    font-size: var(--font-h2);
}
.btn-putih {
    background-color: var(--white-color);
    color: var(--black-color);
    font-size: var(--b1-size);
    border: none;
    border-radius: 0;
    padding: 16px 24px;
    transition: background-color 0.5s ease-in-out, color 0.5s ease-in-out,
        outline 0.5s ease-in-out;
}
.btn-putih:hover {
    background-color: var(--grey1-color);
    color: var(--white-color);
    outline: 1px solid var(--white-color);
}
.btn-clear {
    background-color: transparent;
    color: var(--white-color);
    padding: 16px 24px;
    transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;
    border: none;
    outline: none;
}
.btn-clear:hover {
    color: var(--grey2-color);
}
.btn-clear:focus,
.btn-clear:active {
    outline: none;
    box-shadow: none;
}

/* floating imgages hero */
#hero {
    position: relative;
}
.floating-img {
    position: absolute;
}
.top-left {
    top: 13%;
    left: 10%;
}
.bottom-left {
    bottom: 12%;
    left: 10%;
}
.top-right {
    top: 13%;
    right: 12%;
}
.bottom-right {
    bottom: 10%;
    right: 10%;
}
@keyframes floatingImgs {
    0% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(10px, -10px);
    }
    100% {
        transform: translate(0, 0);
    }
}
.floating-img.left {
    animation: floatingImgs 2s ease-in-out infinite;
}
.floating-img.right {
    animation: floatingImgs 2s ease-in-out infinite;
    animation-delay: 0.3s;
}

/* === WARISAN ===*/
#warisan {
    padding: 14rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.warisan-h {
    color: var(--black-color);
    font-family: var(--font-primary);
    font-size: var(--font-h1);
}
.warisan-h .highlight {
    font-family: var(--font-secondary);
    color: var(--red-color);
    font-style: italic;
}
.warisan-p {
    color: var(--black-color);
    font-family: var(--font-primary-light);
    font-size: var(--hl2-size);
}

/* === Arsipan === */
.arsipan-p {
    font-size: var(--font-h2);
    color: var(--black-color);
}
.arsipan-h {
    font-size: var(--hs1-size);
    color: var(--red-color);
    font-style: italic;
    font-family: var(--font-secondary);
}
.arsipan-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}
/* nav search di arsipan landing */
.filter-nav {
    margin: 20px 0;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
}
.filter-btn {
    background: none;
    border: none;
    color: var(--grey1-color);
    padding: 10px 15px;
    cursor: pointer;
    font-size: 16px;
    position: relative;
    transition: color 0.3s ease-in-out;
}
.filter-btn::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background-color: var(--red-color);
    transition: width 0.3s ease-in-out;
}
.filter-btn:hover,
.filter-btn.active {
    color: black; /* Hover & Aktif: teks hitam */
}
.filter-btn:hover::after,
.filter-btn.active::after {
    width: 100%; /* Hover & Aktif: garis bawah merah */
}
/* search bar */
.search-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.search-label {
    font-size: var(--font-h3);
    color: var(--grey2-color);
}
.search-bar {
    display: flex;
    align-items: center;
    background: var(--white-color);
    width: fit-content;
    gap: 10px;
    align-self: flex-end;
}
.search-bar input {
    border: none;
    outline: none;
    width: 120px;
    min-width: 100px;
    max-width: 150px;
}
.search-bar button {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--black-color);
}
/* === CARD ON ARSIPAN, HALAMAN ARSIP DAN DETAIL ARSIP */
#arsipan .card-body,
#archives-list .card-body,
#archive .card-body {
    position: absolute;
    color: var(--white-color);
    bottom: 0;
    background-color: var(--white-color);
    height: 46%;
    width: 80%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
#arsipan .card-title,
#archives-list .card-title,
#archive .card-title {
    font-size: var(--hs3-size);
    color: var(--black-color);
    font-family: var(--font-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    display: block;
}
#arsipan .card-text,
#archives-list .card-text,
#archive .card-text {
    color: var(--red-color);
    font-size: var(--font-h3);
    margin-bottom: 8px;
}
#arsipan .card-link,
#archives-list .card-link,
#archive .card-link {
    font-size: var(--b1-size);
    color: var(--black-color);
    text-decoration: none;
}
#arsipan .card-link i,
#archives-list .card-link i,
#archive .card-link i {
    color: var(--grey1-color);
    transition: transform 0.5s ease-in-out;
}
#arsipan .card-link:hover i,
#archives-list .card-link:hover i,
#archive .card-link:hover i {
    transform: rotate(-45deg);
}
#arsipan .card-img-top,
#archives-list .card-img-top,
#archive .card-img-top {
    width: 100%;
    height: 420px;
    object-fit: cover;
}
#archive .lihat-lengkap {
    font-size: var(--b1-size);
    color: var(--black-color);
    text-decoration: none;
    transition: color 0.3s ease-in-out;
}
#archive .lihat-lengkap:hover {
    color: var(--grey1-color);
}
#archive .lihat-lengkap i {
    color: var(--grey2-color);
    transition: transform 0.5s ease-in-out;
}
#archive .lihat-lengkap:hover i {
    transform: rotate(-45deg);
    color: var(--grey1-color);
}
/* Badge Archive Detail */
.badge-archive {
    background-color: #ffe2e2;
    color: #cf3434;
    padding: 4px;
    border-radius: 4px;
    font-size: 14px;
}
/* Badge Archive List */
.badge-archive-list {
    background-color: #ffe2e2;
    color: #cf3434;
    padding: 4px;
    border-radius: 4px;
    font-size: 14px;
    display: inline-block;
    width: fit-content;
    white-space: nowrap;
    margin-bottom: 32px;
}

.btn-outline-putih {
    background-color: var(--white-color);
    color: var(--black-color);
    padding: 16px 24px;
    border: 2px solid var(--grey2-color);
    transition: color 0.4s ease-in-out, background-color 0.4s ease-in-out;
    text-decoration: none;
}
.btn-outline-putih:hover {
    background-color: var(--black-color);
    color: var(--white-color);
}

/* === NEWEST === */
#newest {
    padding: 12rem 0;
}
.newest-p {
    font-size: var(--font-h2);
    color: var(--black-color);
}
.newest-h {
    font-size: var(--hs2-size);
    font-family: var(--font-secondary);
    color: var(--red-color);
}
.newest-desc {
    font-family: var(--font-primary-light);
    font-size: var(--hl2-size);
    color: var(--grey1-color);
}
#newest .card-link-lined {
    font-size: var(--b1-size);
    color: var(--black-color);
}
#newest .card-link-lined:hover {
    color: var(--grey1-color);
}
#newest .card-link-lined i {
    color: var(--grey1-color);
    transition: transform 0.5s ease-in-out;
}
#newest .card-link-lined:hover i {
    transform: rotate(-45deg);
}
.newest-img {
    width: 100%;
    height: 360px;
    object-fit: contain;
}

/* === BUKU === */
#buku {
    padding: 5rem 0;
    background-color: var(--black-color);
    color: var(--white-color);
    display: flex;
    justify-content: center;
    align-items: center;
}
.buku-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
#buku .lihat-lengkap {
    font-size: var(--b1-size);
    color: var(--grey2-color);
    text-decoration: none;
    transition: color 0.3s ease-in-out;
}
#buku .lihat-lengkap:hover {
    color: var(--white-color);
}
#buku .lihat-lengkap i {
    color: var(--grey2-color);
    transition: transform 0.5s ease-in-out;
}
#buku .lihat-lengkap:hover i {
    transform: rotate(-45deg);
    color: var(--white-color);
}
.buku-p {
    font-size: var(--font-h2);
    color: var(--white2-color);
}
.buku-h {
    font-size: var(--hs1-size);
    color: var(--red-color);
    font-style: italic;
    font-family: var(--font-secondary);
}
#buku hr {
    width: 100%;
    height: 1px;
    background-color: var(--grey1-color);
}
#buku .card,
#books-list .card {
    background-color: transparent;
    border: none;
}
#buku .card-body,
#books-list .card-body {
    background: transparent;
}
#buku .card-title,
#books-list .card-title {
    font-size: var(--font-h2);
    color: var(--white2-color);
}
#buku .card-text,
#books-list .card-text {
    font-size: var(--font-h3);
    color: var(--grey1-color);
}
#buku .card-img-top,
#books-list .card-img-top {
    width: 100%;
    height: 335px;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}
#buku .card:hover .card-img-top,
#books-list .card:hover .card-img-top {
    transform: scale(1.12);
}

/* === GALERI === */
#galeri {
    margin: 10rem 0;
}
#galeri .subjudul {
    font-size: var(--font-h2);
    color: var(--black-color);
}
#galeri .judul {
    font-size: var(--hs1-size);
    color: var(--red-color);
    font-style: italic;
    font-family: var(--font-secondary);
}
/* AUTOSCROLLLLLLLL */
.endless-scroll {
    display: flex;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    width: 100%;
    height: 300px;
}
.endless-scroll::before,
.endless-scroll::after {
    content: "";
    position: absolute;
    top: 0;
    width: 100px;
    height: 100%;
    z-index: 1;
}
.endless-scroll::before {
    left: 0;
    background: linear-gradient(to right, white, transparent);
}
.endless-scroll::after {
    right: 0;
    background: linear-gradient(to left, white, transparent);
}
.endless-scroll .slide-track {
    display: flex;
    width: max-content; /* Pastikan track lebih panjang dari layar */
    animation: scroll-left 20s linear infinite;
}
.endless-scroll.reverse .slide-track {
    animation: scroll-right 20s linear infinite;
}
.endless-scroll .slide-track img {
    flex-shrink: 0;
    height: 300px;
    width: auto;
    max-width: 100%;
}
@keyframes scroll-left {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
}
@keyframes scroll-right {
    from {
        transform: translateX(-100%);
    }
    to {
        transform: translateX(0);
    }
}

/* === FOOTER === */
footer {
    padding: 5rem 0 7.5rem;
    background-color: var(--black-color);
    color: var(--white-color);
}
footer h1 {
    font-family: var(--font-secondary);
    font-style: italic;
    color: var(--red-color);
    font-size: 56px;
}
footer .brand {
    font-family: var(--font-secondary);
    font-size: var(--hs2-size);
}
.arrow-rotate {
    transform: rotate(-45deg);
    transition: transform 0.3s ease-in-out;
}
footer .address {
    font-family: var(--font-primary-light);
    font-size: var(--hl2-size);
}
footer .contact {
    font-family: var(--font-secondary);
    font-size: var(--hs3-size);
}
footer .contacts {
    font-family: var(--font-primary-light);
    font-size: var(--hl2-size);
}

/* === ARCHIVE PAGE === */
#archive,
#archives-list {
    padding: 8rem 0 10rem;
}
#archive .jenis {
    font-size: var(--font-h2);
    color: var(--red-color);
}
#archive h1 {
    font-family: var(--font-secondary);
    font-size: var(--hs1-size);
    font-style: italic;
}
#archive .info {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--grey1-color);
}
#archive .separator {
    opacity: 0.6;
}
#archive .tagline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    /* padding: 10px 0; */
}
#archive .tagline p {
    font-size: var(--hs2-size);
    font-family: var(--font-secondary);
}
#archive .content {
    padding: 3rem 0;
}
/* Lists */
#archives-list .judul {
    font-size: var(--font-h2);
    color: var(--black-color);
}
#archives-list .subjudul {
    font-size: var(--hs1-size);
    color: var(--red-color);
    font-family: var(--font-secondary);
    font-style: italic;
}
#archives-list .judul,
#archives-list .subjudul {
    text-align: center;
}
.search-input::placeholder {
    color: grey;
    opacity: 1;
}

/* === BOOK PAGE === */
.books-page {
    background-color: var(--black-color);
    color: var(--white-color);
}
#books-list {
    padding: 8rem 0 10rem;
}
#books-list .judul {
    font-size: var(--font-h2);
    color: var(--white-color);
}
#books-list .subjudul {
    font-size: var(--hs1-size);
    color: var(--red-color);
    font-family: var(--font-secondary);
    font-style: italic;
}
#books-list .judul,
#books-list .subjudul {
    text-align: center;
}
.search-box-dark .search-input {
    background-color: transparent;
    color: var(--white-color);
    border: none;
    outline: none;
}
.search-box-dark .input-group-text i,
.search-box-dark .search-input::placeholder {
    color: var(--white-color);
}
.footer-light {
    background-color: var(--white-color);
    color: var(--black-color);
}
.footer-light hr {
    border-color: var(--grey1-color);
}