/* ==========================================================
   Energex – catalogue (products + category pages)
   Uses the tokens defined in egx-home.css
   ========================================================== */

/* ---------- Page header ---------- */
.egx-shop-hero {
	background:
		radial-gradient(900px 300px at 85% 0%, rgba(246,100,10,.14), transparent 60%),
		radial-gradient(700px 260px at 0% 100%, rgba(78,155,84,.18), transparent 60%),
		var(--egx-ink);
	padding: 56px 0 52px;
	color: #fff;
}
.egx-shop-hero h1 { color: #fff; font-size: clamp(30px, 4vw, 46px); font-weight: 600; line-height: 1.1; margin: 14px 0 12px; }
.egx-shop-hero p { color: rgba(255,255,255,.75); font-size: 17px; max-width: 720px; }
.egx-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: rgba(255,255,255,.55); }
.egx-crumbs a { color: rgba(255,255,255,.75); }
.egx-crumbs a:hover { color: var(--egx-orange); }
.egx-crumbs [aria-current] { color: #fff; }

/* ---------- Layout ---------- */
.egx-shop__layout {
	display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 40px;
	padding-top: 40px; padding-bottom: 88px; align-items: start;
}

/* ---------- Filters ---------- */
.egx-filters { position: sticky; top: 24px; }
.egx-filters__form { display: flex; flex-direction: column; gap: 22px; }
.egx-filters__head { display: none; align-items: center; justify-content: space-between; }
.egx-filters__head h2 { font-size: 20px; font-weight: 600; }
.egx-filters__close { background: none; border: 0; padding: 6px; font-size: 22px; color: var(--egx-ink); cursor: pointer; line-height: 0; }

.egx-search { position: relative; }
.egx-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--egx-muted); font-size: 18px; }
.egx-search input[type="search"] {
	width: 100%; height: 48px; padding: 0 14px 0 42px !important;
	border: 1.5px solid var(--egx-line) !important; border-radius: 10px !important;
	background: #fff; font-size: 15px; color: var(--egx-ink); box-shadow: none !important;
}
.egx-search input[type="search"]:focus { border-color: var(--egx-green) !important; outline: none; }

