.kc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--kc-space-2);
    min-height: 44px;
    padding: var(--kc-space-3) var(--kc-space-5);
    border: var(--kc-border-width) solid transparent;
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.kc-button:hover,
.kc-button:focus-visible {
    background-color: var(--kc-navy);
    color: #ffffff;
}

.kc-button--outline {
    background-color: transparent;
    border-color: var(--kc-navy);
    color: var(--kc-navy);
}

.kc-button--outline:hover,
.kc-button--outline:focus-visible {
    background-color: var(--kc-navy);
    color: #ffffff;
}

.kc-button:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

.kc-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--kc-space-2);
    padding: var(--kc-space-1) var(--kc-space-3);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-soft);
    color: var(--kc-ink);
    font-family: var(--kc-font-display);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.4;
}

.kc-badge--category {
    background-color: var(--kc-yellow);
    border-color: var(--kc-yellow);
    color: var(--kc-navy);
}

.kc-badge--type {
    background-color: var(--kc-teal-ink);
    border-color: var(--kc-teal-ink);
    color: #ffffff;
}

.kc-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--kc-space-2) var(--kc-space-4);
    color: var(--kc-ink);
    font-size: 0.875rem;
}

.kc-meta__item {
    display: inline-flex;
    align-items: center;
    gap: var(--kc-space-2);
}

.kc-article-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--kc-space-2) var(--kc-space-4);
    min-width: 0;
    margin-block: 0 var(--kc-space-4);
    color: var(--kc-ink);
    font-family: var(--kc-font-body);
    font-size: 0.875rem;
    line-height: 1.6;
}

.kc-article-meta__date,
.kc-article-meta__author,
.kc-article-meta__reading-time {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    overflow-wrap: anywhere;
}

.kc-article-meta__date,
.kc-article-meta__author {
    color: var(--kc-navy);
    font-weight: 600;
}

.kc-article-meta__reading-time {
    font-variant-numeric: tabular-nums;
}

.kc-article-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-editorial);
    background-color: var(--kc-color-surface);
    box-shadow: var(--kc-shadow-editorial);
}

.kc-article-card__media {
    display: grid;
    place-items: center;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background-color: var(--kc-soft);
}

.kc-article-card__media:empty,
.kc-article-card__media:not(:has(img)) {
    display: none;
    aspect-ratio: auto;
}

.kc-article-card__media--placeholder {
    padding: var(--kc-space-5);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 0.875rem;
    font-weight: 600;
    text-align: center;
}

.kc-article-card__media > div,
.kc-article-card__media a,
.kc-article-card__media img {
    display: block;
    width: 100%;
    height: 100%;
}

.kc-article-card__media img {
    object-fit: cover;
}

.kc-article-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--kc-space-3);
    padding: var(--kc-space-5);
}

.kc-article-card__title {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--kc-font-display);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--kc-text-primary);
}

.kc-article-card__title h1,
.kc-article-card__title h2,
.kc-article-card__title h3,
.kc-article-card__title h4,
.kc-article-card__title h5,
.kc-article-card__title h6 {
    margin: 0;
    min-width: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-article-card__excerpt {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 0.9375rem;
    line-height: 1.8;
    color: var(--kc-text-primary);
}

.kc-article-card__excerpt p {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-featured-story {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--kc-space-5);
    min-width: 0;
    overflow: hidden;
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-color-surface);
    box-shadow: var(--kc-shadow-1);
}

.kc-featured-story__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kc-featured-story__body {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-4);
    padding: var(--kc-space-5);
}

.kc-featured-story__title {
    margin: 0;
    font-family: var(--kc-font-display);
    font-size: 1.5rem;
    line-height: 1.45;
    color: var(--kc-navy);
}

.kc-related-posts {
    display: block;
    min-width: 0;
}

.kc-related-posts__title {
    margin: 0 0 var(--kc-space-4);
    font-family: var(--kc-font-display);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--kc-text-primary);
}

.kc-related-posts__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--kc-space-4);
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kc-related-posts__item {
    display: flex;
    min-width: 0;
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-md);
    background-color: var(--kc-color-surface);
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.kc-related-posts__item:hover {
    border-color: var(--kc-teal);
    box-shadow: var(--kc-shadow-1);
}

.kc-related-posts__link {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: var(--kc-space-4);
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.6;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.kc-related-posts__link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kc-related-posts__link:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
    border-radius: var(--kc-radius-md);
}

.kc-donation-cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--kc-space-3);
    padding: var(--kc-space-5);
    border: var(--kc-border-width) solid var(--kc-line);
    border-inline-start: 4px solid var(--kc-yellow);
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-soft);
    box-shadow: var(--kc-shadow-1);
}

.kc-donation-cta__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: var(--kc-space-3) var(--kc-space-6);
    border: var(--kc-border-width) solid transparent;
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease;
}

.kc-donation-cta__link:hover {
    background-color: var(--kc-navy);
    color: #ffffff;
}

.kc-donation-cta__link:focus-visible {
    background-color: var(--kc-navy);
    color: #ffffff;
    outline: 3px solid var(--kc-navy);
    outline-offset: 2px;
}

.kc-cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--kc-space-4);
    padding: var(--kc-space-6);
    border: var(--kc-border-width) solid var(--kc-line);
    border-inline-start: 4px solid var(--kc-teal);
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-soft);
}

.kc-cta--donation {
    border-inline-start-color: var(--kc-yellow);
}

.kc-archive-hero {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-3);
    padding-block: var(--kc-space-8);
    border-block-end: var(--kc-border-width) solid var(--kc-line);
}

.kc-archive-hero__title {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--kc-font-display);
    font-size: clamp(2rem, 1.5rem + 1.25vw, 2.5rem);
    font-weight: 700;
    line-height: 1.4;
    color: var(--kc-text-primary);
}

