/* Commissioner variable WOFF2 from Google Fonts / google/fonts (OFL.txt). */
@font-face {
	font-family: "Commissioner";
	src: url("../fonts/commissioner-cyrillic.woff2") format("woff2");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Commissioner";
	src: url("../fonts/commissioner-latin.woff2") format("woff2");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--color-text: #4c4c4c;
	--color-accent: #0033ff;
	--color-muted: #b8b8b8;
	--color-border: #d0d0d0;
	--color-hairline: #eceef0;
	--color-background: #f8f8f8;
	--color-error: #9a6f6f;
	--color-white: #ffffff;

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-8: 32px;
	--space-10: 40px;
	--space-12: 48px;
	--space-16: 64px;
	--page-gutter: 20px;
	--header-height: 40px;
	--content-top: 48px;
	--page-bottom: 128px;
	--control-h: 36px;
	--control-h-lg: 40px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--color-text);
	background: var(--color-white);
	font-family: "Commissioner", Arial, sans-serif;
	font-size: 12px;
	font-weight: 400;
}

img {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
a {
	color: inherit;
}

a {
	text-decoration: none;
}

button {
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
	outline: 1px solid var(--color-accent);
	outline-offset: 3px;
}

/* Woo focuses the cart notice after add-to-cart; the UA ring is a black box
   that has nothing to do with the design's accent focus. */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus {
	outline: 1px solid var(--color-accent);
	outline-offset: 3px;
}

.site-header-shell {
	position: relative;
	z-index: 30;
}

.site-header {
	position: relative;
	z-index: 2;
	height: var(--header-height);
	padding: 0 var(--page-gutter);
	background: var(--color-white);
}

.site-header__desktop,
.site-header__mobile {
	position: relative;
	display: grid;
	width: 100%;
	height: 100%;
	align-items: center;
}

.site-header__desktop {
	grid-template-columns: 1fr auto 1fr;
}

.site-header__mobile {
	display: none;
	grid-template-columns: 1fr auto 1fr;
}

.site-header__primary,
.site-header__utilities {
	display: flex;
	align-items: center;
	gap: 24px;
	white-space: nowrap;
}

.site-header__utilities {
	justify-content: flex-end;
}

.site-header__text-button,
.site-header__cart,
.site-header__utilities a {
	font-size: 12px;
	line-height: 16px;
	font-weight: 400;
	text-transform: lowercase;
}

.site-header__logo {
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.site-header__logo img {
	display: block;
	width: 81px;
	height: 16px;
}

.site-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1;
	width: 380px;
	height: min(872px, calc(100vh - var(--header-height)));
	height: min(872px, calc(100dvh - var(--header-height)));
	padding: var(--space-4);
	overflow-y: auto;
	background: rgb(255 255 255 / 40%);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
}

.site-menu[hidden] {
	display: none;
}

.site-menu__content {
	display: flex;
	min-height: 100%;
	flex-direction: column;
}

.site-menu__search {
	margin-bottom: 16px;
}

.site-menu__search input {
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: var(--color-text);
	background: transparent;
	font-size: 12px;
	line-height: 18px;
}

.site-menu__search input::placeholder {
	color: var(--color-text);
	opacity: 1;
}

.site-menu__categories,
.site-menu__buyers-list,
.site-menu__buyers-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-menu__categories li,
.site-menu__buyers-list li {
	margin: 0;
	padding: 0;
	font-size: 12px;
	line-height: 20px;
}

.site-menu__categories a,
.site-menu__buyers-list a {
	display: inline-block;
}

.site-menu__information {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	gap: 12px;
	margin-top: auto;
	padding-top: 32px;
}

.site-menu__brand-links,
.site-menu__buyers-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.site-menu__buyers-title {
	display: inline-block;
	font-weight: 600;
	/* Figma menu wording is lowercase; the nav menu item stores a capital. */
	text-transform: lowercase;
}

.site-menu__buyers-list {
	padding-left: 8px;
}

.site-menu__buyers-list .site-menu__buyers-heading {
	display: none;
}

.site-footer {
	width: 100%;
	background: var(--color-white);
}

.site-footer__desktop {
	display: grid;
	min-height: 64px;
	grid-template-columns: minmax(max-content, 1fr) 36px minmax(max-content, 1fr);
	align-items: center;
	gap: 0;
	padding: 12px var(--page-gutter);
}

.site-footer__desktop-links,
.site-footer__desktop-contact {
	display: flex;
	align-items: center;
	white-space: nowrap;
}

.site-footer__desktop-links {
	justify-content: flex-start;
	gap: clamp(8px, calc(4.8vw - 29px), 40px);
}

.site-footer__desktop-contact {
	justify-content: flex-end;
	gap: clamp(8px, calc(5.6vw - 35px), 46px);
}

.site-footer__bird {
	display: block;
	width: 36px;
	height: 44px;
}

.site-footer__mobile {
	display: none;
}

.site-footer a,
.site-menu a,
.site-header a {
	transition: opacity 120ms linear;
}

/* Text controls hover per DESIGN-SYSTEM §3.1: links and text buttons turn
   accent; boxed buttons keep the background hover. */
.site-footer a:hover,
.site-menu a:hover,
.site-header a:hover,
.site-header button:hover {
	color: var(--color-accent);
	opacity: 1;
}

@media (max-width: 767px) {
	:root {
		--page-gutter: 10px;
		--content-top: 96px;
	}

	.site-header__desktop {
		display: none;
	}

	.site-header__mobile {
		display: grid;
	}

	.site-header__mobile > :first-child {
		justify-self: start;
	}

	.site-header__mobile > :last-child {
		justify-self: end;
	}

	.home .site-header-shell:has(> .site-menu:not([hidden])) .site-header {
		color: var(--color-text);
		background: var(--color-white);
	}

	.home .site-header-shell:has(> .site-menu:not([hidden])) .site-header__logo img {
		filter: none;
	}

	.site-menu {
		width: 100%;
		height: min(650px, calc(100vh - var(--header-height)));
		height: min(650px, calc(100dvh - var(--header-height)));
		padding: 12px 10px 16px;
	}

	.site-menu__information {
		grid-template-columns: 1fr;
		gap: 18px;
		padding-top: 24px;
	}

	.site-menu__brand-links {
		gap: 4px;
	}

	.site-menu__buyers-list {
		padding-left: 8px;
	}

	.site-footer__desktop {
		display: none;
	}

	.site-footer__mobile {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) 36px;
		align-items: start;
		gap: 12px;
		padding: 24px 10px 40px;
		font-size: 12px;
		line-height: 20px;
	}

	.site-footer__mobile-brand,
	.site-footer__mobile-service {
		display: flex;
		min-width: 0;
		flex-direction: column;
		align-items: flex-start;
	}

	.site-footer__mobile strong {
		font-weight: 600;
	}

	.site-footer__contacts-heading {
		margin-top: 16px;
	}

	.site-footer__socials {
		display: flex;
		width: 100%;
		justify-content: space-between;
		gap: 8px;
		margin-top: 16px;
		white-space: nowrap;
	}

	.site-footer__phone {
		margin-top: 20px;
		white-space: nowrap;
	}

	.site-footer__mobile .site-footer__bird {
		width: 36px;
		height: 44px;
		justify-self: end;
	}
}

@media (max-width: 374px) {
	.site-header__text-button,
	.site-header__cart {
		font-size: 11px;
	}

	.site-footer__mobile {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) 28px;
		gap: 8px;
	}

	.site-footer__mobile .site-footer__bird {
		width: 28px;
		height: auto;
	}
}

