/*
 * Luxe theme. Loaded ONLY for stores on this theme: pages/_document.tsx links
 * /themes/<file>.css (public/themes) by `customization.current_template`, so other
 * stores never download it. Plain CSS (no Tailwind directives, no build step):
 * every rule must stay scoped under the theme class. Scope: .theme-luxe.
 */

/*
 * Luxe template — design-system layer.
 *
 * Every rule is scoped under `.theme-luxe`, the class `pages/_app.tsx` puts on
 * its wrapper when `store.customization.current_template === 'Luxe'`, so
 * nothing here can reach a non-Luxe store. Keyframes are `lx-`-prefixed.
 *
 * Luxe never overrides the palette or the font: colour comes from the store
 * theme (`--color-primary-*`, set from Appearance) and type from `--font`.
 * What Luxe owns is the SHAPE of the UI, taken from BrocadeVideoHero and
 * SplitGate: full-bleed plates, square corners, uppercase wide-tracked labels,
 * hairline rules, a hairline underline that grows on hover, a slow 1.02 image
 * zoom, dark vignettes over imagery, and no drop shadows.
 *
 * Mirrored verbatim in blanxer_admin/src/styles/themes/luxe.css (minus the
 * document-level block, which would repaint the dashboard).
 */

.theme-luxe {
  --lx-ink: var(--color-primary-900);
  --lx-ink-soft: color-mix(in srgb, var(--color-primary-900) 62%, transparent);
  --lx-ink-mute: color-mix(in srgb, var(--color-primary-900) 45%, transparent);
  --lx-hair: color-mix(in srgb, var(--color-primary-900) 12%, transparent);
  --lx-hair-strong: color-mix(in srgb, var(--color-primary-900) 24%, transparent);
  --lx-paper: #ffffff;
  --lx-wash: color-mix(in srgb, var(--color-primary-50) 55%, #ffffff);
  --lx-accent: var(--color-primary-600);
  --lx-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lx-slow: 700ms;
  --lx-mid: 500ms;
  --lx-fast: 250ms;
  --lx-gutter: clamp(16px, 4vw, 56px);
}

.dark .theme-luxe,
.theme-luxe.dark {
  --lx-paper: #0b0b0b;
  --lx-ink: #f5f5f5;
  --lx-ink-soft: rgba(245, 245, 245, 0.68);
  --lx-ink-mute: rgba(245, 245, 245, 0.5);
  --lx-hair: rgba(255, 255, 255, 0.12);
  --lx-hair-strong: rgba(255, 255, 255, 0.24);
  --lx-wash: #141414;
}

/* ---------- Type ---------- */

.theme-luxe .lx-eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .lx-label {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .lx-title {
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .lx-heading {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .lx-body {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .lx-price {
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

.theme-luxe .lx-price-old {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--lx-ink-mute);
  text-decoration: line-through;
}

/* ---------- Hairlines ---------- */

.theme-luxe .lx-rule {
  height: 1px;
  background: var(--lx-hair);
  border: 0;
}

.theme-luxe .lx-border {
  border: 1px solid var(--lx-hair);
}

.theme-luxe .lx-border-t {
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .lx-border-b {
  border-bottom: 1px solid var(--lx-hair);
}

/* ---------- The growing underline (BrocadeVideoHero / SplitGate CTA) ---------- */

/* Text + a hairline under it that widens on hover of the element itself or of
   any `.group` ancestor. Width is set in rem so it reads the same at every
   font size. */
.theme-luxe .lx-cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
}

.theme-luxe .lx-cta--start {
  align-items: flex-start;
}

.theme-luxe .lx-cta::after {
  content: '';
  display: block;
  height: 1px;
  width: 2rem;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .lx-cta:hover::after,
.theme-luxe .group:hover .lx-cta::after,
.theme-luxe .lx-cta:focus-visible::after {
  width: 4rem;
}

/* Inline text link: underline draws in from the left. */
.theme-luxe .lx-link {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--lx-mid) var(--lx-ease);
  padding-bottom: 2px;
}

.theme-luxe .lx-link:hover,
.theme-luxe .lx-link:focus-visible,
.theme-luxe .lx-link[aria-current='page'] {
  background-size: 100% 1px;
}

/* ---------- Buttons: square, uppercase, theme colour ---------- */

.theme-luxe .lx-btn,
.theme-luxe .lx-btn-outline,
.theme-luxe .lx-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 48px;
  padding: 0 1.75rem;
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease,
    opacity var(--lx-fast) ease;
}

.theme-luxe .lx-btn {
  background: var(--lx-ink);
  color: var(--lx-paper);
  border: 1px solid var(--lx-ink);
}

.theme-luxe .lx-btn:hover {
  background: var(--lx-accent);
  border-color: var(--lx-accent);
  color: #fff;
}

.theme-luxe .lx-btn-outline {
  background: transparent;
  color: var(--lx-ink);
  border: 1px solid var(--lx-ink);
}

.theme-luxe .lx-btn-outline:hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .lx-btn-ghost {
  background: transparent;
  color: inherit;
  border: 1px solid currentColor;
}

.theme-luxe .lx-btn-ghost:hover {
  background: #fff;
  color: #111;
  border-color: #fff;
}

.theme-luxe .lx-btn:disabled,
.theme-luxe .lx-btn-outline:disabled,
.theme-luxe .lx-btn-ghost:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.theme-luxe .lx-btn:focus-visible,
.theme-luxe .lx-btn-outline:focus-visible,
.theme-luxe .lx-btn-ghost:focus-visible,
.theme-luxe .lx-cta:focus-visible,
.theme-luxe .lx-link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

/* ---------- Form fields: square, hairline ---------- */

.theme-luxe .lx-input {
  width: 100%;
  min-height: 48px;
  padding: 0 1rem;
  border: 1px solid var(--lx-hair-strong);
  border-radius: 0;
  background: transparent;
  color: var(--lx-ink);
  font-size: 0.9rem;
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe .lx-input:focus {
  outline: none;
  border-color: var(--lx-ink);
}

.theme-luxe .lx-input::placeholder {
  color: var(--lx-ink-mute);
  letter-spacing: 0.04em;
}

/* WebKit's native clear button is browser-blue; keep it in the ink palette. */
.theme-luxe .lx-input::-webkit-search-cancel-button {
  filter: grayscale(1);
  cursor: pointer;
}

/* ---------- Imagery ---------- */

/* Slow zoom on hover of a `.group` ancestor — the SplitGate panel move. */
.theme-luxe .lx-zoom {
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .group:hover .lx-zoom {
  transform: scale(1.02);
}

/* Dark vignette for text over imagery. */
.theme-luxe .lx-vignette {
  background: radial-gradient(
    ellipse 80% 80% at 50% 50%,
    transparent 40%,
    rgba(0, 0, 0, 0.55) 100%
  );
}

.theme-luxe .lx-vignette-spot {
  background: radial-gradient(
    circle 340px at 50% 60%,
    transparent 0%,
    rgba(0, 0, 0, 0.6) 100%
  );
}

.theme-luxe .lx-scrim-b {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

/* Neutral ground under an image while it decodes. */
.theme-luxe .lx-plate {
  background: var(--lx-wash);
}

/* ---------- Layout ---------- */

.theme-luxe .lx-container {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

/* ---------- Motion ---------- */

/* Entrance used sparingly (section headers, heroes) — never per-card in long
   grids, where a per-item scroll timeline makes scrolling feel stuck. */
@keyframes lx-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes lx-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.theme-luxe .lx-rise {
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .lx-fade {
  animation: lx-fade 900ms var(--lx-ease) both;
}

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

  .theme-luxe .group:hover .lx-zoom {
    transform: none;
  }
}

/* ---------- Platform skin ----------
 * Pages that are logic-heavy — cart drawer, checkout / buy / purchase,
 * account, track, forms — are NOT forked for Luxe (a fork would duplicate
 * order, payment and stock logic). They take the Luxe shape from these rules
 * instead, applied to the platform's own utilities. Colour still comes from
 * the store theme.
 */

/* Square corners everywhere except true circles (radios, dots, avatars). */
.theme-luxe [class*='rounded']:not([class*='rounded-full']) {
  border-radius: 0;
}

/* No drop shadows. */
.theme-luxe [class*='shadow'] {
  box-shadow: none;
}

.theme-luxe .btn-primary,
.theme-luxe .btn-secondary {
  min-height: 48px;
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .btn-primary:not(:disabled) {
  background: var(--lx-ink);
  border-color: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .btn-primary:not(:disabled):hover {
  background: var(--lx-accent);
  border-color: var(--lx-accent);
  color: #fff;
}

.theme-luxe .btn-secondary:not(:disabled) {
  background: transparent;
  border-color: var(--lx-ink);
  color: var(--lx-ink);
}

.theme-luxe .btn-secondary:not(:disabled):hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe
  :where(
    input:not([type='checkbox']):not([type='radio']):not([type='range']),
    select,
    textarea
  ) {
  border-radius: 0;
}

.theme-luxe
  :where(
    input:not([type='checkbox']):not([type='radio']):not([type='range']),
    select,
    textarea
  ):focus {
  border-color: var(--lx-ink);
  outline: none;
  box-shadow: none;
}

/* ---------- Platform skin: cart drawer, checkout, track ----------
 * The cart drawer, checkout / buy (`features/checkout/index.tsx`), the koseli
 * checkout, quick checkout (/purchase), order success / failed and the track
 * page keep their own logic and markup. Each carries a `data-hook` hook on a
 * few containers (`cart`, `cart-line`, `cart-foot`, `checkout`, `quick`,
 * `summary`, `total`, `result`, `result-card`, `track`, `track-card`) — no
 * behaviour, just a scope — and the rules below reshape the platform
 * utilities inside them. Only flipping `--lx-*` colours are used, so `.dark`
 * stays legible; semantic red / green (errors, discounts, FREE, cancel) are
 * deliberately left alone.
 */

/* Page titles: "Checkout", "Track Your Order", "Reviews", product name. */
.theme-luxe [data-hook='checkout'] :is(p, h1).text-\[28px\],
.theme-luxe [data-hook='track'] h1,
.theme-luxe [data-hook='quick'] .product-details > h1,
.theme-luxe [data-hook='result-card'] p.text-\[24px\] {
  font-size: clamp(1.25rem, 2.6vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Section headings: "1. General Information", "Payment Methods",
   "Order Summary". */
.theme-luxe [data-hook='checkout'] p.font-bold.text-sm,
.theme-luxe [data-hook='quick'] p.font-bold.text-sm,
.theme-luxe [data-hook='track-card'] > p.font-bold {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Field labels (Input + SearchableSelect both emit label[data-required]). */
.theme-luxe [data-hook] label[data-required] {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Fields: hairline border, transparent fill, ink text. Error borders kept. */
.theme-luxe [data-hook] input.border:not(.border-red-400),
.theme-luxe [data-hook] button.border.text-left:not(.border-red-400) {
  border-color: var(--lx-hair-strong);
}

.theme-luxe [data-hook] input.border,
.theme-luxe [data-hook] button.border.text-left {
  background: transparent;
  color: var(--lx-ink);
}

.theme-luxe [data-hook] input.border:focus,
.theme-luxe [data-hook] button.border.text-left:focus {
  border-color: var(--lx-ink);
}

/* Divider component (`h-[1px] bg-gray-200`) → hairline. */
.theme-luxe [data-hook] .h-\[1px\].bg-gray-200 {
  background: var(--lx-hair);
}

/* Back chevron next to "Checkout": hairline square instead of a grey chip. */
.theme-luxe [data-hook='checkout'] button.bg-gray-50 {
  background: transparent;
  border: 1px solid var(--lx-hair-strong);
  color: var(--lx-ink);
}

.theme-luxe [data-hook='checkout'] button.bg-gray-50:hover {
  border-color: var(--lx-ink);
}

/* Payment method tiles: hairline, selected = ink border, never a fill. */
.theme-luxe [data-hook='checkout'] .grid > .border-2 {
  border-width: 1px;
  border-color: var(--lx-hair-strong);
  background: transparent;
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe [data-hook='checkout'] .grid > .border-2:hover {
  border-color: var(--lx-ink-soft);
  background: transparent;
}

.theme-luxe [data-hook='checkout'] .grid > .border-2.border-primary-200,
.theme-luxe [data-hook='checkout'] .grid > .border-2[class*='border-primary-200'] {
  border-color: var(--lx-ink);
  box-shadow: inset 0 0 0 1px var(--lx-ink);
}

.theme-luxe [data-hook='checkout'] .grid > .border-2 > p {
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='checkout'] .grid > .border-2 > .absolute {
  color: var(--lx-ink);
}

/* Order summary card: hairline frame, no fill, no shadow. */
.theme-luxe [data-hook='checkout'] [data-hook='summary'] {
  background: transparent;
  border: 1px solid var(--lx-hair);
}

/* Quick checkout has no card — a hairline above the block instead. */
.theme-luxe [data-hook='quick'] [data-hook='summary'] {
  border-top: 1px solid var(--lx-hair);
  padding-top: 1.25rem;
}

/* Summary row labels and values. */
.theme-luxe [data-hook='summary'] .flex-1 > p.text-sm:not(.font-medium):not([class*='text-green']) {
  letter-spacing: 0.04em;
  color: var(--lx-ink-soft);
}

.theme-luxe [data-hook='summary'] p.currency:not([class*='text-red']):not([class*='text-green']) {
  color: var(--lx-ink);
  letter-spacing: 0.04em;
}

/* "View Details" toggle (mobile). */
.theme-luxe [data-hook='summary'] .underline.pointer {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-ink);
  text-underline-offset: 4px;
}

/* Grand total row: hairline above, uppercase label. */
.theme-luxe [data-hook='total'] {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe [data-hook='total'] p {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='total'] p.currency {
  font-size: 0.95rem;
  letter-spacing: 0.06em;
}

/* Promo APPLY / REMOVE sit inside the input — undo the skin's 48px CTA. */
.theme-luxe [data-hook] .absolute > .btn-primary {
  min-height: 30px;
  height: 30px;
  padding: 0 0.9rem;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
}

.theme-luxe [data-hook] .absolute > .btn-primary.bg-red-500:not(:disabled) {
  background: transparent;
  border: 1px solid var(--lx-ink);
  color: var(--lx-ink);
}

.theme-luxe [data-hook] .absolute > .btn-primary.bg-red-500:not(:disabled):hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

/* ----- Cart drawer ----- */

.theme-luxe [data-hook='cart'] {
  background: var(--lx-paper);
  color: var(--lx-ink);
}

.theme-luxe [data-hook='cart'] .text-primary-700,
.theme-luxe [data-hook='cart'] .text-primary-700 svg,
.theme-luxe [data-hook='cart'] button.text-primary-600,
.theme-luxe [data-hook='cart'] button.text-primary-600 svg {
  color: var(--lx-ink);
}

/* Selection squares (select-all + per line). */
.theme-luxe [data-hook='cart'] .w-5.h-5.border-2 {
  border-width: 1px;
  border-color: var(--lx-hair-strong);
}

.theme-luxe [data-hook='cart'] .w-5.h-5.border-2.bg-primary-700 {
  background: var(--lx-ink);
  border-color: var(--lx-ink);
}

.theme-luxe [data-hook='cart'] .w-5.h-5.border-2 svg {
  color: var(--lx-paper);
}

/* "Select All (n/n)". */
.theme-luxe [data-hook='cart'] .select-none > p.text-xs {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Cart lines (drawer and checkout summary share ChatDrawerLists). */
.theme-luxe [data-hook='cart-line'] + [data-hook='cart-line'] {
  border-top: 1px solid var(--lx-hair);
  padding-top: 1.25rem;
}

.theme-luxe [data-hook='cart-line'] p.text-sm.font-medium:not(.currency) {
  letter-spacing: 0.02em;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='cart-line'] .flex-1 > p.text-xs:not([class*='text-primary']) {
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

.theme-luxe [data-hook='cart-line'] p.currency {
  letter-spacing: 0.04em;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='cart-line'] p.currency span,
.theme-luxe [data-hook='cart-line'] p.text-primary-600 {
  color: var(--lx-ink-soft);
}

/* Image placeholder + quantity counter (checkout summary). */
.theme-luxe [data-hook='cart-line'] .flex-center[class*='bg-black'] {
  background: var(--lx-wash);
}

.theme-luxe [data-hook='cart-line'] .rounded-full.bg-primary-700 {
  background: var(--lx-ink);
}

.theme-luxe [data-hook='cart-line'] .rounded-full.bg-primary-700 p {
  color: var(--lx-paper);
}

/* Quantity stepper. */
.theme-luxe [data-hook='cart-line'] .inline-block.border {
  border-color: var(--lx-hair-strong);
}

.theme-luxe [data-hook='cart-line'] .inline-block.border .flex-center {
  color: var(--lx-ink);
  transition: background-color var(--lx-fast) ease;
}

.theme-luxe [data-hook='cart-line'] .inline-block.border div.flex-center:hover {
  background: var(--lx-wash);
}

/* Drawer footer. */
.theme-luxe [data-hook='cart-foot'] .mx-6 {
  color: var(--lx-ink);
}

.theme-luxe [data-hook='cart-foot'] .mx-6 > .flex + .flex {
  margin-top: 0.5rem;
}

.theme-luxe [data-hook='cart-foot'] p.font-semibold.text-sm:not(.currency) {
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe [data-hook='cart-foot'] p.currency {
  color: var(--lx-ink);
  letter-spacing: 0.04em;
}

.theme-luxe [data-hook='cart-foot'] p.text-xs {
  color: var(--lx-ink-mute);
  letter-spacing: 0.04em;
}

/* CHECKOUT button carries an inline 18px font size. */
.theme-luxe [data-hook='cart-foot'] .btn-primary {
  font-size: 0.78rem !important;
}

/* ----- Quick checkout (/purchase) ----- */

.theme-luxe [data-hook='quick'] .product-details p.currency.font-bold {
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='quick'] .product-details p.line-through {
  color: var(--lx-ink-mute);
}

.theme-luxe [data-hook='quick'] .product-details p.text-gray-600 {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe [data-hook='quick'] img.border-primary-500 {
  border-color: var(--lx-ink);
}

/* Quantity stepper: hairline squares; hover washes instead of filling ink
   (the icons carry a fixed dark stroke). */
.theme-luxe [data-hook='quick'] .flex.gap-\[6px\] > .btn-secondary {
  min-height: 48px;
  height: 48px;
  border-color: var(--lx-hair-strong);
  color: var(--lx-ink);
  background: transparent;
}

.theme-luxe [data-hook='quick'] .flex.gap-\[6px\] > .btn-secondary:not(:disabled):hover {
  background: var(--lx-wash);
  border-color: var(--lx-ink);
  color: var(--lx-ink);
}

.theme-luxe [data-hook='quick'] .flex.gap-\[6px\] > .btn-secondary svg {
  stroke: currentColor;
}

/* ----- Order success / payment failed ----- */

.theme-luxe [data-hook='result'] {
  background: var(--lx-wash);
  color: var(--lx-ink);
}

.theme-luxe [data-hook='result-card'] {
  background: var(--lx-paper);
  border: 1px solid var(--lx-hair);
  color: var(--lx-ink);
  padding: clamp(28px, 5vw, 56px);
}

.theme-luxe [data-hook='result-card'] p.mb-5,
.theme-luxe [data-hook='result-card'] .mb-5 p,
.theme-luxe [data-hook='result-card'] li {
  color: var(--lx-ink-soft);
  line-height: 1.7;
}

.theme-luxe [data-hook='result-card'] p.text-sm.font-medium {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ----- Track page ----- */

.theme-luxe [data-hook='track'] {
  background: var(--lx-paper);
  color: var(--lx-ink);
}

.theme-luxe [data-hook='track'] p.w-\[108px\] {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

.theme-luxe [data-hook='track-card'] {
  background: transparent;
  border: 1px solid var(--lx-hair);
}

.theme-luxe [data-hook='track-card'] .border-t {
  border-color: var(--lx-hair);
}

/* "Cart Items". */
.theme-luxe [data-hook='track-card'] > .flex > p.font-semibold.mt-2 {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Item thumbnails carry an inline 4px radius. */
.theme-luxe [data-hook='track-card'] img {
  border-radius: 0 !important;
}

.theme-luxe [data-hook='track-card'] .bg-gray-100,
.theme-luxe [data-hook='track-card'] .flex-center[class*='bg-black'] {
  background: var(--lx-wash);
}

.theme-luxe [data-hook='track-card'] .text-gray-500 {
  color: var(--lx-ink-mute);
}

.theme-luxe [data-hook='track-card'] p.text-\[13px\].font-semibold:not(.line-clamp-2) {
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--lx-ink-soft);
}

.theme-luxe [data-hook='track-card'] [data-hook='total'] p.text-\[13px\] {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--lx-ink);
}

/* Cancel Order keeps its red; only the shape follows Luxe. */
.theme-luxe [data-hook='track-card'] button.border-red-300 {
  min-height: 48px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ---------- Document level (storefront only) ---------- */

:root:has(.theme-luxe) ::selection {
  background: var(--color-primary-900);
  color: #fff;
}

/* Offers (stores on the Offers plugin): badges and blocks keep Luxe's square corners. */
.theme-luxe [data-hook='offer-badge'] {
  border-radius: 0;
  letter-spacing: 0.14em;
}
.theme-luxe [data-hook='offers-pdp'] [class*='rounded'] {
  border-radius: 0;
}

/* ---- sections: content ---- */
/* Luxe — content sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- FAQ (faq) — hairline-ruled list instead of floating cards ---------- */

.theme-luxe .sec-faq__inner {
  max-width: 48rem;
  margin-inline: auto;
}

.theme-luxe .sec-faq__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-faq__list {
  margin-top: 2.5rem;
  padding-top: 0;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-faq__item,
.theme-luxe .sec-faq__item[data-state='open'] {
  margin: 0;
  padding-inline: 0;
  border: 0;
  border-bottom: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.theme-luxe .sec-faq__q {
  gap: 1.5rem;
  padding-block: 1.5rem;
  text-align: left;
  color: var(--lx-ink);
}

.theme-luxe .sec-faq__q > p {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-faq__q > svg {
  color: var(--lx-ink-mute);
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-faq__a {
  padding-bottom: 1.5rem;
}

.theme-luxe .sec-faq__a p {
  max-width: 42rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

@media (max-width: 768px) {
  .theme-luxe .sec-faq__title {
    font-size: 20px;
  }

  .theme-luxe .sec-faq__list {
    margin-top: 1.5rem;
  }
}

/* ---------- Rich Text Editor (rte) — Luxe prose ---------- */

.theme-luxe .sec-rte__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-rte__body,
.theme-luxe .sec-rte__body .prose {
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-rte__body :is(h1, h2, h3, h4) {
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-rte__body h1 {
  letter-spacing: 0.08em;
}

.theme-luxe .sec-rte__body :is(h2, h3) {
  letter-spacing: 0.12em;
}

.theme-luxe .sec-rte__body h4 {
  letter-spacing: 0.16em;
}

.theme-luxe .sec-rte__body p {
  line-height: 1.8;
}

.theme-luxe .sec-rte__body a {
  color: var(--lx-ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--lx-hair-strong);
}

.theme-luxe .sec-rte__body hr {
  border-color: var(--lx-hair);
}

.theme-luxe .sec-rte__body blockquote {
  border-left: 1px solid var(--lx-hair-strong);
  padding-left: 1.25rem;
}

.theme-luxe .sec-rte__body :is(img, iframe) {
  border-radius: 0;
}

.theme-luxe .sec-rte__body img {
  max-width: 100%;
}

.theme-luxe .sec-rte__body table {
  width: 100%;
}

.theme-luxe .sec-rte__body :is(td, th) {
  border: 1px solid var(--lx-hair);
}

/* ---------- Google Map (g-m) — square plate between hairlines, desaturated until hover ---------- */

.theme-luxe .sec-gmap__frame {
  border-top: 1px solid var(--lx-hair);
  border-bottom: 1px solid var(--lx-hair);
  background: var(--lx-wash);
}

.theme-luxe .sec-gmap__map {
  display: block;
  border-radius: 0;
  filter: grayscale(0.85);
  transition: filter var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-gmap__map:hover,
.theme-luxe .sec-gmap__map:focus-visible {
  filter: grayscale(0);
}

/* ---------- Text Slider (ts) — hairline rail, uppercase run, square dot separators ---------- */

.theme-luxe .sec-ts {
  border-top: 1px solid var(--lx-hair);
  border-bottom: 1px solid var(--lx-hair);
}

.theme-luxe .sec-ts__track {
  align-items: center;
  font-weight: 500;
  text-transform: uppercase;
}

.theme-luxe .sec-ts__item {
  position: relative;
  margin-inline: 2.5rem;
}

/* The square dot the Luxe copy rendered between runs. */
.theme-luxe .sec-ts__item::after {
  content: '';
  position: absolute;
  top: 50%;
  right: calc(-2.5rem - 2.5px);
  width: 5px;
  height: 5px;
  background: currentColor;
  opacity: 0.6;
  transform: translateY(-50%);
}

@media (max-width: 768px) {
  .theme-luxe .sec-ts__item {
    margin-inline: 1.5rem;
  }

  .theme-luxe .sec-ts__item::after {
    right: calc(-1.5rem - 2.5px);
  }
}

/* ---------- Countdown (cd) — vignetted plate, hairline-divided light numerals, ghost CTA ---------- */

.theme-luxe .sec-cd {
  overflow: hidden;
  background-color: var(--lx-wash);
}

.theme-luxe .sec-cd__overlay {
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    rgba(0, 0, 0, 0.25);
}

.theme-luxe .sec-cd__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-cd__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
}

/* Eyebrow above the title (the default puts it below). */
.theme-luxe .sec-cd__sub {
  order: -1;
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.theme-luxe .sec-cd__title {
  margin: 0 0 2.5rem;
  font-size: 44px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-cd__timer {
  gap: 0;
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-cd__sep {
  display: none;
}

.theme-luxe .sec-cd__unit {
  padding-inline: 2rem;
}

.theme-luxe .sec-cd__unit:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.3);
}

.theme-luxe .sec-cd__num {
  font-size: 72px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: #fff;
}

.theme-luxe .sec-cd__label {
  margin-top: 0.75rem;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.theme-luxe .sec-cd__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-cd__btn:hover {
  background: #fff;
  border-color: #fff;
  color: #111;
}

.theme-luxe .sec-cd__btn:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-cd {
    height: 320px;
  }

  .theme-luxe .sec-cd__sub {
    margin-bottom: 0.5rem;
  }

  .theme-luxe .sec-cd__title {
    margin-bottom: 1.5rem;
    font-size: 24px;
  }

  .theme-luxe .sec-cd__timer {
    margin-bottom: 1.5rem;
  }

  .theme-luxe .sec-cd__unit {
    padding-inline: 0.75rem;
  }

  .theme-luxe .sec-cd__num {
    font-size: 36px;
  }

  .theme-luxe .sec-cd__label {
    margin-top: 0.5rem;
    font-size: 9px;
    letter-spacing: 0.18em;
  }
}

/* ---------- Links List (links-list) — tracked labels with the growing hairline ---------- */

.theme-luxe .sec-links__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-links__row {
  gap: 1.5rem 3.5rem;
}

.theme-luxe .sec-links__link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lx-ink);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-links__link::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-links__link:hover {
  color: var(--lx-accent);
}

.theme-luxe .sec-links__link:hover::after,
.theme-luxe a:focus-visible > .sec-links__link::after,
.theme-luxe .sec-links__link:focus-visible::after {
  width: 4rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-links__row {
    column-gap: 2rem;
  }
}

/* ---------- Form Section (form-s) — hairline frame, square panel, vignetted image ---------- */

.theme-luxe .sec-form__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-form__head {
  margin-bottom: 3rem;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-form__title {
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-form__rule {
  width: 4rem;
  height: 1px;
  margin-top: 1.25rem;
  border-radius: 0;
  background: var(--lx-ink);
}

.theme-luxe .sec-form__sub {
  margin-top: 1.25rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-form__card {
  height: 100%;
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: var(--lx-paper);
}

.theme-luxe .sec-form__narrow .sec-form__card {
  height: auto;
}

.theme-luxe .sec-form__card-head {
  padding: 2rem 2rem 1.5rem;
  border-bottom: 1px solid var(--lx-hair);
  background: none;
}

.theme-luxe .sec-form__card-title {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-form__card-desc {
  margin-top: 0.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

/* Square panel: the stepped clip of the -curve layouts is a rounded shape,
   which Luxe doesn't use. It's set inline from JS, hence !important. */
.theme-luxe .sec-form__panel {
  align-items: flex-end;
  min-height: 320px;
  border-radius: 0;
  background: var(--lx-wash);
  clip-path: none !important;
  -webkit-clip-path: none !important;
}

.theme-luxe .sec-form__panel-img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-form__panel:hover .sec-form__panel-img {
  scale: 1.02;
}

.theme-luxe .sec-form__panel-shade {
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    rgba(0, 0, 0, 0.35);
}

.theme-luxe .sec-form__panel-copy {
  padding: 2.5rem;
  color: var(--lx-ink);
}

.theme-luxe .sec-form__panel:has(> .sec-form__panel-img) .sec-form__panel-copy {
  color: #fff;
}

.theme-luxe .sec-form__panel-title {
  font-size: 36px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: inherit;
}

.theme-luxe .sec-form__panel-sub {
  margin-top: 1.25rem;
  font-size: 15px;
  line-height: 1.75;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-form__panel:has(> .sec-form__panel-img) .sec-form__panel-sub {
  color: rgba(255, 255, 255, 0.85);
}

@media (min-width: 1024px) {
  .theme-luxe .sec-form__panel {
    min-height: 100%;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-form__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-form__title {
    font-size: 22px;
  }

  .theme-luxe .sec-form__card-head {
    padding: 1.5rem 1.25rem;
  }

  .theme-luxe .sec-form__card-title {
    font-size: 18px;
  }

  .theme-luxe .sec-form__panel-copy {
    padding: 1.5rem;
  }

  .theme-luxe .sec-form__panel-title {
    font-size: 26px;
  }
}

/* ---------- Map Cards (map-c) — square desaturated plates, hairline-ruled captions ---------- */

.theme-luxe .sec-mapc__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-mapc__head {
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-mapc__title {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-mapc__sub {
  margin-top: 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-mapc__grid {
  gap: 3rem 1.5rem;
}

.theme-luxe .sec-mapc__frame {
  height: 260px;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-mapc__map {
  display: block;
  filter: grayscale(0.85);
  transition: filter var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-mapc__map:hover,
.theme-luxe .sec-mapc__map:focus-visible {
  filter: grayscale(0);
}

.theme-luxe .sec-mapc__body {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-mapc__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-mapc__addr {
  margin-top: 0.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-mapc__phone {
  margin-top: 0.75rem;
  padding-bottom: 2px;
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--lx-ink);
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-mapc__phone:hover,
.theme-luxe .sec-mapc__phone:focus-visible {
  background-size: 100% 1px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-mapc__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-mapc__title {
    font-size: 22px;
  }

  .theme-luxe .sec-mapc__grid {
    row-gap: 2.5rem;
  }

  .theme-luxe .sec-mapc__frame {
    height: 220px;
  }
}

/* ---------- Promo Banner (promo-banner) — vignetted plate, tall title, ghost CTA ---------- */

.theme-luxe .sec-promo__media {
  overflow: hidden;
  padding-block: 160px;
  background-color: var(--lx-wash);
}

.theme-luxe .sec-promo__overlay {
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    rgba(0, 0, 0, 0.35);
}

.theme-luxe .sec-promo__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-promo__body {
  color: #fff;
}

.theme-luxe .sec-promo__sub {
  margin-bottom: 1.25rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.theme-luxe .sec-promo__title {
  margin-bottom: 1.5rem;
  font-size: 56px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-promo__desc {
  max-width: 560px;
  margin-bottom: 2.5rem;
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.85);
}

.theme-luxe .sec-promo__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-promo__btn:hover {
  background: #fff;
  border-color: #fff;
  color: #111;
}

.theme-luxe .sec-promo__btn:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-promo__media {
    padding-block: 96px;
  }

  .theme-luxe .sec-promo__title {
    font-size: 32px;
  }
}

/* ---------- Features Grid (f-g) — hairline tiles, outlined icons, numbered editorial variant ---------- */

.theme-luxe .sec-fg__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-fg__head {
  margin-bottom: 3.5rem;
}

.theme-luxe .sec-fg__title {
  margin-bottom: 0.75rem;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-fg__sub {
  max-width: 640px;
  margin-inline: auto;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-fg__grid {
  counter-reset: sec-fg;
}

.theme-luxe .sec-fg__grid:has(> .sec-fg__item--creative) {
  gap: 3.5rem 2.5rem;
}

.theme-luxe .sec-fg__item {
  counter-increment: sec-fg;
}

.theme-luxe .sec-fg__wash,
.theme-luxe .sec-fg__glow {
  display: none;
}

.theme-luxe .sec-fg__name {
  margin-bottom: 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-fg__item:hover .sec-fg__name {
  color: var(--lx-ink);
}

.theme-luxe .sec-fg__desc {
  margin-bottom: 1.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-fg__link {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
  translate: none;
}

.theme-luxe .sec-fg__link:hover {
  color: var(--lx-ink);
}

.theme-luxe .sec-fg__link > svg {
  display: none;
}

.theme-luxe .sec-fg__link::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-fg__link:hover::after,
.theme-luxe .sec-fg__link:focus-visible::after {
  width: 4rem;
}

/* Card + cardless: outlined square icon that fills with ink on hover. */
.theme-luxe .sec-fg__item--card .sec-fg__icon,
.theme-luxe .sec-fg__item--cardless .sec-fg__icon {
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  color: var(--lx-ink);
  rotate: none;
  transition:
    background-color var(--lx-mid) var(--lx-ease),
    color var(--lx-mid) var(--lx-ease),
    scale var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-fg__item--card:hover .sec-fg__icon,
.theme-luxe .sec-fg__item--cardless:hover .sec-fg__icon {
  background: var(--lx-ink);
  color: var(--lx-paper);
  scale: 1.05;
  rotate: none;
}

.theme-luxe .sec-fg__item--card .sec-fg__icon > svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.25;
}

.theme-luxe .sec-fg__item--cardless .sec-fg__icon > svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.25;
}

.theme-luxe .sec-fg__item--card {
  height: 100%;
  padding: 2rem;
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: var(--lx-paper);
  transition:
    background-color var(--lx-mid) var(--lx-ease),
    border-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-fg__item--card:hover {
  border-color: var(--lx-hair-strong);
  background: var(--lx-wash);
}

.theme-luxe .sec-fg__item--card .sec-fg__icon {
  margin-bottom: 2rem;
}

.theme-luxe .sec-fg__item--cardless {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 1rem;
}

.theme-luxe .sec-fg__item--cardless .sec-fg__icon {
  margin-bottom: 1.5rem;
}

.theme-luxe .sec-fg__item--cardless .sec-fg__desc {
  max-width: 340px;
  margin-bottom: 1.25rem;
}

.theme-luxe .sec-fg__item--cardless .sec-fg__link {
  align-items: center;
}

/* Creative: open column under a hairline, an ink bar that runs the width on
   hover, a 01/02/… counter on the left and a fine-line icon on the right. */
.theme-luxe .sec-fg__item--creative {
  position: relative;
  height: 100%;
  padding: 0;
  overflow: visible;
  border-top: 1px solid var(--lx-hair);
  border-radius: 0;
  background: none;
}

.theme-luxe .sec-fg__item--creative::after {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--lx-ink);
  transition: width var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-fg__item--creative:hover::after {
  width: 100%;
}

.theme-luxe .sec-fg__item--creative .sec-fg__body {
  position: relative;
  padding: 2rem 0 0;
  border-radius: 0;
  background: transparent;
}

.theme-luxe .sec-fg__item--creative .sec-fg__body::before {
  content: counter(sec-fg, decimal-leading-zero);
  position: absolute;
  top: 2rem;
  left: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  font-variant-numeric: tabular-nums;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-fg__iconwrap {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 2rem;
}

.theme-luxe .sec-fg__item--creative .sec-fg__icon {
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  color: var(--lx-ink);
}

.theme-luxe .sec-fg__item--creative .sec-fg__icon > svg {
  width: 30px;
  height: 30px;
  stroke-width: 1;
  scale: none;
}

.theme-luxe .sec-fg__item--creative .sec-fg__name {
  font-size: 20px;
  letter-spacing: 0.12em;
  line-height: 1.2;
  background: none;
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-fg__item--creative:hover .sec-fg__name {
  color: var(--lx-accent);
}

@media (max-width: 768px) {
  .theme-luxe .sec-fg__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-fg__title {
    font-size: 22px;
  }

  .theme-luxe .sec-fg__item--card {
    padding: 1.5rem;
  }

  .theme-luxe .sec-fg__item--creative .sec-fg__name {
    font-size: 18px;
  }
}

/* ---------- Blog Header (b-h) — tracked display title, eyebrow crumbs + meta, vignetted cover ---------- */

.theme-luxe .sec-bh__inner,
.theme-luxe .sec-bh__cover-inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-bh__inner {
  padding-block: 4rem;
}

.theme-luxe .sec-bh--cover {
  background-color: var(--lx-wash);
}

/* Vignette above the photo + shade, below the copy. */
.theme-luxe .sec-bh--cover::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 80% 80% at 50% 50%,
    transparent 40%,
    rgba(0, 0, 0, 0.55) 100%
  );
}

.theme-luxe .sec-bh__cover-inner {
  z-index: 1;
  justify-content: flex-end;
  padding-block: 3.5rem;
}

.theme-luxe .sec-bh__text {
  gap: 1rem;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-bh__crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-bh--cover .sec-bh__crumbs {
  color: rgba(255, 255, 255, 0.7);
}

.theme-luxe .sec-bh__crumbs > span {
  margin-inline: 0;
}

.theme-luxe .sec-bh__crumbs a {
  padding-bottom: 2px;
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-bh__crumbs a:hover,
.theme-luxe .sec-bh__crumbs a:focus-visible {
  background-size: 100% 1px;
}

.theme-luxe .sec-bh__crumb-current {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  color: var(--lx-ink);
}

.theme-luxe .sec-bh--cover .sec-bh__crumb-current {
  color: #fff;
}

.theme-luxe .sec-bh__title {
  max-width: 56rem;
  font-size: 44px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

/* Inherits the merchant text colour (set inline on the block) at body
   strength; white on a cover. */
.theme-luxe .sec-bh__sub {
  font-size: 0.92rem;
  line-height: 1.7;
  color: inherit;
  opacity: 0.65;
}

.theme-luxe .sec-bh--cover .sec-bh__sub {
  opacity: 0.85;
}

.theme-luxe .sec-bh__meta {
  margin-top: 0.5rem;
  gap: 0.25rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  opacity: 1;
}

.theme-luxe .sec-bh--cover .sec-bh__meta {
  color: rgba(255, 255, 255, 0.8);
}

.theme-luxe .sec-bh__banner {
  margin-top: 2.5rem;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-bh__banner-img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-bh__banner:hover .sec-bh__banner-img {
  scale: 1.02;
}

@media (max-width: 768px) {
  .theme-luxe .sec-bh__inner,
  .theme-luxe .sec-bh__cover-inner {
    padding-block: 2.5rem;
  }

  .theme-luxe .sec-bh__title {
    font-size: 28px;
  }
}

/* ---------- Blog Grid (blog-g) — open editorial cards on square plates ---------- */

.theme-luxe .sec-blog__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-blog__title {
  padding-bottom: 2.5rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-blog__grid {
  gap: 3rem 2rem;
}

/* Card atoms — shared by every card design, in the grid and the Blog Slider. */
.theme-luxe .sec-blogcard {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--lx-ink);
  translate: none;
}

.theme-luxe .sec-blogcard:hover {
  translate: none;
}

.theme-luxe .sec-blogcard__media {
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-blogcard__img {
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-blogcard:hover .sec-blogcard__img {
  scale: 1.02;
}

.theme-luxe .sec-blogcard__ph {
  width: 56px;
  height: 56px;
  stroke-width: 1;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-blogcard__cat {
  display: block;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-blogcard__title {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lx-ink);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-blogcard:hover .sec-blogcard__title {
  color: var(--lx-accent);
}

.theme-luxe .sec-blogcard__excerpt {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-blogcard__meta {
  gap: 0.25rem 0.5rem;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-blogcard__head {
  margin-top: 0.75rem;
  gap: 1rem;
}

.theme-luxe .sec-blogcard__arrow {
  margin-top: 0.125rem;
  color: var(--lx-ink);
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-blogcard__arrow > svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
  stroke-linecap: square;
}

.theme-luxe .sec-blogcard__foot {
  padding-top: 1.25rem;
  gap: 1rem;
}

.theme-luxe .sec-blogcard__chip {
  padding: 0.25rem 0.75rem;
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-blogcard__date {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

/* CLASSIC renders the shared blog card (no hooks of its own), so it is reached
   structurally through the grid cell / slider slide that holds it. */
.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) {
  overflow: visible;
  border: 0;
  background: transparent;
  translate: none;
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:first-child {
  aspect-ratio: 4 / 3;
  background: var(--lx-wash);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:first-child > img {
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard):hover > div:first-child > img {
  scale: 1.02;
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:first-child > div {
  height: 100%;
  aspect-ratio: auto;
  background: transparent;
  color: var(--lx-ink-mute);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:first-child > span {
  top: 0;
  left: 0;
  padding: 0.375rem 0.75rem;
  background: var(--lx-paper);
  backdrop-filter: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--lx-ink);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:last-child {
  padding: 1.25rem 0 0;
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lx-ink);
  transition: color var(--lx-fast) ease;
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard):hover h3 {
  color: var(--lx-accent);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:last-child > p {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:last-child > :nth-last-child(2) {
  margin-bottom: 1rem;
}

.theme-luxe :is(.sec-blog__cell, .sec-bs__slide) > a:not(.sec-blogcard) > div:last-child > div:last-child {
  padding-top: 0.75rem;
  border-top: 1px solid var(--lx-hair);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

/* OVERLAY */
.theme-luxe .sec-blogcard--overlay {
  min-height: 320px;
  background: var(--lx-wash);
}

.theme-luxe .sec-blogcard--overlay .sec-blogcard__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

.theme-luxe .sec-blogcard--overlay .sec-blogcard__body {
  padding: 1.5rem;
  color: #fff;
}

.theme-luxe .sec-blogcard--overlay .sec-blogcard__cat {
  margin-bottom: 0.5rem;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
}

.theme-luxe .sec-blogcard--overlay .sec-blogcard__title,
.theme-luxe .sec-blogcard--overlay:hover .sec-blogcard__title {
  font-size: 18px;
  line-height: 1.3;
  color: #fff;
}

.theme-luxe .sec-blogcard--overlay .sec-blogcard__meta {
  margin-top: 0.5rem;
  color: rgba(255, 255, 255, 0.75);
}

/* MINIMAL */
.theme-luxe .sec-blogcard--minimal {
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-blogcard--minimal .sec-blogcard__cat {
  margin-bottom: 0.75rem;
  color: var(--lx-accent);
}

.theme-luxe .sec-blogcard--minimal .sec-blogcard__title {
  margin-top: 0;
  font-size: 20px;
}

.theme-luxe .sec-blogcard--minimal .sec-blogcard__meta {
  padding-top: 1.25rem;
}

/* SPOTLIGHT */
.theme-luxe .sec-blogcard--spotlight {
  padding: 0;
}

.theme-luxe .sec-blogcard--spotlight .sec-blogcard__body {
  padding: 1.25rem 0 0;
}

/* HORIZONTAL */
.theme-luxe .sec-blogcard--horizontal {
  gap: 1.5rem;
  padding: 0;
}

.theme-luxe .sec-blogcard--horizontal .sec-blogcard__media {
  width: 40%;
  aspect-ratio: 4 / 5;
}

.theme-luxe .sec-blogcard--horizontal .sec-blogcard__body {
  padding: 0.25rem 0;
}

.theme-luxe .sec-blogcard--horizontal .sec-blogcard__foot {
  flex-wrap: wrap;
  padding-top: 1rem;
}

/* HEADLINE */
.theme-luxe .sec-blogcard--headline {
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-blogcard--headline .sec-blogcard__title {
  font-size: 20px;
}

.theme-luxe .sec-blogcard__stats {
  margin-top: 1rem;
  gap: 1rem;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-blogcard__stat {
  gap: 0.375rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: inherit;
  color: inherit;
}

.theme-luxe .sec-blogcard__stat > svg {
  width: 13px;
  height: 13px;
  stroke-width: 1.5;
}

.theme-luxe .sec-blogcard--headline .sec-blogcard__excerpt {
  margin-top: 0.75rem;
}

/* "Read Article" sits on the plate's bottom-left edge as a paper tab. */
.theme-luxe .sec-blogcard__read {
  top: auto;
  bottom: 0;
  left: 0;
  min-height: 44px;
  padding: 0 1.25rem;
  border: 0;
  border-radius: 0;
  background: var(--lx-paper);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease;
}

.theme-luxe .sec-blogcard__read > svg {
  display: none;
}

.theme-luxe .sec-blogcard--headline:hover .sec-blogcard__read {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

@media (max-width: 768px) {
  .theme-luxe .sec-blog__title {
    padding-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-blog__grid {
    row-gap: 2.5rem;
  }

  .theme-luxe .sec-blogcard--overlay {
    min-height: 260px;
  }

  .theme-luxe .sec-blogcard--overlay .sec-blogcard__body {
    padding: 1rem;
  }

  .theme-luxe .sec-blogcard--overlay .sec-blogcard__title {
    font-size: 15px;
  }

  .theme-luxe .sec-blogcard--minimal .sec-blogcard__title,
  .theme-luxe .sec-blogcard--headline .sec-blogcard__title {
    font-size: 17px;
  }

  .theme-luxe .sec-blogcard--horizontal {
    gap: 1rem;
  }
}

/* ---------- Blog Slider (blog-s) — square hairline arrows beside the heading ---------- */

.theme-luxe .sec-bs__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

/* Room on the right for the arrow pair that sits level with the heading. */
.theme-luxe .sec-bs__title {
  padding-right: 7rem;
  padding-bottom: 2.5rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-bs__title[style*='center'] {
  padding-inline: 7rem;
}

/* Arrows leave the track's middle and sit above it, right-aligned and level
   with the heading's last line. */
.theme-luxe .sec-bs__nav {
  top: auto;
  bottom: calc(100% + 2.5rem);
  width: 44px;
  height: 44px;
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  color: var(--lx-ink);
  transform: none;
  translate: none;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-bs__nav--prev {
  left: auto;
  right: calc(44px + 0.5rem);
}

.theme-luxe .sec-bs__nav--next {
  right: 0;
}

.theme-luxe .sec-bs__nav:hover {
  border-color: var(--lx-ink);
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-bs__nav:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

.theme-luxe .sec-bs__nav > svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
  stroke-linecap: square;
}

/* No heading: the arrows get their own row above the track. */
.theme-luxe .sec-bs__stage:first-child {
  padding-top: calc(44px + 2.5rem);
}

.theme-luxe .sec-bs__stage:first-child .sec-bs__nav {
  top: 0;
  bottom: auto;
}

@media (max-width: 768px) {
  .theme-luxe .sec-bs__title {
    padding-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-bs__nav {
    bottom: calc(100% + 1.5rem);
  }

  .theme-luxe .sec-bs__stage:first-child {
    padding-top: calc(44px + 1.5rem);
  }
}

/* ---- sections: media ---- */
/* Luxe — media sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Full Image (fi) — washed plate, slow zoom when it links ---------- */

.theme-luxe .sec-fi {
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-fi__img {
  display: block;
}

.theme-luxe .sec-fi__link {
  display: block;
  overflow: hidden;
}

.theme-luxe .sec-fi__link .sec-fi__img {
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-fi__link:hover .sec-fi__img {
  transform: scale(1.02);
}

.theme-luxe .sec-fi__link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: -4px;
}

/* ---------- Image With Contents (fiwc) — zooming plate, vignette, uppercase type ---------- */

/* The merchant image stays the inline `--bgImage`; it is moved onto a pseudo
   layer so it can take the slow hover zoom without moving the text. */
.theme-luxe .sec-fiwc {
  overflow: hidden;
  background-color: var(--lx-wash);
  background-image: none;
}

.theme-luxe .sec-fiwc::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--bgImage) center / cover no-repeat;
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-fiwc:hover::before {
  transform: scale(1.02);
}

.theme-luxe .sec-fiwc__overlay {
  background-image: radial-gradient(
    ellipse 80% 80% at 50% 50%,
    transparent 40%,
    rgba(0, 0, 0, 0.55) 100%
  );
}

.theme-luxe .sec-fiwc__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-fiwc__content {
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-fiwc__title {
  margin-bottom: 0;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-fiwc__subtitle {
  margin-top: 1.25rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
}

.theme-luxe .sec-fiwc__actions {
  margin-top: 2.5rem;
  gap: 0.75rem;
}

/* Secondary action reads as a ghost button over the image. */
.theme-luxe .sec-fiwc .sec-fiwc__btn2:not(:disabled) {
  background: transparent;
  border: 1px solid currentColor;
  color: #fff;
}

.theme-luxe .sec-fiwc .sec-fiwc__btn2:not(:disabled):hover {
  background: #fff;
  border-color: #fff;
  color: #111;
}

@media (max-width: 768px) {
  .theme-luxe .sec-fiwc__title {
    font-size: 30px;
  }
}

/* ---------- Video Player (v-p) — square 16:9 plate ---------- */

.theme-luxe .sec-vp__frame {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-vp__video {
  display: block;
}

/* ---------- Hero Section With Video Player (hero-v-p) — vignette + growing-underline CTA ---------- */

.theme-luxe .sec-hvp {
  background: var(--lx-wash);
}

.theme-luxe .sec-hvp__media::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 80% 80% at 50% 50%,
    transparent 40%,
    rgba(0, 0, 0, 0.55) 100%
  );
}

.theme-luxe .sec-hvp__cta {
  margin-inline: var(--lx-gutter);
  animation: lx-rise 900ms var(--lx-ease) both;
}

/* The pill button becomes text + a hairline that widens on hover. The line
   follows the section's alignment (`--justifyValue`: left / center / right). */
.theme-luxe .sec-hvp .sec-hvp__btn,
.theme-luxe .sec-hvp .sec-hvp__btn:not(:disabled),
.theme-luxe .sec-hvp .sec-hvp__btn:not(:disabled):hover {
  min-height: 0;
  height: auto;
  padding: 0 0 calc(0.5rem + 1px);
  border: 0;
  background-color: transparent;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: var(--justifyValue, left) bottom;
  background-size: 2rem 1px;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background-size var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-hvp .sec-hvp__btn:not(:disabled):hover,
.theme-luxe .sec-hvp .sec-hvp__btn:focus-visible {
  background-size: 4rem 1px;
}

.theme-luxe .sec-hvp .sec-hvp__btn:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 4px;
}

.theme-luxe .sec-hvp__arrow {
  display: none;
}

/* ---------- Side Video With Content (svc) — eyebrow, uppercase title, hairline rule, outline CTA ---------- */

.theme-luxe .sec-svc__inner.wrap {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-svc__media {
  position: relative;
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-svc__video {
  position: absolute;
  inset: 0;
}

.theme-luxe .sec-svc__body {
  padding: 3.5rem 1.5rem;
}

.theme-luxe .sec-svc__content {
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-svc__head {
  gap: 1rem;
}

/* Short hairline between the heading and the copy. */
.theme-luxe .sec-svc__head::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-svc__eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-svc__eyebrow:empty {
  display: none;
}

.theme-luxe .sec-svc__title {
  font-size: 44px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-svc__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
  white-space: pre-line;
}

.theme-luxe .sec-svc__btn {
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  background: transparent;
  color: var(--lx-ink);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-svc__btn:hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-svc__btn:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (min-width: 1024px) {
  .theme-luxe .sec-svc__body {
    padding: 5rem 4rem;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-svc__title {
    font-size: 30px;
  }
}

/* ---------- Side Image Content (sic) — square zooming plate, hairline bullet list ---------- */

.theme-luxe .sec-sic__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-sic__media {
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-sic__img {
  display: block;
  width: 100%;
  border-radius: 0 !important;
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-sic__media:hover .sec-sic__img {
  transform: scale(1.02);
}

.theme-luxe .sec-sic__body {
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-sic__title {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-sic__subtitle {
  max-width: 36rem;
  margin-top: 1rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-sic__list {
  margin-top: 2rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-sic__bullet {
  gap: 1rem;
  margin-top: 0;
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--lx-hair);
  color: var(--lx-ink);
}

.theme-luxe .sec-sic__check {
  margin-right: 0;
  background: transparent;
  color: var(--lx-accent);
}

.theme-luxe .sec-sic__check svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.5;
  stroke-linecap: square;
}

.theme-luxe .sec-sic__bullet-text {
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--lx-ink);
}

.theme-luxe .sec-sic__actions {
  gap: 0.75rem;
  margin-top: 2.5rem;
}

.theme-luxe .sec-sic .sec-sic__btn,
.theme-luxe .sec-sic .sec-sic__btn2 {
  padding: 0 1.75rem;
  font-size: 0.78rem;
}

.theme-luxe .sec-sic__btn2 {
  margin-left: 0;
}

@media (max-width: 768px) {
  .theme-luxe .sec-sic__body {
    margin-top: 0.5rem;
  }

  .theme-luxe .sec-sic__title {
    font-size: 22px;
  }

  .theme-luxe .sec-sic__btn2 {
    margin-top: 0;
  }
}

/* ---------- Image Slider (ic) ----------
   Luxe markup comes from the `luxeSlider` flag (LuxeImageSlider), which is
   built from the base `lx-*` utilities — nothing extra to style here. */

/* ---------- Styled Image Slider (sis) — square plates, hairline arrows ---------- */

/* An unset background falls back to paper; a merchant colour still wins. */
.theme-luxe .sec-sis {
  background-color: var(--bg-color, var(--lx-paper));
}

.theme-luxe .sec-sis__card {
  background: var(--lx-wash);
}

/* Side cards no longer blur — Luxe keeps them sharp and lets opacity recede. */
.theme-luxe .sec-sis__card {
  filter: none !important;
}

.theme-luxe .sec-sis__shade {
  display: none;
}

.theme-luxe .sec-sis__nav {
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--lx-hair-strong);
  border-radius: 0;
  background: var(--lx-paper);
  color: var(--lx-ink);
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-sis__nav:hover {
  border-color: var(--lx-ink);
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-sis__nav:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

.theme-luxe .sec-sis__nav svg,
.theme-luxe .sec-sis__icon {
  width: 16px;
  height: 16px;
  color: currentColor;
  stroke-width: 1.5;
}

.theme-luxe .sec-sis__prev {
  left: var(--lx-gutter);
}

.theme-luxe .sec-sis__next {
  right: var(--lx-gutter);
}

/* Curved: hairline gutter between full-bleed plates, slow zoom on hover. */
.theme-luxe .sec-sis__track {
  gap: 1px;
}

.theme-luxe .sec-sis__slide {
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-sis__slide .sec-sis__img {
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-sis__slide:hover .sec-sis__img {
  transform: scale(1.02);
}

/* Vertical: keep a gutter on narrow screens. */
.theme-luxe .sec-sis__vs {
  padding-inline: 1rem;
}

.theme-luxe .sec-sis__column {
  max-width: 100%;
}

@media (max-width: 768px) {
  .theme-luxe .sec-sis__nav {
    width: 36px;
    height: 36px;
  }

  .theme-luxe .sec-sis__cfs .sec-sis__prev {
    left: 0.5rem;
  }

  .theme-luxe .sec-sis__cfs .sec-sis__next {
    right: 0.5rem;
  }
}

/* ---------- Infinite Image Slider (iis) — edge-to-edge ribbon, tight gutter ---------- */

.theme-luxe .sec-iis__viewport {
  padding-inline: 0;
}

.theme-luxe .sec-iis__marquee {
  --gap: 0.75rem;
}

.theme-luxe .sec-iis__item {
  overflow: hidden;
}

.theme-luxe .sec-iis__img {
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-iis__item:hover .sec-iis__img {
  transform: scale(1.02);
}

.theme-luxe .sec-iis__item:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: -2px;
}

/* ---------- Side Image With Content (siwc) — full-bleed split, eyebrow, underline CTA ---------- */

.theme-luxe .sec-siwc {
  background-color: var(--lx-paper);
}

.theme-luxe .sec-siwc__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.theme-luxe .sec-siwc__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 0;
}

.theme-luxe .sec-siwc__content {
  display: flex;
  align-items: center;
  width: auto;
}

.theme-luxe .sec-siwc__text {
  width: 100%;
  max-width: 560px;
  padding: 4rem var(--lx-gutter);
}

/* Text hugs the image: push it towards the split line. */
.theme-luxe .sec-siwc__content.order-first .sec-siwc__text {
  margin-left: auto;
}

.theme-luxe .sec-siwc__content.order-last .sec-siwc__text {
  margin-right: auto;
}

.theme-luxe .sec-siwc__eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-siwc__title {
  margin-top: 1rem;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-siwc__desc {
  margin-top: 1.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-siwc__cta {
  margin-top: 2.5rem;
}

.theme-luxe .sec-siwc__btn {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  color: var(--lx-ink);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-siwc__btn::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-siwc__cta:hover .sec-siwc__btn::after,
.theme-luxe .sec-siwc__btn:focus-visible::after {
  width: 4rem;
}

.theme-luxe .sec-siwc__arrow {
  display: none;
}

/* Image runs to the viewport edge and fills its half. */
.theme-luxe .sec-siwc__media {
  position: relative;
  width: auto;
  min-height: 560px;
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-siwc__frame {
  position: absolute;
  inset: 0;
  padding: 0;
}

.theme-luxe .sec-siwc__plate,
.theme-luxe .sec-siwc__plate:hover {
  height: 100%;
  transform: none;
  scale: none;
}

.theme-luxe .sec-siwc__img {
  height: 100%;
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-siwc__media:hover .sec-siwc__img {
  transform: scale(1.02);
}

@media (max-width: 768px) {
  .theme-luxe .sec-siwc__row {
    grid-template-columns: 1fr;
  }

  .theme-luxe .sec-siwc__text,
  .theme-luxe .sec-siwc__content.order-first .sec-siwc__text,
  .theme-luxe .sec-siwc__content.order-last .sec-siwc__text {
    margin-inline: auto;
    padding-block: 2.5rem;
  }

  .theme-luxe .sec-siwc__title {
    margin-top: 0.75rem;
    font-size: 26px;
  }

  .theme-luxe .sec-siwc__desc {
    margin-top: 1rem;
  }

  .theme-luxe .sec-siwc__cta {
    margin-top: 2rem;
  }

  .theme-luxe .sec-siwc__btn {
    align-items: center;
  }

  .theme-luxe .sec-siwc__media {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-fi__link:hover .sec-fi__img,
  .theme-luxe .sec-fiwc:hover::before,
  .theme-luxe .sec-sic__media:hover .sec-sic__img,
  .theme-luxe .sec-sis__slide:hover .sec-sis__img,
  .theme-luxe .sec-iis__item:hover .sec-iis__img,
  .theme-luxe .sec-siwc__media:hover .sec-siwc__img {
    transform: none;
  }
}

/* ---- sections: grids ---- */
/* Luxe — grids sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Two Grid (two-grid) — full-bleed diptych, hairline seam ---------- */

.theme-luxe .sec-tg__inner {
  width: 100%;
  max-width: none;
}

.theme-luxe .sec-tg__grid {
  gap: 1px;
}

.theme-luxe .sec-tg__item {
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-tg__img {
  display: block;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-tg__item:hover .sec-tg__img {
  scale: 1.02;
}

/* ---------- Three By Two Bento Grid (three-two-bento) — full-bleed, hairline gutters ---------- */

.theme-luxe .sec-bento__inner {
  width: 100%;
  max-width: none;
}

.theme-luxe .sec-bento__grid {
  gap: 1px;
}

.theme-luxe .sec-bento__item {
  overflow: hidden;
  background: var(--lx-wash);
}

.theme-luxe .sec-bento__img {
  display: block;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-bento__item:hover .sec-bento__img {
  scale: 1.02;
}

/* ---------- Three Items Grid (three-item-grid) — full-bleed tiles, centred caption ---------- */

.theme-luxe .sec-tig__inner {
  width: 100%;
  max-width: none;
}

.theme-luxe .sec-tig__grid,
.theme-luxe .sec-tig__col {
  gap: 1px;
}

.theme-luxe .sec-tig__item {
  background: var(--lx-wash);
}

.theme-luxe .sec-tig__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-tig__item:hover .sec-tig__img {
  scale: 1.02;
}

.theme-luxe .sec-tig__overlay {
  align-items: center;
  gap: 0.75rem;
  padding: 2rem;
  text-align: center;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  pointer-events: none;
}

.theme-luxe .sec-tig__title {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.15;
  text-transform: uppercase;
}

.theme-luxe .sec-tig__label {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
}

.theme-luxe .sec-tig__label:empty {
  display: none;
}

.theme-luxe .sec-tig__label::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-tig__item:hover .sec-tig__label::after {
  width: 4rem;
}

@media (min-width: 768px) {
  .theme-luxe .sec-tig__title {
    font-size: 26px;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-tig__overlay {
    padding: 1.5rem;
  }
}

/* ---------- Rounded Banner Grid (rbg) — hairline-ruled tiles, square icon plates ---------- */

.theme-luxe .sec-rbg,
.theme-luxe .sec-rbg__inner {
  background: var(--lx-paper);
}

.theme-luxe .sec-rbg__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-rbg__eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-rbg__title {
  margin-top: 0.75rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

/* 1px gaps over a hair-coloured ground read as rules. */
.theme-luxe .sec-rbg__grid {
  gap: 1px;
  margin-top: 2.5rem;
  border: 1px solid var(--lx-hair);
  background: var(--lx-hair);
}

.theme-luxe .sec-rbg__grid > * {
  display: block;
  height: 100%;
}

.theme-luxe .sec-rbg__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding: 2.5rem 1rem;
  text-align: center;
  background: var(--lx-paper);
  scale: none;
}

.theme-luxe .sec-rbg__icon {
  margin: 0 0 1.5rem;
  overflow: hidden;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-rbg__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-rbg__card:hover .sec-rbg__img {
  scale: 1.02;
}

.theme-luxe .sec-rbg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-rbg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-rbg__card:hover .sec-rbg__name::after {
  width: 4rem;
}

.theme-luxe .sec-rbg__desc {
  margin-top: 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-rbg__desc:empty {
  display: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-rbg__title {
    font-size: 22px;
  }

  .theme-luxe .sec-rbg__grid {
    margin-top: 2rem;
  }

  .theme-luxe .sec-rbg__card {
    padding-block: 2rem;
  }
}

/* ---------- Five Image Grid (fig) — plates on a wash ground, slow zoom ---------- */

.theme-luxe .sec-fig {
  background: var(--lx-paper);
}

.theme-luxe .sec-fig__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-fig__eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-fig__title {
  margin-top: 0.75rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-fig__grid {
  gap: 0.75rem;
  margin-top: 2.5rem;
}

.theme-luxe .sec-fig__item {
  background: var(--lx-wash);
}

.theme-luxe .sec-fig__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-fig__item:hover .sec-fig__img {
  scale: 1.02;
}

@media (max-width: 768px) {
  .theme-luxe .sec-fig__title {
    font-size: 22px;
  }

  .theme-luxe .sec-fig__grid {
    gap: 0.5rem;
    margin-top: 2rem;
  }
}

/* ---------- Five Image Grid With Labels (figwl) — plates + underline captions ---------- */

.theme-luxe .sec-figwl__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-figwl__eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-figwl__title {
  margin-top: 0.75rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-figwl__grid {
  column-gap: 0.75rem;
  row-gap: 2.5rem;
  margin-top: 2.5rem;
}

.theme-luxe .sec-figwl__card {
  color: var(--lx-ink);
}

.theme-luxe .sec-figwl__media {
  position: relative;
  overflow: hidden;
  margin-bottom: 1rem;
  background: var(--lx-wash);
}

.theme-luxe .sec-figwl__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-figwl__card:hover .sec-figwl__img {
  scale: 1.02;
}

.theme-luxe .sec-figwl__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-figwl__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-figwl__card:hover .sec-figwl__name::after {
  width: 4rem;
}

.theme-luxe .sec-figwl__desc {
  margin-top: 0.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

@media (max-width: 768px) {
  .theme-luxe .sec-figwl__title {
    font-size: 22px;
  }

  .theme-luxe .sec-figwl__grid {
    column-gap: 0.5rem;
    row-gap: 2rem;
    margin-top: 2rem;
  }

  .theme-luxe .sec-figwl__media {
    margin-bottom: 0.75rem;
  }
}

/* ---------- Category Grid (c-g) — square plates, tracked labels, per-style captions ---------- */

.theme-luxe .sec-cg__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-cg__title {
  padding-bottom: 2.5rem;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-cg__link {
  display: block;
}

.theme-luxe .sec-cg__item {
  overflow: hidden;
}

.theme-luxe .sec-cg__img {
  display: block;
  background: var(--lx-wash);
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-cg__item:hover .sec-cg__img {
  scale: 1.02;
}

/* SICT / ITA / IO + RIWT: label row under the plate */
.theme-luxe .sec-cg__text {
  gap: 0.75rem;
  margin-top: 1rem;
  color: var(--lx-ink);
}

.theme-luxe .sec-cg__item--normal .sec-cg__name,
.theme-luxe .sec-cg__item--circle .sec-cg__name {
  padding: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-cg__arrow {
  margin-left: 0;
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-cg__arrow svg {
  width: 16px;
  height: 16px;
  color: var(--lx-ink);
  stroke-width: 1.5;
}

.theme-luxe .sec-cg__item:hover .sec-cg__arrow {
  translate: 0.25rem 0;
}

/* RIWT: Luxe keeps corners square — the circle becomes a framed plate. */
.theme-luxe .sec-cg__item--circle .sec-cg__img {
  padding: 0.5rem;
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background-color: var(--lx-wash);
  background-clip: content-box;
}

.theme-luxe .sec-cg__item--circle:hover .sec-cg__img {
  scale: none;
}

.theme-luxe .sec-cg__item--circle .sec-cg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.theme-luxe .sec-cg__item--circle .sec-cg__name::after,
.theme-luxe .sec-cg__item--overlay .sec-cg__name::after,
.theme-luxe .sec-cg__item--overlay-bottom .sec-cg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-cg__item:hover .sec-cg__name::after {
  width: 4rem;
}

/* IWOT / IWOTB: overlay captions */
.theme-luxe .sec-cg__item--overlay .sec-cg__scrim {
  border-radius: 0;
  background: radial-gradient(circle 340px at 50% 60%, transparent 0%, rgba(0, 0, 0, 0.6) 100%);
  pointer-events: none;
}

.theme-luxe .sec-cg__item--overlay-bottom .sec-cg__scrim {
  top: 0;
  height: 100%;
  border-radius: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  pointer-events: none;
}

.theme-luxe .sec-cg__caption {
  padding-inline: 0.75rem;
  pointer-events: none;
}

.theme-luxe .sec-cg__caption--bottom {
  padding: 1.25rem;
}

.theme-luxe .sec-cg__item--overlay .sec-cg__name,
.theme-luxe .sec-cg__item--overlay-bottom .sec-cg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-shadow: none;
  color: #fff;
}

.theme-luxe .sec-cg__item--overlay-bottom .sec-cg__name {
  align-items: flex-start;
  font-size: 0.95rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-cg__title {
    padding-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-cg__grid {
    gap: 0.75rem;
  }

  .theme-luxe .sec-cg__item--circle .sec-cg__name {
    font-size: 0.7rem;
  }

  .theme-luxe .sec-cg__item--overlay .sec-cg__name {
    font-size: 0.75rem;
  }

  .theme-luxe .sec-cg__item--overlay-bottom .sec-cg__name {
    font-size: 0.72rem;
  }

  .theme-luxe .sec-cg__caption--bottom {
    padding: 0.75rem;
  }
}

/* ---------- Brand Grid (b-g) — square plates, tracked labels, hairline cards ---------- */

.theme-luxe .sec-bg__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-bg__title {
  padding-bottom: 2.5rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-bg__grid {
  column-gap: 1rem;
  row-gap: 2rem;
}

.theme-luxe .sec-bg__link {
  display: block;
  color: var(--lx-ink);
}

.theme-luxe .sec-bg__item {
  overflow: hidden;
}

.theme-luxe .sec-bg__img {
  display: block;
  background: var(--lx-wash);
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-bg__item:hover .sec-bg__img {
  scale: 1.02;
}

.theme-luxe .sec-bg__text {
  gap: 0.5rem;
  padding-top: 0.75rem;
}

.theme-luxe .sec-bg__item--normal .sec-bg__name,
.theme-luxe .sec-bg__item--circle .sec-bg__name {
  padding: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-bg__arrow {
  margin-left: 0;
  color: var(--lx-ink);
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-bg__arrow svg {
  width: 14px;
  height: 14px;
  stroke-width: 1.5;
}

/* RIWT: square, hairline-framed plate */
.theme-luxe .sec-bg__item--circle .sec-bg__img {
  border: 1px solid var(--lx-hair);
  border-radius: 0;
}

/* IC: hairline card */
.theme-luxe .sec-bg__item--card {
  padding: 1.5rem;
  border: 1px solid var(--lx-hair);
  background: var(--lx-paper);
  transition: border-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-bg__item--card:hover {
  border-color: var(--lx-hair-strong);
}

.theme-luxe .sec-bg__item--card .sec-bg__img {
  background: transparent;
}

/* IWOT: dim + spot vignette, tracked name over a growing hairline */
.theme-luxe .sec-bg__item--overlay,
.theme-luxe .sec-bg__item--overlay-bottom {
  background: var(--lx-wash);
}

.theme-luxe .sec-bg__item--overlay .sec-bg__scrim {
  background:
    radial-gradient(circle 340px at 50% 60%, transparent 0%, rgba(0, 0, 0, 0.36) 100%),
    rgba(0, 0, 0, 0.2);
  transition: background-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-bg__item--overlay:hover .sec-bg__scrim {
  background:
    radial-gradient(circle 340px at 50% 60%, transparent 0%, rgba(0, 0, 0, 0.36) 100%),
    rgba(0, 0, 0, 0.35);
}

.theme-luxe .sec-bg__item--overlay .sec-bg__caption {
  padding-inline: 0.75rem;
}

.theme-luxe .sec-bg__item--overlay .sec-bg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-shadow: none;
}

.theme-luxe .sec-bg__item--overlay .sec-bg__name::after,
.theme-luxe .sec-bg__item--overlay-bottom .sec-bg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-bg__item:hover .sec-bg__name::after {
  width: 4rem;
}

/* IWOTB: bottom scrim + start-aligned CTA */
.theme-luxe .sec-bg__item--overlay-bottom .sec-bg__scrim {
  top: 0;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

.theme-luxe .sec-bg__item--overlay-bottom .sec-bg__caption {
  padding: 1.25rem;
}

.theme-luxe .sec-bg__item--overlay-bottom .sec-bg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-shadow: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-bg__title {
    padding-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-bg__grid {
    column-gap: 0.75rem;
    row-gap: 1.5rem;
  }

  .theme-luxe .sec-bg__item--circle .sec-bg__name,
  .theme-luxe .sec-bg__item--overlay-bottom .sec-bg__name {
    font-size: 11px;
  }

  .theme-luxe .sec-bg__item--overlay .sec-bg__name {
    font-size: 12px;
  }

  .theme-luxe .sec-bg__item--card {
    padding: 1rem;
  }

  .theme-luxe .sec-bg__item--overlay-bottom .sec-bg__caption {
    padding: 0.75rem;
  }
}

/* ---------- Icons Categories (i-c) — hairline tiles, outlined icon, reveal CTA ---------- */

.theme-luxe .sec-ic__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-ic__head {
  margin-bottom: 3.5rem;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-ic__title {
  margin-bottom: 0;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-ic__subtitle {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ic__grid {
  gap: 1rem;
}

.theme-luxe .sec-ic__card {
  padding: 2rem;
  border: 1px solid var(--lx-hair);
  background: var(--lx-paper);
  transition:
    background-color var(--lx-mid) var(--lx-ease),
    border-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-ic__card:hover {
  border-color: var(--lx-hair-strong);
  background: var(--lx-wash);
}

.theme-luxe .sec-ic__glow {
  display: none;
}

.theme-luxe .sec-ic__icon {
  margin-bottom: 2rem;
  border: 1px solid var(--lx-hair);
  background: transparent;
  color: var(--lx-ink);
  rotate: none;
  transition:
    background-color var(--lx-mid) var(--lx-ease),
    color var(--lx-mid) var(--lx-ease),
    scale var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-ic__card:hover .sec-ic__icon {
  background: var(--lx-ink);
  color: var(--lx-paper);
  scale: 1.05;
  rotate: none;
}

.theme-luxe .sec-ic__icon svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.25;
}

/* Fallback Sparkles when no icon is picked. */
.theme-luxe .sec-ic__icon svg[class*='text-white'] {
  color: inherit;
  opacity: 0.5;
}

.theme-luxe .sec-ic__name,
.theme-luxe .sec-ic__card:hover .sec-ic__name {
  margin-bottom: 1.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-ic__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lx-ink);
  translate: -0.5rem 0;
  transition:
    opacity var(--lx-mid) var(--lx-ease),
    translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-ic__cta::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-ic__card:hover .sec-ic__cta {
  translate: 0 0;
}

.theme-luxe .sec-ic__card:hover .sec-ic__cta::after {
  width: 4rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-ic__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-ic__title {
    font-size: 22px;
  }

  .theme-luxe .sec-ic__grid {
    gap: 0.75rem;
  }

  .theme-luxe .sec-ic__card {
    padding: 1.25rem;
  }

  .theme-luxe .sec-ic__icon {
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.5rem;
  }
}

/* ---------- Image Categories (img-cats) — square plate over a tracked label ---------- */

.theme-luxe .sec-imgcats__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-imgcats__head {
  margin-bottom: 3rem;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-imgcats__title {
  margin-bottom: 0;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-imgcats__subtitle {
  margin-top: 0.75rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-imgcats__grid {
  column-gap: 1.5rem;
  row-gap: 2.5rem;
}

.theme-luxe .sec-imgcats__card {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.theme-luxe .sec-imgcats__media {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-imgcats__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-imgcats__card:hover .sec-imgcats__img {
  scale: 1.02;
}

.theme-luxe .sec-imgcats__empty {
  background: transparent;
}

.theme-luxe .sec-imgcats__empty > span {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-imgcats__body {
  padding-top: 1rem;
}

.theme-luxe .sec-imgcats__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-imgcats__card:hover .sec-imgcats__name {
  color: var(--lx-accent);
}

.theme-luxe .sec-imgcats__desc {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--lx-ink-mute);
}

@media (max-width: 768px) {
  .theme-luxe .sec-imgcats__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-imgcats__title {
    font-size: 22px;
  }

  .theme-luxe .sec-imgcats__grid {
    column-gap: 0.75rem;
    row-gap: 2rem;
  }

  .theme-luxe .sec-imgcats__body {
    padding-top: 0.75rem;
  }
}

/* ---------- Reduced motion: no hover zoom / slide anywhere in this family ---------- */

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-tg__item:hover .sec-tg__img,
  .theme-luxe .sec-bento__item:hover .sec-bento__img,
  .theme-luxe .sec-tig__item:hover .sec-tig__img,
  .theme-luxe .sec-rbg__card:hover .sec-rbg__img,
  .theme-luxe .sec-fig__item:hover .sec-fig__img,
  .theme-luxe .sec-figwl__card:hover .sec-figwl__img,
  .theme-luxe .sec-cg__item:hover .sec-cg__img,
  .theme-luxe .sec-bg__item:hover .sec-bg__img,
  .theme-luxe .sec-imgcats__card:hover .sec-imgcats__img,
  .theme-luxe .sec-ic__card:hover .sec-ic__icon {
    scale: none;
  }
}

/* ---- sections: products ---- */
/* Luxe — products sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Shared: section container + heading ---------- */

.theme-luxe .sec-pg__inner,
.theme-luxe .sec-ps__inner,
.theme-luxe .sec-phg__inner,
.theme-luxe .sec-spv__inner,
.theme-luxe .sec-pt1spv__inner,
.theme-luxe .sec-pt1pg__inner,
.theme-luxe .sec-pt1pt__inner,
.theme-luxe .sec-pt2pg__inner,
.theme-luxe .sec-ppi__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pg__title,
.theme-luxe .sec-ps__title,
.theme-luxe .sec-phg__title,
.theme-luxe .sec-pt1pg__title,
.theme-luxe .sec-pt1pt__title,
.theme-luxe .sec-pt2pg__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

/* ---------- Product card (p-g, p-s) — default ProductItem ---------- */

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__wish {
  top: 0.75rem;
  right: 0.75rem;
  border-radius: 0;
  box-shadow: none;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__media {
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__img {
  display: block;
  border-radius: 0;
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
  will-change: scale;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard:hover .sec-pcard__img {
  scale: 1.02;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__body {
  padding: 1rem 0 0.5rem;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__name {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__row {
  margin-top: 0.5rem;
  align-items: center;
  gap: 0.5rem;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__prices {
  gap: 0.75rem;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__price {
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

/* Luxe reads price → compare-at; the default markup has them the other way. */
.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__compare {
  order: 2;
  margin-right: 0;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--lx-ink-mute);
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__rating {
  align-items: center;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__rating > p {
  font-size: 0.75rem;
  color: var(--lx-ink-mute);
}

/* "Save …" pill → accent eyebrow note. A merchant badge colour (inline
   `background:`) still wins. */
.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__save:not([style*='background:']) {
  display: block;
  margin-top: 0.5rem;
  padding: 0;
  border-radius: 0;
  background: none !important;
  color: var(--lx-accent) !important;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__save:not([style*='background:']) > span {
  margin-left: 0.25em;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__redirect,
.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__actions {
  padding: 0.5rem 0;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__redirect .btn-primary:not(:disabled) {
  background: transparent;
  border: 1px solid var(--lx-ink);
  color: var(--lx-ink);
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__redirect .btn-primary:not(:disabled):hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__variant {
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  border-radius: 0;
  background: transparent;
  color: var(--lx-ink);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease;
}

.theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__variant:hover {
  border-color: var(--lx-ink);
  background: var(--lx-ink);
  color: var(--lx-paper);
}

@media (max-width: 768px) {
  .theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard__variant {
    padding: 0;
  }
}

/* ---------- Product Grids (p-g) ---------- */

.theme-luxe .sec-pg__title {
  padding-bottom: 2.5rem;
  font-size: 26px;
}

.theme-luxe .sec-pg .sec-pgrid {
  column-gap: 1.5rem;
  row-gap: 2.5rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pg__title {
    padding-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-pg .sec-pgrid {
    column-gap: 0.75rem;
    row-gap: 2rem;
  }
}

/* ---------- Product Slider (p-s) ---------- */

.theme-luxe .sec-ps .sec-pcard {
  width: calc(100% / 4.6 - 18px);
  margin-right: 1.5rem;
}

.theme-luxe .sec-ps__title {
  margin-bottom: 2.5rem;
  font-size: 26px;
}

/* Header row (title + arrows) — only rendered with the `sliderArrows` flag. */
.theme-luxe .sec-ps__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-ps__head--center {
  flex-direction: column;
  align-items: center;
}

.theme-luxe .sec-ps__head > .sec-ps__title {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .theme-luxe .sec-ps .sec-pcard {
    width: calc(100% / 2.5 - 12px);
    margin-right: 0.75rem;
  }

  .theme-luxe .sec-ps__title {
    margin-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-ps__head {
    margin-bottom: 1.5rem;
  }
}

/* ---------- Product Hover Grid (p-hg) ---------- */

.theme-luxe .sec-phg__head {
  align-items: flex-end;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-phg__title {
  font-size: 28px;
}

/* "See all ›" → text CTA with the growing hairline underline. */
.theme-luxe .sec-phg__more {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
  cursor: pointer;
}

.theme-luxe .sec-phg__more:hover {
  color: var(--lx-ink);
}

.theme-luxe .sec-phg__more > svg {
  display: none;
}

.theme-luxe .sec-phg__more::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-phg__more:hover::after,
.theme-luxe .sec-phg__head a:focus-visible .sec-phg__more::after {
  width: 4rem;
}

.theme-luxe .sec-phg__grid {
  column-gap: 1.5rem;
  row-gap: 2.5rem;
}

.theme-luxe .sec-phg__media {
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-phg__img {
  scale: 1;
  transition-property: opacity, scale;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-phg__card:hover .sec-phg__img {
  scale: 1.02;
}

.theme-luxe .sec-phg__body {
  padding-top: 1rem;
}

.theme-luxe .sec-phg__name {
  margin-bottom: 0.375rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-phg__sub {
  letter-spacing: 0.04em;
  color: var(--lx-ink-mute);
}

@media (max-width: 768px) {
  .theme-luxe .sec-phg__head {
    margin-bottom: 1.5rem;
  }

  .theme-luxe .sec-phg__title {
    font-size: 20px;
  }

  .theme-luxe .sec-phg__grid {
    column-gap: 0.75rem;
    row-gap: 2rem;
  }
}

/* ---------- Single Product View (spv) ----------
   The buy box is the shared `@components/SingleProductView`; Luxe reshapes it
   from the outside, exactly like the old Luxe wrapper did. */

.theme-luxe .sec-spv__box *,
.theme-luxe .sec-spv__box *::before,
.theme-luxe .sec-spv__box *::after {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* the product name: h1, or h2 when shown by a section on another page (data-product-name) */
.theme-luxe .sec-spv__box :is(h1, [data-product-name]) {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-spv__box h2 {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.theme-luxe .sec-spv__box :is(.btn-primary, .btn-secondary) {
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ---------- Single Product View — template one (pt1-spv) ---------- */

.theme-luxe .sec-pt1spv {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1spv__box *,
.theme-luxe .sec-pt1spv__box *::before,
.theme-luxe .sec-pt1spv__box *::after {
  border-radius: 0 !important;
}

/* the product name: h1, or h2 when shown by a section on another page (data-product-name) */
.theme-luxe .sec-pt1spv__box :is(h1, [data-product-name]) {
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt1spv__box button {
  letter-spacing: 0.15em;
}

/* Description under a hairline, Luxe body type (both buy boxes). */
.theme-luxe :is(.sec-spv__desc, .sec-pt1spv__desc) {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--lx-hair);
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

/* ---------- Product card — template one (pt1-p-g, pt1-p-t) ---------- */

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__wish {
  border-radius: 0;
  box-shadow: none;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__media {
  background: var(--lx-wash);
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__img {
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
  will-change: scale;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card:hover .sec-pt1card__img {
  scale: 1.02;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__body {
  gap: 0.375rem;
  justify-content: flex-start;
  padding: 1rem 0 1.25rem;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__name {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__rating {
  padding-top: 0;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__rating > p {
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--lx-ink-mute);
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__prices {
  margin-top: 0;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__price {
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

/* Save tag: square corner tag in ink. A merchant badge colour still wins. */
.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__save {
  top: 0;
  left: 0;
  padding: 0.375rem 0.75rem;
  border-radius: 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__save:not([style*='background:']) {
  background: var(--lx-ink) !important;
  color: #fff !important;
}

.theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__atc .product-btn {
  letter-spacing: 0.2em;
}

@media (max-width: 768px) {
  .theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card__price {
    font-size: 0.85rem;
  }
}

/* ---------- Product Grids — template one (pt1-p-g) ---------- */

.theme-luxe .sec-pt1pg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1pg__title {
  padding-bottom: 2.5rem;
  font-size: 26px;
}

/* Short hairline under the heading (Luxe's `lx-rule`). */
.theme-luxe .sec-pt1pg__title::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-pt1pg__title[style*='center']::after {
  margin-inline: auto;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1pg__title {
    padding-bottom: 1.75rem;
    font-size: 20px;
  }
}

/* ---------- Products Tab — template one (pt1-p-t) ---------- */

.theme-luxe .sec-pt1pt {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1pt__title {
  margin-bottom: 2.5rem;
  font-size: 30px;
}

.theme-luxe .sec-pt1pt__tabs {
  gap: 2.5rem;
  margin-bottom: 2.5rem;
  border-bottom: 1px solid var(--lx-hair);
}

.theme-luxe .sec-pt1pt__tab {
  margin-bottom: -1px;
  padding: 0 0 1rem;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
  opacity: 1;
  transform: none;
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-pt1pt__tab:hover {
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt1pt__tab.sec-pt1pt__tab--active {
  color: var(--lx-ink);
}

/* Underline: full-width hairline that grows from the left. */
.theme-luxe .sec-pt1pt__tab::after {
  left: 0;
  bottom: 0;
  height: 1px;
  background-color: currentColor;
  transform: none;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1pt__tab.sec-pt1pt__tab--active::after {
  width: 100%;
}

.theme-luxe .sec-pt1pt__tab:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1pt__title {
    margin-bottom: 2rem;
    font-size: 22px;
  }

  .theme-luxe .sec-pt1pt__tabs {
    gap: 1.5rem;
  }
}

/* ---------- Product Grids — template two (pt2-p-g) ---------- */

.theme-luxe .sec-pt2pg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2pg__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 3rem;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt2pg__head:has(.sec-pt2pg__title[style*='left']) {
  align-items: flex-start;
  text-align: left;
}

.theme-luxe .sec-pt2pg__title {
  width: 100%;
  margin-bottom: 0;
  font-size: 22px;
  animation: none;
}

.theme-luxe .sec-pt2pg__sub {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2pg__sub:empty {
  display: none;
}

.theme-luxe .sec-pt2pg__head:has(.sec-pt2pg__title[style*='left']) .sec-pt2pg__sub {
  margin-inline: 0;
}

.theme-luxe .sec-pt2pg .sec-pt2pg__grid {
  column-gap: 1.5rem;
  row-gap: 3rem;
}

.theme-luxe .sec-pt2pg .sec-pt2card__wish {
  border-radius: 0;
  box-shadow: none;
}

/* Card frame: no lift, no tilt, no shadow — a plate and type below it. */
.theme-luxe .sec-pt2pg .sec-pt2card__frame,
.theme-luxe .sec-pt2pg .sec-pt2card__frame:hover {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  translate: none;
}

.theme-luxe .sec-pt2pg .sec-pt2card__media {
  aspect-ratio: 3 / 4;
  background: var(--lx-wash);
}

.theme-luxe .sec-pt2pg .sec-pt2card__img {
  position: absolute;
  inset: 0;
  rotate: none;
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt2pg .sec-pt2card__frame:hover .sec-pt2card__img {
  rotate: none;
  scale: 1.02;
}

.theme-luxe .sec-pt2pg .sec-pt2card__save {
  top: 0;
  right: 0;
  padding: 0.375rem 0.625rem;
  border-radius: 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt2pg .sec-pt2card__save:not([style*='background:']) {
  background: var(--lx-ink);
}

/* Bottom scrim instead of the dark wash. */
.theme-luxe .sec-pt2pg .sec-pt2card__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  transition: opacity var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2pg .sec-pt2card__reveal {
  translate: 0 0.25rem;
  transition:
    opacity var(--lx-mid) var(--lx-ease),
    translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2pg .sec-pt2card__frame:hover .sec-pt2card__reveal {
  translate: 0 0;
}

/* "View Details" → hairline-underlined CTA. */
.theme-luxe .sec-pt2pg .sec-pt2card__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt2pg .sec-pt2card__cta::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2pg .sec-pt2card__frame:hover .sec-pt2card__cta::after {
  width: 4rem;
}

.theme-luxe .sec-pt2pg .sec-pt2card__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem 0 0;
  background: transparent;
}

.theme-luxe .sec-pt2pg .sec-pt2card__name {
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2pg .sec-pt2card__row {
  gap: 0.5rem;
}

.theme-luxe .sec-pt2pg .sec-pt2card__row > div:first-child {
  align-items: baseline;
}

.theme-luxe .sec-pt2pg .sec-pt2card__price {
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2pg .sec-pt2card__compare {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-pt2pg .sec-pt2card__rating {
  align-items: center;
}

.theme-luxe .sec-pt2pg .sec-pt2card__rating > p {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2pg .sec-pt2card__soon {
  margin-top: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2pg .sec-pt2card__atc {
  padding: 0.75rem 0 0;
  background: transparent;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2pg__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-pt2pg__title {
    font-size: 18px;
  }

  .theme-luxe .sec-pt2pg .sec-pt2pg__grid {
    column-gap: 0.75rem;
    row-gap: 2rem;
  }
}

/* ---------- Images showcase (premium-product-images) ---------- */

.theme-luxe .sec-ppi {
  color: var(--lx-ink);
}

.theme-luxe .sec-ppi__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
}

.theme-luxe .sec-ppi__content > * {
  margin-block: 0;
}

/* Pill → eyebrow. */
.theme-luxe .sec-ppi__badge {
  padding: 0;
  border-radius: 0;
  background: none;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ppi__title {
  font-size: 56px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Short hairline between title and description (Luxe's `lx-rule`). */
.theme-luxe .sec-ppi__title::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1.5rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-ppi__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ppi__price-row {
  gap: 0.75rem;
}

.theme-luxe .sec-ppi__from {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ppi__price {
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

.theme-luxe .sec-ppi__actions {
  width: 100%;
  margin-top: 1rem;
}

.theme-luxe .sec-ppi__cta {
  width: auto;
  padding: 0 1.75rem;
}

.theme-luxe .sec-ppi__frame {
  border-radius: 0;
  background: var(--lx-wash);
  box-shadow: none;
}

.theme-luxe .sec-ppi__frame--alt {
  border: 10px solid var(--bg-color, var(--lx-paper));
}

.theme-luxe .sec-ppi__img {
  scale: 1;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-ppi__frame:hover .sec-ppi__img {
  scale: 1.02;
}

/* Blurred colour glow behind the images: not part of Luxe. */
.theme-luxe .sec-ppi__glow {
  display: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-ppi__grid {
    gap: 2.5rem;
  }

  .theme-luxe .sec-ppi__title {
    font-size: 34px;
  }

  .theme-luxe .sec-ppi__price {
    font-size: 24px;
  }

  .theme-luxe .sec-ppi__actions > a,
  .theme-luxe .sec-ppi__cta {
    width: 100%;
  }

  .theme-luxe .sec-ppi__images {
    height: 420px;
  }

  .theme-luxe .sec-ppi__frame--alt {
    border-width: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe :is(.sec-pg, .sec-ps) .sec-pcard:hover .sec-pcard__img,
  .theme-luxe .sec-phg__card:hover .sec-phg__img,
  .theme-luxe :is(.sec-pt1pg, .sec-pt1pt) .sec-pt1card:hover .sec-pt1card__img,
  .theme-luxe .sec-pt2pg .sec-pt2card__frame:hover .sec-pt2card__img,
  .theme-luxe .sec-ppi__frame:hover .sec-ppi__img {
    scale: 1;
  }
}

/* ---- sections: premium ---- */
/* Luxe — premium sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Side Image With Content (pt1-siwc) ---------- */

.theme-luxe .sec-pt1siwc {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1siwc__media {
  overflow: hidden;
  background: var(--lx-wash);
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pt1siwc__media {
    min-height: 640px;
  }
}

.theme-luxe .sec-pt1siwc__img {
  position: absolute;
  inset: 0;
  transition: transform var(--lx-slow) var(--lx-ease);
  will-change: transform;
}

.theme-luxe .sec-pt1siwc__media:hover .sec-pt1siwc__img {
  transform: scale(1.02);
}

.theme-luxe .sec-pt1siwc__content {
  padding: 4rem var(--lx-gutter);
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pt1siwc__content {
    padding-block: 6rem;
  }
}

.theme-luxe .sec-pt1siwc__body {
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt1siwc__head {
  gap: 1.25rem;
}

/* Short hairline under the heading (the copy's lx-rule w-12). */
.theme-luxe .sec-pt1siwc__head::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  background: var(--lx-hair);
}

.theme-luxe .sec-pt1siwc__eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt1siwc__eyebrow:empty {
  display: none;
}

.theme-luxe .sec-pt1siwc__title {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1siwc__desc {
  white-space: pre-line;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt1siwc__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  background: transparent;
  color: var(--lx-ink);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease;
}

.theme-luxe .sec-pt1siwc__btn:hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-pt1siwc__btn:empty {
  display: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1siwc__title {
    font-size: 28px;
  }
}

/* ---------- Special Offers Grid (pt1-sog) ---------- */

.theme-luxe .sec-pt1sog {
  background-image: none;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1sog__star {
  display: none;
}

.theme-luxe .sec-pt1sog__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt1sog__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 3.5rem;
}

.theme-luxe .sec-pt1sog__badge {
  gap: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  color: var(--lx-ink-soft);
  animation: none;
}

.theme-luxe .sec-pt1sog__badge > svg {
  display: none;
}

.theme-luxe .sec-pt1sog__badge > span {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt1sog__badge:has(> span:empty),
.theme-luxe .sec-pt1sog__subtitle:empty {
  display: none;
}

.theme-luxe .sec-pt1sog__title {
  margin: 0;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1sog__subtitle {
  max-width: 560px;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt1sog__grid {
  gap: 1rem;
}

.theme-luxe .sec-pt1sog__frame {
  height: 440px;
  background: var(--lx-wash);
}

@media (min-width: 768px) {
  .theme-luxe .sec-pt1sog__frame {
    height: 560px;
  }
}

.theme-luxe .sec-pt1sog__img {
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
  will-change: scale;
}

.theme-luxe .sec-pt1sog__card:hover .sec-pt1sog__img {
  scale: 1.02;
}

.theme-luxe .sec-pt1sog__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

.theme-luxe .sec-pt1sog__tint {
  display: none;
}

.theme-luxe .sec-pt1sog__tagwrap:has(.sec-pt1sog__tagtext:empty) {
  display: none;
}

.theme-luxe .sec-pt1sog__tag {
  padding: 0;
  background: transparent;
  backdrop-filter: none;
  color: #fff;
}

.theme-luxe .sec-pt1sog__tag > svg {
  width: 14px;
  height: 14px;
}

.theme-luxe .sec-pt1sog__tagtext {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt1sog__discount {
  padding: 0.5rem 1rem;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
  scale: none;
  rotate: none;
}

.theme-luxe .sec-pt1sog__discount:empty {
  display: none;
}

.theme-luxe .sec-pt1sog__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  padding: 2rem;
  color: #fff;
  translate: none;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pt1sog__body {
    translate: 0 1rem;
  }

  .theme-luxe .sec-pt1sog__card:hover .sec-pt1sog__body {
    translate: 0 0;
  }
}

.theme-luxe .sec-pt1sog__name {
  margin: 0;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
  scale: none;
}

.theme-luxe .sec-pt1sog__desc {
  max-width: 440px;
  margin: 0;
  font-size: 14px;
  line-height: 1.625;
  color: rgba(255, 255, 255, 0.85);
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-pt1sog__desc:empty {
  display: none;
}

/* Ghost button (the copy's lx-btn-ghost); beats the global .btn-primary skin. */
.theme-luxe .sec-pt1sog .sec-pt1sog__body .sec-pt1sog__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 0.5rem;
  padding: 0 1.75rem;
  border: 1px solid currentColor;
  background: transparent;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  scale: none;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-pt1sog .sec-pt1sog__body .sec-pt1sog__cta:hover {
  border-color: #fff;
  background: #fff;
  color: #111;
}

.theme-luxe .sec-pt1sog__cta > svg {
  display: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1sog__header {
    margin-bottom: 2.5rem;
  }

  .theme-luxe .sec-pt1sog__title {
    font-size: 24px;
  }

  .theme-luxe .sec-pt1sog__grid {
    gap: 0.75rem;
  }

  .theme-luxe .sec-pt1sog__body {
    padding: 1.5rem;
  }

  .theme-luxe .sec-pt1sog__name {
    font-size: 20px;
  }
}

@media (min-width: 768px) {
  .theme-luxe .sec-pt1sog__discount {
    font-size: 14px;
  }
}

/* ---------- Social Media Gallery (pt1-smg) ---------- */

.theme-luxe .sec-pt1smg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1smg__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt1smg__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 3rem;
}

.theme-luxe .sec-pt1smg__titlewrap {
  margin: 0;
}

.theme-luxe .sec-pt1smg__titlewrap > svg {
  display: none;
}

.theme-luxe .sec-pt1smg__title {
  margin: 0;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1smg__subtitle {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt1smg__subtitle:empty {
  display: none;
}

.theme-luxe .sec-pt1smg__grid {
  gap: 0.5rem;
}

.theme-luxe .sec-pt1smg__item {
  background: var(--lx-wash);
  scale: none;
}

.theme-luxe .sec-pt1smg__media {
  background: var(--lx-wash);
}

.theme-luxe .sec-pt1smg__img {
  position: absolute;
  inset: 0;
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt1smg__item:hover .sec-pt1smg__img {
  scale: 1.02;
}

.theme-luxe .sec-pt1smg__overlay {
  transition: background-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1smg__icon {
  scale: none;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-pt1smg__icon svg {
  width: 2.5rem;
  height: 2.5rem;
  stroke-width: 1.25;
}

.theme-luxe .sec-pt1smg__follow {
  display: flex;
  justify-content: center;
  margin-top: 3rem;
}

/* "Follow us on" as the copy's lx-cta: uppercase label + a widening hairline. */
.theme-luxe .sec-pt1smg__cta {
  position: relative;
  gap: 0.5rem;
  padding-bottom: calc(0.5rem + 1px);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1smg__cta:hover {
  gap: 0.5rem;
}

.theme-luxe .sec-pt1smg__cta > svg {
  width: 1rem;
  height: 1rem;
}

.theme-luxe .sec-pt1smg__cta::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transform: translateX(-50%);
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1smg__cta:hover::after,
.theme-luxe .sec-pt1smg__cta:focus-visible::after {
  width: 4rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1smg__header {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-pt1smg__title {
    font-size: 24px;
  }

  .theme-luxe .sec-pt1smg__follow {
    margin-top: 2rem;
  }
}

/* ---------- Theme 1 Category Grids (pt1-c-g) ---------- */

.theme-luxe .sec-pt1cg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt1cg__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt1cg__title {
  margin-bottom: 2rem;
  padding-bottom: 0;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt1cg__title::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-pt1cg__title[style*='center']::after {
  margin-inline: auto;
}

.theme-luxe .sec-pt1cg__grid {
  gap: 0.75rem;
}

.theme-luxe .sec-pt1cg__card {
  background: var(--lx-wash);
  transition: none;
}

.theme-luxe .sec-pt1cg__img {
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt1cg__card:hover .sec-pt1cg__img {
  scale: 1.02;
}

.theme-luxe .sec-pt1cg__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  opacity: 1;
}

.theme-luxe .sec-pt1cg__card--overlay .sec-pt1cg__scrim {
  background: radial-gradient(circle 340px at 50% 60%, transparent 0%, rgba(0, 0, 0, 0.6) 100%);
}

.theme-luxe .sec-pt1cg__shine {
  display: none;
}

.theme-luxe .sec-pt1cg__content {
  padding: 1.5rem;
  color: #fff;
}

.theme-luxe .sec-pt1cg__lift {
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1cg__card:hover .sec-pt1cg__lift {
  translate: 0 -0.25rem;
}

.theme-luxe .sec-pt1cg__card--overlay:hover .sec-pt1cg__lift {
  translate: none;
}

.theme-luxe .sec-pt1cg__label {
  color: #fff;
}

.theme-luxe .sec-pt1cg__name {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-pt1cg__arrow {
  margin-left: 0.75rem;
  stroke-width: 1.5;
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1cg__card:hover .sec-pt1cg__arrow {
  translate: 0.375rem 0;
}

/* Centered overlay: spot vignette + a hairline that widens on hover. */
.theme-luxe .sec-pt1cg__content--center {
  gap: 0.75rem;
}

.theme-luxe .sec-pt1cg__card--overlay .sec-pt1cg__name {
  font-size: 14px;
  text-align: center;
}

.theme-luxe .sec-pt1cg__content--center::after {
  content: '';
  display: block;
  width: 2.5rem;
  height: 1px;
  background: #fff;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1cg__card--overlay:hover .sec-pt1cg__content--center::after {
  width: 5rem;
}

/* Circle style becomes a square tile with a vignette. */
.theme-luxe .sec-pt1cg__card--round {
  aspect-ratio: 1;
  overflow: hidden;
}

.theme-luxe .sec-pt1cg__card--round .sec-pt1cg__img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.theme-luxe .sec-pt1cg__card--round .sec-pt1cg__content {
  flex-direction: column;
  gap: 0.5rem;
  padding: 0;
  background: radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%);
}

.theme-luxe .sec-pt1cg__card--round .sec-pt1cg__content::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: #fff;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt1cg__card--round:hover .sec-pt1cg__content::after {
  width: 3.5rem;
}

.theme-luxe .sec-pt1cg__link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt1cg__title {
    margin-bottom: 1.5rem;
    font-size: 20px;
  }

  .theme-luxe .sec-pt1cg__content {
    padding: 1rem;
  }

  .theme-luxe .sec-pt1cg__name {
    font-size: 11px;
  }

  .theme-luxe .sec-pt1cg__card--overlay .sec-pt1cg__name {
    font-size: 12px;
  }
}

/* ---------- Hero Section (pt2-hero) — dark, bottom-anchored ---------- */

.theme-luxe .sec-pt2hero {
  align-items: flex-end;
  background-color: #000;
  color: #fff;
}

.theme-luxe .sec-pt2hero__overlay {
  background:
    linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%),
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    rgba(0, 0, 0, 0.25);
}

.theme-luxe .sec-pt2hero__content {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt2hero__title {
  padding-inline: 0;
  font-size: 88px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt2hero__accent {
  font-weight: 300;
  color: rgba(255, 255, 255, 0.8);
}

.theme-luxe .sec-pt2hero__subtitle {
  max-width: 36rem;
  margin-bottom: 2.5rem;
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.75);
  animation: lx-fade 900ms var(--lx-ease) 200ms both;
}

.theme-luxe .sec-pt2hero__actions {
  flex-direction: row;
  gap: 1rem;
  margin-top: 0;
  animation: lx-fade 900ms var(--lx-ease) 400ms both;
}

.theme-luxe .sec-pt2hero__actions .sec-pt2hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: auto;
  height: auto;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid currentColor;
  background: transparent;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-pt2hero__actions .sec-pt2hero__btn:hover {
  border-color: #fff;
  background: #fff;
  color: #111;
}

.theme-luxe .sec-pt2hero__actions .sec-pt2hero__btn--main {
  border-color: #fff;
  background: #fff;
  color: #000;
}

.theme-luxe .sec-pt2hero__actions .sec-pt2hero__btn--main:hover {
  background: transparent;
  color: #fff;
}

.theme-luxe .sec-pt2hero__btn a {
  display: inline-flex;
  align-items: center;
  color: inherit;
}

.theme-luxe .sec-pt2hero__btn svg {
  width: 1rem;
  height: 1rem;
  margin-left: 0.6rem;
  transition: translate var(--lx-fast) ease;
}

/* Two classes deep already; the extra .sec-pt2hero beats the global .btn-primary skin. */
.theme-luxe .sec-pt2hero .sec-pt2hero__actions .sec-pt2hero__btn--main:not(:disabled) {
  border-color: #fff;
  background: #fff;
  color: #000;
}

.theme-luxe .sec-pt2hero .sec-pt2hero__actions .sec-pt2hero__btn--main:not(:disabled):hover {
  background: transparent;
  color: #fff;
}

.theme-luxe .sec-pt2hero .sec-pt2hero__actions .sec-pt2hero__btn--alt:not(:disabled) {
  border-color: currentColor;
  background: transparent;
  color: #fff;
}

.theme-luxe .sec-pt2hero .sec-pt2hero__actions .sec-pt2hero__btn--alt:not(:disabled):hover {
  border-color: #fff;
  background: #fff;
  color: #111;
}

@media (max-width: 1023px) {
  .theme-luxe .sec-pt2hero__title {
    font-size: 72px;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2hero__title {
    font-size: 40px;
  }

  .theme-luxe .sec-pt2hero__subtitle {
    font-size: 15px;
  }

  .theme-luxe .sec-pt2hero__actions {
    flex-direction: column;
    width: 100%;
  }
}

/* ---------- Category Grids (pt2-c-g) ---------- */

.theme-luxe .sec-pt2cg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2cg__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt2cg__title {
  margin-bottom: 3rem;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt2cg__card {
  background: var(--lx-wash);
  transition: none;
}

.theme-luxe .sec-pt2cg__img {
  filter: none;
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card:hover .sec-pt2cg__img {
  filter: none;
  scale: 1.02;
}

/* Flat dark wash + vignette instead of the blue/purple/pink multiply tints. */
.theme-luxe .sec-pt2cg__tint {
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%),
    rgba(0, 0, 0, 0.25);
  mix-blend-mode: normal;
  transition: opacity var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card:hover .sec-pt2cg__tint {
  opacity: 0.6;
}

.theme-luxe .sec-pt2cg__content {
  gap: 0.75rem;
}

.theme-luxe .sec-pt2cg__name {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
  scale: none;
}

.theme-luxe .sec-pt2cg__bar {
  display: none;
}

/* "Explore Now" as an lx-cta: label + a widening hairline. */
.theme-luxe .sec-pt2cg__more {
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0;
  transition: opacity var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card:hover .sec-pt2cg__more {
  color: #fff;
  opacity: 1;
}

.theme-luxe .sec-pt2cg__more::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card:hover .sec-pt2cg__more::after {
  width: 4rem;
}

.theme-luxe .sec-pt2cg__corner {
  width: 2.5rem;
  height: 2.5rem;
  border-width: 0;
  border-color: rgba(255, 255, 255, 0.6);
  transition: opacity var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__corner.top-4 {
  border-top-width: 1px;
  border-right-width: 1px;
}

.theme-luxe .sec-pt2cg__corner.bottom-4 {
  border-bottom-width: 1px;
  border-left-width: 1px;
}

/* Circle styles: a square plate with the label set beneath it. */
.theme-luxe .sec-pt2cg__card--round {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  aspect-ratio: auto;
  overflow: visible;
  background: transparent;
}

.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__img {
  position: relative;
  aspect-ratio: 1;
  height: auto;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__tint,
.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__corner,
.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__more {
  display: none;
}

.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__content {
  position: static;
  padding: 0;
  border-radius: 0;
}

.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.82rem;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2cg__card--round .sec-pt2cg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card--round:hover .sec-pt2cg__name::after {
  width: 4rem;
}

/* Overlay style: bottom scrim, label bottom-left with a hairline. */
.theme-luxe .sec-pt2cg__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  opacity: 1;
}

.theme-luxe .sec-pt2cg__shine {
  display: none;
}

.theme-luxe .sec-pt2cg__content--overlay {
  justify-content: flex-end;
  align-items: flex-start;
}

.theme-luxe .sec-pt2cg__content--overlay .sec-pt2cg__label {
  color: #fff;
}

.theme-luxe .sec-pt2cg__content--overlay .sec-pt2cg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
}

.theme-luxe .sec-pt2cg__content--overlay .sec-pt2cg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2cg__card--overlay:hover .sec-pt2cg__name::after {
  width: 4rem;
}

.theme-luxe .sec-pt2cg__link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pt2cg__card--normal .sec-pt2cg__name[class*='lg:text-2xl'] {
    font-size: 22px;
  }

  .theme-luxe .sec-pt2cg__card--normal .sec-pt2cg__name[class*='lg:text-lg'] {
    font-size: 16px;
  }

  .theme-luxe .sec-pt2cg__card--normal .sec-pt2cg__more {
    display: inline-flex;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2cg__title {
    margin-bottom: 2rem;
    font-size: 18px;
  }

  .theme-luxe .sec-pt2cg__grid {
    gap: 0.75rem;
  }
}

/* ---------- Before / After (pt2-ba-g) ---------- */

.theme-luxe .sec-pt2ba {
  background-image: none;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2ba__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt2ba__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 3.5rem;
}

.theme-luxe .sec-pt2ba__title {
  margin: 0;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2ba__subtitle {
  max-width: 42rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2ba__subtitle:empty {
  display: none;
}

.theme-luxe .sec-pt2ba__grid {
  gap: 1.5rem;
}

.theme-luxe .sec-pt2ba__slider {
  height: 480px;
  max-width: none;
  margin: 0;
  background: var(--lx-wash);
  cursor: ew-resize;
  touch-action: pan-y;
}

.theme-luxe .sec-pt2ba__handle {
  width: 1px;
}

.theme-luxe .sec-pt2ba__grip {
  border-radius: 0;
  box-shadow: none;
}

.theme-luxe .sec-pt2ba__gripbar {
  width: 1px;
  background: #000;
}

.theme-luxe .sec-pt2ba__tag {
  padding: 0.375rem 0.75rem;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.5;
  text-transform: uppercase;
  pointer-events: none;
}

.theme-luxe .sec-pt2ba__caption {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0;
  padding-top: 1.25rem;
}

.theme-luxe .sec-pt2ba__name {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2ba__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2ba__header {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-pt2ba__title {
    font-size: 22px;
  }

  .theme-luxe .sec-pt2ba__grid {
    gap: 3rem;
  }

  .theme-luxe .sec-pt2ba__slider {
    height: 360px;
  }
}

/* ---------- Expandable Category Grid (pt2-ec-g) ---------- */

.theme-luxe .sec-pt2ecg {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2ecg__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt2ecg__title {
  margin-bottom: 3rem;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pt2ecg__track {
  gap: 0.25rem;
}

.theme-luxe .sec-pt2ecg__item {
  background: var(--lx-wash);
  transition: flex-grow var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt2ecg__img {
  position: absolute;
  inset: 0;
  transition: transform var(--lx-slow) var(--lx-ease), scale var(--lx-slow) var(--lx-ease);
}

/* The copy's lx-scrim-b, deepened on the panels that aren't open. */
.theme-luxe .sec-pt2ecg__shade {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  transition: background-color var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt2ecg__label {
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Label as an lx-cta--start: uppercase + a widening hairline. */
.theme-luxe .sec-pt2ecg__name {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-pt2ecg__name::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2ecg__item:hover .sec-pt2ecg__name::after,
.theme-luxe .sec-pt2ecg__item:focus-visible .sec-pt2ecg__name::after {
  width: 4rem;
}

.theme-luxe .sec-pt2ecg__item:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 2px;
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pt2ecg__track {
    height: 560px;
  }

  .theme-luxe .sec-pt2ecg__item:not([class*='flex-[4]']) .sec-pt2ecg__img {
    scale: 1.06;
  }

  .theme-luxe .sec-pt2ecg__shade {
    opacity: 1;
  }

  .theme-luxe .sec-pt2ecg__item:not([class*='flex-[4]']) .sec-pt2ecg__shade {
    background-color: rgba(0, 0, 0, 0.3);
  }

  .theme-luxe .sec-pt2ecg__item:not([class*='flex-[4]']) .sec-pt2ecg__label {
    translate: 0 0.75rem;
  }

  .theme-luxe .sec-pt2ecg__name {
    font-size: 15px;
  }
}

@media (max-width: 1023px) {
  .theme-luxe .sec-pt2ecg__item {
    aspect-ratio: 3 / 4;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2ecg__title {
    margin-bottom: 2rem;
    font-size: 20px;
  }

  .theme-luxe .sec-pt2ecg__label {
    padding: 1rem;
  }
}

/* ---------- Scroll Driven Product Showcase (pt2-sd-p) ---------- */

.theme-luxe .sec-pt2sdp {
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2sdp__panel {
  counter-increment: lx-sdp;
  scale: none;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-pt2sdp__panelinner {
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt2sdp__grid {
  width: 100%;
  gap: 4rem;
}

/* Copy column: numbered eyebrow (01, 02 …) from a CSS counter, then heading,
   body and an lx-cta link. */
.theme-luxe .sec-pt2sdp__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-pt2sdp__copy::before {
  content: counter(lx-sdp, decimal-leading-zero);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2sdp__title {
  margin: 0;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2sdp__desc {
  max-width: 28rem;
  margin: 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt2sdp__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding-top: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt2sdp__cta > svg {
  display: none;
}

.theme-luxe .sec-pt2sdp__cta::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pt2sdp__cta:hover::after,
.theme-luxe .sec-pt2sdp__cta:focus-visible::after {
  width: 4rem;
}

.theme-luxe .sec-pt2sdp__media > img {
  background: var(--lx-wash);
}

.theme-luxe .sec-pt2sdp__stage {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
  counter-reset: lx-sdp;
}

@media (min-width: 768px) {
  .theme-luxe .sec-pt2sdp__img {
    width: 400px;
    aspect-ratio: 3 / 4;
  }
}

@media (max-width: 1023px) {
  .theme-luxe .sec-pt2sdp__title {
    font-size: 32px;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt2sdp__grid {
    gap: 1.5rem;
  }

  .theme-luxe .sec-pt2sdp__copy {
    gap: 0.75rem;
  }

  .theme-luxe .sec-pt2sdp__title {
    font-size: 22px;
  }

  .theme-luxe .sec-pt2sdp__desc {
    font-size: 0.92rem;
  }
}

/* ---------- Image With Content (pt3-img-content) ---------- */

.theme-luxe .sec-pt3ic {
  padding: 7rem 0;
  color: var(--lx-ink);
}

.theme-luxe .sec-pt3ic__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pt3ic__grid {
  gap: 4rem;
}

.theme-luxe .sec-pt3ic__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.theme-luxe .sec-pt3ic__eyebrow {
  margin-bottom: 1.25rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt3ic__title {
  margin-bottom: 1.5rem;
  font-size: 52px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Short hairline under the heading (the copy's lx-rule w-12). */
.theme-luxe .sec-pt3ic__title::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1.5rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-pt3ic__desc {
  max-width: 480px;
  margin-bottom: 2.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pt3ic .sec-pt3ic__btn,
.theme-luxe .sec-pt3ic .sec-pt3ic__btn:not(:disabled) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  background: var(--lx-ink);
  color: var(--lx-paper);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-pt3ic .sec-pt3ic__btn:hover,
.theme-luxe .sec-pt3ic .sec-pt3ic__btn:not(:disabled):hover {
  border-color: var(--lx-accent);
  background: var(--lx-accent);
  color: #fff;
}

.theme-luxe .sec-pt3ic__frame {
  background: var(--lx-wash);
}

.theme-luxe .sec-pt3ic__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pt3ic__frame:hover .sec-pt3ic__img {
  scale: 1.02;
}

/* Price tag sits flush in the image corner, ink on paper. */
.theme-luxe .sec-pt3ic__price {
  right: 0;
  bottom: 0;
  padding: 1.5rem 2rem;
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-pt3ic__pricelabel {
  margin-bottom: 0.5rem;
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  opacity: 0.7;
}

.theme-luxe .sec-pt3ic__pricevalue {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pt3ic {
    padding-block: 4rem;
  }

  .theme-luxe .sec-pt3ic__grid {
    gap: 2.5rem;
  }

  .theme-luxe .sec-pt3ic__title {
    font-size: 34px;
  }

  .theme-luxe .sec-pt3ic__price {
    padding: 1.25rem 1.5rem;
  }

  .theme-luxe .sec-pt3ic__pricevalue {
    font-size: 22px;
  }
}

/* ---------- FAQ (premium-faq) — hairline-ruled list ---------- */

.theme-luxe .sec-pfaq {
  color: var(--lx-ink);
}

.theme-luxe .sec-pfaq__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pfaq__headinner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  margin-top: 0;
  animation: lx-rise 900ms var(--lx-ease) both;
}

.theme-luxe .sec-pfaq__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
  animation: none;
  opacity: 1;
}

.theme-luxe .sec-pfaq__title {
  margin: 0;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
  animation: none;
  opacity: 1;
}

.theme-luxe .sec-pfaq__title::after {
  content: '';
  display: block;
  width: 3rem;
  height: 1px;
  margin-top: 1.25rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-pfaq__desc {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
  animation: none;
  opacity: 1;
}

.theme-luxe .sec-pfaq__list {
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-pfaq__item {
  border: 0;
  border-bottom: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
}

.theme-luxe .sec-pfaq__answer {
  padding-right: 2.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pfaq__layout {
  gap: 2.5rem;
}

.theme-luxe .sec-pfaq__head {
  max-width: 440px;
}

.theme-luxe .sec-pfaq__q {
  gap: 1.5rem;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pfaq__q:hover {
  color: var(--lx-ink);
}

.theme-luxe .sec-pfaq__q:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 2px;
}

.theme-luxe .sec-pfaq__q > svg {
  flex-shrink: 0;
  stroke-width: 1.25;
  color: var(--lx-ink-soft);
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-pfaq__a {
  color: var(--lx-ink-soft);
}

@media (min-width: 1024px) {
  .theme-luxe .sec-pfaq__layout {
    gap: 6rem;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-pfaq__title {
    font-size: 24px;
  }
}

/* ---------- Lookbook (premium-lookbook) ---------- */

.theme-luxe .sec-plook {
  color: var(--lx-ink);
}

.theme-luxe .sec-plook__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-plook__head {
  margin-bottom: 3.5rem;
}

.theme-luxe .sec-plook__headmain {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.theme-luxe .sec-plook__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-plook__title {
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-plook__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-plook__item {
  background: var(--lx-wash);
}

.theme-luxe .sec-plook__img {
  position: absolute;
  inset: 0;
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-plook__item:hover .sec-plook__img {
  scale: 1.02;
}

.theme-luxe .sec-plook__overlay:has(.sec-plook__name:empty) {
  display: none;
}

.theme-luxe .sec-plook__overlay {
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-plook__cap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-inline: 0;
  color: #fff;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-plook__cap::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: #fff;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-plook__item:hover .sec-plook__cap::after {
  width: 3.5rem;
}

.theme-luxe .sec-plook__name {
  padding-bottom: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  scale: none;
}

.theme-luxe .sec-plook__name:hover {
  color: #fff;
  text-decoration: none;
  scale: none;
}

.theme-luxe .sec-plook__grid {
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .theme-luxe .sec-plook__grid {
    gap: 0.75rem;
  }
}

/* Desktop: a vignette fades in on hover; the label rises into place. */
@media (min-width: 1024px) {
  .theme-luxe .sec-plook__shade {
    background: radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%);
    opacity: 0;
    transition: opacity var(--lx-mid) var(--lx-ease);
  }

  .theme-luxe .sec-plook__item:hover .sec-plook__shade {
    background: radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%);
    opacity: 1;
  }

  .theme-luxe .sec-plook__cap {
    align-items: center;
  }

  .theme-luxe .sec-plook__desc {
    padding-left: 1.5rem;
    border-left: 1px solid var(--lx-hair);
  }

  .theme-luxe .sec-plook__item:not(:hover) .sec-plook__cap {
    translate: 0 0.75rem;
  }
}

/* Below desktop: permanent bottom scrim, label bottom-left. */
@media (max-width: 1023px) {
  .theme-luxe .sec-plook__shade,
  .theme-luxe .sec-plook__item:hover .sec-plook__shade {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  }

  .theme-luxe .sec-plook__overlay {
    align-items: flex-end;
    justify-content: flex-start;
    padding: 1rem;
    opacity: 1;
  }

  .theme-luxe .sec-plook__cap {
    align-items: flex-start;
    text-align: left;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-plook__head {
    gap: 1.25rem;
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-plook__title {
    font-size: 30px;
  }

  .theme-luxe .sec-plook__name {
    font-size: 12px;
  }
}

/* ---------- Categories Slider (pt3-c-s) ---------- */

.theme-luxe .sec-pcs {
  color: var(--lx-ink);
}

.theme-luxe .sec-pcs__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-pcs__header {
  margin-bottom: 2rem;
}

.theme-luxe .sec-pcs__headtext {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.theme-luxe .sec-pcs__headtext[style*='center'] {
  align-items: center;
}

.theme-luxe .sec-pcs__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-pcs__title {
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-pcs__img {
  scale: none;
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-pcs__link:hover .sec-pcs__img,
.theme-luxe .sec-pcs__card:hover .sec-pcs__img {
  scale: 1.02;
}

/* Overlay style: 3:4 plate, bottom scrim, uppercase label that rises. */
.theme-luxe .sec-pcs__img--cover {
  aspect-ratio: 3 / 4;
  height: auto;
  background: var(--lx-wash);
}

.theme-luxe .sec-pcs__shade {
  inset: 0;
  height: auto;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  opacity: 1;
}

.theme-luxe .sec-pcs__body {
  padding: 1.5rem;
  color: #fff;
  translate: 0 0.75rem;
  transition: translate var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pcs__link:hover .sec-pcs__body,
.theme-luxe .sec-pcs__card:hover .sec-pcs__body {
  translate: 0 0;
}

.theme-luxe .sec-pcs__name {
  margin-bottom: 0.75rem;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.15em;
  line-height: 1.25;
  text-transform: uppercase;
  color: #fff;
  text-shadow: none;
}

.theme-luxe .sec-pcs__more {
  transition-duration: var(--lx-mid);
}

.theme-luxe .sec-pcs__moretext {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.theme-luxe .sec-pcs__more > svg {
  stroke-width: 1.5;
}

/* Minimal overlay: label only, no "explore" row, no rise. */
.theme-luxe .sec-pcs__card--minimal {
  background: var(--lx-wash);
}

.theme-luxe .sec-pcs__card--minimal .sec-pcs__body {
  padding: 1rem;
  translate: none;
}

.theme-luxe .sec-pcs__card--minimal .sec-pcs__name {
  margin: 0;
  font-size: 14px;
}

/* Circle style becomes a square plate with the label under it. */
.theme-luxe .sec-pcs__card--round .sec-pcs__media {
  aspect-ratio: 1;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-pcs__card--round .sec-pcs__img {
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.theme-luxe .sec-pcs__label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Simple card: plate + label + a short hairline that widens on hover. */
.theme-luxe .sec-pcs__card--simple .sec-pcs__media {
  background: var(--lx-wash);
}

.theme-luxe .sec-pcs__caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.theme-luxe .sec-pcs__caption::after {
  content: '';
  display: block;
  width: 1.5rem;
  height: 1px;
  background: var(--lx-ink);
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-pcs__card--simple:hover .sec-pcs__caption::after {
  width: 3rem;
}

.theme-luxe .sec-pcs__fade,
.theme-luxe .sec-pcs__spacer {
  display: none;
}

.theme-luxe .sec-pcs__track {
  padding-block: 0;
}

.theme-luxe .sec-pcs__slide {
  margin-right: 1rem;
}

.theme-luxe .sec-pcs__link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

/* Square hairline arrows, lifted out of the track into the header band. */
.theme-luxe .sec-pcs__arrow {
  top: auto;
  bottom: calc(100% + 2rem);
  left: auto;
  right: 0;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--lx-hair);
  background: transparent;
  color: var(--lx-ink);
  translate: none;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease;
}

.theme-luxe .sec-pcs__arrow--prev {
  right: 3.25rem;
}

.theme-luxe .sec-pcs__arrow:hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-pcs__arrow:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

.theme-luxe .sec-pcs__arrow > svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.5;
}

@media (max-width: 768px) {
  .theme-luxe .sec-pcs__title {
    font-size: 24px;
  }

  .theme-luxe .sec-pcs__slide {
    margin-right: 0.5rem;
  }

  .theme-luxe .sec-pcs__arrow {
    width: 2.25rem;
    height: 2.25rem;
  }

  .theme-luxe .sec-pcs__arrow--prev {
    right: 2.75rem;
  }

  .theme-luxe .sec-pcs__body {
    padding: 1rem;
  }

  .theme-luxe .sec-pcs__name {
    font-size: 1em;
  }

  .theme-luxe .sec-pcs__card--minimal .sec-pcs__name {
    font-size: 0.9em;
  }
}

/* ---------- Testimonials (pt3-testimonials) — quote first, person below ---------- */

.theme-luxe .sec-ptst {
  color: var(--lx-ink);
}

.theme-luxe .sec-ptst__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-ptst__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ptst__subtitle {
  margin: 0;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* Grid re-orders the card: quote, hairline, then avatar + name side by side. */
.theme-luxe .sec-ptst__card {
  display: grid;
  grid-template-columns: 1fr auto auto 1fr;
  grid-template-areas:
    'quote quote quote quote'
    'rule rule rule rule'
    '. avatar person .';
  align-items: center;
  column-gap: 1rem;
  max-width: 48rem;
}

.theme-luxe .sec-ptst__card::after {
  content: '';
  grid-area: rule;
  justify-self: center;
  width: 2.5rem;
  height: 1px;
  margin-bottom: 2rem;
  background: var(--lx-hair);
}

.theme-luxe .sec-ptst__quote {
  grid-area: quote;
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-ptst__text {
  font-size: 32px;
  font-style: normal;
  font-weight: 300;
  letter-spacing: 0.01em;
  line-height: 1.5;
  color: var(--lx-ink);
}

.theme-luxe .sec-ptst__avatarwrap {
  grid-area: avatar;
  margin: 0;
}

.theme-luxe .sec-ptst__avatar {
  width: 3rem;
  height: 3rem;
  flex-shrink: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-ptst__initial {
  background: transparent;
  color: var(--lx-ink);
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
}

.theme-luxe .sec-ptst__person {
  grid-area: person;
  align-items: flex-start;
  text-align: left;
}

.theme-luxe .sec-ptst__name {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-ptst__role {
  margin-top: 0.25rem;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ptst__titlewrap {
  margin-bottom: 1rem;
}

.theme-luxe .sec-ptst__subwrap {
  margin-bottom: 3rem;
}

/* Dots → hairline ticks; the active one is longer and ink. */
.theme-luxe .sec-ptst__dots {
  gap: 0.5rem;
}

.theme-luxe .sec-ptst__dot {
  width: 1.25rem;
  height: 24px;
  padding-block: 11.5px;
  border-radius: 0;
  background-color: var(--lx-hair-strong);
  background-clip: content-box;
  transition:
    width var(--lx-mid) var(--lx-ease),
    background-color var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-ptst__dot:hover {
  background-color: var(--lx-ink-soft);
}

.theme-luxe .sec-ptst__dot[class*='bg-primary-600'] {
  width: 2.5rem;
  background-color: var(--lx-ink);
}

.theme-luxe .sec-ptst__dot:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 2px;
}

@media (max-width: 1023px) {
  .theme-luxe .sec-ptst__text {
    font-size: 26px;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-ptst__subtitle {
    font-size: 24px;
  }

  .theme-luxe .sec-ptst__subwrap {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-ptst__text {
    font-size: 20px;
  }
}

/* ---- sections: nexus ---- */
/* Luxe — nexus sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Nexus Hero (nexus-hero) — square plate, hairline tags ---------- */

.theme-luxe .sec-nxhero {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxhero__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
  gap: 5rem;
}

.theme-luxe .sec-nxhero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.theme-luxe .sec-nxhero__eyebrow {
  display: flex;
  gap: 0.75rem;
}

/* Dot → short hairline. */
.theme-luxe .sec-nxhero__dot {
  width: 2rem;
  height: 1px;
  border-radius: 0;
  background: var(--lx-ink-soft);
}

.theme-luxe .sec-nxhero__label {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Inline letter-spacing on the h1 — !important to win. */
.theme-luxe .sec-nxhero__title {
  font-size: 56px;
  font-weight: 700;
  letter-spacing: 0.08em !important;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxhero__desc {
  margin-bottom: 2.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-nxhero__title,
.theme-luxe .sec-nxhero__desc,
.theme-luxe .sec-nxhero__eyebrow,
.theme-luxe .sec-nxhero__ctas,
.theme-luxe .sec-nxhero__tags {
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxhero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 48px;
  padding: 0 1.75rem;
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-nxhero__btn--primary {
  background: var(--lx-ink);
  color: var(--lx-paper);
  border: 1px solid var(--lx-ink);
}

.theme-luxe .sec-nxhero__btn--primary:hover {
  background: var(--lx-accent);
  border-color: var(--lx-accent);
  color: #fff;
}

.theme-luxe .sec-nxhero__btn--outline {
  background: transparent;
  color: var(--lx-ink);
  border: 1px solid var(--lx-ink);
}

.theme-luxe .sec-nxhero__btn--outline:hover {
  background: var(--lx-ink);
  color: var(--lx-paper);
}

.theme-luxe .sec-nxhero__btn:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

/* Spec tags: chips → hairline-ruled uppercase list. */
.theme-luxe .sec-nxhero__tags {
  gap: 0.5rem 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-nxhero__tag {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Circle → 4:5 square plate. */
.theme-luxe .sec-nxhero__frame {
  width: 400px;
  height: 500px;
}

.theme-luxe .sec-nxhero__glow {
  display: none;
}

.theme-luxe .sec-nxhero__img {
  border: 0;
  border-radius: 0;
  background: var(--lx-wash);
}

.theme-luxe .sec-nxhero__float-img {
  border-radius: 0;
  border: 3px solid var(--lx-paper);
  background: var(--lx-wash);
}

.theme-luxe .sec-nxhero__float--1 { top: 1.5rem; right: -2.5rem; left: auto; bottom: auto; }
.theme-luxe .sec-nxhero__float--2 { bottom: 2.5rem; right: -3.5rem; left: auto; top: auto; }
.theme-luxe .sec-nxhero__float--3 { bottom: 1.5rem; left: -2rem; right: auto; top: auto; }
.theme-luxe .sec-nxhero__float--4 { top: 22%; left: -6rem; right: auto; bottom: auto; }

.theme-luxe .sec-nxhero__float--1 .sec-nxhero__float-img,
.theme-luxe .sec-nxhero__float--3 .sec-nxhero__float-img {
  width: 5rem;
  height: 6rem;
}

.theme-luxe .sec-nxhero__float--2 .sec-nxhero__float-img {
  width: 6rem;
  height: 7rem;
}

.theme-luxe .sec-nxhero__float--4 .sec-nxhero__float-img {
  width: 6rem;
  height: 8rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxhero__inner {
    gap: 3rem;
  }

  .theme-luxe .sec-nxhero__content {
    align-items: center;
  }

  .theme-luxe .sec-nxhero__ctas {
    width: 100%;
  }

  .theme-luxe .sec-nxhero__title {
    font-size: 30px;
  }

  .theme-luxe .sec-nxhero__frame {
    width: 240px;
    height: 300px;
  }

  .theme-luxe .sec-nxhero__float--1 { right: -1rem; }
  .theme-luxe .sec-nxhero__float--2 { right: -1.25rem; }
  .theme-luxe .sec-nxhero__float--3 { left: -1rem; }
  .theme-luxe .sec-nxhero__float--4 { left: -1.25rem; }

  .theme-luxe .sec-nxhero__float--1 .sec-nxhero__float-img,
  .theme-luxe .sec-nxhero__float--2 .sec-nxhero__float-img,
  .theme-luxe .sec-nxhero__float--3 .sec-nxhero__float-img {
    width: 2.5rem;
    height: 3rem;
  }

  .theme-luxe .sec-nxhero__float--4 .sec-nxhero__float-img {
    width: 2.25rem;
    height: 3rem;
  }
}

/* ---------- Nexus Featured Grid (nexus-feat-g) — square bento, scrim captions ---------- */

.theme-luxe .sec-nxfeat {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxfeat__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-nxfeat__head {
  gap: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--lx-hair);
}

/* Centred alignment stacks the header like the Luxe copy. */
.theme-luxe .sec-nxfeat__head:has(> .sec-nxfeat__heading.text-center) {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.theme-luxe .sec-nxfeat__heading {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.theme-luxe .sec-nxfeat__heading.text-center {
  align-items: center;
}

.theme-luxe .sec-nxfeat__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Inline letter-spacing on the h2 — !important to win. */
.theme-luxe .sec-nxfeat__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* View-more: text + a hairline that grows on hover. */
.theme-luxe .sec-nxfeat__more {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0;
  border: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxfeat__more::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-nxfeat__more:hover {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxfeat__more:hover::after {
  width: 4rem;
}

.theme-luxe .sec-nxfeat__grid {
  gap: 0.5rem;
  grid-auto-rows: 300px;
}

.theme-luxe .sec-nxfeat__card {
  background: var(--lx-wash);
}

/* Bottom scrim over every tile. */
.theme-luxe .sec-nxfeat__card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

/* Tailwind v4 scales via the `scale` property, not `transform`. */
.theme-luxe .sec-nxfeat__img {
  transition-property: transform, scale;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxfeat__card:hover .sec-nxfeat__img {
  scale: 1.02;
}

.theme-luxe .sec-nxfeat__shine {
  display: none;
}

.theme-luxe .sec-nxfeat__badge {
  top: 0;
  left: 0;
  z-index: 2;
  padding: 0.375rem 0.75rem;
  background: var(--lx-ink);
  color: var(--lx-paper);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-nxfeat__caption {
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1.25rem;
  background: none;
  translate: 0 0.25rem;
  transition-property: transform, translate;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxfeat__card--featured .sec-nxfeat__caption {
  padding: 2rem;
}

.theme-luxe .sec-nxfeat__card:hover .sec-nxfeat__caption {
  translate: 0 0;
}

.theme-luxe .sec-nxfeat__name {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-nxfeat__card--featured .sec-nxfeat__name {
  font-size: 15px;
  letter-spacing: 0.18em;
}

.theme-luxe .sec-nxfeat__price {
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.75);
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxfeat__title {
    font-size: 20px;
  }

  .theme-luxe .sec-nxfeat__grid {
    grid-auto-rows: 170px;
  }

  .theme-luxe .sec-nxfeat__caption {
    padding: 0.75rem;
  }

  .theme-luxe .sec-nxfeat__card--featured .sec-nxfeat__caption {
    padding: 1rem;
  }

  .theme-luxe .sec-nxfeat__name {
    font-size: 11px;
  }

  .theme-luxe .sec-nxfeat__card--featured .sec-nxfeat__name {
    font-size: 12px;
  }
}

/* ---------- Nexus Category Showcase (nexus-cat) — square plates, CTA captions ---------- */

.theme-luxe .sec-nxcat {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxcat__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-nxcat__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 3rem;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxcat__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Inline letter-spacing on the h2 — !important to win. */
.theme-luxe .sec-nxcat__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxcat__grid {
  gap: 0.5rem;
}

.theme-luxe .sec-nxcat__media {
  background: var(--lx-wash);
}

/* Tailwind v4 scales via the `scale` property, not `transform`. */
.theme-luxe .sec-nxcat__img {
  transition-property: transform, scale;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxcat__card:hover .sec-nxcat__img {
  scale: 1.02;
}

.theme-luxe .sec-nxcat__overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}

/* Count above the name, hairline under it (Luxe CTA). */
.theme-luxe .sec-nxcat__caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
  padding: 1.5rem;
}

.theme-luxe .sec-nxcat__count {
  order: -1;
  margin: 0;
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.theme-luxe .sec-nxcat__name {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-nxcat__line {
  width: 2rem;
  height: 1px;
  margin-top: 0.125rem;
  background: #fff;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-nxcat__card:hover .sec-nxcat__line {
  width: 4rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxcat__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-nxcat__title {
    font-size: 20px;
  }

  .theme-luxe .sec-nxcat__caption {
    padding: 0.75rem;
  }

  .theme-luxe .sec-nxcat__name {
    font-size: 11px;
  }
}

/* ---------- Nexus Product Split (nexus-split) — plate + hairline spec table ---------- */

.theme-luxe .sec-nxsplit {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxsplit__row.wrap {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

/* Fade only — no sideways slide; slow zoom on hover. */
.theme-luxe .sec-nxsplit__media {
  min-height: 600px;
  overflow: hidden;
  background: var(--lx-wash);
  translate: none;
}

.theme-luxe .sec-nxsplit__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-nxsplit__media:hover .sec-nxsplit__img {
  scale: 1.02;
}

.theme-luxe .sec-nxsplit__content {
  padding-inline: 5rem;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxsplit__body {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.theme-luxe .sec-nxsplit__eyebrow {
  margin-bottom: 1rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Inline letter-spacing on the h2 — !important to win. */
.theme-luxe .sec-nxsplit__title {
  margin-bottom: 1.25rem;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxsplit__text {
  margin-bottom: 2.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-nxsplit__specs {
  margin-bottom: 2.5rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-nxsplit__spec {
  margin: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 0.875rem;
  border-bottom: 1px solid var(--lx-hair);
}

.theme-luxe .sec-nxsplit__dot {
  display: none;
}

.theme-luxe .sec-nxsplit__spec-label {
  width: auto;
  flex-shrink: 0;
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-nxsplit__spec-value {
  font-size: 0.875rem;
  font-weight: 400;
  text-align: right;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxsplit__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  border-radius: 0;
  background: var(--lx-ink);
  color: var(--lx-paper);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-nxsplit__btn:hover {
  background: var(--lx-accent);
  border-color: var(--lx-accent);
  color: #fff;
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxsplit__media {
    min-height: 320px;
  }

  .theme-luxe .sec-nxsplit__content {
    padding: 3rem var(--lx-gutter);
  }

  .theme-luxe .sec-nxsplit__title {
    font-size: 22px;
  }
}

/* ---------- Nexus Brand Showcase (nexus-brands) — hairline frames, ink type ---------- */

/* The default draws its frames and label colours with inline styles, so the
   hairline overrides need !important. Border STYLES (incl. the showcase
   grid's last-column `none`) are kept — only colours/widths change. */

.theme-luxe .sec-nxbrand {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxbrand__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-nxbrand__title {
  margin-bottom: 2.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft) !important;
}

.theme-luxe .sec-nxbrand__strip,
.theme-luxe .sec-nxbrand__cards,
.theme-luxe .sec-nxbrand__showcase {
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Strip: frame on the left/top, every cell closes its right/bottom. */
.theme-luxe .sec-nxbrand__strip {
  border-color: var(--lx-hair) !important;
  border-right-width: 0 !important;
  border-bottom-width: 0 !important;
}

.theme-luxe .sec-nxbrand__strip-cell {
  padding-block: 3rem;
  border-color: var(--lx-hair) !important;
}

.theme-luxe .sec-nxbrand__strip-logo {
  max-width: 220px;
  opacity: 0.8;
  transition: opacity var(--lx-fast) ease;
}

.theme-luxe .sec-nxbrand__strip-cell:hover .sec-nxbrand__strip-logo {
  opacity: 1;
}

/* Cards: separate hairline tiles, ink border on hover. */
.theme-luxe .sec-nxbrand__cards {
  gap: 0.5rem;
}

.theme-luxe .sec-nxbrand__card {
  gap: 1rem;
  background: var(--lx-paper);
  border-color: var(--lx-hair) !important;
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe .sec-nxbrand__card:hover {
  border-color: var(--lx-ink) !important;
}

.theme-luxe .sec-nxbrand__card-name {
  color: var(--lx-ink-mute) !important;
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-nxbrand__card:hover .sec-nxbrand__card-name {
  color: var(--lx-ink) !important;
}

/* Ticker: hairlines above/below, edges masked instead of white fades. */
.theme-luxe .sec-nxbrand__ticker {
  padding-block: 2rem;
  border-top: 1px solid var(--lx-hair);
  border-bottom: 1px solid var(--lx-hair);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  transition-duration: var(--lx-slow);
}

.theme-luxe .sec-nxbrand__fade {
  display: none;
}

.theme-luxe .sec-nxbrand__ticker-row--1 {
  height: 110px;
}

.theme-luxe .sec-nxbrand__ticker-row--2 {
  height: 90px;
}

/* Showcase: hairline frame, washed label column. */
.theme-luxe .sec-nxbrand__showcase {
  border-color: var(--lx-hair) !important;
}

.theme-luxe .sec-nxbrand__aside {
  border-right-color: var(--lx-hair) !important;
  background: var(--lx-wash) !important;
}

.theme-luxe .sec-nxbrand__aside-inner {
  gap: 1rem;
}

.theme-luxe .sec-nxbrand__aside-line {
  background: var(--lx-hair-strong) !important;
}

.theme-luxe .sec-nxbrand__aside-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink) !important;
}

.theme-luxe .sec-nxbrand__showcase-cell {
  border-right-color: var(--lx-hair) !important;
  border-bottom-color: var(--lx-hair) !important;
  background: transparent !important;
  transition: background-color var(--lx-fast) ease;
}

.theme-luxe .sec-nxbrand__showcase-cell:hover {
  background: var(--lx-wash) !important;
}

.theme-luxe .sec-nxbrand__showcase-name {
  color: var(--lx-ink-mute) !important;
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-nxbrand__showcase-cell:hover .sec-nxbrand__showcase-name {
  color: var(--lx-ink) !important;
}

/* Inline grid-template-columns beats `mob:grid-cols-2`; Luxe forces 2 up. */
@media (max-width: 768px) {
  .theme-luxe .sec-nxbrand__title {
    margin-bottom: 1.5rem;
  }

  .theme-luxe .sec-nxbrand__strip,
  .theme-luxe .sec-nxbrand__cards,
  .theme-luxe .sec-nxbrand__showcase-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .theme-luxe .sec-nxbrand__strip-cell {
    padding-block: 1.75rem;
  }

  .theme-luxe .sec-nxbrand__strip-logo {
    max-width: 130px;
  }

  .theme-luxe .sec-nxbrand__ticker {
    padding-block: 1.25rem;
  }

  .theme-luxe .sec-nxbrand__ticker-row--1 {
    height: 80px;
  }

  .theme-luxe .sec-nxbrand__ticker-row--2 {
    height: 70px;
  }

  .theme-luxe .sec-nxbrand__aside {
    border-right-width: 0 !important;
    border-bottom: 1px solid var(--lx-hair);
  }

  .theme-luxe .sec-nxbrand__aside-label {
    writing-mode: horizontal-tb !important;
  }
}

/* ---------- Nexus Why Choose Us (nexus-why) — hairline columns, numbered ---------- */

.theme-luxe .sec-nxwhy {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxwhy__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-nxwhy__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 3.5rem;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxwhy__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

/* Inline letter-spacing on the h2 — !important to win. */
.theme-luxe .sec-nxwhy__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxwhy__grid {
  gap: 3rem 2.5rem;
  counter-reset: lx-nxwhy;
}

/* Bordered card → open column under a hairline (inline left rule removed). */
.theme-luxe .sec-nxwhy__card {
  counter-increment: lx-nxwhy;
  padding: 2rem 0 0;
  border: 0;
  border-top: 1px solid var(--lx-hair);
  border-left-width: 0 !important;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Short ink rule on the hairline that runs full width on hover. */
.theme-luxe .sec-nxwhy__card::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 2rem;
  height: 1px;
  background: var(--lx-ink);
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-nxwhy__card:hover::before {
  width: 100%;
}

/* Icon left, zero-padded index right. */
.theme-luxe .sec-nxwhy__icon {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  font-size: 26px;
  line-height: 1;
}

.theme-luxe .sec-nxwhy__icon::after {
  content: counter(lx-nxwhy, decimal-leading-zero);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-nxwhy__name {
  margin-bottom: 0.75rem;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxwhy__desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxwhy__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-nxwhy__title {
    font-size: 20px;
  }

  .theme-luxe .sec-nxwhy__grid {
    gap: 2.5rem 1.25rem;
  }

  .theme-luxe .sec-nxwhy__card {
    padding-top: 1.5rem;
  }

  .theme-luxe .sec-nxwhy__icon {
    margin-bottom: 1rem;
    font-size: 22px;
  }
}

/* ---------- Nexus Reviews (nexus-reviews) — hairline cards, masked columns ---------- */

.theme-luxe .sec-nxrev {
  color: var(--lx-ink);
}

.theme-luxe .sec-nxrev__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-nxrev__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Eyebrow colour is inline — !important to win. */
.theme-luxe .sec-nxrev__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft) !important;
}

/* Inline letter-spacing on the h2 — !important to win. */
.theme-luxe .sec-nxrev__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxrev__cols {
  gap: 0.75rem;
}

/* Columns fade at both ends; enter by opacity only. */
.theme-luxe .sec-nxrev__col {
  height: 560px;
  translate: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 10%, #000 90%, transparent);
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Side columns: faded instead of a white wash (works in dark mode). */
.theme-luxe .sec-nxrev__col:has(> .sec-nxrev__dim) {
  filter: opacity(0.4);
}

.theme-luxe .sec-nxrev__dim {
  display: none;
}

.theme-luxe .sec-nxrev__card {
  gap: 1.25rem;
  margin-bottom: 0.75rem;
  padding: 1.75rem;
  border: 1px solid var(--lx-hair);
  background: var(--lx-paper);
}

.theme-luxe .sec-nxrev__stars {
  gap: 0.25rem;
}

.theme-luxe .sec-nxrev__star {
  font-size: 11px;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxrev__star.text-gray-200 {
  color: var(--lx-hair-strong);
}

.theme-luxe .sec-nxrev__text {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-nxrev__author {
  padding-top: 1rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-nxrev__name {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-nxrev__role {
  margin-top: 0.25rem;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink-mute);
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxrev__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-nxrev__title {
    font-size: 20px;
  }

  .theme-luxe .sec-nxrev__col {
    height: 440px;
  }

  .theme-luxe .sec-nxrev__card {
    padding: 1.25rem;
  }
}

/* ---------- Nexus Countdown (nexus-cd) — full-bleed square panels ---------- */

/* Full bleed: no container, no rounded panels (the skin squares them). */
.theme-luxe .sec-nxcd.wrap,
.theme-luxe .sec-nxcd__row.wrap {
  max-width: none;
  padding-inline: 0;
}

.theme-luxe .sec-nxcd__row {
  min-height: 560px;
}

/* Panel colour (d.c_bg) stays inline; enter by opacity only. */
.theme-luxe .sec-nxcd__panel {
  padding: 5rem var(--lx-gutter);
  translate: none;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxcd__panel > * {
  max-width: 520px;
}

.theme-luxe .sec-nxcd__dot {
  display: none;
}

/* Kicker / label colours are inline — !important to win. */
.theme-luxe .sec-nxcd__kicker {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7) !important;
}

.theme-luxe .sec-nxcd__title {
  margin-bottom: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.08em !important;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
}

/* Hairline above the timer (the copy's divider). */
.theme-luxe .sec-nxcd__timer {
  width: 100%;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.theme-luxe .sec-nxcd__unit {
  gap: 0.75rem !important;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxcd__flip {
  border-radius: 0 !important;
}

.theme-luxe .sec-nxcd__num {
  font-size: 34px !important;
  letter-spacing: 0.04em !important;
  font-variant-numeric: tabular-nums;
}

.theme-luxe .sec-nxcd__unit-label {
  font-weight: 500;
  letter-spacing: 0.25em !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

.theme-luxe .sec-nxcd__cta {
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

/* Ghost button: square, current-colour border, fills white on hover. */
.theme-luxe .sec-nxcd__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid currentColor !important;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-nxcd__btn:hover {
  background: #fff !important;
  border-color: #fff !important;
  color: #111 !important;
}

.theme-luxe .sec-nxcd__btn:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 4px;
}

.theme-luxe .sec-nxcd__media {
  background: var(--lx-wash);
  translate: none;
  transition-duration: var(--lx-slow);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxcd__img {
  transition: scale var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-nxcd__media:hover .sec-nxcd__img {
  scale: 1.02;
}

.theme-luxe .sec-nxcd__mimg {
  background: var(--lx-wash);
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxcd__row {
    min-height: 0;
  }

  .theme-luxe .sec-nxcd__panel {
    padding-block: 3rem;
  }

  .theme-luxe .sec-nxcd__title {
    margin-bottom: 1.75rem;
  }

  .theme-luxe .sec-nxcd__timer {
    gap: 0.5rem;
    margin-bottom: 1.75rem;
    padding-top: 1.5rem;
  }
}

/* ---------- Nexus Before After (nexus-ba) — vignetted plate, square handle ---------- */

.theme-luxe .sec-nxba__stage {
  background-color: var(--lx-wash);
}

/* Vignette over each image, under its watermark. */
.theme-luxe .sec-nxba__layer::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 80% 80% at 50% 50%, transparent 40%, rgba(0, 0, 0, 0.55) 100%);
}

/* Watermark size / tracking are inline — !important to win. */
.theme-luxe .sec-nxba__mark {
  right: var(--lx-gutter);
  font-size: clamp(64px, 12vw, 140px) !important;
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1;
  color: rgba(255, 255, 255, 0.08);
}

.theme-luxe .sec-nxba__line {
  background: rgba(255, 255, 255, 0.9);
}

.theme-luxe .sec-nxba__tag-wrap {
  left: var(--lx-gutter);
}

.theme-luxe .sec-nxba__tag {
  padding: 0.375rem 0.75rem;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.theme-luxe .sec-nxba__tag--before {
  border: 1px solid rgba(255, 255, 255, 0.8);
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.theme-luxe .sec-nxba__tag--after {
  border: 1px solid #fff;
  background: #fff;
  color: var(--lx-ink);
}

/* Round knob → square handle with two ink hairlines. */
.theme-luxe .sec-nxba__handle {
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid #fff;
  border-radius: 0;
}

.theme-luxe .sec-nxba__handle > div {
  gap: 3px;
}

.theme-luxe .sec-nxba__bar {
  height: 1px;
  border-radius: 0;
  background: var(--lx-ink);
}

.theme-luxe .sec-nxba__progress {
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
}

.theme-luxe .sec-nxba__progress-fill {
  background: #fff;
}

.theme-luxe .sec-nxba__hint {
  gap: 0.75rem;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-nxba__hint-text {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

/* Gradient tick + arrow → one bouncing hairline. */
.theme-luxe .sec-nxba__hint-line {
  height: 2rem;
  background: rgba(255, 255, 255, 0.5);
  animation: bounce 1s infinite;
}

.theme-luxe .sec-nxba__hint-arrow {
  display: none;
}

@media (max-width: 768px) {
  .theme-luxe .sec-nxba__tag {
    font-size: 9px;
  }
}

/* ---- sections: velvet ---- */
/* Luxe — velvet sections. Every rule scoped under .theme-luxe and keyed on the
   default section's sec-* hook classes. Mirrored in the other repo. */

/* ---------- Velvet Hero (velvet-hero) ---------- */
/* Two equal columns: copy on the left, a full-bleed square image plate on the
   right (on top on mobile). Blobs and the morphing organic frame are dropped. */

.theme-luxe .sec-vhero {
  align-items: stretch;
}

.theme-luxe .sec-vhero__blob {
  display: none;
}

.theme-luxe .sec-vhero__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
}

.theme-luxe .sec-vhero__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 5rem var(--lx-gutter);
}

.theme-luxe .sec-vhero__text > * {
  max-width: 520px;
}

.theme-luxe .sec-vhero__kicker-line {
  display: none;
}

.theme-luxe .sec-vhero__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vhero__title {
  font-weight: 700;
  letter-spacing: 0.08em !important;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vhero__desc {
  margin-bottom: 2.5rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vhero__actions {
  gap: 1.5rem;
}

.theme-luxe .sec-vhero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid var(--lx-ink);
  background: var(--lx-ink);
  color: var(--lx-paper);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition:
    background-color var(--lx-fast) ease,
    border-color var(--lx-fast) ease,
    color var(--lx-fast) ease;
}

.theme-luxe .sec-vhero__cta:hover {
  border-color: var(--lx-accent);
  background: var(--lx-accent);
  color: #fff;
}

.theme-luxe .sec-vhero__badge {
  padding: 0 0 0.25rem;
  border: 0;
  border-bottom: 1px solid var(--lx-hair-strong);
  border-radius: 0;
  background: transparent;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vhero__stats {
  gap: 2.5rem;
  margin-top: 3.5rem;
  padding-top: 2rem;
  border-top-color: var(--lx-hair);
}

.theme-luxe .sec-vhero__stat-value {
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--lx-ink);
}

.theme-luxe .sec-vhero__stat-label {
  margin-top: 0.375rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vhero__media {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--lx-wash);
  translate: none;
}

.theme-luxe .sec-vhero__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* The organic frame becomes the flat plate ground. */
.theme-luxe .sec-vhero__morph {
  inset: 0;
  border-radius: 0 !important;
  background: var(--lx-wash);
  animation: none !important;
}

.theme-luxe .sec-vhero__img {
  position: absolute;
  inset: 0;
  border-radius: 0 !important;
  transition: transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vhero__media:hover .sec-vhero__img {
  transform: scale(1.02);
}

.theme-luxe .sec-vhero__tag {
  top: auto;
  right: auto;
  bottom: var(--lx-gutter);
  left: var(--lx-gutter);
  padding: 1rem 1.25rem;
  background: #fff;
  animation-name: lx-velvet-float-tag !important;
}

.theme-luxe .sec-vhero__tag-label {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.5);
}

.theme-luxe .sec-vhero__tag-title {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #000;
}

@keyframes lx-velvet-float-tag {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-vhero {
    min-height: 0;
  }

  .theme-luxe .sec-vhero__inner {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .theme-luxe .sec-vhero__text {
    align-items: center;
    padding-block: 3rem;
  }

  .theme-luxe .sec-vhero__text > * {
    margin-inline: auto;
  }

  .theme-luxe .sec-vhero__media {
    order: -1;
    height: 70svh;
    min-height: 360px;
  }

  .theme-luxe .sec-vhero__desc {
    margin-bottom: 1.75rem;
  }

  .theme-luxe .sec-vhero__actions {
    gap: 1rem;
  }

  .theme-luxe .sec-vhero__stats {
    gap: 1.5rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vhero__tag {
    animation: none !important;
  }

  .theme-luxe .sec-vhero__media:hover .sec-vhero__img {
    transform: none;
  }
}

/* ---------- Velvet Product Grid (velvet-p-g) ---------- */
/* Square plate tiles on a tighter gutter, a bottom scrim instead of the shimmer
   sweep, white uppercase captions, a growing-underline "View all". */

.theme-luxe .sec-vpg__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vpg__head {
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.theme-luxe .sec-vpg__kicker {
  margin-bottom: 0.75rem;
}

.theme-luxe .sec-vpg__kicker-line {
  display: none;
}

.theme-luxe .sec-vpg__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vpg__title {
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vpg__cta,
.theme-luxe .sec-vpg__cta:hover {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vpg__cta::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-vpg__cta:hover::after,
.theme-luxe .sec-vpg__cta:focus-visible::after {
  width: 4rem;
}

.theme-luxe .sec-vpg__grid {
  gap: 0.5rem;
  grid-auto-rows: 240px !important;
}

.theme-luxe .sec-vpg__mgrid {
  gap: 0.5rem;
  grid-auto-rows: 170px !important;
}

/* Corner radius is square in Luxe, whatever the card-radius setting says. */
.theme-luxe .sec-vpg__card {
  display: block;
  border-radius: 0 !important;
  background: var(--lx-wash);
}

/* Bottom scrim, painted above the image and under the badge + caption. */
.theme-luxe .sec-vpg__card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  pointer-events: none;
}

.theme-luxe .sec-vpg__card:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 2px;
}

.theme-luxe .sec-vpg__img {
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vpg__card:hover .sec-vpg__img {
  scale: 1.02;
}

.theme-luxe .sec-vpg__shine {
  display: none;
}

.theme-luxe .sec-vpg__badge {
  padding: 0.375rem 0.75rem;
  background: #fff;
  color: #000;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.theme-luxe .sec-vpg__info {
  padding: 1.25rem;
  background-image: none;
  transition-duration: var(--lx-mid);
  transition-timing-function: var(--lx-ease);
}

.theme-luxe .sec-vpg__sub {
  margin-bottom: 0.375rem;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.theme-luxe .sec-vpg__name {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.375;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-vpg__price {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 768px) {
  .theme-luxe .sec-vpg__head {
    gap: 1rem;
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-vpg__info {
    padding: 0.75rem;
  }

  .theme-luxe .sec-vpg__name {
    font-size: 0.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vpg__info {
    translate: none;
  }

  .theme-luxe .sec-vpg__card:hover .sec-vpg__img {
    scale: none;
  }
}

/* ---------- Velvet Beauty Steps (velvet-steps) ---------- */
/* Ink-on-paper steps: square hairline badges (circle style), hairline cards,
   ghost numerals, uppercase tracked labels, one hairline connector. */

.theme-luxe .sec-vsteps__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vsteps__kicker-line {
  display: none;
}

.theme-luxe .sec-vsteps__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vsteps__title {
  font-weight: 600;
  letter-spacing: 0.12em !important;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vsteps__grid {
  gap: 2rem;
}

.theme-luxe .sec-vsteps__track {
  background: var(--lx-hair);
}

.theme-luxe .sec-vsteps__track-fill {
  background: var(--lx-ink-mute);
  transition: width 1500ms var(--lx-ease);
}

.theme-luxe .sec-vsteps__icon {
  color: var(--lx-ink-soft);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-vsteps__step:hover .sec-vsteps__icon {
  color: var(--lx-ink);
}

.theme-luxe .sec-vsteps__name,
.theme-luxe .sec-vsteps__step:hover .sec-vsteps__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vsteps__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

/* Circle style: the disc becomes a square hairline tile. */
.theme-luxe .sec-vsteps__badge {
  margin-bottom: 1.5rem;
  border: 1px solid var(--lx-hair-strong);
  border-radius: 0;
  background: var(--lx-paper);
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe .sec-vsteps__step:hover .sec-vsteps__badge {
  border-color: var(--lx-ink);
}

.theme-luxe .sec-vsteps__step--circle .sec-vsteps__num {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.25em;
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-vsteps__step--circle .sec-vsteps__desc {
  max-width: 240px;
}

/* Card style. */
.theme-luxe .sec-vsteps__step--card {
  padding: 2rem;
  border: 1px solid var(--lx-hair);
  background: transparent;
  transition:
    border-color var(--lx-fast) ease,
    opacity var(--lx-slow) var(--lx-ease),
    translate var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vsteps__step--card:hover {
  border-color: var(--lx-ink);
}

.theme-luxe .sec-vsteps__step--card .sec-vsteps__icon {
  margin-bottom: 1rem;
}

.theme-luxe .sec-vsteps__step--card .sec-vsteps__num,
.theme-luxe .sec-vsteps__step--minimal .sec-vsteps__num {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vsteps__step--card .sec-vsteps__num {
  margin-bottom: 1rem;
  padding: 0 0 0.25rem;
  border-bottom: 1px solid var(--lx-hair-strong);
  border-radius: 0;
  background: transparent;
}

/* Numbered style: ghost numerals in hairline ink. */
.theme-luxe .sec-vsteps__step--numbered .sec-vsteps__num {
  margin-bottom: -18px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--lx-hair-strong);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-vsteps__step--numbered:hover .sec-vsteps__num {
  color: var(--lx-ink-mute);
}

/* Minimal style. */
.theme-luxe .sec-vsteps__line {
  background: var(--lx-hair-strong);
}

@media (max-width: 768px) {
  .theme-luxe .sec-vsteps__grid {
    column-gap: 1rem;
    row-gap: 2.5rem;
  }

  .theme-luxe .sec-vsteps__badge {
    margin-bottom: 1rem;
  }

  .theme-luxe .sec-vsteps__step--card {
    padding: 1.25rem;
  }

  .theme-luxe .sec-vsteps__step--numbered .sec-vsteps__num {
    margin-bottom: -10px;
  }
}

/* ---------- Velvet Category Ovals (velvet-cat) ---------- */
/* Square plate tiles — `d.shape` only picks the proportions — and a
   growing-underline caption. */

.theme-luxe .sec-vcat__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vcat__head {
  margin-bottom: 3.5rem;
}

.theme-luxe .sec-vcat__kicker-line {
  display: none;
}

.theme-luxe .sec-vcat__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vcat__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vcat__list {
  gap: 2rem;
}

.theme-luxe .sec-vcat__item {
  gap: 1.25rem;
  color: var(--lx-ink);
}

.theme-luxe .sec-vcat__item:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

.theme-luxe .sec-vcat__media {
  border: 0;
  border-radius: 0 !important;
  background: var(--lx-wash);
}

.theme-luxe .sec-vcat--oval .sec-vcat__media,
.theme-luxe .sec-vcat--arch .sec-vcat__media,
.theme-luxe .sec-vcat--portrait .sec-vcat__media {
  width: 168px !important;
  height: 216px !important;
}

.theme-luxe .sec-vcat--circle .sec-vcat__media {
  width: 184px !important;
  height: 184px !important;
}

.theme-luxe .sec-vcat--square .sec-vcat__media {
  width: 176px !important;
  height: 176px !important;
}

.theme-luxe .sec-vcat__img {
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vcat__item:hover .sec-vcat__img {
  scale: 1.02;
}

.theme-luxe .sec-vcat__tint {
  display: none;
}

.theme-luxe .sec-vcat__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.theme-luxe .sec-vcat__name,
.theme-luxe .sec-vcat__item:hover .sec-vcat__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* The full-width hover rule becomes the Luxe 2rem → 4rem hairline. */
.theme-luxe .sec-vcat__rule {
  width: 2rem;
  margin-top: 0;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-vcat__item:hover .sec-vcat__rule,
.theme-luxe .sec-vcat__item:focus-visible .sec-vcat__rule {
  width: 4rem;
}

@media (max-width: 768px) {
  .theme-luxe .sec-vcat__head {
    margin-bottom: 2.5rem;
  }

  .theme-luxe .sec-vcat__list {
    gap: 1.25rem;
  }

  .theme-luxe .sec-vcat__item {
    gap: 0.75rem;
  }

  .theme-luxe .sec-vcat .sec-vcat__media {
    width: 136px !important;
    height: 168px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vcat__item:hover .sec-vcat__img {
    scale: none;
  }
}

/* ---------- Velvet Collection Grid (velvet-col-g) ---------- */
/* Plate tiles on a 0.5rem gutter, bottom scrim, uppercase captions and
   growing-underline CTAs. */

.theme-luxe .sec-vcolg__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vcolg__head {
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.theme-luxe .sec-vcolg__kicker {
  margin-bottom: 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vcolg__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vcolg__more,
.theme-luxe .sec-vcolg__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0;
  border: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
}

.theme-luxe .sec-vcolg__more,
.theme-luxe .sec-vcolg__more:hover {
  color: var(--lx-ink);
}

.theme-luxe .sec-vcolg__cta,
.theme-luxe .sec-vcolg__card:hover .sec-vcolg__cta {
  color: rgba(255, 255, 255, 0.9);
}

.theme-luxe .sec-vcolg__more::after,
.theme-luxe .sec-vcolg__cta::after {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-vcolg__more:hover::after,
.theme-luxe .sec-vcolg__card:hover .sec-vcolg__cta::after,
.theme-luxe .sec-vcolg__link:focus-visible .sec-vcolg__cta::after {
  width: 4rem;
}

.theme-luxe .sec-vcolg__grid {
  gap: 0.5rem;
}

.theme-luxe .sec-vcolg__link {
  display: block;
}

.theme-luxe .sec-vcolg__link:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 2px;
}

.theme-luxe .sec-vcolg__card,
.theme-luxe .sec-vcolg__media {
  background: var(--lx-wash);
}

.theme-luxe .sec-vcolg__img {
  display: block;
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vcolg__card:hover .sec-vcolg__img {
  scale: 1.02;
}

.theme-luxe .sec-vcolg__scrim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
  pointer-events: none;
}

.theme-luxe .sec-vcolg__info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  color: #fff;
}

.theme-luxe .sec-vcolg__name {
  margin-bottom: 0;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
}

@media (max-width: 768px) {
  .theme-luxe .sec-vcolg__head {
    margin-bottom: 2rem;
  }

  .theme-luxe .sec-vcolg__info {
    gap: 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vcolg__card:hover .sec-vcolg__img {
    scale: none;
  }
}

/* ---------- Velvet Feature Banner (velvet-feat) ---------- */
/* Ink labels and body copy, square plate icon wells, hairline cards and
   dividers, ghost numerals. */

.theme-luxe .sec-vfeat__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vfeat__icon {
  width: 4rem !important;
  height: 4rem;
  margin-bottom: 1.25rem;
  border: 0;
  border-radius: 0;
}

.theme-luxe .sec-vfeat__icon-img {
  border-radius: 0;
}

.theme-luxe .sec-vfeat__name,
.theme-luxe .sec-vfeat__item:hover .sec-vfeat__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vfeat__desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vfeat__divider {
  right: -1rem;
  height: 3rem;
  background: var(--lx-hair);
}

/* Classic. */
.theme-luxe .sec-vfeat__item--classic .sec-vfeat__desc {
  max-width: 180px;
}

/* Card: hairline frame, plate icon well. */
.theme-luxe .sec-vfeat__item--card {
  height: 100%;
  padding: 1.75rem;
  border: 1px solid var(--lx-hair);
  background: transparent;
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe .sec-vfeat__item--card:hover {
  border-color: var(--lx-ink);
}

.theme-luxe .sec-vfeat__item--card .sec-vfeat__icon,
.theme-luxe .sec-vfeat__item--card:hover .sec-vfeat__icon,
.theme-luxe .sec-vfeat__item--inline .sec-vfeat__icon,
.theme-luxe .sec-vfeat__item--inline:hover .sec-vfeat__icon {
  background: var(--lx-wash);
}

/* Inline. */
.theme-luxe .sec-vfeat__item--inline .sec-vfeat__icon {
  margin-bottom: 0;
}

.theme-luxe .sec-vfeat__item--inline .sec-vfeat__name {
  margin-bottom: 0.25rem;
}

/* Numbered: ghost numerals in hairline ink. */
.theme-luxe .sec-vfeat__num {
  margin-bottom: -16px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--lx-hair-strong);
  transition: color var(--lx-fast) ease;
}

.theme-luxe .sec-vfeat__item--numbered:hover .sec-vfeat__num {
  color: var(--lx-ink-mute);
}

.theme-luxe .sec-vfeat__item--numbered .sec-vfeat__icon,
.theme-luxe .sec-vfeat__item--minimal .sec-vfeat__icon {
  height: auto;
  margin-bottom: 0.75rem;
}

/* Minimal: small caps, growing hairline. */
.theme-luxe .sec-vfeat__line {
  margin-bottom: 1.25rem;
  background: var(--lx-ink-mute);
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-vfeat__item--minimal:hover .sec-vfeat__line {
  width: 3.5rem;
}

.theme-luxe .sec-vfeat__item--minimal .sec-vfeat__name,
.theme-luxe .sec-vfeat__item--minimal:hover .sec-vfeat__name {
  font-size: 10px;
  letter-spacing: 0.25em;
}

.theme-luxe .sec-vfeat__item--minimal .sec-vfeat__desc {
  font-size: 10px;
  line-height: 1.625;
  color: var(--lx-ink-mute);
}

@media (max-width: 768px) {
  .theme-luxe .sec-vfeat__grid {
    column-gap: 1rem;
    row-gap: 2rem;
  }

  .theme-luxe .sec-vfeat__icon {
    margin-bottom: 0.75rem;
  }

  .theme-luxe .sec-vfeat__item--card {
    padding: 1rem;
  }

  .theme-luxe .sec-vfeat__num {
    margin-bottom: -10px;
  }
}

/* ---------- Velvet Ingredients Spotlight (velvet-ing) ---------- */
/* Curved crops are redrawn square: circle → square plate inside two pulsing
   hairline square frames, leaf → tall portrait plate, pill → narrow column.
   Hexagon and diamond keep their angular clip-paths. One shared eyebrow /
   label / body copy block. */

.theme-luxe .sec-ving__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-ving__kicker-line {
  display: none;
}

.theme-luxe .sec-ving__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ving__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-ving__plate {
  border: 0;
  border-radius: 0 !important;
  background: var(--lx-wash);
}

.theme-luxe .sec-ving__item:hover .sec-ving__plate {
  border-color: transparent;
}

.theme-luxe .sec-ving__img {
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-ving__item:hover .sec-ving__img {
  scale: 1.02;
}

/* Circle: two hairline square frames, still pulsing. */
.theme-luxe .sec-ving__item--circle .sec-ving__frame {
  margin-bottom: 1.5rem;
}

.theme-luxe .sec-ving__item--circle .sec-ving__ring {
  border-color: var(--lx-hair-strong);
  border-radius: 0;
  animation-name: lx-velvet-ring-pulse !important;
}

.theme-luxe .sec-ving__item--circle .sec-ving__ring + .sec-ving__ring {
  border-color: var(--lx-hair);
}

.theme-luxe .sec-ving__item:hover .sec-ving__ring {
  scale: none;
}

/* Hexagon: hairline-ink outline, plate fills it. */
.theme-luxe .sec-ving__item--hexagon .sec-ving__ring {
  background: var(--lx-hair-strong);
  transition: background-color var(--lx-fast) ease;
}

.theme-luxe .sec-ving__item--hexagon:hover .sec-ving__ring {
  background: var(--lx-ink-mute);
}

.theme-luxe .sec-ving__item--hexagon .sec-ving__plate {
  width: 144px !important;
  height: 144px !important;
}

/* Diamond: 1px hairline frame. */
.theme-luxe .sec-ving__item--diamond .sec-ving__ring {
  border-width: 1px;
  border-color: var(--lx-hair-strong);
  transition: border-color var(--lx-fast) ease;
}

.theme-luxe .sec-ving__item--diamond:hover .sec-ving__ring {
  border-color: var(--lx-ink);
}

.theme-luxe .sec-ving__item--diamond:hover .sec-ving__img {
  scale: 1.46;
}

/* Leaf + pill: square portrait / column plates. */
.theme-luxe .sec-ving__item--leaf .sec-ving__plate,
.theme-luxe .sec-ving__item--pill .sec-ving__plate {
  margin-bottom: 1.5rem;
}

.theme-luxe .sec-ving__item--leaf .sec-ving__plate {
  width: 132px !important;
  height: 172px !important;
}

.theme-luxe .sec-ving__item--pill .sec-ving__plate {
  width: 88px !important;
  height: 160px !important;
}

/* Shared copy. */
.theme-luxe .sec-ving__benefit {
  display: inline;
  margin-bottom: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-ving__rule,
.theme-luxe .sec-ving__name-line {
  display: none;
}

.theme-luxe .sec-ving__name-row {
  margin-bottom: 0.5rem;
}

.theme-luxe .sec-ving__name,
.theme-luxe .sec-ving__item:hover .sec-ving__name {
  margin-bottom: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-ving__name-row .sec-ving__name {
  margin-bottom: 0;
}

.theme-luxe .sec-ving__desc {
  max-width: 240px;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

@keyframes lx-velvet-ring-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.6;
  }
  50% {
    transform: scale(1.06);
    opacity: 1;
  }
}

@media (max-width: 768px) {
  .theme-luxe .sec-ving__grid {
    row-gap: 2.5rem;
  }

  .theme-luxe .sec-ving__item--circle .sec-ving__frame,
  .theme-luxe .sec-ving__item--leaf .sec-ving__plate,
  .theme-luxe .sec-ving__item--pill .sec-ving__plate {
    margin-bottom: 1rem;
  }

  .theme-luxe .sec-ving__name,
  .theme-luxe .sec-ving__item:hover .sec-ving__name {
    margin-bottom: 0.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-ving__ring {
    animation: none !important;
  }

  .theme-luxe .sec-ving__item:hover .sec-ving__img {
    scale: none;
  }

  .theme-luxe .sec-ving__item--diamond:hover .sec-ving__img {
    scale: 1.42;
  }
}

/* ---------- Velvet Reviews (velvet-reviews) ---------- */
/* A hairline-ruled marquee of square cells: ink stars, quoted body copy,
   square monogram, uppercase byline. Edges fade via a mask, so no
   background colour is assumed. */

.theme-luxe .sec-vrev__inner {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vrev__kicker-line {
  display: none;
}

.theme-luxe .sec-vrev__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vrev__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vrev__strip {
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}

.theme-luxe .sec-vrev__fade {
  display: none;
}

.theme-luxe .sec-vrev__track {
  padding-bottom: 0;
  border-top: 1px solid var(--lx-hair);
  border-bottom: 1px solid var(--lx-hair);
}

.theme-luxe .sec-vrev__card,
.theme-luxe .sec-vrev__card:hover {
  width: 340px;
  margin: 0;
  padding: 2.25rem 2rem;
  gap: 1rem;
  border: 0;
  border-right: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  translate: none;
}

.theme-luxe .sec-vrev__star {
  font-size: 12px !important;
}

.theme-luxe .sec-vrev__star-base {
  color: var(--lx-hair-strong);
}

.theme-luxe .sec-vrev__star-fill {
  color: var(--lx-ink);
}

.theme-luxe .sec-vrev__text {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vrev__divider {
  display: none;
}

.theme-luxe .sec-vrev__author {
  padding-top: 1rem;
  border-top: 1px solid var(--lx-hair);
}

.theme-luxe .sec-vrev__avatar {
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vrev__name {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vrev__product {
  margin-top: 0.125rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

@media (max-width: 768px) {
  .theme-luxe .sec-vrev__card,
  .theme-luxe .sec-vrev__card:hover {
    width: 270px;
    padding: 1.75rem 1.5rem;
  }
}

/* ---------- Velvet Split Banner (velvet-split) ---------- */
/* Full-bleed square image plate beside a copy column: eyebrow, uppercase
   heading, hairline tags, growing-underline CTA. */

.theme-luxe .sec-vsplit__row {
  min-height: 560px;
}

.theme-luxe .sec-vsplit__row.wrap {
  width: 100%;
  max-width: 1440px;
  padding-inline: var(--lx-gutter);
}

.theme-luxe .sec-vsplit__media {
  background: var(--lx-wash);
}

.theme-luxe .sec-vsplit__img {
  position: absolute;
  inset: 0;
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vsplit__media:hover .sec-vsplit__img {
  scale: 1.02;
}

.theme-luxe .sec-vsplit__sheen {
  display: none;
}

.theme-luxe .sec-vsplit__copy {
  max-width: 600px;
  padding: 4rem var(--lx-gutter);
}

.theme-luxe .sec-vsplit__kicker-line {
  display: none;
}

.theme-luxe .sec-vsplit__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vsplit__title {
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--lx-ink);
}

.theme-luxe .sec-vsplit__body {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vsplit__tags {
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-vsplit__tag {
  border: 1px solid var(--lx-hair);
  border-radius: 0;
  background: transparent;
  font-weight: 500;
  color: var(--lx-ink-soft);
}

.theme-luxe .sec-vsplit__cta,
.theme-luxe .sec-vsplit__cta:hover {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--lx-ink);
}

/* The arrow rule becomes the Luxe hairline under the label. */
.theme-luxe .sec-vsplit__cta-line,
.theme-luxe .sec-vsplit__cta:hover .sec-vsplit__cta-line {
  width: 2rem;
  background: currentColor;
  transition: width var(--lx-mid) var(--lx-ease);
}

.theme-luxe .sec-vsplit__cta:hover .sec-vsplit__cta-line,
.theme-luxe .sec-vsplit__cta:focus-visible .sec-vsplit__cta-line {
  width: 4rem;
}

.theme-luxe .sec-vsplit__cta:focus-visible {
  outline: 1px solid var(--lx-accent);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .theme-luxe .sec-vsplit__row {
    min-height: 0;
  }

  .theme-luxe .sec-vsplit__media {
    height: 75vw;
  }

  .theme-luxe .sec-vsplit__copy {
    max-width: 100%;
    padding-block: 3rem;
  }

  .theme-luxe .sec-vsplit__body {
    margin-bottom: 1.5rem;
  }

  .theme-luxe .sec-vsplit__tags {
    margin-bottom: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vsplit__media:hover .sec-vsplit__img {
    scale: none;
  }
}

/* ---------- Velvet Countdown (velvet-cd) ---------- */
/* Full-bleed, square: a centred dark panel (merchant colour kept) with an
   uppercase heading, full-width hairline-ruled reels and a ghost button,
   beside a square image plate. */

.theme-luxe .sec-vcd__inner {
  width: 100%;
  max-width: none;
  margin: 0;
}

.theme-luxe .sec-vcd__row {
  min-height: 560px;
}

.theme-luxe .sec-vcd__panel {
  align-items: center;
  padding: 5rem var(--lx-gutter);
  text-align: center;
  translate: none;
}

.theme-luxe .sec-vcd__panel > * {
  width: 100%;
  max-width: 520px;
}

.theme-luxe .sec-vcd__kicker {
  display: block;
}

.theme-luxe .sec-vcd__kicker-line {
  display: none;
}

.theme-luxe .sec-vcd__kicker-text {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7) !important;
}

.theme-luxe .sec-vcd__title {
  margin-bottom: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.08em !important;
  line-height: 1.15 !important;
  text-transform: uppercase;
  color: #fff;
}

.theme-luxe .sec-vcd__units {
  margin-bottom: 2.5rem;
}

.theme-luxe .sec-vcd__unit {
  gap: 0.75rem !important;
}

.theme-luxe .sec-vcd__divider {
  left: 0 !important;
  right: 0 !important;
  background: rgba(255, 255, 255, 0.14) !important;
}

.theme-luxe .sec-vcd__digit {
  font-variant-numeric: tabular-nums;
}

.theme-luxe .sec-vcd__unit-label {
  font-size: 10px !important;
  font-weight: 500;
  letter-spacing: 0.25em !important;
  color: rgba(255, 255, 255, 0.55) !important;
}

.theme-luxe .sec-vcd__cta-wrap {
  width: auto;
}

/* Ghost button: square, uppercase, white on the dark panel. */
.theme-luxe .sec-vcd__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.75rem;
  border: 1px solid currentColor !important;
  background: transparent;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #fff;
  transition:
    background-color var(--lx-fast) ease,
    color var(--lx-fast) ease,
    border-color var(--lx-fast) ease;
}

.theme-luxe .sec-vcd__cta:hover {
  border-color: #fff !important;
  background: #fff;
  color: #111;
}

.theme-luxe .sec-vcd__media {
  background: var(--lx-wash);
  translate: none;
}

.theme-luxe .sec-vcd__img {
  transition:
    scale var(--lx-slow) var(--lx-ease),
    transform var(--lx-slow) var(--lx-ease);
}

.theme-luxe .sec-vcd__media:hover .sec-vcd__img {
  scale: 1.02;
}

.theme-luxe .sec-vcd__mimg {
  min-height: 320px;
  background: var(--lx-wash);
}

@media (max-width: 768px) {
  .theme-luxe .sec-vcd__row {
    min-height: 0;
  }

  .theme-luxe .sec-vcd__panel {
    padding-block: 3rem;
  }

  .theme-luxe .sec-vcd__title,
  .theme-luxe .sec-vcd__units {
    margin-bottom: 1.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-luxe .sec-vcd__media:hover .sec-vcd__img {
    scale: none;
  }
}
