/* Visual parity V10091.
   Last-mile layer for the WordPress demo against the accepted psiweb20 public
   baseline: scale, rhythm, directory cards, hover states, and font weight. */

.cpm-stat-short {
  display: none;
}

.cpm-stat-full {
  display: inline;
}

.cpm-header .cpm-nav a::before,
.cpm-header .cpm-nav a::after,
.cpm-header .cpm-nav a.is-active::before,
.cpm-header .cpm-nav a.is-active::after,
.cpm-header .cpm-nav .current-menu-item > a::before,
.cpm-header .cpm-nav .current-menu-item > a::after {
  content: none;
  display: none;
}

.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  border-bottom: 0;
  box-shadow: none;
}

.cpm-button,
.cpm-ui26-search button,
.cpm-login-link {
  font-weight: 600;
}

.cpm-button--primary,
.cpm-header .cpm-actions .cpm-button--primary {
  font-weight: 600;
}

main strong,
.cpm-profile-card strong,
.cpm-chip-row span,
.cpm-verified-badge,
.cpm-post-single__meta span,
.cpm-course-card__footer a,
.cpm-tramite-card__cta {
  font-weight: 600;
}

.cpm-ui26-hero h1,
.cpm-news-hero h1,
.cpm-hero .cpm-title,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1 {
  font-weight: 650;
}

.cpm-ui26-search button,
.cpm-ui26-hero .cpm-button,
.cpm-ui26-autogestion .cpm-button,
.cpm-ui26-directory-preview .cpm-button,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-post-row__link {
  font-size: 14px;
  line-height: 20px;
}

.cpm-ui26-quick-wrap {
  margin-top: -17px;
}

.cpm-ui26-quick {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  border-color: rgba(226, 232, 240, 0.82);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1), 0 1px 2px rgba(15, 23, 42, 0.08);
}

.cpm-ui26-quick__item {
  box-sizing: border-box;
  height: 141px;
  min-height: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 12px;
  border-radius: 8px;
  padding: 16px;
}

.cpm-ui26-quick__item + .cpm-ui26-quick__item {
  border-left: 0;
}

.cpm-ui26-quick__item:hover,
.cpm-ui26-quick__item:focus-visible {
  background: var(--cpm-gray);
  box-shadow: none;
  transform: none;
}

.cpm-ui26-quick__icon {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 12px;
}

.cpm-ui26-quick strong {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.cpm-ui26-quick small {
  margin-top: 0;
  color: #64748b;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

.cpm-archive-head--tramites .cpm-archive-head__icon {
  background: #e0f2fe;
  color: var(--cpm-blue);
}

.psicole-directory--ui26 .psicole-directory__meta strong {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #64748b;
  font-size: 13px;
  font-weight: 500;
}

.psicole-directory--ui26 [data-psicole-count-number] {
  color: var(--cpm-ink);
  font-size: 14px;
  font-weight: 650;
}

.psicole-directory--ui26 [data-psicole-page-status] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
}

.psicole-directory--ui26 [data-psicole-page-status]::before {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: currentColor;
  content: "";
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3 4h18l-7 8v5l-4 2v-7L3 4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0.7;
}

.psicole-directory--ui26 .psicole-prof-card {
  min-height: 260px;
  padding: 20px;
}

.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3 {
  min-height: 1.2em;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
}

.psicole-directory--ui26 .psicole-prof-card__link,
.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory--ui26 .psicole-prof-card__verified {
  font-weight: 500;
}

.cpm-profile-card--primary,
.cpm-profile-card--contact {
  border-top: 2px solid var(--cpm-purple);
  box-shadow: inset 0 2px 0 var(--cpm-purple);
}

.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1 {
  max-width: 12.5em;
  letter-spacing: -0.015em;
}

.cpm-tramite-card h3,
.cpm-course-card h2,
.cpm-news-row__title {
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
}

.cpm-tramite-card p,
.cpm-course-card p,
.cpm-news-row p {
  font-weight: 400;
}

.cpm-course-card__meta-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow-wrap: normal;
}

.cpm-course-catalog-grid .cpm-course-card__footer strong {
  font-size: 22px;
  font-weight: 650;
}

