/* Basic Styling */
body {
    overflow-x: hidden;
}

/* Header & Navigation */
.nav-link { position: relative; color: #E5E7EB; text-transform: uppercase; font-weight: 700; letter-spacing: 1px; transition: color 0.3s ease; }
.nav-link::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -5px; left: 50%; transform: translateX(-50%); background-color: #FBBF24; transition: width 0.3s ease; }
.nav-link:hover, .nav-link.active { color: #FBBF24; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
header.scrolled { background-color: rgba(0, 0, 0, 0.85); box-shadow: 0 2px 10px rgba(251, 191, 36, 0.1); }


/* REWRITTEN: Hero Slideshow */
.slideshow-container { position: relative; }
.slide { display: none; position: absolute; width: 100%; height: 100%; opacity: 0; transition: opacity 1.5s ease-in-out; }
.slide.active { display: block; opacity: 1; }
.slide-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* This makes the image cover the area without distortion */
    z-index: 1;
}
.slide-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.9) 100%); z-index: 2; }
.slide-content { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(0); /* translateZ(0) forces hardware acceleration */
    color: white; 
    text-align: center; 
    z-index: 3; 
    width: 80%; 
}
.hero-title { font-family: 'Orbitron', sans-serif; font-size: 3rem; font-weight: 900; text-shadow: 0 0 15px rgba(251, 191, 36, 0.5); margin-bottom: 1rem; animation: slideInUp 1s ease-out 0.5s forwards; opacity: 0.5; }
.hero-subtitle { font-size: 1.25rem; font-weight: 300; max-width: 600px; margin: 0 auto; animation: slideInUp 1s ease-out 1s forwards; opacity: 0.5; }
.fade { animation-name: none; } /* We handle fade with opacity transition now */

.prev, .next { cursor: pointer; position: absolute; top: 50%; width: auto; margin-top: -22px; padding: 16px; color: white; font-weight: bold; font-size: 24px; transition: 0.6s ease; border-radius: 0 3px 3px 0; user-select: none; z-index: 10; background-color: rgba(0,0,0,0.3); }
.next { right: 0; border-radius: 3px 0 0 3px; }
.prev { left: 0; }
.prev:hover, .next:hover { background-color: rgba(251, 191, 36, 0.8); color: black; }

/* Product Card Styling (Homepage) */
.product-card { background-color: rgba(255, 255, 255, 0.02); border: 1px solid rgba(251, 191, 36, 0.2); border-radius: 0.5rem; padding: 2rem; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; transition: all 0.3s ease-in-out; text-decoration: none; }
.product-card:hover { transform: translateY(-10px); border-color: rgba(251, 191, 36, 0.8); background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 10px 30px rgba(251, 191, 36, 0.1); }

