/**
 * NewERP Shop — Base Styles
 *
 * Dark theme matching winery website aesthetic.
 * BEM methodology: .newerp-block__element--modifier
 */

/* ── CSS Custom Properties ──────────────────────────────────────────── */

:root {
  --newerp-bg:             #1a1a2e;
  --newerp-bg-card:        #16213e;
  --newerp-bg-input:       #0f3460;
  --newerp-text:           #e8e8e8;
  --newerp-text-muted:     #a0a0b0;
  --newerp-primary:        #c9a96e;
  --newerp-primary-hover:  #d4b87a;
  --newerp-primary-text:   #1a1a2e;
  --newerp-accent:         #e94560;
  --newerp-success:        #4ade80;
  --newerp-error:          #ef4444;
  --newerp-warning:        #f59e0b;
  --newerp-border:         #2a2a4a;
  --newerp-radius:         8px;
  --newerp-radius-sm:      4px;
  --newerp-shadow:         0 4px 20px rgba(0, 0, 0, 0.3);
  --newerp-font:           'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --newerp-transition:     0.2s ease;
}

/* ── Base ────────────────────────────────────────────────────────────── */

.newerp-auth,
.newerp-shop,
.newerp-cart,
.newerp-checkout,
.newerp-account,
.newerp-club,
.newerp-tasting {
  font-family: var(--newerp-font);
  color: var(--newerp-text);
  line-height: 1.6;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

/* Auth screens (login / register / forgot / reset) are a focused full-screen
   experience: the form is vertically centred and fills the viewport below the
   site header, so the page reads as one screen and the tall marketing footer
   sits cleanly below the fold instead of awkwardly peeking in. 94px ≈ header. */
.newerp-auth {
  min-height: calc(100vh - 94px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  /* Nudge the vertically-centred content up ~20px (extra bottom padding in a
     justify-center flex shifts the centre up by half the added amount). */
  padding-bottom: calc(2rem + 40px);
}

/* Cart & checkout fill the viewport too so the tall marketing footer sits below
   the fold. Content flows from the top (no centring — these have real content). */
.newerp-cart,
.newerp-checkout {
  min-height: calc(100vh - 94px);
}

/* A little more breathing room between the page header and the cart title. */
.newerp-cart {
  padding-top: calc(2rem + 50px);
}

/* Login-required gate (account when logged out) — centred full screen. */
.newerp-auth-gate {
  min-height: calc(100vh - 94px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Guest checkout contact section. */
.newerp-checkout__account-hint {
  margin: 0 0 1rem;
  color: var(--newerp-text-muted);
  font-size: 0.9rem;
}
.newerp-checkout__account-hint a {
  color: var(--newerp-primary);
  text-decoration: underline;
}
.newerp-checkout__hint {
  display: block;
  margin-top: 0.35rem;
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
}

/* The Hub/Liquid theme replaces native <select> with a jQuery-UI selectmenu and
   hides the original (display:none). Our dynamically-rendered selects aren't
   picked up by that widget, so they vanish. Force them back as styled native
   dropdowns (dark theme + custom chevron) so the province picker is visible. */
.newerp-checkout select,
.newerp-auth select,
.newerp-club select,
.newerp-account select,
.newerp-tasting select {
  display: block !important;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--newerp-bg-input);
  color: var(--newerp-text);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  padding: 0.75rem 2.5rem 0.75rem 1rem;
  font-size: 1rem;
  line-height: 1.4;
  box-sizing: border-box;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c9a96e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
}

.newerp-checkout select:focus,
.newerp-auth select:focus,
.newerp-club select:focus,
.newerp-account select:focus,
.newerp-tasting select:focus {
  outline: none;
  border-color: var(--newerp-primary);
}


/* 2026-10-30: 预约页(服务端渲染)的 select 会被主题包成 jQuery-UI selectmenu 按钮, 在我们的深色表单里没样式、
   只剩 "None" 一行文字且菜单不可见 → 隐藏主题按钮, 全部用上面的原生下拉样式。 */
.newerp-checkout .ui-selectmenu-button,
.newerp-auth .ui-selectmenu-button,
.newerp-club .ui-selectmenu-button,
.newerp-account .ui-selectmenu-button,
.newerp-tasting .ui-selectmenu-button {
  display: none !important;
}

/* Native option list is OS-rendered; pin colours so it's readable. */
.newerp-checkout select option,
.newerp-auth select option,
.newerp-club select option,
.newerp-account select option {
  background: var(--newerp-bg-card);
  color: var(--newerp-text);
}

/* ── Typography ─────────────────────────────────────────────────────── */

.newerp-auth h2,
.newerp-auth h3 {
  color: var(--newerp-primary);
  margin-bottom: 0.5rem;
}

.newerp-auth__subtitle {
  color: var(--newerp-text-muted);
  margin-bottom: 1.5rem;
}

/* ── Forms ───────────────────────────────────────────────────────────── */

.newerp-form {
  max-width: 420px;
}

/* Fill the auth container so the inputs + Sign In button line up with the
   full-width alt-method buttons below them. (.newerp-auth is a flex column;
   the form's `margin:0 auto` would otherwise shrink it to content width, so
   pin width:100%.) */
.newerp-auth .newerp-form {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

/* More breathing room between the auth title and the first field. */
.newerp-auth h2 {
  margin-bottom: 2.25rem;
}

/* Visually-hidden label (kept for screen readers / accessibility). */
.newerp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.newerp-form__group {
  margin-bottom: 1.25rem;
}

.newerp-form__group label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.375rem;
  color: var(--newerp-text);
}

.newerp-form__group input[type="text"],
.newerp-form__group input[type="email"],
.newerp-form__group input[type="password"],
.newerp-form__group input[type="tel"],
.newerp-form__group input[type="number"],
.newerp-form__group input[type="url"],
.newerp-form__group input[type="date"],
.newerp-form__group input[type="search"],
.newerp-form__group select,
.newerp-form__group textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  font-size: 1rem;
  transition: border-color var(--newerp-transition);
  box-sizing: border-box;
}

/* Date inputs: render the native calendar/spinner + text for a dark UI so the
   yyyy-mm-dd value and the picker icon are visible (not white-on-white). */
.newerp-form__group input[type="date"] {
  color-scheme: dark;
}

.newerp-form__group input:focus,
.newerp-form__group select:focus,
.newerp-form__group textarea:focus {
  outline: none;
  border-color: var(--newerp-primary);
  box-shadow: 0 0 0 2px rgba(201, 169, 110, 0.2);
}

.newerp-form__group input::placeholder {
  color: var(--newerp-text-muted);
  opacity: 0.6;
}

.newerp-form__hint {
  font-size: 0.8rem;
  color: var(--newerp-text-muted);
  margin-top: 0.25rem;
}

.newerp-form__row {
  display: flex;
  gap: 1rem;
}

.newerp-form__group--half {
  flex: 1;
}

/* 2026-10-30: 之前 label 是 flex, 文字节点和两个 <a> 各成一个 flex 项, 手机上换行后变成
   "Terms ofPrivacyandServicePolicy" 这种拼接; 改为普通行内文本 + 绝对定位的复选框, 链接随文字自然换行 */
.newerp-form__group--checkbox label,
label.newerp-form__group--checkbox {
  display: block;
  position: relative;
  padding-left: 1.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: left; /* 主题表单默认居中, 复选框文字左对齐更像一行协议 */
  cursor: pointer;
}

.newerp-form__group--checkbox label input[type="checkbox"],
label.newerp-form__group--checkbox input[type="checkbox"] {
  position: absolute;
  left: 0;
  top: 0.2rem;
  margin: 0;
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--newerp-primary);
}

.newerp-form__group--checkbox label a,
label.newerp-form__group--checkbox a {
  color: var(--newerp-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}

/* ── Buttons ─────────────────────────────────────────────────────────── */

.newerp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  border: none;
  border-radius: var(--newerp-radius-sm);
  cursor: pointer;
  transition: all var(--newerp-transition);
  text-decoration: none;
  line-height: 1.4;
}

.newerp-btn--primary {
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
}

.newerp-btn--primary:hover {
  background: var(--newerp-primary-hover);
}

.newerp-btn--primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.newerp-btn--outline {
  background: transparent;
  border: 1px solid var(--newerp-border);
  color: var(--newerp-text);
}

.newerp-btn--outline:hover {
  border-color: var(--newerp-primary);
  color: var(--newerp-primary);
}

.newerp-btn--full {
  width: 100%;
}

.newerp-btn--link {
  background: none;
  border: none;
  color: var(--newerp-primary);
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  font-size: 0.875rem;
}

.newerp-btn--link:hover {
  color: var(--newerp-primary-hover);
}

/* The Hub/Liquid theme paints a highlight background on button:hover, which
   makes this link-style button's gold text vanish against a gold background.
   Force a transparent background in every state so the text stays readable. */
.newerp-btn--link,
.newerp-btn--link:hover,
.newerp-btn--link:focus {
  background: transparent !important;
  box-shadow: none !important;
}

.newerp-btn--link:hover,
.newerp-btn--link:focus {
  color: var(--newerp-primary-hover) !important;
  text-decoration: underline;
}

/* ── Alerts ──────────────────────────────────────────────────────────── */

.newerp-alert {
  padding: 0.75rem 1rem;
  border-radius: var(--newerp-radius-sm);
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

.newerp-alert--error {
  background: rgba(239, 68, 68, 0.15);
  color: var(--newerp-error);
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.newerp-alert--success {
  background: rgba(74, 222, 128, 0.15);
  color: var(--newerp-success);
  border: 1px solid rgba(74, 222, 128, 0.3);
}

.newerp-alert--info {
  background: rgba(201, 169, 110, 0.15);
  color: var(--newerp-primary);
  border: 1px solid rgba(201, 169, 110, 0.3);
}

/* ── Notice ──────────────────────────────────────────────────────────── */

.newerp-notice {
  padding: 1.5rem;
  border-radius: var(--newerp-radius);
  text-align: center;
  max-width: 500px;
  margin: 2rem auto;
}

.newerp-notice--info {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
}

.newerp-notice a {
  color: var(--newerp-primary);
  text-decoration: underline;
}

/* 2026-10-30: 主题全局 a:hover 把文字染成金色, 金底(选中的账户导航项、金色主按钮)上悬停时文字消失 → 钉住 */
.newerp-account__nav-link.is-active,
.newerp-account__nav-link.is-active:hover,
.newerp-account__nav-link.is-active:focus {
  color: #1a1a1a !important;
}

a.newerp-btn--primary,
a.newerp-btn--primary:hover,
a.newerp-btn--primary:focus {
  color: #1a1a1a !important;
}

/* ── Login-required gate (account / reservations / checkout when logged out) ── */

.newerp-auth-gate {
  display: flex;
  justify-content: center;
  padding: 3rem 1rem 4rem;
}

.newerp-auth-gate__card {
  width: 100%;
  max-width: 460px;
  text-align: center;
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 2.5rem 2rem;
}

.newerp-auth-gate__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--newerp-primary);
  background: rgba(201, 169, 110, 0.12);
  border: 1px solid rgba(201, 169, 110, 0.3);
}

.newerp-auth-gate__title {
  margin: 0 0 0.6rem;
  font-size: 1.35rem;
  line-height: 1.3;
  color: var(--newerp-text);
}

.newerp-auth-gate__text {
  margin: 0 0 1.5rem;
  color: var(--newerp-text-muted, #a8b0bf);
  font-size: 0.95rem;
  line-height: 1.55;
}

.newerp-auth-gate__actions {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.newerp-auth-gate__actions .newerp-btn {
  width: 100%;
  justify-content: center;
}

/* 主题的全局 a 颜色(金色)会盖住按钮文字, 金底金字看不见 → 钉住 */
.newerp-auth-gate__actions a.newerp-btn--primary,
.newerp-auth-gate__actions a.newerp-btn--primary:hover {
  color: #1a1a1a !important;
}

.newerp-auth-gate__actions a.newerp-btn--outline,
.newerp-auth-gate__actions a.newerp-btn--outline:hover {
  color: var(--newerp-primary) !important;
}

.newerp-auth-gate__text {
  color: #a8b0bf !important;
}

/* ── Auth layout ─────────────────────────────────────────────────────── */

.newerp-auth {
  max-width: 520px;
  text-align: center;
}

.newerp-auth__divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.5rem 0;
  color: var(--newerp-text-muted);
  font-size: 0.875rem;
}

.newerp-auth__divider::before,
.newerp-auth__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--newerp-border);
}

.newerp-auth__alt-methods {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.newerp-auth__links {
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--newerp-text-muted);
}

.newerp-auth__links a {
  color: var(--newerp-primary);
  text-decoration: none;
}

.newerp-auth__links a:hover {
  text-decoration: underline;
}

/* Security + contact reassurance block at the foot of the login form.
   One uniform size, prominent (full-strength) text colour. */
