/*
Theme Name: Your Child Theme Name (e.g., Divi Child)
Theme URI: Your Child Theme URI
Description: A child theme for Divi.
Author: Your Name
Author URI: Your Website
Template: Divi
Version: 1.0.0
*/

/* ==========================================================================
   FONTS
   ========================================================================== */

@font-face {
    font-family: 'Amalfi-Coast';
    src: url('https://weddingandpartyhire.com.au/wp-content/uploads/et-fonts/Amalfi-Coast.ttf') format('truetype');
}

/* ==========================================================================
   GLOBAL TYPOGRAPHY
   ========================================================================== */

/* Base heading sizes */
h1, .et_pb_text h1 { 
    font-size: 4em !important; 
}

h2, .et_pb_text h2, .et_pb_module h2 { 
    font-size: 3em !important; 
}

h3, .et_pb_text h3 { 
    font-size: 2em !important; 
}

h4, .et_pb_text h4 { 
    font-size: 2em !important; 
}

h5, .et_pb_text h5 { 
    font-size: 1.5em !important; 
}

h6, .et_pb_text h6 { 
    font-size: 1.25em !important; 
}

/* Override for specific text modules */
.et_pb_text h2 {
    font-size: 1.5em !important;
    text-align: center;
    color: black;
}
.woocommerce ul.products li.product a {
	color:#e4097d;
}

.woocommerce-error, .woocommerce-info, .woocommerce-message {
	color:black !important;
}
.woocommerce-info a {
	color:black;
}
/* ==========================================================================
   LAYOUT & CONTAINERS
   ========================================================================== */

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

#left-area {
    width: 100% !important;
}

#content-area {
    width: 100% !important;
    max-width: none !important;
}

/* ==========================================================================
   NAVIGATION & MENU
   ========================================================================== */

/* Menu item styling */
.et-menu-nav li.mega-menu > ul > li > a:first-child,
.et_pb_menu .et_pb_menu__menu .menu-item a {
    font-weight: 400;
}

.et-menu-nav li.mega-menu > ul > li > a:first-child {
    font-weight: 600;
}

/* Mega menu styling - FIXED VERSION */
.et-menu-nav li.mega-menu > ul {
    width: 98% !important;
    border-radius: 8px;
    box-shadow: 0 10px 30px;
    left: auto !important;
    right: 0 !important;
    transform: translateX(0) !important;
    padding: 15px 10px !important;
    overflow: visible !important;
    
    /* Table layout for equal columns */
    display: table !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.et_pb_menu .et_pb_menu__menu > nav > ul > li.mega-menu > ul li a {
    font-size: 1.2em !important;
}
ul.sub-menu {
    width: auto !important;
    min-width: max-content !important;
    max-width: max-content !important;
    background: white !important;
    padding: 10px 0 !important;
    display: table !important;
}
ul.sub-menu li {
    display: table-row !important;
    width: 100% !important;
}
ul.sub-menu li a {
    white-space: nowrap !important;
    padding: 8px 15px !important;
    display: table-cell !important;
    background: white !important;
}
/* ==========================================================================
   WOOCOMMERCE - GENERAL
   ========================================================================== */

/* Hide elements */
.woocommerce-notices-wrapper,
form.woocommerce-ordering {
    display: none;
}

/* Breadcrumbs */
.woocommerce-breadcrumb {
    margin-bottom: 30px !important;
    text-align: center !important;
    font-size: 14px !important;
    color: #666 !important;
}

/* Product count styling */
.woocommerce ul.products li.product.product-category .count,
.woocommerce ul.products li.product.product-category mark.count {
    display: none !important;
}

/* Price styling */
.woocommerce-Price-amount.amount {
    font-size: 1.4em;
    color: #e4097d;
}

.posted_in {
    color: black;
}

/* ==========================================================================
   WOOCOMMERCE - PRODUCT PAGES
   ========================================================================== */

/* Product titles */
.woocommerce div.product h1.product_title.entry-title {
    font-size: 3em !important;
    color: black !important;
}

h2.woocommerce-loop-product__title {
    color: black !important;
    font-size: 1.5em !important;
}

/* Product description */
#tab-description h2 {
    display: none;
}