.kc-archive-hero__title h1,
.kc-archive-hero__title h2,
.kc-archive-hero__title h3,
.kc-archive-hero__title h4,
.kc-archive-hero__title h5,
.kc-archive-hero__title h6 {
    margin: 0;
    min-width: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-archive-hero__description {
    margin: 0;
    min-width: 0;
    max-width: var(--kc-container-narrow);
    overflow-wrap: anywhere;
    color: var(--kc-text-secondary);
    font-family: var(--kc-font-body);
    line-height: 1.9;
}

.kc-archive-hero__description p {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-category-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--kc-space-2);
    min-width: 0;
    padding-block: var(--kc-space-3);
}

.kc-category-nav a,
.kc-category-nav__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: var(--kc-space-4);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-pill);
    color: var(--kc-navy);
    font-size: 0.875rem;
    text-decoration: none;
}

.kc-category-nav a:hover,
.kc-category-nav__link:hover {
    border-color: var(--kc-teal);
}

.kc-category-nav a:focus-visible,
.kc-category-nav__link:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

.kc-category-nav a[aria-current="page"],
.kc-category-nav__link[aria-current="page"] {
    background-color: var(--kc-navy);
    border-color: var(--kc-navy);
    color: #ffffff;
}

/* Single article: shell and hero */

.kc-single-article {
    display: block;
    width: 100%;
    min-height: 60vh;
    min-width: 0;
    padding-block-end: var(--kc-space-9);
    padding-inline: var(--kc-space-6);
    overflow-x: hidden;
    overflow-x: clip;
    background-color: var(--kc-color-surface);
    direction: rtl;
}

.kc-single-article .kc-container {
    max-width: 1180px;
    padding-inline: 0;
}

.kc-article-shell {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-7);
    width: 100%;
    max-width: 820px;
    min-width: 0;
    margin-inline: auto;
}

.kc-article-hero {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-4);
    min-width: 0;
    padding-block-start: var(--kc-space-8);
}

.kc-article-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: var(--kc-space-1) var(--kc-space-3);
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.5;
}

.kc-article-hero__eyebrow h1,
.kc-article-hero__eyebrow h2,
.kc-article-hero__eyebrow h3,
.kc-article-hero__eyebrow h4,
.kc-article-hero__eyebrow h5,
.kc-article-hero__eyebrow h6,
.kc-article-hero__eyebrow span {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.kc-article-hero__title {
    margin: 0;
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: clamp(1.75rem, 1.05rem + 2.2vw, 3.25rem);
    font-weight: 800;
    line-height: 1.35;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.kc-article-hero__title h1,
.kc-article-hero__title h2,
.kc-article-hero__title h3,
.kc-article-hero__title h4,
.kc-article-hero__title h5,
.kc-article-hero__title h6 {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-article-hero__dek {
    margin: 0;
    max-width: 60ch;
    color: var(--kc-ink);
    font-family: var(--kc-font-body);
    font-size: clamp(1.0625rem, 0.95rem + 0.5vw, 1.3125rem);
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.kc-article-hero__dek p {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.kc-article-hero__media {
    width: 100%;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-soft);
}

.kc-article-hero__media img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

/* Article content typography (scoped to .kc-article-content only) */

.kc-article-content {
    max-width: var(--kc-container-narrow);
    min-width: 0;
    margin-inline: auto;
    color: var(--kc-text-primary);
    font-family: var(--kc-font-body);
    font-size: 1.0625rem;
    line-height: 2;
    overflow-wrap: break-word;
}

.kc-article-content > *:first-child {
    margin-block-start: 0;
}

.kc-article-content > *:last-child {
    margin-block-end: 0;
}

.kc-article-content p {
    margin-block: 0 var(--kc-space-5);
    line-height: 2;
}

.kc-article-content strong,
.kc-article-content b {
    color: var(--kc-text-primary);
    font-weight: 700;
}

.kc-article-content em,
.kc-article-content i {
    font-style: italic;
}

.kc-article-content h2 {
    margin-block: var(--kc-space-7) var(--kc-space-4);
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.5;
}

.kc-article-content h3 {
    margin-block: var(--kc-space-6) var(--kc-space-3);
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.6;
}

.kc-article-content h4 {
    margin-block: var(--kc-space-5) var(--kc-space-3);
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.6;
}

.kc-article-content a {
    color: var(--kc-navy);
    text-decoration: underline;
    text-decoration-color: var(--kc-teal);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.kc-article-content a:hover {
    color: var(--kc-teal-ink);
}

.kc-article-content a:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
    border-radius: var(--kc-radius-sm);
}

.kc-article-content ul,
.kc-article-content ol {
    margin-block: 0 var(--kc-space-5);
    padding-inline-start: var(--kc-space-6);
}

.kc-article-content li {
    margin-block-end: var(--kc-space-2);
    line-height: 1.9;
}

.kc-article-content li > ul,
.kc-article-content li > ol {
    margin-block: var(--kc-space-2) 0;
}

.kc-article-content li::marker {
    color: var(--kc-teal-ink);
}

.kc-article-content blockquote {
    margin-block: var(--kc-space-6);
    margin-inline: 0;
    padding-inline-start: var(--kc-space-5);
    border-inline-start: 4px solid var(--kc-yellow);
    color: var(--kc-text-primary);
    font-family: var(--kc-font-display);
    font-size: 1.125rem;
    line-height: 1.9;
}

.kc-article-content blockquote p:last-child {
    margin-block-end: 0;
}

.kc-article-content figure {
    margin-block: var(--kc-space-6);
    margin-inline: 0;
    max-width: 100%;
}

.kc-article-content img {
    max-width: 100%;
    height: auto;
}

.kc-article-content figure img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: var(--kc-radius-md);
}

.kc-article-content .wp-block-image.alignwide img,
.kc-article-content .wp-block-image.alignfull img {
    width: 100%;
}

.kc-article-content figcaption {
    margin-block-start: var(--kc-space-2);
    color: var(--kc-ink);
    font-size: 0.875rem;
    line-height: 1.7;
    text-align: start;
}

.kc-article-content table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.kc-article-content table th,
.kc-article-content table td {
    padding: var(--kc-space-2) var(--kc-space-3);
    border: var(--kc-border-width) solid var(--kc-line);
    text-align: start;
    vertical-align: top;
    overflow-wrap: anywhere;
}

.kc-article-content table th {
    background-color: var(--kc-soft);
    color: var(--kc-text-primary);
    font-weight: 700;
}

.kc-article-content iframe,
.kc-article-content embed,
.kc-article-content object,
.kc-article-content video {
    display: block;
    width: 100%;
    max-width: 100%;
}

.kc-article-content iframe {
    border: 0;
}

.kc-article-content pre {
    max-width: 100%;
    overflow-x: auto;
    padding: var(--kc-space-4);
    border-radius: var(--kc-radius-md);
    background-color: var(--kc-soft);
    direction: ltr;
    text-align: left;
    font-size: 0.875rem;
    line-height: 1.7;
}

.kc-article-content code {
    overflow-wrap: anywhere;
}

/* Legacy WordPress media generated by classic-editor shortcodes. The real
   inventory contains a large gallery/shortcode cohort, so these rules are a
   first-class compatibility layer rather than fixture-only styling. */

.kc-article-content .gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr));
    gap: var(--kc-space-3);
    width: 100%;
    max-width: 100%;
    margin-block: var(--kc-space-6);
}

