body { font-family: 'Poppins', sans-serif; }


/* ////////// Banner ////////// */
.hide-scrollbar::-webkit-scrollbar { display: none;}
.hide-scrollbar {-ms-overflow-style: none; scrollbar-width: none;}
.mask-edges {mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);}
.banner_heading span {display: block; color: #f97316;}

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(-6deg); }
    50% { transform: translateY(-12px) rotate(-4deg); }
}
@keyframes continuous-ring {
    0%, 100% { transform: rotate(0deg); }
    10% { transform: rotate(15deg); }
    20% { transform: rotate(-10deg); }
    30% { transform: rotate(15deg); }
    40% { transform: rotate(-10deg); }
    50% { transform: rotate(0deg); }
}
@keyframes button-glow-pulse {
    0%, 100% { 
        box-shadow: 0 0 10px rgba(255, 255, 255, 0.4), 0 15px 30px rgba(180,0,0,0.3); 
        transform: scale(1);
    }
    50% { 
        box-shadow: 0 0 25px rgba(255, 255, 255, 0.9), 0 15px 30px rgba(180,0,0,0.4); 
        transform: scale(1.02);
    }
}
.animate-float {
    animation: float 4s ease-in-out infinite;
}
.animate-ring {
    animation: continuous-ring 2.5s ease-in-out infinite;
    transform-origin: top center;
}
.animate-button-glow {
    animation: button-glow-pulse 2.5s infinite;
}

/* ////////// Recipe Page ////////// */
.hidden-item {
    display: none !important;
}
/* Custom Scrollbar for Filters - Visible on hover */
.filter-scroll::-webkit-scrollbar {
    width: 4px;
    background-color: transparent;
}
.filter-scroll::-webkit-scrollbar-thumb {
    background-color: transparent;
    border-radius: 4px;
}
.filter-scroll:hover::-webkit-scrollbar-thumb {
    background-color: #cbd5e1; /* Tailwind gray-300 */
}

