/*
 * KurdNation / Newspaper manufacturer-aligned design layer — R23 / 2026-10-06
 * Loaded by Cohesive Style 3.2 on Newspaper / its child themes.
 * Remove previous custom UI CSS/JS; Site Polish 1.8 yields to this owner.
 * A small native-slider control helper loads only on the marked homepage.
 * No fonts, images, libraries, or other network resources are requested here.
 * Native Newspaper/WPBakery grids, menus, sliders and plugin controls remain
 * responsible for their own geometry and behavior. Use the supplied homepage
 * with .kn-home-row hooks; unmarked pages keep their native component layout.
 */

body.kncs-r21 {
    --kn-font: "Vazirmatn", "Vazir", "vazir-fd-wol", "Noto Sans Arabic", Tahoma, Arial, sans-serif;
    --kn-ink: #172635;
    --kn-muted: #526375;
    --kn-navy: #132c43;
    --kn-navy-deep: #0d2032;
    --kn-orange: #f28c28;
    --kn-link: #914400;
    --kn-link-hover: #663100;
    --kn-paper: #ffffff;
    --kn-canvas: #ffffff;
    --kn-tint: #fff5e9;
    --kn-border: #d8e0e7;
    --kn-divider: #e8edf1;
    --kn-content-max: 1280px;
    --kn-edge: 12px;
    --kn-gutter: 10px;
    --kn-section-gap: 20px;
    --kn-radius: 6px;
    --kn-focus: #076cac;
    /* Aliases for existing custom components that consume the older tokens. */
    --kn-blue: var(--kn-navy);
    --kn-dark-blue: var(--kn-navy-deep);
    --kn-primary: var(--kn-orange);
    --kn-primary-dark: var(--kn-link);
    --kn-primary-soft: var(--kn-tint);
    --kn-secondary: var(--kn-navy);
    --kn-secondary-dark: var(--kn-navy-deep);
    --kn-panel: var(--kn-paper);
    --kn-page: var(--kn-canvas);
    --kn-text: var(--kn-ink);
    --kn-text-muted: var(--kn-muted);
    --kn-border-soft: var(--kn-border);
    --kn-divider-soft: var(--kn-divider);
}
body.kncs-r21.kncs-fluid { --kn-content-max: none; }

/* Reading defaults. Font names use existing local/theme installations only. */
body.kncs-r21 {
    color: var(--kn-ink);
    background-color: var(--kn-canvas);
    font-family: var(--kn-font);
    font-size: 16px;
    line-height: 1.7;
}
body.kncs-r21 .td-main-content-wrap,
body.kncs-r21 .td-main-page-wrap { background-color: var(--kn-canvas); }

/* Only outer containers and their direct composer row wrappers are fluid.
   Native nested grids retain their percentage columns and responsive rules. */
body.kncs-r21 .td-main-content-wrap > .td-container,
body.kncs-r21 .td-main-page-wrap > .td-container,
body.kncs-r21 .td-main-content-wrap > .tdc-content-wrap,
body.kncs-r21 .td-main-page-wrap > .tdc-content-wrap,
body.kncs-r21 .td-header-wrap .td-header-top-menu,
body.kncs-r21 .td-header-menu-wrap > .td-container,
body.kncs-r21 .td-header-menu-wrap-full > .td-container,
body.kncs-r21 .td-footer-wrapper > .td-container,
body.kncs-r21 .td-sub-footer-container > .td-container {
    max-width: var(--kn-content-max);
    margin-inline: auto;
}
body.kncs-r21 .td-main-content-wrap,
body.kncs-r21 .td-main-page-wrap {
    box-sizing: border-box;
    padding-inline: var(--kn-edge);
}
body.kncs-r21 .td-main-content-wrap > .td-container,
body.kncs-r21 .td-main-page-wrap > .td-container,
body.kncs-r21 .td-main-content-wrap > .tdc-content-wrap,
body.kncs-r21 .td-main-page-wrap > .tdc-content-wrap {
    box-sizing: border-box;
    width: 100%;
    padding-inline: 0;
}
body.kncs-r21 .td-main-content-wrap > .tdc-content-wrap > .tdc-row,
body.kncs-r21 .td-main-content-wrap > .tdc-content-wrap > .wpb-content-wrapper > .tdc-row,
body.kncs-r21 .td-main-page-wrap > .tdc-content-wrap > .tdc-row,
body.kncs-r21 .td-main-page-wrap > .tdc-content-wrap > .wpb-content-wrapper > .tdc-row {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    padding-inline: 0;
}
body.kncs-r21 .td-header-wrap .td-header-top-menu,
body.kncs-r21 .td-header-menu-wrap > .td-container,
body.kncs-r21 .td-header-menu-wrap-full > .td-container,
body.kncs-r21 .td-footer-wrapper > .td-container,
body.kncs-r21 .td-sub-footer-container > .td-container {
    box-sizing: border-box;
    width: calc(100% - 2 * var(--kn-edge));
    padding-inline: 0;
}
/* Native article/footer grids use 24px gutters. Match just their outer rows
   to the new edge; changing every nested td-pb-row would break news modules. */