.newerp-auth__reassurance {
  margin: 1.5rem auto 0;
  max-width: 520px;
  padding-top: 1.25rem;
  border-top: 1px solid var(--newerp-border);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--newerp-text);
}
.newerp-auth__reassurance p {
  margin: 0 0 0.6rem;
}
.newerp-auth__reassurance p:last-child {
  margin-bottom: 0;
}
.newerp-auth__reassurance a {
  color: var(--newerp-primary);
  text-decoration: underline;
}

.newerp-auth__separator {
  margin: 0 0.5rem;
  color: var(--newerp-border);
}

.newerp-auth__icon {
  color: var(--newerp-primary);
  margin-bottom: 1rem;
}

.newerp-auth__hint {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
}

/* ── OTP form ────────────────────────────────────────────────────────── */

.newerp-otp {
  text-align: center;
}

.newerp-otp input[type="text"] {
  text-align: center;
  font-size: 1.5rem;
  letter-spacing: 0.5em;
  padding: 1rem;
}

.newerp-otp__resend {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: var(--newerp-text-muted);
}

/* ── Toast notifications ─────────────────────────────────────────────── */

.newerp-toast {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--newerp-radius);
  font-size: 0.9rem;
  font-weight: 500;
  z-index: 99999;
  opacity: 0;
  transform: translateY(1rem);
  transition: all 0.3s ease;
  box-shadow: var(--newerp-shadow);
}

.newerp-toast--visible {
  opacity: 1;
  transform: translateY(0);
}

.newerp-toast--success {
  background: #065f46;
  color: var(--newerp-success);
}

.newerp-toast--error {
  background: #7f1d1d;
  color: var(--newerp-error);
}

.newerp-toast--info {
  background: var(--newerp-bg-card);
  color: var(--newerp-text);
}

/* ── Shop layout ─────────────────────────────────────────────────────── */

.newerp-shop__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.newerp-shop__title {
  color: var(--newerp-primary);
  font-size: 2rem;
  margin: 0;
}

.newerp-shop__toolbar {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.newerp-shop__search {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  padding: 0.5rem 0.75rem;
  min-width: 200px;
}

.newerp-shop__sort {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  padding: 0.5rem 0.75rem;
}

.newerp-shop__layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 2rem;
  align-items: flex-start;
}

.newerp-shop__sidebar {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.25rem;
  position: sticky;
  top: 1rem;
}

.newerp-shop__sidebar-title {
  color: var(--newerp-primary);
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.newerp-shop__cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.newerp-shop__cat-list li {
  margin-bottom: 0.25rem;
}

.newerp-shop__cat-link {
  display: flex;
  justify-content: space-between;
  padding: 0.45rem 0.6rem;
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  text-decoration: none;
  font-size: 0.9rem;
  transition: background var(--newerp-transition);
}

.newerp-shop__cat-link:hover {
  background: rgba(201, 169, 110, 0.08);
  color: var(--newerp-primary);
}

.newerp-shop__cat-link.is-active {
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
  font-weight: 600;
}

.newerp-shop__cat-count {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
}

.newerp-shop__cat-link.is-active .newerp-shop__cat-count {
  color: var(--newerp-primary-text);
  opacity: 0.7;
}

.newerp-shop__results-meta {
  color: var(--newerp-text-muted);
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

.newerp-shop__empty {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 3rem 1.5rem;
  text-align: center;
}

.newerp-shop__empty p {
  color: var(--newerp-text-muted);
  margin-bottom: 1rem;
}

/* ── Product grid ────────────────────────────────────────────────────── */

.newerp-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}

.newerp-product-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
}

.newerp-product-card {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  overflow: hidden;
  transition: transform var(--newerp-transition), box-shadow var(--newerp-transition);
  display: flex;
  flex-direction: column;
}

.newerp-product-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--newerp-shadow);
  border-color: rgba(201, 169, 110, 0.4);
}

.newerp-product-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.newerp-product-card__image-wrap {
  position: relative;
}

.newerp-product-card__image {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  background: var(--newerp-bg);
  display: block;
}

.newerp-product-card__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.25rem 0.6rem;
  border-radius: var(--newerp-radius-sm);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.newerp-product-card__badge--sale {
  background: var(--newerp-accent);
  color: #fff;
}

.newerp-product-card__badge--oos {
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
}

.newerp-product-card__badge--low {
  background: var(--newerp-warning);
  color: #1a1a2e;
}

.newerp-product-card__body {
  padding: 1rem;
  flex: 1;
}

.newerp-product-card__vintage {
  color: var(--newerp-text-muted);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.25rem;
}

.newerp-product-card__name {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
  color: var(--newerp-text);
  line-height: 1.3;
}

.newerp-product-card__meta {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
}

.newerp-product-card__price {
  color: var(--newerp-primary);
  font-weight: 700;
  font-size: 1.1rem;
}

.newerp-product-card__actions {
  padding: 0 1rem 1rem;
}

/* ── Price ───────────────────────────────────────────────────────────── */

.newerp-price--sale {
  color: var(--newerp-accent);
}

.newerp-price--strike {
  color: var(--newerp-text-muted);
  text-decoration: line-through;
  font-weight: 400;
  font-size: 0.9em;
  margin-left: 0.5rem;
}

.newerp-price--xl {
  font-size: 1.75rem;
}

.newerp-price__deposit {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  font-weight: 400;
  margin-left: 0.5rem;
}

/* ── Pagination ──────────────────────────────────────────────────────── */

.newerp-pagination {
  display: flex;
  gap: 0.25rem;
  justify-content: center;
  margin: 2rem 0 0;
  flex-wrap: wrap;
}

.newerp-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.65rem;
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  text-decoration: none;
  font-size: 0.9rem;
  transition: all var(--newerp-transition);
}

.newerp-pagination__link:hover {
  border-color: var(--newerp-primary);
  color: var(--newerp-primary);
}

.newerp-pagination__link.is-current {
  background: var(--newerp-primary);
  border-color: var(--newerp-primary);
  color: var(--newerp-primary-text);
  font-weight: 600;
}

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.newerp-breadcrumb {
  font-size: 0.85rem;
  color: var(--newerp-text-muted);
  margin-bottom: 1.5rem;
}

.newerp-breadcrumb a {
  color: var(--newerp-text-muted);
  text-decoration: none;
}

.newerp-breadcrumb a:hover {
  color: var(--newerp-primary);
}

.newerp-breadcrumb__sep {
  margin: 0 0.5rem;
  color: var(--newerp-border);
}

.newerp-breadcrumb__current {
  color: var(--newerp-text);
}

/* ── Product detail ──────────────────────────────────────────────────── */

.newerp-product-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 3rem;
  margin-bottom: 3rem;
}

.newerp-product-detail__image-main {
  position: relative;
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  overflow: hidden;
}

.newerp-product-detail__image-main img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
}

.newerp-product-detail__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.newerp-product-detail__thumb {
  background: none;
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  padding: 0;
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--newerp-transition);
}

.newerp-product-detail__thumb:hover {
  border-color: var(--newerp-primary);
}

.newerp-product-detail__thumb img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}

