/* ==========================================================================
   LavylitesUSA storefront. Layout and components; every value comes from tokens.css.
   ========================================================================== */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--c-page); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--c-page); color: var(--c-ink); font-family: var(--f-text); font-weight: var(--w-regular); font-size: var(--t-body); line-height: var(--lh-lede); -webkit-font-smoothing: antialiased; }
:where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
:where(ul, ol) { padding: 0; }
img { max-width: 100%; height: auto; display: block; }
picture { display: contents; }
a { color: var(--c-ink); text-decoration: none; }
a:hover { color: var(--c-blue); }
:focus-visible { outline: var(--focus); outline-offset: 2px; }
button, input, select, textarea { font: inherit; color: inherit; }
.lv-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lv-skip { position: absolute; left: 12px; top: -80px; z-index: 50; background: var(--c-ink); color: var(--c-on-ink); padding: 10px 16px; border-radius: var(--r-control); }
.lv-skip:focus { top: 12px; color: var(--c-on-ink); }
.lv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lv-wrap { width: 100%; max-width: var(--content); margin: 0 auto; }
.lv-prose-w { max-width: var(--prose); margin: 0 auto; }
.lv-link { color: var(--c-blue); }
.lv-link:hover { color: var(--c-ink); }
.lv-muted { color: var(--c-muted); }

/* ---------- Type ---------- */
.lv-eyebrow { font-size: var(--t-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--c-gold); }
.lv-count { font-size: var(--t-label); letter-spacing: var(--ls-count); text-transform: uppercase; color: var(--c-gold); }
.lv-h1 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: var(--t-h1-inner); line-height: var(--lh-title); color: var(--c-ink); }
.lv-h2 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: var(--t-h2); line-height: 1.2; color: var(--c-ink-2); margin: var(--h2-above) 0 var(--h2-below); }
.lv-h2:first-child { margin-top: 0; }
.lv-h2--lg { font-size: var(--t-h2-lg); color: var(--c-ink); }
.lv-lede { font-size: 15px; line-height: var(--lh-lede); color: var(--c-muted); max-width: 560px; margin: 12px auto 0; }
.lv-text p, .lv-p { font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); margin: 0 0 16px; }
.lv-text p:last-child { margin-bottom: 0; }
.lv-text a, .lv-p a { color: var(--c-blue); }
.lv-crumb { font-size: var(--t-legal); letter-spacing: 0.5px; color: var(--c-crumb); margin-bottom: 18px; }
.lv-crumb a { color: var(--c-crumb); }
.lv-crumb a:hover { color: var(--c-blue); }
.lv-updated { font-size: var(--t-note); color: var(--c-muted); margin-top: 28px; padding-top: 14px; border-top: 1px solid var(--c-line); }

/* ---------- Sections ---------- */
.lv-sec { padding: var(--sec-y) var(--pad-x); }
.lv-sec--cream { background: var(--c-cream); }
.lv-sec--page { background: var(--c-page); }
.lv-head { padding: 30px var(--pad-x) 0; text-align: center; }
.lv-rule { margin: 0 var(--pad-x); height: 2px; background: linear-gradient(90deg, transparent, var(--c-gold), transparent); }

/* ---------- Buttons, chips, inputs ---------- */
.lv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--c-ink); color: var(--c-on-ink); border: 1px solid var(--c-ink); border-radius: var(--r-control); padding: 14px 26px; font-size: var(--t-button); font-weight: var(--w-medium); letter-spacing: var(--ls-button); line-height: 1.2; cursor: pointer; min-height: var(--touch); text-align: center; }
.lv-btn:hover { background: var(--c-ink-2); border-color: var(--c-ink-2); color: var(--c-on-ink); }
.lv-btn--arrow::after { content: '\2192'; }
.lv-btn--ghost { background: transparent; color: var(--c-ink); }
.lv-btn--ghost:hover { background: transparent; color: var(--c-blue); border-color: var(--c-blue); }
.lv-btn[disabled], .lv-btn.is-disabled { background: var(--c-line); border-color: var(--c-line); color: var(--c-muted); cursor: not-allowed; }
.lv-btn--wide { width: 100%; }
.lv-cta { font-size: var(--t-nav); letter-spacing: var(--ls-cta); color: var(--c-blue); white-space: nowrap; text-transform: uppercase; }
.lv-cta::after { content: ' \2192'; }
.lv-cta:hover { color: var(--c-ink); }
.lv-chips { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 30px 0 0; }
.lv-chip { font-size: var(--t-chip); letter-spacing: var(--ls-chip); text-transform: uppercase; padding: 9px 18px; border-radius: var(--r-pill); border: 1px solid var(--c-chip); color: var(--c-muted); min-height: 38px; display: inline-flex; align-items: center; }
.lv-chip:hover { color: var(--c-ink); border-color: var(--c-ink); }
.lv-chip[aria-current="page"], .lv-chip.is-active { background: var(--c-ink); color: var(--c-page); border-color: var(--c-ink); }
.lv-field { display: flex; flex-direction: column; gap: 6px; }
.lv-label { font-size: var(--t-label); letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-muted); }
.lv-input, .lv-select, .lv-textarea { width: 100%; background: var(--c-card); border: 1px solid var(--c-chip); border-radius: var(--r-control); padding: 12px 14px; font-size: var(--t-input); color: var(--c-ink); min-height: var(--touch); }
.lv-textarea { min-height: 150px; resize: vertical; }
.lv-input:focus, .lv-select:focus, .lv-textarea:focus { outline: var(--focus); outline-offset: 2px; border-color: var(--c-ink); }

