/* Prism Research — scoped public storefront redesign layer
   Safe migration layer for public/marketing surfaces only.
   Guardrail: no checkout/cart/payment/admin/order selectors, no global button/input/table overrides,
   and no shared :root variable remap. */

/* Public navigation polish */
.nav,
.topnav,
.aff-topbar {
  background: rgba(255, 255, 255, 0.86) !important;
  color: #020817 !important;
  border-bottom: 1px solid rgba(226, 232, 240, 0.9) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
  backdrop-filter: blur(18px) saturate(160%);
}

.nav__logo-icon,
.nav__logo-text,
.topnav__brand,
.aff-topbar__brand {
  color: #020817 !important;
}

.nav__logo-sub,
.nav__link,
.nav__icon-btn,
.topnav__links,
.topnav__links a,
.aff-topbar__name,
.aff-topbar__btn {
  color: #64748b !important;
}

.nav__link:hover,
.nav__icon-btn:hover,
.topnav__links a:hover,
.topnav__links a.is-active,
.aff-topbar__btn:hover {
  color: #047857 !important;
  background: rgba(4, 120, 87, 0.08) !important;
}

.nav__icon-btn,
.nav__link,
.aff-topbar__btn,
.hero .btn,
.landing .btn,
section.sec .btn {
  border-radius: 0.625rem !important;
  transition: color 180ms cubic-bezier(0.16, 1, 0.3, 1),
              background 180ms cubic-bezier(0.16, 1, 0.3, 1),
              border-color 180ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 180ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.nav__icon-btn:active,
.aff-topbar__btn:active,
.hero .btn:active,
.landing .btn:active,
section.sec .btn:active {
  transform: translateY(1px) scale(0.99);
}


/* Marketing and storefront surfaces */
.product-card,
.bundle-card,
.trust-card,
.benefit-card,
.about-card,
.faq-item,
.detail-card,
.detail-panel,
.coa-card,
.coa-record,
.signal,
.paper {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 1.25rem !important;
  box-shadow: 0 10px 30px -18px rgba(15, 23, 42, 0.35), 0 1px 2px rgba(15, 23, 42, 0.06) !important;
}

.product-card:hover,
.bundle-card:hover,
.trust-card:hover,
.benefit-card:hover,
.faq-item:hover {
  border-color: rgba(4, 120, 87, 0.25) !important;
  box-shadow: 0 24px 60px -32px rgba(15, 23, 42, 0.42), 0 8px 24px -20px rgba(4, 120, 87, 0.35) !important;
  transform: translateY(-2px);
}

.wrap {
  max-width: 1180px;
}

.hero,
.landing,
.catalog,
.about,
.trust,
.faq,
.support,
section.sec {
  border-color: #e2e8f0 !important;
}

.hero__title,
.landing__headline,
section.sec h1,
section.sec h2,
.hero h1,
.signal__title {
  color: #020817 !important;
  letter-spacing: -0.045em;
}

.hero__lede,
.landing__desc,
section.sec p,
.signal__lede,
.hero .sub,
.muted,
.hero__caption,
.hero__meta__label,
.product-card__desc,
.faq-item__body {
  color: #64748b !important;
}

.eyebrow,
.section-eyebrow,
.meta,
.hero__eyebrow,
.signal__badge {
  color: #047857 !important;
  letter-spacing: 0.16em;
}

.signal,
.contact {
  background: #0f172a !important;
  color: #f8fafc !important;
  border-radius: 1.25rem !important;
}

.signal *,
.contact * {
  color: inherit;
}

.badge,
.nav__badge {
  border-radius: 999px !important;
  border: 1px solid rgba(15, 23, 42, 0.08);
}

/* Product image panels keep vial cutouts clean without touching checkout thumbnails. */
.product-card__image,
.product-card__media,
.detail-image,
.hero-vial,
.vial-marquee,
.bundle-card__image {
  background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(241,245,249,0.65)) !important;
  border-radius: 1.25rem !important;
}

.nav__search-input {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  color: #020817 !important;
  border-radius: 0.625rem !important;
}