.kc-article-content .gallery-item {
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    text-align: center;
}

.kc-article-content .gallery-icon,
.kc-article-content .gallery-caption {
    min-width: 0;
}

.kc-article-content .gallery-icon img {
    display: block;
    width: 100%;
    height: auto;
    margin-inline: auto;
    border: 0;
    border-radius: var(--kc-radius-sm);
}

.kc-article-content .gallery-caption,
.kc-article-content .wp-caption-text {
    margin-block-start: var(--kc-space-2);
    color: var(--kc-ink);
    font-size: 0.8125rem;
    line-height: 1.7;
}

.kc-article-content .wp-caption {
    width: auto !important;
    max-width: 100%;
    margin-block: var(--kc-space-6);
}

.kc-article-content .wp-caption img {
    display: block;
    max-width: 100%;
    height: auto;
}

.kc-article-content .aligncenter {
    display: block;
    margin-inline: auto;
}

.kc-article-content .alignleft {
    float: left;
    margin: 0 var(--kc-space-5) var(--kc-space-4) 0;
}

.kc-article-content .alignright {
    float: right;
    margin: 0 0 var(--kc-space-4) var(--kc-space-5);
}

.kc-article-content .wp-video,
.kc-article-content .wp-video-shortcode,
.kc-article-content .wp-block-embed__wrapper {
    width: 100% !important;
    max-width: 100%;
}

.kc-article-content .wp-block-embed__wrapper iframe,
.kc-article-content iframe[src*="youtube"],
.kc-article-content iframe[src*="aparat"] {
    aspect-ratio: 16 / 9;
    height: auto;
}

/* Scoped WordPress block support (never unscoped) */

.kc-article-content .wp-block-image {
    max-width: 100%;
    margin-block: var(--kc-space-6);
    margin-inline: 0;
}

.kc-article-content .wp-block-image img {
    max-width: 100%;
    height: auto;
    border-radius: var(--kc-radius-md);
}

.kc-article-content .wp-block-image figcaption {
    margin-block-start: var(--kc-space-2);
    color: var(--kc-ink);
    font-size: 0.875rem;
}

.kc-article-content .wp-block-quote {
    margin-inline: 0;
    padding-inline-start: var(--kc-space-5);
    border-inline-start: 4px solid var(--kc-yellow);
    color: var(--kc-ink);
}

.kc-article-content .wp-block-quote cite {
    display: block;
    margin-block-start: var(--kc-space-2);
    color: var(--kc-ink);
    font-size: 0.875rem;
    font-style: normal;
}

.kc-article-content .wp-block-table {
    max-width: 100%;
    overflow-x: auto;
}

.kc-article-content .wp-block-embed {
    max-width: 100%;
    margin-block: var(--kc-space-6);
}

.kc-article-content .wp-block-embed iframe {
    max-width: 100%;
}

.kc-article-content .wp-block-gallery {
    max-width: 100%;
    margin-block: var(--kc-space-6);
    padding: 0;
    list-style: none;
}

.kc-article-content .wp-block-gallery img {
    max-width: 100%;
    height: auto;
}

/* Archive / category contract */

.kc-archive-intro {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-6);
    min-width: 0;
}

.kc-archive {
    display: block;
    width: 100%;
    min-height: 60vh;
    min-width: 0;
    padding-block-end: var(--kc-space-9);
    padding-inline: var(--kc-space-6);
    overflow-x: hidden;
    overflow-x: clip;
    background-color: var(--kc-color-surface);
    direction: rtl;
}

.kc-editorial-archive .kc-container,
.kc-editorial.kc-archive .kc-container {
    max-width: 1180px;
    padding-inline: 0;
}

.kc-archive-shell {
    display: flex;
    flex-direction: column;
    gap: var(--kc-space-6);
    width: 100%;
    max-width: 1180px;
    min-width: 0;
    margin-inline: auto;
}

.kc-archive-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: var(--kc-space-1) var(--kc-space-3);
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.5;
}

.kc-archive-hero__eyebrow h1,
.kc-archive-hero__eyebrow h2,
.kc-archive-hero__eyebrow h3,
.kc-archive-hero__eyebrow h4,
.kc-archive-hero__eyebrow h5,
.kc-archive-hero__eyebrow h6,
.kc-archive-hero__eyebrow span {
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.kc-archive-hero::before {
    content: "";
    display: block;
    width: 52px;
    height: 4px;
    border-inline-start: 14px solid var(--kc-yellow);
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-teal);
}

/* Safe wrapper/scope only. Elementor Loop Grid owns its internal layout
   and responsive column settings (desktop 3 / tablet 2 / mobile 1). This
   class must never become a competing grid layout engine. */
.kc-archive-listing {
    width: 100%;
    min-width: 0;
}

.kc-editorial-loop-item {
    height: 100%;
    min-width: 0;
    direction: rtl;
}

