.product-view {
	--product-view-card-bg: #202020;
	--product-view-card-border: rgba(255, 255, 255, 0.12);
	--product-view-card-radius: var(--store-radius);
	width: min(100%, var(--store-container));
	margin: 0 auto;
	padding: 34px 20px 64px;
	color: #ffffff;
}

body.is-product-optional-modal-open {
	overflow: hidden;
}

.product-view__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.62fr);
	gap: 34px;
	align-items: start;
}

.product-view__gallery {
	min-width: 0;
	display: grid;
	gap: 14px;
}

.product-view__main-media {
	aspect-ratio: 1 / 0.78;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--store-radius);
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	color: var(--store-muted);
}

.product-view__main-media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 42px;
	transition: transform 180ms ease;
}

.product-view__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
	gap: 10px;
}

.product-view__thumb {
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--store-radius);
	background: #ffffff;
	cursor: pointer;
	overflow: hidden;
	padding: 8px;
	transition: border-color 180ms ease, transform 180ms ease;
}

.product-view__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.product-view__thumb:hover,
.product-view__thumb.is-active {
	border-color: var(--store-accent);
	transform: translateY(-1px);
}

.product-view__summary {
	position: sticky;
	top: calc(var(--store-header-height) + 20px);
	min-width: 0;
	border: 1px solid var(--product-view-card-border);
	border-radius: var(--product-view-card-radius);
	background: var(--product-view-card-bg);
	color: #ffffff;
	padding: 24px;
	box-shadow: var(--store-shadow);
}

.product-view__brand {
	margin: 0 0 8px;
	color: #b8b8b8;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

.product-view__summary h1 {
	margin: 0 0 22px;
	color: #ffffff;
	font-size: 19px;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.04;
}

.product-view__purchase-panel {
	color: #ffffff;
	display: grid;
	gap: 20px;
}

.product-view__price {
	display: grid;
	gap: 5px;
}

.product-view__price s {
	color: #6a6a6a;
	font-size: 15px;
	font-weight: 700;
}

.product-view__price strong,
.product-view__consult {
	color: var(--store-secondary);
	font-size: 24px;
	font-weight: 900;
	line-height: 1.05;
}

.product-view__consult {
	margin: 0;
}

.product-view__price span,
.product-view__price p {
	margin: 0;
	color: #d7d7d7;
	font-size: 14px;
	line-height: 1.35;
}

.product-view__options,
.product-view__optionals {
	display: grid;
	gap: 10px;
}

.product-view__availability-form h2 {
	margin: 0;
	color: #ffffff;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

.product-view__optional-list {
	display: grid;
	gap: 9px;
}

.product-view__optional-group {
	margin: 8px 0 0;
	color: #ffffff;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.7px;
	line-height: 1.2;
	text-transform: uppercase;
}

.product-view__optional-group:first-child {
	margin-top: 0;
}

.product-view__select-wrap {
	position: relative;
}

.product-view__select-wrap::after {
	content: "";
	width: 9px;
	height: 9px;
	border-right: 2px solid #ffffff;
	border-bottom: 2px solid #ffffff;
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-68%) rotate(45deg);
	pointer-events: none;
}

.product-view__select-wrap select {
	width: 100%;
	min-height: 50px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--product-view-card-radius);
	background: #2b2b2b;
	color: #ffffff;
	appearance: none;
	cursor: pointer;
	font-size: 16px;
	font-weight: 800;
	padding: 0 44px 0 14px;
}

