/* Single-product presentation. Shared shell and catalog archives keep their owners. */
.r5-product-viewed { margin-top: 72px; }
.r5-product-viewed > h2 { margin: 0 0 30px; color: #333; font-size: 24px; font-weight: 400; line-height: 32px; }
.r5-product-viewed__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.r5-product-viewed__item { min-width: 0; padding: 20px; border: 1px solid #ececec; border-radius: 3px; background: #fff; }
.r5-product-viewed__item img { width: 100%; height: 170px; object-fit: contain; }
.r5-product-viewed__item h3 { margin: 18px 0 12px; font-size: 14px; font-weight: 400; line-height: 23px; overflow-wrap: anywhere; }
.r5-product-viewed__item p { margin: 12px 0 0; color: #777; font-size: 12px; line-height: 20px; overflow-wrap: anywhere; }
@media (max-width: 991px) { .r5-product-viewed__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { .r5-product-viewed__grid { grid-template-columns: minmax(0, 1fr); } }
.single-product .shop-main.shell {
	width: min(1348px, calc(100% - 60px));
	padding-block: 40px 80px;
}
.woocommerce .r5-product.product { margin-top: 0; }
.r5-product {
	--r5-product-brand: #19118c;
	--r5-product-line: #ececec;
	--r5-product-muted: #767676;
	min-width: 0;
	padding-bottom: var(--r5-product-cta-height, 0px);
	color: #555;
	font: 400 15px/25px Montserrat, Arial, sans-serif;
}
.r5-product [hidden], .r5-product-sticky[hidden], .r5-product-mobile-cta[hidden] { display: none !important; }
.r5-product__heading { margin-bottom: 40px; }
.woocommerce .r5-product .r5-product__heading .product_title,
.r5-product .r5-product__title {
	max-width: 100%;
	margin: 0 80px 18px 0;
	color: #333;
	font-size: 32px;
	font-weight: 400;
	line-height: 36px;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}
.r5-product__breadcrumbs { min-width: 0; padding-right: 80px; }
.r5-product__breadcrumbs .woocommerce-breadcrumb {
	margin: 0;
	color: var(--r5-product-muted);
	font-size: 13px;
	line-height: 25px;
	overflow-wrap: anywhere;
}
.r5-product__breadcrumbs .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.r5-product__breadcrumbs .woocommerce-breadcrumb a:hover { color: var(--r5-product-brand); }
.r5-product__crumb-divider { display: inline; margin-inline: 10px; color: #b0b0b0; }
.r5-product__grid { display: grid; grid-template-columns: minmax(0, 1fr) 305px; align-items: start; gap: 40px; }
.r5-product__main, .r5-product__buybox { min-width: 0; }
.r5-product__gallery { min-width: 0; min-height: 640px; padding: 32px 40px 40px; border: 1px solid var(--r5-product-line); border-radius: 3px; background: #fff; }
.r5-product__gallery-toolbar { display: flex; min-height: 36px; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.r5-product__sku { flex: 1; min-width: 0; color: var(--r5-product-muted); font-size: 12px; line-height: 20px; overflow-wrap: anywhere; }
.r5-product__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; }
.r5-product__actions :is(button, a) { display: grid; width: 36px; min-height: 36px; padding: 8px; place-items: center; border: 1px solid var(--r5-product-line); border-radius: 3px; color: #767676; background: #fff; text-decoration: none; }
.r5-product__actions :is(button, a):hover { border-color: var(--r5-product-brand); color: var(--r5-product-brand); }
.r5-product__actions button[aria-pressed="true"] { border-color: var(--r5-product-brand); color: var(--r5-product-brand); background: #f4f3fc; }
.r5-product__actions svg { width: 18px; height: 18px; }
.r5-product__gallery-toolbar .woocommerce-product-rating { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; line-height: 20px; }
.r5-product__gallery-toolbar .star-rating { margin: 0; color: var(--r5-product-brand); }

/* Keep Flexslider's slide widths and transform; size only its visible image area. */
.woocommerce .r5-product .r5-product__gallery div.images { float: none; width: 100%; margin: 24px 0 0; }
.woocommerce .r5-product .r5-product__gallery .woocommerce-product-gallery__wrapper { margin: 0; border: 0; border-radius: 0; }
.r5-product__gallery .woocommerce-product-gallery__image a { display: flex; width: 100%; height: 350px; align-items: center; justify-content: center; }
.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image img { display: block; width: 100%; max-width: 640px; height: 350px; max-height: 100%; margin-inline: auto; object-fit: contain; background: #fff; }
.r5-product__gallery .woocommerce-product-gallery__image--placeholder { display: grid; min-height: 450px; place-items: center; }
.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image--placeholder img { width: min(275px, 65%); height: auto; max-height: 275px; object-fit: contain; opacity: .24; background: transparent; }
.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs { display: flex; width: max-content; max-width: 100%; gap: 10px; margin: 24px auto 0; padding: 0 0 4px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; list-style: none; }
.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs li { float: none; flex: 0 0 64px; width: 64px; margin: 0; padding: 0; border: 0; }
.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs img { width: 64px; height: 64px; padding: 6px; border: 2px solid transparent; border-radius: 6px; opacity: .85; object-fit: contain; }
.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs img.flex-active { border-color: var(--r5-product-brand); opacity: 1; }
.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs img:hover { opacity: 1; }

/* The product request action occupies the narrower commercial column. */
.r5-product__buybox { padding-top: 20px; }
.woocommerce .r5-product .r5-product__buybox div.summary { float: none; width: 100%; margin: 0; }
.woocommerce .r5-product .r5-product__buybox p.price,
.woocommerce .r5-product .r5-product__buybox span.price { margin: 0 0 24px; color: #333; font-size: 26px; font-weight: 600; line-height: 34px; }
.r5-product__buybox .price del { color: #767676; font-size: 16px; }
.r5-product__buybox .price ins { text-decoration: none; }
.woocommerce .r5-product .r5-product__buybox form.cart { display: flex; align-items: stretch; flex-wrap: wrap; gap: 12px; margin: 0 0 16px; }
.woocommerce .r5-product .r5-product__buybox .quantity { flex: 0 0 76px; margin: 0; }
.woocommerce .r5-product .r5-product__buybox .quantity .qty { width: 76px; height: 48px; min-height: 48px; padding: 8px; border-color: #e4e4e4; border-radius: 3px; color: #333; text-align: center; }
.woocommerce .r5-product .r5-product__buybox .single_add_to_cart_button,
.r5-product .r5-product__request-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid var(--r5-product-brand); border-radius: 3px; color: #fff; background: var(--r5-product-brand); font: 600 12px/20px Montserrat, Arial, sans-serif; text-align: center; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.woocommerce .r5-product .r5-product__buybox .single_add_to_cart_button { flex: 1; }
.r5-product .r5-product__request-button { width: 100%; }
.r5-product .r5-product__request-button--secondary { color: var(--r5-product-brand); background: #fff; }
.woocommerce .r5-product .r5-product__buybox .single_add_to_cart_button:hover,
.r5-product .r5-product__request-button:hover { border-color: #110b70; color: #fff; background: #110b70; }
.r5-product :is(button, a.button):disabled, .r5-product button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.r5-product__buybox :is(.stock, .r5-product__availability, .r5-product__purchase-note, .r5-product__request-note) { margin: 8px 0 12px; color: var(--r5-product-muted); font-size: 12px; line-height: 18px; }
.r5-product__buybox .woocommerce-product-details__short-description { margin: 24px 0; color: #555; font-size: 14px; line-height: 23px; }

/* Native Woo IDs and panels stay intact; these selectors never affect other tabs. */
.r5-product__tabs { min-width: 0; margin-top: 48px; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs { clear: none; padding-top: 0; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs { display: flex; align-items: stretch; flex-wrap: wrap; gap: 8px 10px; margin: 0 0 24px; padding: 0; border-bottom: 1px solid var(--r5-product-line); overflow: visible; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li { position: relative; margin: 0 0 -1px; padding: 0; border: 1px solid var(--r5-product-line); border-top: 2px solid transparent; border-radius: 3px 3px 0 0; background: #fafafa; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li.active { border-top-color: var(--r5-product-brand); border-bottom-color: #fff; background: #fff; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li a { display: flex; min-height: 48px; align-items: center; padding: 12px 24px; color: #555; font-size: 11px; font-weight: 400; line-height: 20px; letter-spacing: .02em; text-decoration: none; text-transform: uppercase; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li.active a { color: #333; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs .panel { margin: 0 0 40px; padding: 0; font-size: 15px; line-height: 25px; }
.r5-product [id^="tab-"] { scroll-margin-top: var(--r5-product-scroll-offset, calc(var(--r5-product-header-offset, 0px) + 164px)); }
.r5-description-collapse { --r5-description-preview-height: 440px; min-width: 0; }
.r5-description-collapse__viewport { position: relative; min-width: 0; }
.r5-description-collapse[data-collapsed="true"] .r5-description-collapse__viewport { max-height: var(--r5-description-preview-height, 440px); overflow: hidden; }
.r5-description-collapse[data-collapsed="true"] .r5-description-collapse__viewport::after { position: absolute; right: 0; bottom: 0; left: 0; height: 72px; background: linear-gradient(transparent, #fff); content: ''; pointer-events: none; }
.r5-description-collapse__toggle { display: inline-flex; min-height: 44px; align-items: center; gap: 10px; margin-top: 6px; padding: 10px 0; border: 0; color: #19118c; background: transparent; font: 400 11px/20px Montserrat, Arial, sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.r5-description-collapse__toggle::before { width: 7px; height: 7px; margin: -4px 2px 0; border: solid currentColor; border-width: 0 2px 2px 0; content: ''; transform: rotate(45deg); }
.r5-description-collapse__toggle[aria-expanded="true"]::before { margin-top: 3px; transform: rotate(225deg); }
.r5-product__properties { display: grid; min-width: 0; gap: 32px; }
.r5-product__property-group { min-width: 0; }
.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs .r5-product__property-group > :is(h2, h3) { margin: 0 0 14px; color: #333; font-size: 15px; font-weight: 600; line-height: 24px; letter-spacing: 0; }
.r5-product__property-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin: 0; padding: 0; }
.r5-product__property { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: start; padding: 14px 0; border-top: 1px solid var(--r5-product-line); }
.r5-product__property-label, .r5-product__property-value { min-width: 0; margin: 0; font-size: 14px; font-weight: 400; line-height: 21px; overflow-wrap: anywhere; }
.r5-product__property-label { color: var(--r5-product-muted); }
.r5-product__property-value { color: #333; }
.r5-product .related, .r5-product .up-sells { margin-top: 64px; }
.r5-product .related > h2, .r5-product .up-sells > h2 { margin: 0 0 24px; color: #333; font-size: 24px; font-weight: 400; line-height: 32px; letter-spacing: 0; }
.woocommerce .r5-product :is(.related, .up-sells) ul.products li.product a.button,
.woocommerce .r5-product :is(.related, .up-sells) ul.products li.product a.button:is(:hover, :focus-visible) { color: #fff; }

/* Product navigation sits below the measured visible shared header. */
.r5-product-sticky { position: fixed; z-index: 28; top: var(--r5-product-header-offset, 0px); right: 0; left: 0; border-bottom: 1px solid #ececec; color: #333; background: #fff; box-shadow: 0 3px 8px rgb(0 0 0 / 7%); font: 400 13px/21px Montserrat, Arial, sans-serif; }
.r5-product-sticky__inner { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; width: min(1348px, calc(100% - 60px)); min-height: 82px; align-items: center; gap: 12px 20px; margin-inline: auto; padding: 12px 40px 0 0; }
.r5-product-sticky__thumb { grid-column: 1; grid-row: 1; width: 40px; height: 52px; }
.r5-product-sticky__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.r5-product-sticky__title { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; overflow: hidden; font-size: 14px; font-weight: 400; line-height: 23px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.r5-product-sticky__actions { display: flex; grid-column: 3; grid-row: 1; align-items: center; gap: 12px; }
.r5-product-sticky .r5-product-sticky__actions :is(button, a) { display: inline-flex; width: auto; min-height: 36px; align-items: center; justify-content: center; padding: 8px 24px; border: 1px solid #19118c; border-radius: 3px; color: #fff; background: #19118c; font: 600 11px/18px Montserrat, Arial, sans-serif; text-align: center; text-decoration: none; text-transform: uppercase; }
.r5-product-sticky__tabs { display: flex; grid-column: 1 / -1; grid-row: 2; min-height: 48px; align-items: stretch; gap: 32px; width: 100%; margin: 0; overflow-x: auto; scrollbar-width: thin; }
.r5-product-sticky__tabs a { display: inline-flex; min-height: 48px; align-items: center; flex: 0 0 auto; padding: 10px 16px; border-bottom: 2px solid transparent; color: #555; font-size: 11px; line-height: 20px; text-decoration: none; text-transform: uppercase; }
.r5-product-sticky__tabs a:is([aria-current="true"], [aria-selected="true"], .is-active, .active) { border-bottom-color: #19118c; color: #19118c; }
.r5-product-mobile-cta { display: none; }

/* Opt-in skin on Woo's existing PhotoSwipe root, never a second viewer. */
.pswp.r5-product-lightbox .pswp__bg { background: #fff; }
.pswp.r5-product-lightbox .pswp__top-bar, .pswp.r5-product-lightbox .pswp__caption { background: rgb(255 255 255 / 94%); }
.pswp.r5-product-lightbox .pswp__counter, .pswp.r5-product-lightbox .pswp__caption__center { color: #767676; }
.pswp.r5-product-lightbox .pswp__button { filter: invert(1); opacity: .65; }
.pswp.r5-product-lightbox .pswp__button:hover { opacity: 1; }
.pswp.r5-product-lightbox .pswp__button:focus-visible { outline: 2px solid #fff; outline-offset: -3px; opacity: 1; }
.r5-product-lightbox__thumbs { position: absolute; z-index: 2; top: 50%; left: 30px; display: grid; gap: 12px; max-height: calc(100% - 120px); padding: 4px; overflow-y: auto; overscroll-behavior: contain; transform: translateY(-50%); }
.r5-product-lightbox__thumb { display: grid; width: 64px; height: 64px; padding: 6px; place-items: center; border: 2px solid transparent; border-radius: 6px; background: #fff; cursor: pointer; }
.r5-product-lightbox__thumb[aria-current="true"] { border-color: #19118c; }
.r5-product-lightbox__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }

@media (min-width: 768px) and (max-width: 1100px) {
	.woocommerce .r5-product .r5-product__heading .product_title,
	.r5-product .r5-product__title { margin-right: 40px; }
	.r5-product__breadcrumbs { padding-right: 40px; }
}

@media (min-width: 768px) and (max-width: 991px) {
	.r5-product__grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 0; }
	.r5-product__main { display: contents; }
	.r5-product__gallery { grid-column: 1 / -1; grid-row: 1; min-height: 440px; padding: 32px 40px 40px; }
	.woocommerce .r5-product .r5-product__gallery div.images { width: calc(100% - 300px); margin-inline: 0; }
	.r5-product__gallery .woocommerce-product-gallery__image a,
	.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image img { height: 300px; }
	.r5-product__gallery .woocommerce-product-gallery__image--placeholder { min-height: 300px; }
	.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image--placeholder img { width: min(200px, 80%); }
	.r5-product__buybox { z-index: 1; grid-column: 2; grid-row: 1; padding: 144px 70px 30px 30px; }
	.r5-product__tabs { grid-column: 1 / -1; grid-row: 2; }
	.r5-product__property-list { column-gap: 32px; }
	.r5-product-sticky__title { font-size: 12px; line-height: 20px; }
	.r5-product-sticky .r5-product-sticky__actions :is(button, a) { max-width: 190px; padding-inline: 16px; }
}

@media (max-width: 767px) {
	.single-product .shop-main.shell { width: calc(100% - 32px); padding-block: 16px 48px; }
	.r5-product__heading { margin-bottom: 18px; }
	.woocommerce .r5-product .r5-product__heading .product_title,
	.r5-product .r5-product__title { margin-right: 24px; margin-bottom: 8px; font-size: 32px; line-height: 36px; }
	.r5-product__breadcrumbs .woocommerce-breadcrumb { font-size: 13px; line-height: 25px; }
	.r5-product__breadcrumbs { padding-right: 0; }
	.r5-product__grid { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
	.r5-product__main { display: contents; }
	.r5-product__gallery { order: 0; min-height: 430px; padding: 24px 20px 28px; }
	.r5-product__gallery-toolbar { gap: 12px 16px; }
	.r5-product__sku { flex-basis: calc(100% - 90px); font-size: 12px; }
	.r5-product__actions { margin-left: auto; }
	.woocommerce .r5-product .r5-product__gallery div.images { margin-top: 20px; }
	.r5-product__gallery .woocommerce-product-gallery__image a,
	.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image img { height: 300px; }
	.r5-product__gallery .woocommerce-product-gallery__image--placeholder { min-height: 350px; }
	.woocommerce .r5-product .r5-product__gallery div.images .woocommerce-product-gallery__image--placeholder img { width: min(200px, 75%); }
	.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs { gap: 8px; margin-top: 18px; }
	.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs li { flex-basis: 56px; width: 56px; }
	.woocommerce .r5-product .r5-product__gallery div.images .flex-control-thumbs img { width: 56px; height: 56px; }
	.r5-product__buybox { order: 1; width: 100%; padding: 0; }
	.r5-product__tabs { order: 2; margin-top: 8px; }
	.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs { flex-wrap: nowrap; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
	.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
	.woocommerce .r5-product .r5-product__tabs .woocommerce-tabs ul.tabs li a { min-height: 46px; padding: 11px 14px; }
	.r5-product__property-list { grid-template-columns: minmax(0, 1fr); }
	.r5-product__property { gap: 12px; }
	.r5-product__properties { gap: 28px; }
	.r5-product [id^="tab-"] { scroll-margin-top: var(--r5-product-scroll-offset, calc(var(--r5-product-header-offset, 0px) + 24px)); }
	.r5-product .related, .r5-product .up-sells { margin-top: 40px; }
	.r5-product-sticky { display: none; }
	.r5-product-mobile-cta { position: fixed; z-index: 27; right: 0; bottom: 0; left: 0; display: block; border-top: 1px solid #ececec; background: #fff; box-shadow: 0 -3px 12px rgb(0 0 0 / 6%); }
	.r5-product-mobile-cta__inner { display: flex; min-height: 49px; align-items: center; padding-bottom: env(safe-area-inset-bottom, 0px); }
	.r5-product-mobile-cta .r5-product-mobile-cta__action { display: inline-flex; flex: 1 1 100%; width: 100%; min-width: 0; min-height: 49px; align-items: center; justify-content: center; padding: 12px 16px; border: 0; border-radius: 0; color: #fff; background: #19118c; font: 600 12px/20px Montserrat, Arial, sans-serif; text-align: center; text-decoration: none; text-transform: uppercase; }
	.r5-product-lightbox__thumbs { top: auto; right: auto; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); left: 50%; display: flex; width: max-content; max-width: calc(100% - 32px); max-height: 72px; gap: 8px; overflow-x: auto; overflow-y: hidden; transform: translateX(-50%); }
	.r5-product-lightbox__thumb { flex: 0 0 52px; width: 52px; height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
	.r5-product *, .r5-product-sticky *, .r5-product-mobile-cta * { scroll-behavior: auto; }
}
