.hero + .section,
.hero + .prose,
.hero + .xp-page,
.hero + .cv-royalty,
.hero--inner + .section,
.hero--inner + .prose,
.hero--inner + .xp-page,
.hero--inner + .cv-royalty,
.hero--inner + .legal-page { background: var(--av-paper); }

.hero--inner + .section,
.hero--inner + .prose,
.hero--inner + .xp-page,
.hero--inner + .cv-royalty,
.hero--inner + .about-editorial,
.hero--inner + .legal-page {
  padding-top: clamp(1.5rem, 3.2vw, 2.35rem);
}

.prose {
  padding-block: var(--space-8);
  background: var(--av-paper);
}

.prose .container-narrow {
  width: min(100% - (var(--gutter) * 2), var(--container-narrow));
}

/*
 * Sub-page content type — same reference as home Management Team
 * Title: --type-subtitle + --type-subtitle-leading
 * Body:  --type-body + --type-body-leading
 */
.prose h2,
.legal-page-body h2,
.xp-page-includes h2,
.xp-page-body > strong:first-child,
.content-page h2,
.faq-page h2,
.whats-new-page h2,
.blog-index h2,
.promo-index h2,
.profile-index h2 {
  color: var(--type-color-subtitle);
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
}

.prose h2 {
  margin: 2.2em 0 .65em;
}

.prose h3 {
  margin: 1.8em 0 .55em;
  color: var(--type-color-subtitle);
  font-family: var(--font-subtitle);
  font-size: var(--step-2);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
}

.prose p,
.prose li,
.xp-page-body,
.xp-page-body p,
.xp-page-body li,
.xp-page-includes li,
.legal-page-body p,
.legal-page-body li,
.legal-sub,
.content-page p,
.content-page li,
.careers-lead,
.job-posting > p:not(.job-meta),
.faq-item p,
.whats-new-card p,
.blog-card p,
.promo-card p {
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}

.prose b,
.prose strong {
  font-weight: var(--font-weight-emphasis);
  font-synthesis: weight;
}

.prose em,
.prose i {
  font-style: italic;
  font-synthesis: style;
}

.prose u {
  text-decoration: underline;
  text-underline-offset: .12em;
}

/* Strict Mode A: legacy CMS size classes inherit brand body / heading scale */
.prose .cms-fs-sm,
.prose span.cms-fs-sm,
.prose p.cms-fs-sm,
.prose li.cms-fs-sm,
.prose h2.cms-fs-sm,
.prose h3.cms-fs-sm,
.prose .cms-fs-md,
.prose span.cms-fs-md,
.prose p.cms-fs-md,
.prose li.cms-fs-md,
.prose h2.cms-fs-md,
.prose h3.cms-fs-md,
.prose .cms-fs-lg,
.prose span.cms-fs-lg,
.prose p.cms-fs-lg,
.prose li.cms-fs-lg,
.prose h2.cms-fs-lg,
.prose h3.cms-fs-lg {
  font-size: inherit;
  color: inherit;
}

.prose blockquote,
.profile-quote {
  margin: var(--space-6) 0;
  padding: 1rem 0 1rem clamp(1.5rem, 5vw, 3rem);
  border-left: 2px solid var(--av-brass);
  color: var(--type-color-subtitle);
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  font-style: italic;
  line-height: var(--type-subtitle-leading);
}

.prose img {
  width: calc(100% + clamp(0rem, 8vw, 8rem));
  max-width: none;
  height: auto;
  margin: var(--space-6) 0 var(--space-6) clamp(0rem, -4vw, -4rem);
}

.article-actions { margin-top: var(--space-6); }

.xp-page {
  position: relative;
  overflow: hidden;
  padding: clamp(1.75rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 5rem);
  background:
    radial-gradient(ellipse 70% 50% at 8% 0%, rgba(183, 149, 91, .11), transparent 55%),
    radial-gradient(ellipse 50% 40% at 100% 12%, rgba(23, 63, 53, .07), transparent 52%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 42%, var(--av-anti-flash) 100%);
}

.xp-page-glow {
  position: absolute;
  inset: auto -12% -28% auto;
  width: min(40rem, 72vw);
  height: min(40rem, 72vw);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(183, 149, 91, .13), transparent 68%);
  pointer-events: none;
}

.xp-page-inner {
  position: relative;
  width: min(100% - (var(--gutter) * 2), 72rem);
  margin-inline: auto;
}

.xp-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .8fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

.xp-page-layout.is-solo {
  grid-template-columns: 1fr;
}

.xp-page-layout.is-solo .xp-page-main {
  width: min(100%, var(--container-narrow));
  margin-inline: auto;
}

.xp-page-body {
  width: 100%;
  max-width: none;
}

.xp-page-body p[style*="text-align: left"],
.xp-page-body li[style*="text-align: left"] { text-align: left; }
.xp-page-body p[style*="text-align: center"],
.xp-page-body li[style*="text-align: center"] { text-align: center; }
.xp-page-body p[style*="text-align: right"],
.xp-page-body li[style*="text-align: right"] { text-align: right; }
.xp-page-body p[style*="text-align: justify"],
.xp-page-body li[style*="text-align: justify"] { text-align: justify; }

.xp-page-kicker {
  margin: 0 0 .85rem;
  color: var(--av-brass);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.xp-page-body.prose {
  padding: 0;
  background: transparent;
}

.xp-page-body span,
.xp-page-body strong,
.xp-page-body div {
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}

.xp-page-body > strong:first-child {
  display: block;
  margin: 0 0 .85rem;
}

.xp-page-body a {
  color: var(--av-forest);
  text-decoration: none;
  border-bottom: 1px solid var(--av-brass);
}

.xp-page-body a:hover {
  color: var(--av-forest-deep, var(--av-forest));
}

.xp-page-body img {
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 1.5rem 0;
}

.xp-page-aside {
  position: sticky;
  top: 5.75rem;
  padding: 1.75rem 1.65rem 1.85rem;
  border: 1px solid rgba(23, 63, 53, .1);
  background: rgba(255, 255, 255, .58);
}

.xp-page-includes {
  margin: 0;
}

.xp-page-includes h2 {
  margin: 0 0 1rem;
}

.xp-page-includes ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: xp-inc;
}

.xp-page-includes li {
  display: grid;
  grid-template-columns: 2.1rem minmax(0, 1fr);
  gap: .7rem;
  align-items: baseline;
  margin: 0;
  padding: .85rem 0;
  border-bottom: 1px solid rgba(23, 63, 53, .08);
}

.xp-page-includes li:last-child {
  border-bottom: 0;
}