/* Homepage */
.home .site-header-shell {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

.home .site-header {
	color: var(--color-white);
	background: transparent;
}

.home .site-header__logo img {
	filter: brightness(0) invert(1);
}

.home .site-menu {
	color: var(--color-text);
}

@media (min-width: 768px) {
	.site-menu {
		height: min(872px, calc(100vh - 35px));
		height: min(872px, calc(100dvh - 35px));
		padding: 40px var(--space-4) var(--space-4);
	}

	.site-menu__search {
		margin-bottom: 20px;
	}

	.site-menu__information {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: 212px;
		padding-top: 0;
	}

	.site-menu__brand-links,
	.site-menu__buyers-title,
	.site-menu__buyers-list li {
		line-height: 22px;
	}

	.home .site-header-shell:has(> .site-menu:not([hidden])) .site-header {
		height: 35px;
		color: var(--color-text);
		background: var(--color-white);
	}

	.home .site-header-shell:has(> .site-menu:not([hidden])) .site-header__logo img {
		filter: none;
	}
}

.home-hero {
	position: relative;
	width: 100%;
	height: min(68vw, 977px);
	overflow: hidden;
}

.home-hero__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.home-categories {
	margin: 20px var(--page-gutter) 0;
}

.home-categories__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.home-categories__item {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.home-category {
	display: block;
	min-width: 0;
}

.home-category__image {
	display: block;
	width: 100%;
	aspect-ratio: 343 / 442;
	object-fit: cover;
}

.home-category__label {
	display: block;
	margin-top: 10px;
	font-size: 12px;
	line-height: 15px;
	text-transform: lowercase;
}

.home-brand-note {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	gap: 0;
	margin: 100px var(--page-gutter);
}

.home-brand-note__mark {
	display: block;
	width: 36px;
	height: 44px;
}

.home-brand-note__copy {
	margin: 0;
	font-size: 12px;
	line-height: 1.2;
}

.home-promos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 var(--page-gutter);
}

.home-promo {
	position: relative;
	display: block;
	min-width: 0;
	aspect-ratio: 695 / 752;
	overflow: hidden;
	color: var(--color-white);
}

.home-promo__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.home-promo__label,
.home-promo__english {
	position: absolute;
	top: 50%;
	z-index: 1;
	max-width: calc(50% - 24px);
	font-size: 12px;
	line-height: 16px;
	transform: translateY(-50%);
}

.home-promo__label {
	left: 20px;
}

.home-promo__english {
	right: 20px;
}


body.home .site-footer {
	margin-top: 32px;
}

@media (max-width: 767px) {
	.home-hero {
		height: min(100svh, calc(1151px - 82vw));
	}

	.home-hero__image {
		object-position: 67% 50%;
	}

	.home-categories {
		margin: 10px 0 0;
		overflow: hidden;
	}

	.home-categories__grid {
		grid-auto-flow: column;
		grid-auto-columns: min(48%, 182px);
		grid-template-columns: none;
		gap: 8px;
		padding: 0 10px;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
	}

	.home-categories__grid::-webkit-scrollbar {
		display: none;
	}

	.home-category__image {
		aspect-ratio: 3 / 4;
	}

	.home-category__label {
		margin-top: 12px;
	}

	.home-brand-note {
		grid-template-columns: 36px minmax(0, 1fr);
		gap: 20px;
		margin: 87px 12px 85px;
	}

	.home-promos {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
		margin: 0 10px;
	}

	.home-promo {
		aspect-ratio: 3 / 4;
	}

	.home-promo__label {
		left: 16px;
	}

	.home-promo__english {
		right: 16px;
	}

	body.home .site-footer {
		margin-top: 24px;
	}
}

/* WooCommerce catalog */
.catalog-main {
	padding: 0 var(--page-gutter);
}

.catalog-toolbar {
	position: relative;
	z-index: 5;
	display: flex;
	min-height: 32px;
	align-items: center;
	justify-content: space-between;
}

.catalog-see-all,
.catalog-sort,
.catalog-facets,
.catalog-subcategories {
	font-size: 12px;
	line-height: 16px;
}

.catalog-toolbar .filter-widgets {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	width: min(520px, calc(100vw - 20px));
	max-width: calc(100vw - 20px);
	max-height: calc(100dvh - 80px);
	box-sizing: border-box;
	overflow: auto;
	background: var(--color-white);
}

.catalog-toolbar .filter-widgets:not(.active) {
	display: none;
}

.catalog-toolbar .filter-widgets.active {
	display: flex !important;
}

.catalog-toolbar .filter-widgets .ncf-filters {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.catalog-facets,
.catalog-subcategories {
	display: flex;
	min-height: 32px;
	align-items: center;
	gap: 24px;
	overflow-x: auto;
	white-space: nowrap;
	scrollbar-width: none;
}

.catalog-facets::-webkit-scrollbar,
.catalog-subcategories::-webkit-scrollbar {
	display: none;
}

.catalog-facets__button {
	flex: 0 0 auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-muted);
	cursor: pointer;
	font: inherit;
	white-space: nowrap;
}

/* Facet states per figma/catalog-1.png: active facet is Medium text,
   inactive ones muted; hover brings the accent (text-control model). */
.catalog-facets__all {
	font-weight: 500;
}

.catalog-facets__button:hover {
	color: var(--color-accent);
}

.catalog-facets__all[aria-current="page"],
.catalog-facets__button[aria-expanded="true"],
.catalog-subcategories a[aria-current="page"] {
	color: var(--color-text);
	font-weight: 500;
}

.catalog-subcategories a {
	color: var(--color-muted);
}

.catalog-subcategories {
	min-height: 28px;
	gap: 20px;
	border-bottom: 1px solid var(--color-border);
}

.catalog-subcategories[hidden] {
	display: none;
}

.catalog-sort {
	position: relative;
}

.catalog-sort__summary {
	cursor: pointer;
	list-style: none;
}

.catalog-sort__summary::-webkit-details-marker {
	display: none;
}

.catalog-sort__options {
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 10;
	display: none;
	min-width: max-content;
	gap: 20px;
	padding: 8px 0;
	background: var(--color-white);
}

.catalog-sort[open] .catalog-sort__options {
	display: flex;
}

.catalog-sort__options a[aria-current="true"] {
	color: var(--color-accent);
}

.catalog-main #ncf-products {
	min-width: 0;
}

.catalog-main ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	/* Grid per the Figma frame: standard card 460×507, gaps 10/40 (DESIGN-SYSTEM §2). */
	gap: 40px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.catalog-main ul.products::before,
.catalog-main ul.products::after {
	display: none;
}

.catalog-main ul.products li.product {
	position: relative;
	float: none !important;
	width: 100% !important;
	min-width: 0;
	margin: 0 !important;
}

.catalog-card__media {
	position: relative;
	min-width: 0;
	aspect-ratio: 460 / 507;
	overflow: hidden;
	background: var(--color-background);
}

.catalog-card__image-link {
	position: absolute;
	inset: 0;
	display: block;
}

.catalog-card__image {
	display: block;
	width: 100%;
}

.catalog-card__image {
	height: 100%;
	object-fit: cover;
}

/* WooCommerce sizes loop images as `height:auto` + bottom margin; cards
   need a full-bleed cover image instead (real product photos, related rows). */
.woocommerce ul.products li.product a img.catalog-card__image {
	height: 100%;
	margin: 0;
	object-fit: cover;
}

/* Feature tile: only the «все украшения» grid, 4th item, wide 930×652 media
   (DESIGN-SYSTEM §2/§4). Category archives keep the uniform grid. */
.nectar-catalog-all ul.products li.product:nth-child(4) {
	grid-column: span 2;
}

.nectar-catalog-all ul.products li.product:nth-child(4) .catalog-card__media {
	aspect-ratio: 930 / 652;
}

/* Wishlist bookmark: original Figma asset (DESIGN-SYSTEM §5.1), rendered via
   mask so idle/added states recolor without a second image. Hit area 28×28,
   offset 10,10. */
.catalog-card__wishlist {
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 1;
}

/* Woo paints .woocommerce a.button with its own bg/radius — outspecific it. */
.woocommerce .catalog-card__wishlist .add-to-wishlist-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 0 !important;
	font-weight: 400;
	line-height: 0 !important;
	text-indent: -9999px;
	white-space: nowrap;
	overflow: hidden;
}

.catalog-card__wishlist .add-to-wishlist-button::after {
	content: "";
	display: block;
	width: 9px;
	height: 13px;
	background-color: var(--color-muted);
	-webkit-mask: url("../images/icons/bookmark.svg") center / contain no-repeat;
	mask: url("../images/icons/bookmark.svg") center / contain no-repeat;
}

.catalog-card__wishlist .add-to-wishlist-button.added::after {
	background-color: var(--color-accent);
	-webkit-mask-image: url("../images/icons/bookmark-filled.svg");
	mask-image: url("../images/icons/bookmark-filled.svg");
}

.catalog-card__details {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4px 8px;
	padding-top: 6px;
	font-size: 12px;
	line-height: 15px;
}

.catalog-card__name {
	min-width: 0;
}

.catalog-card__price {
	white-space: nowrap;
	text-align: right;
}

.catalog-card__price .price {
	color: inherit;
}

.catalog-card__stock {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--color-muted);
}

.catalog-main .woocommerce-pagination {
	margin: 40px 0;
}

/* Pagination numbers are plain text; the current page gets the accent
   underline (text-selector canon, DESIGN-SYSTEM §5). Outruns Woo's own
   .current pill (bg #e9e6ed, purple text) without !important. */
.catalog-main .woocommerce-pagination .page-numbers {
	min-width: 0;
	padding: 2px 0 4px;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--color-text);
}
.catalog-main .woocommerce-pagination .page-numbers.current {
	background: none;
	color: var(--color-accent);
	box-shadow: inset 0 -1px 0 var(--color-accent);
}
.catalog-main .woocommerce-pagination .page-numbers:not(.current):hover {
	color: var(--color-accent);
}
.catalog-main .woocommerce-pagination .page-numbers:focus-visible {
	outline: 1px solid var(--color-accent);
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.catalog-main {
		padding: 0 10px;
	}

	.catalog-toolbar {
		min-height: 30px;
	}

	.catalog-facets,
	.catalog-subcategories {
		gap: 20px;
		margin: 0 -10px;
		padding: 0 10px;
	}

	.catalog-main ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 5px;
	}

	.nectar-catalog-all ul.products li.product:nth-child(4) {
		grid-column: auto;
	}

	.nectar-catalog-all ul.products li.product:nth-child(4) .catalog-card__media {
		aspect-ratio: 460 / 507;
	}

	.nectar-catalog-all ul.products li.product:nth-child(5) {
		grid-column: span 2;
	}

	.nectar-catalog-all ul.products li.product:nth-child(5) .catalog-card__media {
		aspect-ratio: 460 / 507;
	}

	.catalog-toolbar:has(.catalog-sort[open]) {
		flex-wrap: wrap;
	}

	.catalog-toolbar:has(.catalog-sort[open]) .catalog-sort {
		width: 100%;
	}

	.catalog-sort__summary {
		text-align: right;
	}

	.catalog-sort__options {
		position: static;
		justify-content: space-between;
		gap: 8px 14px;
		padding: 8px 0;
	}

	.catalog-card__details {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
		padding-top: 6px;
	}

	.catalog-card__price {
		text-align: left;
	}
}

/* Search: figma/search start, results and empty states. */
.search-page {
	min-height: calc(100vh - 110px);
}
.search-page__form input[type="search"] {
	display: block;
	width: 100%;
	height: 36px;
	padding: 0 0 8px;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	background: transparent;
	color: inherit;
}
.search-page__form input::placeholder { color: var(--color-muted); }
.search-page__status { margin: 52px 0 40px; color: var(--color-muted); }
.search-page.catalog-main ul.products { gap: 40px 10px; }
.search-page.catalog-main ul.products li.product:nth-child(n) { grid-column: auto; }
.search-page.catalog-main ul.products li.product:nth-child(n) .catalog-card__media { aspect-ratio: 460 / 507; }
.search-page .catalog-card__wishlist { display: none; }
.search-page__entry { list-style: none; }
.search-page .navigation.pagination { margin: 40px 0; }
@media (max-width: 767px) {
	.search-page { min-height: calc(100vh - 240px); }
	.search-page__status { margin: 52px 0 40px; }
	.search-page.catalog-main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 5px; }
	.search-page.catalog-main .catalog-card__details { grid-template-columns: minmax(0, 1fr) auto; }
	.search-page.catalog-main .catalog-card__price { text-align: right; }
}

