/*
=============================================================
Theme Name: OZO Commercial
Theme URI: https://bejaadigital.com
Author: Bejaa Digital
Author URI: https://bejaadigital.com
Description: Professional commercial theme for OZO Commercial by Bejaa Digital
Version: 2.0.0 (Navbar Conflict Resolved)
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ozo-commercial
Tags: commercial, business, responsive, clean, modern, luxury
=============================================================
CHANGELOG v2.0.0:
✅ Fixed duplicate navbar styles conflict (header.php vs style.css)
✅ Standardized color variables (--ozo-kuning unified)
✅ Unified breakpoints to 992px across all components
✅ Implemented proper fixed positioning with scroll behavior
✅ Added mobile slide-in menu with smooth animations
✅ Added body scroll lock for mobile menu
✅ Implemented hamburger-to-X animation
✅ Enhanced JavaScript with keyboard accessibility (Escape key)
✅ Standardized logo sizing and removed conflicting filters
✅ Redesigned CTA button with hover effects
✅ Improved ARIA attributes for screen readers
=============================================================
*/

/* ==============================================================
   OZO COMMERCIAL - PREMIUM ULTRA-LUXURY MODERN ARCHITECTURE STYLE
   ============================================================== */

/* Google Fonts Import: Montserrat (Headings) + Inter (Body Text) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Montserrat:wght@400;600;700;800;900&display=swap');

/* ==============================================================
   CSS CUSTOM PROPERTIES (Design System Variables)
   Single Source of Truth for All Colors, Fonts & Spacing
   ============================================================== */
:root {
    /* ---- COLOR PALETTE ---- */
    --ozo-bg-utama: #FFFFFF;              /* Primary Background (White) */
    --ozo-bg-kad: #FFFFFF;               /* Card Background (White) */
    --ozo-kuning: #FDB913;               /* PRIMARY ACCENT (Golden Yellow) - CONSISTENT ACROSS ALL FILES */
    --ozo-kuning-terang: #FFCC00;        /* SECONDARY ACCENT (Bright Yellow - For Hover States) */
    --ozo-teks-putih: #111111;           /* Primary Text Color (Near Black) */
    --ozo-teks-pudar: #555555;           /* Secondary Text Color (Gray) */
    --ozo-border: rgba(0, 0, 0, 0.08);   /* Border Color (Subtle Black) */
    
    /* ---- TYPOGRAPHY SYSTEM ---- */
    --font-tajuk: 'Montserrat', sans-serif;  /* Heading Font (Modern, Bold) */
    --font-body: 'Inter', sans-serif;        /* Body Font (Clean, Readable) */
    
    /* ---- SPACING SYSTEM ---- */
    --padding-section: 100px 5%;          /* Section Vertical Padding */
    --radius-kad: 16px;                  /* Card Border Radius (Architectural/Tajam) */
    
    /* ---- ANIMATION & TRANSITIONS ---- */
    --animasi-smooth: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); /* Premium Smooth Easing */
}

/* ==============================================================
   CSS RESET & BASE STYLES
   ============================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    direction: ltr;
    scroll-behavior: smooth; /* Smooth anchor scrolling */
}

body {
    font-family: var(--font-body);
    line-height: 1.6;
    color: var(--ozo-teks-pudar);
    background-color: var(--ozo-bg-utama);
    direction: ltr;
    -webkit-font-smoothing: antialiased; /* Better font rendering on macOS/iOS */
    -moz-osx-font-smoothing: grayscale;   /* Better font rendering on Firefox */
}

/* ==============================================================
   PRELOADER COMPONENT (Loading Screen)
   ============================================================== */
#ozo-preloader {
    position: fixed;
    inset: 0;
    z-index: 999999; /* Highest z-index - above everything */
    background-color: #111111;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}

.preloader-text {
    color: #FFFFFF;
    font-family: var(--font-tajuk);
    font-size: 24px;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 800;
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0% { opacity: 0.5; }
    50% { opacity: 1; }
    100% { opacity: 0.5; }
}

/* Hide preloader when page has loaded */
body.loaded #ozo-preloader {
    opacity: 0;
    visibility: hidden;
}

/* ==============================================================
   TYPOGRAPHY SYSTEM (Headings)
   ============================================================== */