.egx-filters__block { background: #fff; border: 1px solid var(--egx-line); border-radius: var(--egx-radius); padding: 20px 18px 14px; }
.egx-filters__title { display: flex; align-items: center; justify-content: space-between; }
.egx-filters__title h3 { font-size: 16px; font-weight: 600; }
.egx-clear { font-size: 13px; font-weight: 600; color: var(--egx-orange); }
.egx-filters__hint { font-size: 13px; color: var(--egx-muted); margin: 4px 0 12px !important; }

.egx-tree { list-style: none; margin: 0; padding: 0; }
.egx-tree .egx-tree { padding-left: 26px; display: none; }
.egx-tree__item.is-open > .egx-tree { display: block; }
.egx-tree__item { margin: 0; }
.egx-tree__row { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.egx-tree__toggle {
	flex: none; width: 28px; height: 28px; border: 0; border-radius: 6px; background: transparent;
	color: var(--egx-muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
}
.egx-tree__toggle:hover { background: var(--egx-tint); color: var(--egx-ink); }
.egx-tree__toggle svg { width: 16px; height: 16px; transition: transform .2s; }
.egx-tree__item.is-open > .egx-tree__row .egx-tree__toggle svg { transform: rotate(180deg); }

.egx-check { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; padding: 7px 0; cursor: pointer; margin: 0; font-size: 15px; color: var(--egx-text); }
.egx-check input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.egx-check__box {
	flex: none; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid #C4CBC6; background: #fff;
	display: inline-flex; align-items: center; justify-content: center; transition: background .15s, border-color .15s;
}
.egx-check__box::after {
	content: ""; width: 10px; height: 6px; border-left: 2px solid #fff; border-bottom: 2px solid #fff;
	transform: rotate(-45deg) translate(1px, -1px); opacity: 0;
}
.egx-check input:checked + .egx-check__box { background: var(--egx-orange); border-color: var(--egx-orange); }
.egx-check input:checked + .egx-check__box::after { opacity: 1; }
.egx-check input:focus-visible + .egx-check__box { box-shadow: 0 0 0 3px rgba(246,100,10,.25); }
.egx-check:hover .egx-check__box { border-color: var(--egx-orange); }
.egx-check__label { flex: 1; min-width: 0; line-height: 1.35; }
.egx-check input:checked ~ .egx-check__label { color: var(--egx-ink); font-weight: 600; }
.egx-check__count { font-size: 12px; color: var(--egx-muted); background: var(--egx-tint); border-radius: 99px; padding: 2px 8px; }

.egx-filters__actions { display: none; }
.egx-btn--block { width: 100%; }
.egx-btn--outline { background: #fff; border-color: var(--egx-line); color: var(--egx-ink) !important; }
.egx-btn--outline:hover { border-color: var(--egx-ink); }
.egx-btn--wa-solid { background: #25D366; color: #fff !important; }
.egx-btn--wa-solid:hover { background: #1EBE5A; }
.egx-btn--wa-solid svg { width: 20px; height: 20px; }

.egx-help { background: var(--egx-tint); border-radius: var(--egx-radius); padding: 22px 20px; }
.egx-help strong { display: block; color: var(--egx-ink); font-size: 16px; margin-bottom: 6px; }
.egx-help p { font-size: 14px; color: var(--egx-muted); margin-bottom: 16px !important; }

.egx-filters__backdrop { display: none; }

/* ---------- Toolbar ---------- */
.egx-toolbar { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.egx-filters__open { display: none; height: 44px; padding: 0 16px; }
.egx-filters__open svg { width: 18px; height: 18px; }
.egx-badge { background: var(--egx-orange); color: #fff; border-radius: 99px; font-size: 12px; min-width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; }
.egx-count { font-size: 15px; color: var(--egx-muted); margin-right: auto !important; }
.egx-count strong { color: var(--egx-ink); }
.egx-sort { display: flex; align-items: center; gap: 10px; margin: 0; }
.egx-sort label { font-size: 14px; color: var(--egx-muted); margin: 0; white-space: nowrap; }
.egx-sort select {
	height: 44px; min-width: 190px; padding: 0 36px 0 14px !important; border: 1.5px solid var(--egx-line) !important;
	border-radius: 10px !important; background-color: #fff; font-size: 14px; color: var(--egx-ink); cursor: pointer;
}

.egx-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.egx-chip {
	display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px 0 14px; border-radius: 99px;
	background: rgba(246,100,10,.1); color: var(--egx-orange-dark) !important; font-size: 13px; font-weight: 600;
}
.egx-chip svg { width: 14px; height: 14px; }
.egx-chip:hover { background: rgba(246,100,10,.18); }
.egx-chip--clear { background: transparent; color: var(--egx-muted) !important; text-decoration: underline !important; }

/* ---------- Product grid ---------- */
.egx-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.egx-card {
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--egx-line); border-radius: var(--egx-radius);
	overflow: hidden; transition: box-shadow .25s, transform .25s, border-color .25s;
}
.egx-card:hover { box-shadow: var(--egx-shadow); transform: translateY(-3px); border-color: transparent; }
.egx-card__media { position: relative; display: block; aspect-ratio: 1 / 1; background: #fff; padding: 22px; }
.egx-card__media img { width: 100% !important; height: 100% !important; object-fit: contain; transition: transform .5s; }
.egx-card:hover .egx-card__media img { transform: scale(1.04); }
.egx-card__flag { position: absolute; top: 14px; left: 14px; z-index: 1; background: var(--egx-orange); color: #fff; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 99px; }
.egx-card__body { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 18px; border-top: 1px solid var(--egx-line); }
.egx-card__cat { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--egx-green); }
.egx-card__title { font-size: 16px !important; font-weight: 600 !important; line-height: 1.35 !important; margin: 6px 0 4px !important; }
.egx-card__title a { color: var(--egx-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.egx-card__title a:hover { color: var(--egx-orange); }
.egx-card__sku { font-size: 13px; color: var(--egx-muted); }
.egx-card__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; }
.egx-card__price { font-size: 16px; font-weight: 600; color: var(--egx-ink); line-height: 1.3; }
.egx-card__price del { display: block; font-size: 13px; font-weight: 400; color: var(--egx-muted); }
.egx-card__price ins { text-decoration: none; color: var(--egx-ink); }
.egx-card__price .screen-reader-text { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }
.egx-card__poa { font-size: 14px; color: var(--egx-muted); font-weight: 500; }
.egx-card__actions { display: flex; gap: 8px; }
.egx-iconbtn {
	width: 40px; height: 40px; border-radius: 10px; border: 1.5px solid var(--egx-line);
	display: inline-flex; align-items: center; justify-content: center; color: var(--egx-ink) !important; transition: all .2s;
}
.egx-iconbtn svg { width: 18px; height: 18px; }
.egx-iconbtn:hover { background: var(--egx-ink); border-color: var(--egx-ink); color: #fff !important; }
.egx-iconbtn--wa { color: #1EBE5A !important; }
.egx-iconbtn--wa:hover { background: #25D366; border-color: #25D366; color: #fff !important; }

/* ---------- Pagination ---------- */
.egx-pager { display: flex; justify-content: center; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.egx-pager a, .egx-pager__gap {
	min-width: 44px; height: 44px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center;
	font-weight: 600; font-size: 15px; color: var(--egx-ink);
}
.egx-pager a { border: 1.5px solid var(--egx-line); }
.egx-pager a:hover { border-color: var(--egx-ink); }
.egx-pager a.is-current { background: var(--egx-orange); border-color: var(--egx-orange); color: #fff; }

/* ---------- Empty ---------- */
.egx-empty { text-align: center; padding: 72px 24px; border: 1.5px dashed var(--egx-line); border-radius: var(--egx-radius); }
.egx-empty h3 { font-size: 22px; font-weight: 600; margin-bottom: 8px; }
.egx-empty p { color: var(--egx-muted); }
.egx-empty__btns { display: flex; gap: 12px; justify-content: center; margin-top: 24px; flex-wrap: wrap; }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
	.egx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.egx-shop__layout { grid-template-columns: 1fr; padding-top: 24px; }
	.egx-filters__open { display: inline-flex; }
	.egx-filters {
		position: fixed; top: 0; left: 0; bottom: 0; z-index: 100000; width: min(360px, 88vw);
		background: #fff; overflow-y: auto; padding: 20px; transform: translateX(-105%); transition: transform .3s ease;
		box-shadow: 0 0 40px rgba(0,0,0,.2);
	}
	.egx-filters__head { display: flex; }
	.egx-filters__actions { display: block; position: sticky; bottom: -20px; background: #fff; padding: 12px 0 20px; margin-bottom: -20px; }
	body.egx-filters-open .egx-filters { transform: none; }
	.egx-filters__backdrop { position: fixed; inset: 0; background: rgba(10,14,12,.5); z-index: 99999; }
	body.egx-filters-open .egx-filters__backdrop { display: block; }
	body.egx-filters-open { overflow: hidden; }
	.egx-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.egx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 640px) {
	.egx-shop-hero { padding: 36px 0 32px; }
	.egx-shop-hero p { font-size: 15px; }
	.egx-toolbar { flex-wrap: wrap; gap: 10px; }
	.egx-count { order: 3; width: 100%; }
	.egx-sort { margin-left: auto; }
	.egx-sort label { display: none; }
	.egx-sort select { min-width: 0; width: 170px; }
	.egx-card__media { padding: 12px; }
	.egx-card__body { padding: 12px; }
	.egx-card__title { font-size: 14px !important; }
	.egx-card__cat, .egx-card__sku { font-size: 11px; }
	.egx-card__foot { flex-direction: column; align-items: stretch; }
	.egx-card__actions .egx-iconbtn { flex: 1; height: 38px; }
}

/* ==========================================================
   Project detail
   ========================================================== */
.egx-phero--single .egx-phero__inner { padding-top: 72px; padding-bottom: 64px; }
.egx-phero--single h1 { margin-top: 14px; }
.egx-phero--single .egx-tag { margin-top: 22px; }
.egx-phero__where { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.8); }
.egx-phero__where svg { width: 18px; height: 18px; color: var(--egx-orange); }
.egx-partner { font-style: normal; margin-left: 10px; padding: 2px 8px; border-radius: 99px; background: var(--egx-tint); color: var(--egx-ink); font-size: 11px; font-weight: 600; letter-spacing: .02em; }

.egx-project__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; align-items: start; }
.egx-project__main h2 { font-size: 26px; font-weight: 600; margin: 0 0 16px; }
.egx-project__main h2:not(:first-child) { margin-top: 44px; }
.egx-project__main > p { font-size: 17px; line-height: 1.75; color: var(--egx-text); margin-bottom: 16px !important; }
.egx-note { background: rgba(246,100,10,.08); border-left: 3px solid var(--egx-orange); padding: 12px 16px; border-radius: 0 10px 10px 0; font-size: 14px !important; color: var(--egx-text); margin-bottom: 28px !important; }
.egx-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.egx-gallery__item { padding: 0; border: 0; background: var(--egx-tint); border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; cursor: zoom-in; }
.egx-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.egx-gallery__item:hover img { transform: scale(1.06); }
.egx-project__side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; }
.egx-facts { border: 1px solid var(--egx-line); border-radius: var(--egx-radius); padding: 24px; }
.egx-facts h3, .egx-sidecta h3 { font-size: 18px; font-weight: 600; margin-bottom: 14px; }
.egx-facts dl { margin: 0; }
.egx-facts dl > div { padding: 12px 0; border-top: 1px solid var(--egx-line); }
.egx-facts dl > div:first-child { border-top: 0; padding-top: 0; }
.egx-facts dt { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--egx-muted); margin: 0 0 2px; }
.egx-facts dd { margin: 0; font-size: 15px; color: var(--egx-ink); font-weight: 500; }
.egx-sidecta { background: var(--egx-ink); color: #fff; border-radius: var(--egx-radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.egx-sidecta h3 { color: #fff; margin-bottom: 0; }
.egx-sidecta p { color: rgba(255,255,255,.7); font-size: 15px; margin-bottom: 6px !important; }

.egx-lightbox { position: fixed; inset: 0; z-index: 100001; background: rgba(8,10,9,.92); display: flex; align-items: center; justify-content: center; padding: 40px 70px; }
.egx-lightbox[hidden] { display: none; }
.egx-lightbox img { max-width: 100%; max-height: 100%; border-radius: 8px; object-fit: contain; }
.egx-lightbox button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; border-radius: 50%; width: 48px; height: 48px; font-size: 30px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.egx-lightbox button:hover { background: var(--egx-orange); }
.egx-lightbox__close { top: 20px; right: 20px; }
.egx-lightbox__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.egx-lightbox__next { right: 16px; top: 50%; transform: translateY(-50%); }

/* ==========================================================
   Contact
   ========================================================== */
.egx-contact__section { padding-top: 56px; }
.egx-contact__layout { display: grid; grid-template-columns: 5fr 7fr; gap: 40px; align-items: start; }
.egx-contact__info { display: flex; flex-direction: column; gap: 12px; }
.egx-ccard { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid var(--egx-line); border-radius: var(--egx-radius); background: #fff; transition: all .2s; }
.egx-ccard:hover { border-color: transparent; box-shadow: var(--egx-shadow); transform: translateY(-2px); }
.egx-ccard strong { display: block; color: var(--egx-ink); font-size: 17px; font-weight: 600; }
.egx-ccard small { display: block; color: var(--egx-muted); font-size: 14px; }
.egx-ccard__ico { flex: none; width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(78,155,84,.12); color: var(--egx-green); }
.egx-ccard__ico svg { width: 22px; height: 22px; }
.egx-ccard--wa { background: #25D366; border-color: #25D366; }
.egx-ccard--wa strong, .egx-ccard--wa small { color: #fff; }
.egx-ccard--wa .egx-ccard__ico { background: rgba(255,255,255,.2); color: #fff; }
.egx-offices { margin-top: 12px; padding: 22px 20px; background: var(--egx-tint); border-radius: var(--egx-radius); display: flex; flex-direction: column; gap: 22px; }
.egx-office { display: flex; gap: 16px; }
.egx-office strong { display: block; color: var(--egx-ink); font-size: 16px; margin-bottom: 4px; }
.egx-office p { font-size: 15px; color: var(--egx-text); line-height: 1.6; margin-bottom: 6px !important; }

.egx-formcard { background: #fff; border: 1px solid var(--egx-line); border-radius: 18px; padding: 36px; box-shadow: var(--egx-shadow); }
.egx-formcard h2 { font-size: 26px; font-weight: 600; }
.egx-formcard__sub { color: var(--egx-muted); font-size: 14px; margin: 6px 0 24px !important; }
.egx-form { display: flex; flex-direction: column; gap: 18px; }
.egx-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.egx-form label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 600; color: var(--egx-ink); margin: 0; }
.egx-form input[type="text"], .egx-form input[type="email"], .egx-form input[type="tel"], .egx-form textarea {
	width: 100%; border: 1.5px solid var(--egx-line) !important; border-radius: 10px !important; background: #fff; box-shadow: none !important;
	font-family: inherit; font-size: 15px; font-weight: 400; color: var(--egx-ink); padding: 12px 14px !important; transition: border-color .2s;
}
.egx-form input { height: 50px; }
.egx-form textarea { resize: vertical; min-height: 130px; }
.egx-form input:focus, .egx-form textarea:focus { border-color: var(--egx-green) !important; outline: none; }
.egx-form__types { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.egx-form__types legend { font-size: 14px; font-weight: 600; color: var(--egx-ink); margin-bottom: 10px; padding: 0; }
.egx-pill { flex-direction: row !important; font-weight: 500 !important; cursor: pointer; }
.egx-pill input { position: absolute; opacity: 0; width: 0; height: 0; }
.egx-pill span { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 99px; border: 1.5px solid var(--egx-line); font-size: 14px; color: var(--egx-text); transition: all .15s; }
.egx-pill:hover span { border-color: var(--egx-ink); }
.egx-pill input:checked + span { background: var(--egx-ink); border-color: var(--egx-ink); color: #fff; }
.egx-pill input:focus-visible + span { box-shadow: 0 0 0 3px rgba(246,100,10,.3); }
.egx-form__note { font-size: 13px; color: var(--egx-muted); text-align: center; }
.egx-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.egx-alert { background: #FDECEC; color: #9B1C1C; border-radius: 10px; padding: 12px 16px; font-size: 14px; margin-bottom: 18px !important; }
.egx-success { text-align: center; padding: 24px 8px; }
.egx-success__ico { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: rgba(78,155,84,.14); color: var(--egx-green); align-items: center; justify-content: center; margin-bottom: 18px; }
.egx-success__ico svg { width: 30px; height: 30px; }
.egx-success p { color: var(--egx-muted); max-width: 420px; margin: 10px auto 0 !important; }
.egx-map iframe { display: block; width: 100%; height: 420px; border: 0; filter: grayscale(.25); }

/* ==========================================================
   Catalogue page
   ========================================================== */
.egx-catpage .egx-hero__ctas { margin-top: 28px; }
.egx-catpage .egx-hero__ctas svg { width: 18px; height: 18px; }
.egx-viewer { border: 1px solid var(--egx-line); border-radius: 18px; overflow: hidden; box-shadow: var(--egx-shadow); background: #fff; }
.egx-viewer__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--egx-line); }
.egx-viewer__bar strong { color: var(--egx-ink); font-size: 15px; }
.egx-viewer__pdf { display: block; width: 100%; height: min(80vh, 900px); background: var(--egx-tint); }
.egx-viewer__fallback { padding: 60px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; color: var(--egx-muted); }
.egx-faq { display: grid; grid-template-columns: 4fr 8fr; gap: 56px; align-items: start; }
.egx-faq__intro h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 600; margin-bottom: 12px; }
.egx-faq__intro p { color: var(--egx-muted); margin-bottom: 24px !important; }
.egx-faq__list { display: flex; flex-direction: column; gap: 12px; }
.egx-faq__item { background: #fff; border-radius: var(--egx-radius); box-shadow: 0 1px 2px rgba(15,21,18,.05); }
.egx-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; font-size: 17px; font-weight: 600; color: var(--egx-ink); }
.egx-faq__item summary::-webkit-details-marker { display: none; }
.egx-faq__item summary span { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--egx-tint); position: relative; transition: background .2s; }
.egx-faq__item summary span::before, .egx-faq__item summary span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--egx-ink); transform: translate(-50%, -50%); transition: transform .2s; }
.egx-faq__item summary span::after { transform: translate(-50%, -50%) rotate(90deg); }
.egx-faq__item[open] summary span { background: var(--egx-orange); }
.egx-faq__item[open] summary span::before, .egx-faq__item[open] summary span::after { background: #fff; }
.egx-faq__item[open] summary span::after { transform: translate(-50%, -50%) rotate(0deg); }
.egx-faq__item p { padding: 0 24px 22px; color: var(--egx-text); font-size: 15px; line-height: 1.7; }

@media (max-width: 1024px) {
	.egx-project__layout, .egx-contact__layout, .egx-faq { grid-template-columns: 1fr; gap: 32px; }
	.egx-project__side { position: static; }
}
@media (max-width: 640px) {
	.egx-gallery { grid-template-columns: repeat(2, 1fr); }
	.egx-formcard { padding: 24px 18px; }
	.egx-form__row { grid-template-columns: 1fr; }
	.egx-lightbox { padding: 16px; }
	.egx-lightbox__prev, .egx-lightbox__next { top: auto; bottom: 20px; transform: none; }
	.egx-map iframe { height: 300px; }
	.egx-viewer__pdf { height: 70vh; }
}

/* ==========================================================
   v2 polish – search bar, category list, toolbar alignment
   ========================================================== */
.egx-filters, .egx-results { min-width: 0; }

/* Search bar above results */
.egx-searchbar {
	position: relative; display: flex; align-items: center; gap: 8px;
	height: 58px; padding: 6px 6px 6px 50px; margin: 0 0 20px;
	background: #fff; border: 1.5px solid var(--egx-line); border-radius: 14px;
	box-shadow: 0 1px 2px rgba(15,21,18,.04); transition: border-color .2s, box-shadow .2s;
}
.egx-searchbar:focus-within { border-color: var(--egx-green); box-shadow: 0 0 0 4px rgba(78,155,84,.12); }
.egx-searchbar__icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--egx-muted); line-height: 0; }
.egx-searchbar__icon svg { width: 20px; height: 20px; }
.egx-home .egx-searchbar input.egx-searchbar__input {
	flex: 1; min-width: 0; width: auto; height: 100%;
	border: 0 !important; box-shadow: none !important; background: transparent !important;
	padding: 0 !important; margin: 0; font-family: inherit; font-size: 15px; color: var(--egx-ink); outline: none;
}
.egx-searchbar__input::placeholder { color: #98A19C; }
.egx-searchbar__clear { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--egx-muted) !important; }
.egx-searchbar__clear:hover { background: var(--egx-tint); color: var(--egx-ink) !important; }
.egx-searchbar__clear svg { width: 16px; height: 16px; }
.egx-home .egx-searchbar__btn {
	height: 100%; padding: 0 22px; border: 0; border-radius: 10px; cursor: pointer;
	background: var(--egx-ink); color: #fff; font-family: inherit; font-size: 14px; font-weight: 600;
	text-transform: none; letter-spacing: 0; transition: background .2s;
}
.egx-home .egx-searchbar__btn:hover { background: var(--egx-orange); }

/* Toolbar: one clean line */
.egx-toolbar { min-height: 44px; margin-bottom: 20px; }
.egx-count { margin: 0 auto 0 0 !important; font-size: 15px; line-height: 44px; }
.egx-sort select { height: 44px; line-height: 44px; }

/* Filters column aligns with the search bar */
.egx-filters { top: 20px; }
.egx-filters__form { gap: 16px; }

/* Category list – cleaner rows */
.egx-filters__block { padding: 18px 12px 12px; }
.egx-filters__title { padding: 0 8px; }
.egx-filters__title h3 { font-size: 15px; letter-spacing: .02em; }
.egx-filters__hint { padding: 0 8px; margin: 2px 0 10px !important; }
.egx-tree--d0 { max-height: 560px; overflow-y: auto; scrollbar-width: thin; padding-right: 2px; }
.egx-tree .egx-tree { padding-left: 18px; margin: 2px 0 4px; border-left: 1px solid var(--egx-line); margin-left: 18px; }
.egx-tree__row { border-radius: 8px; padding: 0 4px 0 8px; transition: background .15s; }
.egx-tree__row:hover { background: var(--egx-tint); }
.egx-check { padding: 8px 0; font-size: 14.5px; gap: 12px; }
.egx-check__box { width: 18px; height: 18px; border-radius: 5px; }
.egx-check__count { background: transparent; padding: 0; font-size: 13px; color: #98A19C; min-width: 26px; text-align: right; }
.egx-check input:checked ~ .egx-check__count { color: var(--egx-orange); font-weight: 600; }
.egx-tree__row:has(input:checked) { background: rgba(246,100,10,.07); }
.egx-tree__toggle { width: 26px; height: 26px; }
.egx-tree__toggle svg { width: 14px; height: 14px; }

/* Cards: equal heights, tidy footer */
.egx-grid { align-items: stretch; }
.egx-card:hover { transform: none; }
.egx-card__foot { align-items: center; }
.egx-card__price { min-height: 40px; display: flex; flex-direction: column; justify-content: center; }

@media (max-width: 640px) {
	.egx-searchbar { height: 52px; padding-left: 44px; }
	.egx-searchbar__icon { left: 14px; }
	.egx-home .egx-searchbar__btn { padding: 0 14px; }
	.egx-count { line-height: 1.4; }
}

/* ==========================================================
   Quote pipeline: basket, checkout, account
   ========================================================== */
.egx-iconbtn--quote { background: var(--egx-orange); border-color: var(--egx-orange); color: #fff !important; }
.egx-iconbtn--quote:hover { background: var(--egx-orange-dark); border-color: var(--egx-orange-dark); }
.egx-iconbtn--quote.is-loading { opacity: .6; pointer-events: none; }
.egx-iconbtn--quote.is-added { background: var(--egx-green); border-color: var(--egx-green); }

.egx-steps-bar { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 26px 0 0; padding: 0; }
.egx-steps-bar li { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; font-weight: 500; color: rgba(255,255,255,.55); }
.egx-steps-bar span { width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.35); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
.egx-steps-bar li.is-done { color: rgba(255,255,255,.85); }
.egx-steps-bar li.is-done span { background: var(--egx-green); border-color: var(--egx-green); color: #fff; }
.egx-steps-bar li.is-current { color: #fff; }
.egx-steps-bar li.is-current span { background: var(--egx-orange); border-color: var(--egx-orange); }

.egx-flow__body { padding-top: 48px; }
.egx-wc { font-size: 15px; color: var(--egx-text); }
.egx-wc h2, .egx-wc h3 { font-family: "Sora", "Helvetica Neue", Arial, sans-serif; color: var(--egx-ink); font-weight: 600; letter-spacing: -0.01em; text-transform: none; }
.egx-quote-note { background: rgba(78,155,84,.1); border: 1px solid rgba(78,155,84,.25); color: var(--egx-ink); border-radius: 12px; padding: 14px 18px; margin-bottom: 24px; font-size: 15px; }
.egx-quote-note strong { color: var(--egx-green-dark); }
.egx-onreq { color: var(--egx-muted); font-size: 14px; font-weight: 500; }

/* Notices */
.egx-wc .woocommerce-message, .egx-wc .woocommerce-info, .egx-wc .woocommerce-error {
	border-radius: 12px; border: 1px solid var(--egx-line); background: #fff; padding: 14px 18px; margin-bottom: 20px; box-shadow: none; color: var(--egx-ink);
}
.egx-wc .woocommerce-error { border-color: #F3C4C4; background: #FDF3F3; }

/* Inputs & buttons inside WooCommerce forms */
.egx-wc input.input-text, .egx-wc select, .egx-wc textarea, .egx-wc .select2-selection {
	min-height: 48px; border: 1.5px solid var(--egx-line) !important; border-radius: 10px !important; box-shadow: none !important; background: #fff; font-size: 15px;
}
.egx-wc input.input-text:focus, .egx-wc textarea:focus { border-color: var(--egx-green) !important; outline: none; }
.egx-wc label { font-weight: 600; color: var(--egx-ink); font-size: 14px; }
.egx-wc .button, .egx-wc button.button, .egx-wc a.button, .egx-wc #place_order, .egx-wc .checkout-button {
	background: var(--egx-orange) !important; color: #fff !important; border: 0 !important; border-radius: 10px !important;
	min-height: 50px; padding: 0 26px !important; font-weight: 600 !important; font-size: 15px !important; text-transform: none !important; letter-spacing: 0 !important;
	display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(246,100,10,.22); transition: background .2s;
}
.egx-wc .button:hover, .egx-wc #place_order:hover { background: var(--egx-orange-dark) !important; }
.egx-wc button[name="update_cart"], .egx-wc .woocommerce-MyAccount-content .button.view { background: #fff !important; color: var(--egx-ink) !important; border: 1.5px solid var(--egx-line) !important; box-shadow: none; }

/* Basket table */
.egx-wc table.shop_table { border: 1px solid var(--egx-line); border-radius: var(--egx-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; width: 100%; background: #fff; }
.egx-wc table.shop_table th { background: var(--egx-tint); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--egx-muted); font-weight: 600; padding: 14px 16px; }
.egx-wc table.shop_table td { padding: 16px; border-top: 1px solid var(--egx-line); vertical-align: middle; }
.egx-wc table.shop_table td.product-thumbnail img { width: 64px; height: 64px; object-fit: contain; border-radius: 10px; background: var(--egx-tint); padding: 4px; }
.egx-wc table.shop_table td.product-name a { color: var(--egx-ink); font-weight: 600; }
.egx-wc table.shop_table .product-remove a { color: var(--egx-muted) !important; font-size: 22px; }
.egx-wc table.shop_table .product-remove a:hover { color: #C0392B !important; background: none; }
.egx-wc .quantity input.qty { width: 72px; min-height: 42px; border-radius: 10px; border: 1.5px solid var(--egx-line); text-align: center; }
.egx-wc .cart-collaterals .cart_totals { background: var(--egx-tint); border-radius: var(--egx-radius); padding: 24px; }
.egx-wc .cart_totals table.shop_table { display: none; } /* prices are confirmed in the quotation */
.egx-wc .cart_totals h2 { font-size: 18px; margin-bottom: 8px; }
.egx-wc .cart_totals h2::after { content: "Prices, availability and delivery will be confirmed in your quotation."; display: block; font-size: 14px; font-weight: 400; color: var(--egx-muted); margin-top: 6px; }
.egx-wc .wc-proceed-to-checkout { padding-top: 14px; }
.egx-wc .wc-proceed-to-checkout .checkout-button { width: 100%; }
.egx-wc .coupon { display: none !important; }
.egx-wc .cart-empty.woocommerce-info { text-align: center; padding: 40px 20px; font-size: 17px; }

/* Checkout */
.egx-wc form.checkout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 36px; align-items: start; }
.egx-wc form.checkout #customer_details, .egx-wc form.checkout .col2-set { grid-column: 1; width: 100%; }
.egx-wc form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
.egx-wc form.checkout #order_review { grid-column: 2; grid-row: 1; margin-top: 44px; background: var(--egx-tint); border-radius: var(--egx-radius); padding: 22px; }
.egx-wc form.checkout .col2-set .col-1, .egx-wc form.checkout .col2-set .col-2 { width: 100%; float: none; }
.egx-wc #order_review table.shop_table { background: #fff; }
.egx-wc #order_review tfoot { display: none; }
.egx-wc #payment { background: transparent !important; }
.egx-wc #payment .place-order { padding: 16px 0 0 !important; }
.egx-wc #place_order { width: 100%; float: none; }
.egx-wc .woocommerce-account-fields, .egx-wc .create-account { background: #fff; border: 1px solid var(--egx-line); border-radius: 12px; padding: 16px; margin-top: 16px; }
.egx-wc .woocommerce-form-login-toggle .woocommerce-info { background: rgba(246,100,10,.06); border-color: rgba(246,100,10,.25); }

/* Order received */
.egx-wc .woocommerce-thankyou-order-received { font-size: 20px; font-weight: 600; color: var(--egx-green-dark); background: rgba(78,155,84,.1); border-radius: 12px; padding: 18px 20px; }
.egx-wc ul.woocommerce-order-overview { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 20px 0; }
.egx-wc ul.woocommerce-order-overview li { border: 1px solid var(--egx-line); border-radius: 12px; padding: 12px 16px; margin: 0; font-size: 13px; color: var(--egx-muted); text-transform: uppercase; letter-spacing: .04em; }
.egx-wc ul.woocommerce-order-overview li strong { display: block; font-size: 15px; color: var(--egx-ink); text-transform: none; letter-spacing: 0; }
.egx-wc .woocommerce-order-overview__payment-method { display: none !important; }

/* Login / register */
.egx-wc #customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.egx-wc #customer_login .u-column1, .egx-wc #customer_login .u-column2 { width: 100%; float: none; background: #fff; border: 1px solid var(--egx-line); border-radius: 18px; padding: 30px; box-shadow: var(--egx-shadow); }
.egx-wc #customer_login h2 { font-size: 22px; margin-bottom: 18px; }
.egx-wc .woocommerce-form-login, .egx-wc .woocommerce-form-register { border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; max-width: none !important; }
.egx-wc .woocommerce-form-register .button, .egx-wc .woocommerce-form-login .button { width: 100%; margin-top: 8px; }

/* My account */
.egx-wc .woocommerce-MyAccount-navigation { float: none; width: 100%; margin-bottom: 24px; }
.egx-wc .woocommerce-MyAccount-navigation ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.egx-wc .woocommerce-MyAccount-navigation li { margin: 0; }
.egx-wc .woocommerce-MyAccount-navigation a { display: inline-flex; height: 42px; align-items: center; padding: 0 18px; border-radius: 99px; border: 1.5px solid var(--egx-line); color: var(--egx-text); font-weight: 600; font-size: 14px; }
.egx-wc .woocommerce-MyAccount-navigation a:hover { border-color: var(--egx-ink); color: var(--egx-ink); }
.egx-wc .woocommerce-MyAccount-navigation li.is-active a { background: var(--egx-ink); border-color: var(--egx-ink); color: #fff; }
.egx-wc .woocommerce-MyAccount-content { float: none; width: 100%; }
.egx-wc mark.order-status, .egx-wc .woocommerce-orders-table__cell-order-status { font-weight: 600; background: none; color: var(--egx-orange-dark); }

@media (max-width: 900px) {
	.egx-wc form.checkout, .egx-wc #customer_login { grid-template-columns: 1fr; }
	.egx-wc form.checkout #order_review_heading, .egx-wc form.checkout #order_review { grid-column: 1; grid-row: auto; margin-top: 0; }
}
@media (max-width: 640px) {
	.egx-wc table.shop_table_responsive td { padding: 10px 14px; }
	.egx-wc #customer_login .u-column1, .egx-wc #customer_login .u-column2 { padding: 22px 18px; }
}
