body { font-family: 'Poppins', sans-serif; }
html, body { overflow-x: hidden; }
.page-content { display: none; opacity: 0; transition: opacity 0.3s ease; }
.page-content.active { display: block; opacity: 1; }

/* ===== Hamburger Menu Animation ===== */
.hamburger-icon {
    position: relative;
    width: 20px;
    height: 16px;
    cursor: pointer;
}
.hamburger-icon .line {
    position: absolute;
    left: 0;
    background: currentColor;
    height: 2px;
    width: 100%;
    border-radius: 2px;
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transform-origin: center;
}
.hamburger-icon .line:nth-child(1) { top: 0; }
.hamburger-icon .line:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger-icon .line:nth-child(3) { bottom: 0; }
.hamburger-icon.active .line:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.hamburger-icon.active .line:nth-child(2) {
    opacity: 0;
    transform: translateY(-50%) scaleX(0);
}
.hamburger-icon.active .line:nth-child(3) {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
}

/* ===== Multi-Step Form ===== */
.form-step { display: none; opacity: 0; transform: translateX(20px); transition: all 0.4s ease; }
.form-step.active { display: block; opacity: 1; transform: translateX(0); }
.progress-bar { transition: width 0.4s ease; }

/* ===== Prevent Mobile Auto-Zoom on Forms ===== */
@media (max-width: 767px) {
input[type="text"], 
input[type="email"], 
input[type="tel"], 
input[type="password"], 
input[type="number"], 
input[type="date"], 
input[type="time"], 
select, 
textarea {
    font-size: 16px !important;
}
}

/* Smooth scroll for legal pages */
#legal-content, #privacy-content, #terms-content, #refund-content, #payment-content { scroll-margin-top: 100px; }
#legal-content section, #privacy-content section, #terms-content section, #refund-content section, #payment-content section { scroll-margin-top: 100px; }

/* Custom checkbox/radio styling */
.option-card {
    transition: all 0.2s ease;
}
.option-card:has(input:checked) {
    background-color: rgb(250 204 21);
    color: rgb(23 23 23);
    border-color: rgb(250 204 21);
}
.dark .option-card:has(input:checked) {
    background-color: rgb(250 204 21);
    color: rgb(23 23 23);
}

/* Breadcrumb styling */
.breadcrumb a:hover { color: rgb(249 115 22); }

/* ===== Success Animations ===== */
@keyframes scaleIn {
    0% { transform: scale(0); opacity: 0; }
    60% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes drawCheck {
    0% { stroke-dashoffset: 100; }
    100% { stroke-dashoffset: 0; }
}
@keyframes fadeInUp {
    0% { transform: translateY(20px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}
.animate-scaleIn { animation: scaleIn 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards; }
.animate-fadeInUp { animation: fadeInUp 0.5s ease forwards; animation-delay: 0.2s; opacity: 0; }
.check-path {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    animation: drawCheck 0.6s ease forwards 0.2s;
}

/* ===== Custom Notification System ===== */
@keyframes notifSlideIn {
    from { transform: translateX(120%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}
@keyframes notifSlideOut {
    from { transform: translateX(0); opacity: 1; }
    to { transform: translateX(120%); opacity: 0; }
}
.notif-enter { animation: notifSlideIn 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards; }
.notif-exit { animation: notifSlideOut 0.3s ease forwards; }
@media (max-width: 640px) {
    @keyframes notifSlideIn {
        from { transform: translateY(-120%); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
    }
    @keyframes notifSlideOut {
        from { transform: translateY(0); opacity: 1; }
        to { transform: translateY(-120%); opacity: 0; }
    }
}

/* ===== Custom Calendar ===== */
.calendar-day {
    transition: all 0.15s ease;
}
.calendar-day:not(.disabled):hover {
    transform: scale(1.08);
}

/* ===== Theme Dropdown ===== */
.theme-dropdown {
    transform-origin: top right;
}
@keyframes dropdownIn {
    from { transform: scale(0.9) translateY(-10px); opacity: 0; }
    to { transform: scale(1) translateY(0); opacity: 1; }
}
.theme-dropdown:not(.hidden) {
    animation: dropdownIn 0.2s ease forwards;
}

/* ===== Mobile Form Fixes ===== */
@media (max-width: 640px) {
    .form-step .option-card {
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .form-step .option-card span {
        line-height: 1.3;
    }
}