/* =============================================================================
   Liva Mall V2 — design system
   PHASE 5.5. Foundations: space, type, surfaces, buttons, forms, motion, shared
   components (steps, contents list, notices).

   Every colour, size and duration below comes from a custom property emitted by
   inc/options/css-vars.php. There are no literal colours in this file, and that is
   the rule that makes the control panel real rather than decorative — and the rule
   that makes light and dark mode two palettes for ONE stylesheet. Nothing in this
   file knows which mode it is in.

   SPECIFICITY RULES (learned the hard way, see the audit in the Phase 5.5 report)
   - Every component rule is scoped under `.lmv2-v3` so it reaches (0,2,0) and beats
     the tag resets below, which are (0,1,1).
   - `woocommerce` and `lmv2-v3` are BOTH on <body>: compound them
     (`body.lmv2-v3.woocommerce-…`), never nest them.
   - !important appears only where a plugin writes an inline style or an attribute
     selector this theme cannot out-rank on merit; each case is commented.
   ========================================================================== */

.lmv2-v3{
  --s1:4px;  --s2:8px;  --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s7:28px; --s8:32px; --s10:40px; --s12:48px; --s14:56px; --s16:64px;
  --s20:80px; --s24:96px;
  --gutter:16px;
}
@media (min-width:768px){ .lmv2-v3{ --gutter:28px; } }
@media (min-width:1280px){ .lmv2-v3{ --gutter:40px; } }

/* ---------- Reset, kept to what this design actually needs ---------------- */

.lmv2-v3 *,.lmv2-v3 *::before,.lmv2-v3 *::after{box-sizing:border-box}

body.lmv2-v3{
  margin:0;
  background-color:var(--lmv2-bg);
  background-image:var(--lmv2-wash);
  background-repeat:no-repeat;
  color:var(--lmv2-ink);
  font-family:var(--lmv2-body-ff);
  font-size:var(--lmv2-body-fs);
  font-weight:var(--lmv2-body-fw);
  line-height:var(--lmv2-body-lh);
  letter-spacing:var(--lmv2-body-ls);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  transition:background-color var(--lmv2-t-base) ease,color var(--lmv2-t-base) ease;
}

/* (0,1,1). Component rules that need to hide or size an image are scoped under
   `.lmv2-v3` too, so they win — see layout.css "Brand". */
.lmv2-v3 img,.lmv2-v3 svg,.lmv2-v3 video{max-width:100%;height:auto;display:block}
.lmv2-v3 h1,.lmv2-v3 h2,.lmv2-v3 h3,.lmv2-v3 h4,.lmv2-v3 p,.lmv2-v3 figure,.lmv2-v3 ul,.lmv2-v3 ol,.lmv2-v3 dl,.lmv2-v3 dd{margin:0}
.lmv2-v3 ul[class],.lmv2-v3 ol[class]{list-style:none;padding:0}

/* ---------- Type ---------------------------------------------------------- */

.lmv2-v3 h1,.lmv2-v3 .lmv2-h1{
  font-family:var(--lmv2-h1-ff);font-size:calc(var(--lmv2-h1-fs) * var(--lmv2-type-scale-m));
  font-weight:var(--lmv2-h1-fw);line-height:var(--lmv2-h1-lh);letter-spacing:var(--lmv2-h1-ls);
  text-transform:var(--lmv2-h1-tt);text-wrap:balance;color:var(--lmv2-ink);
}
.lmv2-v3 h2,.lmv2-v3 .lmv2-h2{
  font-family:var(--lmv2-h2-ff);font-size:calc(var(--lmv2-h2-fs) * var(--lmv2-type-scale-m));
  font-weight:var(--lmv2-h2-fw);line-height:var(--lmv2-h2-lh);letter-spacing:var(--lmv2-h2-ls);
  text-transform:var(--lmv2-h2-tt);text-wrap:balance;color:var(--lmv2-ink);
}
.lmv2-v3 h3,.lmv2-v3 .lmv2-h3{
  font-family:var(--lmv2-h3-ff);font-size:var(--lmv2-h3-fs);font-weight:var(--lmv2-h3-fw);
  line-height:var(--lmv2-h3-lh);letter-spacing:var(--lmv2-h3-ls);text-transform:var(--lmv2-h3-tt);
  color:var(--lmv2-ink);
}
@media (min-width:768px){
  .lmv2-v3 h1,.lmv2-v3 .lmv2-h1{font-size:var(--lmv2-h1-fs)}
  .lmv2-v3 h2,.lmv2-v3 .lmv2-h2{font-size:var(--lmv2-h2-fs)}
}