body.kncs-r21 .td-main-content-wrap > .td-container > .td-pb-row,
body.kncs-r21 .td-main-page-wrap > .td-container > .td-pb-row,
body.kncs-r21 .td-footer-wrapper > .td-container > .td-pb-row,
body.kncs-r21 .td-sub-footer-container > .td-container > .td-pb-row {
    width: auto;
    margin-inline: calc(-1 * var(--kn-gutter));
}
body.kncs-r21 .td-main-content-wrap > .td-container > .td-pb-row > [class*="td-pb-span"],
body.kncs-r21 .td-main-page-wrap > .td-container > .td-pb-row > [class*="td-pb-span"],
body.kncs-r21 .td-footer-wrapper > .td-container > .td-pb-row > [class*="td-pb-span"],
body.kncs-r21 .td-sub-footer-container > .td-container > .td-pb-row > [class*="td-pb-span"] {
    box-sizing: border-box;
    padding-inline: var(--kn-gutter);
}

/* The custom homepage has one reading width. No site-wide 100vw, negative
   viewport margins, overflow masking, or resets of td-pb-span widths. */
body.kncs-r21.home .td-main-content-wrap,
body.kncs-r21.home .td-main-page-wrap {
    box-sizing: border-box;
    padding-inline: var(--kn-edge);
    padding-block: 12px 28px;
}
body.kncs-r21.home .td-main-content-wrap > .td-container,
body.kncs-r21.home .td-main-page-wrap > .td-container,
body.kncs-r21.home .td-main-content-wrap > .tdc-content-wrap,
body.kncs-r21.home .td-main-page-wrap > .tdc-content-wrap {
    width: 100%;
    padding-inline: 0;
}
body.kncs-r21.home .kn-home-row {
    box-sizing: border-box;
    width: auto;
    margin-block: 0 var(--kn-section-gap);
    margin-inline: calc(-1 * var(--kn-gutter));
    padding-block: 0;
}
/* tagDiv's legacy renderer omits vc_column-inner. Match its real columns. */
body.kncs-r21.home .kn-home-row > .tdc-column {
    box-sizing: border-box;
    padding-inline: var(--kn-gutter);
    padding-block: 0;
}
body.kncs-r21.home .kn-home-row > .tdc-column.vc_column_container > .vc_column-inner {
    padding-inline: 0;
}
body.kncs-r21.home .kn-home-row > .vc_column_container > .vc_column-inner {
    box-sizing: border-box;
    padding-inline: var(--kn-gutter);
    padding-block: 0;
}
/* These five rules override WPBakery's inline stretch offsets only on our
   explicitly named rows. They do not alter native theme or plugin grids. */