.nav__search-input:focus {
  border-color: #047857 !important;
  box-shadow: 0 0 0 4px rgba(4, 120, 87, 0.18) !important;
}

/* Catalog polish: scoped to public catalog wrapper only. */
.prism-catalog-page {
  padding-bottom: 70px !important;
}

.prism-catalog-hero {
  width: min(1220px, calc(100% - 32px));
  margin: 34px auto 26px;
  padding: 34px 38px !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 30px !important;
  box-shadow: 0 18px 52px -34px rgba(15, 23, 42, 0.38) !important;
}

.prism-catalog-hero h1 {
  margin: 0 !important;
  color: #020817 !important;
  font-size: clamp(2rem, 5vw, 4.2rem) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.07em !important;
  font-weight: 850 !important;
}

.prism-catalog-layout {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto !important;
  align-items: flex-start !important;
  gap: 22px !important;
}

/* Catalog product-card polish: CSS-only, scoped to public catalog cards. */
.prism-catalog-page .product-grid {
  gap: 24px !important;
}

.prism-catalog-page .card:not(.card--bundle) {
  overflow: hidden !important;
  background: #ffffff !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  border-radius: 30px !important;
  box-shadow: 0 18px 52px -36px rgba(15, 23, 42, 0.36), 0 1px 2px rgba(15, 23, 42, 0.06) !important;
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1),
              border-color 180ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.prism-catalog-page .card:not(.card--bundle):hover {
  transform: translateY(-4px) !important;
  border-color: rgba(4, 120, 87, 0.24) !important;
  box-shadow: 0 28px 72px -40px rgba(15, 23, 42, 0.44), 0 12px 28px -24px rgba(4, 120, 87, 0.34) !important;
}

.prism-catalog-page .card__image {
  position: relative !important;
  min-height: 215px !important;
  margin: 14px 14px 0 !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 50% 15%, rgba(4, 120, 87, 0.13), transparent 42%),
    linear-gradient(180deg, rgba(248, 250, 252, 0.95), rgba(241, 245, 249, 0.82)) !important;
  overflow: hidden !important;
}

.prism-catalog-page .card__image::after {
  content: "";
  position: absolute;
  inset: auto 18% 12px;
  height: 20px;
  border-radius: 999px;
  background: radial-gradient(ellipse, rgba(15, 23, 42, 0.16), transparent 70%);
  pointer-events: none;
}

.prism-catalog-page .card__image-vial {
  max-height: 175px !important;
  filter: drop-shadow(0 24px 24px rgba(15, 23, 42, 0.18)) !important;
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), filter 180ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.prism-catalog-page .card:hover .card__image-vial {
  transform: translateY(-4px) scale(1.02) !important;
  filter: drop-shadow(0 28px 28px rgba(15, 23, 42, 0.23)) !important;
}

.prism-catalog-page .card__body {
  padding: 18px 18px 20px !important;
}

.prism-catalog-page .card__name {
  color: #020817 !important;
  font-size: 1.08rem !important;
  letter-spacing: -0.03em !important;
  font-weight: 800 !important;
}

.prism-catalog-page .card__footer {
  align-items: center !important;
  gap: 14px !important;
}

.prism-catalog-page .card__prices {
  gap: 2px !important;
}

.prism-catalog-page .card__compare-price {
  color: #94a3b8 !important;
}

.prism-catalog-page .card__price {
  color: #047857 !important;
  font-weight: 850 !important;
}

.prism-catalog-page .card__add-btn {
  min-height: 42px !important;
  border-radius: 999px !important;
  background: #020817 !important;
  color: #ffffff !important;
  box-shadow: 0 12px 28px -20px rgba(2, 8, 23, 0.8) !important;
}

.prism-catalog-page .card__add-btn:hover {
  background: #047857 !important;
  transform: translateY(-1px) !important;
}

.prism-catalog-page .card__sale-badge {
  border-radius: 999px !important;
  background: #047857 !important;
  color: #ffffff !important;
  box-shadow: 0 8px 22px -14px rgba(4, 120, 87, 0.7) !important;
}