.lmv2-v3 .lmv2-label,.lmv2-v3 .lmv2-eyebrow{
  display:inline-flex;align-items:center;gap:var(--s2);
  font-family:var(--lmv2-label-ff);font-size:var(--lmv2-label-fs);font-weight:var(--lmv2-label-fw);
  line-height:var(--lmv2-label-lh);letter-spacing:var(--lmv2-label-ls);text-transform:var(--lmv2-label-tt);
  color:var(--lmv2-muted);
}
.lmv2-v3 .lmv2-eyebrow svg{color:var(--lmv2-brand)}
.lmv2-v3 .lmv2-small{font-size:var(--lmv2-small-fs);line-height:var(--lmv2-small-lh);color:var(--lmv2-ink-2)}
.lmv2-v3 .lmv2-muted{color:var(--lmv2-muted)}

/* Prices always use tabular figures. */
.lmv2-v3 .price,.lmv2-v3 .lmv2-c__price,.lmv2-v3 .lmv2-pdp__price,.lmv2-v3 .woocommerce-Price-amount{
  font-variant-numeric:tabular-nums;
}

.lmv2-v3 a{color:inherit}
.lmv2-v3 a:not([class]){color:var(--lmv2-brand-ink);text-underline-offset:.18em}
.lmv2-v3 a:not([class]):hover{color:var(--lmv2-brand-hover)}

/* ---------- Focus --------------------------------------------------------- */
/* One visible ring, everywhere, on the keyboard. Never removed. */
.lmv2-v3 :focus{outline:none}
.lmv2-v3 :focus-visible{
  outline:var(--lmv2-focus-w) solid var(--lmv2-focus);
  outline-offset:2px;border-radius:2px;
}

/* A visually-hidden utility that can be out-specified is not a utility; every
   declaration is !important on purpose. WooCommerce's variation <select> is (0,4,2)
   and sets min-width:75% — without the floor it rendered 889px wide. */
/* Skip link: off-canvas until it receives keyboard focus, then a solid pill under the toolbar. */
.lmv2-v3 .lmv2-skip{position:absolute;left:var(--s4);top:-100px;z-index:10000;padding:var(--s3) var(--s5);border-radius:var(--lmv2-radius-btn);background:var(--lmv2-ink);color:var(--lmv2-bg);font-family:var(--lmv2-label-ff);font-weight:600;text-decoration:none;transition:top var(--lmv2-t-micro) ease}
.lmv2-v3 .lmv2-skip:focus-visible{top:var(--s4);outline:var(--lmv2-focus-w) solid var(--lmv2-focus);outline-offset:2px}
.admin-bar.lmv2-v3 .lmv2-skip:focus-visible{top:calc(32px + var(--s4))}
.lmv2-v3 .screen-reader-text{
  position:absolute!important;width:1px!important;height:1px!important;
  min-width:0!important;max-width:none!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;
  white-space:nowrap!important;border:0!important;
}
.lmv2-v3 .lmv2-skip{
  position:absolute;left:var(--s4);top:-64px;z-index:200;
  padding:var(--s3) var(--s5);border-radius:var(--lmv2-radius-btn);
  background:var(--lmv2-brand);color:var(--lmv2-on-brand);font-weight:600;text-decoration:none;
  transition:top var(--lmv2-t-micro) ease;
}
.lmv2-v3 .lmv2-skip:focus{top:var(--s4)}

/* ---------- Layout primitives -------------------------------------------- */

.lmv2-v3 .lmv2-wrap{width:100%;max-width:var(--lmv2-container);margin-inline:auto;padding-inline:var(--gutter)}
.lmv2-v3 .lmv2-wrap--narrow{max-width:var(--lmv2-container-narrow)}
.lmv2-v3 .lmv2-section{padding-block:var(--lmv2-section)}
.lmv2-v3 .lmv2-section--tight{padding-block:calc(var(--lmv2-section) * .6)}
.lmv2-v3 .lmv2-stack > * + *{margin-top:var(--s4)}

