/*
 * ZAPO brand layer. Overrides the Hello Elementor theme defaults (pink #c36 links/buttons, blue #336 hover).
 * Palette: green #05402C, dark green #022519, soft green #E6EFEA, black #111, gray #484848, line #DFDFDF.
 * Font: Noto Sans Hebrew only.
 */
:root {
	--zapo-green: #05402C;
	--zapo-green-dark: #022519;
	--zapo-green-soft: #E6EFEA;
	--zapo-black: #111111;
	--zapo-gray: #484848;
	--zapo-line: #DFDFDF;
}

body { font-family: 'Noto Sans Hebrew', 'Noto Sans', sans-serif; color: var(--zapo-black); }
::selection { background: var(--zapo-green); color: #fff; }

/* Links: brand green, darker on hover. Components that set their own colors keep them through class hover states. */
a { color: var(--zapo-green); text-decoration: none; transition: color .15s ease, background-color .15s ease, border-color .15s ease; }
a:hover, a:active, a:focus { color: var(--zapo-green-dark); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--zapo-green); outline-offset: 3px; }

/* Native buttons / submit inputs (theme default is pink outline). */
button, [type="button"], [type="submit"], [type="reset"] {
	font-family: 'Noto Sans Hebrew', 'Noto Sans', sans-serif;
	color: var(--zapo-green); border-color: var(--zapo-green);
	transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}
button:hover, button:focus, [type="button"]:hover, [type="button"]:focus,
[type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus {
	background-color: var(--zapo-green); color: #fff; border-color: var(--zapo-green);
}
button:disabled, [type="submit"]:disabled { opacity: .5; }

/* Form fields. */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"],
input[type="search"], input[type="url"], select, textarea {
	font-family: 'Noto Sans Hebrew', 'Noto Sans', sans-serif; color: var(--zapo-black); border-color: var(--zapo-line);
}
input:focus, select:focus, textarea:focus {
	border-color: var(--zapo-green) !important; outline: none; box-shadow: 0 0 0 3px rgba(5, 64, 44, .15);
}
input::placeholder, textarea::placeholder { color: var(--zapo-gray); opacity: .7; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--zapo-green); }

