/*
Theme Name: Ozstone Custom Theme
Theme URI: https://ozstonewarehouse.com.au
Author: Oz Stone
Author URI: https://ozstonewarehouse.com.au
Description: Custom Elementor-ready theme converted from Laravel frontend
Version: 1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: ozstone
*/
/* --- GLOBAL SCROLLBAR FIX --- */
html,
body {
    overflow-x: hidden !important;
    /* Forces the browser to hide the horizontal scrollbar */
    max-width: 100% !important;
}

/* --- BOX SIZING SAFETY (Prevents padding from widening the footer) --- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --primary-olive: #73713f;
    --text-white: #ffffff;
    --text-dark: #212529;
    --link-blue: #007bff;
    --font-cursive: "Abril Fatface", cursive !important;
    /* Renamed for clarity */
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

*,
::after,
::before {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-body);
    /* Standard font for everything by default */
    font-size: 1rem;
    color: var(--text-dark);
    background-color: #fff;
}

/* Apply Cursive font ONLY to specific elements */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-cursive);
}

.follow-text {
    font-family: var(--font-cursive);
    margin-right: 8px;
    font-size: 18px;
    /* Adjusted size for the cursive font */
}

/* --- Top Bar --- */
.top-bar {
    background-color: var(--primary-olive);
    color: var(--text-white);
    font-size: 14px;
    padding: 8px 0;
    font-family: var(--font-body);
    /* Ensures contact info is NOT cursive */
}

.top-bar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-contact a {
    color: var(--text-white) !important;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    font-weight: normal;
    /* Removes bold from contact info */
    font-family: var(--font-cursive) !important;
    font-size: 16px;
    letter-spacing: 0.5px;
}

.top-social .follow-link {
    color: var(--text-white) !important;
    text-decoration: none;
    display: flex;
    align-items: center;
}