/* Product detail polish: visual-only rules for existing detail markup. */
.detail-wrap {
  padding-bottom: 74px !important;
}

.detail {
  width: min(1220px, calc(100% - 32px)) !important;
  margin: 32px auto 70px !important;
}

.detail__back {
  min-height: 42px !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 12px 32px -28px rgba(15, 23, 42, 0.45) !important;
}

.detail__grid {
  gap: clamp(26px, 4vw, 58px) !important;
  align-items: start !important;
}

.detail__image {
  position: relative !important;
  border-radius: 34px !important;
  background:
    radial-gradient(circle at 52% 18%, rgba(4, 120, 87, 0.16), transparent 42%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.86)) !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 28px 80px -52px rgba(15, 23, 42, 0.44) !important;
  overflow: hidden !important;
}

.detail__image::after {
  content: "";
  position: absolute;
  inset: auto 18% 26px;
  height: 28px;
  border-radius: 999px;
  background: radial-gradient(ellipse, rgba(15, 23, 42, 0.17), transparent 70%);
  pointer-events: none;
}

.detail__image-vial {
  max-height: min(540px, 70vh) !important;
  filter: drop-shadow(0 32px 28px rgba(15, 23, 42, 0.22)) !important;
}

.detail__info {
  border-radius: 32px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 24px 72px -52px rgba(15, 23, 42, 0.38) !important;
}

.detail__name {
  color: #020817 !important;
  font-size: clamp(2.25rem, 4.5vw, 5rem) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.075em !important;
  font-weight: 880 !important;
}

.detail__fullname,
.detail__desc,
.detail__disclaimer {
  color: #475569 !important;
}

.detail__price {
  color: #047857 !important;
  font-weight: 850 !important;
}

.detail__compare-price {
  color: #94a3b8 !important;
}

.mvd-detail,
.detail__payment-trust,
.detail__spec,
.detail__pairing-card {
  border-radius: 24px !important;
  background: rgba(248, 250, 252, 0.82) !important;
  border: 1px solid rgba(226, 232, 240, 0.96) !important;
}

.detail__seg-btn,
.detail__size-btn,
.detail__qty-btn,
.detail__coa-btn,
.detail__pairing-btn {
  border-radius: 999px !important;
}

.detail__seg-btn--active,
.detail__size-btn--active {
  background: #020817 !important;
  color: #ffffff !important;
  border-color: #020817 !important;
}

.detail__add-btn {
  min-height: 54px !important;
  border-radius: 999px !important;
  background: #020817 !important;
  color: #ffffff !important;
  box-shadow: 0 16px 34px -22px rgba(2, 8, 23, 0.82) !important;
}

.detail__add-btn:hover {
  background: #047857 !important;
  transform: translateY(-1px) !important;
}

.detail__shipping-row span,
.pay-logo {
  border-radius: 16px !important;
  background: #ffffff !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
}

.detail__pairing-card {
  overflow: hidden !important;
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.detail__pairing-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 24px 60px -42px rgba(15, 23, 42, 0.42) !important;
}

.detail__pairing-img {
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 50% 15%, rgba(4, 120, 87, 0.12), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,0.96), rgba(241,245,249,0.86)) !important;
}

@media (max-width: 768px) {
  .detail {
    width: min(100% - 24px, 1220px) !important;
    margin-top: 18px !important;
  }

  .detail__image {
    border-radius: 26px !important;
  }

  .detail__image-vial {
    max-height: 360px !important;
  }

  .detail__info {
    border-radius: 26px !important;
  }

  .detail__seg-btn,
  .detail__size-btn,
  .detail__qty-btn {
    min-height: 42px !important;
  }
}

@media (max-width: 768px) {
  .nav,
  .topnav,
  .aff-topbar {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .wrap,
  section.sec,
  .hero {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .topnav__links,
  .nav__links {
    gap: 12px !important;
  }

  .product-card,
  .bundle-card,
  .trust-card,
  .benefit-card,
  .faq-item {
    border-radius: 1rem !important;
  }
}
