/* ==========================================================================
   Faranetwork — "Fara Glass" · PAGES  (the Elementor Pro templates faranetworks.com uses for content pages)
   --------------------------------------------------------------------------
   Single product (.elementor-location-single), related products, tabs, and one font across every
   Elementor widget (each widget there carries its own custom font — iranyekan — and its own colours).
   Selectors find containers by the widget they hold (:has) rather than by element id, because ids change
   when a template is re-saved. Elementor prints per-widget CSS late → body.fn-theme prefix + !important
   on the properties it sets.
   ========================================================================== */

/* ---------- 0. One font for every text element in Elementor content ---------- */
body.fn-theme .elementor :is(h1, h2, h3, h4, h5, h6, p, li, td, th, label, legend, blockquote, input, select, textarea, .elementor-heading-title, .elementor-button, .elementor-widget-text-editor, .price, .product_title, .woocommerce-Price-amount, .elementor-icon-list-text, .elementor-tab-title, .elementor-accordion-title) {
	font-family: var(--fn-font) !important;
}

/* ---------- 1. Single product ---------- */
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-images) { align-self: flex-start; }

/* right column wrapper (class "descrip" in the live template): no shadow, no box — the cards inside carry the look */
body.fn-theme .elementor-location-single .e-con.descrip {
	box-shadow: none !important;
	border-radius: 0 !important;
	background: none !important;
	border: 0 !important;
	gap: 16px !important;
	padding: 0 !important;
}

/* the two cards: (title + meta) and (short description + price + buttons) */
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title),
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) {
	background: var(--fn-glass) !important;
	backdrop-filter: blur(var(--fn-blur));
	-webkit-backdrop-filter: blur(var(--fn-blur));
	border: 1px solid var(--fn-glass-brd) !important;
	border-radius: 26px !important;
	box-shadow: var(--fn-shadow-card) !important;
	overflow: hidden;
}
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner {
	padding: 26px 28px 20px !important;
	gap: 12px;
	position: relative;
}
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner::before { /* accent bar */
	content: '';
	position: absolute;
	inset-block: 24px;
	inset-inline-start: 0;
	width: 4px;
	border-radius: 0 4px 4px 0;
	background: linear-gradient(180deg, var(--fn-sky-300), var(--fn-sky-600));
}
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner { padding: 22px 28px 26px !important; gap: 16px; }

body.fn-theme .elementor-location-single .product_title,
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-title .elementor-heading-title {
	color: var(--fn-ink) !important;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.8rem) !important;
	font-weight: 900 !important;
	line-height: 1.7 !important;
	letter-spacing: 0 !important;
}