.top-contact .sep {
    margin: 0 10px;
    opacity: 0.7;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* --- Header & Menu --- */
.site-header {
    background: #fff;
    padding: 10px 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.site-branding img {
    height: 70px;
    width: auto;
    display: block;
}

/* Menu */
.main-navigation .menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 30px;
}

.main-navigation .menu-list>li>a {
    text-decoration: none;
    color: #333 !important;
    font-size: 16px;
    font-weight: 500;
    font-family: var(--font-body);
    /* Keep menu readable (not cursive) */
    transition: color 0.3s;
}

.main-navigation .menu-list>li>a:hover {
    color: var(--primary-olive) !important;
}

/* Submenu */
.main-navigation .sub-menu {
    display: none;
    position: absolute;
    background-color: var(--primary-olive);
    padding: 10px;
    list-style: none;
    top: 100%;
    z-index: 999;
    min-width: 200px;
}

.main-navigation .menu-item-has-children:hover .sub-menu {
    display: block;
}

.main-navigation .sub-menu li a {
    color: white !important;
    display: block;
    padding: 5px 0;
}

/* --- Mobile --- */
.menu-toggle,
.mobile-floating-btns {
    display: none;
}

@media (max-width: 900px) {
    .menu-toggle {
        display: block;
        background: transparent;
        border: 1px solid #ccc;
        padding: 8px;
    }

    .menu-toggle .bar {
        display: block;
        width: 25px;
        height: 3px;
        background: #555;
        margin: 5px 0;
    }

    .main-navigation {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: #fff;
        border-top: 1px solid #eee;
        padding: 20px 0;
        z-index: 999;
    }

    .main-navigation.toggled {
        display: block;
    }

    .main-navigation .menu-list {
        flex-direction: column;
        align-items: center;
    }

    .mobile-floating-btns {
        display: flex;
        flex-direction: column;
        position: fixed;
        right: 0;
        top: 70px;
        z-index: 9999;
    }

    .float-btn {
        width: 50px;
        height: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 5px;
        border-top-left-radius: 5px;
        border-bottom-left-radius: 5px;
    }

    .float-btn.phone {
        background-color: #6a6e38;
    }

    .float-btn.email {
        background-color: var(--primary-olive);
    }
}

/* --- FIXED NAVIGATION BAR --- */
.site-header {

    top: 0;
    left: 0;
    width: 100%;
    z-index: 99999;
    /* Ensures it stays on top of everything */
    background-color: #ffffff;
    /* Solid background */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    /* Slight shadow for depth */
}

/* --- PREVENT CONTENT HIDING BEHIND HEADER --- */
/* Since the header is fixed, we need to push the rest of the page down. */
/* Change '120px' if your header is taller or shorter. */
/*body {*/
/*    padding-top: 75px !important; */
/*}*/

/* Adjust padding for Mobile since header is smaller there */
@media (max-width: 767px) {
    body {
        padding-top: 20px !important;
    }
}

/* --- Vertical Alignment Fixes --- */

/* 1. Center the main containers */
.top-contact,
.top-social {
    display: flex !important;
    align-items: center !important;
    height: 100%;
    /* Ensures they take full bar height */
}

/* 2. Center the links (Text + Icon) */
.top-contact a,
.top-social .follow-link {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1;
    /* Removes extra font height spacing */
}

/* 3. Center the separators (|) explicitly */
.top-contact .sep {
    display: inline-flex;
    align-items: center;
    margin: 0 10px;
    position: relative;
    top: 1px;
    /* Micro-adjustment to align pipe with text middle */
}

/* 4. Ensure SVGs behave */
.top-contact svg,
.top-social svg {
    display: block;
    /* Removes invisible bottom gap */
}



/* --- 1. Apply Taviraj Font to Menu --- */
.main-navigation .menu-list li a {
    font-family: "Taviraj", serif !important;
    font-weight: 500;
    /* Adjust weight if needed */
    font-size: 17px;
    /* Adjust size to match your screenshot */
    color: #333 !important;
}

/* --- 2. Vertical Center Alignment for Top Bar --- */
.top-bar-inner,
.top-contact,
.top-social {
    display: flex !important;
    align-items: center !important;
    /* This aligns them vertically */
}

/* Fixes alignment for icons and text specifically */
.top-contact a,
.top-social .follow-link {
    display: flex !important;
    align-items: center !important;
    line-height: 1;
}

/* Adjusts the pipe separator | position */
.top-contact .sep {
    position: relative;
    top: -1px;
    /* Tiny nudge to make it look perfect */
}

/* --- Mobile Menu Styling --- */

/* 1. The Hamburger Button (White Box Style) */
.menu-toggle {
    display: none;
    /* Hidden on Desktop */
}

/* --- Mobile & Responsive Styles (Replace your existing bottom section) --- */
/* --- Mobile & Responsive Styles (Replace your existing bottom section) --- */
@media (max-width: 900px) {

    /* 1. Hide the Desktop Top Bar */
    .top-bar {
        display: none;
    }

    /* 2. Position the Header Container so menu aligns to it */
    .header-inner {
        position: relative;
        /* Crucial for the menu to stick to the header */
    }

    /* 3. The Hamburger Button */
    .menu-toggle {
        display: block;
        background-color: #ffffff;
        border: 1px solid #ddd;
        border-radius: 5px;
        padding: 8px 12px;
        cursor: pointer;
        margin-left: auto;
        /* Pushes button to the far right */
    }

    .menu-toggle .bar {
        display: block;
        width: 22px;
        height: 2px;
        background-color: #555;
        margin: 5px 0;
    }

    /* 4. The Mobile Menu (The Fix) */
    .main-navigation {
        display: none;
        /* Hidden by default */
        position: absolute;
        /* FLOATS over content (doesn't push it down) */
        top: 100%;
        /* Starts exactly at the bottom of the white header */
        left: 0;
        width: 100%;
        /* Full width */
        background-color: #fff;
        border-top: 1px solid #eee;
        box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
        /* Adds shadow for depth */
        z-index: 9999;
        /* Ensures it sits ON TOP of everything else */
    }

    /* 5. Show Menu When 'Toggled' Class is Added by JS */
    .main-navigation.toggled {
        display: block;
    }

    /* 6. Style the Links Inside */
    .main-navigation .menu-list {
        flex-direction: column;
        align-items: center;
        width: 100%;
        padding: 0;
        margin: 0;
    }

    .main-navigation .menu-list li {
        width: 100%;
        border-bottom: 1px solid #f9f9f9;
        padding-left: 25px;
    }

    .main-navigation .menu-list li a {
        display: block;
    }

    /* 7. Floating Buttons (Phone/Email) */
    .mobile-floating-btns {
        display: flex;
        flex-direction: column;
        position: fixed;
        right: 0;
        top: 70px;
        z-index: 9999;
    }

    .float-btn {
        width: 50px;
        height: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 5px;
        border-top-left-radius: 5px;
        border-bottom-left-radius: 5px;
    }

    .float-btn.phone {
        background-color: #6a6e38;
    }

    .float-btn.email {
        background-color: var(--primary-olive);
    }
}

/* --- Active vs Non-Active Menu Styles --- */

/* 1. Non-Active Links (Grey & Normal) */
.main-navigation .menu-list li a {
    color: rgba(0, 0, 0, 0.5) !important;
    font-weight: normal !important;
    /* Ensures active bold stands out */
}

/* 2. Active Link (Black & Bold) */
.main-navigation .menu-list li.current-menu-item a,
.main-navigation .menu-list li.current_page_item a {
    color: black !important;
    font-weight: bold !important;
}

/* Optional: Hover State (Make it black on hover too) */
.main-navigation .menu-list li a:hover {
    color: black !important;
}

/* Force Container 1422dfd to Full Width */
.elementor-element-1422dfd {
    width: 100% !important;
    max-width: 100% !important;
    --content-width: 100% !important;
    /* Overrides Elementor's boxed variable */
    --width: 100% !important;
    /* Overrides Elementor's container variable */
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Ensure the inner wrapper stretches too */
.elementor-element-1422dfd>.e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
}

/* --- CAROUSEL TEXT OVERLAY (Final Fix) --- */

/* 1. Base Text Style (Hidden by default) */
.elementor-image-carousel-caption {
    position: absolute !important;
    top: 50%;
    left: 50%;
    /* Start slightly lower for the 'slide up' effect */
    transform: translate(-50%, -20%);
    z-index: 20;
    width: 90%;
    text-align: center;

    /* Font Styles */
    color: #ffffff !important;
    font-family: var(--font-cursive);
    font-size: 64px;
    line-height: 1.1;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.8);
    pointer-events: none;
    /* Allows clicking through text if needed */

    /* The Animation Logic (Transition) */
    opacity: 0;
    transition: all 1.2s ease-out;
}