body.kncs-r21.home .kn-home-row[data-vc-full-width="true"] {
    width: auto !important;
    left: auto !important;
    right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.kncs-r21.home .kn-home-row .wpb_content_element,
body.kncs-r21.home .kn-home-row .td_block_wrap,
body.kncs-r21.home .kn-home-row .vc_btn3-container { margin-bottom: 0; }
body.kncs-r21.home .kn-home-row .wpb_wrapper > p:empty { display: none; }
body.kncs-r21.home .kn-home-banner-row { margin-bottom: 20px; }
body.kncs-r21.home .kn-home-hero-row { margin-bottom: var(--kn-section-gap); }

/* Regular news blocks. Sliders, Big Grid and plugin internals receive no
   new padding, forced height, flex engine, or thumbnail crop. */
body.kncs-r21.home .kn-home-row .td_block_1,
body.kncs-r21.home .kn-home-row .td_block_8,
body.kncs-r21.home .kn-home-row .td_block_15,
body.kncs-r21.home .kn-home-row .td_block_18,
body.kncs-r21.home .kn-home-hero-row .td_block_23,
body.kncs-r21.home .kn-side-card > .vc_column-inner > .wpb_wrapper {
    box-sizing: border-box;
    padding: 14px 0 0;
    border: 0;
    border-block-start: 1px solid var(--kn-border);
    border-radius: 0;
    background: var(--kn-paper);
}
body.kncs-r21.home .kn-media-card > .vc_column-inner > .wpb_wrapper {
    padding-block: 18px 0;
    border-block-start: 3px solid var(--kn-navy);
}
body.kncs-r21.home .kn-side-card.tdc-column > .wpb_wrapper {
    box-sizing: border-box;
    min-width: 0;
}
body.kncs-r21.home .kn-media-card.tdc-column > .wpb_wrapper {
    padding-block: 14px 0;
    border-block-start: 3px solid var(--kn-navy);
}
/* R24 media uses two native lead cards in half-width inner columns. Match
   only this inner row's gutters; native responsive column widths are kept. */
body.kncs-r21.home .kn-media-grid {
    width: auto;
    margin-inline: calc(-1 * var(--kn-gutter));
}
body.kncs-r21.home .kn-media-grid > .vc_column_container,
body.kncs-r21.home .kn-media-grid > [class*="td-pb-span"] {
    box-sizing: border-box;
    padding-inline: var(--kn-gutter);
}
body.kncs-r21.home .kn-media-grid > .vc_column_container > .vc_column-inner {
    padding-inline: 0;
}
body.kncs-r21.home .kn-home-hero-messages .td_module_7 .td-module-title {
    font-family: var(--kn-font);
    font-size: 16px;
    line-height: 1.65;
    overflow-wrap: break-word;
}
body.kncs-r21.home .kn-home-row .td_block_1 .td_module_wrap,
body.kncs-r21.home .kn-home-row .td_block_8 .td_module_wrap,
body.kncs-r21.home .kn-home-row .td_block_15 .td_module_wrap,
body.kncs-r21.home .kn-home-row .td_block_18 .td_module_wrap {
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--kn-divider);
}
body.kncs-r21.home .kn-home-row .td_module_wrap:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}
/* Static lead-story module used by the replacement homepage. Its media
   dimensions and responsive image behavior remain theme-owned. */
body.kncs-r21.home .kn-home-hero-row .td_module_18 .td-module-title {
    margin-block: 14px 10px;
    color: var(--kn-navy);
    font-family: var(--kn-font);
    font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 700;
    line-height: 1.6;
    overflow-wrap: break-word;
}
body.kncs-r21.home .kn-home-hero-row .td_module_18 .td-module-title a {
    color: inherit;
    font: inherit;
    text-underline-offset: .2em;
}
body.kncs-r21.home .kn-home-hero-row .td_module_18 .td-module-title a:hover {
    color: var(--kn-link);
    text-decoration: underline;
}

/* R24 section bars fill their own column, including the messages sidebar.
   Header-color overrides are required because tagDiv emits !important color
   rules after this file. Native template-14 margins and decorative pseudo
   elements are reset only for the marked homepage headings. */
body.kncs-r21.home .kn-home-row .block-title,
body.kncs-r21.home .kn-home-row .td-block-title {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 47px;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    border-block-end: 3px solid var(--kn-orange);
    border-radius: 0;
    background: var(--kn-navy) !important;
    overflow: visible;
    color: var(--kn-paper);
    font-family: var(--kn-font);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.55;
    text-align: start;
    text-transform: none;
    white-space: normal;
    overflow-wrap: break-word;
}
body.kncs-r21.home .kn-home-row .block-title > span,
body.kncs-r21.home .kn-home-row .block-title > a,
body.kncs-r21.home .kn-home-row .td-block-title > span,
body.kncs-r21.home .kn-home-row .td-block-title > a {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding-block: 8px;
    padding-inline: 14px;
    border: 0;
    background: transparent !important;
    color: var(--kn-paper) !important;
    font: inherit;
    text-align: inherit;
    white-space: normal;
    overflow-wrap: inherit;
    text-decoration: none;
}
body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title)::before,
body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title)::after,
body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title) > :is(a, span)::before,
body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title) > :is(a, span)::after {
    content: none;
    display: none;
}
body.kncs-r21.home .kn-home-row .block-title > a:hover,
body.kncs-r21.home .kn-home-row .td-block-title > a:hover {
    text-decoration: underline;
    text-underline-offset: .2em;
}
body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title) > a:focus-visible {
    outline: 3px solid var(--kn-paper);
    outline-offset: -5px;
    box-shadow: none;
}

/* Keep optional native category filters in their own normal-flow row, so
   they cannot overlay a long or wrapped title. Native dropdown visibility,
   list positioning and filter behavior remain controlled by Newspaper. */