.xp-page-includes li::before {
  counter-increment: xp-inc;
  content: counter(xp-inc, decimal-leading-zero);
  color: var(--av-brass);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.xp-page-aside .xp-page-book {
  margin: 1.5rem 0 0;
}

.xp-page-aside .btn {
  width: 100%;
}

.xp-page-gallery {
  display: grid;
  gap: .8rem;
  margin-top: clamp(2.5rem, 5.5vw, 4.25rem);
}

.xp-page-gallery figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--av-onyx);
}

.xp-page-zoom {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.xp-page-zoom:focus-visible {
  outline: 2px solid var(--av-brass, #c4a06a);
  outline-offset: -3px;
}

.xp-page-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.xp-zoom {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: grid;
  place-items: center;
  padding: 4.5rem 4.5rem 2.5rem;
}

.xp-zoom[hidden] {
  display: none;
}

.xp-zoom-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(12, 18, 16, .88);
  cursor: pointer;
  opacity: 0;
  transition: opacity .28s ease;
}

.xp-zoom.is-on .xp-zoom-backdrop {
  opacity: 1;
}

.xp-zoom-frame {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: min(92vw, 72rem);
  max-height: 86vh;
  opacity: 0;
  transform: scale(.94);
  transition: opacity .32s ease, transform .42s cubic-bezier(.22, 1, .36, 1);
}

.xp-zoom.is-on .xp-zoom-frame {
  opacity: 1;
  transform: none;
}

.xp-zoom-frame img {
  display: block;
  max-width: min(92vw, 72rem);
  max-height: 86vh;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
}

.xp-zoom-close,
.xp-zoom-nav {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  border: 1px solid rgba(244, 241, 234, .45);
  background: rgba(12, 18, 16, .35);
  color: #f4f1ea;
  cursor: pointer;
  font-family: var(--font-body);
  line-height: 1;
}

.xp-zoom-close {
  top: 1.1rem;
  right: 1.1rem;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  font-size: 1.55rem;
}

.xp-zoom-nav {
  top: 50%;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  font-size: 1.8rem;
  transform: translateY(-50%);
}

.xp-zoom-prev { left: 1rem; }
.xp-zoom-next { right: 1rem; }

.xp-zoom-close:hover,
.xp-zoom-close:focus-visible,
.xp-zoom-nav:hover,
.xp-zoom-nav:focus-visible {
  background: rgba(196, 160, 106, .85);
  color: #1a1d1c;
}

body.xp-zoom-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .xp-zoom-backdrop,
  .xp-zoom-frame {
    transition: none;
  }
}

@media (max-width: 720px) {
  .xp-zoom {
    padding: 4rem 2.6rem 1.5rem;
  }

  .xp-zoom-nav {
    top: auto;
    bottom: .85rem;
    transform: none;
  }

  .xp-zoom-prev { left: calc(50% - 3.4rem); }
  .xp-zoom-next { right: calc(50% - 3.4rem); }
}

.xp-page-gallery[data-count="1"] figure {
  min-height: min(68vw, 28rem);
}

.xp-page-gallery[data-count="2"] {
  grid-template-columns: 1fr 1fr;
}

.xp-page-gallery[data-count="2"] figure {
  min-height: 22rem;
}

.xp-page-gallery[data-count="3"] {
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: 13.5rem 13.5rem;
}

.xp-page-gallery[data-count="3"] figure:first-child {
  grid-row: 1 / 3;
}

.xp-page-gallery[data-count="4"] {
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 14.5rem 14.5rem;
}

.xp-page-gallery[data-count="4"] figure:first-child {
  grid-row: 1 / 3;
}

.xp-page-gallery[data-count="4"] figure:nth-child(4) {
  grid-column: 2 / 4;
}

.xp-page-empty {
  width: min(100%, 36rem);
  margin: 0 auto clamp(1.5rem, 4vw, 2.5rem);
  padding: clamp(1.75rem, 4vw, 2.75rem) 0;
  text-align: center;
}

.xp-page-empty h2 {
  margin: 0 0 .75rem;
  color: var(--type-color-subtitle);
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
}

.xp-page-empty p {
  margin: 0;
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}

.xp-page-empty-cta {
  margin-top: 1.25rem !important;
}

.xp-page-empty-cta a {
  color: var(--av-ink, var(--av-onyx));
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .18em;
}

.xp-page-empty-cta a:hover {
  color: var(--av-forest, var(--av-brunswick));
}

.xp-page-foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  margin-top: clamp(2.5rem, 5vw, 3.75rem);
  padding-top: 1.75rem;
  border-top: 1px solid rgba(23, 63, 53, .1);
  text-align: center;
}

.xp-page-foot .xp-page-book,
.xp-page-foot .xp-page-back {
  margin: 0;
}

@media (max-width: 960px) {
  .xp-page-layout {
    grid-template-columns: 1fr;
  }

  .xp-page-aside {
    position: static;
  }

  .xp-page-gallery[data-count="3"],
  .xp-page-gallery[data-count="4"] {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
  }

  .xp-page-gallery[data-count="3"] figure:first-child,
  .xp-page-gallery[data-count="4"] figure:first-child,
  .xp-page-gallery[data-count="4"] figure:nth-child(4) {
    grid-column: auto;
    grid-row: auto;
    min-height: 16rem;
  }

  .xp-page-gallery[data-count="3"] figure,
  .xp-page-gallery[data-count="4"] figure {
    min-height: 16rem;
  }
}

@media (max-width: 640px) {
  .xp-page-gallery[data-count="2"],
  .xp-page-gallery[data-count="3"],
  .xp-page-gallery[data-count="4"] {
    grid-template-columns: 1fr;
  }

  .xp-page-gallery figure,
  .xp-page-gallery[data-count="1"] figure,
  .xp-page-gallery[data-count="2"] figure {
    min-height: 16.5rem;
  }
}

.blog-grid,
.promo-grid,
.profile-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.6vw, 2.5rem);
}

.blog-card {
  display: block;
  overflow: hidden;
  border: 1px solid var(--av-line);
  background: var(--av-white);
  color: inherit;
  text-decoration: none;
  transition: box-shadow var(--duration), transform var(--duration);
}

.blog-card:hover {
  box-shadow: var(--av-shadow-md);
  transform: translateY(-6px);
}

.blog-card-media {
  aspect-ratio: 4 / 3;
  background: var(--av-sage-pale) center / cover no-repeat;
}

.blog-card-body { padding: 1.5rem; }

.blog-card-date {
  margin-bottom: .75rem;
  color: var(--av-brass);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.blog-index .blog-card h2,
.blog-card h2 {
  margin-bottom: .65rem;
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}
.blog-card p { color: var(--type-color-body); }

.promo-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
}

