/*
 * Style.css
 * Vixellabs Tour Travel
 */

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes fadeInScale {
    from {
        transform: scale(0.95);
        opacity: 0;
    }

    to {
        transform: scale(1);
        opacity: 1;
    }
}

.animate-fade-in-up {
    animation: fadeInScale 0.3s ease-out;
}

/* Fix Date Picker Icon Color */
input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
}

/* Fix: date input — semua browser termasuk Safari & Android */
.vixeltour-tour-scope input[type="date"] {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    font-size: 16px !important;
    /* >= 16px: cegah iOS auto-zoom */
    text-align: left !important;
}

/* Grid children: min-width 0 agar tidak overflow di flex/grid */
.vixeltour-tour-scope .grid>div {
    min-width: 0;
}

.hidden {
    display: none !important;
}

/* Typography Constraints */
.vixeltour-tour-scope .text-xs,
.vixeltour-tour-scope .text-sm,
.vixeltour-tour-scope .text-base,
.vixeltour-tour-scope p,
.vixeltour-tour-scope span,
.vixeltour-tour-scope div,
.vixeltour-tour-scope input,
.vixeltour-tour-scope select,
.vixeltour-tour-scope textarea,
.vixeltour-tour-scope button,
.vixeltour-tour-scope label,
.vixeltour-tour-scope li {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

/* Headings */
.vixeltour-tour-scope h2,
.vixeltour-tour-scope h3,
.vixeltour-tour-scope h4,
.vixeltour-tour-scope .text-lg,
.vixeltour-tour-scope .text-xl,
.vixeltour-tour-scope .text-2xl {
    font-size: 18px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
    line-height: 1.4 !important;
}

/* Price Display (Large Numbers) */
.vixeltour-tour-scope #vixeltour-price-display {
    font-size: 36px !important;
    line-height: 1.2 !important;
}

.vixeltour-tour-scope #vixeltour-price-display+span {
    font-size: 15px !important;
    line-height: 1.5 !important;
}

/* Form Elements Spacing */
.vixeltour-tour-scope input,
.vixeltour-tour-scope select,
.vixeltour-tour-scope textarea,
.vixeltour-tour-scope .vixeltour-toggle-option {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin-bottom: 0 !important;
    display: block;
    width: 100%;
}

/* Labels */
.vixeltour-tour-scope label {
    margin-bottom: 10px !important;
    display: flex;
    font-weight: 600 !important;
    color: #374151;
    flex-direction: row;
}

/* Spacing Utilities */
.vixeltour-tour-scope .mb-4,
.vixeltour-tour-scope .mb-5,
.vixeltour-tour-scope .mb-6 {
    margin-bottom: 24px !important;
}

.vixeltour-tour-scope .gap-3 {
    gap: 16px !important;
}

.vixeltour-tour-scope .gap-4 {
    gap: 20px !important;
}

.vixeltour-tour-scope .gap-5 {
    gap: 24px !important;
}

/* Buttons */
.vixeltour-tour-scope button {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

/* Section Spacing */
.vixeltour-tour-scope section {
    margin-bottom: 32px !important;
    padding-bottom: 16px !important;
}

/* Select Icon Fix */
.vixeltour-tour-scope select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: none !important;
}

.vixeltour-tour-scope .relative select+.pointer-events-none {
    opacity: 1;
}

/* --- DYNAMIC ITINERARY STYLES --- */
#vixeltour-dynamic-itinerary ul {
    list-style-type: disc !important;
    margin-left: 1.5em !important;
    margin-bottom: 1em !important;
}

#vixeltour-dynamic-itinerary ol {
    list-style-type: decimal !important;
    margin-left: 1.5em !important;
    margin-bottom: 1em !important;
}

#vixeltour-dynamic-itinerary li {
    margin-bottom: 0.5em !important;
}

#vixeltour-dynamic-itinerary p {
    margin-bottom: 1em !important;
}

#vixeltour-dynamic-itinerary h1,
#vixeltour-dynamic-itinerary h2,
#vixeltour-dynamic-itinerary h3,
#vixeltour-dynamic-itinerary h4,
#vixeltour-dynamic-itinerary h5,
#vixeltour-dynamic-itinerary h6 {
    font-weight: bold !important;
    margin-top: 1.5em !important;
    margin-bottom: 0.5em !important;
    line-height: 1.3 !important;
}

#vixeltour-dynamic-itinerary strong {
    font-weight: bold !important;
}