/* Product detail: figma/card.png (desktop 1440) and figma/card-1.png (mobile ~402). */
.single-product main.site-main { padding: 0 var(--page-gutter); }
.single-product .woocommerce-breadcrumb {
	margin: 12px 0 18px;
	font-size: 12px;
	line-height: 16px;
	color: var(--color-muted);
	text-transform: lowercase;
}
.single-product .woocommerce-breadcrumb a { color: var(--color-text); }

.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
}

.single-product div.product > .iconic-woothumbs-all-images-wrap,
.single-product div.product > .woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
}

.single-product div.product > .summary {
	grid-column: 2;
	grid-row: 1;
}

.nectar-gallery-wishlist {
	grid-column: 1;
	grid-row: 2;
}

/* WooCommerce layout css floats .summary/.images at 48%; the design grid
   needs a reset that outspecifies `.woocommerce div.product div.summary`. */
.woocommerce.single-product div.product > div.summary,
.woocommerce.single-product div.product > div.images,
.woocommerce.single-product div.product > .iconic-woothumbs-all-images-wrap {
	float: none;
	width: 100%;
	min-width: 0;
	margin: 0;
}

/* Vertical divider between the gallery column and the summary column (figma x≈719). */
.single-product div.product > .iconic-woothumbs-all-images-wrap,
.single-product div.product > .woocommerce-product-gallery {
	position: relative;
	padding-right: 32px;
}

.single-product div.product > .iconic-woothumbs-all-images-wrap::after,
.single-product div.product > .woocommerce-product-gallery::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 1px;
	height: 100%;
	background: var(--color-hairline);
}

/* Gallery chrome that the design does not show. */
.single-product .iconic-woothumbs-fullscreen,
.single-product .iconic-woothumbs-images .slick-dots { display: none !important; }
.single-product .iconic-woothumbs-images__arrow { color: var(--color-muted); }

/* Bookmark wishlist overlays the gallery media per figma/card (bottom-right,
   offset 10,10, hit 28×28; DESIGN-SYSTEM §5.1). Grid cell shared with the
   gallery, aligned to its bottom-right corner. */
.nectar-gallery-wishlist {
	grid-row: 1;
	align-self: end;
	justify-self: end;
	position: relative;
	z-index: 5;
	margin: 0 10px 10px 0;
}

.woocommerce .nectar-gallery-wishlist a.add-to-wishlist-button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	text-shadow: none;
	font-size: 0;
	font-weight: 400;
	line-height: 0;
	text-indent: -9999px;
	white-space: nowrap;
	overflow: hidden;
}

.woocommerce .nectar-gallery-wishlist a.add-to-wishlist-button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 13px;
	margin: -6.5px 0 0 -4.5px;
	background-color: var(--color-muted);
	-webkit-mask: url("../images/icons/bookmark.svg") center / contain no-repeat;
	mask: url("../images/icons/bookmark.svg") center / contain no-repeat;
}

.woocommerce .nectar-gallery-wishlist a.add-to-wishlist-button.added::after {
	background-color: var(--color-accent);
	-webkit-mask-image: url("../images/icons/bookmark-filled.svg");
	mask-image: url("../images/icons/bookmark-filled.svg");
}

/* Summary column laid out with named areas so the stock/wishlist row can
   combine markup that WooCommerce prints as separate siblings. */
.single-product div.product > .summary {
	padding: 40px 0 0 32px;
}

.single-product .summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-areas:
		"title title"
		"price price"
		"desc desc"
		"more more"
		"full full"
		"stock wish"
		"cart cart"
		"wrap wrap"
		"wrapgrid wrapgrid";
}

.single-product .summary .product_title { grid-area: title; margin: 0; font-size: 12px; font-weight: 400; line-height: 1.5; }
/* Lowercase presentation per the design: text-transform only — stored data,
   input values and attributes are untouched; certificate screens excluded. */
.single-product div.product:not(.nectar-cert) .summary .product_title,
.single-product div.product:not(.nectar-cert) .summary .woocommerce-product-details__short-description,
.single-product div.product:not(.nectar-cert) .summary .nectar-product-description,
.single-product div.product:not(.nectar-cert) .summary > p.stock,
.single-product div.product:not(.nectar-cert) .summary .woocommerce-variation-availability p.stock,
.single-product div.product:not(.nectar-cert) .summary .reset_variations,
.single-product div.product:not(.nectar-cert) .summary .nectar-details-toggle,
.single-product div.product:not(.nectar-cert) .summary .nectar-gift-wrap__toggle,
.single-product div.product:not(.nectar-cert) .summary .nectar-guide-link { text-transform: lowercase; }
.single-product div.product .summary p.price { grid-area: price; margin: 10px 0 0; color: var(--color-text); font-size: 12px; line-height: 1.5; }
.single-product div.product .summary span.price { color: var(--color-text); font-size: 12px; }
.single-product .summary .yandex-pay-badges:empty { display: none; }
.single-product .summary .woocommerce-product-details__short-description {
	grid-area: desc;
	margin: 24px 0 0;
	font-size: 12px;
	line-height: 1.6;
}
.single-product .summary .woocommerce-product-details__short-description p { margin: 0; }
.single-product .summary .woocommerce-product-details__short-description strong { font-weight: 400; }
.single-product .summary .nectar-details-toggle { grid-area: more; }
.single-product .summary .nectar-product-description { grid-area: full; }
.single-product .summary > p.stock { grid-area: stock; margin: 0; }
.single-product .summary .nectar-single-wishlist { grid-area: wish; justify-self: end; }
.single-product .summary form.cart { grid-area: cart; }

.single-product div.product.product-type-variable .summary {
	grid-template-areas:
		"title title"
		"price price"
		"desc desc"
		"more more"
		"full full"
		"wish wish"
		"cart cart"
		"wrap wrap"
		"wrapgrid wrapgrid";
}

/* Collapsible details per the design: collapsed by default, "подробнее" reveals. */
.single-product .summary:has(.nectar-details-toggle) .woocommerce-product-details__short-description {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}
.single-product .summary.is-expanded .woocommerce-product-details__short-description {
	display: block;
}
.nectar-product-description { display: none; }
.single-product .summary.is-expanded .nectar-product-description { display: block; margin-top: 16px; font-size: 12px; line-height: 1.6; }
.nectar-product-description p { margin: 0 0 5px; }

.nectar-details-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 24px 0 0;
	padding: 0;
	color: var(--color-text);
	font-size: 12px;
	line-height: 16px;
}
.nectar-details-toggle::after {
	content: "";
	width: 8px;
	height: 5px;
	background-color: currentColor;
	-webkit-mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	transition: transform 120ms linear;
}
.single-product .summary.is-expanded .nectar-details-toggle::after { transform: rotate(180deg); }

/* Wishlist text link. */
.single-product .nectar-single-wishlist { margin: 0; }
/* flow-root contains Soo Wishlist's floated button; otherwise the float
   escapes and squeezes the variations form content that follows. */
.single-product .nectar-single-wishlist--in-form { margin: 24px 0 0; text-align: right; display: flow-root; }
.single-product .nectar-single-wishlist--in-form .add-to-wishlist-button { float: none; }
.single-product .nectar-single-wishlist .add-to-wishlist-button {
	width: auto;
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-indent: 0;
	text-transform: lowercase;
	white-space: normal;
	overflow: visible;
}
.single-product .nectar-single-wishlist .add-to-wishlist-button:hover { color: var(--color-accent); opacity: 1; }

/* Availability line: WooCommerce stock semantics, neutral design styling. */
.single-product .summary > p.stock,
.single-product .summary .woocommerce-variation-availability p.stock {
	color: var(--color-text);
	font-size: 12px;
	line-height: 16px;
}

/* Add to cart: quantity is not in the design; the input stays in the DOM so
   the WooCommerce submission contract keeps sending quantity=1. */
.single-product div.product form.cart { margin: 28px 0 0; }
.single-product div.product form.cart .quantity { display: none !important; }
.single-product div.product form.cart .variations { margin: 0; border: 0; border-spacing: 0; }
.single-product div.product form.cart .variations th,
.single-product div.product form.cart .variations td { padding: 0 0 4px; border: 0; background: none; font-size: 12px; }
.single-product div.product form.cart .variations .label { display: none; }
.single-product div.product form.cart .variations label { font-weight: 400; }
.single-product div.product form.cart .variations select { display: none; }

/* Text swatches (size/metal/designer) as plain text labels; selected gets the
   accent underline, unavailable stay muted (figma/card-1, DESIGN-SYSTEM §5).
   Selector (8 classes + element) outruns the swatches plugin's own 7-class
   rules so its 14px/filled/rounded pills lose the cascade; the radius needs
   !important only because the plugin stylesheet uses it on the same property. */
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 6px 0 0;
}
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch-item-wrapper { margin: 0; }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch.swatch-type-label {
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;
	padding: 2px 0 4px;
	border: 0;
	border-radius: 0 !important;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-shadow: none;
	vertical-align: baseline;
}
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch.swatch-type-label .text { font-size: inherit; line-height: inherit; }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch .swatch__tooltip { display: none !important; }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch::before,
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch::after { display: none !important; }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch.swatch-type-label:hover { color: var(--color-accent); }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch.swatch-type-label.disabled { color: var(--color-muted); background: none; }
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches .swatch.swatch-type-label.selected {
	background: none;
	color: var(--color-text);
	box-shadow: inset 0 -1px 0 var(--color-accent);
}

