/* Custom styles beyond Tailwind */

/* Smooth focus outlines for accessibility */
*:focus-visible {
    outline: 2px solid #7B2D3B;
    outline-offset: 2px;
}

/* Selection color */
::selection {
    background-color: #fce7eb;
    color: #7B2D3B;
}

/* Subtle gradient border on cards */
.card-hover {
    position: relative;
    background: linear-gradient(#fef7f5, #fef7f5) padding-box,
                linear-gradient(135deg, rgba(123, 45, 59, 0.1), rgba(245, 168, 184, 0.2)) border-box;
    border: 1px solid transparent;
}

/* Navbar scroll state */
.nav-scrolled {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Hero image subtle float animation */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}

.hero-float {
    animation: float 6s ease-in-out infinite;
}

/* Pulse dot animation */
@keyframes pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
}

.animate-pulse-dot {
    animation: pulse-dot 2s ease-in-out infinite;
}

/* Print styles */
@media print {
    nav, .mobile-menu, #menuOverlay, button { display: none !important; }
    body { background: white; color: black; }
    .hero-pattern { background: #7B2D3B !important; }
}

/* Tablet adjustments */
@media (max-width: 768px) {
    h1 { font-size: 2.25rem; }
    h2 { font-size: 2rem; }
}

/* Large screen adjustments */
@media (min-width: 1280px) {
    .max-w-7xl { max-width: 80rem; }
}
