.pp-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2rem;width:100%;position:relative}.pp-overlay{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffd1;z-index:20;border-radius:8px;align-items:center;justify-content:center}.pp-overlay--visible{display:flex}.pp-overlay-spinner{width:40px;height:40px;border-radius:50%;border-top:3px solid #D94468;border-right:3px solid transparent;animation:pp-spin .8s linear infinite;position:relative}.pp-overlay-spinner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border-left:3px solid #f7a8bc;border-bottom:3px solid transparent;animation:pp-spin .4s linear infinite reverse}@keyframes pp-spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.pp-layout{grid-template-columns:1fr}}.pp-gallery{display:flex;flex-direction:column;gap:.75rem}.pp-main-showcase{border-radius:14px;overflow:hidden;background:#f9f6f3;aspect-ratio:1}.pp-main-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.pp-main-img:hover{transform:scale(1.03)}.pp-thumbs{display:flex;gap:8px;flex-wrap:wrap}.pp-thumb{width:68px;height:68px;border-radius:10px;object-fit:cover;border:2px solid transparent;cursor:pointer;opacity:.65;transition:opacity .2s,border-color .2s}.pp-thumb:hover{opacity:.9}.pp-thumb--active{opacity:1;border-color:#d94468}.pp-info{display:flex;flex-direction:column;gap:1rem}.pp-category{display:inline-block;width:fit-content;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#d94468;background:#d9446814;border:1px solid rgba(217,68,104,.22);padding:3px 10px;border-radius:20px}.pp-name{font-size:1.35rem;font-weight:800;color:#1a1a1a;line-height:1.3;margin:0}.pp-price{font-size:1.6rem;font-weight:800;color:#d94468}.pp-availability{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600}.pp-available{color:#16a34a}.pp-unavailable{color:#dc2626}.pp-description p{font-size:.95rem;color:#555;line-height:1.7;margin:0}.pp-variant-label{display:block;font-size:.8rem;font-weight:600;color:#666;margin-bottom:.45rem}.pp-color-selected-name{font-weight:700;color:#1a1a1a}.pp-color-grid{display:flex;gap:8px;flex-wrap:wrap}.pp-color-chip{width:36px;height:36px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1.5px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}.pp-color-chip:hover{transform:scale(1.1)}.pp-color-chip--active{border-color:#d94468;box-shadow:inset 0 0 0 1.5px #00000026,0 0 0 3px #d9446833}.pp-color-chip i{font-size:.72rem;color:#fff;mix-blend-mode:difference;display:none}.pp-color-chip--active i{display:block}.pp-size-grid{display:flex;gap:8px;flex-wrap:wrap}.pp-size-pill{min-width:54px;padding:6px 10px;border:1.5px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;text-align:center;transition:all .2s}.pp-size-pill:hover{border-color:#d94468}.pp-size-pill--active{background:#d94468;border-color:#d94468;color:#fff;box-shadow:0 2px 8px #d9446859}.pp-size-num{display:block;font-size:.9rem;font-weight:700}.pp-size-stock{display:block;font-size:.62rem;font-weight:500;opacity:.7;margin-top:1px}.pp-size-pill--active .pp-size-stock{opacity:.85}.pp-empty-text{font-size:.82rem;color:#aaa;font-style:italic}.pp-purchase{display:flex;flex-direction:column;gap:.85rem;padding-top:.5rem;border-top:1px solid #f0ece4}.pp-qty-label{font-size:.8rem;font-weight:600;color:#666;margin-bottom:.3rem;display:block}.pp-qty-selector{display:inline-flex;align-items:center;border:1.5px solid #e0e0e0;border-radius:10px;overflow:hidden}.pp-qty-btn{width:38px;height:38px;border:none;background:#f8f6f3;color:#333;cursor:pointer;font-size:1rem;transition:background .2s}.pp-qty-btn:hover{background:#d9446814;color:#d94468}.pp-qty-input{width:52px;height:38px;border:none;border-left:1.5px solid #e0e0e0;border-right:1.5px solid #e0e0e0;text-align:center;font-weight:700;font-size:.95rem;color:#1a1a1a;outline:none}.pp-action-buttons{display:flex;gap:.6rem}.pp-btn-primary{flex:2;display:flex;align-items:center;justify-content:center;gap:6px;padding:.75rem 1rem;background:linear-gradient(135deg,#d94468,#c73459);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:.88rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.pp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #d9446859}.pp-btn-secondary{flex:2;display:flex;align-items:center;justify-content:center;gap:6px;padding:.75rem 1rem;background:#fff;color:#d94468;border:1.5px solid #D94468;border-radius:10px;font-weight:700;font-size:.88rem;cursor:pointer;transition:all .2s}.pp-btn-secondary:hover{background:#d94468;color:#fff}.pp-btn-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:#fff;color:#999;border:1.5px solid #e0e0e0;border-radius:10px;cursor:pointer;font-size:1.1rem;transition:all .2s;flex-shrink:0}.pp-btn-icon:hover{background:#fff0f3;color:#d94468;border-color:#d94468}.pp-benefits{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.1rem;background:#fafaf9;border:1px solid #f0ece4;border-radius:12px}.pp-benefit{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:#555}.pp-benefit i{color:#d94468;font-size:1rem;flex-shrink:0}.pp-cta{display:flex;align-items:center;justify-content:center;gap:8px;padding:.75rem 1.25rem;background:linear-gradient(135deg,#d94468,#c73459);color:#fff;border-radius:10px;font-weight:700;font-size:.9rem;text-decoration:none;transition:transform .2s,box-shadow .2s;margin-top:auto}.pp-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px #d9446859;color:#fff}.pp-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:pp-spin .65s linear infinite;vertical-align:middle;margin-right:4px}.pp-purchase-msg{font-size:.8rem;padding:8px 12px;border-radius:6px;margin-top:8px;display:none;line-height:1.4}.pp-purchase-msg[data-type=error]{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.pp-purchase-msg[data-type=success]{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}