/* ==========================================================================
   WOOCOMMERCE - CATEGORY PAGES
   ========================================================================== */

/* Page header */
.woocommerce-products-header {
    text-align: center !important;
    margin-bottom: 40px !important;
}

.woocommerce-products-header h1,
h1.woocommerce-products-header__title {
    font-family: 'Noto Serif', Georgia, serif !important;
    font-size: 3em !important;
    color: #e4097d !important;
    text-align: center;
    padding-bottom: 30px;
    margin-bottom: 20px !important;
}

/* Category grid layout */
.woocommerce ul.products {
    display: flex !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
    margin: 0 auto !important;
    list-style: none !important;
    width: 100% !important;
    max-width: 1200px !important;
    margin-left: 5px !important;
    margin-right: 5px !important;
}

/* Category cards */
.woocommerce ul.products li.product-category {
    flex: 1 1 220px !important;
    max-width: 250px !important;
    background: #fff !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    transition: all 0.3s ease !important;
    margin: 15px !important;
    padding: 0 !important;
    position: relative !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
}

.woocommerce ul.products li.product-category:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15) !important;
    border-color: rgba(228, 9, 125, 0.1) !important;
}

/* Category links */
.woocommerce ul.products li.product-category > a {
    display: flex !important;
    flex-direction: column !important;
    text-decoration: none !important;
    height: 100% !important;
    color: inherit !important;
    overflow: hidden !important;
}

/* Category images */
.woocommerce ul.products li.product-category img {
    width: 100% !important;
    height: 250px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.woocommerce ul.products li.product-category:hover img {
    transform: scale(1.05) !important;
    transition: transform 0.3s ease !important;
}

/* Category titles */
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title,
h2.woocommerce-loop-category__title {
    font-family: 'Quicksand', Helvetica, Arial, sans-serif !important;
    font-weight: 600 !important;
    font-size: 1.2em !important;
    color: #333 !important;
    text-align: center !important;
    padding: 7px 5px !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    background: #fff !important;
    flex-grow: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}
/* ==========================================================================
   WOOCOMMERCE - PRODUCT GRID (not categories)
   ========================================================================== */

/* Fix product grid layout on tablets */
@media (min-width: 768px) and (max-width: 1199px) {
    /* Products (not categories) - ensure consistent columns */
    .woocommerce ul.products li.product:not(.product-category) {
        flex: 0 1 calc(50% - 30px) !important;
        max-width: calc(50% - 30px) !important;
        margin: 15px !important;
        float: none !important; /* Override any float styles */
    }
}

/* Tablet Landscape - 3 columns for products */
@media (min-width: 1024px) and (max-width: 1199px) and (orientation: landscape) {
    .woocommerce ul.products li.product:not(.product-category) {
        flex: 0 1 calc(33.333% - 30px) !important;
        max-width: calc(33.333% - 30px) !important;
        margin: 15px !important;
        float: none !important;
    }
}

/* Tablet Portrait - 2 columns for products */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
    .woocommerce ul.products li.product:not(.product-category) {
        flex: 0 1 calc(50% - 30px) !important;
        max-width: calc(50% - 30px) !important;
        margin: 15px !important;
        float: none !important;
    }
}

/* Clear any WooCommerce default nth-child rules that might be causing issues */
@media (min-width: 768px) and (max-width: 1199px) {
    .woocommerce ul.products li.product:nth-child(2n+1) {
        clear: none !important;
    }
    
    .woocommerce ul.products li.product:nth-child(3n+1) {
        clear: none !important;
    }
    
    .woocommerce ul.products li.product:nth-child(4n+1) {
        clear: none !important;
    }
}
/* Remove count from category titles */
.woocommerce ul.products li.product-category h2 .count {
    display: none !important;
}

/* Category default margins */
.woocommerce ul.products li.product-category.first,
.woocommerce ul.products li.product-category.last {
    margin: 15px !important;
    padding: 0 !important;
}

/* Term descriptions */
.term-description {
    margin-bottom: 5%;
}
/*******GLOBAL STRUCTURAL LAYOUT*******/