.kc-article-card__context {
    margin: 0;
    color: var(--kc-teal-ink);
    font-family: var(--kc-font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.6;
}

.kc-editorial .kc-article-card__context a {
    color: inherit;
    font: inherit;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.kc-editorial .kc-article-card__context a:hover {
    color: var(--kc-navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kc-editorial .kc-article-card__context a:focus-visible {
    border-radius: var(--kc-radius-sm);
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

.kc-article-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--kc-space-2) var(--kc-space-3);
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--kc-ink);
    font-size: 0.8125rem;
    line-height: 1.6;
}

.kc-article-card__meta.kc-article-card__context {
    color: var(--kc-teal-ink);
}

.kc-editorial .kc-article-card__context.kc-badge--category {
    align-self: flex-start;
    max-width: 100%;
    border-color: var(--kc-yellow);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
}

.kc-article-card__meta:not(.kc-article-card__context) {
    margin-block-start: auto;
    padding-block-start: var(--kc-space-1);
    opacity: 0.72;
}

.kc-article-card__title a {
    min-width: 0;
    overflow-wrap: anywhere;
    color: inherit;
    text-decoration: none;
}

.kc-article-card__title a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kc-article-card__title a:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

/* Safe wrapper/scope only. This class may wrap an entire Loop Grid, so it
   must never impose layout (flex/grid/padding/border) on that widget. All
   pagination layout lives on verified descendant .page-numbers only. */
.kc-archive-pagination {
    width: 100%;
    min-width: 0;
}

.kc-archive-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin-inline: var(--kc-space-1);
    padding-inline: var(--kc-space-3);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-pill);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
}

.kc-archive-pagination .page-numbers.current {
    background-color: var(--kc-yellow);
    border-color: var(--kc-yellow);
    color: var(--kc-navy);
}

.kc-archive-pagination .page-numbers:hover {
    border-color: var(--kc-teal);
}

.kc-archive-pagination .page-numbers:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

.kc-archive-empty {
    min-width: 0;
    padding: var(--kc-space-7) var(--kc-space-5);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-soft);
    color: var(--kc-ink);
    text-align: center;
    overflow-wrap: anywhere;
}

.kc-archive-empty > :first-child {
    margin-block-start: 0;
}

.kc-archive-empty > :last-child {
    margin-block-end: 0;
}

/* Blog landing and restrained editorial decoration */

.kc-editorial-blog .kc-archive-hero__title {
    position: relative;
}

.kc-editorial-blog .kc-archive-hero__title::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset-inline-end: 24%;
    inset-block-start: 6px;
    inline-size: 24px;
    block-size: 24px;
    border: 5px solid var(--kc-yellow);
    border-radius: 50%;
    box-shadow: 0 0 0 8px rgb(255 192 0 / 12%);
    opacity: 0.45;
    pointer-events: none;
}

.kc-editorial-blog .kc-archive-hero,
.kc-editorial-archive .kc-archive-hero,
.kc-single-article .kc-article-hero {
    position: relative;
    isolation: isolate;
}

.kc-editorial-blog .kc-archive-hero::after,
.kc-editorial-archive .kc-archive-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inline-size: 180px;
    block-size: 180px;
    inset-block-start: -34px;
    inset-inline-end: 1%;
    border: 18px solid rgb(62 174 187 / 10%);
    border-radius: 50%;
    background: rgb(255 192 0 / 8%);
    pointer-events: none;
}

.kc-editorial-archive .kc-archive-hero::after {
    inline-size: 118px;
    block-size: 118px;
    inset-block-start: -26px;
    opacity: 0.7;
}

.kc-single-article .kc-article-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inline-size: 12px;
    block-size: 12px;
    inset-block-start: var(--kc-space-6);
    inset-inline-end: var(--kc-space-2);
    border-radius: 50%;
    background-color: var(--kc-yellow);
    box-shadow: 0 0 0 10px rgb(255 192 0 / 12%);
    pointer-events: none;
}

/* WordPress-native comments presentation, scoped to the Single template. */

.kc-editorial-comments {
    min-width: 0;
    padding-block-start: var(--kc-space-7);
    border-block-start: var(--kc-border-width) solid var(--kc-line);
    color: var(--kc-ink);
    direction: rtl;
    text-align: start;
    overflow-wrap: anywhere;
}

.kc-editorial-comments__title,
.kc-editorial-comments .comment-reply-title {
    margin: 0 0 var(--kc-space-5);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.5;
}

.kc-comment-list,
.kc-comment-list .children {
    margin: 0;
    padding: 0;
    list-style: none;
}

.kc-comment-list .children {
    margin-block-start: var(--kc-space-4);
    margin-inline-start: var(--kc-space-6);
    padding-inline-start: var(--kc-space-4);
    border-inline-start: 3px solid var(--kc-line);
}

.kc-comment-list .comment-body {
    min-width: 0;
    padding-block: var(--kc-space-5);
    border-block-end: var(--kc-border-width) solid var(--kc-line);
}

.kc-comment-list .comment-author {
    display: flex;
    align-items: center;
    gap: var(--kc-space-3);
    min-width: 0;
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-weight: 700;
}

.kc-comment-list .avatar {
    flex: 0 0 48px;
    inline-size: 48px;
    block-size: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.kc-comment-list .comment-metadata {
    margin-block: var(--kc-space-2) var(--kc-space-3);
    color: var(--kc-ink);
    font-size: 0.8125rem;
    opacity: 0.72;
}

.kc-comment-list .comment-metadata a,
.kc-comment-list .reply a,
.kc-comment-pagination a,
.kc-comment-pagination .current {
    color: var(--kc-navy);
    text-decoration: none;
}

.kc-comment-list .comment-content > *:first-child {
    margin-block-start: 0;
}

.kc-comment-list .comment-content > *:last-child {
    margin-block-end: 0;
}

.kc-comment-list .comment-content a {
    overflow-wrap: anywhere;
}

.kc-comment-list .comment-awaiting-moderation {
    display: block;
    margin-block: var(--kc-space-2);
    padding: var(--kc-space-2) var(--kc-space-3);
    border-inline-start: 4px solid var(--kc-yellow);
    background-color: var(--kc-soft);
    color: var(--kc-navy);
    font-style: normal;
}

.kc-comment-list .reply a,
.kc-comment-pagination a,
.kc-comment-pagination .current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding-inline: var(--kc-space-3);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-pill);
}

