/* --- Forms (WooCommerce) --- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	padding: 0.75rem;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--wp--preset--color--primary);
	outline: none;
}

/* --- Star Ratings (review list / average rating) ---
   woocommerce-general.css is dequeued on product pages, so wc_get_rating_html()
   markup — .star-rating[role=img] > span[style="width:N%"] with text
   «Оценка N из 5» / "Rated N out of 5" — renders as raw text. Rebuild it with
   unicode stars: a muted 5-star base row plus a gold overlay clipped to the
   inline width percentage. Same glyph in both layers keeps them aligned; the
   span's trailing text starts past 100% width, so overflow:hidden clips it
   (it stays available to screen readers via the aria-label). Width/height/
   font resets guard against WC's own rules on pages where they still load. */
.star-rating {
	position: relative;
	display: inline-block;
	width: auto;
	height: auto;
	overflow: visible;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1;
	letter-spacing: 0.1em;
	white-space: nowrap;
	color: var(--wp--preset--color--text-muted);
}

.star-rating::before {
	content: "\2605\2605\2605\2605\2605";
}

.star-rating > span {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	padding: 0;
	overflow: hidden;
	white-space: nowrap;
	color: var(--wp--preset--color--primary) !important;
}

.star-rating > span::before {
	content: "\2605\2605\2605\2605\2605";
	position: static;
	color: inherit;
}

/* --- Primary Nav Menu (classic wp_nav_menu) --- */
.muus-primary-nav {
	display: flex;
	align-items: center;
}

.muus-nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 2rem;
	align-items: center;
}

.muus-nav-list li {
	list-style: none;
}

.muus-nav-list a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: color 0.3s ease;
}

.muus-nav-list a:hover,
.muus-nav-list .current-menu-item a {
	color: var(--wp--preset--color--primary);
}

/* --- Mobile Menu Toggle --- */
.muus-menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
	flex-direction: column;
	gap: 5px;
	z-index: 1001;
}

.muus-menu-toggle__bar {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--wp--preset--color--text);
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.muus-menu-toggle[aria-expanded="true"] .muus-menu-toggle__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.muus-menu-toggle[aria-expanded="true"] .muus-menu-toggle__bar:nth-child(2) {
	opacity: 0;
}

.muus-menu-toggle[aria-expanded="true"] .muus-menu-toggle__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.muus-menu-close {
	display: none;
}

