/* ============================================================ */
/* ===== 🎀 GLOBAL RESET & FONTS 🎀 ===== */
/* ============================================================ */
@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css");

* {
    -webkit-font-smoothing: antialiased;
    box-sizing: border-box;
}

html, body {
    margin: 0px;
    min-height: 100%;
    background-color: #ffffff;
    font-family: "overdozesans", sans-serif;
}

@font-face {
    font-family: "overdozesans";
    src: url("./overdozesans.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: "overdozesans";
    src: url("./overdozesans.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
}

/* --- MAIN SCREEN --- */
.catalog-screen {
    background-color: #ffffff;
    overflow: hidden;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    min-height: 100vh;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 0 !important;
}

/* --- DECORATIVE BLURRED BACKGROUNDS --- */
.catalog-screen .ellipse {
    position: absolute;
    top: 68px;
    left: 128px;
    width: 298px;
    height: 286px;
    background-color: #fff7fa;
    border-radius: 50%;
    filter: blur(48.7px);
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .div {
    position: absolute;
    top: 400px;
    left: -103px;
    width: 415px;
    height: 467px;
    background-color: #fff7fa;
    border-radius: 50%;
    filter: blur(48.7px);
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .ellipse-5 {
    position: absolute;
    top: 900px;
    left: -11px;
    width: 298px;
    height: 286px;
    background-color: #fff7fa;
    border-radius: 50%;
    filter: blur(48.7px);
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .ellipse-6 {
    position: absolute;
    top: 1400px;
    left: 138px;
    width: 298px;
    height: 286px;
    background-color: #fff7fa;
    border-radius: 50%;
    filter: blur(48.7px);
    z-index: 0;
    pointer-events: none;
}

/* --- VECTORS --- */
.catalog-screen .vector {
    position: absolute;
    top: 192px;
    left: 0;
    width: 134px;
    height: 146px;
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .img {
    position: absolute;
    top: 500px;
    left: 0;
    width: 127px;
    height: 146px;
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .vector-2 {
    position: absolute;
    top: 305px;
    left: 229px;
    width: 161px;
    height: 89px;
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .vector-3 {
    position: absolute;
    top: 700px;
    left: 271px;
    width: 119px;
    height: 62px;
    z-index: 0;
    pointer-events: none;
}
.catalog-screen .vector-4 {
    position: absolute;
    top: 1100px;
    left: 0;
    width: 137px;
    height: 146px;
    z-index: 0;
    pointer-events: none;
}

/* --- BACK BUTTON --- */
.back-button {
    position: absolute;
    top: 60px;
    left: 20px;
    font-family: "overdozesans";
    font-size: 15px;
    color: #000 !important;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    background: #ffe5f0;
    padding: 8px 18px;
    border-radius: 30px;
    border: 1px solid #000;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.back-button:hover {
    transform: translateX(-4px);
    background: #ffe5f0;
}
.back-arrow { margin-right: 6px; }

/* --- CATALOG HEADER --- */
.catalog-header {
    margin-top: 110px;
    text-align: center;
    margin-bottom: 30px;
    position: relative;
    z-index: 1;
}
.catalog-title {
    font-family: "overdozesans";
    font-size: 46px;
    color: #000;
    margin: 0;
    -webkit-text-stroke: 0.5px #ffffff;
}
.catalog-subtitle {
    font-family: "overdozesans";
    font-size: 16px;
    color: #666;
    margin-top: 5px;
}

/* --- BOUQUET GRID --- */
.bouquet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 25px;
    width: 90%;
    max-width: 900px;
    margin-bottom: 50px;
    position: relative;
    z-index: 1;
}

/* --- BOUQUET CARD --- */
.bouquet-card {
    background: #ffffff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,0.06);
    border: 1px solid #f0f0f0;
    transition: all 0.3s ease;
    cursor: pointer;
    display: flex;
    flex-direction: column;
}
.bouquet-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 35px rgba(255, 180, 200, 0.25);
    border-color: #ffb4b4;
}

/* --- CATALOG IMAGES (Completely independent!) --- */
.bouquet-img {
    width: 100%;
    height: 220px;
    background-size: cover !important;
    background-position: center !important;
    background-color: #fafafa;
}
.catalog-img-1 { background-image: url('rose1.jpg'); }
.catalog-img-2 { background-image: url('rose2.jpg'); }
.catalog-img-3 { background-image: url('rose3.jpg'); }
.catalog-img-4 { background-image: url('rose6.jpg'); }
.catalog-img-5 { background-image: url('rose8.jpg'); }
.catalog-img-6 { background-image: url('rose9.jpg'); }

/* --- BOUQUET INFO --- */
.bouquet-info {
    padding: 18px 20px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: center;
}
.bouquet-name {
    font-family: "overdozesans";
    font-size: 20px;
    color: #000;
    margin: 0;
    line-height: 1.2;
}
.bouquet-price {
    font-family: "overdozesans";
    font-size: 22px;
    color: #000;
    margin: 0;
}
.catalog-order-btn {
    font-family: "overdozesans";
    font-size: 16px;
    color: #000 !important;
    background-color: #fff1f7;
    border: 1px solid #000;
    border-radius: 30px;
    padding: 10px 0;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    margin-top: 5px;
}
.catalog-order-btn:hover {
    background-color: #ffe3ee;
    transform: scale(1.02);
}

/* --- FOOTER (Built-in) --- */
.footer-section {
    width: 100%;
    text-align: center;
    padding: 30px 0 20px 0;
    position: relative;
    z-index: 1;
    background: transparent;
}
.footer-section .footer-title {
    font-family: "overdozesans";
    font-size: 40px;
    color: #000;
    display: block;
    margin-bottom: 5px;
}
.footer-section .footer-sub {
    font-family: "overdozesans";
    font-size: 17px;
    color: #000;
    display: block;
    margin-bottom: 10px;
}
.footer-section .footer-info {
    font-family: "overdozesans";
    font-size: 16px;
    color: #000;
    display: block;
    margin-bottom: 5px;
}

/* ============================================================ */
/* ===== 🎀 ANIMATIONS ===== */
/* ============================================================ */

/* --- BASE HIDDEN STATES --- */
.catalog-title, 
.catalog-subtitle, 
.bouquet-card, 
.footer-section {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* --- VISIBLE STATE --- */
.catalog-title.visible, 
.catalog-subtitle.visible, 
.bouquet-card.visible, 
.footer-section.visible {
    opacity: 1 !important;
    transform: translateY(0px) !important;
}

/* --- STAGGER DELAYS --- */
.catalog-title { transition-delay: 0.1s; }
.catalog-subtitle { transition-delay: 0.2s; }

.bouquet-card:nth-child(1) { transition-delay: 0.3s; }
.bouquet-card:nth-child(2) { transition-delay: 0.4s; }
.bouquet-card:nth-child(3) { transition-delay: 0.5s; }
.bouquet-card:nth-child(4) { transition-delay: 0.6s; }
.bouquet-card:nth-child(5) { transition-delay: 0.7s; }
.bouquet-card:nth-child(6) { transition-delay: 0.8s; }

.footer-section { transition-delay: 1.0s; }

/* ============================================================ */
/* ===== 📱 RESPONSIVE DESIGN ===== */
/* ============================================================ */

/* Mobile */
@media (max-width: 600px) {
    .catalog-header { margin-top: 90px; }
    .catalog-title { font-size: 34px; }
    .bouquet-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 15px; }
    .bouquet-img { height: 160px; }
    .back-button { top: 30px; left: 15px; font-size: 14px; padding: 6px 14px; }
    .catalog-screen .ellipse, 
    .catalog-screen .div, 
    .catalog-screen .ellipse-5, 
    .catalog-screen .ellipse-6 {
        opacity: 0.5; /* Softer on mobile */
    }
}

/* Tablet & Laptop */
@media (min-width: 601px) {
    .catalog-screen {
        padding: 20px;
    }
}