.kc-comment-list .reply a:hover,
.kc-comment-pagination a:hover {
    border-color: var(--kc-teal);
}

.kc-comment-list a:focus-visible,
.kc-comment-pagination a:focus-visible,
.kc-comment-form input:focus-visible,
.kc-comment-form textarea:focus-visible,
.kc-comment-submit:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

.kc-comment-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--kc-space-2);
    margin-block: var(--kc-space-5);
}

.kc-comment-pagination .current {
    border-color: var(--kc-yellow);
    background-color: var(--kc-yellow);
}

.kc-editorial-comments .comment-respond {
    margin-block-start: var(--kc-space-7);
    padding: var(--kc-space-5);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-lg);
    background-color: var(--kc-soft);
    box-shadow: var(--kc-shadow-1);
}

.kc-comment-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--kc-space-4);
    min-width: 0;
}

.kc-comment-form > p {
    min-width: 0;
    margin: 0;
}

.kc-comment-form .comment-form-url,
.kc-comment-form .comment-form-comment,
.kc-comment-form .comment-form-cookies-consent,
.kc-comment-form .form-submit,
.kc-comment-form .logged-in-as,
.kc-comment-form .comment-notes,
.kc-comment-form .must-log-in {
    grid-column: 1 / -1;
}

.kc-comment-form label {
    display: block;
    margin-block-end: var(--kc-space-2);
    color: var(--kc-text-primary);
    font-weight: 700;
}

.kc-comment-form input[type="text"],
.kc-comment-form input[type="email"],
.kc-comment-form input[type="url"],
.kc-comment-form textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    padding: var(--kc-space-3);
    border: var(--kc-border-width) solid var(--kc-line);
    border-radius: var(--kc-radius-md);
    background-color: #ffffff;
    color: var(--kc-ink);
    font: inherit;
}

.kc-comment-form textarea {
    min-height: 160px;
    resize: vertical;
}

.kc-comment-form .comment-form-cookies-consent {
    display: flex;
    align-items: flex-start;
    gap: var(--kc-space-2);
}

.kc-comment-form .comment-form-cookies-consent input {
    flex: 0 0 auto;
    inline-size: 20px;
    block-size: 20px;
    margin-block-start: 2px;
}

.kc-comment-form .comment-form-cookies-consent label {
    margin: 0;
    font-weight: 400;
}

.kc-required {
    color: var(--kc-navy);
    font-weight: 800;
}

.kc-comment-submit {
    min-height: 44px;
    padding: var(--kc-space-3) var(--kc-space-6);
    border: var(--kc-border-width) solid var(--kc-yellow);
    border-radius: var(--kc-radius-pill);
    background-color: var(--kc-yellow);
    color: var(--kc-navy);
    font-family: var(--kc-font-display);
    font-weight: 700;
    cursor: pointer;
}

.kc-comment-submit:hover {
    border-color: var(--kc-navy);
    background-color: var(--kc-navy);
    color: #ffffff;
}

@media (prefers-reduced-motion: reduce) {
    .kc-button,
    .kc-related-posts__item,
    .kc-donation-cta__link {
        transition: none;
    }
}

/* ==========================================================================\n   Editorial category variants — shared Koodakan redesign language\n   ========================================================================== */

.kc-editorial-category-badge {
    width: fit-content;
    max-width: 100%;
    text-decoration: none;
}

.kc-editorial-category-badge:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 2px;
}

/* The category families share typography/tokens, but their layout language is
   intentionally different. Real article content remains dynamic/editable. */

/* NEWS — newsroom: compact hierarchy, strong chronology, landscape media. */
.kc-archive--news .kc-archive-hero {
    padding: var(--kc-space-7) var(--kc-space-7) var(--kc-space-6);
    border: 1px solid var(--kc-line);
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 12px 34px rgba(0, 35, 94, 0.065);
}

.kc-archive--news .kc-archive-hero::before {
    background: var(--kc-yellow);
}

.kc-archive--news .kc-article-card {
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 35, 94, 0.055);
}

.kc-archive--news .kc-article-card__media {
    aspect-ratio: 16 / 9;
}

.kc-archive--news .kc-article-card__body {
    gap: 10px;
}

.kc-archive--news .kc-article-card__meta:last-child {
    order: -1;
    color: var(--kc-text-secondary);
    font-size: 0.8125rem;
}

/* MARKETPLACE — visual/CTA-oriented: warmer shell, image-forward cards. */
.kc-archive--marketplace .kc-archive-hero {
    padding: var(--kc-space-8);
    border: 1px solid #f4e3a7;
    border-radius: 26px;
    background: var(--kc-warm);
    box-shadow: 0 16px 42px rgba(0, 35, 94, 0.06);
}

.kc-archive--marketplace .kc-article-card {
    border-radius: 22px;
    border-block-end: 4px solid var(--kc-yellow);
}

.kc-archive--marketplace .kc-article-card__media {
    aspect-ratio: 4 / 3;
    background: var(--kc-warm-strong);
}

.kc-archive--marketplace .kc-article-card__title {
    font-size: 1.2rem;
}

/* LEARNING — structured: calm blue surface, instructional side accent. */
.kc-archive--learning .kc-archive-hero {
    padding: var(--kc-space-7);
    border-radius: 22px;
    background: var(--kc-sky-soft);
    border: 1px solid #d9eaf8;
}

.kc-archive--learning .kc-article-card {
    border-inline-start: 4px solid var(--kc-teal);
    border-radius: 16px;
    box-shadow: none;
}

.kc-archive--learning .kc-article-card__media {
    aspect-ratio: 3 / 2;
}

/* ARTICLES — magazine/long-form: text first, quieter imagery. */
.kc-archive--articles .kc-archive-listing .elementor-loop-container,
.kc-archive--articles .kc-archive-listing > .elementor-widget-container {
    align-items: stretch;
}

.kc-archive--articles .kc-article-card {
    border-radius: 20px;
    border-block-start: 3px solid var(--kc-navy);
    box-shadow: none;
}

