/* Admin bar offset for fixed header */
.admin-bar header {
    top: 32px;
}
@media screen and (max-width: 782px) {
    .admin-bar header {
        top: 46px;
    }
}

/* Dotted leader */
.dotted-leader {
    flex-grow: 1;
    border-bottom: 1px dotted #c5c8be;
    margin: 0 8px 4px 8px;
}

/* Scroll reveal */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-on-scroll.active {
    opacity: 1;
    transform: translateY(0);
}

/* Material icons */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
    vertical-align: middle;
}

/* Masonry gallery */
.masonry-grid {
    column-count: 1;
    column-gap: 24px;
}
@media (min-width: 768px) {
    .masonry-grid { column-count: 2; }
}
@media (min-width: 1024px) {
    .masonry-grid { column-count: 3; }
}
.masonry-item {
    break-inside: avoid;
    margin-bottom: 24px;
}

/* Gallery image zoom */
.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.img-zoom:hover img { transform: scale(1.05); }

/* Label caps */
.text-label-caps { text-transform: uppercase; }

/* Form inputs bottom-border style */
.input-underline {
    background: transparent;
    border: none;
    border-bottom: 1px solid #c5c8be;
    border-radius: 0;
    width: 100%;
    padding: 8px 0;
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    color: #1b1c1c;
}
.input-underline:focus {
    outline: none;
    border-bottom-color: #45553d;
    box-shadow: none;
}


/* Mobile menu */
#mobile-nav {
    background: rgba(252, 249, 248, 0.97);
    backdrop-filter: blur(8px);
}

/* Bounce animation */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
.animate-bounce { animation: bounce 1.5s infinite; }

/* Fade in animation */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in {
    animation: fadeInUp 1s ease-out forwards;
}

/* Cocktail list left border accent */
.cocktail-item {
    border-left: 2px solid #baccae;
    padding-left: 24px;
    padding-top: 8px;
    padding-bottom: 8px;
}

/* Gallery image hover */
.gallery-img-wrap img {
    transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.gallery-img-wrap:hover img {
    transform: scale(1.05);
}

/* Overlay caption */
.gallery-caption-overlay {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 24px;
    background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.masonry-item:hover .gallery-caption-overlay {
    opacity: 1;
}