/* WooCommerce buttons (cart, checkout, account). */
.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 {
	background-color: var(--zapo-green); color: #fff; border: 1px solid var(--zapo-green);
	border-radius: 999px; font-weight: 700; padding: .8em 1.8em;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	background-color: var(--zapo-green-dark); color: #fff; border-color: var(--zapo-green-dark);
}
.woocommerce a.button.disabled, .woocommerce button.button:disabled { background-color: var(--zapo-green); color: #fff; opacity: .5; }

/* WooCommerce notices, prices, tables. */
.woocommerce-message, .woocommerce-info { border-top-color: var(--zapo-green); background: var(--zapo-green-soft); color: var(--zapo-black); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--zapo-green); }
.woocommerce-error { border-top-color: #B3261E; }
.woocommerce .price, .woocommerce-Price-amount { color: var(--zapo-black); }
.woocommerce table.shop_table { border-color: var(--zapo-line); border-radius: 0; }
.woocommerce table.shop_table th { color: var(--zapo-black); }
.woocommerce-checkout #payment { background: var(--zapo-green-soft); border-radius: 0; }
.woocommerce-checkout #payment div.payment_box { background: #fff; color: var(--zapo-black); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce form .form-row .required, .woocommerce-error::before { color: #B3261E; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--zapo-black); font-weight: 700; }

/* Hotspot card buttons keep their own colors on hover. */
.zapo-hs__btn:hover, .zapo-hs__btn:focus { background: var(--zapo-green-dark); color: #fff; border-color: var(--zapo-green-dark); }
.zapo-hs__btn--ghost:hover, .zapo-hs__btn--ghost:focus { background: var(--zapo-green-soft); color: var(--zapo-black); border-color: var(--zapo-gray); }
.zapo-hs__name:hover { color: var(--zapo-green); }
.zapo-hs__dot:hover, .zapo-hs__dot:focus { background: #fff; border-color: var(--zapo-green); }

/* Wishlist plugin accents. */
.tinvwl_added_to_wishlist.tinvwl-icon-heart::before, .tinvwl-icon-heart::before { color: var(--zapo-green); }
.tinvwl-table-manage-list a, .tinvwl_button_close, .tinvwl-buttons-group button { color: var(--zapo-green); }

/* Sticky header (the Theme Builder location wrapper must be the sticky element). */
.elementor-location-header { position: sticky; top: 0; z-index: 999; background: #fff; transition: box-shadow .2s ease; }
body.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .elementor-location-header { top: 46px; } }
body.zapo-scrolled .elementor-location-header { box-shadow: 0 2px 14px rgba(0, 0, 0, .08); }

/* ---------- Product card (home, shop, categories) ---------- */
.zapo-pill {
	position: absolute; z-index: 2; top: 10px; inset-inline-start: 10px; font: 700 11px/1.6 'Noto Sans Hebrew', sans-serif;
	background: #fff; color: #111; border: 1px solid var(--zapo-line); padding: 2px 10px; border-radius: 999px;
}
.zapo-label { display: inline-block; font: 800 11px/1.5 'Noto Sans Hebrew', sans-serif; padding: 3px 8px; margin-bottom: 4px; }
.zapo-label--new { color: var(--zapo-green); padding: 0; font-size: 12px; }
.zapo-label--sale { background: var(--zapo-green-soft); color: var(--zapo-green); border-radius: 999px; padding: 3px 10px; }
.zapo-label--limited { background: var(--zapo-green); color: #fff; }
.zapo-card-meta { display: block; margin-top: 8px; font-family: 'Noto Sans Hebrew', sans-serif; }
.zapo-card-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.zapo-card-meta--stack .zapo-card-row + .zapo-card-row { margin-top: 10px; }
.zapo-price { font-weight: 900; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.2; color: var(--zapo-black); }
.zapo-cur { font-size: .55em; font-weight: 700; margin-inline-start: 3px; vertical-align: baseline; }
.zapo-price small { font-size: 12px; font-weight: 500; color: var(--zapo-gray); margin-inline-end: 4px; }
.zapo-price--sale { color: var(--zapo-green); }
.zapo-price del { font-size: 13px; font-weight: 500; color: var(--zapo-gray); margin-inline-start: 8px; white-space: nowrap; }
.zapo-price { white-space: nowrap; }
.zapo-price del .zapo-cur { font-size: .85em; font-weight: 500; margin-inline-start: 1px; }
.zapo-swatches { display: flex; gap: 6px; }
.zapo-swatches i { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--zapo-line); display: block; }
a.zapo-card-add, a.zapo-card-add:hover, a.zapo-card-add:focus {
	flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--zapo-green); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; font: 400 28px/1 'Noto Sans Hebrew', sans-serif;
	text-decoration: none; padding-bottom: 2px; box-sizing: border-box;
}
a.zapo-card-add:hover, a.zapo-card-add:focus { background: var(--zapo-green-dark); }
a.zapo-card-add.added { background: var(--zapo-green-dark); }
a.zapo-card-add.loading { opacity: .6; }
a.added_to_cart { display: none; }

/* Card alignment: price/+ row sits at the bottom of every card in a row; chips don't stretch. */
.zapo-card-meta { margin-top: auto; padding-top: 10px; }
.zapo-label { align-self: flex-start; }

/* ---------- Category navigation (shop / category pages) ---------- */
.zapo-catnav { display: flex; gap: 10px; overflow-x: auto; padding: 8px 0 4px; scrollbar-width: none; font-family: 'Noto Sans Hebrew', sans-serif; }
.zapo-catnav::-webkit-scrollbar { display: none; }
a.zapo-catnav__item {
	flex: none; white-space: nowrap; font-weight: 700; font-size: 13px; line-height: 1.4; color: var(--zapo-black);
	border: 1px solid var(--zapo-line); border-radius: 999px; padding: 10px 18px; background: #fff; text-decoration: none;
}
a.zapo-catnav__item:hover, a.zapo-catnav__item:focus { border-color: var(--zapo-green); color: var(--zapo-green); }
a.zapo-catnav__item.is-soon { color: var(--zapo-green); border-color: var(--zapo-green); }
a.zapo-catnav__item.is-active, a.zapo-catnav__item.is-active:hover { background: var(--zapo-green); color: #fff; border-color: var(--zapo-green); }

/* ---------- My account ---------- */
body.woocommerce-account .page-header { display: none; }
body.woocommerce-account .page-content, body.woocommerce-account main { max-width: 1280px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 40px); box-sizing: border-box; }
body.woocommerce-account .woocommerce { display: grid; grid-template-columns: minmax(220px, 280px) 1fr; gap: clamp(16px, 2.4vw, 32px); align-items: start; padding-block: clamp(16px, 2vw, 32px) clamp(32px, 4vw, 64px); }
body.woocommerce-account .woocommerce > * { min-width: 0; }
body.woocommerce-account .zapo-acc-hero { grid-column: 1 / -1; background: var(--zapo-green-soft); padding: clamp(24px, 3.4vw, 48px); display: flex; flex-direction: column; gap: 10px; border-top: 8px solid var(--zapo-green); }
.zapo-acc-hero__bar { display: none; }
.zapo-acc-hero__title { margin: 0; font: 900 clamp(30px, 4vw, 52px)/1.05 'Noto Sans Hebrew', sans-serif; color: var(--zapo-black); letter-spacing: -.01em; }
.zapo-acc-hero__text { margin: 0; font: 400 clamp(14px, 0.9vw + 11px, 17px)/1.6 'Noto Sans Hebrew', sans-serif; color: var(--zapo-gray); max-width: 620px; }

/* Navigation */
body.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; border: 1px solid var(--zapo-line); background: #fff; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a {
	display: block; padding: 12px 16px; border-radius: 999px; font: 700 14px/1.3 'Noto Sans Hebrew', sans-serif; color: var(--zapo-black); text-decoration: none;
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--zapo-green-soft); color: var(--zapo-green); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--zapo-green); color: #fff; }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--zapo-gray); font-weight: 500; }

