/* ==========================================================================
   Learts (Liquid) — clean design system.  [lz- namespace]
   Everything the header and the sections above the footer use lives here and
   is fully self-contained, so it never collides with the Learts stylesheet
   (which is kept only to render the approved footer). Learts soul is preserved
   through the Marcellus/Jost fonts, the sage accent and the warm palette; the
   layout, type scale and spacing are rebuilt to a professional standard.
   ========================================================================== */

:root{
  --lz-ink:#1a1a1a;
  --lz-text:#575757;
  /* 1.6.0 a11y: was #9a948d — 3.00:1 on #fff and 2.71:1 on --lz-soft, i.e. it
     failed 4.5:1 everywhere it is used (all of it is small text). Same warm-grey
     hue, darker: 5.18:1 on #fff, 4.68:1 on --lz-soft. */
  --lz-muted:#736c63;
  --lz-accent:#72a499;
  /* 1.6.0 a11y: was #5c8a80 (3.89:1 on #fff, 3.51:1 on --lz-soft). This token is
     the ACCENT USED AS TEXT (and as a fill behind white text); --lz-accent stays
     untouched for decorative fills, borders and rules. 5.04:1 on #fff,
     4.55:1 on --lz-soft, 5.04:1 for #fff on top of it. */
  --lz-accent-deep:#4c776d;
  /* focus ring: ink core + white halo, so ONE rule reads >=3:1 on the white page,
     on the dark panel/announcement bar and over hero/product photography. */
  --lz-focus:#1a1a1a;
  --lz-focus-halo:#ffffff;
  --lz-line:#ecebe7;
  --lz-bg:#ffffff;
  --lz-soft:#f6f3ee;
  --lz-panel:#181818;
  --lz-sale:#b4553f;
  --lz-container:1320px;
  --lz-pad:clamp(20px,5vw,56px);
  --lz-serif:"Marcellus",Georgia,"Times New Roman",serif;
  --lz-sans:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
/* --lz-accent is the merchant's setting (layout/theme.liquid writes it into
   :root). --lz-accent-deep is what every ACCENT-COLOURED TEXT / white-on-accent
   fill now uses, so it must track that setting instead of being frozen sage —
   otherwise a merchant's custom accent would stop showing anywhere. Where
   color-mix is supported it is derived from the merchant accent (the default
   sage resolves to #4d736b — 5.28:1 on #fff, 4.77:1 on --lz-soft); older
   browsers keep the static value above. */
@supports (color: color-mix(in srgb, #000 50%, #fff)){
  :root{ --lz-accent-deep: color-mix(in srgb, var(--lz-accent) 62%, #10231f); }
}

/* ---- base + reset (self-contained: no bootstrap/Learts reset is loaded) ---- */
*,*::before,*::after{ box-sizing:border-box; }
html{ height:auto; -webkit-text-size-adjust:100%; }
body.lz-body{ margin:0; min-height:100vh; overflow-x:hidden; background:var(--lz-bg); color:var(--lz-text); font-family:var(--lz-sans); font-weight:400; font-size:16px; line-height:1.75; -webkit-font-smoothing:antialiased; }
.lz-body img{ max-width:100%; }
.lz-body a{ color:inherit; text-decoration:none; }
.lz-body ul{ list-style:none; margin:0; padding:0; }
.lz-body button{ font-family:inherit; }
.lz-body h1,.lz-body h2,.lz-body h3,.lz-body h4,.lz-body h5,.lz-body figure{ margin:0; }
.lz-body p{ margin:0 0 1rem; }
.lz-body input,.lz-body textarea,.lz-body select{ font-family:inherit; }
.lz-container{ width:100%; max-width:var(--lz-container); margin:0 auto; padding-left:var(--lz-pad); padding-right:var(--lz-pad); }
.lz-section{ padding-top:clamp(60px,7vw,100px); padding-bottom:clamp(60px,7vw,100px); }
.lz-section + .lz-section{ padding-top:0; }

/* ---- shared display type ---- */
.lz-eyebrow{ display:inline-block; font-family:var(--lz-sans); font-weight:600; text-transform:uppercase; letter-spacing:.22em; font-size:11.5px; color:var(--lz-accent-deep); margin-bottom:18px; }
.lz-eyebrow-light{ color:#fff; opacity:.85; }
.lz-title{ font-family:var(--lz-serif); font-weight:400; color:var(--lz-ink); font-size:clamp(28px,3.2vw,42px); line-height:1.12; letter-spacing:.005em; text-wrap:balance; margin:0; }
.lz-title-sm{ font-size:clamp(22px,2.4vw,30px); }
.lz-title-light{ color:#fff; }
.lz-lead{ color:var(--lz-muted); font-size:16px; max-width:560px; margin:14px auto 0; }
.lz-shead{ margin-bottom:clamp(38px,5vw,58px); }
.lz-shead-center{ text-align:center; max-width:720px; margin-inline:auto; margin-bottom:clamp(38px,5vw,58px); }
.lz-count{ display:block; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lz-muted); margin-top:14px; }
.lz-empty{ text-align:center; color:var(--lz-muted); padding:40px 0; }
/* Children of .lz-empty, for the structured empty state on the shop and
   collection pages: a title, a note and a way out. The container itself is
   left alone — blog.liquid and the search prompt still use it as a plain
   paragraph. */
.lz-empty-title{ font-family:var(--lz-serif); font-weight:400; font-size:clamp(22px,2.4vw,28px); line-height:1.15; color:var(--lz-ink); margin:0; }
.lz-empty-note{ font-size:15px; color:var(--lz-muted); margin:12px auto 0; max-width:460px; }
.lz-empty-action{ margin-top:26px; }

/* ---- links + buttons ---- */
.lz-link{ display:inline-block; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.15em; color:var(--lz-ink); border-bottom:1px solid currentColor; padding-bottom:3px; transition:.2s; }
.lz-link:hover{ color:var(--lz-accent-deep); }
.lz-link-light{ color:#fff; }
.lz-btn{ display:inline-flex; align-items:center; justify-content:center; font-family:var(--lz-sans); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.16em; padding:16px 40px; border:1px solid var(--lz-ink); border-radius:2px; background:var(--lz-ink); color:#fff; cursor:pointer; transition:.24s ease; white-space:nowrap; }
.lz-btn:hover{ background:var(--lz-accent-deep); border-color:var(--lz-accent-deep); color:#fff; }
.lz-btn-accent{ background:var(--lz-accent-deep); border-color:var(--lz-accent-deep); }
.lz-btn-accent:hover{ background:#fff; border-color:#fff; color:var(--lz-ink); }
.lz-btn-block{ width:100%; }

/* ---- announcement + header ---- */
.lz-announce{ background:var(--lz-panel); color:#efeae1; text-align:center; }
.lz-announce p{ margin:0; padding:10px 0; font-size:12.5px; letter-spacing:.06em; }
.lz-header{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,.94); backdrop-filter:saturate(140%) blur(8px); border-bottom:1px solid var(--lz-line); }
.lz-header-inner{ display:flex; align-items:center; justify-content:space-between; height:86px; gap:30px; }
.lz-logo img{ max-height:40px; width:auto; display:block; }
.lz-logo-text{ font-family:var(--lz-serif); font-size:27px; letter-spacing:.04em; color:var(--lz-ink); }
.lz-nav{ display:flex; align-items:center; gap:38px; margin-left:auto; margin-right:auto; }
.lz-nav a{ position:relative; font-size:13px; font-weight:500; text-transform:uppercase; letter-spacing:.13em; color:var(--lz-ink); padding:6px 0; }
.lz-nav a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--lz-accent-deep); transition:width .26s ease; }
.lz-nav a{ white-space:nowrap; }
.lz-nav a:hover{ color:var(--lz-accent-deep); }
.lz-nav a:hover::after{ width:100%; }
.lz-nav-drop{ position:relative; display:flex; align-items:center; }
.lz-dropdown{ position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); min-width:230px; background:#fff; border:1px solid var(--lz-line); box-shadow:0 22px 48px -30px rgba(20,20,20,.45); padding:10px 0; opacity:0; visibility:hidden; transition:opacity .2s ease, transform .2s ease; z-index:70; }
.lz-nav-drop:hover .lz-dropdown,
.lz-nav-drop:focus-within .lz-dropdown{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.lz-dropdown a{ display:block; padding:9px 22px; font-size:13px; font-weight:400; text-transform:none; letter-spacing:.02em; color:var(--lz-text); }
.lz-dropdown a::after{ display:none; }
.lz-dropdown a:hover{ color:var(--lz-accent-deep); background:var(--lz-soft); }
.lz-header-actions{ display:flex; align-items:center; gap:20px; }
.lz-icon{ position:relative; display:inline-flex; color:var(--lz-ink); transition:.2s; }
.lz-icon:hover{ color:var(--lz-accent-deep); }
.lz-cart-count{ position:absolute; top:-9px; right:-11px; min-width:18px; height:18px; padding:0 5px; border-radius:50%; background:var(--lz-accent-deep); color:#fff; font-size:10px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.lz-burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; padding:6px; }
.lz-burger span{ width:22px; height:2px; background:var(--lz-ink); }
.lz-mobile-nav{ display:none; flex-direction:column; border-top:1px solid var(--lz-line); }
.lz-mobile-nav a{ padding:14px var(--lz-pad); border-bottom:1px solid var(--lz-line); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--lz-ink); }
.lz-mobile-nav.is-open{ display:flex; }

/* ---- hero ---- */
.lz-hero{ position:relative; overflow:hidden; background:var(--lz-soft); }
.lz-hero-slides{ position:relative; }
.lz-hero-slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .8s ease; background-size:cover; background-position:center; background-image:linear-gradient(120deg,#efe9df,#e3ddd2 60%,#d7cec0); display:flex; align-items:center; }
/* Scrim, not decoration: the headline is white, so the left third of every
   slide must be dark enough to carry it whatever photo a merchant drops in
   (a pale linen shot and a dark studio shot both have to read). */
.lz-hero-slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,18,18,.62),rgba(18,18,18,.34) 42%,rgba(18,18,18,.08) 72%,transparent); }
.lz-hero-slide.is-active{ position:relative; opacity:1; visibility:visible; }
.lz-hero-inner{ position:relative; z-index:2; width:100%; }
.lz-hero-content{ max-width:560px; min-height:clamp(460px,60vh,660px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:80px 0; color:#fff; }
.lz-hero-title{ font-family:var(--lz-serif); font-weight:400; font-size:clamp(40px,5.2vw,70px); line-height:1.06; color:#fff; margin:0 0 32px; white-space:pre-line; text-wrap:balance; }
.lz-hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:52px; height:52px; border-radius:50%; border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.14); color:#fff; font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.22s; }
.lz-hero-arrow:hover{ background:#fff; color:var(--lz-ink); }
.lz-hero-prev{ left:clamp(14px,3vw,40px); } .lz-hero-next{ right:clamp(14px,3vw,40px); }
.lz-hero-dots{ position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:3; display:flex; gap:15px; }
.lz-hero-dot{ width:9px; height:9px; border-radius:50%; border:1px solid rgba(255,255,255,.8); background:transparent; padding:0; cursor:pointer; transition:.2s; }
.lz-hero-dot.is-active{ background:#fff; }
.lz-hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
/* Hero height modes — 'medium' keeps the original look (no override). */
.lz-hero--small .lz-hero-content{ min-height:clamp(320px,44vh,460px); }
.lz-hero--large .lz-hero-content{ min-height:clamp(520px,78vh,760px); }
.lz-hero--adapt .lz-hero-slide{ aspect-ratio:16/7; min-height:320px; }
.lz-hero--adapt .lz-hero-content{ min-height:0; }

/* ---- promo grid ---- */
.lz-promo-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(16px,1.6vw,26px); }
.lz-promo-intro{ grid-column:span 6; display:flex; flex-direction:column; justify-content:center; padding:8px 20px 8px 0; }
.lz-promo-intro-title{ font-family:var(--lz-serif); font-size:clamp(24px,2.6vw,34px); line-height:1.2; color:var(--lz-ink); margin:0 0 18px; }
.lz-promo-intro-body{ color:var(--lz-muted); margin:0 0 22px; }
.lz-promo-sale{ grid-column:span 3; position:relative; overflow:hidden; min-height:320px; display:flex; align-items:flex-end; background:var(--lz-soft); border-radius:3px; }
.lz-promo-sale img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lz-promo-sale::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(18,18,18,.68),rgba(18,18,18,.24) 45%,transparent 72%); }
.lz-promo-sale-body{ position:relative; z-index:2; padding:28px; color:#fff; }
.lz-promo-sale-title{ font-family:var(--lz-serif); font-size:22px; color:#fff; margin:6px 0 14px; }
.lz-promo-cat{ grid-column:span 3; position:relative; overflow:hidden; border-radius:3px; display:block; }
.lz-promo-cat-wide{ grid-column:span 6; }
.lz-promo-cat-img{ aspect-ratio:1/1; background:var(--lz-soft); }
.lz-promo-cat-wide .lz-promo-cat-img{ aspect-ratio:845/407; }
.lz-promo-cat-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.lz-promo-cat:hover .lz-promo-cat-img img{ transform:scale(1.06); }
/* The caption is white type sitting directly on the photo, so this has to be a
   real scrim (opaque enough at the bottom to carry text on a pale image), not
   a decorative tint. */
.lz-promo-cat::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(18,18,18,.68),rgba(18,18,18,.24) 45%,transparent 72%); }
.lz-promo-cat-cap{ position:absolute; left:24px; bottom:22px; z-index:2; color:#fff; }
.lz-promo-cat-cap h2{ font-family:var(--lz-serif); font-size:21px; margin:0; color:#fff; }
.lz-promo-cat-cap span{ font-size:12px; letter-spacing:.06em; opacity:.9; }
.lz-promo-insta{ grid-column:span 3; position:relative; overflow:hidden; border-radius:3px; display:block; min-height:100%; }
.lz-promo-insta img{ width:100%; height:100%; object-fit:cover; min-height:280px; }
.lz-promo-insta-body{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; color:#fff; background:rgba(20,20,20,.34); }
.lz-promo-insta-body i{ font-size:26px; margin-bottom:6px; }
.lz-promo-insta-body h2{ font-family:var(--lz-serif); font-size:20px; color:#fff; margin:0; }

/* ---- product tabs + grid + card ---- */
.lz-shead-tabs, .lz-tabs .lz-shead-center{ margin-bottom:clamp(34px,4vw,50px); }
/* The kicker and the tab list are both inline-level, so in a centred head they
   ran onto the SAME line ("OUR COLLECTION  All pieces"). The kicker owns its
   own line. */
.lz-tabs .lz-shead-center .lz-eyebrow{ display:block; margin-bottom:10px; }
.lz-tabnav{ display:inline-flex; flex-wrap:wrap; justify-content:center; gap:clamp(20px,3vw,40px); border-bottom:1px solid var(--lz-line); margin-top:6px; }
.lz-tabbtn{ background:none; border:0; padding:0 0 14px; font-family:var(--lz-serif); font-size:20px; color:var(--lz-muted); position:relative; cursor:pointer; transition:.2s; }
.lz-tabbtn::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--lz-accent-deep); transform:scaleX(0); transition:transform .25s ease; }
.lz-tabbtn.is-active{ color:var(--lz-ink); }
.lz-tabbtn.is-active::after{ transform:scaleX(1); }
.lz-tabpanel{ display:none; }
.lz-tabpanel.is-active{ display:block; }
.lz-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(28px,3vw,40px) clamp(18px,2vw,28px); }
.lz-card-media{ position:relative; overflow:hidden; background:#f4f1ec; aspect-ratio:1/1; border-radius:2px; }
/* Absolute fill guarantees the photo covers the whole tile (a height:100% chain
   on nested a>img is fragile and was leaving the image top-aligned with an empty
   strip below). object-fit:cover crops the photo's white margin so the product
   fills the card. */
.lz-card-img{ position:absolute; inset:0; display:block; }
.lz-card-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .5s ease, transform .8s ease; }
.lz-card-img-hover{ opacity:0; }
.lz-card:hover .lz-card-img-hover{ opacity:1; }
.lz-card:hover .lz-card-img-main{ transform:scale(1.05); }
.lz-card-badge{ position:absolute; top:14px; left:14px; z-index:2; background:var(--lz-sale); color:#fff; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:5px 11px; border-radius:2px; }
.lz-card-body{ padding:20px 4px 0; text-align:center; }
.lz-card-title{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; min-height:2.8em; font-size:15px; font-weight:500; margin:0 0 8px; line-height:1.4; }
.lz-card-title a:hover{ color:var(--lz-accent-deep); }
.lz-card-price{ font-size:15px; display:flex; gap:9px; justify-content:center; }
.lz-price-old{ color:var(--lz-muted); text-decoration:line-through; }
.lz-price-now{ color:var(--lz-ink); font-weight:500; }

/* ---- deal of day ---- */
.lz-deal{ background:var(--lz-soft); }
.lz-deal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); align-items:center; }
.lz-deal-media img{ width:100%; border-radius:3px; }
.lz-deal-fallback{ aspect-ratio:1/1; border-radius:3px; background:repeating-linear-gradient(45deg,#eee7dd,#eee7dd 14px,#e5ddd1 14px,#e5ddd1 28px); }
.lz-deal-desc{ color:var(--lz-muted); max-width:460px; margin:18px 0 4px; }
.lz-countdown{ display:flex; gap:clamp(16px,2.4vw,30px); margin:28px 0 32px; }
.lz-cd{ text-align:center; }
.lz-cd{ min-width:56px; }
.lz-cd-num{ display:block; font-family:var(--lz-sans); font-weight:500; font-size:clamp(28px,3vw,38px); color:var(--lz-ink); line-height:1; font-variant-numeric:tabular-nums; letter-spacing:.01em; }
.lz-cd-lbl{ font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lz-muted); }

/* ---- category showcase ---- */
.lz-showcase-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(18px,2.4vw,32px); }
.lz-showcase-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; }
/* One shape language across the whole theme: rectangles with the same 3px
   radius the promo tiles and product cards use. The circle mask that used to
   sit here floated inside its own rectangle and cropped every subject at the
   edge. 4/5 matches the ratio the tile photography is cut to, so nothing is
   trimmed, and the label sits in its own strip below the photo rather than
   as white type over a pale image. */
.lz-showcase-img{ display:block; width:100%; aspect-ratio:4/5; border-radius:3px; overflow:hidden; background:var(--lz-soft); margin-bottom:18px; }
.lz-showcase-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.lz-showcase-tile:hover .lz-showcase-img img{ transform:scale(1.07); }
.lz-showcase-label{ font-family:var(--lz-serif); font-size:18px; color:var(--lz-ink); transition:.2s; }
.lz-showcase-tile:hover .lz-showcase-label{ color:var(--lz-accent-deep); }
.lz-showcase-count{ font-size:12px; color:var(--lz-muted); letter-spacing:.06em; margin-top:4px; }

/* ---- brands ---- */
.lz-brand-row{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(20px,3vw,40px); align-items:center; }
.lz-brand{ display:flex; align-items:center; justify-content:center; opacity:.5; filter:grayscale(1); transition:.25s; }
.lz-brand:hover{ opacity:1; filter:grayscale(0); }
.lz-brand img{ max-height:52px; width:auto; }

/* ---- newsletter ---- */
.lz-newsletter{ background:var(--lz-panel); color:#efeae1; text-align:center; }
.lz-newsletter-inner{ max-width:620px; margin:0 auto; }
.lz-newsletter-sub{ color:rgba(255,255,255,.7); margin:12px 0 0; }
.lz-newsletter-form{ display:flex; gap:0; margin:28px auto 0; max-width:520px; }
.lz-newsletter-form input{ flex:1; border:1px solid rgba(255,255,255,.28); border-right:0; background:transparent; color:#fff; padding:16px 20px; font-family:var(--lz-sans); font-size:14px; }
.lz-newsletter-form input::placeholder{ color:rgba(255,255,255,.5); }
.lz-newsletter-note{ color:rgba(255,255,255,.5); font-size:12px; margin:16px 0 0; }

/* ---- testimonials ---- */
.lz-testi{ background:var(--lz-soft); }
.lz-testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,30px); }
.lz-testi-card{ background:#fff; padding:clamp(26px,3vw,38px); border-radius:3px; margin:0; box-shadow:0 20px 44px -34px rgba(20,20,20,.4); }
.lz-testi-stars{ color:var(--lz-accent-deep); letter-spacing:2px; font-size:14px; margin-bottom:18px; }
.lz-testi-quote{ font-family:var(--lz-serif); font-size:19px; line-height:1.5; color:var(--lz-ink); margin:0 0 24px; }
.lz-testi-author{ display:flex; align-items:center; gap:14px; }
.lz-testi-author img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.lz-testi-meta{ display:flex; flex-direction:column; }
.lz-testi-name{ font-weight:600; color:var(--lz-ink); }
.lz-testi-role{ font-size:13px; color:var(--lz-muted); }

/* ---- image with text / instagram / gallery / composed / richtext ---- */
.lz-imgtext-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,64px); align-items:center; }
.lz-imgtext-media img{ width:100%; border-radius:3px; }
.lz-imgtext-right .lz-imgtext-media{ order:2; }
.lz-imgtext-copy{ color:var(--lz-muted); margin:0 0 24px; }
.lz-insta-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.lz-insta-cell{ position:relative; aspect-ratio:1/1; overflow:hidden; border-radius:2px; }
.lz-insta-cell img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.lz-insta-cell:hover img{ transform:scale(1.08); }
.lz-insta-ic{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; background:rgba(114,164,153,.0); opacity:0; transition:.25s; }
.lz-insta-cell:hover .lz-insta-ic{ opacity:1; background:rgba(114,164,153,.55); }
.lz-gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.lz-gallery-cell{ margin:0; }
.lz-gallery-cell img{ width:100%; border-radius:3px; }
.lz-gallery-cell figcaption{ text-align:center; font-size:13px; color:var(--lz-muted); margin-top:8px; }
.lz-composed-row{ display:grid; gap:clamp(20px,2.4vw,30px); grid-template-columns:repeat(var(--cols,2),1fr); }
.lz-composed-row[data-cols="1"]{ grid-template-columns:1fr; }
.lz-composed-row[data-cols="3"]{ grid-template-columns:repeat(3,1fr); }
.lz-composed-row[data-cols="4"]{ grid-template-columns:repeat(4,1fr); }
.lz-composed-img{ width:100%; border-radius:3px; margin-bottom:16px; }
.lz-composed-title{ font-family:var(--lz-serif); font-size:22px; color:var(--lz-ink); margin:8px 0 10px; }
.lz-composed-body{ color:var(--lz-muted); }
.lz-richtext-inner{ line-height:1.8; }
.lz-richtext-narrow .lz-richtext-inner{ max-width:760px; margin:0 auto; }
.lz-richtext-inner h1,.lz-richtext-inner h2,.lz-richtext-inner h3{ font-family:var(--lz-serif); color:var(--lz-ink); }

/* ---- breadcrumbs + commerce pages ---- */
.lz-crumbs{ background:var(--lz-soft); padding:16px 0; font-size:13px; color:var(--lz-muted); }
.lz-crumbs a:hover{ color:var(--lz-accent-deep); }
.lz-crumbs span{ margin:0 8px; }
.lz-crumbs .lz-current{ color:var(--lz-ink); margin:0; }
.lz-pdp-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(36px,5vw,60px); }
.lz-pdp-main{ background:var(--lz-soft); overflow:hidden; border-radius:3px; }
.lz-pdp-main img{ width:100%; height:auto; }
.lz-pdp-thumbs{ display:flex; gap:12px; margin-top:14px; flex-wrap:wrap; }
.lz-pdp-thumb{ width:82px; height:82px; padding:0; border:1px solid var(--lz-line); background:var(--lz-soft); overflow:hidden; cursor:pointer; transition:.2s; }
.lz-pdp-thumb.is-active{ border-color:var(--lz-accent-deep); }
.lz-pdp-thumb img{ width:100%; height:100%; object-fit:cover; }
.lz-pdp-title{ font-family:var(--lz-serif); font-size:clamp(28px,3vw,40px); color:var(--lz-ink); margin:0 0 16px; }
.lz-pdp-price{ font-size:24px; margin-bottom:12px; display:flex; gap:12px; align-items:baseline; }
.lz-pdp-price .lz-price-old{ font-size:18px; }
.lz-pdp-stock{ display:inline-block; font-size:12px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:22px; }
.lz-pdp-stock.in{ color:var(--lz-accent-deep); } .lz-pdp-stock.out{ color:var(--lz-sale); }
.lz-pdp-desc{ color:var(--lz-muted); border-top:1px solid var(--lz-line); padding-top:22px; }
.lz-pdp-opt{ margin:18px 0; }
.lz-pdp-opt-name{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--lz-ink); margin-bottom:10px; }
.lz-pdp-opt-vals{ display:flex; gap:10px; flex-wrap:wrap; }
.lz-swatch{ border:1px solid var(--lz-line); padding:8px 16px; font-size:13px; }
/* 1.6.0 a11y: the PDP option values are informational text, not controls (the
   real chooser is the variant <select> below). The hover state that made them
   look clickable is gone; the chips keep their exact resting appearance. */
.lz-swatch{ cursor:default; }
.lz-select{ width:100%; max-width:360px; padding:12px 14px; border:1px solid var(--lz-line); background:#fff; font-family:inherit; font-size:14px; }
.lz-pdp-cart{ margin:26px 0 0; max-width:360px; }
.lz-pdp-buy{ display:flex; gap:12px; margin-top:18px; }
.lz-qty{ width:76px; text-align:center; border:1px solid var(--lz-line); padding:12px 8px; font-family:inherit; font-size:15px; }
.lz-pdp-buy .lz-btn{ flex:1; }
.lz-pdp-msg{ margin:14px 0 0; font-size:14px; color:var(--lz-accent-deep); }
.lz-cart-layout{ display:grid; grid-template-columns:1fr 340px; gap:44px; align-items:start; margin-top:32px; }
.lz-cart-row{ display:grid; grid-template-columns:2fr .8fr minmax(104px,1fr) .8fr 32px; gap:16px; align-items:center; padding:20px 0; border-bottom:1px solid var(--lz-line); }
.lz-cart-head{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--lz-muted); padding:0 0 12px; }
.lz-cart-prod{ display:flex; gap:16px; align-items:center; }
.lz-cart-prod img{ width:70px; height:88px; object-fit:cover; background:var(--lz-soft); }
.lz-cart-name{ font-weight:500; color:var(--lz-ink); }
.lz-cart-name:hover{ color:var(--lz-accent-deep); }
.lz-cart-variant{ display:block; font-size:13px; color:var(--lz-muted); }
.lz-cart-summary{ background:var(--lz-soft); padding:30px; border-radius:3px; }
.lz-cart-summary-title{ font-family:var(--lz-serif); font-size:20px; margin:0 0 18px; color:var(--lz-ink); }
.lz-cart-sum-row{ display:flex; justify-content:space-between; padding:10px 0; font-size:15px; }
.lz-cart-total{ border-top:1px solid var(--lz-line); margin-top:8px; padding-top:16px; font-size:18px; color:var(--lz-ink); }
.lz-cart-continue{ display:block; text-align:center; margin-top:14px; font-size:13px; color:var(--lz-muted); }
.lz-cart-continue:hover{ color:var(--lz-accent-deep); }
.lz-cart-empty{ text-align:center; padding:60px 0; }
.lz-cart-empty p{ margin-bottom:24px; color:var(--lz-muted); }
/* interactive cart (qty stepper, remove, promo) */
.lz-cart-page.is-busy .lz-cart-lines, .lz-cart-page.is-busy .lz-cart-summary{ opacity:.55; pointer-events:none; }
.lz-qty-step{ display:inline-flex; width:max-content; align-items:center; border:1px solid var(--lz-line); border-radius:3px; overflow:hidden; justify-self:start; }
.lz-qty-step button{ flex:0 0 30px; width:30px; height:36px; border:none; background:none; cursor:pointer; font-size:16px; color:var(--lz-muted); line-height:1; }
.lz-qty-step button:hover{ color:var(--lz-ink); background:var(--lz-soft); }
.lz-qty-step input{ flex:0 0 38px; width:38px; height:36px; border:none; border-left:1px solid var(--lz-line); border-right:1px solid var(--lz-line); text-align:center; font-size:14px; color:var(--lz-ink); background:none; }
.lz-cart-remove{ width:28px; height:28px; border:none; background:none; cursor:pointer; font-size:20px; line-height:1; color:var(--lz-muted); justify-self:end; }
.lz-cart-remove:hover{ color:var(--lz-ink); }
.lz-cart-msg{ margin:12px 0 0; font-size:13px; color:#b3261e; }
.lz-cart-discount span:last-child{ color:var(--lz-accent-deep); }
.lz-promo{ display:flex; gap:8px; margin:16px 0 0; }
.lz-promo input{ flex:1; min-width:0; height:42px; padding:0 12px; border:1px solid var(--lz-line); border-radius:3px; font-size:13px; background:#fff; color:var(--lz-ink); }
.lz-promo button{ height:42px; padding:0 16px; border:1px solid var(--lz-ink); border-radius:3px; background:none; cursor:pointer; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--lz-ink); }
.lz-promo button:hover{ background:var(--lz-ink); color:#fff; }
.lz-promo-tag{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; padding:8px 12px; background:#fff; border:1px dashed var(--lz-accent); border-radius:3px; font-size:13px; color:var(--lz-ink); }
.lz-promo-tag button{ border:none; background:none; cursor:pointer; font-size:16px; color:var(--lz-muted); line-height:1; }
.lz-promo-tag button:hover{ color:var(--lz-ink); }
.lz-search-form{ display:flex; gap:12px; max-width:520px; margin:24px auto 0; }
.lz-search-form input{ flex:1; border:1px solid var(--lz-line); padding:14px 18px; font-family:inherit; font-size:15px; }

/* ---- blog list ---- */
.lz-blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,40px); }
.lz-blog-cover{ display:block; aspect-ratio:3/2; overflow:hidden; border-radius:3px; background:var(--lz-soft); }
.lz-blog-cover img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.lz-blog-card:hover .lz-blog-cover img{ transform:scale(1.05); }
.lz-blog-cover-ph{ display:block; width:100%; height:100%; background:repeating-linear-gradient(45deg,#f0ece4,#f0ece4 14px,#e8e2d8 14px,#e8e2d8 28px); }
.lz-blog-body{ padding:20px 2px 0; }
.lz-blog-date{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--lz-muted); }
.lz-blog-title{ font-family:var(--lz-serif); font-size:22px; line-height:1.25; margin:8px 0 10px; }
.lz-blog-title a:hover{ color:var(--lz-accent-deep); }
.lz-blog-excerpt{ color:var(--lz-muted); font-size:15px; margin:0 0 14px; }

/* ---- article ---- */
.lz-article-head{ text-align:center; max-width:760px; margin:0 auto 30px; }
.lz-article-title{ font-family:var(--lz-serif); font-size:clamp(30px,3.6vw,48px); line-height:1.1; color:var(--lz-ink); margin:0 0 16px; text-wrap:balance; }
.lz-article-meta{ display:flex; justify-content:center; gap:20px; font-size:13px; color:var(--lz-muted); letter-spacing:.04em; }
.lz-article-cover{ max-width:960px; margin:0 auto 40px; border-radius:4px; overflow:hidden; }
.lz-article-cover img{ width:100%; }
.lz-article-body{ max-width:760px; margin:0 auto; font-size:17px; }
.lz-article-body p{ margin:0 0 1.3em; }
.lz-article-body img{ border-radius:3px; margin:1.5em 0; }
.lz-article-foot{ max-width:760px; margin:40px auto 0; padding-top:24px; border-top:1px solid var(--lz-line); }

/* ---- contact ---- */
.lz-contact-grid{ display:grid; grid-template-columns:.9fr 1.4fr; gap:clamp(32px,5vw,64px); max-width:1040px; margin:0 auto; }
.lz-contact-item{ padding:16px 0; border-bottom:1px solid var(--lz-line); }
.lz-contact-item:first-child{ padding-top:0; }
.lz-contact-label{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lz-muted); margin-bottom:5px; }
.lz-contact-item a:hover{ color:var(--lz-accent-deep); }
.lz-contact-form{ display:flex; flex-direction:column; gap:14px; }
.lz-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.lz-contact-form input,.lz-contact-form textarea{ border:1px solid var(--lz-line); padding:14px 16px; font-family:inherit; font-size:15px; background:#fff; width:100%; }
.lz-contact-form textarea{ resize:vertical; }
.lz-contact-form .lz-btn{ align-self:flex-start; }
.lz-contact-msg{ font-size:14px; color:var(--lz-accent-deep); margin:0; }
@media (max-width:820px){ .lz-blog-grid{ grid-template-columns:1fr 1fr; } .lz-contact-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .lz-blog-grid{ grid-template-columns:1fr; } .lz-field-row{ grid-template-columns:1fr; } }

/* ==========================================================================
   Footer — self-contained (lz-). White ground, Marcellus column titles, sage
   hover; contact + columns + newsletter, then a copyright/payment bar.
   ========================================================================== */
.lz-footer{ background:var(--lz-bg); border-top:1px solid var(--lz-line); margin-top:20px; }
.lz-footer-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:clamp(28px,4vw,54px); padding:clamp(56px,6vw,80px) 0 clamp(40px,4vw,56px); }
.lz-footer-name{ font-family:var(--lz-serif); font-size:24px; color:var(--lz-ink); margin-bottom:16px; }
.lz-footer-logo{ max-height:38px; width:auto; margin-bottom:16px; }
.lz-footer-about{ color:var(--lz-muted); font-size:15px; line-height:1.75; margin:0 0 16px; max-width:320px; }
.lz-footer-contact{ display:block; color:var(--lz-text); font-size:15px; margin-bottom:4px; }
a.lz-footer-contact:hover{ color:var(--lz-accent-deep); }
.lz-footer-apps{ display:flex; gap:12px; margin-top:18px; }
.lz-footer-apps img{ height:42px; width:auto; }
.lz-footer-title{ font-family:var(--lz-serif); font-size:19px; color:var(--lz-ink); margin-bottom:20px; }
.lz-footer-col ul li{ margin-bottom:11px; }
.lz-footer-col a{ font-size:15px; color:var(--lz-text); transition:color .18s; }
.lz-footer-col a:hover{ color:var(--lz-accent-deep); }
.lz-footer-social{ display:flex; gap:14px; margin-bottom:22px; }
.lz-footer-social a{ width:38px; height:38px; border:1px solid var(--lz-line); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--lz-ink); transition:.2s; }
.lz-footer-social a:hover{ background:var(--lz-accent-deep); border-color:var(--lz-accent-deep); color:#fff; }
.lz-footer-news{ display:flex; border:1px solid var(--lz-line); border-radius:2px; overflow:hidden; max-width:320px; }
.lz-footer-news input{ flex:1; border:0; padding:13px 16px; font-size:14px; background:transparent; }
/* 1.6.0 a11y: the blanket outline:none is gone. The UA ring is suppressed ONLY
   for a mouse press (:focus:not(:focus-visible)); keyboard focus gets the
   theme ring, drawn inset so the wrapper (overflow:hidden) cannot clip it. */
.lz-footer-news input:focus:not(:focus-visible){ outline:none; }
.lz-footer-news button{ border:0; background:var(--lz-ink); color:#fff; padding:0 18px; cursor:pointer; transition:.2s; }
.lz-footer-news button:hover{ background:var(--lz-accent-deep); }
.lz-footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 0; border-top:1px solid var(--lz-line); flex-wrap:wrap; }
.lz-footer-copy{ color:var(--lz-muted); font-size:13px; margin:0; }
.lz-footer-pay{ max-height:26px; width:auto; }
@media (max-width:900px){ .lz-footer-top{ grid-template-columns:1fr 1fr; gap:36px; } }
@media (max-width:560px){ .lz-footer-top{ grid-template-columns:1fr; } .lz-footer-bottom{ justify-content:center; text-align:center; } }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1100px){
  .lz-promo-intro{ grid-column:span 12; padding:0; }
  .lz-promo-sale,.lz-promo-cat,.lz-promo-insta{ grid-column:span 6; }
  .lz-promo-cat-wide{ grid-column:span 12; }
  .lz-grid{ grid-template-columns:repeat(3,1fr); }
  .lz-showcase-grid{ grid-template-columns:repeat(3,1fr); }
  .lz-insta-grid{ grid-template-columns:repeat(4,1fr); }
  .lz-testi-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .lz-nav{ display:none; }
  .lz-burger{ display:flex; }
  .lz-header-inner{ height:70px; }
  .lz-deal-grid,.lz-imgtext-grid,.lz-pdp-grid,.lz-cart-layout{ grid-template-columns:1fr; gap:32px; }
  .lz-imgtext-right .lz-imgtext-media{ order:0; }
  .lz-testi-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .lz-grid{ grid-template-columns:repeat(2,1fr); gap:24px 16px; }
  .lz-showcase-grid{ grid-template-columns:repeat(2,1fr); }
  .lz-brand-row{ grid-template-columns:repeat(3,1fr); }
  .lz-insta-grid{ grid-template-columns:repeat(3,1fr); }
  .lz-gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .lz-promo-sale,.lz-promo-cat,.lz-promo-insta{ grid-column:span 12; }
  .lz-cart-row{ grid-template-columns:2fr 1fr 32px; }
  .lz-cart-row > span:nth-child(2), .lz-cart-row > span:nth-child(4){ display:none; }
  .lz-cart-head{ display:none; }
  .lz-newsletter-form{ flex-direction:column; gap:12px; }
  .lz-newsletter-form input{ border-right:1px solid rgba(255,255,255,.28); }
}

/* ==========================================================================
   COMPACT IN-COLUMN VARIANTS  [.lz-in-column]
   The page builder can drop a commerce section into a container COLUMN as a
   widget. The platform sets `section.in_column` on the Liquid context and the
   section templates translate that into a single modifier class on the section
   ROOT: `lz-in-column`. EVERY rule below is scoped under that class, so a
   full-width section (which never gets the class) is untouched — this block is
   purely additive.
   Why it is needed: the full-width layouts are sized for a 1320px container and
   all their responsive breakpoints key off the VIEWPORT, not the box. On a
   desktop viewport a ~400px column therefore still gets the 1320px layout —
   a 12-column promo mosaic at ~100px per cell, a 4-up product grid, a 6-up
   brand row, and a hero whose min-height is 60vh of the WINDOW. These rules
   re-tune each one to the box instead.
   ========================================================================== */

/* shared: kill the full-width vertical rhythm + shrink the display type. The
   container column owns spacing between its widgets. */
.lz-in-column{ padding-top:0; padding-bottom:0; }
.lz-in-column .lz-shead,
.lz-in-column .lz-shead-center{ margin-bottom:20px; max-width:none; }
/* a centred heading block wastes a narrow box — left-align section heads */
.lz-in-column .lz-shead-center{ text-align:left; margin-inline:0; }
.lz-in-column .lz-title{ font-size:20px; }
.lz-in-column .lz-title-sm{ font-size:18px; }
.lz-in-column .lz-eyebrow{ font-size:10.5px; letter-spacing:.18em; margin-bottom:10px; }
.lz-in-column .lz-btn{ padding:11px 22px; font-size:11px; letter-spacing:.13em; }

/* hero — a modest banner CARD, not a viewport-height cover crop. No arrows
   (the template omits them); the dots still drive the autoplay slider. */
.lz-hero.lz-in-column{ border-radius:3px; }
/* the copy is bottom-anchored so it sits in the DARK end of the scrim — the
   full-width hero can rely on a left-to-right scrim because its copy column is
   560px wide, but a 400px card has no such column and white text over the pale
   top of a photo is unreadable. */
.lz-in-column .lz-hero-slide{ min-height:240px; align-items:flex-end; }
.lz-in-column .lz-hero-slide::after{ background:linear-gradient(0deg,rgba(20,20,20,.66),rgba(20,20,20,.34) 45%,rgba(20,20,20,.06)); }
.lz-in-column .lz-hero-content{ min-height:0; max-width:none; padding:26px 22px; }
.lz-in-column .lz-hero-title{ font-size:21px; line-height:1.2; margin:0 0 16px; }
.lz-in-column .lz-hero-content .lz-btn{ align-self:flex-start; }
.lz-in-column .lz-hero-dots{ bottom:12px; gap:17px; }
.lz-in-column .lz-hero-dot{ width:7px; height:7px; }

/* promo mosaic — the 12-column mosaic has no meaning in a column, so it becomes
   a single stack of uniform 3:2 banners. */
.lz-in-column .lz-promo-grid{ grid-template-columns:1fr; gap:14px; }
.lz-in-column .lz-promo-intro,
.lz-in-column .lz-promo-sale,
.lz-in-column .lz-promo-cat,
.lz-in-column .lz-promo-cat-wide,
.lz-in-column .lz-promo-insta{ grid-column:auto; }
.lz-in-column .lz-promo-intro{ padding:0; }
.lz-in-column .lz-promo-intro-title{ font-size:20px; margin:0 0 12px; }
.lz-in-column .lz-promo-intro-body{ margin:0 0 16px; font-size:15px; }
/* the intro is a flex column, so its inline-block link STRETCHES — harmless at
   1320px, but in a 400px box the link's underline reads as a full-width rule. */
.lz-in-column .lz-promo-intro .lz-link{ align-self:flex-start; }
.lz-in-column .lz-promo-sale{ min-height:200px; }
.lz-in-column .lz-promo-sale-body{ padding:18px; }
.lz-in-column .lz-promo-sale-title{ font-size:18px; margin:4px 0 10px; }
.lz-in-column .lz-promo-cat-img,
.lz-in-column .lz-promo-cat-wide .lz-promo-cat-img{ aspect-ratio:3/2; }
.lz-in-column .lz-promo-cat-cap{ left:16px; bottom:14px; }
.lz-in-column .lz-promo-cat-cap h3{ font-size:17px; }
.lz-in-column .lz-promo-insta{ min-height:0; }
.lz-in-column .lz-promo-insta img{ min-height:180px; aspect-ratio:3/2; }
.lz-in-column .lz-promo-insta-body h3{ font-size:17px; }

/* product tabs — one non-wrapping scrollable row of tabs, left aligned, and a
   2-up product grid. The template also caps each panel at 4 products so the
   widget stays a card-height block instead of a very tall ribbon. */
.lz-in-column .lz-tabnav{ display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:18px; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.lz-in-column .lz-tabnav::-webkit-scrollbar{ display:none; }
.lz-in-column .lz-tabbtn{ font-size:15px; padding:0 0 10px; white-space:nowrap; }
.lz-in-column .lz-grid{ grid-template-columns:repeat(2,1fr); gap:22px 14px; }
.lz-in-column .lz-card-body{ padding:12px 2px 0; }
.lz-in-column .lz-card-title{ font-size:13.5px; margin:0 0 5px; }
.lz-in-column .lz-card-price{ font-size:13.5px; gap:7px; }
.lz-in-column .lz-card-badge{ top:9px; left:9px; padding:4px 8px; font-size:9px; }

/* mildly-cramped grids — re-tuned to the box */
.lz-in-column .lz-brand-row{ grid-template-columns:repeat(3,1fr); gap:18px; }
.lz-in-column .lz-brand img{ max-height:34px; }
.lz-in-column .lz-insta-grid{ grid-template-columns:repeat(3,1fr); gap:8px; }
.lz-in-column .lz-gallery-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
.lz-in-column .lz-gallery-cell figcaption{ font-size:12px; margin-top:6px; }
.lz-in-column .lz-showcase-grid{ grid-template-columns:repeat(2,1fr); gap:18px; }
.lz-in-column .lz-showcase-img{ margin-bottom:12px; }
.lz-in-column .lz-showcase-label{ font-size:15px; }
.lz-in-column .lz-showcase-count{ font-size:11px; }

/* 1.0.17: optional description under the category-showcase heading. */
.lz-shead .lz-sdesc{margin:12px auto 0;max-width:640px;color:var(--lz-muted);font-size:15px;line-height:1.7}
.lz-shead-center .lz-sdesc{text-align:center}

/* ==========================================================================
   ACCOUNT SUITE  [lz-auth / lz-account]  — customers/* templates + wishlist
   ========================================================================== */
.lz-auth-card{ max-width:460px; margin:0 auto; background:#fff; border:1px solid var(--lz-line); border-radius:3px; padding:clamp(28px,4vw,44px); }
.lz-auth-wide{ max-width:620px; }
.lz-auth-sub{ color:var(--lz-muted); font-size:14.5px; margin:10px 0 26px; }
.lz-field{ display:block; margin-bottom:16px; }
.lz-field span{ display:block; font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--lz-ink); margin-bottom:7px; }
.lz-field span em{ font-style:normal; text-transform:none; letter-spacing:.02em; color:var(--lz-muted); font-weight:400; }
.lz-field input, .lz-field select{ width:100%; height:46px; padding:0 14px; border:1px solid var(--lz-line); border-radius:3px; background:#fff; color:var(--lz-ink); font-size:14.5px; font-family:inherit; }
.lz-field input:focus, .lz-field select:focus{ border-color:var(--lz-accent-deep); }
.lz-field input:focus:not(:focus-visible), .lz-field select:focus:not(:focus-visible){ outline:none; }
.lz-field input[disabled]{ background:var(--lz-soft); color:var(--lz-muted); }
.lz-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.lz-field-hint{ font-size:12.5px; color:var(--lz-muted); margin:2px 0 16px; }
.lz-field-hint a{ color:var(--lz-accent-deep); }
.lz-check{ display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--lz-text); margin:0 0 18px; cursor:pointer; }
.lz-check input{ margin-top:3px; accent-color:var(--lz-accent-deep); }
.lz-check a{ color:var(--lz-accent-deep); text-decoration:underline; text-underline-offset:2px; }
.lz-form-msg{ margin:0 0 14px; font-size:13.5px; color:#b3261e; }
.lz-form-msg.is-ok{ color:var(--lz-accent-deep); }
.lz-auth-links{ margin-top:22px; display:flex; flex-direction:column; gap:8px; font-size:13.5px; color:var(--lz-muted); text-align:center; }
.lz-auth-links a{ color:var(--lz-accent-deep); text-decoration:underline; text-underline-offset:2px; }
/* account shell */
.lz-acct-grid{ display:grid; grid-template-columns:230px 1fr; gap:44px; align-items:start; }
.lz-acct-nav{ background:var(--lz-soft); border-radius:3px; padding:24px; position:sticky; top:110px; }
.lz-acct-hello{ font-family:var(--lz-serif); font-size:19px; color:var(--lz-ink); margin:0 0 14px; }
.lz-acct-nav ul{ display:flex; flex-direction:column; }
.lz-acct-nav a{ display:block; padding:9px 0; font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--lz-text); border-bottom:1px solid var(--lz-line); }
.lz-acct-nav li:last-child a{ border-bottom:none; }
.lz-acct-nav a:hover{ color:var(--lz-accent-deep); }
.lz-acct-nav a.is-active{ color:var(--lz-accent-deep); font-weight:600; }
.lz-acct-main{ min-width:0; }
.lz-acct-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:38px; }
.lz-acct-card{ border:1px solid var(--lz-line); border-radius:3px; padding:20px; background:#fff; }
.lz-acct-card-label{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--lz-muted); margin-bottom:8px; }
.lz-acct-card-value{ font-family:var(--lz-serif); font-size:22px; color:var(--lz-ink); margin:0; }
.lz-acct-card-sub{ font-size:13px; color:var(--lz-muted); margin:6px 0 0; overflow-wrap:anywhere; }
.lz-acct-card-sub a{ color:var(--lz-accent-deep); text-decoration:underline; text-underline-offset:2px; }
.lz-acct-h2{ font-family:var(--lz-serif); font-weight:400; font-size:22px; color:var(--lz-ink); margin:0 0 18px; }
.lz-acct-empty{ text-align:center; padding:48px 0; color:var(--lz-muted); }
.lz-acct-empty p{ margin-bottom:20px; }
.lz-acct-toolbar{ display:flex; justify-content:flex-end; margin-bottom:22px; }
/* orders */
.lz-orders-table{ border-top:1px solid var(--lz-line); }
.lz-orders-row{ display:grid; grid-template-columns:1.1fr 1.1fr 1.2fr 1fr auto; gap:14px; align-items:center; padding:15px 0; border-bottom:1px solid var(--lz-line); font-size:14px; }
.lz-orders-head{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--lz-muted); padding:0 0 10px; }
.lz-order-name{ font-weight:600; color:var(--lz-ink); }
.lz-badge{ display:inline-block; padding:3px 10px; border-radius:999px; background:var(--lz-soft); border:1px solid var(--lz-line); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--lz-text); }
/* order detail */
.lz-order-lines{ border-top:1px solid var(--lz-line); margin-bottom:26px; }
.lz-order-line{ display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--lz-line); }
.lz-order-line img{ width:64px; height:80px; object-fit:cover; background:var(--lz-soft); border-radius:2px; }
.lz-order-line-info{ flex:1; min-width:0; }
.lz-order-line-title{ margin:0; font-weight:500; color:var(--lz-ink); }
.lz-order-line-variant{ display:block; font-size:13px; color:var(--lz-muted); }
.lz-order-line-qty{ display:block; font-size:13px; color:var(--lz-muted); margin-top:2px; }
.lz-order-line-total{ font-weight:500; color:var(--lz-ink); }
.lz-order-summary{ max-width:420px; margin-left:auto; background:var(--lz-soft); border-radius:3px; padding:22px 24px; margin-bottom:30px; }
.lz-order-addresses{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
/* addresses */
.lz-addr-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:34px; }
.lz-addr-card{ border:1px solid var(--lz-line); border-radius:3px; padding:20px; background:#fff; }
.lz-addr-name{ margin:0 0 8px; font-weight:600; color:var(--lz-ink); }
.lz-addr-name .lz-badge{ margin-left:6px; }
.lz-addr-lines{ margin:0; font-size:14px; color:var(--lz-text); line-height:1.7; }
.lz-addr-actions{ display:flex; gap:18px; margin-top:14px; }
.lz-addr-actions .lz-link{ background:none; border:none; border-bottom:1px solid currentColor; padding:0 0 3px; cursor:pointer; font-family:inherit; }
.lz-link-danger{ color:#b3261e; }
.lz-link-danger:hover{ color:#8f1d17; }
.lz-addr-form{ border-top:1px solid var(--lz-line); padding-top:28px; }
/* wishlist */
.lz-wish-btn{ display:inline-flex; align-items:center; gap:8px; margin-top:16px; background:none; border:none; padding:0; cursor:pointer; font-family:inherit; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--lz-text); }
.lz-wish-btn .lz-wish-heart{ font-size:16px; color:var(--lz-muted); transition:.2s; }
.lz-wish-btn:hover .lz-wish-heart{ color:var(--lz-sale); }
.lz-wish-btn.is-active .lz-wish-heart{ color:var(--lz-sale); }
.lz-wish-btn.is-active{ color:var(--lz-ink); }
.lz-wish-btn-sm{ margin-top:10px; font-size:11px; }
@media (max-width:900px){
  .lz-acct-grid{ grid-template-columns:1fr; gap:26px; }
  .lz-acct-nav{ position:static; }
  .lz-acct-cards{ grid-template-columns:1fr; }
  .lz-addr-grid, .lz-order-addresses{ grid-template-columns:1fr; }
  .lz-orders-row{ grid-template-columns:1fr 1fr; row-gap:6px; }
  .lz-orders-head{ display:none; }
}
@media (max-width:560px){
  .lz-field-row{ grid-template-columns:1fr; gap:0; }
}

/* blog-article QA fixes 2026-07-23 */
.lz-richtext-inner a{text-decoration:underline;text-underline-offset:2px}
.lz-richtext-inner a:hover{opacity:.75}
.lz-richtext-inner ul{list-style:disc;padding-left:1.4em;margin:0 0 1em}
.lz-richtext-inner ol{list-style:decimal;padding-left:1.4em;margin:0 0 1em}
.lz-richtext-inner li{margin:.25em 0}
.lz-article-cover{max-width:760px;margin-left:auto;margin-right:auto}
.lz-article-cover img{width:100%;height:auto;display:block}
.lz-article-body img{max-width:100%;height:auto}

/* ---- fix round: hidden attribute must always win ---- */
.lz-body [hidden]{ display:none !important; }

/* ---- neutral no-image placeholder ---- */
.lz-img-ph{ object-fit:contain !important; background:var(--lz-soft); padding:12%; box-sizing:border-box; }
.lz-cart-prod img.lz-img-ph{ padding:8px; }

/* ---- catalog toolbar (count + sort) ---- */
.lz-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:30px 0 34px; padding:14px 0; border-top:1px solid var(--lz-line); border-bottom:1px solid var(--lz-line); }
.lz-toolbar-count{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lz-muted); }
.lz-toolbar-sortwrap{ display:inline-flex; align-items:center; gap:10px; }
.lz-toolbar-label{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lz-muted); }
.lz-toolbar-sort{ width:auto; max-width:230px; padding:10px 12px; cursor:pointer; }