/* Surfaces. A lit top edge plus a soft shadow: on a dark ground the edge does the
   work, on a light ground the shadow does. Both are emitted per mode. */
.lmv2-v3 .lmv2-surface{
  background:var(--lmv2-surface);
  border-radius:var(--lmv2-radius-card);
  box-shadow:inset 0 1px 0 var(--lmv2-edge),var(--lmv2-shadow-1);
}
.lmv2-v3 .lmv2-surface-2{
  background:var(--lmv2-surface-2);
  border-radius:var(--lmv2-radius-card);
  box-shadow:inset 0 1px 0 var(--lmv2-edge),var(--lmv2-shadow-2);
}
.lmv2-v3 .lmv2-hr{border:0;border-top:1px solid var(--lmv2-line);margin-block:var(--s8)}

/* Alternating bands sit on the soft surface with hairline edges — sections read as
   separate without the page becoming a stack of boxes. */
.lmv2-v3 .lmv2-band{
  background:var(--lmv2-surface-soft);
  border-block:1px solid var(--lmv2-line-soft);
}

/* Section heading. The short coral rule is the one repeated brand device. */
.lmv2-v3 .lmv2-secthead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s5);margin-bottom:var(--s8);flex-wrap:wrap}
.lmv2-v3 .lmv2-secthead__title{position:relative;padding-top:var(--s5)}
.lmv2-v3 .lmv2-secthead__title::before{
  content:"";position:absolute;top:0;left:0;width:34px;height:3px;border-radius:2px;
  background:var(--lmv2-brand);
}
.lmv2-v3 .lmv2-secthead__intro{color:var(--lmv2-muted);margin-top:var(--s2);max-width:56ch}
.lmv2-v3 .lmv2-secthead__more{
  display:inline-flex;align-items:center;gap:var(--s2);
  font-family:var(--lmv2-label-ff);font-size:13px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;text-decoration:none;color:var(--lmv2-ink-2);
  padding-block:var(--s2);min-height:44px;
}
.lmv2-v3 .lmv2-secthead__more:hover{color:var(--lmv2-brand)}
.lmv2-v3 .lmv2-secthead__more svg{transition:transform var(--lmv2-t-micro) ease}
.lmv2-v3 .lmv2-secthead__more:hover svg{transform:translateX(3px)}

/* ---------- Buttons ------------------------------------------------------- */
/* Five variants, one geometry. A WooCommerce button and a theme button are the same
   object. */

.lmv2-v3 .lmv2-btn,
.lmv2-v3 .button,
body.lmv2-v3 a.button,
body.lmv2-v3 button.button,
.lmv2-v3 input[type=submit],
.lmv2-v3 .wp-element-button{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  min-height:var(--lmv2-btn-h);padding:0 var(--lmv2-btn-px);
  border:1px solid transparent;border-radius:var(--lmv2-radius-btn);
  font-family:var(--lmv2-button-ff);font-size:var(--lmv2-button-fs);font-weight:var(--lmv2-button-fw);
  line-height:var(--lmv2-button-lh);letter-spacing:var(--lmv2-button-ls);text-transform:var(--lmv2-button-tt);
  text-decoration:none;cursor:pointer;white-space:nowrap;
  background:var(--lmv2-surface-2);color:var(--lmv2-ink);
  box-shadow:inset 0 1px 0 var(--lmv2-edge),var(--lmv2-shadow-1);
  transition:background var(--lmv2-t-micro) ease,color var(--lmv2-t-micro) ease,
             border-color var(--lmv2-t-micro) ease,transform var(--lmv2-t-micro) ease,
             box-shadow var(--lmv2-t-micro) ease;
}
.lmv2-v3 .lmv2-btn svg{flex:0 0 auto}
.lmv2-v3 .lmv2-btn:hover,.lmv2-v3 .button:hover{background:var(--lmv2-surface);color:var(--lmv2-ink)}
.lmv2-v3 .lmv2-btn:active,.lmv2-v3 .button:active{transform:translateY(1px)}