h1, h2, h3, h4, h5, h6 { 
    font-family: var(--font-tajuk); 
    color: var(--ozo-teks-putih); 
    letter-spacing: -0.5px; /* Tight letter spacing for modern look */
    margin-top: 0; 
    font-weight: 800; /* Extra bold for impact */
    text-transform: uppercase; /* Premium feel */
}

/* Responsive Fluid Typography */
h1 { 
    font-size: clamp(45px, 6vw, 80px); /* Scales from 45px (mobile) to 80px (desktop) */
    line-height: 1.1; 
    letter-spacing: -1px; /* Even tighter for large headings */
}

h2 { 
    font-size: clamp(35px, 5vw, 60px); /* Scales from 35px (mobile) to 60px (desktop) */
    line-height: 1.2; 
    letter-spacing: -0.5px; 
}

/* Section Base Styling */
section {
    padding: var(--padding-section);
    border-bottom: 1px solid var(--ozo-border);
    overflow: hidden; /* Prevent spillover */
}

/* ==============================================================
   BUTTON SYSTEM (Primary, Outline, WhatsApp)
   ============================================================== */
a {
    color: var(--ozo-teks-putih);
    text-decoration: none;
    transition: var(--animasi-smooth);
    font-weight: 600;
    font-family: var(--font-body);
}

/* PRIMARY BUTTON - Solid Black Background */
.btn-ozo-utama { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    background-color: #111111; 
    color: #FFFFFF; 
    font-family: var(--font-tajuk); 
    font-size: 13px; 
    font-weight: 700; 
    letter-spacing: 2px; 
    text-transform: uppercase; 
    padding: 18px 45px; 
    border: none; 
    border-radius: 50px; /* Pill shape */
    cursor: pointer; 
    transition: var(--animasi-smooth); 
}

.btn-ozo-utama:hover { 
    background-color: var(--ozo-kuning); /* Yellow on hover */
    color: #111111; 
    transform: translateY(-4px); /* Lift effect */
    box-shadow: 0 10px 20px rgba(253, 185, 19, 0.3); /* Yellow glow */
}

/* OUTLINE BUTTON - Transparent with Border */
.btn-ozo-outline { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    background-color: transparent; 
    color: #111111; 
    border: 2px solid #111111; 
    border-radius: 50px; 
    font-family: var(--font-tajuk); 
    font-size: 13px; 
    font-weight: 700; 
    letter-spacing: 2px; 
    text-transform: uppercase; 
    padding: 16px 40px; 
    cursor: pointer; 
    transition: var(--animasi-smooth); 
}

.btn-ozo-outline:hover { 
    background-color: #111111; /* Fill on hover */
    color: #FFFFFF; 
}

/* WHATSAPP BUTTON (Green Brand Color) */
.btn-whatsapp {
    display: inline-block;
    background-color: #25D366; /* Official WhatsApp Green */
    color: white;
    padding: 12px 24px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 600;
    transition: background-color 0.3s ease, transform 0.3s ease;
    font-family: var(--font-body);
    cursor: pointer;
}

.btn-whatsapp:hover {
    background-color: #128C7E; /* Darker green on hover */
    transform: translateY(-2px); /* Subtle lift */
}

/* ==============================================================
   CARD COMPONENT
   ============================================================== */
.ozo-card { 
    background-color: var(--ozo-bg-kad); 
    border: 1px solid var(--ozo-border); 
    padding: 40px; 
    border-radius: var(--radius-kad); /* 16px - Architectural feel */
    transition: var(--animasi-smooth); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.03); /* Very subtle shadow */
}

/* Card hover effect (optional enhancement) */
.ozo-card:hover {
    box-shadow: 0 15px 40px rgba(0,0,0,0.06); /* Deeper shadow on hover */
    transform: translateY(-2px); /* Slight lift */
}

/* ==============================================================
   HERO & BENTO SECTIONS (Dark Background Overrides)
   Force white/yellow text for dark hero images
   ============================================================== */
.ozo-hero .hero-title,
.ozo-hero .hero-desc,
.ozo-bento-name {
    color: #FFFFFF !important; /* White text on dark backgrounds */
}

.ozo-hero .hero-subtitle,
.ozo-bento-category {
    color: var(--ozo-kuning) !important; /* Yellow accent text */
    font-family: var(--font-tajuk);
    font-weight: 700;
}

