/* --- Definisi Animasi --- */
@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-100px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}



@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.8);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-50px) translateX(-50%);
    }

    to {
        opacity: 1;
        transform: translateY(0) translateX(-50%);
    }
}

/* Animasi Pohon Melambai (Swaying) */
@keyframes sway {
    0% {
        transform: rotate(0deg);
    }

    50% {
        transform: rotate(2deg);
    }

    /* Goyang sedikit ke kanan */
    100% {
        transform: rotate(0deg);
    }
}

/* Animasi Masuk Pohon Kanan 2 (Rotasi 346deg) */
@keyframes slideInTreeRight2 {
    from {
        opacity: 0;
        transform: translateX(100px) rotate(346deg);
    }

    to {
        opacity: 1;
        transform: translateX(0) rotate(346deg);
    }
}

/* Animasi Masuk Pohon Kanan 3 (Rotasi -15deg) */
@keyframes slideInTreeRight3 {
    from {
        opacity: 0;
        transform: translateX(100px) rotate(-15deg);
    }

    to {
        opacity: 1;
        transform: translateX(0) rotate(-15deg);
    }
}

@keyframes slideInFlower3 {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animasi Sway (Goyang) tetap menggunakan variabel agar fleksibel */
@keyframes swayMirror {
    0% {
        transform: rotate(var(--rotasi-asal));
    }

    50% {
        transform: rotate(calc(var(--rotasi-asal) + 2deg));
    }

    100% {
        transform: rotate(var(--rotasi-asal));
    }
}

/* Mengaktifkan scroll halus untuk seluruh halaman */
html {
    scroll-behavior: smooth;
}

/* --- CUSTOM SCROLLBAR --- */
/* Ukuran scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

/* Bagian jalur (track) scrollbar */
::-webkit-scrollbar-track {
    background: #f1f1f1;
}

/* Bagian batang (thumb) scrollbar */
::-webkit-scrollbar-thumb {
    background: #8da1b9;
    /* Warna biru sesuai Save The Date Anda */
    border-radius: 10px;
}

/* Batang scrollbar saat diarahkan kursor (hover) */
::-webkit-scrollbar-thumb:hover {
    background: #343638;
    /* Warna gelap sesuai tema card Anda */
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Georgia', serif;
    margin: 0;
    padding: 0;
    color: #4a4a4a;
}

.wrapper {
    display: flex;
    height: 100vh;
    overflow: hidden;
}

/* --- BAGIAN KIRI (FOTO PASANGAN) --- */
.left-section {
    flex: 1.4;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* Posisi teks di bawah sesuai foto 2 */
    padding: 60px;
    position: relative;
}

/* Overlay halus agar teks terbaca */
.left-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 50%);
    z-index: 1;
}

.left-content {
    position: relative;
    z-index: 2;
    color: white;
    text-align: center;
}

.left-content h2 {
    font-family: 'Cinzel', serif;
    font-weight: 400;
    letter-spacing: 4px;
    font-size: 1rem;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.bride-name-cursive {
    font-family: 'Great Vibes', cursive;
    font-size: 4.5rem;
    margin: 10px 0;
    font-weight: 400;
}

.wedding-date {
    letter-spacing: 3px;
    font-weight: bold;
    font-size: 0.9rem;
    text-transform: uppercase;
}

/* --- BAGIAN KANAN (SAMPUL ELEGAN) --- */
.right-section {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    background: url('../images/bg-pembuka.webp') no-repeat center center;
    background-size: cover;
    scroll-behavior: smooth;
}

.section {
    min-height: 100vh;
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;
}

/* Background utama sisi kanan menggunakan bg-pembukaan.webp */
/* --- SECTION UTAMA --- */
body {
    font-family: 'Poppins', sans-serif;
    overflow-x: hidden;
}

/* --- Section Sampul --- */
.first-screen {
    position: relative;
    width: 100%;
    height: 100vh;
    /* Full layar */
    background-image: url('../images/bg-utama2.webp');
    background-size: cover;
    background-position: center;
    /* background-attachment: fixed; */
    /* Opsional: Parallax effect pada BG */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* Mencegah scrollbar saat animasi masuk */
    text-align: center;
    color: #4a4a4a;
    /* Warna teks umum */
}

/* --- Dekorasi Atas (Burung) --- */
.top-decor {
    position: absolute;
    top: 20px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 0 20px;
    z-index: 10;
    pointer-events: none;
    /* Agar tidak menghalangi klik */
}

.bird {
    width: 50px;
    /* Sesuaikan ukuran burung */
    opacity: 0.9;
}

.bird-left {
    transform: scaleX(1);
    /* Hadap kanan */
}

.bird-right {
    transform: scaleX(-1);
    /* Flip horizontal: Hadap kiri */
}

/* --- Konten Tengah --- */
.content-wrapper {
    position: relative;
    z-index: 20;
    /* Di atas background, di bawah dekorasi bunga */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 60px;
    /* Memberi ruang untuk bunga di bawah */
}

/* Frame & Foto */
/* --- Frame & Foto (Updated) --- */
.frame-container {
    position: relative;
    width: 260px;
    /* Sedikit diperlebar agar proporsional */
    height: 380px;
    /* Hilangkan display flex, kita gunakan absolute positioning */
    margin: 0 auto;
    /* Pastikan container di tengah */
}

.frame-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    /* Pastikan frame mengisi container */
    z-index: 10;
    /* Frame harus paling depan */
    pointer-events: none;
    /* Agar klik tembus ke foto jika perlu */
}

.photo-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    height: 74%;
    overflow: hidden;
    border-radius: 30px;
    z-index: 5;
    background-color: #f0f0f0;
}

.couple-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Pastikan foto tidak gepeng */
    display: block;
}

/* Teks */
.couple-names {
    font-family: 'Great Vibes', cursive;
    font-size: 3rem;
    color: #5c4033;
    /* Warna Coklat tua elegan */
    margin: 10px 0;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8);
}

.guest-area p {
    font-size: 0.9rem;
    margin-bottom: 5px;
}