.promo-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.promo-card-body .text-link { margin-top: auto; }

/* Profiles index — compact premium directory cards */
.page-profiles .profiles-section {
  padding-block: clamp(1.5rem, 3vw, 2.25rem) clamp(2.25rem, 4.5vw, 3.5rem);
  background: var(--av-anti-flash);
  color: var(--av-onyx);
}

.page-profiles .profile-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.75rem, 1.4vw, 1.15rem);
}

.profile-tile {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--av-onyx) 9%, transparent);
  background: #fff;
  color: var(--av-onyx);
  text-decoration: none;
  min-height: 0;
  padding: .65rem .65rem .8rem;
  gap: .65rem;
  transition:
    transform var(--duration-fast, .22s) ease,
    border-color var(--duration-fast, .22s) ease,
    box-shadow var(--duration-fast, .22s) ease;
}

.profile-tile:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--av-onyx) 18%, transparent);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--av-onyx) 8%, transparent);
}

.profile-tile-media {
  aspect-ratio: 1 / 1;
  width: 100%;
  background: var(--av-sage-pale) center top / cover no-repeat;
}

.profile-tile-media.is-empty {
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--av-onyx) 10%, var(--av-anti-flash)), var(--av-anti-flash));
}

.profile-tile-body {
  display: grid;
  gap: .25rem;
  padding: 0 .1rem .1rem;
}

.profile-tile h3 {
  margin: 0;
  color: var(--av-onyx);
  font-family: var(--font-title);
  font-size: clamp(.88rem, .82rem + .2vw, .98rem);
  font-weight: var(--font-weight-title);
  line-height: 1.25;
  letter-spacing: -.01em;
}

.profile-tile .meta {
  margin: 0;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.4;
  text-transform: uppercase;
  opacity: .62;
}

.profile-tile::before {
  content: none;
}

.profile-tile > div {
  position: static;
  color: inherit;
}

@media (max-width: 980px) {
  .page-profiles .profile-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .blog-grid,
  .promo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-profiles .profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-shell { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
  .blog-grid,
  .promo-grid { grid-template-columns: 1fr; }
  .page-profiles .profile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
  }
  .profile-tile {
    padding: .55rem .55rem .7rem;
    gap: .5rem;
  }
  .profile-tile-body {
    padding: 0;
  }
  .profile-tile h3 {
    font-size: .86rem;
  }
  .profile-tile .meta {
    font-size: .62rem;
  }
}

.profile-facts {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.5rem;
  margin-bottom: 1.5rem;
  color: var(--av-ink-soft);
}

.profile-schedule {
  padding: 1.25rem;
  border: 1px solid var(--av-line);
  background: var(--av-paper-deep);
}

.contact-shell {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.contact-aside h2 {
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
  color: var(--type-color-subtitle);
}
.contact-aside p {
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}
.contact-aside .prose { padding: 0; background: transparent; }

.contact-form,
.account-form {
  display: grid;
  gap: 1.15rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--av-line);
  background: var(--av-white);
  box-shadow: var(--av-shadow-sm);
}

.contact-form .btn,
.account-form .btn { width: fit-content; }

.phone-field {
  display: flex;
  align-items: stretch;
  min-width: 0;
  border: 1px solid var(--av-line);
  background: var(--av-white);
  overflow: hidden;
}

.phone-field:focus-within {
  border-color: color-mix(in srgb, var(--av-brunswick) 55%, var(--av-line));
}

.phone-field-prefix {
  flex: 0 0 auto;
  width: 4.25rem;
  max-width: 4.25rem;
  min-width: 0;
  margin: 0;
  padding: .85rem .45rem;
  border: 0;
  border-right: 1px solid var(--av-line);
  border-radius: 0;
  background: color-mix(in srgb, var(--av-anti-flash) 88%, #fff);
  color: var(--av-ink-soft);
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.2;
  text-align: center;
  cursor: text;
  appearance: none;
  -webkit-appearance: none;
}

.phone-field-prefix:focus {
  outline: none;
  color: var(--av-onyx);
}

.phone-field input[type="tel"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  outline: none;
}

.contact-form .phone-field input[type="tel"]:focus,
.contact-form .phone-field-prefix:focus {
  outline: none;
  box-shadow: none;
}

@media (max-width: 640px) {
  .phone-field-prefix {
    width: 3.85rem;
    max-width: 3.85rem;
    font-size: .78rem;
  }
}

.cv-app-qr,
.cv-app-download {
  position: relative;
  padding-block: var(--space-9);
  overflow: hidden;
  background: var(--av-paper-deep);
  text-align: center;
}

.cv-app-download { padding-top: calc(var(--header-h) + var(--space-8)); }

.cv-app-qr-eyebrow,
.cv-app-download-eyebrow {
  color: var(--av-brass);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.cv-app-qr-title,
.cv-app-download h1 { margin-bottom: 1rem; font-size: var(--step-4); }

.cv-app-qr-hint,
.cv-app-download-lead {
  max-width: 38rem;
  margin: 0 auto 2.5rem;
  color: var(--av-ink-soft);
}

.cv-app-qr-card {
  width: min(100%, 25rem);
  padding: 2rem;
  margin-inline: auto;
  border: 1px solid var(--av-line);
  background: var(--av-white);
  box-shadow: var(--av-shadow-md);
}

.cv-app-qr-link img { width: min(14rem, 100%); margin-inline: auto; }
.cv-app-qr-store-links,
.cv-app-download-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-top: 1.5rem;
}

.cv-store-btn {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-width: 11.5rem;
  padding: .7rem 1.15rem;
  border-radius: 8px;
  background: var(--av-onyx);
  color: #fff;
  text-decoration: none;
  line-height: 1.15;
  transition: background .2s ease, transform .2s ease;
}

.cv-store-btn:hover,
.cv-store-btn:focus-visible {
  background: color-mix(in srgb, var(--av-onyx) 88%, #000);
  color: #fff;
  transform: translateY(-1px);
}

.cv-store-btn-icon {
  flex-shrink: 0;
  display: block;
}

.cv-store-btn-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .1rem;
  text-align: left;
}

.cv-store-btn-kicker {
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .04em;
  opacity: .85;
  text-transform: none;
}

.cv-store-btn-name {
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: .02em;
  text-transform: none;
}

.cv-app-qr-store {
  padding: .65rem 1rem;
  border: 1px solid var(--av-line);
  text-decoration: none;
}

/* Doctor / expert profile show */
.page-profile-show .doc-profile {
  padding: calc(var(--header-h) + 1.5rem) 0 clamp(3.5rem, 8vw, 6rem);
  background:
    radial-gradient(ellipse 70% 50% at 100% 0%, rgba(183, 149, 91, .1), transparent 55%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 40%, var(--av-anti-flash) 100%);
}

.doc-profile-wrap {
  width: min(100% - 2.5rem, 68rem);
  margin-inline: auto;
  display: grid;
  gap: clamp(1.5rem, 4vw, 2.5rem);
}

.doc-profile-top {
  display: grid;
  gap: clamp(1.4rem, 3.5vw, 2.5rem);
  align-items: start;
}

.doc-profile-portrait {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--av-forest-deep);
  box-shadow: var(--av-shadow-md);
}

