/*!
 * Lazuli Management single-post template v2 fixes. See docs/decisions/2026-05-12-css-refactor-adr.md for cascade/refactor history and per-decision rationale. No em-dash (U+2014) anywhere.
 *
 * Card-pattern off-scale literals retained by design (CI-005):
 *   0.625rem (10px), 0.875rem (14px), 1.25rem (20px). Promote to spacing
 *   tokens only when a third card surface adopts the same rhythm.
 */

/* --------------------------------------------------------------- *
 * 1. Breadcrumb
 * --------------------------------------------------------------- */
#breadcrumbs,
.lz-breadcrumbs {
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--150);
  font-weight:     600;
  letter-spacing:  0.08em;
  text-transform:  uppercase;
  line-height:     1.4;
  color:           var(--wp--custom--color--semantic--text--secondary);
}
#breadcrumbs a,
.lz-breadcrumbs a {
  color:           var(--wp--custom--color--semantic--text--brand);
  text-decoration: none;
  transition:      color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
#breadcrumbs a:hover,
.lz-breadcrumbs a:hover {
  color:           var(--wp--preset--color--blue-900);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
#breadcrumbs a:focus-visible {
  outline:         2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset:  2px;
  border-radius:   2px;
}
#breadcrumbs .breadcrumb_last {
  color:           var(--wp--custom--color--semantic--text--secondary);
  font-weight:     600;
}

/* --------------------------------------------------------------- *
 * 2. Meta row (data-id="d21ca75" has no stable class; keep data-id)
 * --------------------------------------------------------------- */