.newerp-product-detail__vintage {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.newerp-product-detail__name {
  font-size: 2.25rem;
  color: var(--newerp-text);
  margin: 0 0 0.5rem;
  line-height: 1.2;
}

.newerp-product-detail__meta-line {
  color: var(--newerp-text-muted);
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
}

.newerp-product-detail__price {
  color: var(--newerp-primary);
  font-weight: 700;
  margin-bottom: 1rem;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.newerp-product-detail__stock {
  display: inline-block;
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
}

.newerp-stock--in-stock { color: var(--newerp-success); }
.newerp-stock--low-stock { color: var(--newerp-warning); }
.newerp-stock--out-of-stock { color: var(--newerp-error); }

.newerp-product-detail__description {
  color: var(--newerp-text);
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

.newerp-product-detail__description p {
  margin: 0 0 0.75rem;
}

.newerp-product-detail__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.newerp-product-detail__specs {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.5rem 1.5rem;
  border-top: 1px solid var(--newerp-border);
  padding-top: 1rem;
  margin: 0 0 1.5rem;
}

.newerp-product-detail__specs dt {
  color: var(--newerp-text-muted);
  font-size: 0.875rem;
}

.newerp-product-detail__specs dd {
  margin: 0;
  color: var(--newerp-text);
  font-size: 0.875rem;
}

.newerp-product-detail__section {
  margin-top: 1.5rem;
}

.newerp-product-detail__section h3 {
  color: var(--newerp-primary);
  font-size: 1rem;
  margin: 0 0 0.5rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.newerp-product-detail__section p {
  color: var(--newerp-text);
  margin: 0;
  line-height: 1.6;
}

.newerp-product-detail__awards {
  list-style: none;
  padding: 0;
  margin: 0;
}

.newerp-product-detail__awards li {
  padding: 0.4rem 0;
  border-bottom: 1px dashed var(--newerp-border);
  color: var(--newerp-text);
}

.newerp-product-detail__recommended {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--newerp-border);
}

.newerp-product-detail__recommended h2 {
  color: var(--newerp-primary);
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

/* ── Quantity stepper ────────────────────────────────────────────────── */

.newerp-qty-input {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  background: var(--newerp-bg-input);
  overflow: hidden;
}

.newerp-qty-input__btn {
  background: none;
  border: none;
  color: var(--newerp-text);
  font-size: 1.25rem;
  width: 2.25rem;
  height: 2.5rem;
  cursor: pointer;
  transition: background var(--newerp-transition);
}

.newerp-qty-input__btn:hover {
  background: rgba(201, 169, 110, 0.1);
  color: var(--newerp-primary);
}

.newerp-qty-input__field {
  width: 3rem;
  text-align: center;
  background: transparent;
  border: none;
  color: var(--newerp-text);
  font-size: 1rem;
  height: 2.5rem;
  -moz-appearance: textfield;
}

.newerp-qty-input__field::-webkit-outer-spin-button,
.newerp-qty-input__field::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.newerp-qty-input__field:focus {
  outline: none;
}

/* ── Buttons (size + lg) ─────────────────────────────────────────────── */

.newerp-btn--lg {
  padding: 0.95rem 1.75rem;
  font-size: 1rem;
}

/* ── Cart page ───────────────────────────────────────────────────────── */

.newerp-cart__title {
  color: var(--newerp-primary);
  font-size: 2rem;
  margin: 0 0 1.5rem;
}

.newerp-cart__layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 2rem;
  align-items: flex-start;
}

.newerp-cart__items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.newerp-cart__empty {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 3rem 1.5rem;
  text-align: center;
}

.newerp-cart__empty p {
  color: var(--newerp-text-muted);
  margin-bottom: 1rem;
}

.newerp-cart-item {
  display: grid;
  grid-template-columns: 80px 1fr auto auto auto;
  gap: 1rem;
  align-items: center;
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1rem;
  transition: opacity var(--newerp-transition);
}

.newerp-cart-item.is-loading {
  opacity: 0.5;
  pointer-events: none;
}

.newerp-cart-item__image img {
  width: 80px;
  aspect-ratio: 3 / 4;
  object-fit: contain; /* 2026-10-30: 酒瓶图用 cover 会只剩瓶颈, 改 contain 显示整瓶 */
  background: var(--newerp-bg-input, #1f1f1f);
  border-radius: var(--newerp-radius-sm);
  display: block;
}

.newerp-cart-item__name {
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: var(--newerp-text);
}

.newerp-cart-item__price {
  color: var(--newerp-text-muted);
  font-size: 0.875rem;
}

.newerp-cart-item__line-total {
  color: var(--newerp-primary);
  font-weight: 700;
  min-width: 5rem;
  text-align: right;
}

.newerp-cart-item__remove {
  background: none;
  border: none;
  color: var(--newerp-text-muted);
  font-size: 1.5rem;
  cursor: pointer;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  transition: all var(--newerp-transition);
}

.newerp-cart-item__remove:hover {
  background: rgba(239, 68, 68, 0.15);
  color: var(--newerp-error);
}

.newerp-cart__summary {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
  position: sticky;
  top: 1rem;
}

.newerp-cart__summary-title {
  color: var(--newerp-primary);
  font-size: 1.1rem;
  margin: 0 0 1rem;
}

.newerp-cart__summary-lines {
  margin: 0 0 1.25rem;
}

.newerp-cart__summary-row {
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0;
  border-bottom: 1px dashed var(--newerp-border);
}

.newerp-cart__summary-row dt {
  color: var(--newerp-text);
  font-size: 0.9rem;
  margin: 0;
}

.newerp-cart__summary-row dd {
  margin: 0;
  font-weight: 600;
  color: var(--newerp-text);
}

.newerp-cart__summary-row--muted dd {
  color: var(--newerp-text-muted);
  font-weight: 400;
  font-size: 0.85rem;
}

.newerp-cart__continue {
  display: block;
  text-align: center;
  margin-top: 0.75rem;
}

/* ── Checkout layout ─────────────────────────────────────────────────── */

.newerp-checkout__title {
  color: var(--newerp-primary);
  font-size: 2rem;
  margin: 0 0 1.5rem;
}

.newerp-checkout__layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 2rem;
  align-items: flex-start;
}

.newerp-checkout__main {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.newerp-checkout__section {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
  margin: 0;
}

.newerp-checkout__section legend {
  color: var(--newerp-primary);
  font-weight: 600;
  font-size: 1rem;
  padding: 0 0.5rem;
}

.newerp-checkout__section textarea {
  width: 100%;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  padding: 0.75rem 1rem;
  font-family: inherit;
  font-size: 0.95rem;
  box-sizing: border-box;
  resize: vertical;
}

.newerp-checkout__select {
  width: 100%;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  padding: 0.65rem 0.75rem;
  font-size: 0.95rem;
}

.newerp-checkout__saved-addresses {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed var(--newerp-border);
}

/* ── Radios (shipping rate, payment method) ──────────────────────────── */

.newerp-radio {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  cursor: pointer;
  margin-bottom: 0.5rem;
  transition: border-color var(--newerp-transition);
}

.newerp-radio:hover {
  border-color: var(--newerp-primary);
}

.newerp-radio input[type="radio"] {
  accent-color: var(--newerp-primary);
}

.newerp-radio:has(input:checked) {
  border-color: var(--newerp-primary);
  background: rgba(201, 169, 110, 0.08);
}

.newerp-checkout__payment-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.newerp-checkout__payment-tabs .newerp-radio {
  flex: 1;
  margin-bottom: 0;
  justify-content: center;
}

.newerp-shipping-rate {
  justify-content: space-between;
}

.newerp-shipping-rate__name {
  flex: 1;
  margin-left: 0.5rem;
}

.newerp-shipping-rate__price {
  color: var(--newerp-primary);
  font-weight: 600;
}

/* ── Clover iframe mounts ────────────────────────────────────────────── */

/* Clover hosted fields force a white iframe background (can't be themed dark).
   So the card fields live inside a deliberate white "secure payment" panel —
   making the white look intentional rather than a stray block on the dark page. */
.newerp-checkout__card-iframe {
  background: #fff;
  border-radius: 12px;
  padding: 1rem 1rem 0.4rem;
  margin-bottom: 0.75rem;
}
.newerp-checkout__card-iframe .newerp-form__hint {
  color: #6b7280;
  margin: 0.25rem 0 0.5rem;
}

.newerp-clover-mount {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: var(--newerp-radius-sm);
  padding: 0.6rem 0.85rem;
  height: 2.75rem;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  transition: border-color var(--newerp-transition);
}

/* Expiry (MM/YY) and CVV hold very little, so keep them compact and left-aligned
   instead of each stretching to half the (wide) payment column. width (not
   flex-basis) so they stay 9rem wide — never 9rem tall — when the row stacks on
   mobile. */
.newerp-clover-mount--half {
  flex: 0 0 auto;
  width: 9rem;
}

.newerp-clover-mount:focus-within {
  border-color: var(--newerp-primary);
  box-shadow: 0 0 0 2px rgba(201, 169, 110, 0.2);
}

.newerp-clover-mount > iframe {
  width: 100% !important;
  border: 0 !important;
  height: 100% !important;
  background: transparent !important;
}

/* ── Summary sidebar ─────────────────────────────────────────────────── */

.newerp-checkout__summary {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
  position: sticky;
  top: 1rem;
}

.newerp-checkout__summary-title {
  color: var(--newerp-primary);
  font-size: 1.1rem;
  margin: 0 0 1rem;
}

.newerp-checkout__line-items {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed var(--newerp-border);
  font-size: 0.875rem;
}

.newerp-checkout__line-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.4rem;
}

.newerp-checkout__line-name {
  color: var(--newerp-text);
}

.newerp-checkout__line-qty {
  color: var(--newerp-text-muted);
  margin-left: 0.25rem;
}

.newerp-checkout__line-total {
  color: var(--newerp-text);
  font-weight: 500;
}

.newerp-checkout__voucher {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed var(--newerp-border);
}

.newerp-checkout__voucher-toggle {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.25rem 0;
}

.newerp-checkout__voucher-form {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.newerp-checkout__voucher-form input {
  flex: 1;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  padding: 0.5rem 0.75rem;
}

.newerp-checkout__voucher-applied {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.5rem;
  padding: 0.4rem 0.75rem;
  background: rgba(74, 222, 128, 0.08);
  border: 1px solid rgba(74, 222, 128, 0.3);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-success);
  font-size: 0.875rem;
}

.newerp-checkout__totals {
  margin: 0 0 1rem;
}

.newerp-checkout__total-row {
  display: flex;
  justify-content: space-between;
  padding: 0.4rem 0;
  font-size: 0.9rem;
}

.newerp-checkout__total-row dt {
  color: var(--newerp-text-muted);
  margin: 0;
}

.newerp-checkout__total-row dd {
  margin: 0;
  color: var(--newerp-text);
  font-weight: 500;
}

.newerp-checkout__total-row--grand {
  border-top: 1px solid var(--newerp-border);
  padding-top: 0.75rem;
  margin-top: 0.5rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.newerp-checkout__total-row--grand dt {
  color: var(--newerp-text);
}

.newerp-checkout__total-row--grand dd {
  color: var(--newerp-primary);
  font-size: 1.25rem;
}

.newerp-checkout__secure-note {
  font-size: 0.75rem;
  color: var(--newerp-text-muted);
  text-align: center;
  margin: 0.75rem 0 0;
}

/* ── Order confirmation ──────────────────────────────────────────────── */

.newerp-order-confirmation {
  text-align: center;
}

.newerp-order-confirmation__header {
  margin-bottom: 2rem;
}

.newerp-order-confirmation__check {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--newerp-success);
  color: var(--newerp-primary-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.newerp-order-confirmation__sub {
  color: var(--newerp-text-muted);
  margin: 0;
}

.newerp-order-confirmation__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  text-align: left;
  margin-bottom: 2rem;
}

.newerp-order-confirmation__items-card,
.newerp-order-confirmation__summary {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
}

.newerp-order-confirmation__items-card h2,
.newerp-order-confirmation__summary h2 {
  color: var(--newerp-primary);
  font-size: 1rem;
  margin: 0 0 1rem;
}

.newerp-order-confirmation__items {
  list-style: none;
  padding: 0;
  margin: 0;
}

.newerp-order-confirmation__item {
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0;
  border-bottom: 1px dashed var(--newerp-border);
}

.newerp-order-confirmation__item:last-child {
  border-bottom: none;
}

.newerp-order-confirmation__item-qty {
  color: var(--newerp-text-muted);
  margin-left: 0.5rem;
  font-size: 0.875rem;
}

.newerp-order-confirmation__item-price {
  color: var(--newerp-text);
  font-weight: 500;
}

.newerp-order-confirmation__payment-note,
.newerp-order-confirmation__points {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--newerp-border);
  font-size: 0.85rem;
  color: var(--newerp-text-muted);
}

.newerp-order-confirmation__points {
  color: var(--newerp-success);
}

.newerp-order-confirmation__actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Account dashboard ───────────────────────────────────────────────── */

.newerp-account__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.newerp-account__title {
  flex: 1;
  color: var(--newerp-primary);
  margin: 0;
  font-size: 1.75rem;
}

.newerp-account__tier-pill {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  background: rgba(201, 169, 110, 0.15);
  border: 1px solid rgba(201, 169, 110, 0.3);
  border-radius: 999px;
  color: var(--newerp-primary);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.newerp-account__logout-form {
  margin: 0;
}

.newerp-account__layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: flex-start;
}

.newerp-account__nav {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 0.5rem;
  position: sticky;
  top: 1rem;
}

.newerp-account__nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.newerp-account__nav-link {
  display: block;
  padding: 0.6rem 0.85rem;
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  text-decoration: none;
  font-size: 0.92rem;
  transition: background var(--newerp-transition);
}

.newerp-account__nav-link:hover {
  background: rgba(201, 169, 110, 0.06);
  color: var(--newerp-primary);
}

.newerp-account__nav-link.is-active {
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
  font-weight: 600;
}

.newerp-account__content {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 2rem;
  min-height: 400px;
}

.newerp-account__heading {
  color: var(--newerp-primary);
  font-size: 1.4rem;
  margin: 0 0 1.5rem;
}

.newerp-account__subheading {
  color: var(--newerp-text);
  font-size: 1.05rem;
  margin: 1.5rem 0 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--newerp-border);
}

.newerp-account__form {
  max-width: 540px;
}

.newerp-account__empty {
  text-align: center;
  padding: 2.5rem 1rem;
}

.newerp-account__empty-text {
  color: var(--newerp-text-muted);
  text-align: center;
  padding: 1.5rem;
}

/* ── Stat cards ──────────────────────────────────────────────────────── */

.newerp-account__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.newerp-stat-card {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.25rem;
}

.newerp-stat-card__label {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}

.newerp-stat-card__value {
  color: var(--newerp-primary);
  font-size: 1.5rem;
  font-weight: 700;
}

.newerp-stat-card__hint {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  margin-top: 0.25rem;
}

/* ── Account shortcuts ───────────────────────────────────────────────── */

.newerp-account__shortcuts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.5rem;
}

.newerp-account__shortcut {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.85rem 1rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  text-decoration: none;
  transition: all var(--newerp-transition);
}

.newerp-account__shortcut:hover {
  border-color: var(--newerp-primary);
  color: var(--newerp-primary);
}

/* ── Orders table ────────────────────────────────────────────────────── */

.newerp-orders-table {
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  overflow: hidden;
}

.newerp-orders-table__head,
.newerp-orders-table__row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 0.7fr 1fr 0.8fr 0.5fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem 1rem;
}

.newerp-orders-table__head {
  background: var(--newerp-bg-input);
  font-size: 0.8rem;
  text-transform: uppercase;
  color: var(--newerp-text-muted);
  letter-spacing: 0.05em;
}

.newerp-orders-table__row {
  border-top: 1px solid var(--newerp-border);
}

.newerp-orders-table__row:hover {
  background: rgba(201, 169, 110, 0.04);
}

.newerp-orders-table__cell[data-label] {
  font-size: 0.92rem;
}

/* ── Status pills ────────────────────────────────────────────────────── */

.newerp-status {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.newerp-status--paid,
.newerp-status--processing { background: rgba(201, 169, 110, 0.15); color: var(--newerp-primary); }
.newerp-status--shipped    { background: rgba(96, 165, 250, 0.15); color: #60a5fa; }
.newerp-status--delivered,
.newerp-status--completed,
.newerp-status--success    { background: rgba(74, 222, 128, 0.15); color: var(--newerp-success); }
.newerp-status--cancelled,
.newerp-status--refunded   { background: rgba(239, 68, 68, 0.15); color: var(--newerp-error); }
.newerp-status--pending-payment,
.newerp-status--warning    { background: rgba(245, 158, 11, 0.15); color: var(--newerp-warning); }

/* ── Address cards ───────────────────────────────────────────────────── */

.newerp-addresses__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.newerp-address-card {
  position: relative;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.25rem;
}

.newerp-address-card__badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.15rem 0.5rem;
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--newerp-radius-sm);
}

.newerp-address-card__type {
  color: var(--newerp-text-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.newerp-address-card__name {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.newerp-address-card__lines {
  font-size: 0.875rem;
  color: var(--newerp-text);
  line-height: 1.5;
}

.newerp-address-card__phone {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  margin-top: 0.4rem;
}

.newerp-address-card__actions {
  margin-top: 0.75rem;
  text-align: right;
}

.newerp-addresses__add-details summary {
  list-style: none;
  cursor: pointer;
  display: inline-block;
}

.newerp-addresses__add-details summary::-webkit-details-marker {
  display: none;
}

.newerp-addresses__add-details[open] summary {
  margin-bottom: 1rem;
}

/* ── Saved cards ─────────────────────────────────────────────────────── */

.newerp-saved-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.newerp-saved-card {
  position: relative;
  background: linear-gradient(135deg, var(--newerp-bg-input) 0%, var(--newerp-bg-card) 100%);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.25rem;
}

.newerp-saved-card__brand {
  color: var(--newerp-primary);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
}

.newerp-saved-card__number {
  font-family: 'Courier New', monospace;
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  margin-bottom: 0.5rem;
  color: var(--newerp-text);
}

.newerp-saved-card__exp {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  margin-bottom: 0.75rem;
}

/* ── Points ──────────────────────────────────────────────────────────── */

.newerp-points-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.newerp-points-summary--3 {
  grid-template-columns: 1fr 1fr 1fr; /* 余额 / 累计 / 到期日 三卡等宽 (2026-10-05) */
}

.newerp-points-summary__balance,
.newerp-points-summary__lifetime {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
  text-align: center;
}

.newerp-points-summary__balance {
  background: linear-gradient(135deg, rgba(201, 169, 110, 0.12), var(--newerp-bg-input));
  border-color: rgba(201, 169, 110, 0.3);
}

.newerp-points-summary__label {
  display: block;
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.newerp-points-summary__value {
  display: block;
  color: var(--newerp-primary);
  font-size: 2rem;
  font-weight: 700;
}

.newerp-points-summary__hint {
  display: block;
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  margin-top: 0.25rem;
}

.newerp-points-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
}

.newerp-points-list__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--newerp-border);
}

.newerp-points-list__row:last-child {
  border-bottom: none;
}

.newerp-points-list__desc {
  color: var(--newerp-text);
  font-size: 0.92rem;
}

.newerp-points-list__meta {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  margin-top: 0.2rem;
}

.newerp-points-list__delta {
  font-weight: 700;
  font-size: 1rem;
}

.newerp-points-list__delta--pos { color: var(--newerp-success); }
.newerp-points-list__delta--neg { color: var(--newerp-accent); }

/* ── Security log ────────────────────────────────────────────────────── */

.newerp-security-log {
  list-style: none;
  padding: 0;
  margin: 0;
}

.newerp-security-log__row {
  display: flex;
  gap: 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--newerp-border);
}