.woocommerce {
    display: flex;
    flex-direction: column;
}

/* WooCommerce Layout Structure */
@media (min-width: 980px) {
    /* Billing Details Side */
    .woocommerce-checkout .woocommerce .col2-set,
    .woocommerce-checkout .woocommerce-page .col2-set {
        float: left;
        width: 55%;
    }
    /* Order Review Side */
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout .woocommerce #order_review,
    .woocommerce-checkout .woocommerce-page #order_review {
        float: left;
        width: 43%;
        margin-left: 2%;
    }
}

@media (max-width: 979px) {
    /* Billing Details Margin */
    .woocommerce-checkout .woocommerce .col2-set,
    .woocommerce-checkout .woocommerce-page .col2-set {
        margin-bottom: 2em;
    }
}

/*******LEFT SIDE DESIGN*******/

/* Form Container Styles */
.woocommerce-checkout .woocommerce .col2-set,
.woocommerce-checkout .woocommerce-page .col2-set {
    background: white;
    padding: 1em 2em;
    border-radius: 1em;
    border: 1px solid #e4e4e4;
}

.woocommerce .col2-set .col-1,
.woocommerce-page .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-2 {
    float: left;
    width: 100%;
}

/* Form Field Title Styles */
label,
input,
button,
select,
textarea {
    font-size: 12px;
    line-height: 1.7;
    text-transform: uppercase !important;
    font-weight: 500;
    color: var(--text-color);
    margin-bottom: 0.5em;
}

/* Form Field Styles */
input.text,
input.title,
input[type=email],
input[type=password],
input[type=tel],
input[type=text],
select,
textarea {
    border: 1px solid #d9d9d9;
    border-radius: 5px;
    background-color: white;
    height: 4em;
}

.woocommerce-account form .form-row,
.woocommerce-checkout form .form-row {
    margin-bottom: 1em;
}

/* Form Field Dropdown Styles */
.select2-container--default .select2-selection--single {
    background-color: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 5px;
    height: 4em;
}

.select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 4em;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    position: absolute;
    top: 1px;
    right: 5px;
    width: 25px;
}

.woocommerce-account form .payment_methods label,
.woocommerce-checkout form .payment_methods label {
    padding-left: 0px;
}

/* Form Field Focus Color Style */
textarea:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=time]:focus,
input[type=week]:focus,
input[type=number]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=search]:focus,
input[type=tel]:focus,
input[type=color]:focus,
.uneditable-input:focus {
    border-color: var(--primary-color) !important;
    box-shadow: none;
    outline: 0;
}

.radio input[type=radio],
.checkbox input[type=checkbox] {
    top: 0px;
}

/*******RIGHT SIDE DESIGN*******/

/* Order Review Headline Removal */
h3#order_review_heading {
    display: none; /*Remove This if You Want The Order Review Heading*/
}

/* Order Review Container Styles */
div#order_review {
    background: white;
    padding: 2em;
    border-radius: 1em;
    box-shadow: 0 0.5em 2em rgba(0, 0, 0, 0.1);
    position: sticky; /*Remove This if You Don't Want Order Review To Be Sticky*/
    top: 100px; /*Remove This if You Don't Want Order Review To Be Sticky*/
}
/*Order Review Order*/

div#order_review {
    display: flex;
    flex-direction: column; /*Change this to column-reverse to reverse the order*/
}

/*Hide Cart Contents and Only Show Total + Shipping*/

.woocommerce-checkout-review-order tbody {
  display: table-row-group; /*Set to "none" if you'd like to hide */
}

/* Remove Product and Subtotal Headlines */
table.shop_table.woocommerce-checkout-review-order-table thead {
    display: none; /*Remove This if You Want Headlines*/
}

table.shop_table.woocommerce-checkout-review-order-table {
    color: var(--text-color);
    text-transform: Capitalize;
    font-size: 14px; /*Adjust This To Adjust Order Review Font Size*/
}

.woocommerce table.shop_table {
  border: none;
}

/* Target every other cart item and set background color */
tr.cart_item:nth-child(odd) {
    background-color: #f7f8fa !important;
}