.product-view__optional {
	min-height: 56px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--product-view-card-radius);
	background: #2b2b2b;
	display: grid;
	align-items: center;
	cursor: pointer;
	transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.product-view__optional input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.product-view__optional strong {
	color: #ffffff;
	display: block;
	overflow: hidden;
	font-weight: 800;
	font-size: 13px;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.product-view__optional:has(input:checked) {
	border-color: var(--store-accent);
	background: #19114d;
}

.product-view__optional:hover {
	transform: translateY(-1px);
}

.product-view__optional.is-unavailable {
	opacity: 0.58;
	cursor: not-allowed;
}

.product-view__optional {
	grid-template-columns: auto minmax(0, 1fr) auto 34px;
	gap: 10px;
	padding: 10px 12px;
	position: relative;
}

.product-view__optional::before {
	content: "";
	width: 18px;
	height: 18px;
	border: 2px solid #8d8d8d;
	border-radius: 3px;
	display: block;
}

.product-view__optional:has(input[type="radio"])::before {
	border-radius: 999px;
}

.product-view__optional:has(input:checked)::before {
	border-color: var(--store-accent);
	background: var(--store-accent);
	box-shadow: inset 0 0 0 4px #202020;
}

.product-view__optional span {
	grid-column: 2;
	min-width: 0;
	display: grid;
	gap: 3px;
}

.product-view__optional em {
	grid-column: 3;
	color: var(--store-secondary);
	font-size: 13px;
	font-style: normal;
	font-weight: 900;
	white-space: nowrap;
}

.product-view__optional-info {
	grid-column: 4;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
	cursor: pointer;
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

.product-view__optional-info:hover,
.product-view__optional-info:focus-visible {
	border-color: var(--store-accent);
	background: var(--store-accent);
	color: #ffffff;
	outline: none;
}

.product-view__optional.is-unavailable .product-view__optional-info {
	cursor: help;
}

.product-view__optional-modal[hidden] {
	display: none;
}

.product-view__optional-modal {
	position: fixed;
	inset: 0;
	z-index: 80;
	display: grid;
	place-items: center;
	padding: 18px;
}

.product-view__optional-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.72);
	backdrop-filter: blur(6px);
}

.product-view__optional-modal-dialog {
	width: min(100%, 460px);
	max-height: min(720px, calc(100dvh - 36px));
	border: 1px solid var(--product-view-card-border);
	border-radius: var(--product-view-card-radius);
	background: var(--product-view-card-bg);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.48);
	color: #ffffff;
	display: grid;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.product-view__optional-modal-dialog:focus {
	outline: none;
}

.product-view__optional-modal-close {
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.45);
	color: #ffffff;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
}

.product-view__optional-modal-close:focus-visible,
.product-view__optional-modal-close:hover {
	border-color: var(--store-accent);
	background: var(--store-accent);
	outline: none;
}

.product-view__optional-modal-image {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #2b2b2b;
	object-fit: contain;
	padding: 22px;
}

.product-view__optional-modal-image[hidden] {
	display: none;
}

.product-view__optional-modal-body {
	display: grid;
	gap: 12px;
	padding: 24px;
}

.product-view__optional-modal-price {
	margin: 0;
	color: var(--store-secondary);
	font-size: 18px;
	font-weight: 900;
	line-height: 1.2;
}

.product-view__optional-modal h2 {
	margin: 0;
	color: #ffffff;
	font-size: 24px;
	line-height: 1.16;
}

.product-view__optional-modal-description,
.product-view__optional-modal-question {
	margin: 0;
	color: #d7d7d7;
	font-size: 15px;
	line-height: 1.55;
}

.product-view__optional-modal-question {
	color: #ffffff;
	font-weight: 800;
}

.product-view__optional-modal-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 4px;
}

.product-view__optional-modal-actions button {
	min-height: 46px;
	border: 0;
	border-radius: var(--product-view-card-radius);
	cursor: pointer;
	font-size: 15px;
	font-weight: 900;
}