.kc-archive--articles .kc-article-card__media {
    order: 2;
    aspect-ratio: 16 / 10;
    margin: 0 var(--kc-space-5) var(--kc-space-5);
    border-radius: 14px;
}

.kc-archive--articles .kc-article-card__body {
    order: 1;
    padding-block-end: var(--kc-space-4);
}

.kc-archive--articles .kc-article-card__title {
    font-size: 1.3rem;
    line-height: 1.6;
}

/* ANNOUNCEMENT — notice/list: compact row, date/status forward. */
.kc-archive--announcement .kc-archive-hero {
    padding: var(--kc-space-6) var(--kc-space-7);
    border-inline-start: 6px solid var(--kc-yellow);
    border-radius: 18px;
    background: var(--kc-warm);
}

.kc-archive--announcement .kc-article-card {
    display: grid;
    grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
    border-radius: 16px;
    box-shadow: none;
}

.kc-archive--announcement .kc-article-card__media {
    aspect-ratio: auto;
    min-height: 100%;
}

.kc-archive--announcement .kc-article-card__body {
    justify-content: center;
}

.kc-archive--announcement .kc-article-card__meta:last-child {
    order: -1;
    color: var(--kc-text-secondary);
    font-weight: 700;
}

/* GALLERY — media first: square imagery, minimal text density. */
.kc-archive--gallery .kc-archive-hero {
    padding: var(--kc-space-7);
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid var(--kc-line);
}

.kc-archive--gallery .kc-article-card {
    border: 0;
    border-radius: 18px;
    background: var(--kc-soft);
    box-shadow: none;
}

.kc-archive--gallery .kc-article-card__media {
    aspect-ratio: 1 / 1;
    border-radius: 18px;
}

.kc-archive--gallery .kc-article-card__excerpt {
    display: none;
}

.kc-archive--gallery .kc-article-card__body {
    padding: var(--kc-space-4);
}

/* VIDEO — player language: 16:9 media with restrained play marker. */
.kc-archive--video .kc-archive-hero {
    padding: var(--kc-space-7);
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid var(--kc-line);
    box-shadow: var(--kc-shadow-editorial);
}

.kc-archive--video .kc-article-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--kc-navy);
}

.kc-archive--video .kc-article-card__media::after {
    content: "▶";
    position: absolute;
    inset-inline-start: 18px;
    inset-block-end: 18px;
    display: grid;
    place-items: center;
    inline-size: 46px;
    block-size: 46px;
    border-radius: 50%;
    background: var(--kc-yellow);
    color: var(--kc-navy);
    font-size: 1rem;
    line-height: 1;
    pointer-events: none;
    box-shadow: 0 8px 24px rgba(0, 35, 94, 0.18);
}

/* GENERAL / NON-NEWS — flexible but still institutional. */
.kc-archive--general .kc-archive-hero {
    padding: var(--kc-space-7);
    border: 1px solid var(--kc-line);
    border-radius: 22px 8px 22px 22px;
    background: #ffffff;
    box-shadow: var(--kc-shadow-1);
}

.kc-archive--general .kc-article-card {
    border-radius: 18px;
    border-block-end: 3px solid var(--kc-teal);
}

/* CALENDAR — event/date first: date block leads the card. */
.kc-archive--calendar .kc-archive-hero {
    padding: var(--kc-space-7);
    border-radius: 22px;
    background: var(--kc-soft);
    border: 1px solid var(--kc-line);
}

.kc-archive--calendar .kc-article-card {
    border-radius: 18px;
    box-shadow: none;
}

.kc-archive--calendar .kc-article-card__meta:last-child {
    order: -1;
    width: fit-content;
    padding: 7px 12px;
    border-radius: var(--kc-radius-pill);
    background: var(--kc-yellow);
    color: var(--kc-navy);
    font-weight: 800;
}

.kc-archive--calendar .kc-article-card__media {
    aspect-ratio: 16 / 8;
}

/* ==========================================================================\n   Single post variants — one dynamic Elementor template, primary category\n   chooses presentation. Content remains owned by the WordPress post.\n   ========================================================================== */

body[class*="kc-editorial--variant-"] .kc-single-v3 .kc-article-hero__title,
body[class*="kc-editorial--variant-"] .kc-single-v3 .kc-article-content,
body[class*="kc-editorial--variant-"] .kc-single-v3 .kc-article-content h2,
body[class*="kc-editorial--variant-"] .kc-single-v3 .kc-article-content h3,
body[class*="kc-editorial--variant-"] .kc-single-v3 .kc-article-content h4 {
    color: var(--kc-text-primary);
}

/* News */
body.kc-editorial--variant-news .kc-single-v3 .kc-article-shell {
    max-width: 920px;
}

body.kc-editorial--variant-news .kc-single-v3 .kc-article-hero {
    gap: var(--kc-space-3);
    padding-block-start: var(--kc-space-7);
}

body.kc-editorial--variant-news .kc-single-v3 .kc-article-hero::after {
    content: "";
    width: 72px;
    height: 7px;
    border-radius: var(--kc-radius-pill);
    background: linear-gradient(90deg, var(--kc-yellow) 0 58%, var(--kc-teal) 58% 100%);
}

body.kc-editorial--variant-news .kc-single-v3 .kc-article-hero__media {
    border-radius: 20px;
}

/* Marketplace */
body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-shell {
    max-width: 1080px;
}

body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
    grid-template-areas:
        "badge media"
        "title media"
        "dek media"
        "meta media";
    align-items: center;
    gap: var(--kc-space-4) var(--kc-space-7);
    padding: var(--kc-space-7);
    border: 1px solid #f4e3a7;
    border-radius: 26px;
    background: var(--kc-warm);
}

body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-hero > .elementor-widget-koodakan_editorial_category_badge { grid-area: badge; }
body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-hero__title { grid-area: title; }
body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-hero__dek { grid-area: dek; }
body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-meta { grid-area: meta; }
body.kc-editorial--variant-marketplace .kc-single-v3 .kc-article-hero__media { grid-area: media; margin: 0; border-radius: 20px; }

/* Learning */
body.kc-editorial--variant-learning .kc-single-v3 .kc-article-hero {
    padding: var(--kc-space-7);
    border-radius: 24px;
    border-inline-start: 6px solid var(--kc-teal);
    background: var(--kc-sky-soft);
}