.lz-meta-row,
[data-id="d21ca75"] {
  display:         flex;
  flex-wrap:       wrap;
  align-items:     center;
  gap:             var(--wp--preset--spacing--3) var(--wp--preset--spacing--4);
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--150);
  line-height:     1.4;
  color:           var(--wp--custom--color--semantic--text--secondary);
  padding-block:   var(--wp--preset--spacing--3);
  border-block:    1px solid var(--wp--custom--color--semantic--border--subtle);
}
.lz-meta-row .elementor-widget-post-info,
[data-id="d21ca75"] .elementor-widget-post-info,
.lz-meta-row .elementor-widget-text-editor,
[data-id="d21ca75"] .elementor-widget-text-editor,
.lz-meta-row .elementor-widget-shortcode,
[data-id="d21ca75"] .elementor-widget-shortcode {
  display:        inline-flex;
  align-items:    center;
}
.lz-meta-row .elementor-icon-list-items,
[data-id="d21ca75"] .elementor-icon-list-items {
  padding: 0;
  margin:  0;
  list-style: none;
}
.lz-meta-row > .elementor-element + .elementor-element:not(.elementor-widget-share-buttons)::before,
[data-id="d21ca75"] > .elementor-element + .elementor-element:not(.elementor-widget-share-buttons)::before {
  content:           "\00B7";
  margin-inline-end: var(--wp--preset--spacing--4);
  color:             var(--wp--custom--color--semantic--text--muted);
  font-size:         1em;
  line-height:       1;
}
.lz-meta-row .elementor-post-info__item-prefix,
[data-id="d21ca75"] .elementor-post-info__item-prefix {
  color:             var(--wp--custom--color--semantic--text--muted);
  font-weight:       600;
  text-transform:    uppercase;
  letter-spacing:    0.08em;
  margin-inline-end: 0.375rem;
}
/* Published prefix removed per user feedback 2026-05-12. */
.lz-meta-row .elementor-post-info__terms-list-item,
[data-id="d21ca75"] .elementor-post-info__terms-list-item {
  color:             var(--wp--custom--color--semantic--text--brand);
  font-weight:       600;
  text-transform:    uppercase;
  letter-spacing:    0.08em;
  text-decoration:   none;
  transition:        color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-meta-row .elementor-post-info__terms-list-item:hover,
[data-id="d21ca75"] .elementor-post-info__terms-list-item:hover {
  color:             var(--wp--preset--color--blue-900);
  text-decoration:   underline;
  text-underline-offset: 0.2em;
}
[data-id="89a244e"] {
  text-transform:       uppercase;
  letter-spacing:       0.08em;
  font-weight:          600;
  color:                var(--wp--custom--color--semantic--text--secondary);
  font-variant-numeric: tabular-nums;
}
.lz-meta-row .post-views-icon,
[data-id="aec2c2b"] .post-views-icon {
  display: none;
}
.lz-meta-row .post-views-label,
[data-id="aec2c2b"] .post-views-label {
  text-transform:    uppercase;
  letter-spacing:    0.08em;
  font-weight:       600;
  color:             var(--wp--custom--color--semantic--text--muted);
  margin-inline-end: 0.375rem;
}
.lz-meta-row .post-views-count,
[data-id="aec2c2b"] .post-views-count {
  color:                var(--wp--custom--color--semantic--text--secondary);
  font-weight:          600;
  font-variant-numeric: tabular-nums;
}
.lz-meta-row .elementor-widget-share-buttons,
[data-id="d21ca75"] .elementor-widget-share-buttons {
  margin-inline-start: auto;
}
.lz-meta-row .elementor-share-btn,
[data-id="d21ca75"] .elementor-share-btn {
  inline-size:    var(--wp--preset--spacing--8);
  block-size:     var(--wp--preset--spacing--8);
}
@media (max-width: 600px) {
  .lz-meta-row .elementor-widget-share-buttons,
  [data-id="d21ca75"] .elementor-widget-share-buttons {
    margin-inline-start: 0;
    flex-basis:          100%;
  }
}

/* --------------------------------------------------------------- *
 * 3. Title + excerpt + highlights
 * --------------------------------------------------------------- */
.elementor-widget-theme-post-title .elementor-heading-title,
.lz-post-title {
  font-family:    var(--wp--preset--font-family--sans);
  font-weight:    700;
  font-size:      var(--wp--preset--font-size--700);
  line-height:    var(--wp--custom--font--line-height--snug);
  letter-spacing: var(--wp--custom--font--letter-spacing--heading);
  color:          var(--wp--custom--color--semantic--text--primary);
  text-wrap:      balance;
  margin-block:   0 1.25rem; /* card-pattern off-scale, CI-005 */
}
.elementor-widget-theme-post-title .title-highlight,
.lz-post-title .title-highlight {
  font-family:    "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:     italic;
  font-weight:    800;
  color:          var(--wp--preset--color--gold-700);
  letter-spacing: -0.005em;
}

/*
 * Excerpt body. The widget renders as elementor-widget-text-editor (rewired
 * from theme-post-excerpt during polish item 1 to bind the lazuli-excerpt
 * dynamic tag); the dead theme-post-excerpt selector was removed in CI-006.
 * Pin to the rewired widget by container data-id (b8bb444) plus the
 * lz-post-excerpt-block stable class.
 */
.lz-post-excerpt-block .elementor-widget-text-editor,
.lz-post-excerpt-block .elementor-widget-text-editor p,
[data-id="b8bb444"] .elementor-widget-text-editor,
[data-id="b8bb444"] .elementor-widget-text-editor p,
.lz-post-excerpt {
  font-family:     var(--wp--preset--font-family--sans);
  font-weight:     400;
  font-size:       var(--wp--preset--font-size--300);
  line-height:     var(--wp--custom--font--line-height--default);
  color:           var(--wp--custom--color--semantic--text--primary);
  max-inline-size: min(60ch, 100%);
  margin-block:    0 var(--wp--preset--spacing--6);
}

/*
 * Issue 4: excerpt `.title-highlight` in gold-900. The excerpt widget is
 * rendered as `elementor-widget-text-editor` (rewired from theme-post-excerpt
 * to bind the lazuli-excerpt dynamic tag during polish item 1). The selector
 * chain pins to the rewired widget by data-id (ed97e24) and adds a broad
 * fallback for any text-editor widget inside the excerpt container.
 */
.elementor-element.elementor-element-ed97e24 .title-highlight,
.elementor-element.elementor-element-ed97e24 em.title-highlight,
.lz-post-excerpt-block .elementor-widget-text-editor .title-highlight,
.lz-post-excerpt-block .elementor-widget-text-editor em.title-highlight,
[data-id="b8bb444"] .elementor-widget-text-editor .title-highlight,
[data-id="b8bb444"] .elementor-widget-text-editor em.title-highlight,
.lz-post-excerpt .title-highlight {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:  italic;
  font-weight: 600;
  color:       var(--wp--preset--color--gold-900);
}

/* --------------------------------------------------------------- *
 * 4. Title-excerpt pair: tighten gap, cap width (V-001)
 * --------------------------------------------------------------- */
.lz-post-title-block + .lz-post-excerpt-block,
[data-id="cc7206c"] + [data-id="b8bb444"] {
  margin-block-start: var(--wp--preset--spacing--2);
}
.lz-post-title-block .e-con-inner,
[data-id="cc7206c"] .e-con-inner {
  max-inline-size: min(70ch, 100%);
}
.lz-post-excerpt-block .e-con-inner,
[data-id="b8bb444"] .e-con-inner {
  max-inline-size: min(60ch, 100%);
  text-wrap:       pretty;
}

/* --------------------------------------------------------------- *
 * 5. Mini-author block (data-id="d0d1068" container, lz-post-mini-author
 *    is the parent at data-id="61357c3"). Avatar widget pinned at data-id
 *    "6ab0cf1"; no stable class on the inner widget so the data-id chain
 *    is required.
 * --------------------------------------------------------------- */
[data-id="d0d1068"] {
  display:               grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "avatar name"
    "avatar position";
  column-gap:            var(--wp--preset--spacing--3);
  row-gap:               0.125rem;
  align-items:           center;
  max-inline-size:       60ch;
  margin-block:          0 var(--wp--preset--spacing--6);
}
[data-id="d0d1068"] .elementor-widget-author-box   { grid-area: avatar; }
[data-id="d0d1068"] .elementor-widget-post-info    { grid-area: name; }
[data-id="d0d1068"] .elementor-widget-text-editor  { grid-area: position; }

/*
 * Issue 5: avatar sized to 40x40 circle. !important x4 below is to defeat
 * Elementor Pro's widget-author-box.min.css rule
 * `.elementor-author-box__avatar img { width: 100px; }` at (0,2,1).
 * Our chain is (0,3,1) so specificity alone wins for inline-size /
 * block-size; the !important is belt-and-braces against any future
 * Elementor Pro update that bumps the rule to !important. Logical
 * properties only (CI-007); legacy width/height/max-width dropped.
 * CI-011: duplicate .elementor-author-box step in the selector chain
 * removed.
 */
[data-id="d0d1068"] .elementor-widget-author-box .elementor-author-box__avatar img,
[data-id="d0d1068"][data-element_type="container"] .elementor-author-box__avatar img,
[data-id="d0d1068"] .elementor-author-box__avatar img {
  inline-size:    2.5rem !important;
  block-size:     2.5rem !important;
  max-inline-size:2.5rem !important;
  border-radius:  9999px;
  border:         1px solid var(--wp--custom--color--semantic--border--subtle);
  object-fit:     cover;
  display:        block;
}
[data-id="d0d1068"] .elementor-author-box__text { display: none; }

[data-id="d0d1068"] .elementor-post-info__item--type-author,
[data-id="d0d1068"] .elementor-post-info__item--type-author a {
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--100);
  font-weight:     600;
  color:           var(--wp--custom--color--semantic--text--primary);
  text-decoration: none;
  line-height:     1.3;
}
[data-id="d0d1068"] .elementor-post-info__item--type-author a:hover {
  color:           var(--wp--preset--color--blue-500);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
[data-id="d0d1068"] .elementor-widget-text-editor,
[data-id="d0d1068"] .elementor-widget-text-editor p {
  font-family: var(--wp--preset--font-family--sans);
  font-size:   var(--wp--preset--font-size--150);
  font-weight: 500;
  line-height: 1.3;
  color:       var(--wp--custom--color--semantic--text--secondary);
  margin:      0;
}

/* --------------------------------------------------------------- *
 * 6. TOC reading layout (V-002, V-003)
 *
 * Elementor's frontend.min.css `.e-con > .e-con-inner { display: var(--display) }`
 * resolves `--display: flex` because the parent has class `e-flex`. To beat
 * this with `display: grid` we need higher specificity than (0,1,1) and we
 * also set `--display: grid` so Elementor's own rule honors our grid intent.
 * Both belt-and-braces paths are present.
 * --------------------------------------------------------------- */
.elementor .lz-reading-layout > .e-con-inner,
.lz-reading-layout > .e-con-inner,
.elementor [data-id="708adec"] > .e-con-inner,
[data-id="708adec"].e-con > .e-con-inner,
[data-id="708adec"] > .e-con-inner {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--wp--preset--spacing--6);
  align-items:           start;
  --display:             grid;
}
@media (min-width: 1024px) {
  .elementor .lz-reading-layout > .e-con-inner,
  .lz-reading-layout > .e-con-inner,
  .elementor [data-id="708adec"] > .e-con-inner,
  [data-id="708adec"].e-con > .e-con-inner,
  [data-id="708adec"] > .e-con-inner {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: clamp(1.5rem, 3vw, 3rem);
  }
}
@media (min-width: 1280px) {
  .elementor .lz-reading-layout > .e-con-inner,
  .lz-reading-layout > .e-con-inner,
  .elementor [data-id="708adec"] > .e-con-inner,
  [data-id="708adec"].e-con > .e-con-inner,
  [data-id="708adec"] > .e-con-inner {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
  }
}
.lz-toc-sidebar,
[data-id="2eade75"] { min-inline-size: 0; align-self: start; }
@media (min-width: 1024px) {
  .lz-toc-sidebar,
  [data-id="2eade75"] {
    position:           sticky;
    inset-block-start:  96px;
    max-block-size:     calc(100dvh - 96px - 2rem);
    overflow-y:         auto;
    scrollbar-width:    thin;
    /* Override the Elementor per-post `--width:280px` for this sidebar
       container so it fills the 260/300px grid track rather than leaving a
       residual gap. Ryan can drop this override once the sidebar element's
       editor Width is set to 100% in the Elementor template. */
    --width:            100%;
    inline-size:        100%;
  }
}
.lz-reading-content,
[data-id="0152e0f"] { min-inline-size: 0; }
.lz-reading-content #ez-toc-container,
[data-id="0152e0f"] #ez-toc-container { display: none; }

