/*
Theme Name:   The Name Keep
Theme URI:    https://www.kadencewp.com/
Description:  "Enchanted library" child theme for a fantasy & character names site. Auto-configures Kadence (colors, fonts, header, footer, layouts), creates the hubs, essential pages and menus, and turns name lists into name cards with meanings and one-click copy, quick picks, a random-name box, table of contents, FAQ schema, locked internal links and share buttons. No extra plugins needed.
Author:       Najam
Template:     kadence
Version:      1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain:  kadence-puns
License:      GPL-2.0-or-later
*/

/* ---------- Brand tokens ---------- */
:root {
	--kp-ink: #0F1629;
	--kp-ink2: #18223D;
	--kp-gold: #D4AF5A;
	--kp-gold2: #F0D58C;
	--kp-gold-deep: #8A5A12;
	--kp-parch: #F7F1E3;
	--kp-line: #E3D7BB;
	--kp-text: #2A2438;
	--kp-muted: #6B6478;
	--kp-ember: #C2553A;
	--kp-sage: #4E7A6A;
	--kp-radius: 18px;
	--kp-radius-sm: 12px;
	--kp-serif: Cinzel, Georgia, "Times New Roman", serif;
	--kp-shadow: 0 6px 18px rgba(60, 40, 10, .06);
}

/* ---------- Global ---------- */
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .entry-title, .site-title { letter-spacing: .01em; }
a { text-underline-offset: 3px; }
.entry-content img, .entry-content figure img { border-radius: var(--kp-radius-sm); height: auto; }
::selection { background: var(--kp-gold2); color: var(--kp-ink); }