/* Custom Checkbox */
.custom-checkbox {
    appearance: none;
    background-color: #fff;
    margin: 0;
    font: inherit;
    color: currentColor;
    width: 1.15em;
    height: 1.15em;
    border: 1px solid #d1d5db;
    border-radius: 0.25em;
    display: grid;
    place-content: center;
    cursor: pointer;
}
.custom-checkbox::before {
    content: "";
    width: 0.65em;
    height: 0.65em;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em white;
    background-color: white;
    transform-origin: center;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
.custom-checkbox:checked {
    background-color: #f97316; /* Tailwind orange-500 */
    border-color: #f97316;
}
.custom-checkbox:checked::before {
    transform: scale(1);
}

/* ////////// PRELOADER ////////// */
/* Preloader Overlay */
.preloader {
    position: fixed;
    inset: 0;
    background-color: #fcfbf9f8; /* Ultra soft off-white matching orange-50/50 */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    font-family: ui-sans-serif, system-ui, sans-serif;
}

/* Container Adjustments */
.cooking-container {
    position: relative;
    width: 140px;
    height: 140px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
}

/* The Frying Pan Bowl */
.cooking-pan {
    display: flex;
    align-items: center;
    animation: pan-toss 2s ease-in-out infinite;
    transform-origin: 40px center;
}

.pan-bowl {
    width: 64px;
    height: 24px;
    background: #0f172a; /* Slate 900 */
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    border: 3px solid #0f172a;
}

/* The Frying Pan Handle */
.pan-handle {
    width: 45px;
    height: 8px;
    background: #0f172a; /* Slate 900 */
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

/* The Food Item (Egg/Pancake) */
.cooking-food {
    position: absolute;
    width: 24px;
    height: 10px;
    background: #f97316; /* Orange 500 */
    border-radius: 10px;
    animation: food-flip 2s ease-in-out infinite;
    bottom: 50px !important;
    left: 23px;
}

/* Add a little egg yolk effect inside the food item */
.cooking-food::after {
    content: '';
    position: absolute;
    top: -3px;
    left: 6px;
    width: 10px;
    height: 10px;
    background: #facc15; /* Yellow 400 */
    border-radius: 50%;
}

/* Loading Typography */
.cooking-text {
    margin-top: 24px;
    font-size: 14px;
    font-weight: 600;
    color: #475569; /* Slate 600 */
    white-space: nowrap;
    letter-spacing: -0.01em;
    animation: text-pulse 1.5s ease-in-out infinite;
}

/* ========================================== */
/* ANIMATION TIMINGS & KEYFRAMES               */
/* ========================================== */

/* Pan catching and tossing motion */
@keyframes pan-toss {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    20% {
        transform: translateY(6px) rotate(-3deg); /* Dip down before toss */
    }
    30% {
        transform: translateY(-8px) rotate(6deg); /* Snap up to release food */
    }
    38% {
        transform: translateY(0) rotate(0deg); /* Return to resting position */
    }
    70% {
        transform: translateY(3px) rotate(-1deg); /* Catch anticipation */
    }
}

/* Food physics jump and rotate flight time */
@keyframes food-flip {
    0%, 100% {
        transform: translateY(0) scaleX(1) scaleY(1) rotate(0deg);
        bottom: 24px;
    }
    20% {
        transform: translateY(4px) scaleX(1.1) scaleY(0.8) rotate(0deg); /* Squish dynamic compression */
        bottom: 24px;
    }
    30% {
        transform: translateY(-10px) scaleX(0.9) scaleY(1.1) rotate(10deg); /* Mid-launch stretching */
    }
    50% {
        transform: translateY(-65px) scaleX(1) scaleY(1) rotate(180deg); /* Apex of jump */
    }
    68% {
        transform: translateY(-5px) scaleX(0.9) scaleY(1.1) rotate(340deg); /* Heavy falling speed */
    }
    72% {
        transform: translateY(0) scaleX(1.1) scaleY(0.8) rotate(360deg); /* Impact splash catch */
        bottom: 24px;
    }
    78% {
        transform: translateY(-2px) scaleX(1) scaleY(1) rotate(360deg); /* Micro settling bounce */
        bottom: 24px;
    }
}

/* Smooth text transparency cycle */
@keyframes text-pulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* FAQ FOR INGREDIENTS */
/* Container styling */
.faq-section {
    max-width: 800px;
    margin: 0 auto;
    font-family: 'Inter', sans-serif; /* Update to your preferred font */
}

/* Question (Header) styling */
.faq-section h3 {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 20px;
    margin: 12px 0 0 0;
    cursor: pointer;
    position: relative;
    font-size: 15px;
    font-weight: 600;
    color: #0f172a;
    transition: all 0.2s ease;
    user-select: none;
}

/* Hover state */
.faq-section h3:hover {
    background-color: #f1f5f9;
}

/* The '+' Icon */
.faq-section h3::after {
    content: '+';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: 400;
    color: #64748b;
    line-height: 1;
}

/* Active State (When open) */
.faq-section h3.active {
    background-color: #e2e8f0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-color: transparent;
}

/* Change icon to '−' when open */
.faq-section h3.active::after {
    content: '−';
    color: #0f172a;
}

/* Answer (Paragraph) styling */
.faq-section p {
    display: none; /* Hidden by default */
    margin: 0 0 12px 0;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-top: none;
    background-color: #ffffff;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    color: #475569;
    line-height: 1.6;
    font-size: 14px;
}

/* Ingredient Nutriotion Table */
/* Container and Font */
.table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background-color: transparent;
}

/* Remove default full borders (Overrides Bootstrap's .table-bordered) */
.table.table-bordered,
.table.table-bordered th,
.table.table-bordered td {
    border: none;
}

/* General Cell Padding & Horizontal Lines */
.table th,
.table td {
    padding: 8px 4px; /* Generous vertical spacing, minimal side spacing */
    border-bottom: 1px solid #f1f5f9 !important; /* Light slate/gray divider */
}

/* -----------------------
   HEADER STYLING
------------------------ */
/* Left Header (Acts like the title in the image) */
.table thead th:first-child, .table thead th:last-child {
    text-align: right;
    color: #323b47; /* Lighter slate */
    font-size: 15px;
    font-weight: 500;
    border-bottom: none;
}
.table thead th:first-child {text-align: left;}

/* -----------------------
   BODY STYLING
------------------------ */
/* Left Column (Nutrient Names) */
.table tbody td:first-child {
    text-align: left;
    color: #64748b; /* Lighter slate color for labels */
    font-size: 14px;
    font-weight: 500;
}

/* Right Column (Values) */
.table tbody td:last-child {
    text-align: right;
    color: #1a253f; /* Very dark slate/black for values */
    font-size: 14px;
    font-weight: 700; /* Bold numbers */
}
.table.table-bordered ~ P {font-size: 14px; padding-top: 5px;}


/*Skinny Loader*/
.skeleton {
    position: relative;
    overflow: hidden;
    background: #e5e7eb;
    border-radius: 6px;
}

.skeleton::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 150%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.7),
        transparent
    );
    animation: shimmer 1.2s infinite;
}

@keyframes shimmer {
    100% {
        left: 150%;
    }
}

.skeleton-text {
    height: 14px;
}

.skeleton-title {
    height: 28px;
    width: 60%;
}

.skeleton-image {
    width: 100%;
    height: 220px;
    border-radius: 10px;
}



/* Login */
/* Smooth Mobile App Animations */
.modal-enter { animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.modal-exit { animation: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
@keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes slideDown { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: 0; } }

@media (min-width: 640px) {
    .modal-enter { animation: popIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .modal-exit { animation: popOut 0.2s ease-in forwards; }
    @keyframes popIn { from { transform: scale(0.95) translateY(20px); opacity: 0; } to { transform: scale(1) translateY(0); opacity: 1; } }
    @keyframes popOut { from { transform: scale(1); opacity: 1; } to { transform: scale(0.95); opacity: 0; } }
}
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