/* category line → pills */
body.fn-theme .elementor-location-single .product_meta {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	padding: 14px 0 0 !important;
	border-top: 1px dashed rgba(56, 189, 248, .35) !important;
	color: var(--fn-muted) !important;
	font-size: .82rem !important;
}
body.fn-theme .elementor-location-single .product_meta .posted_in,
body.fn-theme .elementor-location-single .product_meta .tagged_as { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
body.fn-theme .elementor-location-single .product_meta a {
	padding: 4px 12px;
	border-radius: 999px;
	background: rgba(56, 189, 248, .1);
	border: 1px solid rgba(56, 189, 248, .22);
	color: var(--fn-sky-700) !important;
	font-size: .78rem !important;
	font-weight: 700;
	transition: background .3s, color .3s;
}
body.fn-theme .elementor-location-single .product_meta a:hover { background: var(--fn-sky-500); color: #fff !important; }

/* short description → check list */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description,
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description p,
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description li { color: var(--fn-slate) !important; font-size: .95rem !important; line-height: 2 !important; }
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description ul { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 4px; }
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description li { position: relative; padding-inline-start: 30px !important; }
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-short-description li::before {
	content: '';
	position: absolute;
	inset-inline-start: 0;
	top: .72em;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border-radius: 50%;
	background: rgba(14, 165, 233, .14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230284c7' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* price / "استعلام قیمت" */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-price .price,
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-price .price * {
	color: var(--fn-ink) !important;
	font-size: 1.35rem !important;
	font-weight: 900 !important;
}
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-price .price {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	padding: 8px 20px;
	border-radius: 999px;
	background: linear-gradient(135deg, rgba(253, 230, 138, .45), rgba(245, 158, 11, .18));
	border: 1px solid rgba(245, 158, 11, .35);
}
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-price .price:empty { display: none; }
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-price .price ins { text-decoration: none; }

/* wishlist / add to cart row */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-add-to-cart .cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 !important; }
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist { margin: 0 !important; }
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist a.add_to_wishlist,
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist a.button {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 26px !important;
	border-radius: 999px !important;
	border: 1px solid var(--fn-sky-300) !important;
	background: #fff !important;
	color: var(--fn-sky-700) !important;
	font-size: .9rem !important;
	font-weight: 800 !important;
	box-shadow: var(--fn-shadow-sm);
	transition: background .3s, color .3s, transform .35s var(--fn-ease), box-shadow .3s;
}
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist a.add_to_wishlist:hover,
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist a.button:hover {
	background: var(--fn-grad) var(--fn-sky-500) !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: var(--fn-glow);
}
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist svg { width: 18px; height: 18px; fill: none; }
/* the shop's own custom CSS styles this button through div#descrip (ID selector + !important) → match it */
body.fn-theme div#descrip a.add_to_wishlist.single_add_to_wishlist.alt.button.theme-button-style {
	background-color: #fff !important;
	font-family: var(--fn-font) !important;
	font-size: .9rem !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
body.fn-theme div#descrip a.add_to_wishlist.single_add_to_wishlist.alt.button.theme-button-style:hover { background: var(--fn-grad) var(--fn-sky-500) !important; }
body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-button a.add_to_wishlist:not(:has(span:not(:empty)))::after { content: 'افزودن به علاقه‌مندی‌ها'; }

/* quantity stepper: one pill with two round buttons (the theme's own markup ships orange, half-clipped circles) */
body.fn-theme .elementor-location-single form.cart .quantity {
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	width: auto !important;
	height: 52px;
	margin: 0 !important;
	padding: 0 6px;
	overflow: visible !important;
	border: 1px solid var(--fn-sky-200) !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: var(--fn-shadow-sm);
}
body.fn-theme .elementor-location-single form.cart .quantity :is(.minus, .plus, input[type="button"], button) {
	position: static !important;
	display: grid !important;
	place-items: center;
	width: 38px !important;
	min-width: 38px;
	height: 38px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(14, 165, 233, .12) !important;
	color: var(--fn-sky-700) !important;
	font-size: 1.2rem !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	transform: none !important;
	transition: background .25s, color .25s;
}
body.fn-theme .elementor-location-single form.cart .quantity :is(.minus, .plus, input[type="button"], button):hover { background: var(--fn-sky-500) !important; color: #fff !important; }
body.fn-theme .elementor-location-single form.cart .quantity input.qty {
	width: 46px !important;
	height: 38px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--fn-ink) !important;
	font-size: 1rem !important;
	font-weight: 900 !important;
	text-align: center;
}
body.fn-theme .elementor-location-single .stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 !important;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: .85rem !important;
	font-weight: 800 !important;
}
body.fn-theme .elementor-location-single .stock.in-stock { background: rgba(34, 197, 94, .1); color: #047857 !important; }
body.fn-theme .elementor-location-single .stock.out-of-stock { background: rgba(239, 68, 68, .09); color: var(--fn-err) !important; }

/* gallery */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-images .woocommerce-product-gallery {
	background: linear-gradient(145deg, #fff, #eaf6ff);
	padding: 14px;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 28px;
	box-shadow: var(--fn-shadow-card);
}
body.fn-theme .elementor-location-single .woocommerce-product-gallery img { border-radius: 20px; }

/* ---------- 1b. Product summary, redesigned: spec grid + one tidy buy box ---------- */
/* Why it looked "all over the place": Elementor puts a bottom margin on every widget and a % margin (20% on the left!) on the spec
   widget, so both cards were half empty; the specs (.attribute > .label + .value) had no style at all; the (hidden) quantity field was
   drawn as an empty pill next to the button; and price / stock / cart / wishlist were four separate rows.
   Now: specs = small cards in a grid · row 1: price … stock · row 2: [add to cart] [wishlist]. */
body.fn-theme .elementor-location-single .e-con.descrip .elementor-widget { margin-block-end: 0 !important; }
body.fn-theme .elementor-location-single .e-con.descrip .elementor-widget > .elementor-widget-container { margin: 0 !important; }
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner { gap: 14px; padding: 24px 28px 20px !important; }

body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 16px;
	padding: 24px 28px 26px !important;
}
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner > .elementor-widget { width: auto; flex: 0 0 auto; }
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner > .elementor-widget-woocommerce-product-short-description { flex: 1 1 100%; width: 100%; order: 0; }
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner > .elementor-widget-woocommerce-product-price { order: 1; }
/* the add-to-cart widget dissolves so its stock line and its <form> become items of the same flex row */
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner > .elementor-widget-woocommerce-product-add-to-cart,
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner > .elementor-widget-woocommerce-product-add-to-cart > .elementor-widget-container,
body.fn-theme .elementor-location-single .e-con.descrip .elementor-add-to-cart { display: contents; }
body.fn-theme .elementor-location-single .e-con.descrip .elementor-add-to-cart .stock { order: 2; margin-inline-start: auto !important; }
body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner::after { content: ''; order: 3; flex: 1 1 100%; height: 0; } /* line break */
body.fn-theme .elementor-location-single .e-con.descrip form.cart { order: 4; flex: 1 1 260px; min-width: 0; }
body.fn-theme .elementor-location-single .e-con.descrip form.cart.variations_form { flex-basis: 100%; }
body.fn-theme .elementor-location-single .e-con.descrip .elementor-widget-yith_wcwl_add_to_wishlist { order: 5; }
body.fn-theme .elementor-location-single .e-con.descrip .elementor-widget-yith_wcwl_add_to_wishlist :is(a.add_to_wishlist, a.button) { min-height: 54px; white-space: nowrap; }
body.fn-theme .elementor-location-single form.cart .quantity.hidden { display: none !important; }
body.fn-theme .elementor-location-single .single_add_to_cart_button { width: 100%; min-height: 54px; font-size: 1rem !important; }

/* specs → small cards */
body.fn-theme .elementor-location-single .woocommerce-product-details__short-description { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
body.fn-theme .elementor-location-single .woocommerce-product-details__short-description .attribute {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 16px;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 16px;
	background: linear-gradient(145deg, #fff, #f0f9ff);
}
body.fn-theme .elementor-location-single .woocommerce-product-details__short-description .attribute .label { color: var(--fn-mute); font-size: .76rem; font-weight: 700; line-height: 1.6; }
body.fn-theme .elementor-location-single .woocommerce-product-details__short-description .attribute .value { color: var(--fn-ink); font-size: .95rem; font-weight: 800; line-height: 1.7; overflow-wrap: anywhere; }
@media (max-width: 767px) {
	body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner { gap: 8px; padding: 18px 20px 16px !important; }
	body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner { padding: 18px 16px 20px !important; }
	body.fn-theme .elementor-location-single .e-con.descrip form.cart { flex-basis: 100%; }
	body.fn-theme .elementor-location-single .e-con.descrip .elementor-widget-yith_wcwl_add_to_wishlist { flex: 1 1 100%; }
	body.fn-theme .elementor-location-single .woocommerce-product-details__short-description { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	body.fn-theme .elementor-location-single .woocommerce-product-details__short-description .attribute { padding: 10px 12px; }
}

/* gallery thumbnails: square, framed, the active one highlighted (they were cropped and unframed) */
body.fn-theme .elementor-location-single .woocommerce-product-gallery .wd-gallery-thumb .wd-carousel-item { box-sizing: border-box; height: auto !important; padding: 0 0 8px 8px; }
body.fn-theme .elementor-location-single .woocommerce-product-gallery .wd-gallery-thumb .wd-carousel-item img {
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	padding: 6px;
	object-fit: contain;
	border: 1.5px solid var(--fn-glass-brd);
	border-radius: 16px;
	background: #fff;
	opacity: .75;
	cursor: pointer;
	transition: opacity .25s, border-color .25s, transform .35s var(--fn-ease);
}
body.fn-theme .elementor-location-single .woocommerce-product-gallery .wd-gallery-thumb .wd-carousel-item:hover img { opacity: 1; transform: translateY(-2px); }
body.fn-theme .elementor-location-single .woocommerce-product-gallery .wd-gallery-thumb .wd-carousel-item.wd-thumb-active img { opacity: 1; border-color: var(--fn-sky-400); box-shadow: 0 0 0 3px rgba(56, 189, 248, .18); }

/* ---------- 2. Tabs (description / Q&A / reviews / shipping) ---------- */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel {
	background: var(--fn-glass) !important;
	border: 1px solid var(--fn-glass-brd) !important;
	border-radius: 28px !important;
	box-shadow: var(--fn-shadow-soft) !important;
	padding: clamp(20px, 3vw, 36px) !important;
	color: var(--fn-slate) !important;
	line-height: 2.1 !important;
}
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel :is(p, li, td, span, div) { color: inherit; }
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel :is(h2, h3, h4) { color: var(--fn-ink) !important; font-weight: 900; }
body.fn-theme .elementor-location-single .woocommerce-Tabs-panel img { border-radius: 18px; max-width: 100%; height: auto; }
body.fn-theme .elementor-location-single .woocommerce-Tabs-panel a { color: var(--fn-sky-600); font-weight: 700; }
body.fn-theme .elementor-location-single .wd-nav-tabs li a,
body.fn-theme .elementor-location-single .wc-tabs li a { font-family: var(--fn-font) !important; font-size: .9rem !important; text-transform: none !important; }

/* thin divider between tabs and related products */
body.fn-theme .elementor-location-single .elementor-widget-divider--view-line .elementor-divider-separator {
	border: 0 !important;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--fn-sky-300), transparent) !important;
}

/* ---------- 3. Related products ---------- */
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-related h2.wd-el-title,
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-related .title {
	position: relative;
	text-align: center;
	color: var(--fn-ink) !important;
	font-size: clamp(1.3rem, 1rem + 1.2vw, 1.8rem) !important;
	font-weight: 900 !important;
	padding-bottom: 24px;
	margin-bottom: 26px;
}
body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-related h2.wd-el-title::after {
	content: '';
	position: absolute;
	bottom: 6px;
	left: 50%;
	width: 7px;
	height: 7px;
	margin-left: -3.5px;
	background: var(--fn-grad) var(--fn-sky-500);
	transform: rotate(45deg);
	box-shadow: 0 0 12px rgba(56, 189, 248, .45);
}

/* ---------- 4. Product cards (shop, related, widgets): wishlist heart = round glass button on the image corner ---------- */
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist { margin: 0 !important; }
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist .yith-wcwl-add-button a.add_to_wishlist,
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist a.add_to_wishlist.button {
	position: absolute !important;
	top: 14px !important;
	left: 14px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 4;
	display: grid !important;
	place-items: center;
	width: 40px !important;
	height: 40px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 50% !important;
	border: 1px solid var(--fn-glass-brd) !important;
	background: rgba(255, 255, 255, .92) !important;
	color: var(--fn-sky-600) !important;
	box-shadow: var(--fn-shadow-sm) !important;
	transition: background .3s, color .3s, transform .35s var(--fn-ease);
}
/* the shop's custom CSS positions this button inside div#related with ID + !important → match it */
body.fn-theme div#related a.add_to_wishlist.single_add_to_wishlist.alt.button.theme-button-style {
	right: auto !important;
	left: 14px !important;
	top: 14px !important;
	margin: 0 !important;
	background-color: rgba(255, 255, 255, .92) !important;
}
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist a.add_to_wishlist.button:hover { background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; transform: scale(1.08); }
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist svg { width: 20px; height: 20px; }
body.fn-theme .wd-product .yith-wcwl-add-to-wishlist a.add_to_wishlist.button > span { display: none; }
body.fn-theme .wd-product .yith-wcwl-wishlistaddedbrowse a,
body.fn-theme .wd-product .yith-wcwl-wishlistexistsbrowse a { color: #ef4444 !important; }

@media (max-width: 1024px) {
	body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner,
	body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > :is(.elementor-widget-woocommerce-product-short-description, .elementor-widget-woocommerce-product-price, .elementor-widget-woocommerce-product-add-to-cart)) > .e-con-inner { padding-inline: 20px !important; }
}

/* ---------- 4b. Product cards: ONE compare button, round, on the image corner ---------- */
/* Every card carried two compare buttons: WoodMart's own (empty href — its compare feature isn't set up) and YITH's (the working one),
   both inside WoodMart's white quick-shop bar that slid over the photo and shoved the card layout. Keep YITH's, as a glass circle. */
body.fn-theme .wd-product .wrapp-swatches .wd-compare-btn { display: none !important; }
body.fn-theme .wd-product .product-element-top > .wrapp-swatches {
	position: absolute !important;
	top: 10px !important;
	left: 10px !important;
	right: auto !important;
	bottom: auto !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	display: flex;
	gap: 6px;
	z-index: 3;
	opacity: 0 !important;
	visibility: visible !important;
	transform: translateY(-6px) !important;
	transition: opacity .3s, transform .4s var(--fn-ease);
}
body.fn-theme .wd-product:is(:hover, :focus-within) .product-element-top > .wrapp-swatches { opacity: 1 !important; transform: none !important; }
@media (hover: none) { /* touch screens have no hover: always show it */
	body.fn-theme .wd-product .product-element-top > .wrapp-swatches { opacity: 1 !important; transform: none !important; }
}
body.fn-theme .wd-product .wrapp-swatches .wd-action-btn { width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
body.fn-theme .wd-product .wrapp-swatches .wd-action-btn > a {
	display: grid !important;
	place-items: center;
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border: 1px solid rgba(56, 189, 248, .28) !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .92) !important;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 8px 20px rgba(56, 189, 248, .18);
	color: var(--fn-slate) !important;
	transition: background .3s, color .3s, transform .35s var(--fn-ease);
}
body.fn-theme .wd-product .wrapp-swatches .wd-action-btn > a:hover { background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; transform: scale(1.08); }
body.fn-theme .wd-product .wrapp-swatches .wd-action-text { display: none !important; }

/* ---------- 5. Phones: shop filter must not eat the screen ---------- */
@media (max-width: 1024px) {
	body.fn-theme .elementor-widget-shortcode:has(.yith-wcan-filters) { position: static; }
}
@media (max-width: 767px) {
	body.fn-theme .yith-wcan-filters .filter-items { max-height: 188px; overflow-y: auto; overscroll-behavior: contain; padding-inline-end: 6px; scrollbar-width: thin; scrollbar-color: var(--fn-sky-300) transparent; }
}

/* ---------- 6. ElementsKit "Woo category list" (sub-category tiles on category archives) ---------- */
/* The widget's own grid CSS is missing on the live site (optimizers strip it), so the <ul> stacked into one narrow column
   hugging the edge. Give it a real responsive grid, driven by the columns the widget already prints as custom properties. */
body.fn-theme .ekit-woo-cat-list--products {
	display: grid !important;
	grid-template-columns: repeat(var(--ekit-woo-desktop-columns, 4), minmax(0, 1fr));
	gap: clamp(14px, 2vw, 24px);
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.fn-theme .ekit-woo-cat-list--products > li.product-category {
	position: relative;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	list-style: none;
	overflow: hidden;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 26px;
	background: var(--fn-glass);
	box-shadow: var(--fn-shadow-card);
	text-align: center;
	transition: transform .45s var(--fn-ease), box-shadow .45s;
}
body.fn-theme .ekit-woo-cat-list--products > li.product-category:hover { transform: translateY(-6px); box-shadow: var(--fn-shadow-hover); }
body.fn-theme .ekit-woo-cat-list--products > li.product-category > a { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 14px 14px 18px; color: inherit; text-decoration: none; }
body.fn-theme .ekit-woo-cat-list--products > li.product-category img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	margin: 0 !important;
	object-fit: contain;
	border-radius: 18px;
	background: #fff;
	transition: transform .6s var(--fn-ease);
}
body.fn-theme .ekit-woo-cat-list--products > li.product-category:hover img { transform: scale(1.06); }
body.fn-theme .ekit-woo-cat-list--products .woocommerce-loop-category__title {
	margin: 0 !important;
	color: var(--fn-ink) !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	line-height: 1.8 !important;
}
body.fn-theme .ekit-woo-cat-list--products .woocommerce-loop-category__title mark,
body.fn-theme .ekit-woo-cat-list--products .count { background: none; color: var(--fn-mute); font-size: .8rem; font-weight: 600; }
@media (max-width: 1024px) {
	body.fn-theme .ekit-woo-cat-list--products { grid-template-columns: repeat(var(--ekit-woo-tablet-columns, 3), minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	body.fn-theme .ekit-woo-cat-list--products { grid-template-columns: repeat(var(--ekit-woo-mobile-columns, 2), minmax(0, 1fr)); gap: 12px; }
	body.fn-theme .ekit-woo-cat-list--products > li.product-category > a { padding: 10px 10px 14px; }
	body.fn-theme .ekit-woo-cat-list--products .woocommerce-loop-category__title { font-size: .88rem !important; }
}

/* ---------- 6b. ElementsKit "Woo product list" (product grid on category archives) ---------- */
/* Same story as the category tiles above: the widget's grid/card CSS never reaches the page, so the <ul> was display:block and every
   product became a full-width row with a tiny image and a floating button. Real grid + the same glass card as the WoodMart cards. */
body.fn-theme .ekit-wc-products ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.fn-theme .ekit-wc-products ul.products > li.ekit-wc-product {
	display: flex;
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit-wc-product-inner {
	display: flex !important;
	flex-direction: column;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid var(--fn-glass-brd) !important;
	border-radius: 22px !important;
	background: var(--fn-glass);
	box-shadow: var(--fn-shadow-soft) !important;
	transition: transform .5s var(--fn-ease), box-shadow .5s var(--fn-ease), border-color .4s;
}
body.fn-theme .ekit-wc-products .ekit-wc-product:hover .ekit-wc-product-inner { transform: translateY(-5px); border-color: rgba(56, 189, 248, .32) !important; box-shadow: var(--fn-shadow-hover) !important; }
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit-wc-product-image {
	position: relative;
	flex: none;
	display: grid;
	place-items: center;
	aspect-ratio: 1 / 1;
	margin: 8px 8px 0;
	overflow: hidden;
	border: 0 !important;
	border-radius: 16px !important;
	background: linear-gradient(145deg, #ffffff, #eaf6ff);
}
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit_woo_product_img_link { display: grid; place-items: center; width: 100%; height: 100%; }
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit_woo_product_img_link img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	padding: 10px;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform .9s var(--fn-ease);
}
body.fn-theme .ekit-wc-products .ekit-wc-product:hover .ekit_woo_product_img_link img { transform: scale(1.06); }
/* Legacy custom CSS saved in the WordPress admin pins this container's photos to 220px and every card to 335px (`div#archive img`,
   `div#archive .ekit-wc-product-inner`, both !important) — that clipped the title and price out of the card. Out-rank it with the same id. */
body.fn-theme div#archive .ekit-wc-products .ekit-wc-product-inner { height: auto !important; }
body.fn-theme div#archive .ekit-wc-products .ekit_woo_product_img_link img { width: 100% !important; height: 100% !important; }
/* the photo is laid over the square box instead of sizing it: the row height then comes from aspect-ratio alone */
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit_woo_product_img_link { position: absolute; inset: 0; width: auto; height: auto; }
body.fn-theme .ekit-wc-products .ekit-wc-product .ekit_woo_product_img_link img { position: absolute; inset: 0; }
body.fn-theme .ekit-wc-products .ekit-wc-products-badge { position: absolute; inset-block-start: 10px; inset-inline-start: 10px; z-index: 2; width: auto !important; height: auto !important; pointer-events: none; }
body.fn-theme .ekit-wc-products .ekit-wc-products-badge .product-labels { position: static; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
/* the button rides the bottom edge of the photo; it appears on hover, and is always there on touch screens */
body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart {
	position: absolute;
	inset-inline: 10px;
	inset-block-end: 10px;
	z-index: 2;
	display: flex;
	justify-content: center;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .35s, transform .45s var(--fn-ease);
}
body.fn-theme .ekit-wc-products .ekit-wc-product:is(:hover, :focus-within) .ekit-wc-add-to-cart { opacity: 1; transform: none; }
@media (hover: none) {
	body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart { opacity: 1; transform: none; }
}
body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	max-width: 100%;
	padding: 8px 20px;
	border: 1px solid rgba(56, 189, 248, .3) !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .92) !important;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: var(--fn-shadow-soft);
	color: var(--fn-sky-700) !important;
	font-size: .84rem;
	font-weight: 800;
	line-height: 1.6;
	text-decoration: none;
	white-space: nowrap;
	transition: background .3s, color .3s;
}
body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart a.button:hover { background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; border-color: transparent !important; }
body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart a.button.loading::after,
body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart a.button.added::after { position: static; margin: 0; }
body.fn-theme .ekit-wc-products .ekit-wc-product-desc { flex: 1 1 auto; display: flex; padding: 12px 14px 16px; text-align: center; }
body.fn-theme .ekit-wc-products .ekit-wc-product-desc-inner { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; width: 100%; padding: 0 !important; }
body.fn-theme .ekit-wc-products .ekit-wc-product-categories ul { display: flex; justify-content: center; gap: 4px; margin: 0; padding: 0; overflow: hidden; list-style: none; white-space: nowrap; }
body.fn-theme .ekit-wc-products .ekit-wc-product-categories li { min-width: 0; margin: 0; text-overflow: ellipsis; overflow: hidden; }
body.fn-theme .ekit-wc-products .ekit-wc-product-categories li:nth-child(n+3) { display: none; }
body.fn-theme .ekit-wc-products .ekit-wc-product-categories a { color: var(--fn-mute); font-size: .72rem; text-decoration: none; }
body.fn-theme .ekit-wc-products .ekit-wc-product-categories a:hover { color: var(--fn-sky-600); }
body.fn-theme .ekit-wc-products a.ekit-link-reset { display: block; color: inherit; text-decoration: none; }
body.fn-theme .ekit-wc-products .ekit-wc-product-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 3.4em;
	margin: 0 0 4px;
	color: var(--fn-ink);
	font-size: .9rem;
	font-weight: 800;
	line-height: 1.7;
	transition: color .3s;
}
body.fn-theme .ekit-wc-products a.ekit-link-reset:hover .ekit-wc-product-title { color: var(--fn-sky-600); }
body.fn-theme .ekit-wc-products .ekit-wc-rating { display: flex; justify-content: center; }
body.fn-theme .ekit-wc-products .ekit-wc-rating:has(.star-rating > span[style*="width:0%"]) { display: none; }
body.fn-theme .ekit-wc-products .ekit-wc-product-price { margin-top: auto; }
body.fn-theme .ekit-wc-products .ekit-wc-product-price .price { margin: 0; font-size: .95rem; }
@media (max-width: 1199px) {
	body.fn-theme .ekit-wc-products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	body.fn-theme .ekit-wc-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; }
	body.fn-theme .ekit-wc-products .ekit-wc-product-desc { padding: 10px 10px 14px; }
	body.fn-theme .ekit-wc-products .ekit-wc-product-title { font-size: .82rem; }
	body.fn-theme .ekit-wc-products .ekit-wc-add-to-cart a.button { padding: 6px 12px; font-size: .76rem; }
	body.fn-theme .ekit-wc-products .ekit-woo-add-cart-text { overflow: hidden; text-overflow: ellipsis; }
}

/* [stm-calc] fallback box (inc/shortcodes.php) — shown while the calculator plugin is switched off */
body.fn-theme .fn-calc-off { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px 24px; border-radius: var(--fn-r); text-align: center; }
body.fn-theme .fn-calc-off strong { color: var(--fn-ink); font-size: 1.05rem; font-weight: 800; }
body.fn-theme .fn-calc-off span { max-width: 52ch; color: var(--fn-slate); font-size: .92rem; line-height: 2; }

/* ---------- 7. Uniform product cards: same size, smaller, price pinned to the bottom ---------- */
/* Heights used to follow each photo's aspect ratio (cards in one row were 435px / 515px tall). Now: every card stretches to
   the row height, every photo sits in the same square box (object-fit: contain), title = 2 lines, categories = 1 line. */
body.fn-theme .wd-products.wd-grid-g { align-items: stretch; gap: clamp(12px, 1.6vw, 20px) !important; }
body.fn-theme .fn-products .wd-products.wd-grid-g { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } /* home: [products columns="4"] — WoodMart ignored it and drew 3 */
body.fn-theme .wd-products .wd-product { display: flex; height: 100%; margin: 0; }
body.fn-theme .wd-products .wd-product > .product-wrapper,
body.fn-theme .wd-carousel .wd-product > .product-wrapper {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	border-radius: 22px;
}
body.fn-theme .wd-product .product-element-top {
	position: relative;
	flex: none;
	display: grid;
	place-items: center;
	aspect-ratio: 1 / 1;
	margin: 8px 8px 0;
	border-radius: 16px;
}
body.fn-theme .wd-product .product-element-top > a.product-image-link { display: grid; place-items: center; width: 100%; height: 100%; }
body.fn-theme .wd-product .product-element-top > a.product-image-link img { width: 100% !important; height: 100% !important; object-fit: contain; padding: 10px; }
body.fn-theme .wd-product .product-element-bottom {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 14px 16px;
}
body.fn-theme .wd-product .product-element-bottom .wd-entities-title { min-height: 3.4em; margin: 0 0 4px; font-size: .9rem; line-height: 1.7; }
body.fn-theme .wd-product .product-element-bottom .wd-product-cats { margin: 0 0 6px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .72rem; }
body.fn-theme .wd-product .product-element-bottom :is(.wrap-price, .price) { margin-top: auto; }
body.fn-theme .wd-product .product-element-bottom .wrap-price .price { margin-top: 0; font-size: .95rem; }
body.fn-theme .wd-product:hover .product-wrapper { transform: translateY(-5px); }
@media (max-width: 1100px) {
	body.fn-theme .fn-products .wd-products.wd-grid-g { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px) {
	body.fn-theme .fn-products .wd-products.wd-grid-g,
	body.fn-theme .wd-products.wd-grid-g { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
	body.fn-theme .wd-product .product-element-bottom { padding: 10px 10px 14px; }
	body.fn-theme .wd-product .product-element-bottom .wd-entities-title { font-size: .82rem; }
	body.fn-theme .wd-product .product-element-top > a.product-image-link img { padding: 6px; }
}
/* shop / category archives (Elementor archive template, filter sidebar on the side): 4 compact columns on wide screens, like the home page */
@media (min-width: 1200px) {
	body.fn-theme .elementor-location-archive .wd-products.wd-grid-g { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	body.fn-theme .elementor-location-archive .wd-products.wd-grid-g { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* ---------- 8. Phones & tablets: product tabs (description / Q&A / reviews) ---------- */
/* WoodMart hides `.tabs-layout-tabs` below 1025px expecting a second, accordion copy of the tabs — but the Elementor
   "Product data tabs" widget on this shop only prints the tabs copy, so on phones the whole description vanished. Bring it back as chips. */
@media (max-width: 1024px) {
	body.fn-theme .elementor-location-single .woocommerce-tabs.tabs-layout-tabs { display: block !important; }
	body.fn-theme .elementor-location-single .woocommerce-tabs .wd-nav-tabs-wrapper { display: block !important; }
	body.fn-theme .elementor-location-single .woocommerce-tabs .wc-tabs { gap: 6px; margin-bottom: 14px !important; }
	body.fn-theme .elementor-location-single .woocommerce-tabs .wc-tabs li a { padding: 8px 16px; font-size: .84rem !important; white-space: nowrap; }
}
@media (max-width: 767px) {
	body.fn-theme .elementor-location-single .elementor-widget-woocommerce-product-data-tabs .woocommerce-Tabs-panel { border-radius: 22px !important; padding: 18px 16px !important; font-size: .93rem; }
	/* cart row: quantity + button share the line, wishlist button spans it */
	body.fn-theme .elementor-location-single form.cart { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; width: 100%; }
	body.fn-theme .elementor-location-single form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 0; padding-inline: 14px; }
	body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-button a.add_to_wishlist { width: 100%; justify-content: center; }
	body.fn-theme .elementor-location-single .elementor-widget-yith_wcwl_add_to_wishlist .yith-wcwl-add-to-wishlist { width: 100%; }
	/* title card: no dead space between the title and the category pills */
	body.fn-theme .elementor-location-single .e-con:has(> .e-con-inner > .elementor-widget-woocommerce-product-title) > .e-con-inner { padding: 18px 20px 16px !important; gap: 8px; }
	body.fn-theme .elementor-location-single .product_meta { padding-top: 10px !important; }
}
@media (max-width: 1024px) {
	/* without JS: show the first panel (the description) exactly like WoodMart's own desktop rule */
	body.fn-theme .elementor-location-single .woocommerce-tabs .wd-nav-wrapper + div .woocommerce-Tabs-panel:not([style]) { display: block; }
	/* with fn.js: the tapped tab's panel only */
	html.fn-tabs-js body.fn-theme .elementor-location-single .woocommerce-tabs .woocommerce-Tabs-panel { display: none !important; }
	html.fn-tabs-js body.fn-theme .elementor-location-single .woocommerce-tabs .woocommerce-Tabs-panel.fn-tab-on { display: block !important; }
}
@media (max-width: 767px) {
	body.fn-theme .elementor-location-single form.cart { flex-wrap: wrap; }
	body.fn-theme .elementor-location-single form.cart .quantity { height: 48px; padding: 0 4px; }
	body.fn-theme .elementor-location-single form.cart .quantity :is(.minus, .plus, input[type="button"], button) { width: 34px !important; min-width: 34px; height: 34px !important; }
	body.fn-theme .elementor-location-single form.cart .quantity input.qty { width: 38px !important; height: 34px !important; }
	body.fn-theme .elementor-location-single form.cart .single_add_to_cart_button { min-height: 48px; padding-inline: 10px; font-size: .9rem !important; white-space: nowrap; }
}

/* ---------- 9a. Cart / Checkout / My Account: a real page container ---------- */
/* These three are plain WordPress pages (no Elementor template) and the WoodMart wrapper that normally boxes them is not in the page,
   so the content ran edge to edge: the order card touched the screen border, coupon notices hugged the right edge. Same width + gutter as the rest of the site. */
body.fn-theme:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .wd-content-area.site-content {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--fn-max) + 2 * var(--fn-gutter));
	margin: clamp(24px, 3vw, 44px) auto clamp(40px, 5vw, 72px);
	padding-inline: var(--fn-gutter);
}

/* cart totals: the trust list shows an icon-only box for every badge whose text is empty in the features plugin's settings */
body.fn-theme .fnf-trust li:has(> span:empty) { display: none; }

/* ---------- 9. Checkout & My Account: robust card boxes ---------- */
/* glass cards carry padding; without border-box a 100%-wide card overflowed its column on themes that don't reset box-sizing */
body.fn-theme .woocommerce-checkout #customer_details,
body.fn-theme .woocommerce-checkout-review-order,
body.fn-theme #order_review,
body.fn-theme .woocommerce-MyAccount-navigation ul,
body.fn-theme .woocommerce-MyAccount-content,
body.fn-theme .u-columns .u-column1,
body.fn-theme .u-columns .u-column2,
body.fn-theme .woocommerce-form-login,
body.fn-theme .woocommerce-form-register { box-sizing: border-box; max-width: 100%; }

/* WooCommerce's own form CSS (".woocommerce form .form-row .input-text", specificity 0,3,1) beat the global field style, so checkout and
   account fields came out with black 4px-radius borders. Same selectors, one notch higher. */
body.fn-theme .woocommerce form .form-row .input-text,
body.fn-theme .woocommerce form .form-row textarea,
body.fn-theme .woocommerce form .form-row select,
body.fn-theme .woocommerce-checkout .input-text,
body.fn-theme .woocommerce-checkout textarea,
body.fn-theme .woocommerce-MyAccount-content .input-text,
body.fn-theme .woocommerce-MyAccount-content textarea,
body.fn-theme .woocommerce-form-coupon .input-text,
body.fn-theme .woocommerce-form-login .input-text {
	box-sizing: border-box;
	min-height: 48px;
	padding: 10px 16px;
	border: 1px solid rgba(56, 189, 248, .32);
	border-radius: var(--fn-r-sm);
	background: #fff;
	color: var(--fn-text);
	font-family: var(--fn-font);
	box-shadow: none;
	transition: border-color .25s, box-shadow .25s;
}
body.fn-theme .woocommerce form .form-row textarea,
body.fn-theme .woocommerce-checkout textarea { min-height: 112px; border-radius: 18px; }
body.fn-theme .woocommerce form .form-row .input-text:focus,
body.fn-theme .woocommerce form .form-row textarea:focus,
body.fn-theme .woocommerce form .form-row select:focus,
body.fn-theme .woocommerce-checkout .input-text:focus,
body.fn-theme .woocommerce-MyAccount-content .input-text:focus { border-color: var(--fn-sky-400); box-shadow: 0 0 0 4px rgba(56, 189, 248, .18); outline: none; }
body.fn-theme .woocommerce form .form-row.woocommerce-invalid .input-text,
body.fn-theme .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--fn-err); box-shadow: 0 0 0 3px rgba(239, 68, 68, .12); }
/* select2 (country / state pickers that WooCommerce swaps in when JS runs) */
body.fn-theme .woocommerce .select2-container--default .select2-selection--single,
body.fn-theme .select2-container--default .select2-selection--single {
	height: 48px;
	border: 1px solid rgba(56, 189, 248, .32);
	border-radius: var(--fn-r-sm);
	background: #fff;
	display: flex;
	align-items: center;
}
body.fn-theme .select2-container--default .select2-selection--single .select2-selection__rendered { padding-inline: 16px 36px; line-height: 46px; color: var(--fn-text); font-family: var(--fn-font); }
body.fn-theme .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; inset-inline-end: 8px; }
body.fn-theme .select2-container--default.select2-container--focus .select2-selection--single,
body.fn-theme .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--fn-sky-400); box-shadow: 0 0 0 4px rgba(56, 189, 248, .18); }
body.fn-theme .select2-dropdown { border: 1px solid var(--fn-glass-brd); border-radius: 16px; overflow: hidden; box-shadow: var(--fn-shadow-hover); font-family: var(--fn-font); }
body.fn-theme .select2-container--default .select2-results__option--highlighted[aria-selected],
body.fn-theme .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--fn-sky-500); color: #fff; }
body.fn-theme .woocommerce-info a,
body.fn-theme .woocommerce-message a:not(.button),
body.fn-theme .woocommerce-error a { color: var(--fn-sky-700); font-weight: 800; text-decoration: none; border-bottom: 1px dashed rgba(2, 132, 199, .5); }
body.fn-theme .woocommerce-info a:hover,
body.fn-theme .woocommerce-message a:not(.button):hover { color: var(--fn-sky-500); border-bottom-style: solid; }