.doc-profile-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.doc-profile-portrait-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 30% 20%, rgba(183, 149, 91, .28), transparent 50%),
    linear-gradient(160deg, var(--av-brunswick), var(--av-brunswick));
  color: rgba(255, 253, 248, .55);
  font-family: var(--font-display);
  font-size: clamp(4rem, 12vw, 6rem);
}

.doc-profile-identity {
  padding-block: .25rem;
}

.doc-profile-kicker {
  margin: 0 0 .55rem;
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--av-brass);
}

.doc-profile-name {
  margin: 0 0 .55rem;
  font-family: var(--font-display);
  font-size: var(--type-title);
  font-weight: var(--font-weight-title);
  line-height: 1.1;
  color: var(--type-color-title);
}

.doc-profile-role {
  margin: 0 0 .35rem;
  font-size: 1.05rem;
  color: var(--av-ink-soft);
  letter-spacing: .02em;
}

.doc-profile-dot {
  margin-inline: .35rem;
  opacity: .55;
}

.doc-profile-code {
  margin: 0 0 1.25rem;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--av-ink-faint);
}

.doc-profile-facts {
  display: grid;
  gap: .75rem;
  margin: 0 0 1.5rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(23, 63, 53, .12);
  border-bottom: 1px solid rgba(23, 63, 53, .12);
}

.doc-profile-facts > div {
  display: grid;
  gap: .2rem;
}

.doc-profile-facts dt {
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--av-brass);
}

.doc-profile-facts dd {
  margin: 0;
  font-size: 1.05rem;
  color: var(--av-forest-deep);
}

.doc-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.doc-profile-actions .lp-btn--ghost {
  border-color: rgba(23, 63, 53, .28);
  color: var(--av-forest-deep);
}

.doc-profile-actions .lp-btn--ghost:hover {
  border-color: var(--av-forest);
  background: rgba(23, 63, 53, .05);
}

.doc-profile-schedule {
  padding: clamp(1.15rem, 3vw, 1.6rem);
  background: var(--av-anti-flash);
  border: 1px solid rgba(23, 63, 53, .1);
  box-shadow: var(--av-shadow-sm);
}

.doc-profile-schedule h2 {
  margin: 0 0 1rem;
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
  color: var(--type-color-subtitle);
}

.doc-profile-schedule ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .15rem;
}

.doc-profile-schedule li {
  display: grid;
  grid-template-columns: minmax(7rem, .9fr) 1fr;
  gap: .75rem;
  align-items: baseline;
  padding: .7rem 0;
  border-top: 1px solid rgba(23, 32, 27, .08);
  font-size: .98rem;
}

.doc-profile-schedule li:first-child {
  border-top: 0;
  padding-top: 0;
}

.doc-schedule-day {
  font-weight: 650;
  color: var(--av-forest-deep);
}

.doc-schedule-time {
  color: var(--av-ink-soft);
  text-align: right;
}

.doc-profile-copy {
  max-width: none;
}

.doc-profile-quote {
  margin: 0 0 1.25rem;
  padding: 1rem 0 1rem 1.2rem;
  border-left: 2px solid var(--av-brass);
  background: linear-gradient(90deg, rgba(183, 149, 91, .08), transparent 70%);
  font-family: var(--font-subtitle);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  font-style: italic;
  line-height: var(--type-subtitle-leading);
  color: var(--type-color-subtitle);
}

.doc-profile-bio.prose {
  padding: 0;
  background: transparent;
}

.doc-profile-bio.prose p {
  margin: 0 0 1rem;
  color: var(--av-ink-soft);
  line-height: var(--type-body-leading);
}

@media (min-width: 820px) {
  .doc-profile-top {
    grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 3.5rem);
  }

  .doc-profile-schedule li {
    grid-template-columns: 11rem 1fr;
  }
}

@media (max-width: 580px) {
  .doc-profile-schedule li {
    grid-template-columns: 1fr;
    gap: .2rem;
  }

  .doc-schedule-time {
    text-align: left;
  }
}

/* Legal pages (Privacy / Terms) */
.legal-page {
  background:
    radial-gradient(ellipse 60% 40% at 0% 0%, rgba(183, 149, 91, .1), transparent 55%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 35%, var(--av-anti-flash) 100%);
}

.legal-page-hero {
  padding: calc(var(--header-h) + 2.5rem) 0 2rem;
}

.legal-page-hero-inner,
.legal-page-wrap {
  width: min(100% - (var(--gutter) * 2), var(--container-narrow));
  margin-inline: auto;
}

.legal-kicker {
  margin: 0 0 .55rem;
  font-size: .7rem;
  font-weight: 650;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--av-brass);
}

.legal-page-hero h1 {
  margin: 0 0 .65rem;
  font-family: var(--font-display);
  font-size: var(--type-title);
  font-weight: var(--font-weight-title);
  line-height: 1.12;
  color: var(--type-color-title);
}