/* Size row per prototype SizeSelector (figma-make-proto ProductCard.tsx:853):
   34x36 cells, 4px gaps and 10px vertical container padding — the centre
   pitch stays 38px, so «15,5» still aligns with its neighbours. Only pa_size
   of regular products is touched; metal/designer/letter swatches,
   certificates and the rest of the summary keep their rhythm. */
.woocommerce.single-product div.product:not(.nectar-cert) form.cart .variations .tawcvs-swatches[data-attribute_name="attribute_pa_size"] {
	gap: 4px;
	margin: 0;
	padding: 10px 0;
}
.woocommerce.single-product div.product:not(.nectar-cert) form.cart .variations .tawcvs-swatches[data-attribute_name="attribute_pa_size"] .swatch.swatch-type-label {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 36px;
	padding: 0;
	font-weight: 300;
	text-align: center;
}
.woocommerce.single-product div.product form.cart .variations .tawcvs-swatches[data-attribute_name="attribute_pa_size"] .swatch.swatch-type-label.selected {
	color: var(--color-accent);
}
.single-product .summary .reset_variations { margin-left: 8px; color: var(--color-muted); }

.single-product div.product form.cart .single_add_to_cart_button {
	width: 100%;
	min-height: var(--control-h);
	padding: 10px 20px;
	border: 1px solid var(--color-text);
	border-radius: 0;
	background: var(--color-white);
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;
	text-transform: lowercase;
	float: none;
}
.single-product div.product form.cart .single_add_to_cart_button:hover {
	background: var(--color-background);
	color: var(--color-text);
}
.single-product div.product.product-type-variable form.cart .single_add_to_cart_button { margin-top: 20px; }
.single-product div.product form.cart .woocommerce-variation-price { margin: 12px 0 0; }
.single-product div.product form.cart .woocommerce-variation-availability { margin: 8px 0 0; }

/* One recommendations section, 4 portrait cards, stacked name/price. */
.single-product div.product > .products { grid-column: 1 / -1; margin: 70px 0 40px; }
.single-product div.product > .products h2 { margin: 0 0 20px; font-size: 12px; font-weight: 400; text-transform: lowercase; }
.single-product div.product > .products ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 11px;
	padding: 0;
	list-style: none;
}
.single-product div.product > .products ul.products::before,
.single-product div.product > .products ul.products::after { display: none; }
.single-product div.product > .products ul.products li.product { float: none; width: 100%; min-width: 0; margin: 0; }
.single-product div.product > .products .catalog-card__media { aspect-ratio: 3 / 4; }
.single-product .catalog-card__wishlist { display: none; }
.single-product div.product > .products .catalog-card__details {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding-top: 14px;
	font-size: 12px;
	line-height: 15px;
}
.single-product div.product > .products .catalog-card__price { text-align: left; color: var(--color-muted); }
.single-product div.product > .products .catalog-card__price .price { color: inherit; }

/* Currency separated from the amount as in the design ("110 900 Р"). */
.woocommerce .woocommerce-Price-amount .woocommerce-Price-currencySymbol { margin-left: 4px; }

/* Gift certificate: figma/sertificate/material*.png (physical card) and
   online*.png (electronic card). The design's two tabs map onto two existing
   products: PWGC product («электронная») and variable «Сертификат» with
   pa_nominal («физическая»); the marker classes come from woocommerce_post_class. */
.single-product div.product.product-type-pw-gift-card .summary {
	grid-template-areas:
		"title title"
		"price price"
		"desc desc"
		"more more"
		"full full"
		"wish wish"
		"cart cart";
}
.single-product div.product.product-type-pw-gift-card form.cart .single_add_to_cart_button { margin-top: 20px; }

/* Tabs linking the two certificate products; the current one is the accent link. */
.nectar-cert-tabs {
	display: flex;
	grid-column: 1 / -1;
	align-items: baseline;
	gap: 24px;
	margin: 24px 0 0;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--color-hairline);
}
.nectar-cert-tabs a {
	color: var(--color-text);
	font-size: 12px;
	line-height: 16px;
	text-transform: lowercase;
}
.nectar-cert-tabs a.is-current {
	color: var(--color-accent);
	box-shadow: inset 0 -1px 0 var(--color-accent);
	padding-bottom: 2px;
}

/* The certificate pages do not show stock wording. */
.single-product div.product.nectar-cert .summary p.stock,
.single-product div.product.nectar-cert .woocommerce-variation-availability { display: none; }
/* The price under the title already tracks the selection; the design shows
   no second price above the submit button. */
.single-product div.product.nectar-cert .woocommerce-variation-price { display: none; }

/* Denomination: the attribute label shows above the options (figma «номинал»),
   so the variations table stacks vertically on certificate pages only. */
.single-product div.product.nectar-cert form.cart .variations .label { display: block; text-align: left; }
.single-product div.product.nectar-cert form.cart .variations .label label {
	color: var(--color-muted);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-transform: lowercase;
}
.single-product div.product.nectar-cert form.cart .variations tr,
.single-product div.product.nectar-cert form.cart .variations th,
.single-product div.product.nectar-cert form.cart .variations td { display: block; padding: 0; }

/* Denomination options rendered from the real select by theme JS. */
.single-product div.product form.cart select.nectar-amount-select {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}
.nectar-amount-options {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 20px;
	margin: 12px 0 0;
}
.nectar-amount-options .nectar-amount-option {
	padding: 2px 0 4px;
	border: 0;
	background: none;
	color: var(--color-text);
	font-family: inherit;
	font-size: 12px;
	line-height: 16px;
	cursor: pointer;
}
.nectar-amount-options .nectar-amount-option.is-selected { box-shadow: inset 0 -1px 0 var(--color-accent); }

/* Design note under the denomination of the physical card. */
.nectar-cert-note {
	margin: 20px 0 0;
	max-width: 420px;
	color: var(--color-muted);
	font-size: 12px;
	line-height: 1.6;
}

/* Product Add-Ons keep owning design/color selection; styled to the design.
   The design addon (product 4878) becomes a one-slide card carousel. */