/* order review table, radios/checkboxes, privacy text */
body.fn-theme .woocommerce-checkout input[type="radio"],
body.fn-theme .woocommerce-checkout input[type="checkbox"],
body.fn-theme .woocommerce-account input[type="checkbox"],
body.fn-theme .woocommerce-account input[type="radio"] { accent-color: var(--fn-sky-500); }
body.fn-theme .woocommerce-checkout-review-order-table th,
body.fn-theme .woocommerce-checkout-review-order-table td { background: transparent !important; border-color: rgba(56, 189, 248, .18) !important; padding: 14px 16px; }
body.fn-theme .woocommerce-checkout-review-order-table thead th { color: var(--fn-muted); font-size: .8rem; font-weight: 800; }
body.fn-theme .woocommerce-checkout-review-order-table tfoot th { color: var(--fn-slate); font-weight: 700; }
body.fn-theme .woocommerce-checkout-review-order-table .order-total th,
body.fn-theme .woocommerce-checkout-review-order-table .order-total td { color: var(--fn-ink); font-size: 1.1rem; font-weight: 900; }
body.fn-theme .woocommerce-checkout-review-order-table .order-total .amount { color: var(--fn-sky-700); }
body.fn-theme .woocommerce-privacy-policy-text,
body.fn-theme .woocommerce-terms-and-conditions-wrapper { font-size: .86rem; line-height: 2; color: var(--fn-slate); }
body.fn-theme .woocommerce-privacy-policy-text a,
body.fn-theme .woocommerce-terms-and-conditions-wrapper a,
body.fn-theme .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-button):not(.woocommerce-Button),
body.fn-theme .woocommerce-LostPassword a { color: var(--fn-sky-700); font-weight: 700; text-decoration: none; border-bottom: 1px dashed rgba(2, 132, 199, .45); }

