:root {
  --rv-surface: #ffffff;
  --rv-soft: #f5f6f8;
  --rv-ink: #16181c;
  --rv-muted: #666d77;
  --rv-line: #e5e8ec;
  --rv-action: #17191d;
  --rv-radius-sm: 8px;
  --rv-radius-md: 12px;
  --rv-page: min(1440px, calc(100% - 64px));
}

html,
body {
  background: var(--rv-surface);
  color: var(--rv-ink);
}

body {
  font-family: Inter, Aptos, "Noto Sans Thai", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

html[lang^="th"] body {
  font-family: "Noto Sans Thai", "Leelawadee UI", Tahoma, Inter, sans-serif;
}

html[lang^="zh"] body {
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", Inter, sans-serif;
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--rv-action);
  outline-offset: 3px;
}

:where(.button, button, [role="button"], input[type="submit"]) {
  min-height: 44px;
}

.button,
.button--primary,
.shopline-payment-button__button {
  border-radius: var(--rv-radius-sm);
  font-weight: 700;
  box-shadow: none;
}

.button--primary,
.shopline-payment-button__button {
  border-color: var(--rv-action);
  background: var(--rv-action);
  color: #ffffff;
}

.header-section {
  border-bottom: 1px solid var(--rv-line);
  background: rgba(255, 255, 255, .94);
  color: var(--rv-ink);
  backdrop-filter: blur(16px);
}

.header__container-top-wrap {
  min-height: 72px;
}

.header-section :where(a, button) {
  color: var(--rv-ink);
}

.footer {
  border-top: 1px solid var(--rv-line);
  background: var(--rv-soft);
  color: var(--rv-ink);
}

.footer a,
.footer p {
  color: var(--rv-muted);
}

.section-featured-collection,
.main-collection-container,
.main-cart__container {
  background: var(--rv-surface);
  color: var(--rv-ink);
}

.section-featured-collection {
  padding-block: clamp(64px, 7vw, 100px);
}

.block-product-card {
  overflow: hidden;
  border: 1px solid var(--rv-line);
  border-radius: var(--rv-radius-md);
  background: var(--rv-surface);
  box-shadow: none !important;
  transition: transform .18s ease, border-color .18s ease;
}

.block-product-card:hover {
  transform: translateY(-3px);
  border-color: #d4d8dd;
}

.block-product-card__image-wrapper {
  background: var(--rv-surface);
}

.block-product-card__image {
  object-fit: contain;
}

.block-product-card-info {
  padding: 16px;
}

.block-product-title,
.block-product-card .block-product-title {
  display: -webkit-box;
  overflow: hidden;
  min-height: 2.8em;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.block-product-price {
  color: var(--rv-ink);
  font-weight: 750;
}

.main-collection {
  padding-block: clamp(36px, 5vw, 72px);
}

.main-collection__no-products-tips {
  min-height: 220px;
  display: grid;
  place-items: center;
  color: var(--rv-muted);
  background: var(--rv-soft);
  border-radius: var(--rv-radius-md);
}

.facets-form,
.main-collection__products,
.main-cart__container .page-width {
  color: var(--rv-ink);
}

.main-cart__container {
  padding-block: clamp(36px, 5vw, 72px);
}

.main-cart__container :where(input, select) {
  border-color: var(--rv-line);
  border-radius: var(--rv-radius-sm);
}

.rv-mobile-purchase {
  min-width: 0;
}

@media (max-width: 749px) {
  :root { --rv-page: calc(100% - 28px); }

  .header__container-top-wrap {
    min-height: 64px;
  }

  .block-product-card-info {
    padding: 12px;
  }

  .rv-mobile-purchase .block-product-buy-button-group {
    position: sticky;
    bottom: 0;
    z-index: 15;
    margin-inline: -14px;
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--rv-line);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 -10px 26px rgba(22, 24, 28, .08);
    backdrop-filter: blur(14px);
  }

  .rv-mobile-purchase .block-product-buy-button-group :where(button, .button) {
    min-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