.lmv2-v3 .lmv2-btn--primary,
.lmv2-v3 .button.alt,
.lmv2-v3 .single_add_to_cart_button,
.lmv2-v3 .checkout-button,
.lmv2-v3 #place_order,
.lmv2-v3 button[type=submit].wp-element-button{
  background:var(--lmv2-brand);color:var(--lmv2-on-brand);border-color:var(--lmv2-brand);
  box-shadow:0 1px 0 var(--lmv2-edge) inset,var(--lmv2-shadow-1);
}
.lmv2-v3 .lmv2-btn--primary:hover,
.lmv2-v3 .button.alt:hover,
.lmv2-v3 .single_add_to_cart_button:hover,
.lmv2-v3 .checkout-button:hover,
.lmv2-v3 #place_order:hover{background:var(--lmv2-brand-hover);border-color:var(--lmv2-brand-hover);color:var(--lmv2-on-brand)}

.lmv2-v3 .lmv2-btn--secondary{background:transparent;color:var(--lmv2-ink);border-color:var(--lmv2-line-strong);box-shadow:none}
.lmv2-v3 .lmv2-btn--secondary:hover{background:var(--lmv2-surface);border-color:var(--lmv2-ink-2)}

.lmv2-v3 .lmv2-btn--ghost{background:transparent;color:var(--lmv2-ink-2);border-color:transparent;box-shadow:none}
.lmv2-v3 .lmv2-btn--ghost:hover{background:var(--lmv2-surface);color:var(--lmv2-ink)}

.lmv2-v3 .lmv2-btn--text{
  background:none;border:0;padding:0;min-height:0;color:var(--lmv2-brand-ink);box-shadow:none;
  text-decoration:underline;text-underline-offset:.2em;
}
.lmv2-v3 .lmv2-btn--text:hover{background:none;color:var(--lmv2-brand-hover)}

.lmv2-v3 .lmv2-btn--danger{background:var(--lmv2-error);color:var(--lmv2-bg);border-color:var(--lmv2-error)}

.lmv2-v3 .lmv2-btn--lg{min-height:calc(var(--lmv2-btn-h) + 8px);padding-inline:calc(var(--lmv2-btn-px) + 8px);font-size:calc(var(--lmv2-button-fs) + 1px)}
.lmv2-v3 .lmv2-btn--block{display:flex;width:100%}

.lmv2-v3 .button:disabled,
.lmv2-v3 .button.disabled,
.lmv2-v3 .lmv2-btn[disabled],
.lmv2-v3 .lmv2-btn[aria-disabled=true]{
  opacity:.45;cursor:not-allowed;transform:none;
}

@media (max-width:767px){
  .lmv2-v3.lmv2-btnfull .lmv2-btn--primary,
  .lmv2-v3.lmv2-btnfull .single_add_to_cart_button,
  .lmv2-v3.lmv2-btnfull .checkout-button,
  .lmv2-v3.lmv2-btnfull #place_order{width:100%;display:flex}
}

/* ---------- Forms --------------------------------------------------------- */
/* Visible labels are not optional here. */

.lmv2-v3 label,
body.lmv2-v3 form .form-row label,
.lmv2-v3 .ff-el-input--label label{
  display:block;font-family:var(--lmv2-label-ff);font-size:12.5px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;color:var(--lmv2-ink-2);
  margin-bottom:var(--s2);
}
.lmv2-v3 .required,.lmv2-v3 .ff-el-is-required{color:var(--lmv2-brand-ink);text-decoration:none}