.lz-toc-sidebar #ez-toc-container,
[data-id="2eade75"] #ez-toc-container {
  background:    var(--wp--custom--color--semantic--background--surface);
  border:        1px solid var(--wp--custom--color--semantic--border--subtle);
  border-radius: 0.75rem;
  padding:       1.25rem; /* card-pattern off-scale, CI-005 */
  box-shadow:    var(--wp--preset--shadow--low);
  inline-size:   100%;
  margin:        0;
  position:      static;
}
/*
 * !important x6 below defeats Easy Table of Contents plugin's
 * frontend.min.css which sets the title to position:absolute with hardcoded
 * top/left, plus its own background, padding, and margin. We restore inline
 * flow because the title sits inside our card-pattern container.
 */
.lz-toc-sidebar #ez-toc-container .ez-toc-title,
[data-id="2eade75"] #ez-toc-container .ez-toc-title {
  position:        static !important;
  top:             auto !important;
  left:            auto !important;
  background:      none !important;
  padding:         0 !important;
  margin:          0 0 var(--wp--preset--spacing--4) 0 !important;
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--150);
  font-weight:     600;
  text-transform:  uppercase;
  letter-spacing:  0.08em;
  color:           var(--wp--custom--color--semantic--text--muted);
  text-align:      left;
  display:         inline-flex;
  align-items:     center;
  gap:             var(--wp--preset--spacing--2);
}
.lz-toc-sidebar #ez-toc-container .ez-toc-title::before,
[data-id="2eade75"] #ez-toc-container .ez-toc-title::before {
  content:        "";
  inline-size:    var(--wp--preset--spacing--2);
  block-size:     var(--wp--preset--spacing--2);
  border-radius:  9999px;
  background:     var(--wp--preset--color--gold-500);
  flex-shrink:    0;
}
.lz-toc-sidebar #ez-toc-container .ez-toc-title-toggle,
[data-id="2eade75"] #ez-toc-container .ez-toc-title-toggle {
  margin-inline-start: auto;
}
/*
 * !important x2 below defeats Easy Table of Contents' inline SVG fill/color
 * which the plugin sets on the toggle icon directly; the !important on our
 * side is the only path to override an inline style.
 */
.lz-toc-sidebar #ez-toc-container .ez-toc-title-toggle svg,
[data-id="2eade75"] #ez-toc-container .ez-toc-title-toggle svg {
  fill:  var(--wp--custom--color--semantic--text--muted) !important;
  color: var(--wp--custom--color--semantic--text--muted) !important;
}

.lz-toc-sidebar #ez-toc-container nav > ul,
[data-id="2eade75"] #ez-toc-container nav > ul {
  list-style:     none;
  margin:         0;
  padding:        0;
  display:        flex;
  flex-direction: column;
  gap:            var(--wp--preset--spacing--1);
}
.lz-toc-sidebar #ez-toc-container nav ul ul,
[data-id="2eade75"] #ez-toc-container nav ul ul {
  list-style:     none;
  margin:         var(--wp--preset--spacing--1) 0;
  padding:        0 0 0 var(--wp--preset--spacing--6);
  display:        flex;
  flex-direction: column;
  gap:            0.125rem;
}
.lz-toc-sidebar #ez-toc-container nav li,
[data-id="2eade75"] #ez-toc-container nav li {
  margin: 0; padding: 0; list-style: none;
}
/*
 * !important on `content: none` below defeats Easy Table of Contents'
 * `li a::before { content: counter(...) }` bullet rule that ships in the
 * plugin's own stylesheet at higher specificity than our nav selector
 * chain. Without !important the bullets reappear.
 */
.lz-toc-sidebar #ez-toc-container nav ul li a::before,
[data-id="2eade75"] #ez-toc-container nav ul li a::before {
  content: none !important;
}
.lz-toc-sidebar #ez-toc-container nav a.ez-toc-link,
[data-id="2eade75"] #ez-toc-container nav a.ez-toc-link {
  display:         flex;
  align-items:     baseline;
  gap:             var(--wp--preset--spacing--3);
  padding:         0.625rem 0.75rem; /* card-pattern off-scale, CI-005 */
  border-radius:   var(--wp--preset--spacing--2);
  text-decoration: none;
  color:           var(--wp--custom--color--semantic--text--primary);
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--250);
  line-height:     1.4;
  font-weight:     500;
  transition:      background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                   color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-toc-sidebar #ez-toc-container nav a.ez-toc-link:hover,
[data-id="2eade75"] #ez-toc-container nav a.ez-toc-link:hover {
  background: rgb(0 0 0 / 0.04);
  color:      var(--wp--preset--color--blue-500);
}
.lz-toc-sidebar #ez-toc-container nav a.ez-toc-link:focus-visible,
[data-id="2eade75"] #ez-toc-container nav a.ez-toc-link:focus-visible {
  outline:         2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset:  2px;
}
.lz-toc-sidebar #ez-toc-container nav li.active > a.ez-toc-link,
.lz-toc-sidebar #ez-toc-container nav li[data-active="true"] > a.ez-toc-link,
.lz-toc-sidebar #ez-toc-container nav a.ez-toc-link[aria-current="location"],
[data-id="2eade75"] #ez-toc-container nav li.active > a.ez-toc-link,
[data-id="2eade75"] #ez-toc-container nav li[data-active="true"] > a.ez-toc-link,
[data-id="2eade75"] #ez-toc-container nav a.ez-toc-link[aria-current="location"] {
  background:  var(--wp--preset--color--gold-100);
  color:       var(--wp--preset--color--blue-700);
  font-weight: 600;
}
.lz-toc-sidebar #ez-toc-container nav ul ul a.ez-toc-link,
[data-id="2eade75"] #ez-toc-container nav ul ul a.ez-toc-link {
  font-size:   var(--wp--preset--font-size--150);
  font-weight: 500;
  color:       var(--wp--custom--color--semantic--text--secondary);
  padding:     var(--wp--preset--spacing--2) 0.625rem; /* card-pattern off-scale, CI-005 */
}

/* TOC progress sub-component (data-id="b1ca1c5" has no stable class). */
[data-id="b1ca1c5"] .lz-toc__progress,
.lz-toc-sidebar .lz-toc__progress {
  margin-block-start:  1.25rem; /* card-pattern off-scale, CI-005 */
  padding-block-start: var(--wp--preset--spacing--4);
  border-block-start:  1px solid var(--wp--custom--color--semantic--border--subtle);
}
[data-id="b1ca1c5"] .lz-toc__progress-label,
.lz-toc-sidebar .lz-toc__progress-label {
  font-family:      var(--wp--preset--font-family--sans);
  /* 0.625rem (10px) is the documented off-scale exception per CI-002:
     quietest label on the card, below body-small territory. No 25 preset
     promoted for a single occurrence. */
  font-size:        0.625rem;
  font-weight:      600;
  text-transform:   uppercase;
  letter-spacing:   0.1em;
  color:            var(--wp--custom--color--semantic--text--muted);
  margin-block-end: var(--wp--preset--spacing--2);
}
[data-id="b1ca1c5"] .lz-toc__progress-track,
.lz-toc-sidebar .lz-toc__progress-track {
  block-size:    4px;
  background:    var(--wp--custom--color--semantic--border--subtle);
  border-radius: 9999px;
  overflow:      hidden;
  display:       block;
}
[data-id="b1ca1c5"] .lz-toc__progress-fill,
.lz-toc-sidebar .lz-toc__progress-fill {
  block-size:    100%;
  background:    var(--wp--preset--color--gold-500);
  border-radius: 9999px;
  inline-size:   var(--progress, 0%);
  display:       block;
}
@media (prefers-reduced-motion: no-preference) {
  [data-id="b1ca1c5"] .lz-toc__progress-fill,
  .lz-toc-sidebar .lz-toc__progress-fill {
    transition: inline-size var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out);
  }
}

