/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ==========================================================================
   1. GRID MOBILE RESPONSIVENESS FIX
   ========================================================================== */
@media (max-width: 767px) {
    /* Prevent image squeezing on mobile by forcing a clean 1-column layout */
    .jet-listing-grid__items.grid-col-mobile-3 {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 30px !important;
        padding: 0 15px !important;
    }
    
    .jet-listing-grid__item {
        width: 100% !important;
        max-width: 480px !important;
        margin: 0 auto !important;
    }
}

/* ==========================================================================
   2. OVERLAY POINTER EVENTS & LAYERING
   ========================================================================== */
/* The absolute overlay container currently intercepts clicks, breaking the lightbox.
   By setting pointer-events: none, clicks pass through seamlessly to the featured image.
   We also add a smooth opacity transition to fade it out on hover. */
.elementor-element-2f47131 {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important;
    z-index: 5 !important;
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.4s !important;
}

/* Let the dynamic field within the overlay be visible and style its hover gracefully */
.elementor-element-fedd69f {
    pointer-events: none !important;
}

/* Ensure the featured image has a smooth zoom transition */
.elementor-element-5e306f6 img {
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Ensure the parent listing grid item is a positioning context */
.jet-listing-grid__item {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 0px; /* Minimalist raw edges */
    background-color: #050505;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
}

/* Premium zoom and fade effects on hover */
.jet-listing-grid__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

/* Smoothly scale the image on hover */
.jet-listing-grid__item:hover .elementor-element-5e306f6 img {
    transform: scale(1.04) !important;
}

/* Completely fade out the text overlay and any inner dynamic texts on hover to avoid ghosting */
.jet-listing-grid__item:hover .elementor-element-2f47131,
.jet-listing-grid__item:hover .elementor-element-2f47131 *,
.jet-listing-grid__item:hover .elementor-element-fedd69f,
.jet-listing-grid__item:hover .jet-listing-dynamic-field {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* ==========================================================================
   3. SOLD BADGE STYLING
   ========================================================================== */
/* Reset parent container padding/margin to prevent spacing around the image */
.elementor-element.elementor-element-15f8bae {
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
}

/* Ensure the image container has no extra margin or padding and wraps the image exactly */
.elementor-element.elementor-element-5e306f6 {
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

.elementor-element.elementor-element-5e306f6 figure.wp-caption {
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}

.elementor-element.elementor-element-5e306f6 figure.wp-caption a {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-element.elementor-element-5e306f6 img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* The SOLD badge image container (ID a9adae7) - styled with absolute precision */
body:not(.rtl) .elementor-393 .elementor-element.elementor-element-a9adae7,
body.rtl .elementor-393 .elementor-element.elementor-element-a9adae7,
.elementor-element.elementor-element-a9adae7 {
    position: absolute !important;
    top: -4px !important; /* Slightly up */
    right: -4px !important; /* Slightly right */
    left: auto !important;
    bottom: auto !important;
    width: 145px !important; /* Premium scaled size to fill the corner beautifully */
    max-width: 145px !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
    z-index: 10 !important; /* Sits on top of image/overlay (5) but under the sticky menu */
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Hide SOLD badge if the artwork is not sold */
.jet-listing-grid__item[data-is-sold="false"] .elementor-element.elementor-element-a9adae7,
.jet-listing-grid__item[data-is-sold="false"] .elementor-element-a9adae7 {
    display: none !important;
}

.jet-listing-grid__item[data-is-sold="true"] .elementor-element.elementor-element-a9adae7,
.jet-listing-grid__item[data-is-sold="true"] .elementor-element-a9adae7 {
    display: block !important;
}

/* Specific drop shadow and styling rules for the SOLD ribbon image */
.elementor-393 .elementor-element.elementor-element-a9adae7 img,
.elementor-element-a9adae7 img {
    max-width: 145px !important;
    width: 100% !important;
    height: auto !important;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25)) !important;
    opacity: 0.95 !important; /* Beautiful bold ribbon visibility */
    transition: opacity 0.3s ease !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.jet-listing-grid__item:hover .elementor-element-a9adae7 img {
    opacity: 1.0 !important; /* Fully opaque on hover */
}

@media (max-width: 767px) {
    body:not(.rtl) .elementor-393 .elementor-element.elementor-element-a9adae7,
    body.rtl .elementor-393 .elementor-element.elementor-element-a9adae7,
    .elementor-element.elementor-element-a9adae7 {
        top: -2px !important; /* Slightly up on mobile */
        right: -2px !important; /* Slightly right on mobile */
        width: 110px !important;
        max-width: 110px !important;
    }
    .elementor-393 .elementor-element.elementor-element-a9adae7 img,
    .elementor-element-a9adae7 img {
        max-width: 110px !important;
    }
}


/* ==========================================================================
   4. MINIMALIST CLEAN DYNAMIC FILTERS
   ========================================================================== */
.artwork-filters-outer {
    width: 100%;
    margin-bottom: 45px;
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.artwork-filters-outer.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.artwork-filters-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px 40px; /* Large space between the Material and Size groups */
    padding: 20px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.artwork-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px; /* Space between buttons within the same group */
    align-items: center;
}

.artwork-filter-btn {
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.6);
    background: transparent;
    border: 1px solid transparent; /* default transparent border to avoid layout shift */
    border-radius: 0px; /* Raw minimalist corners */
    padding: 5px 14px;
    cursor: pointer;
    text-transform: lowercase;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.artwork-filter-btn:hover {
    color: #efe6d5 !important;
}

.artwork-filter-btn.is-active {
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.8) !important;
    background: transparent !important;
}

/* Smooth filtering transition class for grid items */
.jet-listing-grid__item.filter-hidden {
    opacity: 0 !important;
    transform: scale(0.95) translateY(10px) !important;
    pointer-events: none !important;
    position: absolute !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.jet-listing-grid__item.filter-visible {
    opacity: 1 !important;
    transform: scale(1) translateY(0) !important;
    visibility: visible !important;
    transition: all 0.45s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* ==========================================================================
   5. PREMIUM SLIDESHOW LIGHTBOX
   ========================================================================== */
.custom-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 999999;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.4s ease, visibility 0.4s;
}

.custom-lightbox.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* Glassmorphism backdrop */
.custom-lightbox__backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(5, 5, 5, 0.88);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    cursor: zoom-out;
}

.custom-lightbox__container {
    position: relative;
    z-index: 10;
    width: 90%;
    max-width: 1100px;
    height: 80%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}

.custom-lightbox__content {
    position: relative;
    max-width: 100%;
    max-height: 82%;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: auto;
}

.custom-lightbox__image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
    transform: scale(0.96);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

.custom-lightbox.is-active .custom-lightbox__image {
    transform: scale(1);
    opacity: 1;
}

/* Lightbox Slide Animation */
.custom-lightbox__image.slide-changing {
    transform: scale(0.97);
    opacity: 0;
}

/* Caption bar */
.custom-lightbox__caption {
    width: 100%;
    max-width: 1100px;
    margin-top: 18px;
    text-align: center;
    color: #ffffff;
    pointer-events: auto;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.4s ease 0.15s, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.15s;
}

.custom-lightbox.is-active .custom-lightbox__caption {
    opacity: 1;
    transform: translateY(0);
}

.custom-lightbox__title {
    font-family: 'Fahkwang', sans-serif;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #efe6d5;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.custom-lightbox__meta {
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.05em;
    text-transform: lowercase;
}

.custom-lightbox__meta span {
    margin: 0 8px;
    color: rgba(255, 255, 255, 0.2);
}

/* UI Controls */
.custom-lightbox__close {
    position: absolute;
    top: 30px;
    right: 40px;
    z-index: 100;
    color: rgba(255, 255, 255, 0.6);
    font-size: 32px;
    font-weight: 200;
    width: 44px;
    height: 44px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    transition: all 0.3s ease;
    pointer-events: auto;
}

.custom-lightbox__close:hover {
    color: #efe6d5;
    border-color: #efe6d5;
    background: rgba(255, 255, 255, 0.05);
    transform: rotate(90deg);
}

.custom-lightbox__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    color: rgba(255, 255, 255, 0.5);
    font-size: 24px;
    width: 54px;
    height: 54px;
    line-height: 52px;
    text-align: center;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: auto;
    user-select: none;
    -webkit-user-select: none;
}

.custom-lightbox__arrow:hover {
    color: #efe6d5;
    border-color: #efe6d5;
    background: rgba(255, 255, 255, 0.05);
}

.custom-lightbox__arrow--prev {
    left: 40px;
}

.custom-lightbox__arrow--next {
    right: 40px;
}

.custom-lightbox__arrow--prev:hover {
    transform: translateY(-50%) translateX(-4px);
}

.custom-lightbox__arrow--next:hover {
    transform: translateY(-50%) translateX(4px);
}

/* Hide body scroll when active */
body.custom-lightbox-open {
    overflow: hidden !important;
    padding-right: 17px; /* Prevent layout shift */
}

@media (max-width: 900px) {
    .custom-lightbox__arrow {
        width: 44px;
        height: 44px;
        line-height: 42px;
        font-size: 18px;
    }
    .custom-lightbox__arrow--prev {
        left: 20px;
    }
    .custom-lightbox__arrow--next {
        right: 20px;
    }
    .custom-lightbox__close {
        top: 20px;
        right: 20px;
    }
}

/* ==========================================================================
   6. MOBILE FILTERS SPACING & RESPONSIVENESS
   ========================================================================== */
@media (max-width: 767px) {
    .artwork-filters-outer {
        margin-bottom: 30px;
    }
    
    .artwork-filters-container {
        flex-direction: row !important; /* Keep horizontal alignment on mobile */
        justify-content: center !important;
        gap: 15px 24px !important; /* Balanced gap between groups on mobile */
        padding: 15px 5px !important;
    }
    
    .artwork-filter-buttons {
        justify-content: center !important;
        gap: 8px 12px !important; /* Tighter spacing for wrapping on mobile screens */
    }
    
    .artwork-filter-btn {
        padding: 6px 12px !important;
        font-size: 12px !important;
    }
}

/* ==========================================================================
   7. CUSTOM MASONRY PUZZLE GRID LAYOUT
   ========================================================================== */
/* Hide the original flat grid items container */
.jet-listing-grid--393.jet-listing-grid__items,
.jet-listing-grid--393 .jet-listing-grid__items,
.jet-listing-grid__items[data-listing-id="393"] {
    display: none !important;
}

/* Custom Masonry Grid Container */
.custom-masonry-container {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    gap: 2px !important; /* Extremely tight premium gap layout */
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Beautiful hardware-accelerated fade and slide down during filtering */
.custom-masonry-container.is-filtering {
    opacity: 0 !important;
    transform: translateY(12px) scale(0.995) !important;
}

/* Custom Masonry Column */
.custom-masonry-column {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    flex: 1 !important;
    gap: 2px !important; /* User requested even smaller vertical gap between thumbnails */
    box-sizing: border-box !important;
    min-width: 0 !important; /* Prevent layout overflow */
}

/* Ensure packed grid items align flawlessly */
.custom-masonry-column .jet-listing-grid__item {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease !important;
}

/* Ensure intermediate Elementor container wrappers do not introduce extra spacing, margins, or gaps */
.custom-masonry-column .jet-listing-grid__item .elementor,
.custom-masonry-column .jet-listing-grid__item .elementor-393,
.custom-masonry-column .jet-listing-grid__item .elementor-inner,
.custom-masonry-column .jet-listing-grid__item .elementor-section-wrap,
.custom-masonry-column .jet-listing-grid__item .elementor-section,
.custom-masonry-column .jet-listing-grid__item .elementor-container,
.custom-masonry-column .jet-listing-grid__item .elementor-column,
.custom-masonry-column .jet-listing-grid__item .elementor-column-wrap,
.custom-masonry-column .jet-listing-grid__item .elementor-widget-wrap,
.custom-masonry-column .jet-listing-grid__item .elementor-widget,
.custom-masonry-column .jet-listing-grid__item .elementor-widget-container,
.custom-masonry-column .jet-listing-grid__item .e-con,
.custom-masonry-column .jet-listing-grid__item .e-con-inner {
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
}

/* Perfect alignment and spacing on hover */
.custom-masonry-column .jet-listing-grid__item:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4) !important;
}

/* Ensure the SOLD badge fits nicely inside dynamic columns */
.custom-masonry-column .elementor-element-a9adae7 {
    max-width: 145px !important;
}

/* Mobile responsive packing adjustments */
@media (max-width: 767px) {
    .custom-masonry-container {
        flex-direction: row !important; /* Keep columns side-by-side */
        gap: 2px !important; /* Reduced gap on mobile */
        padding: 0 !important;
    }
    
    .custom-masonry-column {
        gap: 2px !important; /* Consistent reduced vertical gap on mobile */
    }
    
    .custom-masonry-column .jet-listing-grid__item {
        margin-bottom: 2px !important;
    }
}

/* Hide "Lets work together" block from footer template (elementor-hf-151) on Home page */
.elementor-151 .elementor-element-495fa20,
.elementor-151 .elementor-element[data-id="495fa20"] {
    display: none !important;
}

/* Hide FAQ section from injected Contact page on Home page */
.home-injected-contact .elementor-element-80c7343,
.home-injected-contact .elementor-element[data-id="80c7343"] {
    display: none !important;
}

/* Tighten outer spacing around injected Contact block (gallery ↔ contact ↔ footer) */
.home-injected-contact {
    margin: 0 !important;
    padding: 0 !important;
}

.home-injected-contact > .elementor {
    margin: 0 !important;
    padding: 0 !important;
}

/* Collapse hidden FAQ block so it cannot reserve vertical space */
.home-injected-contact .elementor-element-80c7343,
.home-injected-contact .elementor-element[data-id="80c7343"] {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/*
 * Gallery → Contact gap (home page)
 * Root cause: portfolio parent e30b639 had 180px padding-bottom;
 * contact 98cd62a had 150px padding-top in post-381.css (loads in footer).
 */

/* Portfolio section parent — removes the large gap below the grid */
body.home .elementor-6 .elementor-element.elementor-element-e30b639,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-e30b639,
body.home .elementor-6 .elementor-element-e30b639,
body.page-id-6 .elementor-6 .elementor-element-e30b639 {
    --padding-bottom: 0 !important;
    --margin-bottom: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

body.home .elementor-6 .elementor-element.elementor-element-e30b639 > .e-con-inner,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-e30b639 > .e-con-inner,
body.home .elementor-6 .elementor-element-e30b639 > .e-con-inner,
body.page-id-6 .elementor-6 .elementor-element-e30b639 > .e-con-inner {
    padding-block-end: 0 !important;
    padding-bottom: 0 !important;
}

/* Gallery grid wrappers — zero bottom spacing */
body.home .elementor-6 .elementor-element.elementor-element-971369e,
body.home .elementor-6 .elementor-element.elementor-element-d040393,
body.home .elementor-6 .elementor-element.elementor-element-2144b86,
body.home .elementor-6 .elementor-element.elementor-element-2ba37d3,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-971369e,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-d040393,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-2144b86,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-2ba37d3,
body.home .elementor-6 .elementor-element-971369e,
body.home .elementor-6 .elementor-element-d040393,
body.home .elementor-6 .elementor-element-2144b86,
body.home .elementor-6 .elementor-element-2ba37d3,
body.page-id-6 .elementor-6 .elementor-element-971369e,
body.page-id-6 .elementor-6 .elementor-element-d040393,
body.page-id-6 .elementor-6 .elementor-element-2144b86,
body.page-id-6 .elementor-6 .elementor-element-2ba37d3 {
    --padding-bottom: 0 !important;
    --margin-bottom: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.home .elementor-6 .elementor-element.elementor-element-971369e > .e-con-inner,
body.home .elementor-6 .elementor-element.elementor-element-d040393 > .e-con-inner,
body.home .elementor-6 .elementor-element.elementor-element-2144b86 > .e-con-inner,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-971369e > .e-con-inner,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-d040393 > .e-con-inner,
body.page-id-6 .elementor-6 .elementor-element.elementor-element-2144b86 > .e-con-inner {
    padding-block-end: 0 !important;
    padding-bottom: 0 !important;
}

body.home .elementor-6 .elementor-element-2ba37d3 .elementor-widget-container,
body.page-id-6 .elementor-6 .elementor-element-2ba37d3 .elementor-widget-container,
body.home .elementor-6 .elementor-widget-jet-listing-grid,
body.page-id-6 .elementor-6 .elementor-widget-jet-listing-grid,
body.home .elementor-6 .custom-masonry-container,
body.page-id-6 .elementor-6 .custom-masonry-container,
body.home .elementor-6 .elementor-element-0327495,
body.page-id-6 .elementor-6 .elementor-element-0327495,
body.home .elementor-6 .elementor-element-0327495 .elementor-widget-container,
body.page-id-6 .elementor-6 .elementor-element-0327495 .elementor-widget-container {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.elementor-6 + .home-injected-contact,
body.home .home-injected-contact,
body.page-id-6 .home-injected-contact {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Contact shell — 20px top; bottom unchanged for footer */
.home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a,
.home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a > .e-con-inner,
.home-injected-contact .elementor-element.elementor-element-98cd62a,
.home-injected-contact .elementor-element.elementor-element-98cd62a > .e-con-inner,
.home-injected-contact .elementor-element-98cd62a,
.home-injected-contact .elementor-element-98cd62a > .e-con-inner {
    --padding-top: 20px !important;
    --padding-block-start: 20px !important;
    padding-top: 20px !important;
    padding-block-start: 20px !important;
    --padding-bottom: 40px !important;
    padding-block-end: 40px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
}

/* Contact wrappers up to the heading — no extra top space */
.home-injected-contact .elementor-381 .elementor-element.elementor-element-ffe5f7d,
.home-injected-contact .elementor-381 .elementor-element.elementor-element-ffe5f7d > .e-con-inner,
.home-injected-contact .elementor-element.elementor-element-ffe5f7d,
.home-injected-contact .elementor-element.elementor-element-e7dcbd0,
.home-injected-contact .elementor-element.elementor-element-e7dcbd0 .elementor-widget-container,
.home-injected-contact .elementor-element-e7dcbd0,
.home-injected-contact .elementor-element-e7dcbd0 .elementor-widget-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
}

/* Footer sits flush below contact on the home page */
.home-injected-contact + .site-footer,
.home-injected-contact + footer.site-footer {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

@media (max-width: 1024px) {
    body.home .elementor-6 .elementor-element.elementor-element-e30b639,
    body.page-id-6 .elementor-6 .elementor-element.elementor-element-e30b639,
    body.home .elementor-6 .elementor-element-e30b639 > .e-con-inner,
    body.page-id-6 .elementor-6 .elementor-element-e30b639 > .e-con-inner {
        --padding-bottom: 0 !important;
        padding-bottom: 0 !important;
        padding-block-end: 0 !important;
    }

    .home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a,
    .home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a > .e-con-inner {
        --padding-top: 20px !important;
        padding-block-start: 20px !important;
        --padding-bottom: 32px !important;
        padding-block-end: 32px !important;
    }
}

@media (max-width: 767px) {
    body.home .elementor-6 .elementor-element.elementor-element-e30b639,
    body.page-id-6 .elementor-6 .elementor-element.elementor-element-e30b639,
    body.home .elementor-6 .elementor-element-e30b639 > .e-con-inner,
    body.page-id-6 .elementor-6 .elementor-element-e30b639 > .e-con-inner {
        --padding-bottom: 0 !important;
        padding-bottom: 0 !important;
        padding-block-end: 0 !important;
    }

    .home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a,
    .home-injected-contact .elementor-381 .elementor-element.elementor-element-98cd62a > .e-con-inner {
        --padding-top: 20px !important;
        padding-block-start: 20px !important;
        --padding-bottom: 24px !important;
        padding-block-end: 24px !important;
    }
}

/* ==========================================================================
   8. BIOGRAPHY / ABOUT HERO — full-width image + social overlay
   ========================================================================== */
/*
 * Structure (Elementor home):
 *   8f29e1a — hero background image
 *   a8980b6 — content row (overlaps hero)
 *     5204202 — social icons (overlay in left gutter)
 *     2f4525a — biography text (unchanged typography)
 *     88238d5 — right spacer
 */

/* Full-width hero image (CSS background → cover, centered focal point) */
.elementor-6 .elementor-element.elementor-element-8f29e1a {
    width: 100% !important;
    max-width: 100% !important;
    min-height: clamp(420px, 70vh, 860px) !important;
}

.elementor-6 .elementor-element.elementor-element-8f29e1a.e-con-boxed > .e-con-inner {
    max-width: 100% !important;
}

.elementor-6 .elementor-element.elementor-element-8f29e1a:not(.elementor-motion-effects-element-type-background),
.elementor-6 .elementor-element.elementor-element-8f29e1a > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    width: 100% !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Content row sits on top of the hero image */
.elementor-6 .elementor-element.elementor-element-a8980b6 {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    background: transparent !important;
}

.elementor-6 .elementor-element.elementor-element-a8980b6 > .e-con-inner {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    min-height: clamp(260px, 42vh, 520px) !important;
}

/* Social icons — absolute overlay in the left gutter (on the image, before text) */
.elementor-6 .elementor-element.elementor-element-5204202 {
    position: absolute !important;
    left: clamp(16px, 3.5vw, 56px) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: auto !important;
    max-width: min(20%, 160px) !important;
    z-index: 5 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
    pointer-events: auto !important;
}

.elementor-6 .elementor-element.elementor-element-5204202 .elementor-widget-container,
.elementor-6 .elementor-element.elementor-element-65ac833,
.elementor-6 .elementor-element.elementor-element-65ac833 .elementor-social-icons-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-6 .elementor-element.elementor-element-65ac833 .elementor-grid {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 25px !important;
}

/* Biography column — same horizontal slot as before (icons are out of flow) */
.elementor-6 .elementor-element.elementor-element-2f4525a {
    position: relative !important;
    z-index: 4 !important;
    flex: 0 0 58.665% !important;
    width: 58.665% !important;
    max-width: 58.665% !important;
    margin-left: 20% !important;
    margin-right: 0 !important;
}

/* Right balance column */
.elementor-6 .elementor-element.elementor-element-88238d5 {
    flex: 0 0 20% !important;
    width: 20% !important;
    margin-left: auto !important;
}

@media (max-width: 1024px) and (min-width: 768px) {
    .elementor-6 .elementor-element.elementor-element-5204202 {
        max-width: min(15%, 120px) !important;
        left: clamp(12px, 3vw, 32px) !important;
    }

    .elementor-6 .elementor-element.elementor-element-2f4525a {
        flex: 0 0 70% !important;
        width: 70% !important;
        max-width: 70% !important;
        margin-left: 15% !important;
    }

    .elementor-6 .elementor-element.elementor-element-88238d5 {
        flex: 0 0 15% !important;
        width: 15% !important;
    }
}

@media (max-width: 767px) {
    .elementor-6 .elementor-element.elementor-element-8f29e1a {
        min-height: clamp(360px, 55vh, 640px) !important;
    }

    .elementor-6 .elementor-element.elementor-element-a8980b6 > .e-con-inner {
        flex-wrap: wrap !important;
        min-height: 200px !important;
    }

    .elementor-6 .elementor-element.elementor-element-5204202 {
        top: 12px !important;
        left: 20px !important;
        transform: none !important;
        max-width: calc(100% - 40px) !important;
    }

    .elementor-6 .elementor-element.elementor-element-65ac833 {
        margin-bottom: 0 !important;
    }

    .elementor-6 .elementor-element.elementor-element-65ac833 .elementor-grid {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 25px !important;
    }

    .elementor-6 .elementor-element.elementor-element-2f4525a {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-top: 72px !important;
    }

    .elementor-6 .elementor-element.elementor-element-88238d5 {
        display: none !important;
    }
}

/* ==========================================================================
   9. STICKY HEADER SCROLL OVERLAP FIX
   ========================================================================== */
/* Force all header variations, sticky menus, and site navigation containers 
   to stay on top of the gallery grid elements on scroll. */
.site-header,
.main-header-bar,
.ast-sticky-active,
.elementor-sticky,
.elementor-sticky--active,
header.site-header,
#ast-fixed-header {
    z-index: 999 !important;
}

/* ==========================================================================
   9. CUSTOM TRANSPARENT & STICKY HEADER (HOME PAGE)
   ========================================================================== */

/* Initial Transparent State */
body.home .elementor-6 .elementor-element-f2bb0dc {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99999 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transition: background 0.3s ease, padding 0.3s ease !important;
}

/* Hide Logo */
body.home .elementor-6 .elementor-element-c54abdc {
    display: none !important;
}

/* Center Menu wrapper and Links */
body.home .elementor-6 .elementor-element-5abbdc5 {
    width: 100% !important;
    justify-content: center !important;
}
body.home .elementor-6 .elementor-element-f2bb0dc .uael-menu-item {
    color: #ffffff !important;
    font-style: normal !important;
    font-weight: 400 !important;
    padding: 8px 20px !important;
    margin: 0 4px !important;
    border-radius: 20px !important;
    background: transparent !important;
    transition: all 0.3s ease !important;
}

body.home .elementor-6 .elementor-element-f2bb0dc .uael-menu-item:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

/* Pull the inner content container (text and icons) up so it sits ~10px above the bottom edge */
body.page-id-11 .elementor-6 .elementor-element-a8980b6 {
    margin-top: -540px !important; /* Align caption near bottom with ~10px gap */
    position: relative;
    z-index: 10;
}

/* Ensure hero container height is consistent on portfolio page as well */
body.home .elementor-6 .elementor-element-8f29e1a,
body.page-id-11 .elementor-6 .elementor-element-8f29e1a {
    padding-top: 100px !important;
    padding-bottom: 550px !important; /* Same as home to reveal full image */
}

/* Apply background image styling universally for both pages */
body.home .elementor-6 .elementor-element-8f29e1a:not(.elementor-motion-effects-element-type-background),
body.page-id-11 .elementor-6 .elementor-element-8f29e1a:not(.elementor-motion-effects-element-type-background) {
    background-size: cover !important;
    background-position: center center !important;
}

/* Remove any lingering gradient overlay on both pages */
body.home .elementor-6 .elementor-element-8f29e1a::before,
body.page-id-11 .elementor-6 .elementor-element-8f29e1a::before {
    /* Add subtle bottom gradient overlay for hero image */
    background-image: linear-gradient(to bottom, rgba(0,0,0,0) 60%, rgba(0,0,0,0.25) 100%) !important;
}

/* Add subtle blur behind the biography text to make it readable against the background */
body.home .elementor-6 .elementor-element-2f4525a {
    background: rgba(0, 0, 0, 0.15) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    padding: 20px !important;
    border-radius: 10px !important;
}

/* Sticky / On-Scroll State */
body.home .elementor-6 .elementor-element-f2bb0dc.custom-scrolled-header {
    background: rgba(15, 15, 15, 0.9) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
}