.lmv2-v3 input[type=text],.lmv2-v3 input[type=email],.lmv2-v3 input[type=tel],
.lmv2-v3 input[type=url],.lmv2-v3 input[type=password],.lmv2-v3 input[type=number],
.lmv2-v3 input[type=search],.lmv2-v3 input[type=date],.lmv2-v3 select,.lmv2-v3 textarea,
.lmv2-v3 .select2-container--default .select2-selection--single{
  width:100%;min-height:var(--lmv2-inp-h);padding:0 var(--s4);
  /* 16px minimum: anything smaller makes iOS zoom the page when a field is focused. */
  font-family:var(--lmv2-body-ff);font-size:16px;color:var(--lmv2-ink);
  background:var(--lmv2-input-bg);
  border:1px solid var(--lmv2-input-border);border-radius:var(--lmv2-radius-input);
  transition:border-color var(--lmv2-t-micro) ease,background var(--lmv2-t-micro) ease,box-shadow var(--lmv2-t-micro) ease;
  appearance:none;
}
.lmv2-v3 textarea{padding-block:var(--s3);min-height:120px;line-height:1.6;resize:vertical}
.lmv2-v3 select{
  padding-right:var(--s10);
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) center,calc(100% - 14px) center;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.lmv2-v3 input:hover,.lmv2-v3 select:hover,.lmv2-v3 textarea:hover{border-color:var(--lmv2-ink-2)}
.lmv2-v3 input:focus,.lmv2-v3 select:focus,.lmv2-v3 textarea:focus{border-color:var(--lmv2-focus);box-shadow:0 0 0 3px var(--lmv2-brand-ghost)}
.lmv2-v3 input::placeholder,.lmv2-v3 textarea::placeholder{color:var(--lmv2-muted);opacity:1}
.lmv2-v3 input:disabled,.lmv2-v3 select:disabled,.lmv2-v3 textarea:disabled{opacity:.5;cursor:not-allowed}
.lmv2-v3 input[type=checkbox],.lmv2-v3 input[type=radio]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--lmv2-brand);appearance:auto}

.lmv2-v3 .lmv2-help,.lmv2-v3 .ff-el-help-message,.lmv2-v3 .description{
  font-size:13px;color:var(--lmv2-muted);margin-top:var(--s2);line-height:1.5;
}
.lmv2-v3 .lmv2-err,.lmv2-v3 .ff-el-is-error .error,.lmv2-v3 .woocommerce-error li{
  color:var(--lmv2-error);font-size:13.5px;margin-top:var(--s2);
}
.lmv2-v3 .ff-el-is-error input,.lmv2-v3 input[aria-invalid=true]{border-color:var(--lmv2-error)}

/* Quantity. A real stepper with real touch targets. */
.lmv2-v3 .quantity{display:inline-flex;align-items:stretch;border:1px solid var(--lmv2-input-border);border-radius:var(--lmv2-radius-input);overflow:hidden;background:var(--lmv2-input-bg)}
.lmv2-v3 .quantity input.qty{
  width:64px;min-height:var(--lmv2-inp-h);border:0;background:none;text-align:center;
  font-variant-numeric:tabular-nums;border-radius:0;
}
.lmv2-v3 .quantity input.qty::-webkit-outer-spin-button,
.lmv2-v3 .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.lmv2-v3 .quantity input.qty{-moz-appearance:textfield}

/* ---------- Notices ------------------------------------------------------- */

.lmv2-v3 .woocommerce-message,
.lmv2-v3 .woocommerce-info,
.lmv2-v3 .woocommerce-error,
.lmv2-v3 .lmv2-notice{
  display:flex;align-items:flex-start;gap:var(--s3);
  padding:var(--s4) var(--s5);margin:0 0 var(--s6);
  border:1px solid var(--lmv2-line);border-left:3px solid var(--lmv2-brand);
  border-radius:var(--lmv2-radius-card);background:var(--lmv2-surface);
  color:var(--lmv2-ink);font-size:14.5px;line-height:1.55;list-style:none;
}
.lmv2-v3 .woocommerce-message{border-left-color:var(--lmv2-success)}
.lmv2-v3 .woocommerce-error{border-left-color:var(--lmv2-error)}
.lmv2-v3 .woocommerce-info,.lmv2-v3 .lmv2-notice--warning{border-left-color:var(--lmv2-warning)}
.lmv2-v3 .woocommerce-info::before{color:var(--lmv2-warning)}
.lmv2-v3 .woocommerce-message .button,
.lmv2-v3 .woocommerce-info .button{margin-left:auto}
.lmv2-v3 .lmv2-warn{color:var(--lmv2-warning)}

/* ---------- Shared: numbered progress steps (Thank You, Track Order) ------- */

