/* Source-aligned controls and detail blocks, September 2026. */
.progain-category-prev,.progain-category-next { width:50px; height:50px; padding:0; display:grid; place-items:center; border:0; border-radius:50%; background:#fff; color:#1c1c1c; box-shadow:0 2px 10px #1c1c1c26; opacity:0; top:calc(50% - 25px); transform:translateY(-10px); transition:opacity .2s,transform .2s; pointer-events:none; }
.progain-category-prev { left:24px; }.progain-category-next { right:24px; }
.progain-category-prev svg,.progain-category-next svg { display:block; width:16px; height:18px; }
.progain-category-carousel > button:hover { background:#fff; }
@keyframes progain-category-arrow { 0% { opacity:1; transform:translateX(0); } 50% { opacity:0; transform:translateX(100%); } 51% { opacity:0; transform:translateX(-100%); } 100% { opacity:1; transform:translateX(0); } }
@media (pointer:fine) and (prefers-reduced-motion:no-preference) { .progain-category-carousel > button:not(:disabled):hover svg { animation:progain-category-arrow .35s ease-in-out; }.progain-category-carousel > .progain-category-prev:hover svg { animation-direction:reverse; } }
@media (pointer:fine) { .progain-category-carousel:is(:hover,:focus-within) > button:not(:disabled) { opacity:1; transform:translateY(0); pointer-events:auto; }.progain-category-carousel > button:disabled { opacity:0; } }
@media (pointer:coarse) { .progain-category-carousel > button { display:none; } }
/* Prevent focus zoom on editable controls, including touch landscape.
 * Important keeps WooCommerce/CartFlows and dynamic form styles consistent.
 * Leave viewport/pinch zoom and non-text controls unchanged. */
@media (max-width:767px), (any-pointer:coarse) {
 body input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),
 body textarea,
 body select,
 body [contenteditable="true"],
 body [contenteditable=""],
 body [contenteditable="plaintext-only"] { font-size:16px !important; }
}
.progain-campaign-popup > button[data-popup-close] { display:grid; place-items:center; width:44px; height:44px; top:6px; right:6px; padding:0; border:0; border-radius:6px; background:rgba(0,0,0,.8); color:#fff; }
.progain-campaign-popup > button[data-popup-close] svg { width:16px; height:16px; }
.progain-campaign-popup > button[data-popup-close]:focus-visible { outline:none; }

/* PhotoSwipe 5: local engine, white canvas and bottom controls. */
.progain-zoom.pswp { --pswp-bg:#fff; position:fixed; inset:0; width:100%; height:100%; z-index:100000; display:none; opacity:.003; touch-action:none; contain:layout style size; -webkit-tap-highlight-color:transparent; outline:0; }
.progain-zoom.pswp--open { display:block; }.progain-zoom img { max-width:none; }
.progain-zoom,.progain-zoom .pswp__bg { will-change:opacity; transform:translateZ(0); }
.progain-zoom .pswp__bg { opacity:.005; background:var(--pswp-bg); }
.progain-zoom,.progain-zoom .pswp__scroll-wrap { overflow:hidden; }
.progain-zoom :is(.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__img,.pswp__zoom-wrap) { position:absolute; top:0; left:0; width:100%; height:100%; }
.progain-zoom :is(.pswp__img,.pswp__zoom-wrap) { width:auto; height:auto; }
.progain-zoom .pswp__item { z-index:1; overflow:hidden; }
.progain-zoom :is(.pswp__container,.pswp__img,.pswp__button) { user-select:none; -webkit-user-select:none; }
.progain-zoom .pswp__hidden { display:none!important; }
.progain-zoom.pswp--zoom-allowed .pswp__img { cursor:zoom-in; }.progain-zoom.pswp--zoomed-in .pswp__img { cursor:grab; }.progain-zoom.pswp--zoomed-in .pswp__img:active { cursor:grabbing; }
.progain-zoom .pswp__top-bar { position:absolute; bottom:40px; left:0; top:auto; width:100%; display:flex; justify-content:center; align-items:center; gap:12px; z-index:10; pointer-events:none; }
.progain-zoom .progain-zoom__control { position:static; display:grid; place-items:center; padding:0; width:44px; height:44px; border:0; border-radius:50%; background:white; color:#1c1c1c; box-shadow:0 2px 10px #1c1c1c26; pointer-events:auto; }
.progain-zoom .progain-zoom__control--close { width:50px; height:50px; }
.progain-zoom .pswp__hide-on-close { opacity:0; transition:opacity .2s; }.progain-zoom.pswp--ui-visible .pswp__hide-on-close { opacity:1; }
.progain-zoom .pswp__preloader { display:none; }.progain-zoom .pswp__error-msg-container { display:grid; place-items:center; height:100%; padding:24px; text-align:center; }
.progain-zoom .progain-zoom__loading { position:absolute; top:50%; left:50%; width:36px; height:36px; transform:translate(-50%,-50%); z-index:9; opacity:1; pointer-events:none; }
.progain-zoom .progain-zoom__loading[hidden] { display:none; }
.progain-zoom__loading::before { content:""; display:block; width:100%; height:100%; box-sizing:border-box; border:3px solid #deddd8; border-top-color:#1c1c1c; border-radius:50%; animation:progain-zoom-loading .8s linear infinite; }
.progain-zoom__loading-label { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@keyframes progain-zoom-loading { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .progain-zoom__loading::before { animation:none; } }
@media(min-width:700px) { .progain-zoom .pswp__top-bar { gap:18px; }.progain-zoom .progain-zoom__control--close { width:56px; height:56px; } }

.progain-product-story .progain-story-block { margin:0; padding:0; }
.progain-story-block picture,.progain-story-block img { display:block; width:100%; height:auto; }
.progain-product-story .progain-story-copy { padding:24px 20px; text-align:center; font-size:13px; line-height:1.65; }
.progain-product-story .progain-story-copy p { max-width:none; margin:0 0 16px; padding:0; font-size:inherit; color:inherit; }
.progain-story-copy :is(h2,h3,h4,h5,h6) { font-weight:400; line-height:1.5; margin:0 0 24px; }.progain-story-copy h2 { font-size:24px; }.progain-story-copy h3 { font-size:20px; }
.progain-story-copy :is(ul,ol) { text-align:left; }.progain-story-block--text .progain-story-copy { max-width:900px; margin:auto; }
@media(min-width:700px) { .progain-story-block--split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; }.progain-story-block--split.is-reversed > picture { order:2; }.progain-product-story .progain-story-copy { padding:40px; font-size:15px; text-align:left; }.progain-story-copy h2 { font-size:28px; } }
.progain-product-story .progain-image-comparison { position:relative; display:grid; padding:0; margin:0; touch-action:pan-y; user-select:none; -webkit-user-select:none; cursor:ew-resize; overflow:hidden; }
.progain-image-comparison > div:not(.progain-image-comparison__handle) { grid-area:1 / 1; position:relative; min-width:0; }
.progain-image-comparison picture,.progain-image-comparison img { display:block; width:100%; height:auto; }
.progain-image-comparison__after { clip-path:inset(0 0 0 var(--comparison-position)); }
.progain-image-comparison__after picture,.progain-image-comparison__after img { height:100%; object-fit:cover; }
.progain-image-comparison span { position:absolute; bottom:16px; left:20px; color:#fff; font-size:16px; text-transform:uppercase; letter-spacing:.15em; }.progain-image-comparison__after span { left:auto; right:20px; }
.progain-image-comparison__handle { position:absolute; top:0; bottom:0; left:var(--comparison-position); width:50px; transform:translateX(-50%); display:grid; place-items:center; z-index:2; touch-action:none; }
.progain-image-comparison__handle:before { content:''; position:absolute; top:0; bottom:0; width:2px; background:#fff; z-index:-1; }.progain-image-comparison__handle:focus { outline:none; }

.progain-about-page { font-family:Arial,sans-serif; color:#1c1c1c; font-size:15px; line-height:1.65; }
.progain-about-breadcrumb { display:flex; align-items:center; gap:8px; list-style:none; padding:8px 12px; margin:0; background:#fff; font-size:15px; line-height:1; }
.progain-about-breadcrumb li+li:before { content:'/'; margin-right:6px; font-size:10px; color:#666; }
.progain-about-breadcrumb a,.progain-about-breadcrumb span { font-size:10px; letter-spacing:normal; text-transform:uppercase; color:#666; }
.progain-about-page .progain-about-title { min-height:0; padding:0; }
.progain-about-page .progain-about-title h1,.progain-about-page h2 { font-size:clamp(20px,17.0731707317px + .7804878049vw,28px); line-height:1.4; letter-spacing:normal; text-transform:none; font-weight:700; }
.progain-about-page .progain-about-title h1 { margin:0; }
.progain-about-page .progain-about-hero { margin-bottom:56px; }.progain-about-page .progain-about-hero img { display:block; height:576px; min-height:0; width:100%; object-fit:cover; filter:brightness(.9); }
.progain-about-page .progain-about-split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; }
.progain-about-page .progain-about-split img { height:auto; width:100%; }
.progain-about-page .progain-about-split__copy { padding:24px 48px 24px 96px; background:#fff; display:block; }
.progain-about-page .progain-about-split h2 { margin:0 0 20px; }.progain-about-page .progain-about-split p { margin:0 0 20px; color:inherit; line-height:1.65; }.progain-about-page .progain-about-split p:last-child { margin-bottom:0; }
.progain-about-page .progain-about-split--reverse img { order:2; }.progain-about-page .progain-about-split--reverse .progain-about-split__copy { padding-inline:96px; justify-self:end; }
.progain-about-build { padding:56px 48px 64px; }.progain-about-build > h2 { text-align:center; margin:0 0 40px; }.progain-about-carousel { position:relative; }
.progain-about-page > .progain-about-split--reverse { padding-bottom:56px; }
.progain-about-page .progain-about-grid { display:flex; gap:16px; overflow:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:0; }
.progain-about-page .progain-about-grid figure { flex:0 0 400px; scroll-snap-align:start; }.progain-about-page .progain-about-grid img { width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; }
.progain-about-page .progain-about-grid figcaption { padding:8px 0 0; font-size:15px; line-height:1.65; color:inherit; }
.progain-about-page .progain-about-grid figcaption h3 { margin:0; font-size:22.8px; line-height:1.5; letter-spacing:normal; text-transform:none; font-weight:700; }.progain-about-page .progain-about-grid figcaption p { margin:0; font-size:15.2px; line-height:1.5; }
.progain-about-carousel > button { position:absolute; top:calc(50% - 22px); width:44px; height:44px; border:0; border-radius:50%; background:#fff; box-shadow:0 2px 10px #1c1c1c26; display:grid; place-items:center; z-index:2; opacity:0; pointer-events:none; }
.progain-about-carousel > button:first-child { left:24px; }.progain-about-carousel > button:last-child { right:24px; }.progain-about-carousel:is(:hover,:focus-within) > button:not(:disabled) { opacity:1; pointer-events:auto; }
@media(min-width:700px) and (max-width:999px) {
 .progain-about-page .progain-about-title h1,.progain-about-page h2 { line-height:1.5; }.progain-about-page .progain-about-hero { margin-bottom:36px; }
 .progain-about-page .progain-about-split h2,.progain-about-page .progain-about-split p { margin-bottom:16px; }
 .progain-about-page .progain-about-split__copy { padding:24px 32px 24px 40px; }.progain-about-page .progain-about-split--reverse .progain-about-split__copy { padding-inline:40px; }
 .progain-about-build { padding:36px 32px 44px; }.progain-about-build > h2 { margin-bottom:28px; }.progain-about-page > .progain-about-split--reverse { padding-bottom:36px; }.progain-about-page .progain-about-grid figure { flex-basis:240px; }
}
@media(max-width:699px) {
 .progain-about-page { font-size:13px; }.progain-about-breadcrumb { font-size:13px; }.progain-about-page .progain-about-title h1,.progain-about-page h2 { line-height:1.5; }
 .progain-about-page .progain-about-split h2,.progain-about-page .progain-about-split p { margin-bottom:16px; }
 .progain-about-page .progain-about-hero { margin-bottom:36px; }.progain-about-page .progain-about-hero img { height:400px; }
 .progain-about-page .progain-about-split { display:flex; flex-direction:column; }.progain-about-page .progain-about-split--reverse img { order:0; }
 .progain-about-page .progain-about-split__copy,.progain-about-page .progain-about-split--reverse .progain-about-split__copy { padding:24px 20px; text-align:center; }
 .progain-about-build { padding:36px 20px 44px; }.progain-about-build > h2 { margin-bottom:28px; }.progain-about-page > .progain-about-split--reverse { padding-bottom:36px; }.progain-about-page .progain-about-grid { gap:12px; margin-right:-20px; }.progain-about-page .progain-about-grid figure { flex-basis:78vw; }.progain-about-page .progain-about-grid figcaption { font-size:13px; }
}

/* Ordinary products share the customizer's selection summary and case cards. */
.progain-customizer-summary.progain-addon-summary { margin:20px 0; padding:16px; border:1px solid #ddd; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.progain-customizer-summary.progain-addon-summary > div { display:block; font-size:inherit; margin:1em 0; }
.progain-addon-summary > div > :first-child { margin-right:.4em; }
.progain-addon-summary > div[hidden] { display:none; }
.progain-customization .progain-customizer-swatch { position:relative; }
.progain-customization .progain-customizer-swatch input { width:1px; height:1px; min-height:0; padding:0; margin:0; border:0; }

/* Campaign media, active announcement hit targets and search controls. */
.progain-announcement__item { pointer-events:none; visibility:hidden; }
.progain-announcement__item.is-active { pointer-events:auto; visibility:visible; }
.progain-campaign-popup > picture { display:block; width:100%; height:100%; min-width:0; }
.progain-campaign-popup > picture > img { display:block; width:100%; height:100%; min-height:330px; object-fit:cover; }
.progain-search-form button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.progain-search-form button .dashicons { display:block; line-height:20px; margin:0; }
.progain-search-history { margin-top:24px; }
.progain-search-history[hidden] { display:none; }
.progain-search-history header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.progain-search-history h2 { margin:0; font-size:18px; }
.progain-search-history button { border:0; background:transparent; color:inherit; min-height:44px; cursor:pointer; }
.progain-search-history ul { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:8px 0 0; padding:0; }
.progain-search-history li { display:flex; align-items:center; max-width:100%; border-radius:24px; background:#f4f4f4; }
.progain-search-history li a { padding:10px 0 10px 14px; overflow-wrap:anywhere; min-width:0; }
.progain-search-history li button { min-width:44px; font-size:20px; }
.progain-search-history:not([hidden]) + .progain-hot-searches { border-top:1px solid #ddd; padding-top:20px; }
@media(max-width:767px) { .progain-campaign-popup > picture > img { height:190px; min-height:0; } }
