/* OPUS: иконка «Ваш запрос» в шапке и выдвижная панель справа (Tessellatum).
   Все цвета строго через var(--opus-*) / rgba(var(--opus-*-rgb), a) (C15). */

/* ---------- Иконка в шапке ---------- */
.opus-cart-link[hidden] { display: none !important; }
.opus-cart-link a {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0 10px;
	color: inherit;
}

/* В шапке Tessellatum .request-count — круглый индикатор на строке */
.site-header .request-count.opus-cart-count {
	position: static;
	display: grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border: 1px solid currentColor;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	font: 500 9px/1 var(--opus-font-text, sans-serif);
}

/* ---------- Выдвижная панель «Ваш запрос» ---------- */
html.opus-drawer-lock { overflow: hidden; }
.opus-drawer { position: fixed; inset: 0; z-index: 9999; }
.opus-drawer[hidden] { display: none; }
.opus-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(var(--opus-overlay-rgb), 0.6);
	opacity: 0;
	transition: opacity 0.25s ease;
}
.opus-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(440px, 100%);
	background: var(--opus-deep);
	color: var(--opus-ivory);
	box-shadow: -12px 0 40px rgba(var(--opus-overlay-rgb), 0.45);
	transform: translateX(100%);
	transition: transform 0.25s ease;
}
.opus-drawer.is-open .opus-drawer__overlay { opacity: 1; }
.opus-drawer.is-open .opus-drawer__panel { transform: none; }
.opus-drawer.is-busy .opus-drawer__body { opacity: 0.55; pointer-events: none; }

.opus-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid rgba(var(--opus-ivory-rgb), 0.16);
}
.opus-drawer__title {
	margin: 0;
	font-family: var(--opus-font-display, serif);
	font-size: 1.8rem;
	font-weight: 400;
	color: var(--opus-ivory);
}
.opus-drawer__close,
.opus-drawer__remove {
	background: none;
	border: 0;
	box-shadow: none;
	outline-offset: 2px;
	color: rgba(var(--opus-ivory-rgb), 0.72);
	font-size: 26px;
	line-height: 1;
	padding: 4px 8px;
	min-height: 0;
	cursor: pointer;
}
.opus-drawer__close:hover,
.opus-drawer__remove:hover { color: var(--opus-sand); background: none; }

.opus-drawer__msg {
	margin: 0;
	padding: 10px 24px;
	font-size: 13px;
	background: rgba(var(--opus-sage-rgb), 0.18);
	color: var(--opus-sage);
}
.opus-drawer__msg.is-error { background: rgba(var(--opus-rust-rgb), 0.2); color: var(--opus-sand); }
.opus-drawer__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	transition: opacity 0.15s;
}

.opus-drawer__list { list-style: none; margin: 0; padding: 0 24px; }
.opus-drawer__item {
	position: relative;
	display: grid;
	grid-template-columns: 84px 1fr;
	gap: 16px;
	padding: 20px 28px 20px 0;
	border-bottom: 1px solid rgba(var(--opus-ivory-rgb), 0.14);
}
.opus-drawer__thumb img { display: block; width: 84px; height: 84px; object-fit: cover; }
.opus-drawer__name {
	display: block;
	font-family: var(--opus-font-display, serif);
	font-size: 1.25rem;
	line-height: 1.2;
	color: var(--opus-ivory);
	text-decoration: none;
}
.opus-drawer__specs { margin: 6px 0 10px; font-size: 12px; line-height: 1.45; }
.opus-drawer__specs div { display: flex; gap: 6px; }
.opus-drawer__specs dt { color: rgba(var(--opus-ivory-rgb), 0.62); font-weight: 400; }
.opus-drawer__specs dt::after { content: ":"; }
.opus-drawer__specs dd { margin: 0; color: var(--opus-ivory); }
.opus-drawer__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.opus-drawer__price { font-weight: 600; color: var(--opus-ivory); }
.opus-drawer__remove { position: absolute; top: 14px; right: -6px; font-size: 24px; }
.opus-drawer__close:focus:not(:focus-visible) { outline: none; }

.opus-qty { display: inline-flex; border: 1px solid rgba(var(--opus-ivory-rgb), 0.3); }
.opus-qty__btn {
	width: 36px;
	height: 36px;
	min-height: 36px;
	padding: 0;
	line-height: 1;
	background: none;
	border: 0;
	color: var(--opus-ivory);
	font-size: 18px;
	cursor: pointer;
}
.opus-qty__btn:hover { background: rgba(var(--opus-ivory-rgb), 0.08); color: var(--opus-sand); }
.opus-qty__input {
	width: 44px;
	height: 36px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--opus-ivory);
	text-align: center;
	-moz-appearance: textfield;
}
.opus-qty__input::-webkit-outer-spin-button,
.opus-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.opus-drawer__foot {
	margin-top: auto;
	display: grid;
	gap: 10px;
	padding: 20px 24px 24px;
	border-top: 1px solid rgba(var(--opus-ivory-rgb), 0.16);
	background: rgba(var(--opus-forest-rgb), 0.55);
}
.opus-drawer__total { display: flex; justify-content: space-between; margin: 0 0 6px; font-size: 1rem; color: var(--opus-ivory); }
.opus-drawer__foot .button { width: 100%; justify-content: center; text-align: center; }
.opus-drawer__foot .button.button--ghost {
	border-color: rgba(var(--opus-ivory-rgb), 0.45);
	color: var(--opus-ivory);
}
.opus-drawer__foot .button.button--ghost:hover {
	background: var(--opus-ivory);
	border-color: var(--opus-ivory);
	color: var(--opus-deep);
}
.opus-drawer__note { margin: 4px 0 0; font-size: 11.5px; line-height: 1.5; color: rgba(var(--opus-ivory-rgb), 0.65); }
.opus-drawer__empty { padding: 32px 24px; color: rgba(var(--opus-ivory-rgb), 0.72); }
.opus-drawer__empty p { color: inherit; margin: 0 0 18px; }
.opus-drawer__empty .button--ghost {
	border-color: rgba(var(--opus-ivory-rgb), 0.45);
	color: var(--opus-ivory);
}