.product-view__optional-modal-confirm {
	background: var(--store-accent, #2b00ff);
	color: #ffffff;
}

.product-view__optional-modal-confirm:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.product-view__optional-modal-cancel {
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff;
}

.product-view__optional-modal-actions button:hover,
.product-view__optional-modal-actions button:focus-visible {
	box-shadow: 0 0 0 3px rgba(43, 0, 255, 0.28);
	outline: none;
}

.product-view__alerts {
	display: grid;
	gap: 10px;
}

.product-view__stock-warning,
.product-view__message,
.product-view__availability-form p {
	margin: 0;
	border-radius: var(--store-radius);
	padding: 10px 12px;
	background: #fff3cf;
	color: #5f4200;
	font-size: 14px;
	font-weight: 700;
}

.product-view__message.is-success,
.product-view__availability-form p.is-success {
	background: #dff7e7;
	color: #14542c;
}

.product-view__message.is-error,
.product-view__availability-form p.is-error {
	background: #ffe0e0;
	color: #8a1f1f;
}

.product-view__warning {
	border-left: 4px solid var(--store-accent);
	padding: 10px 12px;
	background: rgba(255, 255, 255, 0.08);
	color: #eeeeee;
	font-size: 14px;
	line-height: 1.45;
}

.product-view__cart-form {
	display: grid;
}

.product-view__buy,
.product-view__waiting-list,
.product-view__availability-form button {
	min-height: 48px;
	border: 0;
	border-radius: var(--store-radius);
	background: var(--store-accent);
	color: #ffffff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 14px;
	font-weight: 900;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: background-color 180ms ease, transform 180ms ease, opacity 180ms ease;
}

.product-view__buy:hover,
.product-view__waiting-list:hover,
.product-view__availability-form button:hover {
	background: var(--store-accent-strong);
	transform: translateY(-1px);
}

.product-view__buy:disabled {
	background: #6b6b6b;
	cursor: not-allowed;
	opacity: 0.52;
	transform: none;
}

.product-view__availability-form {
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	padding-top: 18px;
	display: grid;
	gap: 12px;
}

.product-view__availability-form label {
	display: grid;
	gap: 5px;
	color: #ffffff;
	font-size: 13px;
	font-weight: 800;
}

.product-view__availability-form input {
	width: 100%;
	min-height: 44px;
	border: 1px solid #d1d1d1;
	border-radius: var(--store-radius);
	background: #ffffff;
	color: #111111;
	padding: 0 12px;
	font-size: 16px;
}

.product-view__section {
	margin-top: 48px;
}

.product-view__section h2 {
	margin: 0 0 18px;
	color: #ffffff;
	font-size: 18px;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.1;
}

.product-view__description {
	width: 100%;
	border: 1px solid var(--product-view-card-border);
	border-radius: var(--product-view-card-radius);
	background: var(--product-view-card-bg);
	padding: 28px;
	color: #e6e6e6;
	font-size: 18px;
	line-height: 1.7;
}

.product-view__description p:first-child {
	margin-top: 0;
}

.product-view__descriptive-image {
	border-radius: var(--product-view-card-radius);
	background: #ffffff;
	overflow: hidden;
}

.product-view__descriptive-image img {
	width: 100%;
	height: auto;
}

.product-view__html iframe {
	width: 100%;
	min-height: 480px;
	border: 0;
	border-radius: var(--product-view-card-radius);
	background: #ffffff;
	display: block;
}

.product-view__technical dl {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid var(--product-view-card-border);
	border-radius: var(--product-view-card-radius);
	overflow: hidden;
}

.product-view__technical dl>div {
	background: var(--product-view-card-bg);
	color: #ffffff;
	padding: 18px;
	display: grid;
	grid-template-columns: minmax(180px, 0.28fr) 1fr;
	align-items: start;
	gap: 7px;
}

.product-view__technical dl>div:nth-child(even) {
	background: #292929;
}

.product-view__technical dt {
	color: #bdbdbd;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

.product-view__technical dd {
	margin: 0;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.35;
}

.product-view__related {
	margin-top: 54px;
}

.is-hidden {
	display: none !important;
}

@media (max-width: 1180px) {
	.product-view__hero {
		grid-template-columns: minmax(0, 1fr) 360px;
		gap: 24px;
	}

}

@media (max-width: 900px) {
	.product-view {
		padding: 18px 12px 44px;
	}

	.product-view__hero {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.product-view__summary {
		position: static;
	}

	.product-view__summary h1 {
		font-size: clamp(28px, 9vw, 38px);
	}

	.product-view__main-media {
		aspect-ratio: 1;
	}

	.product-view__main-media img {
		padding: 24px;
	}

	.product-view__technical dl>div {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.product-view__thumbs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.product-view__optional {
		grid-template-columns: auto minmax(0, 1fr) 34px;
		gap: 8px 10px;
	}

	.product-view__optional span {
		grid-column: 2;
	}

	.product-view__optional em {
		grid-column: 2;
		font-size: 12px;
	}

	.product-view__optional-info {
		grid-column: 3;
	}

	.product-view__optional-modal {
		padding: 12px;
	}

	.product-view__optional-modal-body {
		padding: 20px;
	}

	.product-view__optional-modal-actions {
		grid-template-columns: 1fr;
	}

	.product-view__buy,
	.product-view__waiting-list,
	.product-view__availability-form button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {

	.product-view__main-media img,
	.product-view__thumb,
	.product-view__optional,
	.product-view__optional-info,
	.product-view__optional-modal-actions button,
	.product-view__buy,
	.product-view__waiting-list,
	.product-view__availability-form button {
		transition: none;
	}
}
