/* Felix Lenhard Custom Overrides */
:root {
    --base-color: #FF2883;
    --yellow: #FF2883;
    --dark-gray: #0f0f14;
}
.text-base-color { color: #FF2883 !important; }
.bg-base-color { background-color: #FF2883 !important; }
.bg-yellow { background-color: #FF2883 !important; }
.menu-item-list .active .nav-link { color: #FF2883; }
.menu-item-list .nav-link:hover { color: #FF2883; }

.btn-felix {
    background: linear-gradient(135deg, #FF2883 0%, #d41c6b 100%);
    color: #fff !important;
    padding: 15px 35px;
    border-radius: 0;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    transition: all 0.3s ease;
    border: none;
    display: inline-block;
}
.btn-felix:hover {
    background: linear-gradient(135deg, #d41c6b 0%, #a11552 100%);
    color: #fff !important;
    transform: translateY(-2px);
}

/* Minimum section height */
.main-content section {
    min-height: 65vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.main-content section.py-0 {
    min-height: auto;
}
/* Exclude marquee section from min-height */
.main-content section.marquee-section {
    min-height: auto;
}
/* Two-column split sections need minimum height even with py-0 */
.main-content section.py-0:not(.marquee-section) {
    min-height: 65vh;
}

/* Compact footer */
footer.footer-sticky {
    padding: 25px 0 !important;
    min-height: auto !important;
}
footer .mb-20px {
    margin-bottom: 10px !important;
}
footer .fs-14 {
    font-size: 12px !important;
}
footer .fs-15 {
    font-size: 13px !important;
}
footer .me-30px {
    margin-right: 20px !important;
}

/* CSS Parallax Animation */
@keyframes float-up-down {
    0%, 100% { transform: translate(-50%, calc(-50% + 30px)); }
    50% { transform: translate(-50%, calc(-50% - 30px)); }
}
.parallax-text {
    animation: float-up-down 8s ease-in-out infinite;
}

/* Scroll-based horizontal parallax text */
.scroll-parallax-text {
    transition: transform 0.1s ease-out;
}

/* Marquee scrolling text */
.marquee-section {
    overflow: hidden;
    white-space: nowrap;
}
.marquee-content {
    display: inline-block;
    animation: marquee-scroll 30s linear infinite;
}
@keyframes marquee-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Fixed background parallax effect */
.cover-background,
section[style*="background-image"] {
    background-attachment: fixed !important;
}
@media (max-width: 991px) {
    .cover-background,
    section[style*="background-image"] {
        background-attachment: scroll !important;
    }
}

/* Accessibility: Improved text contrast for WCAG AA compliance */
.opacity-7 {
    opacity: 1 !important;
    color: #b0b0b0 !important;
}
.opacity-8 {
    opacity: 1 !important;
    color: #cccccc !important;
}
.opacity-9 {
    opacity: 1 !important;
    color: #e0e0e0 !important;
}
.fs-16 {
    font-size: 16px !important;
    color: #c0c0c0 !important;
}
.fs-17 {
    color: #c0c0c0 !important;
}
.fs-18 {
    color: #d0d0d0 !important;
}
.bg-black .fs-16,
.bg-dark-gray .fs-16 {
    color: #c0c0c0 !important;
}
/* Ensure all paragraph text on dark backgrounds is readable */
.bg-dark-gray p,
.bg-black p,
section[class*="bg-dark"] p,
section[class*="bg-black"] p {
    color: #d0d0d0 !important;
}
.bg-dark-gray p strong,
.bg-black p strong {
    color: #ffffff !important;
}
/* Ensure text on magenta/base-color backgrounds is BLACK for good contrast */
.bg-base-color p:not(.position-absolute),
.bg-base-color .opacity-7:not(.position-absolute):not(.parallax-text),
.bg-base-color .opacity-8:not(.position-absolute):not(.parallax-text),
.bg-base-color .opacity-9:not(.position-absolute):not(.parallax-text) {
    color: #000000 !important;
    opacity: 0.85 !important;
}
.bg-base-color p.text-white:not(.position-absolute),
.bg-base-color .text-white:not(.position-absolute):not(.parallax-text),
.bg-base-color h2,
.bg-base-color h3,
.bg-base-color h4,
.bg-base-color h5,
.bg-base-color span:not(.parallax-text) {
    color: #000000 !important;
    opacity: 1 !important;
}
/* Black button on magenta sections */
.bg-base-color .btn-felix {
    background: #000000 !important;
    color: #ffffff !important;
}
.bg-base-color .btn-felix:hover {
    background: #222222 !important;
    color: #ffffff !important;
}
/* Keep parallax/decorative background text transparent */
.parallax-text,
section .position-absolute.fw-700,
section span.position-absolute {
    opacity: 0.15 !important;
}

/* UX FIX: Max-width for better readability on large screens */
.main-content p {
    max-width: 75ch;
}
.text-center p {
    margin-left: auto;
    margin-right: auto;
}

/* UX FIX: Back to top button for all screen sizes */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: #FF2883;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    text-decoration: none;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 9999;
    box-shadow: 0 4px 15px rgba(255, 40, 131, 0.4);
}
.back-to-top.visible {
    opacity: 1;
    visibility: visible;
}
.back-to-top:hover {
    background: #d41c6b;
    transform: translateY(-3px);
    color: #fff;
}
@media (max-width: 767px) {
    .back-to-top {
        bottom: 20px;
        right: 20px;
        width: 44px;
        height: 44px;
        font-size: 18px;
    }
}
@media (max-width: 375px) {
    .back-to-top {
        bottom: 15px;
        right: 15px;
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
}

/* Language Switcher */
.lang-switcher {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.lang-switcher a {
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    transition: color 0.3s ease;
}
.lang-switcher a:hover {
    color: #FF2883;
}
.lang-switcher a.active {
    color: #FF2883;
}
.lang-switcher span {
    color: rgba(255,255,255,0.3);
    margin: 0 10px;
}

/* UX FIX: Social links coming soon tooltip */
.social-coming-soon {
    position: relative;
    cursor: default;
    opacity: 0.6;
}
.social-coming-soon:hover::after {
    content: 'Coming Soon';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #333;
    color: #fff;
    padding: 5px 10px;
    font-size: 11px;
    white-space: nowrap;
    border-radius: 4px;
    margin-bottom: 5px;
}

/* Legal content styling */
.legal-content {
    line-height: 1.8;
}
.legal-content h2 {
    margin-top: 40px;
    margin-bottom: 20px;
    color: #FF2883;
}
.legal-content h3 {
    margin-top: 30px;
    margin-bottom: 15px;
    color: #ffffff;
}
.legal-content p {
    margin-bottom: 15px;
    color: #d0d0d0;
}
.legal-content a {
    color: #FF2883;
    text-decoration: none;
}
.legal-content a:hover {
    text-decoration: underline;
}

/* Blog card styling */
.blog-card {
    background: #1a1a1f;
    overflow: hidden;
    transition: all 0.3s ease;
}
.blog-card:hover {
    transform: translateY(-5px);
}
.blog-card img {
    height: 200px;
    object-fit: cover;
    object-position: center top;
    width: 100%;
}
.blog-card-body {
    padding: 25px;
}
.blog-category {
    display: inline-block;
    background: rgba(52, 152, 219, 0.2);
    color: #FF2883;
    padding: 5px 15px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

/* Contact form styling */
.form-control, .form-select {
    background-color: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    color: #fff;
    padding: 15px 20px;
    border-radius: 0;
    font-size: 16px;
}
.form-control:focus, .form-select:focus {
    background-color: rgba(255,255,255,0.08);
    border-color: #FF2883;
    color: #fff;
    box-shadow: none;
}
.form-control::placeholder {
    color: rgba(255,255,255,0.5);
}
.form-select option {
    background-color: #0f0f14;
    color: #fff;
}
.contact-info-item {
    padding: 25px 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.contact-info-item:last-child {
    border-bottom: none;
}

/* ========== RESPONSIVE STYLES ========== */
@media (max-width: 991px) {
    .col-lg-5.position-relative { min-height: 400px !important; }
    .p-5, .ps-lg-5.pe-lg-5 { padding: 2rem !important; }
    .main-content section { min-height: auto !important; }
    .position-absolute.d-none.d-lg-block { display: none !important; }
}
@media (max-width: 767px) {
    h2.alt-font {
        font-size: 2rem !important;
        margin-bottom: 25px !important;
        letter-spacing: -0.5px !important;
    }
    .bg-base-color h4,
    .bg-black h5,
    .bg-dark-gray h5 {
        font-size: 1.25rem !important;
    }
    .p-5, .ps-lg-5.pe-lg-5, .p-4.p-lg-5 { padding: 1.5rem !important; }
    .col-lg-5.position-relative { min-height: 300px !important; }
    .bg-dark-gray.p-30px { padding: 20px !important; }
    .bg-dark-gray.p-35px { padding: 25px !important; }
    .fs-50 { font-size: 35px !important; }
    footer ul { flex-wrap: wrap; justify-content: center; }
    footer li { margin-bottom: 10px; }
    .marquee-content span { font-size: 2rem !important; }
    .row.g-2 img { height: 140px !important; }
    .blog-card img { height: 200px !important; }
    .blog-card h5 { font-size: 1.15rem !important; }
    input, textarea { font-size: 16px !important; }
}
@media (max-width: 375px) {
    .p-5, .p-4.p-lg-5 { padding: 1rem !important; }
}
