/*!
Theme Name: weddingbells
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: weddingbells
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

weddingbells is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/*--------------------------------------------------------------
# Shop AJAX Loading
--------------------------------------------------------------*/
.products-container {
    position: relative;
    transition: opacity 0.3s ease;
}

.products-container.loading {
    opacity: 0.5;
    pointer-events: none;
}

.products-container.loading::after {
    content: "";
    position: absolute;
    top: 100px;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: 0 0 0 -20px;
    border: 3px solid rgba(201, 150, 102, 0.2);
    border-top-color: #c96;
    border-radius: 50%;
    animation: wb-spin 0.8s linear infinite;
    z-index: 10;
}

@keyframes wb-spin {
    to { transform: rotate(360deg); }
}

/* --- Single Product Custom Styles --- */

/* 1. Gallery Vertical */
.product-gallery-vertical .row {
    margin-left: -10px;
    margin-right: -10px;
    display: flex;
}

.product-main-image {
    position: relative;
    margin-bottom: 20px;
    flex: 0 0 80%;
    max-width: 80%;
    padding-left: 10px;
    padding-right: 10px;
}

.product-image-gallery {
    flex: 0 0 20%;
    max-width: 20%;
    padding-left: 10px;
    padding-right: 10px;
    display: flex;
    flex-direction: column;
}

.product-gallery-item {
    display: block;
    margin-bottom: 10px;
    border: 1px solid #ebebeb;
    transition: border-color 0.3s;
}

.product-gallery-item:hover, .product-gallery-item.active {
    border-color: #c96;
}

.product-gallery-item img {
    max-width: 100%;
    height: auto;
    display: block;
}

.btn-product-gallery {
    position: absolute;
    right: 30px;
    bottom: 20px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
    color: #333;
    z-index: 10;
}

/* 2. Product Details */
.product-details .product-title {
    font-weight: 400;
    font-size: 2.8rem;
    letter-spacing: -.025em;
    margin-bottom: 1rem;
    color: #333;
}

.product-details .product-price {
    font-weight: 400;
    font-size: 2.4rem;
    color: #c96;
    margin-bottom: 2rem;
}

.product-details .product-content {
    margin-bottom: 2.5rem;
    color: #777;
    line-height: 1.6;
}

.product-details .product-details-action {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #ebebeb;
}

.product-details .details-action-wrapper {
    display: flex;
    align-items: center;
    margin-left: 2rem;
}

.product-details .btn-cart {
    min-width: 198px;
    height: 46px;
    background-color: #c96;
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    font-weight: 400;
    transition: all 0.3s;
}

.product-details .btn-cart:hover {
    background-color: #333;
}

.product-details .product-details-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid #ebebeb;
    font-size: 1.4rem;
}

.product-details .product-cat {
    margin-right: auto;
    color: #999;
}

.product-details .product-cat span { color: #333; margin-right: 0.5rem; }

/* 3. Sticky Bar */
.sticky-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fff;
    box-shadow: 0 -5px 20px rgba(0,0,0,0.05);
    padding: 1.2rem 0;
    z-index: 1000;
    transform: translateY(100%);
    transition: transform 0.35s;
}

.sticky-bar.show {
    transform: translateY(0);
}

.sticky-bar .product-media {
    display: inline-block;
    vertical-align: middle;
    margin-right: 2rem;
    width: 50px;
    margin-bottom: 0;
}

.sticky-bar .product-title {
    display: inline-block;
    vertical-align: middle;
    font-size: 1.6rem;
    margin-bottom: 0;
    color: #333;
}

.sticky-bar .product-price {
    display: inline-block;
    vertical-align: middle;
    margin-right: 3rem;
    font-size: 1.8rem;
    color: #c96;
}

.sticky-bar .product-details-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.sticky-bar .btn-cart {
    min-width: 140px;
    height: 40px;
    background-color: #c96;
    color: #fff;
    text-transform: uppercase;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 1.5rem;
}

/* 4. Product Pager (Prev/Next) */
.product-pager {
    display: flex;
    align-items: center;
}

.product-pager-link {
    display: flex;
    align-items: center;
    color: #999;
    font-size: 1.2rem;
    text-transform: uppercase;
    transition: color 0.3s;
    margin-left: 1.5rem;
}

.product-pager-link:hover {
    color: #c96;
    text-decoration: none;
}

.product-pager-link i {
    font-size: 1.6rem;
}

.product-pager-prev i { margin-right: 0.5rem; }
.product-pager-next i { margin-left: 0.5rem; }

/* 5. Tabs Customization */
.product-details-tab {
    margin-top: 5rem;
    margin-bottom: 5rem;
}

.woocommerce-tabs ul.tabs {
    list-style: none;
    padding: 0;
    margin: 0 0 3rem;
    display: flex;
    justify-content: center;
    border-bottom: 1px solid #ebebeb;
}

.woocommerce-tabs ul.tabs li {
    margin: 0 2.5rem;
}

.woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 1.2rem 0;
    font-size: 1.6rem;
    font-weight: 400;
    color: #999;
    border-bottom: 2px solid transparent;
    text-decoration: none;
}

.woocommerce-tabs ul.tabs li.active a {
    color: #c96;
    border-bottom-color: #c96;
}

.woocommerce-Tabs-panel {
    padding: 2rem 0;
    color: #777;
    line-height: 1.7;
}

.woocommerce-Tabs-panel h2 { display: none; }

/* --- WooCommerce Product Card Standardization (Square Images) --- */
.product .product-media,
.product-card .product-image,
.product-card .product-media,
.product-image-container,
.product-media {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    margin-bottom: 0 !important;
    background-color: #f4f4f4 !important;
}

.product-media > a,
.product-image-container > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}

.product-media img,
.product-image img,
img.product-image,
img.product-image-hover {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    max-width: none !important;
    margin: 0 !important;
    display: block !important;
}

.product-media .product-image-hover {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    opacity: 0 !important;
    transition: opacity 0.4s ease !important;
}

.product:hover .product-image-hover {
    opacity: 1 !important;
}

/* Exclude Single Product Main Gallery from Square Layout */
.single-product .product-main-image,
.single-product .product-image-gallery,
.single-product .woocommerce-product-gallery__image {
    aspect-ratio: auto !important;
}

.single-product .product-main-image img,
.single-product .woocommerce-product-gallery__image img {
    height: auto !important;
    object-fit: contain !important;
}