/* 2. The Active State (When slide appears, show text) */
.swiper-slide-active .elementor-image-carousel-caption,
.swiper-slide-duplicate-active .elementor-image-carousel-caption {
    opacity: 1;
    /* Slide it up to the perfect center */
    transform: translate(-50%, -50%);
}

/* 3. The Green Text Style (Applied by JS below) */
.green-text {
    color: #d4e157 !important;
    /* Your lime/olive color */
    font-style: italic;
    /* Optional: adds a nice touch */
}

/* 4. Responsive Sizes */
@media (max-width: 1024px) {
    .elementor-image-carousel-caption {
        font-size: 42px;
    }
}

@media (max-width: 767px) {
    .elementor-image-carousel-caption {
        font-size: 28px;
        width: 95%;
    }
}


/* --- CAROUSEL TEXT OVERLAY (Stable & Width Fixed) --- */

/* 1. Base Container Style */
.elementor-image-carousel-caption {
    position: absolute !important;
    top: 50%;
    left: 50%;
    /* Start State: Pushed down slightly (-20%) and hidden */
    transform: translate(-50%, -20%) !important;
    z-index: 9999;

    /* WIDTH LIMIT (User Request) */
    width: 45% !important;
    max-width: 1200px;

    text-align: center;
    pointer-events: none;
    line-height: 1.2em;

    /* Animation Setup (Safe Transition) */
    opacity: 0;
    transition: opacity 0.8s ease-in, transform 1s ease-out;
}

/* 2. FORCE VISIBILITY & ANIMATE UP */
/* This targets the Active Slide AND the Loop Duplicate */
.swiper-slide-active .elementor-image-carousel-caption,
.swiper-slide-duplicate-active .elementor-image-carousel-caption,
.swiper-slide-duplicate .elementor-image-carousel-caption {
    opacity: 1 !important;
    /* End State: Centered (-50%) */
    transform: translate(-50%, -50%) !important;
}

