/**
 * Theme Name:     Astra Child
 * Author:         Brainstorm Force
 * Template:       astra
 * Text Domain:	   astra-child
 * Description:    The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
 */

 /* Child Theme Additional Styles */

/* Ensure footer is fixed at bottom */
.ast-page-builder-template .site-content {
    padding-bottom: 100px !important;
}

/* Override Astra footer for builder page */
.page-template-bifold-door-builder .site-footer {
    display: none !important;
}

/* Custom button styles */
.design-your-door-btn {
    background: #2e7d32 !important;
    color: #fff !important;
    padding: 15px 30px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: none !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.design-your-door-btn:hover {
    background: #1b5B20 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1) !important;
}

/* Builder specific overrides */
.door-builder-form input:focus,
.door-builder-form select:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(203, 191, 169, 0.3) !important;
}

/* Animation for step transitions */
.wizard-step {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.wizard-step.active {
    opacity: 1;
    transform: translateY(0);
}

/* Progress bar (optional) */
.progress-bar {
    height: 6px;
    background: #eee;
    border-radius: 3px;
    margin: 30px 0;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: #cbbfa9;
    border-radius: 3px;
    width: 20%;
    transition: width 0.5s ease;
}

/* Tooltip styles */
.tooltip {
    position: relative;
    display: inline-block;
}

.tooltip .tooltiptext {
    visibility: hidden;
    width: 200px;
    background-color: #333;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 10px;
    position: absolute;
    z-index: 1;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    transition: opacity 0.3s;
    font-size: 12px;
}

.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}


.step-title {
    margin-bottom: 40px;
    max-width: 1000px;
}

/* Responsive tweaks */
@media (max-width: 768px) {
    .builder-hero h1 {
        font-size: 22px !important;
    }
    
    .price-summary-box {
        position: relative !important;
        margin-top: 30px !important;
        width: 100% !important;
    }
    
    .builder-footer-fixed {
        padding: 15px 20px !important;
    }
    
    .footer-total {
        font-size: 20px !important;
    }
}

/* Print styles */
@media print {
    .builder-footer-fixed,
    .builder-nav,
    .price-summary-box {
        display: none !important;
    }
}

/* Hide variation dropdown on single product page */
.single-product form.variations_form {
    display: none !important;
}

/* Hide WooCommerce product tabs */
.single-product .woocommerce-tabs {
    display: none !important;
}

/* Header Icons Cursor Pointer & Hover Feedback */
.elementor-element-bbb6e3c,
.elementor-element-bbb6e3c *,
.elementor-element-fe0a1fb,
.elementor-element-fe0a1fb *,
.elementor-element-087ce89,
.elementor-element-087ce89 *,
.elementor-element-655b658,
.elementor-element-655b658 *,
.elementor-element-2f8626b,
.elementor-element-2f8626b *,
.elementor-element-8e258cb,
.elementor-element-8e258cb *,
.fa-user,
.fa-search,
.fa-shopping-bag,
a:has(.fa-user),
a:has(.fa-search),
a:has(.fa-shopping-bag) {
    cursor: pointer !important;
}

.elementor-element-bbb6e3c:hover,
.elementor-element-fe0a1fb:hover,
.elementor-element-087ce89:hover,
.elementor-element-655b658:hover,
.elementor-element-2f8626b:hover,
.elementor-element-8e258cb:hover {
    transform: translateY(-2px) scale(1.08) !important;
}

.elementor-element-bbb6e3c:hover i,
.elementor-element-fe0a1fb:hover i,
.elementor-element-087ce89:hover i,
.elementor-element-655b658:hover i,
.elementor-element-2f8626b:hover i,
.elementor-element-8e258cb:hover i {
    color: #0CBB07 !important;
    transition: color 0.2s ease;
}

/* Global WooCommerce Payment Gateway Dark Theme */
#payment,
.wc_payment_methods {
    background: transparent !important;
    border: none !important;
}