/* Content card */
body.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; border: 1px solid var(--zapo-line); background: #fff; padding: clamp(18px, 2.4vw, 32px); font-family: 'Noto Sans Hebrew', sans-serif; line-height: 1.6; color: var(--zapo-gray); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { color: var(--zapo-black); font-weight: 800; }
.woocommerce-MyAccount-content a:not(.button):not(.zapo-acc-tile) { color: var(--zapo-green); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Dashboard tiles */
.zapo-acc-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-top: 20px; }
a.zapo-acc-tile, a.zapo-acc-tile:hover { display: flex; flex-direction: column; gap: 4px; padding: 20px; background: var(--zapo-gray-bg, #F5F5F5); border-top: 4px solid transparent; text-decoration: none !important; color: var(--zapo-black); }
a.zapo-acc-tile:hover { border-top-color: var(--zapo-green); background: var(--zapo-green-soft); }
a.zapo-acc-tile strong { font-size: 16px; font-weight: 800; }
a.zapo-acc-tile span { font-size: 13px; color: var(--zapo-gray); font-weight: 400; }
.zapo-acc-ic { width: 34px; height: 34px; color: var(--zapo-green); margin-bottom: 8px; }

/* Orders, addresses, forms */
.woocommerce-MyAccount-content table.shop_table { border: 0; border-top: 2px solid var(--zapo-black); }
.woocommerce-MyAccount-content table.shop_table th { background: transparent; text-transform: none; font-weight: 800; }
.woocommerce-MyAccount-content table.shop_table td, .woocommerce-MyAccount-content table.shop_table th { border-color: var(--zapo-line); }
.woocommerce-Addresses .woocommerce-Address { border: 1px solid var(--zapo-line); padding: 18px; }
.woocommerce form .form-row label { font-weight: 700; color: var(--zapo-black); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { height: 50px; padding: 0 14px; border: 1px solid var(--zapo-line); border-radius: 0; background: #fff; }
.woocommerce form .form-row textarea { height: auto; padding: 12px 14px; }

/* Login / register */
body.woocommerce-account:not(.logged-in) .woocommerce { grid-template-columns: 1fr; }
body.woocommerce-account #customer_login { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(16px, 2.4vw, 32px); }
body.woocommerce-account #customer_login .u-column1, body.woocommerce-account #customer_login .u-column2 { float: none; width: auto; border: 1px solid var(--zapo-line); border-top: 6px solid var(--zapo-green); padding: clamp(18px, 2.4vw, 32px); background: #fff; }
body.woocommerce-account #customer_login h2 { margin: 0 0 14px; font: 800 24px/1.2 'Noto Sans Hebrew', sans-serif; color: var(--zapo-black); }
body.woocommerce-account .woocommerce-form-login__rememberme { font-weight: 500; }
body.woocommerce-account .lost_password a { color: var(--zapo-green); font-weight: 700; }

@media (max-width: 782px) {
	body.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation ul { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
	.woocommerce-MyAccount-navigation li a { white-space: nowrap; }
}

/* Account: wider container, no duplicate default greeting on the dashboard. */
body.woocommerce-account .site-main, body.woocommerce-account .page-content, body.woocommerce-account main { max-width: 1280px !important; width: 100%; margin-inline: auto; padding-inline: clamp(16px, 3vw, 40px); box-sizing: border-box; }
body.woocommerce-account .woocommerce-MyAccount-content:has(.zapo-acc-tiles) > p { display: none; }
body.woocommerce-account .woocommerce-MyAccount-content:has(.zapo-acc-tiles) .zapo-acc-tiles { margin-top: 0; }
body.woocommerce-account .page-content { padding-inline: 0; max-width: none !important; }
.zapo-acc-tiles { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