.lmv2-v3 .lmv2-steps{display:grid;gap:var(--s4);counter-reset:lmv2step}
.lmv2-v3 .lmv2-steps__item{display:flex;gap:var(--s4);align-items:flex-start;position:relative;counter-increment:lmv2step}
.lmv2-v3 .lmv2-steps__dot{
  flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
  border:1px solid var(--lmv2-line-strong);background:var(--lmv2-surface);
  font-family:var(--lmv2-label-ff);font-size:12.5px;font-weight:700;color:var(--lmv2-muted);
}
.lmv2-v3 .lmv2-steps__dot::before{content:counter(lmv2step)}
.lmv2-v3 .lmv2-steps__item.is-done .lmv2-steps__dot{background:var(--lmv2-success);border-color:var(--lmv2-success);color:var(--lmv2-bg)}
.lmv2-v3 .lmv2-steps__item.is-done .lmv2-steps__dot::before{content:"✓"}
.lmv2-v3 .lmv2-steps__item.is-current .lmv2-steps__dot{background:var(--lmv2-brand);border-color:var(--lmv2-brand);color:var(--lmv2-on-brand);box-shadow:0 0 0 4px var(--lmv2-brand-ghost)}
.lmv2-v3 .lmv2-steps__item:not(:last-child)::after{
  content:"";position:absolute;left:15px;top:36px;bottom:calc(var(--s4) * -1);width:2px;background:var(--lmv2-line);
}
.lmv2-v3 .lmv2-steps__item.is-done::after{background:var(--lmv2-success)}
.lmv2-v3 .lmv2-steps__body{display:grid;gap:2px;padding-top:5px}
.lmv2-v3 .lmv2-steps__title{font-family:var(--lmv2-h3-ff);font-size:15.5px;font-weight:600;color:var(--lmv2-ink)}
.lmv2-v3 .lmv2-steps__item.is-current .lmv2-steps__title{color:var(--lmv2-brand-ink)}
.lmv2-v3 .lmv2-steps__text{font-size:14px;line-height:1.55;color:var(--lmv2-muted)}

/* ---------- Motion -------------------------------------------------------- */

.lmv2-v3 .lmv2-reveal{
  opacity:0;transform:translate3d(0,calc(16px * var(--lmv2-m)),0);
  transition:opacity var(--lmv2-t-slow) cubic-bezier(.2,0,0,1),
             transform var(--lmv2-t-slow) cubic-bezier(.2,0,0,1);
}
.lmv2-v3 .lmv2-reveal.is-in{opacity:1;transform:none}
.lmv2-v3 .lmv2-reveal--d1{transition-delay:calc(60ms * var(--lmv2-m))}
.lmv2-v3 .lmv2-reveal--d2{transition-delay:calc(120ms * var(--lmv2-m))}
.lmv2-v3 .lmv2-reveal--d3{transition-delay:calc(180ms * var(--lmv2-m))}

/* The visitor's own preference always wins over the owner's setting. */
@media (prefers-reduced-motion:reduce){
  .lmv2-v3 *,.lmv2-v3 *::before,.lmv2-v3 *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .lmv2-v3 .lmv2-reveal{opacity:1;transform:none}
}

/* ---------- Preview bar --------------------------------------------------- */

.lmv2-v3 .lmv2-previewbar{
  position:relative;z-index:120;display:flex;align-items:center;gap:var(--s2);
  flex-wrap:wrap;padding:var(--s2) var(--gutter);
  background:var(--lmv2-brand);color:var(--lmv2-on-brand);
  font-size:13px;font-weight:500;line-height:1.4;
}
.lmv2-v3 .lmv2-previewbar strong{font-weight:700}
.lmv2-v3 .lmv2-previewbar a{color:inherit;margin-left:auto;font-weight:700;text-underline-offset:.2em}
.lmv2-v3 .lmv2-previewbar__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}

/* ---------- Prose (policy pages, descriptions, About) --------------------- */

