.product-photo{display:flex;align-items:center;justify-content:center;overflow:hidden}.product-photo img{width:100%;height:100%;object-fit:contain;padding:18px;transition:transform .25s ease}.product-card:hover .product-photo img{transform:scale(1.035)}.product-card .add:disabled,.purchase-row button:disabled{opacity:.55;cursor:not-allowed}.product-card .add.added,.add-product.added{background:#460373!important;color:#fff!important}.category-icon{font-size:32px;font-weight:800;color:#460373;display:grid!important;place-items:center}.catalog-page{min-height:520px}.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.catalog-heading h1{font-family:Montserrat,sans-serif;font-size:clamp(28px,4vw,46px);margin:8px 0}.catalog-heading p{color:#766f7b}.catalog-filter{display:flex;gap:10px;background:#fff;border:1px solid #e9e4ec;padding:10px;border-radius:14px;box-shadow:0 12px 35px rgba(27,7,37,.06)}.catalog-filter input,.catalog-filter select{border:1px solid #ded6e3;border-radius:9px;padding:12px 14px;font:inherit;min-width:180px}.catalog-filter button{border:0;border-radius:9px;background:#460373;color:#fff;font-weight:800;padding:0 20px}.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.empty-state{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}.empty-state>span{font-size:56px;color:#7c2ea5;font-weight:800}.empty-state h1,.empty-state h2{font-family:Montserrat,sans-serif;margin:14px 0 6px}.empty-state p{color:#766f7b;margin-bottom:22px}.related-image{height:165px;display:grid;place-items:center;background:#f6f3f8;border-radius:14px;margin-bottom:12px;overflow:hidden}.related-image img{width:100%;height:100%;object-fit:contain;padding:14px}.dynamic-related article a{display:block;color:inherit;text-decoration:none}.product-information #description p{white-space:normal}.flash-stack{position:fixed;top:100px;right:20px;z-index:1000;display:grid;gap:10px}.flash-message{background:#fff;border:1px solid #e5dce9;border-left:4px solid #460373;border-radius:10px;padding:13px 16px;box-shadow:0 15px 38px rgba(20,4,29,.14)}
@media(max-width:980px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-heading{align-items:stretch;flex-direction:column}.catalog-filter{width:100%}.catalog-filter input,.catalog-filter select{min-width:0;flex:1}}
@media(max-width:680px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-filter{display:grid;grid-template-columns:1fr}.catalog-filter button{padding:13px}.product-photo img{padding:10px}}

/* AJAX search and form states — v1.3.1 */
.is-processing{opacity:.72}.search.is-processing,.catalog-filter.is-processing,.newsletter form.is-processing{pointer-events:none}.search button:disabled,.catalog-filter button:disabled,.newsletter button:disabled{opacity:.65;cursor:wait}.search-results-panel{position:fixed;inset:0;z-index:1200;background:rgba(12,7,15,.7);display:none;padding:24px;overflow:auto}.search-results-panel.open{display:block}.search-panel-open{overflow:hidden}.search-results-dialog{width:min(1180px,100%);margin:55px auto;background:#f8f6f9;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.34);padding:26px}.search-results-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.search-results-head h2{font-family:Montserrat,sans-serif;font-size:clamp(25px,4vw,38px);margin:5px 0}.search-results-head p{color:#766f7b}.search-results-head>button{border:0;background:#eee7f1;color:#460373;width:42px;height:42px;border-radius:50%;font-size:26px;cursor:pointer}.quick-search-results{max-height:62vh;overflow:auto;padding:2px 4px 8px}.quick-search-results .catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-search-results .empty-state{min-height:280px}.quick-search-view{display:flex;width:max-content;margin:22px auto 0}.catalog-filter.is-processing~*{cursor:wait}
@media(max-width:900px){.quick-search-results .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.search-results-dialog{margin:25px auto}}
@media(max-width:680px){.search-results-panel{padding:10px}.search-results-dialog{padding:18px;border-radius:16px;margin:10px auto}.quick-search-results .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-results-head{gap:10px}.search-results-head>button{flex:0 0 38px;width:38px;height:38px}.quick-search-view{width:100%;justify-content:center}}

/* Secure payment journey — TechSoko v1.5.0 */
.payment-disabled{opacity:.55;cursor:not-allowed}.payment-page{min-height:70vh}.payment-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start;padding-top:34px;padding-bottom:70px}.payment-panel,.payment-order-summary{background:#fff;border:1px solid #eadff0;border-radius:22px;box-shadow:0 18px 55px rgba(62,9,86,.08)}.payment-panel{padding:30px}.payment-order-summary{padding:26px;position:sticky;top:105px}.payment-brand-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:24px;border-bottom:1px solid #eee6f1}.payment-brand-row>div{text-align:right}.payment-brand-row small,.payment-brand-row strong{display:block}.payment-brand-row strong{font:800 27px Montserrat;margin-top:4px}.payment-status-card{display:flex;align-items:center;gap:18px;margin:24px 0;padding:20px;border-radius:16px;background:#f6f1f8;border:1px solid #e8dceb}.payment-status-card h2{font:800 20px Montserrat;margin:0 0 6px}.payment-status-card p{margin:0;color:#6a5e70;line-height:1.55}.payment-status-card.status-paid{background:#eaf8f1;border-color:#c9ebda}.payment-status-card.status-failed,.payment-status-card.status-review{background:#fbecef;border-color:#f1cbd2}.payment-loader{width:34px;height:34px;flex:0 0 34px;border:4px solid rgba(98,0,147,.15);border-top-color:#620093;border-radius:50%;animation:paymentSpin 1s linear infinite}.status-paid .payment-loader,.status-failed .payment-loader,.status-review .payment-loader{animation:none;border:0;display:grid;place-items:center}.status-paid .payment-loader:before{content:'✓';font-weight:900;color:#137044;font-size:28px}.status-failed .payment-loader:before,.status-review .payment-loader:before{content:'!';font-weight:900;color:#941f32;font-size:28px}@keyframes paymentSpin{to{transform:rotate(360deg)}}.payment-retry-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:20px}.payment-retry-form label{display:grid;gap:7px;font-weight:800;font-size:12px}.payment-retry-form input{width:100%;border:1px solid #ded4e3;border-radius:11px;padding:13px 14px;font:inherit}.payment-help{margin-top:22px;padding:17px;background:#faf7fb;border-radius:13px}.payment-help p{font-size:12px;color:#766a7b;line-height:1.6;margin:6px 0 0}.payment-order-summary h2{font:800 22px Montserrat;margin:7px 0 20px}.payment-order-summary dl{margin:0}.payment-order-summary dl>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #eee7f0}.payment-order-summary dt{color:#7c7080}.payment-order-summary dd{margin:0;text-align:right;font-weight:700}.payment-order-summary>p{font-size:12px;color:#756879;line-height:1.6;margin-top:22px}.payment-order-summary a{color:#620093;font-weight:800}.payment-summary-card .wide{width:100%;text-align:center;margin-top:12px}.account-order-list article>div:first-child .order-status{margin:7px 5px 0 0}
@media(max-width:850px){.payment-layout{grid-template-columns:1fr}.payment-order-summary{position:static;order:-1}.payment-retry-form{grid-template-columns:1fr}}
@media(max-width:560px){.payment-panel,.payment-order-summary{padding:20px;border-radius:16px}.payment-brand-row{align-items:flex-start}.payment-brand-row strong{font-size:22px}.payment-status-card{align-items:flex-start}.payment-status-card h2{font-size:17px}}