/* ---------- Search pill ---------- */
.lv-search { width: min(var(--search-w), 100%); margin: 30px auto 0; background: var(--c-card); border-radius: var(--r-pill); box-shadow: var(--shadow-search); display: flex; align-items: center; padding-left: 4px; }
.lv-search:focus-within { outline: var(--focus); outline-offset: 2px; }
.lv-search__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; padding-left: 20px; color: var(--c-muted); }
.lv-search__input { border: 0; background: transparent; outline: none; font-size: var(--t-input); padding: 16px 0; width: 100%; color: var(--c-ink); }
.lv-search__input::-webkit-search-cancel-button { display: none; }
.lv-search__btn { margin: 5px; background: var(--c-ink); color: var(--c-on-ink); border: 1px solid var(--c-ink); border-radius: var(--r-pill); padding: 14px 26px; font-size: var(--t-button); font-weight: var(--w-medium); letter-spacing: var(--ls-button); text-transform: uppercase; cursor: pointer; }
.lv-search__btn:hover { background: var(--c-ink-2); }

/* ---------- Top strip and header ---------- */
.lv-strip { background: var(--c-ink); color: var(--c-strip-text); font-size: var(--t-legal); letter-spacing: 0.5px; min-height: var(--strip-h); padding: 10px var(--pad-x); text-align: center; display: flex; align-items: center; justify-content: center; }
.lv-header { padding: 24px var(--pad-x); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--c-line); gap: 16px; }
.lv-nav { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.lv-nav--right { justify-content: flex-end; }
.lv-nav a { font-size: var(--t-nav); letter-spacing: var(--ls-nav); text-transform: uppercase; color: var(--c-muted); }
.lv-nav a[aria-current="page"] { color: var(--c-blue); }
.lv-nav a:hover { color: var(--c-blue); }
.lv-wordmark { font-family: var(--f-display); font-size: var(--t-wordmark); letter-spacing: var(--ls-wordmark); text-transform: uppercase; color: var(--c-ink); text-align: center; line-height: 1.2; }
.lv-wordmark:hover { color: var(--c-ink); }
.lv-menu-btn, .lv-cart-icon { display: none; width: var(--touch); height: var(--touch); align-items: center; justify-content: center; background: none; border: 0; cursor: pointer; color: var(--c-ink); }
.lv-mobile-nav { display: none; }
.lv-header--checkout { grid-template-columns: 1fr auto 1fr; }
.lv-header--checkout .lv-secure { justify-self: end; font-size: var(--t-nav); letter-spacing: var(--ls-nav); text-transform: uppercase; color: var(--c-muted); }

/* ---------- Home ---------- */
.lv-hero { padding: 44px var(--pad-x) 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.lv-hero__h1 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: var(--t-h1-home); line-height: var(--lh-h1); letter-spacing: 0.6px; color: var(--c-ink); max-width: 1040px; text-wrap: balance; }
.lv-hero__lede { margin: 24px 0 0; max-width: var(--lede-w); font-size: var(--t-body); line-height: var(--lh-lede); color: var(--c-muted); }
.lv-medals { padding: 40px var(--pad-x) 8px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.lv-medals__row { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: var(--medal-gap); flex-wrap: wrap; max-width: 1200px; }
.lv-medal { --m: var(--medal-lg); width: var(--m); height: var(--m); border-radius: 50%; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.lv-medal--sm { --m: var(--medal-sm); }
.lv-medal--art img { width: 100%; height: 100%; object-fit: contain; }
.lv-medal--placeholder { background: radial-gradient(circle at 35% 30%, var(--c-medal-hi), var(--c-medal-mid) 70%, var(--c-medal-lo)); box-shadow: var(--shadow-medal); color: var(--c-on-ink); padding: calc(var(--m) * 0.15) calc(var(--m) * 0.12); }
.lv-medal__year { font-family: var(--f-display); font-size: calc(var(--m) * 0.16); line-height: 1; }
.lv-medal__cat { font-size: max(6px, calc(var(--m) * 0.037)); letter-spacing: 0.5px; line-height: 1.2; text-transform: uppercase; margin: calc(var(--m) * 0.04) 0; }
.lv-medal__result { background: var(--c-card); color: var(--c-ink); font-family: var(--f-display); font-size: calc(var(--m) * 0.075); padding: 1px calc(var(--m) * 0.07); border-radius: var(--r-pill); }
a.lv-medal:hover { transform: translateY(-2px); }
.lv-medals__note { margin: 0; font-size: var(--t-legal); line-height: 1.6; color: var(--c-muted); text-align: center; max-width: 720px; }
.lv-series-index { padding: 34px var(--pad-x); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lv-series-index a { text-align: center; padding: 10px 0; display: flex; flex-direction: column; }
.lv-series-index__name { font-family: var(--f-display); font-size: var(--t-series); line-height: var(--lh-lede); color: var(--c-ink); }
.lv-series-index a:hover .lv-series-index__name { color: var(--c-blue); }
.lv-series-index .lv-count { margin-top: 4px; }
.lv-series__head { max-width: var(--content); margin: 0 auto 22px; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.lv-series__head .lv-h2 { margin: 0; font-size: var(--t-h2-lg); color: var(--c-ink); line-height: 1.15; }
.lv-series__line { font-size: var(--t-foot-link); color: var(--c-muted); margin-top: 6px; }
.lv-prose { max-width: var(--prose); margin: 0 auto; text-align: center; }
.lv-prose .lv-h2 { color: var(--c-ink-2); }
.lv-prose p { font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); margin: 0 0 17px; }
.lv-prose a { color: var(--c-blue); }

/* ---------- Product grid and card ---------- */
.lv-grid { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, var(--card-w)); gap: var(--gap); justify-content: center; max-width: var(--content); }
.lv-grid > li { display: flex; }
.lv-card { position: relative; display: flex; flex-direction: column; width: 100%; background: var(--c-card); border: 1px solid var(--c-line); color: var(--c-ink); }
.lv-card:hover { color: var(--c-ink); }
.lv-card:hover .lv-card__cta { color: var(--c-ink); }
.lv-card__media { height: var(--card-media); background: var(--c-page); position: relative; display: flex; align-items: center; justify-content: center; }
.lv-card__media img { width: var(--card-img); height: var(--card-img); object-fit: cover; }
.lv-card.is-soldout .lv-card__media img { opacity: 0.55; }
.lv-badge--soldout { color: var(--c-muted); }
.lv-badge { position: absolute; top: 10px; left: 10px; background: var(--c-page); color: var(--c-gold); font-size: var(--t-eyebrow); letter-spacing: 1.6px; text-transform: uppercase; padding: 4px 10px; border: 1px solid var(--c-line); }
.lv-card__body { padding: var(--card-pad); display: flex; flex-direction: column; gap: 4px; flex: 1; }
.lv-card__name { font-family: var(--f-display); font-weight: var(--w-regular); font-size: var(--t-card-name); line-height: 1.25; }
.lv-card__tag { font-size: var(--t-card-tag); line-height: 1.5; color: var(--c-muted); }
.lv-card__foot { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: auto; padding-top: 6px; flex-wrap: wrap; }
.lv-card__price { font-size: var(--t-price); color: var(--c-ink); }
.lv-card__cta { font-size: var(--t-nav); letter-spacing: var(--ls-cta); color: var(--c-blue); white-space: nowrap; }
.lv-card__cta::after { content: ' \2192'; }
.lv-price-sale { color: var(--c-sale); }
.lv-price-was { color: var(--c-muted); text-decoration: line-through; font-size: 0.9em; margin-left: 6px; }
.lv-empty { text-align: center; color: var(--c-muted); padding: 24px 0; }

/* ---------- FAQ accordion ---------- */
.lv-faq__head { text-align: center; margin-bottom: 26px; }
.lv-faq__head .lv-h2 { margin: 8px 0 0; font-size: var(--t-h2-lg); color: var(--c-ink); }
.lv-faq__list { max-width: var(--prose); margin: 0 auto; }
.lv-faq__item { border-bottom: 1px solid var(--c-line); }
.lv-faq__q { width: 100%; background: none; border: 0; padding: 18px 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; text-align: left; font-family: var(--f-display); font-size: var(--t-faq-q); color: var(--c-ink); cursor: pointer; min-height: var(--touch); }
.lv-faq__q:hover { color: var(--c-blue); }
.lv-faq__q::after { content: '+'; font-family: var(--f-text); font-size: 20px; color: var(--c-gold); flex-shrink: 0; }
.lv-faq__q[aria-expanded="true"]::after { content: '\2212'; }
.lv-faq__a { padding: 0 0 18px; }
.lv-faq__a p { margin: 0; font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); }
.lv-faq__a[hidden] { display: none; }
.lv-faq__more { text-align: center; margin-top: 22px; }
.lv-faq__group { margin: 34px 0 6px; }
.lv-faq__group:first-child { margin-top: 0; }

/* ---------- Product page ---------- */
.lv-pdp { padding: 30px var(--pad-x) 56px; }
.lv-pdp__grid { display: grid; grid-template-columns: var(--frame-w) 1fr; gap: 56px; align-items: start; }
.lv-pdp__frame { width: var(--frame-w); height: var(--frame-h); position: relative; overflow: hidden; border: 1px solid var(--c-line); background: var(--c-page); }
.lv-pdp__frame img { width: 100%; height: 100%; object-fit: cover; }
.lv-pdp__info { display: flex; flex-direction: column; }
.lv-pdp__info .lv-eyebrow { margin-bottom: 14px; }
.lv-pdp__name { font-family: var(--f-display); font-weight: var(--w-regular); font-size: var(--t-h1-product); line-height: var(--lh-title); margin: 0 0 14px; }
.lv-pdp__tag { font-size: var(--t-lede-product); line-height: var(--lh-lede); color: var(--c-muted); margin: 0 0 14px; }
.lv-pdp__award { font-size: var(--t-note); color: var(--c-gold); margin: -6px 0 16px; }
.lv-pdp__price { font-size: var(--t-price-lg); color: var(--c-ink); margin: 0 0 16px; }
.lv-pdp__size-note { font-size: var(--t-note); color: var(--c-muted); }
.lv-sale-until { display: block; margin-top: 4px; font-size: var(--t-note); color: var(--c-gold); }
.lv-pdp__unavailable { font-size: 20px; color: var(--c-muted); margin: 0 0 16px; }
.lv-sizes { margin: 0 0 18px; border: 0; padding: 0; }
.lv-sizes legend { font-size: var(--t-label); letter-spacing: 1.5px; text-transform: uppercase; color: var(--c-muted); margin-bottom: 8px; padding: 0; }
.lv-sizes__row { display: flex; gap: 10px; flex-wrap: wrap; }
.lv-size { background: var(--c-card); color: var(--c-ink); border: 1px solid var(--c-chip); border-radius: var(--r-control); padding: 10px 16px; font-size: var(--t-small); display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 120px; cursor: pointer; }
.lv-size__price { font-size: var(--t-legal); opacity: 0.8; }
.lv-size[aria-pressed="true"] { background: var(--c-ink); color: var(--c-on-ink); border-color: var(--c-ink); }
.lv-size:hover { border-color: var(--c-ink); }
.lv-buy { display: flex; gap: 10px; align-items: stretch; }
.lv-qty { display: flex; align-items: center; gap: 10px; border: 1px solid var(--c-chip); border-radius: var(--r-control); padding: 0 14px; background: var(--c-card); }
.lv-qty span { font-size: var(--t-label); letter-spacing: 0.48px; color: var(--c-muted); }
.lv-qty input { width: 44px; border: 0; background: transparent; font-size: var(--t-input); min-height: var(--touch); }
.lv-buy .lv-btn { flex: 1; }
.lv-disc { font-size: var(--t-label); line-height: 1.6; color: var(--c-muted); margin-top: 12px; }
.lv-disc a { color: var(--c-muted); text-decoration: underline; }
.lv-stock { font-size: var(--t-note); color: var(--c-muted); margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--c-line); }
.lv-pack-note { font-size: var(--t-note); color: var(--c-muted); margin-top: 8px; }
.lv-pdp-body { padding: var(--sec-y) var(--pad-x); }
.lv-pdp-body__grid { display: grid; grid-template-columns: var(--body-main) var(--body-aside); gap: 48px; align-items: start; }
.lv-highlights { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.lv-highlights li { display: flex; gap: 12px; align-items: baseline; font-size: var(--t-body); line-height: 1.6; color: var(--c-muted); }
.lv-highlights li::before { content: ''; width: 14px; height: 2px; background: var(--c-gold); flex-shrink: 0; position: relative; top: -5px; }
.lv-inci { font-size: var(--t-small); line-height: var(--lh-body); color: var(--c-muted); }
.lv-aside { display: flex; flex-direction: column; gap: 28px; }
.lv-glance { display: grid; grid-template-columns: 96px 1fr; gap: 8px 12px; font-size: var(--t-small); margin: 10px 0 0; }
.lv-glance dt { color: var(--c-muted); }
.lv-glance dd { margin: 0; }
.lv-related a { display: flex; gap: 14px; align-items: center; padding: 10px 0; }
.lv-related img { width: 56px; height: 56px; object-fit: cover; }
.lv-related__name { font-family: var(--f-display); font-size: 16px; color: var(--c-ink); }
.lv-related__tag { font-size: var(--t-legal); color: var(--c-muted); }
.lv-related a:hover .lv-related__name { color: var(--c-blue); }

/* ---------- Inner pages ---------- */
.lv-page-head { padding: 30px var(--pad-x) 0; text-align: center; }
.lv-page-head .lv-lede { max-width: var(--lede-w); }
.lv-cols { display: grid; grid-template-columns: 240px 1fr; gap: 40px; align-items: start; }
.lv-cols__h { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 22px; line-height: 1.25; color: var(--c-ink-2); }
.lv-cols + .lv-cols { margin-top: 36px; padding-top: 36px; border-top: 1px solid var(--c-line); }
.lv-legal { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: 56px; justify-content: center; align-items: start; }
.lv-legal__index { position: sticky; top: 24px; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--t-small); }
.lv-legal__index a { color: var(--c-muted); }
.lv-legal__index a[aria-current="page"] { color: var(--c-blue); }
.lv-legal__body h1 { margin-bottom: 6px; }
.lv-legal__body h2 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 22px; color: var(--c-ink-2); margin: 32px 0 10px; }
.lv-legal__body p { font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); margin: 0 0 14px; }
.lv-legal__date { font-size: var(--t-note); color: var(--c-muted); margin-bottom: 18px; }
.lv-glossary { width: 100%; border-collapse: collapse; font-size: var(--t-small); }
.lv-glossary th { text-align: left; font-weight: var(--w-medium); font-size: var(--t-label); letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-muted); padding: 10px 12px; border-bottom: 1px solid var(--c-chip); }
.lv-glossary td { padding: 12px; border-bottom: 1px solid var(--c-line); vertical-align: top; color: var(--c-muted); line-height: 1.55; }
.lv-glossary td:first-child { color: var(--c-ink); }
.lv-glossary .lv-group-row th { color: var(--c-gold); letter-spacing: var(--ls-eyebrow); font-size: var(--t-eyebrow); padding-top: 28px; border-bottom: 1px solid var(--c-line); }
.lv-glossary a { color: var(--c-blue); }
.lv-callout { background: var(--c-cream); border: 1px solid var(--c-line); padding: 24px 28px; }
.lv-awards-row { display: grid; grid-template-columns: 120px 80px 1fr; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--c-line); }
.lv-awards-row--other { grid-template-columns: 120px 1fr; }
.lv-awards-row .lv-medal { --m: 110px; }
.lv-awards-row--nomedal { grid-template-columns: 80px 1fr; }
.lv-awards-row--other.lv-awards-row--nomedal { grid-template-columns: 1fr; }
.lv-awards-row__img img { width: 80px; height: 80px; object-fit: cover; }
.lv-awards-row__name { font-family: var(--f-display); font-size: 20px; color: var(--c-ink); }
.lv-awards-row__line { font-size: var(--t-small); color: var(--c-muted); margin-top: 4px; }
.lv-series-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); max-width: var(--content); margin: 0 auto; }
.lv-series-card { background: var(--c-card); border: 1px solid var(--c-line); display: flex; flex-direction: column; }
.lv-series-card__imgs { background: var(--c-page); height: 180px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.lv-series-card__imgs img { width: 96px; height: 96px; object-fit: cover; }
.lv-series-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.lv-series-card__body .lv-btn { margin-top: auto; align-self: flex-start; }
.lv-guide-index { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 26px 0 0; }
.lv-journal-card { padding: 24px 0; border-bottom: 1px solid var(--c-line); }
.lv-journal-card__title { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 24px; line-height: 1.25; margin: 6px 0; }
.lv-journal-card__sum { color: var(--c-muted); line-height: var(--lh-lede); }
.lv-journal-card__date { font-size: var(--t-label); color: var(--c-muted); margin-left: 10px; }
.lv-mentioned { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--c-line); font-size: var(--t-small); }
.lv-contact { display: grid; grid-template-columns: 320px 1fr; gap: 56px; max-width: var(--content); margin: 0 auto; align-items: start; }
.lv-form { display: grid; gap: 16px; }
.lv-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lv-notice { padding: 14px 18px; border: 1px solid var(--c-line); border-top: 2px solid var(--c-gold); background: var(--c-card); margin-bottom: 16px; }
.lv-notice--error { border-top-color: var(--c-sale); }
.lv-result { background: var(--c-card); border: 1px solid var(--c-line); padding: 24px 28px; margin-top: 24px; }
.lv-result dl { display: grid; grid-template-columns: 120px 1fr; gap: 8px 16px; font-size: var(--t-small); }
.lv-result dt { color: var(--c-muted); }
.lv-result dd { margin: 0; }
.lv-addr-note { display: block; font-size: var(--t-label); color: var(--c-muted); }
.lv-social { display: flex; gap: 8px; }
.lv-social a { width: 30px; height: 30px; border: 1px solid var(--c-chip); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--c-muted); }
.lv-social a:hover { color: var(--c-blue); border-color: var(--c-blue); }
.lv-404 { text-align: center; padding: 96px var(--pad-x); }
.lv-404__code { font-family: var(--f-display); font-size: 96px; color: var(--c-gold); line-height: 1; }
.lv-404 .lv-h1 { margin: 16px 0 28px; }
.lv-404__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- Footer ---------- */
.lv-footer { background: var(--c-page); border-top: 1px solid var(--c-line); padding: 64px var(--pad-x) 28px; }
.lv-footer__grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr 1fr 1fr; gap: 32px; }
.lv-footer__brand { display: flex; flex-direction: column; }
.lv-footer__wordmark { font-family: var(--f-display); font-size: var(--t-wordmark-foot); letter-spacing: var(--ls-wordmark-foot); color: var(--c-ink); line-height: 1; text-transform: uppercase; }
.lv-footer__block { font-size: var(--t-foot-link); line-height: 1.6; color: var(--c-muted); margin-top: 18px; max-width: 250px; }
.lv-footer__block a { color: var(--c-muted); }
.lv-footer__block a:hover { color: var(--c-blue); }
.lv-footer__head { font-size: var(--t-label); font-weight: var(--w-medium); letter-spacing: var(--ls-foot-head); text-transform: uppercase; color: var(--c-ink); margin-bottom: 14px; }
.lv-footer__col ul { list-style: none; margin: 0; padding: 0; }
.lv-footer__col a { font-size: var(--t-foot-link); color: var(--c-muted); line-height: var(--lh-menu); }
.lv-footer__col a:hover { color: var(--c-blue); }
.lv-news { margin-top: 22px; max-width: 250px; }
.lv-news .lv-footer__head { margin-bottom: 10px; }
.lv-news__form { display: flex; flex-wrap: wrap; gap: 6px; }
.lv-news__ts { flex-basis: 100%; order: 3; }
.lv-news__ts:empty { display: none; }
.lv-bot { position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--c-ink); color: var(--c-on-ink); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 10px rgba(22, 19, 15, .25); }
.lv-bot[hidden] { display: none; }
.lv-bot:hover { background: var(--c-ink-2); }
.lv-bot:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 3px; box-shadow: 0 0 0 5px var(--c-card); }
.lv-bot[aria-busy] { opacity: .6; cursor: progress; }
body:has(.lv-sticky-atc) .lv-bot { display: none; }
.cbb-livebot-root .bot_cbb__btn, .cbb-livebot-root .custom__text, .cbb-livebot-root .Custom__cross { display: none !important; }
@media (max-width: 767px) { .lv-bot { right: 16px; bottom: 16px; } }
.lv-news__input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--c-chip); border-radius: var(--r-control); padding: 0 12px; font-size: var(--t-small); background: var(--c-card); }
.lv-news__btn { background: var(--c-ink); color: var(--c-on-ink); border: 1px solid var(--c-ink); border-radius: var(--r-control); padding: 0 14px; font-size: var(--t-nav); letter-spacing: 1px; cursor: pointer; min-height: 40px; }
.lv-news__btn:hover { background: var(--c-ink-2); }
.lv-news__note { font-size: var(--t-label); line-height: 1.55; color: var(--c-muted); margin-top: 8px; }
.lv-news__note a, .lv-footer__disc a { color: var(--c-muted); text-decoration: underline; }
.lv-footer__social { margin-top: 18px; }
.lv-footer__disc { font-size: var(--t-legal); line-height: 1.6; color: var(--c-muted); margin-top: 26px; max-width: 250px; }
.lv-footer__base { border-top: 1px solid var(--c-chip); margin-top: 44px; padding-top: 22px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font-size: var(--t-legal); color: var(--c-muted); }
.lv-marks { display: flex; align-items: center; gap: 6px; }
.lv-marks__label { font-size: var(--t-micro); letter-spacing: 1.8px; text-transform: uppercase; margin-right: 8px; }
.lv-marks img, .lv-marks svg { height: 22px; width: auto; }