.legal-sub {
  margin: 0;
  max-width: 34rem;
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.legal-rule {
  width: 3.25rem;
  height: 1px;
  margin-top: 1.25rem;
  background: linear-gradient(90deg, var(--av-brass), transparent);
}

.legal-page-body.prose {
  padding: 0 0 clamp(3.5rem, 8vw, 6rem);
  background: transparent;
}

.legal-page-body .legal-lead {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: var(--type-subtitle);
  font-weight: var(--font-weight-subtitle);
  line-height: var(--type-subtitle-leading);
  color: var(--type-color-subtitle);
}

.legal-page-body .legal-updated {
  margin: 0 0 2rem;
  font-size: .82rem;
  letter-spacing: .04em;
  color: var(--av-ink-faint);
}

.legal-page-body h2 {
  margin: 2.1em 0 .55em;
}

.legal-page-body h3 {
  margin: 1.35em 0 .45em;
  font-family: var(--font-subtitle);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  color: var(--type-color-body);
  line-height: var(--type-body-leading);
}

.legal-page-body ul {
  margin: .6rem 0 1.25rem;
  padding-left: 1.15rem;
}

.legal-page-body li + li {
  margin-top: .4rem;
}

.legal-page-body a {
  color: var(--av-forest);
  text-underline-offset: .15em;
}

.legal-page-body b,
.legal-page-body strong {
  font-weight: 700;
  font-synthesis: weight;
  color: var(--av-onyx);
}

.legal-page-body em,
.legal-page-body i {
  font-style: italic;
  font-synthesis: style;
}

.legal-page-body u {
  text-decoration: underline;
  text-underline-offset: .12em;
}

/* Careers page — CMS body (Admin → Pages → Careers); layout only in CSS */
.hero--inner + .careers-page {
  background: var(--av-paper);
  padding-top: clamp(1.5rem, 3.2vw, 2.35rem);
}

.careers-page {
  background:
    radial-gradient(ellipse 55% 38% at 100% 0%, rgba(128, 109, 98, .12), transparent 55%),
    radial-gradient(ellipse 45% 30% at 0% 40%, rgba(51, 71, 58, .06), transparent 50%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 28%, var(--av-anti-flash) 100%);
}

.careers-page-body.prose {
  padding: 0 0 clamp(3.5rem, 8vw, 6rem);
  background: transparent;
}

.careers-page-wrap {
  width: min(100% - (var(--gutter) * 2), var(--container-narrow));
  margin-inline: auto;
}

.content-page--careers .careers-lead {
  position: relative;
  margin: 0 0 2.25rem;
  padding-bottom: 1.5rem;
  max-width: none;
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.content-page--careers .careers-lead::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3.25rem;
  height: 1px;
  background: linear-gradient(90deg, var(--av-brass), transparent);
}

.content-page--careers .careers-lead a {
  color: var(--av-brunswick);
  text-underline-offset: .15em;
}

.content-page--careers .careers-note {
  display: none;
}

.content-page--careers .job-posting {
  margin: 0 0 1.35rem;
  padding: 1.35rem 1.35rem 1.45rem;
  border: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
  border-left: 2px solid var(--av-cinereous);
  background:
    linear-gradient(165deg, color-mix(in srgb, #fff 72%, var(--av-anti-flash)), var(--av-anti-flash));
  box-shadow: 0 10px 28px color-mix(in srgb, var(--av-onyx) 5%, transparent);
}

.content-page--careers .job-posting:last-child {
  margin-bottom: 0;
}

.content-page--careers .job-posting h2 {
  margin: 0 0 .55rem;
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.content-page--careers .job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  margin: 0 0 1.05rem;
  font-size: .84rem;
  letter-spacing: .02em;
  color: var(--av-cinereous);
}

.content-page--careers .job-meta strong {
  font-weight: 600;
  color: var(--av-onyx);
  font-synthesis: weight;
}

.content-page--careers .job-posting > p:not(.job-meta) {
  margin: 0 0 1rem;
  color: var(--av-ink-soft);
  line-height: var(--type-body-leading);
}

.content-page--careers .job-posting h3 {
  margin: 1.15rem 0 .45rem;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--av-cinereous);
}

.content-page--careers .job-posting ul {
  margin: 0 0 1rem;
  padding-left: 1.1rem;
}

.content-page--careers .job-posting li {
  margin: 0 0 .4rem;
  color: var(--av-ink-soft);
  line-height: var(--type-body-leading);
}

.content-page--careers .job-posting li::marker {
  color: var(--av-cinereous);
}

.content-page--careers .job-apply {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .25rem;
  padding: .78rem 1.35rem;
  border: 1px solid var(--av-onyx);
  border-radius: var(--radius-pill, 999px);
  background: var(--av-onyx);
  color: var(--av-anti-flash);
  font-family: var(--font-body);
  font-size: .74rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .22s ease, color .22s ease, transform .22s ease;
}

.content-page--careers .job-apply::after {
  content: "→";
  font-size: .95em;
  opacity: .85;
}

.content-page--careers .job-apply:hover {
  background: transparent;
  color: var(--av-onyx);
  transform: translateY(-1px);
}

@media (max-width: 640px) {
  .careers-page-wrap {
    width: min(100% - 1.75rem, var(--container-narrow));
  }

  .content-page--careers .job-posting {
    padding: 1.15rem 1rem 1.25rem;
  }
}

/* FAQ page — accordion items from CMS body (Admin → Pages → FAQ) */
.hero--inner + .faq-page {
  background: var(--av-paper);
  padding-top: clamp(1.5rem, 3.2vw, 2.35rem);
}

.faq-page {
  background:
    radial-gradient(ellipse 50% 36% at 0% 0%, rgba(128, 109, 98, .1), transparent 55%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 30%, var(--av-anti-flash) 100%);
}

.faq-page-body.prose {
  padding: 0 0 clamp(3.5rem, 8vw, 6rem);
  background: transparent;
}

.faq-page-wrap {
  width: min(100% - (var(--gutter) * 2), var(--container-narrow));
  margin-inline: auto;
}

.content-page--faq .faq-lead {
  position: relative;
  margin: 0 0 2rem;
  padding-bottom: 1.4rem;
  max-width: none;
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.content-page--faq .faq-lead::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3.25rem;
  height: 1px;
  background: linear-gradient(90deg, var(--av-brass), transparent);
}

.content-page--faq .faq-lead a {
  color: var(--av-brunswick);
  text-underline-offset: .15em;
}

.content-page--faq .faq-item {
  margin: 0 0 .75rem;
  border: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
  background: color-mix(in srgb, #fff 68%, var(--av-anti-flash));
  overflow: clip;
}

.content-page--faq .faq-item summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 1.05rem 2.75rem 1.05rem 1.2rem;
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
  transition: background .2s ease;
}

.content-page--faq .faq-item summary::-webkit-details-marker {
  display: none;
}

.content-page--faq .faq-item summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.15rem;
  width: .55rem;
  height: .55rem;
  border-right: 1.5px solid var(--av-cinereous);
  border-bottom: 1.5px solid var(--av-cinereous);
  transform: translateY(-65%) rotate(45deg);
  transition: transform .22s ease;
}

.content-page--faq .faq-item[open] summary::after {
  transform: translateY(-20%) rotate(225deg);
}

.content-page--faq .faq-item summary:hover {
  background: color-mix(in srgb, var(--av-anti-flash) 55%, #fff);
}

.content-page--faq .faq-answer {
  padding: 0 1.2rem 1.2rem;
  border-top: 1px solid color-mix(in srgb, var(--av-onyx) 8%, transparent);
}

.content-page--faq .faq-answer p {
  margin: .95rem 0 0;
  color: var(--av-onyx);
  font-size: var(--type-body);
  line-height: var(--type-body-leading);
}

.content-page--faq .faq-answer a {
  color: var(--av-brunswick);
  text-underline-offset: .15em;
}

@media (max-width: 640px) {
  .faq-page-wrap {
    width: min(100% - 1.75rem, var(--container-narrow));
  }

  .content-page--faq .faq-item summary {
    padding: .95rem 2.5rem .95rem 1rem;
  }
}

/* What's new — dated updates (header link; Admin → What's new) */
.hero--inner + .whats-new-page {
  background: var(--av-paper);
  padding-top: clamp(1.5rem, 3.2vw, 2.35rem);
}

.whats-new-page {
  background:
    radial-gradient(ellipse 50% 36% at 100% 0%, rgba(128, 109, 98, .1), transparent 55%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 28%, var(--av-anti-flash) 100%);
  padding: 0 0 clamp(3.5rem, 8vw, 6rem);
}

.whats-new-wrap {
  width: min(100% - (var(--gutter) * 2), var(--container-narrow));
  margin-inline: auto;
}

.whats-new-item {
  margin: 0 0 1.15rem;
  padding: 1.15rem 1.25rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
  background: color-mix(in srgb, #fff 68%, var(--av-anti-flash));
}

.whats-new-date {
  display: block;
  margin: 0 0 .45rem;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--av-cinereous);
}

.whats-new-page .whats-new-title,
.whats-new-item .whats-new-title {
  margin: 0 0 .55rem;
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.whats-new-excerpt {
  margin: 0 0 .85rem;
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}

.whats-new-item .whats-new-body.prose {
  margin: 0;
  padding: 0;
  background: transparent;
}

.whats-new-item .whats-new-body.prose > *:first-child {
  margin-top: 0;
}

.whats-new-item .whats-new-body.prose > *:last-child {
  margin-bottom: 0;
}

/* Respect TinyMCE / admin image dimensions (do not force full-bleed like blog .prose img). */
.whats-new-body.prose img,
.whats-new-body.prose .blog-figure img {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 1rem 0;
  display: inline-block;
  vertical-align: middle;
}

.whats-new-body.prose .blog-figure {
  margin: 1rem 0;
  max-width: 100%;
}

.whats-new-body.prose .blog-figure img {
  display: block;
  margin-inline: auto;
}

.whats-new-empty {
  margin: 0;
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
}

/* Ecommerce — premium coming soon */
body.page-ecommerce {
  background: #1c1c1e;
}

body.page-ecommerce .cv-footer {
  border-top-color: color-mix(in srgb, #f3f1ec 12%, transparent);
}

.ecommerce-soon {
  --ecom-ink: #f3f1ec;
  --ecom-muted: color-mix(in srgb, #f3f1ec 58%, transparent);
  --ecom-rule: color-mix(in srgb, var(--av-cinereous) 72%, #c4b29a);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  place-items: center;
  min-height: calc(100svh - var(--header-h, 4.5rem));
  padding:
    calc(var(--header-h, 4.5rem) + clamp(2.5rem, 6vw, 4.5rem))
    var(--gutter)
    clamp(3.5rem, 8vw, 5.5rem);
  background:
    radial-gradient(ellipse 70% 55% at 50% 0%, color-mix(in srgb, var(--av-cinereous) 30%, transparent), transparent 70%),
    linear-gradient(165deg, #18181a 0%, #2a2a2c 42%, #1c1c1e 100%);
  color: var(--ecom-ink);
}

.ecommerce-soon-atmosphere {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.ecommerce-soon-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(18, 18, 20, .4) 0%, transparent 28%, transparent 72%, rgba(18, 18, 20, .5) 100%),
    radial-gradient(ellipse 55% 40% at 50% 55%, transparent 20%, rgba(18, 18, 20, .48) 100%);
}

.ecommerce-soon-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(48px);
  opacity: .55;
}

.ecommerce-soon-glow--a {
  width: min(48vw, 28rem);
  height: min(48vw, 28rem);
  top: 8%;
  left: 50%;
  translate: -50% 0;
  background: radial-gradient(circle, color-mix(in srgb, var(--av-cinereous) 55%, transparent), transparent 68%);
}

.ecommerce-soon-glow--b {
  width: min(42vw, 22rem);
  height: min(42vw, 22rem);
  right: -6%;
  bottom: 10%;
  background: radial-gradient(circle, color-mix(in srgb, var(--av-onyx) 40%, transparent), transparent 70%);
  opacity: .4;
}

.ecommerce-soon-grain {
  position: absolute;
  inset: 0;
  opacity: .07;
  mix-blend-mode: soft-light;
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 1px,
      rgba(255, 255, 255, .035) 1px,
      rgba(255, 255, 255, .035) 2px
    );
}

.ecommerce-soon-shell {
  position: relative;
  z-index: 1;
  width: min(100%, 40rem);
  margin-inline: auto;
  text-align: center;
}

.ecommerce-soon-brand {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(.95rem, .85rem + .4vw, 1.15rem);
  font-weight: var(--font-weight-title);
  letter-spacing: .42em;
  text-indent: .42em;
  text-transform: uppercase;
  color: var(--ecom-ink);
}

.ecommerce-soon-rule {
  display: block;
  width: 4.5rem;
  height: 1px;
  margin: 1.35rem auto 1.15rem;
  background: linear-gradient(90deg, transparent, var(--ecom-rule), transparent);
  transform-origin: center;
}

.ecommerce-soon-rule--foot {
  width: 2.75rem;
  margin: 1.75rem auto 0;
  opacity: .7;
}

.ecommerce-soon-kicker {
  margin: 0 0 1.15rem;
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--ecom-muted);
}

.ecommerce-soon-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--type-title);
  font-weight: var(--font-weight-title);
  line-height: 1.2;
  letter-spacing: .015em;
  color: var(--ecom-ink);
  text-wrap: balance;
}

@media (prefers-reduced-motion: no-preference) {
  .ecommerce-soon-brand {
    animation: ecommerce-soon-rise 1s cubic-bezier(.22, 1, .36, 1) both;
  }

  .ecommerce-soon-rule {
    animation: ecommerce-soon-rule 1.1s cubic-bezier(.22, 1, .36, 1) .12s both;
  }

  .ecommerce-soon-kicker {
    animation: ecommerce-soon-rise 1s cubic-bezier(.22, 1, .36, 1) .18s both;
  }

  .ecommerce-soon-title {
    animation: ecommerce-soon-rise 1.05s cubic-bezier(.22, 1, .36, 1) .28s both;
  }

  .ecommerce-soon-rule--foot {
    animation: ecommerce-soon-rule 1.1s cubic-bezier(.22, 1, .36, 1) .42s both;
  }

  .ecommerce-soon-glow--a {
    animation: ecommerce-soon-breathe 8s ease-in-out infinite;
  }
}

@keyframes ecommerce-soon-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ecommerce-soon-rule {
  from {
    opacity: 0;
    transform: scaleX(.35);
  }
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes ecommerce-soon-breathe {
  0%,
  100% {
    opacity: .45;
    transform: translate(-50%, 0) scale(1);
  }
  50% {
    opacity: .7;
    transform: translate(-50%, 6px) scale(1.06);
  }
}

@media (max-width: 640px) {
  .ecommerce-soon {
    min-height: calc(100svh - var(--header-h, 4.25rem));
    padding-inline: 1.35rem;
  }

  .ecommerce-soon-brand {
    letter-spacing: .32em;
    text-indent: .32em;
  }
}

.whats-new-page--show .whats-new-lead {
  margin: 0 0 1.35rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
  color: var(--type-color-body);
}

.whats-new-body p {
  margin: 0 0 1rem;
  color: var(--av-onyx);
  font-size: var(--type-body);
  line-height: var(--type-body-leading);
}

.whats-new-body a {
  color: var(--av-brunswick);
  text-underline-offset: .15em;
}

.whats-new-back {
  margin: 2rem 0 0;
}

.whats-new-back a {
  color: var(--av-brunswick);
  text-decoration: none;
  font-size: .95rem;
}

.whats-new-back a:hover {
  text-decoration: underline;
}

@media (max-width: 640px) {
  .whats-new-wrap {
    width: min(100% - 1.75rem, var(--container-narrow));
  }

  .whats-new-item {
    padding: 1rem 1rem 1.1rem;
  }
}

/* Strict Mode A: legal page ignores legacy CMS size classes */
.legal-page-body.prose .cms-fs-sm,
.legal-page-body.prose span.cms-fs-sm,
.legal-page-body.prose p.cms-fs-sm,
.legal-page-body.prose li.cms-fs-sm,
.legal-page-body.prose h2.cms-fs-sm,
.legal-page-body.prose h3.cms-fs-sm,
.legal-page-body.prose .cms-fs-md,
.legal-page-body.prose span.cms-fs-md,
.legal-page-body.prose p.cms-fs-md,
.legal-page-body.prose li.cms-fs-md,
.legal-page-body.prose h2.cms-fs-md,
.legal-page-body.prose h3.cms-fs-md,
.legal-page-body.prose .cms-fs-lg,
.legal-page-body.prose span.cms-fs-lg,
.legal-page-body.prose p.cms-fs-lg,
.legal-page-body.prose li.cms-fs-lg,
.legal-page-body.prose h2.cms-fs-lg,
.legal-page-body.prose h3.cms-fs-lg {
  font-size: inherit;
  color: inherit;
}

/* Avalon Library post detail */
.lib-show {
  padding: calc(var(--header-h) + clamp(1.5rem, 3vw, 2.5rem)) clamp(1.25rem, 5vw, 3rem) clamp(4rem, 8vw, 6.5rem);
  background:
    radial-gradient(ellipse 65% 50% at 12% 0%, rgba(183, 149, 91, .1), transparent 55%),
    linear-gradient(180deg, var(--av-anti-flash) 0%, var(--av-paper) 45%, var(--av-anti-flash) 100%);
}

.lib-show-wrap {
  width: min(100%, var(--container-narrow));
  margin-inline: auto;
}

.lib-show-kicker {
  margin: 0 0 .65rem;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--av-ink-faint);
}

.lib-show-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--type-title);
  font-weight: var(--font-weight-title);
  line-height: 1.15;
  color: var(--type-color-title);
}