/* --------------------------------------------------------------- *
 * 7. Post-foot (Category, Tags, Share)
 * --------------------------------------------------------------- */
.elementor .lz-post-foot > .e-con-inner,
.lz-post-foot > .e-con-inner,
.elementor [data-id="7a86e24"] > .e-con-inner,
[data-id="7a86e24"] > .e-con-inner {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--wp--preset--spacing--4);
  padding-block:         var(--wp--preset--spacing--8);
  margin-block-start:    var(--wp--preset--spacing--8);
  border-block-start:    1px solid var(--wp--custom--color--semantic--border--subtle);
  --display:             grid;
}
@media (min-width: 768px) {
  .elementor .lz-post-foot > .e-con-inner,
  .lz-post-foot > .e-con-inner,
  .elementor [data-id="7a86e24"] > .e-con-inner,
  [data-id="7a86e24"] > .e-con-inner {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--wp--preset--spacing--6);
  }
}
.lz-post-foot .elementor-widget-post-info,
[data-id="7a86e24"] .elementor-widget-post-info,
.lz-post-foot__taxonomies {
  display:     inline-flex;
  align-items: center;
  gap:         var(--wp--preset--spacing--2);
  flex-wrap:   wrap;
}
.lz-post-foot .elementor-widget-post-info ul,
[data-id="7a86e24"] .elementor-widget-post-info ul,
.lz-post-foot__taxonomies ul {
  display:     inline-flex;
  align-items: center;
  gap:         var(--wp--preset--spacing--2);
  margin:      0;
  padding:     0;
  list-style:  none;
  flex-wrap:   wrap;
}
.lz-post-foot .elementor-post-info__item-prefix,
[data-id="7a86e24"] .elementor-post-info__item-prefix,
.lz-post-foot__label {
  font-family:       var(--wp--preset--font-family--sans);
  font-size:         var(--wp--preset--font-size--150);
  font-weight:       600;
  text-transform:    uppercase;
  letter-spacing:    0.08em;
  color:             var(--wp--custom--color--semantic--text--muted);
  margin-inline-end: var(--wp--preset--spacing--2);
}
[data-id="4112925"] .elementor-icon-list-text::before {
  content:           "Tags ";
  color:             var(--wp--custom--color--semantic--text--muted);
  font-weight:       600;
  text-transform:    uppercase;
  letter-spacing:    0.08em;
  margin-inline-end: var(--wp--preset--spacing--2);
}
/* Tag-pill specificity boost: beat Elementor's default term-list-item color. */
.elementor .lz-post-foot .elementor-post-info__terms-list-item,
.lz-post-foot .elementor-post-info__terms-list-item,
.elementor [data-id="7a86e24"] .elementor-post-info__terms-list-item,
[data-id="7a86e24"] .elementor-post-info__terms-list-item,
.lz-post-foot .lz-tag-pill {
  display:         inline-flex;
  align-items:     center;
  padding:         0.375rem 0.875rem; /* card-pattern off-scale, CI-005 */
  border:          1px solid var(--wp--preset--color--gold-900);
  border-radius:   9999px;
  background:      var(--wp--preset--color--gold-100);
  background-color:var(--wp--preset--color--gold-100);
  color:           var(--wp--preset--color--blue-700);
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--75);
  font-weight:     600;
  text-transform:  uppercase;
  letter-spacing:  0.06em;
  line-height:     1.1;
  text-decoration: none;
  transition:      background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                   color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.elementor .lz-post-foot .elementor-post-info__terms-list-item:hover,
.elementor .lz-post-foot .elementor-post-info__terms-list-item:focus-visible,
.elementor [data-id="7a86e24"] .elementor-post-info__terms-list-item:hover,
.elementor [data-id="7a86e24"] .elementor-post-info__terms-list-item:focus-visible,
.lz-post-foot .elementor-post-info__terms-list-item:hover,
.lz-post-foot .elementor-post-info__terms-list-item:focus-visible,
[data-id="7a86e24"] .elementor-post-info__terms-list-item:hover,
[data-id="7a86e24"] .elementor-post-info__terms-list-item:focus-visible,
.lz-post-foot .lz-tag-pill:hover,
.lz-post-foot .lz-tag-pill:focus-visible {
  background:       var(--wp--preset--color--gold-500);
  background-color: var(--wp--preset--color--gold-500);
  color:            var(--wp--preset--color--blue-900);
}
.lz-post-foot .elementor-post-info__terms-list-item:focus-visible,
[data-id="7a86e24"] .elementor-post-info__terms-list-item:focus-visible,
.lz-post-foot .lz-tag-pill:focus-visible {
  outline:         2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset:  2px;
}
.lz-post-foot .elementor-widget-share-buttons,
[data-id="7a86e24"] .elementor-widget-share-buttons,
.lz-post-foot__share {
  display:     inline-flex;
  align-items: center;
  gap:         var(--wp--preset--spacing--3);
}
.lz-post-foot .elementor-widget-share-buttons::before,
[data-id="7a86e24"] .elementor-widget-share-buttons::before,
.lz-post-foot__share::before {
  content:        "Share this article";
  font-family:    var(--wp--preset--font-family--sans);
  font-size:      var(--wp--preset--font-size--150);
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color:          var(--wp--custom--color--semantic--text--muted);
}
.lz-post-foot .elementor-share-btn,
[data-id="7a86e24"] .elementor-share-btn,
.lz-post-foot__share .elementor-share-btn {
  inline-size:   var(--wp--preset--spacing--8);
  block-size:    var(--wp--preset--spacing--8);
  border-radius: 9999px;
  background:    var(--wp--preset--color--neutral-0);
  border:        1px solid var(--wp--custom--color--semantic--border--subtle);
  color:         var(--wp--custom--color--semantic--text--primary);
  transition:    background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                 border-color     var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                 color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-post-foot .elementor-share-btn:hover,
[data-id="7a86e24"] .elementor-share-btn:hover,
.lz-post-foot__share .elementor-share-btn:hover {
  background:   var(--wp--preset--color--gold-100);
  border-color: var(--wp--preset--color--gold-500);
  color:        var(--wp--preset--color--blue-900);
}
.lz-post-foot .elementor-share-btn:focus-visible,
[data-id="7a86e24"] .elementor-share-btn:focus-visible,
.lz-post-foot__share .elementor-share-btn:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset: 2px;
}

