:root {
  --color-cream: #FCF7E6;
  --color-ink: #92282C;
  --color-warmBlack: #2A0A0C;
  --color-gold: #C8A96E;
  --color-offWhite: #FAF8F4;
  --color-warmGray: #8A8578;
  --font-display: 'Lora', 'Tiempos', 'Georgia', serif;
  --font-body: 'Source Sans 3', 'Balto', 'Helvetica Neue', sans-serif;
  --ease-smooth: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-snap: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-elegant: cubic-bezier(0.45, 0, 0.15, 1);
}

body {
    background-color: var(--color-warmBlack);
    color: var(--color-cream);
    font-family: var(--font-body);
    margin: 0;
}

@keyframes revealUp {
    from { transform: translateY(115%); opacity: 0; }
    to   { transform: translateY(0%); opacity: 1; }
}

@keyframes scaleIn {
    from { transform: scale(1.15); }
    to   { transform: scale(1); }
}

@keyframes preloaderOut {
    from { clip-path: inset(0 0 0 0); }
    to   { clip-path: inset(0 0 100% 0); }
}

@keyframes floatY {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}

.nav-item.active {
    font-weight: 500;
    border-bottom: 1px solid var(--color-ink);
}

.nav-item.has-children svg {
    transition: transform 0.35s var(--ease-smooth), stroke 0.4s var(--ease-smooth);
}

.nav-item.active.has-children svg {
    transform: rotate(180deg);
}

#scroll-indicator div {
    animation: floatY 2s var(--ease-smooth) infinite;
}

/* Favourites Carousel */
#carousel-scroll::-webkit-scrollbar {
    display: none;
}

.product-card {
    min-width: clamp(280px, 30vw, 380px);
    scroll-snap-align: start;
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s var(--ease-snap);
    cursor: pointer;
    flex-shrink: 0;
}

.product-card-image-wrapper {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1/1;
    background: #EDE8DB;
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-card-image {
    width: 75%;
    height: 75%;
    object-fit: contain;
    transition: transform 0.7s var(--ease-smooth);
    mix-blend-mode: multiply;
}

.product-card:hover .product-card-image {
    transform: scale(1.05);
}

.product-card-info {
    text-align: center;
    padding: 1.3rem 0.5rem 0;
}

.product-card-info h3 {
    font-family: var(--font-display);
    font-size: clamp(0.95rem, 1.3vw, 1.12rem);
    font-weight: 600;
    color: var(--color-ink);
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.35;
}

.product-card-info p {
    font-family: var(--font-body);
    font-size: 0.8rem;
    color: var(--color-warmGray);
    margin: 0.5rem 0 0;
    line-height: 1.55;
    font-weight: 300;
}

.product-card-info .price {
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-ink);
    margin: 0.7rem 0 0;
    letter-spacing: 0.01em;
}
