@font-face {
    font-family: 'MM-Abyss';
    src: url('../fonts/AbyssRegular.woff2') format('woff2'),
         url('../fonts/AbyssRegular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

:root {
    --mm-purple: #743D97;
    --mm-yellow: #FFCE2B;
    --mm-light-yellow: #FDF4D6;
    --mm-black: #000000;
    --mm-white: #FFFFFF;
}

html {
    overflow-x: hidden;
}

body {
    font-family: 'Ubuntu', sans-serif;
    margin: 0;
    padding-top: 70px; /* Adjust for fixed navbar */
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
}

/* Fix for horizontal overflow - keep only vertical scroll */
body {
    overflow: hidden;
    overflow-y: auto;
}

/* Specific fix for footer overflow only */
footer {
    overflow-x: hidden;
    max-width: 100%;
}

/* CLEAN MOBILE CSS - WORKING FIXES ONLY */
@media (max-width: 768px) {
    /* 1. CAROUSEL SIZE FIX */
    .phone-frame-container {
        max-width: 320px !important;
        margin: 0 auto;
    }
    
    /* 2. REMOVE CHECKMARKS FROM NAVIGATION - SPECIFIC TARGETING */
    .navbar-nav li::before,
    .navbar-nav .nav-item::before,
    .dropdown-menu li::before,
    nav ul li::before,
    header ul li::before {
        display: none !important;
        content: none !important;
    }
    
    /* 3. FOOTER FULL WIDTH - DIRECT APPROACH */
    footer {
        margin-left: calc(-50vw + 50%) !important;
        width: 100vw !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }
    
    /* 4. REVIEW CAROUSEL HEIGHT FIX */
    #parentReviewsCarousel {
        min-height: 400px;
    }
    
    #parentReviewsCarousel .carousel-item {
        min-height: 350px;
        display: flex;
        align-items: center;
    }
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'MM-Abyss', sans-serif;
}

/* Hero Video Section */
.hero-video-section {
    position: relative;
    height: 100vh;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url('../images/banner-bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: -4px;
    padding-top: 80px; /* Compensate for fixed navbar height */
}

.video-background-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.video-background-container iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;
    min-height: 100vh;
    min-width: 177.78vh;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: -1;
}

.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(40, 20, 60, 0.5); /* A dark purple overlay */
    z-index: 2;
}

.hero-video-content {
    position: relative;
    z-index: 3;
    text-align: center;
    max-width: 800px;
    padding: 0 2rem;
    margin: 0 auto;
}

/* Container width restored to Bootstrap defaults */

/* Scroll Down Indicator */
.scroll-down-indicator {
    position: absolute;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) rotate(0deg);
    z-index: 5;
    cursor: pointer;
    animation: bounceVertical 2s infinite;
    background-color: transparent;
    border: none;
    padding: 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 3rem;
    font-weight: 100;
    transition: all 0.3s ease;
    text-shadow: 0 0 15px rgba(0,0,0,0.8);
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.scroll-down-indicator:hover {
    color: var(--mm-yellow); /* Yellow on hover */
    transform: translateX(-50%) scale(1.1);
}

@keyframes bounceVertical {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    40% {
        transform: translateX(-50%) translateY(10px); /* Move down */
    }
    60% {
        transform: translateX(-50%) translateY(5px); /* Move down */
    }
}

.bg-purple {
    background-color: var(--mm-purple) !important;
}

.navbar-dark .navbar-nav .nav-link {
    color: var(--mm-white) !important;
    font-weight: 500;
}

.navbar-dark .navbar-nav .nav-link:hover {
    color: var(--mm-yellow) !important;
}

