/* ==========================================================================
   OPENPO V3 — Custom Styling & Divi Override CSS
   ========================================================================== */

body {
    background-color: #FBF8F5;
    color: #2C221E;
    font-family: 'Plus Jakarta Sans', sans-serif;
    -webkit-tap-highlight-color: transparent;
}
.font-serif { font-family: 'Playfair Display', serif; }

.glass-card {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(226, 212, 206, 0.6);
}
.shake-input {
    animation: shake 0.3s ease-in-out;
}
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-5px); }
    40%, 80% { transform: translateX(5px); }
}
.toast-enter {
    transform: translate(-50%, -100%);
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.toast-show {
    transform: translate(-50%, 0);
    opacity: 1;
}
/* Gallery modal transition */
.modal-fade-enter {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease-in-out;
}
.modal-fade-show {
    opacity: 1;
    pointer-events: auto;
}
.pb-28 {
    padding-bottom: 7rem !important; /* Jarak bawah ~112px agar tidak tertutup Mobile Sticky Bottom Nav */
}

/* OVERRIDE WARNA TOMBOL — memaksa menang dari CSS theme WordPress */
#btn-next,
#btn-submit {
    color: #ffffff !important;
}
#btn-next {
    background-color: #a36d61 !important; /* brand-500 */
}
#btn-next:hover {
    background-color: #8b5449 !important; /* brand-600 */
}
#btn-submit {
    background-color: #059669 !important; /* emerald-600 */
}
#btn-submit:hover {
    background-color: #047857 !important; /* emerald-700 */
}
#btn-back {
    color: #374151 !important; /* gray-700 */
    border-color: #d1d5db !important; /* gray-300 */
}
#btn-back:hover {
    background-color: #f9fafb !important; /* gray-50 */
}

/* Elemen khusus homepage: stempel nomor batch + notch tiket */
.stamp {
    transform: rotate(-8deg);
    font-family: 'Playfair Display', serif;
}
.ticket-notch::before,
.ticket-notch::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 16px;
    height: 16px;
    background: #FBF8F5;
    border-radius: 9999px;
    transform: translateY(-50%);
}
.ticket-notch::before { left: -8px; }
.ticket-notch::after { right: -8px; }

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.fade-up { animation: fadeUp 0.5s ease-out both; }

/* =========================================================
   OVERRIDE DIVI AGGRESSIVE RESETS (BORDERS, BOX-SIZING, ETC.)
   ========================================================= */

/* Neutralize Divi's 'border: 0' & 'border-bottom-width: 0px' reset on elements with Tailwind border classes */
[class*="border"] {
    border-style: solid;
}

.border,
[class*=" border "] {
    border-width: 1px !important;
}

.border-b,
[class*="border-b"],
[class*="border-b-"] {
    border-bottom-width: 1px !important;
}

.border-t,
[class*="border-t"],
[class*="border-t-"] {
    border-top-width: 1px !important;
}

.border-l,
[class*="border-l"],
[class*="border-l-"] {
    border-left-width: 1px !important;
}

.border-r,
[class*="border-r"],
[class*="border-r-"] {
    border-right-width: 1px !important;
}

.border-2,
[class*="border-2"] {
    border-width: 2px !important;
}

.border-b-2,
[class*="border-b-2"] {
    border-bottom-width: 2px !important;
}

.border-t-2,
[class*="border-t-2"] {
    border-top-width: 2px !important;
}

.border-dashed,
[class*="border-dashed"] {
    border-style: dashed !important;
}

.border-0,
[class*="border-0"] {
    border-width: 0px !important;
}

/* Pastikan box-sizing & line-height tidak dirusak oleh CSS Divi Theme */
#po-form *,
.ticket-notch * {
    box-sizing: border-box;
}