/* 3. Text Styling (Your Design) */
.elementor-image-carousel-caption span {
    font-family: var(--font-cursive);
    font-size: 75px;
    font-weight: 500;

    /* White Stroke */
    -webkit-text-stroke: 1px white;

    /* Strong Black Shadow */
    text-shadow: 2px 2px 10px black;
}

/* 4. The Colors */
.color-yellow {
    color: #d7d594 !important;
}

.color-green {
    color: white !important;
}

/* 5. Mobile Adjustments */
@media (max-width: 1024px) {

    /* Allow more width on tablets so text doesn't break weirdly */
    .elementor-image-carousel-caption {
        width: 45% !important;
    }

    .elementor-image-carousel-caption span {
        font-size: 55px;
    }
}

@media (max-width: 767px) {

    /* Full width on phone */
    .elementor-image-carousel-caption {
        width: 45% !important;
        line-height: 1.3em;
    }

    .elementor-image-carousel-caption span {
        font-size: 32px;
        -webkit-text-stroke: 0.5px white;
    }
}

/* --- CAROUSEL HEIGHT CONTROL --- */

/* 1. Desktop: Force 80vh height */
.elementor-image-carousel .swiper-slide img {
    height: 80vh !important;
    /* Occupies 80% of screen height */
    object-fit: cover !important;
    /* Ensures image is cropped, not squashed */
    object-position: center !important;
    /* Centers the image content */
    width: 100% !important;
}

/* 2. Mobile Adjustment (Recommended) */
@media (max-width: 767px) {
    .elementor-image-carousel .swiper-slide img {
        height: 70vh !important;
    }
}

/* --- RESPONSIVE LOGO --- */

/* 1. Desktop Size (Default) */
.site-branding img {
    height: 80px;
    /* Adjust this number if you want it bigger/smaller on PC */
    width: auto;
    /* Keeps the shape correct */
    display: block;
    transition: height 0.3s ease;
    /* Smooth transition when resizing window */
}

/* 2. Mobile Size (Phone) */
@media (max-width: 767px) {
    .site-branding img {
        height: 45px;
        /* Smaller height to fit the mobile header perfectly */
    }
}

#about-us-home-section {
    margin-top: -5px;
    padding-top: 50px;
}

@media (max-width: 767px) {
    #about-us-home-section {
        padding-left: 0px;
        padding-right: 0px;
        padding-top: 50px;
    }

    #our-top-products {
        font-size: 34px !important;
    }

    #why-himalayan h2 {
        font-size: 34px !important;
    }
}

/* --- PRODUCT CARD HOVER EFFECT --- */

/* 1. Container */
.oz-product-card {
    position: relative;
    /* vital for absolute positioning inside */
    overflow: hidden;
    /* Keeps the image zoom inside the box */
    margin-bottom: 20px;
    /* Space between rows */
    cursor: pointer;
}

/* 2. Image Zoom Setup */
.oz-img-wrapper img {
    width: 100%;
    height: 350px;
    /* Force consistent height */
    object-fit: cover;
    /* Crop image to fit nicely */
    transition: transform 0.6s ease;
    /* Smooth zoom speed */
    display: block;
    margin-bottom: 100px;
}

/* Image Hover Action */
.oz-product-card:hover .oz-img-wrapper img {
    transform: scale(1.1);
    /* Zooms in to 110% */
}

/* 3. The Black Content Box */
.oz-content-box {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(20, 20, 20, 0.9);
    /* Dark semi-transparent black */
    padding: 15px 10px;
    text-align: center;

    /* THE ANIMATION TRICK: */
    /* We push the box down by 50px so the Button is hidden off-screen */
    transform: translateY(50px);
    transition: transform 0.4s ease;
}

/* Slide Up on Hover */
.oz-product-card:hover .oz-content-box {
    transform: translateY(0);
    /* Slides back up to show everything */
}

/* 4. Title Styling */
.oz-content-box h3 {
    color: #d7d594;
    /* Your Yellow Theme Color */
    font-family: "Taviraj", serif;
    font-size: 20px;
    margin: 0;
    line-height: 1.2;
    font-weight: normal;
    padding: 15px;
}

/* 5. "View Product" Button Styling */
.oz-view-btn {
    display: block;
    /* Makes it fill the width so it can center */
    color: white;
    font-family: "Taviraj", serif;
    font-size: 14px;
    margin-top: 15px;
    /* Space between title and button */
    text-transform: uppercase;
    letter-spacing: 1px;

    /* Fade In Effect */
    opacity: 0;
    transition: opacity 0.4s ease 0.1s;
    /* Slight delay */
}