/* Language Selector Styling */
.navbar-dark .navbar-nav .dropdown-menu {
    background-color: var(--mm-purple);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.navbar-dark .navbar-nav .dropdown-item {
    color: var(--mm-white);
    padding: 8px 16px;
    transition: all 0.3s ease;
}

.navbar-dark .navbar-nav .dropdown-item:hover {
    background-color: rgba(255, 206, 43, 0.1);
    color: var(--mm-yellow);
}

.navbar-dark .navbar-nav .dropdown-item.active {
    background-color: var(--mm-yellow);
    color: var(--mm-purple);
    font-weight: 600;
}

.navbar-dark .navbar-nav .dropdown-toggle::after {
    color: var(--mm-white);
}

.btn-primary {
    background-color: var(--mm-yellow);
    border-color: var(--mm-yellow);
    color: var(--mm-black);
}

.btn-primary:hover {
    background-color: #e6b825; 
    border-color: #e6b825;
}

.section-title {
    color: var(--mm-purple);
}

.bg-light-yellow {
    background-color: var(--mm-light-yellow);
}

.hero-section {
    padding: 4rem 0;
}

.feature-icon {
    font-size: 3rem;
    color: var(--mm-purple);
}

.text-purple {
    color: var(--mm-purple);
}

.text-yellow {
    color: var(--mm-yellow);
}

.form-control:focus {
    border-color: var(--mm-yellow);
    box-shadow: 0 0 0 0.25rem rgba(255, 206, 43, 0.5);
}

footer {
    background-color: var(--mm-purple);
    color: var(--mm-white);
}

footer a {
    color: var(--mm-light-yellow);
}

footer a:hover {
    color: var(--mm-yellow);
}

/* App Screen Collage Animatie */
.phone-frame-container {
    position: relative;
    width: 280px; /* Base width for the container */
    height: 605px; /* Adjusted height to match screenshot aspect ratio */
    margin: 2rem auto;
    perspective: 1000px;
}

.phone-frame {
    display: none; /* Hide frame */
}

.app-screen-collage {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.app-screen {
    position: absolute;
    width: 100%;  /* Full width of container */
    height: 100%; /* Full height of container */
    top: 0;
    left: 0;
    object-fit: contain; /* Show full image without cropping */
    border-radius: 16px; /* Add subtle rounded corners */
    transition: all 0.5s ease-in-out, box-shadow 0.5s ease-in-out; /* Add transition for shadow */
    transform-origin: center center;
    background-color: transparent; /* Remove background color */
}

.app-screen.active-screen-shadow {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); /* Add shadow for the active screen */
}

.collage-nav {
    position: absolute;
    top: 50%;
    width: 115%; /* Make nav wider than container */
    left: -7.5%; /* Center the wider nav */
    display: flex;
    justify-content: space-between;
    transform: translateY(-50%);
    z-index: 200;
}

.collage-nav-btn {
    background-color: transparent; /* Remove background */
    border: none; /* Remove border */
    color: rgba(116, 61, 151, 0.7); /* Purple, semi-transparent chevron */
    font-size: 5rem; /* Larger chevron */
    font-weight: 100;
    cursor: pointer;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    padding: 0 1rem;
    transition: all 0.3s ease;
    text-shadow: 0 0 10px rgba(255,255,255,0.5); /* Add light shadow for visibility */
}

.collage-nav-btn:hover {
    color: var(--mm-purple); /* Fully purple on hover */
    transform: translateY(-50%) scale(1.1);
}

.collage-nav-btn.prev {
    left: -50px; /* Adjust position for no-frame layout */
}

.collage-nav-btn.next {
    right: -50px; /* Adjust position for no-frame layout */
}

/* Comprehensive Mobile Fixes */
@media (max-width: 768px) {
    /* Fix horizontal overflow from carousel sections only */
    .reviews-carousel {
        width: 100% !important;
        margin-left: 0 !important;
        padding-left: 15px;
        padding-right: 15px;
    }
    
    /* Keep pricing and other full-width sections visible but prevent overflow */
    section[style*="width: 100vw"] {
        overflow-x: hidden;
    }
    
    /* Fix carousel containers causing overflow */
    .carousel {
        overflow: hidden;
    }
    
    /* Ensure containers don't exceed viewport */
    .container-fluid {
        padding-left: 15px;
        padding-right: 15px;
        overflow-x: hidden;
    }
    
    /* Fix benefit items icon alignment on mobile */
    .benefit-item {
        flex-direction: row !important;
        align-items: flex-start !important;
        text-align: left !important;
    }
    
    .benefit-item .fas {
        margin-right: 1rem !important;
        margin-bottom: 0 !important;
        flex-shrink: 0;
        margin-top: 0.25rem;
    }
    
    /* Pricing table mobile fixes - stack cards vertically */
    .pricing-section .row,
    section[class*="pricing"] .row {
        flex-direction: column;
    }
    
    .pricing-section .col-md-4,
    section[class*="pricing"] .col-md-4 {
        max-width: 100%;
        margin-bottom: 1.5rem;
    }
    
    /* Ensure pricing cards are fully visible */
    .card {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }
    
    /* Partner logos mobile optimization - show at least 2 */
    .partners-section .row {
        justify-content: center;
    }
    
    .partners-section .col-6,
    .partners-section .col-md-3,
    .partners-section .col-lg-2 {
        flex: 0 0 45%;
        max-width: 45%;
        margin-bottom: 1rem;
    }
    
    .partners-section img {
        max-width: 100%;
        height: auto;
        max-height: 80px;
        object-fit: contain;
    }
    
    /* App screen collage navigation */
    .collage-nav-btn.prev {
        left: -15px;
    }
    .collage-nav-btn.next {
        right: -15px;
    }
    
    /* Prevent horizontal scroll */
    body {
        overflow-x: hidden;
    }
    
    /* Fix modal responsiveness */
    .modal-xl {
        max-width: 95vw;
        margin: 0.5rem;
    }
    
    .modal-body .row {
        flex-direction: column;
    }
    
    .modal-body .col-md-6 {
        margin-bottom: 1rem;
    }
    
    /* Button improvements */
    .hero-video-content .btn {
        width: 90%;
        max-width: 300px;
    }
    
    .card .btn {
        width: 100%;
    }
    
    /* Feature card spacing */
    .feature-card {
        margin-bottom: 1rem;
    }
    
    /* Review card padding adjustment */
    .review-card {
        padding: 2rem 1.5rem !important;
    }
    
    /* Typography scaling */
    h1 {
        font-size: 2rem;
    }
    
    h2 {
        font-size: 1.75rem;
    }
    
    h3 {
        font-size: 1.5rem;
    }
    
    /* Hero section mobile spacing fixes */
    .hero-video-section {
        min-height: 100vh;
        height: 100vh;
        max-height: 100vh;
    }
    
    .hero-video-content {
        padding-top: 2rem !important;
        padding-bottom: 4rem !important;
    }
    
    .hero-video-content h1 {
        margin-bottom: 1rem;
        font-size: 1.8rem;
    }
    
    .hero-video-content .lead {
        margin-bottom: 1rem;
        font-size: 1rem;
    }
    
    .hero-video-content p {
        margin-bottom: 1.5rem;
    }
    
    /* Ensure scroll indicator is always visible */
    .scroll-down-indicator {
        position: absolute;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 1000;
    }
    
    /* Mobile Pricing Table Scroll Indicators */
    .pricing-table-container {
        position: relative !important;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-behavior: smooth;
        margin-bottom: 80px !important;
    }
    
    /* Add scroll shadows/gradients to indicate scrollable content */
    .pricing-table-container::before,
    .pricing-table-container::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 20px;
        z-index: 10;
        pointer-events: none;
        transition: opacity 0.3s ease;
    }
    
    .pricing-table-container::before {
        left: 0;
        background: linear-gradient(to right, rgba(248, 249, 250, 0.9), transparent);
        opacity: 0;
    }
    
    .pricing-table-container::after {
        right: 0;
        background: linear-gradient(to left, rgba(248, 249, 250, 0.9), transparent);
        opacity: 1;
    }
    
    .pricing-table-container.scrolled::before {
        opacity: 1;
    }
    
    .pricing-table-container.scrolled-end::after {
        opacity: 0;
    }
    
    /* Swipe hint positioned at bottom center of pricing table - GUARANTEED VISIBLE */
    .pricing-scroll-hint {
        position: absolute !important;
        bottom: -60px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        background: #ff6b35 !important;
        color: white !important;
        padding: 12px 20px !important;
        border-radius: 25px !important;
        font-size: 0.9rem !important;
        font-weight: 700 !important;
        z-index: 9999 !important;
        animation: swipeHintPulse 2s infinite !important;
        box-shadow: 0 8px 25px rgba(255, 107, 53, 0.6) !important;
        border: 3px solid white !important;
        display: block !important;
        white-space: nowrap !important;
        opacity: 1 !important;
        visibility: visible !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        clip: unset !important;
        overflow: visible !important;
    }
    
    /* Fallback: if absolute positioning fails, use fixed */
    @supports not (position: absolute) {
        .pricing-scroll-hint {
            position: fixed !important;
            bottom: 20px !important;
            left: 50% !important;
            transform: translateX(-50%) !important;
        }
    }
    
    .pricing-scroll-hint::before {
        content: '';
        display: inline-block;
        width: 0;
        height: 0;
        border-left: 8px solid white;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        animation: swipeArrowMove 1.5s infinite;
    }
    
    .pricing-scroll-hint::after {
        content: '';
        display: inline-block;
        width: 0;
        height: 0;
        border-left: 6px solid white;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        animation: swipeArrowMove 1.5s infinite 0.2s;
        margin-left: -4px;
    }
    
    @keyframes swipeHintPulse {
        0%, 100% { 
            transform: translateY(-50%) scale(1);
            opacity: 0.9;
            box-shadow: 0 6px 20px rgba(255, 107, 53, 0.4);
        }
        50% { 
            transform: translateY(-50%) scale(1.1);
            opacity: 1;
            box-shadow: 0 8px 25px rgba(255, 107, 53, 0.6);
        }
    }
    
    @keyframes swipeArrowMove {
        0%, 100% { transform: translateX(0); opacity: 1; }
        50% { transform: translateX(8px); opacity: 0.7; }
    }
    
    @keyframes swipeArrowLeft {
        0%, 100% {
            transform: translateX(0);
            opacity: 1;
        }
        50% {
            transform: translateX(-5px);
            opacity: 0.7;
        }
    }
    
    @keyframes swipeArrowRight {
        0%, 100% {
            transform: translateX(0);
            opacity: 1;
        }
        50% {
            transform: translateX(5px);
            opacity: 0.7;
        }
    }
    
    /* Hide hint after user starts scrolling */
    .pricing-table-container.user-scrolled .pricing-scroll-hint {
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.5s ease;
    }
    
    /* Ensure table is scrollable on mobile */
    .pricing-table {
        min-width: 600px;
        white-space: nowrap;
    }
    
    .pricing-table td,
    .pricing-table th {
        white-space: normal;
        min-width: 120px;
    }
}

