:root {
    --bs-primary: #6366f1;
    --bs-primary-rgb: 99, 102, 241;
    --bs-primary-hover: #4f46e5;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

.site-content {
    animation: siteFadeIn 0.6s ease-out;
}

@keyframes siteFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Section spacing & dividers */
section { position: relative; }
section + section:not(:first-child) { border-top: none; }
.section-divider { height: 1px; background: linear-gradient(to right, transparent, rgba(99,102,241,0.2), transparent); margin: 0; }

.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--bs-primary-hover);
    border-color: var(--bs-primary-hover);
}
.btn-outline-primary {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.btn-outline-primary:hover {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

a { color: var(--bs-primary); }
a:hover { color: var(--bs-primary-hover); }

.text-primary { color: var(--bs-primary) !important; }
.bg-primary { background-color: var(--bs-primary) !important; }

.form-control:focus, .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(99, 102, 241, 0.25);
}

/* Hero section styles */
.hero-section { position: relative; }
.hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
}
.hero-title { line-height: 1.15; letter-spacing: -0.02em; }
.hero-btn-primary { transition: all 0.3s ease; }
.hero-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.hero-btn-outline { transition: all 0.3s ease; }
.hero-btn-outline:hover { background: #fff !important; color: var(--primary) !important; transform: translateY(-2px); }
.hero-image { animation: float 6s ease-in-out infinite; }
@@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

/* Feature cards */
.feature-card {
    background: #fff;
    transition: all 0.3s ease;
    border: 1px solid rgba(0,0,0,0.05);
}
.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(99, 102, 241, 0.1) !important;
    border-color: rgba(99, 102, 241, 0.2);
}
.feature-icon { transition: transform 0.3s ease; }
.feature-card:hover .feature-icon { transform: scale(1.1); }

/* Testimonials */
.testimonial-card { transition: all 0.3s ease; }
.testimonial-card:hover { transform: translateY(-5px); }

/* Pricing cards */
.pricing-card { transition: all 0.3s ease; background: #fff; position: relative; }
.pricing-card:hover { transform: translateY(-8px); box-shadow: 0 25px 50px rgba(0,0,0,0.1) !important; }
.pricing-card.popular { position: relative; z-index: 2; }

/* Gallery */
.gallery-item { transition: all 0.3s ease; }
.gallery-item:hover { transform: scale(1.02); }

/* Content rich text */
.rich-content p { margin-bottom: 1.2rem; }

/* Accordion */
.accordion-button:not(.collapsed) {
    background-color: rgba(99, 102, 241, 0.05);
    color: var(--bs-primary);
}

/* Navbar */
.navbar { transition: all 0.3s ease; }
.navbar .nav-link { transition: color 0.2s ease; }
.navbar .nav-link:hover { color: var(--bs-primary) !important; }

/* Responsive */
@@media (max-width: 768px) {
    .display-3 { font-size: 2.2rem; }
    .display-4 { font-size: 2rem; }
    .display-5 { font-size: 1.8rem; }
    .hero-section { min-height: 60vh !important; padding: 4rem 0; }
}

@@media (max-width: 576px) {
    .display-3 { font-size: 1.8rem; }
    .display-4 { font-size: 1.6rem; }
    .display-5 { font-size: 1.5rem; }
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Blazor error */
#blazor-error-ui { display: none; }
.blazor-error-boundary { display: none; }

/* Team section */
.team-card { background: #fff; border: 1px solid rgba(0,0,0,0.05); transition: all 0.3s ease; }
.team-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.1) !important; }
.team-avatar img { object-fit: cover; border: 3px solid var(--primary); transition: transform 0.3s; }
.team-avatar img:hover { transform: scale(1.05); }
.team-social { opacity: 0.6; transition: all 0.2s; }
.team-social:hover { opacity: 1; color: var(--primary) !important; }

/* Stats section */
.stat-card { transition: all 0.3s ease; }
.stat-card:hover { transform: scale(1.05); }
.stat-number { letter-spacing: -0.02em; }
.stat-label { font-weight: 500; }

/* CTA section */
.cta-section { min-height: 40vh; display: flex; align-items: center; }
.cta-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 100%); }
.cta-btn-primary { background: #fff; color: var(--primary) !important; transition: all 0.3s; }
.cta-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.cta-btn-outline { border: 2px solid #fff; color: #fff !important; transition: all 0.3s; }
.cta-btn-outline:hover { background: #fff; color: var(--primary) !important; transform: translateY(-3px); }

/* Portfolio section */
.portfolio-card { background: #fff; transition: all 0.3s ease; }
.portfolio-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0,0,0,0.1) !important; }
.portfolio-image { position: relative; }
.portfolio-overlay { position: absolute; inset: 0; background: rgba(99,102,241,0.9); opacity: 0; transition: all 0.3s; }
.portfolio-image:hover .portfolio-overlay { opacity: 1; }

/* Client logos */
.client-logo { transition: all 0.3s ease; }
.client-logo:hover img { filter: grayscale(0%) !important; opacity: 1 !important; transform: scale(1.1); }

/* Timeline section */
.timeline-item:last-child .timeline-line { display: none; }
.timeline-content { transition: all 0.3s; }
.timeline-content:hover { transform: translateX(8px); box-shadow: 0 12px 30px rgba(0,0,0,0.08) !important; }

/* Video section */
.video-wrapper { background: #000; }
.video-wrapper iframe, .video-wrapper video { border: none; }

/* Footer */
.site-footer a:hover { opacity: 1 !important; }
.footer-social-icon { opacity: 0.7; transition: all 0.2s; }
.footer-social-icon:hover { color: var(--primary) !important; opacity: 1; transform: translateY(-2px); }

/* Back to top */
#backToTop { transition: all 0.3s; }
#backToTop:hover { transform: translateY(-3px); }

/* Menu section */
.menu-item { transition: all 0.3s; }
.menu-item:hover { transform: translateX(6px); box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
.menu-item-card { background: #fff; transition: all 0.3s; border: 1px solid rgba(0,0,0,0.05); }
.menu-item-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,0,0,0.1) !important; }

/* Products section */
.product-card { background: #fff; transition: all 0.3s; border: 1px solid rgba(0,0,0,0.04); }
.product-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.1) !important; }
.product-card:hover img { transform: scale(1.08); }
.product-image { overflow: hidden; }

/* Reservation section */
.reservation-section .form-control:focus, .reservation-section .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 0.2rem rgba(99,102,241,0.25); }
.reservation-section .form-label { font-weight: 600; }

/* Location section */
.location-section iframe { filter: grayscale(0.3); transition: filter 0.3s; }
.location-section iframe:hover { filter: grayscale(0); }

/* Site wrapper */
.site-wrapper { min-height: 100vh; }

/* Utility */
.rounded-4 { border-radius: 0.75rem !important; }
.rounded-5 { border-radius: 1rem !important; }