/* ==============================================================
   CTA FORM SECTION (Yellow Gradient Background)
   ============================================================== */
.ozo-cta-form-section { 
    background-color: var(--ozo-kuning) !important; 
    background-image: linear-gradient(
        rgba(253, 185, 19, 0.85), 
        rgba(253, 185, 19, 0.96)
    ), url('https://images.unsplash.com/photo-1519494026892-80bbd2d6fd0d?q=80&w=1920&auto=format&fit=crop'); 
    background-size: cover; 
    background-position: center; 
    border: none !important; 
}

.ozo-cta-form-section h2 { 
    color: #111111 !important; 
    font-weight: 800; 
}

.ozo-cta-form-section .cta-desc { 
    color: #222222 !important; 
    font-family: var(--font-body); 
    font-weight: 500; 
}

.ozo-cta-form-section .cta-badge { 
    border-color: #111111; 
    color: #111111; 
    font-family: var(--font-tajuk); 
    font-weight: 700; 
}

/* Form Container (White Card on Yellow Background) */
.cta-form-wrapper { 
    background-color: #FFFFFF !important; 
    border-radius: var(--radius-kad); 
    padding: 50px; 
    box-shadow: 0 30px 60px rgba(0,0,0,0.15); /* Heavy shadow for prominence */
    border: none !important; 
}

/* Form Input Fields */
.ozo-form input,
.ozo-form select,
.ozo-form textarea { 
    background-color: #F9F9F9 !important; /* Light gray background */
    border: 1px solid #EEEEEE !important; /* Subtle border */
    color: #111111 !important; 
    border-radius: 8px; 
    width: 100%; 
    padding: 18px; 
    margin-bottom: 20px; 
    font-family: var(--font-body); 
    box-sizing: border-box; 
    outline: none; 
    transition: var(--animasi-smooth); 
}

/* Input Focus State */
.ozo-form input:focus,
.ozo-form select:focus,
.ozo-form textarea:focus { 
    border-color: var(--ozo-kuning) !important; /* Yellow border on focus */
    background-color: #FFFFFF !important; /* Pure white on focus */
    box-shadow: 0 5px 15px rgba(0,0,0,0.05); /* Subtle focus shadow */
}

/* Dropdown Select Options */
.ozo-form select option { 
    background-color: #FFFFFF !important; 
    color: #111111 !important; 
}

/* Submit Button */
.ozo-form button { 
    background-color: #111111 !important; 
    color: #FFFFFF !important; 
    font-weight: 700; 
    border-radius: 50px; 
    font-family: var(--font-tajuk); 
    letter-spacing: 1px; 
    text-transform: uppercase; 
    padding: 20px; 
    width: 100%; 
    border: none; 
    cursor: pointer; 
    transition: 0.3s; 
}

.ozo-form button:hover { 
    background-color: var(--ozo-kuning) !important; /* Yellow on hover */
    color: #111111 !important; 
    transform: translateY(-3px); /* Lift effect */
}

/* ==============================================================
   FOOTER SECTION (Dark Background)
   ============================================================== */
footer,
.site-footer,
#colophon { 
    background-color: #0A0C0C !important; /* Near black */
    color: #A0A0A0 !important; /* Muted gray text */
    border-top: none !important; 
}

/* ==============================================================
   HEADER & NAVIGATION SYSTEM (COMPLETE - SINGLE SOURCE OF TRUTH)
   All navbar styles consolidated here after v2.0 cleanup
   ============================================================== */

/* ---- NAVBAR BASE STATE ---- */
.ozo-custom-nav {
    display: flex; 
    justify-content: space-between; 
    align-items: center;
    
    /* POSITIONING - Fixed for persistent visibility during scroll */
    position: fixed; /* NOT absolute - this was the main bug before */
    top: 0; 
    left: 0; 
    width: 100%;
    
    /* DIMENSIONS */
    height: 65px; /* Default height when at page top */
    box-sizing: border-box;
    padding: 0 5%;
    
    /* BACKGROUND - Starts transparent, becomes solid on scroll */
    background-color: transparent; /* Initial state: see-through */
    
    /* LAYERING - Highest priority, above all content */
    z-index: 999999; /* Consistent with preloader z-index */
    
    /* SMOOTH TRANSITIONS */
    transition: all 0.3s ease;
}