/* Show Button on Hover */
.oz-product-card:hover .oz-view-btn {
    opacity: 1;
}

/* Zoom AND Slide Up on Hover */
.oz-product-card:hover .oz-img-wrapper img {
    transform: scale(1.1) translateY(-10px) !important;
}

/* Move the image up inside the card */
.oz-img-wrapper img {
    object-position: center 20% !important;
    /* 0% is Top, 50% is Center. Try 20% or 30% */
}




/* --- 4-Box Sliding Hover Section --- */
/* =========================================
   4-BOX SECTION (DESKTOP & MOBILE MERGED)
   ========================================= */

/* --- 1. GLOBAL CONTAINER SETUP --- */
.four-panel-wrapper {
    position: relative;
    width: 100vw;
    /* Forces full width regardless of parent container */
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.four-panel-section {
    display: flex;
    width: 100%;
    /* Default Desktop Height */
    height: 500px;
    overflow: hidden;
    gap: 0;
}

/* --- 2. INDIVIDUAL ITEMS (BASE) --- */
.panel-item-4 {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.5s ease;
}

/* --- 3. IMAGE STYLING --- */
.img-container {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.panel-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    display: block;
}

/* --- 4. OVERLAY & CONTENT (BASE) --- */
.panel-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.9) 90%);
    transition: background 0.5s ease;
    pointer-events: none;
}

.panel-content {
    position: absolute;
    left: 20px;
    right: 20px;
    z-index: 10;
    transition: top 0.5s ease-in-out;
}

.panel-title {
    font-family: var(--font-cursive, 'Abril Fatface', serif);
    font-size: 28px;
    margin: 0 0 15px 0;
    line-height: 1.1;
    display: inline-block;
}

.panel-text {
    font-family: "Taviraj", serif;
    font-size: 15px;
    line-height: 1.5;
    transition: opacity 0.4s ease 0.2s;
}

/* =========================================
   DESKTOP STYLES (Min-Width: 901px)
   ========================================= */
@media (min-width: 901px) {
    .panel-item-4 {
        flex: 1;
        /* Equal width columns */
    }

    /* Initial State (Text Hidden at Bottom) */
    .panel-content {
        top: 75%;
        color: #fff;
    }

    .panel-title {
        color: #ffffff;
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
        border-bottom: 2px solid transparent;
    }

    .panel-text {
        opacity: 0;
        /* Hidden */
        color: #ffffff;
    }

    /* HOVER EFFECTS */
    .panel-item-4:hover .panel-image {
        transform: scale(1.1);
        /* Zoom */
    }

    .panel-item-4:hover .panel-overlay {
        background: rgba(0, 0, 0, 0.6);
        /* Darker Overlay */
    }

    .panel-item-4:hover .panel-content {
        top: 10%;
        /* Slide Up */
    }

    .panel-item-4:hover .panel-text {
        opacity: 1;
        /* Show Text */
    }

    /* Hide Mobile Arrows on Desktop */
    .slider-arrow {
        display: none;
    }
}

/* =========================================
   MOBILE STYLES (Max-Width: 900px)
   ========================================= */
