/* Shared product layout: site-width content and large, authentic product photography. */
.ps-main{padding-bottom:80px}
.ps-content{padding-top:48px}
.ps-intro{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);grid-template-rows:auto 1fr;grid-template-areas:"gallery heading" "gallery config";gap:0 48px;align-items:start}
.ps-heading{grid-area:heading;margin-bottom:20px}
.ps-heading h1{font-size:clamp(28px,2.35vw,36px);line-height:1.18;letter-spacing:-.025em;margin:0 0 18px;text-wrap:balance}
.ps-heading p{font-size:15px;line-height:1.65;color:var(--muted);margin:0;max-width:46ch}
.ps-gallery{grid-area:gallery;display:grid;grid-template-columns:68px minmax(0,1fr);gap:20px;min-width:0;align-self:stretch}
.ps-thumbnails{display:flex;flex-direction:column;gap:12px;min-width:0;padding:4px}
.ps-thumbnail{display:block;flex:0 0 68px;width:60px;height:68px;border:1px solid var(--line);background:var(--paper)}
.ps-thumbnail:hover{border-color:var(--ink)}
.ps-thumbnail[aria-current]{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}
.ps-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}
.ps-gallery-stage{min-width:0;display:flex;flex-direction:column}
.ps-main-photo{position:relative;display:block;flex:1;min-height:clamp(540px,45vw,660px);overflow:hidden;background:var(--paper);cursor:zoom-in}
.ps-main-photo .ps-current-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;max-width:none}
.ps-main-photo.is-group .ps-current-image{object-fit:contain}
.ps-zoom-label{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;align-items:center;min-height:36px;padding:6px 10px;background:var(--paper);font-size:12px;color:var(--muted)}
.ps-main svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}
.ps-config{grid-area:config;min-width:0;align-self:stretch;display:flex;flex-direction:column}
.ps-price-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-bottom:28px}
.ps-price-row .ps-price{margin:0}
.ps-price{font-size:32px;line-height:1.25;font-weight:650;margin-bottom:28px;font-variant-numeric:tabular-nums;color:var(--ink)}
.ps-price del{font-size:20px;font-weight:450;color:var(--muted);margin-right:8px}
.ps-price ins{text-decoration:none}
.ps-product .ps-purchase form.cart{margin:0}
.ps-options[hidden],.ps-selection-tools button[hidden],.ps-enhanced .variations{display:none}
.ps-option-group{border:0;padding:0;margin:0 0 24px;min-width:0}
.ps-option-group legend{font-size:14px;font-weight:650;margin-bottom:12px;padding:0}
.ps-choices{display:flex;flex-wrap:wrap;gap:8px}
.ps-choice{width:64px;height:46px;min-height:46px;min-width:64px;display:inline-flex;align-items:center;justify-content:center;padding:8px;border:1px solid var(--line);background:var(--choice-background,var(--paper));color:var(--ink);font-size:13px;font-weight:500}
.ps-choice[data-stock="available"]{--choice-background:#eaf3e9}
.ps-choice[data-stock="unavailable"]{--choice-background:#f7e6e8}
.ps-choice:hover{background:var(--choice-background,var(--paper));color:var(--ink);border-color:var(--muted)}
.ps-choice:disabled{background:var(--choice-background,var(--paper));border-color:var(--line);opacity:1;cursor:not-allowed}
.ps-choice[aria-pressed="true"]{border-color:var(--accent);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent)}
.ps-swatch{width:28px;height:28px;background:var(--swatch);border:1px solid rgba(0,0,0,.15);flex-shrink:0}
.ps-selection-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;margin:-6px 0 12px;font-size:12px;color:var(--muted)}
.ps-reset{padding:4px 0;min-height:36px;border:0;background:none;color:var(--accent);font-size:12px;text-decoration:underline;font-weight:500}
.ps-reset:hover{color:var(--accent-hover);background:none}
.ps-product .woocommerce-variation-availability p{margin:0 0 16px;font-size:14px}
.ps-product .stock.in-stock{color:#356342}
.ps-product .stock.out-of-stock{color:var(--accent)}
.ps-product .woocommerce-variation-price{font-size:18px;margin-bottom:12px}
.ps-product .woocommerce-variation-price .price{color:var(--ink)}
.ps-product .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.ps-product .quantity{float:none;margin:0;flex:0 0 72px}
.ps-product .quantity .qty{width:72px;min-height:52px;height:100%;padding:12px 6px;font-size:16px}
.ps-product .single_add_to_cart_button.button{float:none;flex:1;min-height:52px;padding:13px 18px;font-size:15px;font-weight:650}
.ps-main.woocommerce .ps-product .ps-purchase .single_add_to_cart_button.button:is(:disabled,.disabled){opacity:1;background:#eee9eb;color:#71636a;border-color:#ddd5d8;cursor:not-allowed}
.ps-config .saved-actions{gap:0;margin:0;flex-wrap:wrap}
.ps-config .ps-price-row .saved-actions{margin-left:auto}
.ps-config .saved-actions button{min-height:44px;padding:4px 0;gap:8px;border:0;background:none;box-shadow:none;color:var(--muted);font-size:12px;font-weight:500}
.ps-config .saved-actions button span{display:inline}
.ps-config .saved-actions button:hover,.ps-config .saved-actions button.selected{color:var(--accent);background:none}
.ps-detail-modes{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin:24px 0 12px}
.ps-config .ps-detail-mode{display:flex;align-items:center;min-height:36px;padding:6px 0;border:0;background:none;color:var(--ink);font-size:18px;font-weight:500}
.ps-config .ps-detail-mode:hover{color:var(--accent);background:none}
.ps-config .ps-detail-mode[aria-pressed="true"]{color:var(--accent);font-weight:650;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media(min-width:900px){.ps-config .ps-purchase{margin-bottom:24px}.ps-detail-modes{margin-top:auto}}
.ps-details{margin-top:100px;scroll-margin-top:30px}
.ps-details [hidden],.ps-config [hidden]{display:none}
.ps-specs-panel{max-width:900px;margin:0 auto}
.ps-specs-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.ps-specs-heading h2{font-size:32px;margin:0}
.ps-return-description{padding:8px 0;min-height:44px;border:0;background:none;color:var(--accent);font-size:13px;text-decoration:underline}
.ps-return-description:hover{background:none;color:var(--accent-hover)}
.ps-story-intro{max-width:730px;margin:0 auto 60px;text-align:center}
.ps-story-intro h2{font-size:clamp(32px,3.5vw,48px);line-height:1.12;margin:0 0 24px}
.ps-story-intro p{max-width:58ch;margin:0 auto;color:var(--muted);font-size:17px;line-height:1.75}
.ps-feature{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;margin-bottom:36px}
.ps-detail-image{position:relative;aspect-ratio:1.15;overflow:hidden;background:var(--paper);margin:0}
.ps-detail-image img{position:absolute;display:block;height:auto;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}
.ps-detail-riser img{width:185%;margin-left:3%;margin-top:1%}
.ps-detail-cam img{width:235%;margin-left:2%;margin-top:79%}
.ps-feature-copy{padding:48px 24px 48px 72px}
.ps-feature-copy h3{font-size:clamp(27px,2.6vw,36px);line-height:1.22;margin:0 0 24px}
.ps-feature-copy p{font-size:16px;line-height:1.75;color:var(--muted);margin:0 0 18px;max-width:45ch}
.ps-feature-copy p:last-child{margin:0}
.ps-feature-reverse .ps-detail-image{grid-column:2;grid-row:1}
.ps-feature-reverse .ps-feature-copy{grid-column:1;grid-row:1;padding:48px 72px 48px 24px}
.ps-colors-story{margin-top:76px;text-align:center}
.ps-colors-story h3{font-size:clamp(28px,3vw,40px);line-height:1.2;margin:0 0 20px}
.ps-colors-story p{max-width:60ch;margin:0 auto 32px;color:var(--muted);font-size:16px}
.ps-color-image{margin:0;aspect-ratio:1.8;overflow:hidden;background:#e7e7e7}
.ps-color-image img{display:block;width:100%;height:100%;object-fit:cover}
.ps-information{margin:80px auto 0;max-width:900px}
.ps-specifications{margin:0 0 36px;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;font-size:14px}
.ps-specifications>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
.ps-specifications dt{color:var(--muted)}
.ps-specifications dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.ps-information details{border-bottom:1px solid var(--line)}
.ps-information summary{cursor:pointer;font-size:16px;font-weight:600;padding:20px 0;min-height:60px}
.ps-information summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.ps-information details>div{max-width:72ch;font-size:15px;color:var(--muted);padding:8px 0 24px}
.ps-information .ps-reviews #reviews{max-width:none}
.ps-back-to-choice{display:flex;gap:12px;align-items:center;justify-content:center;min-height:48px;margin:36px auto 0;color:var(--accent);text-decoration:underline;font-size:14px;width:fit-content}
.ps-lightbox{position:fixed;border:0;padding:48px 24px 20px;background:var(--paper);width:min(1080px,96vw);height:min(1000px,94dvh);max-width:96vw;max-height:94dvh}
.ps-lightbox::backdrop{background:rgba(25,20,23,.7)}
.ps-lightbox[open]{display:flex;flex-direction:column;align-items:center;gap:8px}
.ps-lightbox-image{display:block;min-height:0;flex:1;max-width:100%;width:100%;object-fit:contain}
.ps-lightbox-close{position:absolute;right:8px;top:4px;display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;border:0;background:var(--paper);color:var(--ink);padding:10px}
.ps-lightbox-close:hover{background:var(--surface);color:var(--accent)}
.ps-original{display:flex;align-items:center;min-height:44px;font-size:13px;color:var(--accent);text-decoration:underline}
@media(max-width:1100px) and (min-width:900px){
.ps-intro{grid-template-columns:minmax(0,1.2fr) minmax(340px,1fr);gap:0 28px}
.ps-gallery{grid-template-columns:52px minmax(0,1fr);gap:12px}
.ps-thumbnail{width:44px;height:56px;flex-basis:56px}
.ps-main-photo{min-height:590px}
.ps-option-colors .ps-choices{display:grid;grid-template-columns:repeat(3,64px)}
.ps-feature-copy{padding:32px 16px 32px 40px}
.ps-feature-reverse .ps-feature-copy{padding:32px 40px 32px 16px}
}
@media(max-width:899px){
.ps-content{padding-top:32px}
.ps-intro{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "gallery" "config";gap:24px}
.ps-heading{margin:0;max-width:600px}
.ps-heading h1{font-size:32px}
.ps-gallery{position:static;max-width:660px;width:100%;margin:0 auto}
.ps-main-photo{min-height:580px}
.ps-config{max-width:600px;width:100%;margin:auto}
.ps-feature-copy,.ps-feature-reverse .ps-feature-copy{padding:24px}
.ps-feature-copy h3{font-size:27px}
.ps-feature-copy p{font-size:15px}
.ps-details{margin-top:72px}
.ps-specifications{column-gap:28px}
}
@media(max-width:599px){
.ps-main{padding-bottom:48px}
.ps-content{padding-top:28px}
.ps-config .ps-detail-mode{font-size:16px}
.ps-intro{gap:24px}
.ps-heading h1{font-size:28px;line-height:1.2;margin-bottom:14px}
.ps-heading p{font-size:14px;line-height:1.65}
.ps-gallery{display:flex;flex-direction:column;gap:8px}
.ps-gallery-stage{order:0}
.ps-thumbnails{order:1;flex-direction:row;gap:10px;overflow-x:auto;padding:4px;scrollbar-width:thin}
.ps-thumbnail{width:56px;height:60px;flex-basis:56px}
.ps-main-photo{min-height:400px}
.ps-zoom-label{right:4px;bottom:4px;padding:4px 8px}
.ps-price{font-size:30px;margin-bottom:24px}
.ps-option-colors .ps-choices{display:grid;grid-template-columns:repeat(3,64px)}
.ps-details{margin-top:64px}
.ps-story-intro{margin-bottom:32px}
.ps-story-intro h2{font-size:33px;margin-bottom:20px}
.ps-story-intro p{font-size:15px;line-height:1.7}
.ps-feature{grid-template-columns:minmax(0,1fr);margin-bottom:32px}
.ps-feature .ps-detail-image{grid-column:1;grid-row:1;aspect-ratio:1.18}
.ps-feature .ps-feature-copy{grid-column:1;grid-row:2;padding:28px 0 0}
.ps-feature-copy h3{font-size:28px;margin-bottom:18px}
.ps-feature-copy p{font-size:15px}
.ps-colors-story{margin-top:48px;text-align:left}
.ps-colors-story h3{font-size:29px;max-width:14ch}
.ps-colors-story p{font-size:15px;margin-bottom:24px}
.ps-color-image{aspect-ratio:1.65}
.ps-information{margin-top:48px}
.ps-specs-heading{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.ps-specs-heading h2{font-size:28px}
.ps-specifications{grid-template-columns:1fr;font-size:13px;margin-bottom:24px}
.ps-specifications>div{padding:13px 0}
.ps-information summary{font-size:15px}
.ps-lightbox{padding:48px 8px 8px;width:96vw}
}
@media(prefers-reduced-motion:reduce){.ps-main button{transition:none}}


/* Real catalogue content: single photos, long option names and text-only descriptions. */
.ps-gallery-single{grid-template-columns:minmax(0,1fr)}
.ps-thumbnails{max-height:660px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface)}
.ps-universal .ps-thumbnail img{object-fit:contain}
.ps-missing-photo{display:flex;flex:1;min-height:400px;align-items:center;justify-content:center;flex-direction:column;background:var(--surface);color:var(--muted)}
.ps-missing-photo img{width:140px;height:140px;object-fit:contain;opacity:.6}
.ps-missing-photo p{font-size:14px;margin:12px 0 0}
.ps-short-description{font-size:15px;line-height:1.65;color:var(--muted);max-width:46ch}
.ps-short-description>*:last-child{margin-bottom:0}
.ps-choice{width:auto;max-width:100%;height:auto;white-space:normal;overflow-wrap:anywhere}
.ps-option-colors .ps-choice{width:64px;height:46px}
.ps-purchase form.cart:not(.variations_form){display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.ps-purchase form.cart:not(.variations_form) .quantity{margin:0}
.ps-detail-mode[data-detail-view="specifications"]:only-child{margin-left:auto}
.ps-source-heading{margin:0 0 40px}
.ps-source-heading h2{font-size:clamp(30px,3vw,42px);margin:0}
.ps-description-text{max-width:75ch;margin:0 auto 32px;font-size:16px;line-height:1.75;color:var(--muted);overflow-wrap:anywhere}
.ps-description-text h3{font-size:27px;line-height:1.25;color:var(--ink);margin:32px 0 18px}
.ps-source-story ul,.ps-source-story ol{padding-left:22px;margin:0 0 20px}
.ps-source-story li{margin-bottom:10px}
.ps-source-story p{margin-bottom:18px}
.ps-source-story a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ps-source-story img{max-width:100%;height:auto}
.ps-source-story table{display:block;max-width:100%;overflow-x:auto}
.ps-source-image{display:flex;align-items:center;justify-content:center;margin:0;min-width:0;aspect-ratio:1.15;background:var(--paper)}
.ps-source-image img{width:100%;height:100%;object-fit:contain;max-height:600px}
.ps-source-feature .ps-feature-copy{overflow-wrap:anywhere}
.ps-source-feature .ps-feature-copy ul,.ps-source-feature .ps-feature-copy ol{font-size:16px;line-height:1.75;color:var(--muted)}
.ps-feature-reverse .ps-source-image{grid-column:2;grid-row:1}
.ps-specifications dt,.ps-specifications dd{overflow-wrap:anywhere;min-width:0}
@media(max-width:599px){
.ps-thumbnails{max-height:none;overflow-y:hidden}
.ps-missing-photo{min-height:280px}
.ps-source-heading{margin-bottom:24px}
.ps-source-heading h2{font-size:30px}
.ps-description-text{font-size:15px;margin-bottom:24px}
.ps-description-text h3{font-size:25px;margin-top:24px}
.ps-source-feature .ps-source-image{grid-column:1;grid-row:1;aspect-ratio:1.18}
.ps-source-feature .ps-feature-copy ul,.ps-source-feature .ps-feature-copy ol{font-size:15px}
}

/* Technical values can be much longer than the prototype's measurements. */
.ps-universal .ps-specifications{grid-template-columns:minmax(0,1fr)}
.ps-universal .ps-specifications>div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);align-items:start}
@media(max-width:599px){
.ps-universal .ps-specifications>div{grid-template-columns:minmax(0,1fr);gap:6px}
.ps-universal .ps-specifications dd{text-align:left}
}