.guest-name {
    font-weight: 600;
    font-size: 1.2rem;
    margin-bottom: 20px;
}

/* Tombol */
.btn-open {
    padding: 12px 30px;
    border-radius: 50px;
    border: none;
    background-color: #5c4033;
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(92, 64, 51, 0.3);
    transition: transform 0.3s, background 0.3s;
    animation: pulseBtn 2s infinite;
}

.btn-open:hover {
    transform: scale(1.05);
    background-color: #7a5544;
}

/* --- Dekorasi Bawah (Bunga) --- */
.bottom-decor {
    position: absolute;
    bottom: -10px;
    /* Sedikit overlap ke bawah agar rapi */
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    pointer-events: none;
    z-index: 2;

    /* Paling atas */
}

.flower {
    position: absolute;
    bottom: 0;
    max-height: 25vh;
    /* Tinggi maksimal bunga 25% layar */
    object-fit: contain;
}

/* Posisi Bunga */
.flower-1 {
    left: -20px;
    width: 180px;
    z-index: 2;
}

.flower-2 {
    right: -20px;
    width: 180px;
    z-index: 2;
}

.flower-3 {
    width: 100%;
    /* Bunga tengah mungkin memanjang */
    max-width: 400px;
    z-index: 1;
    /* Di belakang flower 1 & 2 */
}

/* --- ANIMASI --- */