body.kncs-r21.home .kn-home-row .td-block-title-wrap .td-wrapper-pulldown-filter,
body.kncs-r21.home .kn-home-row .td-subcat-filter {
    position: relative;
    inset: auto;
    max-width: 100%;
    margin: 0 0 14px;
    background: var(--kn-paper) !important;
    color: var(--kn-navy);
    text-align: end;
}
body.kncs-r21.home .kn-home-row .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option,
body.kncs-r21.home .kn-home-row .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option i,
body.kncs-r21.home .kn-home-row .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-link,
body.kncs-r21.home .kn-home-row .td-subcat-filter :is(a, .td-subcat-more, .td-subcat-more span, .td-subcat-more i) {
    color: var(--kn-navy);
}
body.kncs-r21.home .kn-home-row .td-subcat-filter .td-subcat-more {
    background: var(--kn-paper);
}
body.kncs-r21.home .kn-home-row .td-block-title-wrap .td-pulldown-filter-link:hover,
body.kncs-r21.home .kn-home-row .td-subcat-filter a:hover {
    color: var(--kn-link);
    text-decoration: underline;
}

/* R25: media, membership and programme links share the same section bar.
   Their original links and native responsive columns are retained. */
body.kncs-r21.home .kn-home-row :is(.kn-media-card, .kn-member-card, .kn-program-card) .kn-home-cta {
    width: 100%;
    text-align: start;
}
body.kncs-r21.home .kn-home-row :is(.kn-media-card, .kn-member-card, .kn-program-card) .kn-home-cta .vc_btn3 {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 47px;
    padding-block: 8px;
    padding-inline: 14px;
    border: 0;
    border-block-end: 3px solid var(--kn-orange);
    border-radius: 0;
    background: var(--kn-navy);
    color: var(--kn-paper);
    font-size: 21px;
    line-height: 1.55;
    text-align: start;
    white-space: normal;
    overflow-wrap: break-word;
}
body.kncs-r21.home .kn-home-row :is(.kn-media-card, .kn-member-card, .kn-program-card) .kn-home-cta .vc_btn3:hover {
    background: var(--kn-navy);
    border-color: var(--kn-orange);
    color: var(--kn-paper);
    text-decoration: underline;
    text-underline-offset: .2em;
}
body.kncs-r21.home .kn-home-row :is(.kn-media-card, .kn-member-card, .kn-program-card) .kn-home-cta .vc_btn3:focus-visible {
    outline: 3px solid var(--kn-paper);
    outline-offset: -5px;
    box-shadow: none;
}

/* Ordinary modules only. Text on photographic overlays remains theme-owned. */
body.kncs-r21 .td-main-content-wrap :is(.td_module_1, .td_module_2, .td_module_3,
    .td_module_4, .td_module_5, .td_module_6, .td_module_8,
    .td_module_10, .td_module_15) .td-module-title {
    margin-block: 0 8px;
    color: var(--kn-ink);
    font-family: var(--kn-font);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    overflow-wrap: break-word;
}
body.kncs-r21 .td-main-content-wrap :is(.td_module_6, .td_module_8,
    .td_module_10, .td_module_15) .td-module-title { font-size: 18px; }
body.kncs-r21 .td-main-content-wrap :is(.td_module_1, .td_module_2, .td_module_3,
    .td_module_4, .td_module_5, .td_module_6, .td_module_8,
    .td_module_10, .td_module_15) .td-module-title a {
    color: inherit;
    font: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}
body.kncs-r21 .td-main-content-wrap :is(.td_module_1, .td_module_2, .td_module_3,
    .td_module_4, .td_module_5, .td_module_6, .td_module_8,
    .td_module_10, .td_module_15) .td-module-title a:hover {
    color: var(--kn-link);
    text-decoration: underline;
}
body.kncs-r21 .td-main-content-wrap .td-excerpt {
    color: var(--kn-muted);
    font-family: var(--kn-font);
    font-size: 15px;
    line-height: 1.85;
}
body.kncs-r21 .td-main-content-wrap .td-excerpt p { font: inherit; }
body.kncs-r21 .td-main-content-wrap :is(.td_module_1, .td_module_2, .td_module_3,
    .td_module_4, .td_module_5, .td_module_6, .td_module_8,
    .td_module_10, .td_module_15) :is(.td-post-date, .td-module-date,
    .td-post-author-name, .td-post-author-name a) {
    color: var(--kn-muted);
    font-family: var(--kn-font);
    font-size: 12px;
    line-height: 1.7;
}

/* Standard Pack mx2 reserves the thumbnail on the left even in RTL pages,
   where the unpinned absolute thumbnail lands on the right. Mirror that
   reservation only; keep the native 80px image and responsive text geometry. */
body.kncs-r21.rtl .td_module_mx2 > .td-module-thumb {
    left: auto;
    right: 0;
}
body.kncs-r21.rtl .td_module_mx2 > .item-details {
    margin-left: 0;
    margin-right: 100px;
}
@media (min-width: 768px) and (max-width: 1018px) {
    body.kncs-r21.rtl .td_block_inner .td_module_mx2 > .item-details {
        margin-right: 95px;
    }
}

