/* Fasal Bazar Modern. Colours and corner radius come from the Customizer. */

@font-face { font-family: Mukta; font-weight: 400; font-display: swap; src: url(../fonts/mukta-latin-400.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: Mukta; font-weight: 600; font-display: swap; src: url(../fonts/mukta-latin-600.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: Mukta; font-weight: 700; font-display: swap; src: url(../fonts/mukta-latin-700.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: Mukta; font-weight: 800; font-display: swap; src: url(../fonts/mukta-latin-800.woff2) format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: Mukta; font-weight: 400; font-display: swap; src: url(../fonts/mukta-devanagari-400.woff2) format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: Mukta; font-weight: 600; font-display: swap; src: url(../fonts/mukta-devanagari-600.woff2) format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: Mukta; font-weight: 700; font-display: swap; src: url(../fonts/mukta-devanagari-700.woff2) format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: Mukta; font-weight: 800; font-display: swap; src: url(../fonts/mukta-devanagari-800.woff2) format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }

:root {
	--fb-primary: #1e6b3c;
	--fb-accent: #f5a524;
	--fb-radius: 16px;
	--fb-primary-dark: color-mix(in srgb, var(--fb-primary) 72%, #000);
	--fb-primary-soft: color-mix(in srgb, var(--fb-primary) 9%, #fff);
	--fb-ink: #17231b;
	--fb-muted: #5d6b62;
	--fb-line: #e6ebe7;
	--fb-bg: #f7f8f4;
	--fb-shadow: 0 1px 2px rgb(23 35 27 / 6%), 0 8px 24px rgb(23 35 27 / 6%);
	--fb-shadow-up: 0 2px 4px rgb(23 35 27 / 8%), 0 16px 36px rgb(23 35 27 / 12%);
	--fb-font: Mukta, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

html, body { overflow-x: clip; }

body,
body button, body input, body select, body textarea,
body h1, body h2, body h3, body h4, body h5, body h6,
body .elementor-widget-heading .elementor-heading-title,
body .elementor-widget-text-editor,
body .elementor-button,
body .elementor-icon-box-title,
body .elementor-icon-box-description {
	font-family: var(--fb-font);
}

body { background: var(--fb-bg) !important; color: var(--fb-ink); }

/* ---------- Header ---------- */

.topbar-slider, .topbar { background: var(--fb-primary-dark) !important; color: #fff !important; }
.topbar-slider *, .topbar * { color: #fff !important; font-size: 13px; font-weight: 600; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 90;
	background: #fff;
	box-shadow: 0 1px 0 var(--fb-line), 0 6px 18px rgb(23 35 27 / 5%);
}
.admin-bar .site-header { top: 32px; }
.site-header .custom-logo { max-height: 54px; width: auto; }
.site-header .primary-navigation > li > a {
	color: var(--fb-ink);
	font-weight: 600;
	font-size: 15px;
}
.site-header .primary-navigation > li > a:hover { color: var(--fb-primary); }
.site-header .shop-cart-count { background: var(--fb-accent) !important; color: var(--fb-ink) !important; font-weight: 700; }

/* ---------- Homepage layout ---------- */

.home .site-content,
.home .content-top,
.home .site-main,
.home .woostify-container.site-content-inner { padding-top: 0 !important; margin-top: 0 !important; }
.home .entry-header, .home .page-header { display: none; }

.elementor .e-con.fb-bleed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.elementor .e-con.fb-wrap {
	--content-width: 1240px;
	--container-max-width: 1240px;
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 20px;
}

/* Hero */
.elementor .e-con.fb-hero {
	background: radial-gradient(900px 480px at 88% 8%, color-mix(in srgb, var(--fb-primary) 62%, #fff) 0, transparent 70%), linear-gradient(135deg, var(--fb-primary-dark), var(--fb-primary));
	padding-block: 64px;
}
.elementor .e-con.fb-hero__row { align-items: center; gap: 48px; flex-wrap: nowrap; }
.elementor .e-con.fb-hero__copy { flex: 1 1 52%; gap: 18px; padding: 0; }
.elementor .e-con.fb-hero__media { flex: 1 1 48%; min-width: 0; padding: 0; }

.fb-eyebrow .elementor-heading-title {
	display: inline-block;
	padding: 5px 14px;
	border-radius: 999px;
	background: rgb(255 255 255 / 14%);
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.5;
}
.fb-title .elementor-heading-title {
	margin: 0;
	color: #fff !important;
	font-size: clamp(36px, 5vw, 60px) !important;
	font-weight: 800 !important;
	line-height: 1.06 !important;
	letter-spacing: -0.02em;
}
.fb-lead, .fb-lead p { margin: 0; color: rgb(255 255 255 / 88%) !important; font-size: 19px; line-height: 1.55; }

.elementor .e-con.fb-actions { flex-direction: row; flex-wrap: wrap; gap: 12px; padding: 0; width: auto; }
.elementor .fb-actions > .elementor-widget { width: auto; }

.fb-btn .elementor-button {
	padding: 14px 26px;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 700;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.fb-btn .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgb(0 0 0 / 18%); }
.fb-btn--accent .elementor-button { background: var(--fb-accent) !important; color: var(--fb-ink) !important; }
.fb-btn--ghost .elementor-button { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 2px rgb(255 255 255 / 55%); }
.fb-btn--ghost .elementor-button:hover { background: rgb(255 255 255 / 12%) !important; }

.fb-hero__media .swiper,
.fb-hero__media .elementor-image-carousel-wrapper {
	border-radius: calc(var(--fb-radius) + 6px);
	overflow: hidden;
	box-shadow: 0 24px 60px rgb(0 0 0 / 32%);
	background: #fff;
}
.fb-hero__media .swiper-slide-image { display: block; width: 100%; }

/* Trust strip */
.elementor .e-con.fb-trust {
	position: relative;
	z-index: 2;
	margin-top: -32px;
	margin-bottom: 8px;
	padding: 0 20px;
	max-width: 1240px;
	margin-inline: auto;
}
.elementor .e-con.fb-trust__row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	padding: 8px;
	border-radius: var(--fb-radius);
	background: #fff;
	box-shadow: var(--fb-shadow);
}
.fb-trust__item { padding: 16px 18px; }
.fb-trust__item .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 14px; text-align: left; }
.fb-trust__item .elementor-icon-box-icon { margin: 0; flex: none; }
.fb-trust__item .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--fb-primary-soft);
	color: var(--fb-primary) !important;
	font-size: 19px;
}
.fb-trust__item .elementor-icon i, .fb-trust__item .elementor-icon svg { color: var(--fb-primary); fill: var(--fb-primary); width: 1em; height: 1em; }
.fb-trust__item .elementor-icon-box-title { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.25; color: var(--fb-ink); }
.fb-trust__item .elementor-icon-box-description { margin: 2px 0 0; font-size: 14px; line-height: 1.35; color: var(--fb-muted); }

/* Sections */
.elementor .e-con.fb-section { padding-block: 40px 16px; gap: 22px; }
.elementor .e-con.fb-section__head { flex-direction: row; justify-content: space-between; align-items: flex-end; padding: 0; gap: 16px; }
.elementor .fb-section__head > .elementor-widget { width: auto; }
.fb-h2 .elementor-heading-title {
	margin: 0;
	color: var(--fb-ink) !important;
	font-size: clamp(25px, 3vw, 34px) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.015em;
}
.fb-link .elementor-button { padding: 4px 0; background: transparent !important; color: var(--fb-primary) !important; font-size: 16px; font-weight: 700; }
.fb-link .elementor-button:hover { text-decoration: underline; }

/* Category tiles */
.fb-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.fb-cat a {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 10px 10px 14px;
	border-radius: var(--fb-radius);
	background: #fff;
	box-shadow: var(--fb-shadow);
	color: var(--fb-ink);
	transition: transform .18s ease, box-shadow .18s ease;
}
.fb-cat a:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-up); }
.fb-cat__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: calc(var(--fb-radius) - 6px); background: var(--fb-primary-soft); }
.fb-cat__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fb-cat__name { margin: 12px 6px 0; font-size: 17px; font-weight: 700; line-height: 1.25; }
.fb-cat__count { margin: 2px 6px 0; font-size: 14px; color: var(--fb-muted); }

/* Promo banner */
.elementor .e-con.fb-promo {
	flex-direction: row;
	align-items: stretch;
	gap: 0;
	margin-block: 36px 12px;
	padding: 0;
	overflow: hidden;
	border-radius: calc(var(--fb-radius) + 6px);
	background: var(--fb-primary-dark);
	box-shadow: var(--fb-shadow);
}
.elementor .e-con.fb-promo__copy { flex: 1 1 56%; justify-content: center; gap: 14px; padding: 44px; }
.elementor .e-con.fb-promo__media { flex: 1 1 44%; min-width: 0; padding: 0; }
.fb-promo__media .elementor-widget-image, .fb-promo__media .elementor-widget-container { height: 100%; }
.fb-promo__media img { display: block; width: 100%; height: 100%; max-height: 340px; object-fit: cover; }
.fb-promo__title .elementor-heading-title { margin: 0; color: #fff !important; font-size: clamp(26px, 3.2vw, 38px) !important; font-weight: 800 !important; line-height: 1.12 !important; }

/* ---------- Product cards (homepage, shop, categories) ---------- */

.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0 !important;
	padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: none !important;
}
.product-loop-wrapper {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: var(--fb-radius);
	background: #fff;
	box-shadow: var(--fb-shadow);
	transition: transform .18s ease, box-shadow .18s ease;
}
.product-loop-wrapper:hover { transform: translateY(-3px); box-shadow: var(--fb-shadow-up); }
.product-loop-image-wrapper { position: relative; background: #fff; }
.product-loop-image-wrapper img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.product-loop-content { flex: 1; padding: 12px 14px 16px !important; text-align: left !important; }
.woocommerce-loop-product__title { margin: 0 0 6px !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1.32 !important; }
.woocommerce-loop-product__title a {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--fb-ink) !important;
}
.product-loop-content .price { color: var(--fb-primary) !important; font-size: 17px; font-weight: 800; }
.product-loop-content .price del { color: var(--fb-muted) !important; font-size: 14px; font-weight: 400; }
.product-loop-content .price ins { background: none; text-decoration: none; color: inherit; }
.woostify-tag-on-sale, .woocommerce span.onsale {
	top: 10px !important;
	left: 10px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 3px 9px !important;
	border-radius: 999px !important;
	background: var(--fb-accent) !important;
	color: var(--fb-ink) !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.4 !important;
}

/* ---------- Buttons across the shop ---------- */

.woocommerce .button, .woocommerce button.button, .woocommerce a.button,
.single_add_to_cart_button, .wc-proceed-to-checkout .checkout-button, #place_order {
	border-radius: 999px !important;
	background-color: var(--fb-primary) !important;
	color: #fff !important;
	font-weight: 700 !important;
}
.woocommerce .button:hover, .single_add_to_cart_button:hover { background-color: var(--fb-primary-dark) !important; }

/* ---------- Single product ---------- */

.single-product div.product .product_title { font-weight: 800; letter-spacing: -0.01em; }
.single-product div.product p.price, .single-product div.product span.price { color: var(--fb-primary) !important; font-weight: 800; }
.single-product .product-gallery .image-item img, .single-product .woocommerce-product-gallery img { border-radius: var(--fb-radius); }

/* ---------- Footer ---------- */

.fb-footer { margin-top: 56px; padding: 56px 20px 40px; background: var(--fb-primary-dark); color: rgb(255 255 255 / 84%); }
.fb-footer__inner { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; max-width: 1200px; margin: 0 auto; }
.fb-footer__brand { display: block; margin-bottom: 8px; color: #fff; font-size: 26px; font-weight: 800; }
.fb-footer__about p { max-width: 42ch; margin: 0; font-size: 16px; line-height: 1.55; }
.fb-footer__col h2 { margin: 0 0 12px; color: #fff; font-size: 17px; font-weight: 700; }
.fb-footer__col ul { margin: 0; padding: 0; list-style: none; }
.fb-footer__col li { margin: 0 0 8px; font-size: 15px; }
.fb-footer__col a { color: rgb(255 255 255 / 84%); }
.fb-footer__col a:hover { color: #fff; text-decoration: underline; }
.site-footer { margin-top: 0 !important; padding: 14px 20px !important; background: color-mix(in srgb, var(--fb-primary-dark) 82%, #000) !important; }
.site-footer, .site-footer * { color: rgb(255 255 255 / 72%) !important; font-size: 14px; }

/* ---------- Tablet and phone ---------- */

@media (max-width: 1024px) {
	.woocommerce ul.products, .fb-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.elementor .e-con.fb-trust__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.admin-bar .site-header { top: 0; }
	.elementor .e-con.fb-hero { padding-block: 36px 60px; }
	.elementor .e-con.fb-hero__row { flex-direction: column; flex-wrap: wrap; gap: 28px; }
	.elementor .e-con.fb-hero__copy, .elementor .e-con.fb-hero__media { flex: 1 1 auto; width: 100%; }
	.fb-lead, .fb-lead p { font-size: 17px; }
	.fb-actions .elementor-button { padding: 12px 20px; font-size: 15px; }
	.fb-trust__item { padding: 12px 10px; }
	.fb-trust__item .elementor-icon-box-wrapper { gap: 10px; }
	.fb-trust__item .elementor-icon { width: 38px; height: 38px; font-size: 16px; }
	.fb-trust__item .elementor-icon-box-title { font-size: 14px; }
	.fb-trust__item .elementor-icon-box-description { display: none; }
	.elementor .e-con.fb-section { padding-block: 28px 8px; gap: 14px; }
	.woocommerce ul.products, .fb-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.product-loop-content { padding: 10px 10px 12px !important; }
	.woocommerce-loop-product__title { font-size: 14px !important; }
	.product-loop-content .price { font-size: 15px; }
	.fb-cat__name { font-size: 15px; }
	.elementor .e-con.fb-promo { flex-direction: column; }
	.elementor .e-con.fb-promo__copy { order: 2; padding: 26px 22px 28px; }
	.elementor .e-con.fb-promo__media { order: 1; }
	.fb-promo__media img { max-height: 200px; }
	.fb-footer { margin-top: 36px; padding: 36px 20px 24px; }
	.fb-footer__inner { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.fb-footer__about { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
	.fb-cat a, .product-loop-wrapper, .fb-btn .elementor-button { transition: none; }
	.fb-cat a:hover, .product-loop-wrapper:hover, .fb-btn .elementor-button:hover { transform: none; }
}

/* ---------- Fixes from review ---------- */

body .site-header a, body .primary-navigation a, body .sidebar-menu a, body .site-footer, body .woostify-breadcrumb, body .product-loop-content, body .price { font-family: var(--fb-font); }

/* Price and buttons: Woostify hides the buttons behind a hover slide; show them. */
.product-loop-content { display: flex; flex-direction: column; }
.product-loop-meta { height: auto !important; margin-top: auto; overflow: visible !important; }
.product-loop-meta .animated-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; position: static !important; transform: none !important; }
.product-loop-meta .price { flex: 1 0 100%; position: static !important; transform: none !important; }
.product-loop-meta .button {
	flex: 1 1 0;
	min-width: 0;
	margin: 0 !important;
	padding: 8px 6px !important;
	border-radius: 999px !important;
	background-color: var(--fb-primary) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center;
	white-space: nowrap;
	transform: none !important;
}
.product-loop-meta .button::before, .product-loop-meta .button::after { display: none !important; }
.product-loop-meta .button .woostify-svg-icon { display: none; }
.woocommerce .product-loop-meta a.wa-shop-button { background-color: #fff !important; color: var(--fb-primary) !important; box-shadow: inset 0 0 0 1.5px var(--fb-primary); }

/* Page banner, breadcrumbs and accents that were red on grey */
.page-header { padding-block: 14px !important; background: transparent !important; }
.woostify-breadcrumb, .woostify-breadcrumb .item-bread, .woostify-breadcrumb a { color: var(--fb-muted) !important; font-size: 14px; }
.woostify-breadcrumb a:hover { color: var(--fb-primary) !important; }
.woocommerce-tabs .tabs li.active a, .woocommerce-tabs .tabs a:hover { color: var(--fb-primary) !important; }

/* The shop sidebar has no widgets: let products use the full width. If widgets are added later, the sidebar returns. */
.fb-no-shop-sidebar #primary { float: none !important; width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.fb-no-shop-sidebar #secondary.shop-widget { display: none; }
.woocommerce-result-count { color: var(--fb-muted) !important; }
.woocommerce-ordering select { border-radius: 10px; }

/* Block-based product grids (cart page) */
.wc-block-grid__product { padding: 10px 10px 16px !important; border: 0 !important; border-radius: var(--fb-radius); background: #fff; box-shadow: var(--fb-shadow); }
.wc-block-grid__product-title { color: var(--fb-ink) !important; font-size: 15px !important; font-weight: 600 !important; }
.wc-block-grid__product-price { color: var(--fb-primary) !important; font-weight: 800; }
.wc-block-grid__product-onsale { border: 0 !important; border-radius: 999px !important; background: var(--fb-accent) !important; color: var(--fb-ink) !important; font-weight: 800 !important; }
.wc-block-grid__product .wp-block-button__link { border-radius: 999px !important; background-color: var(--fb-primary) !important; color: #fff !important; font-weight: 700; }

/* Elementor's typography settings reach these elements directly. */
.elementor-icon-box-title, .elementor-icon-box-title *, .elementor-icon-box-description, .elementor-button, .elementor-button * { font-family: var(--fb-font) !important; }

.fb-trust__item .elementor-icon-box-wrapper { flex-direction: row !important; }
.fb-trust__item .elementor-icon-box-content { text-align: left; }

@media (max-width: 767px) {
	/* Two narrow columns: stack the buttons so labels are never cut off. */
	.product-loop-meta .button { flex: 1 0 100%; padding: 9px 6px !important; }
}
