/*
Theme Name:   Blocksy Child — LIVEAUDIO
Theme URI:    https://www.liveaudio.ro
Description:  Child theme pentru Blocksy, customizari specifice LIVEAUDIO.
Author:       LIVEAUDIO
Template:     blocksy
Version:      1.1.4
Text Domain:  blocksy-child
*/

/* ============================================================
 * CTA "Configureaza cablul / conectorul" — banner pe pagina produs
 * inainte de sectiunea "Recomandari si accesorii". Apare doar pentru
 * produsele configurator-eligibile (inc/configurator-cta.php).
 * ============================================================ */
.lac-configurator-cta {
	background: linear-gradient(135deg, #f5fbf5 0%, #fef8e7 100%);
	border: 1px solid #d5e8d5;
	border-left: 4px solid #5db95f;
	border-radius: 6px;
	padding: 20px 25px;
	margin: 30px 0 40px;
}

.lac-configurator-cta__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.lac-configurator-cta__icon {
	flex-shrink: 0;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lac-configurator-cta__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lac-configurator-cta__body {
	flex: 1;
	/* 250px tine textul langa buton pe ecran lat si forteaza trecerea pe rand nou cand nu mai
	   incape. Pe ecran ingust insa, 250px fix depasea latimea cardului si textul iesea in afara
	   chenarului (vazut pe iPhone 12 mini). `min()` pastreaza pragul si opreste depasirea. */
	min-width: min(250px, 100%);
}

.lac-configurator-cta__title {
	margin: 0 0 5px;
	font-size: 1.05em;
	color: #333;
	font-weight: 600;
	line-height: 1.3;
}

.lac-configurator-cta__sub {
	margin: 0;
	color: #555;
	font-size: 0.9em;
	line-height: 1.4;
}

.lac-configurator-cta__btn {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #5db95f;
	color: #fff !important;
	padding: 10px 22px;
	text-decoration: none !important;
	border-radius: 4px;
	font-weight: 500;
	font-size: 0.95em;
	transition: background 0.2s;
	white-space: nowrap;
}

.lac-configurator-cta__btn:hover {
	background: #fcb424;
	color: #fff !important;
}

.lac-configurator-cta__btn svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 999px) {
	.lac-configurator-cta__inner {
		flex-direction: column;
		text-align: center;
		gap: 15px;
	}
	.lac-configurator-cta__icon {
		margin-left: auto;
		margin-right: auto;
	}
}

@media (max-width: 640px) {
	.lac-configurator-cta__btn {
		width: 100%;
		justify-content: center;
	}
}

/* ============================================================
 * Fix filter mobile: In Blocksy offcanvas panel, forteaza filtrele
 * WC Blocks sa apara direct (fara pas intermediar "Filter products" button).
 * WC Blocks Product Filters afiseaza pe mobile un buton trigger care
 * deschide un overlay - dublu-tap inutil in contextul offcanvas Blocksy.
 * ============================================================ */
.ct-panel.active .wc-block-product-filters__open-overlay {
	display: none !important;
}
.ct-panel.active .wc-block-product-filters__overlay {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	background: transparent !important;
	pointer-events: auto !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
}
.ct-panel.active .wc-block-product-filters__overlay-wrapper,
.ct-panel.active .wc-block-product-filters__overlay-dialog {
	position: static !important;
	transform: none !important;
	width: 100% !important;
	max-width: none !important;
	max-height: none !important;
	height: auto !important;
	padding: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
.ct-panel.active .wc-block-product-filters__overlay-header,
.ct-panel.active .wc-block-product-filters__overlay-footer {
	display: none !important;
}
.ct-panel.active .wc-block-product-filters__overlay-content {
	padding: 0 !important;
	overflow: visible !important;
}
}

/* ============================================================
 * Preturi cu highlight portocaliu (bdi element)
 * Structura reala:
 *   <span class="price">
 *     [<del><span class="Price-amount"><bdi>OLD lei</bdi></span></del>]
 *     [<ins>]<span class="Price-amount"><bdi>CURRENT lei</bdi></span>[</ins>]
 *   </span>
 * Target: bdi (contine cifra + moneda) - background pe pretul CURENT
 * Pretul vechi (del) ramane doar taiat, fara background
 * ============================================================ */
.price .woocommerce-Price-amount > bdi {
	background-color: rgba(252, 180, 36, 0.55) !important;
	padding: 2px 8px !important;
	border-radius: 4px !important;
	font-weight: 700 !important;
	font-size: 1.08em !important;
	display: inline-block !important;
	color: #0a0500 !important;
}
.price del .woocommerce-Price-amount > bdi {
	background: transparent !important;
	color: inherit !important;
	padding: 0 !important;
	font-weight: normal !important;
	font-size: 1em !important;
}

/* Bold pentru intreg pretul (inclusiv wrapper .price) - forta bold peste Blocksy vars */
.price,
.price bdi,
.price .woocommerce-Price-currencySymbol,
.lac-search-card-price,
.lac-search-card-price bdi {
	font-weight: 700 !important;
}

/* ============================================================
 * LAC-CARD-REVEAL-START (marker pentru revert usor)
 * Fade-in + slide-up subtil pe cardurile de produs din categorii.
 * Aplicat la .product (WooCommerce loop item). Stagger delay pentru
 * efect "cascade" cand se incarca.
 * ============================================================ */
@keyframes lac-card-reveal {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}
.products.columns-1 > .product,
.products.columns-2 > .product,
.products.columns-3 > .product,
.products.columns-4 > .product,
.products.columns-5 > .product,
.products.columns-6 > .product,
ul.products > li.product {
	opacity: 0;
	animation: lac-card-reveal 0.5s ease forwards;
}
ul.products > li.product:nth-child(1) { animation-delay: 0.02s; }
ul.products > li.product:nth-child(2) { animation-delay: 0.08s; }
ul.products > li.product:nth-child(3) { animation-delay: 0.14s; }
ul.products > li.product:nth-child(4) { animation-delay: 0.20s; }
ul.products > li.product:nth-child(5) { animation-delay: 0.26s; }
ul.products > li.product:nth-child(6) { animation-delay: 0.32s; }
ul.products > li.product:nth-child(7) { animation-delay: 0.38s; }
ul.products > li.product:nth-child(8) { animation-delay: 0.44s; }
ul.products > li.product:nth-child(9) { animation-delay: 0.50s; }
ul.products > li.product:nth-child(10) { animation-delay: 0.56s; }
ul.products > li.product:nth-child(11) { animation-delay: 0.62s; }
ul.products > li.product:nth-child(12) { animation-delay: 0.68s; }
/* LAC-CARD-REVEAL-END */


/* Overlay negru 60% pe imaginea biserica din /sonorizari-biserici/ */
.elementor-11309 .elementor-element.elementor-element-99271c4 > .elementor-element-populated > .elementor-background-overlay,
.elementor-11309 .elementor-element.elementor-element-99271c4 > .elementor-widget-wrap > .elementor-background-overlay,
.elementor-11309 .elementor-element.elementor-element-99271c4 .elementor-motion-effects-layer::before {
	background-image: none !important;
	background-color: rgba(0, 0, 0, 0.6) !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
	transform: none !important;
	filter: none !important;
}

/* Overlay negru 60% pe imaginea Configurator din /despre-liveaudio/ */
.elementor-24029 .elementor-element.elementor-element-4053db2 > .elementor-element-populated > .elementor-background-overlay,
.elementor-24029 .elementor-element.elementor-element-4053db2 > .elementor-widget-wrap > .elementor-background-overlay {
	background-color: rgba(0, 0, 0, 0.6) !important;
	opacity: 1 !important;
}

/* Overlay negru 60% pe imaginea biserica cu buton contact din /proiectare-masurari-acustice/ + CTA proiecte */
.elementor-11427 .elementor-element.elementor-element-d54dbb2 > .elementor-element-populated > .elementor-background-overlay,
.elementor-11427 .elementor-element.elementor-element-d54dbb2 > .elementor-widget-wrap > .elementor-background-overlay,
.elementor-24521 .elementor-element.elementor-element-d54dbb2 > .elementor-element-populated > .elementor-background-overlay,
.elementor-24521 .elementor-element.elementor-element-d54dbb2 > .elementor-widget-wrap > .elementor-background-overlay {
	background-image: none !important;
	background-color: rgba(0, 0, 0, 0.6) !important;
	opacity: 1 !important;
}

/* Overlay negru 60% pe sectiunea "Cablu audio la comanda?" din /configurator-cabluri/ */
.elementor-11097 .elementor-element.elementor-element-e8195aa > .elementor-background-overlay {
	background-image: none !important;
	background-color: rgba(0, 0, 0, 0.6) !important;
	opacity: 1 !important;
}

/* ============================================================
 * LAC-INCHIRIERE-HERO-FIX-START (marker pentru revert)
 * Wrapper-ul Blocksy `div[data-block="hook:XXXX"]` primeste bg negru
 * pe archive product_cat (Blocksy default pe hook containers).
 * Fix: forta bg alb pe wrapper. Aplicat pe:
 *   - hook:2669  (Hero-Inchirieri-Audio)
 *   - hook:24659 (Hero-Cabluri-Confectionate)
 *   - hook:24660 (Hero-Cabluri-La-Metru)
 *   - hook:24661 (Hero-Mufe-Conectori)
 *   - hook:24662 (Hero-Sonorizare-Biserica)
 *   - hook:24663 (Hero-Boxe-Sisteme-Audio)
 * ============================================================ */
body.tax-product_cat div[data-block="hook:2669"],
body.tax-product_cat div[data-block="hook:24659"],
body.tax-product_cat div[data-block="hook:24660"],
body.tax-product_cat div[data-block="hook:24661"],
body.tax-product_cat div[data-block="hook:24662"],
body.tax-product_cat div[data-block="hook:24663"],
body.page-id-24180 div[data-block="hook:24675"] {
	background-color: #FFFFFF !important;
	position: relative;
	z-index: 2;
}
/* LAC-INCHIRIERE-HERO-FIX-END */

/* ============================================================
 * LAC-BLOCK-SHADOW-START (marker pentru revert)
 * Umbre subtile pe blocurile Elementor.
 * ============================================================ */

/* Blocuri 2-celule (col stanga text + col dreapta imagine) - shadow pe .elementor-container intern
 * (boxed la max-width), NU pe section direct (ar face shadow full-width).
 * Aplicat pe:
 *   - /sonorizari-biserici/ (page 11309, section 3a90bf8)
 *   - /proiectare-masurari-acustice/ (page 11427, section 3a90bf8) */
.elementor-11309 .elementor-element.elementor-element-3a90bf8 > .elementor-container,
.elementor-11427 .elementor-element.elementor-element-3a90bf8 > .elementor-container,
.elementor-24489 .elementor-element.elementor-element-3a90bf8 > .elementor-container,
.elementor-11097 .elementor-element.elementor-element-fb564f1 > .elementor-container,
.elementor-1127 .elementor-element.elementor-element-34b6f6b > .elementor-container,
.elementor-24705 .elementor-element.elementor-element-34b6f6b > .elementor-container,
.elementor-10978 .elementor-element.elementor-element-2124aa9 > .elementor-container,
.elementor-2748 .elementor-element.elementor-element-817422a > .elementor-container {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
	border-radius: 4px !important;
}
/* Blocuri single-celula: umbra pe .elementor-container INTERN (boxed) al section-ului b7b808a.
 * Nu pe .elementor-element-populated (are latimea section-ului stretched, ar face shadow full-width jos).
 * Aplicat pe:
 *   - Hero-Inchirieri-Audio (2669, section b7b808a)
 *   - Hero-Cabluri-Confectionate (24659, section b7b808a)
 *   - Hero-Cabluri-La-Metru (24660, section b7b808a)
 *   - Hero-Mufe-Conectori (24661, section b7b808a)
 *   - Hero-Sonorizare-Biserica (24662, section b7b808a)
 *   - Hero-Boxe-Sisteme-Audio (24663, section b7b808a) */
.elementor-2669 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24659 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24660 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24661 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24662 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24663 .elementor-element.elementor-element-b7b808a > .elementor-container,
.elementor-24675 .elementor-element.elementor-element-b7b808a > .elementor-container {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
	border-radius: 4px !important;
}
/* Hero-Proiecte-Biserici (2510) - structura diferita, col 4682fd8 e pe boxed layout deja */
.elementor-2510 .elementor-element.elementor-element-4682fd8 > .elementor-element-populated {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
	border-radius: 4px !important;
}
/* LAC-BLOCK-SHADOW-END */

/* ============================================================
 * LAC-HERO-DYNAMIC-STYLES-START (marker pentru revert)
 * Stiluri pentru H1 + descriere dinamice injectate via markeri
 * (<!--LAC_TERM_H1--> si <!--LAC_TERM_DESC-->) pe cele 5 hero-uri categorii.
 * Match cu stilul Blocksy default `.page-title` (--theme-font-size: 30px).
 * ============================================================ */
.lac-hero-title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 15px 0;
	color: var(--theme-headings-color, inherit);
}
.lac-hero-desc {
	font-size: 15px;
	line-height: 1.5;
	color: var(--theme-text-color, inherit);
}
.lac-hero-desc p {
	margin: 0;
}
.lac-hero-desc a {
	color: var(--theme-palette-color-10, #5db95f);
}
.lac-hero-desc a:hover {
	color: var(--theme-palette-color-11, #4b994d);
}
@media (max-width: 689px) {
	.lac-hero-title {
		text-align: center;
	}
	.lac-hero-desc {
		text-align: center;
	}
}
/* LAC-HERO-DYNAMIC-STYLES-END */

/* (LAC-HUB-CARD-CONFIG scos: efectul circular + b/w hover e acum in LAC-SHORTCODE-CARDS
 * pe clasa .lac-cabluri-card--config - aplicat unic prin shortcode) */

/* (LAC-HUB-CARDS-TITLE + LAC-HUB-CARDS-ALIGN scoase: hub 24180 foloseste
 * acum shortcode [lac_cabluri_cards] - stilurile sunt in LAC-SHORTCODE-CARDS) */

/* ============================================================
 * LAC-SHORTCODE-CARDS-START (marker pentru revert)
 * Shortcode [lac_cabluri_cards] - carduri standalone (nu depinde Gutenberg CSS).
 * Aceleasi stiluri vizuale ca pe pagina hub /cabluri-audio/.
 * ============================================================ */
.lac-cabluri-cards {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 30px;
	margin: 30px 0;
}
.lac-cabluri-card {
	flex: 1 1 260px;
	min-width: 220px;
	display: flex;
	flex-direction: column;
	text-align: center;
}
.lac-cabluri-card__title {
	font-size: 22px !important;
	font-weight: 700 !important;
	margin: 0 0 15px 0;
	text-align: center;
}
.lac-cabluri-card__image-wrap {
	display: block;
	margin: 0 auto 15px;
	max-width: 260px;
}
.lac-cabluri-card__image {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
.lac-cabluri-card__desc {
	flex-grow: 1;
	margin: 0 0 20px 0;
	text-align: center;
	font-size: 15px;
	line-height: 1.5;
}
.lac-cabluri-card__btn {
	display: inline-block;
	margin: 0 auto;
	padding: 10px 22px;
	background: var(--theme-palette-color-10, #5db95f);
	color: #fff !important;
	text-decoration: none !important;
	border-radius: 4px;
	font-weight: 500;
	font-size: 15px;
	transition: background 0.2s;
	margin-top: auto;
}
.lac-cabluri-card__btn:hover {
	background: var(--theme-palette-color-11, #4b994d);
}
/* Configurator: imagine cerc + b/w normal, color hover */
.lac-cabluri-card--config .lac-cabluri-card__image {
	border-radius: 50%;
	filter: grayscale(1);
	transition: filter 0.4s ease;
}
.lac-cabluri-card--config .lac-cabluri-card__image-wrap:hover .lac-cabluri-card__image {
	filter: grayscale(0);
}
/* LAC-SHORTCODE-CARDS-END */

/* ============================================================
 * LAC-PROIECTE-CARDS-START (marker pentru revert)
 * Shortcode [lac_proiecte_biserica] - carduri ultimele N proiecte sonorizare,
 * stil Blocksy card native (imagine + titlu + locatie optional).
 * ============================================================ */
.lac-proiecte-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 30px 0;
}
@media (max-width: 999px) {
	.lac-proiecte-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
	.lac-proiecte-cards { grid-template-columns: 1fr; }
}
.lac-proiect-card {
	display: flex;
	flex-direction: column;
	background: transparent;
	border: none;
	border-radius: 6px;
	overflow: hidden;
	text-decoration: none !important;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
	color: inherit;
	padding: 0;
}
.lac-proiect-card:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
	transform: translateY(-3px);
	background: #fff;
}
.lac-proiect-card__title {
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.3;
	margin: 0 0 12px 0 !important;
	color: var(--theme-headings-color, inherit);
	padding: 0 8px;
	text-align: center;
}
.lac-proiect-card__image-wrap {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f4f4f4;
	border-radius: 4px;
}
.lac-proiect-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.lac-proiect-card:hover .lac-proiect-card__image {
	transform: scale(1.05);
}
.lac-proiect-card__desc {
	font-size: 14px;
	line-height: 1.4;
	color: var(--theme-text-color, #555);
	margin: 12px 8px 0 8px !important;
}
/* LAC-PROIECTE-CARDS-END */

/* ============================================================
 * LAC-PROIECTE-BISERICI-FIX-START (marker pentru revert)
 * Fix banda neagra pe archive CPT proiect (wrapper Blocksy div[data-block]).
 * Shadow-ul pe col 4682fd8 e in LAC-BLOCK-SHADOW.
 * ============================================================ */
body.post-type-archive-proiect div[data-block="hook:2510"] {
	background-color: #FFFFFF !important;
}
/* LAC-PROIECTE-BISERICI-FIX-END */



/* ============================================================
 * LAC-WOO-ICON-CART-EMPTY-START (marker pentru revert)
 * Mesajul "Cosul tau este in prezent gol" din panoul de cos al antetului se
 * randeaza pe FIECARE pagina, iar pseudo-elementul lui :before cere fontul de
 * iconuri al temei (woo.woff2). Panoul e ascuns cu opacity + visibility:hidden,
 * NU cu display:none, iar diferenta conteaza: masurat 2026-09-14, un caracter
 * intr-un element display:none nu descarca fontul, in visibility:hidden il
 * descarca. Pe homepage astea erau SINGURELE elemente care cereau woo.woff2
 * (2 din 2), iar fisierul statea la capatul lantului critic (3,9 s in raport).
 *
 * Notificarile reale (.woocommerce-message, .woocommerce-error de pe cos si
 * checkout) NU sunt atinse: au alte clase si isi pastreaza iconul.
 * ============================================================ */
.ct-cart-content .cart-empty.woocommerce-info::before {
	content: none;
}
/* LAC-WOO-ICON-CART-EMPTY-END */