/* Posters/logos retain full proportions; native news thumbnail geometry is
   not overridden. Setting width/height attributes server-side is still needed
   to reserve correct image space before images arrive. */
body.kncs-r21.single-post .td-post-content img:not(.emoji):not(.wp-smiley),
body.kncs-r21 .td-post-featured-image img,
body.kncs-r21.home .kn-home-row .wpb_single_image img,
body.kncs-r21 .psk-banner img,
body.kncs-r21 .banner_header img,
body.kncs-r21 .banner_top img {
    max-width: 100%;
    height: auto;
}
body.kncs-r21.home .kn-flat-image img,
body.kncs-r21 .banner_header img,
body.kncs-r21 .banner_top img { display: block; }
body.kncs-r21.home .kn-flat-image .vc_single_image-wrapper { box-shadow: none; }
body.kncs-r21.home .kn-flat-image .vc_box_shadow_3d::before,
body.kncs-r21.home .kn-flat-image .vc_box_shadow_3d::after { display: none; }
body.kncs-r21.home .kn-side-card .wpb_single_image { margin-top: 16px; }
body.kncs-r21.home .kn-side-card .vc_single_image-wrapper { max-width: 100%; }

/* CTAs remain identifiable links/buttons, including on mobile. */
body.kncs-r21.home .kn-home-cta .vc_btn3,
body.kncs-r21.home .kn-home-cta.vc_btn3 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--kn-orange);
    border-radius: 4px;
    background: var(--kn-orange);
    background-image: none;
    color: var(--kn-navy-deep);
    box-shadow: none;
    font-family: var(--kn-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    white-space: normal;
    text-decoration: none;
}
body.kncs-r21.home .kn-home-cta .vc_btn3:hover,
body.kncs-r21.home .kn-home-cta.vc_btn3:hover {
    background: #ffd09e;
    border-color: #e17916;
    color: var(--kn-navy-deep);
}
body.kncs-r21.home .kn-media-card .vc_btn3-container { margin-bottom: 18px; }

/* Native header and navigation are always present. The R21 JS does not
   replace menus or insert a second language selector. Dropdown geometry and
   mobile open/close behavior remain Newspaper's responsibility. */
body.kncs-r21 .td-header-wrap .td-header-top-menu-full {
    background-color: var(--kn-navy-deep);
    color: var(--kn-paper);
}
body.kncs-r21 .td-header-wrap #td-header-search-button,
body.kncs-r21 .td-header-wrap #td-header-search-button .td-icon-search {
    color: var(--kn-navy);
}
body.kncs-r21 .td-header-top-menu .top-header-menu > li > a,
body.kncs-r21 .td-header-top-menu .td-social-icon-wrap > a { color: var(--kn-paper); }
body.kncs-r21 .td-header-top-menu .top-header-menu > li > a {
    font-family: var(--kn-font);
    font-size: 13px;
}
body.kncs-r21 .td-header-menu-wrap-full,
body.kncs-r21 .td-header-menu-wrap { background-color: var(--kn-paper); border-block-end: 1px solid var(--kn-border); }
body.kncs-r21 .td-header-main-menu .sf-menu > li > a,
body.kncs-r21 .td-header-menu-wrap .sf-menu > li > a {
    color: var(--kn-navy);
    font-family: var(--kn-font);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}
body.kncs-r21 .td-header-main-menu .sf-menu > li > a:hover,
body.kncs-r21 .td-header-menu-wrap .sf-menu > li > a:hover,
body.kncs-r21 .td-header-main-menu .sf-menu > .current-menu-item > a,
body.kncs-r21 .td-header-menu-wrap .sf-menu > .current-menu-item > a {
    background: var(--kn-tint);
    box-shadow: inset 0 -3px var(--kn-orange);
}
body.kncs-r21 .td-header-wrap .sf-menu .sub-menu {
    border-top-color: var(--kn-orange);
    background-color: var(--kn-paper);
}
body.kncs-r21 .td-header-wrap .sf-menu .sub-menu a {
    color: var(--kn-ink);
    font-family: var(--kn-font);
}
body.kncs-r21 .td-header-wrap .sf-menu .sub-menu a:hover {
    color: var(--kn-link);
    background: var(--kn-tint);
}
/* Theme Panel's saved normal-menu colors have higher specificity than the
   generic submenu rule above. Keep language links readable in every state,
   without changing megamenu article overlays or mobile navigation colors. */