tr.cart_item:nth-child(even) {
    background-color: white !important;
}

span.woocommerce-Price-amount.amount {
    font-weight: bold;
}


strong.product-quantity {
    background: var(--primary-color-light);
    padding: 0.1em 0.5em;
    border-radius: 0.5em;
    font-size: 12px;
}

.woocommerce td.product-name .wc-item-meta p,
.woocommerce td.product-name .wc-item-meta:last-child,
.woocommerce td.product-name dl.variation p,
.woocommerce td.product-name dl.variation:last-child {
    margin-bottom: 0;
    text-transform: capitalize;
    font-size: 12px;
    font-weight: normal;
  	color: var(--text-color);
}

td.product-name {
    width: 100%;
    font-weight: bold;
}

td.product-total {
    justify-content: flex-start;
    display: flex;
}

table th,
table td {
    border: none !important;
}

tr.cart-subtotal {
    display: none; /*Remove this if you'd like to display the subtotal*/
}

tr.woocommerce-shipping-totals.shipping {
    display: flex;
    margin-top: 2em;
    margin-bottom: 2em;
    border-top: 1px solid var(--primary-color-light);
    border-bottom: 1px solid var(--primary-color-light);
    flex-direction: column;
    align-content: stretch;
    align-items: flex-start;
}

.woocommerce ul#shipping_method li input {
    margin: 5px 5px 0 0;
    vertical-align: top;
}

/* Order Total Line Item Styles */
tr.order-total {
    color: var(--primary-color);
    background-color: var(--primary-color-light);
}

#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
    background: var(--background-color);
    border-radius: 5px;
}

#add_payment_method #payment div.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
    background-color: var(----primary-color);
    color: black;
}

#add_payment_method #payment div.payment_box::before,
.woocommerce-cart #payment div.payment_box::before,
.woocommerce-checkout #payment div.payment_box::before {
    display: none;
}

/* Stripe Form Field Styles */
.wc-stripe-elements-field,
.wc-stripe-iban-element-field {
    border: 1px solid #d9d9d9;
    border-radius: 5px;
    background-color: #fff;
    padding: 15px;
}

input#wc-stripe-new-payment-method {
    margin-right: 1em;
}

fieldset#wc-authnet-cc-form .input-text {
    height: 2em;
}

/* Place Order Button Styles */
#place_order {
    width: 100%;
    color: #2b2424;
    border: none;
    box-shadow: rgba(0, 0, 0, 0.28) 0px 2px 8px 0px;
    padding: 1.5em;
    background: var(--primary-color); /* Change This to Change Button Color */
}

#place_order:hover {
    color: rgba(2, 2, 2, 0.5);
}

/*******COUPON & ALERT STYLES*******/

.woocommerce-info,
.woocommerce-message {
    background-color: var(--background-color);
    color: var(--text-color);
    border: none;
}

.checkout_coupon p.form-row.form-row-last {
    float: none;
}

.checkout_coupon button.button {
    background-color: var(--primary-color);
    color: white;
}

/* Coupon Icon */
.woocommerce-info::before,
.woocommerce-error::before {
    display: none;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    padding: 1em;
}

form.checkout_coupon.woocommerce-form-coupon {
    padding: 3em;
    background: white;
    border-radius: 1em;
    margin-top: 0em;
    margin-bottom: 2em;
}

/* Error Alert */
.woocommerce-error {
    background-color: #ff7e7e;
    border: none;
    color: #761f1f;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    text-shadow: none;
}
/* ==========================================================================
   RESPONSIVE DESIGN
   ========================================================================== */

/* Desktop Large (1200px+) */
@media (min-width: 1200px) {
    .woocommerce ul.products li.product-category {
        flex: 1 1 220px !important;
        max-width: 250px !important;
        margin: 15px !important;
    }
}