/* --------------------------------------------------------------- *
 * 8. FAQ accordion (Yoast schema-faq markup)
 *
 * CI-004 consolidation: all FAQ visual rules moved here. The companion
 * faq-accordion.css now carries only the no-JS fallback (display-as-list
 * when JS is unavailable) plus the indicator base geometry and reduced-
 * motion override that the JS enhancement keys off.
 *
 * `:where()` removed from these selectors so the open-state celebratory
 * tinting actually beats the JS enhancement's default state.
 * --------------------------------------------------------------- */
.schema-faq.wp-block-yoast-faq-block {
  display:        flex;
  flex-direction: column;
  gap:            0.875rem; /* card-pattern off-scale, CI-005 */
  margin-block:   var(--wp--preset--spacing--6) var(--wp--preset--spacing--8);
}
.schema-faq .schema-faq-section {
  background:    var(--wp--custom--color--semantic--background--surface);
  border:        1px solid var(--wp--custom--color--semantic--border--subtle);
  border-radius: 0.75rem;
  overflow:      hidden;
  padding:       0;
  transition:    background-color var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out),
                 border-color     var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out);
}
.schema-faq .schema-faq-section.lz-faq-section--open {
  background:   var(--wp--preset--color--gold-100);
  border-color: var(--wp--preset--color--gold-500);
}
.schema-faq .schema-faq-question,
.schema-faq .lz-faq-button {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             var(--wp--preset--spacing--4);
  inline-size:     100%;
  padding:         1rem 1.25rem; /* card-pattern off-scale, CI-005 */
  background:      transparent;
  border:          0;
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--300);
  line-height:     1.4;
  font-weight:     600;
  color:           var(--wp--preset--color--blue-700);
  text-align:      left;
  cursor:          pointer;
}
.schema-faq .schema-faq-question:hover,
.schema-faq .schema-faq-question:focus,
.schema-faq .schema-faq-question:focus-visible,
.schema-faq .schema-faq-question:active,
.schema-faq .schema-faq-question:visited,
.schema-faq .lz-faq-button:hover,
.schema-faq .lz-faq-button:focus,
.schema-faq .lz-faq-button:focus-visible,
.schema-faq .lz-faq-button:active,
.schema-faq .lz-faq-button:visited {
  color: var(--wp--preset--color--blue-700);
}
.schema-faq .schema-faq-section.lz-faq-section--open .schema-faq-question,
.schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-button {
  color: var(--wp--preset--color--blue-700);
}
.schema-faq .lz-faq-button:hover {
  background: rgb(0 0 0 / 0.04);
}
.schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-button:hover {
  background: rgb(0 0 0 / 0.06);
}
.schema-faq .lz-faq-button:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset: -2px;
}
.schema-faq .lz-faq-indicator {
  display:        grid;
  place-items:    center;
  inline-size:    var(--wp--preset--spacing--8);
  block-size:     var(--wp--preset--spacing--8);
  border-radius:  9999px;
  background:     var(--wp--custom--color--semantic--border--subtle);
  color:          var(--wp--preset--color--blue-900);
  flex-shrink:    0;
  transition:     background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-indicator {
  background: var(--wp--preset--color--gold-500);
}
.schema-faq .schema-faq-answer {
  margin:      0;
  padding:     0 1.25rem 1.25rem 1.25rem; /* card-pattern off-scale, CI-005 */
  font-family: var(--wp--preset--font-family--sans);
  font-size:   var(--wp--preset--font-size--250);
  line-height: 1.65;
  color:       var(--wp--custom--color--semantic--text--primary);
}

/* --------------------------------------------------------------- *
 * 9. Keep-reading cards. Outer container is data-id="b0395fc"
 *    (lz-post-keep-reading); inner Posts widget keeps data-id="5fee55c"
 *    pin (no stable class on the widget itself yet).
 * --------------------------------------------------------------- */
[data-id="5fee55c"] .elementor-posts-container {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--wp--preset--spacing--6);
}
@media (min-width: 600px) {
  [data-id="5fee55c"] .elementor-posts-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 960px) {
  [data-id="5fee55c"] .elementor-posts-container {
    grid-template-columns: repeat(3, 1fr);
  }
}
[data-id="5fee55c"] .elementor-post,
.lz-keep-reading-card {
  background:     var(--wp--custom--color--semantic--background--surface);
  border:         1px solid var(--wp--custom--color--semantic--border--subtle);
  border-radius:  0.75rem;
  overflow:       hidden;
  display:        flex;
  flex-direction: column;
  transition:     box-shadow var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out),
                  transform  var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out);
}
[data-id="5fee55c"] .elementor-post:hover,
.lz-keep-reading-card:hover {
  box-shadow: var(--wp--preset--shadow--medium);
  transform:  translateY(-2px);
}
[data-id="5fee55c"] .elementor-post__thumbnail__link,
.lz-keep-reading-card__thumb-link {
  position:     relative;
  display:      block;
  aspect-ratio: 16 / 9;
  overflow:     hidden;
  background:   var(--wp--custom--color--semantic--border--subtle);
}
[data-id="5fee55c"] .elementor-post__thumbnail {
  block-size:  100%;
  inline-size: 100%;
}
[data-id="5fee55c"] .elementor-post__thumbnail img {
  inline-size: 100%;
  block-size:  100%;
  object-fit:  cover;
  transition:  transform var(--wp--custom--motion--duration--slow) var(--wp--custom--motion--easing--emphasized);
}
[data-id="5fee55c"] .elementor-post:hover img {
  transform: scale(1.03);
}
/* CATEGORY OVERLAY: Philip injects markup via posts-widget-category-overlay.php. */
[data-id="5fee55c"] .elementor-post__thumbnail__link .lz-card-category,
.lz-keep-reading-card__thumb-link .lz-card-category,
.elementor-post .lz-card-category {
  position:            absolute;
  inset-block-start:   var(--wp--preset--spacing--3);
  inset-inline-start:  var(--wp--preset--spacing--3);
  z-index:             2;
  background:          var(--wp--preset--color--gold-500);
  color:               var(--wp--preset--color--blue-900);
  font-family:         var(--wp--preset--font-family--sans);
  font-size:           var(--wp--preset--font-size--75);
  font-weight:         700;
  text-transform:      uppercase;
  letter-spacing:      0.1em;
  padding:             0.375rem 0.625rem; /* card-pattern off-scale, CI-005 */
  border-radius:       9999px;
  line-height:         1;
  text-decoration:     none;
  box-shadow:          0 2px 4px rgb(16 45 65 / 0.15);
}
a.lz-card-category:hover {
  background: var(--wp--preset--color--gold-700);
}
[data-id="5fee55c"] .elementor-post__title {
  margin:  0;
  padding: 1.25rem 1.25rem 0; /* card-pattern off-scale, CI-005 */
}
[data-id="5fee55c"] .elementor-post__title a {
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--300);
  font-weight:     700;
  line-height:     1.35;
  color:           var(--wp--custom--color--semantic--text--primary);
  text-decoration: none;
  text-wrap:       balance;
  display:         -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:        hidden;
}
[data-id="5fee55c"] .elementor-post__title a:hover {
  color: var(--wp--preset--color--blue-500);
}
[data-id="5fee55c"] .elementor-post__title a .title-highlight {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:  italic;
  font-weight: 800;
  color:       var(--wp--preset--color--gold-900);
}
[data-id="5fee55c"] .elementor-post__excerpt { padding: var(--wp--preset--spacing--2) 1.25rem 0; /* card-pattern off-scale, CI-005 */ }
[data-id="5fee55c"] .elementor-post__excerpt p {
  margin:      0;
  font-family: var(--wp--preset--font-family--sans);
  font-size:   var(--wp--preset--font-size--100);
  line-height: 1.55;
  color:       var(--wp--custom--color--semantic--text--secondary);
  display:     -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:    hidden;
}
[data-id="5fee55c"] .elementor-post__excerpt .title-highlight {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:  italic;
  font-weight: 600;
  color:       var(--wp--preset--color--gold-900);
}
[data-id="5fee55c"] .elementor-post__meta-data {
  display:            inline-flex;
  align-items:        center;
  gap:                var(--wp--preset--spacing--2);
  flex-wrap:          wrap;
  margin-block-start: auto;
  padding:            var(--wp--preset--spacing--4) 1.25rem 1.25rem; /* card-pattern off-scale, CI-005 */
  font-family:        var(--wp--preset--font-family--sans);
  font-size:          var(--wp--preset--font-size--150);
  color:              var(--wp--custom--color--semantic--text--muted);
}
[data-id="5fee55c"] .elementor-post__meta-data > * + *::before {
  content:           "\00B7";
  margin-inline-end: var(--wp--preset--spacing--2);
  color:             var(--wp--custom--color--semantic--text--muted);
}