.newerp-security-log__row:last-child { border-bottom: none; }

.newerp-security-log__icon {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--newerp-text-muted);
  font-size: 1.1rem;
}

.newerp-security-log__label {
  color: var(--newerp-text);
  font-weight: 500;
}

.newerp-security-log__meta {
  color: var(--newerp-text-muted);
  font-size: 0.8rem;
  margin-top: 0.2rem;
}

/* ── Subscription portal ─────────────────────────────────────────────── */

.newerp-subscription {
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
}

.newerp-subscription__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--newerp-border);
}

.newerp-subscription__tier-name {
  color: var(--newerp-primary);
  font-size: 1.25rem;
  font-weight: 700;
}

.newerp-subscription__status {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  margin-top: 0.2rem;
}

.newerp-subscription__renewal {
  text-align: right;
  font-size: 0.875rem;
}

.newerp-subscription__renewal span {
  display: block;
  color: var(--newerp-text-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.newerp-subscription__details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.newerp-subscription__details > div {
  background: var(--newerp-bg-input);
  border-radius: var(--newerp-radius-sm);
  padding: 0.75rem 1rem;
}

.newerp-subscription__details dt {
  color: var(--newerp-text-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
}

.newerp-subscription__details dd {
  margin: 0;
  color: var(--newerp-text);
  font-weight: 600;
  font-size: 1rem;
}

.newerp-subscription__credits {
  margin-bottom: 1.5rem;
  padding: 1rem;
  background: var(--newerp-bg-input);
  border-radius: var(--newerp-radius-sm);
}

.newerp-subscription__credits-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}

.newerp-progress {
  background: var(--newerp-border);
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.newerp-progress__bar {
  background: var(--newerp-primary);
  height: 100%;
  transition: width 0.3s ease;
}

.newerp-subscription__next h3 {
  color: var(--newerp-primary);
  font-size: 1rem;
  margin: 0 0 0.5rem;
}

.newerp-club-upsell {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 2rem;
  text-align: center;
}

.newerp-club-upsell p {
  margin-bottom: 1.5rem;
  color: var(--newerp-text);
}

/* ── Club landing ────────────────────────────────────────────────────── */

.newerp-club__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.newerp-club__title {
  color: var(--newerp-primary);
  font-size: 2.5rem;
  margin: 0 0 0.75rem;
}

.newerp-club__subtitle {
  color: var(--newerp-text-muted);
  font-size: 1.1rem;
  max-width: 640px;
  margin: 0 auto;
}

.newerp-club__tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.newerp-club__tier {
  background: var(--newerp-bg-card);
  border: 2px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 2rem 1.5rem;
  text-align: center;
  position: relative;
  transition: transform var(--newerp-transition), border-color var(--newerp-transition);
}

.newerp-club__tier:hover {
  transform: translateY(-4px);
  border-color: var(--tier-accent, var(--newerp-primary));
}

.newerp-club__tier-icon {
  font-size: 2rem;
  margin-bottom: 0.75rem;
}

.newerp-club__tier-name {
  color: var(--tier-accent, var(--newerp-primary));
  font-size: 1.4rem;
  margin: 0 0 0.5rem;
}

.newerp-club__tier-price {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--newerp-text);
  margin-bottom: 0.5rem;
}

.newerp-club__tier-period {
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--newerp-text-muted);
}

.newerp-club__tier-description {
  color: var(--newerp-text-muted);
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
  min-height: 2.5em;
}

.newerp-club__tier-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  text-align: left;
}

.newerp-club__tier-features li {
  padding: 0.4rem 0;
  font-size: 0.875rem;
  color: var(--newerp-text);
  border-bottom: 1px dashed var(--newerp-border);
}

.newerp-club__tier-features li:last-child {
  border-bottom: none;
}

.newerp-club__faq {
  max-width: 720px;
  margin: 0 auto;
}

.newerp-club__faq h2 {
  color: var(--newerp-primary);
  font-size: 1.4rem;
  margin: 0 0 1rem;
  text-align: center;
}

.newerp-club__faq ol {
  padding-left: 1.25rem;
  color: var(--newerp-text);
  line-height: 1.8;
}

/* ── Club signup specifics ───────────────────────────────────────────── */

.newerp-club-signup__tiers {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.newerp-club-signup__tier-option {
  justify-content: space-between;
}

.newerp-club-signup__tier-name {
  flex: 1;
  margin-left: 0.5rem;
}

.newerp-club-signup__tier-fee {
  color: var(--newerp-primary);
  font-weight: 600;
}

/* ── Featured / recommended ──────────────────────────────────────────── */

.newerp-featured__title {
  color: var(--newerp-primary);
  font-size: 1.4rem;
  margin: 0 0 1.5rem;
  text-align: center;
}

.newerp-featured,
.newerp-recommended {
  margin: 2.5rem auto;
}

/* ── Tasting experiences ─────────────────────────────────────────────── */

.newerp-tasting__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.newerp-tasting__title {
  color: var(--newerp-primary);
  font-size: 2.25rem;
  margin: 0 0 0.5rem;
}

.newerp-tasting__subtitle {
  color: var(--newerp-text-muted);
  max-width: 640px;
  margin: 0 auto;
}

.newerp-experience-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}

.newerp-experience-card {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  overflow: hidden;
  transition: transform var(--newerp-transition), box-shadow var(--newerp-transition);
}

.newerp-experience-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--newerp-shadow);
  border-color: rgba(201, 169, 110, 0.4);
}

.newerp-experience-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.newerp-experience-card__image-wrap { position: relative; }

.newerp-experience-card__image-wrap img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

.newerp-experience-card__body {
  padding: 1.25rem;
}

.newerp-experience-card__name {
  font-size: 1.1rem;
  margin: 0 0 0.4rem;
  color: var(--newerp-text);
}

.newerp-experience-card__meta {
  display: flex;
  gap: 0.4rem;
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
  margin-bottom: 0.75rem;
}

.newerp-experience-card__desc {
  color: var(--newerp-text);
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.newerp-experience-card__price {
  color: var(--newerp-primary);
  font-weight: 700;
  font-size: 1.1rem;
}

.newerp-experience-card__member-price {
  color: var(--newerp-text-muted);
  font-weight: 400;
  font-size: 0.85rem;
}

/* ── Experience detail ───────────────────────────────────────────────── */

.newerp-experience-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 3rem;
  margin-bottom: 3rem;
}

.newerp-experience-detail__media img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  border-radius: var(--newerp-radius);
  display: block;
}

.newerp-experience-detail__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.newerp-experience-detail__name {
  font-size: 2rem;
  margin: 0 0 1rem;
  color: var(--newerp-text);
}

.newerp-experience-detail__meta-pills {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.newerp-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.7rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: 999px;
  font-size: 0.85rem;
  color: var(--newerp-text);
}

.newerp-pill--accent {
  background: rgba(201, 169, 110, 0.12);
  border-color: rgba(201, 169, 110, 0.3);
  color: var(--newerp-primary);
  font-weight: 600;
}

.newerp-experience-detail__price {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--newerp-primary);
  margin-bottom: 1rem;
}

.newerp-experience-detail__member-price {
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--newerp-success);
  margin-top: 0.25rem;
}

.newerp-experience-detail__desc {
  margin-bottom: 1.5rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

/* ERP 描述编辑器插入的图片(2026-10-29)与官网导入的 wp-image: 限宽防撑开, 居中 */
.newerp-experience-detail__desc img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1rem auto;
  border-radius: var(--newerp-radius, 8px);
}
.newerp-experience-detail__desc p { margin: 0 0 1rem; }

/* ── Calendar ────────────────────────────────────────────────────────── */

.newerp-calendar {
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1rem;
}

.newerp-calendar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.newerp-calendar__title {
  font-weight: 600;
  color: var(--newerp-text);
}

.newerp-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.25rem;
}

.newerp-calendar__day-header {
  text-align: center;
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--newerp-text-muted);
  padding: 0.4rem 0;
  font-weight: 600;
}

.newerp-calendar__cell {
  aspect-ratio: 1;
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  background: var(--newerp-bg-card);
  color: var(--newerp-text);
  font-size: 0.875rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--newerp-transition);
}

.newerp-calendar__cell--blank {
  background: transparent;
  border-color: transparent;
  cursor: default;
}

.newerp-calendar__cell.is-disabled,
.newerp-calendar__cell.is-blocked,
.newerp-calendar__cell.is-full {
  color: var(--newerp-text-muted);
  background: transparent;
  cursor: not-allowed;
  opacity: 0.4;
}

.newerp-calendar__cell.is-available:hover {
  border-color: var(--newerp-primary);
  color: var(--newerp-primary);
  background: rgba(201, 169, 110, 0.08);
}

.newerp-calendar__cell.is-selected {
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
  border-color: var(--newerp-primary);
  font-weight: 700;
}

.newerp-calendar__loading {
  grid-column: 1 / -1;
  text-align: center;
  padding: 2rem;
  color: var(--newerp-text-muted);
}

/* ── Time slots ──────────────────────────────────────────────────────── */

.newerp-time-slots {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.5rem;
}

.newerp-time-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.75rem 1rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius-sm);
  color: var(--newerp-text);
  cursor: pointer;
  transition: all var(--newerp-transition);
}

.newerp-time-slot:hover {
  border-color: var(--newerp-primary);
  color: var(--newerp-primary);
}

.newerp-time-slot.is-selected {
  background: var(--newerp-primary);
  color: var(--newerp-primary-text);
  border-color: var(--newerp-primary);
}

.newerp-time-slot__time {
  font-weight: 700;
  font-size: 1rem;
}

.newerp-time-slot__avail {
  font-size: 0.75rem;
  opacity: 0.8;
}

/* ── Reservation list (account) ──────────────────────────────────────── */

.newerp-reservations {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

.newerp-reservation-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  background: var(--newerp-bg-input);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.newerp-reservation-card__title {
  font-weight: 600;
  color: var(--newerp-text);
  margin-bottom: 0.25rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.newerp-reservation-card__when {
  color: var(--newerp-text);
  font-size: 0.92rem;
  margin-bottom: 0.4rem;
}

.newerp-reservation-card__meta {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
  font-size: 0.85rem;
}

.newerp-reservation-card__number {
  color: var(--newerp-text-muted);
  font-family: 'Courier New', monospace;
  font-size: 0.8rem;
}

.newerp-reservation-card__side {
  text-align: right;
  margin-left: auto;
}

.newerp-reservation-card__price {
  color: var(--newerp-primary);
  font-weight: 700;
  margin-bottom: 0.25rem;
}

/* ── Reservation detail ──────────────────────────────────────────────── */

.newerp-reservation-detail__header {
  margin-bottom: 1.5rem;
}

.newerp-reservation-detail__header h1 {
  color: var(--newerp-primary);
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
  font-size: 1.75rem;
  margin: 0 0 0.5rem;
}

.newerp-reservation-detail__number {
  color: var(--newerp-text-muted);
  font-family: 'Courier New', monospace;
  margin: 0;
}

.newerp-reservation-detail__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  align-items: flex-start;
}

.newerp-reservation-detail__info,
.newerp-reservation-detail__payment {
  background: var(--newerp-bg-card);
  border: 1px solid var(--newerp-border);
  border-radius: var(--newerp-radius);
  padding: 1.5rem;
}

.newerp-reservation-detail__info h2,
.newerp-reservation-detail__payment h2 {
  color: var(--newerp-primary);
  font-size: 1rem;
  margin: 0 0 1rem;
}

.newerp-reservation-detail__dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.5rem 1.5rem;
  margin: 0;
}

.newerp-reservation-detail__dl dt {
  color: var(--newerp-text-muted);
  font-size: 0.85rem;
}

.newerp-reservation-detail__dl dd {
  margin: 0;
  color: var(--newerp-text);
  font-size: 0.9rem;
}

.newerp-reservation-detail__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--newerp-border);
}

/* ── Tabs (filter) ───────────────────────────────────────────────────── */

.newerp-tabs--filter {
  display: flex;
  gap: 0.5rem;
  border-bottom: 1px solid var(--newerp-border);
  margin-bottom: 1.5rem;
}

.newerp-tabs__link {
  padding: 0.6rem 1rem;
  color: var(--newerp-text-muted);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: all var(--newerp-transition);
}

.newerp-tabs__link:hover { color: var(--newerp-primary); }

.newerp-tabs__link.is-active {
  color: var(--newerp-primary);
  border-bottom-color: var(--newerp-primary);
  font-weight: 600;
}