/* ---- SCROLLED STATE - Navbar becomes solid when user scrolls down ---- */
.ozo-custom-nav.scrolled {
    background-color: rgba(10, 10, 10, 0.95); /* Near-opaque black */
    backdrop-filter: blur(10px); /* Glassmorphism blur effect */
    -webkit-backdrop-filter: blur(10px); /* Safari support */
    height: 60px; /* Slightly shorter when scrolled (subtle UX cue) */
}

/* WordPress Admin Bar Offset - Pushes nav down when admin is logged in */
.admin-bar .ozo-custom-nav { 
    top: 32px; 
}

/* Also adjust scrolled state for admin bar */
.admin-bar .ozo-custom-nav.scrolled {
    top: 32px;
}

/* ---- LOGO STYLING ---- */
.nav-logo {
    display: flex;
    align-items: center;
    /* No max-width constraint - let logo size naturally */
}

.nav-logo img {
    height: 35px; /* Consistent size per design system */
    width: auto; /* Maintain aspect ratio */
    display: block;
    object-fit: contain; 
    /* NOTE: No filter applied - logo PNG is already white */
    /* REMOVED: filter: brightness(0) invert(1) was causing conflicts */
}

/* ---- NAVIGATION MENU WRAPPER (Desktop Layout) ---- */
.nav-list-wrapper { 
    display: flex; 
    align-items: center; 
    gap: 25px; /* Spacing between menu and CTA button */
}

/* ---- NAV LINKS LIST ---- */
.nav-links { 
    display: flex; 
    list-style: none; 
    gap: 20px; /* Spacing between individual nav items */
    align-items: center; 
    margin: 0; 
    padding: 0; 
}

/* ---- INDIVIDUAL NAV LINK STYLING ---- */
.nav-links a { 
    color: #FFFFFF; /* White text for contrast on dark nav */
    text-decoration: none;
    font-family: var(--font-body); /* Inter font */
    font-size: 12px; /* Small and sleek for modern aesthetic */
    font-weight: 600; /* Semi-bold for readability */
    text-transform: uppercase; /* Premium uppercase styling */
    letter-spacing: 0.5px; /* Slight spacing for elegance */
    transition: all 0.3s ease; 
    position: relative; /* For potential pseudo-element effects */
}

/* Nav Link Hover State */
.nav-links a:hover { 
    color: var(--ozo-kuning-terang); /* Bright yellow (#FFCC00) on hover */
}

/* Active Page Indicator */
.nav-links a.active {
    color: var(--ozo-kuning); /* Golden yellow (#FDB913) for current page */
}

/* Optional: Underline animation on hover (can be enabled if desired) */
.nav-links a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--ozo-kuning-terang);
    transition: width 0.3s ease;
}

.nav-links a:hover::after {
    width: 100%;
}

