/*
 * Refined editorial typography.
 *
 * This file changes typography only. It deliberately does not target the
 * protected Sora section/category/bundle/custom-order/countdown headings,
 * the Cormorant Garamond primary hero lines and statistics, or homepage
 * Gulzar Urdu copy.
 */

:root {
	--zm-editorial-sans: "Manrope", "Inter", system-ui, sans-serif;
}

body:not(.wp-admin) {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Reading copy and fields: light, calm and slightly open. */
body:not(.wp-admin) :where(
	p,
	li,
	dt,
	dd,
	label,
	input,
	select,
	textarea
):not(:where(
	[lang="ur"],
	[lang="ur"] *,
	[dir="rtl"],
	[dir="rtl"] *,
	.zm-brand-story__urdu,
	.zm-brand-story__urdu *
)) {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
	letter-spacing: 0.008em;
}

body:not(.wp-admin) :where(input, select, textarea)::placeholder {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
	letter-spacing: 0.015em;
}

/* Navigation and footer copy retain their current sizes and geometry. */
body:not(.wp-admin) :where(
	.whb-header .nav-link-text,
	.whb-header .wd-nav > li > a,
	.mobile-nav .nav-link-text,
	.wd-footer p,
	.wd-footer a,
	.wd-footer li
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
	letter-spacing: 0.035em;
}

/* Text actions use medium emphasis instead of the previous heavy weight. */
body:not(.wp-admin) :is(
	.btn,
	a.button,
	button.button,
	.add_to_cart_button,
	.wd-buy-now-btn,
	input[type="submit"],
	input[type="reset"],
	button[type="submit"],
	.elementor-button,
	.wp-element-button,
	.wp-block-button__link,
	.filter-pill,
	.mode-tab,
	.zm-custom-order-float,
	.zmc-checkout-whatsapp
):not(:where(.quantity *, .searchsubmit, .searchform *, .wd-action-btn *, .wd-tools-element *, #wpadminbar *)) {
	font-family: var(--zm-editorial-sans) !important;
	font-weight: 500 !important;
}

/* Homepage body roles. Protected display headings are intentionally absent. */
#homepage-content :is(
	.section-subtitle,
	.feature-card__text,
	.product-card__desc,
	.grid-card__desc,
	.bundle-card__desc,
	.bundle-card__items,
	.about__text,
	.review-card__text,
	.zm-ref-hero__description,
	.hero__subtitle,
	.zm-customer-note blockquote
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
	letter-spacing: 0.01em;
}

#homepage-content :is(
	.eyebrow,
	.section-header__eyebrow,
	.bundle-card__save-badge,
	.bundle-card__deal-badge,
	.timer-unit__label,
	.hero__badge,
	.hero__eyebrow-text,
	.hero__eyebrow-sub,
	.hero__stat-label,
	.zm-ref-hero__eyebrow,
	.zm-ref-hero__promises span,
	.zm-ref-categories__eyebrow,
	.zm-ref-categories__nav,
	.zm-ref-category__detail,
	.zm-trust-story__chapter,
	.zm-quote__location
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
}

/* Product names and prices use a quiet editorial hierarchy. */
#homepage-content :is(
	.product-card__name,
	.grid-card__name
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
	letter-spacing: 0.005em;
}

#homepage-content :is(
	.product-card__price,
	.grid-card__price,
	.bundle-card__price
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
	letter-spacing: 0;
}

#homepage-content :is(
	.bundle-card__original,
	.bundle-card__items li,
	.bundle-card__details summary
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
}

#homepage-content .bundle-card__details summary {
	font-weight: 400;
	letter-spacing: 0.025em;
}

/* Supporting component titles are not part of the protected Sora set. */
#homepage-content :is(
	.feature-card__title,
	.quick-view-modal__title,
	.recipe-modal__title,
	.form-card__title,
	.summary-card__title,
	.custom-product-item__title,
	.submission-method__content strong,
	.pkg-card__box strong,
	.review-card__name
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
	letter-spacing: 0.005em;
}

#homepage-content :is(
	.flash-card__price,
	.quick-view-modal__price,
	.custom-product-item__price,
	.summary-row--total,
	.row-line-total,
	.builder-search-result__price,
	.zm-cart-status__title
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
}

#homepage-content :is(
	.product-card__cat,
	.grid-card__cat,
	.flash-card__save,
	.product-label,
	.zm-cart-status__detail,
	.builder-search-result__meta,
	.submission-method__meta,
	.submission-flow span,
	.builder-guidance__item span,
	.builder-row__number,
	.summary-card__eyebrow,
	.tag-label,
	.row-label,
	.form-label,
	.optional
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
}

