/* Product pages only: reference geometry without changing global/home styles. */
html:has(body.page-product-list) { scrollbar-gutter: stable; }
.page-product-list main { --product-width: 97.5rem; }
.page-product-detail main { --product-width: 93.75rem; }
.page-product-list main > .page-breadcrumb-band .container,
.page-product-detail main > .page-breadcrumb-band .container,
.page-product-list .product-list-layout,
.page-product-detail main > .container,
.page-product-detail .inquiry-layout { width: 92%; max-width: var(--product-width); }
.product-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; padding: .75rem 0; list-style: none; color: #777; font-size: .875rem; line-height: 1.5; }
.product-breadcrumb li { display: flex; gap: .5rem; min-width: 0; overflow-wrap: anywhere; }
.product-breadcrumb li + li::before { content: '›'; }
[dir="rtl"] .product-breadcrumb li + li::before { content: '‹'; }
.product-breadcrumb a { text-decoration: none; }
.page-product-list .product-catalog-section { padding-block: 3.125rem; }
.page-product-list .product-list-layout { grid-template-columns: 19.375% minmax(0, 1fr); gap: 4.1%; padding-inline: min(1.84vw, 1.95rem); }
.page-product-list .product-sidebar { display: block; align-self: start; background: #999; position: relative; z-index: 5; overflow: visible; }
.page-product-list .product-sidebar-heading { min-height: 60px; padding: 10px 5% 8px; background: #16619b; }
.page-product-list .product-sidebar-heading h1 { margin: 0; color: #fff; font-size: 28px; line-height: 1.5; }
.page-product-list .product-category-navigation ul { display: block; margin: 0; padding: 0; list-style: none; overflow: visible; }
.page-product-list .product-category-navigation li { position: relative; margin: 0; border: 0; }
.product-category-row { display: flex; align-items: stretch; border-bottom: 1px solid rgba(255,255,255,.2); }
.page-product-list .product-category-navigation a { display: block; flex: 1; min-width: 0; min-height: 50px; padding: 13px 15px; color: #fff; font-size: 16px; line-height: 24px; overflow-wrap: anywhere; text-decoration: none; }
.product-category-row button { flex: 0 0 40px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: 24px; cursor: pointer; }
.product-category-row { color: #fff; }
.product-category-navigation ul ul { background: #666; }
.product-category-navigation ul ul ul { background: #888; }
.catalog-ready .product-category-navigation li > ul { display: none; position: absolute; inset-inline-start: 100%; top: var(--flyout-shift, 0px); width: 230px; z-index: 10; box-shadow: 2px 4px 10px #0002; }
.catalog-ready .product-category-navigation li.is-open > ul { display: block; }
.catalog-ready .product-category-navigation li.opens-back > ul { inset-inline-start: auto; inset-inline-end: 100%; }
.catalog-ready .product-category-navigation li > ul:not(:has(ul)) { max-height: var(--flyout-max-height, calc(100dvh - 16px)); overflow-y: auto; }
.product-category-row:hover, .is-open > .product-category-row, .product-category-row:has([aria-current]) { background: #16619b; }
.product-category-row button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
[dir="rtl"] .product-category-row button span { display: inline-block; transform: rotate(180deg); }
.product-category-trigger { width: 100%; padding: 12px 15px; border: 0; background: #16619b; color: #fff; font: inherit; text-align: start; cursor: pointer; }
.product-category-trigger span { float: inline-end; }
.product-category-drawer { position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0; width: 70%; max-width: none; height: 100dvh; max-height: 100dvh; border: 0; background: #fff; color: #333; overflow-y: auto; overflow-x: clip; }
.product-category-drawer::backdrop { background: rgba(0,0,0,.7); }
.product-category-drawer[open] { animation: product-drawer-in .2s ease-out; }
@keyframes product-drawer-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
[dir="rtl"] .product-category-drawer[open] { animation-name: product-drawer-in-rtl; }
@keyframes product-drawer-in-rtl { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@media(prefers-reduced-motion: reduce) { .product-category-drawer[open] { animation: none; } }
.product-category-drawer > header { display: flex; align-items: center; justify-content: space-between; padding: 8px 15px; border-bottom: 1px solid #eee; }
.product-category-drawer [data-catalog-close] { width: 40px; height: 40px; border: 0; background: transparent; color: inherit; font-size: 28px; cursor: pointer; }
[dir="rtl"] .product-category-drawer { inset: 0 auto 0 0; }
.page-product-list .product-list-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; align-items: stretch; }
.page-product-list .product-card { padding: 1rem; box-shadow: none; border: 1px solid #e5e5e5; }
.page-product-list .product-card .card-media { aspect-ratio: 4 / 3; }
.page-product-list .product-card .card-media img { width: 100%; height: 100%; object-fit: contain; }
.page-product-list .product-card .card-body { padding: 1rem 0 0; }
.page-product-list .product-card h3 { font-size: 1.25rem; line-height: 1.5; }
.page-product-list .product-card h3 a { text-decoration: none; }
.page-product-list .product-card p { width: 90%; margin: .625rem auto 0; padding-block-start: .625rem; border-block-start: 1px solid #e5e5e5; color: #999; font-size: .875rem; line-height: 1.5; }
.page-product-list .product-catalog { min-width: 0; }
.page-product-detail .product-detail { grid-template-columns: 40% minmax(0,1fr); gap: 1.875rem 3.333333%; align-items: start; padding-block: 3.125rem 0; }
.page-product-detail .product-gallery-stage { aspect-ratio: 1; background: #fff; }
.page-product-detail .product-gallery-stage img { object-fit: contain; }
.page-product-detail .product-gallery-thumbs { gap: .625rem; padding-inline: 1.875rem; }
.page-product-detail .product-gallery-thumbs button { flex-basis: 3.75rem; cursor: pointer; }
.page-product-detail .product-gallery-thumbs button[aria-pressed="true"] { border-color: #e63239; }
.page-product-detail .product-summary { position: static; padding: 0; }
.page-product-detail .product-summary h1 { margin: 0 0 .5rem; font-size: 1.625rem; line-height: 1.5; }
.page-product-detail .product-summary > p { margin: 0 0 1rem; font-size: 1rem; line-height: 1.75; color: #555; }
.product-meta { padding-block: .75rem; border-block: 1px solid #e5e5e5; }
.product-meta:empty { display: none; }
.product-meta p { margin: 0; font-size: 1rem; line-height: 2; }
.product-meta a { text-decoration: none; }
.page-product-detail .product-summary .product-views { margin: .375rem 0; color: #999; font-size: .75rem; }
.page-product-detail .product-contact-list { display: block; margin: 0; border: 0; }
.page-product-detail .product-contact-list > .product-contact-group { display: block; position: relative; padding: 0; border: 0; }
.product-contact-group:not(:has(.product-contact-entry)) { display: none !important; }
.product-contact-entry { position: relative; padding: 1rem 0 1rem 3rem; border-block-end: 1px solid #e5e5e5; }
[dir="rtl"] .product-contact-entry { padding-inline: 3rem 0; }
.product-contact-entry::before { position: absolute; inset-inline-start: 0; inset-block-start: 1rem; color: var(--color-brand); font-size: 2rem; }
.product-phone .product-contact-entry::before { content: '☎'; }
.product-email .product-contact-entry::before { content: '✉'; }
.product-contact-entry a { text-decoration: none; }
.product-contact-entry strong, .product-contact-entry span { display: block; overflow-wrap: anywhere; }
.product-contact-entry strong { font-size: 1.25rem; line-height: 1.5; }
.product-contact-entry span { font-size: .875rem; line-height: 1.5; }
.product-contact-group:has(.is-primary) .product-contact-entry:not(.is-primary),
.product-contact-group:not(:has(.is-primary)) .product-contact-entry ~ .product-contact-entry { display: none; }
.page-product-detail .product-summary-actions { display: flex; margin-block-start: 1.25rem; }
.page-product-detail .product-summary-actions a { width: 12.5rem; max-width: 100%; min-height: 3rem; padding: .625rem 1rem; justify-content: center; background: var(--color-brand); color: #fff; font-size: .875rem; }
.page-product-detail .product-content { padding-block-start: 0; min-width: 0; }
.page-product-detail .product-section-title { margin: 0 0 1.875rem; padding: .5rem 1rem; font-size: 1.25rem; line-height: 1.5; }
.page-product-detail .product-content .prose { font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.page-product-detail .product-content .prose table { display: block; max-width: 100%; overflow-x: auto; }
.page-product-detail .product-content .prose img { max-width: 100%; height: auto; }
.page-product-detail .product-content .specifications { width: min(100%,47rem); max-width: 100%; }
.page-product-detail .product-content .specifications dd { margin: 0; overflow-wrap: anywhere; }
.page-product-detail .related-product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.25rem; }
.page-product-detail .related-product-grid a { padding: .625rem; }
.page-product-detail .related-product-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.page-product-detail .related-product-grid strong { white-space: normal; }
.product-image-dialog { max-width: 94vw; max-height: 94dvh; padding: 2.75rem .75rem .75rem; border: 0; background: #fff; }
.product-image-dialog::backdrop { background: rgba(0,0,0,.8); }
.product-image-dialog img { display: block; width: auto; height: auto; max-width: 90vw; max-height: calc(90dvh - 3.5rem); object-fit: contain; }
.product-image-dialog form { position: absolute; inset-block-start: .25rem; inset-inline-end: .5rem; }
.product-image-dialog button { border: 0; background: transparent; min-width: 2.5rem; min-height: 2.5rem; font-size: 1.75rem; cursor: pointer; }
@media(max-width:960px) {
  .page-product-list .product-list-layout { display: block; padding-inline: 0; }
  .page-product-list .product-sidebar { margin-block-end: 2rem; }
  .page-product-list .product-sidebar-heading { display: none; }
  .catalog-ready .product-category-panel { display: none; }
  .product-category-drawer .product-category-navigation a { color: #333; }
  .product-category-drawer .product-category-row { color: #333; border-color: #eee; }
  .product-category-drawer .product-category-row:hover,
  .product-category-drawer .is-open > .product-category-row,
  .product-category-drawer .product-category-row:has([aria-current]) { background: #edf3f8; }
  .catalog-ready .product-category-drawer .product-category-navigation li > ul { position: static; width: auto; padding-inline-start: 15px; box-shadow: none; background: #f5f5f5; max-height: none; overflow: visible; }
  .product-category-drawer .product-category-row button span { display: inline-block; transform: rotate(90deg); }
  .product-category-drawer .is-open > .product-category-row button span { transform: rotate(-90deg); }
  .page-product-list .product-list-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .625rem; }
  .page-product-detail .product-detail { grid-template-columns: 1fr; }
  .page-product-detail .product-summary h1 { font-size: 1.625rem; }
  .page-product-detail .product-gallery { max-width: 100%; }
  .page-product-detail .related-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.page-product-detail .product-inquiry-message-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  grid-template-rows: auto 1fr;
  gap: 6px 20px;
}
.page-product-detail .product-inquiry-message-row > label {
  display: grid;
  grid-template-rows: subgrid;
  grid-column: 1;
  grid-row: 1 / span 2;
  min-width: 0;
}
.page-product-detail .product-inquiry-message-row textarea {
  grid-row: 2;
  min-height: 200px;
}
.page-product-detail .product-inquiry-guide {
  position: relative;
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  min-width: 0;
  padding: 17px;
  border: 1px solid #b9cff9;
  border-radius: 5px;
  background: #dee9fd;
  color: #333;
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-line;
  overflow-wrap: anywhere;
}
.page-product-detail .product-inquiry-guide::before {
  content: "";
  position: absolute;
  inset-inline-start: -7px;
  top: 22px;
  width: 12px;
  height: 12px;
  border-inline-start: 1px solid #b9cff9;
  border-block-end: 1px solid #b9cff9;
  background: inherit;
  transform: rotate(45deg);
}
[dir="rtl"] .product-inquiry-guide::before { transform: rotate(-45deg); }
@media(max-width:768px) {
  .page-product-detail .product-inquiry-message-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .page-product-detail .product-inquiry-guide { grid-column: 1; grid-row: 3; margin-block-start: 6px; }
  .page-product-detail .product-inquiry-guide::before { display: none; }
}
@media(max-width:640px) {
  .page-product-list .product-catalog-section { padding-block: 1rem 2rem; }
  .page-product-list .product-card { padding: .375rem; }
  .page-product-list .product-card h3 { font-size: 1rem; line-height: 1.5; }
  .page-product-list .product-card p { font-size: .75rem; line-height: 1.5; }
  .page-product-detail .product-detail { padding-block-start: 1.875rem; }
  .page-product-detail .product-summary-actions a { width: auto; flex: 1; }
  .page-product-detail .product-contact-list .product-contact-entry strong { font-size: 1.125rem; }
}