.lib-show-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .55rem;
  margin: .85rem 0 0;
  color: var(--av-ink-soft);
  font-size: .92rem;
}

.lib-show-dot {
  color: var(--av-ink-faint);
}

.lib-show-time {
  color: var(--av-ink-faint);
  font-size: .85rem;
}

.lib-show-media {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  overflow: hidden;
  border-radius: 4px;
  background: var(--av-onyx);
  aspect-ratio: 16 / 10;
}

.lib-show-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lib-show-media.is-video {
  aspect-ratio: 16 / 9;
}

.lib-show-media iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.lib-show-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin: clamp(1.75rem, 3vw, 2.5rem) 0 0;
  justify-content: flex-start;
}

.lib-show-body {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  padding: 0;
  background: transparent;
}

.lib-show-body.prose {
  padding-block: 0;
  background: transparent;
}

.lib-show-body .container-narrow {
  width: 100%;
}

.lib-show-body img {
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 1rem 0;
  border-radius: 4px;
}

.lib-type-page {
  padding-block: calc(var(--header-h) + .45rem) clamp(1.5rem, 3vw, 2.25rem);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--av-anti-flash) 88%, var(--av-onyx)) 0%, var(--av-anti-flash) 28%, var(--av-anti-flash) 100%);
  color: var(--av-onyx);
}