@media (max-width: 900px) {
  .cpm-header__inner {
    min-height: 61px;
  }

  .cpm-logo img {
    width: 154px;
    min-width: 154px;
  }

  .cpm-ui26-hero__inner {
    padding-bottom: 76px;
  }

  .cpm-ui26-quick-wrap {
    margin-top: -24px;
  }

  .cpm-ui26-quick {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
  }

  .cpm-ui26-quick__item {
    height: auto;
    min-height: 104px;
    gap: 10px;
    border-left: 0;
    border-radius: 7px;
    padding: 10px;
  }

  .cpm-ui26-quick__item:nth-child(odd) {
    border-right: 0;
  }

  .cpm-ui26-quick__item:nth-child(n + 3) {
    border-top: 0;
  }

  .cpm-ui26-quick strong,
  .cpm-ui26-quick small {
    font-size: 14px;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row,
  .cpm-archive-head--tramites .cpm-archive-head__row--with-action {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action > div {
    flex: 1 1 auto;
    min-width: 0;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action > .cpm-button {
    display: none;
  }

  .cpm-stat-full {
    display: none;
  }

  .cpm-stat-short {
    display: inline;
  }
}

/* V10092: terminal typography normalization.
   The WordPress stack already uses the same Inter assets as the accepted
   public reference. The remaining visual mismatch came from older cascade
   layers mixing dense line-height, negative tracking and broad 700 weights.
   Keep this as the final type layer so pages do not drift by template. */
html,
body,
button,
input,
select,
textarea {
  font-family: Inter, "Inter Fallback", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body,
main,
.cpm-header,
.cpm-header *,
.cpm-ui26-hero,
.cpm-section-hero,
.cpm-archive-head,
.cpm-post-single,
.cpm-activity-hero,
.cpm-prof-single,
.psicole-directory--ui26 {
  letter-spacing: 0;
}

.cpm-ui26-kicker p,
.cpm-section-label,
.cpm-eyebrow,
.cpm-post-single__category,
.cpm-activity-hero__eyebrow,
.cpm-prof-single__eyebrow {
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1 {
  font-weight: 650;
  letter-spacing: 0;
}

.cpm-ui26-service h3,
.cpm-service-card h3 {
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
  letter-spacing: 0;
}

.cpm-ui26-services .cpm-ui26-service h3,
.cpm-ui26-quick .cpm-ui26-quick__item strong,
.cpm-course-catalog-grid .cpm-course-card h2 {
  letter-spacing: 0;
}

.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3 {
  min-height: 20px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
}

.psicole-directory--ui26 .psicole-prof-card__avatar,
.cpm-profile-avatar,
.cpm-prof-single__avatar {
  font-weight: 600;
  letter-spacing: 0;
}

/* V10093: softer Inter scale.
   The accepted composition is stable, but the rendered WordPress type still
   reads heavier than the PSICOLE UI reference. This final layer reduces visual
   mass without changing layout, routes or editable WordPress content. */
:root {
  --cpm-weight-ui: 520;
  --cpm-weight-nav-soft: 560;
  --cpm-weight-title-soft: 580;
  --cpm-weight-display-soft: 620;
}

.cpm-header .cpm-nav a,
.cpm-login-link,
.cpm-search-trigger strong {
  font-weight: var(--cpm-weight-nav-soft);
  letter-spacing: 0;
}

.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  font-weight: var(--cpm-weight-nav-soft);
}

.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-news-hero h1 {
  font-weight: var(--cpm-weight-display-soft);
  letter-spacing: 0;
}

.cpm-ui26-kicker p,
.cpm-section-label,
.cpm-eyebrow,
.cpm-post-single__category,
.cpm-activity-hero__eyebrow,
.cpm-prof-single__eyebrow,
.cpm-profile-card__eyebrow,
.cpm-post-row__category,
.cpm-news-row__meta,
.cpm-course-card__badge,
.cpm-course-card__capacity {
  font-size: 16px;
  font-weight: var(--cpm-weight-nav-soft);
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.cpm-ui26-service h3,
.cpm-service-card h3,
.cpm-tramite-card h3,
.cpm-course-card h2,
.cpm-course-catalog-grid .cpm-course-card h2,
.cpm-post-row h2,
.cpm-post-row h3,
.cpm-news-row__title,
.cpm-profile-card h2,
.cpm-profile-card h3 {
  font-weight: var(--cpm-weight-title-soft);
  letter-spacing: 0;
}

.cpm-ui26-quick .cpm-ui26-quick__item strong,
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3 {
  font-weight: var(--cpm-weight-title-soft);
}

.psicole-directory--ui26 .psicole-prof-card__meta,
.psicole-directory--ui26 .psicole-prof-card p,
.psicole-directory__meta,
.psicole-directory__meta strong,
.psicole-directory input,
.psicole-directory select {
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
}

.psicole-directory--ui26 .psicole-prof-card__link,
.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory--ui26 .psicole-prof-card__verified,
.cpm-post-row__link,
.cpm-news-row a,
.cpm-tramite-card__cta {
  font-weight: var(--cpm-weight-nav-soft);
}

.cpm-ui26-services .cpm-ui26-service h3,
.cpm-tramites-grid .cpm-tramite-card h3,
.cpm-catalog-body .cpm-course-catalog-grid .cpm-course-card h2,
.cpm-news-page .cpm-post-row h2,
.cpm-news-page .cpm-post-row h3,
.cpm-profile-card .cpm-profile-card__eyebrow {
  font-weight: var(--cpm-weight-title-soft);
  letter-spacing: 0;
}

/* V10094: restore the accepted UI26 micro-rhythm.
   V10093 intentionally softened weights, but it also flattened the institutional
   kicker and replaced mobile stat labels with shorthand. Those two differences
   are visible in the first viewport and make localhost feel less aligned with
   the accepted public demo. */
.cpm-ui26-kicker p {
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cpm-ui26-hero .cpm-ui26-kicker p {
  max-width: 38ch;
  overflow-wrap: normal;
}

.cpm-ui26-stats .cpm-stat-full {
  display: inline;
}

.cpm-ui26-stats .cpm-stat-short {
  display: none;
}

@media (max-width: 900px) {
  .cpm-ui26-hero .cpm-ui26-kicker p {
    max-width: 34ch;
    overflow-wrap: anywhere;
  }

  .cpm-ui26-hero__copy {
    overflow: visible;
  }

  .cpm-ui26-stats .cpm-stat-full {
    display: none;
  }

  .cpm-ui26-stats .cpm-stat-short {
    display: inline;
  }

  .cpm-ui26-stats div {
    min-height: 72px;
    overflow: visible;
  }

  .cpm-ui26-stats dd {
    min-height: 28px;
    overflow: visible;
    overflow-wrap: normal;
    word-break: normal;
  }

  .psicole-directory--ui26 .psicole-directory__meta span[data-psicole-count-number],
  .psicole-directory--ui26 .psicole-directory__meta span[data-psicole-count-label] {
    display: inline;
  }

  .psicole-directory--ui26 [data-psicole-page-status] {
    display: none;
  }
}

/* V10095: strict typography parity lock.
   The final audit showed the local WordPress cascade was not using the same
   text mass as the accepted public demo. Keep this as the last typographic
   layer: it restores the UI26/PSICOLE Inter rhythm without reintroducing the
   old decorative underlines or layout changes. */
html,
body,
button,
input,
select,
textarea,
.cpm-site,
.psicole-directory--ui26 {
  font-family: Inter, "Inter Fallback", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  font-synthesis-weight: none;
}

.cpm-header .cpm-nav a,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-search-trigger strong,
.cpm-header .cpm-actions .cpm-button,
.cpm-topbar,
.cpm-topbar a {
  font-weight: 600;
  letter-spacing: 0;
}

.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-news-hero h1,
.cpm-page-title,
.cpm-section__title {
  font-weight: 650;
  letter-spacing: -0.014em;
}

.cpm-ui26-service h3,
.cpm-service-card h3,
.cpm-tramite-card h3,
.cpm-course-card h2,
.cpm-course-catalog-grid .cpm-course-card h2,
.cpm-post-row h2,
.cpm-post-row h3,
.cpm-news-row__title,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-ui26-quick .cpm-ui26-quick__item strong,
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a {
  font-weight: 600;
  letter-spacing: 0;
}

.psicole-directory--ui26 .psicole-prof-card__link,
.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory--ui26 .psicole-directory__meta strong,
.cpm-post-row__link,
.cpm-news-row a,
.cpm-tramite-card__cta,
.cpm-course-card__footer a {
  font-weight: 600;
  letter-spacing: 0;
}

.cpm-header .cpm-nav a::before,
.cpm-header .cpm-nav a::after,
.cpm-header .cpm-nav a.is-active::before,
.cpm-header .cpm-nav a.is-active::after,
.cpm-header .cpm-nav .current-menu-item > a::before,
.cpm-header .cpm-nav .current-menu-item > a::after {
  border: 0;
  box-shadow: none;
  content: none;
  display: none;
}

/* V10096: visual audit weight budget.
   The strict browser QA blocks any visible text above 650 because it reads
   heavy in this WordPress rendering. Preserve the accepted hierarchy, but keep
   titles inside the approved mass budget. */
.cpm-site h1,
.cpm-site .cpm-section__title,
.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-news-hero h1,
.cpm-page-title {
  font-weight: 650;
  letter-spacing: -0.014em;
}

.cpm-header .cpm-header__main .cpm-nav a,
.cpm-header .cpm-header__main .cpm-actions .cpm-button,
.cpm-header .cpm-header__main .cpm-login-link,
.cpm-header .cpm-header__main .cpm-search-trigger,
.cpm-header .cpm-header__main .cpm-search-trigger strong {
  font-weight: 600;
}

.cpm-ui26-services .cpm-ui26-service h3,
.cpm-tramites-grid .cpm-tramite-card h3,
.cpm-catalog-body .cpm-course-catalog-grid .cpm-course-card h2,
.cpm-news-page .cpm-post-row h2,
.cpm-news-page .cpm-post-row h3,
.cpm-profile-card .cpm-profile-card__eyebrow,
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a {
  font-weight: 600;
  letter-spacing: 0;
}

/* V10097: typography finesse.
   WordPress renders the same Inter family with more visual weight than the
   reference experience. This terminal layer keeps the hierarchy but removes
   the heavy bold feel from navigation, cards, chips and long-form singles. */
html,
body,
button,
input,
select,
textarea,
.cpm-site,
.psicole-directory--ui26 {
  font-family: Inter, "Inter Fallback", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  font-synthesis-weight: none;
  text-rendering: geometricPrecision;
}

.cpm-site h1,
.cpm-site .cpm-section__title,
.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-news-hero h1,
.cpm-page-title,
.cpm-post-single h1,
.cpm-activity-cover h1 {
  font-weight: 620;
  letter-spacing: -0.01em;
}

.cpm-header .cpm-header__main .cpm-nav a,
.cpm-header .cpm-header__main .cpm-actions .cpm-button,
.cpm-header .cpm-header__main .cpm-login-link,
.cpm-header .cpm-header__main .cpm-search-trigger,
.cpm-header .cpm-header__main .cpm-search-trigger strong,
.cpm-header .cpm-nav a,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-search-trigger strong,
.cpm-header .cpm-actions .cpm-button,
.cpm-button,
.cpm-ui26-search button,
.cpm-login-link {
  font-weight: 560;
  letter-spacing: 0;
}

.cpm-ui26-services .cpm-ui26-service h3,
.cpm-ui26-service h3,
.cpm-service-card h3,
.cpm-tramites-grid .cpm-tramite-card h3,
.cpm-tramite-card h3,
.cpm-catalog-body .cpm-course-catalog-grid .cpm-course-card h2,
.cpm-course-card h2,
.cpm-course-catalog-grid .cpm-course-card h2,
.cpm-news-page .cpm-post-row h2,
.cpm-news-page .cpm-post-row h3,
.cpm-post-row h2,
.cpm-post-row h3,
.cpm-news-row__title,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-profile-card .cpm-profile-card__eyebrow,
.cpm-ui26-quick .cpm-ui26-quick__item strong,
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a {
  font-weight: 560;
  letter-spacing: 0;
}

main strong,
.cpm-profile-card strong,
.cpm-post-single__content strong,
.cpm-activity-content strong,
.cpm-prof-single strong,
.cpm-post-single__meta span,
.cpm-post-row__link,
.cpm-news-row a,
.cpm-tramite-card__cta,
.cpm-course-card__footer a {
  font-weight: 560;
}

.cpm-chip-row span,
.cpm-verified-badge,
.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory--ui26 .psicole-directory__meta strong {
  font-weight: 500;
}

.cpm-ui26-search button,
.cpm-button,
.cpm-button--primary,
.cpm-login-link,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-post-row__link,
.cpm-news-row a {
  font-variation-settings: "wght" 500;
  font-weight: 500;
}

/* V10098: WordPress native route polish.
   Search, category and 404 pages should not fall back to raw archive output. */
.cpm-section__header--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  align-items: end;
  gap: clamp(28px, 5vw, 72px);
  margin-bottom: clamp(32px, 5vw, 56px);
}

.cpm-section__header--split h1,
.cpm-error-page h1 {
  max-width: 880px;
}

.cpm-search-results .cpm-news-search,
.cpm-error-page .cpm-news-search {
  width: 100%;
  max-width: 460px;
}

.cpm-news-hero--compact {
  padding-block: clamp(72px, 8vw, 112px);
}

.cpm-news-hero--compact .cpm-news-hero__grid {
  grid-template-columns: minmax(0, 760px);
}

.cpm-post-row--empty {
  min-height: 220px;
  align-items: center;
}

.cpm-error-page {
  min-height: 64vh;
  display: grid;
  align-items: center;
}

.cpm-error-page__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  align-items: start;
  gap: clamp(36px, 6vw, 92px);
}

.cpm-error-page__grid > div > p:not(.cpm-eyebrow) {
  max-width: 680px;
  color: var(--cpm-muted);
  font-size: 20px;
  line-height: 1.55;
  margin-bottom: 28px;
}

.cpm-error-page__links {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--cpm-border);
}

.cpm-error-page__links a {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--cpm-border);
  color: var(--cpm-ink);
  font-weight: 560;
  text-decoration: none;
}

.cpm-error-page__links a:hover,
.cpm-error-page__links a:focus-visible {
  color: var(--cpm-purple);
  transform: translateX(3px);
}

@media (max-width: 760px) {
  .cpm-section__header--split,
  .cpm-error-page__grid {
    grid-template-columns: 1fr;
  }

  .cpm-search-results .cpm-news-search,
  .cpm-error-page .cpm-news-search {
    max-width: none;
  }

  .cpm-error-page {
    min-height: auto;
  }
}

/* V10100: strict visual QA fixes.
   Keep the accepted UI26 composition, but remove measurable defects:
   oversized hero image, false empty links, and residual undersized UI text. */
.cpm-ui26-hero {
  min-height: 0;
}

.cpm-ui26-hero__overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(66, 30, 109, 0.94) 0%, rgba(66, 30, 109, 0.9) 53%, rgba(66, 30, 109, 0.74) 100%);
}