/* ---------- Header ---------- */
.site-header-row-container-inner { border-bottom: 1px solid rgba(212, 175, 90, .22); }
.site-branding .custom-logo { max-height: 46px; width: auto; }
.site-branding .site-description { font-family: Cormorant, Georgia, serif; font-style: italic; font-size: 15px; color: #B9B2C9; margin-top: 3px; }
.site-header .header-navigation .menu > li > a { padding-left: 14px; padding-right: 14px; }
.site-header .kp-hub-item > a { white-space: nowrap; }
.search-toggle-open-container .search-toggle-open { border: 1px solid rgba(212, 175, 90, .45); border-radius: 50%; width: 40px; height: 40px; justify-content: center; }

/* ---------- Home hero ---------- */
.kp-hero {
	position: relative;
	overflow: hidden;
	color: #fff;
	padding: 64px 24px 110px;
	background:
		radial-gradient(1100px 480px at 72% -10%, #3A2F6B 0%, transparent 60%),
		radial-gradient(700px 400px at 8% 120%, #1F4E5A 0%, transparent 60%),
		linear-gradient(180deg, var(--kp-ink) 0%, var(--kp-ink2) 100%);
}
.kp-stars {
	position: absolute; inset: 0; pointer-events: none;
	background-image:
		radial-gradient(1.4px 1.4px at 8% 20%, #fff9 50%, transparent 51%),
		radial-gradient(1px 1px at 22% 70%, #fff8 50%, transparent 51%),
		radial-gradient(1.6px 1.6px at 35% 30%, #ffe9a8 50%, transparent 51%),
		radial-gradient(1px 1px at 48% 80%, #fff7 50%, transparent 51%),
		radial-gradient(1.4px 1.4px at 62% 15%, #fff9 50%, transparent 51%),
		radial-gradient(1px 1px at 75% 55%, #fff8 50%, transparent 51%),
		radial-gradient(1.8px 1.8px at 88% 25%, #ffe9a8 50%, transparent 51%),
		radial-gradient(1px 1px at 93% 75%, #fff7 50%, transparent 51%),
		radial-gradient(1.2px 1.2px at 55% 45%, #fff6 50%, transparent 51%),
		radial-gradient(1px 1px at 15% 45%, #fff6 50%, transparent 51%);
	animation: kp-twinkle 6s ease-in-out infinite alternate;
}
@keyframes kp-twinkle { from { opacity: .65; } to { opacity: 1; } }
.kp-hero-grid { position: relative; max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.25fr .9fr; gap: 40px; align-items: center; }
.kp-eyebrow { display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--kp-gold-deep); margin: 0 0 10px; }
.kp-eyebrow--hero { color: var(--kp-gold2); border: 1px solid rgba(212, 175, 90, .45); background: rgba(212, 175, 90, .07); padding: 7px 14px; border-radius: 30px; margin: 0; }
.kp-hero-title { font-family: var(--kp-serif); font-weight: 700; font-size: clamp(36px, 5vw, 58px); line-height: 1.08; color: #fff; margin: 22px 0 16px; }
.kp-hero-title em { font-style: normal; background: linear-gradient(90deg, #F5DA92, #D4AF5A 60%, #B8862F); -webkit-background-clip: text; background-clip: text; color: transparent; }
.kp-hero-text { font-size: 18px; line-height: 1.6; color: #CFC9DD; max-width: 560px; margin: 0; }
.kp-hero-search { margin-top: 28px; display: flex; background: #fff; border-radius: 14px; padding: 7px; max-width: 590px; box-shadow: 0 18px 50px rgba(0, 0, 0, .35), 0 0 0 4px rgba(212, 175, 90, .18); }
.kp-hero-search input[type=search] { flex: 1; min-width: 0; border: 0; box-shadow: none; font-size: 16px; padding: 12px 14px; color: var(--kp-text); background: transparent; }
.kp-hero-search input[type=search]:focus { outline: 0; box-shadow: none; }
.kp-hero-search button { border: 0; border-radius: 10px; background: linear-gradient(180deg, #E2BE68, #C79A3F); color: var(--kp-ink); font-weight: 700; font-size: 15px; padding: 0 22px; cursor: pointer; }
.kp-hero-search button:hover { filter: brightness(1.06); }
.kp-chips { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.kp-chips a { display: inline-flex; gap: 7px; align-items: center; font-size: 13.5px; color: #E9E2F3; text-decoration: none; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); padding: 7px 13px; border-radius: 30px; transition: background .15s, border-color .15s; }
.kp-chips a:hover { background: rgba(212, 175, 90, .18); border-color: rgba(212, 175, 90, .5); color: #fff; }

/* Name of the day */
.kp-nod { position: relative; background: linear-gradient(160deg, #FBF6EA, #F1E6CC); color: var(--kp-text); border-radius: 22px; padding: 30px; box-shadow: 0 30px 70px rgba(0, 0, 0, .45); border: 1px solid #E8D9B3; }
.kp-nod::before { content: ""; position: absolute; inset: 10px; border: 1px dashed #D4BF8B; border-radius: 16px; pointer-events: none; }
.kp-nod p { margin: 0; }
.kp-nod-label { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #9B7A2F; font-weight: 700; }
.kp-nod-name { font-family: var(--kp-serif); font-size: clamp(32px, 4vw, 44px); font-weight: 700; color: var(--kp-ink); margin: 12px 0 4px !important; line-height: 1.1; word-break: break-word; }
.kp-nod-tag { font-family: Cormorant, Georgia, serif; font-style: italic; font-size: 19px; color: var(--kp-muted); }
.kp-nod-meaning { margin: 14px 0 0 !important; font-size: 15.5px; line-height: 1.55; }
.kp-nod-actions { position: relative; display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.kp-btn { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; font-size: 14px; border-radius: 10px; padding: 11px 16px; border: 1px solid var(--kp-ink); background: var(--kp-ink); color: #F3E7C2; text-decoration: none; cursor: pointer; }
.kp-btn:hover { color: #fff; background: #1d2846; }
.kp-btn--ghost { background: transparent; color: var(--kp-ink); }
.kp-btn--ghost:hover { background: rgba(15, 22, 41, .06); color: var(--kp-ink); }
.kp-btn.is-copied, .kp-chip.is-copied, .kp-rand-copy.is-copied { background: var(--kp-sage) !important; border-color: var(--kp-sage) !important; color: #fff !important; }
.kp-hero-art { display: grid; place-items: center; }
.kp-hero-keep { width: 220px; height: auto; filter: drop-shadow(0 0 40px rgba(240, 213, 140, .35)); }

/* ---------- Home: hubs, section head, why ---------- */
.home .content-container, .blog .content-container { position: relative; }
.kp-hubs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; margin: -86px 0 56px; position: relative; z-index: 2; }
.kp-hub { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 6px; border-radius: 20px; padding: 26px; min-height: 210px; color: #fff; text-decoration: none; box-shadow: 0 18px 40px rgba(15, 22, 41, .25); transition: transform .18s ease, box-shadow .18s ease; }
.kp-hub:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(15, 22, 41, .32); color: #fff; }
.kp-hub::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 190px; height: 190px; border-radius: 50%; border: 30px solid rgba(255, 255, 255, .07); }
.kp-hub-em { width: 58px; height: 58px; border-radius: 16px; background: rgba(255, 255, 255, .14); display: grid; place-items: center; font-size: 30px; border: 1px solid rgba(255, 255, 255, .25); margin-bottom: 12px; }
.kp-hub-name { font-family: var(--kp-serif); font-size: 21px; font-weight: 700; }
.kp-hub-line { font-size: 14px; color: #ffffffd0; line-height: 1.5; }
.kp-hub-go { margin-top: auto; padding-top: 10px; font-size: 13.5px; font-weight: 600; color: #FBE7AE; }
.kp-hub-count { position: absolute; top: 24px; right: 24px; font-size: 12px; font-weight: 700; background: rgba(0, 0, 0, .25); padding: 6px 11px; border-radius: 20px; }
.kp-tone-ember { background: linear-gradient(140deg, #7A2E2E, #C2553A 60%, #E08A4F); }
.kp-tone-sage { background: linear-gradient(140deg, #1E4D45, #3E7D69 60%, #7CB08C); }
.kp-tone-violet { background: linear-gradient(140deg, #2B2260, #5B45A1 60%, #9478D6); }
.kp-tone-steel { background: linear-gradient(140deg, #1F2A44, #3D5A80 60%, #7393B3); }
.kp-tone-stone { background: linear-gradient(140deg, #3B3227, #6D5D4B 60%, #A89276); }
.kp-tone-bronze { background: linear-gradient(140deg, #4A2C12, #8C5A2B 60%, #C89155); }
.kp-tone-azure { background: linear-gradient(140deg, #12345A, #2F6FA8 60%, #6FB1E0); }
.kp-tone-gold { background: linear-gradient(140deg, #5C4210, #A07A22 60%, #D9B45A); }
.kp-tone-iron { background: linear-gradient(140deg, #26262E, #4A4A58 60%, #8A8A9C); }
.kp-sec-head { margin: 0 0 24px; }
.kp-orn { display: flex; align-items: center; gap: 10px; color: var(--kp-gold-deep); font-size: 13px; letter-spacing: .25em; text-transform: uppercase; font-weight: 700; margin: 0 0 6px; }
.kp-orn::before { content: ""; width: 30px; height: 1px; background: var(--kp-gold); }
.kp-section-title { font-family: var(--kp-serif); font-size: clamp(24px, 3vw, 30px); color: var(--kp-ink); margin: 0; }
.kp-sec-sub { color: var(--kp-muted); font-size: 15px; margin: 6px 0 0; }
.kp-why { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 56px 0 10px; background: var(--kp-ink); border-radius: 22px; padding: 34px; color: #fff; }
.kp-why p { margin: 0; }
.kp-why-ic { font-size: 26px; }
.kp-why-t { font-family: var(--kp-serif); font-size: 18px; color: var(--kp-gold2); margin: 10px 0 6px !important; font-weight: 700; }
.kp-why-d { font-size: 14px; color: #C9C2D8; line-height: 1.5; }

/* ---------- Cards (home, hubs, search) ---------- */
.content-bg.loop-entry, .entry.single-entry { border-radius: var(--kp-radius); overflow: hidden; }
.loop-entry { border: 1px solid var(--kp-line); box-shadow: var(--kp-shadow) !important; transition: transform .18s ease, box-shadow .18s ease; }
.loop-entry:hover { transform: translateY(-3px); box-shadow: 0 16px 32px -16px rgba(60, 40, 10, .35) !important; }
.loop-entry .post-thumbnail { border-radius: 0; }
.loop-entry .entry-content-wrap { padding: 16px 18px 18px !important; }
.loop-entry .entry-title { font-family: var(--kp-serif); font-weight: 700; }
.loop-entry .entry-title a { text-decoration: none; color: var(--kp-ink); }
.loop-entry .entry-taxonomies { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.loop-entry .entry-taxonomies a { color: var(--kp-gold-deep); text-decoration: none; }

/* ---------- Hub pages ---------- */
.archive.category .entry-hero, .archive.category .archive-title, .archive.category .page-title { display: none; }
.kp-hub-head { position: relative; overflow: hidden; display: flex; gap: 24px; align-items: flex-start; color: #fff; border-radius: 24px; padding: 34px; margin: 0 0 40px; box-shadow: 0 18px 40px rgba(15, 22, 41, .2); }
.kp-hub-head::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .06); }
.kp-hub-head .kp-hub-icon { flex: none; width: 76px; height: 76px; border-radius: 20px; display: grid; place-items: center; font-size: 40px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25); }
.kp-hub-copy { position: relative; z-index: 1; }
.kp-hub-head .kp-eyebrow { color: #FBE7AE; }
.kp-hub-head h1, .kp-hub-title { font-family: var(--kp-serif); color: #fff; font-size: clamp(28px, 4vw, 40px); margin: 0 0 12px; }
.kp-hub-intro { color: #ffffffe0; font-size: 16px; line-height: 1.7; max-width: 820px; }
.kp-hub-intro p { margin: 0 0 10px; }
.kp-start { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 16px; }
.kp-start-label { font-weight: 700; font-size: 14px; color: #FBE7AE; }
.kp-start a { color: #fff; text-decoration: none; font-weight: 600; font-size: 14px; background: rgba(0, 0, 0, .2); border: 1px solid rgba(255, 255, 255, .25); padding: 7px 13px; border-radius: 30px; }
.kp-start a:hover { background: rgba(0, 0, 0, .35); color: #fff; }

/* ---------- Article ---------- */
.single-post .entry-header .entry-title { font-family: var(--kp-serif); color: var(--kp-ink); }
.single-post .kadence-breadcrumbs { font-size: 13px; color: var(--kp-muted); }
.single-post .kadence-breadcrumbs a { color: var(--kp-gold-deep); font-weight: 600; text-decoration: none; }
.single-post .entry-meta { font-size: 14px; color: var(--kp-muted); }
.single-post .post-thumbnail { border-radius: 20px; overflow: hidden; box-shadow: 0 18px 40px rgba(60, 20, 10, .18); }

/* Two columns: article + sticky random-name box (desktop). */
.kp-art { display: grid; grid-template-columns: minmax(0, 1fr) 290px; column-gap: 40px; align-items: start; }
.kp-art > * { grid-column: 1; }
.kp-art > .kp-rand { grid-column: 2; grid-row: 1 / span 999; position: sticky; top: 110px; margin-top: 4px; }
@media (max-width: 1024px) {
	.kp-art { display: block; }
	.kp-art > .kp-rand { position: static; margin: 0 0 24px; }
}

/* Quick picks */
.kp-qp { background: var(--kp-ink); border-radius: var(--kp-radius); padding: 20px 22px 22px; color: #fff; margin: 26px 0; }
.kp-qp-title { font-family: var(--kp-serif); color: var(--kp-gold2); font-size: 18px; font-weight: 700; margin: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kp-qp-title span { font-family: Inter, sans-serif; font-weight: 500; font-size: 12.5px; color: #B9B2C9; }
.kp-qp-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.kp-chip { cursor: pointer; background: rgba(255, 255, 255, .08); color: #fff; border: 1px solid rgba(212, 175, 90, .35); padding: 8px 13px; border-radius: 10px; font-weight: 600; font-size: 15px; line-height: 1.2; transition: background .15s, transform .15s; }
.kp-chip::after { content: " ⧉"; font-size: 12px; color: var(--kp-gold2); }
.kp-chip:hover { background: rgba(212, 175, 90, .2); transform: translateY(-1px); }
.kp-chip.is-copied::after { content: " ✓"; color: #fff; }

/* Random name box */
.kp-rand { background: linear-gradient(160deg, #2B2260, #18223D); color: #fff; border-radius: var(--kp-radius); padding: 22px; box-shadow: 0 18px 40px rgba(15, 22, 41, .25); }
.kp-rand p { margin: 0; }
.kp-rand-title { font-family: var(--kp-serif); color: var(--kp-gold2); font-size: 15px; font-weight: 700; }
.kp-rand-name { font-family: var(--kp-serif); font-size: 28px; font-weight: 700; margin: 12px 0 4px !important; line-height: 1.15; word-break: break-word; }
.kp-rand-meaning { font-size: 13.5px; color: #C9C2D8; line-height: 1.5; min-height: 40px; }
.kp-rand-actions { display: flex; gap: 8px; margin-top: 16px; }
.kp-rand-next { flex: 1; cursor: pointer; border: 0; border-radius: 10px; padding: 11px; font-weight: 700; color: var(--kp-ink); background: linear-gradient(180deg, #E2BE68, #C79A3F); }
.kp-rand-next:hover { filter: brightness(1.06); }
.kp-rand-copy { cursor: pointer; width: 44px; border-radius: 10px; border: 1px solid rgba(240, 213, 140, .5); background: transparent; color: var(--kp-gold2); font-size: 17px; }
.kp-rand.is-new .kp-rand-name { animation: kp-pop .35s ease; }
@keyframes kp-pop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Table of contents */
.kp-toc { margin: 26px 0; border: 1px solid var(--kp-line); background: #fff; border-radius: 16px; padding: 18px 22px; }
.kp-toc summary { cursor: pointer; font-family: var(--kp-serif); font-weight: 700; color: var(--kp-ink); list-style: none; }
.kp-toc summary::-webkit-details-marker { display: none; }
.kp-toc summary::after { content: "▾"; float: right; color: var(--kp-gold-deep); }
.kp-toc:not([open]) summary::after { content: "▸"; }
.kp-toc-list { columns: 2; column-gap: 32px; margin: 12px 0 0 20px; font-size: 14.5px; line-height: 1.9; }
.kp-toc-list a { color: #5B5370; text-decoration: none; }
.kp-toc-list a:hover { color: var(--kp-gold-deep); text-decoration: underline; }
@media (max-width: 600px) { .kp-toc-list { columns: 1; } }

/* Section headings */
.single-post .entry-content h2 { font-family: var(--kp-serif); color: var(--kp-ink); display: flex; align-items: center; gap: 12px; margin-top: 2em; scroll-margin-top: 100px; }
.single-post .entry-content h2::before { content: "✦"; color: var(--kp-gold); font-size: .65em; }
.single-post .entry-content h3 { scroll-margin-top: 100px; color: var(--kp-ink); }

/* Name cards */
.entry-content ul.kp-names, .entry-content ol.kp-names { list-style: none; margin: 18px 0 26px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; counter-reset: none; }
.kp-nc { position: relative; margin: 0 !important; background: #fff; border: 1px solid var(--kp-line); border-radius: 14px; padding: 15px 56px 15px 18px; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s, box-shadow .15s; }
.kp-nc::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 3px; background: linear-gradient(var(--kp-gold), var(--kp-ember)); }
.kp-nc:hover { border-color: #D9C48F; box-shadow: var(--kp-shadow); }
.kp-nc.is-copied { border-color: var(--kp-sage); }
.kp-n { font-family: var(--kp-serif); font-weight: 700; font-size: 18px; color: var(--kp-ink); line-height: 1.3; }
.kp-d { font-size: 14px; color: var(--kp-muted); line-height: 1.5; }
.kp-o { font-size: 11px; font-weight: 700; color: var(--kp-gold-deep); letter-spacing: .05em; text-transform: uppercase; margin-top: 3px; }
.kp-copy { position: absolute; top: 13px; right: 13px; width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--kp-line); background: var(--kp-parch); color: var(--kp-ink); display: grid; place-items: center; cursor: pointer; padding: 0; }
.kp-copy svg { width: 16px; height: 16px; }
.kp-copy:hover { background: #fff; border-color: var(--kp-gold); }
.kp-copy.is-copied { background: var(--kp-sage); border-color: var(--kp-sage); color: #fff; }
@media (max-width: 640px) { .entry-content ul.kp-names, .entry-content ol.kp-names { grid-template-columns: 1fr; } }

/* "More names" link boxes (interlinks) */
.entry-content .kp-more { margin: 26px 0; background: linear-gradient(90deg, #FFF8E6, #F7EBCB); border: 1px solid #E8D59E; border-radius: 14px; padding: 14px 18px; font-size: 15.5px; }
.entry-content .kp-more a { color: #8A3A22; font-weight: 700; }

/* FAQ */
.entry-content .kp-faq-q { background: #fff; border: 1px solid var(--kp-line); border-bottom: 0; border-radius: 14px 14px 0 0; padding: 16px 20px 6px; margin: 18px 0 0; font-size: 18px; }
.entry-content .kp-faq-a { background: #fff; border: 1px solid var(--kp-line); border-top: 0; border-radius: 0 0 14px 14px; padding: 0 20px 16px; margin: 0; color: var(--kp-text); }

/* Share */
.kp-share { margin: 36px 0 10px; padding: 20px; border-radius: 16px; background: var(--kp-parch); border: 1px solid var(--kp-line); text-align: center; }
.kp-share-title { font-family: var(--kp-serif); font-weight: 700; color: var(--kp-ink); margin: 0 0 12px; }
.kp-share-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.kp-share-links a, .kp-share-links button { display: inline-flex; gap: 7px; align-items: center; padding: 9px 14px; border-radius: 10px; font-size: 14px; font-weight: 600; text-decoration: none; color: #fff; border: 0; cursor: pointer; line-height: 1; }
.kp-share-links svg { width: 16px; height: 16px; fill: currentColor; }
.kp-share-pinterest { background: #C8232C; }
.kp-share-facebook { background: #1877F2; }
.kp-share-x { background: #111; }
.kp-share-whatsapp { background: #1FA855; }
.kp-share-copy { background: var(--kp-ink); }
.kp-share-links a:hover, .kp-share-links button:hover { filter: brightness(1.1); color: #fff; }

/* Related names */
.kp-related { margin: 26px 0 0; background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); padding: 20px 22px; }
.kp-related-title { font-family: var(--kp-serif); font-weight: 700; color: var(--kp-ink); font-size: 18px; margin: 0 0 12px; }
.kp-related-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.kp-related-list a { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px dashed var(--kp-line); text-decoration: none; color: var(--kp-text); font-weight: 600; font-size: 15px; }
.kp-related-list a:hover { border-style: solid; border-color: var(--kp-gold); background: #FFFBF0; }
.kp-related-icon { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; font-size: 19px; background: var(--kp-parch); }

/* Author box (Kadence) */
.entry-author { border-radius: var(--kp-radius); }
.entry-author-style-normal, .entry-author-style-center { background: var(--kp-parch); border: 1px solid var(--kp-line); padding: 22px; }
.entry-author-name { font-family: var(--kp-serif); }

/* ---------- Pages ---------- */
.page .entry-content h2 { font-family: var(--kp-serif); color: var(--kp-ink); }
.kp-sitemap section { margin: 0 0 28px; }
.kp-sitemap h2 a { text-decoration: none; color: var(--kp-ink); }
.kp-sitemap ul { columns: 2; column-gap: 32px; }
@media (max-width: 640px) { .kp-sitemap ul { columns: 1; } }

/* ---------- Footer ---------- */
.site-footer .site-bottom-footer-inner-wrap { padding-top: 34px; padding-bottom: 34px; }
.site-footer .footer-navigation .menu { flex-wrap: wrap; justify-content: center; row-gap: 4px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.kp-hero-grid { grid-template-columns: 1fr; }
	.kp-nod { max-width: 560px; }
	.kp-why { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.kp-hero { padding: 44px 18px 96px; }
	.kp-hero-text { font-size: 16.5px; }
	.kp-hero-search button { padding: 0 14px; }
	.kp-hubs { margin-top: -70px; grid-template-columns: 1fr; }
	.kp-why { grid-template-columns: 1fr; padding: 26px; }
	.kp-hub-head { flex-direction: column; padding: 26px; }
}
@media (prefers-reduced-motion: reduce) {
	.kp-stars, .kp-rand.is-new .kp-rand-name { animation: none; }
	.kp-hub, .loop-entry, .kp-chip { transition: none; }
}