/* primary actions on checkout / account forms: WooCommerce's grey ".button" beat the theme's gradient (only .alt buttons got it) */
body.fn-theme .woocommerce .woocommerce-form-login__submit,
body.fn-theme .woocommerce .woocommerce-form-register__submit,
body.fn-theme .woocommerce .woocommerce-form-coupon button.button,
body.fn-theme .woocommerce-account .woocommerce-Button,
body.fn-theme .woocommerce-account .woocommerce-EditAccountForm button.button,
body.fn-theme .woocommerce-account .woocommerce-address-fields button.button,
body.fn-theme .woocommerce-account .woocommerce-ResetPassword button.button,
body.fn-theme .woocommerce-checkout #place_order {
	min-height: 48px;
	padding: 0 30px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fn-grad) var(--fn-sky-500) !important;
	color: #fff !important;
	font-family: var(--fn-font);
	font-weight: 800;
	box-shadow: var(--fn-glow);
	transition: transform .35s var(--fn-ease), box-shadow .35s;
}
body.fn-theme .woocommerce .woocommerce-form-login__submit:hover,
body.fn-theme .woocommerce .woocommerce-form-register__submit:hover,
body.fn-theme .woocommerce .woocommerce-form-coupon button.button:hover,
body.fn-theme .woocommerce-account .woocommerce-Button:hover,
body.fn-theme .woocommerce-account .woocommerce-EditAccountForm button.button:hover,
body.fn-theme .woocommerce-account .woocommerce-address-fields button.button:hover { transform: translateY(-2px); box-shadow: var(--fn-shadow-hover); }
body.fn-theme .woocommerce-form-login .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--fn-slate); }
body.fn-theme .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }

/* My Account menu: no underline; on phones a single scrollable row of chips instead of a 385px tall list above the content */
body.fn-theme .woocommerce-MyAccount-navigation li a { text-decoration: none; }
@media (max-width: 767px) {
	body.fn-theme .woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: nowrap;
		gap: 8px;
		padding: 10px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	body.fn-theme .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	body.fn-theme .woocommerce-MyAccount-navigation li { flex: 0 0 auto; margin: 0; }
	body.fn-theme .woocommerce-MyAccount-navigation li a { padding: 9px 16px; font-size: .86rem; white-space: nowrap; }
	body.fn-theme .woocommerce-MyAccount-navigation li a:hover { padding-inline-start: 16px; }
	body.fn-theme .woocommerce-MyAccount-navigation { margin-bottom: 14px; }
}

/* action buttons inside notices ("Browse products", "Confirm email address", "View cart"): small gradient pills, no link underline */
body.fn-theme .woocommerce-info a.button,
body.fn-theme .woocommerce-message a.button,
body.fn-theme .woocommerce-error a.button,
body.fn-theme .woocommerce-MyAccount-content .woocommerce-info a.woocommerce-Button {
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fn-grad) var(--fn-sky-500) !important;
	color: #fff !important;
	font-weight: 800;
	padding: 8px 20px;
	box-shadow: var(--fn-glow);
	text-decoration: none;
}

/* "مبلغ در درگاه بانک (ریال)" line from the features plugin: the bank page charges Rial while the shop shows Toman */
body.fn-theme tr.fnf-rial-row th,
body.fn-theme tr.fnf-rial-row td {
	border-top: 1px dashed rgba(56, 189, 248, .45) !important;
	color: var(--fn-sky-700) !important;
	font-size: .95rem;
	font-weight: 800;
}
body.fn-theme tr.fnf-rial-row td strong { color: var(--fn-sky-700); }

/* ==========================================================================
   10. CART  (WoodMart cart: .cart-content-wrapper > form.woocommerce-cart-form + .cart_totals > .cart-totals-inner)
   Before: the item table, the totals card AND the totals table were all glass cards stacked inside each other, the quantity
   box rendered as two clipped half-circles, and every control was a different grey. Now: item rows = separate cards,
   totals = ONE card, quantity = a pill with two round buttons, actions = pills.
   ========================================================================== */