.cpm-ui26-hero__media {
  z-index: 2;
  inset: 96px max(28px, calc((100vw - 1180px) / 2)) auto auto;
  width: min(39vw, 520px);
  height: 360px;
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 58px rgba(15, 23, 42, 0.28);
}

.cpm-ui26-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
}

.cpm-ui26-hero__rule {
  z-index: 3;
}

.cpm-ui26-hero__inner {
  z-index: 4;
  min-height: 552px;
  padding-top: 78px;
  padding-right: min(45vw, 600px);
  padding-bottom: 86px;
}

.cpm-ui26-hero__copy {
  max-width: 640px;
}

.cpm-ui26-hero h1 {
  max-width: 640px;
  font-size: 60px;
  line-height: 1.02;
}

.cpm-ui26-hero__lead {
  font-size: 20px;
  line-height: 1.55;
}

.cpm-header .cpm-nav a,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-search-trigger strong,
.cpm-header .cpm-search-trigger kbd,
.cpm-header .cpm-actions .cpm-button,
.cpm-ui26-search input,
.cpm-ui26-search button,
.cpm-ui26-hero .cpm-button,
.cpm-button,
.cpm-login-link,
.cpm-post-row__link,
.cpm-news-row a,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-verified-badge,
.cpm-chip-row span,
.cpm-eyebrow,
.cpm-ui26-kicker p,
.cpm-ui26-news-card figcaption,
.cpm-ui26-news-card time,
.cpm-mobile-dock a,
.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory--ui26 .psicole-directory__meta,
.psicole-directory--ui26 .psicole-directory__meta strong,
.psicole-directory--ui26 select,
.psicole-directory--ui26 input,
.psicole-directory--ui26 button {
  font-size: 16px;
}

.cpm-topbar__inner {
  column-gap: clamp(24px, 5vw, 96px);
  font-size: 13px;
  justify-content: space-between;
}

.cpm-topbar__group {
  flex: 0 1 auto;
  gap: clamp(14px, 2vw, 24px);
}

.cpm-topbar__group--right {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.cpm-topbar__inner span,
.cpm-topbar__inner a {
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1;
}

.cpm-mobile-dock span {
  font-size: 20px;
}

.cpm-document-table__row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) minmax(180px, 0.45fr);
  align-items: center;
  gap: 20px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--cpm-border);
  color: inherit;
}

.cpm-document-table__row:last-child {
  border-bottom: 0;
}

.cpm-document-table__row span {
  width: max-content;
  border-radius: 999px;
  background: #eef6ff;
  padding: 6px 12px;
  color: var(--cpm-blue);
  font-weight: 600;
}

.cpm-document-table__row strong {
  color: var(--cpm-ink);
  font-size: 17px;
  font-weight: 560;
}

.cpm-document-table__row em {
  color: var(--cpm-muted);
  font-size: 16px;
  font-style: normal;
}

@media (max-width: 980px) {
  .cpm-ui26-hero__media {
    position: relative;
    inset: auto;
    width: calc(100% - 40px);
    height: 260px;
    margin: 22px auto 0;
  }

  .cpm-ui26-hero__inner {
    min-height: 0;
    padding: 34px 0 54px;
  }

  .cpm-ui26-hero__copy {
    max-width: none;
  }

  .cpm-ui26-hero h1 {
    font-size: 44px;
    line-height: 1.06;
  }
}

@media (max-width: 640px) {
  .cpm-ui26-hero__media {
    width: calc(100% - 28px);
    height: 218px;
    margin-top: 16px;
    border-radius: 14px;
  }

  .cpm-ui26-hero h1 {
    font-size: 40px;
  }

  .cpm-document-table__row {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 18px 0;
  }
}

/* V10101: finish visible small-text debt in operational screens. */
.cpm-tramite-card li,
.cpm-tramite-card li a,
.cpm-tramite-card ul a,
.psicole-directory--ui26 .psicole-prof-card,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a,
.psicole-directory--ui26 .psicole-prof-card p,
.psicole-directory--ui26 .psicole-prof-card dl,
.psicole-directory--ui26 .psicole-prof-card dt,
.psicole-directory--ui26 .psicole-prof-card dd,
.psicole-directory--ui26 .psicole-prof-card__fact,
.psicole-directory--ui26 .psicole-prof-card__link,
.psicole-directory--ui26 .psicole-prof-card__avatar,
.psicole-directory--ui26 .psicole-directory__count,
.psicole-directory--ui26 .psicole-directory__page,
.psicole-directory--ui26 .psicole-directory__toolbar span {
  font-size: 16px;
}

.psicole-directory select,
.psicole-directory input,
.psicole-directory button,
.psicole-directory__meta,
.psicole-directory__meta span,
.psicole-directory__select select,
.psicole-directory__count,
.psicole-directory__count span {
  font-size: 16px;
}

.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a {
  line-height: 1.22;
}

.psicole-directory--ui26 .psicole-prof-card__avatar {
  font-weight: 600;
}

/* V10102: override higher-specificity directory toolbar rules without important. */
.psicole-directory.psicole-directory--ui26 .psicole-directory__filters .psicole-directory__select select,
.psicole-directory.psicole-directory--ui26 .psicole-directory__search input,
.psicole-directory.psicole-directory--ui26 [data-psicole-count-number],
.psicole-directory.psicole-directory--ui26 [data-psicole-page-status] {
  font-size: 16px;
}

/* V10105: restore production-equivalent hero composition.
   The image belongs to the hero atmosphere, not to a separate card. */
.cpm-ui26-hero {
  min-height: 0;
}

.cpm-ui26-hero__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cpm-ui26-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.777;
}

.cpm-ui26-hero__overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(66, 30, 109, 0.95) 0%, rgba(66, 30, 109, 0.91) 48%, rgba(66, 30, 109, 0.8) 100%);
}

.cpm-ui26-hero__rule {
  z-index: 2;
}

.cpm-ui26-hero__inner {
  z-index: 3;
  min-height: 586px;
  padding-top: 72px;
  padding-right: 0;
  padding-bottom: 78px;
}

.cpm-ui26-hero__copy {
  max-width: 672px;
}

.cpm-ui26-stats {
  max-width: 672px;
}

@media (max-width: 980px) {
  .cpm-ui26-hero__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
  }

  .cpm-ui26-hero__inner {
    min-height: 0;
    padding-top: 48px;
    padding-bottom: 58px;
  }
}

/* V10106: first-viewport parity with production.
   Keep the richer hero, but fit title, search, actions and stats into the
   same visual rhythm instead of pushing stats below the fold. */
.cpm-ui26-hero__inner {
  min-height: 620px;
  padding-top: 62px;
  padding-bottom: 58px;
}

.cpm-ui26-hero__copy,
.cpm-ui26-hero h1 {
  max-width: 740px;
}

.cpm-ui26-hero h1 {
  font-size: 58px;
  line-height: 1.02;
}

.cpm-ui26-hero__lead {
  max-width: 650px;
}

.cpm-ui26-stats {
  max-width: 660px;
  margin-top: 22px;
  padding-top: 18px;
}

.cpm-ui26-stats div::before {
  top: -22px;
}

.cpm-ui26-stats dd {
  font-size: 16px;
  line-height: 1.25;
}

@media (max-width: 980px) {
  .cpm-ui26-hero__inner {
    min-height: 0;
    padding-top: 42px;
    padding-bottom: 52px;
  }

  .cpm-ui26-hero h1 {
    font-size: 42px;
  }
}

/* V10109: strict visual QA closure.
   Keep the accepted action band and directory behavior, but remove the last
   sub-16px text and avoid a mobile hero background being reported as a giant
   content image. */
.cpm-ui26-quick .cpm-ui26-quick__item strong,
.cpm-ui26-quick .cpm-ui26-quick__item small {
  font-size: 16px;
  line-height: 1.35;
}

.psicole-directory.psicole-directory--ui26 .psicole-directory__pagination,
.psicole-directory.psicole-directory--ui26 .psicole-directory__pagination button,
.psicole-directory.psicole-directory--ui26 .psicole-directory__pagination span {
  font-size: 16px;
  line-height: 1.35;
}

.psicole-directory.psicole-directory--ui26 .psicole-directory__pagination button {
  min-height: 40px;
  padding-inline: 14px;
}

.cpm-ui26-search button,
.cpm-ui26-autogestion .cpm-button,
.cpm-ui26-directory-preview .cpm-button {
  font-size: 16px;
  line-height: 1.25;
}

@media (max-width: 980px) {
  .cpm-ui26-hero__media {
    height: min(100%, 620px);
  }
}

/* V10111: typography optical parity.
   Same Inter family as production, but lighter optical weights so WordPress
   does not read as heavy/bold in navigation, cards and operational UI. */
.cpm-header .cpm-nav a,
.cpm-header .cpm-actions .cpm-button,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger {
  font-weight: 600;
  font-variation-settings: normal;
}

.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  font-weight: 600;
  font-variation-settings: normal;
}

