:root {
  --ap-navy: #0f2747;
  --ap-navy-2: #17365d;
  --ap-text: #111827;
  --ap-muted: #5d6675;
  --ap-line: #e4e8ee;
  --ap-soft: #f7f8fa;
  --ap-pink: #b85c72;
  --ap-pink-soft: #f9e9ed;
  --ap-blue-soft: #edf5ff;
  --ap-radius: 12px;
  --ap-shadow: 0 8px 28px rgba(15, 39, 71, .06);
}

body.apf-character-page {
  background: #fff;
}

body.apf-character-page #main-container,
body.apf-character-page .site-main {
  background: #fff;
}

.apf-single-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-single-wrap {
  width: min(1360px, calc(100% - 44px));
  margin: 0 auto;
  padding: 20px 0 48px;
}

.apf-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-size: 13.5px;
  font-weight: 650;
  letter-spacing: .02em;
  color: #6a7280;
}
.apf-breadcrumb a { color: var(--ap-navy); text-decoration: none; }
.apf-breadcrumb a:hover { color: var(--ap-pink); }

.apf-character-hero {
  display: grid;
  grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);
  gap: clamp(28px, 3.4vw, 50px);
  align-items: start;
}

.apf-main-image {
  display: block;
  width: 100%;
  max-width: 380px;
  height: auto;
  max-height: 510px;
  object-fit: cover;
  border-radius: 12px;
  background: var(--ap-soft);
}
.apf-origin-caption {
  max-width: 540px;
  margin: 12px 2px 0;
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.55;
}
.apf-media-missing {
  min-height: 280px;
  display: grid;
  place-items: center;
  border: 1px dashed #cfd6df;
  border-radius: 12px;
  background: var(--ap-soft);
  color: var(--ap-muted);
}

.apf-character-info {
  padding-top: 2px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 300px);
  grid-template-areas:
    "labels preview-head"
    "title video"
    "type video"
    "meta video"
    "buy video"
    "checkout notice";
  column-gap: clamp(24px, 3vw, 42px);
  align-items: start;
}
.apf-character-info > .apf-label-row { grid-area: labels; }
.apf-character-info > .apf-character-id { grid-area: title; }
.apf-character-info > .apf-character-type { grid-area: type; }
.apf-character-info > .apf-meta-strip { grid-area: meta; }
.apf-character-info > .apf-preview-heading { grid-area: preview-head; }
.apf-character-info > .apf-video-shell { grid-area: video; }
.apf-character-info > .apf-preview-notice { grid-area: notice; }
.apf-character-info > .apf-buy-row { grid-area: buy; }
.apf-character-info > .apf-checkout-note { grid-area: checkout; }
.apf-label-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.apf-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 5px;
  background: var(--ap-pink-soft);
  color: #9b4158;
  font-size: 13.5px;
  line-height: 1;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.apf-character-id {
  margin: 0;
  color: #0b1220;
  font-size: clamp(38px, 4vw, 54px);
  line-height: 1;
  letter-spacing: -.035em;
  font-weight: 780;
}
.apf-character-type {
  margin: 6px 0 12px;
  font-size: clamp(17px, 1.7vw, 22px);
  line-height: 1.25;
  color: #1d2430;
}
.apf-meta-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0 0 18px;
  padding: 10px 0;
  border-top: 1px solid var(--ap-line);
  border-bottom: 1px solid var(--ap-line);
  color: var(--ap-muted);
  font-size: 14.5px;
}
.apf-meta-strip strong { color: var(--ap-navy); margin-right: 4px; }

.apf-preview-heading h2 {
  margin: 0 0 5px;
  color: #1a1d24;
  font-size: 16px;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.apf-preview-heading p { margin: 0 0 10px; color: var(--ap-muted); font-size: 13.5px; line-height: 1.4; }

.apf-video-shell {
  width: min(100%, 300px);
  justify-self: center;
  overflow: hidden;
  border-radius: 11px;
  background: #090b0f;
  box-shadow: 0 0 0 1px rgba(15, 39, 71, .08);
}

.apf-preview-video {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  max-height: 470px;
  background: #090b0f;
  object-fit: contain;
}

.apf-preview-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #e7c8d0;
  border-radius: 8px;
  background: #fff8fa;
  color: #3e3740;
  font-size: 13px;
  line-height: 1.4;
}
.apf-svg-icon { display: inline-grid; place-items: center; flex: 0 0 auto; }
.apf-svg-icon svg, .apf-package-icon svg, .apf-check svg, .apf-sample-files svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-preview-notice .apf-svg-icon { color: var(--ap-pink); }

.apf-buy-row {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr);
  align-items: center;
  gap: 18px;
  margin-top: 10px;
}
.apf-price {
  color: #090d13;
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1;
  font-weight: 760;
  letter-spacing: -.035em;
}
.apf-buy-button, .apf-secondary-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 7px;
  background: var(--ap-navy);
  color: #fff !important;
  text-decoration: none !important;
  text-transform: uppercase;
  font-size: 15.5px;
  font-weight: 750;
  letter-spacing: .025em;
  transition: transform .15s ease, background .15s ease;
}
.apf-buy-button:hover, .apf-secondary-button:hover { background: var(--ap-navy-2); transform: translateY(-1px); }
.apf-buy-button-disabled { opacity: .48; cursor: not-allowed; }
.apf-checkout-note { margin: 6px 0 0; text-align: left; color: var(--ap-muted); font-size: 13px; }

.apf-package-section {
  margin-top: 30px;
  padding: clamp(20px, 2.3vw, 28px);
  border: 1px solid var(--ap-line);
  border-radius: var(--ap-radius);
  background: linear-gradient(110deg, #fff 0%, #fbf7f4 100%);
  box-shadow: var(--ap-shadow);
}
.apf-section-heading { margin-bottom: 18px; }
.apf-eyebrow, .apf-card-kicker {
  display: inline-block;
  margin: 0 0 7px;
  padding: 4px 7px;
  border-radius: 4px;
  background: var(--ap-blue-soft);
  color: #1d62a5;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.apf-section-heading h2, .apf-bottom-grid h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: 21px;
  line-height: 1.2;
}
.apf-package-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.apf-package-item {
  min-width: 0;
  padding: 6px 18px;
  text-align: center;
  border-right: 1px solid var(--ap-line);
}
.apf-package-item:first-child { padding-left: 0; }
.apf-package-item:last-child { border-right: 0; padding-right: 0; }
.apf-package-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 7px;
  color: var(--ap-navy);
}
.apf-package-icon svg { width: 34px; height: 34px; }
.apf-package-item h3 { margin: 0 0 6px; color: #171b22; font-size: 15.5px; }
.apf-package-item p { margin: 0; color: var(--ap-muted); font-size: 13px; line-height: 1.45; }
.apf-package-footnote { margin: 16px 0 0; text-align: center; color: var(--ap-muted); font-size: 13.5px; }
.apf-package-footnote a { color: var(--ap-navy); }

.apf-bottom-grid {
  display: grid;
  grid-template-columns: 1.55fr .85fr;
  gap: 22px;
  margin-top: 24px;
}
.apf-sample-card, .apf-important-card {
  border: 1px solid var(--ap-line);
  border-radius: var(--ap-radius);
  padding: clamp(24px, 3vw, 36px);
  box-shadow: var(--ap-shadow);
}
.apf-sample-card { background: linear-gradient(115deg, #f3f8ff 0%, #fff 68%); }
.apf-important-card { background: linear-gradient(145deg, #fff 0%, #fff4f6 100%); }
.apf-card-kicker-pink { color: #a34f63; background: var(--ap-pink-soft); }
.apf-sample-card > p { max-width: 650px; color: var(--ap-muted); line-height: 1.6; }
.apf-sample-files {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 24px;
}
.apf-sample-files span {
  min-height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--ap-line);
  border-radius: 7px;
  background: rgba(255,255,255,.85);
  color: var(--ap-navy);
  text-align: center;
}
.apf-sample-files svg { width: 32px; height: 32px; }
.apf-sample-files small { color: var(--ap-muted); font-size: 13px; }
.apf-secondary-button { min-width: 245px; padding: 0 20px; }
.apf-small-note { margin: 10px 0 0 !important; font-size: 13px; }

.apf-important-card ul { list-style: none; margin: 20px 0 0; padding: 0; }
.apf-important-card li { display: flex; gap: 10px; margin: 0 0 14px; color: #343943; font-size: 14.5px; line-height: 1.5; }
.apf-check { color: var(--ap-pink); flex: 0 0 auto; }
.apf-check svg { width: 18px; height: 18px; }

.apf-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 24px;
  padding: 20px 0;
  border-top: 1px solid var(--ap-line);
  border-bottom: 1px solid var(--ap-line);
}
.apf-trust-strip > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  grid-template-rows: auto auto;
  column-gap: 10px;
  padding: 0 22px;
  border-right: 1px solid var(--ap-line);
}
.apf-trust-strip > div:first-child { padding-left: 0; }
.apf-trust-strip > div:last-child { border-right: 0; padding-right: 0; }
.apf-trust-strip .apf-svg-icon { grid-row: 1 / 3; color: var(--ap-navy); align-self: center; }
.apf-trust-strip strong { color: #1b2028; font-size: 13px; letter-spacing: .03em; text-transform: uppercase; }
.apf-trust-strip small { color: var(--ap-muted); font-size: 13px; line-height: 1.35; }

@media (max-width: 980px) {
  .apf-single-wrap { width: min(100% - 34px, 920px); padding-top: 24px; }
  .apf-character-hero { grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); gap: 26px; }
  .apf-character-portrait { max-width: 330px; }
  .apf-character-info {
    padding-top: 0;
    grid-template-columns: 1fr minmax(210px, 260px);
    column-gap: 20px;
  }
  .apf-preview-video { max-height: 420px; }
  .apf-package-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 0; }
  .apf-package-item:nth-child(2) { border-right: 0; }
  .apf-package-item:nth-child(3), .apf-package-item:nth-child(4) { border-top: 1px solid var(--ap-line); padding-top: 24px; }
  .apf-bottom-grid { grid-template-columns: 1fr; }
  .apf-trust-strip { grid-template-columns: repeat(2, 1fr); gap: 18px 0; }
  .apf-trust-strip > div:nth-child(2) { border-right: 0; }
  .apf-trust-strip > div:nth-child(3), .apf-trust-strip > div:nth-child(4) { border-top: 1px solid var(--ap-line); padding-top: 18px; }
}


@media (max-width: 760px) {
  .apf-character-hero { grid-template-columns: 1fr; gap: 22px; }
  .apf-character-portrait { max-width: 340px; margin: 0 auto; }
  .apf-main-image { max-width: 340px; max-height: 455px; margin: 0 auto; }
  .apf-origin-caption { max-width: 340px; margin-left: auto; margin-right: auto; }
  .apf-character-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 250px);
    grid-template-areas:
      "labels preview-head"
      "title video"
      "type video"
      "meta video"
      "buy video"
      "checkout notice";
    column-gap: 18px;
  }
  .apf-video-shell { width: min(100%, 250px); }
  .apf-preview-video { max-height: 400px; }
}

@media (max-width: 620px) {
  .apf-single-wrap { width: calc(100% - 28px); padding: 18px 0 44px; }
  .apf-breadcrumb { margin-bottom: 20px; font-size: 13px; }
  .apf-main-image { border-radius: 9px; }
  .apf-character-info {
    display: block;
  }
  .apf-video-shell { width: min(76vw, 300px); margin: 0 auto; }
  .apf-preview-video { aspect-ratio: 9 / 16; max-height: none; }
  .apf-preview-heading { margin-top: 18px; text-align: center; }
  .apf-preview-notice { max-width: 360px; margin-left: auto; margin-right: auto; }
  .apf-character-id { font-size: 38px; }
  .apf-character-type { font-size: 19px; }
  .apf-buy-row { grid-template-columns: 1fr; gap: 14px; }
  .apf-price { font-size: 44px; }
  .apf-checkout-note { text-align: left; }
  .apf-package-section { margin-top: 34px; padding: 22px 16px; }
  .apf-package-grid { grid-template-columns: 1fr; }
  .apf-package-item,
  .apf-package-item:first-child,
  .apf-package-item:last-child {
    padding: 22px 8px;
    border-right: 0;
    border-top: 1px solid var(--ap-line);
  }
  .apf-package-item:first-child { border-top: 0; padding-top: 4px; }
  .apf-sample-card, .apf-important-card { padding: 22px 18px; }
  .apf-sample-files { grid-template-columns: repeat(2, 1fr); }
  .apf-secondary-button { width: 100%; min-width: 0; }
  .apf-trust-strip { grid-template-columns: 1fr; }
  .apf-trust-strip > div,
  .apf-trust-strip > div:first-child,
  .apf-trust-strip > div:last-child {
    padding: 16px 0;
    border-right: 0;
    border-top: 1px solid var(--ap-line);
  }
  .apf-trust-strip > div:first-child { border-top: 0; }
}

/* v0.1.2 — compact media-first hero, original portrait aspect ratio, external video controls */
.apf-character-hero {
  grid-template-columns: minmax(520px, 760px) minmax(300px, 1fr);
  gap: clamp(28px, 3vw, 44px);
  align-items: start;
}

.apf-media-pair {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(220px, .86fr);
  gap: 18px;
  align-items: start;
}

.apf-character-portrait,
.apf-character-video-column {
  min-width: 0;
}

.apf-character-portrait {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.apf-main-image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
  object-position: center;
  border-radius: 10px;
  background: var(--ap-soft);
}

.apf-origin-caption {
  width: 100%;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.45;
}

.apf-character-video-column .apf-preview-heading {
  margin-bottom: 8px;
}

.apf-character-info {
  display: block;
  padding-top: 2px;
}

.apf-video-shell {
  width: min(100%, 300px);
  max-width: 300px;
  margin: 0 auto;
  overflow: visible;
  border-radius: 10px;
  background: transparent;
  box-shadow: 0 0 0 1px rgba(15, 39, 71, .08);
}

.apf-preview-video {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  height: auto;
  max-height: 470px;
  object-fit: contain;
  background: #090b0f;
  border-radius: 10px 10px 0 0;
}

.apf-video-controls {
  display: grid;
  grid-template-columns: auto auto minmax(70px, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid var(--ap-line);
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: #fff;
  color: var(--ap-navy);
}

.apf-video-button {
  appearance: none;
  border: 0;
  padding: 2px 4px;
  min-width: 26px;
  min-height: 26px;
  display: inline-grid;
  place-items: center;
  background: transparent;
  color: var(--ap-navy);
  font: inherit;
  line-height: 1;
  cursor: pointer;
}

.apf-video-button:hover,
.apf-video-button:focus-visible {
  color: var(--ap-pink);
  outline: none;
}

.apf-video-time {
  white-space: nowrap;
  color: var(--ap-muted);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.apf-video-seek {
  width: 100%;
  margin: 0;
  accent-color: var(--ap-navy);
  cursor: pointer;
}

.apf-package-icon svg,
.apf-sample-files svg {
  width: 36px;
  height: 36px;
  stroke-width: 1.65;
}

@media (max-width: 1060px) {
  .apf-character-hero {
    grid-template-columns: 1fr;
  }
  .apf-media-pair {
    width: min(100%, 700px);
    margin: 0 auto;
  }
  .apf-character-info {
    width: min(100%, 700px);
    margin: 0 auto;
  }
}

@media (max-width: 620px) {
  .apf-media-pair {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    align-items: start;
  }
  .apf-main-image {
    width: 100%;
    max-height: none;
  }
  .apf-video-shell {
    width: 100%;
    max-width: none;
  }
  .apf-preview-video {
    max-height: none;
  }
  .apf-character-video-column .apf-preview-heading h2 {
    font-size: 13.5px;
  }
  .apf-character-video-column .apf-preview-heading p,
  .apf-origin-caption {
    font-size: 11px;
  }
  .apf-video-controls {
    grid-template-columns: auto 1fr auto;
    gap: 4px;
    padding: 5px 6px;
  }
  .apf-video-time {
    display: none;
  }
  .apf-video-fullscreen {
    display: none;
  }
}

/* v0.1.4 — restrained desktop hero summary */
.apf-hero-summary {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--ap-line);
}

.apf-hero-summary-title {
  margin: 0 0 7px;
  color: var(--ap-navy);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.apf-hero-summary-line {
  margin: 0;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.65;
}

.apf-hero-summary-line span {
  margin: 0 5px;
  color: #aab2bd;
}

@media (max-width: 1060px) {
  .apf-hero-summary {
    display: none;
  }
}

/* v0.1.7 — use the preview video's native ratio; remove artificial side bars.
   All preview videos share the same source dimensions, so no max-height clamp is needed. */
.apf-preview-video {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  background: transparent;
}

/* v0.1.8 — rebalance Preview Frame and 3-second preview proportions.
   Keep the video at its native ratio, but make the video column narrower so
   its visual height aligns more closely with the Preview Frame. */
.apf-character-video-column {
  width: 100%;
  max-width: 255px;
  justify-self: center;
}

.apf-character-video-column .apf-preview-heading {
  width: 100%;
}

.apf-video-shell {
  width: 100%;
  max-width: 255px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 620px) {
  .apf-character-video-column {
    max-width: none;
  }

  .apf-video-shell {
    max-width: none;
  }
}

/* v0.1.9 — approved right-column order for Aoyama Persona Character page.
   Notice -> Package at a Glance -> Price/Purchase button. */
.apf-hero-summary {
  margin-top: 16px;
  padding: 18px 0;
  border-top: 1px solid var(--ap-line);
  border-bottom: 1px solid var(--ap-line);
}

.apf-hero-summary-title {
  margin: 0 0 10px;
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.apf-hero-summary-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.apf-hero-summary-item {
  margin: 0;
  color: #445066;
  font-size: 13px;
  line-height: 1.45;
}

.apf-hero-summary-line,
.apf-hero-summary-line span {
  display: none;
}

.apf-buy-row {
  margin-top: 18px;
}

.apf-checkout-note {
  margin-top: 8px;
}

/* v0.2.0 — compact hero tuning for Aoyama Persona Character pages.
   Goals:
   - reduce vertical length to minimize scrolling
   - visually balance left Preview Frame, center video, and right purchase area
   - keep the approved right-column content order
*/
.apf-character-hero {
  gap: clamp(18px, 2.6vw, 34px);
  align-items: stretch;
}

.apf-media-pair {
  grid-template-columns: minmax(200px, 1fr) minmax(170px, .76fr);
  gap: 14px;
}

.apf-character-portrait {
  max-width: 300px;
}

.apf-main-image {
  max-height: 430px;
  border-radius: 10px;
}

.apf-origin-caption {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.35;
}

.apf-character-video-column {
  width: 100%;
  max-width: 225px;
  justify-self: center;
}

.apf-character-video-column .apf-preview-heading {
  margin-bottom: 6px;
}

.apf-preview-heading h2 {
  margin: 0 0 4px;
  font-size: 13.5px;
  line-height: 1.2;
}

.apf-preview-heading p {
  font-size: 12px;
  line-height: 1.35;
}

.apf-video-shell {
  width: 100%;
  max-width: 225px;
}

.apf-preview-video {
  border-radius: 10px 10px 0 0;
}

.apf-video-controls {
  min-height: 36px;
  gap: 6px;
  padding: 5px 6px;
}

.apf-video-time {
  font-size: 12px;
}

.apf-video-button {
  width: 24px;
  height: 24px;
  font-size: 14.5px;
}

.apf-character-info {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding-top: 0;
}

.apf-label-row {
  margin-bottom: 8px;
}

.apf-pill {
  min-height: 24px;
  padding: 3px 9px;
  font-size: 13px;
}

.apf-character-id {
  font-size: clamp(34px, 3.5vw, 46px);
}

.apf-character-type {
  margin: 4px 0 10px;
  font-size: clamp(16px, 1.45vw, 20px);
}

.apf-meta-strip {
  gap: 6px 14px;
  margin: 0 0 12px;
  padding: 8px 0;
  font-size: 13.5px;
}

.apf-preview-notice {
  padding: 10px 12px;
  font-size: 13px;
}

.apf-hero-summary {
  margin-top: 12px;
  padding: 12px 0 14px;
}

.apf-hero-summary-title {
  margin-bottom: 8px;
  font-size: 12px;
}

.apf-hero-summary-list {
  gap: 6px;
}

.apf-hero-summary-item {
  font-size: 12px;
  line-height: 1.3;
}

.apf-buy-row {
  margin-top: auto;
  padding-top: 14px;
}

.apf-price {
  font-size: clamp(36px, 3.4vw, 52px);
  line-height: 1;
}

.apf-buy-button,
.apf-buy-button-disabled {
  min-height: 56px;
  font-size: 15.5px;
}

.apf-checkout-note {
  margin-top: 6px;
  font-size: 13px;
}

.apf-package-section {
  margin-top: 22px;
}

.apf-section-heading {
  margin-bottom: 18px;
}

.apf-package-grid {
  gap: 20px 0;
}

.apf-package-item {
  padding: 0 18px;
}

.apf-package-item h3 {
  margin: 10px 0 6px;
  font-size: 16px;
}

.apf-package-item p,
.apf-package-footnote {
  font-size: 13.5px;
}

.apf-bottom-grid {
  gap: 18px;
}

.apf-sample-card,
.apf-important-card,
.apf-package-section,
.apf-trust-strip {
  border-radius: 12px;
}

@media (max-width: 760px) {
  .apf-character-hero {
    gap: 20px;
  }

  .apf-media-pair {
    gap: 12px;
  }

  .apf-character-info {
    display: block;
    min-height: 0;
  }

  .apf-buy-row {
    margin-top: 16px;
    padding-top: 0;
  }
}

/* v0.2.1 — Home page structural template.
   Deliberately restrained: structure first, detailed visual tuning later. */
body.apf-home-page {
  background: #fff;
}

.apf-home-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-home-wrap {
  width: min(1180px, calc(100% - 44px));
  margin: 0 auto;
  padding: 34px 0 56px;
}

.apf-home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 44px;
  align-items: end;
  padding: 54px 0 50px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-home-eyebrow,
.apf-home-kicker {
  margin: 0 0 10px;
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.apf-home-kicker-pink {
  color: var(--ap-pink);
}

.apf-home-hero h1 {
  max-width: 760px;
  margin: 0;
  color: #0b1220;
  font-size: clamp(42px, 5vw, 68px);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.apf-home-lead {
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--ap-muted);
  font-size: 18px;
  line-height: 1.6;
}

.apf-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

.apf-home-primary,
.apf-home-secondary {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border-radius: 7px;
  text-decoration: none !important;
  font-size: 14.5px;
  font-weight: 750;
}

.apf-home-primary {
  background: var(--ap-navy);
  color: #fff !important;
}

.apf-home-secondary {
  border: 1px solid var(--ap-line);
  background: #fff;
  color: var(--ap-navy) !important;
}

.apf-home-hero-note {
  padding: 22px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: var(--ap-soft);
}

.apf-home-hero-note strong,
.apf-home-hero-note span {
  display: block;
}

.apf-home-hero-note strong {
  color: var(--ap-navy);
  font-size: 26px;
  line-height: 1.1;
}

.apf-home-hero-note span {
  margin-top: 8px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

.apf-home-hero-note span + span {
  padding-top: 9px;
  margin-top: 9px;
  border-top: 1px solid var(--ap-line);
}

.apf-home-hero-note b {
  display: block;
  margin-bottom: 2px;
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.35;
}

.apf-home-hero-note .apf-home-hero-note-secondary {
  margin-top: 13px;
  padding-top: 12px;
}

.apf-home-section {
  padding: 46px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-home-section-head {
  max-width: 720px;
  margin-bottom: 22px;
}

.apf-home-section-heading-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0 0 10px;
}

.apf-home-heading-badge {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: #f4f7fc;
  border: 1px solid var(--ap-line);
  box-shadow: 0 1px 0 rgba(10, 28, 61, 0.02);
}

.apf-home-heading-badge img {
  width: 32px;
  height: 32px;
  display: block;
  object-fit: contain;
}

.apf-home-section-heading-row h2 {
  margin: 0;
  align-self: center;
}

.apf-home-section h2,
.apf-home-split h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: clamp(25px, 2.6vw, 34px);
  line-height: 1.15;
}

.apf-home-section-head > p:last-child,
.apf-home-split p,
.apf-home-links span {
  color: var(--ap-muted);
  line-height: 1.55;
}

.apf-home-category-grid,
.apf-home-package-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.apf-home-category {
  min-height: 138px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
  color: inherit !important;
  text-decoration: none !important;
}

.apf-home-category span {
  color: var(--ap-pink);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.apf-home-category strong {
  margin-top: 5px;
  color: var(--ap-navy);
  font-size: 18px;
}

.apf-home-category small {
  margin-top: 14px;
  color: var(--ap-muted);
}

.apf-home-package-grid > div {
  padding: 20px 18px;
  border-right: 1px solid var(--ap-line);
}

.apf-home-package-grid > div:first-child {
  padding-left: 0;
}

.apf-home-package-grid > div:last-child {
  border-right: 0;
  padding-right: 0;
}

.apf-home-package-grid strong,
.apf-home-package-grid span {
  display: block;
}

.apf-home-package-grid strong {
  color: var(--ap-navy);
  font-size: 15.5px;
}

.apf-home-package-grid span {
  margin-top: 8px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

.apf-home-split {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
  padding: 46px 0 22px;
}

.apf-home-sample-card,
.apf-home-trust-card {
  min-height: 300px;
  padding: 30px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
}

.apf-home-sample-card {
  background: linear-gradient(115deg, #f3f8ff 0%, #fff 68%);
}

.apf-home-trust-card {
  background: linear-gradient(145deg, #fff 0%, #fff4f6 100%);
}

.apf-home-sample-card .apf-home-primary {
  margin-top: 18px;
}

.apf-home-trust-card ul {
  margin: 20px 0 0;
  padding-left: 20px;
  color: #343943;
  font-size: 14.5px;
  line-height: 1.65;
}

.apf-home-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 22px;
  padding: 28px 0 0;
}

.apf-home-links > div {
  min-width: 0;
}

.apf-home-links strong,
.apf-home-links span {
  display: block;
}

.apf-home-links strong {
  color: var(--ap-navy);
  font-size: 14.5px;
}

.apf-home-links span {
  margin: 8px 0 10px;
  font-size: 13.5px;
}

.apf-home-links a {
  color: var(--ap-navy);
  font-size: 13.5px;
  font-weight: 700;
}

@media (max-width: 900px) {
  .apf-home-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .apf-home-hero,
  .apf-home-split {
    grid-template-columns: 1fr;
  }

  .apf-home-category-grid,
  .apf-home-package-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .apf-home-package-grid > div {
    border-right: 0;
    border-top: 1px solid var(--ap-line);
    padding: 18px 0;
  }

  .apf-home-package-grid > div:first-child,
  .apf-home-package-grid > div:last-child {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 620px) {
  .apf-home-wrap {
    width: calc(100% - 28px);
    padding-top: 18px;
  }

  .apf-home-hero {
    padding: 32px 0 36px;
    gap: 24px;
  }

  .apf-home-hero h1 {
    font-size: 40px;
  }

  .apf-home-category-grid,
  .apf-home-package-grid,
  .apf-home-links {
    grid-template-columns: 1fr;
  }

  .apf-home-section,
  .apf-home-split {
    padding: 34px 0;
  }
}

/* v0.2.2 — Home structure adapted from the original Gumroad product copy.
   Structure first; detailed visual tuning remains deferred. */

.apf-home-kicker-plain {
  margin-top: 22px;
}

.apf-home-hero-why {
  max-width: 720px;
}

.apf-home-hero-why p {
  margin: 10px 0 0;
  color: #445066;
  font-size: 15.5px;
  line-height: 1.58;
}

.apf-home-hero-sub {
  max-width: 720px;
  margin: 10px 0 0;
  color: #445066;
  font-size: 15.5px;
  line-height: 1.55;
}

.apf-home-face-section .apf-home-section-head {
  max-width: 820px;
}

.apf-home-proof-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.apf-home-proof-grid > div {
  padding: 18px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
}

.apf-home-proof-grid strong,
.apf-home-proof-grid span {
  display: block;
}

.apf-home-proof-grid strong {
  color: var(--ap-navy);
  font-size: 15.5px;
}

.apf-home-proof-grid span {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

.apf-home-dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  padding: 46px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-home-dual-card {
  padding: 28px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}

.apf-home-dual-card h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.2;
}

.apf-home-dual-card p,
.apf-home-dual-card ol {
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.65;
}

.apf-home-dual-card ol {
  margin: 16px 0 0;
  padding-left: 20px;
}

.apf-home-package-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.apf-home-package-note {
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--ap-line);
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .apf-home-proof-grid,
  .apf-home-package-grid-three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .apf-home-dual {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .apf-home-proof-grid,
  .apf-home-package-grid-three {
    grid-template-columns: 1fr;
  }

  .apf-home-dual {
    padding: 34px 0;
  }

  .apf-home-dual-card {
    padding: 22px 18px;
  }
}

/* v0.2.3 — Browse page structural layout. Fine design tuning is intentionally deferred. */
body.apf-browse-page {
  background: #fff;
}

.apf-browse-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-browse-wrap {
  width: min(1440px, calc(100% - 44px));
  margin: 0 auto;
  padding: 20px 0 48px;
}

.apf-browse-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  padding: 8px 0 22px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-browse-header h1 {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.1;
}

.apf-browse-header p {
  max-width: 760px;
  margin: 0;
  color: var(--ap-muted);
  font-size: 15.5px;
  line-height: 1.6;
}

.apf-browse-count {
  min-width: 150px;
  text-align: right;
}

.apf-browse-count strong,
.apf-browse-count span {
  display: block;
}

.apf-browse-count strong {
  color: var(--ap-navy);
  font-size: 28px;
  line-height: 1;
}

.apf-browse-count span {
  margin-top: 4px;
  color: var(--ap-muted);
  font-size: 13px;
}

.apf-browse-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(130px, .7fr)) auto auto;
  gap: 10px;
  align-items: end;
  padding: 18px 0;
}

.apf-browse-filters label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.apf-browse-filters input,
.apf-browse-filters select {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d7dde5;
  border-radius: 7px;
  background: #fff;
  padding: 8px 10px;
  color: var(--ap-text);
  font: inherit;
  font-size: 13.5px;
  text-transform: none;
}

.apf-browse-apply,
.apf-browse-reset {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.apf-browse-apply {
  border: 1px solid var(--ap-navy);
  background: var(--ap-navy);
  color: #fff;
  cursor: pointer;
}

.apf-browse-reset {
  border: 1px solid var(--ap-line);
  color: var(--ap-navy);
  background: #fff;
}

.apf-browse-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.apf-browse-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 18px rgba(15,39,71,.04);
}

.apf-browse-media {
  display: grid;
  grid-template-columns: 1fr .72fr;
  min-height: 210px;
  background: var(--ap-soft);
}

.apf-browse-still,
.apf-browse-motion {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.apf-browse-still {
  border-right: 1px solid var(--ap-line);
}

.apf-browse-still img,
.apf-browse-video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
  background: #eef1f5;
}

.apf-browse-video {
  object-fit: contain;
  background: #111827;
}

.apf-browse-card-body {
  padding: 12px;
}

.apf-browse-card-body h2 {
  margin: 0 0 7px;
  font-size: 17px;
  line-height: 1.2;
}

.apf-browse-card-body h2 a {
  color: var(--ap-navy);
  text-decoration: none;
}

.apf-browse-age {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 3px 7px;
  border-radius: 4px;
  background: var(--ap-pink-soft);
  color: #9b4158;
  font-size: 11px;
  font-weight: 800;
}

.apf-browse-card-body p {
  margin: 0 0 11px;
  color: var(--ap-muted);
  font-size: 13px;
}

.apf-browse-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.apf-browse-details,
.apf-browse-buy {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.apf-browse-details {
  border: 1px solid var(--ap-line);
  color: var(--ap-navy);
}

.apf-browse-buy {
  background: var(--ap-navy);
  color: #fff;
}

.apf-browse-buy.is-disabled {
  opacity: .45;
}

.apf-browse-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-top: 26px;
}

.apf-browse-pagination .page-numbers {
  min-width: 36px;
  min-height: 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--ap-line);
  border-radius: 6px;
  color: var(--ap-navy);
  text-decoration: none;
  font-size: 13px;
  font-weight: 750;
}

.apf-browse-pagination .current {
  border-color: var(--ap-navy);
  background: var(--ap-navy);
  color: #fff;
}

.apf-browse-empty {
  padding: 60px 20px;
  text-align: center;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: var(--ap-soft);
}

@media (max-width: 1180px) {
  .apf-browse-filters {
    grid-template-columns: repeat(3, 1fr);
  }

  .apf-browse-search {
    grid-column: span 2;
  }

  .apf-browse-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .apf-browse-wrap {
    width: min(100% - 30px, 760px);
  }

  .apf-browse-header {
    align-items: start;
    flex-direction: column;
  }

  .apf-browse-count {
    text-align: left;
  }

  .apf-browse-filters {
    grid-template-columns: repeat(2, 1fr);
  }

  .apf-browse-search {
    grid-column: 1 / -1;
  }

  .apf-browse-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .apf-browse-filters,
  .apf-browse-grid {
    grid-template-columns: 1fr;
  }

  .apf-browse-search {
    grid-column: auto;
  }
}

/* v0.2.4 — Libraries page structure. Visual refinement intentionally deferred. */
.apf-libraries-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-libraries-wrap {
  width: min(1180px, calc(100% - 44px));
  margin: 0 auto;
  padding: 20px 0 56px;
}

.apf-libraries-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 34px;
  align-items: end;
  padding: 18px 0 30px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-libraries-header h1 {
  margin: 0 0 10px;
  color: var(--ap-navy);
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.08;
}

.apf-libraries-header > div > p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--ap-muted);
  font-size: 15.5px;
  line-height: 1.6;
}

.apf-libraries-summary {
  text-align: right;
}

.apf-libraries-summary strong,
.apf-libraries-summary span,
.apf-libraries-summary small {
  display: block;
}

.apf-libraries-summary strong {
  color: var(--ap-navy);
  font-size: 38px;
  line-height: 1;
}

.apf-libraries-summary span {
  margin-top: 4px;
  color: var(--ap-text);
  font-size: 13.5px;
  font-weight: 750;
}

.apf-libraries-summary small {
  margin-top: 8px;
  color: var(--ap-muted);
  font-size: 12px;
  line-height: 1.4;
}

.apf-library-group {
  padding: 34px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-library-group-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.apf-library-group-label {
  margin: 0 0 4px;
  color: var(--ap-pink);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.apf-library-group h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: 26px;
  line-height: 1.15;
}

.apf-library-group-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ap-muted);
  font-size: 13px;
}

.apf-library-group-meta a {
  color: var(--ap-navy);
  font-weight: 750;
  text-decoration: none;
}

.apf-library-volume-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.apf-library-volume-card {
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
  color: inherit !important;
  text-decoration: none !important;
}

.apf-library-volume-preview {
  position: relative;
  display: grid;
  grid-template-columns: 1.55fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 2px;
  aspect-ratio: 1 / 1.01;
  overflow: hidden;
  background: var(--ap-soft);
}

.apf-library-volume-preview-item {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #eef1f5;
}

.apf-library-volume-preview-item-1 {
  grid-row: 1 / 3;
}

.apf-library-volume-preview-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.apf-library-volume-count-badge {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: grid;
  place-items: center;
  width: 60px;
  min-height: 50px;
  padding: 5px;
  border-radius: 8px;
  background: rgba(184,92,114,.92);
  color: #fff;
  text-align: center;
  box-shadow: 0 5px 14px rgba(17,24,39,.14);
}

.apf-library-volume-count-badge strong {
  font-size: 20px;
  line-height: 1;
}

.apf-library-volume-count-badge small {
  margin-top: 3px;
  padding: 0;
  color: #fff;
  font-size: 8px;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: .02em;
}

.apf-library-volume-copy {
  display: flex;
  flex-direction: column;
  min-height: 134px;
  padding: 14px 16px 15px;
}

.apf-library-volume-copy .apf-library-volume-number {
  color: var(--ap-pink);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.apf-library-volume-copy > strong {
  margin-top: 9px;
  color: var(--ap-navy);
  font-size: 17px;
  line-height: 1.3;
}

.apf-library-volume-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 12px;
}

/* v0.4.71 — make the single-volume price prominent on Library cards */
.apf-library-volume-meta > span:last-child {
  color: var(--ap-navy);
  font-size: 24px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.02em;
  white-space: nowrap;
}

.apf-library-volume-copy small {
  margin-top: auto;
  padding-top: 18px;
  color: var(--ap-navy);
  font-size: 12px;
  font-weight: 750;
}

.apf-libraries-footer-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 28px;
  padding: 26px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: var(--ap-soft);
}

.apf-libraries-footer-cta h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: 24px;
}

.apf-libraries-footer-cta p:last-child {
  margin: 8px 0 0;
  color: var(--ap-muted);
  font-size: 13.5px;
}

@media (max-width: 900px) {
  .apf-libraries-header {
    grid-template-columns: 1fr;
  }

  .apf-libraries-summary {
    text-align: left;
  }

  .apf-library-volume-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .apf-libraries-wrap {
    width: calc(100% - 28px);
  }

  .apf-library-group-head,
  .apf-libraries-footer-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .apf-library-group-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .apf-library-volume-grid {
    grid-template-columns: 1fr;
  }
}

/* v0.4.119 — Browse uses normal document scrolling on all viewport sizes.
   The result grid is no longer an internal scroll region, so large Character previews
   remain part of the page flow and the site footer is naturally reachable. */
body.apf-browse-page {
  overflow-y: auto;
  overflow-x: hidden;
}

body.apf-browse-page .apf-browse-main {
  height: auto;
  min-height: 0;
  overflow: visible;
}

body.apf-browse-page .apf-browse-wrap {
  display: block;
  height: auto;
  padding: 20px 0 34px;
}

.apf-browse-fixed {
  position: relative;
  z-index: 1;
  background: #fff;
}

.apf-browse-results {
  overflow: visible;
  padding: 0;
  border-top: 1px solid var(--ap-line);
  outline: none;
}

.apf-browse-results .apf-browse-grid {
  padding-top: 18px;
}

.apf-browse-results .apf-browse-pagination {
  margin: 28px 0 0;
}

.apf-browse-end-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--ap-line);
}

