.poster-page { padding-top:16px; padding-bottom:64px; }
.poster-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; color:var(--blue); font-size:13px; line-height:1.4; }
.poster-breadcrumb>span[aria-current] { color:var(--ink); }
.poster-breadcrumb a:hover { text-decoration:underline; }
.poster-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:40px; align-items:start; }
.poster-gallery-column,.poster-copy { min-width:0; }
.poster-gallery { display:grid; grid-template-columns:82px minmax(0,1fr); gap:24px; align-items:start; }
.poster-thumbnails { display:grid; gap:10px; max-height:650px; overflow:auto; padding:3px; scrollbar-width:thin; }
.poster-thumbnail { height:108px; padding:3px; overflow:hidden; border:1px solid var(--line); border-radius:4px; background:var(--cream); }
.poster-thumbnail[hidden] { display:none; }
.poster-thumbnail img { width:100%; height:100%; object-fit:cover; }
.poster-thumbnail[aria-pressed="true"] { border:2px solid var(--blue); padding:2px; }
.poster-image-area { min-width:0; }
.poster-main-frame { display:flex; align-items:center; justify-content:center; width:100%; height:650px; min-height:0; padding:14px; overflow:hidden; background:#f1f0eb; border:0; border-radius:4px; cursor:zoom-in; }
.poster-main-frame img { width:100%; height:100%; min-height:0; max-height:100%; object-fit:contain; }
.poster-main-frame img[hidden] { display:none; }
.poster-image-caption { margin:7px 0 0; color:var(--muted); font-size:11px; text-align:center; }
.poster-copy h1 { font-size:clamp(2.2rem,3.7vw,3.4rem); margin:4px 0 8px; line-height:1.04; }
.poster-subtitle { margin:0 0 20px; color:var(--blue); font-size:21px; line-height:1.3; }
.poster-price.selected-price { margin:0 0 18px; font:700 36px/1.15 Georgia,'Times New Roman',serif; }
.poster-summary { margin:0 0 24px; color:var(--ink); font-size:16px; line-height:1.6; }
.poster-benefits { display:flex; justify-content:space-between; gap:14px; margin:24px 0 30px; }
.poster-benefits>div { display:flex; align-items:center; gap:9px; }
.poster-benefits .icon { width:30px; height:30px; }
.poster-benefits span { font-size:12px; line-height:1.3; }
.poster-purchase.purchase-form { display:block; margin:0; }
.poster-size-fieldset { min-width:0; margin:0 0 26px; padding:0; border:0; }
.poster-size-fieldset legend { margin-bottom:10px; padding:0; font-size:16px; font-weight:700; }
.poster-size-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(100px,1fr)); gap:10px; }
.poster-size { position:relative; cursor:pointer; }
.poster-size input { position:absolute; width:1px; height:1px; opacity:0; }
.poster-size>span { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:65px; padding:9px 5px; border:1px solid #cbd5da; border-radius:4px; background:white; color:var(--ink); }
.poster-size strong { font-size:14px; line-height:1.35; }
.poster-size small { margin-top:3px; font-size:14px; color:var(--muted); }
.poster-size input:checked+span { border:2px solid var(--blue); padding:8px 4px; background:#edf3f6; }
.poster-size input:checked+span small { color:var(--blue); font-weight:700; }
.poster-size input:focus-visible+span { outline:3px solid #5688ac; outline-offset:3px; }
.poster-cart-actions { display:grid; grid-template-columns:148px minmax(0,1fr); gap:16px; }
.poster-quantity { display:grid; grid-template-columns:1fr 1.1fr 1fr; border:1px solid #cbd5da; border-radius:4px; overflow:hidden; }
.poster-quantity button { min-height:52px; border:0; background:white; color:var(--ink); font-size:22px; }
.poster-quantity input { width:100%; min-width:0; border:0; border-left:1px solid var(--line); border-right:1px solid var(--line); padding:8px 2px; text-align:center; font-size:16px; appearance:textfield; -moz-appearance:textfield; }
.poster-quantity input::-webkit-inner-spin-button,.poster-quantity input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.poster-quantity button:disabled { color:var(--muted); cursor:default; }
.poster-add.button { width:100%; min-height:52px; gap:12px; font-size:19px; }
.poster-add .icon { width:25px; height:25px; }
.poster-purchase .add-status { min-height:0; margin:0; }
.poster-purchase .add-status:not(:empty) { margin:10px 0; font-size:14px; }
.poster-save { width:100%; display:flex; align-items:center; justify-content:center; gap:10px; min-height:46px; margin-top:14px; border:1px solid var(--blue); border-radius:4px; background:white; color:var(--blue); font-size:14px; font-weight:700; }
.poster-save .icon { width:22px; height:22px; }
.poster-save[aria-pressed="true"] { background:#edf3f6; }
.poster-save[aria-pressed="true"] .icon { fill:currentColor; }
.poster-order-notes { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin:17px 0 26px; color:var(--blue); font-size:12px; }
.poster-assurance { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:22px 18px; border-radius:4px; background:#edf3f6; }
.poster-assurance>div { display:flex; gap:9px; align-items:start; }
.poster-assurance .icon { width:26px; height:26px; color:var(--blue); }
.poster-assurance p { margin:0; font-size:12px; line-height:1.45; }
.poster-assurance strong { display:block; margin-bottom:4px; font-size:12px; }
.poster-information { margin-top:24px; }
.poster-tabs { display:flex; gap:10px; overflow-x:auto; border-bottom:1px solid var(--line); }
.poster-tabs button { flex-shrink:0; min-height:46px; padding:10px 12px; border:0; border-bottom:2px solid transparent; background:none; color:var(--ink); font-size:14px; }
.poster-tabs button[aria-selected="true"] { border-bottom-color:var(--blue); color:var(--blue); font-weight:700; }
.poster-tab-panel { padding:17px 0 0; font-size:14px; line-height:1.6; }
.poster-tab-panel[hidden] { display:none; }
.poster-tab-panel p { margin-bottom:13px; }
.poster-tab-panel a { color:var(--blue); text-decoration:underline; }
.poster-specifications { margin:0; }
.poster-specifications>div { display:grid; grid-template-columns:135px 1fr; padding:7px 0; gap:16px; border-bottom:1px solid var(--line); }
.poster-specifications dt { font-weight:700; }
.poster-specifications dd { margin:0; }
.poster-related { margin-top:40px; }
.poster-related .section-heading { margin-bottom:18px; }
.poster-related h2 { font-size:28px; }
.poster-related-carousel { display:grid; grid-template-columns:24px minmax(0,1fr) 24px; gap:12px; align-items:center; }
.poster-related-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 90px)/6); gap:18px; overflow-x:auto; padding:2px 0 10px; scroll-snap-type:x mandatory; scrollbar-width:thin; }
.poster-related .product-card { min-width:0; scroll-snap-align:start; }
.poster-related .product-image { position:relative; background:var(--cream); }
.poster-related .product-image img { width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:2px; }
.poster-related .heart { display:grid; place-items:center; position:absolute; top:3px; right:3px; width:38px; height:38px; padding:6px; border:1px solid var(--line); border-radius:50%; background:#fffffff0; color:var(--blue); }
.poster-related .heart .icon { width:20px; height:20px; }
.poster-related .heart[aria-pressed="true"] .icon { fill:currentColor; }
.poster-related .product-card h3 { margin:8px 0 4px; font-size:13px; line-height:1.3; }
.poster-related .meta { margin:0; font-size:11px; color:var(--muted); }
.poster-related .price { margin:8px 0 0; font:700 15px/1.3 Arial,Helvetica,sans-serif; }
.poster-carousel-arrow { display:grid; place-items:center; width:24px; min-height:44px; padding:0; border:0; background:none; color:var(--ink); font-size:32px; }
.poster-zoom { width:min(1000px,calc(100vw - 32px)); max-height:95vh; padding:32px; border:0; border-radius:4px; background:#f1f0eb; }
.poster-zoom::backdrop { background:#0d1c24d9; }
.poster-zoom img { max-height:83vh; width:100%; object-fit:contain; }
.poster-zoom-close { position:absolute; top:0; right:0; width:44px; height:44px; border:0; background:white; color:var(--ink); font-size:28px; }
@media(max-width:1200px) {
  .poster-layout { gap:30px; }
  .poster-gallery { gap:16px; grid-template-columns:72px minmax(0,1fr); }
  .poster-main-frame { height:590px; }
  .poster-copy h1 { font-size:42px; }
  .poster-benefits { gap:10px; }
  .poster-benefits>div { gap:6px; }
  .poster-assurance { gap:12px; padding:18px 12px; }
  .poster-assurance>div { flex-direction:column; }
}
@media(max-width:1000px) {
  .poster-layout { display:flex; flex-direction:column; gap:26px; }
  .poster-gallery-column { display:contents; }
  .poster-gallery { order:1; width:100%; }
  .poster-copy { order:2; width:100%; }
  .poster-information { order:3; width:100%; margin:0; }
  .poster-main-frame { height:620px; }
  .poster-copy h1 { font-size:44px; }
  .poster-assurance>div { flex-direction:row; }
  .poster-related-track { grid-auto-columns:calc((100% - 36px)/3); }
}
@media(max-width:700px) {
  .poster-page { padding-top:14px; padding-bottom:40px; }
  .poster-breadcrumb { gap:7px; font-size:11px; margin-bottom:14px; }
  .poster-gallery { display:flex; flex-direction:column; gap:10px; }
  .poster-image-area { order:1; width:100%; }
  .poster-main-frame { height:450px; padding:10px; }
  .poster-thumbnails { order:2; display:flex; width:100%; overflow:auto; padding:3px; gap:8px; }
  .poster-thumbnail { flex:0 0 64px; height:82px; }
  .poster-layout { gap:20px; }
  .poster-copy h1 { font-size:36px; }
  .poster-subtitle { font-size:18px; margin-bottom:16px; }
  .poster-price.selected-price { font-size:32px; }
  .poster-summary { font-size:15px; line-height:1.55; }
  .poster-benefits { margin:22px 0; }
  .poster-benefits .icon { width:25px; height:25px; }
  .poster-benefits span { font-size:11px; }
  .poster-size-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .poster-cart-actions { grid-template-columns:124px minmax(0,1fr); gap:12px; }
  .poster-add.button { padding:10px 12px; font-size:16px; gap:8px; }
  .poster-assurance { gap:16px; grid-template-columns:1fr; padding:20px; }
  .poster-assurance>div { flex-direction:row; }
  .poster-assurance p,.poster-assurance strong { font-size:13px; }
  .poster-assurance .icon { width:28px; height:28px; }
  .poster-tabs { gap:2px; }
  .poster-tabs button { padding:10px 8px; font-size:12px; }
  .poster-related h2 { font-size:24px; }
  .poster-related-carousel { grid-template-columns:20px minmax(0,1fr) 20px; gap:6px; }
  .poster-related-track { grid-auto-columns:calc((100% - 12px)/2); gap:12px; }
  .poster-related .heart { width:36px; height:36px; }
  .poster-zoom { padding:28px 12px 12px; }
}