#homepage-content :is(
	.cat-card__view-all,
	.custom-order-header__back,
	.custom-order-header__badge span,
	.form-card__step,
	.mode-tab,
	.mode-tab__text strong,
	.mode-tab__text small,
	.mode-tab-divider,
	.variant-label,
	.variant-pill,
	.quick-tag-btn,
	.qty-btn-sub,
	.qty-btn-add,
	.qty-input,
	.quantity-picker .qty-btn,
	.row-qty-btn,
	.row-qty-input,
	.row-remove-btn,
	.add-product-btn,
	.whatsapp-submit-btn,
	.summary-option-btn,
	.builder-search-result__name
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
}

/* Secondary hero caption. */
#homepage-content .zm-ref-hero__caption p { font-family: var(--zm-editorial-sans); font-weight: 300; }

/* WooCommerce cards, forms and supporting commerce copy. */
body :is(.wd-product, .product-grid-item) :is(
	.wd-entities-title,
	.woocommerce-loop-product__title,
	.wd-product-title
),
body.single-product .summary-inner .product_title {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
	letter-spacing: 0.005em;
}

body.woocommerce :is(.price, .woocommerce-Price-amount),
body.woocommerce-page :is(.price, .woocommerce-Price-amount),
body.single-product :is(.price, .woocommerce-Price-amount) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
}

body :is(
	.woocommerce-breadcrumb,
	.wd-breadcrumbs,
	.woocommerce-result-count,
	.wd-products-per-page,
	.woocommerce-product-details__short-description
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
	letter-spacing: 0.01em;
}

body :is(
	.woocommerce-tabs .tabs li a,
	.wd-nav-tabs li a,
	.woocommerce-MyAccount-navigation li a,
	.woocommerce form .form-row label
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
}

/* Cart and checkout formerly mixed heavy Inter/Fraunces rules. */
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-order-received,
.zmc-cart-shell,
.zmc-checkout-shell,
body.woocommerce-checkout .select2-dropdown {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
}

.zmc-cart-shell :is(
	h1,
	h2,
	h3,
	.zmc-entry-no,
	.zmc-receipt-heading,
	.zmc-cart-item__swatch,
	.zmc-cart-item__title,
	.zmc-cart-item__title a,
	.zmc-cart-recommendation__monogram,
	.zmc-cart-receipt__line--total
),
.zmc-checkout-shell :is(
	h1,
	h2,
	h3,
	.zmc-entry-no,
	.zmc-receipt-heading,
	.zmc-wax-seal
),
.zmc-receipt table.shop_table tfoot tr.order-total :is(th, td) {
	font-family: var(--zm-editorial-sans);
	font-weight: 400;
}

.zmc-cart-shell :is(strong, .amount),
.zmc-checkout-shell :is(strong, .amount) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
}

.zmc-cart-price-line strong,
.zmc-cart-qty-stepper input.qty,
.zmc-cart-qty-stepper input[type="number"],
.zmc-cart-qty-btn,
.zmc-cart-promo input.input-text,
.zmc-cart-shell :is(.woocommerce-info, .woocommerce-error, .woocommerce-message),
.zmc-checkout-shell :is(
	.woocommerce-form-coupon-toggle .woocommerce-info,
	.woocommerce-info,
	.woocommerce-error,
	.woocommerce-message
) {
	font-family: var(--zm-editorial-sans);
}

.zmc-cart-promo__button,
.zmc-cart-update,
.zmc-cart-recommendation__add,
.zmc-cart-checkout.checkout-button,
.zmc-receipt #place_order,
.zmc-receipt table.shop_table tfoot tr.order-total td,
.zmc-receipt table.shop_table tfoot tr.order-total td strong,
.zmc-receipt table.shop_table tfoot tr.order-total td .amount,
.zmc-receipt table.shop_table tfoot tr.order-total td bdi {
	font-family: var(--zm-editorial-sans) !important;
}

/* Brand-page display headings remain Sora; supporting copy becomes lighter. */
.zm-brand-page :is(
	p,
	li,
	.zm-brand-hero__meta,
	.zm-contact-detail p,
	.zm-blog-card p
):not(:where(.zm-brand-story__urdu, .zm-brand-story__urdu *)) {
	font-family: var(--zm-editorial-sans);
	font-weight: 300;
	letter-spacing: 0.01em;
}

.zm-brand-page :is(
	.zm-brand-eyebrow,
	.zm-section-kicker,
	.zm-btn,
	.zm-blog-cats a
) {
	font-family: var(--zm-editorial-sans);
	font-weight: 500;
}