/* Additional fixes for smaller mobile devices */
@media (max-width: 576px) {
    /* Further reduce partner logo size on very small screens */
    .partners-section .col-6,
    .partners-section .col-md-3,
    .partners-section .col-lg-2 {
        flex: 0 0 48%;
        max-width: 48%;
    }
    
    .partners-section img {
        max-height: 60px;
    }
    
    /* Tighter spacing for very small screens */
    .container {
        padding-left: 10px;
        padding-right: 10px;
    }
    
    /* Reduce review card padding further */
    .review-card {
        padding: 1.5rem 1rem !important;
    }
    
    /* Smaller typography for very small screens */
    h1 {
        font-size: 1.75rem;
    }
    
    h2 {
        font-size: 1.5rem;
    }
    
    /* Ensure benefit items stack properly on very small screens */
    .benefit-item {
        margin-bottom: 1rem;
    }
    
    .benefit-item .fas {
        font-size: 1.25rem !important;
        margin-right: 0.75rem !important;
    }
}

@media (min-width: 768px) {
    .border-end-md {
        border-right: 1px solid #dee2e6 !important;
    }
}

/* Language Selector Flag Styling */
.flag-icon {
    border-radius: 2px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease;
}

.flag-icon:hover {
    transform: scale(1.1);
}

