/* ==========================================================================
   Veyra — Elementor store stylesheet  ·  BUILD v2  ·  dual anchor
   --------------------------------------------------------------------------
   如果你在这一行看到 BUILD v2，说明你粘的是最新版。
   如果看到的是 "Every rule is scoped to .vye"，那是旧版，需要整段替换。

   Every rule is emitted twice: once anchored on .vye, once on .elementor.
   Elementor always prints the .elementor wrapper itself, so the store keeps
   its styling even when the custom .vye class is dropped during import.
   ========================================================================== */

.vye {
  --bg: #101010;
  --surface: #1d1d1b;
  --text: #f3f1ee;
  --muted: #aaa6a5;
  --line: #ffffff26;
  --accent: #d2b994;
  --gutter: clamp(22px, 4.1vw, 90px);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

.vye,
.vye * { box-sizing: border-box; }

.vye {
  background: var(--bg);
  color: var(--text);
  font: clamp(14px, 1.06vw, 20px)/1.46 "Century Gothic", "Questrial", "Avenir Next", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

.vye h1, .vye h2, .vye h3, .vye h4, .vye p, .vye ul, .vye dl, .vye dd { margin: 0; }
.vye h1, .vye h2, .vye h3 { font-weight: 400; line-height: 1.13; letter-spacing: -.035em; }
.vye button {
  margin: 0; border: 0; background: none; color: inherit;
  font: inherit; line-height: inherit; cursor: pointer; text-align: inherit;
}
.vye img { max-width: 100%; height: auto; }
.vye [hidden] { display: none !important; }
.vye strong { font-weight: 600; }

/* Elementor adds a bottom margin to every widget except the last one.
   Layout here is driven by the containers, so that margin is removed. */
.vye .elementor-element.elementor-widget { margin-bottom: 0; margin-block-end: 0; }
.vye .elementor-widget-container { padding: 0; }
.vye .elementor-heading-title { margin: 0; padding: 0; color: inherit !important; }

/* ---------------------------------------------------------------- header */
.vye .v-header {
  position: sticky; top: 0; z-index: 40;
  background: #160f0ff5; border-bottom: 1px solid #392d2d;
}
.vye .v-header.is-scrolled { backdrop-filter: blur(16px); box-shadow: 0 4px 24px #0003; }
.vye .v-header::after {
  content: ""; position: absolute; left: 0; bottom: -1px; z-index: 2;
  width: 100%; height: 1px; background: var(--accent);
  transform: scaleX(var(--v-progress, 0)); transform-origin: left;
}
.vye .v-caption { background: #101010; text-align: center; padding: 4px 0; }
.vye .v-caption p {
  font-size: max(9px, .7vw); letter-spacing: .06em; color: #d9d3cd;
}
.vye .v-navbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 25px; padding: 12px var(--gutter);
}
.vye .v-logo .elementor-heading-title {
  font-size: clamp(24px, 2.2vw, 40px); font-weight: 600; letter-spacing: -.08em; line-height: 1;
}
.vye .v-logo .elementor-heading-title::after {
  content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--accent); margin: 0 0 3px 4px;
}
.vye .v-nav { display: flex; flex-direction: row !important; align-items: center; gap: 2vw; width: auto !important; }
.vye .v-nav .elementor-button {
  position: relative; background: none; border: 0; border-radius: 0;
  color: var(--text); font-size: max(12px, 1vw); font-weight: 400;
  padding: 7px 0; min-height: 0; line-height: 1.4;
}
.vye .v-nav .elementor-button::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: var(--accent); transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.vye .v-nav .elementor-button:hover::after,
.vye .v-nav .elementor-button.is-current::after { transform: scaleX(1); }
.vye .v-actions { display: flex; align-items: center; gap: 15px; }
.vye .v-icon, .vye .v-cart, .vye .v-motion {
  display: inline-flex; align-items: center; gap: 7px;
  background: none; border: 0; color: inherit; font-size: 12px; padding: 0;
  min-height: 34px;
}
.vye .v-icon { width: 34px; height: 34px; justify-content: center; border-radius: 50%; }
.vye .v-icon:hover, .vye .v-cart:hover { background: #ffffff15; }
.vye .v-icon svg, .vye .v-cart svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.vye .v-cart { padding: 0 6px; }
.vye .v-cart b {
  display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 4px;
  border-radius: 50%; background: var(--accent); color: #151010; font-size: 11px; font-weight: 600;
}
.vye .v-motion { font-size: 10px; color: #b5b1b1; }
.vye .v-motion span:first-child { font-size: 15px; }

/* ------------------------------------------------------------------ hero */
.vye .v-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 3%;
  padding: 1.2% 5% 2%; min-height: clamp(520px, 43vw, 760px);
  background: #130a0b; overflow: hidden;
}
.vye .v-hero-media { flex: 0 0 46%; display: flex; align-items: center; justify-content: center; min-width: 0; }
.vye .v-hero-img { width: 100%; }
.vye .v-hero-img img {
  display: block; width: auto; height: auto; margin: 0 auto;
  max-width: 100%; max-height: min(36vw, 520px);
  border: 1px solid #ffffff1f; border-radius: 2px; box-shadow: 0 40px 110px #000000b3;
}
.vye .v-hero-copy { flex: 0 0 32%; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.vye .v-hero-series p {
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 20px;
}
.vye .v-hero-title .elementor-heading-title { font-size: clamp(32px, 3.1vw, 60px); line-height: 1; }
.vye .v-hero-title .elementor-heading-title span {
  display: block; font-size: .48em; letter-spacing: .12em; color: var(--accent); margin-top: 12px;
}
.vye .v-hero-flavour .elementor-heading-title {
  font-size: clamp(15px, 1.28vw, 23px); font-weight: 600; letter-spacing: -.01em; margin-top: 1.2vw;
}
.vye .v-hero-notes p {
  font-size: max(10px, .8vw); letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent); margin-top: 7px;
}
.vye .v-hero-summary p {
  margin-top: 20px; min-height: 3.6em; font-size: clamp(13px, 1.04vw, 18px); color: #e6e1dc;
}
.vye .v-hero-price p {
  margin-top: 20px; font-size: clamp(22px, 1.8vw, 26px); color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.vye .v-hero-price small { font-size: 11px; color: #bfb5ac; letter-spacing: .06em; margin-left: 6px; }
.vye .v-hero-cta { width: 100%; padding-top: 18px; }
.vye .v-hero-cta .elementor-button { width: 100%; }
.vye .v-hero-controls {
  display: flex; flex-direction: row !important; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; margin-top: 1.5vw;
}
.vye .v-hero-caption { flex: 1 1 auto; width: auto !important; min-width: 0; max-width: none; }
.vye .v-hero-caption span, .vye .v-hero-caption p { white-space: nowrap; }
.vye .v-hero-caption span { display: block; font-size: 9px; letter-spacing: .1em; color: var(--muted); }
.vye .v-hero-caption p { font-size: max(9px, .74vw); margin-top: 5px; }
.vye .v-hero-steps { display: flex; flex-direction: row !important; gap: 8px; flex: 0 0 auto; width: auto !important; }
.vye .v-hero-step .elementor-button {
  width: 27px; height: 27px; min-height: 0; padding: 0; border-radius: 50%;
  background: none; border: 1px solid #ffffff40; color: var(--text);
  display: grid; place-items: center; font-size: 14px; line-height: 1;
}
.vye .v-hero-step .elementor-button:hover { background: #fff; color: #111; }
.vye .v-hero-pagi { display: flex; align-items: center; gap: 15px; width: 100%; margin-top: 18px; }
.vye .v-hero-slide .elementor-button {
  display: flex; align-items: center; gap: 7px;
  background: none; border: 0; padding: 8px 0; min-height: 0;
  color: var(--muted); font-size: 10px; letter-spacing: .08em;
}
.vye .v-hero-slide .elementor-button::before {
  content: ""; width: 24px; height: 2px; background: #ffffff40; display: block;
  transition: background .25s;
}
.vye .v-hero-slide[aria-pressed="true"] .elementor-button { color: var(--accent); }
.vye .v-hero-slide[aria-pressed="true"] .elementor-button::before { background: var(--accent); }
.vye .v-hero-auto { margin-left: auto; }
.vye .v-hero-auto p { font-size: 9px; color: var(--muted); text-align: right; }

/* --------------------------------------------------------- shared blocks */
.vye .v-eyebrow p {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent);
}
.vye .v-h2 .elementor-heading-title {
  font-size: clamp(28px, 2.85vw, 58px); letter-spacing: -.035em; line-height: 1.13;
}
.vye .v-h3 .elementor-heading-title { font-size: clamp(20px, 2.1vw, 40px); }
.vye .v-muted { color: var(--muted); }
.vye .v-textlink a {
  display: inline-block; font-size: max(12px, 1vw); font-weight: 600;
  color: inherit; text-decoration: none; border-bottom: 0;
}
.vye .v-textlink a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* Elementor buttons, dressed as the store's buttons. */
.vye .elementor-button {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 1.12vw 1.75vw; min-height: 44px;
  border-radius: 3px; background: #fff; color: #141414; text-decoration: none;
  font-size: max(12px, 1vw); font-weight: 600; line-height: 1.25;
  transition: background .25s, transform .25s;
}
.vye .elementor-button:hover { background: #e4d4bb; transform: translateY(-2px); }

/* --------------------------------------------------------- collection index */
.vye .v-index {
  background: #171614; border-top: 1px solid var(--line);
  padding: 6.6vw var(--gutter) 3.4vw;
}
.vye .v-index-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.vye .v-index-total p { font-size: 12px; color: var(--muted); }
.vye .v-index-grid { display: flex; gap: 24px; margin-top: 40px; }
.vye .v-index-card {
  flex: 1 1 0; min-width: 0; display: flex; flex-direction: column;
  align-items: flex-start; gap: 0;
  padding: 32px; border: 1px solid var(--line); background: #111110;
}
.vye .v-index-card .v-eyebrow p { margin-bottom: 15px; }
.vye .v-index-card .v-h3 .elementor-heading-title { margin: 0 0 14px; }
.vye .v-copy p { color: var(--muted); font-size: max(13px, 1vw); line-height: 1.6; max-width: 480px; }
.vye .v-price p {
  font-size: clamp(20px, 1.6vw, 24px); color: var(--accent); font-variant-numeric: tabular-nums;
}
.vye .v-price small { font-size: 11px; color: #bfb5ac; letter-spacing: .06em; margin-left: 6px; }
.vye .v-index-card .v-copy { padding-bottom: 26px; }
.vye .v-index-card .v-price { padding-bottom: 20px; }
.vye .v-index-card .v-browse, .vye .v-index-card .v-detail-link { width: auto; }
.vye .v-index-card .v-detail-link { padding-top: 18px; }
.vye .v-note p { font-size: 12px; color: var(--muted); margin-top: 24px; }

/* ------------------------------------------------------------- all products */
.vye .v-archive { padding: 3.4vw var(--gutter) 6.3vw; }
.vye .v-archive-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.vye .v-archive-head .v-h2 .elementor-heading-title { font-size: clamp(24px, 2vw, 38px); }
.vye .v-archive-total p { font-size: 12px; color: #c4c1bc; }
.vye .v-archive-body { width: 100%; padding-top: 26px; }
.vye .v-series-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.vye .v-series-filters button {
  padding: 12px 18px; border: 1px solid var(--line); border-radius: 3px;
  background: none; color: inherit; font-size: 13px; cursor: pointer;
  transition: background .25s, color .25s, border-color .25s;
}
.vye .v-series-filters button[aria-pressed="true"] { color: #171410; background: var(--accent); border-color: var(--accent); }
.vye .v-series-filters span { margin-left: 12px; opacity: .65; font-size: 11px; }
.vye .v-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; }
.vye .v-filters { display: flex; flex-wrap: wrap; background: #444; border-radius: 3px; padding: 4px; }
.vye .v-filters button {
  padding: 7px 15px; font-size: 12px; color: #ccc; background: none;
  border: 0; cursor: pointer; transition: background .25s, color .25s;
}
.vye .v-filters button[aria-pressed="true"] { background: #111; color: #fff; }
.vye .v-search { display: flex; align-items: center; gap: 10px; width: 100%; max-width: 260px; flex: 0 1 260px; }
.vye .v-search svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.4; }
.vye .v-search input {
  width: 100%; min-width: 0; padding: 8px 0; font: inherit; font-size: 12px;
  color: #fff; background: none; border: 0; border-bottom: 1px solid #777; border-radius: 0;
}
.vye .v-archive-nav { display: flex; align-items: center; justify-content: space-between; margin: 18px 0; }
.vye .v-count { font-size: 11px; color: var(--muted); }
.vye .v-pager { display: flex; align-items: center; gap: 10px; }
.vye .v-page-num { font-size: 11px; letter-spacing: .12em; color: var(--muted); font-variant-numeric: tabular-nums; }
.vye .v-circle {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid #ffffff40;
  display: grid; place-items: center; background: none; color: inherit;
  font: 15px/1 sans-serif; cursor: pointer; transition: background .2s, color .2s;
}
.vye .v-circle:hover:not(:disabled) { background: #fff; color: #111; }
.vye .v-circle:disabled { opacity: .3; cursor: default; }

.vye .v-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5vw 1.1vw; }
.vye .v-cardp {
  display: flex; flex-direction: column; min-width: 0;
  padding: .85vw; border: 1px solid #616161; background: #101010;
}
.vye .v-cardp-main {
  display: block; width: 100%; padding: 0; text-align: left;
  background: none; border: 0; color: inherit; cursor: pointer;
}
.vye .v-thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 1; background: #0c0b0a; }
.vye .v-thumb img {
  display: block; width: 100%; height: 100%; object-fit: contain;
  transition: transform .7s var(--ease);
}
.vye .v-cardp-main:hover .v-thumb img { transform: scale(1.04); }
.vye .v-thumb::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, #ffffff1a 48%, transparent 65%);
  transform: translateX(-120%); transition: transform .7s var(--ease);
}
.vye .v-cardp-main:hover .v-thumb::after { transform: translateX(120%); }
.vye .v-open {
  position: absolute; right: 10px; bottom: 10px; z-index: 2;
  display: grid; place-items: center; width: 32px; height: 32px;
  border: 1px solid #ffffff5a; border-radius: 50%; background: #111b; font-size: 13px;
}
.vye .v-serieslabel { display: block; margin-top: 10px; font-size: 10px; letter-spacing: .1em; color: var(--accent); }
.vye .v-cardp h3 {
  margin: 1vw 0 0; font-size: clamp(14px, 1.12vw, 21px); line-height: 1.25;
  font-weight: 400; letter-spacing: -.02em;
}
.vye .v-cardp-main small { display: block; margin: 8px 0; font-size: 11px; color: var(--muted); }
.vye .v-buybox { margin-top: auto; padding-top: 11px; border-top: 1px solid #ffffff25; }
.vye .v-buybox .v-price p { font-size: clamp(15px, 1.15vw, 19px); margin: 0 0 12px; white-space: nowrap; }
.vye .v-buybox .v-price small { font-size: 10px; }
.vye .v-pair { display: flex; gap: 6px; }
.vye .v-pair button {
  flex: 1; min-height: 40px; padding: 10px 8px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 11.5px; font-weight: 600; cursor: pointer;
  transition: background .2s;
}
.vye .v-pair button:hover { background: #e4d4bb; }
.vye .v-pair .v-ghost { background: none; border: 1px solid #ffffff65; color: #f5eee8; }
.vye .v-pair .v-ghost:hover { background: #ffffff12; }
.vye .v-empty { padding: 45px 0; text-align: center; }
.vye .v-empty button {
  margin-top: 12px; padding: 0; border: 0; background: none; color: var(--accent);
  font-size: 12px; font-weight: 600; text-decoration: underline; cursor: pointer;
}

/* ------------------------------------------------------------ product detail */
.vye .v-details {
  display: flex; gap: 3vw; align-items: flex-start;
  padding: 6.6vw var(--gutter); background: #130a0b;
}
.vye .v-details-ali { background: #171410; border-top: 1px solid #d2b99422; }
.vye .v-detail-copy { flex: 1.47 1 0; min-width: 0; }
.vye .v-detail-media { flex: 1 1 0; min-width: 0; }
.vye .v-detail-copy .v-eyebrow p { margin-bottom: 18px; }
.vye .v-tools { display: flex; gap: 2vw; margin-top: 3.7vw; align-items: flex-start; }
.vye .v-tabs { display: flex; flex-direction: column; flex: 0 0 34%; }
.vye .v-tabs button {
  text-align: left; padding: .35vw 0 .35vw 1.5vw; border: 0; border-left: 2px solid #5d5859;
  background: none; color: #aaa5a4; font-size: clamp(14px, 1.5vw, 26px);
  transition: color .25s, border-color .25s; cursor: pointer;
}
.vye .v-tabs button[aria-pressed="true"] { color: #fff; border-color: #fff; font-weight: 600; }
.vye .v-tools-info { flex: 1; min-width: 0; }
.vye .v-tools-info .v-caption-text { font-size: max(12px, 1vw); line-height: 1.6; color: #d8d3ce; }
.vye .v-tools-info .v-link { display: inline-block; margin-top: 16px; font-weight: 600; font-size: max(12px, 1vw); cursor: pointer; }
.vye .v-tools-info .v-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.vye .v-detail-buy { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 20px; }
.vye .v-detail-buy .v-price p { font-size: 21px; margin: 0; }
.vye .v-detail-buy button {
  padding: 11px 20px; border: 0; border-radius: 3px; background: #fff; color: #141414;
  font-size: 13px; font-weight: 600; cursor: pointer;
}
.vye .v-detail-buy button:hover { background: #e4d4bb; }
.vye .v-srcnote { margin-top: 22px; font-size: 11px; color: var(--muted); }
.vye .v-frame { position: relative; width: 100%; overflow: hidden; border-radius: 3px; background: #0b0c0d; }
.vye .v-frame img {
  display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover;
  transition: transform 1s var(--ease), transform-origin 1s var(--ease);
}
.vye .v-frame[data-view="h"] img { transform: scale(2.2); transform-origin: 50% 32%; }
.vye .v-frame[data-view="d"] img { transform: scale(3); transform-origin: 50% 68%; }
.vye .v-frame::after {
  content: "IGET ONE / Front view";
  position: absolute; left: 15px; bottom: 15px; padding: 7px 10px;
  font-size: 9px; letter-spacing: .02em; background: #101010d9;
}
.vye .v-frame[data-view="h"]::after { content: "IGET ONE / Detail view"; }
.vye .v-frame[data-view="d"]::after { content: "IGET ONE / Close-up"; }
.vye .v-details-ali .v-frame::after { content: "ALIBARBAR / Front view"; }
.vye .v-details-ali .v-frame[data-view="h"]::after { content: "ALIBARBAR / Detail view"; }
.vye .v-details-ali .v-frame[data-view="d"]::after { content: "ALIBARBAR / Close-up"; }

/* ----------------------------------------------------------- flavour rail */
.vye .v-strip { position: relative; padding: 4.6vw 0 3vw; }
.vye .v-track {
  display: flex; gap: 1.6vw; padding: 0 var(--gutter);
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--gutter);
  scrollbar-width: thin; scrollbar-color: #555 transparent;
}
.vye .v-track > * { flex: 0 0 21.75vw; min-height: 35vw; scroll-snap-align: start; background: #050505; }
.vye .v-introcard {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  padding: 1.6vw; background: linear-gradient(150deg, #5b1932, #1c2541 42%, #050505 85%);
}
.vye .v-strip-ali .v-introcard { background: linear-gradient(150deg, #4a3a22, #1f2b33 46%, #050505 88%); }
.vye .v-introcard h3 { font-size: clamp(21px, 2.1vw, 38px); line-height: 1.15; }
.vye .v-introcard strong { display: block; font-weight: 600; }
.vye .v-introcard p { margin: 1.3vw 0; font-size: max(12px, 1vw); color: #ddd8d3; }
.vye .v-introcard .elementor-button { padding: 11px 18px; font-size: 12px; }
.vye .v-stripcard { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; color: inherit; }
.vye .v-stripcard img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform .8s var(--ease); }
.vye .v-stripcard:hover img { transform: scale(1.03); }
.vye .v-sname { display: block; margin: 1.5vw 1.6vw 0; font-size: clamp(17px, 1.6vw, 30px); line-height: 1.2; }
.vye .v-staste { display: block; margin: 1vw 1.6vw 0; font-size: max(11px, .9vw); color: #b6b0ad; }
.vye .v-sprice { display: block; margin: 1.1vw 1.6vw 0; font-size: max(12px, .92vw); color: var(--accent); }
.vye .v-slink { display: block; margin: 2vw 1.6vw; font-size: max(12px, 1vw); font-weight: 600; }
.vye .v-strip-next { position: absolute; top: 48%; right: 2vw; background: #777c; }

/* ------------------------------------------------------------ wide study */
.vye .v-study {
  display: flex; align-items: center; justify-content: space-between; gap: 6%;
  padding: 2vw 5% 5vw;
  background: radial-gradient(ellipse at 50% 30%, #542709, #100b05 60%, #080605);
}
.vye .v-study-img { flex: 0 0 44%; position: relative; }
.vye .v-study-img img { display: block; width: 100%; margin: auto; object-fit: contain; }
.vye .v-study-copy { flex: 0 0 42%; display: flex; flex-direction: column; align-items: flex-start; }
.vye .v-study-copy .elementor-heading-title { font-size: clamp(24px, 2.4vw, 44px); }
.vye .v-study-copy .elementor-heading-title strong { display: block; font-weight: 600; color: var(--accent); }
.vye .v-study-copy p { margin-top: 14px; font-size: max(12px, 1vw); color: #ddd7d1; line-height: 1.6; }
.vye .v-study-copy .v-price p { margin-top: 16px; }
.vye .v-study-copy button {
  margin-top: 16px; padding: 11px 20px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 13px; font-weight: 600; cursor: pointer;
}

/* -------------------------------------------------------------- delivery */
.vye .v-delivery {
  display: flex; gap: 6vw; align-items: flex-start;
  padding: 6.6vw var(--gutter); background: #fff; color: #252525;
}
.vye .v-delivery-left { flex: 0 0 38%; }
.vye .v-delivery .v-h2 .elementor-heading-title {
  font-size: clamp(30px, 3.1vw, 54px); line-height: 1.06; font-weight: 500; letter-spacing: -.012em;
}
.vye .v-delivery .v-h2 strong { display: block; font-weight: 700; }
.vye .v-delivery-lede p { margin-top: 1.7vw; max-width: 46ch; font-size: max(13px, 1.02vw); line-height: 1.65; color: #4a4a4a; }
.vye .v-delivery-series p { margin-top: 1.5vw; max-width: 46ch; font-size: max(12px, .94vw); line-height: 1.75; color: #707070; }
.vye .v-delivery-series strong { color: #252525; font-weight: 600; }
.vye .v-delivery-left .v-textlink { padding-top: 2vw; }
.vye .v-delivery-left .v-textlink a { color: #252525; font-size: 13px; }
.vye .v-terms { flex: 1 1 0; display: flex; flex-direction: column; border-bottom: 1px solid #ded7cd; }
.vye .v-term {
  display: flex; gap: 16px; padding: 1.55vw 0;
  border-top: 1px solid #ded7cd; color: #252525;
}
.vye .v-term-num { flex: 0 0 46px; font-size: 10px; letter-spacing: .12em; color: #93877b; padding-top: 5px; }
.vye .v-term-body { flex: 1; min-width: 0; }
.vye .v-term h3 { font-size: clamp(15px, 1.15vw, 21px); font-weight: 600; letter-spacing: -.02em; }
.vye .v-term p { margin-top: 4px; font-size: max(12px, .93vw); line-height: 1.6; color: #707070; }

/* ----------------------------------------------------------------- about */
.vye .v-about {
  display: flex; gap: 4vw; align-items: center;
  padding: 3vw var(--gutter) 6.6vw; background: #fff; color: #252525;
}
.vye .v-about > .elementor-element { flex: 1 1 0; min-width: 0; }
.vye .v-about .v-h2 .elementor-heading-title { color: #252525; line-height: 1.05; }
.vye .v-about .v-h2 strong { display: block; font-weight: 600; }
.vye .v-ledger { border-top: 1px solid #ded7cd; border-bottom: 1px solid #ded7cd; padding: 1.7vw 0; }
.vye .v-ledger-label { display: block; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; color: #93877b; }
.vye .v-ledger-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5vw 2vw; margin-top: 1.5vw; }
.vye .v-ledger-grid dt { font-size: 9px; letter-spacing: .13em; text-transform: uppercase; color: #93877b; }
.vye .v-ledger-grid dd {
  margin: 5px 0 0; font-size: clamp(21px, 1.9vw, 32px); font-weight: 600;
  line-height: 1; letter-spacing: -.015em; font-variant-numeric: tabular-nums; color: #252525;
}
.vye .v-ledger-note p { margin-top: 1.6vw; font-size: 11px; line-height: 1.7; color: #707070; }
.vye .v-about-copy h3 { font-size: clamp(20px, 1.7vw, 32px); font-weight: 600; }
.vye .v-about-copy p { margin-top: 1vw; font-size: max(12px, 1vw); line-height: 1.6; color: #3a3a3a; }
.vye .v-about-copy .v-dim p { color: #707070; font-size: 11px; }
.vye .v-about-copy .v-textlink { padding-top: 22px; }
.vye .v-about-copy .v-textlink a { color: #252525; }

/* ---------------------------------------------------------------- footer */
.vye .v-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 25px;
  padding: 3vw var(--gutter); background: var(--bg);
}
.vye .v-footer .v-logo .elementor-heading-title { font-size: clamp(24px, 2.2vw, 40px); }
.vye .v-footer-note p { font-size: 11px; color: var(--muted); }
.vye .v-top a { font-size: 12px; font-weight: 600; color: inherit; text-decoration: none; }
.vye .v-top a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* --------------------------------------------------- reveal on scroll */
html.v-anim .vye .v-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
html.v-anim .vye .v-reveal.is-visible { opacity: 1; transform: none; }
html.v-still .vye .v-reveal { opacity: 1 !important; transform: none !important; }
html.v-still, html.v-still .vye * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

/* ============================================================== dialogs */
.vye #image-dialog {
  border: 1px solid #ffffff2a; border-radius: 6px; padding: 0;
  color: var(--text); background: #15171b;
  width: min(1120px, 94vw); max-width: none; max-height: 94dvh; overflow-y: auto;
}
.vye #image-dialog::backdrop { background: #050609dc; backdrop-filter: blur(10px); }
.vye .viewer-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 16px; border-bottom: 1px solid var(--line); }
.vye #viewer-position { font-size: 11px; letter-spacing: .1em; padding-left: 7px; }
.vye .close-viewer { font-size: 28px; width: 34px; height: 34px; border: 0; background: none; color: inherit; border-radius: 50%; cursor: pointer; }
.vye .close-viewer:hover { background: #ffffff15; }
.vye .viewer-layout { display: grid; grid-template-columns: 60% 40%; }
.vye .viewer-image-wrap { display: grid; place-items: center; min-width: 0; overflow: hidden; background: #090a0c; }
.vye #viewer-image { width: 100%; background: #0b0c0d; }
.vye #viewer-image img { display: block; width: 100%; height: auto; max-height: 76dvh; object-fit: contain; }
.vye .viewer-info { align-self: center; padding: 34px; }
.vye .viewer-info h2 { font-size: clamp(25px, 2.8vw, 42px); line-height: 1.15; }
.vye .viewer-info .eyebrow { display: block; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 10px; }
.vye .viewer-info dl { margin: 30px 0; }
.vye .viewer-info dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.vye .viewer-info dt { color: var(--muted); }
.vye .viewer-info dd { margin: 0; text-align: right; max-width: 62%; }
.vye .viewer-purchase { border-top: 1px solid #ffffff25; padding-top: 14px; }
.vye .viewer-purchase .shop-price { font-size: 24px; color: var(--accent); margin: 6px 0 18px; font-variant-numeric: tabular-nums; }
.vye .quantity-label { display: flex; align-items: center; justify-content: space-between; font-size: 13px; margin-bottom: 16px; }
.vye .quantity-label input { width: 80px; padding: 10px; border: 1px solid #ffffff60; border-radius: 3px; background: transparent; color: #fff; font: inherit; }
.vye .purchase-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.vye .purchase-actions button {
  flex: 1; min-height: 44px; padding: 12px 14px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.vye .purchase-actions .button-outline { background: transparent; border: 1px solid #ffffff65; color: #f5eee8; }
.vye .purchase-note { margin: 12px 0; font-size: 11px; line-height: 1.6; color: #bfb5ac; }
.vye .viewer-navigation { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 26px; }
.vye .viewer-navigation > span { font-size: 10px; color: var(--muted); }

.vye #cart-dialog {
  position: fixed; inset: 0 0 0 auto; margin: 0; width: min(520px, 100%);
  height: 100dvh; max-height: 100dvh; border-radius: 0; background: #160e0e;
  border: 0; border-left: 1px solid #ffffff25; color: var(--text);
}
.vye #cart-dialog[open] { animation: v-cart-enter .3s ease-out; }
@keyframes v-cart-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
.vye .cart-shell { padding: 28px; }
.vye .cart-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid #ffffff25; }
.vye .cart-heading .eyebrow { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.vye .cart-heading h2 { font-size: 32px; margin-top: 12px; line-height: 1.2; }
.vye #cart-close { font-size: 30px; width: 44px; height: 44px; border: 0; background: none; color: inherit; border-radius: 50%; cursor: pointer; }
.vye #cart-close:hover { background: #ffffff15; }
.vye #cart-empty { padding: 60px 0; }
.vye #cart-empty p:first-child { font-size: 24px; margin-bottom: 12px; }
.vye #cart-empty p:nth-child(2) { color: #bfb5ac; font-size: 14px; line-height: 1.6; }
.vye #cart-empty button { margin-top: 28px; width: 100%; min-height: 48px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.vye .cart-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 24px 0; border-bottom: 1px solid #ffffff25; }
.vye .cart-thumbnail { aspect-ratio: 1; overflow: hidden; border: 1px solid #d8b68440; background: linear-gradient(135deg, #2b221c, #1a1412); }
.vye .cart-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vye .cart-item-info .eyebrow { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: #bfb5ac; }
.vye .cart-item h3 { font-size: 16px; margin: 5px 0; font-weight: 400; }
.vye .cart-item p { color: #bfb5ac; font-size: 12px; }
.vye .cart-item > strong { padding-top: 4px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.vye .cart-item-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 16px; }
.vye .cart-quantity { display: flex; align-items: center; border: 1px solid #ffffff50; border-radius: 3px; }
.vye .cart-quantity button { width: 34px; height: 36px; border: 0; background: none; color: inherit; font-size: 18px; cursor: pointer; }
.vye .cart-quantity button:disabled { opacity: .35; }
.vye .cart-quantity span { min-width: 28px; text-align: center; font-size: 13px; }
.vye .cart-remove { min-height: 36px; padding: 0; border: 0; background: none; color: #bfb5ac; font-size: 11px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.vye .cart-summary { padding-top: 28px; }
.vye .cart-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 20px; }
.vye .cart-summary small { font-size: 11px; color: #bfb5ac; }
.vye .cart-summary > p { margin: 16px 0; font-size: 12px; line-height: 1.7; color: #bfb5ac; }
.vye #cart-checkout { width: 100%; min-height: 50px; margin-top: 8px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.vye #cart-continue { display: block; margin: 16px auto 8px; padding: 0; border: 0; background: none; color: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.vye #checkout-preview { padding-top: 28px; }
.vye #checkout-preview > .eyebrow { display: block; color: var(--accent); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.vye #checkout-title { font-size: 28px; line-height: 1.25; margin: 14px 0 20px; }
.vye .checkout-back { display: flex; align-items: center; width: fit-content; margin: 0 0 22px; padding: 0; border: 0; background: none; color: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.vye #checkout-form { display: grid; gap: 20px; }
.vye .checkout-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.vye .checkout-fields label { display: grid; gap: 7px; font-size: 11px; letter-spacing: .04em; color: #bfb5ac; }
.vye .checkout-fields .field-wide { grid-column: span 2; }
.vye .checkout-fields input, .vye .checkout-fields select {
  width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #ffffff3d; border-radius: 3px;
  background: #1c1414; color: #f5eee8; font: inherit; font-size: 13px;
}
.vye .checkout-fields input:focus, .vye .checkout-fields select:focus { border-color: var(--accent); outline: none; }
.vye .checkout-fields input[aria-invalid="true"] { border-color: #e08a6b; }
.vye .field-error { font-size: 10px; color: #e8a184; letter-spacing: 0; }
.vye .delivery-options { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.vye .delivery-options legend { padding: 0 0 10px; font-size: 11px; letter-spacing: .04em; color: #bfb5ac; }
.vye .delivery-option { display: grid; grid-template-columns: 18px 1fr auto; gap: 4px 10px; align-items: center; padding: 13px 14px; border: 1px solid #ffffff30; border-radius: 3px; cursor: pointer; }
.vye .delivery-option:has(input:checked) { border-color: var(--accent); background: #d8b6840f; }
.vye .delivery-option input { grid-row: span 2; accent-color: #d8b684; }
.vye .delivery-option span { font-size: 13px; }
.vye .delivery-option small { grid-column: 2; font-size: 10px; color: #bfb5ac; }
.vye .delivery-option strong { grid-row: span 2; font-size: 12px; font-weight: 500; color: var(--accent); }
.vye .checkout-line { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid #ffffff25; font-size: 12px; line-height: 1.6; }
.vye .checkout-line strong { flex-shrink: 0; font-weight: 500; }
.vye .checkout-totals { display: grid; gap: 10px; padding-top: 16px; border-top: 1px solid #ffffff25; }
.vye .checkout-totals > div { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; color: #d8d0c8; }
.vye .checkout-totals strong { font-weight: 500; font-variant-numeric: tabular-nums; }
.vye .checkout-grand { margin-top: 4px; padding-top: 12px; border-top: 1px solid #ffffff1f; font-size: 17px; color: #fff; }
.vye .checkout-grand strong { font-size: 20px; color: var(--accent); }
.vye #place-order { width: 100%; min-height: 50px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.vye #order-confirmation { padding-top: 28px; }
.vye #order-confirmation .eyebrow { display: block; color: var(--accent); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.vye #confirm-title { font-size: 30px; line-height: 1.22; margin: 14px 0 16px; }
.vye .confirm-lede { font-size: 13px; line-height: 1.65; color: #d8d0c8; }
.vye .confirm-lede strong { color: var(--accent); font-weight: 600; letter-spacing: .04em; }
.vye .confirm-block { display: grid; gap: 16px; margin: 26px 0; padding: 20px; border: 1px solid #ffffff25; border-radius: 4px; background: #1b1313; }
.vye .confirm-label { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: #bfb5ac; }
.vye .confirm-block p { margin-top: 5px; font-size: 13px; line-height: 1.55; }
.vye .confirm-total { font-size: 20px; font-weight: 600; color: var(--accent); }
.vye #confirm-continue { width: 100%; min-height: 50px; margin-top: 20px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.vye .cart-status {
  position: fixed; bottom: 24px; left: 50%; z-index: 200;
  transform: translate(-50%, 15px); width: max-content; max-width: calc(100vw - 40px);
  padding: 14px 22px; border: 1px solid #d8b68470; border-radius: 4px;
  background: #271c16; color: #fff; box-shadow: 0 8px 40px #0006;
  font-size: 13px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.vye .cart-status.visible { opacity: 1; transform: translate(-50%, 0); }
body.v-cart-open, body.v-viewer-open { overflow: hidden; }

/* WooCommerce cart drawer, rendered outside Elementor's page wrapper. */
.v-woo-cart,
.v-woo-cart * { box-sizing: border-box; }
.v-woo-cart {
  position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0;
  width: min(460px, 100vw); height: 100dvh; max-height: 100dvh;
  border: 0; background: #160f0f; color: #f3f1ee;
  box-shadow: -24px 0 70px #0008;
  font: 15px/1.45 "Century Gothic", "Questrial", "Avenir Next", "Segoe UI", sans-serif;
}
.v-woo-cart::backdrop { background: #080606b8; backdrop-filter: blur(3px); }
.v-woo-panel { height: 100%; display: flex; flex-direction: column; }
.v-woo-head {
  display: flex; align-items: start; justify-content: space-between; gap: 20px;
  padding: 34px 34px 28px; border-bottom: 1px solid #ffffff26;
}
.v-woo-head small { display: block; color: #d2b994; font-size: 10px; letter-spacing: .15em; }
.v-woo-head h2 { margin: 8px 0 0; color: inherit; font-size: 32px; font-weight: 500; letter-spacing: -.04em; }
.v-woo-close { border: 0; background: transparent; color: inherit; font: 32px/1 sans-serif; cursor: pointer; }
.v-woo-message { margin: 0; padding: 0 34px; color: #d2b994; font-size: 13px; }
.v-woo-message:not(:empty) { padding-top: 15px; }
.v-woo-items { flex: 1; overflow-y: auto; padding: 12px 34px; }
.v-woo-empty { margin: 36px 0; color: #c3bdb8; }
.v-woo-item { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid #ffffff26; }
.v-woo-image { width: 84px; height: 84px; object-fit: cover; background: #302424; }
.v-woo-item-info { min-width: 0; }
.v-woo-item h3 { margin: 0; color: #f3f1ee; font-size: 14px; font-weight: 600; line-height: 1.35; }
.v-woo-item-price { margin: 7px 0 10px; color: #d2b994; }
.v-woo-controls { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.v-woo-controls button {
  min-width: 27px; height: 27px; padding: 0; border: 1px solid #ffffff50;
  border-radius: 0; background: transparent; color: inherit; text-align: center; cursor: pointer;
}
.v-woo-controls button:hover:not(:disabled) { border-color: #d2b994; color: #d2b994; }
.v-woo-controls button:disabled { opacity: .35; cursor: default; }
.v-woo-controls .v-woo-remove { width: auto; min-width: 0; height: auto; margin-left: auto; border: 0; color: #bcb3ae; font-size: 12px; text-decoration: underline; }
.v-woo-foot { padding: 24px 34px 34px; border-top: 1px solid #ffffff26; background: #1b1212; }
.v-woo-subtotal { display: flex; justify-content: space-between; gap: 20px; font-size: 16px; }
.v-woo-subtotal strong { color: #d2b994; font-weight: 600; }
.v-woo-foot p { margin: 10px 0 22px; color: #bcb3ae; font-size: 12px; }
.v-woo-checkout {
  display: block; padding: 15px 20px; background: #f3f1ee; color: #160f0f !important;
  text-align: center; text-decoration: none; font-weight: 600;
}
.v-woo-checkout:hover { background: #d2b994; }
.v-woo-checkout[hidden] { display: none; }
.v-woo-continue {
  display: block; width: 100%; margin-top: 12px; padding: 10px; border: 0;
  background: transparent; color: #f3f1ee; text-align: center; cursor: pointer;
}
.v-woo-continue:hover { color: #d2b994; }
@media (max-width: 560px) {
  .v-woo-head { padding: 26px 22px 22px; }
  .v-woo-items { padding: 10px 22px; }
  .v-woo-foot { padding: 20px 22px 28px; }
  .v-woo-message { padding-inline: 22px; }
}
@media (prefers-reduced-motion: no-preference) {
  .v-woo-cart[open] { animation: v-woo-enter .3s cubic-bezier(.22, 1, .36, 1); }
  @keyframes v-woo-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
}

/* ============================================================ responsive */
@media (max-width: 1050px) {
  .vye .v-nav { gap: 1.4vw; }
  .vye .v-motion { display: none; }
  .vye .v-hero { min-height: 0; padding: 2% 4% 3%; }
  .vye .v-hero-media { flex-basis: 50%; }
  .vye .v-hero-copy { flex-basis: 36%; }
  .vye .v-frame::after { font-size: 8px; padding: 6px 8px; }
}

@media (max-width: 1023px) {
  .vye .v-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 12px; }
  .vye .v-cardp { padding: 10px; }
  .vye .v-track > * { flex-basis: 30vw; min-height: 40vw; }
}

@media (max-width: 900px) {
  .vye .v-hero { flex-direction: column; align-items: stretch; gap: 24px; padding: 26px var(--gutter) 34px; }
  .vye .v-hero-media, .vye .v-hero-copy { flex: 0 0 auto; width: 100%; }
  .vye .v-hero-img img { max-height: none; width: 74%; }
  .vye .v-index-grid { flex-direction: column; }
  .vye .v-details { flex-direction: column; }
  .vye .v-detail-copy, .vye .v-detail-media { flex: 0 0 auto; width: 100%; }
  .vye .v-detail-media { order: -1; }
  .vye .v-study { flex-direction: column; align-items: stretch; gap: 26px; padding: 20px var(--gutter) 44px; }
  .vye .v-study-img, .vye .v-study-copy { flex: 0 0 auto; width: 100%; }
  .vye .v-study-img img { width: 78%; }
  .vye .v-delivery { flex-direction: column; gap: 32px; }
  .vye .v-delivery-left, .vye .v-terms { flex: 0 0 auto; width: 100%; }
  .vye .v-about { flex-direction: column; align-items: flex-start; gap: 30px; }
  .vye .v-about > .elementor-element { flex: 0 0 auto; width: 100%; }
  .vye .v-toolbar { flex-direction: column; align-items: flex-start; }
  .vye .v-search { flex: 0 0 auto; max-width: none; }
  .vye .v-footer { flex-wrap: wrap; }
  .vye .viewer-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .vye .v-navbar { flex-wrap: wrap; gap: 10px 16px; }
  .vye .v-logo { flex: 1 1 auto; }
  .vye .v-actions { margin-left: auto; }
  .vye .v-nav { order: 3; flex: 0 0 100%; gap: 20px; overflow-x: auto; padding-bottom: 2px; }
  .vye .v-nav .elementor-button { white-space: nowrap; font-size: 12px; }
}

@media (max-width: 700px) {
  .vye .v-caption p { font-size: 8px; }
  .vye .v-hero { padding-top: 18px; }
  .vye .v-hero-img img { width: 78%; }
  .vye .v-hero-title .elementor-heading-title { font-size: 34px; }
  .vye .v-hero-flavour .elementor-heading-title { font-size: 17px; margin-top: 14px; }
  .vye .v-index { padding-top: 44px; padding-bottom: 26px; }
  .vye .v-index-head { flex-direction: column; align-items: flex-start; gap: 10px; }
  .vye .v-index-card { padding: 24px; }
  .vye .v-archive { padding-top: 26px; }
  .vye .v-archive-head { flex-wrap: wrap; gap: 12px; }
  .vye .v-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 10px; }
  .vye .v-pair { flex-direction: column; }
  .vye .v-cardp h3 { margin-top: 12px; font-size: 15px; }
  .vye .v-tools { flex-direction: column; gap: 18px; margin-top: 25px; }
  .vye .v-tabs { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .vye .v-tabs button { padding: 5px 10px; font-size: 13px; border: 1px solid #5d5859; border-radius: 3px; }
  .vye .v-tabs button[aria-pressed="true"] { background: #ffffff12; }
  .vye .v-track > * { flex-basis: 70vw; min-height: 370px; }
  .vye .v-introcard { padding: 20px; }
  .vye .v-terms { width: 100%; }
  .vye .v-term { padding: 15px 0; }
  .vye .v-about { padding-bottom: 44px; }
  .vye .v-footer { padding: 30px var(--gutter); }
  .vye .v-footer-note { order: 3; flex: 0 0 100%; }
  .vye .cart-shell { padding: 22px 18px; }
  .vye .checkout-fields { grid-template-columns: 1fr; }
  .vye .checkout-fields .field-wide { grid-column: span 1; }
  .vye .cart-item { grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; }
  .vye #viewer-image img { max-height: 56dvh; }
}

@media (max-width: 460px) {
  .vye .viewer-info { padding: 20px; }
  .vye .viewer-info dl { margin: 18px 0; }
  .vye .viewer-navigation { margin-top: 18px; }
  .vye .viewer-navigation > span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html.v-anim .vye .v-reveal { opacity: 1; transform: none; transition: none; }
  .vye * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .vye #cart-dialog[open] { animation: none; }
}

/* HTML islands lay their own content out, so the flex rules live on the
   widget's inner container rather than on the Elementor element itself. */
.vye .v-tools { width: 100%; }
.vye .v-tools .elementor-widget-container { display: flex; gap: 2vw; align-items: flex-start; }
@media (max-width: 700px) {
  .vye .v-tools .elementor-widget-container { flex-direction: column; gap: 18px; }
}

/* ------------------------------------------------------------- 18+ entry */
.vye.v-gate {
  position: relative; display: flex; align-items: center; justify-content: center;
  min-height: 100vh; min-height: 100svh; padding: 6vw var(--gutter);
  background: #0d0908; overflow: hidden; isolation: isolate;
}
.vye .v-gate-card {
  position: relative; z-index: 3; display: flex; flex-direction: column;
  align-items: center; text-align: center; max-width: 660px;
}
.vye .v-gate-logo .elementor-heading-title { font-size: clamp(28px, 2.6vw, 44px); font-weight: 600; letter-spacing: -.08em; }
.vye .v-gate-logo .elementor-heading-title::after {
  content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--accent); margin: 0 0 3px 4px;
}
.vye .v-gate-eyebrow p { margin: 24px 0 18px; font-size: 10px; letter-spacing: .18em; color: var(--accent); }
.vye .v-gate-title .elementor-heading-title { font-size: clamp(34px, 4vw, 64px); line-height: 1.05; }
.vye .v-gate-copy p { margin-top: 20px; max-width: 46ch; font-size: max(13px, 1.02vw); line-height: 1.65; color: #cfc8c2; }
.vye .v-gate-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 34px; }
.vye .v-gate-no .elementor-button { background: transparent; border: 1px solid #ffffff59; color: #f3f1ee; }
.vye .v-gate-denied { margin-top: 26px; padding: 16px 20px; border: 1px solid #d2b99455; background: #d2b9940f; color: #e8dcc9; font-size: 13px; max-width: 46ch; }
.vye .v-gate-orb { position: absolute; right: -8vw; bottom: -10vw; z-index: 1; width: min(46vw, 560px); margin: 0; opacity: .55; pointer-events: none; }
.vye .v-gate-orb img { width: 100%; height: auto; }
@media (max-width: 700px) {
  .vye .v-gate-actions { flex-direction: column; width: 100%; }
  .vye .v-gate-actions .elementor-button { width: 100%; }
  .vye .v-gate-orb { right: -22vw; bottom: -6vw; width: 70vw; opacity: .35; }
}

/* ---------------------------------------------------- conversion fixes */
.vye .v-study-copy [data-add-cart] {
  margin-top: 16px; padding: 11px 20px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 13px; font-weight: 600;
}
.vye .v-study-copy [data-add-cart]:hover { background: #e4d4bb; }
.vye .v-study-copy .v-link {
  margin-top: 16px; padding: 0; background: none; color: var(--text);
  font-size: 13px; font-weight: 600; text-decoration: none;
}
.vye .v-study-copy .v-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.vye .v-study-img img { width: auto; max-width: 100%; max-height: min(40vw, 560px); margin: auto; }

.vye .v-ledger-grid dd { font-size: clamp(18px, 1.5vw, 26px); white-space: nowrap; }

/* Anchor jumps clear the sticky header. */
.vye .v-index, .vye .v-archive, .vye .v-details, .vye .v-about { scroll-margin-top: 96px; }

/* Study buy row: the pair sits on one line with a real gap. */
.vye .v-study-buy { width: 100%; }
.vye .v-study-buy .elementor-widget-container {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding-top: 18px;
}
.vye .v-study-copy [data-add-cart],
.vye .v-study-copy .v-link { margin-top: 0; }


/* ============================ ANCHOR: .elementor ============================
   Identical rule set, re-anchored to Elementor's own .elementor wrapper.
   That class is emitted by Elementor itself and survives template import,
   so the store still styles correctly even when the custom .vye class is
   missing from the imported containers.                                      */

/* ==========================================================================
   Veyra — Elementor store stylesheet
   Every rule is scoped to .elementor so the WordPress theme is never touched.
   Loaded by the child theme snippet / Custom Code, alongside veyra-store.js.
   ========================================================================== */

.elementor {
  --bg: #101010;
  --surface: #1d1d1b;
  --text: #f3f1ee;
  --muted: #aaa6a5;
  --line: #ffffff26;
  --accent: #d2b994;
  --gutter: clamp(22px, 4.1vw, 90px);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

.elementor,
.elementor * { box-sizing: border-box; }

.elementor {
  background: var(--bg);
  color: var(--text);
  font: clamp(14px, 1.06vw, 20px)/1.46 "Century Gothic", "Questrial", "Avenir Next", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

.elementor h1, .elementor h2, .elementor h3, .elementor h4, .elementor p, .elementor ul, .elementor dl, .elementor dd { margin: 0; }
.elementor h1, .elementor h2, .elementor h3 { font-weight: 400; line-height: 1.13; letter-spacing: -.035em; }
.elementor button {
  margin: 0; border: 0; background: none; color: inherit;
  font: inherit; line-height: inherit; cursor: pointer; text-align: inherit;
}
.elementor img { max-width: 100%; height: auto; }
.elementor [hidden] { display: none !important; }
.elementor strong { font-weight: 600; }

/* Elementor adds a bottom margin to every widget except the last one.
   Layout here is driven by the containers, so that margin is removed. */
.elementor .elementor-element.elementor-widget { margin-bottom: 0; margin-block-end: 0; }
.elementor .elementor-widget-container { padding: 0; }
.elementor .elementor-heading-title { margin: 0; padding: 0; color: inherit !important; }

/* ---------------------------------------------------------------- header */
.elementor .v-header {
  position: sticky; top: 0; z-index: 40;
  background: #160f0ff5; border-bottom: 1px solid #392d2d;
}
.elementor .v-header.is-scrolled { backdrop-filter: blur(16px); box-shadow: 0 4px 24px #0003; }
.elementor .v-header::after {
  content: ""; position: absolute; left: 0; bottom: -1px; z-index: 2;
  width: 100%; height: 1px; background: var(--accent);
  transform: scaleX(var(--v-progress, 0)); transform-origin: left;
}
.elementor .v-caption { background: #101010; text-align: center; padding: 4px 0; }
.elementor .v-caption p {
  font-size: max(9px, .7vw); letter-spacing: .06em; color: #d9d3cd;
}
.elementor .v-navbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 25px; padding: 12px var(--gutter);
}
.elementor .v-logo .elementor-heading-title {
  font-size: clamp(24px, 2.2vw, 40px); font-weight: 600; letter-spacing: -.08em; line-height: 1;
}
.elementor .v-logo .elementor-heading-title::after {
  content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--accent); margin: 0 0 3px 4px;
}
.elementor .v-nav { display: flex; flex-direction: row !important; align-items: center; gap: 2vw; width: auto !important; }
.elementor .v-nav .elementor-button {
  position: relative; background: none; border: 0; border-radius: 0;
  color: var(--text); font-size: max(12px, 1vw); font-weight: 400;
  padding: 7px 0; min-height: 0; line-height: 1.4;
}
.elementor .v-nav .elementor-button::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: var(--accent); transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.elementor .v-nav .elementor-button:hover::after,
.elementor .v-nav .elementor-button.is-current::after { transform: scaleX(1); }
.elementor .v-actions { display: flex; align-items: center; gap: 15px; }
.elementor .v-icon, .elementor .v-cart, .elementor .v-motion {
  display: inline-flex; align-items: center; gap: 7px;
  background: none; border: 0; color: inherit; font-size: 12px; padding: 0;
  min-height: 34px;
}
.elementor .v-icon { width: 34px; height: 34px; justify-content: center; border-radius: 50%; }
.elementor .v-icon:hover, .elementor .v-cart:hover { background: #ffffff15; }
.elementor .v-icon svg, .elementor .v-cart svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.elementor .v-cart { padding: 0 6px; }
.elementor .v-cart b {
  display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 4px;
  border-radius: 50%; background: var(--accent); color: #151010; font-size: 11px; font-weight: 600;
}
.elementor .v-motion { font-size: 10px; color: #b5b1b1; }
.elementor .v-motion span:first-child { font-size: 15px; }

/* ------------------------------------------------------------------ hero */
.elementor .v-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 3%;
  padding: 1.2% 5% 2%; min-height: clamp(520px, 43vw, 760px);
  background: #130a0b; overflow: hidden;
}
.elementor .v-hero-media { flex: 0 0 46%; display: flex; align-items: center; justify-content: center; min-width: 0; }
.elementor .v-hero-img { width: 100%; }
.elementor .v-hero-img img {
  display: block; width: auto; height: auto; margin: 0 auto;
  max-width: 100%; max-height: min(36vw, 520px);
  border: 1px solid #ffffff1f; border-radius: 2px; box-shadow: 0 40px 110px #000000b3;
}
.elementor .v-hero-copy { flex: 0 0 32%; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.elementor .v-hero-series p {
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 20px;
}
.elementor .v-hero-title .elementor-heading-title { font-size: clamp(32px, 3.1vw, 60px); line-height: 1; }
.elementor .v-hero-title .elementor-heading-title span {
  display: block; font-size: .48em; letter-spacing: .12em; color: var(--accent); margin-top: 12px;
}
.elementor .v-hero-flavour .elementor-heading-title {
  font-size: clamp(15px, 1.28vw, 23px); font-weight: 600; letter-spacing: -.01em; margin-top: 1.2vw;
}
.elementor .v-hero-notes p {
  font-size: max(10px, .8vw); letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent); margin-top: 7px;
}
.elementor .v-hero-summary p {
  margin-top: 20px; min-height: 3.6em; font-size: clamp(13px, 1.04vw, 18px); color: #e6e1dc;
}
.elementor .v-hero-price p {
  margin-top: 20px; font-size: clamp(22px, 1.8vw, 26px); color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.elementor .v-hero-price small { font-size: 11px; color: #bfb5ac; letter-spacing: .06em; margin-left: 6px; }
.elementor .v-hero-cta { width: 100%; padding-top: 18px; }
.elementor .v-hero-cta .elementor-button { width: 100%; }
.elementor .v-hero-controls {
  display: flex; flex-direction: row !important; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; margin-top: 1.5vw;
}
.elementor .v-hero-caption { flex: 1 1 auto; width: auto !important; min-width: 0; max-width: none; }
.elementor .v-hero-caption span, .elementor .v-hero-caption p { white-space: nowrap; }
.elementor .v-hero-caption span { display: block; font-size: 9px; letter-spacing: .1em; color: var(--muted); }
.elementor .v-hero-caption p { font-size: max(9px, .74vw); margin-top: 5px; }
.elementor .v-hero-steps { display: flex; flex-direction: row !important; gap: 8px; flex: 0 0 auto; width: auto !important; }
.elementor .v-hero-step .elementor-button {
  width: 27px; height: 27px; min-height: 0; padding: 0; border-radius: 50%;
  background: none; border: 1px solid #ffffff40; color: var(--text);
  display: grid; place-items: center; font-size: 14px; line-height: 1;
}
.elementor .v-hero-step .elementor-button:hover { background: #fff; color: #111; }
.elementor .v-hero-pagi { display: flex; align-items: center; gap: 15px; width: 100%; margin-top: 18px; }
.elementor .v-hero-slide .elementor-button {
  display: flex; align-items: center; gap: 7px;
  background: none; border: 0; padding: 8px 0; min-height: 0;
  color: var(--muted); font-size: 10px; letter-spacing: .08em;
}
.elementor .v-hero-slide .elementor-button::before {
  content: ""; width: 24px; height: 2px; background: #ffffff40; display: block;
  transition: background .25s;
}
.elementor .v-hero-slide[aria-pressed="true"] .elementor-button { color: var(--accent); }
.elementor .v-hero-slide[aria-pressed="true"] .elementor-button::before { background: var(--accent); }
.elementor .v-hero-auto { margin-left: auto; }
.elementor .v-hero-auto p { font-size: 9px; color: var(--muted); text-align: right; }

/* --------------------------------------------------------- shared blocks */
.elementor .v-eyebrow p {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent);
}
.elementor .v-h2 .elementor-heading-title {
  font-size: clamp(28px, 2.85vw, 58px); letter-spacing: -.035em; line-height: 1.13;
}
.elementor .v-h3 .elementor-heading-title { font-size: clamp(20px, 2.1vw, 40px); }
.elementor .v-muted { color: var(--muted); }
.elementor .v-textlink a {
  display: inline-block; font-size: max(12px, 1vw); font-weight: 600;
  color: inherit; text-decoration: none; border-bottom: 0;
}
.elementor .v-textlink a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* Elementor buttons, dressed as the store's buttons. */
.elementor .elementor-button {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 1.12vw 1.75vw; min-height: 44px;
  border-radius: 3px; background: #fff; color: #141414; text-decoration: none;
  font-size: max(12px, 1vw); font-weight: 600; line-height: 1.25;
  transition: background .25s, transform .25s;
}
.elementor .elementor-button:hover { background: #e4d4bb; transform: translateY(-2px); }

/* --------------------------------------------------------- collection index */
.elementor .v-index {
  background: #171614; border-top: 1px solid var(--line);
  padding: 6.6vw var(--gutter) 3.4vw;
}
.elementor .v-index-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.elementor .v-index-total p { font-size: 12px; color: var(--muted); }
.elementor .v-index-grid { display: flex; gap: 24px; margin-top: 40px; }
.elementor .v-index-card {
  flex: 1 1 0; min-width: 0; display: flex; flex-direction: column;
  align-items: flex-start; gap: 0;
  padding: 32px; border: 1px solid var(--line); background: #111110;
}
.elementor .v-index-card .v-eyebrow p { margin-bottom: 15px; }
.elementor .v-index-card .v-h3 .elementor-heading-title { margin: 0 0 14px; }
.elementor .v-copy p { color: var(--muted); font-size: max(13px, 1vw); line-height: 1.6; max-width: 480px; }
.elementor .v-price p {
  font-size: clamp(20px, 1.6vw, 24px); color: var(--accent); font-variant-numeric: tabular-nums;
}
.elementor .v-price small { font-size: 11px; color: #bfb5ac; letter-spacing: .06em; margin-left: 6px; }
.elementor .v-index-card .v-copy { padding-bottom: 26px; }
.elementor .v-index-card .v-price { padding-bottom: 20px; }
.elementor .v-index-card .v-browse, .elementor .v-index-card .v-detail-link { width: auto; }
.elementor .v-index-card .v-detail-link { padding-top: 18px; }
.elementor .v-note p { font-size: 12px; color: var(--muted); margin-top: 24px; }

/* ------------------------------------------------------------- all products */
.elementor .v-archive { padding: 3.4vw var(--gutter) 6.3vw; }
.elementor .v-archive-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.elementor .v-archive-head .v-h2 .elementor-heading-title { font-size: clamp(24px, 2vw, 38px); }
.elementor .v-archive-total p { font-size: 12px; color: #c4c1bc; }
.elementor .v-archive-body { width: 100%; padding-top: 26px; }
.elementor .v-series-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.elementor .v-series-filters button {
  padding: 12px 18px; border: 1px solid var(--line); border-radius: 3px;
  background: none; color: inherit; font-size: 13px; cursor: pointer;
  transition: background .25s, color .25s, border-color .25s;
}
.elementor .v-series-filters button[aria-pressed="true"] { color: #171410; background: var(--accent); border-color: var(--accent); }
.elementor .v-series-filters span { margin-left: 12px; opacity: .65; font-size: 11px; }
.elementor .v-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; }
.elementor .v-filters { display: flex; flex-wrap: wrap; background: #444; border-radius: 3px; padding: 4px; }
.elementor .v-filters button {
  padding: 7px 15px; font-size: 12px; color: #ccc; background: none;
  border: 0; cursor: pointer; transition: background .25s, color .25s;
}
.elementor .v-filters button[aria-pressed="true"] { background: #111; color: #fff; }
.elementor .v-search { display: flex; align-items: center; gap: 10px; width: 100%; max-width: 260px; flex: 0 1 260px; }
.elementor .v-search svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.4; }
.elementor .v-search input {
  width: 100%; min-width: 0; padding: 8px 0; font: inherit; font-size: 12px;
  color: #fff; background: none; border: 0; border-bottom: 1px solid #777; border-radius: 0;
}
.elementor .v-archive-nav { display: flex; align-items: center; justify-content: space-between; margin: 18px 0; }
.elementor .v-count { font-size: 11px; color: var(--muted); }
.elementor .v-pager { display: flex; align-items: center; gap: 10px; }
.elementor .v-page-num { font-size: 11px; letter-spacing: .12em; color: var(--muted); font-variant-numeric: tabular-nums; }
.elementor .v-circle {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid #ffffff40;
  display: grid; place-items: center; background: none; color: inherit;
  font: 15px/1 sans-serif; cursor: pointer; transition: background .2s, color .2s;
}
.elementor .v-circle:hover:not(:disabled) { background: #fff; color: #111; }
.elementor .v-circle:disabled { opacity: .3; cursor: default; }

.elementor .v-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5vw 1.1vw; }
.elementor .v-cardp {
  display: flex; flex-direction: column; min-width: 0;
  padding: .85vw; border: 1px solid #616161; background: #101010;
}
.elementor .v-cardp-main {
  display: block; width: 100%; padding: 0; text-align: left;
  background: none; border: 0; color: inherit; cursor: pointer;
}
.elementor .v-thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 1; background: #0c0b0a; }
.elementor .v-thumb img {
  display: block; width: 100%; height: 100%; object-fit: contain;
  transition: transform .7s var(--ease);
}
.elementor .v-cardp-main:hover .v-thumb img { transform: scale(1.04); }
.elementor .v-thumb::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, #ffffff1a 48%, transparent 65%);
  transform: translateX(-120%); transition: transform .7s var(--ease);
}
.elementor .v-cardp-main:hover .v-thumb::after { transform: translateX(120%); }
.elementor .v-open {
  position: absolute; right: 10px; bottom: 10px; z-index: 2;
  display: grid; place-items: center; width: 32px; height: 32px;
  border: 1px solid #ffffff5a; border-radius: 50%; background: #111b; font-size: 13px;
}
.elementor .v-serieslabel { display: block; margin-top: 10px; font-size: 10px; letter-spacing: .1em; color: var(--accent); }
.elementor .v-cardp h3 {
  margin: 1vw 0 0; font-size: clamp(14px, 1.12vw, 21px); line-height: 1.25;
  font-weight: 400; letter-spacing: -.02em;
}
.elementor .v-cardp-main small { display: block; margin: 8px 0; font-size: 11px; color: var(--muted); }
.elementor .v-buybox { margin-top: auto; padding-top: 11px; border-top: 1px solid #ffffff25; }
.elementor .v-buybox .v-price p { font-size: clamp(15px, 1.15vw, 19px); margin: 0 0 12px; white-space: nowrap; }
.elementor .v-buybox .v-price small { font-size: 10px; }
.elementor .v-pair { display: flex; gap: 6px; }
.elementor .v-pair button {
  flex: 1; min-height: 40px; padding: 10px 8px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 11.5px; font-weight: 600; cursor: pointer;
  transition: background .2s;
}
.elementor .v-pair button:hover { background: #e4d4bb; }
.elementor .v-pair .v-ghost { background: none; border: 1px solid #ffffff65; color: #f5eee8; }
.elementor .v-pair .v-ghost:hover { background: #ffffff12; }
.elementor .v-empty { padding: 45px 0; text-align: center; }
.elementor .v-empty button {
  margin-top: 12px; padding: 0; border: 0; background: none; color: var(--accent);
  font-size: 12px; font-weight: 600; text-decoration: underline; cursor: pointer;
}

/* ------------------------------------------------------------ product detail */
.elementor .v-details {
  display: flex; gap: 3vw; align-items: flex-start;
  padding: 6.6vw var(--gutter); background: #130a0b;
}
.elementor .v-details-ali { background: #171410; border-top: 1px solid #d2b99422; }
.elementor .v-detail-copy { flex: 1.47 1 0; min-width: 0; }
.elementor .v-detail-media { flex: 1 1 0; min-width: 0; }
.elementor .v-detail-copy .v-eyebrow p { margin-bottom: 18px; }
.elementor .v-tools { display: flex; gap: 2vw; margin-top: 3.7vw; align-items: flex-start; }
.elementor .v-tabs { display: flex; flex-direction: column; flex: 0 0 34%; }
.elementor .v-tabs button {
  text-align: left; padding: .35vw 0 .35vw 1.5vw; border: 0; border-left: 2px solid #5d5859;
  background: none; color: #aaa5a4; font-size: clamp(14px, 1.5vw, 26px);
  transition: color .25s, border-color .25s; cursor: pointer;
}
.elementor .v-tabs button[aria-pressed="true"] { color: #fff; border-color: #fff; font-weight: 600; }
.elementor .v-tools-info { flex: 1; min-width: 0; }
.elementor .v-tools-info .v-caption-text { font-size: max(12px, 1vw); line-height: 1.6; color: #d8d3ce; }
.elementor .v-tools-info .v-link { display: inline-block; margin-top: 16px; font-weight: 600; font-size: max(12px, 1vw); cursor: pointer; }
.elementor .v-tools-info .v-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.elementor .v-detail-buy { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 20px; }
.elementor .v-detail-buy .v-price p { font-size: 21px; margin: 0; }
.elementor .v-detail-buy button {
  padding: 11px 20px; border: 0; border-radius: 3px; background: #fff; color: #141414;
  font-size: 13px; font-weight: 600; cursor: pointer;
}
.elementor .v-detail-buy button:hover { background: #e4d4bb; }
.elementor .v-srcnote { margin-top: 22px; font-size: 11px; color: var(--muted); }
.elementor .v-frame { position: relative; width: 100%; overflow: hidden; border-radius: 3px; background: #0b0c0d; }
.elementor .v-frame img {
  display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover;
  transition: transform 1s var(--ease), transform-origin 1s var(--ease);
}
.elementor .v-frame[data-view="h"] img { transform: scale(2.2); transform-origin: 50% 32%; }
.elementor .v-frame[data-view="d"] img { transform: scale(3); transform-origin: 50% 68%; }
.elementor .v-frame::after {
  content: "IGET ONE / Front view";
  position: absolute; left: 15px; bottom: 15px; padding: 7px 10px;
  font-size: 9px; letter-spacing: .02em; background: #101010d9;
}
.elementor .v-frame[data-view="h"]::after { content: "IGET ONE / Detail view"; }
.elementor .v-frame[data-view="d"]::after { content: "IGET ONE / Close-up"; }
.elementor .v-details-ali .v-frame::after { content: "ALIBARBAR / Front view"; }
.elementor .v-details-ali .v-frame[data-view="h"]::after { content: "ALIBARBAR / Detail view"; }
.elementor .v-details-ali .v-frame[data-view="d"]::after { content: "ALIBARBAR / Close-up"; }

/* ----------------------------------------------------------- flavour rail */
.elementor .v-strip { position: relative; padding: 4.6vw 0 3vw; }
.elementor .v-track {
  display: flex; gap: 1.6vw; padding: 0 var(--gutter);
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--gutter);
  scrollbar-width: thin; scrollbar-color: #555 transparent;
}
.elementor .v-track > * { flex: 0 0 21.75vw; min-height: 35vw; scroll-snap-align: start; background: #050505; }
.elementor .v-introcard {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  padding: 1.6vw; background: linear-gradient(150deg, #5b1932, #1c2541 42%, #050505 85%);
}
.elementor .v-strip-ali .v-introcard { background: linear-gradient(150deg, #4a3a22, #1f2b33 46%, #050505 88%); }
.elementor .v-introcard h3 { font-size: clamp(21px, 2.1vw, 38px); line-height: 1.15; }
.elementor .v-introcard strong { display: block; font-weight: 600; }
.elementor .v-introcard p { margin: 1.3vw 0; font-size: max(12px, 1vw); color: #ddd8d3; }
.elementor .v-introcard .elementor-button { padding: 11px 18px; font-size: 12px; }
.elementor .v-stripcard { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; color: inherit; }
.elementor .v-stripcard img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform .8s var(--ease); }
.elementor .v-stripcard:hover img { transform: scale(1.03); }
.elementor .v-sname { display: block; margin: 1.5vw 1.6vw 0; font-size: clamp(17px, 1.6vw, 30px); line-height: 1.2; }
.elementor .v-staste { display: block; margin: 1vw 1.6vw 0; font-size: max(11px, .9vw); color: #b6b0ad; }
.elementor .v-sprice { display: block; margin: 1.1vw 1.6vw 0; font-size: max(12px, .92vw); color: var(--accent); }
.elementor .v-slink { display: block; margin: 2vw 1.6vw; font-size: max(12px, 1vw); font-weight: 600; }
.elementor .v-strip-next { position: absolute; top: 48%; right: 2vw; background: #777c; }

/* ------------------------------------------------------------ wide study */
.elementor .v-study {
  display: flex; align-items: center; justify-content: space-between; gap: 6%;
  padding: 2vw 5% 5vw;
  background: radial-gradient(ellipse at 50% 30%, #542709, #100b05 60%, #080605);
}
.elementor .v-study-img { flex: 0 0 44%; position: relative; }
.elementor .v-study-img img { display: block; width: 100%; margin: auto; object-fit: contain; }
.elementor .v-study-copy { flex: 0 0 42%; display: flex; flex-direction: column; align-items: flex-start; }
.elementor .v-study-copy .elementor-heading-title { font-size: clamp(24px, 2.4vw, 44px); }
.elementor .v-study-copy .elementor-heading-title strong { display: block; font-weight: 600; color: var(--accent); }
.elementor .v-study-copy p { margin-top: 14px; font-size: max(12px, 1vw); color: #ddd7d1; line-height: 1.6; }
.elementor .v-study-copy .v-price p { margin-top: 16px; }
.elementor .v-study-copy button {
  margin-top: 16px; padding: 11px 20px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 13px; font-weight: 600; cursor: pointer;
}

/* -------------------------------------------------------------- delivery */
.elementor .v-delivery {
  display: flex; gap: 6vw; align-items: flex-start;
  padding: 6.6vw var(--gutter); background: #fff; color: #252525;
}
.elementor .v-delivery-left { flex: 0 0 38%; }
.elementor .v-delivery .v-h2 .elementor-heading-title {
  font-size: clamp(30px, 3.1vw, 54px); line-height: 1.06; font-weight: 500; letter-spacing: -.012em;
}
.elementor .v-delivery .v-h2 strong { display: block; font-weight: 700; }
.elementor .v-delivery-lede p { margin-top: 1.7vw; max-width: 46ch; font-size: max(13px, 1.02vw); line-height: 1.65; color: #4a4a4a; }
.elementor .v-delivery-series p { margin-top: 1.5vw; max-width: 46ch; font-size: max(12px, .94vw); line-height: 1.75; color: #707070; }
.elementor .v-delivery-series strong { color: #252525; font-weight: 600; }
.elementor .v-delivery-left .v-textlink { padding-top: 2vw; }
.elementor .v-delivery-left .v-textlink a { color: #252525; font-size: 13px; }
.elementor .v-terms { flex: 1 1 0; display: flex; flex-direction: column; border-bottom: 1px solid #ded7cd; }
.elementor .v-term {
  display: flex; gap: 16px; padding: 1.55vw 0;
  border-top: 1px solid #ded7cd; color: #252525;
}
.elementor .v-term-num { flex: 0 0 46px; font-size: 10px; letter-spacing: .12em; color: #93877b; padding-top: 5px; }
.elementor .v-term-body { flex: 1; min-width: 0; }
.elementor .v-term h3 { font-size: clamp(15px, 1.15vw, 21px); font-weight: 600; letter-spacing: -.02em; }
.elementor .v-term p { margin-top: 4px; font-size: max(12px, .93vw); line-height: 1.6; color: #707070; }

/* ----------------------------------------------------------------- about */
.elementor .v-about {
  display: flex; gap: 4vw; align-items: center;
  padding: 3vw var(--gutter) 6.6vw; background: #fff; color: #252525;
}
.elementor .v-about > .elementor-element { flex: 1 1 0; min-width: 0; }
.elementor .v-about .v-h2 .elementor-heading-title { color: #252525; line-height: 1.05; }
.elementor .v-about .v-h2 strong { display: block; font-weight: 600; }
.elementor .v-ledger { border-top: 1px solid #ded7cd; border-bottom: 1px solid #ded7cd; padding: 1.7vw 0; }
.elementor .v-ledger-label { display: block; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; color: #93877b; }
.elementor .v-ledger-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5vw 2vw; margin-top: 1.5vw; }
.elementor .v-ledger-grid dt { font-size: 9px; letter-spacing: .13em; text-transform: uppercase; color: #93877b; }
.elementor .v-ledger-grid dd {
  margin: 5px 0 0; font-size: clamp(21px, 1.9vw, 32px); font-weight: 600;
  line-height: 1; letter-spacing: -.015em; font-variant-numeric: tabular-nums; color: #252525;
}
.elementor .v-ledger-note p { margin-top: 1.6vw; font-size: 11px; line-height: 1.7; color: #707070; }
.elementor .v-about-copy h3 { font-size: clamp(20px, 1.7vw, 32px); font-weight: 600; }
.elementor .v-about-copy p { margin-top: 1vw; font-size: max(12px, 1vw); line-height: 1.6; color: #3a3a3a; }
.elementor .v-about-copy .v-dim p { color: #707070; font-size: 11px; }
.elementor .v-about-copy .v-textlink { padding-top: 22px; }
.elementor .v-about-copy .v-textlink a { color: #252525; }

/* ---------------------------------------------------------------- footer */
.elementor .v-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 25px;
  padding: 3vw var(--gutter); background: var(--bg);
}
.elementor .v-footer .v-logo .elementor-heading-title { font-size: clamp(24px, 2.2vw, 40px); }
.elementor .v-footer-note p { font-size: 11px; color: var(--muted); }
.elementor .v-top a { font-size: 12px; font-weight: 600; color: inherit; text-decoration: none; }
.elementor .v-top a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* --------------------------------------------------- reveal on scroll */
html.v-anim .elementor .v-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
html.v-anim .elementor .v-reveal.is-visible { opacity: 1; transform: none; }
html.v-still .elementor .v-reveal { opacity: 1 !important; transform: none !important; }
html.v-still, html.v-still .elementor * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

/* ============================================================== dialogs */
.elementor #image-dialog {
  border: 1px solid #ffffff2a; border-radius: 6px; padding: 0;
  color: var(--text); background: #15171b;
  width: min(1120px, 94vw); max-width: none; max-height: 94dvh; overflow-y: auto;
}
.elementor #image-dialog::backdrop { background: #050609dc; backdrop-filter: blur(10px); }
.elementor .viewer-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 16px; border-bottom: 1px solid var(--line); }
.elementor #viewer-position { font-size: 11px; letter-spacing: .1em; padding-left: 7px; }
.elementor .close-viewer { font-size: 28px; width: 34px; height: 34px; border: 0; background: none; color: inherit; border-radius: 50%; cursor: pointer; }
.elementor .close-viewer:hover { background: #ffffff15; }
.elementor .viewer-layout { display: grid; grid-template-columns: 60% 40%; }
.elementor .viewer-image-wrap { display: grid; place-items: center; min-width: 0; overflow: hidden; background: #090a0c; }
.elementor #viewer-image { width: 100%; background: #0b0c0d; }
.elementor #viewer-image img { display: block; width: 100%; height: auto; max-height: 76dvh; object-fit: contain; }
.elementor .viewer-info { align-self: center; padding: 34px; }
.elementor .viewer-info h2 { font-size: clamp(25px, 2.8vw, 42px); line-height: 1.15; }
.elementor .viewer-info .eyebrow { display: block; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 10px; }
.elementor .viewer-info dl { margin: 30px 0; }
.elementor .viewer-info dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.elementor .viewer-info dt { color: var(--muted); }
.elementor .viewer-info dd { margin: 0; text-align: right; max-width: 62%; }
.elementor .viewer-purchase { border-top: 1px solid #ffffff25; padding-top: 14px; }
.elementor .viewer-purchase .shop-price { font-size: 24px; color: var(--accent); margin: 6px 0 18px; font-variant-numeric: tabular-nums; }
.elementor .quantity-label { display: flex; align-items: center; justify-content: space-between; font-size: 13px; margin-bottom: 16px; }
.elementor .quantity-label input { width: 80px; padding: 10px; border: 1px solid #ffffff60; border-radius: 3px; background: transparent; color: #fff; font: inherit; }
.elementor .purchase-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.elementor .purchase-actions button {
  flex: 1; min-height: 44px; padding: 12px 14px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.elementor .purchase-actions .button-outline { background: transparent; border: 1px solid #ffffff65; color: #f5eee8; }
.elementor .purchase-note { margin: 12px 0; font-size: 11px; line-height: 1.6; color: #bfb5ac; }
.elementor .viewer-navigation { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 26px; }
.elementor .viewer-navigation > span { font-size: 10px; color: var(--muted); }

.elementor #cart-dialog {
  position: fixed; inset: 0 0 0 auto; margin: 0; width: min(520px, 100%);
  height: 100dvh; max-height: 100dvh; border-radius: 0; background: #160e0e;
  border: 0; border-left: 1px solid #ffffff25; color: var(--text);
}
.elementor #cart-dialog[open] { animation: v-cart-enter .3s ease-out; }
@keyframes v-cart-enter { from { transform: translateX(100%); } to { transform: translateX(0); } }
.elementor .cart-shell { padding: 28px; }
.elementor .cart-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid #ffffff25; }
.elementor .cart-heading .eyebrow { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.elementor .cart-heading h2 { font-size: 32px; margin-top: 12px; line-height: 1.2; }
.elementor #cart-close { font-size: 30px; width: 44px; height: 44px; border: 0; background: none; color: inherit; border-radius: 50%; cursor: pointer; }
.elementor #cart-close:hover { background: #ffffff15; }
.elementor #cart-empty { padding: 60px 0; }
.elementor #cart-empty p:first-child { font-size: 24px; margin-bottom: 12px; }
.elementor #cart-empty p:nth-child(2) { color: #bfb5ac; font-size: 14px; line-height: 1.6; }
.elementor #cart-empty button { margin-top: 28px; width: 100%; min-height: 48px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.elementor .cart-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 24px 0; border-bottom: 1px solid #ffffff25; }
.elementor .cart-thumbnail { aspect-ratio: 1; overflow: hidden; border: 1px solid #d8b68440; background: linear-gradient(135deg, #2b221c, #1a1412); }
.elementor .cart-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.elementor .cart-item-info .eyebrow { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: #bfb5ac; }
.elementor .cart-item h3 { font-size: 16px; margin: 5px 0; font-weight: 400; }
.elementor .cart-item p { color: #bfb5ac; font-size: 12px; }
.elementor .cart-item > strong { padding-top: 4px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.elementor .cart-item-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 16px; }
.elementor .cart-quantity { display: flex; align-items: center; border: 1px solid #ffffff50; border-radius: 3px; }
.elementor .cart-quantity button { width: 34px; height: 36px; border: 0; background: none; color: inherit; font-size: 18px; cursor: pointer; }
.elementor .cart-quantity button:disabled { opacity: .35; }
.elementor .cart-quantity span { min-width: 28px; text-align: center; font-size: 13px; }
.elementor .cart-remove { min-height: 36px; padding: 0; border: 0; background: none; color: #bfb5ac; font-size: 11px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.elementor .cart-summary { padding-top: 28px; }
.elementor .cart-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 20px; }
.elementor .cart-summary small { font-size: 11px; color: #bfb5ac; }
.elementor .cart-summary > p { margin: 16px 0; font-size: 12px; line-height: 1.7; color: #bfb5ac; }
.elementor #cart-checkout { width: 100%; min-height: 50px; margin-top: 8px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.elementor #cart-continue { display: block; margin: 16px auto 8px; padding: 0; border: 0; background: none; color: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.elementor #checkout-preview { padding-top: 28px; }
.elementor #checkout-preview > .eyebrow { display: block; color: var(--accent); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.elementor #checkout-title { font-size: 28px; line-height: 1.25; margin: 14px 0 20px; }
.elementor .checkout-back { display: flex; align-items: center; width: fit-content; margin: 0 0 22px; padding: 0; border: 0; background: none; color: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.elementor #checkout-form { display: grid; gap: 20px; }
.elementor .checkout-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.elementor .checkout-fields label { display: grid; gap: 7px; font-size: 11px; letter-spacing: .04em; color: #bfb5ac; }
.elementor .checkout-fields .field-wide { grid-column: span 2; }
.elementor .checkout-fields input, .elementor .checkout-fields select {
  width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #ffffff3d; border-radius: 3px;
  background: #1c1414; color: #f5eee8; font: inherit; font-size: 13px;
}
.elementor .checkout-fields input:focus, .elementor .checkout-fields select:focus { border-color: var(--accent); outline: none; }
.elementor .checkout-fields input[aria-invalid="true"] { border-color: #e08a6b; }
.elementor .field-error { font-size: 10px; color: #e8a184; letter-spacing: 0; }
.elementor .delivery-options { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.elementor .delivery-options legend { padding: 0 0 10px; font-size: 11px; letter-spacing: .04em; color: #bfb5ac; }
.elementor .delivery-option { display: grid; grid-template-columns: 18px 1fr auto; gap: 4px 10px; align-items: center; padding: 13px 14px; border: 1px solid #ffffff30; border-radius: 3px; cursor: pointer; }
.elementor .delivery-option:has(input:checked) { border-color: var(--accent); background: #d8b6840f; }
.elementor .delivery-option input { grid-row: span 2; accent-color: #d8b684; }
.elementor .delivery-option span { font-size: 13px; }
.elementor .delivery-option small { grid-column: 2; font-size: 10px; color: #bfb5ac; }
.elementor .delivery-option strong { grid-row: span 2; font-size: 12px; font-weight: 500; color: var(--accent); }
.elementor .checkout-line { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid #ffffff25; font-size: 12px; line-height: 1.6; }
.elementor .checkout-line strong { flex-shrink: 0; font-weight: 500; }
.elementor .checkout-totals { display: grid; gap: 10px; padding-top: 16px; border-top: 1px solid #ffffff25; }
.elementor .checkout-totals > div { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; color: #d8d0c8; }
.elementor .checkout-totals strong { font-weight: 500; font-variant-numeric: tabular-nums; }
.elementor .checkout-grand { margin-top: 4px; padding-top: 12px; border-top: 1px solid #ffffff1f; font-size: 17px; color: #fff; }
.elementor .checkout-grand strong { font-size: 20px; color: var(--accent); }
.elementor #place-order { width: 100%; min-height: 50px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.elementor #order-confirmation { padding-top: 28px; }
.elementor #order-confirmation .eyebrow { display: block; color: var(--accent); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.elementor #confirm-title { font-size: 30px; line-height: 1.22; margin: 14px 0 16px; }
.elementor .confirm-lede { font-size: 13px; line-height: 1.65; color: #d8d0c8; }
.elementor .confirm-lede strong { color: var(--accent); font-weight: 600; letter-spacing: .04em; }
.elementor .confirm-block { display: grid; gap: 16px; margin: 26px 0; padding: 20px; border: 1px solid #ffffff25; border-radius: 4px; background: #1b1313; }
.elementor .confirm-label { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: #bfb5ac; }
.elementor .confirm-block p { margin-top: 5px; font-size: 13px; line-height: 1.55; }
.elementor .confirm-total { font-size: 20px; font-weight: 600; color: var(--accent); }
.elementor #confirm-continue { width: 100%; min-height: 50px; margin-top: 20px; border: 0; border-radius: 3px; background: #fff; color: #141414; font-weight: 600; cursor: pointer; }
.elementor .cart-status {
  position: fixed; bottom: 24px; left: 50%; z-index: 200;
  transform: translate(-50%, 15px); width: max-content; max-width: calc(100vw - 40px);
  padding: 14px 22px; border: 1px solid #d8b68470; border-radius: 4px;
  background: #271c16; color: #fff; box-shadow: 0 8px 40px #0006;
  font-size: 13px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.elementor .cart-status.visible { opacity: 1; transform: translate(-50%, 0); }
body.v-cart-open, body.v-viewer-open { overflow: hidden; }

/* ============================================================ responsive */
@media (max-width: 1050px) {
  .elementor .v-nav { gap: 1.4vw; }
  .elementor .v-motion { display: none; }
  .elementor .v-hero { min-height: 0; padding: 2% 4% 3%; }
  .elementor .v-hero-media { flex-basis: 50%; }
  .elementor .v-hero-copy { flex-basis: 36%; }
  .elementor .v-frame::after { font-size: 8px; padding: 6px 8px; }
}

@media (max-width: 1023px) {
  .elementor .v-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 12px; }
  .elementor .v-cardp { padding: 10px; }
  .elementor .v-track > * { flex-basis: 30vw; min-height: 40vw; }
}

@media (max-width: 900px) {
  .elementor .v-hero { flex-direction: column; align-items: stretch; gap: 24px; padding: 26px var(--gutter) 34px; }
  .elementor .v-hero-media, .elementor .v-hero-copy { flex: 0 0 auto; width: 100%; }
  .elementor .v-hero-img img { max-height: none; width: 74%; }
  .elementor .v-index-grid { flex-direction: column; }
  .elementor .v-details { flex-direction: column; }
  .elementor .v-detail-copy, .elementor .v-detail-media { flex: 0 0 auto; width: 100%; }
  .elementor .v-detail-media { order: -1; }
  .elementor .v-study { flex-direction: column; align-items: stretch; gap: 26px; padding: 20px var(--gutter) 44px; }
  .elementor .v-study-img, .elementor .v-study-copy { flex: 0 0 auto; width: 100%; }
  .elementor .v-study-img img { width: 78%; }
  .elementor .v-delivery { flex-direction: column; gap: 32px; }
  .elementor .v-delivery-left, .elementor .v-terms { flex: 0 0 auto; width: 100%; }
  .elementor .v-about { flex-direction: column; align-items: flex-start; gap: 30px; }
  .elementor .v-about > .elementor-element { flex: 0 0 auto; width: 100%; }
  .elementor .v-toolbar { flex-direction: column; align-items: flex-start; }
  .elementor .v-search { flex: 0 0 auto; max-width: none; }
  .elementor .v-footer { flex-wrap: wrap; }
  .elementor .viewer-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .elementor .v-navbar { flex-wrap: wrap; gap: 10px 16px; }
  .elementor .v-logo { flex: 1 1 auto; }
  .elementor .v-actions { margin-left: auto; }
  .elementor .v-nav { order: 3; flex: 0 0 100%; gap: 20px; overflow-x: auto; padding-bottom: 2px; }
  .elementor .v-nav .elementor-button { white-space: nowrap; font-size: 12px; }
}

@media (max-width: 700px) {
  .elementor .v-caption p { font-size: 8px; }
  .elementor .v-hero { padding-top: 18px; }
  .elementor .v-hero-img img { width: 78%; }
  .elementor .v-hero-title .elementor-heading-title { font-size: 34px; }
  .elementor .v-hero-flavour .elementor-heading-title { font-size: 17px; margin-top: 14px; }
  .elementor .v-index { padding-top: 44px; padding-bottom: 26px; }
  .elementor .v-index-head { flex-direction: column; align-items: flex-start; gap: 10px; }
  .elementor .v-index-card { padding: 24px; }
  .elementor .v-archive { padding-top: 26px; }
  .elementor .v-archive-head { flex-wrap: wrap; gap: 12px; }
  .elementor .v-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 10px; }
  .elementor .v-pair { flex-direction: column; }
  .elementor .v-cardp h3 { margin-top: 12px; font-size: 15px; }
  .elementor .v-tools { flex-direction: column; gap: 18px; margin-top: 25px; }
  .elementor .v-tabs { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .elementor .v-tabs button { padding: 5px 10px; font-size: 13px; border: 1px solid #5d5859; border-radius: 3px; }
  .elementor .v-tabs button[aria-pressed="true"] { background: #ffffff12; }
  .elementor .v-track > * { flex-basis: 70vw; min-height: 370px; }
  .elementor .v-introcard { padding: 20px; }
  .elementor .v-terms { width: 100%; }
  .elementor .v-term { padding: 15px 0; }
  .elementor .v-about { padding-bottom: 44px; }
  .elementor .v-footer { padding: 30px var(--gutter); }
  .elementor .v-footer-note { order: 3; flex: 0 0 100%; }
  .elementor .cart-shell { padding: 22px 18px; }
  .elementor .checkout-fields { grid-template-columns: 1fr; }
  .elementor .checkout-fields .field-wide { grid-column: span 1; }
  .elementor .cart-item { grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; }
  .elementor #viewer-image img { max-height: 56dvh; }
}

@media (max-width: 460px) {
  .elementor .viewer-info { padding: 20px; }
  .elementor .viewer-info dl { margin: 18px 0; }
  .elementor .viewer-navigation { margin-top: 18px; }
  .elementor .viewer-navigation > span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html.v-anim .elementor .v-reveal { opacity: 1; transform: none; transition: none; }
  .elementor * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .elementor #cart-dialog[open] { animation: none; }
}

/* HTML islands lay their own content out, so the flex rules live on the
   widget's inner container rather than on the Elementor element itself. */
.elementor .v-tools { width: 100%; }
.elementor .v-tools .elementor-widget-container { display: flex; gap: 2vw; align-items: flex-start; }
@media (max-width: 700px) {
  .elementor .v-tools .elementor-widget-container { flex-direction: column; gap: 18px; }
}

/* ------------------------------------------------------------- 18+ entry */
.elementor.v-gate {
  position: relative; display: flex; align-items: center; justify-content: center;
  min-height: 100vh; min-height: 100svh; padding: 6vw var(--gutter);
  background: #0d0908; overflow: hidden; isolation: isolate;
}
.elementor .v-gate-card {
  position: relative; z-index: 3; display: flex; flex-direction: column;
  align-items: center; text-align: center; max-width: 660px;
}
.elementor .v-gate-logo .elementor-heading-title { font-size: clamp(28px, 2.6vw, 44px); font-weight: 600; letter-spacing: -.08em; }
.elementor .v-gate-logo .elementor-heading-title::after {
  content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--accent); margin: 0 0 3px 4px;
}
.elementor .v-gate-eyebrow p { margin: 24px 0 18px; font-size: 10px; letter-spacing: .18em; color: var(--accent); }
.elementor .v-gate-title .elementor-heading-title { font-size: clamp(34px, 4vw, 64px); line-height: 1.05; }
.elementor .v-gate-copy p { margin-top: 20px; max-width: 46ch; font-size: max(13px, 1.02vw); line-height: 1.65; color: #cfc8c2; }
.elementor .v-gate-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 34px; }
.elementor .v-gate-no .elementor-button { background: transparent; border: 1px solid #ffffff59; color: #f3f1ee; }
.elementor .v-gate-denied { margin-top: 26px; padding: 16px 20px; border: 1px solid #d2b99455; background: #d2b9940f; color: #e8dcc9; font-size: 13px; max-width: 46ch; }
.elementor .v-gate-orb { position: absolute; right: -8vw; bottom: -10vw; z-index: 1; width: min(46vw, 560px); margin: 0; opacity: .55; pointer-events: none; }
.elementor .v-gate-orb img { width: 100%; height: auto; }
@media (max-width: 700px) {
  .elementor .v-gate-actions { flex-direction: column; width: 100%; }
  .elementor .v-gate-actions .elementor-button { width: 100%; }
  .elementor .v-gate-orb { right: -22vw; bottom: -6vw; width: 70vw; opacity: .35; }
}

/* ---------------------------------------------------- conversion fixes */
.elementor .v-study-copy [data-add-cart] {
  margin-top: 16px; padding: 11px 20px; border: 0; border-radius: 3px;
  background: #fff; color: #141414; font-size: 13px; font-weight: 600;
}
.elementor .v-study-copy [data-add-cart]:hover { background: #e4d4bb; }
.elementor .v-study-copy .v-link {
  margin-top: 16px; padding: 0; background: none; color: var(--text);
  font-size: 13px; font-weight: 600; text-decoration: none;
}
.elementor .v-study-copy .v-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.elementor .v-study-img img { width: auto; max-width: 100%; max-height: min(40vw, 560px); margin: auto; }

.elementor .v-ledger-grid dd { font-size: clamp(18px, 1.5vw, 26px); white-space: nowrap; }

/* Anchor jumps clear the sticky header. */
.elementor .v-index, .elementor .v-archive, .elementor .v-details, .elementor .v-about { scroll-margin-top: 96px; }

/* Live About section: an editorial close with the actual two ranges. */
.vye .v-about-live, .elementor .v-about-live {
  display: grid !important;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(40px, 6vw, 110px);
  align-items: center;
  padding: clamp(70px, 7vw, 130px) var(--gutter);
  background: #f6f3ee;
  color: #201d1b;
}
.vye .v-about-live > .elementor-element, .elementor .v-about-live > .elementor-element {
  width: auto !important;
  min-width: 0;
}
.vye .v-about-live-copy, .elementor .v-about-live-copy {
  display: flex;
  flex-direction: column !important;
  align-items: flex-start;
  gap: 0;
}
.vye .v-about-live-kicker p, .elementor .v-about-live-kicker p {
  margin: 0 0 28px;
  color: #746755;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .17em;
}
.vye .v-about-live-title .elementor-heading-title, .elementor .v-about-live-title .elementor-heading-title {
  color: #201d1b !important;
  font-size: clamp(42px, 4.7vw, 86px);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.055em;
}
.vye .v-about-live-title strong, .elementor .v-about-live-title strong { font-weight: 600; }
.vye .v-about-live-body p, .elementor .v-about-live-body p {
  max-width: 34rem;
  margin: 28px 0 0;
  color: #3b3631;
  font-size: clamp(16px, 1.2vw, 20px);
  line-height: 1.55;
}
.vye .v-about-live-facts p, .elementor .v-about-live-facts p {
  margin: 30px 0 0;
  color: #61594f;
  font-size: 12px;
  letter-spacing: .01em;
}
.vye .v-about-live-facts strong, .elementor .v-about-live-facts strong { color: #201d1b; }
.vye .v-about-live-facts span, .elementor .v-about-live-facts span { padding: 0 12px; color: #b2a89b; }
.vye .v-about-live-cta, .elementor .v-about-live-cta { margin-top: 32px; }
.vye .v-about-live-cta .elementor-button, .elementor .v-about-live-cta .elementor-button {
  display: inline-flex;
  width: auto;
  padding: 15px 22px;
  background: #201d1b;
  border: 1px solid #201d1b;
  border-radius: 0;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  transition: transform .2s ease, background .2s ease;
}
.vye .v-about-live-cta .elementor-button:hover, .elementor .v-about-live-cta .elementor-button:hover {
  transform: translateY(-2px);
  background: #43382d;
}
.vye .v-about-live-art, .elementor .v-about-live-art {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 24px);
  align-items: center;
}
.vye .v-about-live-art > .elementor-element, .elementor .v-about-live-art > .elementor-element {
  width: 100% !important;
  min-width: 0;
  overflow: hidden;
}
.vye .v-about-photo-two, .elementor .v-about-photo-two { transform: translateY(8%); }
.vye .v-about-live-art img, .elementor .v-about-live-art img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  transition: transform .3s ease;
}
.vye .v-about-live-art .elementor-element:hover img, .elementor .v-about-live-art .elementor-element:hover img { transform: scale(1.025); }
@media (max-width: 900px) {
  .vye .v-about-live, .elementor .v-about-live {
    grid-template-columns: 1fr;
    gap: 34px;
    padding-top: 64px;
    padding-bottom: 80px;
  }
  .vye .v-about-photo-two, .elementor .v-about-photo-two { transform: translateY(4%); }
}
@media (max-width: 460px) {
  .vye .v-about-live-title .elementor-heading-title, .elementor .v-about-live-title .elementor-heading-title { font-size: clamp(33px, 10vw, 46px); }
  .vye .v-about-live-facts span, .elementor .v-about-live-facts span { padding: 0 5px; }
}

/* Study buy row: the pair sits on one line with a real gap. */
.elementor .v-study-buy { width: 100%; }
.elementor .v-study-buy .elementor-widget-container {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding-top: 18px;
}
.elementor .v-study-copy [data-add-cart],
.elementor .v-study-copy .v-link { margin-top: 0; }