body.fn-theme .woocommerce-cart-form { border-radius: 0; overflow: visible; }
body.fn-theme .woocommerce-cart-form__contents {
	width: 100%;
	background: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	overflow: visible !important;
	border-collapse: separate !important;
	border-spacing: 0 14px;
}
body.fn-theme .woocommerce-cart-form__contents thead th {
	background: none !important;
	border: 0 !important;
	padding: 4px 16px;
	color: var(--fn-muted);
	font-size: .8rem;
	font-weight: 800;
	text-align: start;
}
body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td {
	padding: 16px;
	background: var(--fn-glass);
	border: 0 !important;
	border-block: 1px solid var(--fn-glass-brd) !important;
	vertical-align: middle;
	box-shadow: 0 10px 28px rgba(56, 189, 248, .08);
}
body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td:first-child { border-inline-start: 1px solid var(--fn-glass-brd) !important; border-start-start-radius: 24px; border-end-start-radius: 24px; }
body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td:last-child { border-inline-end: 1px solid var(--fn-glass-brd) !important; border-start-end-radius: 24px; border-end-end-radius: 24px; }
body.fn-theme .woocommerce-cart-form__contents tr.cart_item:hover > td { background: rgba(255, 255, 255, .95); }

body.fn-theme .woocommerce-cart-form__contents .product-thumbnail img { width: 78px; height: 78px; object-fit: contain; padding: 6px; border-radius: 18px; background: #fff; border: 1px solid var(--fn-glass-brd); }
body.fn-theme .woocommerce-cart-form__contents .product-name a { color: var(--fn-ink); font-size: .96rem; font-weight: 800; line-height: 1.8; text-decoration: none; transition: color .25s; }
body.fn-theme .woocommerce-cart-form__contents .product-name a:hover { color: var(--fn-sky-600); }
body.fn-theme .woocommerce-cart-form__contents td.product-price,
body.fn-theme .woocommerce-cart-form__contents td.product-price .amount { color: var(--fn-slate); font-size: .92rem; font-weight: 600; }
body.fn-theme .woocommerce-cart-form__contents td.product-subtotal,
body.fn-theme .woocommerce-cart-form__contents td.product-subtotal .amount { color: var(--fn-sky-700); font-size: 1.02rem; font-weight: 900; }

/* remove button */
body.fn-theme .woocommerce-cart-form__contents a.remove {
	display: inline-grid !important;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50% !important;
	background: rgba(239, 68, 68, .1) !important;
	color: var(--fn-err) !important;
	font-size: 0 !important; /* hides the literal "×" text; the icon comes from ::before */
	line-height: 1;
	text-decoration: none;
}
body.fn-theme .woocommerce-cart-form__contents a.remove::before { font-size: 14px; line-height: 1; color: inherit; }
body.fn-theme .woocommerce-cart-form__contents a.remove:hover { background: var(--fn-err) !important; color: #fff !important; }

/* quantity: one pill, two round buttons (same look as the product page) */
body.fn-theme .woocommerce-cart-form .quantity,
body.fn-theme .woocommerce-mini-cart .quantity {
	display: inline-flex !important;
	align-items: center;
	gap: 2px;
	width: auto !important;
	height: 46px;
	margin: 0 !important;
	padding: 0 4px;
	overflow: visible !important;
	border: 1px solid var(--fn-sky-200) !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: var(--fn-shadow-sm);
}
body.fn-theme .woocommerce-cart-form .quantity :is(.minus, .plus, input[type="button"], button) {
	position: static !important;
	display: grid !important;
	place-items: center;
	width: 34px !important;
	min-width: 34px;
	height: 34px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(14, 165, 233, .12) !important;
	color: var(--fn-sky-700) !important;
	font-size: 1.1rem !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	transform: none !important;
	transition: background .25s, color .25s;
}
body.fn-theme .woocommerce-cart-form .quantity :is(.minus, .plus, input[type="button"], button):hover { background: var(--fn-sky-500) !important; color: #fff !important; }
body.fn-theme .woocommerce-cart-form .quantity input.qty {
	width: 40px !important;
	height: 34px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--fn-ink) !important;
	font-size: .98rem !important;
	font-weight: 900 !important;
	text-align: center;
	-moz-appearance: textfield;
}

/* coupon + update row */
body.fn-theme .woocommerce-cart-form .wd-cart-action-row > td,
body.fn-theme .woocommerce-cart-form td.actions { padding: 6px 0 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
body.fn-theme .woocommerce-cart-form .cart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 4px; }
body.fn-theme .woocommerce-cart-form .wd-coupon-form { display: flex; flex-wrap: wrap; align-items: center; flex: 1 1 320px; gap: 10px; }
body.fn-theme .woocommerce-cart-form .wd-coupon-form .input-text,
body.fn-theme .woocommerce-cart-form #coupon_code { flex: 1 1 200px; max-width: 280px; min-height: 46px; padding: 0 20px; border-radius: 999px !important; }
body.fn-theme .woocommerce-cart-form .wd-coupon-form .button,
body.fn-theme .woocommerce-cart-form button[name="apply_coupon"] {
	min-height: 46px;
	padding: 0 24px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fn-grad) var(--fn-sky-500) !important;
	color: #fff !important;
	font-weight: 800;
	box-shadow: var(--fn-glow);
}
body.fn-theme .woocommerce-cart-form button[name="update_cart"] {
	min-height: 46px;
	padding: 0 24px;
	border: 1px solid var(--fn-sky-300) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--fn-sky-700) !important;
	font-weight: 800;
	box-shadow: var(--fn-shadow-sm);
}
body.fn-theme .woocommerce-cart-form button[name="update_cart"]:disabled { opacity: .5; cursor: default; box-shadow: none; }
body.fn-theme .woocommerce-cart-form button[name="update_cart"]:not(:disabled):hover { background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; }

/* totals: ONE card */
body.fn-theme .cart-collaterals .cart_totals,
body.fn-theme .cart_totals { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; backdrop-filter: none; -webkit-backdrop-filter: none; }
body.fn-theme .cart-totals-inner,
body.fn-theme .cart_totals:not(:has(.cart-totals-inner)) {
	box-sizing: border-box;
	padding: clamp(20px, 2.6vw, 30px) !important;
	border: 1px solid var(--fn-glass-brd) !important;
	border-radius: 28px !important;
	background: var(--fn-glass) !important;
	box-shadow: var(--fn-shadow-card) !important;
}
body.fn-theme .cart-totals-inner > h2,
body.fn-theme .cart_totals > h2 { position: relative; margin: 0 0 18px; padding-bottom: 14px; color: var(--fn-ink); font-size: 1.15rem !important; font-weight: 900; text-transform: none !important; }
body.fn-theme .cart-totals-inner > h2::after,
body.fn-theme .cart_totals > h2::after { content: ''; position: absolute; bottom: 0; inset-inline-start: 0; width: 36px; height: 3px; border-radius: 3px; background: var(--fn-grad) var(--fn-sky-500); }
body.fn-theme .cart_totals table.shop_table {
	width: 100%;
	margin: 0 0 18px;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	overflow: visible;
}
body.fn-theme .cart_totals table.shop_table :is(th, td) {
	padding: 14px 0 !important;
	background: none !important;
	border: 0 !important;
	border-bottom: 1px dashed rgba(56, 189, 248, .3) !important;
	vertical-align: top;
}
body.fn-theme .cart_totals table.shop_table tr:last-child :is(th, td) { border-bottom: 0 !important; }
body.fn-theme .cart_totals table.shop_table th { width: 34%; color: var(--fn-slate); font-size: .9rem; font-weight: 800; text-align: start; }
body.fn-theme .cart_totals table.shop_table td { color: var(--fn-text); font-size: .92rem; text-align: end; }
body.fn-theme .cart_totals .cart-subtotal .amount { color: var(--fn-text); font-weight: 700; }
body.fn-theme .cart_totals .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
body.fn-theme .cart_totals .woocommerce-shipping-methods li { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0 0 6px; }
body.fn-theme .cart_totals .woocommerce-shipping-methods input.shipping_method { position: static; float: none; margin: 0; accent-color: var(--fn-sky-500); }
body.fn-theme .cart_totals .woocommerce-shipping-destination { margin: 6px 0; color: var(--fn-muted); font-size: .84rem; line-height: 1.9; }
body.fn-theme .cart_totals .shipping-calculator-button { color: var(--fn-sky-700); font-size: .86rem; font-weight: 800; text-decoration: none; border-bottom: 1px dashed rgba(2, 132, 199, .45); }
body.fn-theme .cart_totals .order-total th { color: var(--fn-ink); font-size: 1rem; font-weight: 900; }
body.fn-theme .cart_totals .order-total .amount { color: var(--fn-sky-700); font-size: 1.25rem; font-weight: 900; }
body.fn-theme .cart_totals .wc-proceed-to-checkout { padding: 0; margin: 0; }
body.fn-theme .cart_totals .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fn-grad) var(--fn-sky-500) !important;
	color: #fff !important;
	font-size: 1rem;
	font-weight: 900;
	box-shadow: var(--fn-glow);
	transition: transform .35s var(--fn-ease), box-shadow .35s;
}
body.fn-theme .cart_totals .checkout-button:hover { transform: translateY(-2px); box-shadow: var(--fn-shadow-hover); }