/* Tablet - Base styles for all tablets (768px - 1199px) */
@media (min-width: 768px) and (max-width: 1199px) {
    /* Center the product grid container */
    .woocommerce ul.products {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        padding: 0 20px !important;
        margin: 0 auto !important;
        width: 100% !important;
        max-width: 1200px !important;
    }
    
    /* Default 2 columns for tablets */
    .woocommerce ul.products li.product-category {
        flex: 0 1 calc(50% - 30px) !important;
        max-width: calc(50% - 30px) !important;
        margin: 15px !important;
    }
    
    .woocommerce .products.columns-4 {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }
    
    .woocommerce .products.columns-4 .product {
        width: 48% !important;
        margin-bottom: 20px !important;
    }
    
    /* Mega menu responsive - stack columns on tablet */
    .et-menu-nav li.mega-menu > ul {
        display: block !important;
    }
    
    .et-menu-nav li.mega-menu > ul > li {
        display: block !important;
        width: 100% !important;
        margin-bottom: 20px !important;
    }
}

/* Keep 2 columns for ALL portrait tablets */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
    .woocommerce ul.products li.product-category {
        flex: 0 1 calc(50% - 30px) !important;
        max-width: calc(50% - 30px) !important;
        margin: 15px !important;
    }
    
    .woocommerce ul.products li.product-category img {
        height: 240px !important;
    }
}

/* Smaller Tablets in Landscape (768-1023px wide) - 2 columns */
@media (min-width: 768px) and (max-width: 1023px) and (orientation: landscape) {
    .woocommerce ul.products li.product-category {
        flex: 0 1 calc(50% - 30px) !important;
        max-width: calc(50% - 30px) !important;
        margin: 15px !important;
    }
}

/* Standard Tablets in Landscape (1024-1199px wide) - 3 columns */
@media (min-width: 1024px) and (max-width: 1199px) and (orientation: landscape) {
    .woocommerce ul.products li.product-category {
        flex: 0 1 calc(33.333% - 30px) !important;
        max-width: calc(33.333% - 30px) !important;
        margin: 15px !important;
    }
    
    .woocommerce ul.products li.product-category img {
        height: 220px !important;
    }
}

/* Hide account icon on tablet and mobile */
@media only screen and (max-width: 980px) {
    .et_pb_menu__account-button {
        display: none !important;
    }
}

/* Mobile (max-width: 767px) */
@media only screen and (max-width: 767px) {
    /* Center the product grid container */
    .woocommerce ul.products {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        padding: 0 10px !important;
        margin: 0 auto !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Two columns on mobile */
    .woocommerce ul.products li.product-category {
        flex: 0 1 calc(50% - 20px) !important;
        max-width: calc(50% - 20px) !important;
        margin: 10px !important;
        box-sizing: border-box !important;
    }
    
    .woocommerce .products.columns-4 {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }
    
    .woocommerce .products.columns-4 .product {
        width: 100% !important;
        margin-bottom: 20px !important;
    }
    
    /* Mega menu responsive - stack on mobile */
    .et-menu-nav li.mega-menu > ul {
        display: block !important;
    }
    
    .et-menu-nav li.mega-menu > ul > li {
        display: block !important;
        width: 100% !important;
        margin-bottom: 15px !important;
    }
}

/* Mobile Medium (480-767px) */
@media (min-width: 480px) and (max-width: 767px) {
    .woocommerce ul.products li.product-category img {
        height: 220px !important;
    }
}

/* Mobile Small (max-width: 479px) - Single column */
@media (max-width: 479px) {
    .woocommerce ul.products {
        justify-content: center !important;
        padding: 0 15px !important;
    }
    
    .woocommerce ul.products li.product-category {
        flex: 0 1 100% !important;
        max-width: 350px !important;
        margin: 10px auto !important;
    }
    
    .woocommerce ul.products li.product-category img {
        height: 180px !important;
    }
    
    .woocommerce ul.products li.product-category h2.woocommerce-loop-category__title {
        font-size: 14px !important;
        padding: 15px 10px !important;
    }
    
    /* Remove any conflicting margins */
    .woocommerce ul.products li.product-category.first,
    .woocommerce ul.products li.product-category.last {
        margin: 10px auto !important;
    }
    
    /* Ensure consistent spacing */
    .woocommerce ul.products::before,
    .woocommerce ul.products::after {
        content: none !important;
        display: none !important;
    }
}