.single-product div.product.nectar-cert .wc-pao-addon-container { margin: 24px 0 0; }
.single-product div.product.nectar-cert .wc-pao-addon-name,
.single-product div.product.nectar-cert .wc-pao-addon-label {
	color: var(--color-muted);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-transform: lowercase;
}
.single-product div.product.nectar-cert .wc-pao-addon-image-swatch img { display: block; max-width: 100%; height: auto; }
.single-product div.product.nectar-cert .wc-pao-addon-image-swatch .wc-pao-addon-image-swatch-price { display: none; }
.single-product div.product.nectar-cert .wc-pao-addon-image-swatch.selected { outline: 1px solid var(--color-accent); outline-offset: 2px; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-1 .wc-pao-addon-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.single-product div.product.nectar-cert .wc-pao-addon-4878-1 .wc-pao-addon-image-swatch { border: 0; background: none; outline: none; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-1 .wc-pao-addon-image-swatch img {
	width: 24px;
	height: 24px;
	border-radius: 50%;
}
.single-product div.product.nectar-cert .wc-pao-addon-4878-1 .wc-pao-addon-image-swatch span:not(.wc-pao-addon-image-swatch-price) { display: none; }
/* One wide card design per slide, dots only — like the figma frame. */
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .wc-pao-addon-image-swatch { display: block; margin: 0; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-slide img,
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-cloned img { width: 100%; height: auto; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-arrow { display: none !important; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-dots {
	display: flex !important;
	justify-content: center;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-dots li { margin: 0; width: auto; height: auto; }
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-dots button {
	width: 6px;
	height: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--color-border);
	font-size: 0;
	line-height: 0;
}
.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-dots li.slick-active button { background: var(--color-accent); }

/* PWGC recipient fields: label above an underline input (figma online.png). */
.single-product div.product.nectar-cert #pwgc-purchase-container { margin: 8px 0 0; }
.single-product div.product.nectar-cert .pwgc-field-container { margin: 20px 0 0; }
.single-product div.product.nectar-cert .pwgc-label {
	display: block;
	margin: 0 0 2px;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-transform: lowercase;
}
.single-product div.product.nectar-cert .pwgc-subtitle { color: var(--color-muted); font-size: 12px; line-height: 1.4; }
.single-product div.product.nectar-cert .nectar-pwgc-counter { margin-top: 4px; }
.single-product div.product.nectar-cert #pwgc-purchase-container input[type="text"],
.single-product div.product.nectar-cert #pwgc-purchase-container textarea {
	width: 100%;
	padding: 4px 0 8px;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--color-text);
	font-family: inherit;
	font-size: 12px;
	line-height: 1.5;
}
.single-product div.product.nectar-cert #pwgc-purchase-container input::placeholder,
.single-product div.product.nectar-cert #pwgc-purchase-container textarea::placeholder { color: var(--color-muted); }
.single-product div.product.nectar-cert #pwgc-purchase-container input:focus,
.single-product div.product.nectar-cert #pwgc-purchase-container textarea:focus {
	border-color: var(--color-text);
	outline: none;
	box-shadow: none;
}
.single-product div.product.nectar-cert #pwgc-purchase-container textarea { min-height: 96px; resize: vertical; }

/* «сейчас / выбрать дату» under the delivery date input. */
.nectar-cert-date-toggle { display: flex; gap: 24px; margin: 10px 0 0; }
.nectar-cert-date-toggle button {
	padding: 2px 0 4px;
	border: 0;
	background: none;
	color: var(--color-muted);
	font-family: inherit;
	font-size: 12px;
	line-height: 16px;
	cursor: pointer;
}
.nectar-cert-date-toggle button.is-current {
	color: var(--color-accent);
	box-shadow: inset 0 -1px 0 var(--color-accent);
}

/* The electronic card «sends» the certificate; its submit is the accent link style. */
.single-product div.product.nectar-cert--electronic form.cart .single_add_to_cart_button {
	border-color: var(--color-accent);
	color: var(--color-accent);
}

@media (max-width: 767px) {
	.nectar-cert-tabs { gap: 20px; flex-wrap: wrap; }
	.single-product div.product.nectar-cert .wc-pao-addon-4878-0 .slick-dots { justify-content: center; }
}

@media (max-width: 767px) {
	.single-product div.product { display: block; }
	.single-product div.product > .iconic-woothumbs-all-images-wrap,
	.single-product div.product > .woocommerce-product-gallery { padding-right: 0; }
	.single-product div.product > .iconic-woothumbs-all-images-wrap::after,
	.single-product div.product > .woocommerce-product-gallery::after { content: none; }
	.nectar-gallery-wishlist { margin: 0 10px 10px 0; }
	.single-product div.product > .summary { padding: 24px 0 0; }
	.single-product .summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.single-product div.product > .products { margin: 60px 0 40px; }
	.single-product div.product > .products ul.products {
		grid-auto-flow: column;
		grid-auto-columns: 40%;
		grid-template-columns: none;
		gap: 0 10px;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
	}
	.single-product div.product > .products ul.products::-webkit-scrollbar { display: none; }
	.single-product .iconic-woothumbs-images__arrow { display: none !important; }
}

/* Cart: retain WooCommerce's table, fields, totals and plugin hooks. */
.woocommerce-cart main.site-main { min-height: calc(100vh - 110px); padding: 0 var(--page-gutter); }
.woocommerce-cart main.site-main > article > h1 {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.nectar-cart-nav { margin: 8px 0 40px; font-size: 12px; }
.nectar-cart-nav__back { display: inline-block; margin-bottom: 35px; }
.nectar-cart-nav__tabs { display: flex; gap: 24px; }
.nectar-cart-nav__tabs a { padding-bottom: 6px; color: var(--color-muted); }
.nectar-cart-nav__tabs [aria-current="page"] { color: var(--color-text); border-bottom: 1px solid currentColor; }
.woocommerce-cart .cart-empty { color: var(--color-muted); }
.woocommerce-cart .return-to-shop a.button { padding: 0; background: none; color: var(--color-text); font-size: 12px; font-weight: 400; }
.woocommerce-cart .woocommerce-cart-form { float: left; width: min(64%, 740px); }
.woocommerce-cart .cart-collaterals { float: right; width: min(30%, 340px); }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce-cart .entry-content > .woocommerce::after { content: ""; display: block; clear: both; }
.woocommerce-cart table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; font-size: 12px; }
.woocommerce-cart table.shop_table th { font-weight: 400; }
.woocommerce-cart table.shop_table td, .woocommerce-cart table.shop_table th { border-color: var(--color-hairline); padding: 12px 8px; }
.woocommerce-cart table.cart img { width: 96px; height: auto; }
.woocommerce-cart table.cart td.product-name { min-width: 140px; }
.woocommerce-cart table.cart td.product-name dl.variation { font-size: 12px; }
.woocommerce-cart a.remove { color: var(--color-muted) !important; font-weight: 400; }
.woocommerce-cart .cart_totals h2 { font-size: 12px; font-weight: 400; }
.woocommerce-cart .woocommerce a.button, .woocommerce-cart .woocommerce button.button, .woocommerce-cart .woocommerce input.button {
	border: 1px solid var(--color-text); border-radius: 0; background: var(--color-white); color: var(--color-text); font-size: 12px; font-weight: 400;
	min-height: var(--control-h);
	box-sizing: border-box;
}
.woocommerce-cart .woocommerce a.button:hover, .woocommerce-cart .woocommerce button.button:hover { background: var(--color-background); color: var(--color-text); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; padding: 12px; }
@media (max-width: 767px) {
	.woocommerce-cart main.site-main { min-height: calc(100vh - 240px); }
	.woocommerce-cart .woocommerce-cart-form, .woocommerce-cart .cart-collaterals { float: none; width: 100%; }
	.woocommerce-cart .cart-collaterals { margin-top: 48px; }
	.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail { display: block !important; text-align: left !important; }
	.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before { content: none; }
	.woocommerce-cart table.cart img { width: 96px; }
	/* Woo smallscreen stripes every second responsive-table row grey — the
	   design uses hairline separators only (figma/cart/items.png). */
	.woocommerce-cart table.shop_table_responsive tr:nth-child(2n) td,
	.woocommerce-checkout table.shop_table_responsive tr:nth-child(2n) td,
	.woocommerce-account table.shop_table_responsive tr:nth-child(2n) td {
		background-color: transparent;
	}
}

/* Arrange each WooCommerce cart row without replacing its form fields or data. */
.woocommerce-cart .woocommerce-cart-form { width: min(64%, 470px); }
.woocommerce-cart table.cart thead {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.woocommerce-cart table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 97px minmax(0, 1fr);
	grid-template-areas: "image name" "image price" "image qty" "image remove";
	grid-template-rows: auto auto auto 1fr;
	column-gap: 16px;
	padding: 24px 0;
	border-bottom: 1px solid var(--color-hairline);
}
.woocommerce-cart table.cart tr.cart_item:first-child { padding-top: 0; }
.woocommerce-cart table.cart tr.cart_item td {
	min-width: 0; border: 0; padding: 0 0 6px; background: transparent;
	text-align: left; line-height: 1.5;
}
.woocommerce-cart table.cart tr.cart_item td.product-thumbnail { grid-area: image; }
.woocommerce-cart table.cart tr.cart_item td.product-thumbnail img {
	display: block; width: 97px; height: 156px; object-fit: cover;
}
.woocommerce-cart table.cart tr.cart_item td.product-name { grid-area: name; }
.woocommerce-cart table.cart tr.cart_item td.product-price { grid-area: price; }
.woocommerce-cart table.cart tr.cart_item td.product-quantity { grid-area: qty; }
.woocommerce-cart table.cart tr.cart_item td.product-subtotal { display: none; }
.woocommerce-cart table.cart tr.cart_item td.product-remove { grid-area: remove; align-self: end; }
.woocommerce-cart table.cart tr.cart_item td.product-subtotal::before { content: attr(data-title) ": "; font-weight: 400; }
.woocommerce-cart table.cart tr.cart_item td.product-remove a.remove {
	width: auto; height: auto; display: inline-block; font-size: 0; line-height: 1.5;
}
.woocommerce-cart table.cart tr.cart_item td.product-remove a.remove::after { content: "удалить"; font-size: 12px; }
.woocommerce-cart table.cart tr.cart_item td.product-remove a.remove:hover { color: var(--color-text) !important; background: transparent; }
.woocommerce-cart table.cart tr.cart_item .qty { min-height: 32px; }
@media (max-width: 767px) {
	.woocommerce-cart .woocommerce-cart-form { width: 100%; }
	.woocommerce-cart table.shop_table_responsive tr.cart_item td { display: block; text-align: left !important; }
	.woocommerce-cart table.shop_table_responsive tr.cart_item td::before { content: none; }
	.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-subtotal::before { content: attr(data-title) ": "; float: none; }
	.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail { padding: 0; }
}
.woocommerce-cart .woocommerce .cart-empty.woocommerce-info {
	margin: 0 0 24px; padding: 0; border: 0; background: transparent; color: var(--color-muted);
}
.woocommerce-cart .woocommerce .cart-empty.woocommerce-info::before { content: none; }
.woocommerce-cart .woocommerce .return-to-shop a.button {
	padding: 0; border: 0; background: transparent; color: var(--color-text);
}
.woocommerce-cart .product-quantity .quantity { display: inline-flex; align-items: center; }
.woocommerce-cart .product-quantity .nectar-quantity-step { min-width: 32px; min-height: 36px; }
.woocommerce-cart .product-quantity .qty { width: 40px; border: 0; text-align: center; appearance: textfield; }
.woocommerce-cart .product-quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart .product-quantity .qty::-webkit-outer-spin-button { appearance: none; margin: 0; }

/* Filled cart totals per figma/cart/items.png: single «итого» row + «заказать».
   The coupon form and the shipping calculator stay in the DOM (WooCommerce
   contracts) but are hidden here — both are reachable at checkout. */
.woocommerce-cart .woocommerce-cart-form .coupon { display: none; }
.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] { display: none; }
.woocommerce-cart .cart_totals h2 { display: none; }
.woocommerce-cart .cart_totals .shop_table tr.cart-subtotal,
.woocommerce-cart .cart_totals .shop_table tr.shipping { display: none; }
.woocommerce-cart .cart_totals .shop_table { border: 0; }
.woocommerce-cart .cart_totals .shop_table tbody th,
.woocommerce-cart .cart_totals .shop_table tbody td { border: 0; padding: 0; font-weight: 400; }
.woocommerce-cart .cart_totals .shop_table tr.order-total th,
.woocommerce-cart .cart_totals .shop_table tr.order-total td {
	padding: 14px 0 16px;
	border-bottom: 1px solid var(--color-hairline) !important;
	color: var(--color-text);
	text-transform: lowercase;
}
.woocommerce-cart .cart_totals .order-total .includes_tax { display: none; }
.woocommerce-cart .cart_totals strong { font-weight: 400; }
.woocommerce-cart .woocommerce-message {
	margin: 0 0 24px;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-muted);
	font-size: 12px;
}
.woocommerce-cart .woocommerce-message::before { content: none; }

/* Woo paints its notices with a green top border, a green dashicon and grey
   fills; on checkout/account the same neutral striping applies (the design
   has no green). */
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
	margin: 0 0 24px;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-muted);
	font-size: 12px;
}
.woocommerce-checkout .woocommerce-message::before,
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-info::before { content: none; }
.woocommerce-checkout .woocommerce-error,
.woocommerce-account .woocommerce-error {
	margin: 0 0 24px;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-error);
	font-size: 12px;
	list-style: none;
}
.woocommerce-checkout .woocommerce-error::before { content: none; }

/* Wishlist: figma/wishlist/items.png (desktop) and items-1.png (mobile).
   Soo Wishlist owns the data; the theme owns the presentation. The nav is
   the shared cart/wishlist component; rows replace the plugin table markup
   via theme template overrides. */