/* Reservation status pills (extra to existing). */
.newerp-status--pending      { background: rgba(245, 158, 11, 0.15); color: var(--newerp-warning); }
.newerp-status--confirmed    { background: rgba(74, 222, 128, 0.15); color: var(--newerp-success); }
.newerp-status--deposit-paid { background: rgba(201, 169, 110, 0.15); color: var(--newerp-primary); }
.newerp-status--fully-paid   { background: rgba(74, 222, 128, 0.2); color: var(--newerp-success); }
.newerp-status--no-show      { background: rgba(239, 68, 68, 0.15); color: var(--newerp-error); }

/* ── Mini-cart icon ──────────────────────────────────────────────────── */

.newerp-mini-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--newerp-text);
  text-decoration: none;
  padding: 0.4rem;
  border-radius: var(--newerp-radius-sm);
  transition: color var(--newerp-transition);
}

.newerp-mini-cart:hover {
  color: var(--newerp-primary);
}

.newerp-mini-cart .newerp-cart-count {
  position: absolute;
  top: -2px;
  right: -2px;
}

/* ── Header account / sign-in link ───────────────────────────────────── */

.newerp-account-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--newerp-text);
  text-decoration: none;
  padding: 0.4rem;
  border-radius: var(--newerp-radius-sm);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  transition: color var(--newerp-transition);
}

.newerp-account-link:hover,
.newerp-account-link:focus {
  color: var(--newerp-primary);
}

/* Suppress the browser's high-contrast click focus ring (renders as a black/
   white outline) on header links + icons when activated by mouse. Keyboard
   focus is preserved via :focus-visible for accessibility. */
header a:focus:not(:focus-visible),
header button:focus:not(:focus-visible),
.newerp-account-link:focus:not(:focus-visible),
.newerp-mini-cart:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

.newerp-account-link__icon {
  flex-shrink: 0;
}

/* The Liquid theme forces `.lqd-page-reset svg { width: 24px }` (overriding the
   svg width attribute but NOT height), which squishes the person icon to 24×22
   while the cart renders 24×24. Pin BOTH header icons to the same 24×24 box
   with a higher-specificity selector so they render identically. */
.newerp-account-link .newerp-account-link__icon,
.newerp-mini-cart .newerp-mini-cart__icon {
  width: 24px;
  height: 24px;
}

/* Only shown when logged in (the customer's first name after the icon). */
.newerp-account-link__label {
  white-space: nowrap;
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Wine Club tier badge next to the name. */
.newerp-account-link__tier {
  flex-shrink: 0;
  padding: 2px 9px;
  border: 1px solid var(--newerp-primary);
  border-radius: 999px;
  background: rgba(201, 169, 110, 0.14);
  color: var(--newerp-primary);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* 页头三等分列里, Liquid 主题的中间导航(约 770px)比它的列宽, 会向两侧溢出;
   登录后账户链接带名字+等级徽章(约 280px)时会撞上最后一个菜单项 "English"(2026-10-05 实测 1440 宽重叠)。
   按视口分级: <1700 只留图标(登录态图标右上加金点); 1700–1899 显示名字; ≥1900 再显示等级徽章。 */
.newerp-account-link__label,
.newerp-account-link__tier {
  display: none;
}

.newerp-account-link.is-authed {
  position: relative;
}

.newerp-account-link.is-authed::after {
  content: '';
  position: absolute;
  top: 5px;
  right: 3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--newerp-primary);
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.6);
}

@media (min-width: 1700px) {
  .newerp-account-link__label {
    display: inline;
    max-width: 7rem;
  }

  .newerp-account-link.is-authed::after {
    display: none;
  }
}

@media (min-width: 1900px) {
  .newerp-account-link__tier {
    display: inline-block;
  }
}

/* ── Cart badge ──────────────────────────────────────────────────────── */