.apf-browse-end-back,
.apf-browse-back-top {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  padding: 0 16px;
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

.apf-browse-end-back {
  margin-right: auto;
  border: 1px solid var(--ap-line);
  background: #fff;
  color: var(--ap-navy);
}

.apf-browse-back-top {
  border: 1px solid var(--ap-navy);
  background: var(--ap-navy);
  color: #fff;
}

@media (max-width: 820px) {
  body.apf-browse-page .apf-browse-wrap {
    padding: 20px 0 30px;
  }

  .apf-browse-results {
    border-top: 0;
  }

  .apf-browse-results .apf-browse-grid {
    padding-top: 0;
  }

  .apf-browse-end-nav {
    align-items: stretch;
    flex-direction: column;
  }

  .apf-browse-end-back,
  .apf-browse-back-top {
    width: 100%;
  }
}

/* v0.2.6 — About page structural template. */
.apf-about-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-about-wrap {
  width: min(1180px, calc(100% - 44px));
  margin: 0 auto;
  padding: 22px 0 50px;
}

.apf-about-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: 40px;
  align-items: center;
  padding: 22px 0 30px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-about-hero h1 {
  max-width: 820px;
  margin: 7px 0 14px;
  color: var(--ap-navy);
  font-size: clamp(34px, 4.4vw, 58px);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.apf-about-lead {
  max-width: 800px;
  margin: 0;
  color: #374151;
  font-size: 17px;
  line-height: 1.7;
}

.apf-about-stat {
  padding: 22px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: #fafbfc;
}

.apf-about-stat strong,
.apf-about-stat span,
.apf-about-stat small {
  display: block;
}

.apf-about-stat strong {
  color: var(--ap-navy);
  font-size: 42px;
  line-height: 1;
}

.apf-about-stat span {
  margin-top: 8px;
  color: #1f2937;
  font-weight: 700;
}

.apf-about-stat small {
  margin-top: 7px;
  color: var(--ap-muted);
  line-height: 1.45;
}

.apf-about-section {
  padding: 38px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-about-section-head {
  max-width: 820px;
}

.apf-about-section-head h2,
.apf-about-card h2,
.apf-about-cta h2 {
  margin: 5px 0 10px;
  color: var(--ap-navy);
  font-size: clamp(24px, 2.8vw, 36px);
  line-height: 1.15;
}

.apf-about-section-head > p:last-child,
.apf-about-card p,
.apf-about-cta p {
  color: var(--ap-muted);
  line-height: 1.65;
}

.apf-about-grid-four,
.apf-about-principles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}

.apf-about-grid-four article,
.apf-about-principles > div {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}

.apf-about-grid-four strong,
.apf-about-principles strong,
.apf-about-grid-four span,
.apf-about-principles span {
  display: block;
}

.apf-about-grid-four strong,
.apf-about-principles strong {
  color: var(--ap-navy);
  font-size: 15.5px;
}

.apf-about-grid-four span,
.apf-about-principles span {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

.apf-about-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 38px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-about-card {
  padding: 26px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: linear-gradient(120deg, #fff 0%, #f8fafc 100%);
}

.apf-about-cta {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 36px 0;
  border-bottom: 1px solid var(--ap-line);
}

.apf-about-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.apf-about-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding-top: 26px;
}

.apf-about-links a {
  display: block;
  padding: 18px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
}

.apf-about-links strong,
.apf-about-links span {
  display: block;
}

.apf-about-links strong {
  color: var(--ap-navy);
}

.apf-about-links span {
  margin-top: 5px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .apf-about-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .apf-about-hero {
    grid-template-columns: 1fr;
  }

  .apf-about-stat {
    max-width: 420px;
  }

  .apf-about-grid-four,
  .apf-about-principles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .apf-about-wrap {
    width: calc(100% - 28px);
    padding-top: 18px;
  }

  .apf-about-hero,
  .apf-about-section,
  .apf-about-split {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .apf-about-split,
  .apf-about-grid-four,
  .apf-about-principles,
  .apf-about-links {
    grid-template-columns: 1fr;
  }

  .apf-about-cta {
    display: block;
  }

  .apf-about-actions {
    margin-top: 18px;
    justify-content: flex-start;
  }
}

/* v0.2.7 — FAQ page structural template. */
.apf-faq-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-faq-wrap {
  width: min(1180px, calc(100% - 44px));
  margin: 0 auto;
  padding: 22px 0 50px;
}

.apf-faq-hero {
  max-width: 880px;
  padding: 22px 0 28px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-faq-hero h1 {
  margin: 7px 0 12px;
  color: var(--ap-navy);
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.05;
  letter-spacing: -.035em;
}

.apf-faq-hero > p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--ap-muted);
  font-size: 16px;
  line-height: 1.65;
}

.apf-faq-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 42px;
  align-items: start;
  padding: 34px 0;
}

.apf-faq-index {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fafbfc;
}

.apf-faq-index strong {
  margin-bottom: 7px;
  color: var(--ap-navy);
  font-size: 13.5px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.apf-faq-index a {
  padding: 7px 5px;
  color: var(--ap-muted);
  font-size: 13.5px;
  text-decoration: none;
}

.apf-faq-index a:hover,
.apf-faq-index a:focus-visible {
  color: var(--ap-pink);
}

.apf-faq-content {
  min-width: 0;
}

.apf-faq-group {
  scroll-margin-top: 100px;
  padding: 0 0 34px;
  margin: 0 0 34px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-faq-group:last-child {
  margin-bottom: 0;
}

.apf-faq-group-head {
  margin-bottom: 14px;
}

.apf-faq-group-head h2 {
  margin: 5px 0 0;
  color: var(--ap-navy);
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
}

.apf-faq-group details {
  border-top: 1px solid var(--ap-line);
}

.apf-faq-group details:last-child {
  border-bottom: 1px solid var(--ap-line);
}

.apf-faq-group summary {
  position: relative;
  padding: 17px 38px 17px 0;
  color: #172033;
  font-size: 15.5px;
  font-weight: 750;
  line-height: 1.45;
  cursor: pointer;
  list-style: none;
}

.apf-faq-group summary::-webkit-details-marker {
  display: none;
}

.apf-faq-group summary::after {
  content: '+';
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ap-navy);
  font-size: 22px;
  font-weight: 400;
}

.apf-faq-group details[open] summary::after {
  content: '−';
}

.apf-faq-group details p {
  max-width: 800px;
  margin: -3px 0 17px;
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.65;
}

.apf-faq-group details p a {
  color: var(--ap-navy);
}




@media (max-width: 860px) {
  .apf-faq-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .apf-faq-index {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .apf-faq-index strong {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .apf-faq-wrap {
    width: calc(100% - 28px);
    padding-top: 18px;
  }

  .apf-faq-hero {
    padding-top: 18px;
  }

  .apf-faq-layout {
    padding-top: 26px;
  }

  .apf-faq-index {
    grid-template-columns: 1fr;
  }

  .apf-faq-group {
    margin-bottom: 28px;
    padding-bottom: 28px;
  }

  
  }

/* v0.2.8 — structural templates for License / Preview Terms / Contact / Legal. */
.apf-policy-main,
.apf-contact-main { background:#fff; color:var(--ap-text); }
.apf-policy-wrap,
.apf-contact-wrap { width:min(1180px,calc(100% - 44px)); margin:0 auto; padding:20px 0 56px; }
.apf-structure-note { margin:0 0 18px; padding:8px 12px; border:1px dashed #cfd6df; border-radius:7px; background:#fafbfc; color:var(--ap-muted); font-size:13px; }
.apf-policy-hero,
.apf-contact-hero { max-width:820px; margin:8px 0 34px; }
.apf-policy-hero h1,
.apf-contact-hero h1 { margin:0 0 12px; color:var(--ap-navy); font-size:clamp(34px,4vw,54px); line-height:1.04; letter-spacing:-.035em; }
.apf-policy-hero > p:last-child,
.apf-contact-hero > p:last-child { max-width:760px; margin:0; color:var(--ap-muted); font-size:16px; line-height:1.7; }
.apf-policy-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:42px; align-items:start; }
.apf-policy-index { position:sticky; top:110px; display:flex; flex-direction:column; gap:10px; padding:18px; border:1px solid var(--ap-line); border-radius:10px; background:#fafbfc; }
.apf-policy-index strong { margin-bottom:4px; color:var(--ap-navy); font-size:13.5px; text-transform:uppercase; letter-spacing:.04em; }
.apf-policy-index a { color:var(--ap-muted); text-decoration:none; font-size:13.5px; line-height:1.35; }
.apf-policy-index a:hover { color:var(--ap-pink); }
.apf-policy-content { min-width:0; }
.apf-policy-section { scroll-margin-top:120px; padding:0 0 30px; margin:0 0 30px; border-bottom:1px solid var(--ap-line); }
.apf-policy-section:last-child { margin-bottom:0; }
.apf-policy-section h2 { margin:0 0 10px; color:var(--ap-navy); font-size:23px; line-height:1.25; }
.apf-policy-section p:last-child { margin:0; color:#3f4754; font-size:15.5px; line-height:1.75; }
.apf-policy-section a { color:var(--ap-navy); }
.apf-policy-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; padding-top:24px; border-top:1px solid var(--ap-line); }
.apf-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.apf-contact-card { padding:28px; border:1px solid var(--ap-line); border-radius:12px; background:#fff; box-shadow:var(--ap-shadow); }
.apf-contact-card h2 { margin:0 0 14px; color:var(--ap-navy); font-size:23px; }
.apf-contact-card p,
.apf-contact-card li { color:var(--ap-muted); font-size:15.5px; line-height:1.65; }
.apf-contact-card ul { margin:12px 0 0; padding-left:20px; }
.apf-contact-email { display:inline-block; margin-bottom:12px; color:var(--ap-navy); font-size:18px; font-weight:750; text-decoration:none; }
.apf-contact-links { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.apf-contact-links a { display:flex; flex-direction:column; gap:4px; padding:18px 20px; border:1px solid var(--ap-line); border-radius:10px; text-decoration:none; background:#fafbfc; }
.apf-contact-links strong { color:var(--ap-navy); font-size:14.5px; }
.apf-contact-links span { color:var(--ap-muted); font-size:13.5px; }
.apf-seller-card { padding:30px; border:1px solid var(--ap-line); border-radius:12px; background:#fff; box-shadow:var(--ap-shadow); }
.apf-seller-card h2 { margin:0 0 22px; color:var(--ap-navy); font-size:24px; }
.apf-seller-table { border-top:1px solid var(--ap-line); }
.apf-seller-table > div { display:grid; grid-template-columns:minmax(170px,230px) minmax(0,1fr); gap:20px; padding:15px 0; border-bottom:1px solid var(--ap-line); }
.apf-seller-table strong { color:var(--ap-navy); font-size:14.5px; }
.apf-seller-table span { color:#3f4754; font-size:14.5px; line-height:1.6; }
.apf-seller-table a { color:var(--ap-navy); }
@media(max-width:800px){
  .apf-policy-wrap,.apf-contact-wrap{width:calc(100% - 30px);padding-top:18px;}
  .apf-policy-layout{grid-template-columns:1fr;gap:22px;}
  .apf-policy-index{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .apf-policy-index strong{grid-column:1/-1;}
  .apf-contact-grid,.apf-contact-links{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .apf-policy-index{grid-template-columns:1fr;}
  .apf-seller-card{padding:20px 16px;}
  .apf-seller-table>div{grid-template-columns:1fr;gap:6px;}
}

/* v0.3.1 — dedicated Library Volume detail screen */
.apf-library-detail-main { background:#fff; color:var(--ap-text); }
.apf-library-detail-wrap { width:min(1180px,calc(100% - 44px)); margin:0 auto; padding:18px 0 46px; }
.apf-library-detail-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); gap:42px; align-items:start; }
.apf-library-collage { display:grid; grid-template-columns:1.55fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:3px; min-height:420px; overflow:hidden; border-radius:10px; background:var(--ap-soft); }
.apf-library-collage-item { position:relative; min-width:0; min-height:0; overflow:hidden; background:#eef1f5; }
.apf-library-collage-item-1 { grid-row:1 / 3; }
.apf-library-collage-item img { width:100%; height:100%; object-fit:cover; display:block; }
.apf-library-count-badge { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:94px; min-height:78px; padding:8px; border-radius:12px; background:rgba(184,92,114,.92); color:#fff; text-align:center; box-shadow:0 8px 24px rgba(17,24,39,.16); }
.apf-library-count-badge strong { font-size:31px; line-height:1; }
.apf-library-count-badge small { margin-top:4px; font-size:11px; line-height:1.2; font-weight:800; letter-spacing:.03em; }
.apf-library-detail-info h1 { margin:10px 0 4px; color:var(--ap-navy); font-size:clamp(34px,3.4vw,50px); line-height:1.04; letter-spacing:-.025em; }
.apf-library-detail-count { margin:0 0 10px; font-size:18px; color:#222a36; }
.apf-library-detail-intro { margin:0 0 22px; max-width:560px; color:var(--ap-muted); font-size:14.5px; line-height:1.55; }
.apf-library-detail-stats { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 18px; padding:17px 0; border-top:1px solid var(--ap-line); border-bottom:1px solid var(--ap-line); }
.apf-library-detail-stats > div { display:grid; grid-template-columns:34px 1fr; grid-template-rows:auto auto; column-gap:8px; padding:0 13px; border-right:1px solid var(--ap-line); }
.apf-library-detail-stats > div:first-child { padding-left:0; }
.apf-library-detail-stats > div:last-child { border-right:0; padding-right:0; }
.apf-library-detail-stats .apf-svg-icon,.apf-library-detail-stats .apf-package-icon { grid-row:1 / 3; width:30px; height:30px; margin:0; color:var(--ap-navy); align-self:center; }
.apf-library-detail-stats strong { font-size:13.5px; color:#1b2028; }
.apf-library-detail-stats small { font-size:12px; line-height:1.3; color:var(--ap-muted); }
.apf-library-purchase-row { display:grid; grid-template-columns:auto minmax(230px,1fr); gap:20px; align-items:center; }
.apf-library-price { font-size:48px; line-height:1; font-weight:780; color:#090d13; letter-spacing:-.035em; }
.apf-library-preview-section { margin-top:28px; padding:20px; border:1px solid var(--ap-line); border-radius:12px; background:#fff; box-shadow:var(--ap-shadow); }
.apf-library-preview-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:16px; }
.apf-library-preview-head h2 { margin:0 0 3px; color:var(--ap-navy); font-size:18px; text-transform:uppercase; letter-spacing:.02em; }
.apf-library-preview-head p { margin:0; color:var(--ap-muted); font-size:13.5px; }
.apf-library-preview-head a { color:var(--ap-navy); font-size:13px; font-weight:800; text-decoration:none; text-transform:uppercase; }
.apf-library-preview-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:14px; }
.apf-library-preview-card { min-width:0; color:var(--ap-text); text-decoration:none; text-align:center; }
.apf-library-preview-image { position:relative; display:block; aspect-ratio:4 / 5; overflow:hidden; border-radius:6px; background:var(--ap-soft); }
.apf-library-preview-image img { width:100%; height:100%; object-fit:cover; display:block; }
.apf-library-preview-card strong { display:block; margin-top:6px; font-size:12px; color:#202633; }
.apf-library-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.78); color:#7a8798; font-size:13.5px; box-shadow:0 3px 10px rgba(15,39,71,.10); }
.apf-library-view-all { display:flex; align-items:center; justify-content:center; min-height:38px; margin-top:16px; border-radius:6px; background:#f7f8fa; color:var(--ap-navy); font-size:13.5px; font-weight:750; text-decoration:none; text-transform:uppercase; }
.apf-library-package-section { margin-top:18px; padding:20px 24px; border:1px solid var(--ap-line); border-radius:12px; background:linear-gradient(110deg,#fff 0%,#fbf7f4 100%); }
.apf-library-bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.apf-library-notice-card,.apf-library-links-card { padding:22px; border:1px solid var(--ap-line); border-radius:12px; box-shadow:var(--ap-shadow); }
.apf-library-notice-card { background:linear-gradient(145deg,#fff 0%,#fff4f6 100%); }
.apf-library-links-card { background:linear-gradient(115deg,#f3f8ff 0%,#fff 68%); }
.apf-library-notice-card h2,.apf-library-links-card h2 { margin:0 0 10px; color:var(--ap-navy); font-size:20px; }
.apf-library-notice-card ul { list-style:none; margin:16px 0 0; padding:0; }
.apf-library-notice-card li { display:flex; gap:9px; margin:0 0 11px; color:#343943; font-size:13.5px; line-height:1.45; }
.apf-library-links-card p:not(.apf-home-kicker) { color:var(--ap-muted); font-size:14.5px; line-height:1.55; }

@media (max-width:980px) {
  .apf-library-detail-hero { grid-template-columns:1fr; gap:24px; }
  .apf-library-collage { min-height:380px; }
  .apf-library-preview-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .apf-library-detail-wrap { width:calc(100% - 28px); padding-top:16px; }
  .apf-library-collage { min-height:300px; grid-template-columns:1.35fr 1fr 1fr; }
  .apf-library-count-badge { width:76px; min-height:64px; right:8px; bottom:8px; }
  .apf-library-count-badge strong { font-size:25px; }
  .apf-library-detail-info h1 { font-size:34px; }
  .apf-library-detail-stats { grid-template-columns:1fr; gap:0; padding:0; }
  .apf-library-detail-stats > div,.apf-library-detail-stats > div:first-child,.apf-library-detail-stats > div:last-child { padding:11px 0; border-right:0; border-bottom:1px solid var(--ap-line); }
  .apf-library-detail-stats > div:last-child { border-bottom:0; }
  .apf-library-purchase-row { grid-template-columns:1fr; gap:10px; }
  .apf-library-preview-head { display:block; }
  .apf-library-preview-head a { display:inline-block; margin-top:8px; }
  .apf-library-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .apf-library-package-section { padding:18px 14px; }
  .apf-library-bottom-grid { grid-template-columns:1fr; }
}

/* v0.3.2 — canonical Library / Complete Library / Master pricing presentation */
.apf-library-complete-offer,
.apf-category-complete-card,
.apf-master-complete-card {
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fafbfc;
}

.apf-library-complete-offer {
  display: block;
  margin-top: 18px;
  padding: 16px 18px;
}

.apf-library-complete-offer > div {
  display: grid;
  gap: 3px;
}

.apf-library-complete-kicker,
.apf-category-complete-label {
  color: var(--ap-pink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.apf-library-complete-kicker {
  font-size: 13px;
}

.apf-library-complete-offer strong {
  color: var(--ap-navy);
  font-size: 17px;
  line-height: 1.35;
}

.apf-library-complete-offer small,
.apf-category-complete-card p,
.apf-category-complete-price small,
.apf-master-complete-price small {
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.45;
}

.apf-library-complete-offer small {
  font-size: 13.5px;
}

.apf-library-complete-status,
.apf-category-complete-price span,
.apf-master-complete-price span {
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.apf-library-volume-price {
  color: var(--ap-navy);
  font-size: 18px;
  font-weight: 800;
}

.apf-category-complete-card,
.apf-master-complete-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-top: 14px;
  padding: 18px 20px;
}

.apf-category-complete-card h3,
.apf-master-complete-card h2 {
  margin: 4px 0 6px;
  color: var(--ap-navy);
}

/* v0.4.79 — Master Complete Library: 4 categories stacked vertically, 4 Volumes across */
.apf-master-complete-card {
  display: block;
  padding: 0;
  overflow: hidden;
  background: #f6f0e8;
  border-color: #e3d8cc;
}

.apf-master-complete-preview-grid {
  display: grid;
  gap: 18px;
  padding: 24px 24px 22px;
  background: #f6f0e8;
}

.apf-master-complete-category-row {
  display: block;
}

.apf-master-complete-volume-row {
  display: grid;
  grid-template-columns: 160px 78px 160px 78px 160px 78px 160px;
  gap: 0;
  justify-content: center;
  align-items: center;
}

.apf-master-complete-preview-item {
  position: relative;
  justify-self: center;
  width: 160px;
  height: 160px;
}

.apf-master-complete-preview-item:not(:last-child)::after {
  content: none;
}

.apf-master-complete-plus {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  align-self: stretch;
  color: var(--ap-navy);
  font-size: 28px;
  line-height: 1;
  font-weight: 800;
  pointer-events: none;
}

.apf-master-complete-mini-collage {
  display: grid;
  grid-template-columns: 1.55fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 2px;
  width: 160px;
  height: 160px;
  overflow: hidden;
  background: #f6f0e8;
  border-radius: 2px;
}

.apf-master-complete-mini-collage-item {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #f6f0e8;
}

.apf-master-complete-mini-collage-item-1 {
  grid-row: 1 / 3;
}

.apf-master-complete-mini-collage-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.apf-master-complete-main-link {
  padding: 0;
}

.apf-master-complete-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 16px 24px 20px;
  background: #f6f0e8;
}

@media (max-width: 1000px) {
  .apf-master-complete-category-row { display: block; }
  .apf-master-complete-volume-row {
    grid-template-columns: 145px 52px 145px 52px 145px 52px 145px;
  }
  .apf-master-complete-preview-item,
  .apf-master-complete-mini-collage { width: 145px; height: 145px; }
  .apf-master-complete-plus { font-size: 30px; }
}

@media (max-width: 760px) {
  .apf-master-complete-preview-grid { padding: 20px 18px; }
  .apf-master-complete-category-row { display: block; }
  .apf-master-complete-volume-row {
    grid-template-columns: repeat(2, minmax(0, 145px));
    justify-content: center;
    gap: 20px 42px;
  }
  .apf-master-complete-preview-item,
  .apf-master-complete-mini-collage { width: 145px; height: 145px; }
  .apf-master-complete-plus { display: none; }
  .apf-master-complete-body { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 480px) {
  .apf-master-complete-volume-row {
    grid-template-columns: minmax(0, 145px);
    justify-content: center;
    row-gap: 20px;
  }
  .apf-master-complete-plus { display: none; }
}

/* v0.4.77 — compact centered four-volume Complete Library composition */
.apf-category-complete-card {
  display: block;
  padding: 0;
  overflow: hidden;
  background: #eef5fc;
  border-color: #e1eaf4;
}

.apf-category-complete-preview-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 78px;
  min-height: 214px;
  padding: 28px 26px 22px;
  overflow: visible;
  background: #eef5fc;
  text-decoration: none !important;
}

.apf-category-complete-preview-item {
  position: relative;
  flex: 0 0 160px;
  width: 160px;
  height: 160px;
  overflow: visible;
  background: #eef5fc;
}

.apf-category-complete-preview-item:not(:last-child)::after {
  content: '+';
  position: absolute;
  top: 50%;
  right: -39px;
  transform: translate(50%, -50%);
  color: var(--ap-navy);
  font-size: 34px;
  line-height: 1;
  font-weight: 800;
  pointer-events: none;
  z-index: 3;
}

.apf-category-complete-mini-collage {
  display: grid;
  grid-template-columns: 1.55fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 2px;
  width: 160px;
  height: 160px;
  overflow: hidden;
  background: #eef5fc;
  border-radius: 2px;
}

.apf-category-complete-mini-collage-item {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #eef5fc;
}

.apf-category-complete-mini-collage-item-1 {
  grid-row: 1 / 3;
}

.apf-category-complete-mini-collage-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.apf-category-complete-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 16px 24px 20px;
  background: #eef5fc;
}

.apf-category-complete-body .apf-category-complete-main-link {
  min-width: 0;
}

@media (max-width: 1000px) {
  .apf-category-complete-preview-row {
    gap: 52px;
  }
  .apf-category-complete-preview-item {
    flex-basis: 145px;
    width: 145px;
    height: 145px;
  }
  .apf-category-complete-mini-collage {
    width: 145px;
    height: 145px;
  }
  .apf-category-complete-preview-item:not(:last-child)::after {
    right: -26px;
    font-size: 30px;
  }
}

@media (max-width: 760px) {
  .apf-category-complete-preview-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 42px;
    min-height: 0;
    padding: 22px;
  }
  .apf-category-complete-preview-item {
    justify-self: center;
    flex-basis: auto;
    width: 145px;
    height: 145px;
  }
  .apf-category-complete-mini-collage {
    width: 145px;
    height: 145px;
  }
  .apf-category-complete-preview-item:not(:last-child)::after {
    display: none;
  }
  .apf-category-complete-body {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (max-width: 420px) {
  .apf-category-complete-preview-row {
    grid-template-columns: 1fr;
  }
}

.apf-category-complete-card p,
.apf-master-complete-card p {
  margin: 0;
}

.apf-category-complete-price,
.apf-master-complete-price {
  min-width: 220px;
  display: grid;
  gap: 4px;
  text-align: right;
}

.apf-category-complete-price strong,
.apf-master-complete-price strong {
  color: #090d13;
  font-size: 34px;
  line-height: 1;
}

.apf-master-complete-card {
  margin-top: 28px;
  background: #f6f0e8;
  box-shadow: var(--ap-shadow);
}

.apf-library-group-meta {
  flex-wrap: wrap;
}

@media (max-width: 760px) {
  .apf-library-complete-offer,
  .apf-category-complete-card,
  .apf-master-complete-card {
    grid-template-columns: 1fr;
    display: grid;
  }

  .apf-category-complete-price,
  .apf-master-complete-price {
    min-width: 0;
    text-align: left;
  }
}

/* v0.3.5 — Library preview internal scrolling; JS computes an exact two-row viewport. */
.apf-library-preview-scroll {
  max-height: 540px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 2px 8px 4px 0;
}

.apf-library-preview-scroll:focus-visible {
  outline: 2px solid rgba(15,39,71,.18);
  outline-offset: 3px;
  border-radius: 6px;
}

.apf-library-preview-card {
  min-width: 0;
  text-align: center;
}

.apf-library-preview-trigger {
  width: 100%;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: inherit;
}

.apf-library-preview-trigger:focus-visible {
  outline: 2px solid var(--ap-navy);
  outline-offset: 3px;
  border-radius: 7px;
}

.apf-library-preview-id {
  display: inline-block;
  margin-top: 6px;
  color: #202633 !important;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.25;
  text-decoration: none !important;
}

a.apf-library-preview-id:hover,
a.apf-library-preview-id:focus-visible {
  color: var(--ap-pink) !important;
}

.apf-library-preview-image-static .apf-library-play {
  display: none;
}

body.apf-library-modal-open {
  overflow: hidden;
}

.apf-library-video-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  place-items: center;
  padding: 24px;
  background: rgba(6, 12, 22, .68);
  backdrop-filter: blur(2px);
}

.apf-library-video-modal.is-open {
  display: grid;
}

.apf-library-video-dialog {
  width: min(300px, 76vw);
  max-height: 78vh;
  overflow: hidden;
  border-radius: 12px;
  background: #05070a;
  box-shadow: 0 24px 70px rgba(0,0,0,.30);
}

.apf-library-modal-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: 78vh;
  object-fit: contain;
  background: #05070a;
}

@media (max-width: 980px) {
  .apf-library-preview-scroll {
    max-height: 620px;
  }
}

@media (max-width: 620px) {
  .apf-library-preview-scroll {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  .apf-library-video-modal {
    padding: 18px;
  }

  .apf-library-video-dialog {
    width: min(280px, 82vw);
  }
}

/* v0.3.4 — Library preview refinements and source-aware Character details. */
@media (min-width: 621px) {
  .apf-library-preview-scroll {
    max-height: 390px; /* Fallback only; JS replaces this with the exact two-row height. */
  }
}

.apf-library-video-dialog {
  position: relative;
}

.apf-library-modal-audio {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  background: rgba(4,8,14,.66);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.apf-library-modal-audio:hover,
.apf-library-modal-audio:focus-visible {
  background: rgba(4,8,14,.84);
  outline: 2px solid rgba(255,255,255,.75);
  outline-offset: 2px;
}

.apf-character-source-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -4px 0 16px;
  padding: 10px 12px;
  border: 1px solid var(--ap-line);
  border-radius: 8px;
  background: #fafbfc;
}

.apf-character-source-bar > div {
  min-width: 0;
}

.apf-character-source-label {
  display: block;
  margin-bottom: 2px;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apf-character-source-bar strong {
  display: block;
  color: var(--ap-navy);
  font-size: 13.5px;
  line-height: 1.35;
}

.apf-character-source-back {
  flex: 0 0 auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border: 1px solid #cfd6df;
  border-radius: 6px;
  background: #fff;
  color: var(--ap-navy) !important;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none !important;
}

.apf-character-source-back:hover,
.apf-character-source-back:focus-visible {
  border-color: var(--ap-navy);
}

@media (max-width: 620px) {
  .apf-character-source-bar {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* v0.4.68 — keep catalog navigation links separate from Purchase links.
   Nested anchors caused browsers to reparent the Purchase link outside the card. */
.apf-category-complete-main-link,
.apf-master-complete-main-link {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none !important;
}

.apf-category-complete-main-link:hover,
.apf-category-complete-main-link:focus-visible,
.apf-master-complete-main-link:hover,
.apf-master-complete-main-link:focus-visible {
  text-decoration: none !important;
}

/* Complete Library overview cards */
.apf-category-complete-card,
.apf-master-complete-card {
  text-decoration: none !important;
  color: inherit;
}

.apf-category-complete-card:hover,
.apf-master-complete-card:hover {
  border-color: #c7d1de;
}

/* v0.3.7 — savings-first bundle pricing presentation */
.apf-libraries-pricing-note {
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.55;
}
.apf-libraries-pricing-note {
  margin: 18px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fafbfc;
}
.apf-libraries-pricing-note p { margin: 0; }

/* v0.3.9 — Complete Library -> Volume source context */
.apf-library-source-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -4px 0 16px;
  padding: 10px 12px;
  border: 1px solid var(--ap-line);
  border-radius: 8px;
  background: #fafbfc;
}

.apf-library-source-bar > div {
  min-width: 0;
}

.apf-library-source-label {
  display: block;
  margin-bottom: 2px;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apf-library-source-bar strong {
  display: block;
  color: var(--ap-navy);
  font-size: 13.5px;
  line-height: 1.35;
}

.apf-library-source-back {
  flex: 0 0 auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border: 1px solid #cfd6df;
  border-radius: 6px;
  background: #fff;
  color: var(--ap-navy) !important;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none !important;
}

.apf-library-source-back:hover,
.apf-library-source-back:focus-visible {
  border-color: var(--ap-navy);
}

@media (max-width: 620px) {
  .apf-library-source-bar {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* v0.4.1 — Complete Library context hierarchy on included Volume pages */
.apf-library-context-title {
  margin: 0 0 4px;
  color: var(--ap-navy);
  font-size: clamp(34px, 3.5vw, 48px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 780;
}

.apf-library-volume-title {
  margin: 0 0 8px;
  color: #1d2430;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.15;
  letter-spacing: -.02em;
  font-weight: 720;
}

@media (max-width: 620px) {
  .apf-library-context-title {
    font-size: 34px;
  }

  .apf-library-volume-title {
    font-size: 22px;
  }
}

.apf-browse-license-note {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid #e2cbd3;
  border-radius: 8px;
  background: #fffafb;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.6;
}

.apf-browse-license-note strong {
  flex: 0 0 auto;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 800;
}

.apf-browse-license-note a {
  color: #9a3158 !important;
  font-weight: 800;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.apf-browse-license-note a:hover,
.apf-browse-license-note a:focus-visible {
  color: #6f1f3e !important;
}

.apf-browse-source-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -4px 0 14px;
  padding: 9px 12px;
  border: 1px solid var(--ap-line);
  border-radius: 8px;
  background: #fafbfc;
}

.apf-browse-source-label {
  display: block;
  margin-bottom: 2px;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apf-browse-source-bar strong {
  color: var(--ap-navy);
  font-size: 13.5px;
}

.apf-browse-source-back {
  flex: 0 0 auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border: 1px solid #cfd6df;
  border-radius: 6px;
  background: #fff;
  color: var(--ap-navy) !important;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none !important;
}

.apf-browse-card-actions {
  grid-template-columns: 1fr;
}

.apf-browse-details {
  width: 100%;
}

@media (max-width: 620px) {
  .apf-browse-source-bar {
    align-items: flex-start;
    flex-direction: column;
  }

}

/* v0.4.4 — normal Browse keeps both card actions; Master Browse shows none */
.apf-browse-card-actions {
  grid-template-columns: 1fr 1fr;
}

.apf-browse-details {
  width: auto;
}

/* v0.4.5 — Home purchase-route structure */
.apf-home-purchase-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.apf-home-purchase-card {
  min-width: 0;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  padding: 22px 20px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
  color: inherit !important;
  text-decoration: none !important;
}

.apf-home-purchase-card-master {
  background: #fafbfc;
  border-color: #cad2dc;
}

.apf-home-purchase-step {
  color: var(--ap-pink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
}

.apf-home-purchase-card > strong {
  margin-top: 12px;
  color: var(--ap-navy);
  font-size: 18px;
  line-height: 1.25;
}

.apf-home-purchase-card > b {
  margin-top: 10px;
  color: #111827;
  font-size: 25px;
  line-height: 1.1;
}

.apf-home-purchase-card > p {
  margin: 14px 0 0;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.55;
}

.apf-home-purchase-card > small {
  margin-top: auto;
  padding-top: 20px;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 750;
}

@media (max-width: 980px) {
  .apf-home-purchase-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .apf-home-purchase-grid {
    grid-template-columns: 1fr;
  }

  .apf-home-purchase-card {
    min-height: 0;
  }
}

/* v0.4.7 — compact Browse search/filter controls only.
   Character card/image/video sizing remains the v0.4.5 design. */
@media (min-width: 821px) {
  .apf-browse-filters {
    gap: 6px;
    padding-top: 7px;
    padding-bottom: 7px;
  }

  .apf-browse-filters label {
    gap: 2px;
    font-size: 10px;
    line-height: 1.15;
  }

  .apf-browse-filters input,
  .apf-browse-filters select {
    min-height: 32px;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 12px;
  }

  .apf-browse-apply,
  .apf-browse-reset {
    min-height: 32px;
    padding: 0 10px;
    border-radius: 6px;
    font-size: 11px;
  }
}

@media (min-width: 821px) and (max-height: 760px) {
  .apf-browse-filters {
    padding-top: 5px;
    padding-bottom: 5px;
  }

  .apf-browse-filters input,
  .apf-browse-filters select,
  .apf-browse-apply,
  .apf-browse-reset {
    min-height: 30px;
  }
}

/* v0.4.8 — Browse video-only cards + split media frame on Character detail */

/* Browse: remove the separate still image and let the 3-second video own the media area. */
.apf-browse-media-video-only {
  display: block;
  min-height: 0;
  background: transparent;
}

.apf-browse-media-video-only .apf-browse-motion {
  width: 100%;
  overflow: hidden;
  background: #111827;
}

.apf-browse-media-video-only .apf-browse-video {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #111827;
}

/* Character detail: image and video share one visual frame like the approved reference. */
.apf-detail-media-pair {
  display: block;
}

.apf-detail-media-frame {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
  align-items: stretch;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #f7f8fa;
  box-shadow: 0 0 0 1px rgba(15, 39, 71, .03);
}

.apf-detail-media-frame .apf-character-portrait,
.apf-detail-media-frame .apf-character-video-column {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
}

.apf-detail-media-frame .apf-character-portrait {
  display: flex;
  align-items: stretch;
  justify-content: center;
  background: #f7f8fa;
  border-right: 1px solid var(--ap-line);
}

.apf-detail-media-frame .apf-main-image {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
  object-position: center;
  border-radius: 0;
  background: #f7f8fa;
}

.apf-detail-media-frame .apf-character-video-column {
  display: flex;
  align-items: stretch;
  background: #111827;
}

.apf-detail-media-frame .apf-video-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  background: #111827;
}

.apf-detail-media-frame .apf-preview-video {
  width: 100%;
  height: auto;
  max-height: 478px;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #111827;
  border-radius: 0;
}

.apf-detail-media-frame .apf-video-controls {
  min-height: 42px;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
}

.apf-detail-media-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  margin-top: 8px;
}

.apf-detail-media-copy .apf-preview-heading {
  margin: 0;
}

.apf-detail-media-copy .apf-preview-heading h2 {
  margin-bottom: 3px;
  font-size: 13.5px;
}

.apf-detail-media-copy .apf-preview-heading p,
.apf-detail-media-copy .apf-origin-caption {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
}

@media (max-width: 620px) {
  .apf-detail-media-frame {
    grid-template-columns: 1fr 1fr;
  }

  .apf-detail-media-frame .apf-main-image,
  .apf-detail-media-frame .apf-preview-video {
    max-height: none;
  }
}

/* v0.4.9 — Browse 5-column video grid + remove artificial side bars on Character detail */

/* Browse: smaller video-only cards, 5 cards per row on desktop. */
@media (min-width: 1100px) {
  .apf-browse-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
  }

  .apf-browse-media-video-only .apf-browse-video {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 300px;
    aspect-ratio: auto;
    object-fit: contain;
    background: transparent;
  }

  .apf-browse-card-body {
    padding: 9px 10px 10px;
  }

  .apf-browse-card-body h2 {
    font-size: 14.5px;
  }

  .apf-browse-card-body p {
    font-size: 11px;
  }

  .apf-browse-card-actions {
    gap: 6px;
  }

  .apf-browse-details,
  .apf-browse-buy {
    min-height: 31px;
    font-size: 10px;
  }
}

/* Keep the grid readable below desktop width. */
@media (min-width: 821px) and (max-width: 1099px) {
  .apf-browse-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Character detail:
   let the video use its native ratio so the shell does not create left/right black gutters. */
.apf-detail-media-frame .apf-character-video-column {
  background: transparent;
  align-items: flex-start;
}

.apf-detail-media-frame .apf-video-shell {
  width: 100%;
  max-width: none;
  background: transparent;
  overflow: visible;
}

.apf-detail-media-frame .apf-preview-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  background: transparent;
}

.apf-detail-media-frame {
  background: #f7f8fa;
}

.apf-detail-media-frame .apf-video-controls {
  background: #fff;
}

/* v0.4.10 — Character detail: make the video panel clearly smaller than the Preview Frame. */
@media (min-width: 761px) {
  .apf-detail-media-frame {
    grid-template-columns: minmax(0, 1fr) minmax(150px, .52fr);
  }

  .apf-detail-media-frame .apf-character-video-column {
    width: 100%;
    max-width: 235px;
    justify-self: center;
    align-self: start;
  }

  .apf-detail-media-frame .apf-video-shell {
    width: 100%;
    max-width: 235px;
    margin-left: auto;
    margin-right: auto;
  }

  .apf-detail-media-frame .apf-preview-video {
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
  }
}

@media (min-width: 761px) and (max-width: 1050px) {
  .apf-detail-media-frame {
    grid-template-columns: minmax(0, 1fr) minmax(145px, .56fr);
  }

  .apf-detail-media-frame .apf-character-video-column,
  .apf-detail-media-frame .apf-video-shell {
    max-width: 215px;
  }
}

/* v0.4.11 — Sample page structure. Folder name is AP-DEMO-001 by default. */
.apf-sample-main {
  background: #fff;
  color: var(--ap-text);
}

.apf-sample-wrap {
  width: min(980px, calc(100% - 44px));
  margin: 0 auto;
  padding: 20px 0 56px;
}

.apf-sample-hero {
  max-width: 760px;
  margin: 10px 0 28px;
}

.apf-sample-hero h1 {
  margin: 6px 0 12px;
  color: var(--ap-navy);
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.apf-sample-hero > p:last-child {
  margin: 0;
  color: var(--ap-muted);
  font-size: 15.5px;
  line-height: 1.65;
}

.apf-sample-browser {
  overflow: hidden;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--ap-shadow);
}

.apf-sample-browser-bar {
  padding: 10px 16px;
  border-bottom: 1px solid var(--ap-line);
  background: #fafbfc;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apf-sample-folder-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px;
  border-bottom: 1px solid var(--ap-line);
}

.apf-sample-folder-icon {
  width: 54px;
  height: 54px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 54px;
  border-radius: 10px;
  background: var(--ap-blue-soft);
  color: var(--ap-navy);
}

.apf-sample-folder-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.apf-sample-folder-label {
  display: block;
  margin-bottom: 3px;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.apf-sample-folder-row h2 {
  margin: 0;
  color: var(--ap-navy);
  font-size: 28px;
  line-height: 1.1;
}

.apf-sample-status {
  padding: 20px 24px;
}

.apf-sample-status strong,
.apf-sample-status span,
.apf-sample-status small {
  display: block;
}

.apf-sample-status strong {
  color: var(--ap-navy);
  font-size: 14.5px;
}

.apf-sample-status span {
  margin-top: 6px;
  color: #374151;
  font-size: 14.5px;
}

.apf-sample-status small {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.5;
}

.apf-sample-open {
  margin: 0 24px 24px;
  min-width: 260px;
}

@media (max-width: 620px) {
  .apf-sample-wrap {
    width: calc(100% - 28px);
    padding: 18px 0 44px;
  }

  .apf-sample-folder-row {
    padding: 18px;
  }

  .apf-sample-status {
    padding: 18px;
  }

  .apf-sample-open {
    width: calc(100% - 36px);
    margin: 0 18px 18px;
    min-width: 0;
  }
}

/* v0.4.12 — single AP-DEMO-001 Sample page, Character-detail style */
.apf-sample-detail-main {
  background: #fff;
}

.apf-sample-detail-hero {
  margin-top: 4px;
}

.apf-sample-detail-info .apf-character-id {
  font-size: clamp(38px, 4vw, 54px);
}

.apf-sample-media-placeholder {
  width: 100%;
  min-height: 300px;
}

.apf-sample-detail-action {
  display: block;
}

.apf-sample-detail-action .apf-buy-button,
.apf-sample-detail-action .apf-buy-button-disabled {
  width: 100%;
  box-sizing: border-box;
  min-height: 52px;
  padding: 12px 18px;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}

.apf-sample-detail-bottom {
  margin-top: 24px;
}

@media (max-width: 900px) {
  .apf-sample-detail-hero {
    grid-template-columns: 1fr;
  }
}

/* v0.4.14 — normal Browse -> Character return context */
.apf-character-source-bar {
  margin-bottom: 12px;
}

/* v0.4.19 — Master Browse cards show View Details only */
.apf-browse-card-actions.is-master-browse {
  grid-template-columns: 1fr;
}

.apf-browse-card-actions.is-master-browse .apf-browse-details {
  width: 100%;
}

/* v0.4.20 — Library preview play mark appears only on pointer hover/focus */
.apf-library-preview-trigger .apf-library-play {
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) scale(.92);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.apf-library-preview-trigger:hover .apf-library-play,
.apf-library-preview-trigger:focus-visible .apf-library-play {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}

/* Touch devices have no hover state; tapping the image still opens the preview. */
@media (hover: none) {
  .apf-library-preview-trigger .apf-library-play {
    opacity: 0;
    visibility: hidden;
  }
}

/* v0.4.21 — Browse uses the same image-click video-preview pattern as Library reviews */
.apf-browse-media-review {
  display: block;
  min-height: 0;
  padding: 0;
  background: transparent;
}

.apf-browse-preview-trigger {
  width: 100%;
}

.apf-browse-preview-image {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 7px 7px 0 0;
}

.apf-browse-preview-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Remove old inline-video Browse sizing. */
.apf-browse-media-review .apf-browse-video,
.apf-browse-media-review .apf-browse-motion {
  display: none;
}

/* Mobile: show three preview items across in both Browse and Library review. */
@media (max-width: 620px) {
  .apf-library-preview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px;
  }

  .apf-library-preview-id {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.15;
  }

  .apf-library-preview-image {
    border-radius: 5px;
  }

  .apf-browse-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px;
  }

  .apf-browse-card {
    border-radius: 6px;
  }

  .apf-browse-preview-image {
    border-radius: 5px 5px 0 0;
  }

  .apf-browse-card-body {
    padding: 5px;
  }

  .apf-browse-card-body h2 {
    margin-bottom: 4px;
    font-size: 11px;
    line-height: 1.1;
  }

  .apf-browse-age {
    margin-bottom: 4px;
    padding: 2px 4px;
    font-size: 8.5px;
  }

  .apf-browse-card-body p {
    margin-bottom: 5px;
    font-size: 9px;
    line-height: 1.2;
  }

  .apf-browse-card-actions {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .apf-browse-details,
  .apf-browse-buy {
    min-height: 25px;
    padding: 3px 2px;
    font-size: 8.5px;
    line-height: 1.05;
  }

  .apf-library-play {
    width: 24px;
    height: 24px;
    font-size: 11px;
  }
}

/* v0.4.25 — global mobile hierarchy pattern:
   parent / section -> compact sub-item link list -> detail content */
.apf-mobile-hierarchy-list {
  display: none;
}

@media (max-width: 620px) {
  .apf-mobile-hierarchy-list {
    display: grid;
    gap: 7px;
    margin: 12px 0 18px;
  }

  .apf-mobile-hierarchy-link {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 8px;
    min-height: 56px;
    padding: 8px 10px;
    border: 1px solid var(--ap-line);
    border-radius: 7px;
    background: #fff;
    color: inherit !important;
    text-decoration: none !important;
  }

  .apf-mobile-hierarchy-link:active {
    background: #f7f8fa;
  }

  .apf-mobile-hierarchy-link.is-complete {
    background: #fafbfc;
  }

  .apf-mobile-hierarchy-code {
    color: var(--ap-pink);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .025em;
    text-transform: uppercase;
  }

  .apf-mobile-hierarchy-copy {
    min-width: 0;
  }

  .apf-mobile-hierarchy-copy strong,
  .apf-mobile-hierarchy-copy small {
    display: block;
  }

  .apf-mobile-hierarchy-copy strong {
    color: var(--ap-navy);
    font-size: 13.5px;
    line-height: 1.2;
  }

  .apf-mobile-hierarchy-copy small {
    margin-top: 2px;
    color: var(--ap-muted);
    font-size: 10.5px;
    line-height: 1.25;
  }

  .apf-mobile-hierarchy-arrow {
    color: var(--ap-navy);
    font-size: 19px;
    line-height: 1;
    text-align: right;
  }

  /* Home: use compact hierarchy lists instead of large route/category cards. */
  .apf-home-purchase-grid,
  .apf-home-category-grid {
    display: none !important;
  }

  /* Libraries overview: mobile uses compact Volumes + Complete links. */
  .apf-library-volume-grid.apf-desktop-hierarchy-cards,
  .apf-category-complete-card.apf-desktop-hierarchy-cards {
    display: none !important;
  }

  .apf-library-mobile-group-list {
    margin-top: 10px;
  }

  /* FAQ + policy pages already have indexes; render them in the same pattern. */
  .apf-faq-layout,
  .apf-policy-layout {
    display: block;
  }

  .apf-faq-index,
  .apf-policy-index {
    display: grid;
    gap: 6px;
    position: static;
    width: auto;
    margin: 10px 0 16px;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .apf-faq-index > strong,
  .apf-policy-index > strong {
    margin-bottom: 2px;
    color: var(--ap-navy);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
  }

  .apf-faq-index > a,
  .apf-policy-index > a {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 9px;
    border: 1px solid var(--ap-line);
    border-radius: 6px;
    background: #fff;
    color: var(--ap-navy) !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
  }

  .apf-faq-index > a::after,
  .apf-policy-index > a::after {
    content: "›";
    font-size: 18px;
    line-height: 1;
  }

  /* Leaf/detail pages remain detail pages; only their section index is compacted. */
  .apf-mobile-page-index {
    margin-top: 10px;
  }
}



/* v0.4.29 — compact purchase guidance near Gumroad checkout links. */
.apf-checkout-tab-note {
  margin: 8px 0 12px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .apf-checkout-tab-note {
    margin: 6px 0 10px;
    font-size: 13px;
  }
}

/* v0.4.29 — Purchase, Checkout & Delivery Guide. */
.apf-purchase-guide-hero p + p {
  margin-top: 10px;
}

.apf-purchase-guide-notice {
  margin: 0 0 34px;
  padding: 22px 24px;
  border: 1px solid #efd6dc;
  border-radius: 12px;
  background: #fff7f9;
}

.apf-purchase-guide-notice h2 {
  margin: 4px 0 8px;
  color: var(--ap-navy);
  font-size: 21px;
  line-height: 1.25;
}

.apf-purchase-guide-notice p:last-child {
  margin: 0;
  color: #4b5260;
  font-size: 15.5px;
  line-height: 1.7;
}

.apf-purchase-guide-flow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.apf-purchase-guide-flow-card,
.apf-purchase-guide-role-card,
.apf-purchase-guide-package-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}

.apf-purchase-guide-flow-card h3,
.apf-purchase-guide-role-card h3,
.apf-purchase-guide-package-card h3 {
  margin: 8px 0 8px;
  color: var(--ap-navy);
  font-size: 18px;
  line-height: 1.3;
}

.apf-purchase-guide-flow-card p,
.apf-purchase-guide-role-card p,
.apf-purchase-guide-role-card li,
.apf-purchase-guide-package-card p,
.apf-purchase-guide-package-card li {
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.65;
}

.apf-purchase-guide-flow-card p:last-child,
.apf-purchase-guide-role-card p:last-child,
.apf-purchase-guide-package-card p:last-child {
  margin-bottom: 0;
}

.apf-purchase-guide-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #fbe9ee;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}

.apf-purchase-guide-roles,
.apf-purchase-guide-support-grid,
.apf-purchase-guide-package-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.apf-purchase-guide-role-card ul,
.apf-purchase-guide-file-list {
  margin: 12px 0 0;
  padding-left: 20px;
}

.apf-purchase-guide-small {
  margin-top: 12px !important;
  padding-top: 12px;
  border-top: 1px solid var(--ap-line);
  font-size: 13.5px !important;
}

.apf-purchase-guide-checklist,
.apf-purchase-guide-steps {
  margin: 16px 0 0;
  padding-left: 22px;
}

.apf-purchase-guide-checklist li,
.apf-purchase-guide-steps li {
  margin: 0 0 8px;
  color: #3f4754;
  font-size: 15.5px;
  line-height: 1.65;
}

.apf-purchase-guide-checklist a,
.apf-purchase-guide-steps a,
.apf-purchase-guide-inline-note a {
  color: var(--ap-navy);
}

.apf-purchase-guide-inline-note,
.apf-purchase-guide-security {
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fafbfc;
}

.apf-purchase-guide-inline-note strong,
.apf-purchase-guide-security strong {
  display: block;
  margin-bottom: 5px;
  color: var(--ap-navy);
  font-size: 14.5px;
}

.apf-purchase-guide-inline-note p,
.apf-purchase-guide-security p {
  margin: 0;
  color: var(--ap-muted);
  font-size: 14px;
  line-height: 1.65;
}

.apf-purchase-guide-package-card code,
.apf-purchase-guide-file-list code {
  overflow-wrap: anywhere;
  color: var(--ap-navy);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13.5px;
}

.apf-purchase-guide-package-card > code {
  display: inline-block;
  margin: 2px 0 8px;
  padding: 5px 7px;
  border-radius: 5px;
  background: #f4f5f7;
}

.apf-purchase-guide-related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 18px !important;
}

.apf-purchase-guide-related-links a {
  color: var(--ap-navy);
  font-size: 14.5px;
  font-weight: 700;
}

@media (max-width: 900px) {
  .apf-purchase-guide-flow,
  .apf-purchase-guide-roles,
  .apf-purchase-guide-support-grid,
  .apf-purchase-guide-package-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .apf-purchase-guide-notice {
    margin-bottom: 24px;
    padding: 18px;
  }

  .apf-purchase-guide-flow-card,
  .apf-purchase-guide-role-card,
  .apf-purchase-guide-package-card {
    padding: 16px;
  }

  .apf-purchase-guide-checklist li,
  .apf-purchase-guide-steps li {
    font-size: 14.5px;
  }

  .apf-purchase-guide-related-links {
    flex-direction: column;
    gap: 8px;
  }
}

.apf-checkout-note a,
.apf-checkout-tab-note a {
  color: var(--ap-navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.apf-purchase-guide-hero > p:not(.apf-home-kicker) {
  max-width: 800px;
  margin-bottom: 0;
  color: var(--ap-muted);
  font-size: 16px;
  line-height: 1.7;
}


/* v0.4.40 — Professional review / source-backed Home section. */
.apf-home-professional-review .apf-home-section-head { max-width: 860px; }
.apf-home-problem-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.apf-home-professional-review .apf-home-problem-card { min-width: 0; padding: 24px; border: 1px solid var(--ap-line); border-radius: 10px; background: #fff; }
.apf-home-professional-review .apf-home-problem-label { color: var(--ap-navy); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.apf-home-professional-review .apf-home-problem-card h3 { margin: 10px 0 12px; color: var(--ap-navy); font-size: 22px; line-height: 1.2; }
.apf-home-professional-review .apf-home-problem-card > p { margin: 0; color: var(--ap-muted); font-size: 14.5px; line-height: 1.6; }
.apf-home-professional-review .apf-home-solution { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--ap-line); }
.apf-home-professional-review .apf-home-solution strong, .apf-home-professional-review .apf-home-solution span { display: block; }
.apf-home-professional-review .apf-home-solution strong { color: var(--ap-navy); font-size: 13.5px; }
.apf-home-professional-review .apf-home-solution span { margin-top: 6px; color: #343943; font-size: 13.5px; line-height: 1.55; }
.apf-home-research-note { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--ap-line); border-radius: 9px; background: var(--ap-soft); }
.apf-home-research-note > strong, .apf-home-research-note > span { display: block; }
.apf-home-research-note > strong { color: var(--ap-navy); font-size: 14.5px; }
.apf-home-research-note > span { margin-top: 5px; color: var(--ap-muted); font-size: 13.5px; line-height: 1.5; }
.apf-home-research-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 10px; }
.apf-home-research-links a { color: var(--ap-navy); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 900px) { .apf-home-problem-grid-three { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .apf-home-professional-review .apf-home-problem-card { padding: 20px 18px; } .apf-home-research-links { flex-direction: column; gap: 7px; } }

.apf-home-sora-origin-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 28px; align-items: stretch; }
.apf-about-main .apf-home-sora-origin-grid { grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); align-items: start; }
.apf-home-sora-origin .apf-home-section-head { max-width: 820px; }
.apf-home-sora-origin .apf-home-section-head > p:last-child { margin-top: 12px; }
.apf-home-sora-origin-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ap-line); border: 1px solid var(--ap-line); border-radius: 10px; overflow: hidden; }
.apf-home-sora-origin-facts > div { padding: 18px; background: #fff; }
.apf-home-sora-origin-facts strong, .apf-home-sora-origin-facts span { display: block; }
.apf-home-sora-origin-facts strong { color: var(--ap-navy); font-size: 15.5px; line-height: 1.3; }
.apf-home-sora-origin-facts span { margin-top: 5px; color: var(--ap-muted); font-size: 13px; line-height: 1.45; }
.apf-home-sora-origin-source { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--ap-line); }
.apf-home-sora-origin-source strong { color: var(--ap-navy); font-size: 13px; }
.apf-home-sora-origin-source a { color: var(--ap-navy); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 900px) { .apf-home-sora-origin-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .apf-home-sora-origin-facts { grid-template-columns: 1fr; } .apf-home-sora-origin-source { flex-direction: column; align-items: flex-start; gap: 7px; } }

/* v0.4.43 — durable research summaries */
.apf-home-research-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.apf-home-research-item {
    padding: 14px 15px;
    border: 1px solid var(--ap-line);
    border-radius: 8px;
    background: #fff;
}
.apf-home-research-item > strong {
    display: block;
    color: var(--ap-navy);
    font-size: 13.5px;
    line-height: 1.35;
}
.apf-home-research-item p {
    margin: 8px 0 0;
    color: var(--ap-text, #172033);
    font-size: 13px;
    line-height: 1.55;
}
.apf-home-research-item small {
    display: block;
    margin-top: 8px;
    color: var(--ap-muted);
    font-size: 12px;
    line-height: 1.5;
}
.apf-home-research-item a {
    display: inline-block;
    margin-top: 9px;
    color: var(--ap-navy);
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.apf-home-research-disclaimer {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--ap-line);
    color: var(--ap-muted);
    font-size: 12px;
    line-height: 1.5;
}
@media (max-width: 900px) {
    .apf-home-research-grid { grid-template-columns: 1fr; }
}

/* v0.4.44 — Home information hierarchy */
.apf-home-research-compact .apf-home-research-note {
    padding: 16px 18px;
}
.apf-home-research-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
}
.apf-home-research-heading h2 {
    margin: 2px 0 0;
    font-size: 22px;
    line-height: 1.2;
}
.apf-home-research-heading > span {
    color: var(--ap-muted);
    font-size: 12px;
    white-space: nowrap;
}
.apf-home-research-compact .apf-home-research-note > p {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.55;
}
.apf-home-research-summary {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}
.apf-home-research-summary > div {
    padding:11px 12px;
    border:1px solid var(--ap-line);
    border-radius:7px;
    background:#fff;
}
.apf-home-research-summary strong {
    display:block;
    color:var(--ap-navy);
    font-size:12px;
    line-height:1.3;
}
.apf-home-research-summary span {
    display:block;
    margin-top:5px;
    color:var(--ap-text,#172033);
    font-size:12px;
    line-height:1.5;
}
.apf-home-research-compact .apf-home-research-links {
    margin-top:10px;
}
.apf-home-research-compact .apf-home-research-links a {
    font-size:12px;
    font-weight:700;
}
.apf-home-research-compact .apf-home-research-disclaimer {
    margin-top:10px;
    padding-top:9px;
    border-top:1px solid var(--ap-line);
    font-size:11px;
    line-height:1.5;
}
@media (max-width:900px) {
    .apf-home-research-summary { grid-template-columns:1fr; }
    .apf-home-research-heading { align-items:flex-start; flex-direction:column; gap:4px; }
    .apf-home-research-heading > span { white-space:normal; }
}

/* v0.4.45 — emphasize the two core value pillars */
.apf-home-two-pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 30px}
.apf-home-two-pillars article{padding:20px 22px;border:1px solid var(--ap-line);border-radius:9px;background:#fff}
.apf-home-two-pillars article:first-child{border-top:3px solid var(--ap-navy)}
.apf-home-two-pillars article:last-child{border-top:3px solid #d9a7c5}
.apf-home-two-pillars p{margin:0 0 7px;color:var(--ap-muted);font-size:12px;font-weight:800;letter-spacing:.08em}
.apf-home-two-pillars h2{margin:0;color:var(--ap-navy);font-size:20px;line-height:1.25}
.apf-home-two-pillars span{display:block;margin-top:8px;color:var(--ap-text,#172033);font-size:13px;line-height:1.55}
@media (max-width:700px){.apf-home-two-pillars{grid-template-columns:1fr}}

/* v0.4.46 — move detailed purchase instructions to Purchase Guide */
.apf-home-before-buy-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:18px 0 30px;
    padding:20px 22px;
    border:1px solid var(--ap-line);
    border-radius:9px;
    background:#fff;
}
.apf-home-before-buy-cta h2{
    margin:2px 0 0;
    color:var(--ap-navy);
    font-size:20px;
    line-height:1.25;
}
.apf-home-before-buy-cta p:not(.apf-home-kicker){
    margin:7px 0 0;
    color:var(--ap-text,#172033);
    font-size:13px;
    line-height:1.55;
    max-width:720px;
}
.apf-home-before-buy-cta .apf-home-primary{
    flex:0 0 auto;
    white-space:nowrap;
}
@media(max-width:800px){
    .apf-home-before-buy-cta{align-items:flex-start;flex-direction:column}
    .apf-home-before-buy-cta .apf-home-primary{white-space:normal}
}

/* v0.4.60 — site-wide commercial-use policy hierarchy */
.apf-home-license-overview{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    margin:18px 0 30px;
    padding:22px 24px;
    border:1px solid #e2cbd3;
    border-radius:9px;
    background:#fffafb;
}
.apf-home-license-overview h2{
    margin:2px 0 8px;
    color:var(--ap-navy);
    font-size:clamp(20px,2.2vw,27px);
    line-height:1.2;
}
.apf-home-license-overview p:not(.apf-home-kicker){
    margin:7px 0 0;
    max-width:820px;
    color:var(--ap-text,#172033);
    font-size:13.5px;
    line-height:1.6;
}
.apf-home-license-overview-actions{flex:0 0 auto}
.apf-home-license-overview-actions .apf-home-primary{white-space:nowrap}
.apf-commercial-license-note{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin:0 0 4px;
    padding:12px 14px;
    border:1px solid #e2cbd3;
    border-radius:8px;
    background:#fffafb;
    color:var(--ap-muted);
    font-size:13px;
    line-height:1.6;
}
.apf-commercial-license-note strong{
    flex:0 0 auto;
    color:var(--ap-navy);
    font-size:13px;
    font-weight:800;
}
.apf-commercial-license-note a{
    color:#9a3158 !important;
    font-weight:800;
    text-decoration:underline !important;
    text-underline-offset:2px;
}
.apf-commercial-license-note a:hover,.apf-commercial-license-note a:focus-visible{color:#6f1f3e !important}
@media(max-width:800px){
    .apf-home-license-overview{align-items:flex-start;flex-direction:column}
    .apf-home-license-overview-actions .apf-home-primary{white-space:normal}
}

/* v0.4.55 — make every Gumroad Support link clearly visible site-wide */
.apf-gumroad-support-link {
    color: #b23b5a !important;
    font-weight: 800;
    text-decoration: underline !important;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
}
.apf-gumroad-support-link:hover,
.apf-gumroad-support-link:focus-visible {
    color: #8f2945 !important;
}

/* v0.4.50 — full License Terms definition blocks */
.apf-license-definitions {
    display: grid;
    gap: 0;
    border: 1px solid #d8dee8;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.apf-license-definitions > div {
    display: grid;
    grid-template-columns: minmax(150px, 0.34fr) minmax(0, 1fr);
    gap: 18px;
    padding: 13px 16px;
    border-bottom: 1px solid #d8dee8;
}
.apf-license-definitions > div:last-child { border-bottom: 0; }
.apf-license-definitions strong { font-weight: 700; color: #102f57; }
.apf-license-definitions span { min-width: 0; }
/* v0.4.372 — License Terms heading hierarchy: parent sections remain visually stronger than numbered subsections. */
.apf-license-wrap .apf-policy-section > .apf-home-kicker {
    margin-bottom: 7px;
    font-size: clamp(17px, 1.5vw, 18.5px);
    line-height: 1.28;
    letter-spacing: .045em;
}
.apf-license-wrap .apf-policy-section > h2 {
    font-size: clamp(22px, 2.2vw, 25px);
    line-height: 1.24;
}
.apf-license-content h3,
.apf-license-wrap .apf-policy-content h3 {
    margin-top: 28px;
    margin-bottom: 10px;
    color: var(--ap-navy);
    font-size: clamp(16.5px, 1.35vw, 17.5px);
    line-height: 1.35;
    font-weight: 750;
}
.apf-license-wrap .apf-policy-content ul { padding-left: 22px; }
.apf-license-wrap .apf-policy-content li { margin-bottom: 7px; }
@media (max-width: 700px) {
    .apf-license-definitions > div { grid-template-columns: 1fr; gap: 5px; }
}

/* v0.4.82 — Complete Libraries purchase directly from the Libraries overview. */
.apf-category-complete-preview-row,
.apf-category-complete-main-link,
.apf-master-complete-main-link {
  cursor: default;
}

.apf-complete-inline-detail {
  margin-top: 5px !important;
  color: var(--ap-muted);
  font-size: 12px;
  line-height: 1.45;
}

@media (max-width: 620px) {
  .apf-mobile-complete-purchase-row {
    grid-template-columns: 50px minmax(0, 1fr) auto;
  }

  .apf-mobile-complete-purchase {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 9px;
    border-radius: 5px;
    background: var(--ap-navy);
    color: #fff !important;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .02em;
    text-decoration: none !important;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .apf-mobile-complete-unavailable {
    color: var(--ap-muted);
    font-size: 10px;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
  }
}

/* v0.4.84 — Master Complete preview sizing aligned with category Complete cards; Browse footer CTA removed. */
.apf-complete-purchase-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  min-width: 220px;
  min-height: 38px;
  margin-top: 5px;
  padding: 0 16px;
  border: 1px solid #090b0f;
  border-radius: 6px;
  background: #090b0f;
  color: #fff !important;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .025em;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.apf-complete-purchase-button:hover,
.apf-complete-purchase-button:focus-visible {
  background: #1b1d22;
  border-color: #1b1d22;
  color: #fff !important;
  transform: translateY(-1px);
}

@media (max-width: 760px) {
  .apf-complete-purchase-button {
    justify-self: start;
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 620px) {
  .apf-mobile-complete-purchase {
    background: #090b0f;
    border: 1px solid #090b0f;
  }

  .apf-mobile-complete-purchase:hover,
  .apf-mobile-complete-purchase:focus-visible {
    background: #1b1d22;
    border-color: #1b1d22;
  }
}

/* v0.4.85 — Complete Library overview purchase information and alignment. */
.apf-category-complete-body,
.apf-master-complete-body {
  grid-template-columns: minmax(0, 1fr) 240px;
  gap: 24px;
  align-items: end;
}

.apf-category-complete-main-link,
.apf-master-complete-main-link {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 4px;
}

.apf-category-complete-main-link h3,
.apf-master-complete-main-link h2 {
  margin-top: 0;
  margin-bottom: 2px;
}

.apf-complete-inline-detail {
  margin-top: 1px !important;
}

.apf-category-complete-price,
.apf-master-complete-price {
  width: 240px;
  min-width: 240px;
  justify-self: end;
  align-self: end;
}

.apf-category-complete-price .apf-complete-purchase-button,
.apf-master-complete-price .apf-complete-purchase-button {
  width: 100%;
  min-width: 0;
}

@media (max-width: 760px) {
  .apf-category-complete-body,
  .apf-master-complete-body {
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
  }

  .apf-category-complete-price,
  .apf-master-complete-price {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
    align-self: start;
  }
}

/* v0.4.89 — Volume detail Complete offer cleanup. */
.apf-library-complete-offer > div { gap: 5px; }


/* v0.4.90 — Complete Library mobile hierarchy aligned with desktop purchase information. */
@media (max-width: 620px) {
  .apf-master-complete-card.apf-desktop-hierarchy-cards {
    display: none !important;
  }

  .apf-library-mobile-master-list {
    margin-top: 18px;
    margin-bottom: 18px;
  }

  .apf-mobile-complete-purchase-row {
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: start;
    min-height: 0;
    padding: 10px;
  }

  .apf-mobile-complete-purchase-row .apf-mobile-hierarchy-code {
    padding-top: 2px;
  }

  .apf-mobile-complete-purchase-row .apf-mobile-hierarchy-copy small + small {
    margin-top: 3px;
  }

  .apf-mobile-complete-purchase,
  .apf-mobile-complete-unavailable {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 4px;
  }

  .apf-mobile-complete-purchase {
    min-height: 34px;
    padding: 0 12px;
    font-size: 11px;
    white-space: normal;
    text-align: center;
  }

  .apf-mobile-complete-unavailable {
    text-align: left;
  }
}


/* v0.4.91 — Libraries desktop readability polish from full-page visual audit. */
.apf-library-group-meta {
  font-size: 13.5px;
  line-height: 1.4;
}

.apf-category-complete-card p,
.apf-category-complete-price small,
.apf-master-complete-card p,
.apf-master-complete-price small {
  font-size: 13.5px;
  line-height: 1.5;
}

.apf-category-complete-label,
.apf-master-complete-main-link .apf-home-kicker {
  font-size: 13px;
}

.apf-libraries-pricing-note {
  font-size: 14.5px;
  line-height: 1.55;
  padding: 15px 17px;
}

@media (max-width: 1000px) and (min-width: 761px) {
  .apf-libraries-header {
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 24px;
  }

  .apf-libraries-summary strong {
    font-size: 34px;
  }
}


/* v0.4.92 — site-wide typography readability uplift.
   Small fixed text sizes were raised consistently while headings (18px+) remain unchanged,
   preserving the existing information hierarchy and layout proportions. */


/* v0.4.94 — final secondary-text readability pass from live-page visual audit.
   Primary headings, prices, product names and primary actions remain unchanged. */

/* Shared chrome used across Aoyama Persona front-end pages. */
.apf-breadcrumb { font-size: 14.5px; line-height: 1.45; }
body[class*="apf-"] .site-description { font-size: 13.5px; line-height: 1.4; }
body[class*="apf-"] .site-footer a,
body[class*="apf-"] .site-footer p,
body[class*="apf-"] .site-footer small,
body[class*="apf-"] .site-info,
body[class*="apf-"] .site-info a { font-size: 14px; line-height: 1.5; }

/* Home: only supporting copy and source/footer-style information is raised. */
.apf-home-hero-note span,
.apf-home-package-grid span,
.apf-home-links span,
.apf-home-links a,
.apf-home-proof-grid span,
.apf-home-professional-review .apf-home-problem-card > p,
.apf-home-professional-review .apf-home-solution strong,
.apf-home-professional-review .apf-home-solution span,
.apf-home-research-note > span,
.apf-home-sora-origin-facts span,
.apf-home-sora-origin-source strong,
.apf-home-sora-origin-source a,
.apf-home-two-pillars span,
.apf-home-before-buy-cta p:not(.apf-home-kicker),
.apf-home-license-overview p:not(.apf-home-kicker) {
  font-size: 14.5px;
}
.apf-home-professional-review .apf-home-problem-label,
.apf-home-two-pillars p { font-size: 13.5px; }
.apf-home-research-links a,
.apf-home-research-heading > span,
.apf-home-research-compact .apf-home-research-note > p,
.apf-home-research-summary strong,
.apf-home-research-summary span,
.apf-home-research-compact .apf-home-research-links a,
.apf-home-research-compact .apf-home-research-disclaimer,
.apf-home-research-item p,
.apf-home-research-item small,
.apf-home-research-item a,
.apf-home-research-disclaimer {
  font-size: 13.5px;
  line-height: 1.55;
}

/* Browse: labels and explanatory copy, not product IDs/buttons. */
.apf-browse-count span { font-size: 14px; }
.apf-browse-filters label { font-size: 13.5px; }
.apf-browse-card-body p { font-size: 14.5px; line-height: 1.45; }
.apf-checkout-tab-note,
.apf-commercial-license-note,
.apf-commercial-license-note strong { font-size: 14.5px; }

/* Libraries overview: supporting counts, bundle details and savings. */
.apf-libraries-summary small { font-size: 14px; line-height: 1.45; }
.apf-library-group-meta { font-size: 14.5px; }
.apf-library-volume-meta { font-size: 14px; }
.apf-category-complete-card p,
.apf-category-complete-price small,
.apf-master-complete-card p,
.apf-master-complete-price small { font-size: 14.5px; line-height: 1.5; }

/* Volume detail: descriptive and package-support copy. */
.apf-library-detail-intro { font-size: 15.5px; }
.apf-library-detail-stats strong { font-size: 14px; }
.apf-library-detail-stats small { font-size: 13.5px; line-height: 1.35; }
.apf-library-preview-head p { font-size: 14.5px; line-height: 1.45; }
.apf-library-complete-offer small { font-size: 14.5px; line-height: 1.5; }
.apf-library-notice-card li { font-size: 14.5px; line-height: 1.5; }
.apf-library-links-card p:not(.apf-home-kicker) { font-size: 15.5px; }

/* Character detail: move preview-delivery clarification into the media explanation
   and raise supporting purchase/package text without changing the main hierarchy. */
.apf-preview-delivery-note {
  margin: 2px 0 0;
  color: var(--ap-muted);
  font-size: 14px;
  line-height: 1.45;
}
.apf-detail-media-copy .apf-preview-heading p,
.apf-detail-media-copy .apf-origin-caption { font-size: 14px; line-height: 1.45; }
.apf-character-type { font-size: clamp(17px, 1.45vw, 20px); }
.apf-meta-strip { font-size: 14.5px; }
.apf-hero-summary-title { font-size: 13.5px; }
.apf-hero-summary-item { font-size: 14px; line-height: 1.4; }
.apf-checkout-note { font-size: 14.5px; line-height: 1.5; }
.apf-package-item p { font-size: 14.5px; line-height: 1.5; }
.apf-package-footnote { font-size: 14.5px; line-height: 1.5; }
.apf-sample-files small,
.apf-small-note { font-size: 14px; line-height: 1.45; }
.apf-trust-strip small { font-size: 14px; line-height: 1.4; }

@media (max-width: 620px) {
  .apf-breadcrumb { font-size: 14px; }
  .apf-detail-media-copy .apf-preview-heading p,
  .apf-detail-media-copy .apf-origin-caption,
  .apf-preview-delivery-note { font-size: 13.5px; }
  .apf-browse-filters label { font-size: 13px; }
}

/* v0.4.96 — page-end catalog CTA is separate from the global legal/support footer. */
.apf-catalog-end-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 32px 0 8px;
  margin-top: 34px;
  border-top: 1px solid #dbe2ea;
}
.apf-catalog-end-cta h2 {
  margin: 6px 0 0;
  color: var(--ap-navy);
}
.apf-catalog-end-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
@media (max-width: 760px) {
  .apf-catalog-end-cta {
    display: block;
    padding-top: 24px;
  }
  .apf-catalog-end-actions {
    justify-content: flex-start;
    margin-top: 18px;
  }
}

/* v0.4.108 — Home Sample overview actions */
.apf-home-sample-overview .apf-home-license-overview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.apf-home-sample-overview .apf-home-license-overview-actions .apf-home-secondary {
  white-space: nowrap;
}
@media (max-width: 800px) {
  .apf-home-sample-overview .apf-home-license-overview-actions {
    justify-content: flex-start;
  }
  .apf-home-sample-overview .apf-home-license-overview-actions .apf-home-secondary {
    white-space: normal;
  }
}

/* v0.4.110: Home cast-type links land at the start of each Libraries category. */
.apf-library-group h2[id^="apf-library-"] {
  scroll-margin-top: 100px;
}

/* v0.4.112 — Purchase Guide rebuilt around verification → secure Gumroad checkout → delivery. */
.apf-purchase-guide-trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.apf-purchase-guide-trust-strip > div {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}

.apf-purchase-guide-trust-strip strong,
.apf-purchase-guide-trust-strip span {
  display: block;
}

.apf-purchase-guide-trust-strip strong {
  color: var(--ap-navy);
  font-size: 15px;
  line-height: 1.35;
}

.apf-purchase-guide-trust-strip span {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 14px;
  line-height: 1.6;
}

.apf-purchase-guide-sample-note {
  background: #fff7f9;
  border-color: #efd6dc;
}

.apf-purchase-guide-security-grid,
.apf-purchase-guide-results-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.apf-purchase-guide-results-grid .apf-purchase-guide-role-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.apf-purchase-guide-gumroad-security .apf-purchase-guide-role-card a,
.apf-purchase-guide-official-links a,
.apf-purchase-guide-domain-check a {
  color: var(--ap-navy);
  font-weight: 700;
}

.apf-purchase-guide-domain-check code {
  color: var(--ap-navy);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .95em;
}

.apf-purchase-guide-official-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.apf-purchase-guide-official-links a {
  display: block;
  padding: 15px 16px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
  text-decoration: none;
}

.apf-purchase-guide-official-links a:hover {
  border-color: #aeb7c4;
  background: #fafbfc;
}

.apf-purchase-guide-official-links strong,
.apf-purchase-guide-official-links span {
  display: block;
}

.apf-purchase-guide-official-links strong {
  font-size: 14.5px;
}

.apf-purchase-guide-official-links span {
  margin-top: 4px;
  color: var(--ap-muted);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.45;
}

.apf-purchase-guide-visual {
  margin: 20px 0 0;
  padding: 14px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: #fafbfc;
}

.apf-purchase-guide-visual img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  background: #fff;
}

.apf-purchase-guide-visual figcaption {
  margin: 10px 4px 2px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.55;
}

.apf-purchase-guide-visual figcaption strong {
  color: var(--ap-navy);
}

.apf-purchase-guide-numbered-checks li strong {
  color: var(--ap-navy);
}

@media (max-width: 900px) {
  .apf-purchase-guide-trust-strip,
  .apf-purchase-guide-security-grid,
  .apf-purchase-guide-results-grid {
    grid-template-columns: 1fr;
  }

  .apf-purchase-guide-results-grid .apf-purchase-guide-role-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .apf-purchase-guide-official-links {
    grid-template-columns: 1fr;
  }

  .apf-purchase-guide-visual {
    margin-top: 16px;
    padding: 8px;
  }

  .apf-purchase-guide-visual figcaption {
    margin: 8px 2px 2px;
    font-size: 13px;
  }
}

@media (max-width: 560px) {
  .apf-purchase-guide-visual {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .apf-purchase-guide-visual img {
    min-width: 680px;
  }
}


/* v0.4.116 — source-first Character hierarchy */
.apf-character-origin-priority {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #f7fafd;
}
.apf-character-origin-priority strong {
  display: block;
  margin-bottom: 5px;
  color: var(--ap-navy);
  font-size: 13.5px;
  line-height: 1.25;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.apf-character-origin-priority span {
  display: block;
  color: #445066;
  font-size: 14px;
  line-height: 1.5;
}
@media (max-width: 620px) {
  .apf-character-origin-priority { padding: 13px 14px; }
  .apf-character-origin-priority span { font-size: 13.5px; }
}
/* v0.4.120 — Browse thumbnails reduced by about 40% on tablet/desktop.
   The former four-column desktop card width was ~347px inside the 1440px catalog;
   the new 208px card width keeps each photo at ~60% of that size and shows more
   Characters per row. Mobile keeps the existing compact three-column layout. */
@media (min-width: 621px) {
  .apf-browse-results .apf-browse-grid {
    grid-template-columns: repeat(auto-fill, minmax(190px, 208px));
    justify-content: start;
    align-items: start;
    gap: 18px;
  }
}


/* v0.4.124 — About page de-duplication and professional-review refinement. */
.apf-about-main .apf-home-problem-grid-three {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}
.apf-about-review-note {
  display: grid;
  gap: 6px;
  margin-top: 22px;
  padding: 16px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: var(--ap-soft);
}
.apf-about-review-note strong {
  color: var(--ap-navy);
  font-size: 14.5px;
  line-height: 1.45;
}
.apf-about-review-note span {
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.6;
}
@media (max-width: 900px) {
  .apf-about-main .apf-home-problem-grid-three {
    grid-template-columns: 1fr;
  }
}


/* v0.4.126 — selected-quality context from historical Sora2 user response. */
.apf-about-selection-response {
  margin-top: 14px;
  padding: 18px 20px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: var(--ap-soft, #f8fafc);
}
.apf-about-selection-response strong,
.apf-about-selection-response span { display: block; }
.apf-about-selection-response strong { color: var(--ap-navy); font-size: 15.5px; }
.apf-about-selection-response span { margin-top: 7px; color: var(--ap-muted); font-size: 13.5px; line-height: 1.6; }


/* v0.4.130 — rebalance About without repeating Sora facts. */
.apf-about-license-summary {
  padding: 24px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: var(--ap-soft, #f8fafc);
}
.apf-about-license-summary h2 {
  margin: 6px 0 18px;
  color: var(--ap-navy);
  font-size: 28px;
  line-height: 1.15;
}
.apf-about-license-summary-row {
  padding: 13px 0;
  border-top: 1px solid var(--ap-line);
}
.apf-about-license-summary-row strong,
.apf-about-license-summary-row span { display: block; }
.apf-about-license-summary-row strong { color: var(--ap-navy); font-size: 13px; }
.apf-about-license-summary-row span { margin-top: 5px; color: var(--ap-muted); font-size: 13.5px; line-height: 1.55; }

.apf-about-working-reference-note {
  margin: 0;
  padding: 22px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: var(--ap-soft, #f8fafc);
}
.apf-about-working-reference-note h3 {
  margin: 6px 0 10px;
  color: var(--ap-navy);
  font-size: 25px;
  line-height: 1.15;
}
.apf-about-working-reference-note > p:not(.apf-home-kicker) {
  margin: 0;
  color: var(--ap-muted);
  font-size: 14px;
  line-height: 1.6;
}
.apf-about-working-reference-items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 18px;
}
.apf-about-working-reference-items span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--ap-line);
  color: var(--ap-muted);
  font-size: 12.5px;
}
.apf-about-working-reference-items strong {
  color: var(--ap-navy);
  font-size: 12.5px;
}
@media (max-width: 900px) {
  .apf-about-hero,
  .apf-about-main .apf-home-sora-origin-grid {
    grid-template-columns: 1fr;
  }
  .apf-about-license-summary { max-width: 680px; }
}

/* v0.4.131 — use explicit OpenAI en-US source paths for About external links. */

/* Sample payment notice and explicit acceptance. */
.apf-sample-payment-notice { margin: 16px 0; padding: 16px; border: 1px solid #efb8c9; border-radius: 8px; background: #fff7fa; color: #102849; font-size: 14px; line-height: 1.65; }
.apf-sample-payment-notice p { margin: 10px 0 0; }
.apf-sample-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.65; margin: 16px 0; }
.apf-sample-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 4px; accent-color: #102849; }
.apf-sample-checkout .apf-buy-button:disabled { opacity: .45; cursor: not-allowed; }

/* Sample: keep access conditions below the balanced media/product overview. */
.apf-sample-access { margin: 28px 0; padding: 24px; border: 1px solid #dce3ee; border-radius: 12px; background: #fff; }
.apf-sample-access .apf-sample-checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px 28px; align-items: start; }
.apf-sample-access .apf-sample-payment-notice { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
.apf-sample-access .apf-sample-consent { grid-column: 2; margin: 0; }
.apf-sample-access .apf-sample-detail-action { grid-column: 2; margin: 0; align-self: end; }
.apf-sample-access .apf-buy-button { width: 100%; justify-content: center; }
.apf-sample-terms-cta { margin-top: 16px; }
.apf-sample-terms-button {
  min-height: 52px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border: 2px solid #e8afc0;
  border-radius: 8px;
  background: #fff3f7;
  color: var(--ap-navy) !important;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .01em;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.apf-sample-terms-button:hover {
  background: #ffeaf1;
  border-color: #d98fa5;
  transform: translateY(-1px);
}
.apf-sample-access .apf-checkout-note { margin: 16px 0 0; }
.apf-sample-access noscript { grid-column: 2; }
@media (max-width: 700px) {
 .apf-sample-access { padding: 18px; margin: 22px 0; }
 .apf-sample-access .apf-sample-checkout { display: flex; flex-direction: column; gap: 18px; }
 .apf-sample-access .apf-sample-detail-action { width: 100%; }
}

/* About: introductory copy above a full-width, three-column summary. */
.apf-about-main .apf-about-hero {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 26px;
  padding: 22px 0 30px;
}
.apf-about-main .apf-about-hero h1 {
  max-width: 900px;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.15;
}
.apf-about-main .apf-about-lead { max-width: 900px; }

}

/* Home: direct link to the supporting transparency context. */
.apf-home-hero-copy a.apf-professional-context-link {
  display: inline-block;
  margin: 8px 0 4px;
  padding: 6px 0;
  color: #102b4e;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.apf-home-hero-copy a.apf-professional-context-link:hover { color: #c63561; }
.apf-home-hero-copy a.apf-professional-context-link:focus-visible {
  outline: 2px solid #102b4e;
  outline-offset: 4px;
}

/* v0.4.152: purchase guidance beside every catalog purchase control. */
a.apf-purchase-guide-link {
  display: block;
  width: fit-content;
  margin-top: 8px;
  color: #102b4e;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 3px;
}
a.apf-purchase-guide-link:hover { color: #c63561; }
a.apf-purchase-guide-link:focus-visible { outline: 2px solid #102b4e; outline-offset: 3px; }
.apf-browse-card-body > .apf-purchase-guide-link { margin-left: auto; }
.apf-mobile-complete-purchase-row > .apf-purchase-guide-link { grid-column: 1 / -1; justify-self: end; }
.apf-sample-detail-action { flex-wrap: wrap; }
.apf-sample-detail-action > .apf-purchase-guide-link { flex-basis: 100%; }


/* v0.4.183 — keep a single divider between evaluation information and final catalog CTA. */
.apf-home-why {
  border-bottom: 0;
}


/* v0.4.184 — Home secure checkout overview. */
.apf-home-security .apf-home-section-head {
  max-width: 820px;
}
.apf-home-security-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.apf-home-security-grid > div {
  min-width: 0;
  padding: 19px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
}
.apf-home-security-grid strong,
.apf-home-security-grid span {
  display: block;
}
.apf-home-security-grid strong {
  color: var(--ap-navy);
  font-size: 15px;
  line-height: 1.35;
}
.apf-home-security-grid span {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.6;
}
.apf-home-security .apf-home-actions {
  margin-top: 20px;
}
@media (max-width: 800px) {
  .apf-home-security-grid {
    grid-template-columns: 1fr;
  }
}

/* v0.4.188 — Character detail remains video-only; restore the approved pre-v0.4.187 video size. */
.apf-detail-media-frame.apf-detail-media-video-only {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  padding: 0;
  background: #f7f8fa;
}

.apf-detail-media-video-only .apf-character-video-column {
  width: min(100%, 235px);
  max-width: 235px;
  margin: 0 auto;
  background: transparent;
}

.apf-detail-media-video-only .apf-video-shell {
  width: 100%;
  max-width: 235px;
  margin: 0 auto;
}

.apf-detail-media-video-only .apf-preview-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}

@media (min-width: 761px) and (max-width: 1050px) {
  .apf-detail-media-video-only .apf-character-video-column,
  .apf-detail-media-video-only .apf-video-shell {
    max-width: 215px;
  }
}

@media (max-width: 760px) {
  .apf-detail-media-video-only .apf-character-video-column,
  .apf-detail-media-video-only .apf-video-shell {
    width: min(100%, 235px);
    max-width: 235px;
  }
}

/* v0.4.189 — Rebalance the video-only Character hero without enlarging the approved 3-second preview. */
.apf-character-hero.apf-character-hero-video-only {
  align-items: start;
}

.apf-character-hero-video-only .apf-detail-media-pair {
  width: 100%;
  max-width: 420px;
}

.apf-character-hero-video-only .apf-detail-media-frame.apf-detail-media-video-only {
  width: min(100%, 300px);
  margin-left: auto;
  margin-right: auto;
}

.apf-character-hero-video-only .apf-detail-media-copy {
  width: 100%;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

.apf-character-hero-video-only .apf-character-info {
  width: 100%;
  max-width: 520px;
}

@media (min-width: 761px) {
  .apf-character-hero.apf-character-hero-video-only {
    grid-template-columns: minmax(320px, 420px) minmax(360px, 520px);
    justify-content: center;
    gap: clamp(26px, 3vw, 40px);
  }
}



/* v0.4.195 — Character detail de-duplication without weakening approved sales pillars. */
.apf-character-source-bar.apf-character-source-bar-back-only {
  justify-content: flex-end;
  margin: -4px 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
}
.apf-character-package-summary { display: block; }
.apf-character-package-summary .apf-hero-summary-list {
  display: grid;
  gap: 0;
}
.apf-character-package-summary .apf-hero-summary-item {
  display: grid;
  gap: 2px;
  padding: 8px 0;
  border-bottom: 1px solid var(--ap-line);
}
.apf-character-package-summary .apf-hero-summary-item:last-child { border-bottom: 0; }
.apf-character-package-summary .apf-hero-summary-item strong {
  color: #29374a;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 650;
}
.apf-character-package-summary .apf-hero-summary-item small {
  color: var(--ap-muted);
  font-size: 12.5px;
  line-height: 1.45;
}
.apf-character-license-note {
  margin: 10px 0 0;
  color: #39485b;
  font-size: 13.5px;
  line-height: 1.5;
}
.apf-character-license-note a { color: var(--ap-navy); }
.apf-character-independence-note {
  margin: 5px 0 0;
  color: var(--ap-muted);
  font-size: 12.5px;
  line-height: 1.45;
}
.apf-character-selection-section {
  margin-top: 30px;
  padding: clamp(22px, 2.6vw, 30px);
  border: 1px solid var(--ap-line);
  border-radius: var(--ap-radius);
  background: #fff;
  box-shadow: var(--ap-shadow);
}
.apf-character-selection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.apf-character-selection-card {
  padding: 18px 20px;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #f7fafd;
}
.apf-character-selection-card h3 {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: 15px;
  line-height: 1.35;
}
.apf-character-selection-card p {
  margin: 0;
  color: #445066;
  font-size: 14.5px;
  line-height: 1.6;
}
.apf-character-sample-section { margin-top: 22px; }
.apf-character-sample-card { padding: clamp(22px, 2.6vw, 30px); }
.apf-character-sample-card > p { max-width: 760px; }
.apf-character-sample-card .apf-secondary-button { margin-top: 4px; }
@media (max-width: 760px) {
  .apf-character-selection-grid { grid-template-columns: 1fr; }
  .apf-character-source-bar.apf-character-source-bar-back-only { align-items: flex-end; }
}

/* v0.4.196 — restore the established Character-page iconography and blue/pink accent language
   while keeping the v0.4.195 de-duplicated information architecture. */
.apf-character-package-summary .apf-hero-summary-title {
  display: inline-block;
  margin-bottom: 9px;
  padding: 4px 7px;
  border-radius: 4px;
  background: var(--ap-blue-soft);
  color: #1d62a5;
}
.apf-character-package-summary .apf-hero-summary-item {
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 9px 0;
}
.apf-character-package-icon {
  width: 30px;
  height: 30px;
  margin: 1px 0 0;
  color: var(--ap-navy);
}
.apf-character-package-icon svg {
  width: 27px;
  height: 27px;
}
.apf-character-package-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.apf-character-selection-section {
  background: linear-gradient(110deg, #fff 0%, #fbf7f4 100%);
}
.apf-character-selection-card {
  position: relative;
  overflow: hidden;
}
.apf-character-selection-card-quality {
  border-color: #d8e5f3;
  background: linear-gradient(135deg, #f3f8ff 0%, #fff 78%);
}
.apf-character-selection-card-response {
  border-color: #ead5dc;
  background: linear-gradient(135deg, #fff4f6 0%, #fff 78%);
}
.apf-character-selection-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
}
.apf-character-selection-heading h3 {
  margin: 0;
}
.apf-character-selection-icon {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  background: #fff;
  color: var(--ap-navy);
  box-shadow: 0 0 0 1px rgba(15, 39, 71, .10);
}
.apf-character-selection-card-response .apf-character-selection-icon {
  color: var(--ap-pink);
  box-shadow: 0 0 0 1px rgba(163, 79, 99, .16);
}
.apf-character-selection-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-character-sample-heading {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 4px;
}
.apf-character-sample-heading h2 {
  margin: 0;
}
.apf-character-sample-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  color: var(--ap-navy);
}
.apf-character-sample-icon svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (max-width: 620px) {
  .apf-character-package-summary .apf-hero-summary-item {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 9px;
  }
  .apf-character-package-icon {
    width: 27px;
    height: 27px;
  }
  .apf-character-package-icon svg {
    width: 24px;
    height: 24px;
  }
}

/* v0.4.197 — Character package content moves to one full-width four-column card
   between Sample inspection and Selection; the previous compact hero summary stays removed. */
.apf-character-package-section {
  margin-top: 22px;
}
.apf-character-package-section .apf-character-package-license {
  margin-bottom: 0;
}
.apf-character-package-section .apf-character-package-independence {
  margin-top: 7px;
  font-size: 12.5px;
  line-height: 1.5;
}


/* v0.4.199 — distinguish Product contents from the ZIP delivery format on Character detail. */
.apf-character-package-contents-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.apf-character-package-contents-grid .apf-package-item:nth-child(3) {
  border-right: 0;
  padding-right: 0;
}
.apf-character-delivery-format {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  padding: 15px 17px;
  border: 1px solid #d8e5f3;
  border-radius: 9px;
  background: #f7fafd;
  text-align: left;
}
.apf-character-delivery-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--ap-navy);
}
.apf-character-delivery-icon svg {
  width: 31px;
  height: 31px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-character-delivery-copy { min-width: 0; }
.apf-character-delivery-label {
  display: block;
  margin-bottom: 2px;
  color: #1d62a5;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.apf-character-delivery-copy h3 {
  margin: 0 0 3px;
  color: #171b22;
  font-size: 15px;
  line-height: 1.35;
}
.apf-character-delivery-copy p {
  margin: 0;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.45;
}
@media (max-width: 980px) {
  .apf-character-package-contents-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }
  .apf-character-package-contents-grid .apf-package-item:nth-child(2) {
    border-right: 1px solid var(--ap-line);
  }
  .apf-character-package-contents-grid .apf-package-item:nth-child(3) {
    border-top: 0;
    padding-top: 6px;
  }
}
@media (max-width: 700px) {
  .apf-character-package-contents-grid { grid-template-columns: 1fr; }
  .apf-character-package-contents-grid .apf-package-item,
  .apf-character-package-contents-grid .apf-package-item:first-child,
  .apf-character-package-contents-grid .apf-package-item:last-child {
    padding: 20px 8px;
    border-right: 0;
    border-top: 1px solid var(--ap-line);
  }
  .apf-character-package-contents-grid .apf-package-item:first-child {
    border-top: 0;
    padding-top: 4px;
  }
  .apf-character-package-contents-grid .apf-package-item:nth-child(2) { border-right: 0; }
  .apf-character-package-contents-grid .apf-package-item:nth-child(3) {
    border-top: 1px solid var(--ap-line);
    padding-top: 20px;
  }
  .apf-character-delivery-format {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 11px;
    margin-top: 16px;
    padding: 14px;
  }
  .apf-character-delivery-icon { width: 34px; height: 34px; }
  .apf-character-delivery-icon svg { width: 28px; height: 28px; }
}


/* v0.4.210 — always-visible conventional dropdown chevron for Browse select controls. */
.apf-browse-filters select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5L6 6l4.5-4.5' fill='none' stroke='%230d2c54' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 12px 8px !important;
  padding-right: 32px !important;
  cursor: pointer;
}


/* v0.4.215 — About / Clear Generation Source: concise operational notices. */
.apf-about-origin-notice {
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid #ead2da;
  border-radius: 8px;
  background: #fff8fa;
}
.apf-about-origin-notice .apf-home-kicker {
  margin-bottom: 8px;
}
.apf-about-origin-notice ul {
  margin: 0;
  padding-left: 20px;
}
.apf-about-origin-notice li {
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.55;
}
.apf-about-origin-notice li + li {
  margin-top: 8px;
}
.apf-about-origin-notice strong {
  color: var(--ap-navy);
}

/* v0.4.217 — Home buyer-enablement sales flow.
   Keeps the established white/navy/pale-pink system while reducing Hero cognitive load
   and moving product, evaluation and purchase evidence into a progressive sequence. */
.apf-home-proof-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 760px;
  margin-top: 24px;
}
.apf-home-proof-strip span {
  display: block;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--ap-line);
  border-radius: 8px;
  background: #fff;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.45;
}
.apf-home-proof-strip strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ap-navy);
  font-size: 17px;
  line-height: 1.2;
}
.apf-home-context-note {
  max-width: 900px;
  margin: 20px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--ap-line);
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.6;
}
.apf-home-context-note strong { color: var(--ap-navy); }
.apf-home-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.apf-home-choice-card {
  min-width: 0;
  padding: 28px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}
.apf-home-choice-card h3 {
  margin: 0;
  color: var(--ap-navy);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.2;
}
.apf-home-choice-card > p:not(.apf-home-kicker) {
  min-height: 70px;
  margin: 12px 0 20px;
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.65;
}
.apf-home-use-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.apf-home-use-grid > div {
  min-width: 0;
  padding: 19px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
}
.apf-home-use-grid strong,
.apf-home-use-grid span { display: block; }
.apf-home-use-grid strong {
  color: var(--ap-navy);
  font-size: 15.5px;
  line-height: 1.35;
}
.apf-home-use-grid span {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 14px;
  line-height: 1.55;
}
.apf-home-flow-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.apf-home-flow-grid li {
  min-width: 0;
  padding: 18px 16px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
}
.apf-home-flow-grid li > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-bottom: 12px;
  border-radius: 999px;
  background: var(--ap-soft);
  color: var(--ap-navy);
  font-size: 12px;
  font-weight: 800;
}
.apf-home-flow-grid strong,
.apf-home-flow-grid small { display: block; }
.apf-home-flow-grid strong {
  color: var(--ap-navy);
  font-size: 14.5px;
  line-height: 1.35;
}
.apf-home-flow-grid small {
  margin-top: 6px;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.5;
}
.apf-home-confidence .apf-home-section-head,
.apf-home-use-cases .apf-home-section-head,
.apf-home-buying-route .apf-home-section-head,
.apf-home-purchase-flow .apf-home-section-head { max-width: 820px; }

@media (max-width: 900px) {
  .apf-home-proof-strip,
  .apf-home-use-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apf-home-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .apf-home-choice-grid { grid-template-columns: 1fr; }
  .apf-home-choice-card > p:not(.apf-home-kicker) { min-height: 0; }
}
@media (max-width: 620px) {
  .apf-home-proof-strip,
  .apf-home-use-grid,
  .apf-home-flow-grid { grid-template-columns: 1fr; }
  .apf-home-choice-card { padding: 22px 18px; }
}


/* v0.4.218 — Home visual comprehension layer.
   Adds real catalog imagery, restrained SVG iconography, package diagrams and process visuals
   without changing product, license, Purchase Guard, Gumroad or catalog behavior. */
.apf-home-hero {
  align-items: center;
}
.apf-home-hero-visual {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--ap-line);
  border-radius: 14px;
  background: linear-gradient(145deg, #f8fbff 0%, #fff 58%, #fff7f9 100%);
  box-shadow: 0 18px 50px rgba(15, 39, 71, .07);
}
.apf-home-character-mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.apf-home-character-tile {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(15,39,71,.10);
  border-radius: 9px;
  background: #eef3f8;
  text-decoration: none !important;
}
.apf-home-character-tile img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.apf-home-character-id {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 8px;
  display: block;
  overflow: hidden;
  padding: 5px 7px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 5px;
  background: rgba(10,26,47,.72);
  color: #fff;
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
  backdrop-filter: blur(5px);
}
.apf-home-character-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--ap-navy);
}
.apf-home-character-fallback svg { width: 38px; height: 38px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.apf-home-hero-visual-caption {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  margin-top: 12px;
  padding: 11px 12px 2px;
  color: var(--ap-muted);
  font-size: 12.5px;
  line-height: 1.45;
}
.apf-home-hero-visual-caption strong { display: block; margin-bottom: 2px; color: var(--ap-navy); font-size: 13px; }
.apf-home-visual-icon,
.apf-home-card-icon,
.apf-home-pillar-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-icon {
  display: inline-grid;
  place-items: center;
  color: var(--ap-navy);
}
.apf-home-visual-icon {
  width: 34px; height: 34px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px rgba(15,39,71,.10);
}
.apf-home-visual-icon svg { width: 20px; height: 20px; }
.apf-home-card-icon {
  width: 42px; height: 42px; margin-bottom: 16px; border-radius: 10px; background: #f1f6fb;
}
.apf-home-card-icon svg { width: 24px; height: 24px; }
.apf-home-visual-icon svg,
.apf-home-card-icon svg,
.apf-home-pillar-icon svg,
.apf-home-use-icon svg,
.apf-home-proof-icon svg,
.apf-home-security-icon svg,
.apf-home-flow-icon svg,
.apf-home-reference-visual svg,
.apf-home-choice-visual svg,
.apf-home-file-icon svg,
.apf-home-sample-package svg,
.apf-home-evaluation-grid svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-home-package-visual {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.apf-home-file-card {
  position: relative;
  min-width: 0;
  min-height: 190px;
  padding: 20px 18px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}
.apf-home-file-card-video { background: linear-gradient(145deg, #f3f8ff 0%, #fff 72%); border-color: #d9e7f5; }
.apf-home-file-icon { display: inline-grid; place-items: center; width: 48px; height: 48px; color: var(--ap-navy); }
.apf-home-file-icon svg { width: 34px; height: 34px; }
.apf-home-file-type {
  position: absolute; top: 16px; right: 16px; padding: 4px 7px; border-radius: 999px; background: var(--ap-soft); color: var(--ap-navy); font-size: 10.5px; font-weight: 850; letter-spacing: .05em;
}
.apf-home-file-card strong,
.apf-home-file-card small { display: block; }
.apf-home-file-card strong { margin-top: 13px; color: var(--ap-navy); font-size: 15px; line-height: 1.35; }
.apf-home-file-card small { margin-top: 8px; color: var(--ap-muted); font-size: 12.5px; line-height: 1.45; }
.apf-home-choice-card { position: relative; overflow: hidden; }
.apf-home-choice-visual {
  display: grid;
  place-items: center;
  height: 112px;
  margin: -28px -28px 24px;
  border-bottom: 1px solid var(--ap-line);
  color: var(--ap-navy);
}
.apf-home-choice-visual-single { background: linear-gradient(135deg, #eff6fc, #fff); }
.apf-home-choice-visual-library { background: linear-gradient(135deg, #fff2f6, #fff); color: #9a4664; }
.apf-home-choice-visual span { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: rgba(255,255,255,.8); box-shadow: 0 8px 26px rgba(15,39,71,.08); }
.apf-home-choice-visual svg { width: 38px; height: 38px; }
.apf-home-reference-visual {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.apf-home-reference-visual > div {
  min-width: 0;
  padding: 18px 10px;
  border: 1px solid var(--ap-line);
  border-radius: 9px;
  background: #fff;
  text-align: center;
}
.apf-home-reference-visual > div > span { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 10px; border-radius: 999px; background: #f3f7fb; color: var(--ap-navy); }
.apf-home-reference-visual svg { width: 24px; height: 24px; }
.apf-home-reference-visual strong { display: block; color: var(--ap-navy); font-size: 12.5px; line-height: 1.3; }
.apf-home-two-pillars article { position: relative; min-height: 260px; }
.apf-home-pillar-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.apf-home-pillar-icon { width: 44px; height: 44px; border-radius: 10px; background: #f2f7fc; }
.apf-home-pillar-response .apf-home-pillar-icon { background: #fff0f5; color: #9a4664; }
.apf-home-pillar-icon svg { width: 25px; height: 25px; }
.apf-home-pillar-metric { color: var(--ap-navy); font-size: 24px; font-weight: 850; line-height: 1; }
.apf-home-pillar-metric small { display: block; margin-top: 4px; color: var(--ap-muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-align: right; text-transform: uppercase; }
.apf-home-use-grid > div { text-align: left; }
.apf-home-use-icon { width: 38px; height: 38px; margin-bottom: 13px; border-radius: 9px; background: #f3f7fb; }
.apf-home-use-icon svg { width: 21px; height: 21px; }
.apf-home-sample-package { display: flex; gap: 8px; margin: 18px 0 8px; }
.apf-home-sample-package span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #d9e7f5; border-radius: 8px; background: #fff; color: var(--ap-navy); }
.apf-home-sample-package svg { width: 23px; height: 23px; }
.apf-home-proof-grid > div { position: relative; min-height: 190px; }
.apf-home-proof-icon { width: 42px; height: 42px; margin-bottom: 14px; border-radius: 10px; background: #f3f7fb; }
.apf-home-proof-icon svg { width: 23px; height: 23px; }
.apf-home-security-grid > div { min-height: 180px; }
.apf-home-security-icon { width: 42px; height: 42px; margin-bottom: 14px; border-radius: 10px; background: #f3f7fb; }
.apf-home-security-icon svg { width: 23px; height: 23px; }
.apf-home-flow-grid { counter-reset: apf-flow; }
.apf-home-flow-grid li { position: relative; min-height: 190px; padding: 18px 16px 16px; }
.apf-home-flow-grid li:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 42px;
  right: -13px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: #fff;
  color: #8090a3;
  font-size: 16px;
  font-weight: 800;
}
.apf-home-flow-grid .apf-home-flow-icon { width: 42px; height: 42px; margin-bottom: 13px; border-radius: 10px; background: #f3f7fb; }
.apf-home-flow-grid .apf-home-flow-icon svg { width: 23px; height: 23px; }
.apf-home-flow-grid li > em { position: absolute; top: 14px; right: 14px; color: #9ca8b6; font-size: 11px; font-style: normal; font-weight: 850; }
.apf-home-evaluation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.apf-home-evaluation-grid a { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 12px 14px; align-items: start; padding: 20px; border: 1px solid var(--ap-line); border-radius: 10px; background: #fff; color: inherit !important; text-decoration: none !important; }
.apf-home-evaluation-grid a > span { grid-row: 1 / span 2; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; background: #f3f7fb; color: var(--ap-navy); }
.apf-home-evaluation-grid svg { width: 25px; height: 25px; }
.apf-home-evaluation-grid strong { color: var(--ap-navy); font-size: 15px; line-height: 1.3; }
.apf-home-evaluation-grid small { color: var(--ap-muted); font-size: 13px; line-height: 1.5; }
.apf-home-character-tile:hover,
.apf-home-evaluation-grid a:hover,
.apf-home-choice-card:hover,
.apf-home-file-card:hover,
.apf-home-use-grid > div:hover {
  border-color: #b9cade;
  box-shadow: 0 10px 28px rgba(15,39,71,.06);
}
@media (max-width: 1020px) {
  .apf-home-reference-visual { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .apf-home-package-visual { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .apf-home-flow-grid li:not(:last-child)::after { display: none; }
}
@media (max-width: 900px) {
  .apf-home-hero-visual { max-width: 620px; }
  .apf-home-character-mosaic { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .apf-home-character-tile { aspect-ratio: 4 / 5; }
}
@media (max-width: 700px) {
  .apf-home-choice-visual { margin: -22px -18px 22px; }
  .apf-home-reference-visual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apf-home-evaluation-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .apf-home-hero-visual { padding: 10px; }
  .apf-home-character-mosaic { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .apf-home-package-visual { grid-template-columns: 1fr; }
  .apf-home-file-card { min-height: 0; }
  .apf-home-reference-visual { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .apf-home-flow-grid li { min-height: 0; }
}
.apf-home-hero-visual-caption small { display:block; margin-top:4px; color:var(--ap-navy); font-size:11.5px; font-weight:700; }
.apf-home-pillar-metric-text { max-width:120px; font-size:17px; line-height:1.05; text-align:right; }

/* v0.4.219 — Home hero simplified around one AI-generation image.
   Places the user-approved process image on the left, removes the hero table/mosaic,
   and balances the Hero as image + copy. */
.apf-home-hero {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: 42px;
  align-items: center;
}

.apf-home-hero-visual-process {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.apf-home-hero-process-image {
  display: block;
  width: 100%;
  max-width: 660px;
  height: auto;
  margin: 0 auto;
}

.apf-home-hero-copy {
  min-width: 0;
}

.apf-home-hero-copy h1,
.apf-home-lead,
.apf-home-hero-support {
  max-width: 640px;
}

.apf-home-hero-support {
  margin: 16px 0 0;
  color: #445066;
  font-size: 15.5px;
  line-height: 1.62;
}

@media (max-width: 900px) {
  .apf-home-hero {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .apf-home-hero-visual-process {
    order: 1;
  }

  .apf-home-hero-copy {
    order: 2;
  }

  .apf-home-hero-process-image {
    max-width: 560px;
  }
}

@media (max-width: 620px) {
  .apf-home-hero-process-image {
    max-width: 100%;
  }

  .apf-home-hero-support {
    font-size: 15px;
  }
}

/* v0.4.220 — HOME Hero art-led composition.
   No frame. Image sits on the left. Copy overlaps the lower-left empty area of the image on desktop. */
.apf-home-hero {
  position: relative;
  display: block;
  min-height: 690px;
  padding: 8px 0 14px;
}

.apf-home-hero-visual-process {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
}

.apf-home-hero-process-image {
  display: block;
  width: min(100%, 1040px);
  max-width: 1040px;
  height: auto;
  margin: 0;
}

.apf-home-hero-copy {
  position: absolute;
  left: 24px;
  bottom: 24px;
  z-index: 2;
  width: min(100%, 560px);
  min-width: 0;
}

.apf-home-hero-copy h1,
.apf-home-lead,
.apf-home-hero-support {
  max-width: 560px;
}

.apf-home-eyebrow {
  margin-bottom: 14px;
}

.apf-home-hero-copy h1 {
  margin-bottom: 18px;
}

.apf-home-lead {
  margin-bottom: 12px;
}

.apf-home-hero-support {
  margin: 0 0 20px;
  color: #445066;
  font-size: 15.5px;
  line-height: 1.62;
}

.apf-home-actions {
  margin-top: 0;
}

@media (max-width: 1200px) {
  .apf-home-hero {
    min-height: 620px;
  }

  .apf-home-hero-process-image {
    width: min(100%, 940px);
  }

  .apf-home-hero-copy {
    left: 18px;
    bottom: 12px;
    width: min(100%, 520px);
  }
}

@media (max-width: 900px) {
  .apf-home-hero {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 24px;
    padding: 0;
  }

  .apf-home-hero-visual-process {
    order: 1;
  }

  .apf-home-hero-copy {
    position: static;
    order: 2;
    width: 100%;
  }

  .apf-home-hero-process-image {
    width: min(100%, 760px);
    margin: 0 auto;
  }
}

@media (max-width: 620px) {
  .apf-home-hero-process-image {
    width: 100%;
  }

  .apf-home-hero-support {
    font-size: 15px;
  }
}

/* v0.4.221 — HOME Hero balance refinement.
   The artwork is intentionally not full-width. Copy sits only in the PNG's transparent lower-left space,
   away from the visible generation-process artwork. */
.apf-home-hero {
  position: relative;
  display: block;
  min-height: 690px;
  padding: 6px 0 18px;
}

.apf-home-hero-visual-process {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  overflow: visible;
}

.apf-home-hero-process-image {
  display: block;
  width: min(78%, 920px);
  max-width: 920px;
  height: auto;
  margin: 0 0 0 22%;
}

.apf-home-hero-copy {
  position: absolute;
  left: 0;
  bottom: 26px;
  z-index: 2;
  width: min(460px, 44%);
  min-width: 0;
}

.apf-home-hero-copy h1 {
  max-width: 460px;
  margin: 0 0 16px;
  font-size: clamp(40px, 4.2vw, 52px);
  line-height: 1.02;
  letter-spacing: -.035em;
}

.apf-home-lead {
  max-width: 455px;
  margin: 0;
  font-size: 16.5px;
  line-height: 1.58;
}

.apf-home-eyebrow {
  margin-bottom: 12px;
}

.apf-home-actions {
  margin-top: 22px;
}

/* The extra Hero support sentence is intentionally not used in this composition. */
.apf-home-hero-support {
  display: none;
}

@media (max-width: 1100px) and (min-width: 901px) {
  .apf-home-hero {
    min-height: 630px;
  }

  .apf-home-hero-process-image {
    width: min(76%, 820px);
    margin-left: 24%;
  }

  .apf-home-hero-copy {
    width: min(420px, 43%);
    bottom: 20px;
  }

  .apf-home-hero-copy h1 {
    max-width: 420px;
    font-size: clamp(38px, 4vw, 46px);
  }

  .apf-home-lead {
    max-width: 410px;
    font-size: 16px;
  }
}

@media (max-width: 900px) {
  .apf-home-hero {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 24px;
    padding: 0 0 12px;
  }

  .apf-home-hero-visual-process {
    order: 1;
  }

  .apf-home-hero-process-image {
    width: min(92%, 700px);
    max-width: 700px;
    margin: 0 auto;
  }

  .apf-home-hero-copy {
    position: static;
    order: 2;
    width: 100%;
  }

  .apf-home-hero-copy h1 {
    max-width: 700px;
    font-size: clamp(40px, 7vw, 56px);
  }

  .apf-home-lead {
    max-width: 680px;
  }
}

@media (max-width: 620px) {
  .apf-home-hero-process-image {
    width: 100%;
  }

  .apf-home-hero-copy h1 {
    font-size: 40px;
  }

  .apf-home-lead {
    font-size: 16px;
  }
}

/* v0.4.222 — HOME Hero composition correction.
   Eyebrow sits above the artwork, the title sits in the lower-left whitespace area,
   and the body copy returns below the image at a normal reading width. */
.apf-home-hero {
  display: block;
  min-height: 0;
  padding: 0 0 22px;
}

.apf-home-eyebrow--hero-top {
  margin: 0 0 18px;
}

.apf-home-hero-stage {
  position: relative;
  min-height: 740px;
  margin: 0 0 26px;
}

.apf-home-hero-visual-process {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
}

.apf-home-hero-process-image {
  display: block;
  width: min(74%, 860px);
  max-width: 860px;
  height: auto;
  margin: 0;
}

.apf-home-hero-title-wrap {
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(600px, 62%);
  z-index: 2;
}

.apf-home-hero-copy h1,
.apf-home-hero-title-wrap h1 {
  margin: 0;
  max-width: 600px;
  font-size: clamp(52px, 5.6vw, 76px);
  line-height: 0.98;
  letter-spacing: -0.04em;
}

.apf-home-hero-body {
  max-width: 940px;
}

.apf-home-lead {
  max-width: 920px;
  margin: 0 0 12px;
  font-size: 17px;
  line-height: 1.62;
}

.apf-home-hero-support {
  display: block;
  max-width: 920px;
  margin: 0;
  color: #445066;
  font-size: 16px;
  line-height: 1.64;
}

.apf-home-actions {
  margin-top: 22px;
}

@media (max-width: 1180px) {
  .apf-home-hero-stage {
    min-height: 680px;
  }

  .apf-home-hero-process-image {
    width: min(76%, 760px);
    max-width: 760px;
  }

  .apf-home-hero-title-wrap {
    width: min(520px, 62%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 520px;
    font-size: clamp(46px, 5vw, 64px);
  }
}

@media (max-width: 900px) {
  .apf-home-hero-stage {
    min-height: 0;
    margin-bottom: 22px;
  }

  .apf-home-hero-process-image {
    width: min(100%, 760px);
    max-width: 760px;
    margin: 0 auto;
  }

  .apf-home-hero-title-wrap {
    position: static;
    width: 100%;
    margin-top: 22px;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 100%;
    font-size: clamp(40px, 8vw, 58px);
  }

  .apf-home-hero-body,
  .apf-home-lead,
  .apf-home-hero-support {
    max-width: 100%;
  }
}

@media (max-width: 620px) {
  .apf-home-eyebrow--hero-top {
    margin-bottom: 14px;
  }

  .apf-home-hero-process-image {
    width: 100%;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    font-size: 40px;
  }

  .apf-home-lead,
  .apf-home-hero-support {
    font-size: 16px;
  }
}

/* v0.4.223 — HOME Hero typography refinement.
   Slightly stronger eyebrow, slightly more restrained H1 for a calmer B2B feel. */
.apf-home-eyebrow--hero-top {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .075em;
}

.apf-home-hero-title-wrap {
  width: min(560px, 58%);
}

.apf-home-hero-copy h1,
.apf-home-hero-title-wrap h1 {
  max-width: 560px;
  font-size: clamp(46px, 5vw, 68px);
  line-height: 1.01;
  font-weight: 800;
  letter-spacing: -0.035em;
}

@media (max-width: 1180px) {
  .apf-home-eyebrow--hero-top {
    font-size: 15px;
  }

  .apf-home-hero-title-wrap {
    width: min(500px, 60%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 500px;
    font-size: clamp(42px, 4.6vw, 58px);
  }
}

@media (max-width: 900px) {
  .apf-home-eyebrow--hero-top {
    font-size: 14px;
    letter-spacing: .065em;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    font-size: clamp(38px, 7.4vw, 52px);
    max-width: 100%;
  }
}


/* v0.4.224 — HOME hero typography and information architecture adjustment.
   Larger professional eyebrow, calmer H1 proportion, and Origin Video Reference moved earlier. */
.apf-home-eyebrow--hero-top {
  margin: 0 0 22px;
  font-size: 18px;
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: .08em;
}

.apf-home-hero-title-wrap {
  width: min(520px, 54%);
}

.apf-home-hero-copy h1,
.apf-home-hero-title-wrap h1 {
  max-width: 520px;
  font-size: clamp(42px, 4.5vw, 62px);
  line-height: 1.02;
  font-weight: 800;
  letter-spacing: -0.032em;
}

@media (max-width: 1180px) {
  .apf-home-eyebrow--hero-top {
    font-size: 16px;
  }

  .apf-home-hero-title-wrap {
    width: min(470px, 58%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 470px;
    font-size: clamp(40px, 4.4vw, 54px);
  }
}

@media (max-width: 900px) {
  .apf-home-eyebrow--hero-top {
    font-size: 14px;
    letter-spacing: .065em;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 100%;
    font-size: clamp(38px, 7.2vw, 50px);
  }
}

/* v0.4.225 — HOME Hero title vertical-position refinement.
   Raises the H1 into the lower-left whitespace so the Character Library line visually meets the artwork,
   while preserving the reading gap to the body copy below. */
.apf-home-hero-title-wrap {
  bottom: 52px;
}

.apf-home-hero-body {
  margin-top: -52px;
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-title-wrap {
    bottom: 44px;
  }

  .apf-home-hero-body {
    margin-top: -44px;
  }
}

@media (max-width: 900px) {
  .apf-home-hero-title-wrap {
    bottom: auto;
  }

  .apf-home-hero-body {
    margin-top: 0;
  }
}

/* v0.4.226 — HOME Hero proportional responsive composition.
   The artwork stays in normal flow so the Hero stage height follows the image itself.
   H1 size/position scale with viewport width instead of jumping to an oversized tablet rule. */
.apf-home-hero-stage {
  position: relative;
  min-height: 0;
  margin: 0 0 24px;
}

.apf-home-hero-process-image {
  display: block;
  width: min(74%, 860px);
  max-width: 860px;
  height: auto;
  margin: 0;
}

.apf-home-hero-title-wrap {
  position: absolute;
  left: 0;
  bottom: clamp(14px, 3.8vw, 52px);
  width: min(500px, 52%);
  z-index: 2;
}

.apf-home-hero-copy h1,
.apf-home-hero-title-wrap h1 {
  max-width: 500px;
  margin: 0;
  font-size: clamp(30px, 4vw, 56px);
  line-height: 1.015;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.apf-home-hero-body {
  max-width: 940px;
  margin-top: 0;
}

@media (max-width: 1180px) and (min-width: 701px) {
  .apf-home-hero-process-image {
    width: min(76%, 760px);
    max-width: 760px;
  }

  .apf-home-hero-title-wrap {
    bottom: clamp(12px, 3.4vw, 40px);
    width: min(440px, 53%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 440px;
    font-size: clamp(29px, 4vw, 46px);
  }
}

/* Keep image + H1 visually linked through tablet widths. */
@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-stage {
    min-height: 0;
    margin-bottom: 22px;
  }

  .apf-home-hero-process-image {
    width: min(78%, 680px);
    max-width: 680px;
    margin: 0;
  }

  .apf-home-hero-title-wrap {
    position: absolute;
    left: 0;
    bottom: clamp(10px, 3vw, 26px);
    width: min(390px, 54%);
    margin-top: 0;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 390px;
    font-size: clamp(28px, 4.1vw, 36px);
  }
}

/* On genuinely narrow mobile screens, prioritize reading over overlap. */
@media (max-width: 700px) {
  .apf-home-hero-stage {
    min-height: 0;
    margin-bottom: 18px;
  }

  .apf-home-hero-process-image {
    width: min(100%, 620px);
    max-width: 620px;
    margin: 0 auto;
  }

  .apf-home-hero-title-wrap {
    position: static;
    width: 100%;
    margin-top: 18px;
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 520px;
    font-size: clamp(32px, 8.2vw, 42px);
  }
}

@media (max-width: 480px) {
  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    font-size: clamp(30px, 8vw, 36px);
  }
}


/* v0.4.227 — HOME Hero fixed four-line H1.
   Keep the title as real HTML, lock the four lines, and stabilize the image/title relationship across widths. */
.apf-home-hero-title-wrap {
  width: min(500px, 50%);
}

.apf-home-hero-copy h1,
.apf-home-hero-title-wrap h1 {
  max-width: 500px;
  font-size: clamp(28px, 3.7vw, 52px);
  line-height: 0.98;
  letter-spacing: -0.032em;
}

.apf-home-title-line {
  display: block;
  white-space: nowrap;
}

@media (max-width: 1180px) and (min-width: 701px) {
  .apf-home-hero-title-wrap {
    width: min(430px, 52%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 430px;
    font-size: clamp(26px, 3.9vw, 42px);
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-title-wrap {
    width: min(370px, 54%);
  }

  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: 370px;
    font-size: clamp(24px, 4vw, 34px);
  }
}

@media (max-width: 700px) {
  .apf-home-hero-copy h1,
  .apf-home-hero-title-wrap h1 {
    max-width: none;
    font-size: clamp(28px, 7vw, 38px);
  }

  .apf-home-title-line {
    white-space: normal;
  }
}


/* v0.4.246 — HOME Hero full-width responsive image.
   Remove the legacy 76% / 860px cap so the artwork follows the full Home content width
   and no longer leaves unused space on the right. */
.apf-home-hero-process-image {
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
}

@media (max-width: 1180px) and (min-width: 701px),
       (max-width: 900px) and (min-width: 701px),
       (max-width: 700px),
       (max-width: 480px) {
  .apf-home-hero-process-image {
    width: 100%;
    max-width: none;
    margin: 0;
  }
}

@media (max-width: 640px) {
  .apf-home-section-heading-row { gap: 12px; }
  .apf-home-heading-badge { width: 48px; height: 48px; flex-basis: 48px; border-radius: 12px; }
  .apf-home-heading-badge img { width: 28px; height: 28px; }
}

/* v0.4.232 — HOME section-icon hierarchy refinement.
   Section icons are prominent, centered anchors. Interior/card icons remain secondary. */
.apf-home-section-heading-row {
  align-items: center;
  gap: 16px;
  margin: 0 0 12px;
}

.apf-home-heading-badge {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #d7e3ef;
  border-radius: 16px;
  background: linear-gradient(145deg, #f7fafe 0%, #edf4fb 100%);
  box-shadow: 0 8px 22px rgba(15, 39, 71, .055);
}

.apf-home-heading-badge img {
  width: 50px;
  height: 50px;
  display: block;
  object-fit: contain;
  object-position: center;
}

.apf-home-section-heading-row h2 {
  align-self: center;
}

/* Secondary icons: deliberately quieter than the section marker. */
.apf-home-card-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon,
.apf-home-reference-visual > div > span,
.apf-home-pillar-icon,
.apf-home-evaluation-grid a > span {
  color: #687a8f;
  background: #f7f9fc;
  border: 1px solid #edf1f5;
  box-shadow: none;
}

.apf-home-card-icon {
  width: 36px;
  height: 36px;
  margin-bottom: 13px;
  border-radius: 9px;
}
.apf-home-card-icon svg { width: 19px; height: 19px; }

.apf-home-use-icon {
  width: 34px;
  height: 34px;
  margin-bottom: 12px;
  border-radius: 8px;
}
.apf-home-use-icon svg { width: 18px; height: 18px; }

.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon {
  width: 36px;
  height: 36px;
  margin-bottom: 12px;
  border-radius: 9px;
}
.apf-home-proof-icon svg,
.apf-home-security-icon svg,
.apf-home-flow-grid .apf-home-flow-icon svg {
  width: 19px;
  height: 19px;
}

.apf-home-reference-visual > div > span {
  width: 38px;
  height: 38px;
  margin-bottom: 9px;
}
.apf-home-reference-visual svg { width: 20px; height: 20px; }

.apf-home-pillar-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
}
.apf-home-pillar-icon svg { width: 20px; height: 20px; }

.apf-home-evaluation-grid a > span {
  width: 40px;
  height: 40px;
  border-radius: 9px;
}
.apf-home-evaluation-grid svg { width: 21px; height: 21px; }

@media (max-width: 640px) {
  .apf-home-section-heading-row {
    gap: 13px;
  }
  .apf-home-heading-badge {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
    border-radius: 14px;
  }
  .apf-home-heading-badge img {
    width: 43px;
    height: 43px;
  }
}


/* v0.4.234 — HOME heading-icon correction.
   Section icons are deliberately prominent, centered and visually distinct from card-level icons. */
.apf-home-section-heading-row {
  align-items: center;
  gap: 18px;
}

.apf-home-heading-badge {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #cfdeed;
  border-radius: 18px;
  background: linear-gradient(145deg, #f8fbff 0%, #edf4fb 100%);
  box-shadow: 0 7px 20px rgba(15, 39, 71, .05);
}

.apf-home-heading-badge img {
  width: 58px;
  height: 58px;
  max-width: none;
  margin: 0;
  display: block;
  object-fit: contain;
  object-position: 50% 50%;
  transform: none;
}

/* Keep interior/card icons secondary so the section marker reads first. */
.apf-home-card-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon,
.apf-home-reference-visual > div > span,
.apf-home-pillar-icon,
.apf-home-evaluation-grid a > span {
  box-shadow: none;
}

@media (max-width: 640px) {
  .apf-home-section-heading-row { gap: 14px; }
  .apf-home-heading-badge {
    width: 62px;
    height: 62px;
    flex-basis: 62px;
    border-radius: 15px;
  }
  .apf-home-heading-badge img {
    width: 49px;
    height: 49px;
  }
}


/* v0.4.236 — enlarge Free Sample heading icon to better fill the heading badge. */
.apf-home-heading-badge-free-sample img {
  width: 58px;
  height: 58px;
}
@media (max-width: 640px) {
  .apf-home-heading-badge-free-sample img {
    width: 50px;
    height: 50px;
  }
}


/* v0.4.237 — Center secondary card icons and improve visual hierarchy.
   User-requested fix: remove the recurring top-left tiny-icon feeling in Home content cards. */

/* 1) Section-internal content cards: place icon in the visual center at the top and align content cleanly. */
.apf-home-problem-card,
.apf-home-use-grid > div,
.apf-home-proof-grid > div,
.apf-home-security-grid > div,
.apf-home-flow-grid li {
  text-align: center;
}

.apf-home-card-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon {
  margin-left: auto;
  margin-right: auto;
  display: grid;
  place-items: center;
}

/* 2) Give these interior icons slightly more presence, while keeping them quieter than the main section badge. */
.apf-home-card-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 16px;
  border-radius: 12px;
}

.apf-home-use-icon {
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  border-radius: 12px;
}

.apf-home-card-icon svg,
.apf-home-proof-icon svg,
.apf-home-security-icon svg,
.apf-home-flow-grid .apf-home-flow-icon svg {
  width: 24px;
  height: 24px;
}

.apf-home-use-icon svg {
  width: 23px;
  height: 23px;
}

/* 3) Center the icon tile inside the Selected Quality / Real User Response cards without breaking the right-side metric. */
.apf-home-pillar-top {
  position: relative;
  min-height: 48px;
  display: block;
  margin-bottom: 18px;
}

.apf-home-pillar-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  margin: 0 auto;
}

.apf-home-pillar-icon svg {
  width: 24px;
  height: 24px;
}

.apf-home-pillar-metric {
  position: absolute;
  top: 0;
  right: 0;
  text-align: right;
}


/* v0.4.245 — Enlarge the Real User Response star icon by 50%. */
.apf-home-pillar-icon-response svg {
  width: 38px;
  height: 38px;
}

/* 4) Preserve readability on small screens. */
@media (max-width: 640px) {
  .apf-home-card-icon,
  .apf-home-use-icon,
  .apf-home-proof-icon,
  .apf-home-security-icon,
  .apf-home-flow-grid .apf-home-flow-icon,
  .apf-home-pillar-icon {
    width: 44px;
    height: 44px;
    border-radius: 11px;
  }

  .apf-home-card-icon svg,
  .apf-home-use-icon svg,
  .apf-home-proof-icon svg,
  .apf-home-security-icon svg,
  .apf-home-flow-grid .apf-home-flow-icon svg,
  .apf-home-pillar-icon svg {
    width: 22px;
    height: 22px;
  }

  .apf-home-pillar-icon-response svg {
    width: 33px;
    height: 33px;
  }
}


/* v0.4.238 — Force true X/Y centering for small Home card icons.
   User-requested fix: icons were still reading as vertically/top-biased. */

/* Apply only to the repeated small content-card icons on Home. */
.apf-home-card-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon,
.apf-home-pillar-icon,
.apf-home-evaluation-grid a > span {
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 0;
  padding: 0;
  overflow: hidden;
}

.apf-home-card-icon > svg,
.apf-home-use-icon > svg,
.apf-home-proof-icon > svg,
.apf-home-security-icon > svg,
.apf-home-flow-grid .apf-home-flow-icon > svg,
.apf-home-pillar-icon > svg,
.apf-home-evaluation-grid a > span > svg,
.apf-home-card-icon > img,
.apf-home-use-icon > img,
.apf-home-proof-icon > img,
.apf-home-security-icon > img,
.apf-home-flow-grid .apf-home-flow-icon > img,
.apf-home-pillar-icon > img,
.apf-home-evaluation-grid a > span > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  margin: 0 !important;
  flex: none;
}

/* Keep the tiles visually centered within the card header area as well. */
.apf-home-problem-card .apf-home-card-icon,
.apf-home-use-grid > div .apf-home-use-icon,
.apf-home-proof-grid > div .apf-home-proof-icon,
.apf-home-security-grid > div .apf-home-security-icon,
.apf-home-flow-grid li .apf-home-flow-icon {
  margin: 4px auto 16px;
}

.apf-home-pillar-top {
  min-height: 56px;
}

.apf-home-pillar-icon {
  margin-top: 4px;
}


/* v0.4.311 — Know the Source card: 10% larger and optically centered.
   The PNG artwork sits slightly right/down inside its transparent canvas, so the
   image itself is shifted left/up while the icon tile remains geometrically centered. */
.apf-home-card-icon-source img {
  width: 37.4px;
  height: 37.4px;
  object-fit: contain;
  object-position: center;
  transform: translate(-54%, -59%);
}
@media (max-width: 640px) {
  .apf-home-card-icon-source img {
    width: 34.1px;
    height: 34.1px;
    transform: translate(-54%, -59%);
  }
}


/* v0.4.240 — Selected Quality card: 20% review pie-chart icon. */
.apf-home-pillar-icon-quality img {
  width: 56px;
  height: auto;
  max-width: none;
  object-fit: contain;
  object-position: center;
}
@media (max-width: 640px) {
  .apf-home-pillar-icon-quality img {
    width: 52px;
    height: auto;
  }
}


/* v0.4.250 — HOME diagonal Hero: move unused artwork space to the LEFT.
   Desktop/tablet artwork is capped and right-aligned so the intentional blank area
   appears on the left side, where the fixed four-line H1 sits. Mobile remains centered. */
@media (min-width: 1181px) {
  .apf-home-hero-process-image {
    width: min(74%, 860px);
    max-width: 860px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-process-image {
    width: min(76%, 760px);
    max-width: 760px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-process-image {
    width: min(78%, 680px);
    max-width: 680px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 700px) {
  .apf-home-hero-process-image {
    width: min(100%, 620px);
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* v0.4.251 — Restore the earlier diagonal Hero composition requested by the user.
   Desktop/tablet artwork is capped and LEFT-aligned, recreating the intentional
   unused space on the RIGHT. Hero body copy is restored to the normal Home content width. */
@media (min-width: 1181px) {
  .apf-home-hero-process-image {
    width: min(74%, 860px);
    max-width: 860px;
    margin-left: 0;
    margin-right: auto;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-process-image {
    width: min(76%, 760px);
    max-width: 760px;
    margin-left: 0;
    margin-right: auto;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-process-image {
    width: min(78%, 680px);
    max-width: 680px;
    margin-left: 0;
    margin-right: auto;
  }
}

/* The two descriptive paragraphs below the Hero use the regular Home width,
   independent of the capped artwork width. */
.apf-home-hero-body,
.apf-home-lead,
.apf-home-hero-support {
  width: 100%;
  max-width: none;
}


/* v0.4.252 — HOME design refinement.
   Improve scan hierarchy without changing approved copy, section order, licensing language,
   Origin Video restrictions, or purchase behavior. */

/* Hero body: keep the two descriptive paragraphs at a comfortable reading measure. */
.apf-home-hero-body {
  width: 100%;
  max-width: 880px;
}
.apf-home-lead {
  width: 100%;
  max-width: 880px;
  color: #445269;
  font-size: 18px;
  line-height: 1.58;
}
.apf-home-hero-support {
  width: 100%;
  max-width: 820px;
  margin-top: 10px;
  color: #66758a;
  font-size: 15.5px;
  line-height: 1.58;
}
.apf-home-hero-body .apf-home-actions {
  margin-top: 24px;
}
.apf-home-hero-body .apf-home-primary {
  min-height: 48px;
  padding-inline: 24px;
}

/* Show real catalog Characters early, before the explanatory sections. */
.apf-home-catalog-preview {
  padding: 26px 0 38px;
  border-bottom: 1px solid var(--ap-line);
}
.apf-home-catalog-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.apf-home-catalog-preview-head .apf-home-kicker {
  margin: 0;
}
.apf-home-catalog-preview-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ap-navy) !important;
  font-size: 13.5px;
  font-weight: 800;
  text-decoration: none !important;
}
.apf-home-catalog-preview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.apf-home-catalog-preview-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 12px;
  background: #fff;
  color: var(--ap-navy) !important;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(15,39,71,.035);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.apf-home-catalog-preview-card:hover,
.apf-home-catalog-preview-card:focus-visible {
  border-color: #b9c9da;
  box-shadow: 0 12px 28px rgba(15,39,71,.075);
  transform: translateY(-2px);
}
.apf-home-catalog-preview-media {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #eef3f8;
}
.apf-home-catalog-preview-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.apf-home-catalog-preview-media .apf-home-character-fallback svg {
  width: 42px;
  height: 42px;
}
.apf-home-catalog-preview-id {
  display: block;
  overflow: hidden;
  padding: 11px 13px 12px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Group the ten numbered sections into three restrained visual bands. */
.apf-home-band {
  margin: 30px -22px 0;
  padding: 4px 22px 10px;
  border-radius: 20px;
}
.apf-home-band-origin {
  background: linear-gradient(180deg, #f7faff 0%, #fbfdff 58%, #fff 100%);
  box-shadow: inset 0 0 0 1px #e8f0f8;
}
.apf-home-band-production {
  background: #fff;
  box-shadow: inset 0 1px 0 #edf1f5, inset 0 -1px 0 #edf1f5;
}
.apf-home-band-purchase {
  background: linear-gradient(180deg, #fbfafc 0%, #fff 100%);
  box-shadow: inset 0 0 0 1px #f0ebef;
}
.apf-home-band > .apf-home-section:last-child {
  border-bottom: 0;
}
.apf-home-band .apf-home-section {
  background: transparent;
}

/* One icon system: strong section markers, quiet secondary card icons. */
.apf-home-heading-badge {
  width: 70px;
  height: 70px;
  flex-basis: 70px;
  border: 1px solid #d6e1ec;
  border-radius: 17px;
  background: #f4f8fc;
  box-shadow: none;
}
.apf-home-heading-badge img,
.apf-home-heading-badge-free-sample img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  object-position: center;
}
.apf-home-card-icon,
.apf-home-use-icon,
.apf-home-proof-icon,
.apf-home-security-icon,
.apf-home-flow-grid .apf-home-flow-icon,
.apf-home-reference-visual > div > span,
.apf-home-pillar-icon,
.apf-home-evaluation-grid a > span {
  color: var(--ap-navy);
  background: #f4f7fb;
  border-color: #e2e9f1;
}
.apf-home-pillar-response .apf-home-pillar-icon {
  color: var(--ap-navy);
  background: #f4f7fb;
  border-color: #e2e9f1;
}

/* Increase section rhythm while keeping the approved copy and order intact. */
.apf-home-band .apf-home-section {
  padding-top: 50px;
  padding-bottom: 50px;
}
.apf-home-band .apf-home-section-head {
  max-width: 820px;
  margin-bottom: 25px;
}
.apf-home-band .apf-home-section-heading-row {
  margin-bottom: 12px;
}

/* Responsive refinement: prevent the Home from becoming a long one-card-per-row manual. */
@media (max-width: 900px) {
  .apf-home-catalog-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .apf-home-band {
    margin-left: -14px;
    margin-right: -14px;
    padding-left: 14px;
    padding-right: 14px;
  }
}

@media (max-width: 700px) {
  .apf-home-hero-body,
  .apf-home-lead,
  .apf-home-hero-support {
    max-width: 100%;
  }
  .apf-home-lead {
    font-size: 16.5px;
    line-height: 1.55;
  }
  .apf-home-hero-support {
    margin-top: 8px;
    font-size: 14.5px;
    line-height: 1.55;
  }
  .apf-home-catalog-preview {
    padding-top: 20px;
    padding-bottom: 30px;
  }
  .apf-home-catalog-preview-head {
    margin-bottom: 12px;
  }
  .apf-home-catalog-preview-link {
    font-size: 12.5px;
  }
  .apf-home-band {
    margin-top: 22px;
    border-radius: 14px;
  }
  .apf-home-band .apf-home-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .apf-home-heading-badge {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
    border-radius: 14px;
  }
  .apf-home-heading-badge img,
  .apf-home-heading-badge-free-sample img {
    width: 43px;
    height: 43px;
  }
}

@media (max-width: 420px) {
  .apf-home-catalog-preview-grid {
    gap: 10px;
  }
  .apf-home-catalog-preview-id {
    padding: 9px 10px 10px;
    font-size: 12px;
  }
  .apf-home-band {
    margin-left: -8px;
    margin-right: -8px;
    padding-left: 8px;
    padding-right: 8px;
  }
}


/* v0.4.254 — Restore the Sora2 user-response accent used before the Home icon normalization. */
.apf-home-two-pillars .apf-home-pillar-response {
  border-top: 3px solid #d9a7c5;
}
.apf-home-pillar-response .apf-home-pillar-icon {
  color: #9a4664;
  background: #fff0f5;
  border-color: #f1d8e3;
}


/* v0.4.256 — Home finishing refinements: clarify selection signals, tighten purchase band, and let catalog imagery lead. */
.apf-home-selection-signals-label {
  margin: 28px 0 10px;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.apf-home-selection-signals-label + .apf-home-two-pillars {
  margin-top: 0;
}

.apf-home-catalog-preview-id {
  padding: 8px 12px 9px;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .015em;
}

.apf-home-band-purchase .apf-home-section {
  padding-top: 44px;
  padding-bottom: 44px;
}

.apf-home-band-purchase .apf-home-section-head {
  margin-bottom: 21px;
}

@media (max-width: 700px) {
  .apf-home-selection-signals-label {
    margin-top: 22px;
    margin-bottom: 9px;
  }

  .apf-home-band-purchase .apf-home-section {
    padding-top: 35px;
    padding-bottom: 35px;
  }

  .apf-home-band-purchase .apf-home-section-head {
    margin-bottom: 19px;
  }
}

@media (max-width: 420px) {
  .apf-home-catalog-preview-id {
    padding: 8px 9px 9px;
    font-size: 11.5px;
  }
}


/* v0.4.257 — Make the five-step purchase flow visually explicit. */
@media (min-width: 1021px) {
  .apf-home-flow-grid {
    gap: 28px;
  }

  .apf-home-flow-grid li {
    min-height: 205px;
    padding: 20px 16px 18px;
  }

  .apf-home-flow-grid li > em {
    top: 14px;
    left: 14px;
    right: auto;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: var(--ap-navy);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
  }

  .apf-home-flow-grid li:not(:last-child)::after {
    content: "→";
    top: 50%;
    right: -33px;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border: 1px solid #d7e2ee;
    background: #fff;
    color: var(--ap-navy);
    box-shadow: 0 4px 14px rgba(15,39,71,.08);
    font-size: 25px;
    font-weight: 900;
    line-height: 1;
  }
}

@media (max-width: 1020px) {
  .apf-home-flow-grid {
    grid-template-columns: 1fr;
    gap: 42px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .apf-home-flow-grid li {
    min-height: 0;
    padding: 20px 18px 19px;
  }

  .apf-home-flow-grid li > em {
    top: 14px;
    left: 14px;
    right: auto;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: var(--ap-navy);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
  }

  .apf-home-flow-grid li:not(:last-child)::after {
    content: "↓";
    display: grid;
    top: auto;
    right: 50%;
    bottom: -34px;
    transform: translateX(50%);
    width: 30px;
    height: 30px;
    border: 1px solid #d7e2ee;
    border-radius: 999px;
    background: #fff;
    color: var(--ap-navy);
    box-shadow: 0 4px 12px rgba(15,39,71,.07);
    font-size: 21px;
    font-weight: 900;
    line-height: 1;
  }
}


/* v0.4.258 — Restore Selected Quality 20% icon reliably as inline SVG.
   Keeps the approved navy 20% selection-signal concept without depending on image loading/cache. */
.apf-home-pillar-icon-quality svg {
  width: 38px !important;
  height: 38px !important;
  color: var(--ap-navy);
}
@media (max-width: 640px) {
  .apf-home-pillar-icon-quality svg {
    width: 34px !important;
    height: 34px !important;
  }
}

/* v0.4.260 — Home marketing hierarchy refinements.
   Surface selection proof early, flatten professional-use tiles, and visually subordinate purchase-support sections 07–10. */
.apf-home-catalog-preview-count {
  color: #617087;
  font-size: 12.5px;
  font-weight: 750;
  letter-spacing: .01em;
  line-height: 1.3;
  white-space: nowrap;
}

.apf-home-catalog-proof-strip {
  display: flex;
  align-items: center;
  margin: -2px 0 16px;
  color: var(--ap-navy);
}

.apf-home-catalog-proof-strip > span {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
  padding: 0 18px;
  border-left: 1px solid #dbe4ed;
}

.apf-home-catalog-proof-strip > span:first-child {
  padding-left: 0;
  border-left: 0;
}

.apf-home-catalog-proof-strip strong {
  font-size: 19px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.02em;
}

.apf-home-catalog-proof-strip small {
  color: #6d7a8d;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .07em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* 05: keep the information, remove the repeated card-box treatment. */
.apf-home-use-grid {
  gap: 18px 24px;
}

.apf-home-use-grid > div,
.apf-home-use-grid > div:hover {
  padding: 7px 4px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.apf-home-use-grid > div .apf-home-use-icon {
  margin: 0 0 12px;
}

.apf-home-use-grid strong {
  font-size: 15px;
}

.apf-home-use-grid span:not(.apf-home-use-icon) {
  margin-top: 5px;
}

/* 07–10 are supporting purchase information, so keep them clearly secondary to 01–06. */
.apf-home-band-purchase .apf-home-heading-badge {
  width: 58px;
  height: 58px;
  flex-basis: 58px;
  border-radius: 14px;
}

.apf-home-band-purchase .apf-home-heading-badge img {
  width: 40px;
  height: 40px;
}

.apf-home-band-purchase .apf-home-section-heading-row h2 {
  font-size: clamp(23px, 2.2vw, 30px);
  line-height: 1.18;
}

@media (max-width: 700px) {
  .apf-home-catalog-preview-head {
    align-items: flex-end;
  }

  .apf-home-catalog-preview-count {
    font-size: 11.5px;
  }

  .apf-home-catalog-proof-strip {
    margin-bottom: 14px;
  }

  .apf-home-catalog-proof-strip > span {
    flex: 1 1 0;
    display: grid;
    gap: 4px;
    padding: 0 10px;
  }

  .apf-home-catalog-proof-strip strong {
    font-size: 17px;
  }

  .apf-home-catalog-proof-strip small {
    font-size: 9.5px;
    letter-spacing: .055em;
  }

  .apf-home-use-grid {
    gap: 15px 18px;
  }

  .apf-home-band-purchase .apf-home-heading-badge {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    border-radius: 13px;
  }

  .apf-home-band-purchase .apf-home-heading-badge img {
    width: 36px;
    height: 36px;
  }

  .apf-home-band-purchase .apf-home-section-heading-row h2 {
    font-size: clamp(22px, 6vw, 27px);
  }
}

@media (max-width: 420px) {
  .apf-home-catalog-preview-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .apf-home-catalog-proof-strip > span {
    padding: 0 7px;
  }

  .apf-home-catalog-proof-strip strong {
    font-size: 16px;
  }

  .apf-home-catalog-proof-strip small {
    font-size: 9px;
  }
}



/* v0.4.261 — Character detail conversion hierarchy.
   Keep the product identity, price and purchase decision compact at the top,
   then move the detailed generation-source/reference explanation below the hero. */
.apf-character-purchase-summary {
  margin: 2px 0 2px;
  padding: 13px 14px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fafc;
}
.apf-character-purchase-summary-title {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: 12.5px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.apf-character-purchase-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.apf-character-purchase-summary-grid span {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #e4e9ef;
  border-radius: 8px;
  background: #fff;
  color: #344155;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
}
.apf-character-purchase-summary-grid span::before {
  content: "✓";
  flex: 0 0 auto;
  margin-right: 7px;
  color: var(--ap-navy);
  font-weight: 900;
}
.apf-character-info .apf-buy-row {
  margin-top: 14px;
}
.apf-character-evidence-section {
  margin-top: 30px;
  padding: clamp(22px, 2.6vw, 30px);
  border: 1px solid var(--ap-line);
  border-radius: var(--ap-radius);
  background: #fff;
  box-shadow: var(--ap-shadow);
}
.apf-character-evidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.apf-character-evidence-grid .apf-character-origin-priority {
  margin-top: 0;
  height: 100%;
  background: #f7fafd;
}
@media (max-width: 860px) {
  .apf-character-purchase-summary-grid,
  .apf-character-evidence-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .apf-character-purchase-summary {
    padding: 12px;
  }
  .apf-character-purchase-summary-grid span {
    min-height: 36px;
    font-size: 12.5px;
  }
  .apf-character-evidence-section {
    margin-top: 22px;
    padding: 18px;
  }
}

/* v0.4.262 — Character page as first-purchase confirmation page.
   Keep Browse as the discovery surface; make the Character page explain the first purchase clearly. */
.apf-character-purchase-summary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.apf-character-purchase-summary-grid .apf-character-purchase-summary-checkout {
  grid-column: 1 / -1;
  background: #f3f7fb;
  border-color: #d8e4f0;
  color: var(--ap-navy);
}
.apf-character-first-purchase {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #fff;
}
.apf-character-first-purchase-link {
  display: inline-block;
  color: var(--ap-navy);
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
}
.apf-character-first-purchase-link:hover { text-decoration: underline; }
.apf-character-first-purchase-link:focus-visible {
  outline: 2px solid var(--ap-navy);
  outline-offset: 3px;
}
.apf-character-first-purchase-flow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: #435166;
  font-size: 11.5px;
  line-height: 1.3;
}
.apf-character-first-purchase-flow span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.apf-character-first-purchase-flow strong {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 999px;
  background: var(--ap-navy);
  color: #fff;
  font-size: 10.5px;
  line-height: 1;
}
.apf-character-first-purchase-flow i {
  color: #8ba0b7;
  font-style: normal;
  font-size: 16px;
  font-weight: 800;
}
.apf-character-selection-section-compact {
  padding: clamp(18px, 2vw, 24px);
  background: #fff;
}
.apf-character-selection-heading-compact {
  margin-bottom: 14px;
}
.apf-character-selection-proof-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  overflow: hidden;
  background: #f8fafc;
}
.apf-character-selection-proof-strip > span {
  display: grid;
  align-content: center;
  min-height: 76px;
  padding: 12px 14px;
  border-right: 1px solid #dbe4ee;
  text-align: center;
}
.apf-character-selection-proof-strip > span:last-child { border-right: 0; }
.apf-character-selection-proof-strip strong {
  color: var(--ap-navy);
  font-size: 20px;
  line-height: 1;
  font-weight: 850;
}
.apf-character-selection-proof-strip small {
  margin-top: 6px;
  color: var(--ap-muted);
  font-size: 10.5px;
  line-height: 1.35;
  font-weight: 750;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.apf-character-selection-proof-strip .apf-character-selection-proof-response {
  background: #fff6f8;
}
.apf-character-selection-proof-strip .apf-character-selection-proof-response strong {
  color: #b24e6f;
  font-size: 24px;
}
.apf-character-selection-method-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--ap-navy);
  font-size: 12.5px;
  font-weight: 750;
  text-decoration: none;
}
.apf-character-selection-method-link:hover { text-decoration: underline; }

@media (max-width: 760px) {
  .apf-character-first-purchase-flow {
    flex-wrap: wrap;
  }
  .apf-character-selection-proof-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .apf-character-selection-proof-strip > span:nth-child(2) { border-right: 0; }
  .apf-character-selection-proof-strip > span:nth-child(-n+2) { border-bottom: 1px solid #dbe4ee; }
}

@media (max-width: 520px) {
  .apf-character-purchase-summary-grid {
    grid-template-columns: 1fr;
  }
  .apf-character-purchase-summary-grid .apf-character-purchase-summary-checkout {
    grid-column: auto;
  }
  .apf-character-first-purchase-flow {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .apf-character-first-purchase-flow i {
    transform: rotate(90deg);
    width: 22px;
    text-align: center;
  }
  .apf-character-selection-proof-strip {
    grid-template-columns: 1fr;
  }
  .apf-character-selection-proof-strip > span {
    border-right: 0;
    border-bottom: 1px solid #dbe4ee;
  }
  .apf-character-selection-proof-strip > span:last-child { border-bottom: 0; }
}


/* v0.4.263 — Browse page: faster repeat-purchase catalog workflow. */
.apf-browse-toolbar-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0 2px;
}
.apf-browse-toolbar-head > div {
  display: grid;
  gap: 3px;
}
.apf-browse-toolbar-label {
  color: var(--ap-navy);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.apf-browse-toolbar-head small {
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.4;
}
.apf-browse-toolbar-guide {
  flex: 0 0 auto;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}
.apf-browse-toolbar-guide:hover,
.apf-browse-toolbar-guide:focus-visible {
  text-decoration: underline;
}
.apf-browse-active-filters {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  padding: 2px 0 12px;
  border-bottom: 1px solid var(--ap-line);
}
.apf-browse-active-label {
  flex: 0 0 auto;
  color: var(--ap-muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.apf-browse-active-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.apf-browse-active-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid #dbe4ee;
  border-radius: 999px;
  background: #f7faff;
  color: var(--ap-navy);
  font-size: 11.5px;
  font-weight: 750;
}
.apf-browse-clear-all {
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--ap-muted);
  font-size: 12px;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.apf-browse-card {
  display: flex;
  flex-direction: column;
}
.apf-browse-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}
.apf-browse-card-actions {
  margin-top: auto;
}
.apf-browse-buy {
  box-shadow: 0 3px 10px rgba(15,39,71,.10);
}
@media (max-width: 820px) {
  .apf-browse-toolbar-head {
    align-items: start;
  }
  .apf-browse-active-filters {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .apf-browse-clear-all {
    margin-left: 0;
  }
}
@media (max-width: 540px) {
  .apf-browse-toolbar-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
  }
  .apf-browse-toolbar-guide {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
  }
}


/* v0.4.264 — Browse finishing pass: removable filters, clearer preview affordance, catalog context, and filter return. */
.apf-browse-active-chip {
  gap: 7px;
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease;
}
.apf-browse-active-chip:hover,
.apf-browse-active-chip:focus-visible {
  border-color: #b8c9da;
  background: #eef5fc;
}
.apf-browse-active-chip-remove {
  display: inline-grid;
  width: 16px;
  height: 16px;
  place-items: center;
  border-radius: 999px;
  background: #e4edf6;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}
.apf-browse-preview-image {
  position: relative;
}
.apf-browse-preview-badge {
  position: absolute;
  left: 9px;
  bottom: 9px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 4px 7px;
  border-radius: 5px;
  background: rgba(15, 39, 71, .88);
  color: #fff;
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1;
  text-transform: uppercase;
  pointer-events: none;
}
.apf-browse-back-filters {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: var(--ap-navy);
  font-size: 12.5px;
  font-weight: 800;
  text-decoration: none;
}
.apf-browse-back-filters:hover,
.apf-browse-back-filters:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 620px) {
  .apf-browse-preview-badge {
    left: 4px;
    bottom: 4px;
    min-height: 16px;
    max-width: calc(100% - 8px);
    padding: 3px 4px;
    border-radius: 3px;
    font-size: 6.5px;
    letter-spacing: .025em;
    white-space: nowrap;
  }
}

/* Keep Back to Filters visible as a secondary Browse action. */
.apf-browse-back-filters {
  min-height: 42px;
  justify-content: center;
  border: 1px solid var(--ap-line);
  border-radius: 7px;
  padding: 0 16px;
  background: #fff;
  font-size: 13.5px;
}
@media (max-width: 820px) {
  .apf-browse-back-filters {
    width: 100%;
  }
}


/* v0.4.265 — Libraries overview: clarify the 1 / 4 / 16 Volume purchase hierarchy. */
.apf-library-size-guide {
  padding: 30px 0 34px;
  border-bottom: 1px solid var(--ap-line);
}
.apf-library-size-guide-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  margin-bottom: 18px;
}
.apf-library-size-guide-head h2 {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.12;
}
.apf-library-size-guide-head > div > p:last-child {
  max-width: 800px;
  margin: 0;
  color: var(--ap-muted);
  font-size: 14.5px;
  line-height: 1.6;
}
.apf-library-size-guide-link {
  align-self: end;
  color: var(--ap-navy) !important;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  text-decoration: none !important;
  white-space: nowrap;
}
.apf-library-size-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.apf-library-size-guide-card {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  grid-template-rows: auto auto auto auto;
  column-gap: 18px;
  align-content: start;
  min-height: 190px;
  padding: 20px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}
.apf-library-size-guide-card-master {
  background: #f8fbfe;
  border-color: #cfddec;
}
.apf-library-size-visual {
  grid-row: 1 / 5;
  align-self: start;
  width: 76px;
  height: 76px;
  display: grid;
  gap: 5px;
  padding: 10px;
  border-radius: 12px;
  background: #eef5fb;
}
.apf-library-size-visual span {
  min-width: 0;
  min-height: 0;
  border-radius: 3px;
  background: var(--ap-navy);
}
.apf-library-size-visual-one { grid-template-columns: 1fr; }
.apf-library-size-visual-one span { border-radius: 7px; }
.apf-library-size-visual-four { grid-template-columns: repeat(2, 1fr); }
.apf-library-size-visual-sixteen { grid-template-columns: repeat(4, 1fr); gap: 3px; padding: 9px; }
.apf-library-size-visual-sixteen span { border-radius: 2px; }
.apf-library-size-step {
  margin: 0 0 5px;
  color: #6b7d92;
  font-size: 10.5px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.apf-library-size-guide-card h3 {
  margin: 0 0 6px;
  color: var(--ap-navy);
  font-size: 17px;
  line-height: 1.25;
}
.apf-library-size-guide-card > p:not(.apf-library-size-step) {
  margin: 0 0 10px;
  color: var(--ap-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.apf-library-size-guide-card > strong {
  align-self: end;
  color: var(--ap-navy);
  font-size: 12px;
  line-height: 1.35;
}
@media (max-width: 880px) {
  .apf-library-size-guide-grid { grid-template-columns: 1fr; }
  .apf-library-size-guide-card { min-height: 0; }
}
@media (max-width: 620px) {
  .apf-library-size-guide { padding: 24px 0 28px; }
  .apf-library-size-guide-head { grid-template-columns: 1fr; gap: 10px; align-items: start; }
  .apf-library-size-guide-link { justify-self: start; min-height: 36px; display: inline-flex; align-items: center; }
  .apf-library-size-guide-card {
    grid-template-columns: 58px minmax(0, 1fr);
    column-gap: 14px;
    padding: 16px;
  }
  .apf-library-size-visual { width: 58px; height: 58px; padding: 8px; border-radius: 10px; }
  .apf-library-size-visual-sixteen { padding: 7px; gap: 2px; }
}


/* v0.4.266 — Libraries finishing pass: category navigation, bundle emphasis and savings hierarchy. */
.apf-library-category-jump {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 18px 0 8px;
  padding: 14px 0 22px;
  border-bottom: 1px solid var(--ap-line);
}
.apf-library-category-jump-label {
  flex: 0 0 auto;
  color: var(--ap-muted);
  font-size: 10.5px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.apf-library-category-jump-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.apf-library-category-jump-links a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #d5e0eb;
  border-radius: 999px;
  background: #fff;
  color: var(--ap-navy) !important;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none !important;
}
.apf-library-category-jump-links a:hover,
.apf-library-category-jump-links a:focus-visible {
  border-color: #9eb5cc;
  background: #f5f9fc;
}
.apf-library-save-badge,
.apf-library-save-inline {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eaf2fa;
  color: var(--ap-navy);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}
.apf-library-save-inline {
  min-height: 20px;
  margin-left: 4px;
  padding: 3px 7px;
  vertical-align: middle;
}
.apf-category-complete-card {
  border-color: #bdcfe1 !important;
  background: linear-gradient(180deg, #fbfdff 0%, #f5f9fd 100%) !important;
  box-shadow: inset 4px 0 0 #d9e8f5;
}
.apf-category-complete-body {
  align-items: center;
}
.apf-category-complete-label {
  color: var(--ap-navy) !important;
  font-weight: 900 !important;
}
.apf-category-complete-price,
.apf-master-complete-price {
  align-items: flex-end;
}
.apf-category-complete-price .apf-library-save-badge,
.apf-master-complete-price .apf-library-save-badge {
  margin-bottom: 2px;
}
.apf-master-complete-card {
  border-color: #9fb8d0 !important;
  background: linear-gradient(180deg, #f8fbfe 0%, #eef5fb 100%) !important;
  box-shadow: inset 5px 0 0 #b7cee2;
}
.apf-master-complete-main-link > .apf-home-kicker {
  color: #58718b;
}
.apf-master-complete-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, max-content));
  gap: 18px;
  margin-top: 18px;
}
.apf-master-complete-summary span {
  display: grid;
  gap: 3px;
  padding-right: 18px;
  border-right: 1px solid #d2dfeb;
}
.apf-master-complete-summary span:last-child {
  padding-right: 0;
  border-right: 0;
}
.apf-master-complete-summary strong {
  color: var(--ap-navy);
  font-size: 20px;
  line-height: 1;
}
.apf-master-complete-summary small {
  color: var(--ap-muted);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.apf-library-save-badge-master {
  background: #dceaf6;
}
.apf-mobile-complete-purchase-row .apf-library-save-badge {
  margin-bottom: 6px;
}
@media (max-width: 820px) {
  .apf-library-category-jump {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .apf-library-category-jump-links {
    width: 100%;
  }
  .apf-library-category-jump-links a {
    flex: 1 1 calc(50% - 4px);
    justify-content: center;
    text-align: center;
  }
  .apf-master-complete-summary {
    gap: 12px;
  }
}
@media (max-width: 520px) {
  .apf-library-category-jump-links a {
    flex-basis: 100%;
  }
  .apf-master-complete-summary {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .apf-master-complete-summary span {
    padding-right: 8px;
  }
  .apf-master-complete-summary strong {
    font-size: 17px;
  }
}


/* v0.4.267 — Library Volume detail as a purchase-confirmation page. */
.apf-library-purchase-summary {
  margin: 2px 0 12px;
  padding: 13px 14px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fafc;
}
.apf-library-purchase-summary-title {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: 12.5px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.apf-library-purchase-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.apf-library-purchase-summary-grid span {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #e4e9ef;
  border-radius: 8px;
  background: #fff;
  color: #344155;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
}
.apf-library-purchase-summary-grid span::before {
  content: "✓";
  flex: 0 0 auto;
  margin-right: 7px;
  color: var(--ap-navy);
  font-weight: 900;
}
.apf-library-origin-note {
  margin: 0 0 18px;
  padding: 10px 12px;
  border-left: 3px solid #b8c8da;
  background: #fbfcfe;
  color: #526176;
  font-size: 12.5px;
  line-height: 1.5;
}
.apf-library-origin-note strong { color: var(--ap-navy); }
.apf-library-first-purchase {
  display: grid;
  gap: 4px;
  margin-top: 11px;
  padding: 11px 13px;
  border: 1px solid #dbe4ee;
  border-radius: 9px;
  background: #fff;
}
.apf-library-first-purchase a {
  color: var(--ap-navy);
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
}
.apf-library-first-purchase a:hover { text-decoration: underline; }
.apf-library-first-purchase a:focus-visible { outline: 2px solid var(--ap-navy); outline-offset: 3px; }
.apf-library-first-purchase small { color: var(--ap-muted); font-size: 11.5px; line-height: 1.35; }
.apf-library-preview-image { position: relative; }
.apf-library-preview-badge {
  position: absolute;
  left: 6px;
  bottom: 6px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 4px 6px;
  border-radius: 4px;
  background: rgba(15, 39, 71, .88);
  color: #fff;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .045em;
  line-height: 1;
  text-transform: uppercase;
  pointer-events: none;
}
@media (max-width: 620px) {
  .apf-library-purchase-summary-grid { grid-template-columns: 1fr; }
  .apf-library-purchase-summary { padding: 12px; }
  .apf-library-purchase-summary-grid span { min-height: 36px; font-size: 12.5px; }
  .apf-library-preview-badge {
    left: 3px;
    bottom: 3px;
    min-height: 15px;
    max-width: calc(100% - 6px);
    padding: 3px;
    border-radius: 3px;
    font-size: 5.8px;
    letter-spacing: .015em;
    white-space: nowrap;
  }
}


/* v0.4.268 — Library Volume detail finishing pass: representative previews, Product ID, bundle path, and final CTA. */
.apf-library-price-block {
  display: grid;
  gap: 6px;
}
.apf-library-product-id {
  color: var(--ap-muted);
  font-size: 11.5px;
  font-weight: 750;
  letter-spacing: .035em;
}
.apf-library-complete-offer-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: inherit;
  text-decoration: none;
  transition: border-color .18s ease, background-color .18s ease;
}
.apf-library-complete-offer-link:hover {
  border-color: #b8c8da;
  background: #f6f9fc;
}
.apf-library-complete-offer-link:focus-visible {
  outline: 2px solid var(--ap-navy);
  outline-offset: 3px;
}
.apf-library-complete-link-label {
  flex: 0 0 auto;
  color: var(--ap-navy);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
}
.apf-library-complete-offer-context .apf-library-complete-link-label {
  color: var(--ap-muted);
  font-weight: 700;
}
.apf-library-preview-scroll {
  max-height: none !important;
  overflow: visible;
  padding-right: 0;
}
.apf-library-final-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-top: 22px;
  padding: 20px 22px;
  border: 1px solid #cad7e5;
  border-radius: 12px;
  background: #f7fafd;
}
.apf-library-final-cta > div:first-child {
  display: grid;
  gap: 4px;
}
.apf-library-final-cta-kicker {
  color: var(--ap-pink);
  font-size: 11.5px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.apf-library-final-cta strong {
  color: var(--ap-navy);
  font-size: 20px;
  line-height: 1.25;
}
.apf-library-final-cta small {
  color: var(--ap-muted);
  font-size: 11.5px;
  font-weight: 700;
}
.apf-library-final-cta-action {
  display: flex;
  align-items: center;
  gap: 16px;
}
.apf-library-final-cta-action > span {
  color: var(--ap-navy);
  font-size: 28px;
  font-weight: 850;
  line-height: 1;
}
@media (max-width: 760px) {
  .apf-library-complete-offer-link,
  .apf-library-complete-offer-context {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .apf-library-complete-link-label { white-space: normal; }
  .apf-library-final-cta { grid-template-columns: 1fr; gap: 14px; }
  .apf-library-final-cta-action { justify-content: space-between; }
}
@media (max-width: 520px) {
  .apf-library-final-cta { padding: 17px 15px; }
  .apf-library-final-cta-action { align-items: stretch; flex-direction: column; gap: 10px; }
  .apf-library-final-cta-action .apf-buy-button { width: 100%; text-align: center; }
}


/* v0.4.269 — Keep Library Character review inside the View Library page with 20-per-page pagination. */
.apf-library-detail-main .apf-library-preview-scroll {
  max-height: none !important;
  overflow: visible !important;
  padding-right: 0;
}
.apf-library-preview-range {
  margin: 0 0 4px !important;
  color: var(--ap-navy) !important;
  font-size: 13px !important;
  font-weight: 850;
}
.apf-library-preview-id-static {
  cursor: default;
}
.apf-library-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 22px;
}
.apf-library-pagination-page,
.apf-library-pagination-arrow {
  display: inline-grid;
  place-items: center;
  min-width: 38px;
  min-height: 38px;
  border: 1px solid var(--ap-line);
  border-radius: 7px;
  background: #fff;
  color: var(--ap-navy);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}
.apf-library-pagination-arrow {
  font-size: 22px;
}
.apf-library-pagination-page.current {
  border-color: var(--ap-navy);
  background: var(--ap-navy);
  color: #fff;
}
.apf-library-pagination-page:focus-visible,
.apf-library-pagination-arrow:focus-visible {
  outline: 2px solid var(--ap-navy);
  outline-offset: 3px;
}
@media (max-width: 620px) {
  .apf-library-pagination { gap: 6px; }
  .apf-library-pagination-page,
  .apf-library-pagination-arrow {
    min-width: 42px;
    min-height: 42px;
  }
}


/* v0.4.270 — Switch View Library Character pages in place without jumping to the page top. */
.apf-library-preview-section.is-loading .apf-library-preview-grid,
.apf-library-preview-section.is-loading .apf-library-pagination {
  opacity: .5;
  pointer-events: none;
}
.apf-library-preview-section .apf-library-preview-grid,
.apf-library-preview-section .apf-library-pagination {
  transition: opacity .12s ease;
}


/* v0.4.271 — Final View Library mobile and preview accessibility refinements. */
.apf-library-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  background: rgba(4,8,14,.72);
  color: #fff;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(4px);
}
.apf-library-modal-close:hover,
.apf-library-modal-close:focus-visible {
  background: rgba(4,8,14,.9);
  outline: 2px solid rgba(255,255,255,.82);
  outline-offset: 2px;
}
@media (max-width: 620px) {
  .apf-library-purchase-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }
  .apf-library-purchase-summary-grid span {
    min-height: 54px;
    padding: 8px;
    font-size: 11.5px;
    line-height: 1.3;
  }
  .apf-library-purchase-summary-grid span::before {
    margin-right: 5px;
  }
  .apf-library-modal-close {
    width: 44px;
    height: 44px;
    top: 8px;
    right: 8px;
    font-size: 30px;
  }
}


/* v0.4.273 — Sample page: lead with what can be tested, then access conditions. */
.apf-sample-overview-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}
.apf-sample-overview-strip > div {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: #f8fbfe;
}
.apf-sample-overview-strip strong,
.apf-sample-overview-strip span {
  display: block;
}
.apf-sample-overview-strip strong {
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.3;
}
.apf-sample-overview-strip span {
  margin-top: 4px;
  color: var(--ap-muted);
  font-size: 12px;
  line-height: 1.45;
}
.apf-sample-evaluation {
  margin: 30px 0 0;
  padding: 28px;
  border: 1px solid #dce5ef;
  border-radius: 14px;
  background: #fff;
}
.apf-sample-evaluation-head {
  max-width: 820px;
}
.apf-sample-evaluation-head h2,
.apf-sample-access-head h2 {
  margin: 6px 0 8px;
  color: var(--ap-navy);
}
.apf-sample-evaluation-head > p:last-child,
.apf-sample-access-head > p:last-child {
  margin: 0;
  color: var(--ap-muted);
  line-height: 1.7;
}
.apf-sample-test-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.apf-sample-test-grid article {
  min-width: 0;
  padding: 18px;
  border: 1px solid #e1e7ef;
  border-radius: 11px;
  background: #f9fbfd;
}
.apf-sample-test-grid strong,
.apf-sample-test-grid article > span:last-child {
  display: block;
}
.apf-sample-test-grid strong {
  margin-top: 10px;
  color: var(--ap-navy);
  font-size: 15px;
  line-height: 1.35;
}
.apf-sample-test-grid article > span:last-child {
  margin-top: 7px;
  color: var(--ap-muted);
  font-size: 13px;
  line-height: 1.6;
}
.apf-sample-test-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #eef5fb;
  color: var(--ap-navy);
}
.apf-sample-test-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-sample-file-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.apf-sample-file-grid > div {
  min-width: 0;
  padding: 15px;
  border: 1px solid #dfe7f0;
  border-radius: 9px;
  background: #fff;
}
.apf-sample-file-grid > div > span,
.apf-sample-file-grid strong,
.apf-sample-file-grid small {
  display: block;
}
.apf-sample-file-grid > div > span {
  color: #5f7187;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}
.apf-sample-file-grid strong {
  margin-top: 6px;
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.35;
}
.apf-sample-file-grid small {
  margin-top: 5px;
  color: var(--ap-muted);
  font-size: 11px;
  line-height: 1.45;
}
.apf-sample-access-head {
  max-width: 820px;
  margin-bottom: 20px;
}
.apf-sample-access .apf-sample-payment-notice {
  border-color: #dfe6ef;
  background: #f8fafc;
}
.apf-sample-access .apf-sample-payment-notice > strong {
  color: var(--ap-navy);
  text-transform: none;
}
@media (max-width: 760px) {
  .apf-sample-overview-strip,
  .apf-sample-test-grid {
    grid-template-columns: 1fr;
  }
  .apf-sample-file-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .apf-sample-evaluation {
    padding: 20px 18px;
  }
}
@media (max-width: 420px) {
  .apf-sample-file-grid {
    grid-template-columns: 1fr;
  }
}


/* v0.4.274 — Final Sample page hierarchy cleanup. */
.apf-sample-limits-card {
  width: 100%;
}
.apf-sample-next-step {
  margin-top: 28px;
  padding: 28px 30px;
  border: 1px solid var(--ap-line);
  border-radius: 14px;
  background: #fff;
}
.apf-sample-next-step h2 {
  margin: 6px 0 10px;
  color: var(--ap-navy);
}
.apf-sample-next-step p:not(.apf-home-kicker) {
  max-width: 760px;
  margin: 0 0 18px;
}
@media (max-width: 640px) {
  .apf-sample-next-step {
    padding: 22px 20px;
  }
}


/* v0.4.275 — FAQ discovery: common questions, search, and preserved deep links. */
.apf-faq-discovery {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: 22px;
  padding: 28px 0 4px;
}
.apf-faq-quick,
.apf-faq-search {
  min-width: 0;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: #fff;
}
.apf-faq-quick { padding: 22px; }
.apf-faq-quick-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.apf-faq-quick-head h2 { margin:0; color:var(--ap-navy); font-size:22px; line-height:1.15; }
.apf-faq-quick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.apf-faq-quick-link {
  display:flex; align-items:center; gap:10px; min-width:0; padding:11px 12px;
  border-radius:9px; background:#f6f8fb; color:var(--ap-navy); text-decoration:none;
}
.apf-faq-quick-link:last-child { grid-column:1 / -1; }
.apf-faq-quick-link span {
  display:grid; place-items:center; flex:0 0 30px; width:30px; height:30px;
  border-radius:999px; background:#fff; border:1px solid #d8e1ec;
  font-size:11px; font-weight:850; letter-spacing:.04em;
}
.apf-faq-quick-link strong { min-width:0; font-size:13.5px; line-height:1.35; }
.apf-faq-quick-link:hover, .apf-faq-quick-link:focus-visible { background:#eef4fa; }
.apf-faq-search { padding:22px; background:#fafbfc; }
.apf-faq-search label { display:block; margin-bottom:10px; color:var(--ap-navy); font-size:14px; font-weight:800; }
.apf-faq-search-row { display:flex; gap:8px; }
.apf-faq-search input {
  min-width:0; width:100%; min-height:44px; padding:10px 12px; border:1px solid #cfd9e5;
  border-radius:8px; background:#fff; color:var(--ap-text); font-size:16px;
}
.apf-faq-search button {
  flex:0 0 auto; min-height:44px; padding:0 14px; border:1px solid #cfd9e5; border-radius:8px;
  background:#fff; color:var(--ap-navy); font-weight:800; cursor:pointer;
}
.apf-faq-search-help, .apf-faq-no-results { margin:9px 0 0; color:var(--ap-muted); font-size:12.5px; line-height:1.5; }
.apf-faq-no-results { color:#8a334d; font-weight:750; }
.apf-faq-group details[id] { scroll-margin-top:110px; }
.apf-faq-group details[hidden], .apf-faq-group[hidden] { display:none !important; }
@media (max-width: 860px) {
  .apf-faq-discovery { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .apf-faq-discovery { padding-top:22px; gap:14px; }
  .apf-faq-quick, .apf-faq-search { padding:16px; }
  .apf-faq-quick-head { display:block; }
  .apf-faq-quick-head h2 { margin-top:5px; font-size:20px; }
  .apf-faq-quick-grid { grid-template-columns:1fr; }
  .apf-faq-quick-link:last-child { grid-column:auto; }
  .apf-faq-search-row { align-items:stretch; }
}


/* v0.4.276 — FAQ final usability polish without changing public anchors. */
#apf-faq-categories,
.apf-faq-group {
  scroll-margin-top: 118px;
}
.apf-faq-search-count {
  margin: 7px 0 0;
  color: var(--ap-navy);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.4;
}
.apf-faq-index a.is-active,
.apf-faq-index a[aria-current="location"] {
  background: #eef4fa;
  color: var(--ap-navy);
  font-weight: 800;
}
.apf-faq-back-categories {
  display: none;
}
@media (max-width: 860px) {
  #apf-faq-categories,
  .apf-faq-group {
    scroll-margin-top: 84px;
  }
  .apf-faq-back-categories {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 16px;
    color: var(--ap-navy);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
  }
}

/* v0.4.294 — Purchase Guide visual hierarchy aligned with Home icon language. */
.apf-purchase-guide-icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

.apf-purchase-guide-icon-tile,
.apf-purchase-guide-result-icon,
.apf-purchase-guide-support-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: #687a8f;
  background: #f7f9fc;
  border: 1px solid #edf1f5;
  box-shadow: none;
  line-height: 0;
}

.apf-purchase-guide-icon-tile {
  width: 48px;
  height: 48px;
  border-radius: 12px;
}

.apf-purchase-guide-icon-tile svg,
.apf-purchase-guide-result-icon svg,
.apf-purchase-guide-support-icon svg {
  display: block;
  width: 24px;
  height: 24px;
}

.apf-purchase-guide-flow {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 22px;
  margin-top: 20px;
}

.apf-purchase-guide-flow-card {
  padding: 18px 2px 20px;
  border: 0;
  border-top: 1px solid var(--ap-line);
  border-radius: 0;
  background: transparent;
}

.apf-purchase-guide-flow-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.apf-purchase-guide-flow-card h3 {
  margin-top: 0;
}

.apf-purchase-guide-step-number {
  min-width: 38px;
  min-height: 26px;
  padding: 3px 9px;
  background: #fbe9ee;
  border: 1px solid #f3dbe2;
}

.apf-purchase-guide-result-card {
  position: relative;
  padding-top: 18px;
  overflow: hidden;
}

.apf-purchase-guide-result-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: #d8e2ee;
}

.apf-purchase-guide-result-icon,
.apf-purchase-guide-support-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 12px;
  border-radius: 11px;
}

.apf-purchase-guide-result-icon svg,
.apf-purchase-guide-support-icon svg {
  width: 22px;
  height: 22px;
}

.apf-purchase-guide-result-ready::before { background: #9dbede; }
.apf-purchase-guide-result-blocked::before { background: #d9a9b7; }
.apf-purchase-guide-result-review::before { background: #b9c6d6; }
.apf-purchase-guide-result-started::before { background: #8fb0d3; }
.apf-purchase-guide-result-retry::before { background: #c8d1dc; }

.apf-purchase-guide-result-blocked .apf-purchase-guide-result-icon,
.apf-purchase-guide-result-review .apf-purchase-guide-result-icon {
  background: #fff7f9;
  border-color: #f1dde3;
}

.apf-purchase-guide-support-grid .apf-purchase-guide-role-card {
  position: relative;
}

.apf-purchase-guide-sample-note {
  margin-top: 13px;
  padding: 12px 0 0;
  border: 0;
  border-top: 1px solid #eadde2;
  border-radius: 0;
  background: transparent;
}

.apf-purchase-guide-sample-note strong {
  margin-bottom: 3px;
}

@media (min-width: 801px) {
  .apf-purchase-guide-main .apf-policy-index > a {
    margin: 0 -7px;
    padding: 7px 9px;
    border-radius: 6px;
    transition: color .16s ease, background .16s ease, box-shadow .16s ease;
  }

  .apf-purchase-guide-main .apf-policy-index > a.is-active {
    color: var(--ap-navy);
    background: #fff;
    box-shadow: inset 3px 0 0 var(--ap-pink);
    font-weight: 700;
  }
}

@media (max-width: 1100px) {
  .apf-purchase-guide-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .apf-purchase-guide-flow {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .apf-purchase-guide-flow-card {
    padding: 16px 0 18px;
  }

  .apf-purchase-guide-icon-tile {
    width: 44px;
    height: 44px;
    border-radius: 11px;
  }

  .apf-purchase-guide-icon-tile svg {
    width: 22px;
    height: 22px;
  }
}


/* v0.4.296 — shared desktop current-section indicator for left-side page indexes. */
@media (min-width: 801px) {
  .apf-policy-index > a {
    margin: 0 -7px;
    padding: 7px 9px;
    border-radius: 6px;
    transition: color .16s ease, background .16s ease, box-shadow .16s ease;
  }

  .apf-policy-index > a.is-active,
  .apf-policy-index > a[aria-current="location"] {
    color: var(--ap-navy);
    background: #fff;
    box-shadow: inset 3px 0 0 var(--ap-pink);
    font-weight: 700;
  }
}

@media (min-width: 861px) {
  .apf-faq-index > a {
    margin: 0 -7px;
    padding: 7px 9px;
    border-radius: 6px;
    transition: color .16s ease, background .16s ease, box-shadow .16s ease;
  }

  .apf-faq-index > a.is-active,
  .apf-faq-index > a[aria-current="location"] {
    color: var(--ap-navy);
    background: #fff;
    box-shadow: inset 3px 0 0 var(--ap-pink);
    font-weight: 700;
  }
}

/* v0.4.297 — Sample Terms: concise scope summary and clearer legal-reading hierarchy. */
.apf-sample-terms-hero {
  max-width: 980px;
}
.apf-sample-terms-hero > p:last-of-type {
  max-width: 820px;
}
.apf-sample-terms-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}
.apf-sample-terms-summary > div {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid #dfe7f0;
  border-radius: 10px;
  background: #f8fbfe;
}
.apf-sample-terms-summary strong,
.apf-sample-terms-summary span {
  display: block;
}
.apf-sample-terms-summary strong {
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.35;
}
.apf-sample-terms-summary span {
  margin-top: 4px;
  color: var(--ap-muted);
  font-size: 12px;
  line-height: 1.5;
}
.apf-sample-terms-list {
  margin: 14px 0 18px;
  padding-left: 20px;
  color: #3f4754;
}
.apf-sample-terms-list li {
  margin: 7px 0;
  padding-left: 3px;
  font-size: 15.5px;
  line-height: 1.7;
}
.apf-sample-terms-list-restricted li::marker {
  color: var(--ap-pink);
}
@media (max-width: 980px) {
  .apf-sample-terms-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .apf-sample-terms-summary {
    grid-template-columns: 1fr;
  }
}

/* v0.4.298 — Sample Terms finishing design: icons, scope cues, compact payment note. */
.apf-sample-terms-summary > div {
  position: relative;
  padding-top: 13px;
}
.apf-sample-terms-summary-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 10px;
  border: 1px solid #dbe5ef;
  border-radius: 9px;
  background: #f2f7fb;
  color: var(--ap-navy);
}
.apf-sample-terms-summary-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-sample-terms-summary > div:nth-child(3) .apf-sample-terms-summary-icon,
.apf-sample-terms-summary > div:nth-child(4) .apf-sample-terms-summary-icon {
  color: #275f88;
}
.apf-sample-terms-payment-note {
  margin: 17px 0 18px;
  padding: 15px 17px;
  border: 1px solid #eadfe4;
  border-left: 3px solid var(--ap-pink);
  border-radius: 9px;
  background: #fff9fb;
}
.apf-sample-terms-payment-note > strong {
  display: block;
  color: var(--ap-navy);
  font-size: 14px;
  line-height: 1.45;
}
.apf-sample-terms-payment-note p {
  margin: 8px 0 0;
}
.apf-sample-terms-scope-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 2px 0 10px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.apf-sample-terms-scope-label span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
}
.apf-sample-terms-scope-label svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-sample-terms-scope-label-permitted {
  color: var(--ap-navy);
  background: #f2f7fb;
  border: 1px solid #dbe5ef;
}
.apf-sample-terms-scope-label-restricted {
  color: #7f314d;
  background: #fff4f7;
  border: 1px solid #f0d7df;
}

/* v0.4.300 — HOME Hero artwork alignment.
   Keep the existing responsive image sizing, but anchor the Hero artwork to the right
   on desktop and tablet. Mobile remains centered for balanced narrow-screen display. */
@media (min-width: 701px) {
  .apf-home-hero-process-image {
    margin-left: auto;
    margin-right: 0;
  }
}


/* v0.4.301 — HOME Hero artwork scale.
   Display the current Hero artwork at 70% of the v0.4.300 rendered size (30% smaller),
   preserving right alignment on desktop/tablet and centered presentation on mobile. */
@media (min-width: 1181px) {
  .apf-home-hero-process-image {
    width: min(51.8%, 602px);
    max-width: 602px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-process-image {
    width: min(53.2%, 532px);
    max-width: 532px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-process-image {
    width: min(54.6%, 476px);
    max-width: 476px;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 700px) {
  .apf-home-hero-process-image {
    width: min(70%, 434px);
    max-width: 434px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* v0.4.302 — HOME Hero title + artwork side-by-side composition.
   Keep the four-line Hero title on the left and place the current generation-process
   artwork directly to its right. Preserve the v0.4.301 30%-smaller artwork scale.
   Narrow mobile screens return to a simple title-then-artwork stack. */
@media (min-width: 701px) {
  .apf-home-hero-stage {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    grid-template-areas: "title visual";
    align-items: center;
    gap: clamp(20px, 3vw, 46px);
    min-height: 0;
    margin: 0 0 28px;
  }

  .apf-home-hero-title-wrap {
    grid-area: title;
    position: static;
    left: auto;
    bottom: auto;
    width: 100%;
    max-width: 500px;
    align-self: center;
    z-index: 2;
  }

  .apf-home-hero-visual-process {
    grid-area: visual;
    width: 100%;
    min-width: 0;
    justify-content: flex-end;
    align-items: center;
  }

  .apf-home-hero-process-image {
    margin-left: auto;
    margin-right: 0;
  }
}

@media (min-width: 1181px) {
  .apf-home-hero-process-image {
    width: min(70%, 602px);
    max-width: 602px;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(0, .92fr) minmax(330px, 1.08fr);
    gap: clamp(18px, 2.6vw, 34px);
  }

  .apf-home-hero-title-wrap {
    max-width: 430px;
  }

  .apf-home-hero-process-image {
    width: min(70%, 532px);
    max-width: 532px;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr);
    gap: 18px;
  }

  .apf-home-hero-title-wrap {
    max-width: 370px;
  }

  .apf-home-hero-process-image {
    width: min(70%, 476px);
    max-width: 476px;
  }
}

@media (max-width: 700px) {
  .apf-home-hero-stage {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }

  .apf-home-hero-title-wrap {
    order: 1;
    position: static;
    width: 100%;
    margin: 0;
  }

  .apf-home-hero-visual-process {
    order: 2;
    width: 100%;
    justify-content: center;
  }

  .apf-home-hero-process-image {
    width: min(70%, 434px);
    max-width: 434px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* Revised v0.4.302 HOME Hero side-by-side order and balance.
   Keep the artwork in the left column and the four-line Hero title in the right column,
   but anchor the artwork toward the title so the two read as one composition. */
@media (min-width: 701px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(360px, 1.1fr) minmax(0, .9fr);
    grid-template-areas: "visual title";
    gap: clamp(10px, 1.35vw, 20px);
  }

  .apf-home-hero-visual-process {
    justify-content: flex-end;
  }

  .apf-home-hero-process-image {
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(330px, 1.08fr) minmax(0, .92fr);
    gap: 14px;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(280px, 1fr) minmax(0, 1fr);
    gap: 12px;
  }
}

/* Revised v0.4.302 HOME Hero title alignment.
   Keep the Hero title block on the right of the artwork, but left-align the four-line title text. */
@media (min-width: 701px) {
  .apf-home-hero-title-wrap,
  .apf-home-hero-title-wrap h1,
  .apf-home-title-line {
    text-align: left;
  }
}


/* v0.4.305 — HOME Hero left-aligned composition.
   Left-align the artwork + title group as one unit while preserving the approved
   artwork/title spacing from v0.4.304. The artwork stays left of the title and
   the title text remains left-aligned. */
@media (min-width: 1181px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(0, 38.5%) minmax(0, 500px);
    justify-content: start;
    gap: clamp(10px, 1.35vw, 20px);
  }

  .apf-home-hero-visual-process {
    justify-content: flex-start;
  }

  .apf-home-hero-process-image {
    width: 100%;
    max-width: 602px;
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(0, 37.8%) minmax(0, 430px);
    justify-content: start;
    gap: 14px;
  }

  .apf-home-hero-visual-process {
    justify-content: flex-start;
  }

  .apf-home-hero-process-image {
    width: 100%;
    max-width: 532px;
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 900px) and (min-width: 701px) {
  .apf-home-hero-stage {
    grid-template-columns: minmax(0, 35%) minmax(0, 370px);
    justify-content: start;
    gap: 12px;
  }

  .apf-home-hero-visual-process {
    justify-content: flex-start;
  }

  .apf-home-hero-process-image {
    width: 100%;
    max-width: 476px;
    margin-left: 0;
    margin-right: 0;
  }
}


/* v0.4.309 — Home catalog preview balance.
   Keep all four sample Characters visible in one row at every viewport width.
   Desktop uses a restrained ~68% row so the portraits stay secondary to the Hero without
   feeling undersized; tablet/mobile use the available width and tighter spacing. */
.apf-home-catalog-preview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (min-width: 901px) {
  .apf-home-catalog-preview-grid {
    width: 68%;
    max-width: 720px;
    gap: 10px;
  }
}

@media (min-width: 421px) and (max-width: 900px) {
  .apf-home-catalog-preview-grid {
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }
  .apf-home-catalog-preview-id {
    padding: 8px 8px 9px;
    font-size: 11px;
  }
}

@media (max-width: 420px) {
  .apf-home-catalog-preview-grid {
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
  }
  .apf-home-catalog-preview-card {
    border-radius: 8px;
  }
  .apf-home-catalog-preview-id {
    padding: 6px 5px 7px;
    font-size: 9px;
    line-height: 1.2;
  }
}


/* v0.4.308 — distinguish a narrowed desktop browser from a true phone layout.
   On mouse/trackpad devices, keep the public WordPress navigation in desktop form and
   keep the HOME hero side-by-side down to 621px. True narrow touch devices retain the
   existing mobile navigation and stacked HOME hero. */
@media (min-width: 621px) and (hover: hover) and (pointer: fine) {
  .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }

  .wp-block-navigation__responsive-container.hidden-by-default,
  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: flex !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    z-index: auto !important;
  }

  .wp-block-navigation__responsive-container-close {
    display: none !important;
  }

  .wp-block-navigation__responsive-container-content,
  .wp-block-navigation__container {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
  }
}

@media (min-width: 621px) and (max-width: 700px) and (hover: hover) and (pointer: fine) {
  .apf-home-hero-stage {
    display: grid;
    grid-template-columns: minmax(230px, 35%) minmax(0, 370px);
    grid-template-areas: "visual title";
    align-items: center;
    justify-content: start;
    gap: 12px;
    min-height: 0;
    margin: 0 0 28px;
  }

  .apf-home-hero-title-wrap {
    grid-area: title;
    order: initial;
    position: static;
    width: 100%;
    max-width: 370px;
    margin: 0;
    text-align: left;
  }

  .apf-home-hero-visual-process {
    grid-area: visual;
    order: initial;
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
    align-items: center;
  }

  .apf-home-hero-process-image {
    width: 100%;
    max-width: 434px;
    margin-left: 0;
    margin-right: 0;
  }
}


/* v0.4.310 — center the Home Character Catalog sample row.
   Keep the approved four-card sizing and spacing; center the group within the content area. */
@media (min-width: 901px) {
  .apf-home-catalog-preview-grid {
    margin-left: auto;
    margin-right: auto;
  }
}

/* v0.4.312 — enlarge the Home Hero artwork by 10%, preserving the title gap.
   Increase the image column as well as its cap so the image stays in normal flow. */
@media (min-width: 1181px) {
  .apf-home-hero-stage { grid-template-columns: minmax(0, 42.35%) minmax(0, 500px); }
  .apf-home-hero-process-image { max-width: 662.2px; }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .apf-home-hero-stage { grid-template-columns: minmax(0, 41.58%) minmax(0, 430px); }
  .apf-home-hero-process-image { max-width: 585.2px; }
}
@media (min-width: 701px) and (max-width: 900px) {
  .apf-home-hero-stage { grid-template-columns: minmax(0, 38.5%) minmax(0, 370px); }
  .apf-home-hero-process-image { max-width: 523.6px; }
}
@media (max-width: 700px) {
  .apf-home-hero-process-image { width: min(77%, 477.4px); max-width: 477.4px; }
}
@media (min-width: 621px) and (max-width: 700px) and (hover: hover) and (pointer: fine) {
  .apf-home-hero-stage { grid-template-columns: minmax(253px, 38.5%) minmax(0, 370px); }
  .apf-home-hero-process-image { width: 100%; max-width: 477.4px; }
}

/* v0.4.313 — shared icon-tile centering on every page.
   [class] keeps prose span rules from overriding the icon layout. */
:is(
  .apf-svg-icon,
  .apf-package-icon,
  .apf-sample-folder-icon,
  .apf-character-package-icon,
  .apf-character-selection-icon,
  .apf-character-sample-icon,
  .apf-character-delivery-icon,
  .apf-home-flow-icon,
  .apf-home-visual-icon,
  .apf-home-card-icon,
  .apf-home-file-icon,
  .apf-home-pillar-icon,
  .apf-home-use-icon,
  .apf-home-proof-icon,
  .apf-home-security-icon,
  .apf-sample-test-icon,
  .apf-purchase-guide-icon-tile,
  .apf-purchase-guide-result-icon,
  .apf-purchase-guide-support-icon,
  .apf-sample-terms-summary-icon
)[class] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
:is(
  .apf-svg-icon,
  .apf-package-icon,
  .apf-sample-folder-icon,
  .apf-character-package-icon,
  .apf-character-selection-icon,
  .apf-character-sample-icon,
  .apf-character-delivery-icon,
  .apf-home-flow-icon,
  .apf-home-visual-icon,
  .apf-home-card-icon,
  .apf-home-file-icon,
  .apf-home-pillar-icon,
  .apf-home-use-icon,
  .apf-home-proof-icon,
  .apf-home-security-icon,
  .apf-sample-test-icon,
  .apf-purchase-guide-icon-tile,
  .apf-purchase-guide-result-icon,
  .apf-purchase-guide-support-icon,
  .apf-sample-terms-summary-icon
)[class] > svg {
  display: block;
  flex-shrink: 0;
  margin: 0;
}

/* v0.4.314 — Contact: clear support destinations and readable email requirements. */
.apf-contact-hero .apf-contact-route-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.apf-contact-route-nav a { padding:9px 13px; border:1px solid var(--ap-line); border-radius:8px; color:var(--ap-navy); background:#f7fafd; text-decoration:none; font-size:14px; }
.apf-contact-route-nav a:hover { background:#edf4fa; }
.apf-contact-route-nav a:focus-visible { outline:2px solid var(--ap-navy); outline-offset:3px; }
.apf-contact-grid { align-items:start; }
.apf-contact-card h3 { margin:24px 0 8px; color:var(--ap-navy); font-size:16px; }
.apf-contact-card p { margin:10px 0 16px; }
.apf-contact-reporting-note { padding:12px 14px; border-left:3px solid #aebfd0; background:#f7fafd; }
.apf-contact-email-checklist li { margin:5px 0; }
.apf-contact-status-section { margin-top:22px; }
.apf-contact-card[id] { scroll-margin-top:90px; }
.apf-contact-email { overflow-wrap:anywhere; }
@media (max-width:620px) { .apf-contact-card { padding:20px; } .apf-contact-route-nav a { flex:1 1 100%; } }

/* v0.4.317 — Contact uses one navigation on every screen. */
#apf-contact-privacy { scroll-margin-top:90px; }
.apf-contact-privacy-email { color:var(--ap-navy); font-weight:650; }
.apf-contact-gumroad-topics li { margin:9px 0; }
.apf-contact-seller-link { margin:20px 0; font-size:14px; }

/* v0.4.318 — Contact visual hierarchy, with support copy unchanged. */
.apf-contact-main .apf-contact-grid { gap:20px; }
.apf-contact-main .apf-contact-card { box-shadow:none; border-color:#dfe7f0; }
.apf-contact-icon { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; margin-bottom:14px; border:1px solid #dbe5ef; border-radius:10px; background:#f2f7fb; color:var(--ap-navy); line-height:0; }
.apf-contact-icon > svg { display:block; flex:none; width:23px; height:23px; margin:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.apf-contact-secondary-grid { margin-top:20px; }
.apf-contact-secondary-grid .apf-contact-card { background:#f8fbfe; }
.apf-contact-secondary-grid h2 { font-size:20px; }
.apf-contact-card .apf-contact-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:18px 0; padding:0; list-style:none; }
.apf-contact-status-grid > li { margin:0; padding:16px 18px; border:1px solid #e1e8ef; border-radius:9px; background:#f8fbfe; }
.apf-contact-status-grid > li > strong { display:block; margin-bottom:7px; color:var(--ap-navy); font-size:15px; }
.apf-contact-catalog-links { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; padding-top:20px; margin-top:20px; border-top:1px solid var(--ap-line); }
.apf-contact-catalog-links .apf-home-kicker { margin:0 0 5px; font-size:10px; }
.apf-contact-catalog-links h2 { margin:0; color:var(--ap-navy); font-size:17px; }
.apf-contact-catalog-links .apf-catalog-end-actions { display:flex; flex-wrap:wrap; gap:12px 20px; }
.apf-contact-catalog-links a { color:var(--ap-navy); font-size:14px; text-underline-offset:3px; }
.apf-contact-main a:focus-visible { outline:2px solid var(--ap-navy); outline-offset:3px; }
@media (max-width:620px) {
  .apf-contact-card .apf-contact-status-grid { grid-template-columns:1fr; }
  .apf-contact-status-grid > li { padding:14px; }
  .apf-contact-catalog-links { align-items:flex-start; flex-direction:column; }
}

/* v0.4.321 — About reading/navigation refinement; all approved copy retained. */
.apf-about-main .apf-about-index { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:24px 0 38px; }
.apf-about-index .apf-mobile-hierarchy-link { display:flex; align-items:flex-start; gap:10px; min-width:0; padding:15px; border:1px solid #dfe7f0; border-radius:10px; background:#f8fbfe; color:var(--ap-navy); text-decoration:none; }
.apf-about-index .apf-mobile-hierarchy-code { flex:0 0 26px; padding-top:2px; color:#57738e; font-size:12px; font-weight:700; }
.apf-about-index .apf-mobile-hierarchy-copy { display:block; min-width:0; flex:1; }
.apf-about-index .apf-mobile-hierarchy-copy strong { display:block; font-size:14px; line-height:1.4; }
.apf-about-index .apf-mobile-hierarchy-copy small { display:block; margin-top:5px; color:var(--ap-muted); font-size:12px; line-height:1.55; }
.apf-about-index .apf-mobile-hierarchy-arrow { flex:none; color:#57738e; }
.apf-about-index .apf-mobile-hierarchy-link:hover { background:#eef5fb; border-color:#bbcddd; }
.apf-about-index .apf-mobile-hierarchy-link:last-child { grid-column:1/-1; align-items:center; }
.apf-about-index .apf-mobile-hierarchy-link:last-child small { display:inline; margin-left:12px; }
.apf-about-index .apf-mobile-hierarchy-link:last-child strong { display:inline; }
.apf-about-main [id^="apf-about-"] { scroll-margin-top:90px; }
.apf-about-main a:focus-visible { outline:2px solid var(--ap-navy); outline-offset:3px; }
.apf-about-main .apf-about-section { margin-top:38px; }
.apf-about-main .apf-about-section-head > p:not(.apf-home-kicker) { line-height:1.8; }
.apf-about-main .apf-about-grid-four article { padding:20px; box-shadow:none; border-color:#dfe7f0; }
.apf-about-main .apf-about-grid-four .apf-about-feature-icon { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; margin:0 0 13px; border:1px solid #dbe5ef; border-radius:10px; background:#f2f7fb; color:var(--ap-navy); line-height:0; }
.apf-about-feature-icon > svg { display:block; flex:none; width:23px; height:23px; margin:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.apf-about-main .apf-about-selection-response { border-left:3px solid #90aec9; }
.apf-about-main .apf-home-problem-card { box-shadow:none; }
.apf-about-main .apf-home-research-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.apf-about-main .apf-home-research-links a { padding:11px 15px; border:1px solid #b7cada; border-radius:8px; background:#fff; color:var(--ap-navy); font-weight:650; text-decoration:underline; text-underline-offset:3px; }
.apf-about-main .apf-home-research-links a:hover { background:#edf4fa; }
@media (max-width:980px) { .apf-about-main .apf-about-index { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) {
 .apf-about-main .apf-about-index { grid-template-columns:1fr; gap:8px; margin:20px 0 28px; }
 .apf-about-index .apf-mobile-hierarchy-link { padding:13px; }
 .apf-about-index .apf-mobile-hierarchy-link:last-child strong, .apf-about-index .apf-mobile-hierarchy-link:last-child small { display:block; margin-left:0; }
 .apf-about-main .apf-about-section { margin-top:28px; }
 .apf-about-main .apf-home-research-links { flex-direction:column; }
}


/* v0.4.336 — About final visual refinement only; approved copy/structure retained. */
.apf-about-main .apf-about-index {
  gap: 8px;
  margin: 22px 0 34px;
}
.apf-about-index .apf-mobile-hierarchy-link {
  padding: 12px 13px;
  border-color: #e4ebf2;
  background: #fbfdff;
}
.apf-about-index .apf-mobile-hierarchy-copy small {
  margin-top: 4px;
  font-size: 11.5px;
  line-height: 1.45;
}
.apf-about-index .apf-mobile-hierarchy-link:hover {
  background: #f4f8fc;
  border-color: #cbd9e5;
}

/* Section 01: keep supporting material visibly secondary to the generation-source narrative. */
.apf-about-main .apf-about-origin-notice {
  margin-top: 16px;
  padding: 14px 16px;
  border-color: #eadde2;
  background: #fffafb;
}
.apf-about-main .apf-about-working-reference-note {
  padding: 19px 20px;
  border-color: #e1e8ef;
  background: #fafcfe;
}
.apf-about-main .apf-about-working-reference-note h3 {
  font-size: 23px;
}

/* Section 05: supplementary references read as a compact list rather than another card grid. */
.apf-about-main .apf-home-research-summary {
  display: block;
  margin-top: 14px;
  border-top: 1px solid var(--ap-line);
}
.apf-about-main .apf-home-research-summary > div {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) minmax(0, 1fr);
  gap: 16px;
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--ap-line);
  border-radius: 0;
  background: transparent;
}
.apf-about-main .apf-home-research-summary strong {
  font-size: 12.5px;
}
.apf-about-main .apf-home-research-summary span {
  margin-top: 0;
  color: var(--ap-muted);
}
.apf-about-main .apf-home-research-links {
  gap: 8px 16px;
  margin-top: 14px;
}
.apf-about-main .apf-home-research-links a {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12.5px;
}
.apf-about-main .apf-home-research-links a:hover {
  background: transparent;
}
.apf-about-main .apf-home-research-compact .apf-home-research-disclaimer {
  margin-top: 12px;
  padding-top: 10px;
}
@media (max-width: 620px) {
  .apf-about-main .apf-about-index { gap: 7px; margin: 18px 0 26px; }
  .apf-about-index .apf-mobile-hierarchy-link { padding: 11px 12px; }
  .apf-about-main .apf-home-research-summary > div { grid-template-columns: 1fr; gap: 5px; }
}

/* v0.4.337 — Privacy Policy: clearer hierarchy and concise privacy summary. */
.apf-privacy-header {
  max-width: 900px;
}
.apf-privacy-updated {
  margin-top: 12px !important;
  color: #64748b !important;
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .015em;
}
.apf-privacy-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 26px 0 34px;
}
.apf-privacy-summary article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 16px;
  border: 1px solid #dbe5ef;
  border-radius: 10px;
  background: #f8fbfe;
}
.apf-privacy-summary-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #eef5fb;
  color: var(--ap-navy);
}
.apf-privacy-summary-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apf-privacy-summary strong,
.apf-privacy-summary article > div > span {
  display: block;
}
.apf-privacy-summary strong {
  margin: 1px 0 4px;
  color: var(--ap-navy);
  font-size: 14px;
  line-height: 1.35;
}
.apf-privacy-summary span {
  color: var(--ap-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.apf-privacy-content > section {
  padding: 28px 0;
  border-top: 1px solid var(--ap-line);
}
.apf-privacy-content > section:first-of-type {
  border-top: 0;
}
.apf-privacy-content h2 {
  margin-bottom: 12px;
}
.apf-privacy-content h3 {
  margin: 20px 0 7px;
  color: var(--ap-navy);
  font-size: 15px;
  line-height: 1.4;
}
.apf-privacy-content p {
  max-width: 900px;
}
@media (max-width: 800px) {
  .apf-privacy-summary { grid-template-columns: 1fr; }
}

/* v0.4.344 — Privacy Policy: customer-information / retention / request overview. */
.apf-privacy-table-wrap {
  overflow-x: auto;
  margin: 18px 0 16px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}
.apf-privacy-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
  color: var(--ap-text);
  font-size: 13px;
  line-height: 1.55;
}
.apf-privacy-table th,
.apf-privacy-table td {
  padding: 14px 15px;
  vertical-align: top;
  text-align: left;
  border-bottom: 1px solid var(--ap-line);
  border-right: 1px solid var(--ap-line);
}
.apf-privacy-table th:last-child,
.apf-privacy-table td:last-child {
  border-right: 0;
}
.apf-privacy-table tbody tr:last-child th,
.apf-privacy-table tbody tr:last-child td {
  border-bottom: 0;
}
.apf-privacy-table thead th {
  color: var(--ap-navy);
  background: #f6f9fc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
}
.apf-privacy-table tbody th {
  width: 19%;
  color: var(--ap-navy);
  background: #fbfdff;
  font-weight: 750;
}
.apf-privacy-note {
  max-width: 900px;
  margin-top: 14px !important;
  padding: 13px 15px;
  border: 1px solid #ead7df;
  border-radius: 8px;
  background: #fff8fb;
}
@media (max-width: 800px) {
  .apf-privacy-table { min-width: 820px; }
}

/* v0.4.345 — Privacy Policy: B2B marketing-contact and suppression summary. */
@media (min-width: 1101px) {
  .apf-privacy-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .apf-privacy-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v0.4.376 — Header logo replacement and exact subtitle text-start alignment.
   The newly supplied Soravure mark is used as provided. The shared subtitle is offset by
   the same rendered mark width + gap as the title, so “AI Character Library” starts
   directly under the “A” in “Aoyama Persona.” */
body[class*="apf-"] .site-branding {
  --ap-brand-mark-size: 25px;
  --ap-brand-mark-gap: 6px;
}
body[class*="apf-"] .site-title > a::before {
  content: "";
  display: inline-block;
  width: var(--ap-brand-mark-size);
  height: var(--ap-brand-mark-size);
  margin-right: var(--ap-brand-mark-gap);
  vertical-align: middle;
  background: url("soravure-logo-mark.png") center / contain no-repeat;
}
body[class*="apf-"] .site-description {
  padding-left: calc(var(--ap-brand-mark-size) + var(--ap-brand-mark-gap));
}



/* v0.4.377 — concise Library purchase confirmation beside every Library purchase action. */
.apf-library-purchase-notice {
  margin: 9px 0 0;
  padding-top: 8px;
  border-top: 1px solid #d8e3ef;
  color: var(--ap-muted);
  font-size: 10.5px;
  line-height: 1.45;
  text-align: left;
}
.apf-library-purchase-notice p { margin: 0; }
.apf-library-purchase-notice p + p { margin-top: 3px; }
.apf-library-purchase-notice a {
  color: var(--ap-navy);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.apf-library-purchase-notice-compact {
  width: 100%;
  font-size: 9.75px;
}
.apf-mobile-complete-purchase-row .apf-library-purchase-notice-mobile {
  grid-column: 1 / -1;
  width: 100%;
}
.apf-library-final-cta .apf-library-purchase-notice-final {
  grid-column: 1 / -1;
  margin-top: -2px;
}
@media (max-width: 620px) {
  .apf-library-purchase-notice,
  .apf-library-purchase-notice-compact {
    font-size: 10px;
  }
}

/* v0.4.378 — Libraries overview: redesign only the four Category Complete Library desktop cards. */
.apf-category-complete-card.apf-category-complete-card-redesign {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
  min-height: 350px;
  margin-top: 22px;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid #b7d2ee !important;
  border-radius: 14px !important;
  background:
    radial-gradient(circle at 91% 3%, rgba(199, 229, 255, .80) 0, rgba(199, 229, 255, .15) 33%, rgba(199, 229, 255, 0) 58%),
    linear-gradient(115deg, #e9f5ff 0%, #f8fcff 52%, #edf7ff 100%) !important;
  box-shadow: 0 14px 32px rgba(31, 78, 132, .08) !important;
}

.apf-category-complete-card.apf-category-complete-card-redesign::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -235px;
  top: -300px;
  border-radius: 50%;
  border: 1px solid rgba(102, 169, 230, .14);
  pointer-events: none;
}

.apf-category-complete-feature-visual {
  position: relative;
  min-width: 0;
  min-height: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 38px 26px 34px 34px;
  overflow: hidden;
}

.apf-category-complete-feature-visual::before,
.apf-category-complete-feature-visual::after {
  content: "";
  position: absolute;
  left: 10%;
  top: 20%;
  width: 68%;
  aspect-ratio: 1.46 / 1;
  border: 7px solid rgba(255, 255, 255, .72);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(202, 229, 252, .45), rgba(255, 255, 255, .22));
  box-shadow: 0 12px 28px rgba(28, 72, 125, .08);
  transform-origin: center;
  pointer-events: none;
}

.apf-category-complete-feature-visual::before {
  transform: rotate(-7deg) translate(-4%, 1%);
  opacity: .72;
}

.apf-category-complete-feature-visual::after {
  transform: rotate(5deg) translate(11%, -2%);
  opacity: .48;
}

.apf-category-complete-feature-collage {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  width: min(76%, 420px);
  aspect-ratio: 1.37 / 1;
  gap: 4px;
  overflow: hidden;
  border: 8px solid rgba(255,255,255,.98);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 34px rgba(20, 70, 130, .18);
  transform: rotate(-1.5deg);
}

.apf-category-complete-feature-image {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #e8f1fa;
}

.apf-category-complete-feature-image img,
.apf-category-complete-feature-image .apf-media-missing {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.apf-category-complete-includes-badge {
  position: absolute;
  z-index: 4;
  left: 9%;
  top: 26px;
  width: 94px;
  height: 94px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 50%;
  background: linear-gradient(150deg, #2e8ef0 0%, #0b55ad 58%, #073777 100%);
  box-shadow: 0 12px 24px rgba(14, 75, 145, .22);
  color: #fff;
  text-align: center;
  transform: rotate(-9deg);
}

.apf-category-complete-includes-badge small,
.apf-category-complete-includes-badge strong {
  display: block;
  color: #fff;
  text-transform: uppercase;
}

.apf-category-complete-includes-badge small {
  margin-bottom: 2px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}

.apf-category-complete-includes-badge strong {
  font-size: 17px;
  line-height: 1.05;
  letter-spacing: -.02em;
}

.apf-category-complete-volume-strip {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 31px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-width: 330px;
  min-height: 36px;
  padding: 7px 18px;
  border: 1px solid rgba(185, 210, 236, .86);
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 8px 18px rgba(21, 65, 115, .08);
  color: #145395;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
}

.apf-category-complete-volume-strip i {
  display: block;
  width: 1px;
  height: 13px;
  background: #b9cfe5;
}

.apf-category-complete-feature-content {
  position: relative;
  z-index: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px 34px 26px 18px;
}

.apf-category-complete-card-redesign .apf-category-complete-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 30px;
  margin: 0 0 13px;
  padding: 6px 22px;
  border-radius: 999px;
  background: #dceeff;
  color: #0b66c7 !important;
  font-size: 11px;
  font-weight: 900 !important;
  line-height: 1;
  letter-spacing: .045em;
}

.apf-category-complete-card-redesign h3 {
  max-width: 600px;
  margin: 0 0 14px !important;
  color: #082d66;
  font-size: clamp(26px, 2.6vw, 38px);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.apf-category-complete-feature-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 11px;
  color: #5a75a0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.apf-category-complete-feature-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.apf-category-complete-feature-meta-item strong {
  color: #5a75a0;
  font-weight: 800;
}

.apf-category-complete-feature-divider {
  width: 1px;
  height: 20px;
  background: #c3d7ea;
}

.apf-category-complete-feature-dot {
  color: #88a5c3;
  font-size: 10px;
}

.apf-category-complete-feature-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 16px;
  margin-top: 18px;
  color: #647da3;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.35;
}

.apf-category-complete-feature-facts > span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.apf-category-complete-feature-icon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #5e8fc8;
}

.apf-category-complete-feature-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.apf-category-complete-feature-rule {
  width: 100%;
  height: 1px;
  margin: 20px 0 18px;
  background: #c7dced;
}

.apf-category-complete-feature-purchase {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
}

.apf-category-complete-feature-price {
  min-width: 0;
}

.apf-category-complete-card-redesign .apf-library-save-badge {
  min-height: 25px;
  margin: 0 0 5px;
  padding: 4px 12px;
  background: #d9ebff;
  color: #0a63be;
  font-size: 10px;
}

.apf-category-complete-feature-price-line {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}

.apf-category-complete-feature-price-line > strong {
  color: #071f49;
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -.035em;
}

.apf-category-complete-feature-price-line > small {
  padding-bottom: 3px;
  color: #6580a8;
  font-size: 10.5px;
  line-height: 1.35;
}

.apf-category-complete-feature-button.apf-complete-purchase-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-width: 235px;
  min-height: 58px;
  padding: 13px 24px;
  border: 1px solid rgba(10, 80, 156, .95);
  border-radius: 10px;
  background: linear-gradient(90deg, #082f68 0%, #0a438a 48%, #0a73d4 100%) !important;
  box-shadow: 0 10px 22px rgba(9, 64, 127, .16);
  color: #fff !important;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: .015em;
  text-transform: uppercase;
  text-decoration: none !important;
}

.apf-category-complete-feature-button.apf-complete-purchase-button span {
  font-size: 21px;
  font-weight: 500;
  line-height: 1;
}

.apf-category-complete-feature-button.apf-complete-purchase-button:hover,
.apf-category-complete-feature-button.apf-complete-purchase-button:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 13px 26px rgba(9, 64, 127, .20);
}

.apf-category-complete-feature-notice.apf-library-purchase-notice {
  max-width: 100%;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #7085a6;
  text-align: left;
  box-shadow: none !important;
}

.apf-category-complete-feature-notice.apf-library-purchase-notice p {
  margin: 0 0 3px !important;
  font-size: 9.5px !important;
  line-height: 1.42 !important;
}

.apf-category-complete-feature-notice.apf-library-purchase-notice a {
  color: #124e91;
  font-weight: 800;
}

@media (max-width: 1040px) {
  .apf-category-complete-card.apf-category-complete-card-redesign {
    grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr) !important;
  }
  .apf-category-complete-feature-visual {
    padding-left: 22px;
    padding-right: 18px;
  }
  .apf-category-complete-feature-collage {
    width: 82%;
  }
  .apf-category-complete-includes-badge {
    left: 5%;
    width: 82px;
    height: 82px;
  }
  .apf-category-complete-volume-strip {
    min-width: 285px;
    gap: 10px;
  }
  .apf-category-complete-feature-content {
    padding-right: 24px;
  }
  .apf-category-complete-feature-facts {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .apf-category-complete-feature-purchase {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }
  .apf-category-complete-feature-button.apf-complete-purchase-button {
    width: 100%;
  }
}

@media (max-width: 800px) and (min-width: 621px) {
  .apf-category-complete-card.apf-category-complete-card-redesign {
    grid-template-columns: 1fr !important;
  }
  .apf-category-complete-feature-visual {
    min-height: 300px;
    padding: 30px 24px;
  }
  .apf-category-complete-feature-collage {
    width: min(68%, 430px);
  }
  .apf-category-complete-feature-content {
    padding: 28px 30px 24px;
  }
}


/* v0.4.379 — Libraries overview only: keep every face fully readable in the four Category Complete Library collages. */
.apf-category-complete-card.apf-category-complete-card-redesign .apf-category-complete-feature-collage {
  width: min(72%, 390px);
  aspect-ratio: 1.08 / 1;
}

.apf-category-complete-card.apf-category-complete-card-redesign .apf-category-complete-feature-image img {
  object-fit: contain;
  object-position: 50% 50%;
  background: #e7f1fa;
}

@media (max-width: 1040px) {
  .apf-category-complete-card.apf-category-complete-card-redesign .apf-category-complete-feature-collage {
    width: min(78%, 380px);
    aspect-ratio: 1.08 / 1;
  }
}

@media (max-width: 800px) and (min-width: 621px) {
  .apf-category-complete-card.apf-category-complete-card-redesign .apf-category-complete-feature-collage {
    width: min(66%, 410px);
    aspect-ratio: 1.08 / 1;
  }
}

/* v0.4.380 — Libraries overview only: redesign the desktop Master Complete Library card. */
@media (min-width: 621px) {
  #apf-master-complete.apf-master-complete-card.apf-desktop-hierarchy-cards {
    display: grid !important;
    grid-template-columns: minmax(330px, 43%) minmax(0, 57%) !important;
    gap: 0 !important;
    align-items: stretch !important;
    margin-top: 28px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid #e7c66f !important;
    border-radius: 14px !important;
    background: linear-gradient(100deg, #fffdf9 0%, #fffaf0 100%) !important;
    box-shadow: 0 10px 28px rgba(47, 64, 86, .08) !important;
  }

  #apf-master-complete .apf-master-complete-preview-grid {
    display: grid !important;
    grid-template-rows: repeat(4, minmax(0, 1fr)) !important;
    gap: 4px !important;
    min-width: 0 !important;
    padding: 16px 14px 16px 16px !important;
    background: linear-gradient(135deg, #fffdf8 0%, #f9fbfd 58%, #fff7e7 100%) !important;
    border-right: 1px solid #eeddb1 !important;
  }

  #apf-master-complete .apf-master-complete-category-row {
    display: block !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  #apf-master-complete .apf-master-complete-volume-row {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 4px !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  #apf-master-complete .apf-master-complete-plus {
    display: none !important;
  }

  #apf-master-complete .apf-master-complete-preview-item,
  #apf-master-complete .apf-master-complete-mini-collage {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
  }

  #apf-master-complete .apf-master-complete-preview-item {
    aspect-ratio: 1.42 / 1 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, .92) !important;
    border-radius: 5px !important;
    background: #edf4fa !important;
    box-shadow: 0 2px 6px rgba(25, 59, 99, .07) !important;
  }

  #apf-master-complete .apf-master-complete-mini-collage {
    display: grid !important;
    grid-template-columns: 1.55fr 1fr 1fr !important;
    grid-template-rows: 1fr 1fr !important;
    gap: 1px !important;
    overflow: hidden !important;
    border-radius: 4px !important;
    background: #edf4fa !important;
  }

  #apf-master-complete .apf-master-complete-mini-collage-item img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: 50% 35% !important;
  }

  #apf-master-complete .apf-master-complete-body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 215px !important;
    gap: 20px !important;
    align-items: center !important;
    min-width: 0 !important;
    padding: 18px 18px 18px 22px !important;
    background: transparent !important;
  }

  #apf-master-complete .apf-master-complete-main-link {
    min-width: 0 !important;
    display: grid !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 0 !important;
  }

  #apf-master-complete .apf-master-complete-main-link > .apf-home-kicker {
    margin: 0 !important;
    color: #3f6c9c !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .065em !important;
    text-transform: uppercase !important;
  }

  #apf-master-complete .apf-master-complete-main-link h2 {
    margin: 0 0 2px !important;
    color: #082f68 !important;
    font-size: clamp(23px, 2.35vw, 34px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.025em !important;
  }

  #apf-master-complete .apf-master-complete-main-link > p:not(.apf-home-kicker) {
    margin: 0 !important;
    color: #637b9d !important;
    font-size: 10px !important;
    line-height: 1.38 !important;
  }

  #apf-master-complete .apf-master-complete-main-link .apf-complete-inline-detail {
    margin-top: 1px !important;
  }

  #apf-master-complete .apf-master-complete-summary {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(68px, 1fr)) !important;
    gap: 8px !important;
    max-width: 330px !important;
    margin: 12px 0 0 !important;
  }

  #apf-master-complete .apf-master-complete-summary span {
    display: grid !important;
    gap: 3px !important;
    min-width: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #e2ebf4 !important;
    border-radius: 7px !important;
    background: rgba(248, 251, 255, .92) !important;
  }

  #apf-master-complete .apf-master-complete-summary strong {
    color: #0b3d78 !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  #apf-master-complete .apf-master-complete-summary small {
    color: #6680a1 !important;
    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: .02em !important;
    text-transform: none !important;
  }

  #apf-master-complete .apf-master-complete-price {
    width: 215px !important;
    min-width: 215px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    justify-items: end !important;
    align-content: center !important;
    justify-self: end !important;
    align-self: center !important;
    text-align: right !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-save-badge-master {
    min-height: 24px !important;
    margin: 0 !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: #efd896 !important;
    color: #18334f !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    letter-spacing: .035em !important;
  }

  #apf-master-complete .apf-master-complete-price > strong {
    color: #082f68 !important;
    font-size: clamp(36px, 3.8vw, 50px) !important;
    font-weight: 900 !important;
    line-height: .95 !important;
    letter-spacing: -.03em !important;
  }

  #apf-master-complete .apf-master-complete-price > small {
    max-width: 210px !important;
    color: #647b9c !important;
    font-size: 9.5px !important;
    line-height: 1.35 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice {
    max-width: 215px !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #7587a0 !important;
    text-align: right !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice p {
    margin: 0 0 2px !important;
    font-size: 7.8px !important;
    line-height: 1.28 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice a {
    color: #164f8b !important;
    font-weight: 800 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-complete-purchase-button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 40px !important;
    margin-top: 3px !important;
    padding: 10px 14px !important;
    border: 1px solid #092a52 !important;
    border-radius: 7px !important;
    background: linear-gradient(90deg, #061f43 0%, #082f68 100%) !important;
    box-shadow: 0 7px 15px rgba(8, 47, 104, .14) !important;
    color: #fff !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    letter-spacing: .015em !important;
    text-transform: uppercase !important;
  }
}

@media (min-width: 621px) and (max-width: 940px) {
  #apf-master-complete.apf-master-complete-card.apf-desktop-hierarchy-cards {
    grid-template-columns: minmax(285px, 40%) minmax(0, 60%) !important;
  }

  #apf-master-complete .apf-master-complete-preview-grid {
    padding: 13px 11px 13px 13px !important;
  }

  #apf-master-complete .apf-master-complete-body {
    grid-template-columns: minmax(0, 1fr) 180px !important;
    gap: 14px !important;
    padding: 15px 14px 15px 17px !important;
  }

  #apf-master-complete .apf-master-complete-price {
    width: 180px !important;
    min-width: 180px !important;
  }

  #apf-master-complete .apf-master-complete-main-link h2 {
    font-size: 22px !important;
  }

  #apf-master-complete .apf-master-complete-summary {
    max-width: 280px !important;
    gap: 6px !important;
  }

  #apf-master-complete .apf-master-complete-summary span {
    padding: 7px 8px !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice {
    max-width: 180px !important;
  }
}



/* v0.4.381 — Libraries overview only: improve desktop readability and crop the four Category Complete preview portraits to the upper two-thirds. */
@media (min-width: 621px) {
  /* Category headers and single-Volume cards: raise small supporting text without changing hierarchy. */
  .apf-library-group-meta {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }

  .apf-library-volume-copy .apf-library-volume-number {
    font-size: 13.5px !important;
  }

  .apf-library-volume-copy > strong {
    font-size: 18px !important;
    line-height: 1.28 !important;
  }

  .apf-library-volume-meta {
    font-size: 14.5px !important;
    line-height: 1.4 !important;
  }

  .apf-library-volume-copy small {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
  }

  .apf-library-volume-count-badge small {
    font-size: 9px !important;
    line-height: 1.15 !important;
  }

  /* Category Complete Library: enlarge supporting copy and show the upper two-thirds of each portrait. */
  .apf-category-complete-card.apf-category-complete-card-redesign .apf-category-complete-feature-image img {
    width: 100% !important;
    height: 150% !important;
    max-width: none !important;
    object-fit: contain !important;
    object-position: 50% 0 !important;
    background: #e7f1fa !important;
  }

  .apf-category-complete-card-redesign .apf-category-complete-label {
    font-size: 12.5px !important;
  }

  .apf-category-complete-feature-meta {
    font-size: 13.5px !important;
    line-height: 1.45 !important;
  }

  .apf-category-complete-feature-facts {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  .apf-category-complete-volume-strip {
    font-size: 11.5px !important;
  }

  .apf-category-complete-card-redesign .apf-library-save-badge {
    font-size: 11.5px !important;
  }

  .apf-category-complete-feature-price-line > small {
    font-size: 12.5px !important;
    line-height: 1.4 !important;
  }

  .apf-category-complete-feature-button.apf-complete-purchase-button {
    font-size: 12.5px !important;
  }

  .apf-category-complete-feature-notice.apf-library-purchase-notice p {
    font-size: 12.5px !important;
    line-height: 1.5 !important;
  }

  /* Master Complete Library: raise the small supporting text in the current horizontal card. */
  #apf-master-complete .apf-master-complete-body {
    grid-template-columns: minmax(0, 1fr) 245px !important;
  }

  #apf-master-complete .apf-master-complete-main-link > .apf-home-kicker {
    font-size: 11px !important;
  }

  #apf-master-complete .apf-master-complete-main-link > p:not(.apf-home-kicker) {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  #apf-master-complete .apf-master-complete-summary small {
    font-size: 10.5px !important;
    line-height: 1.25 !important;
  }

  #apf-master-complete .apf-master-complete-price {
    width: 245px !important;
    min-width: 245px !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-save-badge-master {
    font-size: 10.5px !important;
  }

  #apf-master-complete .apf-master-complete-price > small {
    max-width: 240px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice {
    max-width: 245px !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice p {
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-complete-purchase-button {
    font-size: 11.5px !important;
  }
}

@media (min-width: 621px) and (max-width: 940px) {
  #apf-master-complete .apf-master-complete-body {
    grid-template-columns: minmax(0, 1fr) 205px !important;
  }

  #apf-master-complete .apf-master-complete-price {
    width: 205px !important;
    min-width: 205px !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice {
    max-width: 205px !important;
  }
}


/* v0.4.382 — Libraries only: enlarge the pink character-count badge background without changing its text. */
.apf-library-volume-count-badge {
  width: 70px !important;
  min-height: 58px !important;
  padding: 7px !important;
  border-radius: 10px !important;
}


/* v0.4.383 — Libraries only: enlarge Volume count badge spacing and Master Complete Library typography. */
@media (min-width: 621px) {
  /* Pink character-count badge: larger frame with extra right-side breathing room. */
  .apf-library-volume-count-badge {
    width: 78px !important;
    min-height: 64px !important;
    padding: 8px 11px 8px 9px !important;
    border-radius: 11px !important;
    box-sizing: border-box !important;
  }

  .apf-library-volume-count-badge strong,
  .apf-library-volume-count-badge small {
    max-width: 100% !important;
  }

  /* Master Complete Library: increase text sizes only within the desktop Master card. */
  #apf-master-complete .apf-master-complete-main-link > .apf-home-kicker {
    font-size: 12px !important;
    line-height: 1.25 !important;
  }

  #apf-master-complete .apf-master-complete-main-link h2 {
    font-size: clamp(28px, 2.7vw, 40px) !important;
    line-height: 1.04 !important;
  }

  #apf-master-complete .apf-master-complete-main-link > p:not(.apf-home-kicker) {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  #apf-master-complete .apf-master-complete-summary strong {
    font-size: 21px !important;
  }

  #apf-master-complete .apf-master-complete-summary small {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-save-badge-master {
    font-size: 12px !important;
  }

  #apf-master-complete .apf-master-complete-price > small {
    font-size: 13.5px !important;
    line-height: 1.45 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice p {
    font-size: 12.5px !important;
    line-height: 1.48 !important;
  }

  #apf-master-complete .apf-master-complete-price .apf-complete-purchase-button {
    font-size: 12.5px !important;
  }
}

@media (min-width: 621px) and (max-width: 940px) {
  #apf-master-complete .apf-master-complete-main-link h2 {
    font-size: 26px !important;
  }

  #apf-master-complete .apf-master-complete-main-link > p:not(.apf-home-kicker) {
    font-size: 13px !important;
  }

  #apf-master-complete .apf-master-complete-summary small {
    font-size: 11px !important;
  }

  #apf-master-complete .apf-master-complete-price > small,
  #apf-master-complete .apf-master-complete-price .apf-library-purchase-notice p,
  #apf-master-complete .apf-master-complete-price .apf-complete-purchase-button {
    font-size: 12px !important;
  }
}


/* v0.4.384 — Libraries only: show a centered visual flow arrow from the four Volume cards to the Category Complete Library. */
@media (min-width: 621px) {
  .apf-library-volume-grid.apf-desktop-hierarchy-cards {
    position: relative;
    margin-bottom: 58px;
  }

  .apf-library-volume-grid.apf-desktop-hierarchy-cards::after {
    content: "";
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: -49px;
    width: 54px;
    height: 54px;
    transform: translateX(-50%);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='54' height='54' viewBox='0 0 54 54'%3E%3Cdefs%3E%3ClinearGradient id='g1' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%237fc8ff'/%3E%3Cstop offset='.55' stop-color='%233c98f5'/%3E%3Cstop offset='1' stop-color='%230d62d8'/%3E%3C/linearGradient%3E%3ClinearGradient id='g2' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%235eb6ff'/%3E%3Cstop offset='.6' stop-color='%232d87ed'/%3E%3Cstop offset='1' stop-color='%23044fc4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M9 11.5 27 27 45 11.5' fill='none' stroke='url(%23g1)' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M9 27 27 42.5 45 27' fill='none' stroke='url(%23g2)' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: drop-shadow(0 5px 8px rgba(24, 111, 214, .16));
    pointer-events: none;
  }
}


/* v0.4.385 — Category Complete purchase buttons only: image-2 structure with image-3 blue gradient. */
.apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 272px !important;
  min-width: 272px !important;
  min-height: 50px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(8, 67, 145, .95) !important;
  border-radius: 7px !important;
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  box-shadow: 0 8px 18px rgba(8, 65, 132, .18) !important;
  color: #fff !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button::before {
  content: "" !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.1a2 2 0 0 0 2 1.5h7.8a2 2 0 0 0 1.9-1.4L21 8H7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .96 !important;
}

.apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button span {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button:hover,
.apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button:focus-visible {
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 11px 22px rgba(8, 65, 132, .22) !important;
}

@media (max-width: 620px) {
  .apf-category-complete-card-redesign .apf-category-complete-feature-button.apf-complete-purchase-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* v0.4.387 — Library Volume detail button color/design consistency; corrected detail-page scope. */
/* Individual Library Volume final purchase CTA: same cart / centered label / arrow treatment as Category Complete. */
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) 18px !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 272px !important;
  min-height: 50px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(8, 67, 145, .95) !important;
  border-radius: 7px !important;
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  box-shadow: 0 8px 18px rgba(8, 65, 132, .18) !important;
  color: #fff !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  text-align: center !important;
}

.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button::before {
  content: "" !important;
  width: 18px !important;
  height: 18px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.1a2 2 0 0 0 2 1.5h7.8a2 2 0 0 0 1.9-1.4L21 8H7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .96 !important;
}

.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button::after {
  content: "→" !important;
  display: block !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-align: right !important;
}

.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button:hover,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button:focus-visible {
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 11px 22px rgba(8, 65, 132, .22) !important;
}

/* Libraries "Before Purchase" primary button: replace black/navy fill with the approved blue gradient. */
.apf-library-detail-main .apf-library-links-card .apf-home-primary {
  border: 1px solid rgba(8, 67, 145, .95) !important;
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  box-shadow: 0 7px 16px rgba(8, 65, 132, .16) !important;
  color: #fff !important;
}

.apf-library-detail-main .apf-library-links-card .apf-home-primary:hover,
.apf-library-detail-main .apf-library-links-card .apf-home-primary:focus-visible {
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
}

/* Libraries pagination: current page uses the same approved blue instead of black/navy. */
.apf-library-detail-main .apf-library-pagination-page.current {
  border-color: #0a6fce !important;
  background: linear-gradient(180deg, #0a6fce 0%, #084d99 100%) !important;
  color: #fff !important;
  box-shadow: 0 5px 12px rgba(8, 65, 132, .14) !important;
}

@media (max-width: 620px) {
  .apf-library-detail-main .apf-library-final-cta-action .apf-buy-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* v0.4.388 — Library Volume Character Preview layout/legibility only. */
/* Move Character Preview pagination from below the grid to the upper-right of the preview panel on desktop. */
@media (min-width: 761px) {
  .apf-library-detail-main .apf-library-preview-section {
    position: relative;
  }

  .apf-library-detail-main .apf-library-preview-head {
    padding-right: 272px;
  }

  .apf-library-detail-main .apf-library-preview-section .apf-library-pagination {
    position: absolute;
    top: 18px;
    right: 20px;
    z-index: 3;
    margin: 0;
    justify-content: flex-end;
  }
}

/* Use the approved blue treatment for the preview media strip instead of the old dark/navy strip. */
.apf-library-detail-main .apf-library-preview-badge {
  min-height: 22px;
  padding: 5px 7px;
  border-radius: 4px;
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%);
  box-shadow: 0 3px 8px rgba(8, 65, 132, .18);
  font-size: 9px;
  line-height: 1;
}

/* Increase only the small Character Preview text on Library Volume detail pages. */
.apf-library-detail-main .apf-library-preview-head h2 {
  font-size: 20px;
  line-height: 1.2;
}

.apf-library-detail-main .apf-library-preview-range {
  margin-bottom: 5px !important;
  font-size: 14.5px !important;
  line-height: 1.35;
}

.apf-library-detail-main .apf-library-preview-head p:not(.apf-library-preview-range) {
  font-size: 15px;
  line-height: 1.5;
}

.apf-library-detail-main .apf-library-preview-id,
.apf-library-detail-main .apf-library-preview-id-static {
  margin-top: 7px;
  font-size: 13.5px;
  line-height: 1.3;
}

.apf-library-detail-main .apf-library-pagination-page,
.apf-library-detail-main .apf-library-pagination-arrow {
  font-size: 14px;
}

.apf-library-detail-main .apf-library-pagination-arrow {
  font-size: 22px;
}

@media (max-width: 620px) {
  .apf-library-detail-main .apf-library-preview-badge {
    min-height: 17px;
    padding: 3px 4px;
    font-size: 6.5px;
  }

  .apf-library-detail-main .apf-library-preview-head h2 {
    font-size: 19px;
  }

  .apf-library-detail-main .apf-library-preview-head p:not(.apf-library-preview-range) {
    font-size: 14.5px;
  }

  .apf-library-detail-main .apf-library-preview-id,
  .apf-library-detail-main .apf-library-preview-id-static {
    font-size: 13px;
  }
}


/* v0.4.389 — Library Volume purchase-row button selector fix + preview badge color rollback only. */
/* The primary purchase button in the Library Volume hero lives in .apf-library-purchase-row,
   not .apf-library-final-cta-action. Apply the already-approved cart / centered label / arrow
   treatment to both purchase CTA locations without changing purchase logic or copy. */
.apf-library-detail-main .apf-library-purchase-row .apf-buy-button,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) 18px !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 272px !important;
  min-height: 50px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(8, 67, 145, .95) !important;
  border-radius: 7px !important;
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  box-shadow: 0 8px 18px rgba(8, 65, 132, .18) !important;
  color: #fff !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  text-align: center !important;
}

.apf-library-detail-main .apf-library-purchase-row .apf-buy-button::before,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button::before {
  content: "" !important;
  width: 18px !important;
  height: 18px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.1a2 2 0 0 0 2 1.5h7.8a2 2 0 0 0 1.9-1.4L21 8H7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .96 !important;
}

.apf-library-detail-main .apf-library-purchase-row .apf-buy-button::after,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button::after {
  content: "→" !important;
  display: block !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-align: right !important;
}

.apf-library-detail-main .apf-library-purchase-row .apf-buy-button:hover,
.apf-library-detail-main .apf-library-purchase-row .apf-buy-button:focus-visible,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button:hover,
.apf-library-detail-main .apf-library-final-cta-action .apf-buy-button:focus-visible {
  background: linear-gradient(90deg, #082f69 0%, #094486 48%, #0a6fce 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 11px 22px rgba(8, 65, 132, .22) !important;
}

/* Restore only the preview-media strip color to the original dark/navy treatment.
   Pagination placement and enlarged Character Preview typography from v0.4.388 remain unchanged. */
.apf-library-detail-main .apf-library-preview-badge {
  background: rgba(15, 39, 71, .88) !important;
  box-shadow: none !important;
}

@media (max-width: 620px) {
  .apf-library-detail-main .apf-library-purchase-row .apf-buy-button,
  .apf-library-detail-main .apf-library-final-cta-action .apf-buy-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* v0.4.390 — Library purchase callout emphasis + navy preview strip. */
/* Keep the Library Volume preview media strip clearly navy. */
.apf-library-detail-main .apf-library-preview-badge {
  background: #082f69 !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

/* Turn every Library purchase note into a readable, bundle-forward decision aid. */
.apf-library-detail-main .apf-library-purchase-notice,
.apf-libraries-main .apf-library-purchase-notice,
.apf-category-complete-feature-notice.apf-library-purchase-notice,
#apf-master-complete .apf-library-purchase-notice {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  margin: 12px 0 0 !important;
  padding: 12px 14px 12px 46px !important;
  box-sizing: border-box !important;
  border: 1px solid #bfd9f3 !important;
  border-left: 4px solid #0a6fce !important;
  border-radius: 9px !important;
  background: linear-gradient(180deg, #f7fbff 0%, #eef7ff 100%) !important;
  box-shadow: 0 5px 14px rgba(8, 65, 132, .06) !important;
  color: #294f78 !important;
  text-align: left !important;
}

.apf-library-detail-main .apf-library-purchase-notice::before,
.apf-libraries-main .apf-library-purchase-notice::before,
.apf-category-complete-feature-notice.apf-library-purchase-notice::before,
#apf-master-complete .apf-library-purchase-notice::before {
  content: "!" !important;
  position: absolute !important;
  left: 14px !important;
  top: 13px !important;
  display: grid !important;
  place-items: center !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: linear-gradient(180deg, #2d91ef 0%, #0a6fce 100%) !important;
  box-shadow: 0 3px 8px rgba(8, 65, 132, .16) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.apf-library-purchase-note-title {
  display: block !important;
  margin: 0 0 5px !important;
  color: #082f69 !important;
  font-size: 13.5px !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
}

.apf-library-detail-main .apf-library-purchase-notice p,
.apf-libraries-main .apf-library-purchase-notice p,
.apf-category-complete-feature-notice.apf-library-purchase-notice p,
#apf-master-complete .apf-library-purchase-notice p {
  margin: 0 !important;
  color: #365a7f !important;
  font-size: 12.75px !important;
  line-height: 1.52 !important;
}

.apf-library-detail-main .apf-library-purchase-notice p + p,
.apf-libraries-main .apf-library-purchase-notice p + p,
.apf-category-complete-feature-notice.apf-library-purchase-notice p + p,
#apf-master-complete .apf-library-purchase-notice p + p {
  margin-top: 5px !important;
}

.apf-library-detail-main .apf-library-purchase-notice a,
.apf-libraries-main .apf-library-purchase-notice a,
.apf-category-complete-feature-notice.apf-library-purchase-notice a,
#apf-master-complete .apf-library-purchase-notice a {
  color: #075aaf !important;
  font-weight: 850 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

@media (max-width: 620px) {
  .apf-library-detail-main .apf-library-purchase-notice,
  .apf-libraries-main .apf-library-purchase-notice,
  .apf-category-complete-feature-notice.apf-library-purchase-notice,
  #apf-master-complete .apf-library-purchase-notice {
    padding: 11px 12px 11px 42px !important;
  }

  .apf-library-detail-main .apf-library-purchase-notice::before,
  .apf-libraries-main .apf-library-purchase-notice::before,
  .apf-category-complete-feature-notice.apf-library-purchase-notice::before,
  #apf-master-complete .apf-library-purchase-notice::before {
    left: 12px !important;
    top: 12px !important;
    width: 20px !important;
    height: 20px !important;
    font-size: 13px !important;
  }

  .apf-library-purchase-note-title {
    font-size: 13px !important;
  }

  .apf-library-detail-main .apf-library-purchase-notice p,
  .apf-libraries-main .apf-library-purchase-notice p,
  .apf-category-complete-feature-notice.apf-library-purchase-notice p,
  #apf-master-complete .apf-library-purchase-notice p {
    font-size: 12.25px !important;
    line-height: 1.5 !important;
  }
}


/* v0.4.391 — Individual Character bundle-comparison purchase cue only. */
.apf-single-main .apf-character-bundle-notice {
  position: relative;
  margin: 14px 0 12px;
  padding: 13px 15px 13px 48px;
  border: 1px solid #bfd9f3;
  border-left: 4px solid #0a6fce;
  border-radius: 10px;
  background: linear-gradient(180deg, #f7fbff 0%, #eef7ff 100%);
  box-shadow: 0 5px 14px rgba(8, 65, 132, .06);
  color: #294f78;
}
.apf-single-main .apf-character-bundle-notice::before {
  content: "!";
  position: absolute;
  left: 14px;
  top: 14px;
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: linear-gradient(180deg, #2d91ef 0%, #0a6fce 100%);
  box-shadow: 0 3px 8px rgba(8, 65, 132, .16);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}
.apf-single-main .apf-character-bundle-notice-title {
  display: block;
  margin: 0 0 5px;
  color: #082f69;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
}
.apf-single-main .apf-character-bundle-notice p {
  margin: 0;
  color: #365a7f;
  font-size: 13px;
  line-height: 1.52;
}
.apf-single-main .apf-character-bundle-notice p + p { margin-top: 7px; }
.apf-single-main .apf-character-bundle-notice a {
  color: #075aaf;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.apf-single-main .apf-character-bundle-notice-links {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.apf-single-main .apf-character-bundle-compare-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: linear-gradient(90deg, #0b407d 0%, #0d7bdc 100%);
  box-shadow: 0 5px 14px rgba(8, 65, 132, .14);
  color: #fff !important;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .01em;
  text-decoration: none !important;
}
.apf-single-main .apf-character-bundle-compare-link:hover,
.apf-single-main .apf-character-bundle-compare-link:focus-visible {
  background: linear-gradient(90deg, #0a386e 0%, #0a6fce 100%);
  color: #fff !important;
  text-decoration: none !important;
}
@media (max-width: 620px) {
  .apf-single-main .apf-character-bundle-notice { padding: 12px 12px 12px 44px; }
  .apf-single-main .apf-character-bundle-notice::before { left: 12px; top: 13px; width: 21px; height: 21px; font-size: 13px; }
  .apf-single-main .apf-character-bundle-notice-title { font-size: 13.5px; }
  .apf-single-main .apf-character-bundle-notice p { font-size: 12.5px; }
}

/* v0.4.393 — Individual Character page width balance only.
   Align the lower content cards with the approved video-only hero width on desktop. */
@media (min-width: 761px) {
  .apf-single-main .apf-character-package-section,
  .apf-single-main .apf-character-evidence-section,
  .apf-single-main .apf-character-selection-section-compact {
    width: min(100%, 980px);
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
  }
}


/* v0.4.406 — Purchase Guide: align Purchase Guard section label with the existing section-kicker typography. */
.apf-purchase-guide-content #purchase-guard > h2 {
  margin: 0 0 10px;
  color: var(--ap-navy);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* v0.4.410 — fullscreen preview shows the whole vertical video. */
.apf-video-shell:fullscreen,
.apf-video-shell:-webkit-full-screen {
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  background: #000 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
.apf-video-shell:fullscreen .apf-preview-video,
.apf-video-shell:-webkit-full-screen .apf-preview-video {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  background: #000 !important;
}

/* v0.4.410 — Sample page: display-size Reference Images. */
.apf-sample-reference {
  margin: 48px 0 8px;
}
.apf-sample-reference-head {
  max-width: 720px;
  margin: 0 auto 24px;
  text-align: center;
}
.apf-sample-reference-head h2 {
  margin: 6px 0 10px;
}
.apf-sample-reference-head p:last-child {
  color: #4b5563;
  margin: 0;
}
.apf-sample-reference-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 300px));
  justify-content: center;
  gap: 24px;
}
.apf-sample-reference-figure {
  margin: 0;
  background: #fff;
  border: 1px solid rgba(15, 39, 71, .10);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(15, 39, 71, .06);
}
.apf-sample-reference-figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
.apf-sample-reference-figure figcaption {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px 14px;
  font-size: 14px;
}
.apf-sample-reference-figure figcaption span {
  color: #6b7280;
  font-size: 13px;
}
.apf-sample-independence {
  max-width: 720px;
  margin: 18px auto 0;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}
@media (max-width: 640px) {
  .apf-sample-reference-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

/* v0.4.410 — Character page: one short link to the free Sample. */
.apf-character-free-sample-link {
  margin: 12px 0 0;
  font-size: 14px;
}
.apf-character-free-sample-link a {
  color: #0F2747;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* v0.4.412 — Sample page: AP-DEMO-001 demo video section. */
.apf-sample-demo {
  margin: 56px 0 8px;
}
.apf-sample-demo-head {
  max-width: 720px;
  margin: 0 auto 26px;
  text-align: center;
}
.apf-sample-demo-head h2 {
  margin: 6px 0 10px;
}
.apf-sample-demo-head p:last-child {
  margin: 0;
  color: #4b5563;
  line-height: 1.7;
}
.apf-sample-demo-body {
  display: grid;
  grid-template-columns: minmax(0, 320px) minmax(0, 480px);
  justify-content: center;
  align-items: start;
  gap: 36px;
}
.apf-sample-demo .apf-video-shell {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 12px;
  background: #090b0f;
}
.apf-sample-demo .apf-preview-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #090b0f;
  border-radius: 0;
}
.apf-sample-demo-disclosure {
  margin: 10px 0 0;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}
.apf-sample-demo-copy h3 {
  margin: 0 0 8px;
  color: var(--ap-navy);
  font-size: 17px;
  line-height: 1.35;
}
.apf-sample-demo-inputs {
  margin: 0 0 22px;
  padding: 18px 20px;
  border: 1px solid rgba(15, 39, 71, .14);
  border-radius: 12px;
  background: #f7f9fc;
}
.apf-sample-demo-inputs p {
  margin: 0 0 14px;
  color: var(--ap-text, #172033);
  font-size: 14.5px;
  line-height: 1.65;
}
.apf-sample-demo-files {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.apf-sample-demo-files li {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(15, 39, 71, .08);
  font-size: 14px;
}
.apf-sample-demo-files span {
  color: #58718b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .05em;
}
.apf-sample-demo-files strong {
  color: var(--ap-navy);
  font-weight: 700;
}
.apf-sample-demo-files em {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: 999px;
}
.apf-sample-demo-files .is-used em {
  color: #0f5132;
  background: #d9f2e4;
}
.apf-sample-demo-files .is-not-used {
  opacity: .75;
}
.apf-sample-demo-files .is-not-used em {
  color: #6b7280;
  background: #eceff3;
}
.apf-sample-demo-steps {
  margin: 0 0 18px;
  padding-left: 20px;
  color: var(--ap-text, #172033);
  font-size: 14.5px;
  line-height: 1.65;
}
.apf-sample-demo-steps li + li {
  margin-top: 6px;
}
.apf-sample-demo-notes {
  margin: 0;
  padding: 14px 0 0;
  border-top: 1px solid rgba(15, 39, 71, .1);
  list-style: none;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.6;
}
.apf-sample-demo-notes li + li {
  margin-top: 6px;
}
@media (max-width: 760px) {
  .apf-sample-demo-body {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .apf-sample-demo .apf-video-shell {
    max-width: 300px;
  }
  .apf-sample-demo-inputs {
    padding: 16px;
  }
}

/* v0.4.413 — Sample hero: preview description sits in the right column under the overview cards */
.apf-sample-preview-note {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--ap-line);
}
.apf-sample-preview-note h2 {
  margin: 0 0 5px;
  color: #1a1d24;
  font-size: 14px;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.apf-sample-preview-note p {
  margin: 0;
  color: var(--ap-muted);
  font-size: 13.5px;
  line-height: 1.5;
}

