/* ₹ legibility: Open Sans + Noto fallbacks (Futura misrenders U+20B9 as ₱). */
[class*="price-new"],
[class*="price-old"],
.price-on-sale,
.price-wrap .fw-semibold.text-primary,
.product-infor-price .price-on-sale,
.product-infor-price h4.price-on-sale,
.price__prd,
.prd_price,
.quantity-price.text-primary,
.tf-mini-cart-price .fw-semibold,
.card-product .price,
.card-product .price-new,
.card-product .price-old,
.card-product .price-wrap .price-new,
.card-product .price-wrap .price-old,
#qv-price,
#qv-original-price,
#cart-subtotal,
#mini-cart-items-subtotal,
.list-total [id*="summary"],
.last-total span:last-child,
#summary-total,
.list-order-product .infor-prd>.text-caption-01,
.popup-shopping-cart .cart-threshold .fw-7,
.popup-shopping-cart #zipcode-success .standard span,
.popup-shopping-cart .add-gift .wrap h5 .text-primary,
.tt-inr-amount {
   font-family: "Open Sans", "Noto Sans Symbols 2", "Noto Sans Devanagari", sans-serif !important;
   font-weight: 600;
   font-variant-numeric: tabular-nums;
}

/* Mini-cart quantity: single pill (minus | qty | plus), matches storefront reference */
.mini-cart-qty-wrap {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   margin-top: 8px;
   padding: 5px 6px;
   border: 1px solid #e3e3e3;
   border-radius: 9999px;
   background: #fff;
   box-sizing: border-box;
   min-height: 40px;
   max-width: 100%;
}

.mini-cart-qty-wrap .mini-cart-qty-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   flex: 0 0 auto;
   min-width: 36px;
   height: 30px;
   margin: 0;
   padding: 0 10px;
   border: none;
   border-radius: 9999px;
   background: transparent;
   color: #111;
   cursor: pointer;
   line-height: 1;
   transition: background 0.15s ease, color 0.15s ease;
}

.mini-cart-qty-wrap .mini-cart-qty-btn .icon {
   font-size: 10px;
   font-weight: 400;
   opacity: 0.9;
}

.mini-cart-qty-wrap .mini-cart-qty-btn:hover:not(:disabled) {
   background: #f4f4f4;
   color: #000;
}

.mini-cart-qty-wrap .mini-cart-qty-btn:active:not(:disabled) {
   background: #ebebeb;
}

.mini-cart-qty-wrap .mini-cart-qty-btn:disabled {
   opacity: 0.22;
   cursor: not-allowed;
   background: transparent;
}

.mini-cart-qty-wrap .mini-cart-qty-val {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   flex: 0 0 auto;
   min-width: 1.75rem;
   padding: 0 14px;
   font-size: 0.9375rem;
   font-weight: 600;
   font-variant-numeric: tabular-nums;
   color: #111;
   letter-spacing: 0.02em;
   font-family: "Open Sans", sans-serif;
}

/* AJAX cart rows live in #cart-items-list (not direct .tf-mini-cart-items children). */
#cart-items-list .tf-mini-cart-item:not(:last-child) {
   padding-bottom: 19px;
   margin-bottom: 19px;
   border-bottom: 1px solid var(--line, #e3e3e3);
}

#cart-items-list .tf-mini-cart-item:last-child {
   padding-bottom: 16px;
}

#cart-items-list .tf-mini-cart-item {
   align-items: flex-start;
}

#cart-items-list .tf-mini-cart-item .tf-mini-cart-image {
   flex-shrink: 0;
}

#cart-items-list .tf-mini-cart-item .tf-mini-cart-image img {
   height: auto;
   display: block;
}

#cart-items-list .tf-mini-cart-item .tf-mini-cart-info {
   min-width: 0;
}

#cart-items-list .tf-mini-cart-item .tf-mini-cart-info .name {
   display: -webkit-box;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   overflow: hidden;
   line-height: 1.35;
   word-break: break-word;
}

#cart-items-list .tf-mini-cart-item .tf-mini-cart-price {
   flex-shrink: 0;
   align-self: flex-start;
}

/* Mini-cart drawer: black text instead of theme red (--primary) */
.popup-shopping-cart .text-primary {
   color: #111 !important;
}

.popup-shopping-cart .tf-btn-line-3.type-primary,
.popup-shopping-cart .cart-remove-btn {
   color: #111 !important;
}

.popup-shopping-cart .tf-btn-line-3.type-primary::before {
   background: #111 !important;
}

.popup-shopping-cart .tf-btn-line-3.type-primary:hover,
.popup-shopping-cart .tf-btn-line-3.type-primary:hover span {
   color: #111 !important;
}

.popup-shopping-cart .tf-btn-line-3.type-primary:hover::before {
   background: #111 !important;
}