@media (max-width: 900px) {

    /* 1. SLIDER CONTAINER */
    .four-panel-section {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        /* Enable Horizontal Scroll */
        scroll-snap-type: x mandatory;
        /* Snap to slides */
        scroll-behavior: smooth;

        /* KEY FIXES: Allow height to grow for text */
        height: auto !important;
        min-height: 600px;
        padding-bottom: 0;
        overflow-y: hidden;
        /* Hide vertical scroll inside slider */
    }

    /* 2. SLIDE ITEM (Full Width Card) */
    .panel-item-4 {
        min-width: 100vw;
        /* 1 slide = 1 screen width */
        width: 100vw;
        scroll-snap-align: start;
        display: flex;
        flex-direction: column;
        /* Stack: Image Top -> Text Bottom */
        height: auto !important;
        background: #ffffff;
        /* White bg */
    }

    /* 3. IMAGE SECTION */
    .img-container {
        height: 350px !important;
        /* Fixed height for image */
        width: 100%;
        flex-shrink: 0;
        /* Don't shrink image */
        position: relative;
    }

    .panel-overlay {
        display: none;
        /* No overlay on mobile */
    }

    /* 4. CONTENT SECTION (Below Image) */
    .panel-content {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;

        background-color: #ffffff;
        padding: 30px 20px 30px 40px;
        /* Space for text */
        width: 100%;
        display: block;
        opacity: 1 !important;
    }

    /* 5. TEXT STYLING (Black on White) */
    .panel-title {
        color: #1a1a1a !important;
        /* Dark Black */
        font-size: 32px !important;
        text-shadow: none !important;
        margin-top: 0;
    }

    .panel-text {
        color: #333333 !important;
        /* Dark Grey */
        font-size: 16px !important;
        opacity: 1 !important;
        visibility: visible;
    }

    /* 6. NAVIGATION ARROWS (Mobile Only) */
    .slider-arrow {
        position: absolute;
        top: 175px;
        /* Centered relative to the 350px image */
        transform: translateY(-50%);
        background: rgba(0, 0, 0, 0.4);
        color: white;
        border: 1px solid rgba(255, 255, 255, 0.5);
        width: 45px;
        height: 45px;
        border-radius: 50%;
        font-size: 22px;
        z-index: 99;
        /* On top of image */
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .prev-arrow {
        left: 10px;
    }

    .next-arrow {
        right: 10px;
    }
}





.e-con-inner {
    padding: 0px !important;
}



/* Import fonts to match the serif style */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Open+Sans:wght@400;600&display=swap');

/* Main Section Wrapper */
.oz-contact-section {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    font-family: 'Open Sans', sans-serif;
    background-color: #f4f4f4;
    /* Fallback */
}

/* Background Image Area */
.oz-background-image {
    width: 100%;
    height: 500px;
    /* Adjust based on preference */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* Pushes content to the right visual balance */
}

/* Floating Form Card */
.oz-form-card {
    position: absolute;
    top: 50px;
    left: 5%;
    width: 400px;
    max-width: 90%;
    background: #ffffff;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

/* Heading Style */
.oz-heading {
    font-family: 'Playfair Display', serif;
    color: #656c3a;
    /* Olive Green */
    font-size: 36px;
    text-align: center;
    margin-bottom: 30px;
}

/* CF7 Input Styling */
.oz-form-fields label {
    display: none;
    /* Hiding labels to match the clean look if preferred, or keep them */
}

/* The Inputs */
.oz-input {
    width: 100%;
    border: none;
    border-bottom: 1px solid #656c3a;
    /* Olive border */
    padding: 10px 0;
    margin-bottom: 20px;
    font-size: 14px;
    color: #888;
    background: transparent;
    outline: none;
}

.oz-input:focus {
    border-bottom: 2px solid #656c3a;
}

/* Textarea specific */
textarea.oz-input {
    resize: vertical;
    height: 60px;
}

/* Submit Button */
.oz-btn {
    background-color: #363636;
    color: #fff;
    border: none;
    padding: 12px 30px;
    font-size: 16px;
    cursor: pointer;
    width: auto;
    margin-top: 10px;
    transition: background 0.3s ease;
}

.oz-btn:hover {
    background-color: #555;
}

/* Footer Bar */
.oz-footer-bar {
    background-color: #656c3a;
    /* Olive Green Background */
    color: #fff;
    display: flex;
    justify-content: flex-end;
    /* Align right like image */
    padding: 40px 5% 40px 450px;
    /* Left padding creates space for the floating form */
    flex-wrap: wrap;
    gap: 40px;
}

.oz-footer-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* Center align items */
    font-size: 14px;
    line-height: 1.6;
}

.oz-footer-item strong {
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.oz-footer-item span {
    display: block;
}

/* Responsive Mobile Adjustments */
@media (max-width: 768px) {
    .oz-form-card {
        position: relative;
        top: 0;
        left: 0;
        width: 100%;
        margin: 0 auto;
        box-shadow: none;
    }

    .oz-background-image {
        height: 250px;
    }

    .oz-footer-bar {
        padding: 40px 20px;
        justify-content: center;
        text-align: center;
    }

    .oz-footer-item {
        width: 100%;
        margin-bottom: 20px;
    }
}

/* --- CUSTOM FLEX LAYOUT (Replaces Bootstrap Columns) --- */
.oz-phone-row {
    display: flex !important;
    width: 100% !important;
    gap: 15px;
    /* Exact space between the two boxes */
    align-items: center !important;
}

/* 1. Country Code Box Width */
.oz-phone-code {
    width: 30% !important;
    /* Adjust this if you want it wider/narrower */
    min-width: 100px;
    /* Prevents it from getting too squished on mobile */
}

/* 2. Mobile Number Box Width */
.oz-phone-number {
    flex-grow: 1 !important;
    /* Fills all remaining space */
    width: auto !important;
}

/* --- STYLE FOR INPUTS (Transparent & Sharp) --- */
.oz-input-style {
    height: 54px !important;
    background: transparent !important;
    border: 1px solid #3a3a3a !important;
    border-radius: 0 !important;
    color: #3a3a3a !important;
    padding: 0 15px !important;
    box-shadow: none !important;
    width: 100% !important;
    /* Forces input to fill its container */
    font-weight: 600 !important;
    outline: none !important;
}

/* Placeholder Color */
.oz-input-style::placeholder {
    color: #555 !important;
    opacity: 1;
}

/* Focus State (Clicking) */
.oz-input-style:focus {
    border-color: #000 !important;
    background: rgba(255, 255, 255, 0.1) !important;
}




.e-con-inner {
    padding: 0px !important;
}
/* --- FOOTER STYLES --- */

/* 1. Main Footer Wrapper */
.site-footer {
    background-color: #1a1a1a;
    color: #ffffff;
    padding: 60px 20px 0 20px;
    font-family: "Taviraj", serif;
    max-width: 100vw;
    margin: 0px;
}

/* 2. Container for the 4 Columns - DESKTOP/LAPTOP DEFAULT */
.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 40px;
    padding-bottom: 50px;
}

/* Individual Column Widths */
.footer-col {
    min-width: 0;
}

/* 3. Column 1: Branding */
.footer-branding {
    grid-column: span 1;
}

.footer-logo img {
    max-width: 180px;
    margin-bottom: 20px;
    filter: brightness(0) invert(1);
}

.footer-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #cccccc;
}