.page-id-13 main.site-main { padding: 0 var(--page-gutter); min-height: calc(100vh - 320px); }
.page-id-13 main.site-main > article > h1 {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.soo-wishlist .nectar-wishlist-list { margin: 0 0 40px; max-width: 620px; }
/* WooCommerce paints a.remove red site-wide (.woocommerce a.remove with
   !important, specificity 0,2,1); the design wants a muted text link. */
.woocommerce.soo-wishlist .nectar-wishlist-item__remove {
	display: inline;
	width: auto; height: auto; padding: 0;
	border-radius: 0;
	background: none;
	color: var(--color-muted) !important;
	font-size: 12px; font-weight: 400; line-height: 1.5;
}
.woocommerce.soo-wishlist .nectar-wishlist-item__remove:hover { color: var(--color-text) !important; background: none; }
.soo-wishlist .nectar-wishlist-item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 0 24px;
	padding: 28px 0;
	border-bottom: 1px solid var(--color-hairline);
}
.soo-wishlist .nectar-wishlist-item:first-child { padding-top: 0; }
.soo-wishlist .nectar-wishlist-item__media { display: block; align-self: start; }
.soo-wishlist .nectar-wishlist-item__media img { display: block; width: 96px; height: 120px; object-fit: cover; }
.soo-wishlist .nectar-wishlist-item__head { display: flex; align-items: baseline; gap: 16px; }
.soo-wishlist .nectar-wishlist-item__name { color: var(--color-text); font-size: 12px; line-height: 1.5; }
.soo-wishlist .nectar-wishlist-item__price { margin-left: auto; color: var(--color-text); font-size: 12px; line-height: 1.5; white-space: nowrap; }
.soo-wishlist .nectar-wishlist-item__price .price { color: inherit; }
.soo-wishlist .nectar-wishlist-item__price ins { text-decoration: none; }
.soo-wishlist .nectar-wishlist-item__price del { color: var(--color-muted); }
.soo-wishlist .nectar-wishlist-item__actions { display: flex; align-items: center; gap: 24px; margin: 22px 0 0; }
.soo-wishlist .nectar-wishlist-item__actions .button {
	display: inline-block; min-width: 148px; min-height: var(--control-h); padding: 10px 20px;
	border: 1px solid var(--color-text); border-radius: 0; background: var(--color-white);
	color: var(--color-text); font-size: 12px; font-weight: 400; line-height: 1.3; text-align: center; text-transform: lowercase;
}
.soo-wishlist .nectar-wishlist-item__actions .button:hover { background: var(--color-background); color: var(--color-text); }
.soo-wishlist .nectar-wishlist-item__actions .button.loading { opacity: 0.5; }
.soo-wishlist .nectar-wishlist-item__actions .button.added::after { content: none; }
.soo-wishlist .nectar-wishlist-item__stock { color: var(--color-muted); font-size: 12px; text-transform: lowercase; }
/* Empty state: figma/wishlist/empty.png. */
.soo-wishlist .wishlist-empty { margin: 0 0 24px; color: var(--color-muted); font-size: 12px; }
.soo-wishlist .wishlist-empty p { margin: 0; }
.soo-wishlist .return-to-shop { margin: 0; }
.soo-wishlist .return-to-shop a.button { padding: 0; border: 0; background: none; color: var(--color-text); font-size: 12px; font-weight: 400; }
.soo-wishlist .return-to-shop a.button:hover { color: var(--color-accent); opacity: 1; }

@media (max-width: 767px) {
	.soo-wishlist .nectar-wishlist-item { grid-template-columns: 96px minmax(0, 1fr); gap: 0 16px; padding: 24px 0; }
	.soo-wishlist .nectar-wishlist-item__head { flex-wrap: wrap; gap: 4px 16px; }
	.soo-wishlist .nectar-wishlist-item__actions { margin-top: 18px; gap: 20px; flex-wrap: wrap; }
	.soo-wishlist .nectar-wishlist-item__actions .button { min-width: 132px; }
}

/* About page: figma/about us-1.png (desktop) and about us.png (mobile).
   The two photos are 1x crops from the Figma export; replace them with the
   original assets when the client supplies them. */
.nectar-about-page { min-height: calc(100vh - 110px); padding: 0 var(--page-gutter); }
.nectar-about {
	display: grid;
	grid-template-areas: "media text";
	grid-template-columns: minmax(0, 660px) minmax(0, 490px);
	column-gap: 74px;
	align-items: start;
	padding: 60px 0 40px;
}
.nectar-about__media { grid-area: media; display: flex; align-items: flex-start; gap: 8px; }
.nectar-about__media img { display: block; height: auto; }
.nectar-about__media img:first-child { width: 60.2%; }
.nectar-about__media img:last-child { width: 38.6%; margin-top: 52px; }
.nectar-about__text { grid-area: text; padding-top: 19px; }
.nectar-about__title { margin: 0 0 24px; font-size: 12px; font-weight: 400; line-height: 1.5; text-transform: lowercase; }
.nectar-about__text p { margin: 0 0 16px; color: var(--color-text); font-size: 12px; line-height: 1.7; }
.nectar-about__text p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
	.nectar-about { grid-template-areas: "text" "media"; grid-template-columns: minmax(0, 1fr); padding: 8px 0 40px; }
	.nectar-about__media { display: block; margin-top: 40px; }
	.nectar-about__media img:first-child { width: 100%; }
	.nectar-about__media img:last-child { width: 60%; margin: 40px 0 0 auto; }
}

/* Info pages: figma/customers info*.png — «покупателям» (one accordion of
   sections) and the privacy policy (legacy accordion markup restyled).
   Content is plain Gutenberg blocks; default block styles below match the
   design system (Commissioner, 12px, muted hairlines). */
.nectar-info-page { min-height: calc(100vh - 110px); padding: 0 var(--page-gutter); }
.nectar-info-page__title {
	margin: 24px 0 44px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: lowercase;
}
.nectar-info .nectar-acc__item,
.nectar-info .nectar-info__link,
.nectar-info-legacy .privacy-policy .accordion-section { border-bottom: 1px solid var(--color-hairline); }
.nectar-info .nectar-acc__item:last-of-type { border-bottom: 1px solid var(--color-hairline); }

/* Gutenberg defaults inside info pages. */
.nectar-info-page .entry-content { max-width: 680px; }
.nectar-info-page .entry-content > * { min-width: 0; }
.nectar-info-page .entry-content p {
	margin: 0 0 14px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 1.7;
}
.nectar-info-page .entry-content p:last-child { margin-bottom: 0; }
.nectar-info-page .entry-content h3,
.nectar-info-page .entry-content h4 {
	margin: 24px 0 12px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: lowercase;
}
.nectar-info-page .entry-content h3:empty,
.nectar-info-page .entry-content h4:empty { display: none; }
.nectar-info-page .entry-content strong { font-weight: 400; }
.nectar-info-page .entry-content a { color: var(--color-text); text-decoration: none; }
.nectar-info-page .entry-content a:hover { color: var(--color-accent); opacity: 1; }
.nectar-info-page .entry-content img { display: block; max-width: 100%; height: auto; }
.nectar-info-page .entry-content .wp-block-image { margin: 18px 0; }
.nectar-info-page .entry-content ul,
.nectar-info-page .entry-content ol {
	margin: 0 0 14px;
	padding-left: 16px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 1.7;
	list-style-position: outside;
}
.nectar-info-page .entry-content li { margin: 0 0 6px; }
.nectar-info-page .entry-content hr { margin: 24px 0; border: 0; border-top: 1px solid var(--color-hairline); }
.nectar-info-page .entry-content .wp-block-table { margin: 18px 0; }
.nectar-info-page .entry-content .wp-block-table table,
.nectar-info-page .entry-content .wp-block-table thead,
.nectar-info-page .entry-content .wp-block-table tr,
.nectar-info-page .entry-content .wp-block-table th,
.nectar-info-page .entry-content .wp-block-table td {
	border: 0;
	border-collapse: collapse;
	background: none;
	box-shadow: none;
}
.nectar-info-page .entry-content .wp-block-table table { width: 100%; border-top: 1px solid var(--color-hairline); font-size: 12px; line-height: 1.6; }
.nectar-info-page .entry-content .wp-block-table th,
.nectar-info-page .entry-content .wp-block-table td {
	padding: 10px 12px 10px 0;
	border-bottom: 1px solid var(--color-hairline) !important;
	color: var(--color-text);
	font-weight: 400;
	text-align: left;
	vertical-align: top;
}
.nectar-info-page .entry-content .wp-block-table th { color: var(--color-muted); text-transform: lowercase; }

/* Ring sizing: method (1) left, method (2) with the table right (figma desktop). */
.nectar-size-cols {
	display: grid;
	grid-template-columns: minmax(0, 53fr) minmax(0, 47fr);
	column-gap: 14%;
	align-items: start;
}
@media (max-width: 767px) {
	.nectar-size-cols { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
}

/* Accordion rows. */
.nectar-info .nectar-acc__header {
	position: relative;
	margin: 0;
	padding: 18px 32px 18px 0;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: lowercase;
	cursor: pointer;
	user-select: none;
}
.nectar-info .nectar-acc__header::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 6px;
	width: 8px;
	height: 5px;
	background-color: var(--color-muted);
	-webkit-mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	transform: translateY(-50%);
	transition: transform 120ms linear;
}
.nectar-info .nectar-acc__item.is-open .nectar-acc__header::after { transform: translateY(-50%) rotate(180deg); }
.nectar-info .nectar-acc__body { display: none; padding: 4px 0 26px; }
.nectar-info .nectar-acc__item.is-open .nectar-acc__body { display: block; }
.nectar-info .nectar-info__link { margin: 0; }
.nectar-info .nectar-info__link a {
	display: block;
	padding: 18px 0;
	color: var(--color-text);
	font-size: 12px;
	line-height: 1.5;
	text-transform: lowercase;
}

