/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #faf5f7; }
::-webkit-scrollbar-thumb { background: #d9a7b8; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #c47a8f; }

/* Selection */
::selection { background: #7B2D5B; color: #fff; }

/* Navbar transition states */
#navbar.scrolled {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(123, 45, 91, 0.08);
}
#navbar.scrolled .menu-line { background: #1f0b16; }

/* Mobile menu */
#mobileMenu.open {
    opacity: 1;
    pointer-events: all;
}

/* Hamburger animation */
#menuToggle[aria-expanded="true"] .menu-line:first-child {
    transform: rotate(45deg) translate(3px, -3px);
    width: 24px;
}
#menuToggle[aria-expanded="true"] .menu-line:last-child {
    opacity: 0;
    transform: translateX(8px);
}

/* Hero card animations */
@keyframes float1 {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}
@keyframes float2 {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}
.card-float-1 {
    animation: float1 6s ease-in-out infinite;
}
.card-float-2 {
    animation: float2 5s ease-in-out infinite 1s;
}

/* Service card hover underline */
.service-card::after {
    content: '';
    display: block;
    width: 0;
    height: 1px;
    background: #fbbf24;
    transition: width .4s cubic-bezier(.22,.61,.36,1);
    margin-top: 12px;
}
.service-card:hover::after {
    width: 48px;
}

/* Gallery hover */
.gallery-item {
    overflow: hidden;
    position: relative;
}
.gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(31, 11, 22, 0);
    transition: background .4s ease;
}
.gallery-item:hover::after {
    background: rgba(31, 11, 22, 0.1);
}

/* Form focus states */
input:focus, textarea:focus, select:focus {
    border-color: #7B2D5B !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    html { scroll-behavior: auto; }
    .card-float-1, .card-float-2 { animation: none; }
}

/* Mobile responsive */
@media (max-width: 768px) {
    #hero { min-height: 100vh; }
    .font-serif { line-height: 1.15; }
}