/* ---------- Tablet ---------- */
@media (max-width: 1140px) {
	.lv-pdp__grid { grid-template-columns: minmax(0, 420px) 1fr; gap: 40px; }
	.lv-pdp__frame { width: 100%; height: auto; aspect-ratio: 4 / 5; }
	.lv-pdp-body__grid { grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; }
	.lv-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.lv-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 1023px) {
	.lv-header { grid-template-columns: var(--touch) 1fr var(--touch); padding: 16px var(--pad-x); }
	.lv-header .lv-nav { display: none; }
	.lv-menu-btn, .lv-cart-icon { display: inline-flex; }
	.lv-menu-btn { margin-left: -12px; }
	.lv-cart-icon { margin-right: -12px; justify-self: end; position: relative; }
	.lv-cart-icon__n { position: absolute; top: 6px; right: 4px; font-size: 10px; background: var(--c-ink); color: var(--c-on-ink); border-radius: 99px; min-width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; }
	.lv-mobile-nav { grid-column: 1 / -1; }
	.lv-mobile-nav:not([hidden]) { display: block; }
	.lv-mobile-nav ul { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--c-line); }
	.lv-mobile-nav a { display: block; padding: 12px 0; border-bottom: 1px solid var(--c-line); font-size: var(--t-nav); letter-spacing: var(--ls-nav); text-transform: uppercase; color: var(--c-muted); }
	.lv-mobile-nav a[aria-current="page"] { color: var(--c-blue); }
	.lv-pdp__grid, .lv-pdp-body__grid, .lv-contact, .lv-legal, .lv-cols { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.lv-legal__index { position: static; flex-direction: row; flex-wrap: wrap; gap: 8px 16px; }
	.lv-series-cards { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Phone ---------- */
@media (max-width: 767px) {
	.lv-strip { padding: 10px 20px; }
	.lv-hero { padding-top: 32px; }
	.lv-hero__h1 { line-height: 1.08; }
	.lv-hero__lede { margin-top: 18px; font-size: 15px; }
	.lv-medals { padding-top: 28px; }
	.lv-medals__row { display: grid; grid-template-columns: repeat(3, var(--medal-lg)); }
	.lv-grid { grid-template-columns: repeat(2, minmax(0, var(--card-w))); }
	.lv-series__head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.lv-card__foot { flex-direction: column; align-items: flex-start; gap: 4px; }
	.lv-pdp__frame { max-width: 350px; margin: 0 auto; }
	.lv-buy { flex-wrap: wrap; }
	.lv-footer { padding-top: 48px; }
	.lv-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; }
	.lv-footer__base { flex-direction: column; align-items: flex-start; }
	.lv-form__row { grid-template-columns: 1fr; }
	.lv-glossary thead { display: none; }
	.lv-glossary, .lv-glossary tbody, .lv-glossary tr, .lv-glossary td, .lv-glossary th { display: block; width: 100%; }
	.lv-glossary tr:not(.lv-group-row) { background: var(--c-card); border: 1px solid var(--c-line); margin-bottom: 10px; padding: 8px 0; }
	.lv-glossary td { border: 0; padding: 4px 14px; }
	.lv-glossary td::before { content: attr(data-label); display: block; font-size: var(--t-eyebrow); letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-gold); }
	.lv-awards-row, .lv-awards-row--other { grid-template-columns: 96px 1fr; }
	.lv-awards-row--nomedal, .lv-awards-row--other.lv-awards-row--nomedal { grid-template-columns: 1fr; }
	.lv-awards-row .lv-medal { --m: 96px; }
	.lv-awards-row__img { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
/* ---------- Product page additions ---------- */
.lv-pdp > .lv-crumb, .lv-pdp__grid, .lv-pdp-body__grid { max-width: var(--content); margin-left: auto; margin-right: auto; }
.lv-pdp-body { padding-top: 24px; }
.lv-pdp-body .lv-prose { max-width: none; margin: 0; text-align: left; }
.lv-pdp__img, .lv-pdp__img picture { display: block; width: 100%; height: 100%; }
.lv-pdp__frame .lv-badge { position: absolute; top: 14px; left: 14px; z-index: 1; }
.lv-pdp-sec + .lv-pdp-sec { margin-top: 40px; }
.lv-pdp-sec .lv-h2 { margin: 0 0 14px; text-align: left; }
.lv-pdp-sec .lv-faq__list { max-width: none; }
.lv-updated { font-size: var(--t-note); color: var(--c-muted); margin-top: 32px; }
.lv-aside__box h2 { margin: 0; }
.lv-related ul { list-style: none; margin: 8px 0 0; padding: 0; }
.lv-watch { position: relative; aspect-ratio: 16 / 9; background: var(--c-ink); }
.lv-watch iframe, .lv-watch__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lv-watch__play { background: var(--c-ink); color: var(--c-on-ink); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lv-shop-count { text-align: center; margin: 18px 0 0; }
.lv-shop-head .lv-search { margin-top: 24px; }
@media (max-width: 1023px) { .lv-pdp__grid, .lv-pdp-body__grid { grid-template-columns: 1fr; } .lv-pdp__frame { width: 100%; max-width: var(--frame-w); height: auto; aspect-ratio: 4 / 5; } }
@media (max-width: 767px) { .lv-header > nav:not(.lv-mobile-nav) { display: none; } .lv-pdp__grid { gap: 24px; } }

/* ---------- Content pages ---------- */
.lv-center { text-align: center; }
.lv-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.lv-sec--text { padding-top: 20px; padding-bottom: 20px; }
.lv-sec--text .lv-h2 { margin: 0 0 14px; }
.lv-page-head + .lv-sec--text { padding-top: 48px; }
.lv-small, .lv-prose p.lv-small { font-size: var(--t-note); color: var(--c-muted); }
.lv-ink { color: var(--c-ink); }
.lv-prose .lv-ink { color: var(--c-ink); }
.lv-h3 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 26px; line-height: 1.2; color: var(--c-ink); margin: 6px 0 10px; }
.lv-award-line { margin-bottom: 8px !important; }
.lv-series-cards { list-style: none; padding: 0; margin-top: 28px; }
.lv-series-card__imgs { display: flex; justify-content: center; gap: 4px; overflow: hidden; }
.lv-series-card__imgs { height: auto; padding: 0; } .lv-series-card__imgs picture { width: 33.33%; max-width: 110px; aspect-ratio: 1; display: block; } .lv-series-card__imgs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lv-series-card__body { padding: 20px 24px 28px; text-align: center; display: flex; flex-direction: column; align-items: center; flex: 1; }
.lv-series-card__body p { color: var(--c-muted); line-height: var(--lh-lede); margin: 0 0 18px; }
.lv-series-card__body .lv-btn { margin-top: auto; align-self: center; }
.lv-toc { max-width: 820px; margin-left: auto; margin-right: auto; padding: 0 var(--pad-x); }
.lv-cols-wrap { max-width: 880px; margin: 0 auto; }
.lv-cols { padding-bottom: 28px; border-bottom: 1px solid var(--c-line); scroll-margin-top: 24px; }
.lv-cols + .lv-cols { margin-top: 28px; padding-top: 0; border-top: 0; }
.lv-cols__h { margin: 0; }
.lv-prose-l p { font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); margin: 0 0 14px; }
.lv-prose-l a, .lv-contact a, .lv-result a, .lv-article a, .lv-legal__body a { color: var(--c-blue); }
.lv-glossary-wrap { max-width: var(--content); margin: 0 auto; overflow-x: auto; }
.lv-awards { max-width: 880px; margin: 0 auto; }
.lv-awards .lv-h2 { margin: 0 0 8px; }
.lv-faq-page { max-width: var(--prose); margin: 0 auto; }
.lv-faq-group + .lv-faq-group { margin-top: 36px; }
.lv-faq-group .lv-eyebrow { margin: 0 0 6px; }
.lv-faq-group .lv-faq__list { max-width: none; }
.lv-contact__details p { margin: 0 0 6px; }
.lv-contact__details .lv-eyebrow { margin-bottom: 10px; }
.lv-contact__addr { font-style: normal; line-height: 1.6; margin: 18px 0 14px; }
.lv-card-form { background: var(--c-card); border: 1px solid var(--c-line); padding: 28px 32px; }
.lv-field span { font-size: var(--t-label); letter-spacing: 1.5px; text-transform: uppercase; color: var(--c-muted); }
.lv-field input, .lv-field select, .lv-field textarea { font: inherit; font-size: var(--t-input); color: var(--c-ink); background: var(--c-card); border: 1px solid var(--c-chip); border-radius: var(--r-control); padding: 12px 14px; min-height: var(--touch); width: 100%; }
.lv-field input:focus, .lv-field select:focus, .lv-field textarea:focus { outline: var(--focus); outline-offset: 1px; border-color: var(--c-ink); }
.lv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lv-result--error { border-color: var(--c-gold); }
.lv-result p { margin: 0; }
.lv-track { max-width: 720px; margin: 0 auto; }
.lv-journal { max-width: var(--prose); margin: 0 auto; }
.lv-journal-card__title a { color: var(--c-ink); }
.lv-journal-card__title a:hover { color: var(--c-blue); }
.lv-pager { margin-top: 24px; display: flex; gap: 10px; justify-content: center; }
.lv-article { max-width: var(--prose); margin: 0 auto; }
.lv-article .lv-h1 { margin: 8px 0 10px; }
.lv-article__date { display: block; font-size: var(--t-note); color: var(--c-muted); margin-bottom: 24px; }
.lv-article__body h2, .lv-legal__body h2 { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 22px; color: var(--c-ink-2); margin: 32px 0 10px; }
.lv-article__body p { font-size: var(--t-body); line-height: var(--lh-body); color: var(--c-muted); margin: 0 0 14px; }
.lv-article__products { margin: 32px 0 8px; padding-top: 20px; border-top: 1px solid var(--c-line); }
.lv-legal__nav .lv-eyebrow { margin-bottom: 12px; }
.lv-wc { max-width: var(--content); margin: 0 auto; }
.lv-404 .lv-search { margin-top: 36px; }
@media (max-width: 1023px) { .lv-series-cards { grid-template-columns: 1fr; max-width: 420px; } .lv-contact { grid-template-columns: 1fr; gap: 32px; } .lv-legal { grid-template-columns: 1fr; gap: 24px; } .lv-legal__index { position: static; flex-direction: row; flex-wrap: wrap; gap: 6px 14px; } }
@media (max-width: 767px) { .lv-cols { grid-template-columns: 1fr; gap: 10px; } .lv-card-form { padding: 20px; } .lv-form__row { grid-template-columns: 1fr; } .lv-awards-row { grid-template-columns: 72px 64px 1fr; gap: 14px; } .lv-awards-row--other { grid-template-columns: 72px 1fr; } .lv-awards-row--nomedal, .lv-awards-row--other.lv-awards-row--nomedal { grid-template-columns: 1fr; } .lv-awards-row .lv-medal { --m: 68px; } .lv-glossary { font-size: 13px; } }

/* ---------- Reviews (RVW-05) ---------- */
.lv-stars { color: var(--c-gold); letter-spacing: 2px; }
.lv-stars__off { color: var(--c-chip); }
.lv-rev__sum { display: flex; gap: 8px; align-items: center; color: var(--c-muted); }
.lv-rev__list { list-style: none; margin: 0; padding: 0; }
.lv-rev { padding: 18px 0; border-bottom: 1px solid var(--c-line); }
.lv-rev__top { display: flex; justify-content: space-between; align-items: center; }
.lv-rev__ver { font-size: var(--t-label); letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-gold); }
.lv-rev__t { font-family: var(--f-display); font-weight: var(--w-regular); font-size: 18px; margin: 8px 0 4px; color: var(--c-ink); }
.lv-rev p { color: var(--c-muted); line-height: var(--lh-body); margin: 0 0 8px; }
.lv-rev__by { font-size: var(--t-note); }
.lv-rev__reply { margin-top: 10px; padding: 10px 14px; background: var(--c-card); border-left: 2px solid var(--c-gold); font-size: var(--t-small); }
.lv-rev__write { margin-top: 22px; }
.lv-rev__write summary { cursor: pointer; display: inline-block; margin-bottom: 12px; }
.lv-rate { border: 0; padding: 0; margin: 0; display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.lv-rate legend { font-size: var(--t-label); letter-spacing: 1.5px; text-transform: uppercase; color: var(--c-muted); margin-bottom: 6px; width: 100%; }
.lv-rate input { position: absolute; opacity: 0; }
.lv-rate label { font-size: 28px; color: var(--c-chip); cursor: pointer; line-height: 1; min-width: 32px; min-height: 44px; display: inline-flex; align-items: center; }
.lv-rate input:checked ~ label, .lv-rate label:hover, .lv-rate label:hover ~ label { color: var(--c-gold); }
.lv-rate input:focus-visible + label { outline: var(--focus); }
.lv-thr { margin: 0; color: var(--c-gold); }