.gradient-bg {
    background: linear-gradient(135deg, #1a1a1a 0%, #000000 100%);
}

.card-blur {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
}

/* Interactive elements - Buttons & Links */
button,
a[href^="#"],
a[href^="https"],
a[href^="tel"],
a[href^="mailto"] {
    position: relative;
    outline: 2px solid transparent;
    outline-offset: 2px;
    transition: all 200ms ease-in-out;
}

button:hover {
    transform: translateY(-2px);
}

button:focus {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}

button:active {
    transform: translateY(0);
}

/* Navigation links */
nav a {
    position: relative;
    padding: 0.5rem 0.5rem;
}

nav a:hover {
    color: #60a5fa;
}

nav a:focus {
    outline: 2px solid #60a5fa;
    border-radius: 0.375rem;
}

/* Primary CTA buttons */
.btn-primary,
button[class*="bg-blue"] {
    position: relative;
}

.btn-primary:hover,
button[class*="bg-blue"]:hover {
    filter: brightness(1.1);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3);
}

.btn-primary:focus,
button[class*="bg-blue"]:focus {
    outline: 2px solid #1e40af;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 10px 20px rgba(59, 130, 246, 0.2);
}

.btn-primary:active,
button[class*="bg-blue"]:active {
    transform: translateY(0);
}

/* Secondary buttons with borders */
button[class*="border"] {
    position: relative;
}

button[class*="border"]:hover {
    background-color: rgba(31, 41, 55, 0.8);
    border-color: #60a5fa;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(31, 41, 55, 0.5);
}

button[class*="border"]:focus {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
    border-color: #60a5fa;
    box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.1);
}

button[class*="border"]:active {
    transform: translateY(0);
}

/* Card links and interactive containers */
.card-blur a,
.card-blur button {
    position: relative;
}

.card-blur button:hover {
    transform: translateY(-2px);
}

.card-blur button:focus {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
}

/* External links (WhatsApp, Kuula, etc) */
a[rel~="noopener"]:hover,
a[target="_blank"]:hover {
    text-decoration: underline;
    filter: brightness(1.2);
}

a[rel~="noopener"]:focus,
a[target="_blank"]:focus {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
    border-radius: 0.25rem;
}

/* FAQ items */
details summary:hover {
    color: #93c5fd;
    border-color: #60a5fa;
    cursor: pointer;
}

details summary:focus {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
}

details:hover {
    border-color: #60a5fa;
}

details:focus-within {
    border-color: #60a5fa;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}

/* Floating WhatsApp button */
a[id*="floating"] {
    transition: all 200ms ease-in-out;
}

a[id*="floating"]:hover {
    transform: scale(1.1) translateY(-4px);
    filter: brightness(1.1);
    box-shadow: 0 10px 30px rgba(34, 197, 94, 0.4);
}

a[id*="floating"]:focus {
    outline: 2px solid #16a34a;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2), 0 10px 30px rgba(34, 197, 94, 0.3);
}

a[id*="floating"]:active {
    transform: scale(0.95);
}

/* Green button states */
button[class*="bg-green"],
a[class*="bg-green"] {
    transition: all 200ms ease-in-out;
}

button[class*="bg-green"]:hover,
a[class*="bg-green"]:hover {
    filter: brightness(1.1);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(34, 197, 94, 0.3);
}

button[class*="bg-green"]:focus,
a[class*="bg-green"]:focus {
    outline: 2px solid #15803d;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2);
}

/* Focus-visible for keyboard navigation (best practice) */
button:focus-visible,
a:focus-visible,
summary:focus-visible {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
    border-radius: 0.25rem;
}

/* Responsive iframe container for 360 tours */
@supports (aspect-ratio: 1) {
    [style*="aspect-ratio"] {
        width: 100% !important;
        height: auto !important;
    }
}

/* Video player styling */
video {
    display: block;
    background-color: #000;
    width: 100%;
    height: auto;
}

video::-webkit-media-controls-panel {
    background-color: rgba(0, 0, 0, 0.8);
}

video::-webkit-media-controls-play-button {
    background-color: #3b82f6;
    border-radius: 50%;
}

/* Fallback for older browsers */
.kuula-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 ratio */
    height: 0;
    overflow: hidden;
    border-radius: 1.5rem;
}

.kuula-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* Mobile optimization for iframes and videos */
@media (max-width: 640px) {
    .kuula-wrapper {
        padding-bottom: 65%;
    }
    
    /* Ensure images are responsive */
    img {
        max-width: 100%;
        height: auto;
        display: block;
    }
    
    /* Optimize touch targets for mobile */
    button, a {
        min-height: 44px;
        min-width: 44px;
        padding: 12px 16px;
    }
    
    /* Improve text readability on mobile */
    body {
        font-size: 16px;
    }
    
    h1 {
        font-size: clamp(1.5rem, 5vw, 3rem);
    }
    
    h2 {
        font-size: clamp(1.25rem, 4vw, 2.25rem);
    }
}

/* Tablet optimization */
@media (min-width: 641px) and (max-width: 1024px) {
    .kuula-wrapper {
        padding-bottom: 56.25%;
    }
}

/* Large screens optimization */
@media (min-width: 1025px) {
    /* Enhanced performance for large displays */
    img {
        will-change: auto;
    }
}

/* Diagonal bounce animation */
@keyframes diagonalBounce {
    0%, 100% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(8px, -8px);
    }
}

.animate-diagonal-bounce {
    animation: diagonalBounce 1.5s infinite;
}

/* Swipe/slide animation - more intuitive */
@keyframes swipeMotion {
    0%, 100% {
        transform: translate(0, 0);
    }
    50% {
        transform: translate(16px, 16px);
    }
}

.animate-swipe {
    animation: swipeMotion 2s ease-in-out infinite;
}