/* Privacy policy: legacy accordion markup in the page content, restyled. */
.nectar-info-legacy .privacy-policy { max-width: 680px; }
.nectar-info-legacy .privacy-policy .accordion-header {
	position: relative;
	padding: 18px 32px 18px 0;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: lowercase;
	cursor: pointer;
	user-select: none;
}
.nectar-info-legacy .privacy-policy .accordion-header::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 6px;
	width: 8px;
	height: 5px;
	background-color: var(--color-muted);
	-webkit-mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	mask: url("../images/icons/chevron-down.svg") center / contain no-repeat;
	transform: translateY(-50%);
	transition: transform 120ms linear;
}
.nectar-info-legacy .privacy-policy .accordion-section.is-open .accordion-header::after { transform: translateY(-50%) rotate(180deg); }
.nectar-info-legacy .privacy-policy .accordion-content {
	display: none;
	padding: 4px 0 26px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 1.7;
	/* The design prints the legal text in lowercase; the stored text stays untouched. */
	text-transform: lowercase;
}
.nectar-info-legacy .privacy-policy .accordion-section.is-open .accordion-content { display: block; }

/* «Наше пространство»: figma/our space.png (desktop) and -1 (mobile) —
   route map on the left, contacts and the directions heading on the right.
   The map asset (figma/assets/our-space-map.png) is the design's own raster. */
.nectar-space-page { min-height: calc(100vh - 110px); padding: 0 var(--page-gutter); }
.nectar-space {
	display: grid;
	grid-template-areas: "map aside";
	grid-template-columns: minmax(0, 680px) minmax(0, 1fr);
	column-gap: 40px;
	align-items: stretch;
}
.nectar-space__map { grid-area: map; margin: 0 0 40px; }
.nectar-space__map img { display: block; width: 100%; height: auto; }
.nectar-space__aside { grid-area: aside; display: flex; flex-direction: column; padding-top: 8px; }
.nectar-space__contacts p { margin: 0 0 12px; color: var(--color-text); font-size: 12px; line-height: 1.6; }
.nectar-space__contacts p:last-child { margin-bottom: 0; }
.nectar-space__contacts a { color: var(--color-text); text-decoration: none; }
.nectar-space__contacts a:hover { color: var(--color-accent); opacity: 1; }
.nectar-space__directions {
	margin: auto 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--color-hairline);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: lowercase;
}

/* The two-column composition (fixed 680px map + aside) stops fitting a usable
   aside below ~1020px — it degenerates the aside to a sliver and overflows.
   Breakpoint added at that measured layout failure (DESIGN-SYSTEM §6.1). */
@media (max-width: 1023px) {
	.nectar-space { grid-template-areas: "map" "aside"; grid-template-columns: minmax(0, 1fr); }
	.nectar-space__map { margin-bottom: 24px; }
	.nectar-space__directions { margin-top: 40px; }
}

/* 404: figma/404 problem page.png (desktop) and -1 (mobile). */
.nectar-404 {
	min-height: calc(100vh - 110px);
	padding: 105px var(--page-gutter) 60px;
	text-align: center;
}
.nectar-404__code {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	font-size: 133px;
	line-height: 0.7;
	font-weight: 400;
	color: var(--color-text);
}
.nectar-404__bird {
	width: 73px;
	height: auto;
}
.nectar-404__caption {
	margin: 16px 0 0;
	font-size: 12px;
}
@media (max-width: 767px) {
	.nectar-404 { padding-top: 198px; }
}

/* Preloader: figma/load page.png (desktop) and -1 (mobile) — the bird on the
   empty screen. Revealed only under html.nectar-loading (inline head script),
   faded out by main.js on DOMContentLoaded; the head script's 4s timeout is
   the fallback if JS fails. Without JS the overlay never shows. */
.nectar-loader { display: none; }
html.nectar-loading .nectar-loader {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: 999;
	align-items: center;
	justify-content: center;
	background: var(--color-white);
	opacity: 1;
	transition: opacity 300ms linear;
}
html.nectar-loading.nectar-loaded .nectar-loader { opacity: 0; }
.nectar-loader img { width: 38px; height: auto; }

/* PDP states: figma/card/guide*, show wrap*, initials*, and the base
   «в наличии | в избранное» row from card.png. */

/* Availability + wishlist on one line (variable base row and simple form). */
.single-product div.product form.cart > p.stock,
.single-product .summary .nectar-base-stock {
	float: left;
	margin: 26px 0 8px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 16px;
}
.single-product div.product form.cart .single_add_to_cart_button { clear: both; }

/* «гайд» on the size row. */
.single-product div.product form.cart .variations td.value { position: relative; }
.single-product div.product form.cart .variations .nectar-guide-link {
	position: absolute;
	right: 0;
	bottom: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
/* On the pa_size row the guide sits against 36px cells that start 10px below
   the container top, so its centre is 10 + 36/2 = 28px from that top — both
   before selection and after reset_variations restores the row. Scoped to
   regular products' pa_size only; text, dialog and JS stay untouched. */
.single-product div.product:not(.nectar-cert) form.cart .variations td.value:has(.tawcvs-swatches[data-attribute_name="attribute_pa_size"]) .nectar-guide-link {
	top: 28px;
	bottom: auto;
	transform: translateY(-50%);
}

/* Letter attribute: the native select shows as a plain row with a +/− mark;
   the swatches plugin markup stays in the DOM untouched. */
.single-product div.product form.cart .variations .nectar-letter-select { position: relative; display: block; }
.single-product div.product form.cart .variations .nectar-letter-select .variation-selector { display: block !important; }
.single-product div.product form.cart .variations .nectar-letter-select select {
	display: block;
	width: 100%;
	padding: 0 24px 0 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}
.single-product div.product form.cart .variations .nectar-letter-select select:focus { outline: none; }
.single-product div.product form.cart .variations .nectar-letter-select .tawcvs-swatches { display: none; }
.nectar-letter-select__mark {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	color: var(--color-text);
	font-size: 12px;
	font-weight: 300;
	line-height: 1;
	pointer-events: none;
}
.nectar-letter-select__mark::before { content: '+'; }
.nectar-letter-select.is-open .nectar-letter-select__mark::before { content: '–'; }

/* Size guide dialog. */
dialog.nectar-guide {
	position: fixed;
	top: var(--header-height);
	right: 0;
	bottom: 0;
	left: 28%;
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 44px 40px 48px 64px;
	border: 0;
	border-radius: 0;
	background: var(--color-white);
	color: var(--color-text);
	overflow-y: auto;
}
dialog.nectar-guide::backdrop { background: transparent; }
.nectar-guide__close {
	position: absolute;
	top: 16px;
	right: 24px;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.nectar-guide__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("../images/icons/close.svg") center / contain no-repeat;
	mask: url("../images/icons/close.svg") center / contain no-repeat;
	transform: translate(-50%, -50%);
}
.nectar-guide__close:hover { color: var(--color-accent); }
.nectar-guide__title {
	margin: 0 0 44px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
}
.nectar-guide__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	column-gap: 64px;
	grid-template-areas:
		'measure table'
		'notes table'
		'bracelet bracelet';
}
.nectar-guide__section--measure { grid-area: measure; }
.nectar-guide__section--table { grid-area: table; }
.nectar-guide__section--notes { grid-area: notes; }
.nectar-guide__section--bracelet { grid-area: bracelet; }
.nectar-guide__subtitle {
	margin: 0 0 24px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
}
.nectar-guide__heading {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
}
.nectar-guide__text { margin: 0 0 24px; font-size: 12px; line-height: 1.5; }
.nectar-guide__section--measure .nectar-guide__text { margin-bottom: 40px; }
.nectar-guide__circles {
	display: flex;
	align-items: flex-end;
	gap: 48px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}
.nectar-guide__circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	color: var(--color-text);
	font-size: 12px;
}
/* Ring artwork: original Figma assets; desktop/mobile optical variants,
   measuring arrow and the «N мм» label centered over the ring. */
.nectar-guide__ring {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}
.nectar-guide__ring-img--mobile,
.nectar-guide__ring-arrow--mobile { display: none; }
.nectar-guide__ring-arrow {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 87%;
	height: auto;
	transform: translate(-50%, -50%);
}
.nectar-guide__ring-mm {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: 12px;
	color: var(--color-text);
}
.nectar-guide__list { margin: 0 0 24px; padding: 0; list-style: none; }
/* Bracelet illustration: original Figma assets, Make geometry (378×225 desktop,
   300×178 mobile). The gray band/bar are mask-free flat fills as in the mockup. */
.nectar-guide__bracelet--mobile { display: none; }
.nectar-guide__bracelet-art { position: relative; width: 378px; height: 225px; }
.nectar-guide__bracelet-bangle { position: absolute; left: 13px; top: 15px; transform: rotate(-4.82deg); }
.nectar-guide__bracelet-band { position: absolute; left: 177px; top: 30px; width: 27px; height: 136px; background: var(--color-text); opacity: 0.4; }
.nectar-guide__bracelet-clasp { position: absolute; left: 147px; top: 20px; }
.nectar-guide__bracelet-clasp-head { position: absolute; left: 148px; top: 17px; }
.nectar-guide__bracelet-ruler { display: flex; align-items: flex-start; gap: 12px; padding-bottom: 44px; }
.nectar-guide__bracelet-measure { display: flex; flex-direction: column; align-items: center; }
.nectar-guide__bracelet-bar { display: block; width: 251px; height: 21px; background: var(--color-text); opacity: 0.4; }
.nectar-guide__bracelet-measure img { margin-top: 12px; }
.nectar-guide__bracelet-note { margin-top: 12px; font-size: 12px; color: var(--color-text); }
.nectar-guide__bracelet-extra { display: flex; flex-direction: column; align-items: center; padding-top: 33px; }
.nectar-guide__bracelet-extra img { margin-top: 12px; }
.nectar-guide__list li { margin: 0 0 4px; font-size: 12px; line-height: 1.5; }
.nectar-guide table { width: 100%; border-collapse: collapse; }
.nectar-guide th,
.nectar-guide td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--color-hairline) !important;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	text-align: left;
}
.nectar-guide thead th { color: var(--color-muted); }
/* Guide stacks below 1280px: in the two-column layout the desktop ring artwork
   shrinks under ~75px legibility (measured failure point), so the mobile
   optical variants and the single-column flow take over. */
