/*
Theme Name: happy-gallery

WooCommerce styles override
*/

/**
 * Shop tables
 */
table.shop_table_responsive thead {
	display: none;
}

table.shop_table_responsive tbody th {
	display: none;
}

table.shop_table_responsive tr td {
	display: block;
	text-align: right;
	clear: both;
}

table.shop_table_responsive tr td::before {
	content: attr(data-title) ": ";
	float: left;
}

table.shop_table_responsive tr td.product-remove a {
	text-align: left;
}

table.shop_table_responsive tr td.product-remove::before {
	display: none;
}

table.shop_table_responsive tr td.actions::before,
table.shop_table_responsive tr td.download-actions::before {
	display: none;
}

table.shop_table_responsive tr td.download-actions .button {
	display: block;
	text-align: center;
}

@media screen and (min-width: 48em) {

	table.shop_table_responsive thead {
		display: table-header-group;
	}

	table.shop_table_responsive tbody th {
		display: table-cell;
	}

	table.shop_table_responsive tr th,
	table.shop_table_responsive tr td {
		text-align: left;
	}

	table.shop_table_responsive tr td {
		display: table-cell;
	}

	table.shop_table_responsive tr td::before {
		display: none;
	}
}

/**
 * Products
 */
ul.products {
	margin: 0;
	padding: 0;
}

ul.products li.product {
	list-style: none;
	position: relative;
	margin-bottom: 2em;
}

ul.products li.product img {
	display: block;
}

ul.products li.product .button {
	display: block;
}

@media screen and (min-width: 48em) {

	ul.products li.product {
		width: 30.79667%;
		float: left;
		margin-right: 3.8%;
	}

	ul.products li.product.first {
		clear: both;
	}

	ul.products li.product.last {
		margin-right: 0;
	}

	ul.products.columns-1 li.product {
		float: none;
		width: 100%;
	}

	ul.products.columns-2 li.product {
		width: 48.1%;
	}

	ul.products.columns-3 li.product {
		width: 30.79667%;
	}

	ul.products.columns-4 li.product {
		width: 22.15%;
	}

	ul.products.columns-5 li.product {
		width: 16.96%;
	}

	ul.products.columns-6 li.product {
		width: 13.49333%;
	}
}

/**
 * Single product
 */
.single-product div.product {
	position: relative;
}

.single-product div.product .woocommerce-product-gallery {
	position: relative;
	float: left;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 2em;
	right: 1em;
	display: block;
	z-index: 99;
}