.lmv2-v3 .lmv2-prose{max-width:var(--lmv2-container-narrow);color:var(--lmv2-ink-2);font-size:16.5px;line-height:1.75}
.lmv2-v3 .lmv2-prose > * + *{margin-top:1.1em}
.lmv2-v3 .lmv2-prose h2{margin-top:1.9em;color:var(--lmv2-ink)}
.lmv2-v3 .lmv2-prose h3{margin-top:1.5em;color:var(--lmv2-ink)}
.lmv2-v3 .lmv2-prose h4{margin-top:1.3em;color:var(--lmv2-ink);font-family:var(--lmv2-h3-ff);font-size:17px;font-weight:600}
.lmv2-v3 .lmv2-prose ul,.lmv2-v3 .lmv2-prose ol{padding-left:1.3em}
.lmv2-v3 .lmv2-prose ul{list-style:disc}
.lmv2-v3 .lmv2-prose ol{list-style:decimal}
.lmv2-v3 .lmv2-prose li + li{margin-top:.5em}
.lmv2-v3 .lmv2-prose strong,.lmv2-v3 .lmv2-prose b{color:var(--lmv2-ink)}
.lmv2-v3 .lmv2-prose a{color:var(--lmv2-brand-ink);text-underline-offset:.18em}
.lmv2-v3 .lmv2-prose table{width:100%;border-collapse:collapse;font-size:15px}
.lmv2-v3 .lmv2-prose th,.lmv2-v3 .lmv2-prose td{padding:var(--s3);border-bottom:1px solid var(--lmv2-line);text-align:left;vertical-align:top}
.lmv2-v3 .lmv2-prose th{color:var(--lmv2-ink);font-weight:600;background:var(--lmv2-surface-soft)}
.lmv2-v3 .lmv2-prose blockquote{
  padding-left:var(--s5);border-left:3px solid var(--lmv2-brand-line);
  color:var(--lmv2-ink);font-style:normal;
}
.lmv2-v3 .lmv2-prose img{border-radius:var(--lmv2-radius-card)}
/* Text the owner's editor centred is hard to read past two lines. */
.lmv2-v3 .lmv2-prose p,.lmv2-v3 .lmv2-prose li{text-align:left}

/* Wide content scrolls inside itself. The page body never scrolls sideways. */
.lmv2-v3 .lmv2-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lmv2-v3 .lmv2-prose table{display:block;overflow-x:auto}
@media (min-width:640px){ .lmv2-v3 .lmv2-prose table{display:table} }

/* ---------- Contents list (legal pages) ----------------------------------- */

.lmv2-v3 .lmv2-toc{
  margin-bottom:var(--s10);padding:var(--s5) var(--s6);
  border:1px solid var(--lmv2-line);border-radius:var(--lmv2-radius-card);
  background:var(--lmv2-surface);box-shadow:inset 0 1px 0 var(--lmv2-edge);
}
.lmv2-v3 .lmv2-toc__title{
  font-family:var(--lmv2-label-ff);font-size:12px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--lmv2-muted);margin-bottom:var(--s3);
}
.lmv2-v3 .lmv2-toc__list{display:grid;gap:var(--s1);counter-reset:toc;column-gap:var(--s6)}
@media (min-width:640px){ .lmv2-v3 .lmv2-toc__list{grid-template-columns:1fr 1fr} }
.lmv2-v3 .lmv2-toc__list li{counter-increment:toc;display:flex;gap:var(--s2);font-size:14.5px;line-height:1.5}
.lmv2-v3 .lmv2-toc__list li::before{content:counter(toc,decimal-leading-zero);font-family:var(--lmv2-label-ff);font-size:12px;color:var(--lmv2-brand);padding-top:3px;flex:0 0 auto;font-variant-numeric:tabular-nums}
.lmv2-v3 .lmv2-toc__list a{color:var(--lmv2-ink-2);text-decoration:none;display:inline-block;padding-block:3px;min-height:24px}
.lmv2-v3 .lmv2-toc__list a:hover{color:var(--lmv2-brand);text-decoration:underline;text-underline-offset:.18em}
.lmv2-v3 .lmv2-legal__body h2{scroll-margin-top:calc(var(--lmv2-header) + var(--s5))}