/* Quick View — Buy it now (pill outline, matches product detail page) */
#quickView .tf-product-total-quantity .tt-pdp-buy-now {
   height: 50px;
   padding: 0 28px;
   border-radius: 9999px;
   border: 1px solid #101010;
   background: #fff;
   color: #101010;
   font-weight: 600;
   font-size: 15px;
   line-height: 1.2;
   letter-spacing: 0.01em;
   box-shadow: none;
}

#quickView .tf-product-total-quantity .tt-pdp-buy-now::after {
   display: none !important;
}

#quickView .tf-product-total-quantity .tt-pdp-buy-now:hover,
#quickView .tf-product-total-quantity .tt-pdp-buy-now:focus-visible {
   background: #101010;
   color: #fff;
   border-color: #101010;
}

@media (min-width: 1200px) {
   #quickView .tf-product-total-quantity .tt-pdp-buy-now {
      height: 52px;
      font-size: 16px;
   }
}

@media (max-width: 767px) {
   .popup-shopping-cart #cart-items-list .tf-mini-cart-item {
      display: grid;
      grid-template-columns: 72px minmax(0, 1fr) auto;
      column-gap: 10px;
      row-gap: 8px;
      align-items: start;
   }

   .popup-shopping-cart #cart-items-list .tf-mini-cart-item .tf-mini-cart-image {
      grid-column: 1;
      grid-row: 1 / -1;
      width: 72px;
      max-width: 72px;
      align-self: start;
   }

   .popup-shopping-cart #cart-items-list .tf-mini-cart-item .tf-mini-cart-info {
      grid-column: 2;
      grid-row: 1;
      min-width: 0;
   }

   .popup-shopping-cart #cart-items-list .tf-mini-cart-item .tf-mini-cart-info .tf-prd-select {
      flex-wrap: wrap;
   }

   .popup-shopping-cart #cart-items-list .tf-mini-cart-item .tf-mini-cart-price {
      grid-column: 3;
      grid-row: 1;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      justify-content: flex-start;
      gap: 8px;
   }

   .popup-shopping-cart .mini-cart-qty-wrap {
      margin-top: 6px;
      min-height: 36px;
      padding: 4px 4px;
   }

   .popup-shopping-cart .mini-cart-qty-wrap .mini-cart-qty-btn {
      min-width: 30px;
      height: 28px;
      padding: 0 6px;
   }

   .popup-shopping-cart .mini-cart-qty-wrap .mini-cart-qty-val {
      padding: 0 8px;
      font-size: 0.875rem;
   }
}

/*
         | Busy overlay: must sit above theme .preload-container (z-index ~1e11) and Bootstrap offcanvas.
         | Theme spinner + custom ring so loading is visible even if utility classes fail.
         */
#storefront-busy {
   display: none !important;
   visibility: hidden;
   opacity: 0;
   position: fixed;
   inset: 0;
   z-index: 2147483646;
   align-items: center;
   justify-content: center;
   background: rgba(0, 0, 0, 0.5);
   pointer-events: none;
   flex-direction: column;
   gap: 1rem;
}

#storefront-busy.is-active {
   display: flex !important;
   visibility: visible !important;
   opacity: 1 !important;
   pointer-events: auto !important;
}

#storefront-busy .storefront-busy__ring {
   width: 2.75rem;
   height: 2.75rem;
   border: 3px solid rgba(255, 255, 255, 0.35);
   border-top-color: #fff;
   border-radius: 50%;
   animation: storefront-busy-spin 0.7s linear infinite;
   flex-shrink: 0;
}

@keyframes storefront-busy-spin {
   to {
      transform: rotate(360deg);
   }
}

/* Mobile menu — account / logout footer */
.canvas-mb .canvas-footer.tt-mobile-menu-footer {
   display: flex;
   flex-direction: column;
   gap: 10px;
   padding: 16px 20px;
   padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
}

.canvas-mb .canvas-footer.tt-mobile-menu-footer>* {
   width: 100%;
   padding: 0;
}

.canvas-mb .tt-mobile-menu-footer__link,
.canvas-mb .tt-mobile-menu-footer__logout {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   width: 100%;
   min-height: 48px;
   padding: 12px 16px;
   border-radius: 8px;
   font: inherit;
   text-decoration: none;
   cursor: pointer;
}

.canvas-mb .tt-mobile-menu-footer__link {
   border: 1px solid var(--line);
   background: var(--bg);
   color: var(--text);
}

.canvas-mb .tt-mobile-menu-footer__link .icon {
   font-size: 22px;
}

.canvas-mb .tt-mobile-menu-footer__logout {
   border: 1px solid #121111;
   background: #121111;
   color: #fff;
}

.canvas-mb .tt-mobile-menu-footer__logout .icon {
   font-size: 22px;
}

.canvas-mb .tt-mobile-menu-footer__login {
   min-height: 48px;
   display: flex;
   align-items: center;
   justify-content: center;
}