.lib-type-wrap {
  width: min(100%, 62rem);
}

.lib-type-head {
  margin: 0 0 .55rem;
  text-align: center;
}

.lib-type-kicker {
  margin: 0 0 .2rem;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.lib-type-title {
  margin: 0;
  color: var(--type-color-title);
  font-family: var(--font-subtitle);
  font-size: var(--type-title);
  font-weight: var(--font-weight-title);
  line-height: 1.12;
  letter-spacing: -.01em;
}

.lib-type-toolbar {
  display: grid;
  gap: .55rem .85rem;
  margin: 0 0 .9rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--av-onyx) 12%, transparent);
}

.lib-type-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .25rem clamp(1rem, 2.5vw, 1.75rem);
  margin: 0;
}

.lib-type-tab {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: .35rem 0 .55rem;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: clamp(.8rem, .74rem + .18vw, .92rem);
  font-weight: 400;
  letter-spacing: .02em;
  line-height: 1.3;
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease, opacity .2s ease;
}

.lib-type-tab:hover,
.lib-type-tab:focus-visible {
  color: var(--av-onyx);
  opacity: .72;
  outline: none;
}

.lib-type-tab.is-active {
  color: var(--av-onyx);
  border-bottom-color: var(--av-onyx);
  font-weight: 600;
  opacity: 1;
}

.lib-type-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: stretch;
  gap: 0;
  margin: 0 auto;
  width: min(100%, 36rem);
  border: 1px solid color-mix(in srgb, var(--av-onyx) 18%, transparent);
  background: color-mix(in srgb, var(--av-anti-flash) 70%, #fff);
}

.lib-type-search input[type="search"],
.lib-type-search select {
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 2.65rem;
  padding: .55rem .9rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: .88rem;
}