/* 4. Headings */
.footer-heading {
    font-family: var(--font-cursive);
    color: #ffffff;
    font-size: 24px;
    margin-bottom: 25px;
    margin-top: 0;
}

/* 5. Column 2: Links */
.footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
    transition: color 0.3s;
}

.footer-links a:hover {
    color: #d7d594;
}

/* 6. Column 3: Contact */
.contact-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 15px;
}

.contact-row a {
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
    line-height: 1.5;
}

/* 7. Column 4: Social */
.footer-social {
    display: flex;
    flex-direction: column;
}

.insta-btn {
    display: block;
    width: fit-content;
    margin: 0 auto;
}

.insta-btn img {
    width: 40px;
    height: 40px;
    transition: transform 0.3s;
    display: block;
}

.insta-btn:hover img {
    transform: scale(1.1);
}

/* 8. Bottom Copyright Bar */
.site-info-bar {
    border-top: 1px solid #444;
    text-align: center;
    padding: 20px 0;
    margin-top: 20px;
    font-size: 13px;
    color: #bbbbbb;
    letter-spacing: 0.5px;
}

/* --- TABLET STYLES --- */
@media (max-width: 1024px) and (min-width: 769px) {
    .footer-container {
        gap: 30px;
        padding-bottom: 40px;
    }
    
    .footer-heading {
        font-size: 22px;
        margin-bottom: 20px;
    }
}

/* --- MOBILE STYLES (Small Screens) --- */
@media (max-width: 768px) {
    .footer-container {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
        padding-bottom: 40px;
    }

    .contact-row {
        justify-content: center;
    }

    .footer-logo img {
        margin: 0 auto 20px auto;
    }
    
    .footer-heading {
        font-size: 20px;
        margin-bottom: 15px;
    }
    
    .footer-links a,
    .contact-row a {
        font-size: 14px;
    }
}

/* RESET PARENT CONTAINERS (Elementor Fix) */
.site-footer,
.site-footer .footer-container,
.site-footer .e-con-inner {
    max-width: 100% !important;
    width: 100% !important;
}