/* Peacemaking Framework V1. Typography remains entirely theme-controlled. */
.pmfr-toc { width:100%; overflow:hidden; }
.pmfr-toc .pmfr-list { list-style:none; margin:0; padding:0; }
.pmfr-toc .pmfr-list li { margin:0; padding:0; list-style:none; }
.pmfr-toc .pmfr-slider { display:flex; width:200%; align-items:flex-start; transform:translateX(0); transition:transform .32s cubic-bezier(.22,.61,.36,1); }
.pmfr-toc .pmfr-slider.pmfr-show-detail { transform:translateX(-50%); }
.pmfr-toc .pmfr-main-panel,.pmfr-toc .pmfr-detail-stage { flex:0 0 50%; width:50%; min-width:0; }
.pmfr-toc .pmfr-detail-stage { position:relative; }
.pmfr-toc .pmfr-detail-panel { display:none; }
.pmfr-toc .pmfr-detail-panel.is-open { display:block; }
.pmfr-toc .pmfr-chapter-button { box-sizing:border-box; display:flex; align-items:center; width:100%; min-height:41px; padding:7px 10px 7px 0; color:#fff; border:0; border-radius:3px; background:transparent; text-align:left; cursor:pointer; text-decoration:none; line-height:1.45; transition:background-color .18s ease; }
.pmfr-toc .pmfr-chapter-button:hover,.pmfr-toc .pmfr-chapter-button:focus-visible,.pmfr-toc .pmfr-main-item.is-current > .pmfr-chapter-button { background:rgba(255,255,255,.20); color:#fff; }
.pmfr-toc .pmfr-colour-bar { width:4px; flex:0 0 4px; height:23px; border-radius:4px; margin:0 10px 0 1px; background:var(--pmfr-accent,#A7E0FA); }
.pmfr-toc .pmfr-chapter-label { flex:1; min-width:0; }
.pmfr-toc .pmfr-chevron { width:9px; height:9px; flex:0 0 9px; margin-right:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); }
.pmfr-toc .pmfr-detail-panel { color:#fff; }
.pmfr-toc .pmfr-back { width:100%; text-align:left; border:0; background:none; color:inherit; cursor:pointer; padding:6px 6px 12px; opacity:.86; }
.pmfr-toc .pmfr-back:hover,.pmfr-toc .pmfr-back:focus-visible { opacity:1; text-decoration:underline; }
.pmfr-toc .pmfr-panel-title { color:inherit; font:inherit; font-weight:700; margin:0 0 12px; border-bottom:1px solid rgba(255,255,255,.3); padding:0 5px 12px; }
.pmfr-toc .pmfr-detail-list > .pmfr-subitem { border-bottom:1px solid rgba(255,255,255,.18); }
.pmfr-toc .pmfr-sublink { display:block; color:#fff; text-decoration:none; padding:10px 12px; border-radius:3px; line-height:1.45; transition:background-color .18s ease; }
.pmfr-toc .pmfr-sublink:hover,.pmfr-toc .pmfr-sublink:focus-visible,.pmfr-toc .pmfr-sublink.is-active { background:rgba(255,255,255,.18); color:#fff; }
.pmfr-toc .pmfr-sublink.is-active { box-shadow:inset 4px 0 var(--pmfr-accent,#A7E0FA); }
.pmfr-toc .pmfr-sublist { margin-left:14px; padding-left:0; }
.pmfr-toc .pmfr-sublist .pmfr-sublink { padding:7px 12px; }
@media(prefers-reduced-motion:reduce){.pmfr-toc .pmfr-slider,.pmfr-toc .pmfr-chapter-button,.pmfr-toc .pmfr-sublink {transition:none!important;}}
.pmfr-reader { width: 100%; min-height: 140px; }
/* Network loading never dims the old chapter; only the ready content animates. */
.pmfr-reader[aria-busy="true"] { opacity: 1; }
.pmfr-reader.pmfr-entering > .pmfr-chapter { animation: pmfr-reveal .18s ease-out both; }
@keyframes pmfr-reveal { from { opacity: 0; } to { opacity: 1; } }

.pmfr-message { color: #8b2525; font-size: .9rem; }
@media (prefers-reduced-motion: reduce) { .pmfr-toc .pmfr-accordion, .pmfr-toc .pmfr-chevron { transition: none !important; } .pmfr-toc .pmfr-link, .pmfr-reader { transition: none; } .pmfr-reader.pmfr-entering > .pmfr-chapter { animation: none; } }

/* Allow the existing equal-height WPBakery columns to stretch with the reader row.
   JavaScript computes a viewport-based minimum height using the real footer size. */
.pmfr-reader-row { align-items: stretch; }



/* V1.0.3: nested in-chapter heading navigation. No font-family or body sizing overrides. */
.pmfr-toc .pmfr-heading-list { list-style:none; margin:0 0 8px 17px; padding:0 0 0 10px; border-left:1px solid rgba(255,255,255,.22); }
.pmfr-toc .pmfr-heading-link { display:block; padding:6px 9px; border-radius:3px; color:rgba(255,255,255,.82); text-decoration:none; line-height:1.4; transition:background-color .18s ease; }
.pmfr-toc .pmfr-heading-link:hover,.pmfr-toc .pmfr-heading-link:focus-visible,.pmfr-toc .pmfr-heading-link.is-active { background:rgba(255,255,255,.16); color:#fff; }
.pmfr-toc .pmfr-heading-link.is-active { box-shadow:inset 3px 0 var(--pmfr-accent,#A7E0FA); }
.pmfr-reader .pmfr-heading-anchor { display:block; position:relative; height:0; overflow:hidden; }
@media (prefers-reduced-motion:reduce) { .pmfr-toc .pmfr-heading-link {transition:none;} }

/* V1.0.6: A chapter bar is a navigation control, not an active reading item.
   Reset WordPress/WoodMart button typography to the inherited theme style.
   Active reading state remains exclusive to the actual content link. */
.pmfr-toc .pmfr-main-panel .pmfr-chapter-button {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  text-transform: none;
  letter-spacing: inherit;
}
.pmfr-toc .pmfr-main-panel .pmfr-main-item.is-current > .pmfr-chapter-button {
  background: transparent;
}
.pmfr-toc .pmfr-main-panel .pmfr-main-item.is-current > .pmfr-chapter-button:hover,
.pmfr-toc .pmfr-main-panel .pmfr-main-item.is-current > .pmfr-chapter-button:focus-visible {
  background: rgba(255,255,255,.20);
}
/* Panel titles identify their chapter, but are not selected content links. */
.pmfr-toc .pmfr-panel-title { font-weight: inherit; text-transform: none; }

/* V1.0.7 — unified accent markers and consistent menu-item spacing.
   Colours derive from --pmfr-accent, already set on the chapter detail panel.
   No font or theme sizing is overridden. */
.pmfr-toc .pmfr-detail-panel .pmfr-detail-list > .pmfr-subitem {
  border-bottom: 0;
  margin: 0 0 3px;
}
.pmfr-toc .pmfr-detail-panel .pmfr-sublink,
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link {
  position: relative;
  box-sizing: border-box;
  margin-bottom: 3px;
  padding-left: 22px;
  box-shadow: none !important;
}
.pmfr-toc .pmfr-detail-panel .pmfr-sublink::before,
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 2px;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  border-radius: 4px;
  background: var(--pmfr-accent, #A7E0FA);
}
.pmfr-toc .pmfr-detail-panel .pmfr-heading-list {
  border-left: 0;
  margin: 2px 0 8px 14px;
  padding: 0 0 0 10px;
}
.pmfr-toc .pmfr-detail-panel .pmfr-heading-item { margin: 0 0 3px; }
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link {
  padding-top: 7px;
  padding-bottom: 7px;
}
.pmfr-toc .pmfr-detail-panel .pmfr-sublist { margin-top: 3px; }

/* V1.0.8 — active-only navigation indicator.
   Preserve the same 4px x 23px rounded chapter bar used on main-menu rows.
   No theme font, colour, or image sizing overrides. */
.pmfr-toc .pmfr-detail-panel .pmfr-sublink::before,
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link::before {
  content: none;
}
.pmfr-toc .pmfr-detail-panel .pmfr-sublink.is-active::before,
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link.is-active::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 1px;
  transform: translateY(-50%);
  width: 4px;
  height: 23px;
  border-radius: 4px;
  background: var(--pmfr-accent,#A7E0FA);
}
/* Keep a consistent text start for active and inactive submenu entries. */
.pmfr-toc .pmfr-detail-panel .pmfr-sublink,
.pmfr-toc .pmfr-detail-panel .pmfr-heading-link {
  padding-left: 22px;
}
/* WPBakery/WoodMart may style buttons and anchors differently.
   Apply a shared content grid so the chevron doesn't move chapter labels. */
.pmfr-toc .pmfr-main-panel .pmfr-chapter-button {
  display: grid;
  grid-template-columns: 4px minmax(0,1fr) 9px;
  column-gap: 10px;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 7px 10px 7px 1px;
  min-height: 41px;
  text-align: left;
}
.pmfr-toc .pmfr-main-panel .pmfr-colour-bar {
  grid-column: 1;
  width: 4px;
  margin: 0;
}
.pmfr-toc .pmfr-main-panel .pmfr-chapter-label {
  grid-column: 2;
  min-width: 0;
  margin: 0;
  padding: 0;
}
.pmfr-toc .pmfr-main-panel .pmfr-chevron {
  grid-column: 3;
  justify-self: center;
  margin: 0;
}

/* V1.0.9: make return navigation easy to identify without competing with TOC.
   Colours and typography remain inherited from WoodMart / sidebar. */
.pmfr-toc .pmfr-detail-panel .pmfr-back {
  display: flex;
  align-items: center;
  gap: 9px;
  box-sizing: border-box;
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  margin: 0 0 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 3px;
  background: rgba(255,255,255,.09);
  color: inherit;
  opacity: 1;
  text-align: left;
  text-decoration: none;
  text-transform: none;
  font: inherit;
  font-weight: 600;
  transition: background-color .2s ease, border-color .2s ease;
}
.pmfr-toc .pmfr-detail-panel .pmfr-back:hover,
.pmfr-toc .pmfr-detail-panel .pmfr-back:focus-visible {
  background: rgba(255,255,255,.19);
  border-color: rgba(255,255,255,.50);
  text-decoration: none;
}
.pmfr-toc .pmfr-detail-panel .pmfr-back-arrow {
  display: inline-block;
  font-size: 1.3em;
  line-height: 1;
}
@media(prefers-reduced-motion:reduce){
  .pmfr-toc .pmfr-detail-panel .pmfr-back { transition: none; }
}

/* V2.0.6 — contextual headings. This only controls TOC visibility;
   WoodMart/WPBakery continue to own chapter presentation. */
/* Height animates independently of WoodMart/WPBakery typography. */
.pmfr-toc .pmfr-detail-panel .pmfr-has-headings > .pmfr-heading-list {
  display: block;
  overflow: hidden;
  height: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  margin-top: 0;
  margin-bottom: 0;
}
.pmfr-toc.pmfr-headings-ready .pmfr-detail-panel .pmfr-has-headings > .pmfr-heading-list {
  transition: height .28s cubic-bezier(.22,.61,.36,1), opacity .2s ease, visibility 0s linear .28s,
    margin-top .28s ease, margin-bottom .28s ease;
}
.pmfr-toc .pmfr-detail-panel .pmfr-has-headings.pmfr-headings-expanded > .pmfr-heading-list {
  height: var(--pmfr-heading-height, 0px);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  margin-top: 2px;
  margin-bottom: 8px;
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  .pmfr-toc.pmfr-headings-ready .pmfr-detail-panel .pmfr-has-headings > .pmfr-heading-list { transition: none; }
}
.pmfr-toc .pmfr-detail-panel .pmfr-has-headings > .pmfr-sublink {
  padding-right: 29px;
}
.pmfr-toc .pmfr-detail-panel .pmfr-has-headings > .pmfr-sublink::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-65%) rotate(45deg);
  transition: transform .18s ease;
  opacity: .8;
}
.pmfr-toc .pmfr-detail-panel .pmfr-has-headings.pmfr-headings-expanded > .pmfr-sublink::after {
  transform: translateY(-30%) rotate(225deg);
}
@media (prefers-reduced-motion: reduce) {
  .pmfr-toc .pmfr-detail-panel .pmfr-has-headings > .pmfr-sublink::after { transition: none; }
}

/* V2.0.8 — quieter return control and clearer submenu hierarchy.
   These rules affect navigation only; all reader content retains theme styling. */
.pmfr-toc .pmfr-detail-panel .pmfr-panel-title {
  font-weight: 700;
}
.pmfr-toc .pmfr-detail-panel .pmfr-back {
  display: inline-flex;
  width: auto;
  min-height: 0;
  margin: 0 0 10px;
  padding: 5px 7px;
  gap: 7px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: inherit;
  font-weight: 500;
  opacity: .78;
  text-decoration: none;
  transition: background-color .2s ease, opacity .2s ease;
}
.pmfr-toc .pmfr-detail-panel .pmfr-back:hover,
.pmfr-toc .pmfr-detail-panel .pmfr-back:focus-visible {
  background: rgba(255,255,255,.08);
  opacity: 1;
  border-color: transparent;
  text-decoration: none;
}
.pmfr-toc .pmfr-detail-panel .pmfr-back-arrow {
  font-size: 1em;
}
@media (prefers-reduced-motion: reduce) {
  .pmfr-toc .pmfr-detail-panel .pmfr-back { transition: none; }
}

/* V2.0.9 — sequential reading navigation; no changes to WoodMart content styles. */
.pmfr-footer[hidden], .pmfr-footer-link[hidden] { display: none !important; }
.pmfr-footer { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; border-top:1px solid rgba(2,44,75,.17); margin-top:44px; padding-top:24px; padding-bottom:28px; }
.pmfr-footer-link { display:flex; align-items:center; gap:12px; padding:16px; min-width:0; border:1px solid rgba(2,44,75,.17); border-radius:7px; background:transparent; color:var(--wd-text-color,#022c4b); text-decoration:none; transition:border-color .2s ease, background-color .2s ease; }
.pmfr-footer-link:hover,.pmfr-footer-link:focus-visible { background:rgba(2,44,75,.045); border-color:currentColor; text-decoration:none; color:var(--wd-text-color,#022c4b); }
.pmfr-footer-next { grid-column:2; justify-content:flex-end; text-align:right; }
.pmfr-footer-copy { display:flex; flex-direction:column; gap:4px; min-width:0; }
.pmfr-footer-kicker { font-size:11px; letter-spacing:.09em; font-weight:600; opacity:.65; line-height:1.4; }
.pmfr-footer-title { font-size:clamp(15px,1.05vw,18px); font-weight:600; line-height:1.35; overflow-wrap:anywhere; }
.pmfr-footer-direction { flex:none; font-size:19px; opacity:.72; }
@media (max-width:600px) { .pmfr-footer { gap:8px; margin-top:28px; padding-top:16px; } .pmfr-footer-link { padding:11px 9px; gap:6px; } .pmfr-footer-title { font-size:14px; } }
@media (prefers-reduced-motion:reduce) { .pmfr-footer-link { transition:none; } }