@media (max-width: 781px) {
	.muus-menu-toggle {
		display: flex;
	}

	.muus-primary-nav {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: var(--wp--preset--color--background);
		z-index: 9999;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.muus-primary-nav.is-open {
		display: flex;
	}

	.muus-menu-close {
		display: block;
		position: absolute;
		top: 1.25rem;
		right: 1.25rem;
		background: none;
		border: none;
		cursor: pointer;
		width: 32px;
		height: 32px;
		padding: 0;
	}

	.muus-menu-close span {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 24px;
		height: 2px;
		background-color: var(--wp--preset--color--text);
	}

	.muus-menu-close span:first-child {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.muus-menu-close span:last-child {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.muus-primary-nav .muus-nav-list {
		flex-direction: column;
		gap: 2.5rem;
		text-align: center;
	}

	.muus-primary-nav .muus-nav-list a {
		font-size: 1.5rem;
		letter-spacing: 0.15em;
	}

	/* Hide lang switcher in header on mobile */
	.muus-header-actions .muus-lang-switcher {
		display: none;
	}

	/* Lang switcher inside mobile menu */
	.muus-primary-nav .muus-menu-lang {
		position: absolute;
		bottom: 3rem;
		left: 50%;
		transform: translateX(-50%);
	}

	/* RU only: the terms line needs a second row, and an out-of-flow switcher
	   pinned 3rem from the bottom has no vertical budget for one. Scoped to the
	   presence of that line so muusknife.com — which clones the same switcher
	   without it — keeps the layout it already ships. */
	.muus-primary-nav .muus-menu-lang:has(.muus-lang-switcher__terms) {
		position: static;
		margin-top: 2rem;
		transform: none;
	}

	.muus-primary-nav .muus-menu-lang .muus-lang-switcher {
		display: flex;
		gap: 0;
		justify-content: center;
		flex-wrap: wrap;
	}

	.muus-primary-nav .muus-menu-lang .muus-lang-switcher a {
		font-size: 1rem;
		letter-spacing: 0.1em;
	}

	.muus-primary-nav .muus-menu-lang .muus-lang-switcher__store {
		width: 100%;
		margin: 0.8rem 0 0;
		padding: 0;
		border: 0;
		text-align: center;
	}

	.muus-primary-nav .muus-menu-lang .muus-lang-switcher .muus-lang-switcher__store a {
		font-size: 0.75rem;
		letter-spacing: 0.02em;
		text-transform: none;
	}

	.muus-primary-nav .muus-menu-lang .muus-lang-switcher__terms {
		display: block;
		flex-basis: 100%;
		margin-top: 0.65rem;
		color: var(--wp--preset--color--text-muted);
		font-size: 0.75rem;
		letter-spacing: 0.02em;
		text-align: center;
	}

	.muus-language-offer {
		align-items: flex-start;
		gap: 0.55rem;
		max-width: calc(100vw - 1.5rem);
		padding: 0.7rem;
	}

	.muus-language-offer__message {
		font-size: 0.8rem;
	}

	.muus-language-offer__action {
		padding: 0.4rem 0.6rem;
		font-size: 0.7rem;
	}

	.muus-intl-offer {
		left: 0.75rem;
		align-items: flex-start;
		gap: 0.55rem;
		width: calc(100vw - 5.5rem);
		padding: 0.7rem;
		transform: none;
	}

	/* On a product page the sticky add-to-cart owns the bottom ~4rem of the
	   viewport. Clearing it the same way the chat FAB does (:5181) keeps the
	   offer from covering the buy button on the most conversion-critical
	   screen — the width above already leaves room for the FAB itself. */
	.single-product .muus-intl-offer {
		bottom: calc(5rem + env(safe-area-inset-bottom, 0px) + var(--muus-cookie-h, 0px));
	}

	.muus-intl-offer__title {
		font-size: 0.8rem;
	}

	.muus-intl-offer__message {
		font-size: 0.75rem;
	}

	.muus-intl-offer__action {
		padding: 0.4rem 0.6rem;
		font-size: 0.65rem;
	}

	.muus-intl-checkout-offer {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.75rem;
	}

	body.muus-menu-open {
		overflow: hidden;
	}
}

/* --- Footer Content Block --- */
.muus-footer-columns .muus-footer-col ul {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.muus-footer-columns .muus-footer-col a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
	transition: color 0.15s ease;
}

.muus-footer-columns .muus-footer-col a:hover {
	color: var(--wp--preset--color--primary);
}

.muus-footer-social a {
	display: inline-flex;
	color: var(--wp--preset--color--text-muted);
	transition: color 0.15s ease;
}

.muus-footer-social a:hover,
.muus-footer-social a:focus-visible {
	color: var(--wp--preset--color--primary);
}

.muus-footer-social svg {
	display: block;
}

.muus-newsletter-form input::placeholder {
	color: var(--wp--preset--color--text-muted);
}

.muus-newsletter-form button:hover {
	background-color: var(--wp--preset--color--text) !important;
}

@media (max-width: 781px) {
	.muus-footer-columns {
		flex-direction: column;
		gap: 2rem !important;
	}
}

/* --- Focus-visible (keyboard accessibility) --- */
.muus-menu-toggle:focus-visible,
.muus-cart-drawer__close:focus-visible,
.muus-cart-item__remove:focus-visible,
.muus-cart-item__qty button:focus-visible,
.muus-cart-icon:focus-visible,
.muus-gallery-arrow:focus-visible,
.muus-gallery-dot:focus-visible,
.muus-sort-btn:focus-visible,
.muus-filter-btn:focus-visible,
.muus-sticky-cta__button:focus-visible,
.muus-cookie-banner__accept:focus-visible,
.muus-cookie-banner__close:focus-visible,
.muus-add-to-cart:focus-visible,
.pswp__button:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #c8a97e);
	outline-offset: 2px;
}

/* Form inputs — accent border on keyboard focus */
.wc-block-components-text-input input:focus-visible,
.wc-block-components-textarea:focus-visible,
.muus-specs-accordion__content .comment-form input:focus-visible,
.muus-specs-accordion__content .comment-form textarea:focus-visible,
.muus-cart-drawer__coupon-input:focus-visible,
.woocommerce form input:focus-visible,
.wc-block-components-radio-control__option:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #c8a97e);
	outline-offset: -2px;
}