body.kncs-r21 .td-header-wrap .sf-menu .td-normal-menu .sub-menu .td-menu-item > a {
    color: var(--kn-navy);
    background: var(--kn-paper);
}
body.kncs-r21 .td-header-wrap .sf-menu .td-normal-menu .sub-menu .td-menu-item > a:hover,
body.kncs-r21 .td-header-wrap .sf-menu .td-normal-menu .sub-menu .td-menu-item > a:focus-visible,
body.kncs-r21 .td-header-wrap .sf-menu .td-normal-menu .sub-menu .td-menu-item.sfHover > a,
body.kncs-r21 .td-header-wrap .sf-menu .td-normal-menu .sub-menu .td-menu-item.current-menu-item > a {
    color: var(--kn-navy-deep);
    background: var(--kn-tint);
    text-decoration: underline;
    text-underline-offset: .2em;
}
body.kncs-r21 .td-header-sp-logo img,
body.kncs-r21 .td-logo-wrap img { max-width: 100%; height: auto; }
body.kncs-r21 .td-mobile-nav .td-mobile-content a { font-family: var(--kn-font); }

/* Only the intentional ticker wrapper is themed, not arbitrary plugin
   descendants or weather/calendar controls. No animation added. */
body.kncs-r21 .kn-ticker-shell {
    box-sizing: border-box;
    max-width: 100%;
    border-inline-start: 4px solid var(--kn-orange);
    background: var(--kn-navy);
    color: var(--kn-paper);
    font-family: var(--kn-font);
    font-size: 14px;
    line-height: 1.8;
}
body.kncs-r21 .kn-ticker-shell a {
    color: var(--kn-paper);
    text-underline-offset: .2em;
}
body.kncs-r21 .kn-ticker-shell a:hover { text-decoration: underline; }

/* Article typography. Do not force dark title colors on image-overlay post
   templates; only the default normal-flow title is colored here. */
body.kncs-r21.single-post .td-post-header { margin-bottom: 24px; }
body.kncs-r21.single-post h1.entry-title {
    font-family: var(--kn-font);
    font-size: clamp(28px, 3.1vw, 42px);
    font-weight: 700;
    line-height: 1.5;
    overflow-wrap: break-word;
}
body.kncs-r21.single-post .td-post-template-default .td-post-title h1.entry-title {
    color: var(--kn-ink);
}
body.kncs-r21.single-post .td-post-content {
    max-width: 76ch;
    margin-inline: auto;
    color: var(--kn-ink);
    font-family: var(--kn-font);
    font-size: 18px;
    line-height: 1.95;
    overflow-wrap: break-word;
}
body.kncs-r21.single-post .td-post-content p,
body.kncs-r21.single-post .td-post-content li {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}
body.kncs-r21.single-post .td-post-content p { margin-block: 0 1.25em; }
body.kncs-r21.single-post .td-post-content > :first-child { margin-top: 0; }
body.kncs-r21.single-post .td-post-content > :is(h1, h2, h3, h4, h5, h6) {
    margin-block: 1.6em .65em;
    color: var(--kn-navy);
    font-family: inherit;
    font-weight: 700;
    line-height: 1.55;
}
body.kncs-r21.single-post .td-post-content > h1 { font-size: 1.75em; }
body.kncs-r21.single-post .td-post-content > h2 { font-size: 1.5em; }
body.kncs-r21.single-post .td-post-content > h3 { font-size: 1.3em; }
body.kncs-r21.single-post .td-post-content > h4 { font-size: 1.15em; }
body.kncs-r21.single-post .td-post-content > :is(h5, h6) { font-size: 1em; }
body.kncs-r21.single-post .td-post-content > p a,
body.kncs-r21.single-post .td-post-content > :is(ul, ol) > li a {
    color: var(--kn-link);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}
body.kncs-r21.single-post .td-post-content > p a:hover,
body.kncs-r21.single-post .td-post-content > :is(ul, ol) > li a:hover { color: var(--kn-link-hover); }
body.kncs-r21.single-post .td-post-content blockquote {
    margin-inline: 0;
    padding: 18px 22px;
    border-inline-start: 4px solid var(--kn-orange);
    background: var(--kn-paper);
    color: var(--kn-navy);
    font-family: inherit;
    font-size: 1.05em;
    font-style: normal;
}
body.kncs-r21.single-post .td-post-content blockquote p { color: inherit; }
body.kncs-r21.single-post .td-post-content figcaption,
body.kncs-r21.single-post .td-post-content .wp-caption-text {
    color: var(--kn-muted);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.8;
}
body.kncs-r21.single-post .td-post-content pre,
body.kncs-r21.single-post .td-post-content .wp-block-table {
    max-width: 100%;
    overflow-x: auto;
}
body.kncs-r21.single-post .td-post-featured-image { margin-bottom: 26px; }
body.kncs-r21.single-post .td-post-content hr {
    height: 1px;
    margin-block: 28px;
    border: 0;
    background: var(--kn-border);
}
body.kncs-r21.single-post #jp-relatedposts {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--kn-border);
}
/* Comment visibility, account/profile controls and editor links are not
   presentation decisions: use WordPress/plugin settings to configure them. */

