/* Store additions on top of the template styles */

/* Toasts */
.app-toasts { position: fixed; right: 16px; bottom: 16px; z-index: 2000; display: flex; flex-direction: column; gap: 8px; max-width: calc(100vw - 32px); }
.app-toast { background: #1f1f1f; color: #fff; padding: 12px 18px; font-size: 14px; min-width: 240px; box-shadow: 0 6px 24px rgba(0,0,0,.18); opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
.app-toast.show { opacity: 1; transform: none; }
.app-toast-error { background: #b3261e; }

/* Wishlist heart state */
.is-wishlisted, .is-wishlisted i { color: #c9302c !important; }
.pcBtnSubmit.is-loading, [data-add-to-cart].is-loading { opacity: .6; pointer-events: none; }

/* Prices */
.pcPrice del, .HPrice del { font-size: .85em; }

/* Forms on auth / account pages */
.acForm .form-control, .acForm .form-select { border-radius: 0; }
.acForm .invalid-feedback { display: block; }
.form-label-sm { font-size: 14px; margin-bottom: 6px; }

/* Account area */
.accountNav .list-group-item { border-radius: 0; border-left: 0; border-right: 0; padding: 14px 18px; }
.accountNav .list-group-item.active { background: #1f1f1f; border-color: #1f1f1f; }
.accountCard { border: 1px solid #e5e5e5; padding: 24px; margin-bottom: 24px; background: #fff; }
.accountCard h2, .accountCard h3 { font-size: 20px; }
.table-orders td, .table-orders th { vertical-align: middle; font-size: 14px; }
.order-thumb { width: 56px; height: 56px; object-fit: cover; }

/* Order timeline */
.order-timeline { list-style: none; padding: 0; margin: 0; border-left: 2px solid #e5e5e5; }
.order-timeline li { position: relative; padding: 0 0 16px 20px; font-size: 14px; }
.order-timeline li::before { content: ''; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #1f1f1f; }
.order-timeline small { color: #777; display: block; }

/* Star rating input (radio, right-to-left so hover fills left stars) */
.star-input { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.star-input input { position: absolute; opacity: 0; pointer-events: none; }
.star-input label { font-size: 22px; color: #d0d0d0; cursor: pointer; }
.star-input input:checked ~ label, .star-input label:hover, .star-input label:hover ~ label { color: #f2b01e; }
.review-item { border-bottom: 1px solid #eee; padding: 16px 0; }
.review-item:last-child { border-bottom: 0; }

/* Shop filters */
.shopFilterForm .form-control, .shopFilterForm .form-select { border-radius: 0; font-size: 14px; }
.shopCats a.active { font-weight: 500; text-decoration: underline; }
.empty-state { padding: 60px 0; text-align: center; }

/* Pagination */
.pagination .page-link { color: #1f1f1f; border-radius: 0 !important; }
.pagination .page-item.active .page-link { background: #1f1f1f; border-color: #1f1f1f; color: #fff; }

/* Product gallery on the detail page */
.pdMainImg { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #f7f7f7; }
.pdThumbs { display: flex; gap: 8px; flex-wrap: wrap; }
.pdThumbs button { border: 1px solid transparent; padding: 0; background: none; width: 72px; }
.pdThumbs button.active { border-color: #1f1f1f; }
.pdThumbs img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

/* Checkout */
.address-option { border: 1px solid #e5e5e5; padding: 14px 16px; cursor: pointer; display: block; }
.address-option:has(input:checked) { border-color: #1f1f1f; }
.pay-option { border: 1px solid #e5e5e5; padding: 14px 16px; display: block; cursor: pointer; }
.pay-option:has(input:checked) { border-color: #1f1f1f; }

/* Invoice */
@media print {
  .no-print { display: none !important; }
  body { background: #fff; }
}

/* ---------- Apparel: swatches, size chips, variant picker ---------- */
.swatch-dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); vertical-align: middle; }
.swatch-lg { width: 26px; height: 26px; }
.cardSwatches { display: flex; gap: 5px; justify-content: center; align-items: center; margin-bottom: 4px; }
.filterChips, .filterSwatches { display: flex; flex-wrap: wrap; gap: 8px; }
.chip input, .swatch-option input, .size-option input, .color-option input { position: absolute; opacity: 0; pointer-events: none; }
.chip span { display: inline-block; border: 1px solid #d6d6d6; padding: 5px 12px; font-size: 13px; cursor: pointer; min-width: 40px; text-align: center; }
.chip input:checked + span { background: #1f1f1f; border-color: #1f1f1f; color: #fff; }
.chip input:focus-visible + span, .size-option input:focus-visible + span, .color-option input:focus-visible + span { outline: 2px solid #1f1f1f; outline-offset: 2px; }
.swatch-option { cursor: pointer; padding: 2px; border: 2px solid transparent; border-radius: 50%; line-height: 0; }
.swatch-option:has(input:checked) { border-color: #1f1f1f; }
.swatch-any { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; border: 1px dashed #aaa; font-size: 9px; align-items: center; justify-content: center; line-height: 1; }

/* product page picker */
.variant-label { font-size: 14px; margin-bottom: 8px; }
.variant-label strong { font-weight: 500; }
.color-options, .size-options { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.color-option { cursor: pointer; padding: 3px; border: 2px solid transparent; border-radius: 50%; line-height: 0; }
.color-option .swatch-dot { width: 32px; height: 32px; }
.color-option:has(input:checked) { border-color: #1f1f1f; }
.size-option span { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 44px; padding: 0 10px; border: 1px solid #cfcfcf; cursor: pointer; font-size: 14px; position: relative; background: #fff; }
.size-option input:checked + span { border-color: #1f1f1f; background: #1f1f1f; color: #fff; }
.size-option input:disabled + span { color: #b5b5b5; cursor: not-allowed; background: linear-gradient(to top right, transparent calc(50% - 1px), #d5d5d5, transparent calc(50% + 1px)); }
.size-option .low { position: absolute; bottom: -18px; left: 0; right: 0; font-size: 10px; color: #c0392b; white-space: nowrap; text-align: center; }
.sizeGuideBtn { font-size: 13px; text-decoration: underline; background: none; border: 0; padding: 0; }
.size-chart-table th, .size-chart-table td { text-align: center; font-size: 14px; }
.pick-error { color: #c0392b; font-size: 13px; min-height: 18px; }
.spec-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; font-size: 14px; }
.spec-list dt { font-weight: 500; }
.spec-list dd { margin: 0 0 6px; color: #555; }
.variant-meta { font-size: 13px; color: #666; }

/* Policy pages */
.legalContent { font-size: 15px; line-height: 1.75; }
.legalContent h1 { font-size: 34px; }
.legalContent h2 { font-size: 20px; font-weight: 500; margin: 36px 0 12px; scroll-margin-top: 90px; }
.legalContent h3 { font-size: 16px; font-weight: 500; margin: 20px 0 8px; }
.legalContent ul { padding-left: 20px; margin-bottom: 16px; }
.legalContent li { margin-bottom: 6px; }
.legalContent a { color: inherit; text-decoration: underline; }
.legalBox { display: block; background: #f7f5f2; border-left: 3px solid #1f1f1f; padding: 14px 18px; font-style: normal; }

/* Footer: 6 columns (logo, Shop, Customer Care, Policies, Store Details, Follow Us) */
@media (min-width: 576px) {
  .footerAside .ftColsWrap .ftCol,
  .footerAside .ftColsWrap .ftCol:nth-child(4) { width: 33.333%; }
}
@media (min-width: 1230px) {
  .footerAside .ftColsWrap .ftCol,
  .footerAside .ftColsWrap .ftCol:nth-child(4),
  .footerAside .ftColsWrap .ftCol:nth-child(5) { width: 16.666%; }
}