.single-product div.product .woocommerce-product-gallery .flex-viewport {
	margin-bottom: 1em;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
	margin: 0;
	padding: 0;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
	list-style: none;
	cursor: pointer;
	float: left;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
	opacity: 0.5;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li:hover img {
	opacity: 1;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-2 .flex-control-thumbs li {
	width: 48.1%;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-2 .flex-control-thumbs li:nth-child(2n) {
	margin-right: 0;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-2 .flex-control-thumbs li:nth-child(2n+1) {
	clear: both;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li {
	width: 30.79667%;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n) {
	margin-right: 0;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n+1) {
	clear: both;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-4 .flex-control-thumbs li {
	width: 22.15%;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n) {
	margin-right: 0;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n+1) {
	clear: both;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-5 .flex-control-thumbs li {
	width: 16.96%;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n) {
	margin-right: 0;
}

.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n+1) {
	clear: both;
}

.stock:empty::before {
	display: none;
}

.stock.in-stock {
	color: #0f834d;
}

.stock.out-of-stock {
	color: #e2401c;
}

/**
 * Checkout
 */
@media screen and (min-width: 768px) {

	.col2-set .form-row-first {
		float: left;
		margin-right: 3.8%;
	}

	.col2-set .form-row-last {
		float: right;
		margin-right: 0;
	}

	.col2-set .form-row-first,
	.col2-set .form-row-last {
		width: 48.1%;
	}
}

/**
 * General WooCommerce components
 */

/**
 * Header cart
 */
.site-header-cart {
	position: relative;
	margin: 0;
	padding: 0;
}

.site-header-cart .cart-contents {
	text-decoration: none;
}

.site-header-cart .widget_shopping_cart {
	display: none;
}

.site-header-cart .product_list_widget {
	margin: 0;
	padding: 0;
}

/**
 * Star rating
 */
.star-rating {
	overflow: hidden;
	position: relative;
	height: 1.618em;
	line-height: 1.618;
	width: 5.3em;
	font-family: star;
	font-weight: 400;
}

.star-rating::before {
	content: "\53\53\53\53\53";
	opacity: 0.25;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
}

.star-rating span {
	overflow: hidden;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
	padding-top: 1.5em;
}

.star-rating span::before {
	content: "\53\53\53\53\53";
	top: 0;
	position: absolute;
	left: 0;
	color: #4169e1;
}

p.stars a {
	position: relative;
	height: 1em;
	width: 1em;
	text-indent: -999em;
	display: inline-block;
	text-decoration: none;
	margin-right: 1px;
	font-weight: 400;
}

p.stars a::before {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1em;
	height: 1em;
	line-height: 1;
	font-family: star;
	content: "\53";
	color: #404040;
	text-indent: 0;
	opacity: 0.25;
}

p.stars a:hover ~ a::before {
	content: "\53";
	color: #404040;
	opacity: 0.25;
}

p.stars:hover a::before {
	content: "\53";
	color: #4169e1;
	opacity: 1;
}

p.stars.selected a.active::before {
	content: "\53";
	color: #4169e1;
	opacity: 1;
}

p.stars.selected a.active ~ a::before {
	content: "\53";
	color: #404040;
	opacity: 0.25;
}

p.stars.selected a:not(.active)::before {
	content: "\53";
	color: #4169e1;
	opacity: 1;
}

/**
 * Tabs
 */
.woocommerce-tabs ul.tabs {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

.woocommerce-tabs ul.tabs li {
	display: block;
	margin: 0;
	position: relative;
}

.woocommerce-tabs ul.tabs li a {
	padding: 1em 0;
	display: block;
}

.woocommerce-tabs .panel h2:first-of-type {
	margin-bottom: 1em;
}

/**
 * Password strength meter
 */
.woocommerce-password-strength {
	text-align: right;
}

.woocommerce-password-strength.strong {
	color: #0f834d;
}

.woocommerce-password-strength.short {
	color: #e2401c;
}

.woocommerce-password-strength.bad {
	color: #e2401c;
}

.woocommerce-password-strength.good {
	color: #3d9cd2;
}

/**
 * Forms
 */
.form-row.woocommerce-validated input.input-text {
	box-shadow: inset 2px 0 0 #0f834d;
}

.form-row.woocommerce-invalid input.input-text {
	box-shadow: inset 2px 0 0 #e2401c;
}

.required {
	color: #f00;
}

/**
 * Notices
 */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background-color: #0f834d;
	clear: both;
}

.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
	background-color: #3d9cd2;
}

.woocommerce-error {
	background-color: #e2401c;
}

.demo_store {
	position: fixed;
	left: 0;
	bottom: 0;
	right: 0;
	margin: 0;
	padding: 1em;
	background-color: #3d9cd2;
	z-index: 9999;
}

@media screen and (min-width: 48em) {

	/**
	 * Header cart
	 */
	.site-header-cart .widget_shopping_cart {
		position: absolute;
		top: 100%;
		width: 100%;
		z-index: 999999;
		left: -999em;
		display: block;
		box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	}

	.site-header-cart:hover .widget_shopping_cart,
	.site-header-cart.focus .widget_shopping_cart {
		left: 0;
		display: block;
	}
}

/**
 * WooCommerce widgets
 */

/**
 * WooCommerce Price Filter
 */
.widget_price_filter .price_slider {
	margin-bottom: 1.5em;
}

.widget_price_filter .price_slider_amount {
	text-align: right;
	line-height: 2.4;
}

.widget_price_filter .price_slider_amount .button {
	float: left;
}

.widget_price_filter .ui-slider {
	position: relative;
	text-align: left;
}

.widget_price_filter .ui-slider .ui-slider-handle {
	position: absolute;
	z-index: 2;
	width: 1em;
	height: 1em;
	cursor: ew-resize;
	outline: none;
	background: #4169e1;
	box-sizing: border-box;
	margin-top: -0.25em;
	opacity: 1;
}

.widget_price_filter .ui-slider .ui-slider-handle:last-child {
	margin-left: -1em;
}

.widget_price_filter .ui-slider .ui-slider-handle:hover,
.widget_price_filter .ui-slider .ui-slider-handle.ui-state-active {
	box-shadow: 0 0 0 0.25em rgba(0, 0, 0, 0.1);
}

.widget_price_filter .ui-slider .ui-slider-range {
	position: absolute;
	z-index: 1;
	display: block;
	border: 0;
	background: #4169e1;
}

.widget_price_filter .price_slider_wrapper .ui-widget-content {
	background: rgba(0, 0, 0, 0.1);
}

.widget_price_filter .ui-slider-horizontal {
	height: 0.5em;
}

.widget_price_filter .ui-slider-horizontal .ui-slider-range {
	height: 100%;
}

/* =============================================================================
   HAPPY GALLERY — WooCommerce UI Overrides
   ============================================================================= */

/* ---- Boutons globaux ---- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .07em;
    border-radius: 0;
    background: #111;
    color: #fff;
    border: 2px solid #111;
    padding: 12px 22px;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover { background: #333; color: #fff; }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background: #E8521A;
    border-color: #111;
    color: #fff;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background: #cc4415; color: #fff; }

/* ---- Add to cart boucle produit ---- */
.woocommerce ul.products li.product .button {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    border-radius: 0;
    background: #111;
    color: #fff;
    border: 2px solid #111;
    padding: 10px 18px;
}
.woocommerce ul.products li.product .button:hover { background: #333; color: #fff; }

/* ---- Add to cart fiche produit ---- */
.single_add_to_cart_button.button.alt {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .07em;
    border-radius: 0;
    background: #E8521A;
    color: #fff;
    border: 2px solid #111;
    padding: 17px 24px;
    width: 100%;
}
.single_add_to_cart_button.button.alt:hover { background: #cc4415; color: #fff; }

/* ---- Prix ---- */
.woocommerce .price,
.woocommerce-page .price {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 900;
    color: #111;
}
.woocommerce .price del { color: #aaa; font-size: .8em; }
.woocommerce .price ins { text-decoration: none; color: #E8521A; }

/* ---- Stock ---- */
.woocommerce .in-stock { color: #3B6D11; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.woocommerce .out-of-stock { color: #E8384F; font-weight: 700; font-size: 12px; text-transform: uppercase; }

/* ---- Badges ---- */
.woocommerce span.onsale {
    background: #E8521A;
    border-radius: 0;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 900;
    letter-spacing: .06em;
    min-height: auto;
    min-width: auto;
    padding: 4px 10px;
    line-height: 1.4;
}

/* ---- Galerie produit ---- */
.woocommerce div.product div.images { float: none; width: auto; }
.woocommerce div.product div.images .flex-viewport { border: 2px solid #111; }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; height: 72px; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs li img { border: 2px solid #ddd; -webkit-filter: none; filter: none; opacity: 1; }
.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { outline: 3px solid #E8521A; border-color: #111; }

/* ---- Onglets produit ---- */
.woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom: 2px solid #111; padding: 0; margin: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: #fff; border: 2px solid #111; border-bottom: none; border-radius: 0; margin: 0 6px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: #111; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: 'Barlow Condensed', sans-serif; font-weight: 900; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: #111; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { border: 2px solid #111; border-top: none; padding: 24px; margin: 0; }

/* ---- Variations ---- */
.woocommerce div.product form.cart .variations select { border-radius: 0; border: 2px solid #111; font-family: 'Barlow', sans-serif; font-size: 14px; padding: 10px 14px; -webkit-appearance: none; }

/* ---- Quantity input ---- */
.woocommerce .quantity { display: flex; align-items: center; }
.woocommerce .quantity input.qty { border-radius: 0; border: 2px solid #111; font-family: 'Barlow Condensed', sans-serif; font-size: 16px; font-weight: 900; text-align: center; padding: 8px 6px; width: 60px; -moz-appearance: textfield; }
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; }

/* ---- Panier — bouton retirer ---- */
.woocommerce-cart-form .product-remove a.remove { color: #bbb !important; font-size: 20px; font-weight: 900; background: transparent; border-radius: 0; width: auto; height: auto; }
.woocommerce-cart-form .product-remove a.remove:hover { color: #111 !important; background: transparent; }

/* ---- Messages / Notices ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error { border-top: 3px solid #E8521A; border-radius: 0; font-size: 14px; }
.woocommerce-info { border-top-color: #111; }
.woocommerce-error { border-top-color: #E8384F; }
.woocommerce-message::before { color: #E8521A; }
.woocommerce-error::before   { color: #E8384F; }

/* ---- Filtre prix widget ---- */
.widget_price_filter .ui-slider .ui-slider-range { background: #E8521A; }
.widget_price_filter .ui-slider-horizontal .ui-slider-handle { background: #111; border-radius: 0; width: 16px; height: 16px; }

/* ---- Layered nav ---- */
.widget_layered_nav ul li { padding: 6px 0; border-bottom: 1px solid #eee; }
.widget_layered_nav ul li a { font-size: 13px; font-weight: 700; color: #111; }
.widget_layered_nav ul li a:hover,
.widget_layered_nav ul li.chosen a { color: #E8521A; }
.widget_layered_nav ul li .count { color: #aaa; font-size: 11px; }

/* ---- Pagination ---- */
.woocommerce nav.woocommerce-pagination ul { border: 2px solid #111; border-right: none; }
.woocommerce nav.woocommerce-pagination ul li { border-right: 2px solid #111; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { font-family: 'Barlow Condensed', sans-serif; font-weight: 900; font-size: 15px; color: #111; padding: 10px 16px; }
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: #E8521A; color: #fff; }

/* ---- Ordering select ---- */
.woocommerce-ordering select { border-radius: 0; border: 2px solid #111; font-family: 'Barlow Condensed', sans-serif; font-weight: 900; font-size: 14px; padding: 8px 36px 8px 12px; -webkit-appearance: none; }

/* ---- Checkout — titres de sections ---- */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 900; text-transform: uppercase; border-bottom: 2px solid #111; padding-bottom: 10px; margin-bottom: 0; }

/* ---- Checkout — order review table ---- */
.woocommerce-checkout-review-order-table { border-collapse: collapse; width: 100%; font-size: 13px; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 10px 0; border-bottom: 1px solid #eee; }
.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout-review-order-table tfoot th { border-top: 2px solid #111; font-weight: 700; }
.woocommerce-checkout-review-order-table tfoot .order-total td,
.woocommerce-checkout-review-order-table tfoot .order-total th { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 900; }

/* ---- Checkout — méthodes de paiement ---- */
#payment .payment_methods { list-style: none; padding: 0; margin: 0 0 16px; }
#payment .payment_methods li { border: 2px solid #111; padding: 14px 16px; margin-bottom: -2px; position: relative; }
#payment .payment_methods li label { font-family: 'Barlow', sans-serif; font-weight: 700; font-size: 14px; cursor: pointer; }
#payment .payment_methods li input[type="radio"] { accent-color: #E8521A; margin-right: 8px; }
#payment .payment_methods li .payment_box { padding: 10px 0 2px 22px; font-size: 13px; color: #666; }
#payment .place-order { margin-top: 16px; }
#payment #place_order { display: block; width: 100%; background: #E8521A; color: #fff; font-family: 'Barlow Condensed', sans-serif; font-size: 21px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; padding: 19px; border: 2px solid #111; cursor: pointer; text-align: center; border-radius: 0; }
#payment #place_order:hover { background: #cc4415; }

/* ---- Thankyou — tableau ---- */
.woocommerce-order-details .woocommerce-table { border-collapse: collapse; width: 100%; }
.woocommerce-order-details .woocommerce-table th,
.woocommerce-order-details .woocommerce-table td { padding: 12px; border: 1px solid #eee; font-size: 13px; }
.woocommerce-order-details .woocommerce-table tfoot td,
.woocommerce-order-details .woocommerce-table tfoot th { font-weight: 700; background: #f9f9f9; }