.cpm-ui26-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-page-title {
  font-weight: 600;
  font-variation-settings: "wght" 600;
}

.cpm-section__title,
.cpm-card-title,
.cpm-tramite-card h3,
.cpm-course-card h2,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-post-row h2,
.cpm-post-row h2 a,
.cpm-ui26-directory-preview h3,
.cpm-ui26-autogestion h2 {
  font-weight: 560;
  font-variation-settings: "wght" 560;
}

.cpm-ui26-quick .cpm-ui26-quick__item strong,
.cpm-button,
.cpm-button--primary,
.cpm-header .cpm-actions .cpm-button--primary,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-login-link,
.cpm-ui26-hero .cpm-button,
.cpm-ui26-search button,
.cpm-ui26-autogestion .cpm-button,
.cpm-ui26-directory-preview .cpm-button,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-post-row__link {
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

main strong,
.cpm-profile-card strong,
.cpm-chip-row span,
.cpm-verified-badge,
.cpm-post-single__meta span,
.cpm-meta-pill {
  font-weight: 560;
  font-variation-settings: "wght" 560;
}

.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3 a,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__link {
  font-weight: 560;
  font-variation-settings: "wght" 560;
}

.psicole-directory.psicole-directory--ui26 .psicole-prof-card__avatar,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__tags span,
.psicole-directory.psicole-directory--ui26 .psicole-directory__pagination button {
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

/* V10113: production parity closure.
   Match the accepted public header and title rhythm: compact 14px nav/actions,
   32px header buttons, and the same home display scale as psiweb20 production. */
.cpm-header .cpm-topbar,
.cpm-header .cpm-topbar *,
.cpm-header .cpm-topbar__inner span,
.cpm-header .cpm-topbar__inner a {
  font-size: 12px;
  line-height: 16px;
  font-weight: 400;
  font-variation-settings: normal;
}

.cpm-header .cpm-header__main .cpm-nav a,
.cpm-header .cpm-nav a {
  min-height: 36px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  font-variation-settings: normal;
}

.cpm-header .cpm-header__main .cpm-nav a.is-active,
.cpm-header .cpm-header__main .cpm-nav .current-menu-item > a,
.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  font-weight: 600;
  font-variation-settings: normal;
}

.cpm-header .cpm-header__main .cpm-actions .cpm-button,
.cpm-header .cpm-header__main .cpm-actions .cpm-button--primary,
.cpm-header .cpm-header__main .cpm-login-link,
.cpm-header .cpm-header__main .cpm-search-trigger,
.cpm-header .cpm-header__main .cpm-search-trigger strong,
.cpm-header .cpm-actions .cpm-button,
.cpm-header .cpm-actions .cpm-button--primary,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-search-trigger strong {
  min-height: 32px;
  height: 32px;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  font-variation-settings: normal;
}

@media (min-width: 981px) {
  body.home .cpm-ui26-hero h1,
  .home .cpm-ui26-hero h1 {
    max-width: 680px;
    font-size: 52px;
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 700;
    font-variation-settings: normal;
  }
}

.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-page-title {
  font-weight: 700;
  font-variation-settings: normal;
}

/* V10115: optical typography correction.
   Keep the accepted public home/header rhythm, but remove the heavy WordPress
   feel from internal screens, cards and operational controls. */
.cpm-site,
.cpm-site * {
  font-family: Inter, "Inter Fallback";
  font-optical-sizing: auto;
  font-synthesis: none;
  font-synthesis-weight: none;
}

.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-page-title,
.cpm-section__header--split h1,
.cpm-error-page h1,
.cpm-post-single h1,
.cpm-activity-cover h1 {
  font-weight: 600;
  font-variation-settings: "wght" 600;
  letter-spacing: -0.018em;
  text-wrap: balance;
}

.cpm-section__title,
.cpm-card-title,
.cpm-tramite-card h3,
.cpm-course-card h2,
.cpm-course-catalog-grid .cpm-course-card h2,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-post-row h2,
.cpm-post-row h2 a,
.cpm-ui26-directory-preview h3,
.cpm-ui26-autogestion h2,
.cpm-document-table__row strong {
  font-weight: 560;
  font-variation-settings: "wght" 560;
  letter-spacing: -0.01em;
}

.cpm-button,
.cpm-button--primary,
.cpm-ui26-hero .cpm-button,
.cpm-ui26-search button,
.cpm-ui26-autogestion .cpm-button,
.cpm-ui26-directory-preview .cpm-button,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-post-row__link,
.cpm-header .cpm-search-trigger,
.cpm-header .cpm-login-link {
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

main strong,
.cpm-profile-card strong,
.cpm-chip-row span,
.cpm-verified-badge,
.cpm-post-single__meta span,
.cpm-meta-pill,
.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory--ui26 .psicole-prof-card__tags span {
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3 a,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__link {
  font-weight: 560;
  font-variation-settings: "wght" 560;
  letter-spacing: -0.01em;
}

.cpm-site p,
.cpm-site li,
.cpm-site dd,
.cpm-site address,
.cpm-post-single__content,
.cpm-activity-content,
.cpm-prof-single__summary {
  font-weight: 400;
  letter-spacing: 0;
  text-wrap: pretty;
}

@media (min-width: 981px) {
  body.home .cpm-ui26-hero h1,
  .home .cpm-ui26-hero h1 {
    font-weight: 700;
    font-variation-settings: normal;
    letter-spacing: -0.025em;
  }
}

/* V10116: strict visual gate correction.
   The local WordPress build should not inherit the heavier app-shell feel on
   public marketing surfaces. Keep Inter, but bring weights closer to the
   cleaner PSICOLE public rhythm. */
body.home .cpm-ui26-hero h1,
body.home main .cpm-ui26-hero h1,
.home .cpm-ui26-hero h1,
.home main .cpm-ui26-hero h1 {
  font-weight: 600;
  font-variation-settings: "wght" 600;
  letter-spacing: -0.02em;
}

.cpm-button,
.cpm-button--primary,
.cpm-header .cpm-button,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger,
.cpm-ui26-search button,
.cpm-post-row__link,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.psicole-directory__load-more,
.psicole-prof-card__link {
  font-weight: 500;
  font-variation-settings: "wght" 500;
}

/* V10118: directory card readability.
   Professional names are primary content; never hide them behind ellipses.
   Keep a compact PSICOLE card rhythm while allowing two balanced lines. */
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3 a {
  display: block;
  min-height: 2.55em;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: anywhere;
}

.psicole-directory--ui26 .psicole-prof-card__head {
  align-items: flex-start;
}

.psicole-directory--ui26 .psicole-prof-card__verified {
  align-self: flex-start;
}

/* V10119: strict visual follow-up.
   Remove the remaining hidden text/clamp debt and prevent the mobile dock
   from covering late-card CTAs. This layer keeps the accepted V10091 rhythm
   and only touches defects verified by screenshot/DOM audits. */
.cpm-course-catalog-grid .cpm-course-card p,
.cpm-course-card p {
  display: block;
  max-height: none;
  overflow: visible;
  text-overflow: clip;
  -webkit-line-clamp: unset;
  line-clamp: unset;
}

.cpm-course-card__meta-row span {
  display: inline;
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.cpm-course-card__meta {
  align-items: flex-start;
}

.cpm-course-card__meta-row {
  align-items: flex-start;
}

.cpm-ui26-search input,
.cpm-tramites-search input,
.psicole-directory--ui26 .psicole-directory__search input,
.cpm-news-search input {
  text-overflow: clip;
}

.cpm-archive-head--tramites .cpm-archive-head__row--with-action > .cpm-button {
  display: inline-flex;
  white-space: nowrap;
}

.cpm-ui26-stats dd,
.cpm-ui26-stats .cpm-stat-full,
.cpm-ui26-stats .cpm-stat-short {
  display: inline;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

@media (max-width: 900px) {
  .cpm-ui26-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cpm-ui26-stats dd {
    font-size: 16px;
    line-height: 1.22;
    text-wrap: balance;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
  }

  .cpm-archive-head--tramites .cpm-archive-head__icon {
    flex: 0 0 48px;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action > div {
    flex: 1 1 calc(100% - 64px);
    min-width: 0;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action > .cpm-button {
    flex: 0 0 100%;
    justify-self: start;
    margin-top: 10px;
  }

  .cpm-ui26-search input::placeholder,
  .cpm-tramites-search input::placeholder,
  .psicole-directory--ui26 .psicole-directory__search input::placeholder,
  .cpm-news-search input::placeholder {
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  .cpm-site {
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }

  .cpm-ui26-hero__inner,
  .cpm-ui26-hero__copy {
    overflow: visible;
  }

  body.home .cpm-ui26-hero h1,
  body.home main .cpm-ui26-hero h1,
  .home .cpm-ui26-hero h1,
  .home main .cpm-ui26-hero h1 {
    font-size: 36px;
    line-height: 1.08;
    letter-spacing: -0.02em;
  }

  .cpm-ui26-hero__inner {
    padding-bottom: 52px;
  }

  .cpm-ui26-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .cpm-ui26-search input {
    min-width: 0;
  }

  .cpm-ui26-search button {
    min-width: 84px;
    padding-inline: 16px;
  }

  .cpm-ui26-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .cpm-ui26-stats div {
    display: block;
    min-width: 0;
    padding: 0;
    border-top: 0;
  }

  .cpm-ui26-stats dt,
  .cpm-ui26-stats dd {
    min-width: 0;
    overflow: visible;
    white-space: normal;
    text-align: left;
  }

  .cpm-ui26-stats dt {
    font-size: 24px;
    line-height: 1;
  }

  .cpm-ui26-stats dd {
    font-size: 16px;
    line-height: 1.16;
    overflow-wrap: anywhere;
  }

  .cpm-mobile-dock {
    z-index: 80;
  }

  .psicole-directory--ui26 .psicole-directory__grid {
    gap: 14px;
  }

  .psicole-directory--ui26 .psicole-prof-card {
    min-height: 0;
    padding: 18px;
  }

  .psicole-directory--ui26 .psicole-prof-card__title,
  .psicole-directory--ui26 .psicole-prof-card h3,
  .psicole-directory--ui26 .psicole-prof-card h3 a {
    min-height: 0;
    font-size: 16px;
    line-height: 1.22;
  }

  .psicole-directory--ui26 .psicole-prof-card__actions {
    margin-top: 14px;
  }

  .psicole-directory--ui26 .psicole-prof-card__link {
    min-height: 42px;
  }

  .cpm-course-catalog-grid .cpm-course-card,
  .cpm-contact-actions,
  .cpm-profile-grid,
  .cpm-section:last-of-type {
    margin-bottom: 28px;
  }
}

.cpm-activity-speakers span,
.cpm-activity-speakers > div > span {
  font-weight: 600;
  font-variation-settings: "wght" 600;
}

/* V10124: optical typography and surface lock.
   This is a deliberate final layer, not a new visual direction: soften the
   WordPress rendering so it keeps the accepted public composition without the
   over-bold/admin feel caused by accumulated 650/700 overrides. */
html,
body {
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
  font-variation-settings: normal;
}

.cpm-header .cpm-nav a,
.cpm-header .cpm-actions a,
.cpm-header .cpm-actions button,
.cpm-topbar,
.cpm-login-link,
.cpm-search-trigger,
.cpm-menu-toggle {
  font-weight: 500;
  font-variation-settings: "wght" 520;
  letter-spacing: -0.002em;
}

.cpm-header .cpm-nav a {
  font-size: 15px;
  line-height: 20px;
}

.cpm-header .cpm-nav a:hover,
.cpm-header .cpm-nav a:focus-visible,
.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  box-shadow: none;
  border-bottom: 0;
}

.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  background: color-mix(in srgb, var(--cpm-purple) 8%, transparent);
  color: var(--cpm-purple);
}

.cpm-button,
.cpm-ui26-search button,
.cpm-tramite-card__cta,
.cpm-course-card__footer a,
.cpm-post-row__link,
.cpm-link,
.psicole-directory--ui26 .psicole-prof-card__link,
.cpm-prof-single__actions .cpm-button,
.cpm-profile-card .cpm-button {
  font-size: 16px;
  font-weight: 500;
  font-variation-settings: "wght" 520;
  letter-spacing: 0;
}

.cpm-login-link {
  font-size: 15px;
  font-weight: 500;
  font-variation-settings: "wght" 520;
  letter-spacing: 0;
}

.cpm-button--primary,
.cpm-header .cpm-actions .cpm-button--primary {
  font-weight: 560;
  font-variation-settings: "wght" 560;
}

.cpm-ui26-hero h1,
.cpm-news-hero h1,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.psicole-directory-hero h1 {
  font-weight: 600;
  font-variation-settings: "wght" 600;
  letter-spacing: -0.024em;
  text-wrap: balance;
}

.cpm-section__title,
.cpm-tramites-title,
.cpm-news-list h2,
.cpm-post-row h2,
.cpm-course-card h2,
.cpm-tramite-card h3,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-post-sidebox h2,
.cpm-content h2,
.cpm-content h3 {
  font-weight: 560;
  font-variation-settings: "wght" 560;
  letter-spacing: -0.012em;
  text-wrap: balance;
}

main strong,
.cpm-profile-card strong,
.cpm-chip-row span,
.cpm-verified-badge,
.cpm-post-single__meta span,
.cpm-course-card__badge,
.cpm-course-card__capacity,
.cpm-filter-count,
.psicole-directory--ui26 .psicole-prof-card__verified,
.psicole-directory--ui26 .psicole-prof-card__chip {
  font-weight: 500;
  font-variation-settings: "wght" 520;
}

.cpm-ui26-kicker p,
.cpm-eyebrow,
.cpm-profile-card__eyebrow,
.cpm-post-row__category,
.cpm-news-hero__label,
.cpm-catalog-head__icon + div > p:first-child {
  font-weight: 500;
  font-variation-settings: "wght" 520;
  letter-spacing: 0.045em;
}

.cpm-ui26-quick {
  border-color: rgba(226, 232, 240, 0.74);
  box-shadow:
    0 1px 1px rgba(17, 17, 17, 0.035),
    0 6px 16px rgba(17, 17, 17, 0.032);
}

.cpm-ui26-quick__item {
  border-radius: 6px;
}

.cpm-ui26-quick__icon,
.cpm-archive-head__icon,
.cpm-catalog-head__icon,
.cpm-tramite-card__icon,
.cpm-profile-card__icon,
.cpm-contact-item__icon,
.psicole-directory--ui26 .psicole-prof-card__avatar {
  border-radius: 8px;
}

.cpm-ui26-quick strong,
.cpm-ui26-service h3,
.cpm-ui26-news-card h3,
.cpm-ui26-course h3,
.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a {
  font-weight: 560;
  font-variation-settings: "wght" 560;
  letter-spacing: -0.008em;
}

.cpm-ui26-quick small,
.cpm-ui26-service p,
.cpm-ui26-news-card p,
.cpm-ui26-course p,
.cpm-tramite-card p,
.cpm-tramite-card li,
.cpm-course-card p,
.psicole-directory--ui26 .psicole-prof-card p,
.psicole-directory--ui26 .psicole-prof-card__meta,
.cpm-profile-card p,
.cpm-profile-card li,
.cpm-post-single__article,
.cpm-content {
  font-weight: 400;
  font-variation-settings: normal;
  letter-spacing: 0;
}

.cpm-profile-card--primary,
.cpm-profile-card--contact,
.cpm-post-single__article,
.cpm-post-sidebox,
.cpm-course-card,
.cpm-tramite-card,
.psicole-directory--ui26 .psicole-prof-card {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.035),
    0 10px 24px rgba(15, 23, 42, 0.038);
}

.cpm-profile-card--primary,
.psicole-directory--ui26 .psicole-prof-card,
.cpm-post-single__article {
  border-top-width: 1px;
}

.cpm-profile-card--primary {
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--cpm-purple) 38%, transparent),
    0 1px 2px rgba(15, 23, 42, 0.035),
    0 10px 24px rgba(15, 23, 42, 0.038);
}

.cpm-post-single__hero,
.cpm-archive-head,
.cpm-catalog-head,
.cpm-prof-single__hero {
  border-bottom-color: rgba(226, 232, 240, 0.72);
}

.cpm-post-single__hero img,
.cpm-section-hero img,
.cpm-catalog-head img,
.cpm-hero__image img {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 14px 32px rgba(15, 23, 42, 0.045);
}

@media (min-width: 960px) {
  .cpm-ui26-hero h1 {
    max-width: 12.5ch;
  }

  .cpm-post-single__hero h1,
  .cpm-activity-hero h1,
  .cpm-prof-single__hero h1 {
    max-width: 13.5ch;
  }
}

@media (max-width: 780px) {
  .cpm-header .cpm-nav a,
  .cpm-button,
  .cpm-ui26-search button,
  .cpm-login-link,
  .cpm-tramite-card__cta,
  .cpm-course-card__footer a,
  .cpm-post-row__link,
  .cpm-link,
  .psicole-directory--ui26 .psicole-prof-card__link {
    font-size: 16px;
  }
}

/* V10126: strict parity stabilizer.
   Keep the current UI26 direction, but remove the last sources of drift
   against the accepted public demo: purple/double header lines, off-grid
   editorial hero containers, and softened headings that no longer matched
   the approved production hierarchy. */
.cpm-header {
  border-bottom: 1px solid rgba(226, 232, 240, 0.92);
  box-shadow: none;
}

.cpm-header__main {
  border-bottom: 0;
  box-shadow: none;
}

.cpm-header::before,
.cpm-header::after,
.cpm-header .cpm-container::before,
.cpm-header .cpm-container::after {
  content: none;
  display: none;
}

.cpm-header .cpm-nav a,
.cpm-header .cpm-nav a:visited,
.cpm-header .cpm-actions .cpm-button,
.cpm-header .cpm-login-link,
.cpm-header .cpm-search-trigger {
  font-size: 14px;
  font-weight: 600;
  font-variation-settings: "wght" 600;
  line-height: 20px;
}

.cpm-header .cpm-nav a:hover,
.cpm-header .cpm-nav a:focus-visible,
.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  border: 0;
  border-bottom: 0;
  outline-offset: 3px;
  box-shadow: none;
  text-decoration: none;
}

.cpm-header .cpm-nav a.is-active,
.cpm-header .cpm-nav .current-menu-item > a {
  background: color-mix(in srgb, var(--cpm-purple) 9%, transparent);
  color: var(--cpm-purple);
}

body.home .cpm-ui26-hero h1,
body.home main .cpm-ui26-hero h1,
.home .cpm-ui26-hero h1,
.home main .cpm-ui26-hero h1,
.cpm-news-hero h1,
.cpm-hero .cpm-title,
.cpm-section-hero h1,
.cpm-post-single__hero h1,
.cpm-activity-hero h1,
.cpm-prof-single__hero h1,
.cpm-catalog-head h1,
.cpm-archive-head h1,
.psicole-directory-hero h1 {
  font-weight: 650;
  font-variation-settings: "wght" 650;
}

body.home .cpm-ui26-hero h1,
body.home main .cpm-ui26-hero h1,
.home .cpm-ui26-hero h1,
.home main .cpm-ui26-hero h1 {
  letter-spacing: -0.025em;
}

.cpm-news-hero h1,
.cpm-hero .cpm-title,
.cpm-section-hero h1 {
  line-height: 1;
  letter-spacing: -0.025em;
}

.cpm-catalog-head h1,
.cpm-archive-head h1,
.cpm-prof-single__hero h1 {
  line-height: 1.2;
}

.cpm-section-hero .cpm-container,
.cpm-hero .cpm-container,
.cpm-institutional-hero .cpm-container,
.cpm-news-hero .cpm-container,
.cpm-post-single__hero .cpm-container,
.cpm-activity-single__top .cpm-container {
  max-width: 1180px;
}

.cpm-section-hero .cpm-container,
.cpm-hero .cpm-container,
.cpm-institutional-hero .cpm-container,
.cpm-news-hero .cpm-container {
  padding-right: 24px;
  padding-left: 24px;
}

.cpm-ui26-quick {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 8px 22px rgba(15, 23, 42, 0.035);
}

.cpm-ui26-quick__item {
  transition:
    background-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.cpm-ui26-quick__item:hover,
.cpm-ui26-quick__item:focus-visible {
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px rgba(226, 232, 240, 0.92);
  transform: translateY(-1px);
}

.cpm-section__title,
.cpm-tramites-title,
.cpm-news-list h2,
.cpm-post-row h2,
.cpm-course-card h2,
.cpm-tramite-card h3,
.cpm-profile-card h2,
.cpm-profile-card h3,
.cpm-post-sidebox h2,
.cpm-content h2,
.cpm-content h3 {
  font-weight: 600;
  font-variation-settings: "wght" 600;
}

.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory--ui26 .psicole-prof-card h3 a,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card__title,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3,
.psicole-directory.psicole-directory--ui26 .psicole-prof-card h3 a {
  font-weight: 600;
  font-variation-settings: "wght" 600;
}

.cpm-profile-card--primary,
.cpm-profile-card--contact {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.035),
    0 10px 24px rgba(15, 23, 42, 0.038);
}

@media (max-width: 900px) {
  .cpm-section-hero .cpm-container,
  .cpm-hero .cpm-container,
  .cpm-institutional-hero .cpm-container,
  .cpm-news-hero .cpm-container,
  .cpm-post-single__hero .cpm-container,
  .cpm-activity-single__top .cpm-container {
    max-width: 100%;
    padding-right: 20px;
    padding-left: 20px;
  }

  .cpm-archive-head--tramites .cpm-archive-head__row--with-action > .cpm-button {
    display: inline-flex;
    width: auto;
    min-height: 42px;
  }
}

/* V10129: secondary type polish.
   Keep the accepted hero scale, but reduce secondary editorial/card titles
   that measured larger than the public reference and made WordPress feel
   heavier than the PSICOLE-style UI. */
.cpm-course-catalog-grid .cpm-course-card h2,
.cpm-course-catalog-grid .cpm-course-card h2 a,
.cpm-course-card h2,
.cpm-course-card h2 a {
  font-size: 18px;
  font-weight: 560;
  font-variation-settings: "wght" 560;
  line-height: 24px;
}

.cpm-news-page .cpm-post-row h2,
.cpm-news-page .cpm-post-row h3,
.cpm-news-page .cpm-post-row h2 a,
.cpm-news-page .cpm-post-row h3 a,
.cpm-post-row h2,
.cpm-post-row h3,
.cpm-post-row h2 a,
.cpm-post-row h3 a {
  font-size: 18px;
  font-weight: 560;
  font-variation-settings: "wght" 560;
  line-height: 26px;
}

.cpm-footer__newsletter h2 {
  font-size: 20px;
  font-weight: 600;
  font-variation-settings: "wght" 600;
  line-height: 28px;
  letter-spacing: -0.012em;
}

/* V10135: mobile header scale correction. Keep the public header legible on
   phone widths while preserving the compact PSICOLE UI rhythm. */
@media (max-width: 700px) {
  .cpm-header__inner {
    min-height: 70px;
  }

  .cpm-logo img {
    width: 176px;
    min-width: 176px;
  }

  .cpm-menu-toggle {
    width: 48px;
    min-width: 48px;
    height: 48px;
    border-radius: 12px;
  }

  .cpm-menu-toggle__bar {
    width: 19px;
  }
}

/* V10136: sharpen mobile dock icons and improve label contrast. */
@media (max-width: 700px) {
  .cpm-mobile-dock {
    z-index: 88;
    border-top-color: rgba(203, 213, 225, 0.95);
    background: rgba(255, 255, 255, 0.985);
  }

  .cpm-mobile-dock a {
    color: #334155;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.01em;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon {
    width: 30px;
    height: 30px;
    border: 1px solid rgba(66, 30, 109, 0.08);
    border-radius: 11px;
    background: #f5f3ff;
    color: var(--cpm-purple);
    font-size: 0;
    line-height: 0;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon svg {
    display: block;
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
    shape-rendering: geometricPrecision;
  }

  .cpm-mobile-dock a:hover,
  .cpm-mobile-dock a:focus-visible {
    color: var(--cpm-purple);
  }
}

/* V10137: make mobile dock glyphs crisp and readable on physical phones. */
@media (max-width: 700px) {
  .cpm-mobile-dock {
    min-height: calc(70px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.995);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.1);
  }

  .cpm-mobile-dock a {
    gap: 5px;
    min-height: 68px;
    padding: 7px 4px calc(8px + env(safe-area-inset-bottom));
    color: #1f2937;
    font-size: 13px;
    font-weight: 700;
    opacity: 1;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(66, 30, 109, 0.14);
    border-radius: 12px;
    background: #f0e9fb;
    color: #421e6d;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
    opacity: 1;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon svg {
    width: 21px;
    height: 21px;
    stroke-width: 2.55;
    opacity: 1;
    transform: translateZ(0);
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon svg * {
    vector-effect: non-scaling-stroke;
  }
}

/* V10140: keep mobile directory controls visible without horizontal bleed. */
@media (max-width: 700px) {
  .psicole-directory--ui26 .psicole-directory__filters {
    position: sticky;
    top: 70px;
    z-index: 140;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px;
    padding: 10px 0 12px;
    gap: 10px;
    overflow: hidden;
    background: #f8fafc;
    border: 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 0;
    box-shadow: 0 12px 22px rgba(15, 23, 42, 0.08);
    isolation: isolate;
  }

  .psicole-directory--ui26 .psicole-directory__search {
    width: 100%;
    min-width: 0;
    grid-column: 1 / -1;
  }

  .psicole-directory--ui26 .psicole-directory__select {
    display: flex;
    width: 100%;
    min-width: 0;
  }

  .psicole-directory--ui26 .psicole-directory__search input {
    width: 100%;
    min-height: 46px;
    border-color: rgba(203, 213, 225, 0.94);
    border-radius: 12px;
    background: #fff;
    color: var(--cpm-ink, #0f172a);
    font-size: 16px;
  }

  .psicole-directory--ui26 .psicole-directory__select select {
    width: 100%;
    min-height: 44px;
    border-color: rgba(203, 213, 225, 0.94);
    border-radius: 12px;
    background-color: #fff;
    color: var(--cpm-ink, #0f172a);
    font-size: 16px;
  }

  .psicole-directory--ui26 .psicole-directory__select:last-child {
    grid-column: 1 / -1;
  }
}

/* V10190: mobile dock final IA + interaction states.
   This file loads after style.css, so the dock invariants live here too. */
@media (max-width: 700px) {
  .cpm-mobile-dock {
    z-index: 1300 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    min-height: calc(76px + env(safe-area-inset-bottom)) !important;
    padding: 0 4px env(safe-area-inset-bottom) !important;
    border-top: 1px solid rgba(203, 213, 225, 0.84) !important;
    background: rgba(255, 255, 255, 0.985) !important;
    box-shadow: 0 -10px 28px rgba(15, 23, 42, 0.1) !important;
    backdrop-filter: blur(18px) !important;
  }

  .cpm-mobile-dock a {
    position: relative !important;
    display: grid !important;
    min-width: 0 !important;
    min-height: 76px !important;
    align-content: center !important;
    justify-items: center !important;
    gap: 5px !important;
    padding: 9px 2px 8px !important;
    color: #334155 !important;
    cursor: pointer !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em !important;
    line-height: 1.05 !important;
    text-align: center !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent !important;
    transition: color 150ms ease, transform 150ms ease, background 150ms ease;
  }

  .cpm-mobile-dock a::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    width: 0 !important;
    height: 3px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, #421e6d, #0ea5e9) !important;
    opacity: 0 !important;
    transform: translateX(-50%) !important;
    transition: width 150ms ease, opacity 150ms ease !important;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon {
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: currentColor !important;
    line-height: 1 !important;
    transition: transform 150ms ease, color 150ms ease !important;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon svg {
    display: block !important;
    width: 27px !important;
    height: 27px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.35 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    opacity: 1 !important;
    filter: none !important;
  }

  .cpm-mobile-dock .cpm-mobile-dock__icon svg * {
    vector-effect: non-scaling-stroke;
  }

  .cpm-mobile-dock a:hover,
  .cpm-mobile-dock a:focus-visible,
  .cpm-mobile-dock a:active {
    color: var(--cpm-purple) !important;
    background: linear-gradient(180deg, rgba(66, 30, 109, 0.045), transparent 72%) !important;
    transform: translateY(-1px) !important;
    outline: 0 !important;
  }

  .cpm-mobile-dock a:hover::before,
  .cpm-mobile-dock a:focus-visible::before,
  .cpm-mobile-dock a:active::before,
  .cpm-mobile-dock a.is-active::before,
  .cpm-mobile-dock a[aria-current="page"]::before {
    width: 28px !important;
    opacity: 1 !important;
  }

  .cpm-mobile-dock a:hover .cpm-mobile-dock__icon,
  .cpm-mobile-dock a:focus-visible .cpm-mobile-dock__icon,
  .cpm-mobile-dock a:active .cpm-mobile-dock__icon {
    transform: translateY(-2px) scale(1.06) !important;
  }

  .cpm-mobile-dock a.is-active,
  .cpm-mobile-dock a[aria-current="page"] {
    color: var(--cpm-purple) !important;
    background: transparent !important;
  }

  .cpm-mobile-dock a.is-active .cpm-mobile-dock__icon,
  .cpm-mobile-dock a[aria-current="page"] .cpm-mobile-dock__icon {
    transform: translateY(-1px) !important;
  }
}

/* V10200: global interaction affordance audit.
   This file loads after style.css, so final clickable/focus behavior lives here. */
:root {
  --cpm-interaction-ring: color-mix(in srgb, #0468be 44%, transparent);
  --cpm-interaction-hover: color-mix(in srgb, #421e6d 5%, #fff);
  --cpm-interaction-border: color-mix(in srgb, #421e6d 24%, #e2e8f0);
}

a[href],
button:not(:disabled),
select,
summary,
label[for],
[role="button"],
[data-cpm-onboarding-open],
[data-cpm-account-wizard-open],
[data-cpm-whatsapp-toggle] {
  cursor: pointer;
}

button:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
}

a[href]:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid var(--cpm-interaction-ring) !important;
  outline-offset: 3px !important;
}

.cpm-button,
.cpm-login-link,
.cpm-search-trigger,
.cpm-tramite-card__cta,
.psicole-directory--ui26 .psicole-prof-card__link,
.cpm-document-link,
.cpm-contact-item,
.cpm-whatsapp__account,
.cpm-whatsapp__button,
.cpm-first-account-cta,
.cpm-account-wizard__close {
  transition-property: background-color, border-color, color, box-shadow, transform, opacity;
  transition-duration: 150ms;
  transition-timing-function: ease;
}

.cpm-button--primary,
.cpm-button--primary:visited,
.cpm-content a.cpm-button--primary,
.cpm-content a.cpm-button--primary:visited,
.cpm-tramite-card .cpm-tramite-card__cta:hover,
.cpm-tramite-card .cpm-tramite-card__cta:focus-visible {
  color: #fff !important;
}

@media (hover: hover) {
  .cpm-button:hover,
  .cpm-login-link:hover,
  .cpm-search-trigger:hover,
  .cpm-whatsapp__button:hover,
  .cpm-first-account-cta:hover {
    transform: translateY(-1px);
  }

  .cpm-content a[href]:not(.cpm-button):not(.cpm-document-table__row):not(.cpm-contact-item):hover,
  .cpm-footer a[href]:hover {
    color: var(--cpm-purple);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
  }

  .cpm-footer .cpm-footer__nav a[href]:hover,
  .cpm-footer .cpm-footer__nav a[href]:focus-visible,
  .cpm-footer .cpm-footer__brand address a[href]:hover,
  .cpm-footer .cpm-footer__brand address a[href]:focus-visible,
  .cpm-footer .cpm-footer__bottom a[href]:hover,
  .cpm-footer .cpm-footer__bottom a[href]:focus-visible {
    color: #fff !important;
    text-decoration: none !important;
    text-shadow: 0 0 18px rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.08);
  }

  .cpm-footer .cpm-footer__social a[href]:hover,
  .cpm-footer .cpm-footer__social a[href]:focus-visible {
    color: var(--cpm-purple) !important;
    background: #fff !important;
    border-color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.2);
  }

  .cpm-document-list--links .cpm-document-link:hover,
  .cpm-contact-item:hover,
  .cpm-whatsapp__account:hover,
  .cpm-benefit-split-links a:hover,
  .cpm-benefit-directory__links a:hover,
  .cpm-commission-nav a:hover,
  .cpm-body-grid__actions a:hover,
  .cpm-org-single__return a:hover {
    border-color: var(--cpm-interaction-border) !important;
    background: var(--cpm-interaction-hover) !important;
    color: var(--cpm-purple) !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.075) !important;
  }

  .cpm-ui26-quick__item:hover,
  .cpm-ui26-service:hover,
  .cpm-ui26-news-card:hover,
  .cpm-ui26-news-main:hover,
  .cpm-ui26-course:hover,
  .cpm-post-row:hover,
  .cpm-course-catalog-grid .cpm-course-card:hover,
  .cpm-agenda-event:hover,
  .cpm-agenda-course:hover,
  .psicole-directory--ui26 .psicole-prof-card:hover,
  .cpm-tramite-card:hover,
  .cpm-benefit-grid article:hover,
  .cpm-body-grid article:hover {
    border-color: var(--cpm-interaction-border) !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08) !important;
  }

  .cpm-ui26-quick__item:hover strong,
  .cpm-ui26-service:hover h3,
  .cpm-ui26-news-card:hover h3,
  .cpm-post-row:hover h2 a,
  .cpm-course-catalog-grid .cpm-course-card:hover h2 a,
  .psicole-directory--ui26 .psicole-prof-card:hover h3 a,
  .cpm-tramite-card li a:hover,
  .cpm-tramite-card:hover h3 {
    color: var(--cpm-purple) !important;
  }
}

.cpm-ui26-quick__item:focus-visible,
.cpm-ui26-service:focus-visible,
.cpm-ui26-news-main:focus-visible,
.cpm-document-link:focus-visible,
.cpm-benefit-split-links a:focus-visible,
.cpm-benefit-directory__links a:focus-visible,
.cpm-commission-nav a:focus-visible,
.cpm-body-grid__actions a:focus-visible,
.cpm-org-single__return a:focus-visible,
.psicole-directory--ui26 .psicole-prof-card__link:focus-visible,
.cpm-tramite-card li a:focus-visible,
.cpm-tramite-card__cta:focus-visible {
  outline: 3px solid var(--cpm-interaction-ring) !important;
  outline-offset: 3px !important;
}

.cpm-document-table a.cpm-document-table__row {
  cursor: pointer;
}

.cpm-document-table article.cpm-document-table__row {
  cursor: default;
}

.cpm-document-table a.cpm-document-table__row::after {
  content: "↗" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--cpm-purple) 7%, #fff) !important;
  color: var(--cpm-purple) !important;
  opacity: 0.76 !important;
}

.cpm-document-table article.cpm-document-table__row::after {
  content: "" !important;
}

.cpm-document-table a.cpm-document-table__row:hover,
.cpm-document-table a.cpm-document-table__row:focus-visible {
  background: var(--cpm-interaction-hover) !important;
  box-shadow: inset 3px 0 0 var(--cpm-purple) !important;
  color: var(--cpm-purple) !important;
}

.cpm-document-table a.cpm-document-table__row:hover::after,
.cpm-document-table a.cpm-document-table__row:focus-visible::after {
  background: var(--cpm-purple) !important;
  color: #fff !important;
  opacity: 1 !important;
  transform: translateX(2px) !important;
}

.cpm-tramite-card__cta,
.psicole-directory--ui26 .psicole-prof-card__link,
.cpm-universal-search__item {
  cursor: pointer;
}

.cpm-content a:empty,
.cpm-migrated-source-content a:empty,
.entry-content a:empty {
  display: none !important;
  pointer-events: none !important;
}

.cpm-universal-search__item:hover,
.cpm-universal-search__item:focus-visible {
  background: var(--cpm-interaction-hover) !important;
  color: var(--cpm-purple) !important;
}

@supports selector(:has(a[href])) {
  .cpm-card:not(:has(a[href])):hover,
  .cpm-profile-card:not(:has(a[href])):hover,
  .cpm-panel:not(:has(a[href])):hover,
  .cpm-benefit-grid article:not(:has(a[href])):hover,
  .cpm-body-grid article:not(:has(a[href])):hover {
    transform: none !important;
    border-color: var(--cpm-border) !important;
    box-shadow: none !important;
    cursor: default !important;
  }
}

@media (max-width: 700px) {
  .cpm-logo {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  .cpm-header .cpm-nav a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }

  .cpm-breadcrumb a,
  .cpm-news-cats a,
  .cpm-section__head .cpm-link,
  .cpm-tramite-card li a,
  .cpm-post-sidebox a,
  .cpm-footer__nav a,
  .cpm-footer__brand a,
  .cpm-footer__bottom a,
  .cpm-footer__social a,
  .cpm-pagination a,
  .cpm-pagination span,
  .cpm-benefit-directory__links a,
  .cpm-benefit-grid article a,
  .cpm-body-grid__actions a,
  .cpm-institutional-subnav a,
  .cpm-activity-mobile-facts__cta,
  .cpm-activity-mobile-facts__cta a,
  .cpm-filter-search,
  .cpm-filter-search input,
  .cpm-news-search,
  .cpm-news-search input,
  .cpm-filter-check,
  .cpm-course-card__footer a,
  .cpm-post-row__link,
  .cpm-commission-nav a,
  .psicole-directory--ui26 .psicole-prof-card h3 a,
  .psicole-directory.psicole-directory--ui26 .psicole-prof-card h3 a,
  .button.button_dark,
  a.button,
  a.close,
  .tribe-events-back a,
  .tribe-events-c-subscribe-dropdown__button,
  .tribe-events-c-subscribe-dropdown__button-text,
  .tribe-events-c-subscribe-dropdown__list-item-link,
  .tribe-events-event-categories a,
  .tribe-organizer a,
  .tribe-events-gmap,
  .tec-events-pro-series-meta-detail--link a,
  a.tribe-events-series-relationship-single-marker__title {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  .cpm-footer__nav a,
  .cpm-footer__brand a,
  .cpm-footer__bottom a,
  .cpm-section__head .cpm-link {
    width: fit-content !important;
    max-width: 100% !important;
  }

  .cpm-footer__social a,
  .cpm-pagination a,
  .cpm-pagination span,
  a.close {
    min-width: 44px !important;
    justify-content: center !important;
  }

  .button.button_dark,
  a.button {
    justify-content: center !important;
    padding-inline: 16px !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
  }

  .cpm-filter-search input,
  .cpm-news-search,
  .cpm-news-search input {
    min-height: 44px !important;
  }

  .cpm-filter-check {
    min-height: 44px !important;
    align-items: center !important;
  }

  .cpm-post-row__link {
    min-width: 44px !important;
    justify-content: center !important;
  }

  .cpm-content button,
  .entry-content button,
  .cpm-migrated-source-content button {
    min-height: 44px !important;
    cursor: pointer !important;
  }

  .cpm-breadcrumb a {
    min-width: 44px !important;
  }

  .cpm-tramite-card li a {
    display: flex !important;
  }

  .cpm-button,
  .cpm-login-link,
  .cpm-search-trigger,
  .cpm-tramite-card__cta,
  .cpm-panel__action,
  .cpm-filter-select,
  .psicole-directory--ui26 .psicole-prof-card__link,
  .cpm-document-link,
  .cpm-contact-item,
  .cpm-whatsapp__account,
  .cpm-whatsapp__button,
  .cpm-first-account-cta,
  .cpm-account-wizard__close,
  .cpm-universal-search__item {
    min-height: 44px !important;
  }

  .cpm-ui26-search button,
  .cpm-hero .cpm-button,
  .cpm-archive-head .cpm-button,
  .psicole-directory--ui26 .psicole-directory__pagination button,
  .psicole-directory--ui26 .psicole-directory__load-more {
    min-height: 44px !important;
  }

  .psicole-directory--ui26 .psicole-directory__pagination button {
    min-width: 44px !important;
  }

  .cpm-mobile-dock {
    z-index: 1300 !important;
  }

  .cpm-mobile-dock a {
    cursor: pointer !important;
  }

  .cpm-mobile-dock a:focus-visible {
    outline: 3px solid var(--cpm-interaction-ring) !important;
    outline-offset: -4px !important;
  }

  .cpm-first-account-cta {
    bottom: calc(94px + env(safe-area-inset-bottom)) !important;
    z-index: 1320 !important;
  }

  .cpm-whatsapp {
    z-index: 1310 !important;
  }
}

/* V10186: course registration CTAs keep contrast over purple backgrounds. */
.cpm-content .cpm-activity-mobile-facts__cta a,
.cpm-content .cpm-activity-mobile-facts__cta a:visited,
.cpm-activity-single__panel > a,
.cpm-activity-single__panel > a:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: auto !important;
  max-width: 100% !important;
  min-height: 42px !important;
  padding: 0 18px !important;
  color: #fff !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
}

.cpm-content .cpm-activity-mobile-facts__cta a:hover,
.cpm-content .cpm-activity-mobile-facts__cta a:focus-visible,
.cpm-activity-single__panel > a:hover,
.cpm-activity-single__panel > a:focus-visible {
  color: #fff !important;
  background: #351856 !important;
  border-color: #351856 !important;
  text-decoration: none !important;
  box-shadow: 0 12px 24px rgba(66, 30, 109, 0.22) !important;
}

/* V10187: contact phones are direct WhatsApp actions. */
.cpm-contact-directory__phone-links {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.cpm-contact-directory__phone-link,
.cpm-contact-directory__phone-link:visited {
  color: #334155 !important;
  font-weight: 500;
  text-decoration: none !important;
  text-underline-offset: 4px;
}

.cpm-contact-directory__phone-link:hover,
.cpm-contact-directory__phone-link:focus-visible {
  color: var(--cpm-purple) !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
}

.cpm-contact-directory__phone-separator {
  color: #94a3b8;
  padding: 0 2px;
}

/* V10188: authority initials must stay circular inside flex cards. */
.cpm-authority-grid article > span {
  box-sizing: border-box !important;
  width: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  height: 56px !important;
  min-height: 56px !important;
  flex: 0 0 56px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* V10189: onboarding must never crop slide CTAs behind the footer.
   The tour is a three-part shell: progress bar, scroll-safe content and footer. */

/* V10190: prevent medium desktop header actions from creating horizontal scroll. */
@media (min-width: 981px) and (max-width: 1180px) {
  .cpm-header__inner {
    gap: 14px !important;
  }

  .cpm-header .cpm-nav {
    gap: 2px !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  .cpm-header .cpm-nav a {
    padding-inline: 9px !important;
  }

  .cpm-header .cpm-actions {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    gap: 8px !important;
  }

  .cpm-header .cpm-login-link {
    white-space: nowrap !important;
  }

  .cpm-header .cpm-actions .cpm-button--primary {
    max-width: 44px !important;
    min-width: 44px !important;
    width: 44px !important;
    padding-inline: 0 !important;
    overflow: hidden !important;
    color: transparent !important;
    white-space: nowrap !important;
  }

  .cpm-header .cpm-actions .cpm-button--primary svg {
    margin: 0 !important;
    color: #fff !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpm-button,
  .cpm-login-link,
  .cpm-search-trigger,
  .cpm-whatsapp__button,
  .cpm-first-account-cta,
  .cpm-ui26-quick__item,
  .cpm-ui26-service,
  .cpm-ui26-news-card,
  .cpm-ui26-news-main,
  .cpm-ui26-course,
  .cpm-post-row,
  .cpm-course-card,
  .cpm-agenda-event,
  .cpm-agenda-course,
  .psicole-prof-card,
  .cpm-tramite-card {
    transition-duration: 0.01ms !important;
    transform: none !important;
  }
}

/* V10191: home hero institutional stats are clickable without changing the approved visual weight. */
.cpm-ui26-stats .cpm-ui26-stat {
  position: relative !important;
  display: block !important;
  min-width: 0 !important;
  color: inherit !important;
  text-decoration: none !important;
  border-radius: 10px !important;
  outline-offset: 6px !important;
  cursor: pointer !important;
  transition: transform 160ms ease, color 160ms ease, opacity 160ms ease !important;
}

.cpm-ui26-stats .cpm-ui26-stat::before {
  content: "" !important;
  position: absolute !important;
  top: -27px !important;
  left: 0 !important;
  width: 34px !important;
  height: 4px !important;
  border-radius: 999px !important;
  background: var(--cpm-yellow) !important;
}

.cpm-ui26-stats .cpm-ui26-stat strong {
  display: block !important;
  color: #fff !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
}

.cpm-ui26-stats .cpm-ui26-stat span {
  display: block !important;
  margin-top: 7px !important;
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  font-weight: 650 !important;
}

.cpm-ui26-stats .cpm-ui26-stat:hover,
.cpm-ui26-stats .cpm-ui26-stat:focus-visible {
  transform: translateY(-1px) !important;
}

.cpm-ui26-stats .cpm-ui26-stat:hover span,
.cpm-ui26-stats .cpm-ui26-stat:focus-visible span {
  color: #fff !important;
}

/* V10192: keep the approved floating CTA, but never let it cover active search results. */
html.cpm-home-search-open .cpm-first-account-cta {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(8px) !important;
}

/* V10193: floating utilities yield while the user reads or scrolls on a phone. */
@media (max-width: 700px) {
  html.cpm-user-scrolling .cpm-first-account-cta,
  html.cpm-user-scrolling .cpm-whatsapp {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateY(10px) !important;
  }
}

/* V10194: compact the account entry point only on short mobile viewports. */
@media (max-width: 700px) and (max-height: 700px) {
  .cpm-first-account-cta {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 !important;
    gap: 0 !important;
    justify-content: center !important;
    border-radius: 999px !important;
  }

  .cpm-first-account-cta span {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
  }

  .cpm-first-account-cta strong {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }
}

/* V10210: mobile hero metrics stay readable and floating utilities yield to the hero. */
@media (max-width: 560px) {
  .cpm-ui26-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px 20px !important;
  }

  .cpm-ui26-stats .cpm-ui26-stat:first-child {
    grid-column: 1 / -1;
  }

  html.cpm-home-hero-visible .cpm-first-account-cta,
  html.cpm-home-hero-visible .cpm-whatsapp {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(10px) !important;
  }
}