/* Mobile Text Centering - All texts, titles, buttons centered except lists */
@media (max-width: 768px) {
    /* Center all headings */
    h1, h2, h3, h4, h5, h6 {
        text-align: center !important;
    }
    
    /* Center all paragraphs except those in lists */
    p:not(li p):not(.list-item p):not(ul p):not(ol p) {
        text-align: center !important;
    }
    
    /* Center all buttons */
    .btn, button, .button, .cta-button, .action-button {
        display: block !important;
        margin: 0 auto !important;
        text-align: center !important;
    }
    
    /* Center hero sections */
    .hero-section, .hero-content, .intro-section {
        text-align: center !important;
    }
    
    /* Center feature sections */
    .feature-section, .features-grid .feature-item {
        text-align: center !important;
    }
    
    /* Center pricing sections */
    .pricing-section, .package-info {
        text-align: center !important;
    }
    
    /* Center testimonials */
    .testimonial, .testimonial-content {
        text-align: center !important;
    }
    
    /* Center general content sections */
    .content-section, .text-content {
        text-align: center !important;
    }
    
    /* Center form labels and descriptions */
    .form-group label, .form-text, .form-description {
        text-align: center !important;
    }
    
    /* Center modal content */
    .modal-body, .modal-title {
        text-align: center !important;
    }
    
    /* Keep lists left-aligned for readability */
    ul, ol, .list-group, .feature-list {
        text-align: left !important;
    }
    
    /* Keep list items left-aligned */
    li, .list-item, .feature-list-item {
        text-align: left !important;
    }
    
    /* Keep navigation items centered when they are buttons/links */
    .nav-link:not(.dropdown-item) {
        text-align: center !important;
    }
    
    /* Center footer content */
    .footer, .footer-content {
        text-align: center !important;
    }
    
    /* Center section titles and subtitles */
    .section-title, .section-subtitle, .page-title {
        text-align: center !important;
    }
    
    /* Center card content */
    .card-body, .card-title, .card-text {
        text-align: center !important;
    }
    
    /* Center alert messages */
    .alert {
        text-align: center !important;
    }
    
    /* Center divs with text content */
    .text-center-mobile {
        text-align: center !important;
    }
    
    /* Exception: Keep table content as is for readability - no overrides needed */
    
    /* Exception: Keep benefit lists left-aligned */
    .benefit-item, .benefit-list, .usp-list {
        text-align: left !important;
    }
    
    /* Exception: Keep feature lists left-aligned */
    .feature-list, .feature-list li {
        text-align: left !important;
    }
    
    /* Mobile header optimizations */
    .navbar-brand img {
        height: 30px !important; /* Reduced from 40px to fit everything on one row */
    }
    
    /* Fix hero banner spacing for mobile navbar */
    .hero-section, .intro-section {
        padding-top: 60px !important; /* Further reduced to eliminate white space */
        margin-top: 0 !important;
    }
    
    /* Adjust main container for mobile */
    main.container {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    
    /* Ensure navbar height is consistent on mobile */
    .navbar {
        min-height: 60px !important;
    }
    
    /* Ensure mobile language dropdown works properly */
    .mobile-language-flag .dropdown-menu {
        position: absolute !important;
        top: 100% !important;
        left: auto !important;
        right: 0 !important;
        z-index: 1050 !important;
        min-width: 150px !important;
        background: white !important;
        border: 1px solid #dee2e6 !important;
        border-radius: 0.375rem !important;
        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
    }
    
    /* Fix mobile language dropdown positioning */
    .mobile-language-flag .dropdown {
        position: relative !important;
    }
}

#languageDropdown {
    padding: 0.375rem 0.5rem;
    border-radius: 0.375rem;
    transition: background-color 0.2s ease;
}

#languageDropdown:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.dropdown-menu .dropdown-item {
    padding: 0.5rem 1rem;
    transition: background-color 0.2s ease;
}

.dropdown-menu .dropdown-item:hover {
    background-color: var(--mm-light-yellow);
}

.dropdown-menu .dropdown-item.active {
    background-color: var(--mm-yellow);
    color: var(--mm-black);
    font-weight: 600;
}

.dropdown-menu .dropdown-item img {
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