body.kc-editorial--variant-learning .kc-single-v3 .kc-article-content {
    counter-reset: kc-learning-section;
}

body.kc-editorial--variant-learning .kc-single-v3 .kc-article-content h2 {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

body.kc-editorial--variant-learning .kc-single-v3 .kc-article-content h2::before {
    counter-increment: kc-learning-section;
    content: counter(kc-learning-section);
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--kc-yellow);
    color: var(--kc-navy);
    font-size: 0.9rem;
    font-weight: 800;
}

/* Articles */
body.kc-editorial--variant-articles .kc-single-v3 .kc-article-shell {
    max-width: 980px;
}

body.kc-editorial--variant-articles .kc-single-v3 .kc-article-hero {
    text-align: center;
    align-items: center;
}

body.kc-editorial--variant-articles .kc-single-v3 .kc-article-meta {
    justify-content: center;
}

body.kc-editorial--variant-articles .kc-single-v3 .kc-article-reading {
    max-width: 780px;
    margin-inline: auto;
}

/* Announcements */
body.kc-editorial--variant-announcement .kc-single-v3 .kc-article-hero {
    padding: var(--kc-space-7);
    border-inline-start: 6px solid var(--kc-yellow);
    border-radius: 20px;
    background: var(--kc-warm);
}

body.kc-editorial--variant-announcement .kc-single-v3 .kc-article-reading {
    padding: var(--kc-space-6);
    border: 1px solid var(--kc-line);
    border-radius: 18px;
    background: #ffffff;
}

/* Gallery */
body.kc-editorial--variant-gallery .kc-single-v3 .kc-article-shell {
    max-width: 1120px;
}

body.kc-editorial--variant-gallery .kc-single-v3 .kc-article-hero__media {
    border-radius: 24px;
}

body.kc-editorial--variant-gallery .kc-single-v3 .kc-article-reading {
    max-width: 1040px;
    margin-inline: auto;
}

body.kc-editorial--variant-gallery .kc-single-v3 .kc-article-content .gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Video */
body.kc-editorial--variant-video .kc-single-v3 .kc-article-shell {
    max-width: 1040px;
}

body.kc-editorial--variant-video .kc-single-v3 .kc-article-content iframe,
body.kc-editorial--variant-video .kc-single-v3 .kc-article-content video,
body.kc-editorial--variant-video .kc-single-v3 .kc-article-content .wp-video,
body.kc-editorial--variant-video .kc-single-v3 .kc-article-content .wp-block-embed__wrapper {
    padding: 10px;
    border-radius: 20px;
    background: var(--kc-navy);
}

/* General */
body.kc-editorial--variant-general .kc-single-v3 .kc-article-hero {
    padding: var(--kc-space-7);
    border: 1px solid var(--kc-line);
    border-radius: 22px 8px 22px 22px;
    background: #ffffff;
    box-shadow: var(--kc-shadow-1);
}

/* Calendar */
body.kc-editorial--variant-calendar .kc-single-v3 .kc-article-hero {
    padding: var(--kc-space-7);
    border-radius: 22px;
    background: var(--kc-soft);
    border: 1px solid var(--kc-line);
}

body.kc-editorial--variant-calendar .kc-single-v3 .kc-article-meta__date {
    width: fit-content;
    padding: 9px 14px;
    border-radius: var(--kc-radius-pill);
    background: var(--kc-yellow);
    color: var(--kc-navy);
    font-weight: 800;
}

/* ==========================================================================
   Legacy Elementor post-content adapter

   Old posts can contain a complete page layout inside Elementor's Post Content
   output. Single v3 is now the presentation authority, so this adapter removes
   only the legacy *page shell* at render time while preserving the original
   widgets/content. Nothing is written back to _elementor_data or post_content.
   ========================================================================== */

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-reading {
    width: 100%;
    max-width: 860px;
    min-width: 0;
    margin-inline: auto;
    overflow: hidden;
    overflow: clip;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible;
    background: transparent !important;
}

/* New-container Elementor posts: normalize only root/page-level containers. */
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor > .e-con,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] > .e-con {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: var(--kc-space-5) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0 var(--kc-space-6) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    inset: auto !important;
    transform: none !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor > .e-con > .e-con-inner,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] > .e-con > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--kc-space-5) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Legacy section/column Elementor posts: flatten the outer grid into article flow. */
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor > .elementor-section,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-section-wrap > .elementor-section,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] > .elementor-section {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0 var(--kc-space-6) !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    transform: none !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor > .elementor-section > .elementor-container,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-section-wrap > .elementor-section > .elementor-container,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] > .elementor-section > .elementor-container {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--kc-space-5) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content > .elementor > .elementor-section > .elementor-container > .elementor-column,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-section-wrap > .elementor-section > .elementor-container > .elementor-column,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content [data-elementor-type="wp-post"] > .elementor-section > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-section-stretched {
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
}