.newerp-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--newerp-accent);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  padding: 0 0.3rem;
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 900px) {
  .newerp-shop__layout {
    grid-template-columns: 1fr;
  }

  .newerp-shop__sidebar {
    position: static;
  }

  .newerp-product-detail {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .newerp-cart__layout {
    grid-template-columns: 1fr;
  }

  .newerp-cart__summary {
    position: static;
  }

  .newerp-checkout__layout {
    grid-template-columns: 1fr;
  }

  .newerp-checkout__summary {
    position: static;
  }

  .newerp-order-confirmation__grid {
    grid-template-columns: 1fr;
  }

  .newerp-account__layout {
    grid-template-columns: 1fr;
  }

  .newerp-account__nav {
    position: static;
  }

  .newerp-points-summary,
  .newerp-points-summary--3 {
    grid-template-columns: 1fr;
  }

  .newerp-experience-detail {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .newerp-reservation-detail__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .newerp-form__row {
    flex-direction: column;
    gap: 0;
  }

  .newerp-auth {
    padding: 1rem;
  }

  .newerp-toast {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }

  .newerp-product-detail__name {
    font-size: 1.5rem;
  }

  .newerp-cart-item {
    grid-template-columns: 64px 1fr auto;
    grid-template-areas:
      "image body  remove"
      "image qty   total";
    row-gap: 0.75rem;
  }

  .newerp-cart-item__image  { grid-area: image; }
  .newerp-cart-item__body   { grid-area: body; }
  .newerp-cart-item__qty    { grid-area: qty; }
  .newerp-cart-item__line-total { grid-area: total; }
  .newerp-cart-item__remove { grid-area: remove; align-self: start; }

  .newerp-cart-item__image img {
    width: 64px;
  }

  .newerp-shop__header {
    flex-direction: column;
    align-items: stretch;
  }

  .newerp-shop__toolbar {
    flex-direction: column;
  }

  .newerp-shop__search,
  .newerp-shop__sort {
    width: 100%;
    box-sizing: border-box;
  }

  /* Orders table → stacked cards on mobile. */
  .newerp-orders-table__head {
    display: none;
  }

  .newerp-orders-table__row {
    grid-template-columns: 1fr 1fr;
    grid-auto-flow: row;
    row-gap: 0.4rem;
    padding: 1rem;
  }

  .newerp-orders-table__cell[data-label]::before {
    content: attr(data-label) ': ';
    color: var(--newerp-text-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: block;
  }
}

/* ── Events & tours ──────────────────────────────────────────────────── */
.newerp-event-card__type-badge {
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  background: rgba(20, 16, 12, 0.78);
  color: #f6e6cf;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
}
.newerp-event-card__subtitle {
  color: var(--newerp-text-muted);
  font-size: 0.86rem;
  margin: 0.15rem 0 0.45rem;
  line-height: 1.4;
}
.newerp-experience-detail__subtitle {
  color: var(--newerp-text-muted);
  font-size: 1.05rem;
  margin: -0.25rem 0 0.85rem;
  font-style: italic;
}

/* ══ Events page (self-contained, full-bleed dark) ════════════════════════ */
.newerp-evt {
  --evt-accent: var(--newerp-accent, #B19B6A);
  --evt-bg: var(--newerp-bg, #171717);
  --evt-card: var(--newerp-bg-card, #1b1b1b);
  --evt-border: var(--newerp-border, #2a2a2a);
  --evt-ink: var(--newerp-text, #f3f5f9);
  --evt-muted: var(--newerp-text-muted, #a8b0bf);
  --evt-tour: #7fae9a;   /* sage */
  --evt-event: #d98a5c;  /* terracotta */
  color: var(--evt-ink);
  font-family: var(--newerp-font, inherit);
  /* full-bleed: paint the whole content width dark regardless of the white page */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--evt-bg);
  padding: clamp(1.75rem, 4vw, 3rem) 0;
  overflow-x: clip;
}
.newerp-evt__inner { max-width: 1400px; margin: 0 auto; padding: 0 clamp(1rem, 4vw, 3rem); }
.newerp-evt a { text-decoration: none; }

/* Top bar */
.newerp-evt__bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem 1.5rem; flex-wrap: wrap;
  padding-bottom: 1.25rem; margin-bottom: 1.75rem;
  border-bottom: 1px solid var(--evt-border);
}
.newerp-evt__nav { display: flex; align-items: center; gap: 0.85rem; }
.newerp-evt .newerp-evt__title {
  font-family: "SF Pro Display","Inter",-apple-system,"Segoe UI",serif !important;
  font-size: clamp(1.3rem, 2vw, 1.75rem) !important; font-weight: 600 !important;
  color: var(--evt-accent) !important; margin: 0 !important;
  min-width: 10rem; text-align: center; letter-spacing: 0.01em;
}
.newerp-evt__nav-btn {
  font-size: 1.5rem; line-height: 1; color: var(--evt-ink) !important;
  width: 2.4rem; height: 2.4rem; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--evt-border); border-radius: 999px;
  transition: border-color .2s, color .2s, background .2s;
}
.newerp-evt__nav-btn:hover { border-color: var(--evt-accent); color: var(--evt-accent) !important; }
.newerp-evt__controls { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }

/* Filter + view toggles share a pill style */
.newerp-evt__filter, .newerp-evt__views {
  display: inline-flex; align-items: center; gap: 0.2rem; padding: 0.25rem; height: 2.5rem;
  border: 1px solid var(--evt-border); border-radius: 999px; background: rgba(0,0,0,0.25);
}
/* `a.` + .newerp-evt scope beats Elementor's global `.elementor-kit-NNN a` font-size */
.newerp-evt a.newerp-evt__filter-tab, .newerp-evt a.newerp-evt__view-tab {
  display: inline-flex; align-items: center; height: 100%;
  padding: 0 0.95rem; font-size: 12px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--evt-muted) !important; border-radius: 999px;
  transition: color .2s, background .2s, box-shadow .2s;
}
.newerp-evt a.newerp-evt__filter-tab.is-active, .newerp-evt a.newerp-evt__view-tab.is-active {
  background: linear-gradient(180deg,#B19B6A,#9e8a5f); color: #fff !important;
  box-shadow: 0 4px 14px rgba(177,155,106,.35);
}
.newerp-evt a.newerp-evt__filter-tab:not(.is-active):hover, .newerp-evt a.newerp-evt__view-tab:not(.is-active):hover {
  color: var(--evt-ink) !important; background: rgba(177,155,106,.12);
}

.newerp-evt__empty { text-align: center; padding: 4rem 1rem; color: var(--evt-muted); border: 1px dashed var(--evt-border); border-radius: 14px; }

/* ── List ── */
.newerp-evt-list { display: flex; flex-direction: column; }
.newerp-evt-item {
  display: grid; grid-template-columns: 8rem 1fr clamp(220px, 28%, 340px);
  gap: 2rem; align-items: center; padding: 2rem 0;
  border-top: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, rgba(177,155,106,.5) 14%, rgba(177,155,106,.5) 86%, transparent) 1;
}
.newerp-evt-item:first-child { border-top: 0; padding-top: 0; }

/* Left "when" column: date markers (events) or summary (recurring) */
.newerp-evt-item__dates { display: flex; flex-direction: column; gap: 0.5rem; }
.newerp-evt-date {
  display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1;
  padding: 0.7rem 0.4rem; min-width: 100px; border: 1px solid var(--evt-border);
  border-radius: 14px; background: var(--evt-card);
}
.newerp-evt-date__mon { font-size: 0.82rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--evt-accent); }
.newerp-evt-date__day { font-size: 2.3rem; font-weight: 700; color: var(--evt-ink); margin: 0.2rem 0; font-variant-numeric: tabular-nums; }
.newerp-evt-date__time { font-size: 0.88rem; color: var(--evt-muted); font-variant-numeric: tabular-nums; }
.newerp-evt-date--more { justify-content: center; color: var(--evt-muted); font-weight: 700; font-size: 0.95rem; }
/* Phones: one column — image on top, then the date chip(s) in a row, then the text. */
@media (max-width: 767px) {
  /* .newerp-evt prefix: must beat the 900px two-column rule that comes later in this file. */
  .newerp-evt .newerp-evt-item { grid-template-columns: 1fr; gap: 0.9rem; padding: 3.2rem 0; }
  .newerp-evt .newerp-evt-item__media { order: -1; grid-column: auto; aspect-ratio: 16 / 9; margin-top: 0; }
  .newerp-evt .newerp-evt-item__when { order: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem 0.9rem; }
  .newerp-evt .newerp-evt-item__body { order: 1; }
  /* Type label sits on the date row; the one inside the body is hidden on phones. */
  .newerp-evt .newerp-evt-item__eyebrow--when { display: inline-block; margin: 0; }
  .newerp-evt-item__body > .newerp-evt-item__eyebrow { display: none; }
  .newerp-evt-item__dates { flex-direction: row; flex-wrap: wrap; gap: 0.5rem; }
  .newerp-evt-date { flex-direction: row; align-items: baseline; gap: 0.45rem; padding: 0.45rem 0.8rem; min-width: 0; border-radius: 999px; }
  .newerp-evt-date__mon { font-size: 0.68rem; letter-spacing: 0.12em; }
  .newerp-evt-date__day { font-size: 1.05rem; margin: 0; }
  .newerp-evt-date__time { font-size: 0.72rem; }
  .newerp-evt-date--more { padding: 0.45rem 0.8rem; font-size: 0.8rem; }
  .newerp-evt-when-summary { flex-direction: row; justify-content: flex-start; gap: 0.5rem; padding: 0.55rem 0.9rem; border-radius: 999px; width: fit-content; }
  .newerp-evt-when-summary__count { font-size: 1.1rem; }
  .newerp-evt-when-summary__label, .newerp-evt-when-summary__range { font-size: 0.78rem; }
  .newerp-evt-item__title { margin-bottom: 0.5rem !important; }
  .newerp-evt-item__sub { margin-bottom: 0.9rem; }
}
.newerp-evt-when-summary {
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: 1rem 0.5rem; border: 1px solid var(--evt-border); border-radius: 14px; background: var(--evt-card);
}
.newerp-evt-when-summary__count { font-size: 2rem; font-weight: 700; color: var(--evt-accent); line-height: 1; }
.newerp-evt-when-summary__label { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--evt-muted); margin-top: 0.25rem; }
.newerp-evt-when-summary__range { font-size: 0.72rem; color: var(--evt-muted); margin-top: 0.4rem; }

.newerp-evt-item__body { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.newerp-evt-item__eyebrow--when { display: none; }
.newerp-evt-item__eyebrow { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--evt-accent); margin-bottom: 0.6rem; }
.newerp-evt .newerp-evt-item__title {
  font-family: "SF Pro Display","Inter",-apple-system,"Segoe UI",serif !important;
  font-size: 22px !important; font-weight: 600 !important;
  line-height: 1.15 !important; letter-spacing: -0.015em; margin: 0 0 0.7rem !important;
}
.newerp-evt .newerp-evt-item__title a { color: var(--evt-ink) !important; font-size: inherit !important; transition: color .2s; }
.newerp-evt .newerp-evt-item__title a:hover { color: var(--evt-accent) !important; }
.newerp-evt-item__sub { font-size: 0.97rem; line-height: 1.6; color: var(--evt-muted); margin: 0 0 1.2rem; max-width: 60ch; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.newerp-evt-item__foot { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.newerp-evt-item__price { font-size: 1.25rem; font-weight: 600; color: var(--evt-ink); }
.newerp-evt-item__price-unit { font-size: 0.68rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--evt-muted); margin-left: 0.4rem; }
.newerp-evt a.newerp-btn--primary, .newerp-evt .newerp-btn--primary { color: #fff !important; }
/* <a> and <button> CTAs must look identical (the theme kit only paints <button>). */
.newerp-evt a.newerp-evt-item__cta.newerp-btn--primary, .newerp-evt button.newerp-evt-item__cta.newerp-btn--primary { background: var(--newerp-primary, var(--evt-accent)) !important; border: 1px solid var(--newerp-primary, var(--evt-accent)) !important; color: #fff !important; display: inline-flex; align-items: center; justify-content: center; }
.newerp-evt .newerp-evt-item__cta { padding: 0.6rem 1.6rem; font-size: 0.68rem !important; letter-spacing: 0.08em; }
.newerp-evt-item__media { display: block; overflow: hidden; border-radius: 14px; aspect-ratio: 4 / 3; background: #222; }
.newerp-evt-item__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.6,.2,1); }
.newerp-evt-item__media:hover img { transform: scale(1.05); }

/* ── Month view: fixed-size cells, type-coloured pills, hover tooltip ── */
.newerp-evt-month__header { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.newerp-evt-month__dow { text-align: center; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--evt-muted); padding: 0 0 0.7rem; }
.newerp-evt-month__grid {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); /* minmax(0,..) stops content from blowing out track widths on hover */
  gap: 1px; background: var(--evt-border); border: 1px solid var(--evt-border); border-radius: 12px; overflow: hidden;
}
/* let the hover popover escape the grid's rounded-corner clip (only while hovering) */
.newerp-evt-month__grid:has(.newerp-evt-month__event:hover) { overflow: visible; }
.newerp-evt-month__cell {
  background: var(--evt-bg); min-height: 9.5rem; padding: 0.6rem; position: relative;
  display: flex; flex-direction: column; gap: 0.3rem; overflow: visible;
}
.newerp-evt-month__cell--empty { background: color-mix(in srgb, var(--evt-bg) 55%, transparent); }
.newerp-evt-month__cell.is-today { box-shadow: inset 0 0 0 2px var(--evt-accent); }
.newerp-evt-month__cell.is-today .newerp-evt-month__daynum { color: var(--evt-accent); font-weight: 700; }
.newerp-evt-month__daynum { font-size: 0.82rem; font-weight: 600; color: var(--evt-muted); }
.newerp-evt-month__events { display: flex; flex-direction: column; gap: 0.25rem; }
.newerp-evt a.newerp-evt-month__event {
  position: relative; display: flex; align-items: flex-start; gap: 0.35rem;
  padding: 0.28rem 0.45rem; border-radius: 6px; background: rgba(255,255,255,0.06);
  color: var(--evt-ink) !important; font-size: 0.72rem; line-height: 1.3;
  transition: background .2s;
}
.newerp-evt-month__event:hover { background: rgba(255,255,255,0.14); }
.newerp-evt-month__event-dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; background: var(--evt-accent); }
.newerp-evt-month__event--tour .newerp-evt-month__event-dot { background: var(--evt-tour); }
.newerp-evt-month__event--event .newerp-evt-month__event-dot { background: var(--evt-event); }
.newerp-evt-month__event-time { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--evt-muted); flex: 0 0 auto; }
/* wrap the name to ~2 lines so it's legible without hovering; cells auto-grow to fit */
.newerp-evt-month__event-name {
  flex: 1; min-width: 0; white-space: normal; overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.newerp-evt-month__event.is-soldout { opacity: 0.5; }
.newerp-evt-month__event.is-soldout .newerp-evt-month__event-name { text-decoration: line-through; }
/* hover tooltip */
.newerp-evt-month__tip {
  position: absolute; bottom: calc(100% + 6px); left: 0; z-index: 20;
  background: #0c0c0c; color: #fff; border: 1px solid var(--evt-border);
  padding: 0.4rem 0.6rem; border-radius: 8px; font-size: 0.72rem; white-space: nowrap;
  box-shadow: 0 8px 24px rgba(0,0,0,.5); opacity: 0; pointer-events: none; transition: opacity .15s;
}
.newerp-evt-month__event:hover .newerp-evt-month__tip { opacity: 1; }

@media (max-width: 900px) {
  .newerp-evt-item { grid-template-columns: 5rem 1fr; gap: 1.1rem; padding: 1.5rem 0; }
  .newerp-evt-item__media { grid-column: 1 / -1; aspect-ratio: 16/9; margin-top: 0.5rem; }
  .newerp-evt-month__cell { min-height: 4rem; }
  .newerp-evt-month__event-name { display: none; }
  .newerp-evt-month__tip { display: none; }
}

/* ══ Events: search panel + results bar + month hover popover ════════════ */
/* Floating collapsible search panel (native <details>) */
.newerp-evt-search {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60;
  width: 310px; max-width: calc(100vw - 2rem);
  background: var(--newerp-bg-card, #1b1b1b);
  border: 1px solid var(--newerp-border, #2a2a2a);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
  color: var(--newerp-text, #f3f5f9);
  font-family: var(--newerp-font, inherit);
  overflow: hidden;
}
.newerp-evt-search__head {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.9rem 1.1rem; font-weight: 700; font-size: 0.9rem;
  background: linear-gradient(180deg, rgba(177,155,106,.18), rgba(177,155,106,.06));
}
.newerp-evt-search__head::-webkit-details-marker { display: none; }
.newerp-evt-search__title { letter-spacing: 0.02em; }
.newerp-evt-search__chev { transition: transform .2s; color: var(--newerp-accent, #B19B6A); display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; line-height: 0; }
.newerp-evt-search__chev svg { width: 16px; height: 16px; display: block; }
.newerp-evt-search[open] .newerp-evt-search__chev { transform: rotate(180deg); }
.newerp-evt-search__form { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: 0.85rem; }
.newerp-evt-search__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.newerp-evt-search__field { display: flex; flex-direction: column; gap: 0.3rem; }
.newerp-evt-search__field label { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--newerp-text-muted, #a8b0bf); }
.newerp-evt-search__field input {
  background: var(--newerp-bg-input, #1f1f1f); border: 1px solid var(--newerp-border, #2a2a2a);
  border-radius: 9px; padding: 0.55rem 0.7rem; color: var(--newerp-text, #f3f5f9); font-size: 0.9rem;
}
.newerp-evt-search__field input:focus { outline: none; border-color: var(--newerp-accent, #B19B6A); }
/* date/time picker indicators are dark by default — invert to white on the dark panel */
.newerp-evt-search__field input::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.85; cursor: pointer; }
.newerp-evt-search__actions { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.25rem; }
.newerp-evt-search__clear { color: var(--newerp-text-muted, #a8b0bf) !important; font-size: 0.8rem; white-space: nowrap; }

/* Results bar */
.newerp-evt-results-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 0.8rem 1.1rem; margin-bottom: 1.5rem;
  background: rgba(177,155,106,.1); border: 1px solid var(--newerp-border, #2a2a2a); border-radius: 12px;
}
.newerp-evt-results-bar__label { font-size: 0.95rem; color: var(--newerp-text, #f3f5f9); }
.newerp-evt-results-bar__count { color: var(--newerp-text-muted, #a8b0bf); margin-left: 0.3rem; }
.newerp-evt-results-bar__clear { color: var(--newerp-accent, #B19B6A) !important; font-size: 0.85rem; font-weight: 600; }

/* Month hover popover card */
.newerp-evt-month__cell:has(.newerp-evt-month__event:hover) { overflow: visible; z-index: 50; }
.newerp-evt-month__cell:has(.newerp-evt-month__event:hover) .newerp-evt-month__events { overflow: visible; }
.newerp-evt-pop {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 60;
  width: 260px; display: none; flex-direction: column;
  background: #0e0e0e; border: 1px solid var(--newerp-border, #2a2a2a); border-radius: 12px; overflow: hidden;
  box-shadow: 0 16px 44px rgba(0,0,0,.6); text-align: left;
}
.newerp-evt-month__event:hover .newerp-evt-pop { display: flex; }
.newerp-evt-pop__media { display: block; height: 96px; background: #222; }
.newerp-evt-pop__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.newerp-evt-pop__body { padding: 0.7rem 0.85rem; display: flex; flex-direction: column; gap: 0.25rem; }
.newerp-evt-pop__eyebrow { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--newerp-accent, #B19B6A); }
.newerp-evt-pop__title { font-size: 0.95rem; font-weight: 600; color: var(--newerp-text, #f3f5f9); line-height: 1.2; }
.newerp-evt-pop__sub { font-size: 0.76rem; color: var(--newerp-text-muted, #a8b0bf); line-height: 1.35; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.newerp-evt-pop__meta { font-size: 0.76rem; color: var(--newerp-text-muted, #a8b0bf); margin-top: 0.15rem; }
.newerp-evt-pop__avail { font-size: 0.72rem; font-weight: 700; color: #7fae9a; margin-top: 0.1rem; }
.newerp-evt-pop__avail.is-soldout { color: #d98a5c; }

@media (max-width: 640px) {
  /* Centered on phones (left/right symmetric; width:auto so max-width can't shove it right). */
  .newerp-evt-search { left: 0.75rem; right: 0.75rem; bottom: 0.5rem; width: auto; max-width: none; }
}

/* All shortcode pages (body.newerp-page) use the site's overlay header (Hub "Main
   Header", same as Tours & the content pages). The header floats over the page, so the
   main area is painted dark and starts below the header's height. */
body.newerp-page #lqd-site-content { background: var(--newerp-bg, #171717); padding-top: calc(94px + 1.5rem); padding-bottom: 3rem; min-height: calc(100vh - 160px); }
/* 2026-10-30 用户反馈: 账户等短页面内容区太矮, 页脚紧贴内容像挤在一屏 → 内容区至少撑满一屏, 账户区加大上下留白 */
body.newerp-page .newerp-account { padding-top: 3rem; padding-bottom: 4rem; }
body.newerp-page .newerp-auth-gate { padding-top: 5rem; padding-bottom: 6rem; }
@media (max-width: 767px) {
  body.newerp-page #lqd-site-content { padding-top: calc(54px + 1rem); }
}
body.newerp-page .newerp-evt { padding-top: 0.5rem; }

/* Events: header name-search + guests stepper */
.newerp-evt__namesearch {
  display: flex; align-items: center; height: 2.5rem;
  background: rgba(0,0,0,0.25); border: 1px solid var(--evt-border, #2a2a2a); border-radius: 999px; overflow: hidden;
}
.newerp-evt__namesearch input {
  background: transparent; border: 0; color: var(--evt-ink, #f3f5f9);
  padding: 0 0.9rem; width: 11rem; height: 100%; font-size: 0.78rem;
}
.newerp-evt__namesearch input::placeholder { color: var(--evt-muted, #a8b0bf); }
.newerp-evt__namesearch input:focus { outline: none; }
.newerp-evt__namesearch button {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  color: var(--evt-muted, #a8b0bf); padding: 0 0.8rem; height: 100%; cursor: pointer; font-size: 0.9rem;
}
.newerp-evt__namesearch button:hover { color: var(--evt-accent, #B19B6A); background: transparent !important; }

.newerp-evt-stepper { display: flex; align-items: stretch; }
.newerp-evt-stepper__btn {
  width: 2.5rem; flex: 0 0 auto; cursor: pointer; font-size: 1.15rem; line-height: 1;
  background: var(--newerp-bg-input, #1f1f1f); border: 1px solid var(--newerp-border, #2a2a2a);
  color: var(--newerp-text, #f3f5f9);
}
.newerp-evt-stepper__btn:first-child { border-radius: 9px 0 0 9px; }
.newerp-evt-stepper__btn:last-child { border-radius: 0 9px 9px 0; }
.newerp-evt-stepper__btn:hover { border-color: var(--newerp-accent, #B19B6A); color: var(--newerp-accent, #B19B6A); }
.newerp-evt-stepper input {
  flex: 1; min-width: 0; text-align: center; border-radius: 0 !important; border-left: 0 !important; border-right: 0 !important;
  -moz-appearance: textfield; appearance: textfield;
}
.newerp-evt-stepper input::-webkit-outer-spin-button,
.newerp-evt-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Month "+N more" fold (days with >6 events) */
.newerp-evt a.newerp-evt-month__more {
  display: block; margin-top: 0.1rem; padding: 0.2rem 0.45rem;
  font-size: 0.7rem; font-weight: 700; color: var(--evt-accent, #B19B6A) !important;
  border-radius: 6px; background: rgba(177,155,106,0.1);
}
.newerp-evt-month__more:hover { background: rgba(177,155,106,0.2); }

/* ── Booking: member complimentary-visit banner + in-page sign-in modal ── */
.newerp-experience-detail__member-note {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--newerp-primary, #B19B6A);
  margin-top: 0.4rem;
}
.newerp-member-banner-wrap { margin: 0 0 1.1rem; }
.newerp-member-banner {
  display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap;
  padding: 0.85rem 1.1rem; border-radius: var(--newerp-radius-sm, 10px);
  font-size: 0.92rem; line-height: 1.45;
  border: 1px solid var(--newerp-border, #2a2a2a);
}
.newerp-member-banner--ok {
  color: #d8e3dc; background: rgba(4,120,87,0.14); border-color: rgba(4,120,87,0.45);
}
.newerp-member-banner--info {
  color: var(--newerp-text-muted, #a8b0bf); background: rgba(177,155,106,0.08);
}
.newerp-member-banner--prompt {
  color: var(--newerp-text, #f3f5f9); background: rgba(177,155,106,0.10);
  border-color: rgba(177,155,106,0.35); justify-content: space-between;
}
.newerp-btn--ghost {
  background: transparent; border: 1px solid var(--newerp-primary, #B19B6A);
  color: var(--newerp-primary, #B19B6A); border-radius: 999px; cursor: pointer;
}
.newerp-btn--ghost:hover { background: rgba(177,155,106,0.14); }
.newerp-btn--sm { padding: 0.4rem 1.1rem; font-size: 0.78rem; letter-spacing: 0.04em; }

.newerp-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.newerp-modal[hidden] { display: none; }
.newerp-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.62); backdrop-filter: blur(2px); }
.newerp-modal__panel {
  position: relative; width: min(420px, calc(100vw - 2.5rem));
  background: var(--newerp-bg-card, #1b1b1b); color: var(--newerp-text, #f3f5f9);
  border: 1px solid var(--newerp-border, #2a2a2a); border-radius: var(--newerp-radius, 14px);
  box-shadow: var(--newerp-shadow, 0 14px 40px rgba(0,0,0,.55)); padding: 1.8rem 1.6rem;
}
.newerp-modal__close {
  position: absolute; top: 0.7rem; right: 0.9rem; background: none; border: 0;
  color: var(--newerp-text-muted, #a8b0bf); font-size: 1.7rem; line-height: 1; cursor: pointer;
}
.newerp-modal__close:hover { color: var(--newerp-text, #f3f5f9); }
.newerp-modal__title { margin: 0 0 0.3rem; font-size: 1.4rem; color: var(--newerp-text, #f3f5f9); }
.newerp-modal__sub { margin: 0 0 1.2rem; font-size: 0.9rem; color: var(--newerp-text-muted, #a8b0bf); }
.newerp-modal__foot { margin: 1rem 0 0; text-align: center; font-size: 0.85rem; }

/* ── Experience detail: single-column editorial / article layout ──────── */
.newerp-exp-detail { margin-bottom: 3rem; }

.newerp-exp-hero {
  width: 100%; border-radius: var(--newerp-radius, 14px); overflow: hidden; margin-bottom: 2rem;
}
.newerp-exp-hero img { width: 100%; display: block; aspect-ratio: 16 / 7; object-fit: cover; }
.newerp-exp-detail--event .newerp-exp-hero img { aspect-ratio: 16 / 6; }

.newerp-exp-wrap { max-width: 760px; margin: 0 auto; }

.newerp-exp-head { text-align: center; margin-bottom: 0.4rem; }
.newerp-exp-eyebrow {
  display: inline-block; font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--newerp-primary, #B19B6A); margin-bottom: 0.7rem;
}
.newerp-exp-eyebrow__dot { margin: 0 0.45rem; opacity: 0.55; }
.newerp-exp-title {
  font-size: clamp(1.9rem, 4vw, 2.7rem); line-height: 1.15; margin: 0 0 0.7rem;
  color: var(--newerp-text, #f3f5f9);
}
.newerp-exp-sub {
  font-size: 1.1rem; color: var(--newerp-text-muted, #a8b0bf); line-height: 1.55;
  margin: 0 auto 1.2rem; max-width: 56ch;
}
.newerp-exp-meta { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }

/* Booking bar — horizontal, works in a single column */
.newerp-exp-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  padding: 1.05rem 1.4rem; background: var(--newerp-bg-card, #1b1b1b);
  border: 1px solid var(--newerp-border, #2a2a2a); border-radius: var(--newerp-radius, 14px);
}
.newerp-exp-cta--top { margin: 1.8rem 0 0.5rem; }
.newerp-exp-cta__price { display: flex; align-items: baseline; gap: 0.5rem; }
.newerp-exp-cta__price strong { font-size: 1.7rem; font-weight: 700; color: var(--newerp-primary, #B19B6A); }
.newerp-exp-cta__price span { font-size: 0.85rem; color: var(--newerp-text-muted, #a8b0bf); }
.newerp-exp-cta .newerp-btn { white-space: nowrap; }
.newerp-exp-membernote {
  font-size: 0.85rem; color: var(--newerp-text-muted, #a8b0bf); margin: 0.6rem 0 0; text-align: center;
}

/* Article body — rich content with inline images flowing naturally */
.newerp-exp-content { margin: 2.2rem 0; line-height: 1.8; font-size: 1.02rem; color: var(--newerp-text, #f3f5f9); }
.newerp-exp-content > *:first-child { margin-top: 0; }
.newerp-exp-content p { margin: 0 0 1.3rem; }
.newerp-exp-content h2, .newerp-exp-content h3, .newerp-exp-content h4 { color: var(--newerp-text, #f3f5f9); line-height: 1.25; margin: 2rem 0 0.8rem; }
.newerp-exp-content h2 { font-size: 1.5rem; }
.newerp-exp-content h3 { font-size: 1.22rem; }
.newerp-exp-content a { color: var(--newerp-primary, #B19B6A); text-decoration: underline; }
.newerp-exp-content img { width: 100%; height: auto; border-radius: var(--newerp-radius, 14px); display: block; margin: 1.6rem 0; }
.newerp-exp-content figure { margin: 1.6rem 0; }
.newerp-exp-content figure img { margin: 0; }
.newerp-exp-content figcaption { font-size: 0.85rem; color: var(--newerp-text-muted, #a8b0bf); text-align: center; margin-top: 0.55rem; }
.newerp-exp-content blockquote {
  margin: 1.6rem 0; padding: 0.5rem 0 0.5rem 1.3rem;
  border-left: 3px solid var(--newerp-primary, #B19B6A); color: var(--newerp-text-muted, #a8b0bf); font-style: italic;
}
.newerp-exp-content ul, .newerp-exp-content ol { margin: 0 0 1.3rem 1.4rem; }
.newerp-exp-content li { margin-bottom: 0.45rem; }
.newerp-exp-content hr { border: 0; border-top: 1px solid var(--newerp-border, #2a2a2a); margin: 2rem 0; }

.newerp-exp-section { margin: 2rem 0; }
.newerp-exp-section h3 { font-size: 1.2rem; color: var(--newerp-primary, #B19B6A); margin: 0 0 0.5rem; }
.newerp-exp-section p { line-height: 1.7; color: var(--newerp-text, #f3f5f9); }

.newerp-exp-foot-hint { text-align: center; margin-top: 2rem; }

@media (max-width: 640px) {
  .newerp-exp-hero img, .newerp-exp-detail--event .newerp-exp-hero img { aspect-ratio: 4 / 3; }
  .newerp-exp-cta { flex-direction: column; align-items: stretch; text-align: center; }
  .newerp-exp-cta .newerp-btn { width: 100%; }
}

/* ── Closed / past EVENT treatment (still listed, not bookable) ───────── */
.newerp-exp-closed {
  margin: 1.8rem 0 0.5rem; padding: 1rem 1.4rem; text-align: center;
  background: var(--newerp-bg-card, #1b1b1b); border: 1px dashed var(--newerp-border, #2a2a2a);
  border-radius: var(--newerp-radius, 14px); color: var(--newerp-text-muted, #a8b0bf); font-size: 0.95rem;
}
.newerp-evt-item.is-closed { opacity: 0.85; }
/* Outline CTA ("View details" on past/closed events, "Clear search"): the default
   1px #2a2a2a border vanishes on the dark page → gold outline, filled on hover. */
.newerp-evt .newerp-evt-item__cta.newerp-btn--outline { background: transparent !important; border: 1px solid var(--evt-accent) !important; color: var(--evt-accent) !important; }
.newerp-evt .newerp-evt-item__cta.newerp-btn--outline:hover { background: var(--evt-accent) !important; color: #fff !important; }
.newerp-evt-month__event.is-closed { opacity: 0.5; }
.newerp-evt-pop__avail.is-closed { color: var(--newerp-text-muted, #a8b0bf); }

/* ── Booking add-ons ─────────────────────────────────────────────────── */
.newerp-addons { display: flex; flex-direction: column; gap: 0.6rem; }
.newerp-addon {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0.75rem 1rem; border: 1px solid var(--newerp-border, #2a2a2a);
  border-radius: var(--newerp-radius-sm, 10px); background: var(--newerp-bg-card, #1b1b1b);
}
.newerp-addon__info { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.newerp-addon__name { font-weight: 600; color: var(--newerp-text, #f3f5f9); }
.newerp-addon__desc { font-size: 0.82rem; color: var(--newerp-text-muted, #a8b0bf); }
.newerp-addon__price { font-size: 0.9rem; color: var(--newerp-primary, #B19B6A); font-weight: 600; }
.newerp-addon__qty { flex-shrink: 0; }

/* ── Quick-book modal ────────────────────────────────────────────────── */
.newerp-bookmodal__panel { width: min(440px, calc(100vw - 2rem)); max-height: 90vh; overflow-y: auto; padding: 1.75rem 1.75rem 1.9rem; }
/* Injected at <body>, outside the themed scope — set colors explicitly. */
.newerp-bookmodal .newerp-modal__title { color: var(--newerp-text, #f3f5f9); margin: 0 0 1rem; padding-bottom: 0.9rem; border-bottom: 1px solid var(--newerp-border, #2a2a2a); }
.newerp-bookmodal__guests { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: 0.4rem 0 1.1rem; border-bottom: 1px solid var(--newerp-border, #2a2a2a); }
.newerp-bookmodal__label { font-weight: 600; color: var(--newerp-text, #f3f5f9); }
.newerp-bookmodal .newerp-calendar { background: transparent; border: 0; padding: 1.1rem 0; }
.newerp-bookmodal .newerp-calendar__title { color: var(--newerp-text, #f3f5f9); font-weight: 600; }
.newerp-bookmodal .newerp-calendar__day-header { color: var(--newerp-text-muted, #a8b0bf); }
.newerp-bookmodal__slots { margin: 0; padding-top: 1.1rem; border-top: 1px solid var(--newerp-border, #2a2a2a); }
.newerp-bookmodal__slots .newerp-time-slots { display: flex; flex-wrap: wrap; gap: 0.5rem; }
/* Time slots — explicit colors + readable hover (was invisible on theme hover). */
.newerp-bookmodal .newerp-time-slot { background: var(--newerp-bg-input, #1f1f1f); color: var(--newerp-text, #f3f5f9); padding: 0.6rem 1.1rem; }
.newerp-bookmodal .newerp-time-slot:hover { background: rgba(177,155,106,0.16); color: var(--newerp-primary, #B19B6A); border-color: var(--newerp-primary, #B19B6A); }
.newerp-bookmodal .newerp-time-slot.is-selected { background: var(--newerp-primary, #B19B6A); color: #1a1a1a; border-color: var(--newerp-primary, #B19B6A); }
.newerp-bookmodal [data-bm-continue] { margin-top: 1.4rem; }
/* Dated events: scheduled occurrence list replaces the month calendar */
.newerp-bookmodal__occ { display: flex; flex-direction: column; gap: 0.5rem; }
.newerp-bookmodal__occ-row { display: flex; align-items: center; gap: 0.75rem; width: 100%; text-align: left; padding: 0.8rem 1rem; border: 1px solid var(--newerp-border, #2a2a2a); border-radius: 10px; background: var(--newerp-bg-input, #1f1f1f); color: var(--newerp-text, #f3f5f9); cursor: pointer; font: inherit; }
.newerp-bookmodal__occ-row:hover { border-color: var(--newerp-primary, #B19B6A); background: rgba(177,155,106,0.16); }
.newerp-bookmodal__occ-row.is-selected { border-color: var(--newerp-primary, #B19B6A); background: var(--newerp-primary, #B19B6A); color: #1a1a1a; }
.newerp-bookmodal__occ-date { font-weight: 600; flex: 0 0 auto; }
.newerp-bookmodal__occ-time { flex: 1 1 auto; opacity: 0.9; }
.newerp-bookmodal__occ-left { flex: 0 0 auto; font-size: 0.8rem; opacity: 0.75; }
.newerp-bookmodal__occ-row.is-selected .newerp-bookmodal__occ-left { opacity: 0.85; }
/* Bigger, easier-to-tap month nav arrows */
.newerp-bookmodal .newerp-calendar__header { gap: 0.5rem; }
.newerp-bookmodal [data-bm-nav] {
  font-size: 1.7rem; line-height: 1; padding: 0.1rem 0.6rem;
  min-width: 46px; min-height: 40px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--newerp-primary, #B19B6A); background: rgba(177,155,106,0.10);
  border: 1px solid var(--newerp-border, #2a2a2a); cursor: pointer;
  text-decoration: none;
}
.newerp-bookmodal [data-bm-nav]:hover { background: rgba(177,155,106,0.22); border-color: var(--newerp-primary, #B19B6A); }

/* Booking "your selection" summary (when arriving from the modal) */
.newerp-booking-when { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.newerp-booking-when__row { display: flex; flex-direction: column; gap: 0.2rem; }
.newerp-booking-when__val { font-weight: 600; font-size: 1.05rem; color: var(--newerp-text, #f3f5f9); }
.newerp-booking-when__guests { font-size: 0.88rem; color: var(--newerp-text-muted, #a8b0bf); }

/* ── Fill viewport on short detail/booking/payment pages (push footer below fold) ── */
.newerp-booking, .newerp-exp-detail, .pc-product { min-height: 100vh; }


/* ── Booking page: one-page checkout (gratuity / summary / policy) ───────── */
.newerp-checkout__subtitle { margin: -0.5rem 0 1.5rem; color: var(--newerp-text-muted); font-size: 0.95rem; }
.newerp-tip { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.newerp-tip__opt { flex: 1 1 110px; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 0.65rem 0.5rem; border: 1px solid var(--newerp-border); border-radius: 6px; background: transparent; color: var(--newerp-text); cursor: pointer; font: inherit; transition: border-color .15s, background .15s; }
.newerp-tip__opt:hover { border-color: var(--newerp-primary); }
.newerp-tip__opt.is-selected { border-color: var(--newerp-primary); background: color-mix(in srgb, var(--newerp-primary) 14%, transparent); }
.newerp-tip__pct { font-weight: 600; }
.newerp-tip__amt { font-size: 0.8rem; color: var(--newerp-text-muted); }
.newerp-tip__custom { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.75rem; max-width: 200px; }
.newerp-tip__custom input { flex: 1; }
.newerp-booking-policy { margin-top: 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--newerp-border); border-radius: 8px; font-size: 0.88rem; color: var(--newerp-text-muted); }
.newerp-booking-policy h3 { margin: 0 0 0.35rem; font-size: 0.95rem; color: var(--newerp-text); }
.newerp-booking-policy p { margin: 0; line-height: 1.55; }
.newerp-summary-sel { display: flex; flex-direction: column; gap: 2px; padding-bottom: 0.85rem; margin-bottom: 0.85rem; border-bottom: 1px solid var(--newerp-border); font-size: 0.92rem; color: var(--newerp-text-muted); }
.newerp-summary-sel strong { color: var(--newerp-text); font-size: 1rem; }
.newerp-summary-heading { margin: 0 0 0.35rem; font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--newerp-text-muted); }
.newerp-checkout__total-row--sub { border-top: 1px solid var(--newerp-border); margin-top: 0.35rem; padding-top: 0.6rem; }
.newerp-checkout__total-row--tax-item { padding: 0 0 0.25rem; font-size: 0.8rem; }
.newerp-checkout__total-row--tax-item dt, .newerp-checkout__total-row--tax-item dd { color: var(--newerp-text-muted); font-weight: 400; }
.newerp-checkout__total-row--due dt { color: var(--newerp-text); font-weight: 600; }
/* Theme kit paints every <button> gold; keep gratuity chips neutral until selected. */
.newerp-tasting .newerp-tip .newerp-tip__opt { background: transparent !important; color: var(--newerp-text) !important; border: 1px solid var(--newerp-border) !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; }
.newerp-tasting .newerp-tip .newerp-tip__opt:hover { border-color: var(--newerp-primary) !important; }
.newerp-tasting .newerp-tip .newerp-tip__opt.is-selected { background: var(--newerp-primary) !important; color: #141414 !important; border-color: var(--newerp-primary) !important; }
.newerp-tasting .newerp-tip .newerp-tip__opt.is-selected .newerp-tip__amt { color: #141414; opacity: .75; }


/* ── Events page: empty state + tastings/tours recommendations ─────────── */
.newerp-evt__empty { display: flex; flex-direction: column; align-items: center; gap: 0.9rem; }
.newerp-evt__empty-msg { margin: 0; font-size: 1.05rem; }
.newerp-evt-reco { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--evt-border); }
.newerp-evt-reco--empty { margin-top: 2.5rem; }
.newerp-evt-reco__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 0.5rem; }
.newerp-evt-reco__title { margin: 0.25rem 0 0.35rem; font-size: 1.7rem; line-height: 1.15; color: var(--evt-ink); }
.newerp-evt-reco__lede { margin: 0; color: var(--evt-muted); font-size: 0.95rem; max-width: 60ch; }
.newerp-evt-reco__all { color: var(--evt-accent); text-decoration: none; font-size: 0.9rem; white-space: nowrap; padding-bottom: 0.3rem; }
.newerp-evt-reco__all:hover { text-decoration: underline; }
.newerp-evt-reco__list { display: flex; flex-direction: column; }
.newerp-evt-reco__row { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 1.6rem; align-items: center; padding: 1.4rem 0; border-top: 1px solid var(--evt-border); }
.newerp-evt-reco__row:first-child { border-top: 0; }
.newerp-evt-reco__media { display: block; aspect-ratio: 3 / 2; border-radius: 12px; overflow: hidden; background: #222; }
.newerp-evt-reco__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.6,.2,1); }
.newerp-evt-reco__media:hover img { transform: scale(1.05); }
.newerp-evt-reco__body { min-width: 0; }
.newerp-evt-reco__body .newerp-evt-item__eyebrow { margin-bottom: 0.35rem; display: block; }
.newerp-evt-reco__name { margin: 0 0 0.3rem; font-size: 1.25rem; line-height: 1.25; }
.newerp-evt-reco__name a { color: var(--evt-ink); text-decoration: none; }
.newerp-evt-reco__name a:hover { color: var(--evt-accent); }
.newerp-evt-reco__sub { margin: 0 0 0.6rem; font-size: 0.93rem; line-height: 1.55; color: var(--evt-muted); max-width: 60ch; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.newerp-evt-reco__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem 1.1rem; font-size: 0.82rem; color: var(--evt-muted); }
.newerp-evt-reco__side { display: flex; flex-direction: column; align-items: flex-end; gap: 0.7rem; text-align: right; }
.newerp-evt-reco__side .newerp-evt-item__price { line-height: 1.1; display: flex; flex-direction: column; align-items: flex-end; }
.newerp-evt-reco__side .newerp-evt-item__price-unit { margin-left: 0; margin-top: 0.15rem; }
.newerp-evt-reco__side .newerp-evt-item__cta { white-space: nowrap; }
@media (max-width: 760px) {
  .newerp-evt-reco__head { flex-direction: column; align-items: flex-start; }
  .newerp-evt-reco__row { grid-template-columns: 1fr; gap: 0.9rem; }
  .newerp-evt-reco__side { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
  /* Price on one line: "$45 / per guest" */
  .newerp-evt-reco__side .newerp-evt-item__price { flex-direction: row; align-items: baseline; gap: 0.35rem; text-align: left; }
  .newerp-evt-reco__side .newerp-evt-item__price-unit { margin: 0; }
  .newerp-evt-reco__side .newerp-evt-item__price-unit::before { content: "/ "; }
}


/* ── Mobile bottom bar (site-wide, ≤767px) ─────────────────────────────── */
:root { --newerp-mbar-h: 62px; }
.newerp-mbar { display: none; }
@media (max-width: 767px) {
  .newerp-mbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 99990;
    display: grid; grid-template-columns: repeat(5, 1fr);
    height: calc(var(--newerp-mbar-h) + env(safe-area-inset-bottom, 0px));
    padding: 0 0.25rem env(safe-area-inset-bottom, 0px);
    background: rgba(20, 20, 20, 0.92);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    border-top: 1px solid rgba(177, 155, 106, 0.28);
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.45);
    font-family: var(--newerp-font, inherit);
  }
  .newerp-mbar__item {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    color: rgba(243, 245, 249, 0.62) !important; text-decoration: none !important; -webkit-tap-highlight-color: transparent;
    position: relative; transition: color .15s;
  }
  .newerp-mbar__item.is-active { color: var(--newerp-accent, #B19B6A) !important; }
  .newerp-mbar__item.is-active::before { content: ""; position: absolute; top: 0; left: 22%; right: 22%; height: 2px; border-radius: 0 0 2px 2px; background: var(--newerp-accent, #B19B6A); }
  .newerp-mbar__icon { position: relative; display: inline-flex; line-height: 0; }
  .newerp-mbar__label { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1; }
  .newerp-mbar__badge { position: absolute; top: -5px; right: -9px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--newerp-accent, #B19B6A); color: #141414; font-size: 0.62rem; font-weight: 700; line-height: 16px; text-align: center; }
  /* Make room for the bar; keep floating UI (events search panel) above it. */
  body { padding-bottom: calc(var(--newerp-mbar-h) + env(safe-area-inset-bottom, 0px)) !important; }
  .newerp-evt-search { bottom: calc(var(--newerp-mbar-h) + env(safe-area-inset-bottom, 0px) + 0.6rem) !important; z-index: 99980; }
  .newerp-evt-search[open] { max-height: calc(100vh - var(--newerp-mbar-h) - env(safe-area-inset-bottom, 0px) - 5rem); overflow: auto; }
}


/* Elementor only enqueues per-widget CSS on Elementor-built pages. Our shortcode pages
   (events / booking / shop …) still render the Hub header template, whose spacer widget
   collapses without it — the mobile header then slides off-screen. Inline the rule. */
.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}.e-con{--container-widget-width:100%}.e-con-inner>.elementor-widget-spacer,.e-con>.elementor-widget-spacer{width:var(--container-widget-width,var(--spacer-size));--align-self:var( --container-widget-align-self,initial );--flex-shrink:0}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,.e-con>.elementor-widget-spacer>.elementor-widget-container{height:100%;width:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer,.e-con>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer:not(:has(>.elementor-widget-container))>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty,.e-con>.elementor-widget-spacer.elementor-widget-empty{min-height:22px;min-width:22px;position:relative}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon,.e-con>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon{height:22px;inset:0;margin:auto;padding:0;position:absolute;width:22px}

/* Deactivated (not bookable) tasting/tour on the recommendations: muted outline, links to details. */
.newerp-evt .newerp-evt-item__cta.is-unavailable { opacity: 0.6; }

/* 订单确认页: 捆绑产品所含明细 */
.newerp-order-confirmation__item-sub { display: block; font-size: 0.82rem; color: var(--newerp-text-muted, #a8b0bf); margin-top: 2px; }

/* Phone OTP: country code + national number (2026-10-24) */
.newerp-phone-row { display: flex; gap: 8px; }
.newerp-form__group input.newerp-phone-row__code {
  flex: 0 0 auto; width: 76px; text-align: center; padding-left: 8px; padding-right: 8px;
}
.newerp-phone-row__number { flex: 1 1 auto; min-width: 0; }
.newerp-form__hint { margin: 8px 0 0; font-size: 13px; color: var(--newerp-text-muted); }
