/* Product page only: native forms, AJAX selectors and modal behavior are inherited. */
.csn-product-page {
  --csn-night: #071425;
  --csn-cyan: #68e7f5;
  --csn-text: #edf6ff;
  --csn-muted: #c2d6e7;
  min-width: 0;
  padding-block: 16px 48px;
}
.page-product .csn-product-page .product__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.csn-product-page .product__left { min-width: 0; }
.csn-product-page .product__images { max-width: 340px; margin-inline: auto; }
.csn-product-page .product__carousel,
.csn-product-page .product__no-image {
  border: 1px solid #d5e0e8;
  border-radius: 16px;
  overflow: hidden;
  background: #f2f6fa;
}
.csn-product-page .product__carousel .carousel-item img,
.csn-product-page .product__no-image > picture > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 340px;
  object-fit: contain;
}
.csn-product-page .product__thumbnails { margin-top: 16px; }
.csn-product-page .product__thumbnail { border-radius: 8px; }
.csn-product-page .product__right {
  min-width: 0;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid #34566f;
  border-radius: 18px;
  background: radial-gradient(ellipse at top right, #173e50, transparent 65%), var(--csn-night);
  color: var(--csn-text);
  --bs-heading-color: #edf6ff;
  --bs-secondary-color: #c2d6e7;
  --bs-border-color: #44627e;
  --bs-body-color: #edf6ff;
  --bs-body-bg: #10283f;
}
.csn-product-page .product__right .product__name {
  font-size: clamp(1.55rem, 2.5vw, 2.25rem);
  line-height: 1.25;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
  color: var(--csn-text);
}
.csn-product-page .product__right .product__price {
  color: var(--csn-cyan);
  font-size: clamp(2rem, 3.2vw, 2.75rem);
  font-weight: 750;
  line-height: 1.25;
}
.csn-product-page .product__tax-infos { color: var(--csn-muted); font-size: .95rem; line-height: 1.5; }
.csn-product-page .product__regular-price { color: var(--csn-muted); }
.csn-product-page .product__description-short { color: var(--csn-muted); font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.csn-product-page .product__right .product__manufacturer a,
.csn-product-page .product__description-short a,
.csn-product-page .product-customization__message a { color: var(--csn-cyan); text-underline-offset: 4px; }
.csn-product-page .product__customization {
  padding: clamp(18px, 2vw, 26px);
  border: 1px solid #44627e;
  border-radius: 12px;
  background: #10283f;
}
.csn-product-page .product-customization__title { color: var(--csn-text); font-size: 1.15rem; line-height: 1.5; margin-bottom: 20px; }
.csn-product-page .product-customization__label,
.csn-product-page .product-variant__legend,
.csn-product-page .product-variant__selected { color: var(--csn-text); line-height: 1.6; }
.csn-product-page .product-customization__label { font-size: .95rem; font-weight: 600; }
.csn-product-page .product-customization__message,
.csn-product-page .product-customization__field-footer .form-text { color: var(--csn-muted); line-height: 1.6; }
.csn-product-page .product-customization__message { overflow-wrap: anywhere; }
.csn-product-page .product__right .form-control,
.csn-product-page .product__right .form-select {
  background-color: #f3f8fc;
  border: 1px solid #8aa6bb;
  border-radius: 8px;
  color: #10263d;
  min-height: 48px;
  font-size: 1rem;
}
.csn-product-page .product__right textarea.form-control { min-height: 110px; resize: vertical; }
.csn-product-page .product__right .form-control::placeholder { color: #50677b; opacity: 1; }
.csn-product-page .product-variant { padding: 20px; border: 1px solid #44627e; border-radius: 12px; background: #10283f; min-width: 0; }
.csn-product-page .product-variant + .product-variant { margin-top: 16px; }
.csn-product-page .product-variant__attributes { margin-top: 14px; }
.csn-product-page .product-variant .form-select { width: 100%; padding-block: 12px; font-weight: 600; }
.csn-product-page .product__right .product__add-to-cart-button,
.csn-product-page .product-customization__action > .btn {
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid var(--csn-cyan);
  border-radius: 9px;
  background: var(--csn-cyan);
  color: #062031;
  font-weight: 700;
  white-space: normal;
}
.csn-product-page .product__right .product__add-to-cart-button:hover:not(:disabled),
.csn-product-page .product-customization__action > .btn:hover { background: #a6f4ff; border-color: #a6f4ff; color: #062031; }
.csn-product-page .product__right .product__add-to-cart-button:disabled { background: #aac0cc; border-color: #aac0cc; color: #203748; opacity: .75; }
.csn-product-page .product__actions-qty-add { flex-wrap: wrap; gap: 16px; }
.csn-product-page .product__add-to-cart { min-width: 0; }
.csn-product-page .product__minimal-quantity { color: var(--csn-muted); line-height: 1.6; }
.csn-product-page .product__right a:focus-visible,
.csn-product-page .product__right button:focus-visible,
.csn-product-page .product__right input:focus-visible,
.csn-product-page .product__right textarea:focus-visible,
.csn-product-page .product__right select:focus-visible { outline: 3px solid var(--csn-cyan); outline-offset: 4px; box-shadow: none; }
.page-product .csn-product-page .product__bottom { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 40px; }
.csn-product-page .product__bottom-left,
.csn-product-page .product__bottom-right { min-width: 0; }
.csn-product-page .product__accordion { border: 1px solid #d5e0e8; border-radius: 14px; overflow: hidden; }
.csn-product-page .product__accordion .accordion-button { min-height: 52px; padding: 20px 24px; color: #10263d; background: #edf3f8; font-weight: 650; }
.csn-product-page .product__accordion .accordion-button:focus-visible { outline: 3px solid #16647b; outline-offset: -4px; box-shadow: none; }
.csn-product-page .product__accordion .accordion-body { padding: 24px; line-height: 1.8; overflow-wrap: anywhere; }
.csn-product-page .product__accordion .rich-text img { max-width: 100%; height: auto; }
@media (min-width: 992px) {
  .page-product .csn-product-page .product__container { grid-template-columns: minmax(220px, 30%) minmax(0, 1fr); gap: 32px; }
  .page-product .csn-product-page .product__bottom { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .csn-product-page .product__images { max-width: 260px; }
  .csn-product-page .product__right { padding: 22px 18px; border-radius: 14px; }
  .csn-product-page .product__customization { padding: 18px 14px; }
  .csn-product-page .product-variant { padding: 16px 14px; }
  .csn-product-page .product-customization__action > .btn,
  .csn-product-page .product__right .product__add-to-cart-button { width: 100%; }
  .csn-product-page .product__add-to-cart { flex: 1 1 180px; }
  .csn-product-page .product__accordion .accordion-body { padding: 18px; }
}