/* reassurance list from the features plugin under the checkout button */
body.fn-theme .cart_totals .fnf-trust { margin: 18px 0 0; padding: 0; display: grid; gap: 8px; list-style: none; }
body.fn-theme .cart_totals .fnf-trust li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 16px;
	background: rgba(56, 189, 248, .06);
	color: var(--fn-slate);
	font-size: .88rem;
	font-weight: 700;
}
body.fn-theme .cart_totals .fnf-trust li i { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #fff; box-shadow: var(--fn-shadow-sm); font-style: normal; font-size: 1.05rem; }
body.fn-theme .cart_totals .fnf-trust li span { color: var(--fn-slate) !important; }

/* long carts: the totals stay in view while the items scroll */
@media (min-width: 1025px) {
	body.fn-theme .cart-content-wrapper > .cart_totals { position: sticky; top: 110px; align-self: flex-start; }
}

/* tablet / phone: items become cards (WoodMart turns the table into blocks) */
@media (max-width: 768.98px) {
	body.fn-theme .woocommerce-cart-form__contents { border-spacing: 0; }
	body.fn-theme .woocommerce-cart-form__contents thead { display: none; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item {
		display: block;
		position: relative;
		margin: 0 0 14px;
		padding: 14px 16px;
		border: 1px solid var(--fn-glass-brd);
		border-radius: 24px;
		background: var(--fn-glass);
		box-shadow: 0 10px 28px rgba(56, 189, 248, .08);
	}
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; background: none !important; border: 0 !important; border-bottom: 1px dashed rgba(56, 189, 248, .22) !important; border-radius: 0 !important; box-shadow: none !important; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td:last-child { border-bottom: 0 !important; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td:first-child,
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td:last-child { border-inline: 0 !important; border-radius: 0 !important; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td.product-remove { position: absolute; top: 12px; inset-inline-end: 12px; padding: 0; border: 0 !important; z-index: 2; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td.product-thumbnail { justify-content: center; padding-top: 4px; }
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td.product-thumbnail::before,
	body.fn-theme .woocommerce-cart-form__contents tr.cart_item > td.product-remove::before { display: none !important; }
	body.fn-theme .cart-content-wrapper { padding-inline: 12px; }
	body.fn-theme .woocommerce-cart-form__contents .product-thumbnail img { width: 96px; height: 96px; }
	body.fn-theme .woocommerce-cart-form .cart-actions { flex-direction: column; align-items: stretch; }
	body.fn-theme .woocommerce-cart-form .wd-coupon-form .input-text,
	body.fn-theme .woocommerce-cart-form #coupon_code { max-width: none; }
	body.fn-theme .cart_totals table.shop_table th { width: 40%; }
}

/* ==========================================================================
   11. BLOG  (index / archives / search: WoodMart blog loop · single post: Elementor template)
   Before: the blog index ran edge to edge (no container), two columns of mismatched cards with giant photos; a single post had a flat
   blue banner, an orange-topped white form and an unstyled sidebar. Now the same glass cards, banner and form as the rest of the site.
   ========================================================================== */
/* a real page container (these pages have no WoodMart wrapper, so .site-content filled the whole window) */
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-content-area.site-content {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--fn-max) + 2 * var(--fn-gutter));
	margin: clamp(24px, 3vw, 44px) auto clamp(40px, 5vw, 72px);
	padding-inline: var(--fn-gutter);
}
body.fn-theme.blog .wd-content-area.site-content::before {
	content: 'وبلاگ و مقالات آموزشی';
	display: block;
	margin-bottom: clamp(20px, 3vw, 34px);
	color: var(--fn-ink);
	font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.2rem);
	font-weight: 900;
	line-height: 1.7;
	text-align: center;
}
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder.wd-grid-g { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: clamp(16px, 2vw, 26px) !important; align-items: stretch; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post { margin: 0 !important; display: flex; min-width: 0; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-inner {
	display: flex !important;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 26px;
	background: var(--fn-glass);
	box-shadow: var(--fn-shadow-soft);
	transition: transform .5s var(--fn-ease), box-shadow .5s var(--fn-ease);
}
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post:hover .wd-post-inner { transform: translateY(-6px); box-shadow: var(--fn-shadow-hover); }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-thumb { position: relative; flex: none; aspect-ratio: 16 / 10; overflow: hidden; margin: 0 !important; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-img { height: 100%; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-img img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .8s var(--fn-ease); }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post:hover .wd-post-img img { transform: scale(1.06); }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-date {
	position: absolute;
	top: 12px;
	inset-inline-start: 12px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	padding: 6px 12px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 8px 20px rgba(14, 165, 233, .18);
	color: var(--fn-ink);
	line-height: 1.4;
}
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-content { display: flex; flex-direction: column; flex: 1 1 auto; gap: 8px; padding: 18px 20px 22px !important; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-cat { order: -1; margin: 0 !important; position: static !important; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-cat a { display: inline-flex; padding: 3px 12px; border-radius: 999px; background: rgba(56, 189, 248, .12); border: 1px solid rgba(56, 189, 248, .25); color: var(--fn-sky-700) !important; font-size: .76rem; font-weight: 800; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-title { margin: 0 !important; font-size: 1.08rem !important; font-weight: 900 !important; line-height: 1.8 !important; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-title a { color: var(--fn-ink) !important; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin: 0 !important; color: var(--fn-mute); font-size: .76rem; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-meta .wd-post-share { display: none; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder .wd-post-author { display: inline-flex; align-items: center; gap: 6px; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder :is(.wd-post-excerpt, .entry-content) { display: -webkit-box; margin: 0 !important; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; color: var(--fn-slate); font-size: .9rem; line-height: 2; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder :is(.wd-post-read-more, .read-more-section) { margin-top: auto !important; padding-top: 6px; }
body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder :is(.wd-post-read-more, .read-more-section) a { display: inline-flex; align-items: center; gap: 6px; color: var(--fn-sky-600) !important; font-size: .86rem; font-weight: 800; }
@media (max-width: 1024px) { body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder.wd-grid-g { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { body.fn-theme:is(.blog, .archive, .search):not(.woocommerce-page) .wd-blog-holder.wd-grid-g { grid-template-columns: 1fr !important; } }

/* ---- single post (Elementor template): banner, article card, sidebar card, form, post navigation ---- */
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title) {
	position: relative;
	overflow: hidden;
	min-height: 0 !important;
	padding: clamp(34px, 5vw, 60px) 0 clamp(30px, 4vw, 44px) !important;
	border-radius: 0 0 40px 40px;
	background: var(--fn-grad-ocean) #0b1e3a !important;
	box-shadow: 0 20px 50px rgba(3, 105, 161, .22);
}
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title)::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(520px 320px at 85% 0%, rgba(56, 189, 248, .35), transparent 70%), repeating-radial-gradient(circle at 78% 22%, rgba(255, 255, 255, .05) 0 1px, transparent 1px 46px);
	pointer-events: none;
}
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title) > .e-con-inner { position: relative; gap: 18px; align-items: center; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title) .elementor-heading-title { color: #fff !important; font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem) !important; font-weight: 900 !important; line-height: 1.7 !important; text-align: center !important; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title) .elementor-widget { margin: 0 !important; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-theme-post-title) .elementor-widget-progress-tracker { width: min(360px, 80%); }
body.fn-theme.single-post .elementor-scrolling-tracker { height: 6px !important; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, .18) !important; }
body.fn-theme.single-post .elementor-scrolling-tracker-progress { border-radius: 999px; background: linear-gradient(90deg, #7dd3fc, #38bdf8) !important; }
body.fn-theme.single-post .elementor-scrolling-tracker-percentage { display: none; }

body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) { margin: 0 !important; padding-block: clamp(28px, 4vw, 44px) 20px !important; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner { align-items: flex-start; gap: clamp(18px, 2.4vw, 32px); }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) .elementor-widget { margin-block-end: 0 !important; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner > .e-con:has(.elementor-widget-theme-post-content) {
	gap: 16px;
	padding: clamp(18px, 2.4vw, 30px) !important;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 28px;
	background: var(--fn-glass) !important;
	box-shadow: var(--fn-shadow-card);
}
body.fn-theme.single-post .elementor-widget-theme-post-featured-image img { display: block; width: 100%; height: auto; border-radius: 22px; box-shadow: 0 18px 40px rgba(14, 165, 233, .16); }
body.fn-theme.single-post .elementor-widget-theme-post-content { color: var(--fn-text); font-size: 1.02rem; line-height: 2.15; }
body.fn-theme.single-post .elementor-widget-theme-post-content p { margin: 0 0 1.1em; }
body.fn-theme.single-post .elementor-widget-theme-post-content :is(h2, h3, h4) { margin: 1.4em 0 .5em; color: var(--fn-ink); font-weight: 900; line-height: 1.7; }
body.fn-theme.single-post .elementor-widget-theme-post-content a { color: var(--fn-sky-600); }
body.fn-theme.single-post .elementor-widget-post-info .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px; }
body.fn-theme.single-post .elementor-widget-post-info .elementor-icon-list-item { padding: 5px 14px; border: 1px solid rgba(56, 189, 248, .22); border-radius: 999px; background: rgba(56, 189, 248, .1); color: var(--fn-sky-700); font-size: .8rem; font-weight: 700; }
body.fn-theme.single-post .elementor-widget-post-info .elementor-icon-list-item * { color: inherit !important; font-size: inherit !important; }
body.fn-theme.single-post .elementor-widget-post-info .elementor-icon-list-item::after { display: none !important; }

/* sidebar = one glass card (share · more posts · contact form) */
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner > .e-con:not(:has(.elementor-widget-theme-post-content)) {
	position: sticky;
	top: 130px;
	gap: 16px !important;
	padding: 22px !important;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 28px;
	background: var(--fn-glass) !important;
	box-shadow: var(--fn-shadow-card);
}
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) > .e-con { margin: 0 !important; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner > .e-con:not(:has(.elementor-widget-theme-post-content)) > .e-con:not(:has(form)) { padding: 0 0 14px !important; border-bottom: 1px dashed rgba(56, 189, 248, .3); }
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) .elementor-widget-heading .elementor-heading-title { color: var(--fn-ink) !important; font-size: 1rem !important; font-weight: 900 !important; }
body.fn-theme.single-post .elementor-posts-container { gap: 14px !important; }
body.fn-theme.single-post .elementor-post { align-items: center; }
body.fn-theme.single-post .elementor-post__thumbnail__link,
body.fn-theme.single-post .elementor-post__thumbnail { overflow: hidden; border-radius: 14px !important; }
body.fn-theme.single-post .elementor-post__title,
body.fn-theme.single-post .elementor-post__title a { color: var(--fn-ink) !important; font-size: .95rem !important; font-weight: 800 !important; line-height: 1.8 !important; }
body.fn-theme.single-post .elementor-post__title a:hover { color: var(--fn-sky-600) !important; }
body.fn-theme.single-post .elementor-post__excerpt,
body.fn-theme.single-post .elementor-post__meta-data { color: var(--fn-mute) !important; font-size: .76rem !important; line-height: 1.8 !important; }
body.fn-theme.single-post .elementor-post__read-more { color: var(--fn-sky-600) !important; font-size: .82rem !important; font-weight: 800; }
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner > .e-con:not(:has(.elementor-widget-theme-post-content)) > .e-con:has(form) {
	margin-top: 6px !important;
	padding: 22px !important;
	border: 1px solid var(--fn-glass-brd) !important;
	border-radius: 22px;
	background: linear-gradient(145deg, #fff, #eaf6ff) !important;
	box-shadow: none !important;
}
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) form .elementor-field-textual {
	box-sizing: border-box;
	min-height: 48px;
	padding: 10px 16px;
	border: 1.5px solid rgba(56, 189, 248, .35) !important;
	border-radius: 14px !important;
	background: #fff !important;
	color: var(--fn-ink);
	font-size: .9rem;
	box-shadow: none !important;
	transition: border-color .3s, box-shadow .3s;
}
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) form .elementor-field-textual:focus { border-color: var(--fn-sky-400) !important; box-shadow: 0 0 0 4px rgba(56, 189, 248, .18) !important; outline: none; }
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) form .elementor-button { justify-content: center; width: 100%; min-height: 48px; border: 0 !important; border-radius: 999px !important; background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; font-weight: 800; box-shadow: var(--fn-glow); }
body.fn-theme.single-post .e-con:not(:has(.elementor-widget-theme-post-content)) form .elementor-button:hover { transform: translateY(-2px); }

/* previous / next post → two glass pills */
body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .elementor-widget-post-navigation) { margin: 0 0 clamp(36px, 5vw, 64px) !important; }
body.fn-theme.single-post .elementor-post-navigation { gap: 16px; border: 0 !important; }
body.fn-theme.single-post .elementor-post-navigation__separator-wrapper { display: none; }
body.fn-theme.single-post .elementor-post-navigation__link { flex: 1; }
body.fn-theme.single-post .elementor-post-navigation__link a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 22px;
	border: 1px solid var(--fn-glass-brd);
	border-radius: 20px;
	background: var(--fn-glass);
	box-shadow: var(--fn-shadow-soft);
	color: var(--fn-ink) !important;
	font-weight: 800;
	transition: transform .35s var(--fn-ease), box-shadow .35s;
}
body.fn-theme.single-post .elementor-post-navigation__link a:hover { transform: translateY(-3px); box-shadow: var(--fn-shadow-hover); }
@media (max-width: 1024px) {
	body.fn-theme.single-post .e-con.e-parent:has(> .e-con-inner > .e-con .elementor-widget-theme-post-content) > .e-con-inner > .e-con:not(:has(.elementor-widget-theme-post-content)) { position: static; }
}

/* ==========================================================================
   12. WISHLIST & COMPARE pages
   Wishlist = an Elementor page whose boxed container was 1405px wide (edge to edge) with a bare table; compare = a plain WordPress page
   that also had no container. Same container + glass table rows as the cart.
   ========================================================================== */
body.fn-theme.page:not([class*="elementor-page"]) .wd-content-area.site-content {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--fn-max) + 2 * var(--fn-gutter));
	margin: clamp(24px, 3vw, 44px) auto clamp(40px, 5vw, 72px);
	padding-inline: var(--fn-gutter);
}
body.fn-theme.woocommerce-wishlist .elementor[data-elementor-type="wp-page"] > .e-con > .e-con-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--fn-max) + 2 * var(--fn-gutter));
	margin-inline: auto;
	padding: clamp(24px, 3vw, 44px) var(--fn-gutter) clamp(36px, 5vw, 64px);
}
body.fn-theme.woocommerce-wishlist .wishlist-title { margin: 0 0 20px; }
body.fn-theme.woocommerce-wishlist .wishlist-title :is(h2, .wishlist-title-container) { color: var(--fn-ink); font-size: clamp(1.3rem, 1.1rem + .8vw, 1.8rem); font-weight: 900; line-height: 1.7; }
body.fn-theme.woocommerce-wishlist table.wishlist_table { width: 100%; border: 0 !important; border-collapse: separate !important; border-spacing: 0 12px; background: none !important; }
body.fn-theme.woocommerce-wishlist table.wishlist_table:has(.wishlist-empty) thead { display: none; }
body.fn-theme.woocommerce-wishlist table.wishlist_table thead th { padding: 4px 16px; border: 0 !important; background: none !important; color: var(--fn-muted); font-size: .8rem; font-weight: 800; text-align: start; }
body.fn-theme.woocommerce-wishlist table.wishlist_table tbody td { padding: 16px !important; border: 0 !important; border-block: 1px solid var(--fn-glass-brd) !important; background: var(--fn-glass) !important; vertical-align: middle; color: var(--fn-text); }
body.fn-theme.woocommerce-wishlist table.wishlist_table tbody td:first-child { border-inline-start: 1px solid var(--fn-glass-brd) !important; border-start-start-radius: 24px; border-end-start-radius: 24px; }
body.fn-theme.woocommerce-wishlist table.wishlist_table tbody td:last-child { border-inline-end: 1px solid var(--fn-glass-brd) !important; border-start-end-radius: 24px; border-end-end-radius: 24px; }
body.fn-theme.woocommerce-wishlist table.wishlist_table td.wishlist-empty { padding: 48px 20px !important; border: 1px solid var(--fn-glass-brd) !important; border-radius: 24px !important; box-shadow: var(--fn-shadow-soft); color: var(--fn-slate); font-size: 1rem; font-weight: 700; text-align: center; }
body.fn-theme.woocommerce-wishlist table.wishlist_table .product-name a { color: var(--fn-ink); font-weight: 800; }
body.fn-theme.woocommerce-wishlist table.wishlist_table .product-name a:hover { color: var(--fn-sky-600); }
body.fn-theme.woocommerce-wishlist table.wishlist_table .product-thumbnail img { width: 78px; height: 78px; padding: 6px; object-fit: contain; border: 1px solid var(--fn-glass-brd); border-radius: 18px; background: #fff; }
body.fn-theme.woocommerce-wishlist table.wishlist_table :is(.button, a.add_to_cart_button) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border: 0 !important; border-radius: 999px !important; background: var(--fn-grad) var(--fn-sky-500) !important; color: #fff !important; font-weight: 800; box-shadow: var(--fn-glow); }
body.fn-theme.woocommerce-wishlist table.wishlist_table .remove_from_wishlist { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(239, 68, 68, .1); color: var(--fn-err) !important; }
@media (max-width: 767px) {
	body.fn-theme.woocommerce-wishlist table.wishlist_table tbody td { border-radius: 0 !important; }
}