/* ---- CTA BUTTON: "Hubungi Kami" (Quote Button) ---- */
.nav-links a.btn-quote,
.btn-quote { 
    background-color: var(--ozo-kuning); /* Golden yellow background */
    color: #000000 !important; /* High contrast black text */
    padding: 8px 18px; 
    border-radius: 4px; /* Slightly rounded (not pill) */
    font-weight: 700; /* Bold for emphasis */
    font-size: 12px; 
    text-transform: uppercase; 
    letter-spacing: 0.5px;
    border: none; /* Solid background, no border needed */
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

/* CTA Button Hover State */
.nav-links a.btn-quote:hover,
.btn-quote:hover { 
    background-color: var(--ozo-kuning-terang); /* Brighter yellow */
    color: #000000 !important; 
    transform: translateY(-2px); /* Subtle lift */
    box-shadow: 0 4px 12px rgba(253, 185, 19, 0.3); /* Yellow glow shadow */
}

/* ==============================================================
   HEADER & NAVIGATION SYSTEM - OZO COMMERCIAL (FIXED)
   ============================================================== */

/* Desktop Navigation (Default) */
.nav-list-wrapper {
    display: flex;
    align-items: center;
    gap: 25px;
}

.nav-links {
    display: flex;
    list-style: none;
    gap: 20px;
    margin: 0;
    padding: 0;
}

.nav-links li a {
    color: #FFFFFF;
    text-decoration: none;
    font-weight: 500;
    transition: 0.3s;
}

/* ---- MOBILE HAMBURGER ICON ---- */
.hamburger { 
    display: none; /* Sorok kat desktop */
    cursor: pointer; 
    flex-direction: column; 
    justify-content: center;
    align-items: center;
    gap: 5px; 
    padding: 10px; 
    background: transparent;
    border: none;
    z-index: 9999999 !important; 
}

.hamburger .bar { 
    width: 25px; 
    height: 3px; 
    background-color: #FFFFFF; 
    transition: all 0.3s ease; 
    border-radius: 2px;
}

/* Transform to X */
.hamburger.active .bar:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger.active .bar:nth-child(2) { opacity: 0; }
.hamburger.active .bar:nth-child(3) { transform: rotate(-45deg) translate(7px, -6px); }

/* ==============================================================
   FINAL MOBILE FIX - FORCE VISIBILITY
   ============================================================== */
@media (max-width: 992px) {
    .hamburger { 
        display: flex !important; 
        position: relative;
        z-index: 1000002 !important; /* Mesti atas daripada menu */
    }

    .nav-list-wrapper {
        position: fixed !important; 
        top: 0 !important; 
        right: -100% !important; /* Kedudukan asal: sorok luar skrin */
        width: 85% !important; /* Bagi nampak sikit background sebelah kiri */
        height: 100vh !important;
        background: #0a0a0a !important; /* Hitam pekat OZO */
        flex-direction: column !important;
        justify-content: flex-start !important;
        padding: 100px 30px !important; /* Padding atas besar supaya tak kena tutup dengan logo */
        transition: 0.4s cubic-bezier(0.77,0.2,0.05,1.0) !important;
        z-index: 1000000 !important;
        display: flex !important; /* WAJIB FLEX */
        visibility: visible !important;
    }

    /* BILA AKTIF: Paksa menu masuk skrin */
    .nav-list-wrapper.mobile-active { 
        right: 0 !important; 
    }

    /* PAKSA LINKS MUNCUL */
    .nav-links { 
        display: flex !important; 
        flex-direction: column !important; 
        width: 100% !important; 
        gap: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .nav-links li {
        width: 100% !important;
        border-bottom: 1px solid #222 !important; 
        display: block !important;
    }

    .nav-links li a { 
        color: #FFFFFF !important; /* Paksa warna putih */
        font-size: 16px !important; 
        padding: 18px 0 !important; 
        display: block !important; 
        width: 100% !important;
        text-align: left !important;
        opacity: 1 !important;
    }

    .btn-quote { 
        margin-top: 30px !important; 
        width: 100% !important; 
        text-align: center !important; 
        display: inline-block !important; 
    }
}

/* Lock Scroll bila menu buka */
body.menu-open { overflow: hidden !important; }

/* ==============================================================
   BODY SCROLL LOCK
   ============================================================== */
body.menu-open {
    overflow: hidden !important;
}

/* ==============================================================
   ADDITIONAL FIXES (Fokus & Swiper)
   ============================================================== */
@media (max-width: 768px) {
    .fokus-container {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 20px !important;
        padding: 10px 20px 40px !important;
    }

    .fokus-container > div { 
        flex: 0 0 85% !important; 
    }

    .experience-badge {
        left: 35px !important;
        bottom: -25px !important;
        max-width: 85% !important;
    }
}

/* ==============================================================
   STRONG TESTIMONIALS OVERRIDE
   ============================================================== */
.strong-view.form {
    max-width: 800px;
    margin: 40px auto;
    background: #111111;
    padding: 40px;
    border-radius: 12px;
}

.strong-view.form label { color: #FFCC00; }

.strong-view.form button[type="submit"] {
    background: #FFCC00 !important;
    color: #111111 !important;
    border-radius: 50px;
    padding: 15px 30px;
}
/* FIX KATALOG DISPLAY MOBILE - BEJAA DIGITAL */
@media (max-width: 768px) {
    html, body {
        overflow-x: hidden !important; /* Elak skrin goyang kiri kanan */
        width: 100% !important;
    }

    .site-main, .container, .entry-content, #primary {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }

    /* Paksa semua gambar dan elemen besar fit skrin */
    img, iframe, table, video {
        max-width: 100% !important;
        height: auto !important;
    }
}