@media (max-width: 1279px) {
	.nectar-guide__cols { display: block; }
	.nectar-guide__ring-img--desktop,
	.nectar-guide__ring-arrow--desktop { display: none; }
	.nectar-guide__ring-img--mobile,
	.nectar-guide__ring-arrow--mobile { display: block; }
	.nectar-guide__bracelet--desktop { display: none; }
	.nectar-guide__bracelet--mobile { display: block; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-art { width: 300px; height: 178px; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-bangle { left: 7px; top: 8px; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-band { left: 147px; top: 32px; width: 21px; height: 107px; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-clasp { left: 123px; top: 25px; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-clasp-head { left: 124px; top: 22px; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-ruler { margin-top: 16px; padding-bottom: 0; }
	.nectar-guide__bracelet--mobile .nectar-guide__bracelet-bar { width: 194px; }
}

@media (max-width: 767px) {
	dialog.nectar-guide { left: 0; padding: 32px 20px 40px; }
	.nectar-guide__title { margin-bottom: 32px; }
	.nectar-guide__circles { gap: 14px; }
}

/* Gift wrap block per figma/card/show wrap.png. */
.single-product .summary .nectar-gift-wrap__toggle { grid-area: wrap; }
.single-product .summary .nectar-gift-wrap { grid-area: wrapgrid; }
.nectar-gift-wrap__toggle {
	display: block;
	margin: 24px 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	text-align: left;
	cursor: pointer;
}
.nectar-gift-wrap { margin: 8px 0 0; }
.nectar-gift-wrap__preview { display: block; width: 100%; max-width: 320px; height: auto; }
.woocommerce .nectar-gift-wrap ul.nectar-gift-wrap__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce .nectar-gift-wrap ul.nectar-gift-wrap__grid::before,
.woocommerce .nectar-gift-wrap ul.nectar-gift-wrap__grid::after { display: none; }
.woocommerce .nectar-gift-wrap ul.nectar-gift-wrap__grid li.product {
	float: none;
	width: 100%;
	margin: 0;
}

/* Checkout, first pass per figma/cart/checkout/info.png: one-page WooCommerce
   checkout restyled in the design language. The three-step split (данные →
   доставка → оплата) is Phase 8 — forms, names, nonces and Edostavka
   contracts stay untouched. */
.woocommerce-checkout main.site-main { min-height: calc(100vh - 110px); padding: 0 var(--page-gutter); }
.woocommerce-checkout main.site-main > article > h1 {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.nectar-checkout-nav { margin: 8px 0 32px; font-size: 12px; }
.nectar-checkout-nav__back { color: var(--color-text); }

.woocommerce-checkout form.checkout { display: flex; gap: 64px; align-items: flex-start; }
.woocommerce-checkout form.checkout #customer_details { width: min(64%, 720px); }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review {
	width: calc(36% - 64px);
	min-width: 300px;
	position: sticky;
	top: 24px;
	border: 0;
	background: none;
	padding: 0;
}
.woocommerce-checkout #order_review_heading {
	margin: 0 0 16px;
	padding-top: 14px;
	border-top: 1px solid var(--color-hairline);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
}
.woocommerce-checkout h3 {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	text-transform: lowercase;
}
.woocommerce-checkout .woocommerce-additional-fields h3 { display: none; }
.woocommerce-checkout .woocommerce-billing-fields > p,
.woocommerce-checkout .woocommerce-additional-fields > p { margin: 0 0 8px; color: var(--color-muted); font-size: 12px; }

/* Underline fields. */
.woocommerce-checkout form.checkout .form-row {
	float: none;
	width: 100%;
	margin: 0 0 28px;
	padding: 0;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 40px;
}
.woocommerce-checkout form.checkout .form-row label {
	margin: 0 0 2px;
	color: var(--color-muted);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
}
.woocommerce-checkout form.checkout .form-row input.input-text,
.woocommerce-checkout form.checkout .form-row textarea,
.woocommerce-checkout form.checkout .form-row select {
	height: 40px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	background: none;
	color: var(--color-text);
	font-size: 12px;
	box-shadow: none;
}
.woocommerce-checkout form.checkout .form-row textarea { height: auto; min-height: 40px; padding: 10px 0; line-height: 1.5; }
.woocommerce-checkout form.checkout .form-row input.input-text:focus,
.woocommerce-checkout form.checkout .form-row textarea:focus,
.woocommerce-checkout form.checkout .form-row select:focus { outline: none; border-bottom-color: var(--color-text); }
/* Labels above carry the field name; Woo placeholders would duplicate it. */
.woocommerce-checkout form.checkout .form-row input.input-text::placeholder,
.woocommerce-checkout form.checkout .form-row textarea::placeholder { color: transparent; }
.woocommerce-checkout form.checkout .form-row.woocommerce-validated input.input-text { border-bottom-color: var(--color-text); }
.woocommerce-checkout form.checkout .form-row .select2-container .select2-selection--single {
	height: 40px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	background: none;
}
.woocommerce-checkout form.checkout .form-row .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	color: var(--color-text);
	font-size: 12px;
	line-height: 39px;
}
.woocommerce-checkout form.checkout .form-row .select2-container .select2-selection--single .select2-selection__arrow { height: 38px; }
.woocommerce-checkout #billing_city_field,
.woocommerce-checkout #shipping_city_field,
.woocommerce-checkout #calc_shipping_city_field { overflow: visible; }
.woocommerce-checkout form.checkout .form-row input[type="checkbox"] { margin: 0 10px 0 0; accent-color: var(--color-text); }
.woocommerce-checkout form.checkout .form-row.woocommerce-additional-fields__field-wrapper { margin: 24px 0 0; }

/* Order review per figma/cart/checkout/info.png. */
.woocommerce-checkout #order_review .shop_table {
	border: 0;
	border-collapse: collapse;
	background: none;
	font-size: 12px;
}
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--color-hairline);
	background: none;
	font-weight: 400;
	vertical-align: top;
}
.woocommerce-checkout #order_review .shop_table thead { display: none; }
.woocommerce-checkout #order_review .product-name .product-quantity { color: var(--color-muted); }
.woocommerce-checkout #order_review .product-name .product-quantity { display: block; color: var(--color-muted); font-weight: 400; }
.woocommerce-checkout #order_review .product-name img {
	display: none;
}
.woocommerce-checkout #order_review .product-name .nectar-review-thumb {
	float: left;
	margin: 0 12px 0 0;
}
.woocommerce-checkout #order_review .product-name .nectar-review-thumb img {
	display: block;
	width: 44px;
	height: 56px;
	object-fit: cover;
	margin: 0;
}
.woocommerce-checkout #order_review td.product-name::after { content: ''; display: table; clear: both; }
.woocommerce-checkout #order_review .product-total { text-align: right; white-space: nowrap; }
.woocommerce-checkout #order_review .cart-subtotal th,
.woocommerce-checkout #order_review .cart-subtotal td { display: none; }
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td { border-bottom: 0; text-transform: lowercase; }
.woocommerce-checkout #order_review .order-total .includes_tax { display: none; }
.woocommerce-checkout #order_review strong { font-weight: 400; }
.woocommerce-checkout #order_review .shipping_method { margin-right: 6px; accent-color: var(--color-text); }

/* Payment gateways as plain rows. */
.woocommerce-checkout #payment {
	border: 0;
	border-radius: 0;
	background: none;
}
.woocommerce-checkout #payment ul.payment_methods {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 0 12px;
	padding: 0;
	background: none;
}
.woocommerce-checkout #payment ul.payment_methods li img { display: none; }
.woocommerce-checkout #payment ul.payment_methods label { font-size: 12px; font-weight: 400; }
.woocommerce-checkout #payment .payment_box {
	margin: 8px 0 0;
	padding: 0;
	background: none;
	color: var(--color-muted);
	font-size: 12px;
}
.woocommerce-checkout #payment .payment_box::before { content: none; }
.woocommerce-checkout #payment div.place-order { margin: 24px 0 0; }
.woocommerce-checkout #payment #place_order {
	width: 100%;
	min-height: var(--control-h-lg);
	padding: 10px 20px;
	border: 1px solid var(--color-accent);
	border-radius: 0;
	background: var(--color-white);
	color: var(--color-accent);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}
.woocommerce-checkout #payment #place_order:hover { background: var(--color-accent); color: var(--color-white); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin: 16px 0 0; font-size: 12px; color: var(--color-muted); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: inherit; text-decoration: underline; }

/* Coupon toggle stays a muted link; the form fields match the underline style. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0 0 24px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-muted);
	font-size: 12px;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { content: none; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--color-text); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-checkout form.checkout .woocommerce-form-coupon { padding: 0; border: 0; background: none; }
.woocommerce-checkout .checkout_coupon .form-row-first { width: auto; float: left; margin-right: 16px; }
.woocommerce-checkout .checkout_coupon .form-row-last { width: auto; float: left; }
.woocommerce-checkout .checkout_coupon input { min-width: 200px; }
.woocommerce-checkout .checkout_coupon button {
	min-height: 40px;
	padding: 0 20px;
	border: 1px solid var(--color-text);
	border-radius: 0;
	background: var(--color-white);
	color: var(--color-text);
	font-size: 12px;
}

@media (max-width: 767px) {
	.woocommerce-checkout form.checkout { display: block; }
	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout #order_review_heading,
	.woocommerce-checkout form.checkout #order_review { width: 100%; min-width: 0; }
	.woocommerce-checkout form.checkout #order_review { position: static; margin-top: 40px; }
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
}
