﻿/* B2C PDP redesign. Load after the site's theme CSS; use with b2c-pdp.js. */
/* Opt-in: assign this custom class only to the unwanted test-page content block. */
.ms-content-block.b2c-pdp-test-hide {display:none!important;}
/* PDP gallery: one current image with thumbnails below. */
.ms-buybox .ms-media-gallery.vertical {display:flex;flex-direction:column;width:100%;gap:16px;}
.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__carousel {display:block!important;position:relative;width:100%;margin:0;order:0;}
.ms-buybox .ms-media-gallery .msc-carousel__inner {width:100%;height:auto;}
.ms-buybox .ms-media-gallery .msc-carousel__item {display:none!important;float:none;position:relative;width:100%;margin:0;transform:none;}
.ms-buybox .ms-media-gallery .msc-carousel__item.active {display:block!important;}
.ms-buybox .ms-media-gallery .ms-inline-zoom {width:100%;height:440px;max-height:65vh;}
.ms-buybox .ms-media-gallery img.ms-media-gallery__item {display:block;width:100%;height:100%;object-fit:contain;visibility:visible!important;}
.ms-buybox .ms-media-gallery .msc-carousel__indicators {display:none;}
.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__thumbnails-container {display:block!important;position:static;width:100%;height:auto;margin:0;order:1;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert,
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-strip {width:100%;height:auto!important;max-height:none;overflow:visible;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-slide {display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-start;position:static;transform:none!important;width:100%!important;height:auto!important;margin:0;padding:0;list-style:none;}
.ms-buybox .ms-media-gallery .ms-media-gallery__thumbnail-item {flex:0 0 112px;width:112px!important;height:112px!important;margin:0;padding:0;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper {display:block;box-sizing:border-box;width:112px;height:112px;min-width:0;padding:8px;margin:0;border:2px solid #d8d8d8;background:white;border-radius:4px;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper[aria-selected="true"] {border:2px solid #555555;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper:focus-visible {outline:2px solid #555555;outline-offset:3px;}
.ms-buybox .ms-media-gallery img.ms-media-gallery__thumbnail {width:100%;height:92px;object-fit:contain;}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert__flipper,
.ms-buybox .ms-media-gallery .ms-fullscreen-section__overlay {display:none;}
@media(max-width:600px){.ms-buybox .ms-media-gallery .ms-inline-zoom{height:300px;}}

.ms-buybox .ms-media-gallery.vertical {height:auto!important;min-height:0;padding:0;justify-content:flex-start;}
.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__carousel,
.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__thumbnails-container {flex:0 0 auto;top:auto;bottom:auto;padding:0;}

.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__carousel {box-sizing:border-box;border:1px solid #d8d8d8;border-radius:6px;background:#fff;overflow:hidden;}
.ms-buybox .ms-media-gallery .ms-media-gallery__thumbnail-item .ms-fullscreen-section {width:100%;height:100%;margin:0;padding:0;}
@media(max-width:600px){
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-slide {gap:12px;}
 .ms-buybox .ms-media-gallery .ms-media-gallery__thumbnail-item {flex-basis:88px;width:88px!important;height:88px!important;}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper {width:88px;height:88px;padding:6px;}
 .ms-buybox .ms-media-gallery img.ms-media-gallery__thumbnail {height:72px;}
}
.ms-buybox .ms-media-gallery .msc-ss-carousel-vert-slide > .ms-media-gallery__thumbnail-item {margin:0!important;}

/* Keep the purchase button from inheriting the full buybox content height. */
.ms-buybox .ms-buybox__content {height:auto;}
.ms-buybox .ms-buybox__add-to-cart-container {height:auto;padding-top:20px;}
.ms-buybox .ms-buybox__add-to-cart-container .msc-add-to-cart {box-sizing:border-box;width:100%;height:48px;min-height:48px;border-radius:4px;align-items:center;justify-content:center;}

/* Product description below the image viewer. */
.ms-buybox .ms-buybox__media-gallery > .msc-buybox__description-section {margin:28px 0 0;padding:0;width:100%;color:#222;font-size:17px;line-height:1.6;}
.ms-buybox .ms-buybox__media-gallery .msc-buybox__description-section-text {display:block;margin:0 0 16px;padding:0 0 10px;border-bottom:2px solid #d8d8d8;color:inherit;font-size:26px;font-weight:700;line-height:1.25;}
.ms-buybox .ms-buybox__media-gallery .msc-buybox__description-section p {margin:0 0 14px;}
.ms-buybox .ms-buybox__media-gallery .msc-buybox__description-section ul {padding-left:22px;margin:0 0 16px;}

/* Increase the original 14px SKU text by one typographic point. */
.ms-buybox .msc-buybox__ratings-section-sku-text {font-size:calc(14px + 1pt);user-select:text;-webkit-user-select:text;}
.ms-buybox .msc-buybox__ratings-section-sku-text strong {font-weight:700;}
/* Both label and number are real, selectable text rather than generated content. */
.ms-buybox .msc-buybox__ratings-section-sku-text .b2c-pdp-sku-label {font-weight:700;}

/* Availability information uses the full content width. */
.ms-buybox .ms-buybox__content > .alternate-warehouse {box-sizing:border-box;width:100%;border:0;border-radius:0;padding:0;margin-top:20px;}

/* More Information body text is 17px. */
.ms-buybox .ms-buybox__media-gallery .msc-buybox__description-section > div > p:not(:first-child),
.ms-buybox .ms-buybox__media-gallery .msc-buybox__description-section > div > ul {font-size:17px;}

/* Tighten the product title to SKU spacing. */
.ms-buybox .ms-buybox__product-title {padding-bottom:8px;}

/* Left-align warehouse availability headings and values. */
.ms-buybox .alternate-warehouse .inventory-details table th,
.ms-buybox .alternate-warehouse .inventory-details table td {text-align:left;}

/* Consistent alignment and balanced cell padding in product specifications. */
.ms-buybox .ms-product-specification__table th,
.ms-buybox .ms-product-specification__table td {text-align:left;vertical-align:top;padding:8px 12px;}

/* Center the bold stock status above the warehouse table. */
.ms-buybox .alternate-warehouse .ms-buybox__inventory-info {text-align:center;justify-content:center;}
.ms-buybox .alternate-warehouse .ms-buybox__inventory-label {text-align:center;font-weight:700;}


/* Center the policy links beneath the PDP content. */
:is(.b2c-pdp-links,.gardner-pdp-links) .ms-content-block__details {width:100%;max-width:100%;text-align:center;}
:is(.b2c-pdp-links,.gardner-pdp-links) .ms-content-block__cta {display:flex;justify-content:center;align-items:center;flex-wrap:wrap;width:100%;gap:12px 28px;}
:is(.b2c-pdp-links,.gardner-pdp-links) .ms-content-block__cta > a {margin:0;}

/* Let policy links center across the whole page rather than a narrow content block. */
html body .ms-content-block:is(.b2c-pdp-links,.gardner-pdp-links).textplacement__left.texttheme__dark {display:block!important;width:100%!important;max-width:100%!important;margin:0!important;}
.ms-content-block:is(.b2c-pdp-links,.gardner-pdp-links) > .ms-content-block__image {display:none;}
.ms-content-block:is(.b2c-pdp-links,.gardner-pdp-links) > .ms-content-block__details {box-sizing:border-box;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;}
.ms-content-block:is(.b2c-pdp-links,.gardner-pdp-links) .ms-content-block__cta {width:100%!important;max-width:none!important;justify-content:center!important;margin-left:0!important;margin-right:0!important;}

/* Product identifiers follow More Information beneath the image viewer. */
.ms-buybox .ms-buybox__media-gallery > .msc-buybox__product-specification {width:100%;margin-top:48px;}
.ms-buybox .msc-buybox__description-section > div[hidden] {display:none!important;}
.ms-buybox .ms-buybox__media-gallery > .msc-buybox__description-section.is-empty + .msc-buybox__product-specification {margin-top:0;}

/* Tighten spacing around the product breadcrumb above the viewer. */
#main .ms-breadcrumb {height:auto;min-height:0;padding:24px 0 12px;}
/* Align the current product with the other breadcrumb links. */
#main .ms-breadcrumb .ms-breadcrumb_item.breadcrumb_item-current .ms-breadcrumb_link {margin-top:0;}
#main .ms-buybox {margin-top:12px;}

/* Compact the quantity box while preserving its horizontal spacing. */
.ms-buybox .msc-buybox__bulk-purchase-section .ms-buybox__quantity {padding-top:16px;padding-bottom:16px;}

/* Bring the separator closer to the SKU. */
.ms-buybox .msc-buybox__ratings-section {padding-bottom:10px;}

.b2c-pdp-mobile-heading {display:none;}
@media (max-width:767px) {
 .ms-buybox > .b2c-pdp-mobile-heading {display:block;box-sizing:border-box;width:100%;order:-1;flex:0 0 100%;margin-bottom:20px;}
}

/* Hide the repeated product breadcrumb on mobile. */
@media (max-width:767px) {
 #main .ms-breadcrumb {display:none;}
}

/* Half-size product title on mobile only. */
@media (max-width:767px) {
 .ms-buybox .ms-buybox__product-title {font-size:18px;line-height:22px;}
}

/* Mobile purchase controls sit between the gallery and Information. */
@media (max-width:767px) {
 .ms-buybox .ms-buybox__media-gallery > .ms-buybox__content {box-sizing:border-box;width:100%;max-width:100%;margin:24px 0 0;}
}

/* Mobile image tabs become dots; retain their labels and gallery controls. */
@media (max-width:767px) {
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-slide {justify-content:center;gap:0;}
 .ms-buybox .ms-media-gallery .ms-media-gallery__thumbnail-item {flex:0 0 44px;width:44px!important;height:44px!important;}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper,
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper[aria-selected="true"] {display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:0;padding:0;border:0;background:transparent;border-radius:0;}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper picture,
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper img {display:none;}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper::before {content:"";display:block;box-sizing:border-box;width:12px;height:12px;border:2px solid #555555;border-radius:50%;background:transparent;}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper[aria-selected="true"]::before {background:#555555;}
}

/* Bring the price closer to the image dots on mobile. */
@media (max-width:767px) {
 .ms-buybox .ms-buybox__media-gallery > .ms-buybox__content {margin-top:4px;}
 .ms-buybox .msc-buybox__price-section {padding-top:8px;}
}

/* Smaller warehouse availability copy on mobile (12px). */
@media (max-width:767px) {
 .ms-buybox .alternate-warehouse .inventory-details table,
 .ms-buybox .alternate-warehouse .inventory-details table th,
 .ms-buybox .alternate-warehouse .inventory-details table td {font-size:12px;}
}

/* Tighten the gap below the SKU on mobile. */
@media (max-width:767px) {
 .ms-buybox > .b2c-pdp-mobile-heading {margin-bottom:12px;}
}

/* Halve the gap between the image viewer and mobile dots. */
@media (max-width:767px) {
 .ms-buybox .ms-media-gallery.vertical {gap:8px;}
}

/* Keep the gallery arrows' subtle circular treatment visible at rest. */
.ms-buybox .ms-media-gallery .msc-carousel__control__prev,
.ms-buybox .ms-media-gallery .msc-carousel__control__next {cursor:default;transition:background-color .15s ease,box-shadow .15s ease;background-color:#fff;border-radius:50%;box-shadow:0 .6px 1.8px rgba(0,0,0,.1),0 3.2px 7.2px rgba(0,0,0,.13);}

/* Highlight arrow paddles on devices that support mouse hover. */
/* Match Gardner's Commerce paddle dimensions and icons with neutral gray. */
.ms-buybox .ms-media-gallery .msc-carousel__control__prev,
.ms-buybox .ms-media-gallery .msc-carousel__control__next {border:0;padding:0;color:#555555!important;}
.ms-buybox .ms-media-gallery .msc-carousel__control__prev__icon,
.ms-buybox .ms-media-gallery .msc-carousel__control__next__icon,
.ms-buybox .ms-media-gallery .msc-carousel__control__prev__icon::before,
.ms-buybox .ms-media-gallery .msc-carousel__control__next__icon::before {color:#555555!important;-webkit-text-fill-color:#555555;}
@media (hover:hover) {
 .ms-buybox .ms-media-gallery .msc-carousel__control__prev:hover,
 .ms-buybox .ms-media-gallery .msc-carousel__control__next:hover {background-color:#f0f0f0;box-shadow:0 2px 5px rgba(0,0,0,.16),0 4px 10px rgba(0,0,0,.18);}
}
@media (prefers-reduced-motion:reduce) {
 .ms-buybox .ms-media-gallery .msc-carousel__control__prev,
 .ms-buybox .ms-media-gallery .msc-carousel__control__next {transition:none;}
}

/* Keep clicked arrow circles neutral; retain keyboard focus visibility. */
.ms-buybox .ms-media-gallery .msc-carousel__control__prev:focus,
.ms-buybox .ms-media-gallery .msc-carousel__control__next:focus,
.ms-buybox .ms-media-gallery .msc-carousel__control__prev:active,
.ms-buybox .ms-media-gallery .msc-carousel__control__next:active {outline:none;border-color:transparent;}
.ms-buybox .ms-media-gallery .msc-carousel__control__prev:focus-visible,
.ms-buybox .ms-media-gallery .msc-carousel__control__next:focus-visible {outline:2px solid #555;outline-offset:-3px;}

/* Emphasize the selected desktop thumbnail without changing its dimensions. */
@media (min-width:768px) {
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper[aria-selected="true"] {border:3px solid #555555!important;box-shadow:0 0 0 1px #555555!important;}
}

/* Thumbnail rollover highlights without changing the selected image. */
@media (min-width:768px) and (hover:hover) {
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper:hover {border-color:#555555;box-shadow:0 0 0 1px rgba(85,85,85,.4);}
 .ms-buybox .ms-media-gallery .msc-ss-carousel-vert-button-wrapper[aria-selected="true"]:hover {border-color:#555555;box-shadow:0 0 0 1px #555555;}
}

/* Leave breathing room between arrow circles and the image box border. */
.ms-buybox .ms-media-gallery .msc-carousel__control__prev {left:12px;}
.ms-buybox .ms-media-gallery .msc-carousel__control__next {right:12px;}

/* Mobile navigation uses swipes and dots. */
@media (max-width:767px) {
 .ms-buybox .ms-media-gallery .msc-carousel__control__prev,
 .ms-buybox .ms-media-gallery .msc-carousel__control__next {display:none!important;}
 .ms-buybox .ms-media-gallery .ms-media-gallery__carousel {touch-action:pan-y pinch-zoom;}
}

/* Image navigation is unnecessary for zero or one image. */
.ms-buybox .ms-media-gallery.vertical.b2c-pdp-gallery-ready:not(.has-multiple-images) .ms-media-gallery__thumbnails-container,
.ms-buybox .ms-media-gallery.b2c-pdp-gallery-ready:not(.has-multiple-images) .msc-carousel__control__prev,
.ms-buybox .ms-media-gallery.b2c-pdp-gallery-ready:not(.has-multiple-images) .msc-carousel__control__next {display:none!important;}

/* Production layout: preserve Commerce's DOM hierarchy for hydration and updates. */
.ms-buybox.b2c-pdp-grid {
 display:grid!important;grid-template-columns:minmax(0,2fr) minmax(0,1fr);
 grid-template-rows:repeat(7,min-content) minmax(0,1fr) auto auto;
 column-gap:32px;row-gap:0;align-items:start;
}
.ms-buybox.b2c-pdp-grid > .ms-buybox__media-gallery,
.ms-buybox.b2c-pdp-grid > .ms-buybox__content {display:contents!important;}
.ms-buybox.b2c-pdp-grid .ms-media-gallery {grid-column:1;grid-row:1 / 9;min-width:0;margin-bottom:0;}
.ms-buybox.b2c-pdp-grid .ms-buybox__content > * {grid-column:2;min-width:0;}
.ms-buybox.b2c-pdp-grid .ms-buybox__product-title {grid-row:1;}
.ms-buybox.b2c-pdp-grid .msc-buybox__ratings-section {grid-row:2;}
.ms-buybox.b2c-pdp-grid .msc-buybox__price-section {grid-row:3;}
.ms-buybox.b2c-pdp-grid .msc-buybox__bulk-purchase-section {grid-row:4;}
.ms-buybox.b2c-pdp-grid .alternate-warehouse {grid-row:5;}
.ms-buybox.b2c-pdp-grid .ms-buybox__content > .ms-buybox__inventory-info {grid-column:2;grid-row:5;font-weight:700;}
.ms-buybox.b2c-pdp-grid .ms-buybox__content > .ms-buybox__inventory-info:empty {display:none;}
.ms-buybox.b2c-pdp-grid .ms-buybox__add-to-cart-container {grid-row:6;}
.ms-buybox.b2c-pdp-grid .ms-buybox__add-to-wishlist-container {grid-row:7;}
.ms-buybox.b2c-pdp-grid .ms-buybox__add-to-order-template-container {grid-row:8;}
.ms-buybox.b2c-pdp-grid .ms-buybox__content > .msc-buybox__description-section {
 grid-column:1;grid-row:9;margin:20px 0 0;padding:0;width:100%;color:#222;font-size:17px;line-height:1.6;
}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section-text {
 display:block;margin:0 0 16px;padding:0 0 10px;border-bottom:2px solid #d8d8d8;
 color:inherit;font-size:0;font-weight:700;line-height:1.25;
}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section-text::after {content:"Information";font-size:26px;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section > div:not(.msc-buybox__description-section-text) {line-height:1.4;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section p {margin:0 0 4px;font-size:17px;line-height:1.4;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section ul,
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section ol {padding-left:22px;margin:0 0 8px;font-size:17px;line-height:1.4;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section li {margin:0;padding-top:0;padding-bottom:0;line-height:1.4;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section li p {margin:0;}
/* D365 can emit a blank paragraph for an extra return. Keep a modest gap. */
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section p.b2c-pdp-blank-paragraph {height:8px;min-height:0;margin:0;padding:0;line-height:0;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section p.b2c-pdp-blank-paragraph * {line-height:0;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section.is-empty > :not(.msc-buybox__description-section-text) {display:none!important;}
.ms-buybox.b2c-pdp-grid .ms-buybox__content > .msc-buybox__product-specification {grid-column:1;grid-row:10;width:100%;margin-top:48px;}
.ms-buybox.b2c-pdp-grid .msc-buybox__description-section.is-empty + .msc-buybox__product-specification {margin-top:0;}
@media(max-width:767px) {
 .ms-buybox.b2c-pdp-grid {grid-template-columns:minmax(0,1fr);grid-template-rows:none;column-gap:0;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__content > * {grid-column:1;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__product-title {grid-row:1;}
 .ms-buybox.b2c-pdp-grid .msc-buybox__ratings-section {grid-row:2;margin-bottom:12px;}
 .ms-buybox.b2c-pdp-grid .ms-media-gallery {grid-column:1;grid-row:3;}
 .ms-buybox.b2c-pdp-grid .msc-buybox__price-section {grid-row:4;}
 .ms-buybox.b2c-pdp-grid .msc-buybox__bulk-purchase-section {grid-row:5;}
 .ms-buybox.b2c-pdp-grid .alternate-warehouse {grid-row:6;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__content > .ms-buybox__inventory-info {grid-column:1;grid-row:6;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__add-to-cart-container {grid-row:7;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__add-to-wishlist-container {grid-row:8;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__add-to-order-template-container {grid-row:9;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__content > .msc-buybox__description-section {grid-row:10;}
 .ms-buybox.b2c-pdp-grid .ms-buybox__content > .msc-buybox__product-specification {grid-row:11;}
}

/* Information and identifiers occupy their own rows below the gallery.
   Long descriptions must not enlarge the rows between purchase controls.
   Gallery surplus height is absorbed after the cart/notification row. */

/* Size the viewer itself: live galleries may not have the inline-zoom wrapper. */
.ms-buybox .ms-media-gallery.vertical .ms-media-gallery__carousel {
 height:440px!important;max-height:65vh;min-height:0;aspect-ratio:auto;
}
.ms-buybox .ms-media-gallery .msc-carousel__inner,
.ms-buybox .ms-media-gallery .msc-carousel__item,
.ms-buybox .ms-media-gallery .msc-carousel__item > .ms-media-gallery__item,
.ms-buybox .ms-media-gallery .ms-inline-zoom,
.ms-buybox .ms-media-gallery .msc-carousel__item picture {
 box-sizing:border-box;width:100%;height:100%!important;min-height:0;max-height:100%;aspect-ratio:auto;
}
.ms-buybox .ms-media-gallery .msc-carousel__item picture {display:block;}
.ms-buybox .ms-media-gallery .msc-carousel__item img {
 display:block;width:100%!important;height:100%!important;max-height:100%;object-fit:contain;
}
@media(max-width:600px) {
 .ms-buybox .ms-media-gallery.vertical .ms-media-gallery__carousel {height:300px!important;}
}