/* 1. Slide Up Masuk (Dijalankan saat load) */
.slide-up-animation {
    animation: slideUp 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes slideUp {
    0% {
        transform: translateY(100%);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

/* 2. Efek Tertiup Angin (Looping) */
.wind-effect {
    transform-origin: bottom center;
    /* Titik putar di bawah (batang bunga) */
    animation: windSway 3s ease-in-out infinite alternate;
}

/* Variasi delay agar goyangan tidak barengan/kaku */
.flower-1 {
    animation-delay: 0.7s;
}

.flower-2 {
    animation-delay: 0.5s;
}

.flower-3 {
    animation-delay: 1s;
}

@keyframes windSway {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(3deg);
    }

    /* Goyang sedikit saja agar elegan */
}

@keyframes pulseBtn {
    0% {
        box-shadow: 0 0 0 0 rgba(92, 64, 51, 0.7);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(92, 64, 51, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(92, 64, 51, 0);
    }
}

/* --- Responsive Mobile --- */
@media (max-width: 480px) {
    .couple-names {
        font-size: 2.5rem;
    }

    .frame-container {
        width: 260px;
        height: 300px;
    }

    .flower {
        max-height: 20vh;
    }
}

@media (max-width: 1024px) {
    .left-section {
        display: none;
    }

    .frame-container {
        max-width: 100%;
        padding: 40px;
        min-height: 50vh;
    }

}

/* --- KEYFRAMES (Definisi Gerakan) --- */

/* 1. Efek Zoom In & Fade (Untuk Frame) */
@keyframes zoomInSmooth {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* 2. Efek Naik ke Atas & Fade (Untuk Teks) */
@keyframes fadeInUpSmooth {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- PENERAPAN ANIMASI KE ELEMENT --- */

/* 1. Frame Container (Masuk Pertama) */
.frame-container {
    opacity: 0;
    /* Sembunyi dulu sebelum animasi mulai */
    animation: zoomInSmooth 1.2s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: 0.3s;
    /* Delay sedikit agar tidak kaget */
}

/* 2. Nama Pasangan (Masuk Kedua) */
.couple-names {
    opacity: 0;
    animation: fadeInUpSmooth 1s ease-out forwards;
    animation-delay: 0.8s;
    /* Muncul setelah frame selesai */
}

/* 3. Area Tamu (Masuk Ketiga) */
.guest-area {
    opacity: 0;
    animation: fadeInUpSmooth 1s ease-out forwards;
    animation-delay: 1.1s;
}


/* --- Opening Section --- */
.opening-section {
    position: relative;
    min-height: 100vh;
    padding: 60px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* Background Image Updated */
    /* background-image: url('bg-pembuka.webp');
            background-size: cover;
            background-position: center;
            background-attachment: fixed; */
}

/* Dekorasi Sudut */
.decor-corner {
    position: absolute;
    width: 150px;
    max-width: 40%;
    z-index: 11;
    pointer-events: none;
    opacity: 0.8;
}

.top-left {
    top: 0;
    left: 0;
    transform: rotate(180deg);
    /* Sesuaikan rotasi gambar bunga asli */
}

.bottom-right {
    bottom: 0;
    right: 0;
}

/* Kartu Konten (Glassmorphism Effect) */
.opening-card {
    position: relative;
    z-index: 10;
    background: rgba(255, 255, 255, 0.6);
    /* Putih transparan */
    backdrop-filter: blur(5px);
    /* Efek blur di belakang kartu */
    border-radius: 20px;
    padding: 40px 30px;
    text-align: center;
    max-width: 500px;
    width: 100%;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

/* Tipografi */
.sub-title {
    font-size: 0.9rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #4a4a4a;
    margin-bottom: 5px;
}

.couple-title-opening {
    font-family: 'Great Vibes', cursive;
    font-size: 2.5rem;
    color: #c8a461;
    margin-bottom: 20px;
}

/* Foto Pembuka (Arch Shape) */
.opening-photo-frame {
    width: 200px;
    height: 280px;
    margin: 0 auto 25px auto;
    border-radius: 100px 100px;
    overflow: hidden;
    border: 3px solid #62463a;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.opening-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 5s ease;
    /* Efek zoom lambat saat hover/lihat */
}

.opening-photo-frame:hover .opening-img {
    transform: scale(1.1);
}

/* Tanggal & Waktu */
.date-wrapper {
    margin-bottom: 25px;
    color: #5c4033;
}

/* --- Elegant Date Styling --- */
.elegant-date-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    /* Jarak antar elemen vertikal */
    margin-bottom: 30px;
    /* Jarak ke elemen bawah (Monogram/Quote) */
    color: #5c4033;
    /* Warna utama Coklat */
}

/* 1. Hari (Gaya Tulisan Tangan) */
.day-script {
    font-family: 'Great Vibes', cursive;
    font-size: 1.8rem;
    color: #8a6a5c;
    /* Sedikit lebih muda agar manis */
    margin-bottom: -10px;
    /* Sedikit overlap ke bawah agar menyatu */
    z-index: 2;
    /* Agar di atas garis border angka */
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.8);
    /* Outline putih tipis agar terbaca */
}

/* 2. Angka Tanggal (Besar & Tegas) */
.date-frame {
    border-top: 1px solid rgba(92, 64, 51, 0.3);
    /* Garis tipis atas */
    border-bottom: 1px solid rgba(92, 64, 51, 0.3);
    /* Garis tipis bawah */
    padding: 5px 40px;
    /* Lebar garis menyesuaikan padding */
    margin: 5px 0;
}

.date-big {
    font-family: 'Cinzel', serif;
    /* Font Romawi Klasik */
    font-size: 4rem;
    /* Ukuran Sangat Besar */
    font-weight: 700;
    line-height: 1;
    letter-spacing: -2px;
    /* Rapatkan sedikit agar padat */
}

/* 3. Bulan & Tahun (Rapi & Modern) */
.month-year-clean {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    /* Huruf Kapital Semua */
    letter-spacing: 4px;
    /* Jarak antar huruf renggang (Kesan Mahal) */
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 300;
}

.dot {
    font-size: 1.2rem;
    /* Titik pemisah */
    color: #8a6a5c;
}

/* Responsif HP */
@media (max-width: 480px) {
    .date-big {
        font-size: 3.5rem;
        /* Sesuaikan ukuran di layar kecil */
    }

    .month-year-clean {
        font-size: 0.8rem;
        letter-spacing: 2px;
    }

    .day-script {
        font-size: 1.5rem;
    }
}

.date-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: 'Poppins', sans-serif;
}

.day {
    font-size: 1.1rem;
    font-weight: 300;
}

.date-num {
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1.2;
}

.month,
.year {
    font-size: 1rem;
    font-weight: 300;
}

.divider-line {
    width: 50px;
    height: 2px;
    background-color: #5c4033;
    margin: 15px auto;
    opacity: 0.5;
}

.save-date {
    font-size: 0.8rem;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.opening-quote {
    font-size: 0.85rem;
    font-style: italic;
    line-height: 1.6;
    color: #666;
}

/* --- ANIMASI SCROLL CLASS --- */

/* State Awal (Sebelum terlihat) */
.animate-on-scroll {
    opacity: 0;
    transition: all 1s ease-out;
}

/* 1. Fade Up */
.fade-up {
    transform: translateY(30px);
}

/* 2. Zoom In */
.zoom-in {
    transform: scale(0.8);
}

/* State Akhir (Saat terlihat / class 'visible' ditambahkan JS) */
.animate-on-scroll.visible {
    opacity: 1;
    transform: none;
    /* Reset transform ke posisi normal */
}

/* Delay Staggering (Agar muncul berurutan) */
.delay-1 {
    transition-delay: 0.1s;
}

.delay-2 {
    transition-delay: 0.3s;
}

.delay-3 {
    transition-delay: 0.5s;
}

.delay-4 {
    transition-delay: 0.7s;
}

.delay-5 {
    transition-delay: 0.9s;
}

/* Responsive */
@media (max-width: 480px) {
    .opening-card {
        padding: 30px 20px;
    }

    .couple-title-opening {
        font-size: 2.5rem;
    }

    .opening-photo-frame {
        width: 160px;
        height: 220px;
    }
}

/* --- Monogram Text Styling --- */
.monogram-box {
    margin: 20px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 19px;
    opacity: 0.8;
    /* Sedikit transparan agar tidak terlalu mencolok */
}

.initial {
    font-family: 'Cinzel', serif;
    /* Font Romawi Klasik */
    font-size: 3rem;
    /* Ukuran besar */
    font-weight: 700;
    /* Tebal */
    color: #5c4033;
    line-height: 1;
    /* Opsional: Efek seperti emas/tekstur */
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

.separator {
    font-family: 'Great Vibes', cursive;
    /* Menggunakan font sambung untuk '&' */
    font-size: 1.5rem;
    color: #8a6a5c;
    /* Warna sedikit lebih muda */
    margin-top: 5px;
    /* Sedikit turun agar rapi */
}

/* Responsif HP */
@media (max-width: 480px) {
    .initial {
        font-size: 2.5rem;
    }

    .separator {
        font-size: 1.2rem;
    }
}

/* --- Quotes Section --- */
.quotes-section {
    position: relative;
    min-height: 60vh;
    /* Tidak perlu full 100vh agar flow scroll enak */
    padding: 80px 20px;
    background-color: #f9f5f2;
    /* Warna Cream/Paper lembut */
    /* Opsional: Tambahkan tekstur kertas halus jika ada */
    /* background-image: url('paper-texture.png'); */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

/* Judul Section */
.quote-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3rem;
    color: #c8a461;
    margin-bottom: 40px;
    position: relative;
    z-index: 5;
}

/* Dekorasi Atas */
.q-decor-top {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    /* Sesuaikan ukuran */
    max-width: 50%;
    z-index: 1;
}

/* Dekorasi Bawah */
.q-decor-bottom-left {
    position: absolute;
    bottom: -20px;
    left: -20px;
    width: 150px;
    opacity: 0.7;
    transform: rotate(45deg);
    /* Improvisasi rotasi */
}

.q-decor-bottom-right {
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 150px;
    opacity: 0.7;
    transform: rotate(-45deg) scaleX(-1);
    /* Mirror image */
}

/* Kontainer Teks */
.quote-container {
    position: relative;
    z-index: 10;
    max-width: 700px;
    margin: 0 auto;
}

/* Teks Arab */
.arabic-text {
    font-family: 'Amiri', serif;
    /* Font standar Arab yang bagus, perlu import jika belum */
    font-size: 1.8rem;
    color: #5c4033;
    line-height: 2;
    margin-bottom: 25px;
    font-weight: 600;
}

/* Terjemahan */
.quote-translation {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    color: #6b5a52;
    line-height: 1.8;
    font-style: italic;
    margin-bottom: 20px;
}

/* Referensi Ayat */
.quote-ref {
    font-family: 'Cinzel', serif;
    font-size: 1rem;
    font-weight: 700;
    color: #5c4033;
    letter-spacing: 2px;
    margin-top: 10px;
}

/* Garis hiasan kecil sebelum/sesudah quote (Opsional) */
.quote-ref::before,
.quote-ref::after {
    content: "—";
    margin: 0 10px;
    opacity: 0.5;
}

/* --- Animasi Tambahan --- */
.fade-down {
    transform: translateY(-50px);
}

.fade-right {
    transform: translateX(-50px);
}

.fade-left {
    transform: translateX(50px);
}

/* Responsif */
@media (max-width: 480px) {
    .quote-title {
        font-size: 2.5rem;
    }

    .arabic-text {
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .quote-translation {
        font-size: 0.85rem;
        padding: 0 10px;
    }

    .q-decor-top {
        width: 150px;
    }

    .q-decor-bottom-left,
    .q-decor-bottom-right {
        width: 100px;
    }
}

/* --- Couple Section --- */
.couple-section {
    position: relative;
    padding: 80px 20px;
    /* Menggunakan background yang sama atau warna solid yang serasi */
    /* background-image: url('bg-pembuka.webp');
            background-size: cover;
            background-position: center; */
    background-attachment: fixed;
    text-align: center;
    color: #5c4033;
    /* Warna teks utama coklat */
}

/* Judul Section */
.couple-section-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    margin-bottom: 50px;
    color: #8a6a5c;
    /* Sedikit lebih terang */
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

/* Container Utama */
.couple-container {
    display: flex;
    flex-direction: column;
    /* Default bertumpuk (Mobile First) */
    align-items: center;
    gap: 40px;
    /* Jarak antar elemen */
    max-width: 1000px;
    margin: 0 auto;
}

/* Blok Per Mempelai */
.couple-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 350px;
}

/* Bingkai Foto Oval */
.couple-photo-oval {
    width: 220px;
    height: 300px;
    border-radius: 50% / 50%;
    /* Membuat bentuk oval vertikal */
    overflow: hidden;
    /* Border emas yang elegan */
    border: 5px solid #c5a059;
    /* Efek bayangan ganda untuk kesan bingkai tebal */
    box-shadow:
        0 0 0 3px #f0e6d2 inset,
        /* Garis dalam krem */
        0 10px 20px rgba(0, 0, 0, 0.2);
    /* Bayangan luar */
    margin-bottom: 25px;
    transition: transform 0.3s ease;
}

.couple-photo-oval:hover {
    transform: translateY(-10px);
    /* Efek naik sedikit saat di-hover */
}

.couple-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Detail Teks */
.couple-nickname {
    font-family: 'Great Vibes', cursive;
    font-size: 3rem;
    margin-bottom: 10px;
    color: #c5a059;
    /* Warna emas untuk nama panggilan */
}

.couple-fullname {
    font-family: 'Cinzel', serif;
    /* Font klasik tegas */
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 15px;
}

.parents-info {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #7a5e51;
    /* Warna teks info lebih muda */
}

.btn-instagram {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 10px;
    background-color: #c5a059;
    color: white;
    border-radius: 22px;
    text-decoration: none;
    margin-top: 15px;
    font-size: 1.2rem;
    transition: 0.3s ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Pemisah (&) */
.couple-separator {
    font-family: 'Great Vibes', cursive;
    font-size: 4rem;
    color: #c5a059;
    opacity: 0.8;
    margin: 10px 0;
}

/* --- Responsif (Desktop) --- */
@media (min-width: 769px) {
    .couple-container {
        /* flex-direction: row;
                /* Berdampingan di layar besar */
        /* justify-content: center;
                align-items: flex-start; */
        /* Teks rata atas */
        gap: 60px;
    }

    .couple-separator {
        align-self: center;
        /* Tanda & di tengah vertikal */
        margin-top: 120px;
        /* Menyesuaikan posisi dengan tengah foto */
    }

    .couple-section-title {
        font-size: 4rem;
    }
}

/* --- Responsif (Mobile Kecil) --- */
@media (max-width: 480px) {
    .couple-section-title {
        font-size: 2.8rem;
    }

    .couple-nickname {
        font-size: 2.5rem;
    }

    .couple-photo-oval {
        width: 180px;
        height: 250px;
    }
}

.card-couple {

    background-color: #FFFFFFEB;
    border-style: solid;
    padding: 20px 20px 20px 20px;
    border-width: 1px 1px 1px 1px;
    border-color: #A7945E;
    border-radius: 10px 10px 10px 10px;
}

/* --- Dekorasi Merak di Atas --- */
.couple-decor-top {
    top: 0;
    /* Menempel di bagian atas section */
    left: 50%;
    transform: translateX(-50%);
    /* Posisi tengah horizontal */
    width: 200px;
    /* Atur lebar sesuai keinginan */
    max-width: 80%;
    /* Agar aman di layar kecil */
    z-index: 10;
    /* Di atas elemen lain */
    margin-top: 20px;
    /* Jarak dari tepi atas */
}


/* Responsif untuk Merak */
@media (max-width: 480px) {
    .couple-decor-top {
        width: 150px;
        /* Ukuran lebih kecil di HP */
    }

    .card-couple {
        margin-top: 50px;
    }
}

/* --- Teks Pembuka Couple --- */
.couple-intro {
    margin-bottom: 40px;
    /* Jarak ke foto couple */
    margin-top: -20px;
    /* Mengurangi jarak dari judul agar lebih dekat */
    padding: 0 15px;
}

.greeting {
    font-family: 'Cinzel', serif;
    /* Menggunakan font serif agar tegas & sakral */
    font-weight: 700;
    font-size: 1.1rem;
    color: #5c4033;
    margin-bottom: 10px;
}

.intro-text {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #7a5e51;
    max-width: 600px;
    /* Membatasi lebar teks agar tidak terlalu panjang ke samping */
    margin: 0 auto;
    /* Posisi tengah */
}

/* Responsif di HP */
@media (max-width: 480px) {
    .greeting {
        font-size: 1rem;
    }

    .intro-text {
        font-size: 0.85rem;
    }
}

/* --- Save The Date Section --- */
.save-the-date {
    padding: 50px 20px;
    /* background-image: url(bg-pembuka.webp); */
    /* background-size: cover; */
    /* background-attachment: fixed; */
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 75vh;
}

/* Kartu Putih Utama */
.std-card {
    background-color: #fff;
    width: 100%;
    max-width: 500px;
    padding: 60px 30px 80px 30px;
    /* Padding bawah lebih besar untuk bunga */
    border-radius: 30px;
    /* Sudut membulat seperti referensi */
    text-align: center;
    position: relative;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    /* Agar bunga di pojok tidak keluar border radius */
}

/* Dekorasi Atas & Bawah */
.std-decor-top {
    position: relative;
    top: 0;
    /* left: 50%; */
    margin-bottom: -39px;
    /* transform: translateX(-50%); */
    width: 126px;
    z-index: 0;
}

.std-decor-bottom {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    z-index: 0;
}

/* Judul & Teks */
.std-title {
    font-family: 'Cinzel', serif;
    /* Font Serif tebal */
    font-size: 1.5rem;
    color: #c8a461;
    margin-top: 20px;
    margin-bottom: 15px;
    position: relative;
    z-index: 10;
}

.std-subtitle {
    font-family: 'Great Vibes', cursive;
    font-size: 1.2rem;
    color: #777;
    margin-bottom: 30px;
    line-height: 1.5;
    position: relative;
    z-index: 10;
}

/* --- Countdown Timer --- */
.countdown-wrapper {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
    position: relative;
    z-index: 10;
}

.countdown-item {
    background-color: #5c4033;
    /* Warna Coklat (Ganti #4E5E4E untuk Hijau) */
    color: #fff;
    width: 70px;
    height: 75px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 5px 15px rgba(92, 64, 51, 0.3);
}

.time-val {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

.time-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    margin-top: 5px;
    font-weight: 300;
}

/* --- Tampilan Tanggal (Lingkaran) --- */
.date-display-wrapper {
    margin-bottom: 30px;
    position: relative;
    z-index: 10;
    color: #5c4033;
}

.day-name-std {
    display: block;
    font-family: 'Cinzel', serif;
    font-size: 1.2rem;
    letter-spacing: 3px;
    margin-bottom: 15px;
    font-weight: 600;
}

/* Lingkaran Luar (Border Putus-putus) */
.date-circle-std {
    width: 140px;
    height: 140px;
    margin: 0 auto;
    border: 1px dashed #5c4033;
    /* Border putus-putus tipis */
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5px;
    /* Jarak antara border putus2 dan lingkaran dalam */
}

/* Lingkaran Dalam (Garis Solid) */
.circle-content {
    width: 100%;
    height: 100%;
    border: 1px solid #5c4033;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

.month-std {
    font-size: 1rem;
    font-weight: 300;
    text-transform: uppercase;
}

.date-num-std {
    font-size: 3.5rem;
    font-weight: 700;
    font-family: 'Cinzel', serif;
    margin: 5px 0;
}

.year-std {
    font-size: 1rem;
    font-weight: 300;
}

/* --- Tombol --- */
.btn-reminder {
    display: inline-block;
    padding: 12px 30px;
    border: 1px solid #5c4033;
    border-radius: 50px;
    background-color: transparent;
    color: #5c4033;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s;
    position: relative;
    z-index: 10;
}

.btn-reminder:hover {
    background-color: #5c4033;
    color: #fff;
    box-shadow: 0 5px 15px rgba(92, 64, 51, 0.2);
}

/* Responsif HP */
@media (max-width: 480px) {
    .std-card {
        padding: 40px 20px 60px 20px;
    }

    .countdown-item {
        width: 60px;
        height: 65px;
    }

    .time-val {
        font-size: 1.2rem;
    }

    .date-circle-std {
        width: 120px;
        height: 120px;
    }

    .date-num-std {
        font-size: 3rem;
    }
}

/* --- Event Section --- */
.event-section {
    position: relative;
    padding: 80px 20px;
    background-color: #f9f5f2;
    /* Warna dasar cream lembut */
    /* Jika ingin background gambar tekstur/bunga: */
    /* background-image: url('bg-pembuka.webp'); background-size: cover; background-attachment: fixed; */
    overflow: hidden;
    text-align: center;
    color: #5c4033;
}

/* Dekorasi Latar Belakang (Samar) */
.event-bg-decor-left,
.event-bg-decor-right {
    position: absolute;
    width: 300px;
    opacity: 0.1;
    /* Sangat transparan sebagai watermark */
    pointer-events: none;
    z-index: 0;
}

.event-bg-decor-left {
    top: -50px;
    left: -50px;
    transform: rotate(45deg);
}

.event-bg-decor-right {
    bottom: -50px;
    right: -50px;
    transform: rotate(225deg);
}

.container-width {
    position: relative;
    z-index: 5;
    max-width: 1000px;
    margin: 0 auto;
}

/* Judul Section */
.event-section-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    /* Emas */
    margin-bottom: 10px;
}

.event-quote {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    margin-bottom: 50px;
    color: #7a5e51;
}

/* Wrapper Kartu */
.events-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    /* Jarak antar kartu */
}

/* Desain Kartu Acara */
.event-card {
    background: #fff;
    width: 100%;
    max-width: 400px;
    /* Lebar maksimal per kartu */
    padding: 40px 30px;
    border-radius: 15px 15px 50px 15px;
    /* Sudut unik */
    box-shadow: 0 10px 30px rgba(92, 64, 51, 0.1);
    border: 1px solid rgba(197, 160, 89, 0.3);
    /* Border emas tipis */
    position: relative;
    transition: transform 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.event-card:hover {
    transform: translateY(-5px);
    border-color: rgba(197, 160, 89, 0.8);
}

/* Garis Hiasan Atas Kartu */
.card-ornament-top {
    width: 50px;
    height: 3px;
    background-color: #c5a059;
    margin-bottom: 20px;
    border-radius: 2px;
}

/* Konten Kartu */
.event-name {
    font-family: 'Cinzel', serif;
    font-size: 2rem;
    font-weight: 700;
    color: #5c4033;
    margin-bottom: 25px;
}

.event-date-box {
    margin-bottom: 20px;
    border-top: 1px dashed #ddd;
    border-bottom: 1px dashed #ddd;
    padding: 15px 0;
    width: 100%;
}

.e-day {
    display: block;
    font-family: 'Great Vibes', cursive;
    font-size: 1.5rem;
    color: #c5a059;
}

.e-date {
    display: block;
    font-size: 3rem;
    font-weight: 700;
    font-family: 'Cinzel', serif;
    line-height: 1.2;
}

.e-month {
    display: block;
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.event-time {
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    margin-bottom: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.event-location {
    font-family: 'Poppins', sans-serif;
    margin-bottom: 25px;
}

.loc-name {
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 5px;
}

.loc-address {
    font-size: 0.9rem;
    color: #888;
    line-height: 1.4;
}

/* Tombol Map */
.btn-map {
    padding: 10px 25px;
    background-color: #f4f0eb;
    /* Warna tombol muda */
    color: #5c4033;
    border: 1px solid #5c4033;
    border-radius: 50px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.btn-map:hover {
    background-color: #5c4033;
    color: #fff;
}

/* Animasi Fade Kiri/Kanan */
.fade-right {
    transform: translateX(-30px);
}

.fade-left {
    transform: translateX(30px);
}

/* Responsif HP */
@media (max-width: 768px) {
    .event-section-title {
        font-size: 2.8rem;
    }

    .event-card {
        padding: 30px 20px;
        border-radius: 15px;
        /* Radius normal di HP */
    }
}

/* --- Story Section --- */
.story-section {
    position: relative;
    padding: 80px 20px;
    background-color: #fff;
    /* Background putih bersih agar teks menonjol */
    /* Atau gunakan background tekstur kertas halus */
    /* background-image: url('paper-texture.png'); */
    overflow: hidden;
    color: #5c4033;
}

/* Dekorasi Pojok */
.story-decor-right {
    position: absolute;
    top: 0;
    right: 0;
    width: 200px;
    opacity: 0.6;
    transform: rotate(-90deg);
    pointer-events: none;
}

.story-container {
    max-width: 800px;
    /* Lebar konten dibatasi agar enak dibaca */
    margin: 0 auto;
    position: relative;
    z-index: 5;
    text-align: center;
}

/* Judul */
.story-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    margin-bottom: 15px;
}

.story-subtitle {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    color: #888;
    margin-bottom: 40px;
    font-style: italic;
}

/* Frame Foto (Bentuk Arch) */
.story-photo-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 60px;
}

.story-frame {
    width: 280px;
    height: 350px;
    border-radius: 20px 20px;
    /* Bentuk Arch/Kubah */
    border: 4px solid #c5a059;
    /* Border Emas */
    padding: 5px;
    /* Jarak antara border dan foto */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.story-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 15px 15px;
    /* Radius mengikuti frame */
    filter: sepia(20%);
    /* Efek sedikit vintage */
}

/* --- Timeline Layout --- */
.timeline-box {
    position: relative;
    padding-left: 30px;
    /* Memberi ruang untuk garis di kiri */
    text-align: left;
    /* Teks rata kiri agar rapi */
    margin-top: 20px;
}

/* Garis Vertikal */
.timeline-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 0;
    width: 2px;
    background-color: #c5a059;
    /* Garis emas */
    opacity: 0.3;
}

/* Item Timeline */
.timeline-item {
    position: relative;
    margin-bottom: 50px;
    /* Jarak antar cerita */
}

/* Titik (Dot) Timeline */
.timeline-dot {
    position: absolute;
    left: -35px;
    /* Menggeser titik pas ke garis */
    top: 5px;
    width: 12px;
    height: 12px;
    background-color: #c5a059;
    border-radius: 50%;
    border: 3px solid #fff;
    /* Border putih agar terlihat terpisah dari garis */
    box-shadow: 0 0 0 1px #c5a059;
    /* Ring luar */
}

.timeline-content {
    background-color: #f9f5f2;
    /* Kotak teks cream */
    padding: 20px;
    border-radius: 0 20px 20px 20px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

/* Tipografi Konten */
.story-year {
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 1.2rem;
    color: #c5a059;
    display: block;
    margin-bottom: 5px;
}

.story-chapter {
    font-family: 'Cinzel', serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #5c4033;
    margin-bottom: 10px;
}

.story-text {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #6b5a52;
}

/* Responsif */
@media (max-width: 480px) {
    .story-title {
        font-size: 2.8rem;
    }

    .story-frame {
        width: 220px;
        height: 280px;
    }

    .timeline-box {
        padding-left: 20px;
    }

    .timeline-dot {
        left: -26px;
        /* Sesuaikan posisi dot di HP */
    }

    .timeline-box::before {
        left: 0;
        /* Pastikan garis tetap di kiri */
    }
}

/* --- Gallery Section --- */
.gallery-section {
    padding: 80px 20px;
    background-color: #f9f5f2;
    /* Warna dasar cream */
    text-align: center;
    color: #5c4033;
}

/* Tipografi */
.gallery-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    /* Emas */
    margin-bottom: 10px;
}

.gallery-subtitle {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    color: #7a5e51;
    margin-bottom: 40px;
    font-style: italic;
}

/* Grid Layout */
.gallery-grid {
    display: grid;
    /* Membuat kolom otomatis: minimal lebar 150px, sisa ruang dibagi rata */
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    /* Jarak antar foto */
    max-width: 1000px;
    margin: 0 auto;
}

/* Item Gallery (Anchor Wrapper) */
.gallery-item {
    position: relative;
    display: block;
    border-radius: 10px;
    overflow: hidden;
    /* Agar gambar tidak keluar dari radius */
    aspect-ratio: 1 / 1;
    /* Membuat foto selalu kotak (Square) */
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    border: 3px solid #fff;
    /* Frame putih di dalam */
    outline: 2px solid #c5a059;
    /* Frame emas di luar */
    transition: transform 0.3s ease;
    cursor: pointer;
}

/* Hover Effect: Zoom Sedikit */
.gallery-item:hover {
    transform: scale(1.03);
    /* Zoom in sedikit saat hover */
    z-index: 2;
}

/* Gambar */
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Memastikan gambar memenuhi kotak tanpa gepeng */
    display: block;
    transition: filter 0.3s ease;
}

/* Overlay Icon (Search Plus) */
.gallery-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(92, 64, 51, 0.4);
    /* Warna coklat transparan */
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    /* Tersembunyi default */
    transition: opacity 0.3s ease;
}

.gallery-overlay i {
    color: #fff;
    font-size: 1.5rem;
    transform: scale(0);
    transition: transform 0.3s ease;
}

/* Efek Hover Overlay */
.gallery-item:hover .gallery-overlay {
    opacity: 1;
}

.gallery-item:hover .gallery-overlay i {
    transform: scale(1);
}

/* Responsif HP */
@media (max-width: 480px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        /* 2 Kolom di HP */
        gap: 10px;
    }

    .gallery-title {
        font-size: 2.8rem;
    }
}

/* --- Gift Section --- */
.gift-section {
    position: relative;
    padding: 80px 20px;
    background-color: #fff;
    /* Background Pattern Halus (Opsional) */
    background-image: radial-gradient(#c5a059 1px, transparent 1px);
    background-size: 20px 20px;
    text-align: center;
    color: #5c4033;
    overflow: hidden;
}

/* Dekorasi Pojok */
.gift-decor-left {
    position: absolute;
    bottom: -30px;
    left: -30px;
    width: 200px;
    opacity: 0.5;
    pointer-events: none;
}

.gift-container {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 5;
}

/* Judul */
.gift-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    margin-bottom: 15px;
}

.gift-subtitle {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #7a5e51;
    margin-bottom: 50px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Wrapper Bank Cards */
.bank-cards-wrapper {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 50px;
}

/* Kartu Bank Style */
.bank-card {
    background: #fff;
    width: 100%;
    max-width: 320px;
    padding: 30px;
    border-radius: 15px;
    /* Efek kartu timbul & border emas */
    box-shadow: 0 10px 30px rgba(92, 64, 51, 0.1);
    border: 1px solid rgba(197, 160, 89, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s;
}

.bank-card:hover {
    transform: translateY(-5px);
    border-color: #c5a059;
}

/* Logo Bank (Teks/Gambar) */
.bank-logo {
    font-family: 'Cinzel', serif;
    font-size: 1.5rem;
    font-weight: 900;
    color: #5c4033;
    margin-bottom: 20px;
    letter-spacing: 2px;
    border-bottom: 2px solid #c5a059;
    padding-bottom: 5px;
}

/* Detail Rekening */
.acc-number {
    font-family: 'Poppins', sans-serif;
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 1px;
    color: #333;
    margin-bottom: 5px;
}

.acc-name {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    color: #888;
    margin-bottom: 25px;
}

/* Tombol Salin Bank */
.btn-copy {
    padding: 10px 25px;
    border: none;
    border-radius: 50px;
    background-color: #f4f0eb;
    color: #5c4033;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    font-family: 'Poppins', sans-serif;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-copy:hover {
    background-color: #5c4033;
    color: #fff;
}

/* Box Alamat Kado */
.gift-address-box {
    background-color: #f9f5f2;
    padding: 40px 30px;
    border-radius: 20px;
    border: 1px dashed #c5a059;
    /* Border putus-putus */
    max-width: 600px;
    margin: 0 auto;
}

.address-title {
    font-family: 'Cinzel', serif;
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 15px;
    color: #5c4033;
}

.address-text {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #666;
    margin-bottom: 20px;
}

/* Tombol Salin Alamat */
.btn-copy-addr {
    padding: 10px 25px;
    border: 1px solid #c5a059;
    background-color: transparent;
    color: #c5a059;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s;
    font-weight: 600;
}

.btn-copy-addr:hover {
    background-color: #c5a059;
    color: #fff;
}

/* Responsif HP */
@media (max-width: 480px) {
    .gift-title {
        font-size: 2.8rem;
    }

    .acc-number {
        font-size: 1.4rem;
    }

    .bank-card {
        padding: 25px 15px;
    }
}

/* --- RSVP Section --- */
.rsvp-section {
    position: relative;
    padding: 80px 20px;
    /* background-color: #f9f5f2; */
    /* Cream background */
    color: #5c4033;
    overflow: hidden;
}

/* Dekorasi Bunga Pojok */
.rsvp-decor-left,
.rsvp-decor-right {
    position: absolute;
    width: 180px;
    opacity: 0.6;
    pointer-events: none;
    z-index: 0;
}

.rsvp-decor-left {
    top: -20px;
    left: -20px;
    transform: rotate(180deg);
}

.rsvp-decor-right {
    bottom: -20px;
    right: -20px;
}

.rsvp-container {
    max-width: 1000px;
    /* Lebar container diperbesar untuk 2 kolom */
    margin: 0 auto;
    position: relative;
    z-index: 5;
}

/* Judul */
.rsvp-title {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    margin-bottom: 10px;
    text-align: center;
}

.rsvp-subtitle {
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    text-align: center;
    margin-bottom: 50px;
    color: #7a5e51;
}

/* Layout Wrapper (Grid) */
.rsvp-content-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    align-items: flex-start;
}

/* --- Kolom 1: Form RSVP --- */
.rsvp-form-box {
    flex: 1;
    min-width: 300px;
    background: #fff;
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(92, 64, 51, 0.08);
    border-top: 5px solid #c5a059;
    /* Aksen Emas di atas */
}

.form-group {
    margin-bottom: 20px;
    text-align: left;
}

.form-group label {
    display: block;
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 8px;
    color: #5c4033;
}

.form-control {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    transition: all 0.3s;
    background-color: #fcfcfc;
}

.form-control:focus {
    outline: none;
    border-color: #c5a059;
    box-shadow: 0 0 5px rgba(197, 160, 89, 0.3);
}

.btn-rsvp {
    width: 100%;
    padding: 12px;
    background-color: #5c4033;
    color: #fff;
    border: none;
    border-radius: 50px;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s;
    font-size: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.btn-rsvp:hover {
    background-color: #7a5544;
}

/* --- Kolom 2: List Ucapan --- */
.rsvp-wishes-box {
    flex: 1;
    min-width: 300px;
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(92, 64, 51, 0.08);
    overflow: hidden;
    height: 100%;
    /* Menyesuaikan tinggi */
}

.wishes-header {
    background-color: #5c4033;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
}

.wishes-header h3 {
    font-family: 'Cinzel', serif;
    font-size: 1.1rem;
    margin: 0;
}

.wishes-count {
    font-family: 'Poppins', sans-serif;
    font-size: 0.8rem;
    background: rgba(255, 255, 255, 0.2);
    padding: 3px 10px;
    border-radius: 10px;
}

/* Scroll Area */
.wishes-scroll-area {
    max-height: 400px;
    /* Tinggi maksimal sebelum scroll */
    overflow-y: auto;
    padding: 0;
    /* Custom Scrollbar */
    scrollbar-width: thin;
    scrollbar-color: #c5a059 #f0f0f0;
}

.wishes-scroll-area::-webkit-scrollbar {
    width: 6px;
}

.wishes-scroll-area::-webkit-scrollbar-track {
    background: #f0f0f0;
}

.wishes-scroll-area::-webkit-scrollbar-thumb {
    background-color: #c5a059;
    border-radius: 10px;
}

/* Item Ucapan */
.wish-item {
    padding: 20px;
    border-bottom: 1px solid #f0f0f0;
    text-align: left;
    transition: background 0.3s;
}

.wish-item:hover {
    background-color: #fafafa;
}

.wish-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.wish-name {
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #5c4033;
}

/* Badge Kehadiran */
.wish-badge {
    font-size: 0.75rem;
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.badge-hadir {
    background-color: #e6f4ea;
    color: #1e7e34;
    /* Hijau */
}

.badge-maaf {
    background-color: #fce8e6;
    color: #c53030;
    /* Merah */
}

.wish-text {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    color: #666;
    line-height: 1.5;
    margin-bottom: 5px;
}

.wish-time {
    display: block;
    font-size: 0.75rem;
    color: #aaa;
    font-style: italic;
}

/* Responsif HP */
@media (max-width: 768px) {
    .rsvp-content-wrapper {
        flex-direction: column;
        /* Stack vertikal di HP */
    }

    .rsvp-form-box,
    .rsvp-wishes-box {
        width: 100%;
    }

    .rsvp-title {
        font-size: 2.8rem;
    }
}

/* --- Closing Section (Full Screen Photo Style) --- */
.closing-section {
    position: relative;
    width: 100%;
    min-height: 100vh;
    /* Full layar */
    display: flex;
    justify-content: center;
    align-items: flex-end;
    /* Konten di bawah */
    text-align: center;
    color: #fff;
    /* Teks Putih */
    overflow: hidden;


}

/* Overlay Gradient (Agar teks terbaca jelas di atas foto) */
.closing-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0) 0%,
            rgba(0, 0, 0, 0.3) 40%,
            rgba(0, 0, 0, 0.9) 100%);
    z-index: 1;
}

/* Wrapper Konten */
.closing-content {
    position: relative;
    z-index: 5;
    /* Di atas overlay */
    padding: 0 20px 40px 20px;
    /* Padding bawah agak besar */
    max-width: 600px;
    width: 100%;
}

/* Teks Penutup */
.closing-message {
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 20px;
    font-weight: 300;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.closing-signoff {
    font-family: 'Cinzel', serif;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 5px;
    letter-spacing: 1px;
}

/* Nama Pasangan */
.closing-couple {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    color: #c5a059;
    margin-bottom: 40px;
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}

/* --- Footer Area Styles --- */
.footer-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

/* Logo Bulat Kecil */
.footer-logo {
    width: 40px;
    height: 40px;
    background-color: #f4f0eb;
    /* Warna cream */
    color: #5c4033;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 1.2rem;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
}

/* Social Icons */
.footer-socials {
    display: flex;
    gap: 15px;
}

.footer-socials a {
    color: #fff;
    font-size: 1.2rem;
    transition: transform 0.3s;
}

.footer-socials a:hover {
    transform: scale(1.2);
    color: #c5a059;
}

/* Credits Text */
.footer-credits p {
    font-family: 'Poppins', sans-serif;
    font-size: 0.75rem;
    margin: 0;
    opacity: 0.8;
}

.brand-link {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    color: #fff;
    text-decoration: none;
    letter-spacing: 1px;
}

.brand-link:hover {
    text-decoration: underline;
}

/* Music Credit */
.music-credit {
    font-size: 0.7rem;
    opacity: 0.6;
    font-family: 'Poppins', sans-serif;
    margin-top: 5px;
}

/* Responsif HP */
@media (max-width: 480px) {
    .closing-couple {
        font-size: 2.8rem;
    }

    .closing-message {
        font-size: 0.85rem;
    }
}

/* --- Wedding Hashtag --- */
.wedding-hashtag {
    font-family: 'Poppins', sans-serif;
    /* Font bersih/modern */
    font-size: 1.1rem;
    font-weight: 500;
    color: #fff;
    opacity: 0.9;
    letter-spacing: 3px;
    /* Jarak antar huruf renggang */
    text-transform: uppercase;
    margin-top: -30px;
    /* Mengurangi jarak dari nama couple agar lebih dekat */
    margin-bottom: 40px;
    /* Memberi jarak ke footer */
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

/* Responsif HP */
@media (max-width: 480px) {
    .wedding-hashtag {
        font-size: 0.9rem;
        letter-spacing: 2px;
        margin-top: -25px;
    }
}