/* ---- pagination ---- */
.lz-pagination{ display:flex; align-items:center; justify-content:center; gap:28px; margin-top:52px; }
.lz-page-link{ display:inline-block; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.15em; color:var(--lz-ink); border-bottom:1px solid currentColor; padding-bottom:3px; transition:.2s; }
.lz-page-link:hover{ color:var(--lz-accent-deep); }
.lz-page-link.is-disabled{ opacity:.35; border-bottom-color:transparent; cursor:default; }
.lz-page-info{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lz-muted); }

/* ---- search results ---- */
.lz-search-meta{ text-align:center; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lz-muted); margin:34px 0 30px; }
.lz-search-empty{ text-align:center; padding:44px 0 20px; }
.lz-search-empty p{ color:var(--lz-muted); margin:0 0 24px; }

/* ---- 404 ---- */
.lz-404{ padding-top:clamp(60px,9vw,110px); padding-bottom:clamp(60px,9vw,110px); }
.lz-404-title{ font-size:clamp(34px,4.4vw,56px); }
.lz-404-actions{ margin-top:28px; }

/* ---- newsletter status message ---- */
.lz-newsletter-msg{ margin:14px 0 0; font-size:14px; color:var(--lz-sale); }
.lz-newsletter-msg.is-ok{ color:var(--lz-accent-deep); }
.lz-newsletter .lz-newsletter-msg{ color:#e5a394; }
.lz-newsletter .lz-newsletter-msg.is-ok{ color:#a9d3c9; }

/* Honeypot field (newsletter anti-spam) */
.lz-hp{position:absolute;left:-9999px;opacity:0;pointer-events:none}

/* ==========================================================================
   PHASE 4 (1.5.0) — related rail, quick add, cart drawer, predictive search,
   listing filters. Same tokens, same 2-3px radii, same 12px/.14em caps idiom.
   ========================================================================== */

/* ---- related rail (PDP). `.lz-section + .lz-section` zeroes the top padding
   of a stacked section — this rail follows the PDP directly and needs its own
   breathing room plus a hairline to read as a new chapter. ---- */
.lz-section.lz-related{ padding-top:clamp(52px,6vw,88px); }
.lz-related .lz-container{ border-top:1px solid var(--lz-line); padding-top:clamp(46px,5vw,72px); }
.lz-related .lz-shead-center{ margin-bottom:clamp(30px,4vw,46px); }

/* ---- quick add on a product card ---- */
.lz-card-quick{ position:absolute; z-index:2; left:12px; right:12px; bottom:12px; display:flex; align-items:center; justify-content:center; height:42px; padding:0 12px; border:1px solid var(--lz-ink); border-radius:2px; background:var(--lz-ink); color:#fff; font-family:var(--lz-sans); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.14em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; opacity:0; transform:translateY(9px); transition:opacity .25s ease, transform .25s ease, background .2s ease, border-color .2s ease, color .2s ease; }
.lz-card:hover .lz-card-quick,
.lz-card-quick:focus-visible{ opacity:1; transform:none; }
.lz-card-quick:hover{ background:var(--lz-accent-deep); border-color:var(--lz-accent-deep); }
.lz-card-quick[disabled]{ opacity:1; transform:none; cursor:default; background:var(--lz-accent-deep); border-color:var(--lz-accent-deep); }
.lz-card-quick.is-error{ opacity:1; transform:none; background:var(--lz-sale); border-color:var(--lz-sale); }
.lz-in-column .lz-card-quick{ left:8px; right:8px; bottom:8px; height:34px; font-size:10px; letter-spacing:.1em; }
@media (hover:none){ .lz-card-quick{ opacity:1; transform:none; } }
@media (max-width:560px){ .lz-card-quick{ left:8px; right:8px; bottom:8px; height:36px; font-size:10px; letter-spacing:.1em; } }

/* ---- header predictive search ---- */
.lz-search{ position:relative; display:inline-flex; }
.lz-search-pop{ position:absolute; top:calc(100% + 14px); right:0; z-index:80; width:min(360px,78vw); opacity:0; transform:translateY(-6px); transition:opacity .2s ease, transform .2s ease; }
.lz-search-pop.is-open{ opacity:1; transform:none; }
.lz-search-field{ position:relative; display:flex; align-items:center; background:#fff; border:1px solid var(--lz-line); border-radius:2px; box-shadow:0 22px 48px -30px rgba(20,20,20,.45); }
.lz-search-input{ flex:1; min-width:0; height:46px; padding:0 6px 0 16px; border:0; background:transparent; color:var(--lz-ink); font-family:inherit; font-size:14.5px; }
.lz-search-input:focus:not(:focus-visible){ outline:none; }
.lz-search-input::-webkit-search-cancel-button{ display:none; }
.lz-search-go{ flex:0 0 44px; height:46px; border:0; background:none; color:var(--lz-ink); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.lz-search-go:hover{ color:var(--lz-accent-deep); }
.lz-search-results{ position:absolute; top:calc(100% + 6px); left:0; right:0; max-height:min(64vh,420px); overflow-y:auto; background:#fff; border:1px solid var(--lz-line); border-radius:2px; box-shadow:0 26px 54px -30px rgba(20,20,20,.5); padding:6px 0; }
.lz-ps-row{ display:flex; align-items:center; gap:12px; padding:8px 14px; color:var(--lz-ink); }
.lz-ps-row:hover, .lz-ps-row.is-active, .lz-ps-row:focus-visible{ background:var(--lz-soft); }
.lz-ps-thumb{ flex:0 0 40px; width:40px; height:40px; object-fit:cover; background:var(--lz-soft); border-radius:2px; }
.lz-ps-info{ min-width:0; display:flex; flex-direction:column; }
.lz-ps-title{ font-size:14px; line-height:1.35; color:var(--lz-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lz-ps-price{ font-size:13px; color:var(--lz-muted); }
.lz-ps-empty{ padding:12px 14px; font-size:13.5px; color:var(--lz-muted); }
.lz-ps-all{ display:block; margin-top:4px; padding:11px 14px; border-top:1px solid var(--lz-line); font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.13em; color:var(--lz-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lz-ps-all:hover{ color:var(--lz-accent-deep); background:var(--lz-soft); }
@media (max-width:560px){ .lz-search-pop{ right:-8px; width:min(320px,86vw); } }

/* ---- cart drawer. Header is z-index 60 and its dropdown 70, so the drawer
   sits well clear at 1200. ---- */
.lz-drawer-root{ position:fixed; inset:0; z-index:1200; }
.lz-drawer-backdrop{ position:absolute; inset:0; background:rgba(20,20,20,.42); opacity:0; transition:opacity .3s ease; }
.lz-drawer{ position:absolute; top:0; right:0; height:100%; width:min(410px,92vw); display:flex; flex-direction:column; background:var(--lz-bg); box-shadow:-24px 0 60px -34px rgba(20,20,20,.6); transform:translateX(100%); transition:transform .32s cubic-bezier(.22,.61,.36,1); }
.lz-drawer-root.is-open .lz-drawer-backdrop{ opacity:1; }
.lz-drawer-root.is-open .lz-drawer{ transform:none; }
.lz-drawer-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px; border-bottom:1px solid var(--lz-line); }
.lz-drawer-title{ font-family:var(--lz-serif); font-weight:400; font-size:21px; color:var(--lz-ink); margin:0; }
.lz-drawer-x{ width:34px; height:34px; border:0; background:none; cursor:pointer; font-size:26px; line-height:1; color:var(--lz-muted); }
.lz-drawer-x:hover{ color:var(--lz-ink); }
.lz-drawer-body{ flex:1; min-height:0; overflow-y:auto; padding:8px 24px; }
.lz-drawer-empty{ color:var(--lz-muted); text-align:center; padding:44px 0; margin:0; }
.lz-drawer-lines{ list-style:none; margin:0; padding:0; }
.lz-drawer-line{ display:flex; gap:14px; align-items:flex-start; padding:18px 0; border-bottom:1px solid var(--lz-line); }
.lz-drawer-thumb{ flex:0 0 68px; width:68px; height:84px; display:block; overflow:hidden; background:var(--lz-soft); border-radius:2px; }
.lz-drawer-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.lz-drawer-line-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.lz-drawer-line-title{ font-size:14.5px; font-weight:500; color:var(--lz-ink); line-height:1.4; }
.lz-drawer-line-title:hover{ color:var(--lz-accent-deep); }
.lz-drawer-line-variant{ font-size:13px; color:var(--lz-muted); }
.lz-drawer-line-meta{ display:flex; justify-content:space-between; gap:12px; font-size:13.5px; color:var(--lz-text); margin-top:2px; }
.lz-drawer-line-price{ color:var(--lz-ink); font-weight:500; }
.lz-drawer-foot{ border-top:1px solid var(--lz-line); padding:20px 24px 24px; background:var(--lz-bg); }
.lz-drawer-sub{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:12px; text-transform:uppercase; letter-spacing:.13em; color:var(--lz-muted); }
.lz-drawer-sub span:last-child{ font-size:19px; letter-spacing:normal; text-transform:none; color:var(--lz-ink); font-weight:500; }
.lz-drawer-note{ font-size:12.5px; color:var(--lz-muted); margin:8px 0 16px; }
.lz-drawer-viewcart{ display:block; text-align:center; margin-top:14px; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--lz-muted); }
.lz-drawer-viewcart:hover{ color:var(--lz-accent-deep); }
.lz-body.lz-drawer-open{ overflow:hidden; }

/* ---- listing filters (inside the existing sort toolbar form) ---- */
.lz-toolbar-filters{ display:flex; align-items:center; gap:clamp(14px,2vw,26px); flex-wrap:wrap; }
.lz-filter-check{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:var(--lz-muted); }
.lz-filter-check input{ width:15px; height:15px; margin:0; accent-color:var(--lz-accent-deep); cursor:pointer; }
.lz-filter-check:hover{ color:var(--lz-ink); }
.lz-filter-price{ display:inline-flex; align-items:center; gap:8px; }
.lz-filter-num{ width:74px; height:38px; padding:0 10px; border:1px solid var(--lz-line); border-radius:2px; background:#fff; color:var(--lz-ink); font-family:inherit; font-size:13.5px; }
.lz-filter-num:focus{ border-color:var(--lz-accent-deep); }
.lz-filter-num:focus:not(:focus-visible){ outline:none; }
.lz-filter-dash{ color:var(--lz-muted); }
.lz-filter-go{ padding:10px 20px; }
@media (max-width:820px){
  .lz-toolbar{ justify-content:flex-start; }
  .lz-toolbar-count{ width:100%; }
}

@media (prefers-reduced-motion: reduce){
  .lz-card-quick,
  .lz-search-pop,
  .lz-drawer,
  .lz-drawer-backdrop{ transition:none; }
}

/* ==========================================================================
   PHASE 5 (1.6.0) — ACCESSIBILITY PASS
   Additive only: focus indicators, hit areas, a visually-hidden utility, a skip
   link and a reduced-motion guard. Nothing here changes the resting appearance
   of the page for a sighted mouse user (the two exceptions are documented at
   the token block: the muted and accent-deep colours were darkened to pass
   WCAG 1.4.3, and the hero dots sit 5px further apart so their 24px hit areas
   do not overlap).
   ========================================================================== */

/* ---- visually hidden: available to assistive tech, invisible on screen ---- */
.lz-vh{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* ---- skip link: first focusable element in the document ---- */
.lz-skip{
  position:absolute; top:0; left:0; z-index:2000;
  transform:translateY(-120%);
  display:inline-block;
  padding:14px 22px;
  background:var(--lz-ink); color:#fff;
  font-family:var(--lz-sans); font-weight:600; font-size:12px;
  text-transform:uppercase; letter-spacing:.14em;
  border-radius:0 0 3px 0;
  transition:transform .18s ease;
}
.lz-skip:focus{ transform:translateY(0); }

/* ---- FOCUS INDICATOR ------------------------------------------------------
   One ring for the whole theme: a 2px ink outline at 2px offset (17.40:1 on
   #fff, 15.72:1 on --lz-soft) plus a 2px white halo that fills the offset gap.
   The halo is invisible on the white page and is what carries the ring over the
   dark panel (#181818), the announcement bar and hero/product photography,
   where the ink core alone would disappear — so every surface clears 3:1.
   -------------------------------------------------------------------------- */
.lz-body :is(a,button,input,select,textarea,summary,[tabindex],[role="button"],[role="option"]):focus-visible{
  outline:2px solid var(--lz-focus);
  outline-offset:2px;
  box-shadow:0 0 0 2px var(--lz-focus-halo);
}
/* Elements whose wrapper clips overflow (or that sit flush inside a bordered
   field) take the ring INSIDE their own box instead, so it is never clipped. */
.lz-body .lz-footer-news input:focus-visible,
.lz-body .lz-footer-news button:focus-visible,
.lz-body .lz-search-input:focus-visible,
.lz-body .lz-search-go:focus-visible,
.lz-body .lz-qty-step input:focus-visible,
.lz-body .lz-qty-step button:focus-visible,
.lz-body .lz-ps-row:focus-visible,
.lz-body .lz-ps-all:focus-visible,
.lz-body .lz-toolbar-sort:focus-visible{
  outline-offset:-2px;
  box-shadow:none;
}
/* The card image link fills a media box with overflow:hidden, so BOTH rings go
   inside it — a white 2px band with the ink outline on top of it, readable over
   any product photograph. */
.lz-body .lz-card-img:focus-visible{
  outline-offset:-2px;
  box-shadow:inset 0 0 0 4px var(--lz-focus-halo);
}
/* Windows High Contrast Mode paints outlines with the system colour. */
@media (forced-colors: active){
  .lz-body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
    outline:3px solid Highlight;
    outline-offset:2px;
  }
}

/* ---- TAP TARGETS (>= 24x24 CSS px) ---------------------------------------
   Every control below keeps its exact painted size; the target is grown with a
   transparent ::before overlay or with padding that is compensated elsewhere.
   -------------------------------------------------------------------------- */
/* header icon buttons: 19px glyph -> 26x26 target (icons are 39px apart, so the
   targets never overlap) */
.lz-icon::before{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:26px; height:26px;
  transform:translate(-50%,-50%);
}
/* hero dots: the 9px dot keeps its size, the target is 24x24 */
.lz-hero-dot{ position:relative; }
.lz-hero-dot::before{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:24px; height:24px;
  transform:translate(-50%,-50%);
}
.lz-in-column .lz-hero-dot::before{ width:24px; height:24px; }
/* promo-code chip remove button */
.lz-promo-tag button{ min-width:24px; min-height:24px; }
/* filter checkbox label (12px caps text is only ~21px tall) */
.lz-filter-check{ min-height:24px; }
/* drawer "View cart" link: 3px of padding, taken back out of the margin above,
   so the link sits in exactly the same place and is 27px tall */
.lz-drawer-viewcart{ margin-top:11px; padding:3px 0; }

/* block links whose line box fell just under 24px. Each gains padding that is
   taken straight back out of the margin (or absorbed by the line box), so the
   painted position of every one of them is unchanged. */
.lz-cart-continue{ margin-top:11px; padding:3px 0; }
.lz-auth-links{ line-height:1.8; }
.lz-drawer-line-title{ padding:2px 0; margin:-2px 0; }

/* keyboard-highlighted predictive-search row (roving Up/Down selection) */
.lz-ps-row.is-active{ background:var(--lz-soft); }

/* ---- REDUCED MOTION -------------------------------------------------------
   Autoplay is stopped in theme.js (the timer never starts); this neutralises
   every transition and animation, including the hero cross-fade, the card
   zooms, the drawer slide and the search popover.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .lz-body *,
  .lz-body *::before,
  .lz-body *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    transition-delay:0ms !important;
    scroll-behavior:auto !important;
  }
  .lz-card-img img,
  .lz-blog-cover img,
  .lz-showcase-img img,
  .lz-insta-cell img,
  .lz-promo-cat-img img{ transform:none !important; }
}
