/* ══════════════════════════════════════════════════════
   NOVUS — Laravel storefront additions
   Small rules for markup the WordPress theme did not have.
   ══════════════════════════════════════════════════════ */

/* Intro loader plays on the first page of a visit only */
.no-loader .loader { display: none !important; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* AJAX button states */
.loading { opacity: .6; pointer-events: none; }
.pa-btn-wish.added, .wl-fallback-btn.added, .nrp-wl-fallback.added { color: var(--violet); }
.nrp-wl-fallback.added { color: #fff; background-color: var(--violet); }
.pd-wishlist-icon .wl-fallback-btn {
  display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; background: none;
  border: 1px solid rgba(107,33,168,.2); color: var(--plum);
}
.atc-btn[disabled] { opacity: .5; }

/* Form validation */
.field-error {
  display: block; margin-top: .35rem; font-size: .72rem;
  color: #b91c1c; letter-spacing: .03em;
}
ul.woocommerce-error {
  list-style: none; margin: 0 0 2rem; padding: 1rem 1.25rem;
  border-left: 3px solid #b91c1c; background: #fef2f2;
  font-size: .82rem; color: #7f1d1d; line-height: 1.7;
}

/* Search results have no sidebar */
.search-content { grid-template-columns: 1fr; }

/* Wishlist remove is a <button> here (was an <a> in YITH) */
table.wishlist_table td.product-remove form { margin: 0; }
table.wishlist_table td.product-remove button.remove_from_wishlist { background: none; border: 0; }

/* Admin-managed policy pages */
.policy-content { max-width: 860px; margin: 0 auto; padding: 4rem 2rem 6rem; line-height: 1.85; color: var(--charcoal); }
.policy-content h2, .policy-content h3 { font-family: var(--font-serif); font-weight: 400; color: var(--plum); margin: 2.2rem 0 .8rem; }
.policy-content h2 { font-size: 1.8rem; }
.policy-content h3 { font-size: 1.35rem; }
.policy-content p, .policy-content li { font-size: .92rem; margin-bottom: .9rem; }
.policy-content ul, .policy-content ol { padding-left: 1.4rem; }
.policy-content a { color: var(--violet); text-decoration: underline; }

/* Account login/register columns */
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; max-width: 1100px; margin: 0 auto; padding: 4rem 2rem 6rem; }
#customer_login h2 { font-family: var(--font-serif); font-weight: 400; color: var(--plum); font-size: 2rem; margin-bottom: 1.5rem; }
#customer_login .form-row { margin-bottom: 1.2rem; }
#customer_login label { display: block; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .5rem; }
#customer_login label.woocommerce-form__label-for-checkbox { display: inline-flex; gap: .5rem; align-items: center; letter-spacing: .08em; margin-right: 1.5rem; }
#customer_login .input-text {
  width: 100%; border: 1px solid rgba(107,33,168,.2); background: var(--warm-white);
  padding: .9rem 1.2rem; font-family: var(--font-sans); font-size: .85rem; outline: none;
}
#customer_login .input-text:focus { border-color: var(--violet); }
#customer_login .button {
  background: var(--plum); color: var(--cream); border: 0; padding: .95rem 2.4rem;
  font-family: var(--font-sans); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase;
}
#customer_login .button:hover { background: var(--violet); }
#customer_login .woocommerce-privacy-policy-text p { font-size: .75rem; color: var(--muted); margin-bottom: 1.2rem; line-height: 1.7; }
@media (max-width: 768px) {
  #customer_login { grid-template-columns: 1fr; padding: 3rem 1.25rem 4rem; }
}