/* --------------------------------------------------------------- *
 * /blog/ landing: Hello Elementor reset link-color override.
 *
 * Hello Elementor's reset.css contains `a { color: #CC3366 }` (unlayered).
 * The theme.json-generated rule uses `:where(:not(.wp-element-button))`,
 * which is zero-specificity and loses. The Posts page template renders
 * post titles as `<h2 class="entry-title"><a>`. We add an unlayered rule
 * with brand colors and enough specificity to beat the reset (0,2,1 vs
 * the reset's 0,0,1).
 *
 * Scoped under `body.blog` and `body.archive` to avoid leaking into
 * Elementor-driven pages. Hex fallbacks inside var() are intentional
 * (CI-008): they reproduce the exact preset value as a safety net for
 * the case where the theme.json-generated stylesheet does not load.
 * --------------------------------------------------------------- */
body.blog .entry-title a,
body.blog article.post .entry-title a,
body.archive .entry-title a,
body.archive article.post .entry-title a,
body.blog .post-title a,
body.archive .post-title a,
body.blog .elementor-posts-container .elementor-post__title a,
body.archive .elementor-posts-container .elementor-post__title a {
  color:           var(--wp--preset--color--blue-700, #205A83);
  text-decoration: none;
  transition:      color var(--wp--custom--motion--duration--fast, 150ms) var(--wp--custom--motion--easing--out, ease-out);
}
body.blog .entry-title a:hover,
body.blog article.post .entry-title a:hover,
body.archive .entry-title a:hover,
body.archive article.post .entry-title a:hover,
body.blog .post-title a:hover,
body.archive .post-title a:hover,
body.blog .elementor-posts-container .elementor-post__title a:hover,
body.archive .elementor-posts-container .elementor-post__title a:hover {
  color:           var(--wp--preset--color--gold-900, #7F6A2F);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
body.blog .entry-title a:focus-visible,
body.archive .entry-title a:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus, #205A83);
  outline-offset: 2px;
  border-radius:  2px;
}
/* Title-highlight inside post-title links on /blog/. Preserves the italic gold-900 highlight. */
body.blog .entry-title a .title-highlight,
body.archive .entry-title a .title-highlight {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:  italic;
  font-weight: 800;
  color:       var(--wp--preset--color--gold-900, #7F6A2F);
}
/* Excerpt highlight inside the /blog/ archive post snippets. */
body.blog article.post .title-highlight,
body.archive article.post .title-highlight {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-style:  italic;
  font-weight: 600;
  color:       var(--wp--preset--color--gold-900, #7F6A2F);
}

/* --------------------------------------------------------------- *
 * NEW-001 (Jonathan QA, 2026-05-12): single-post body content
 * links render pink (#CC3366) due to Hello Elementor reset.css.
 * The prior /blog/ fix above scoped only to body.blog/body.archive
 * and missed body.single, leaving inline body links unstyled.
 * Selectors target the post-content widget inside our stable
 * grid container, plus a defensive .entry-content fallback.
 * --------------------------------------------------------------- */
body.single .lz-reading-content .elementor-widget-theme-post-content a,
body.single .lz-reading-content .elementor-widget-text-editor a,
body.single article.post .entry-content a,
body.single .elementor-widget-theme-post-content a:not(.elementor-button):not(.button) {
  color:           var(--wp--preset--color--blue-700, #205A83);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
  transition:      color var(--wp--custom--motion--duration--fast, 150ms) var(--wp--custom--motion--easing--out, ease-out);
}
body.single .lz-reading-content .elementor-widget-theme-post-content a:hover,
body.single .lz-reading-content .elementor-widget-text-editor a:hover,
body.single article.post .entry-content a:hover,
body.single .elementor-widget-theme-post-content a:hover:not(.elementor-button):not(.button) {
  color:                     var(--wp--preset--color--gold-900, #7F6A2F);
  text-decoration-thickness: 2px;
}
body.single .lz-reading-content .elementor-widget-theme-post-content a:focus-visible,
body.single .lz-reading-content .elementor-widget-text-editor a:focus-visible,
body.single article.post .entry-content a:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus, #205A83);
  outline-offset: 2px;
  border-radius:  2px;
}

/* --------------------------------------------------------------- *
 * Reduced motion umbrella: kill all decorative animation
 * --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  [data-id="5fee55c"] .elementor-post,
  [data-id="5fee55c"] .elementor-post__thumbnail img,
  [data-id="5fee55c"] .elementor-post:hover img,
  [data-id="b1ca1c5"] .lz-toc__progress-fill,
  .lz-keep-reading-card,
  .lz-keep-reading-card__thumb img,
  .lz-toc-sidebar .lz-toc__progress-fill,
  .schema-faq .schema-faq-section,
  .schema-faq .lz-faq-indicator {
    transition: none;
    transform:  none;
  }
  [data-id="5fee55c"] .elementor-post:hover {
    transform: none;
  }
}

/* ============================================================== *
 * USER FEEDBACK 2026-05-12 - single-post template fixes
 * Tasks: meta-line redesign, category pill, icon chips, copy-link
 * button, TOC collapse-off on desktop + integrated progress + tighter
 * spacing, FAQ accordion redesign, footer stacked rows, H1 alignment.
 * ============================================================== */

/* ---- Meta row: align H1 + intro container width to meta row -------- */
.lz-post-title-block,
.lz-post-excerpt-block,
.lz-post-mini-author {
  max-inline-size: 1000px;
  inline-size:     100%;
  margin-inline:   auto;
}
.lz-post-title-block .e-con-inner,
[data-id="cc7206c"] .e-con-inner,
.lz-post-excerpt-block .e-con-inner,
[data-id="b8bb444"] .e-con-inner,
.lz-post-mini-author .e-con-inner,
[data-id="61357c3"] .e-con-inner {
  max-inline-size: none;
}

/* ---- Meta-row pill (category), chips (reading-time, reads), buttons - */
.lz-meta-row .lz-meta-pill,
[data-id="d21ca75"] .lz-meta-pill,
.lz-meta-pill {
  display:         inline-flex;
  align-items:     center;
  padding:         0.375rem 0.875rem;
  background:      var(--wp--preset--color--gold-100);
  color:           var(--wp--preset--color--blue-700);
  border:          1px solid var(--wp--preset--color--gold-900);
  border-radius:   9999px;
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--75);
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  0.08em;
  line-height:     1;
  text-decoration: none;
  transition:      background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                   color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-meta-pill:hover,
.lz-meta-pill:focus-visible {
  background: var(--wp--preset--color--gold-500);
  color:      var(--wp--preset--color--blue-900);
}
.lz-meta-pill:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset: 2px;
}

.lz-meta-chip {
  display:         inline-flex;
  align-items:     center;
  gap:             0.375rem;
  font-family:     var(--wp--preset--font-family--sans);
  font-size:       var(--wp--preset--font-size--150);
  font-weight:     500;
  color:           var(--wp--custom--color--semantic--text--secondary);
  text-transform:  none;
  letter-spacing:  0;
}
.lz-meta-chip .lz-icon {
  flex-shrink:    0;
  color:          var(--wp--custom--color--semantic--text--muted);
}
.lz-meta-chip__text {
  white-space: nowrap;
}

/* Suppress the inter-element separator dot BEFORE the leading category pill */
.lz-meta-row > .elementor-element:first-child::before,
[data-id="d21ca75"] > .elementor-element:first-child::before {
  content: none !important;
}

/* The meta-row spans-as-shortcodes wrap in .elementor-widget-shortcode.
 * Style any child of those widgets so the chip flows inline. */
.lz-meta-row .elementor-widget-shortcode > div,
[data-id="d21ca75"] .elementor-widget-shortcode > div {
  display:     inline-flex;
  align-items: center;
}

/* ---- Share buttons: redesign as circular outlined buttons ---------- */
/* Pro's "minimal" share-buttons skin colors the icons but doesn't supply
 * a button container. Override to a consistent circular outlined button
 * for both the meta-row and the foot. */
.lz-meta-row .elementor-share-btn,
[data-id="d21ca75"] .elementor-share-btn,
.lz-post-foot .elementor-share-btn,
[data-id="7a86e24"] .elementor-share-btn {
  display:        inline-grid;
  place-items:    center;
  inline-size:    2.25rem;
  block-size:     2.25rem;
  border-radius:  9999px;
  background:     var(--wp--preset--color--neutral-0);
  border:         1px solid var(--wp--custom--color--semantic--border--subtle);
  color:          var(--wp--preset--color--blue-700);
  transition:     background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                  border-color     var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                  color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-meta-row .elementor-share-btn:hover,
[data-id="d21ca75"] .elementor-share-btn:hover,
.lz-post-foot .elementor-share-btn:hover,
[data-id="7a86e24"] .elementor-share-btn:hover,
.lz-meta-row .elementor-share-btn:focus-visible,
[data-id="d21ca75"] .elementor-share-btn:focus-visible,
.lz-post-foot .elementor-share-btn:focus-visible,
[data-id="7a86e24"] .elementor-share-btn:focus-visible {
  background:   var(--wp--preset--color--gold-100);
  border-color: var(--wp--preset--color--gold-500);
  color:        var(--wp--preset--color--blue-900);
}
.lz-meta-row .elementor-share-btn:focus-visible,
[data-id="d21ca75"] .elementor-share-btn:focus-visible,
.lz-post-foot .elementor-share-btn:focus-visible,
[data-id="7a86e24"] .elementor-share-btn:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset: 2px;
}
.lz-meta-row .elementor-share-btn__icon,
[data-id="d21ca75"] .elementor-share-btn__icon,
.lz-post-foot .elementor-share-btn__icon,
[data-id="7a86e24"] .elementor-share-btn__icon {
  background: transparent !important;
  color:      currentColor !important;
}
.lz-meta-row .elementor-share-btn__icon svg,
[data-id="d21ca75"] .elementor-share-btn__icon svg,
.lz-post-foot .elementor-share-btn__icon svg,
[data-id="7a86e24"] .elementor-share-btn__icon svg {
  inline-size: 0.95rem;
  block-size:  0.95rem;
  fill:        currentColor;
}

/* Copy-link button (matches share-btn) */
.lz-copy-link.lz-share-btn,
.lz-copy-link {
  display:         inline-grid;
  place-items:     center;
  inline-size:     2.25rem;
  block-size:      2.25rem;
  border-radius:   9999px;
  background:      var(--wp--preset--color--neutral-0);
  border:          1px solid var(--wp--custom--color--semantic--border--subtle);
  color:           var(--wp--preset--color--blue-700);
  cursor:          pointer;
  padding:         0;
  transition:      background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                   border-color     var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                   color            var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.lz-copy-link:hover,
.lz-copy-link:focus-visible {
  background:   var(--wp--preset--color--gold-100);
  border-color: var(--wp--preset--color--gold-500);
  color:        var(--wp--preset--color--blue-900);
}
.lz-copy-link:focus-visible {
  outline:        2px solid var(--wp--custom--color--semantic--border--focus);
  outline-offset: 2px;
}
.lz-copy-link.is-copied {
  background:   var(--wp--preset--color--gold-500);
  border-color: var(--wp--preset--color--gold-700);
  color:        var(--wp--preset--color--blue-900);
}
.lz-copy-link .lz-icon {
  inline-size: 0.95rem;
  block-size:  0.95rem;
}
.lz-copy-link .screen-reader-text {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Copy-link inside the meta row should align with share-buttons spacing */
.lz-meta-row .elementor-widget:has(> div > .lz-copy-link),
[data-id="d21ca75"] .elementor-widget:has(> div > .lz-copy-link) {
  margin-inline-start: var(--wp--preset--spacing--2);
}

/* ---- TOC: hide collapse toggle on desktop, integrate progress card -- */
@media (min-width: 1024px) {
  .lz-toc-sidebar #ez-toc-container .ez-toc-title-toggle,
  [data-id="2eade75"] #ez-toc-container .ez-toc-title-toggle {
    display: none !important;
  }
}

/* TOC row spacing tightened */
.lz-toc-sidebar #ez-toc-container nav > ul,
[data-id="2eade75"] #ez-toc-container nav > ul {
  gap: 0 !important;
}
.lz-toc-sidebar #ez-toc-container nav a.ez-toc-link,
[data-id="2eade75"] #ez-toc-container nav a.ez-toc-link {
  padding: 0.4375rem 0.75rem !important;
}

/* Move reading-progress visually INSIDE the TOC card */
.lz-toc-sidebar,
[data-id="2eade75"] {
  /* turn off the gap between the two stacked widgets */
  gap: 0 !important;
}
.lz-toc-sidebar > [data-id="b1ca1c5"],
[data-id="2eade75"] > [data-id="b1ca1c5"] {
  margin-block-start: -1px; /* sit flush against TOC card bottom */
}
[data-id="b1ca1c5"] .lz-toc__progress,
.lz-toc-sidebar .lz-toc__progress {
  background:          var(--wp--custom--color--semantic--background--surface);
  border:              1px solid var(--wp--custom--color--semantic--border--subtle);
  border-block-start:  none;       /* no separator line; share TOC card edge */
  border-start-start-radius: 0;
  border-start-end-radius:   0;
  border-end-start-radius:   0.75rem;
  border-end-end-radius:     0.75rem;
  padding:             1rem 1.25rem 1.125rem;
  margin-block-start:  0;
}
.lz-toc-sidebar #ez-toc-container,
[data-id="2eade75"] #ez-toc-container {
  border-end-start-radius: 0 !important;
  border-end-end-radius:   0 !important;
  border-block-end:        none;
}

/* ---- FAQ accordion: redesign indicator to a clean +/x circle ------- */
.schema-faq .lz-faq-indicator {
  inline-size:    2rem;
  block-size:     2rem;
  background:     var(--wp--preset--color--gold-100);
  border:         1px solid var(--wp--preset--color--gold-500);
  color:          var(--wp--preset--color--blue-900);
}
.schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-indicator {
  background:   var(--wp--preset--color--gold-500);
  border-color: var(--wp--preset--color--gold-700);
  color:        var(--wp--preset--color--blue-900);
  transform:    rotate(45deg);
  transition:   transform var(--wp--custom--motion--duration--default) var(--wp--custom--motion--easing--out),
                background-color var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
.schema-faq .lz-faq-indicator::before,
.schema-faq .lz-faq-indicator::after {
  block-size: 2px;
  inline-size: 0.875rem;
}
.schema-faq .lz-faq-indicator::before {
  /* horizontal bar */
  inline-size: 0.875rem;
  block-size:  2px;
  inset-inline: auto;
  inset-block: auto;
  left: 50%;
  top:  50%;
  transform: translate(-50%, -50%);
}
.schema-faq .lz-faq-indicator::after {
  /* vertical bar (forms + when closed; becomes x when wrapper rotates 45deg) */
  inline-size: 2px;
  block-size:  0.875rem;
  inset-inline: auto;
  inset-block: auto;
  left: 50%;
  top:  50%;
  transform: translate(-50%, -50%);
}
.schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-indicator::after {
  /* indicator wrapper rotates 45deg above -> both bars rotate together,
   * producing an x. We DO NOT scale the vertical bar away anymore. */
  transform: translate(-50%, -50%) !important;
}
@media (prefers-reduced-motion: reduce) {
  .schema-faq .schema-faq-section.lz-faq-section--open .lz-faq-indicator {
    transition: none;
  }
}

/* ---- Footer: stack tags row and share row -------------------------- */
.elementor .lz-post-foot > .e-con-inner,
.lz-post-foot > .e-con-inner,
.elementor [data-id="7a86e24"] > .e-con-inner,
[data-id="7a86e24"] > .e-con-inner {
  grid-template-columns: 1fr !important; /* full-width single column at every viewport */
  gap:                   var(--wp--preset--spacing--6) !important;
}
@media (min-width: 768px) {
  .elementor .lz-post-foot > .e-con-inner,
  .lz-post-foot > .e-con-inner,
  .elementor [data-id="7a86e24"] > .e-con-inner,
  [data-id="7a86e24"] > .e-con-inner {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }
}
/* TAGS prefix label (CSS line 605 already adds "Tags ") - keep */
/* SHARE prefix label - keep existing "Share this article" */
.lz-post-foot .elementor-widget-share-buttons,
[data-id="7a86e24"] .elementor-widget-share-buttons,
.lz-post-foot__share {
  flex-wrap: wrap;
}

/* Hide the old "Category" prefix label since the widget was removed */
/* (already handled by removing the foot category widget in the patch) */

/* ---- Keep-reading: reorder body to title -> excerpt -> meta+arrow,
 *      hide category overlay (per user 2026-05-13 spec), bump card aspect
 *      to 4/3, lift on hover, arrow icon right-aligned in meta.
 * ------------------------------------------------------------------ */

/* Hide the category pill overlay inside keep-reading specifically. */
[data-id="5fee55c"] .elementor-post .lz-card-category {
  display: none !important;
}

/* 4/3 image area (was 16/9) to match reference; cream/bone fallback bg. */
[data-id="5fee55c"] .elementor-post__thumbnail__link {
  aspect-ratio: 4 / 3;
  background:
    repeating-linear-gradient(135deg, rgba(16,45,65,0.04) 0 12px, transparent 12px 24px),
    linear-gradient(180deg, #EAE4D5, #d8cfb9);
}

/* Reorder the card body: title (1) -> excerpt (2) -> meta (3) with arrow. */
[data-id="5fee55c"] .elementor-post {
  border-radius: 1rem;
}
[data-id="5fee55c"] .elementor-post__text {
  display:        flex;
  flex-direction: column;
  flex:           1;
}
[data-id="5fee55c"] .elementor-post__title {
  order:   1;
  padding: 1.25rem 1.375rem 0 1.375rem;
}
[data-id="5fee55c"] .elementor-post__title a {
  font-family: "Inter Tight", var(--wp--preset--font-family--sans);
  font-size:   1.1875rem; /* 19px - reference spec */
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  -webkit-line-clamp: 2;
}
[data-id="5fee55c"] .elementor-post__excerpt {
  order:   2;
  padding: 0.625rem 1.375rem 0 1.375rem;
}
[data-id="5fee55c"] .elementor-post__excerpt p {
  font-size:   0.875rem;
  color:       var(--wp--custom--color--semantic--text--secondary);
  -webkit-line-clamp: 2;
}
[data-id="5fee55c"] .elementor-post__meta-data {
  order:           3;
  padding:         1.25rem 1.375rem 1.375rem 1.375rem;
  padding-block-start: 0.875rem;
  border-block-start:  1px solid var(--wp--custom--color--semantic--border--subtle);
  margin-block-start:  1rem;
  font-size:       0.8125rem;
  color:           var(--wp--custom--color--semantic--text--muted);
  display:         flex;
  align-items:     center;
  gap:             0.5rem;
}
/* Trailing arrow stays right-aligned. */
[data-id="5fee55c"] .lz-card-arrow {
  margin-inline-start: auto;
  display:             inline-flex;
  color:               var(--wp--custom--color--semantic--text--muted);
  transition:          transform var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out),
                       color     var(--wp--custom--motion--duration--fast) var(--wp--custom--motion--easing--out);
}
[data-id="5fee55c"] .elementor-post:hover .lz-card-arrow {
  transform: translate(4px, -4px);
  color:     var(--wp--preset--color--gold-900);
}
/* The injected reading-time chip and the existing date span both render with
 * class `.elementor-post-date`. Drop the inherited `·` ::before on the new
 * arrow span only - the existing CSS already puts `·` between meta items. */
[data-id="5fee55c"] .elementor-post__meta-data > .lz-card-arrow::before {
  content: none !important;
}

/* Stronger hover lift to match reference design (-4px). */
[data-id="5fee55c"] .elementor-post:hover {
  transform:  translateY(-4px);
  box-shadow: 0 16px 32px -16px rgba(16,45,65,0.18);
}

/* ============================================================== *
 * End of 2026-05-12 user-feedback section
 * ============================================================== */