/* Footer stays readable and subdued; language/subscription widgets keep
   their native colors inside forms. */
body.kncs-r21 .td-footer-wrapper {
    padding-block: 36px;
    border-top: 4px solid var(--kn-orange);
    background: var(--kn-navy);
    color: var(--kn-paper);
}
body.kncs-r21 .td-footer-wrapper .td-footer-info,
body.kncs-r21 .td-footer-wrapper .td-footer-info p,
body.kncs-r21 .td-footer-wrapper .td-footer-info a {
    color: var(--kn-paper);
    font-family: var(--kn-font);
    line-height: 1.9;
}
body.kncs-r21 .td-footer-wrapper .td-footer-info a:hover { text-decoration: underline; }
body.kncs-r21 .td-footer-wrapper .td-footer-logo img,
body.kncs-r21 .td-footer-wrapper .footer-logo-wrap img { max-width: 160px; height: auto; }
body.kncs-r21 .td-sub-footer-container {
    padding-block: 14px;
    background: var(--kn-navy-deep);
    color: #e1e8ef;
}
body.kncs-r21 .td-sub-footer-container :is(a, .td-sub-footer-copy, .td-sub-footer-menu) {
    color: #e1e8ef;
    font-family: var(--kn-font);
    font-size: 13px;
    line-height: 1.8;
}
body.kncs-r21 .td-sub-footer-container a:hover { text-decoration: underline; }

/* Visible keyboard focus and progressive skip link (created by R21 JS only
   when a main-content target exists). Two-color ring works on light/dark UI. */