/* Remove legacy page decoration/spacing while keeping the actual widgets. */
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-shape,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-background-overlay,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-spacer {
    display: none !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget {
    max-width: 100% !important;
    min-width: 0 !important;
    margin-block: 0 var(--kc-space-5) !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget:last-child {
    margin-block-end: 0 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-container {
    max-width: 100% !important;
    min-width: 0 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-text-editor,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-text-editor *:not(a),
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-heading .elementor-heading-title {
    color: var(--kc-text-primary) !important;
    font-family: var(--kc-font-body) !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-heading .elementor-heading-title {
    line-height: 1.55 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-text-editor p {
    line-height: 2 !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content img,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content iframe,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content video,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content svg {
    max-width: 100% !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content img,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content video {
    height: auto;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-image img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    margin-inline: auto;
    border-radius: var(--kc-radius-md);
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-video,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-wrapper,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-video-wrapper {
    width: 100% !important;
    max-width: 100% !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-button {
    min-height: 44px;
    padding: 11px 22px !important;
    border: 1px solid var(--kc-navy) !important;
    border-radius: var(--kc-radius-pill) !important;
    background: var(--kc-navy) !important;
    color: #ffffff !important;
    font-family: var(--kc-font-body) !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-button:hover {
    border-color: var(--kc-yellow) !important;
    background: var(--kc-yellow) !important;
    color: var(--kc-navy) !important;
}

body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-button:focus-visible {
    outline: 3px solid var(--kc-teal-ink);
    outline-offset: 3px;
}

/* Keep nested content structure editable, but prevent any nested box from
   escaping the editorial reading column. */
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .e-con,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-container,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-column,
body.kc-editorial--legacy-elementor .kc-single-v3 .kc-article-content .elementor-widget-wrap {
    max-width: 100% !important;
    min-width: 0 !important;
}


/* ==========================================================================
   v0.5 Adaptive editorial layer
   Read-only ContentState classes make incomplete/future content intentional
   without creating fake copy or writing placeholder data to WordPress.
   ========================================================================== */

.kc-single-v4 .kc-editorial-state-notice {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0 0 var(--kc-space-5);
    padding: 16px 18px;
    border: 1px solid #f2d36d;
    border-radius: 16px;
    background: #fff9e8;
    color: var(--kc-text-primary);
}

.kc-single-v4 .kc-editorial-state-notice__dot {
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
    margin-top: 7px;
    border-radius: 50%;
    background: var(--kc-yellow);
    box-shadow: 0 0 0 5px rgba(255, 192, 0, 0.18);
}

.kc-single-v4 .kc-editorial-state-notice strong {
    display: block;
    margin-bottom: 4px;
    color: var(--kc-text-primary);
}

.kc-single-v4 .kc-editorial-state-notice p {
    margin: 0;
    color: var(--kc-text-secondary);
}

body.kc-content--no-excerpt .kc-single-v4 .kc-article-hero__dek:empty,
body.kc-content--no-excerpt .kc-single-v4 .kc-article-hero__dek .elementor-widget-container:empty,
body.kc-content--no-featured-image .kc-single-v4 .kc-article-hero__media:empty,
body.kc-content--no-featured-image .kc-single-v4 .kc-article-hero__media .elementor-widget-container:empty {
    display: none !important;
}

/* A missing featured image becomes a brand-composed hero, not a broken hole. */
body.kc-content--no-featured-image .kc-single-v4 .kc-article-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 300px;
    justify-content: center;
}

body.kc-content--no-featured-image .kc-single-v4 .kc-article-hero::before {
    content: "";
    position: absolute;
    inset-inline-end: clamp(-74px, -5vw, -28px);
    inset-block-start: clamp(-92px, -7vw, -48px);
    width: clamp(170px, 22vw, 310px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(255, 192, 0, 0.16);
    z-index: -1;
}

body.kc-content--no-featured-image .kc-single-v4 .kc-article-hero::after {
    content: "";
    position: absolute;
    inset-inline-end: clamp(60px, 11vw, 160px);
    inset-block-end: 28px;
    width: 62px;
    height: 62px;
    border: 8px solid rgba(62, 174, 187, 0.22);
    border-radius: 50%;
    z-index: -1;
}

/* Empty/minimal public posts stay visually bounded while editorial catches up. */
body.kc-content--empty .kc-single-v4 .kc-article-reading,
body.kc-content--minimal .kc-single-v4 .kc-article-reading {
    min-height: 180px;
    padding: var(--kc-space-6);
    border: 1px dashed #c8d7de;
    border-radius: 18px;
    background: #fbfcfc;
}

/* Short copy should not be stretched into an article-shaped void. */
body.kc-content--short .kc-single-v4 .kc-article-shell {
    max-width: 880px;
}

body.kc-content--short .kc-single-v4 .kc-article-reading {
    max-width: 760px;
    margin-inline: auto;
}

/* Long-form copy gets a calm reading measure regardless of category decoration. */
body.kc-content--long .kc-single-v4 .kc-article-content {
    line-height: 2.05;
}

body.kc-content--text-only .kc-single-v4 .kc-article-hero {
    padding-block: clamp(38px, 7vw, 84px);
}

/* Blueprint-specific editorial personalities. */
.kc-single-blueprint--news .kc-article-hero {
    border-block-end: 1px solid var(--kc-line);
}
.kc-single-blueprint--news .kc-article-reading {
    max-width: 820px;
    margin-inline: auto;
}

.kc-single-blueprint--marketplace .kc-article-reading {
    padding: var(--kc-space-6);
    border: 1px solid #f1e1aa;
    border-radius: 22px;
    background: #fffdf7;
}

.kc-single-blueprint--learning .kc-article-reading {
    max-width: 860px;
    margin-inline: auto;
}
.kc-single-blueprint--learning .kc-article-content blockquote {
    border-inline-start-color: var(--kc-teal);
    background: var(--kc-sky-soft);
}

.kc-single-blueprint--articles .kc-article-reading {
    max-width: 760px;
    margin-inline: auto;
}
.kc-single-blueprint--articles .kc-article-hero__title {
    max-width: 880px;
    margin-inline: auto;
}

.kc-single-blueprint--announcement .kc-article-shell {
    max-width: 900px;
}
.kc-single-blueprint--announcement .kc-article-reading {
    box-shadow: 0 10px 32px rgba(0, 35, 94, 0.06);
}

.kc-single-blueprint--gallery .kc-article-shell {
    max-width: 1160px;
}
.kc-single-blueprint--gallery .kc-article-content .gallery,
.kc-single-blueprint--gallery .kc-article-content .wp-block-gallery {
    gap: 14px;
}

.kc-single-blueprint--video .kc-article-reading {
    max-width: 980px;
    margin-inline: auto;
}
.kc-single-blueprint--video .kc-article-content iframe,
.kc-single-blueprint--video .kc-article-content video {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
}

.kc-single-blueprint--general .kc-article-shell {
    max-width: 940px;
}

.kc-single-blueprint--calendar .kc-article-shell {
    max-width: 900px;
}
.kc-single-blueprint--calendar .kc-article-reading {
    padding: var(--kc-space-6);
    border: 1px solid var(--kc-line);
    border-radius: 20px;
    background: #fff;
}