.lib-type-search select {
  flex: none;
  width: auto;
  min-width: 8.5rem;
  max-width: 11rem;
  border-left: 1px solid color-mix(in srgb, var(--av-onyx) 12%, transparent);
  cursor: pointer;
  appearance: none;
  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 fill='%23434244' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .85rem center;
  padding-right: 2rem;
}

.lib-type-search input[type="search"]:focus,
.lib-type-search select:focus {
  outline: none;
}

.lib-type-search:focus-within {
  border-color: color-mix(in srgb, var(--av-onyx) 42%, transparent);
}

.lib-type-search button {
  flex: none;
  min-height: 2.65rem;
  padding: .55rem 1.15rem;
  border: 0;
  border-left: 1px solid color-mix(in srgb, var(--av-onyx) 12%, transparent);
  border-radius: 0;
  background: var(--av-onyx);
  color: var(--av-anti-flash);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;
}

.lib-type-search button:hover {
  background: color-mix(in srgb, var(--av-onyx) 88%, #000);
  color: var(--av-anti-flash);
}

.lib-type-search-clear {
  flex: 0 0 auto;
  color: var(--av-onyx);
  font-size: .78rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  line-height: 2.65rem;
  padding-inline: .75rem;
}

.lib-type-search-clear:hover,
.lib-type-search-clear:focus-visible {
  color: var(--av-onyx);
  text-decoration: underline;
  text-underline-offset: .15em;
}

.lib-type-empty {
  margin: 2rem 0 0;
  color: var(--av-onyx);
  font-size: .95rem;
  text-align: center;
  opacity: .72;
}

.lib-type-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .45rem .65rem;
  margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
}

.lib-page-list {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lib-page-btn,
.lib-page-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.35rem;
  min-height: 2.35rem;
  padding: .35rem .65rem;
  border: 1px solid color-mix(in srgb, var(--av-onyx) 16%, transparent);
  border-radius: 0;
  background: transparent;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-decoration: none;
  line-height: 1;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.lib-page-btn:hover,
.lib-page-num:hover,
.lib-page-btn:focus-visible,
.lib-page-num:focus-visible {
  color: var(--av-onyx);
  border-color: color-mix(in srgb, var(--av-onyx) 40%, transparent);
  background: color-mix(in srgb, var(--av-onyx) 4%, transparent);
}

.lib-page-num.is-active {
  background: var(--av-onyx);
  border-color: var(--av-onyx);
  color: var(--av-anti-flash);
}

.lib-page-btn.is-disabled {
  opacity: .35;
  pointer-events: none;
}

@media (max-width: 720px) {
  .lib-type-toolbar {
    gap: .85rem;
  }

  .lib-type-tabs {
    justify-content: flex-start;
    gap: .75rem 1.1rem;
  }

  .lib-type-search {
    width: 100%;
    grid-template-columns: 1fr 1fr;
  }

  .lib-type-search input[type="search"] {
    grid-column: 1 / -1;
    border-bottom: 1px solid color-mix(in srgb, var(--av-onyx) 12%, transparent);
  }

  .lib-type-search select {
    border-left: 0;
    min-width: 0;
    max-width: none;
  }
}

.lib-type-actions {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  text-align: left;
}

.site-back-foot {
  position: relative;
  z-index: 1;
  padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 4vw, 3rem);
  background: var(--av-anti-flash);
}

.site-back-foot-inner {
  width: min(100% - (var(--gutter, 1.25rem) * 2), var(--container, 72rem));
  margin-inline: auto;
}

.site-back,
.lib-back {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--av-onyx);
  font-family: var(--font-body);
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: none;
}

.site-back:hover,
.site-back:focus-visible,
.lib-back:hover,
.lib-back:focus-visible {
  color: var(--av-onyx);
  text-decoration: underline;
  text-underline-offset: .18em;
}

/* Premium library rows */
.lib-row-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.lib-row {
  display: grid;
  grid-template-columns: minmax(11rem, 17.5rem) minmax(0, 1fr);
  gap: 1rem 1.35rem;
  align-items: start;
  padding: 1.15rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--av-onyx) 10%, transparent);
}

.lib-row:first-child {
  padding-top: .35rem;
}

.lib-row-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 0;
  background: var(--av-onyx);
  flex-shrink: 0;
}

.lib-row-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s var(--ease-premium, cubic-bezier(.22, 1, .36, 1));
}

.lib-row:hover .lib-row-thumb img {
  transform: scale(1.035);
}

.lib-row-badge {
  position: absolute;
  right: .5rem;
  bottom: .5rem;
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .28rem .5rem;
  border-radius: 0;
  background: color-mix(in srgb, var(--av-onyx) 88%, transparent);
  color: var(--av-anti-flash);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.lib-row-body {
  min-width: 0;
  padding-top: .15rem;
  color: var(--av-onyx);
}

.lib-row-top {
  display: flex;
  align-items: flex-start;
  gap: .75rem 1rem;
}

.lib-row-title {
  flex: 1;
  margin: 0;
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-emphasis);
  line-height: var(--type-body-leading);
  letter-spacing: -.01em;
}

.lib-row-title a {
  color: inherit;
  text-decoration: none;
}

.lib-row-title a:hover,
.lib-row-title a:focus-visible {
  color: inherit;
}

.lib-row-more {
  flex-shrink: 0;
  margin: .2rem 0 0;
  color: var(--av-onyx);
  text-decoration: none;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, opacity .2s ease;
}

.lib-row-more:hover,
.lib-row-more:focus-visible {
  color: var(--av-onyx);
  border-bottom-color: currentColor;
  text-decoration: none;
  opacity: .78;
}

.lib-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem .4rem;
  margin: .5rem 0 0;
  color: var(--av-onyx);
  font-size: .8rem;
  line-height: 1.35;
  opacity: .78;
}

.lib-row-account {
  font-weight: 600;
  opacity: 1;
}

.lib-row-sep,
.lib-row-time {
  color: var(--av-onyx);
}

.lib-row-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: .55rem 0 0;
  color: var(--type-color-body);
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--font-weight-body);
  line-height: var(--type-body-leading);
  opacity: .78;
}

@media (max-width: 640px) {
  .lib-row {
    grid-template-columns: minmax(7.25rem, 40vw) minmax(0, 1fr);
    gap: .75rem .85rem;
    padding: .95rem 0;
  }

  .lib-row-excerpt {
    -webkit-line-clamp: 2;
    font-size: .8rem;
  }

  .lib-row-more {
    font-size: .62rem;
  }

  .lib-row-badge {
    font-size: .58rem;
    padding: .2rem .4rem;
  }
}