body.kncs-r21 .td-main-content-wrap :is(a, button, input, select, textarea, summary):focus-visible,
body.kncs-r21 .td-header-wrap :is(a, button, input):focus-visible,
body.kncs-r21 .td-footer-wrapper :is(a, button, input):focus-visible,
body.kncs-r21 .td-sub-footer-container a:focus-visible {
    outline: 3px solid var(--kn-focus);
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--kn-paper);
}
body.kncs-r21 .kn20-skip-link {
    position: fixed;
    z-index: 100001;
    inset-inline-start: 16px;
    top: -200px;
    padding: 12px 18px;
    min-height: 44px;
    box-sizing: border-box;
    border: 2px solid var(--kn-orange);
    border-radius: 4px;
    background: var(--kn-navy-deep);
    color: var(--kn-paper);
    font-family: var(--kn-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}
body.kncs-r21 .kn20-skip-link:focus { top: 16px; color: var(--kn-paper); }
body.kncs-r21.admin-bar .kn20-skip-link:focus { top: 56px; }
body.kncs-r21 #kn20-main-content { scroll-margin-top: 96px; }

/* Mobile keeps the theme's native stacking; no global force-width rules. */
@media (max-width: 767px) {
    body.kncs-r21 { --kn-gutter: 7px; --kn-section-gap: 18px; }
    body.kncs-r21.home .td-main-content-wrap,
body.kncs-r21.home .td-main-page-wrap { padding-top: 12px; }
    body.kncs-r21.home .kn-home-row > .vc_column_container { margin-bottom: 14px; }
    body.kncs-r21.home .kn-home-row > .vc_column_container:last-child { margin-bottom: 0; }
    body.kncs-r21.home .kn-media-grid > .vc_column_container { margin-bottom: 14px; }
    body.kncs-r21.home .kn-media-grid > .vc_column_container:last-child { margin-bottom: 0; }
    body.kncs-r21.home .kn-home-row :is(.block-title, .td-block-title),
    body.kncs-r21.home .kn-home-row :is(.kn-media-card, .kn-member-card, .kn-program-card) .kn-home-cta .vc_btn3 { font-size: 19px; }
    body.kncs-r21 .td-main-content-wrap :is(.td_module_1, .td_module_2, .td_module_3,
        .td_module_4, .td_module_5) .td-module-title { font-size: 19px; }
    body.kncs-r21.single-post .td-post-content { font-size: 17px; line-height: 1.95; }
    body.kncs-r21.single-post .td-post-content blockquote { padding: 16px; }
    body.kncs-r21 .td-footer-wrapper { padding-block: 28px; }
}

/* Custom effects honor reduced motion. Native JavaScript sliders and ticker
   autoplay must also be disabled in their own settings/shortcodes. */
@media (prefers-reduced-motion: reduce) {
    body.kncs-r21 .kn-home-cta .vc_btn3,
body.kncs-r21 .kn-home-cta.vc_btn3,
body.kncs-r21 .kn20-skip-link,
body.kncs-r21 .kn-ticker-shell a { transition: none; animation: none; }
    body.kncs-r21 #kn20-main-content { scroll-behavior: auto; }
}

@media (forced-colors: active) {
    body.kncs-r21 .kn-home-cta .vc_btn3,
body.kncs-r21 .kn-home-cta.vc_btn3 { border: 1px solid ButtonText; }
    body.kncs-r21 .kn20-skip-link { border: 2px solid LinkText; }
}

/* Print only hides navigation/promo controls; article text and source links
   remain printable. This is independent of screen comment visibility. */
@media print {
    body.kncs-r21,
body.kncs-r21 .td-main-content-wrap,
body.kncs-r21 .td-main-page-wrap { color: #000; background: #fff; }
    body.kncs-r21 .td-header-wrap,
body.kncs-r21 .td-mobile-nav,
body.kncs-r21 .td-footer-wrapper,
body.kncs-r21 .td-sub-footer-container,
body.kncs-r21 .td-post-sharing-top,
body.kncs-r21 .td-post-sharing-bottom,
body.kncs-r21 .kn20-skip-link,
body.kncs-r21 .kn-ticker-shell,
body.kncs-r21.single-post .td-main-sidebar { display: none !important; }
    body.kncs-r21.single-post .td-main-content-wrap > .td-container {
        width: auto;
        max-width: none;
    }
    body.kncs-r21.single-post .td-ss-main-content,
body.kncs-r21.single-post .td-main-content {
        width: 100%;
        float: none;
    }
    body.kncs-r21.single-post .td-post-content {
        max-width: none;
        font-size: 11pt;
        line-height: 1.65;
    }
    body.kncs-r21.single-post h1.entry-title { font-size: 22pt; color: #000; }
    body.kncs-r21.single-post .td-post-content :is(h2, h3, h4) { break-after: avoid; color: #000; }
    body.kncs-r21.single-post .td-post-content :is(img, figure, blockquote, table) { break-inside: avoid; }
    body.kncs-r21.single-post .td-post-content a { color: #000; text-decoration: underline; }
}

/* Shared archive, search and standard form surfaces. Plugin media controls,
   credentials and consent flows keep their own layout and state colors. */
body.kncs-r21 :is(.td-category-header, .td-search-header, .td-author-page-header) {
    padding-block: 20px; border-block-end: 1px solid var(--kn-border);
}
body.kncs-r21 :is(.td-category-title, .td-search-title, .td-author-name) {
    color: var(--kn-navy); font-family: var(--kn-font); line-height: 1.6;
}
body.kncs-r21 .page-nav a,
body.kncs-r21 .page-nav > span {
    min-width: 40px; min-height: 40px; padding: 8px 12px;
    border-color: var(--kn-border); border-radius: 3px;
}
body.kncs-r21 .page-nav .current {
    background: var(--kn-navy); color: var(--kn-paper); border-color: var(--kn-navy);
}
body.kncs-r21 :is(form.search-form, form.td-search-form, #commentform, .everest-forms)
:is(input[type=text], input[type=email], input[type=search], input[type=url], input[type=tel], textarea, select) {
    max-width: 100%; min-height: 44px; border: 1px solid var(--kn-border);
    border-radius: 4px; background: var(--kn-paper); color: var(--kn-ink);
    font-family: var(--kn-font); font-size: 16px; line-height: 1.6;
}
body.kncs-r21 :is(#commentform, .everest-forms) :is(input[type=submit], button[type=submit]) {
    min-height: 44px; padding: 10px 18px; border: 1px solid var(--kn-orange);
    border-radius: 4px; background: var(--kn-orange); color: var(--kn-navy-deep);
    font-family: var(--kn-font); font-weight: 700;
}
body.kncs-r21 .td-footer-wrapper :is(.block-title, .td-block-title) > span {
    color: var(--kn-paper); background: transparent;
}
body.kncs-r21 .kn-language-shell { margin-block-start: 12px; }
body.kncs-r21 .knlb-languages { color: var(--kn-navy); font-family: var(--kn-font); }
body.kncs-r21 .knlb-languages a { min-height: 44px; }
/* Logical properties let native RTL/LTR layout select the correct reading edge. */
body.kncs-r21.kncs-lang-en,
body.kncs-r21.kncs-lang-ku { --kn-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