ul.wc_payment_methods {
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
    list-style: none !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

li.wc_payment_method {
    background: #0f1317 !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}

li.wc_payment_method > label {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 16px 20px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}

.payment_box,
div.payment_box {
    background: #090c0f !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 20px 24px !important;
    color: #cbd5e1 !important;
}

.payment_box::before,
.payment_box::after {
    display: none !important;
}

.woocommerce-stripe-test-mode-info,
.payment_box .woocommerce-stripe-test-mode-info {
    background: rgba(12, 187, 7, 0.08) !important;
    border: 1px solid rgba(12, 187, 7, 0.3) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    color: #86efac !important;
    -webkit-text-fill-color: #86efac !important;
}

/* ==========================================================================
   WOOCOMMERCE CART PAGE & EMPTY CART STYLING
   ========================================================================== */
body.woocommerce-cart,
body.woocommerce-cart .site,
body.woocommerce-cart #page,
body.woocommerce-cart .site-content,
body.woocommerce-cart #content,
body.woocommerce-cart .ast-container,
body.woocommerce-cart #primary,
body.woocommerce-cart #main,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .woocommerce {
    background-color: #0d1013 !important;
    background: #0d1013 !important;
    color: #ffffff !important;
}

body.woocommerce-cart .entry-title,
body.woocommerce-cart h1.page-title,
body.woocommerce-cart .ast-single-post-order {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Hide default blue top border on cart empty notice */
body.woocommerce-cart .cart-empty.woocommerce-info {
    display: none !important;
}

/* Empty Cart Card */
.ff-empty-cart-card {
    background: #14181d;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px;
    padding: 60px 32px;
    text-align: center;
    max-width: 680px;
    margin: 40px auto 80px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.ff-empty-cart-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(12, 187, 7, 0.1);
    border: 1px solid rgba(12, 187, 7, 0.3);
    color: #0CBB07;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}

.ff-empty-cart-icon svg {
    width: 40px;
    height: 40px;
}

.ff-empty-cart-title {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 26px;
    font-weight: 800;
    margin: 0 0 14px;
    letter-spacing: -0.3px;
}

.ff-empty-cart-desc {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 15px;
    max-width: 520px;
    margin: 0 0 32px;
    line-height: 1.6;
}

.ff-empty-cart-action {
    display: flex;
    justify-content: center;
}

.ff-empty-cart-btn,
body.woocommerce-cart .return-to-shop a.button,
body.woocommerce-cart .button.wc-backward,
body.woocommerce-cart a.button {
    background: #0CBB07 !important;
    background: linear-gradient(135deg, #0CBB07 0%, #099405 100%) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    padding: 14px 32px !important;
    border-radius: 12px !important;
    border: none !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    box-shadow: 0 6px 20px rgba(12, 187, 7, 0.4) !important;
    transition: all 0.25s ease !important;
    cursor: pointer !important;
    text-shadow: none !important;
}

.ff-empty-cart-btn:hover,
body.woocommerce-cart .return-to-shop a.button:hover,
body.woocommerce-cart .button.wc-backward:hover,
body.woocommerce-cart a.button:hover {
    background: linear-gradient(135deg, #10e609 0%, #0CBB07 100%) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 30px rgba(12, 187, 7, 0.55) !important;
}

/* ==========================================================================
   FastFold UK - About Us Page Styles
   ========================================================================== */
.page-id-32 .ast-article-single,
.page-id-32 .entry-content,
.page-id-32 .site-content {
    background-color: #0c0e12 !important;
}

.ff-about-wrapper {
    color: #ffffff;
    font-family: 'Jost', 'Poppins', sans-serif;
}

.ff-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(12, 187, 7, 0.12);
    border: 1px solid rgba(12, 187, 7, 0.4);
    color: #0CBB07;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 50px;
    margin-bottom: 18px;
}

.ff-highlight-green {
    color: #0CBB07 !important;
}

.ff-dark-card {
    background: #12151b !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 16px !important;
    padding: 36px !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative;
    overflow: hidden;
}

.ff-dark-card:hover {
    border-color: rgba(12, 187, 7, 0.4) !important;
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4), 0 0 20px rgba(12, 187, 7, 0.1) !important;
}

.ff-icon-card {
    background: #141820 !important;
    border: 1px solid rgba(255, 255, 255, 0.07) !important;
    border-radius: 14px !important;
    padding: 24px 20px !important;
    text-align: center;
    transition: all 0.3s ease !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.ff-icon-card:hover {
    background: #181d26 !important;
    border-color: #0CBB07 !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3) !important;
}

.ff-icon-box-icon {
    font-size: 32px;
    color: #0CBB07;
    margin-bottom: 14px;
    transition: transform 0.3s ease;
}

.ff-icon-card:hover .ff-icon-box-icon {
    transform: scale(1.15);
}

.ff-icon-card-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    margin: 0 !important;
}

.ff-product-pill,
a.ff-product-pill {
    background: #141820 !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 12px !important;
    padding: 16px 18px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: all 0.25s ease !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.ff-product-pill span,
.ff-product-pill i {
    color: #ffffff !important;
    font-size: 15px !important;
    text-decoration: none !important;
}

.ff-product-pill i.ff-highlight-green {
    color: #0CBB07 !important;
    font-size: 18px !important;
    flex-shrink: 0 !important;
}

.ff-product-pill:hover,
a.ff-product-pill:hover {
    background: #1a202c !important;
    border-color: #0CBB07 !important;
    color: #0CBB07 !important;
    -webkit-text-fill-color: #0CBB07 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35) !important;
}

.ff-product-pill:hover span {
    color: #0CBB07 !important;
    -webkit-text-fill-color: #0CBB07 !important;
}

/* Reset Elementor heading overrides inside range section */
.elementor-widget-heading .elementor-heading-title:has(.ff-product-pill),
.elementor-widget-heading:has(.ff-product-pill) .elementor-heading-title,
h2.elementor-heading-title:has(.ff-product-pill) {
    font-size: 15px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

.elementor-widget-heading:has(.ff-product-pill) a {
    text-decoration: none !important;
}

.ff-btn-green {
    background: #0CBB07 !important;
    background: linear-gradient(135deg, #0CBB07 0%, #099405 100%) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    padding: 15px 32px !important;
    border-radius: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
}

.ff-btn-green:hover {
    background: linear-gradient(135deg, #10e609 0%, #0CBB07 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(12, 187, 7, 0.45) !important;
    color: #ffffff !important;
}

.ff-btn-outline {
    background: transparent !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    padding: 14px 30px !important;
    border-radius: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: 2px solid rgba(255, 255, 255, 0.25) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
}

.ff-btn-outline:hover {
    border-color: #0CBB07 !important;
    color: #0CBB07 !important;
    background: rgba(12, 187, 7, 0.08) !important;
}

.ff-feature-tag {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #E2E8F0;
    font-size: 13.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 8px;
    letter-spacing: 0.3px;
    transition: all 0.25s ease;
}

.ff-feature-tag:hover {
    background: rgba(12, 187, 7, 0.1);
    border-color: rgba(12, 187, 7, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .ff-dark-card {
        padding: 24px 18px !important;
    }
}