/* Account page — logout row matches nav links on mobile */
@media (max-width: 991.98px) {
   .my-account-nav .account-nav-logout {
      border-top: 1px solid var(--line);
   }

   .my-account-nav .account-nav-logout__btn {
      border-radius: 0 0 12px 12px;
   }
}

/* Mobile menu — keep account row above footer; avoid empty block eating taps */
.canvas-mb .canvas-body {
   justify-content: flex-start !important;
}

.canvas-mb .tt-mobile-menu-account-item {
   margin-top: 16px;
   padding-top: 16px;
   border-top: 1px solid var(--line);
}

.canvas-mb .tt-mobile-menu-account__link {
   display: flex;
   align-items: center;
   gap: 12px;
   width: 100%;
   padding: 12px 0;
   border: 0;
   background: transparent;
   font: inherit;
   color: var(--text);
   text-decoration: none;
   cursor: pointer;
   text-align: left;
   position: relative;
   z-index: 2;
}

.canvas-mb .tt-mobile-menu-account__link .icon {
   font-size: 22px;
}

/* Logout confirmation — match theme modals; sit above profile page backdrop (10050) */
.modal-logout-confirm .modal-dialog {
   max-width: 400px;
}

.modal-logout-confirm .modal-logout-confirm__icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 56px;
   height: 56px;
   margin: 0 auto 16px;
   border-radius: 50%;
   background: rgba(18, 17, 17, 0.06);
   color: var(--text);
   font-size: 26px;
   line-height: 1;
}

.modal-logout-confirm .group-action.d-grid {
   grid-template-columns: 1fr 1fr;
}

@media (max-width: 399.98px) {
   .modal-logout-confirm .group-action.d-grid {
      grid-template-columns: 1fr;
   }
}

#ttModalLogoutConfirm.modal {
   z-index: 10060;
}

body.modal-open:has(#ttModalLogoutConfirm.show) .modal-backdrop {
   z-index: 10055;
}

/* Field-level validation (account modals, auth, checkout, etc.) */
.tt-field-error {
   display: none;
   font-size: 0.8125rem;
   line-height: 1.45;
   font-weight: 500;
   color: #c62828;
   margin: 6px 0 14px;
   padding: 0;
}

.tt-field-error.is-visible {
   display: block !important;
}

.tt-ff.is-invalid,
.tt-phone-row.is-invalid,
.tf-field.is-invalid,
[data-tt-field-wrap].is-invalid,
.checkout-field-wrap.is-invalid input,
.checkout-field-wrap.is-invalid textarea,
.select2-container.is-invalid .select2-selection--single {
   border-color: #c62828 !important;
}

.checkout-field-wrap.is-invalid input,
.checkout-field-wrap.is-invalid textarea,
.checkout-field-wrap.is-invalid .checkout-inline-phone {
   box-shadow: 0 0 0 1px rgba(198, 40, 40, 0.2);
}

.checkout-field-wrap.is-invalid .checkout-inline-phone {
   border-color: #c62828 !important;
}

.checkout-field-wrap.is-invalid .checkout-inline-phone input {
   border: 0 !important;
   box-shadow: none !important;
}

.tt-ff.is-invalid {
   box-shadow: 0 0 0 1px rgba(198, 40, 40, 0.15);
}

.login-otp-field.is-invalid .login-otp-digit {
   border-color: #c62828 !important;
}

/* Sign-in modal — 6 OTP boxes in one row (grid beats theme form input width:100%) */
#login-step-otp .login-otp-field.tf-field {
   display: block;
   width: 100%;
   min-width: 0;
   margin: 0;
   padding: 0;
   border: 0;
   position: static;
   min-height: 0;
}

#login-flow .login-otp-box {
   display: grid !important;
   grid-template-columns: repeat(6, minmax(0, 1fr));
   column-gap: 6px;
   width: 100%;
   max-width: 100%;
   box-sizing: border-box;
}

/* #login-flow is the <form> — do not use "#login-flow form" (no nested form) */
#login-flow .login-otp-box .login-otp-digit,
#login-step-otp .login-otp-digit {
   display: block;
   position: static !important;
   top: auto !important;
   left: auto !important;
   right: auto !important;
   bottom: auto !important;
   transform: none !important;
   width: 100% !important;
   min-width: 0 !important;
   max-width: 100% !important;
   height: 46px !important;
   min-height: 0 !important;
   margin: 0 !important;
   padding: 0 !important;
   text-align: center !important;
   line-height: 46px !important;
   font-size: 20px;
   font-weight: 600;
   font-variant-numeric: tabular-nums;
   letter-spacing: 0;
   box-sizing: border-box;
   -webkit-appearance: none;
   appearance: none;
}

@media (max-width: 420px) {
   #login-flow .login-otp-box {
      column-gap: 4px;
   }

   #login-flow .login-otp-box .login-otp-digit,
   #login-step-otp .login-otp-digit {
      height: 42px !important;
      line-height: 42px !important;
      font-size: 18px;
   }
}