/* ---------- Modal dialogs (5.6): a centred card above the shared scrim ------- */
.lmv2-v3 .lmv2-modal{
  position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:var(--s4);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--lmv2-t-base) ease,visibility 0s linear var(--lmv2-t-base);
}
.lmv2-v3 .lmv2-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--lmv2-t-base) ease,visibility 0s}
.lmv2-v3 .lmv2-modal__card{
  width:min(680px,100%);max-height:calc(100vh - (var(--s4) * 2));overflow:auto;
  background:var(--lmv2-surface);color:var(--lmv2-ink);border:1px solid var(--lmv2-line);
  border-radius:var(--lmv2-radius-card);box-shadow:var(--lmv2-shadow-3);
  transform:translateY(12px) scale(.985);transition:transform var(--lmv2-t-base) cubic-bezier(.2,0,0,1);
}
.lmv2-v3 .lmv2-modal.is-open .lmv2-modal__card{transform:none}
.lmv2-v3 .lmv2-modal__head{
  position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding:var(--s4) var(--s5) var(--s3);background:var(--lmv2-surface);border-bottom:1px solid var(--lmv2-line);
}
.lmv2-v3 .lmv2-modal__title{margin:0;font-family:var(--lmv2-h3-ff);font-size:20px;font-weight:700;letter-spacing:-.01em}
.lmv2-v3 .lmv2-modal__body{padding:var(--s4) var(--s5) var(--s6)}

/* ---------- Size chart table (5.6): popup and Size Guide page ---------------- */
.lmv2-v3 .lmv2-sizetable{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.lmv2-v3 .lmv2-sizetable th,.lmv2-v3 .lmv2-sizetable td{padding:var(--s3);text-align:center;border-bottom:1px solid var(--lmv2-line)}
.lmv2-v3 .lmv2-sizetable thead th{font-family:var(--lmv2-label-ff);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lmv2-muted);background:var(--lmv2-surface-soft)}
.lmv2-v3 .lmv2-sizetable th:first-child,.lmv2-v3 .lmv2-sizetable td:first-child{text-align:left}
.lmv2-v3 .lmv2-sizetable tbody th{font-family:var(--lmv2-label-ff);font-weight:700;font-size:15px}
.lmv2-v3 .lmv2-sizetable tbody th small{display:block;font-weight:400;font-size:12px;letter-spacing:0;color:var(--lmv2-muted)}
.lmv2-v3 .lmv2-sizetable tr.is-current{background:var(--lmv2-brand-ghost)}
.lmv2-v3 .lmv2-sizetable tr.is-current th{color:var(--lmv2-brand-ink)}
.lmv2-v3 .lmv2-sizetable tr.is-missing td{color:var(--lmv2-muted)}
.lmv2-v3 .lmc-sizeguide__unit{margin:var(--s3) 0 0;font-size:13.5px;color:var(--lmv2-muted)}
.lmv2-v3 .lmc-sizeguide__notes{margin:var(--s4) 0 0;padding-left:var(--s4);font-size:14px;color:var(--lmv2-ink-2)}
.lmv2-v3 .lmc-sizeguide__notes li{margin-bottom:var(--s2)}
.lmv2-v3 .lmc-sizeguide__measure{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--lmv2-line)}
.lmv2-v3 .lmc-sizeguide__h{font-family:var(--lmv2-h3-ff);font-size:18px;font-weight:700;margin:0 0 var(--s3)}
.lmv2-v3 .lmc-sizeguide__measure ol{margin:0;padding-left:var(--s4);color:var(--lmv2-ink-2)}
.lmv2-v3 .lmc-sizeguide__measure li{margin-bottom:var(--s2)}

/* 5.6 owner call: WooCommerce 9 paints `button.button.alt` purple (#7f54b3) at (0,3,1), which
   out-ranked the theme's primary rule; these compound selectors win on merit. */
body.lmv2-v3.woocommerce button.button.alt,
body.lmv2-v3.woocommerce a.button.alt,
body.lmv2-v3.woocommerce input.button.alt,
body.lmv2-v3 button.single_add_to_cart_button.button{
  background:var(--lmv2-brand);color:var(--lmv2-on-brand);border-color:var(--lmv2-brand);
}
body.lmv2-v3.woocommerce button.button.alt:hover,
body.lmv2-v3.woocommerce a.button.alt:hover,
body.lmv2-v3 button.single_add_to_cart_button.button:hover{
  background:var(--lmv2-brand-hover);color:var(--lmv2-on-brand);border-color:var(--lmv2-brand-hover);
}
body.lmv2-v3.woocommerce button.button.alt.disabled,
body.lmv2-v3.woocommerce button.button.alt:disabled,
body.lmv2-v3 button.single_add_to_cart_button.button.disabled{
  background:var(--lmv2-brand);color:var(--lmv2-on-brand);border-color:var(--lmv2-brand);opacity:.5;cursor:not-allowed;
}