/* Product Overview Card Styling (Products Page) */
.product-overview-card { background-color: #0a0a0a; border: 1px solid #374151; border-radius: 0.5rem; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.product-overview-card:hover { transform: translateY(-5px); box-shadow: 0 20px 25px -5px rgba(251, 191, 36, 0.1), 0 10px 10px -5px rgba(251, 191, 36, 0.04); }
.cta-link { display: inline-block; font-weight: bold; color: #FBBF24; text-decoration: none; position: relative; background: none; border: none; cursor: pointer; padding: 0; }
.cta-link::after { content: '→'; margin-left: 8px; transition: transform 0.3s ease; }
.cta-link:hover::after { transform: translateX(5px); }

/* Other Products Navigation Buttons */
.product-nav-btn { display: flex; align-items: center; justify-content: center; padding: 2rem; background-color: transparent; border: 2px solid #FBBF24; color: #FBBF24; border-radius: 0.5rem; text-decoration: none; transition: all 0.3s ease; }
.product-nav-btn:hover { background-color: #FBBF24; color: #000; box-shadow: 0 0 20px rgba(251, 191, 36, 0.5); transform: scale(1.05); }

/* Case Study Card Styling */
.case-study-card { display: flex; flex-direction: column; background-color: #111827; border-radius: 0.5rem; overflow: hidden; border: 1px solid #374151; }
.case-study-content { padding: 2rem; }
@media (min-width: 768px) {
    .case-study-card { flex-direction: row; }
    .case-study-card.flex-row-reverse { flex-direction: row-reverse; }
    .case-study-content { width: 50%; padding: 3rem; }
}

/* Blog Card Styling */
.blog-card { background-color: #111827; border: 1px solid #374151; border-radius: 0.5rem; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; display: flex; flex-direction: column; }
.blog-card:hover { transform: translateY(-10px); box-shadow: 0 20px 25px -5px rgba(251, 191, 36, 0.1), 0 10px 10px -5px rgba(251, 191, 36, 0.04); }
.blog-card .p-6 { flex-grow: 1; display: flex; flex-direction: column; }
.blog-card .cta-link { margin-top: auto; }

/* Modal Styling */
.modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); backdrop-filter: blur(5px); display: flex; justify-content: center; align-items: center; z-index: 100; opacity: 0; transition: opacity 0.3s ease; padding: 1rem; }
.modal-overlay:not(.hidden) { opacity: 1; }
.modal-content { background-color: #111827; padding: 2.5rem; border-radius: 0.5rem; border: 1px solid #374151; max-width: 800px; width: 100%; max-height: 90vh; overflow-y: auto; position: relative; transform: scale(0.95); transition: transform 0.3s ease; }
.modal-overlay:not(.hidden) .modal-content { transform: scale(1); }
.modal-close { position: absolute; top: 1rem; right: 1.5rem; font-size: 2.5rem; line-height: 1; color: #9CA3AF; background: none; border: none; cursor: pointer; transition: color 0.3s ease; }
.modal-close:hover { color: #FBBF24; }
.hidden { display: none; }

/* Contact Form Styling */
.form-input { width: 100%; background-color: #1f2937; border: 1px solid #4b5563; color: #e5e7eb; padding: 0.75rem 1rem; border-radius: 0.375rem; transition: border-color 0.3s ease, box-shadow 0.3s ease; }
.form-input:focus { outline: none; border-color: #FBBF24; box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.3); }
.submit-btn { width: 100%; padding: 0.75rem 1rem; background-color: #FBBF24; color: #111827; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; border: none; border-radius: 0.375rem; cursor: pointer; transition: background-color 0.3s ease, transform 0.2s ease, opacity 0.3s ease; }
.submit-btn:hover:not(:disabled) { background-color: #FCD34D; transform: translateY(-2px); }
.submit-btn:disabled { background-color: #4b5563; cursor: not-allowed; opacity: 0.5; }

/* Captcha Slider Styling */
.captcha-container { user-select: none; }
.captcha-track { position: relative; width: 100%; background-color: #1f2937; border: 1px solid #4b5563; border-radius: 0.375rem; height: 50px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.captcha-thumb { position: absolute; left: 0; top: 0; width: 50px; height: 100%; background-color: #FBBF24; color: black; font-weight: bold; display: flex; align-items: center; justify-content: center; cursor: grab; z-index: 2; font-size: 1.5rem; }
.captcha-thumb:active { cursor: grabbing; }
.captcha-text { color: #9CA3AF; z-index: 1; }
.captcha-track.verified { background-color: #166534; border-color: #22c55e; }
.captcha-track.verified .captcha-text { color: #d1fae5; }
.captcha-track.verified .captcha-thumb { display: none; }

/* Footer */
.footer-link { display: inline-block; position: relative; color: #9CA3AF; transition: color 0.3s ease; }
.footer-link::after { content: ''; position: absolute; width: 0; height: 1px; bottom: -2px; left: 0; background-color: #FBBF24; transition: width 0.3s ease; }
.footer-link:hover { color: #FBBF24; }
.footer-link:hover::after { width: 100%; }

/* Responsive adjustments */
@media (min-width: 768px) {
    .hero-title { font-size: 5rem; }
    .hero-subtitle { font-size: 1.5rem; }
}

/* Video Background Fallback */
.video-hero {
    background: url('https://placehold.co/1920x1080/000000/FFFFFF?text=BOLT+Innovations') no-repeat center center/cover;
}
