/*
Theme Name: Mulembe Portal Theme
Theme URI: https://luhyaportal.com/
Author: Mtsotso
Description: A responsive editorial daily news, community portal, and cultural heritage theme built for high-performance publishing. It blends modern newsrooms and interactive community directories with rich storytelling and timeless tradition.
Version: 1.6.3
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: luhya-portal
*/
:root{color-scheme:light;--lp-paper:#f7f2e8;--lp-paper-deep:#efe6d4;--lp-ink:#1c1a16;--lp-forest:#1f4d36;--lp-forest-deep:#133325;--lp-ochre:#d89a2b;--lp-clay:#b6492b;--lp-night:#121411;--lp-night-soft:#1b1e1a}
html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;scroll-padding-top:8rem}body{margin:0;background:var(--lp-paper);color:var(--lp-ink);font-family:'IBM Plex Sans',Arial,sans-serif;font-size:16px;line-height:1.55}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--lp-ochre);outline-offset:3px}#site-header{z-index:40}.font-display{font-family:'Fraunces',Georgia,serif}.font-sans{font-family:'IBM Plex Sans',Arial,sans-serif}.bg-paper{background:var(--lp-paper)}.bg-paper-deep{background:var(--lp-paper-deep)}.bg-forest{background:var(--lp-forest)}.bg-forest-deep{background:var(--lp-forest-deep)}.bg-ochre{background:var(--lp-ochre)}.bg-clay{background:var(--lp-clay)}.text-paper{color:var(--lp-paper)}.text-ink{color:var(--lp-ink)}.text-forest{color:var(--lp-forest)}.text-ochre{color:var(--lp-ochre)}.text-clay{color:var(--lp-clay)}.kicker{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--lp-clay)}.rule-title{display:flex;align-items:center;gap:1rem;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:600}.rule-title:after{content:"";height:1px;flex:1;background:#1c1a1626}.card{border:1px solid #1c1a1618;border-radius:1rem;background:#ffffffb3}.field{width:100%;min-width:0;box-sizing:border-box;border:1px solid #1c1a1626;border-radius:999px;background:white;color:var(--lp-ink);padding:.72rem 1rem;font-size:.9rem;outline:none}.field:focus{border-color:var(--lp-forest);box-shadow:0 0 0 3px #1f4d3620}.btn,.btn-primary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.7rem 1.25rem;font-size:.9rem;font-weight:700;transition:background .2s,color .2s,border-color .2s}.btn-primary{background:var(--lp-forest);color:var(--lp-paper);border:1px solid var(--lp-forest)}.btn-ghost{border:1px solid #1c1a1633;background:transparent}.chip{display:inline-block;border:1px solid #1c1a162b;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;white-space:nowrap}.chip-active{background:var(--lp-forest);color:white;border-color:var(--lp-forest)}.mulembe-pattern{background-image:repeating-linear-gradient(45deg,#ffffff12 0 2px,transparent 2px 14px),repeating-linear-gradient(-45deg,#ffffff12 0 2px,transparent 2px 14px)}.story-link:hover{text-decoration:underline;text-decoration-color:var(--lp-ochre);text-underline-offset:4px}.dark body{background:var(--lp-night);color:#e7e5df}.dark .bg-paper,.dark .bg-paper-deep{background:var(--lp-night-soft)}.dark .card{background:var(--lp-night-soft);border-color:#ffffff20}.dark .field{background:var(--lp-night);color:#e7e5df;border-color:#ffffff25}.dark .text-ink-soft{color:#aaa69b}.dark .text-forest{color:var(--lp-ochre)}.dark .rule-title:after{background:#ffffff26}.dark .chip-active{background:var(--lp-ochre);color:var(--lp-ink);border-color:var(--lp-ochre)}dialog{max-height:90dvh;overflow:auto;border:0;max-width:calc(100% - 1rem)}dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.animate-ticker{animation:ticker 45s linear infinite}@keyframes ticker{to{transform:translateX(-50%)}}#ticker:hover{animation-play-state:paused}#primary-nav{scrollbar-width:none}#primary-nav::-webkit-scrollbar{display:none}.form-status{min-height:1.2em}#story-grid img{display:block;width:100%;object-fit:cover}#site-header{backdrop-filter:blur(14px)}
@media(max-width:767px){html{scroll-padding-top:7rem}body{font-size:15px}#primary-nav{padding-left:.5rem;padding-right:.5rem}#primary-nav a{padding:.65rem .7rem;font-size:.8rem}#site-header .max-w-7xl{gap:.45rem;padding-top:.65rem;padding-bottom:.65rem}#site-header a[aria-label="Luhya Portal home"]{gap:.5rem}#site-header a[aria-label="Luhya Portal home"] svg{width:2.25rem;height:2.25rem}#site-header a[aria-label="Luhya Portal home"] .font-display{font-size:1rem}#site-header a[aria-label="Luhya Portal home"] span span:last-child{font-size:8px;letter-spacing:.12em}#home h1{font-size:clamp(1.8rem,8vw,2.5rem)}#story-grid{grid-template-columns:minmax(0,1fr)}#story-grid article{grid-column:auto!important;grid-row:auto!important}#county-strip{grid-template-columns:repeat(2,minmax(0,1fr))}#county-panel .grid{grid-template-columns:minmax(0,1fr)}#clan-form .flex.gap-2{align-items:stretch}#clan-form .flex.gap-2 .btn-primary{padding:.65rem .9rem}footer .grid{grid-template-columns:minmax(0,1fr)}footer nav{grid-template-columns:repeat(2,minmax(0,1fr))}dialog{width:calc(100% - 1rem)!important;max-width:calc(100% - 1rem)!important;border-radius:1rem}#submit-dialog form{padding:1.1rem!important}#submit-dialog form .grid{grid-template-columns:minmax(0,1fr)}#submit-dialog form label{grid-column:1/-1}#diaspora .grid{grid-template-columns:minmax(0,1fr)}#diaspora .relative.min-h-64{min-height:14rem}}
@media(min-width:768px) and (max-width:1023px){#story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#county-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Luhya Portal 1.1.0 accessibility and responsive refinements */
html{color-scheme:light}
html:not(.dark) body{background:var(--lp-paper);color:var(--lp-ink)}
html:not(.dark) .text-ink-soft{color:#5b554a!important}
html:not(.dark) .text-stone-400,html:not(.dark) .text-stone-500{color:#5b554a!important}
html:not(.dark) .field{color:var(--lp-ink);background:#fff}
html.dark{color-scheme:dark}
html.dark body{background:var(--lp-night);color:#e7e5df}
html.dark .text-ink-soft,html.dark .text-stone-400,html.dark .text-stone-500{color:#aaa69b!important}
html.dark .card{color:#e7e5df}
.archive-wrap{max-width:80rem;margin:0 auto;padding:2.5rem 1rem}
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:2rem}
.archive-card{overflow:hidden;border:1px solid #1c1a1620;border-radius:1rem;background:#fff;padding:1rem}
.archive-card img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:.65rem}
.archive-card h2{font-family:Fraunces,Georgia,serif;font-size:1.35rem;line-height:1.25;margin:.75rem 0 .4rem}
.archive-card p{color:#5b554a;font-size:.92rem}
.archive-pagination{margin-top:2rem}
.archive-pagination .page-numbers{display:inline-block;margin:.2rem;padding:.45rem .75rem;border-radius:.5rem;background:#efe6d4}
html.dark .archive-card{background:var(--lp-night-soft);border-color:#ffffff20}
html.dark .archive-card p{color:#aaa69b}
html.dark .archive-pagination .page-numbers{background:#2c302a;color:#e7e5df}
@media(max-width:767px){
  footer>.mx-auto.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 1rem;padding-top:2.25rem;padding-bottom:2.25rem}
  footer>.mx-auto.grid>div:first-child{grid-column:1/-1}
  footer>.mx-auto.grid>nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem;border:1px solid #ffffff25;border-radius:1rem;background:#ffffff08}
  footer>.mx-auto.grid>div:last-child{grid-column:1/-1;max-width:38rem;width:100%;margin:0 auto;text-align:center}
  footer>.mx-auto.grid>div:last-child form .flex{justify-content:center}
  footer>.mx-auto.grid>div:last-child form .field{min-width:0}
  footer>.mx-auto.grid>div:last-child form select{text-align:left}
  .archive-grid{grid-template-columns:repeat(1,minmax(0,1fr))}
}
@media(min-width:768px) and (max-width:1023px){.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 1.4.0 — Preserve original palette while correcting theme/editor compatibility. */
:root{--wp--style--global--content-size:800px;--wp--style--global--wide-size:1200px;--lp-content-width:800px;--lp-wide-width:1200px}
html:not(.dark){color-scheme:light;background:#f7f2e8;color:#1c1a16}
html:not(.dark) body{background:#f7f2e8;color:#1c1a16}
html:not(.dark) .bg-forest .text-paper,html:not(.dark) .bg-forest-deep .text-paper,html:not(.dark) footer .text-paper{color:#f7f2e8}
html:not(.dark) .text-ink-soft,html:not(.dark) .text-stone-400,html:not(.dark) .text-stone-500,html:not(.dark) [class*="text-ink-soft/"]{color:#514b41}
html:not(.dark) .bg-white\/60,html:not(.dark) .bg-white\/50{background-color:#fffdf8}
html:not(.dark) .card{color:#1c1a16;background:#fffdf8;border-color:#d8d0c2}
html:not(.dark) .archive-card{color:#1c1a16;background:#fffdf8}
html:not(.dark) .archive-card p{color:#514b41}
html:not(.dark) .field{color:#1c1a16;background:#fff;border-color:#c9c0b1}
html:not(.dark) input::placeholder,html:not(.dark) textarea::placeholder{color:#655e52;opacity:1}
html:not(.dark) .btn-ghost{color:#1c1a16;border-color:#8e8679}
html:not(.dark) .chip{color:#1c1a16;border-color:#a59b8b}
html:not(.dark) .text-clay{color:#96391f}
html:not(.dark) .text-forest{color:#1f4d36}
html.dark{color-scheme:dark;background:#121411;color:#e7e5df}
html.dark body{background:#121411;color:#e7e5df}
/* Native block content is allowed to control its own widths and full-bleed backgrounds. */
.lp-builder-shell{min-width:0;background:var(--lp-paper);color:var(--lp-ink)}
.lp-builder-header{background:#fffdf8;border-bottom:1px solid #ded6c8}
.lp-builder-header-inner,.lp-builder-footer-inner{width:min(100% - 2rem,1200px);margin-inline:auto;padding-block:1rem}
.lp-builder-brand{font-family:'Fraunces',Georgia,serif;font-size:1.6rem;font-weight:700;color:#1f4d36;text-decoration:none}
.lp-builder-tagline{margin:.15rem 0 .8rem;color:#514b41;font-size:.9rem}
.lp-builder-nav,.lp-builder-menu{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:0;padding:0;list-style:none}
.lp-builder-nav a,.lp-builder-menu a{color:#1f4d36;font-weight:600;text-decoration:none}
.lp-builder-main{width:100%;max-width:none;margin:0;padding:0}
.lp-builder-entry{width:100%;max-width:none;margin:0;padding:0}
.lp-builder-page-title{width:min(100% - 2rem,800px);margin:2rem auto 1rem}
.lp-builder-page-title h1{font-family:'Fraunces',Georgia,serif;font-size:clamp(2rem,5vw,3.5rem);line-height:1.12}
.lp-builder-entry .entry-content{width:100%;max-width:none;margin:0;padding:0}
.lp-builder-entry .entry-content > :where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,pre,table){width:min(100% - 2rem,800px);margin-inline:auto}
.lp-builder-entry .entry-content > .alignwide{width:min(100% - 2rem,1200px);max-width:1200px;margin-inline:auto}
.lp-builder-entry .entry-content > .alignfull{width:100%;max-width:none;margin-inline:0}
.lp-builder-entry .entry-content > .wp-block-cover.alignfull,.lp-builder-entry .entry-content > .wp-block-group.alignfull,.lp-builder-entry .entry-content > .wp-block-columns.alignfull{width:100%;max-width:none}
.lp-builder-entry .entry-content > .wp-block-image:not(.alignfull):not(.alignwide),.lp-builder-entry .entry-content > .wp-block-video:not(.alignfull):not(.alignwide),.lp-builder-entry .entry-content > .wp-block-embed:not(.alignfull):not(.alignwide){width:min(100% - 2rem,800px);margin-inline:auto}
.lp-builder-entry .entry-content .wp-block-group__inner-container,.lp-builder-entry .entry-content .wp-block-cover__inner-container{max-width:100%}
.lp-builder-entry .entry-content > *:first-child{margin-top:0}
.lp-builder-entry .entry-content > *:last-child{margin-bottom:0}
.lp-builder-footer{margin-top:4rem;background:#133325;color:#f7f2e8}
.lp-builder-footer-inner{padding-block:2.5rem}
.lp-builder-footer-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.lp-builder-footer h2{margin:0 0 .8rem;color:#f1d398;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.lp-builder-footer-columns a{display:block;width:fit-content;margin:.45rem 0;color:#f7f2e8;text-decoration:none}
.lp-builder-digest{max-width:40rem;margin:2rem auto;text-align:center}
.lp-builder-digest p{color:#f7f2e8}
.lp-builder-digest>a{display:inline-block;margin-top:.5rem;padding:.7rem 1.2rem;border-radius:999px;background:#d89a2b;color:#1c1a16;font-weight:700;text-decoration:none}
.lp-builder-copyright{margin:2rem 0 0;padding-top:1rem;border-top:1px solid #ffffff26;color:#e4dfd3;font-size:.8rem}
/* Keep the editor canvas and frontend content widths consistent. */
.editor-styles-wrapper{color:#1c1a16;background:#f7f2e8;font-family:'IBM Plex Sans',Arial,sans-serif}
.editor-styles-wrapper .wp-block[data-align="wide"]{max-width:1200px}
.editor-styles-wrapper .wp-block[data-align="full"]{max-width:none}
@media(max-width:767px){.lp-builder-header-inner,.lp-builder-footer-inner{width:calc(100% - 2rem)}.lp-builder-footer-columns{gap:1rem}.lp-builder-nav,.lp-builder-menu{gap:.5rem .8rem}.lp-builder-brand{font-size:1.35rem}.lp-builder-entry .entry-content > :where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,pre,table){width:calc(100% - 2rem)}}

/* 1.4.1 — Targeted contrast fixes only; preserve existing layout, imagery and brand palette. */
/* Lead-story headline sits over a dark image overlay, so keep it light in both modes. */
#lead-story .absolute.inset-x-0.bottom-0,
#lead-story .absolute.inset-x-0.bottom-0 h2,
#lead-story .absolute.inset-x-0.bottom-0 p,
#lead-story .absolute.inset-x-0.bottom-0 span { color: var(--lp-paper); }
#lead-story .absolute.inset-x-0.bottom-0 [data-lead="dek"] { color: #f7f2e8; }
#lead-story .absolute.inset-x-0.bottom-0 [data-lead="author"],
#lead-story .absolute.inset-x-0.bottom-0 [data-lead="time"] { color: #e9e1d3; }

/* The clan-lineage section always uses a deep-green background; its copy must stay white. */
#clan-lineages,
#clan-lineages #clan-title,
#clan-lineages > .relative p:not(.kicker),
#clan-lineages > .relative .text-paper,
#clan-lineages > .relative .text-paper\/80,
#clan-lineages > .relative .text-paper\/60 { color: #f7f2e8; }
#clan-lineages .kicker { color: #f1d398; }

/* The diaspora card is dark in both modes, so retain high-contrast light text. */
#diaspora > .grid { background-color: #1c1a16; color: #f7f2e8; }
#diaspora #diaspora-title,
#diaspora > .grid > div:last-child > p:not(.kicker),
#diaspora #diaspora-list a { color: #f7f2e8; }
#diaspora #diaspora-list a:hover { color: #f1d398; }

/* Improve contrast for the named homepage headings and news links in dark mode only. */
html.dark #home h1,
html.dark #daily-news #news-title,
html.dark #sub-tribes #tribes-title,
html.dark #county-updates #county-title,
html.dark #about #about-title,
html.dark #about .card { color: #e7e5df; }
html.dark #daily-news > p,
html.dark #sub-tribes .lg\:col-span-7 > p:not(.kicker),
html.dark #about > div p:not(.kicker),
html.dark #county-updates #county-panel a,
html.dark #story-grid h3 a,
html.dark #trending a,
html.dark #diaspora-list a { color: #e7e5df; }
html.dark #story-grid article > p:not(.text-clay),
html.dark #county-updates #county-panel li > span:last-child,
html.dark #about figcaption { color: #c4c0b6; }
html.dark #daily-news .rule-title:after,
html.dark #county-updates .rule-title:after { background: #ffffff30; }


/* 1.4.2 — precise contrast repair for the reported homepage text only.
   These selectors match the actual markup in body.php and JS-rendered app.js content.
   !important prevents Tailwind runtime utility rules from overriding these contrast fixes. */

/* Lead story: headline and metadata sit over the darkened image in BOTH themes. */
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0,
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 h2,
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 p,
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 span {
  color: #f7f2e8 !important;
}
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 [data-lead="title"],
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 [data-lead="dek"] {
  color: #f7f2e8 !important;
}
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 [data-lead="author"],
#lead-story > a > .relative > div.absolute.inset-x-0.bottom-0 [data-lead="time"] {
  color: #e9e1d3 !important;
}

/* Lineage search: this entire section is dark green; keep its explanatory copy white. */
#clan-lineages { color: #f7f2e8 !important; }
#clan-lineages #clan-title,
#clan-lineages .relative > div p:not(.kicker),
#clan-lineages .relative > div dl dt,
#clan-lineages .relative > div dl dd {
  color: #f7f2e8 !important;
}
#clan-lineages .kicker,
#clan-lineages .text-ochre { color: #f1d398 !important; }

/* Diaspora: its card is dark by design in both modes. */
#diaspora > .grid { background-color: #1c1a16 !important; color: #f7f2e8 !important; }
#diaspora #diaspora-title,
#diaspora > .grid > div:last-child > p:not(.kicker),
#diaspora #diaspora-list,
#diaspora #diaspora-list li,
#diaspora #diaspora-list li p,
#diaspora #diaspora-list a { color: #f7f2e8 !important; }
#diaspora #diaspora-list .text-ochre { color: #f1d398 !important; }
#diaspora #diaspora-list a:hover { color: #f1d398 !important; }

/* Dark mode: reported homepage section titles, news headlines and supporting copy. */
html.dark #home h1,
html.dark #daily-news #news-title,
html.dark #daily-news > p,
html.dark #story-grid,
html.dark #story-grid h3,
html.dark #story-grid h3 a,
html.dark #story-grid article > p,
html.dark #trending-title,
html.dark #trending a,
html.dark #trending li p,
html.dark #sub-tribes #tribes-title,
html.dark #sub-tribes .lg\:col-span-7 > p:not(.kicker),
html.dark #county-updates #county-title,
html.dark #county-updates #county-panel a,
html.dark #county-updates #county-panel p,
html.dark #about #about-title,
html.dark #about > div p:not(.kicker),
html.dark #about .card,
html.dark #about figcaption {
  color: #e7e5df !important;
}
/* Preserve deliberate category accents while keeping body text readable. */
html.dark #story-grid article .text-clay,
html.dark #story-grid article .kicker,
html.dark #about .kicker,
html.dark #sub-tribes .kicker,
html.dark #county-updates .kicker {
  color: #e0a63b !important;
}
html.dark #story-grid article,
html.dark #county-strip a,
html.dark #trending .card {
  background-color: #1b1e1a;
  border-color: #ffffff20;
}
html.dark #daily-news .rule-title:after,
html.dark #county-updates .rule-title:after { background: #ffffff30; }


/* 1.4.3 — navigation and sub-tribe history dialog contrast only. */
/* Keep primary navigation readable on every inner page, including dark mode. */
#primary-nav .nav-link { color: #292b25 !important; }
html.dark #primary-nav .nav-link { color: #e7e5df !important; }
#primary-nav .nav-link:hover,
#primary-nav .nav-link:focus-visible { color: #1f4d36 !important; }
html.dark #primary-nav .nav-link:hover,
html.dark #primary-nav .nav-link:focus-visible { color: #e0a63b !important; }

/* Inner-page headings and descriptions for all requested menu destinations. */
#main.archive-wrap > h1,
#main.archive-wrap > p:not(.kicker),
#main.archive-wrap > h2,
#main.archive-wrap .archive-card h2 a,
#main.archive-wrap .archive-card > p:not(.kicker),
#main.archive-wrap .archive-card > p a,
#main.archive-wrap .archive-pagination a {
  color: #292b25;
}
html.dark #main.archive-wrap > h1,
html.dark #main.archive-wrap > p:not(.kicker),
html.dark #main.archive-wrap > h2,
html.dark #main.archive-wrap .archive-card h2 a,
html.dark #main.archive-wrap .archive-card > p:not(.kicker),
html.dark #main.archive-wrap .archive-card > p a,
html.dark #main.archive-wrap .archive-pagination a {
  color: #e7e5df !important;
}
html.dark #main.archive-wrap .kicker { color: #e0a63b !important; }
html.dark #main.archive-wrap .archive-card {
  background: #1b1e1a;
  border-color: #ffffff24;
}

/* Sub-tribe Read History dialog: explicit foreground/background in both modes.
   This includes the Bukusu history paragraph and the Dialect, Abami and Origins cards. */
#tribe-dialog {
  background-color: #f7f2e8 !important;
  color: #292b25 !important;
}
#tribe-dialog #tribe-dialog-body,
#tribe-dialog #tribe-dialog-body h2,
#tribe-dialog #tribe-dialog-body p:not(.kicker),
#tribe-dialog #tribe-dialog-body dd,
#tribe-dialog #tribe-dialog-body strong,
#tribe-dialog #tribe-dialog-body button.btn-ghost {
  color: #292b25 !important;
}
#tribe-dialog #tribe-dialog-body .card {
  background-color: #fffdf8 !important;
  color: #292b25 !important;
  border-color: #292b2526 !important;
}
#tribe-dialog #tribe-dialog-body dt,
#tribe-dialog #tribe-dialog-body .kicker { color: #8f3e2b !important; }
#tribe-dialog #tribe-dialog-body button.btn-primary {
  background-color: #1f4d36 !important;
  border-color: #1f4d36 !important;
  color: #f7f2e8 !important;
}
html.dark #tribe-dialog {
  background-color: #20241f !important;
  color: #e7e5df !important;
}
html.dark #tribe-dialog #tribe-dialog-body,
html.dark #tribe-dialog #tribe-dialog-body h2,
html.dark #tribe-dialog #tribe-dialog-body p:not(.kicker),
html.dark #tribe-dialog #tribe-dialog-body dd,
html.dark #tribe-dialog #tribe-dialog-body strong,
html.dark #tribe-dialog #tribe-dialog-body button.btn-ghost {
  color: #e7e5df !important;
}
html.dark #tribe-dialog #tribe-dialog-body .card {
  background-color: #292e28 !important;
  color: #e7e5df !important;
  border-color: #ffffff24 !important;
}
html.dark #tribe-dialog #tribe-dialog-body dt,
html.dark #tribe-dialog #tribe-dialog-body .kicker { color: #e0a63b !important; }
html.dark #tribe-dialog #tribe-dialog-body button.btn-primary {
  background-color: #d89a2b !important;
  border-color: #d89a2b !important;
  color: #20241f !important;
}


/* 1.4.4 — brand wordmark colors and Oral History Archive modal readability only. */
.lp-wordmark { display:inline-flex; align-items:baseline; gap:.24em; white-space:nowrap; line-height:1; }
.lp-wordmark-luhya { color:#1c1a16 !important; }
.lp-wordmark-portal { color:#1f4d36 !important; }
html.dark .lp-wordmark-luhya { color:#ffffff !important; }
html.dark .lp-wordmark-portal { color:#d89a2b !important; }
.lp-wordmark-footer .lp-wordmark-luhya { color:#ffffff !important; }
.lp-wordmark-footer .lp-wordmark-portal { color:#d89a2b !important; }
#site-header a[aria-label="Luhya Portal home"] { flex-shrink:0; min-width:0; }
#site-header .lp-wordmark-wrap { min-width:0; }
#site-header .lp-wordmark { font-family:'Fraunces',Georgia,serif; font-size:clamp(1rem,2vw,1.3rem); letter-spacing:-.035em; }
#site-header .lp-brand-tagline { white-space:nowrap; }
@media(max-width:767px) {
  #site-header .lp-wordmark { font-size:clamp(.88rem,4.2vw,1.05rem); gap:.18em; }
  #site-header .lp-brand-tagline { font-size:7px; letter-spacing:.1em; }
}

/* Oral History Archive form: explicit text/input contrast on phones and desktop. */
#submit-dialog { color:#1c1a16; }
#submit-dialog form label { color:#1c1a16 !important; font-weight:500; }
#submit-dialog form .kicker { color:#9b4028 !important; }
#submit-dialog form h2 { color:#1c1a16 !important; }
#submit-dialog form input:not([type="hidden"]),
#submit-dialog form select,
#submit-dialog form textarea {
  color:#1c1a16 !important;
  background-color:#ffffff !important;
  border-color:#b9b4a9 !important;
  -webkit-text-fill-color:#1c1a16 !important;
  opacity:1 !important;
}
#submit-dialog form input::placeholder,
#submit-dialog form textarea::placeholder { color:#6b675e !important; opacity:1 !important; }
html.dark #submit-dialog { color:#f7f2e8 !important; }
html.dark #submit-dialog form label { color:#f7f2e8 !important; }
html.dark #submit-dialog form .kicker { color:#f1d398 !important; }
html.dark #submit-dialog form h2 { color:#ffffff !important; }
html.dark #submit-dialog form input:not([type="hidden"]),
html.dark #submit-dialog form select,
html.dark #submit-dialog form textarea {
  color:#f7f2e8 !important;
  background-color:#121411 !important;
  border-color:#55594f !important;
  -webkit-text-fill-color:#f7f2e8 !important;
  opacity:1 !important;
  color-scheme:dark;
}
html.dark #submit-dialog form input::placeholder,
html.dark #submit-dialog form textarea::placeholder { color:#c4c0b6 !important; opacity:1 !important; }
html.dark #submit-dialog form select option { color:#f7f2e8; background:#121411; }
html.dark #submit-dialog form .form-status { color:#f1d398 !important; }
#submit-dialog form button[data-close] { color:inherit; }

/* 1.4.6 — readable article typography, publication metadata and article sidebar. */
.lp-single-layout { max-width: 80rem; }
.lp-single-columns { display:grid; grid-template-columns:minmax(0, min(100%, 52rem)) minmax(15rem, 20rem); gap:2rem; align-items:start; justify-content:space-between; }
.lp-single-article { min-width:0; }
.lp-article-title { color:#1c1a16 !important; margin:.35rem 0 .8rem; }
.lp-article-categories { margin:0; }
.lp-article-categories a { color:#8f3e2b; text-decoration:underline; text-decoration-color:#d89a2b66; text-underline-offset:3px; }
.lp-article-meta { display:flex; flex-wrap:wrap; gap:.35rem 1rem; margin:0 0 1.5rem; color:#5b554a; font-size:.84rem; line-height:1.5; }
.lp-article-meta span+span { border-left:1px solid #1c1a1626; padding-left:1rem; }
.lp-article-featured-image { margin:1.5rem 0 2rem; }
.lp-article-content { color:#29251f; font-size:1.06rem; line-height:1.85; overflow-wrap:anywhere; }
.lp-article-content > * { margin-block:0 1.15em; }
.lp-article-content p { margin-block:0 1.25em; }
.lp-article-content h2 { color:#1c1a16 !important; font-family:Fraunces,Georgia,serif; font-size:clamp(1.55rem,3vw,2rem); line-height:1.3; font-weight:600; margin-top:1.9em; margin-bottom:.7em; }
.lp-article-content h3 { color:#1c1a16 !important; font-family:Fraunces,Georgia,serif; font-size:clamp(1.25rem,2.5vw,1.55rem); line-height:1.35; font-weight:600; margin-top:1.6em; margin-bottom:.6em; }
.lp-article-content h4,.lp-article-content h5,.lp-article-content h6 { color:#1c1a16 !important; font-weight:700; margin-top:1.4em; margin-bottom:.55em; }
.lp-article-content ul,.lp-article-content ol { padding-left:1.6rem; margin-block:0 1.4em; }
.lp-article-content ul { list-style:disc; }
.lp-article-content ol { list-style:decimal; }
.lp-article-content li { margin:.35em 0; }
.lp-article-content blockquote { border-left:4px solid #d89a2b; margin:1.5em 0; padding:.35rem 0 .35rem 1.2rem; color:#5b554a; }
.lp-article-content a { color:#1f4d36; text-decoration:underline; text-underline-offset:3px; }
.lp-article-sidebar { display:grid; gap:1rem; min-width:0; }
.lp-sidebar-box { border:1px solid #1c1a1626; border-radius:1rem; padding:1.1rem; background:#fffdf8; color:#29251f; }
.lp-sidebar-box h2 { margin:0 0 .8rem; padding-bottom:.65rem; border-bottom:1px solid #1c1a1620; color:#1f4d36; font-family:Fraunces,Georgia,serif; font-size:1.25rem; line-height:1.3; }
.lp-sidebar-box ul { list-style:none; padding:0; margin:0; }
.lp-sidebar-box li { padding:.6rem 0; border-bottom:1px solid #1c1a160f; line-height:1.4; }
.lp-sidebar-box li:last-child { border-bottom:0; }
.lp-sidebar-box li a { font-size:.91rem; font-weight:600; color:#29251f; }
.lp-sidebar-box li a:hover { color:#8f3e2b; text-decoration:underline; text-underline-offset:3px; }
.lp-sidebar-date { display:block; margin-top:.25rem; color:#6b675e; font-size:.75rem; }
.lp-sidebar-more { display:inline-block; margin-top:.75rem; color:#1f4d36; font-size:.82rem; font-weight:700; }
.lp-county-feature { margin-top:1rem; padding-top:1rem; border-top:1px solid #1c1a1620; }
.lp-county-feature-label { margin:0 0 .55rem; color:#8f3e2b; font-size:.75rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.lp-county-feature-image { display:block; overflow:hidden; border-radius:.65rem; background:#efe6d4; }
.lp-county-feature-image img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.lp-county-no-image { display:flex; min-height:7rem; align-items:center; justify-content:center; color:#1f4d36; font-size:.85rem; font-weight:700; }
.lp-county-feature h3 { margin:.7rem 0 .35rem; font-family:Fraunces,Georgia,serif; font-size:1.05rem; line-height:1.35; font-weight:700; }
.lp-county-feature h3 a { color:#29251f; }
.lp-county-excerpt,.lp-county-empty { margin:.35rem 0 0; color:#5b554a; font-size:.85rem; line-height:1.6; }
html.dark .lp-county-feature { border-top-color:#ffffff24; }
html.dark .lp-county-feature-label,html.dark .lp-county-feature h3 a { color:#f1d398; }
html.dark .lp-county-excerpt,html.dark .lp-county-empty { color:#c4c0b6; }
html.dark .lp-county-no-image { color:#f1d398; background:#242820; }
html.dark .lp-article-title,html.dark .lp-article-content h2,html.dark .lp-article-content h3,html.dark .lp-article-content h4,html.dark .lp-article-content h5,html.dark .lp-article-content h6 { color:#f7f2e8 !important; }
html.dark .lp-article-categories a { color:#f1d398; }
html.dark .lp-article-meta { color:#c4c0b6; }
html.dark .lp-article-meta span+span { border-left-color:#ffffff30; }
html.dark .lp-article-content { color:#e7e5df; }
html.dark .lp-article-content blockquote { color:#d0ccc1; }
html.dark .lp-article-content a,html.dark .lp-sidebar-more { color:#f1d398; }
html.dark .lp-sidebar-box { background:#1b1e1a; border-color:#ffffff26; color:#e7e5df; }
html.dark .lp-sidebar-box h2 { color:#f1d398; border-bottom-color:#ffffff24; }
html.dark .lp-sidebar-box li { border-bottom-color:#ffffff12; }
html.dark .lp-sidebar-box li a { color:#e7e5df; }
html.dark .lp-sidebar-box li a:hover { color:#f1d398; }
html.dark .lp-sidebar-date { color:#c4c0b6; }
@media(max-width:900px) { .lp-single-columns { grid-template-columns:minmax(0,1fr); } .lp-article-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); } .lp-article-sidebar .lp-sidebar-box:last-child { grid-column:1/-1; } }
@media(max-width:560px) { .lp-article-sidebar { grid-template-columns:minmax(0,1fr); } .lp-article-sidebar .lp-sidebar-box:last-child { grid-column:auto; } .lp-article-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .55rem; font-size:.76rem; line-height:1.45; } .lp-article-meta span+span { border-left:1px solid #1c1a1626; padding-left:.55rem; } html.dark .lp-article-meta span+span { border-left-color:#ffffff30; } .lp-article-content { font-size:1rem; line-height:1.8; } }

/* 1.5.1: targeted related-content and county page card sizing. */
.lp-related-content{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #1c1a1626}
.lp-related-grid .archive-card{min-width:0}
.lp-related-grid .archive-card h2{font-size:1.2rem}
.lp-county-news-grid .archive-card h2{font-size:1.2rem}
.lp-county-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
html.dark .lp-related-content{border-color:#ffffff26}
@media(max-width:767px){.lp-related-grid,.lp-county-news-grid{grid-template-columns:minmax(0,1fr)}.lp-county-directory-grid{grid-template-columns:minmax(0,1fr)}}
@media(min-width:768px) and (max-width:1023px){.lp-related-grid,.lp-county-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.5.2: compact county-news cards, responsive 4-column desktop grid. */
.lp-county-news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.lp-county-news-grid .archive-card{min-width:0;padding:1rem}
.lp-county-news-grid .archive-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:.5rem}
.lp-county-news-grid .archive-card h2{font-size:1rem;line-height:1.35}
.lp-county-news-grid .archive-card p{font-size:.82rem;line-height:1.55}
@media(min-width:768px) and (max-width:1023px){.lp-county-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.lp-county-news-grid{grid-template-columns:minmax(0,1fr)}}

/* v1.5.3.1: county page headings must remain readable in dark mode. */
html.dark body .lp-county-profile h2,
html.dark body .lp-county-profile h3,
html.dark body .lp-county-profile .rule-title {
  color: #f7f2e8 !important;
  opacity: 1 !important;
}

/* Version 1.6.0 accessible heritage tools. */
.lp-skip-link{position:absolute;left:1rem;top:-5rem;z-index:1000;padding:.7rem 1rem;border-radius:.5rem;background:var(--lp-ochre);color:var(--lp-ink);font-weight:700}
.lp-skip-link:focus{top:1rem;outline:3px solid var(--lp-forest);outline-offset:3px}
.lp-heritage-card[hidden]{display:none!important}
.lp-audio-player{display:grid;gap:.7rem;max-width:38rem;margin:1.25rem 0;padding:1rem;border:1px solid #1c1a1626;border-radius:1rem;background:#ffffffb3}
.lp-audio-title{font-weight:600}
.lp-audio-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.lp-audio-controls button{border:1px solid var(--lp-forest);border-radius:999px;padding:.4rem .9rem;color:var(--lp-forest);font-weight:600}
.lp-audio-player input[type=range]{width:100%;accent-color:var(--lp-forest)}
.dark .lp-audio-player{background:var(--lp-night-soft);border-color:#ffffff25}
.dark .lp-audio-controls button{color:var(--lp-ochre);border-color:var(--lp-ochre)}
#lp-community-submit label{display:block;font-weight:600}
#lp-community-submit textarea.field{border-radius:1rem}

/* v1.6.3: typography and brand colour system. Layout, spacing and grid rules are unchanged. */
:root {
  color-scheme: light;
  --lp-paper: #FAF6EE;
  --lp-paper-deep: #F1E9DA;
  --lp-ink: rgb(23, 43, 36);
  --lp-forest: #174632;
  --lp-forest-deep: #102F23;
  --lp-ochre: #C99A3C;
  --lp-clay: #A84A32;
  --lp-night: #10291F;
  --lp-night-soft: #18382B;
  --lp-text: rgb(23, 43, 36);
  --lp-muted: rgb(104, 106, 100);
  --lp-cream: rgb(255, 253, 248);
  --lp-editorial-font: "Iowan Old Style", Baskerville, "Palatino Linotype", "Book Antiqua", Georgia, "Times New Roman", serif;
  --lp-ui-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
html:not(.dark) { color-scheme: light; background: #FAF6EE; color: rgb(23, 43, 36); }
html.dark {
  color-scheme: dark;
  background: #10291F;
  color: rgb(255, 253, 248);
  --lp-paper: #10291F;
  --lp-paper-deep: #18382B;
  --lp-ink: rgb(255, 253, 248);
  --lp-forest: #24583F;
  --lp-forest-deep: #0B2118;
  --lp-night: #10291F;
  --lp-night-soft: #18382B;
  --lp-text: rgb(255, 253, 248);
  --lp-muted: #C3C2B8;
  --lp-cream: rgb(255, 253, 248);
}
html:not(.dark) body,
html.dark body {
  background: var(--lp-paper) !important;
  color: var(--lp-text) !important;
  font-family: var(--lp-ui-font) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
}
body, noscript, div, header, details, ul, li, nav, main, section, article, figure, aside, form, label {
  font-family: var(--lp-ui-font) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: var(--lp-text) !important;
}
a {
  color: var(--lp-text);
  font-family: var(--lp-ui-font);
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--lp-text) !important;
}
summary { font-family: var(--lp-ui-font) !important; font-size: 12.48px !important; font-weight: 750 !important; }
button, .button, input[type="submit"], input[type="button"], input[type="reset"] {
  font-family: var(--lp-ui-font) !important;
  font-size: 11.52px !important;
  font-weight: 750 !important;
}
span { font-family: var(--lp-ui-font); font-size: 18.4px; font-weight: 750; }
strong, b { font-family: var(--lp-ui-font); font-size: 14.4px; font-weight: 750; }
small, .excerpt, .entry-summary, .archive-card p, .lp-county-excerpt, .lp-county-empty {
  font-family: var(--lp-ui-font) !important;
  font-size: 11.2px !important;
  font-weight: 600 !important;
  color: var(--lp-muted) !important;
}
input, select, textarea, .field {
  font-family: var(--lp-ui-font) !important;
  font-size: 13.12px !important;
  font-weight: 650 !important;
  color: var(--lp-text) !important;
}
time, .lp-article-meta, .lp-sidebar-date, .timestamp, .meta-time {
  font-family: var(--lp-ui-font) !important;
  font-size: 11.84px !important;
  font-weight: 650 !important;
  color: var(--lp-muted) !important;
}
h1, h2, h3, h4, h5, h6,
.rule-title, .font-display, .lp-article-title,
.archive-card h2, .lp-sidebar-box h2,
.lp-builder-brand, .lp-builder-page-title h1 {
  font-family: var(--lp-editorial-font) !important;
  color: var(--lp-text);
}
h1 { font-size: 36px !important; font-weight: 500 !important; }
h2 { font-size: 50.4px !important; font-weight: 600 !important; }
h3 { font-size: 16.32px !important; font-weight: 600 !important; }
h4, h5, h6 { font-family: var(--lp-editorial-font) !important; font-weight: 600 !important; color: var(--lp-text); }
h2 a, .archive-card h2 a, .lp-article-title a, .story-link h2 {
  font-family: var(--lp-editorial-font) !important;
  font-size: 50.4px !important;
  font-weight: 600 !important;
  color: var(--lp-text) !important;
}
p { font-family: Georgia, "Times New Roman", serif !important; font-size: 15.68px !important; font-weight: 400 !important; color: var(--lp-muted) !important; }
#lead-story p, .featured-paragraph, .lead-paragraph, p.lead, .lp-article-content > p:first-of-type {
  font-family: var(--lp-editorial-font) !important;
  font-size: 21.6px !important;
  font-weight: 600 !important;
  color: var(--lp-text) !important;
}
.hero-display span, .hero-title span, [data-hero-display] span {
  font-family: var(--lp-editorial-font) !important;
  font-size: 52px !important;
  font-weight: 500 !important;
}
footer, footer p, footer a, footer li, .lp-builder-footer {
  color: rgb(255, 253, 248) !important;
  font-family: var(--lp-ui-font) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
}
footer .text-7xl, footer .footer-accent, .lp-footer-accent {
  font-family: var(--lp-editorial-font) !important;
  font-size: 73.6px !important;
  font-weight: 600 !important;
  color: rgb(255, 253, 248) !important;
}
html:not(.dark) .card,
html:not(.dark) .archive-card,
html:not(.dark) .lp-sidebar-box { background-color: #FFFDFA; color: rgb(23, 43, 36); border-color: #DED6C8; }
html.dark .card,
html.dark .archive-card,
html.dark .lp-sidebar-box,
html.dark .lp-builder-shell { background-color: #18382B; color: rgb(255, 253, 248); border-color: #FFFFFF24; }
html:not(.dark) .field { background: #FFFDFA !important; border-color: #CFC5B4 !important; }
html.dark .field,
html.dark input,
html.dark select,
html.dark textarea { background: #10291F !important; color: rgb(255, 253, 248) !important; border-color: #FFFFFF35 !important; }
html:not(.dark) a { color: rgb(23, 43, 36); }
html.dark a { color: rgb(255, 253, 248); }
html.dark p, html.dark small, html.dark .excerpt, html.dark .entry-summary,
html.dark .archive-card p, html.dark .lp-county-excerpt, html.dark .lp-county-empty,
html.dark time, html.dark .lp-article-meta, html.dark .lp-sidebar-date { color: #C3C2B8 !important; }
html.dark h1, html.dark h2, html.dark h3, html.dark h4, html.dark h5, html.dark h6,
html.dark .rule-title, html.dark .font-display, html.dark .lp-article-title,
html.dark .archive-card h2, html.dark .lp-sidebar-box h2 { color: rgb(255, 253, 248) !important; }
html.dark .btn-primary, html.dark .chip-active { background: #C99A3C !important; color: #172B24 !important; border-color: #C99A3C !important; }
html.dark .text-ochre, html.dark .kicker { color: #E3B95F !important; }
html:not(.dark) .text-ink-soft, html:not(.dark) .text-stone-400,
html:not(.dark) .text-stone-500 { color: rgb(104, 106, 100) !important; }
