/*
Theme Name: Takajua Stories
Theme URI: https://takajua.com
Author: Takajua
Author URI: https://takajua.com
Description: A warm, illustrative storybook theme for Takajua — Kiswahili children's stories about nature, animals and environmental conservation. Flat, textured illustration style with a terracotta and parchment palette.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: takajua-stories
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   1. CSS VARIABLES — Takajua brand palette
   ========================================================================== */
:root{
	--tj-terracotta: #C4532A;
	--tj-gold: #F0B832;
	--tj-green: #2D4A2A;
	--tj-parchment: #FDFAF5;
	--tj-ink: #3A2A1A;
	--tj-brown: #8B6B4A;
	--tj-white: #FFFFFF;

	--tj-font-heading: 'Nunito', -apple-system, sans-serif;
	--tj-font-body: 'Lora', Georgia, serif;

	--tj-radius: 18px;
	--tj-shadow: 0 8px 24px rgba(58, 42, 26, 0.12);
	--tj-max-width: 1180px;
}

/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
	margin: 0;
	background-color: var(--tj-parchment);
	background-image:
		radial-gradient(circle at 1px 1px, rgba(139,107,74,0.09) 1px, transparent 0);
	background-size: 22px 22px;
	color: var(--tj-ink);
	font-family: var(--tj-font-body);
	font-size: 18px;
	line-height: 1.7;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: var(--tj-terracotta); text-decoration: none; }
a:hover{ color: var(--tj-ink); }
ul{ list-style: none; margin: 0; padding: 0; }
button{ font-family: inherit; cursor: pointer; }

h1, h2, h3, h4, .tj-heading{
	font-family: var(--tj-font-heading);
	font-weight: 800;
	color: var(--tj-ink);
	line-height: 1.2;
	margin: 0 0 0.5em;
}
h1{ font-size: clamp(2rem, 4vw, 3rem); }
h2{ font-size: clamp(1.5rem, 3vw, 2.2rem); }
h3{ font-size: 1.3rem; }

.tj-wrap{
	max-width: var(--tj-max-width);
	margin: 0 auto;
	padding: 0 24px;
}
.tj-eyebrow{
	display: inline-block;
	font-family: var(--tj-font-heading);
	font-weight: 800;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tj-terracotta);
	background: rgba(196,83,42,0.1);
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 14px;
}
.tj-btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tj-font-heading);
	font-weight: 800;
	font-size: 0.95rem;
	background: var(--tj-terracotta);
	color: var(--tj-white);
	border: none;
	border-radius: 999px;
	padding: 14px 28px;
	box-shadow: var(--tj-shadow);
	transition: transform 0.15s ease, background 0.15s ease;
}
.tj-btn:hover{ background: var(--tj-ink); color: var(--tj-white); transform: translateY(-2px); }
.tj-btn--ghost{
	background: transparent;
	color: var(--tj-ink);
	border: 2px solid var(--tj-ink);
	box-shadow: none;
}
.tj-btn--ghost:hover{ background: var(--tj-ink); color: var(--tj-white); }

/* ==========================================================================
   3. SITE HEADER
   ========================================================================== */
.tj-header{
	background: var(--tj-parchment);
	border-bottom: 3px solid var(--tj-ink);
	position: sticky;
	top: 0;
	z-index: 50;
}
.tj-header__inner{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 24px;
	gap: 24px;
}
.tj-logo{
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--tj-font-heading);
	font-weight: 900;
	font-size: 1.5rem;
	color: var(--tj-ink);
}
.tj-logo img{ height: 44px; width: auto; border-radius: 50%; }
.tj-logo span{ color: var(--tj-terracotta); }

.tj-nav ul{ display: flex; gap: 28px; }
.tj-nav a{
	font-family: var(--tj-font-heading);
	font-weight: 700;
	font-size: 1rem;
	color: var(--tj-ink);
	padding: 6px 2px;
	border-bottom: 3px solid transparent;
}
.tj-nav a:hover, .tj-nav .current-menu-item > a{
	color: var(--tj-terracotta);
	border-bottom-color: var(--tj-gold);
}
.tj-header__cta{ display: flex; align-items: center; gap: 14px; }

.tj-menu-toggle{
	display: none;
	background: none;
	border: 2px solid var(--tj-ink);
	border-radius: 10px;
	padding: 8px 12px;
	font-size: 1.2rem;
}

/* ==========================================================================
   4. HERO / FRONT PAGE BANNER
   ========================================================================== */
.tj-hero{
	position: relative;
	background: var(--tj-terracotta);
	background-image: linear-gradient(135deg, var(--tj-terracotta) 0%, #A8431F 100%);
	overflow: hidden;
	padding: 72px 0 96px;
}
.tj-hero::after{
	content: "";
	position: absolute;
	bottom: -1px; left: 0; right: 0;
	height: 60px;
	background: var(--tj-parchment);
	clip-path: polygon(0 100%, 100% 100%, 100% 0%, 92% 60%, 84% 10%, 76% 55%, 68% 5%, 60% 60%, 52% 8%, 44% 55%, 36% 10%, 28% 58%, 20% 6%, 12% 55%, 4% 15%, 0 50%);
}
.tj-hero__inner{
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 40px;
	align-items: center;
	position: relative;
	z-index: 2;
}
.tj-hero__eyebrow{
	display: inline-block;
	font-family: var(--tj-font-heading);
	font-weight: 800;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tj-ink);
	background: var(--tj-gold);
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 16px;
}
.tj-hero h1{ color: var(--tj-white); }
.tj-hero p{
	color: rgba(255,255,255,0.92);
	font-size: 1.15rem;
	max-width: 46ch;
}
.tj-hero__actions{ display: flex; gap: 14px; margin-top: 24px; flex-wrap: wrap; }
.tj-hero__actions .tj-btn--ghost{ border-color: var(--tj-white); color: var(--tj-white); }
.tj-hero__actions .tj-btn--ghost:hover{ background: var(--tj-white); color: var(--tj-ink); }

.tj-hero__art{
	background: var(--tj-parchment);
	border-radius: 28px;
	padding: 16px;
	box-shadow: var(--tj-shadow);
	transform: rotate(-2deg);
}
.tj-hero__art img{ border-radius: 20px; }

/* ==========================================================================
   5. STORY CARD GRID (front page + archives)
   ========================================================================== */
.tj-section{ padding: 64px 0; }
.tj-section__head{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 32px;
	gap: 20px;
	flex-wrap: wrap;
}
.tj-section__head p{ color: var(--tj-brown); max-width: 60ch; }

.tj-grid{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.tj-card{
	background: var(--tj-white);
	border-radius: var(--tj-radius);
	overflow: hidden;
	box-shadow: var(--tj-shadow);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	border: 3px solid transparent;
}
.tj-card:hover{
	transform: translateY(-6px) rotate(-0.5deg);
	border-color: var(--tj-gold);
}
.tj-card__thumb{
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--tj-brown);
	position: relative;
}
.tj-card__thumb img{ width: 100%; height: 100%; object-fit: cover; }
.tj-card__cat{
	position: absolute;
	top: 12px; left: 12px;
	background: var(--tj-terracotta);
	color: var(--tj-white);
	font-family: var(--tj-font-heading);
	font-weight: 800;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 5px 12px;
	border-radius: 999px;
}
.tj-card__body{ padding: 20px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.tj-card__body h3{ margin-bottom: 10px; }
.tj-card__body h3 a{ color: var(--tj-ink); }
.tj-card__body h3 a:hover{ color: var(--tj-terracotta); }
.tj-card__excerpt{ color: var(--tj-brown); font-size: 0.95rem; flex: 1; margin: 0 0 14px; }
.tj-card__meta{
	font-family: var(--tj-font-heading);
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--tj-brown);
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Featured / first card larger on front page */
.tj-grid--featured .tj-card:first-child{
	grid-column: span 2;
}
.tj-grid--featured .tj-card:first-child .tj-card__thumb{ aspect-ratio: 16/9; }

/* ==========================================================================
   6. SPEECH BUBBLE / CALLOUT (matches illustration style — dotted speech bubbles)
   ========================================================================== */
.tj-bubble{
	position: relative;
	background: var(--tj-white);
	border-radius: 24px;
	padding: 20px 26px;
	box-shadow: var(--tj-shadow);
	font-family: var(--tj-font-heading);
	font-weight: 700;
	color: var(--tj-ink);
	margin: 32px 0;
}
.tj-bubble::before{
	content: "";
	position: absolute;
	bottom: -14px; left: 40px;
	width: 26px; height: 26px;
	background: var(--tj-white);
	clip-path: polygon(0 0, 100% 0, 0 100%);
	border-radius: 0 0 0 6px;
}
.tj-bubble--dots{ display: flex; gap: 8px; align-items: center; width: fit-content; }
.tj-bubble--dots span{
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--tj-terracotta);
}

/* ==========================================================================
   7. SINGLE STORY POST
   ========================================================================== */
.tj-story-header{ padding: 56px 0 20px; text-align: center; }
.tj-story-header .tj-eyebrow{ }
.tj-story-header h1{ max-width: 20ch; margin-left: auto; margin-right: auto; }
.tj-story-meta{
	display: flex;
	justify-content: center;
	gap: 18px;
	font-family: var(--tj-font-heading);
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--tj-brown);
	margin-top: 14px;
}
.tj-story-cover{
	max-width: var(--tj-max-width);
	margin: 0 auto 40px;
	padding: 0 24px;
}
.tj-story-cover img{
	border-radius: var(--tj-radius);
	box-shadow: var(--tj-shadow);
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
}

.tj-story-body{
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px 40px;
	font-size: 1.15rem;
}
.tj-story-body p{ margin: 0 0 1.4em; }
.tj-story-body p:first-of-type::first-letter{
	font-family: var(--tj-font-heading);
	font-weight: 900;
	font-size: 3.2em;
	float: left;
	line-height: 0.8;
	padding: 6px 10px 0 0;
	color: var(--tj-terracotta);
}
.tj-story-body img{ border-radius: var(--tj-radius); box-shadow: var(--tj-shadow); margin: 28px 0; }
.tj-story-body figcaption{
	text-align: center;
	font-family: var(--tj-font-heading);
	font-size: 0.85rem;
	color: var(--tj-brown);
	margin-top: -18px;
	margin-bottom: 24px;
}

/* Comic-style panel gallery — used when a story post embeds a WP gallery block */
.tj-story-body .wp-block-gallery,
.tj-panels{
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin: 36px 0;
}
.tj-story-body .wp-block-gallery figure,
.tj-panels figure{ margin: 0; }
.tj-story-body .wp-block-gallery img,
.tj-panels img{
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 14px;
	border: 4px solid var(--tj-white);
	box-shadow: var(--tj-shadow);
}
.tj-panels__num{
	font-family: var(--tj-font-heading);
	font-weight: 900;
	color: var(--tj-gold);
	-webkit-text-stroke: 1.5px var(--tj-ink);
	font-size: 1.4rem;
	position: absolute;
	margin-top: -22px;
	margin-left: 10px;
}

.tj-story-nav{
	display: flex;
	justify-content: space-between;
	gap: 20px;
	max-width: 760px;
	margin: 40px auto;
	padding: 0 24px;
}
.tj-story-nav a{
	background: var(--tj-white);
	border-radius: 14px;
	padding: 14px 20px;
	box-shadow: var(--tj-shadow);
	font-family: var(--tj-font-heading);
	font-weight: 700;
	flex: 1;
	display: block;
}
.tj-story-nav a:hover{ background: var(--tj-gold); color: var(--tj-ink); }
.tj-story-nav .tj-nav-next{ text-align: right; }

/* ==========================================================================
   8. PAGE / GENERIC CONTENT
   ========================================================================== */
.tj-page-header{ padding: 56px 0 10px; text-align: center; }
.tj-content{
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px 60px;
}
.tj-content p{ margin: 0 0 1.4em; }

/* ==========================================================================
   9. SIDEBAR / WIDGETS
   ========================================================================== */
.tj-widget{
	background: var(--tj-white);
	border-radius: var(--tj-radius);
	box-shadow: var(--tj-shadow);
	padding: 24px;
	margin-bottom: 24px;
}
.tj-widget h2{ font-size: 1.1rem; margin-bottom: 16px; }

/* ==========================================================================
   10. FOOTER
   ========================================================================== */
.tj-footer{
	background: var(--tj-ink);
	color: var(--tj-parchment);
	padding: 56px 0 28px;
	margin-top: 40px;
}
.tj-footer a{ color: var(--tj-parchment); }
.tj-footer a:hover{ color: var(--tj-gold); }
.tj-footer__grid{
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
	margin-bottom: 40px;
}
.tj-footer h3{ color: var(--tj-gold); font-size: 1rem; text-transform: uppercase; letter-spacing: 0.05em; }
.tj-footer__brand{ font-family: var(--tj-font-heading); font-weight: 900; font-size: 1.4rem; margin-bottom: 10px; }
.tj-footer__brand span{ color: var(--tj-gold); }
.tj-footer p{ color: rgba(253,250,245,0.7); }
.tj-footer ul li{ margin-bottom: 10px; }
.tj-footer__social{ display: flex; gap: 12px; margin-top: 16px; }
.tj-footer__social a{
	width: 38px; height: 38px;
	border: 2px solid rgba(253,250,245,0.4);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 0.9rem;
}
.tj-footer__social a:hover{ border-color: var(--tj-gold); }
.tj-footer__bottom{
	border-top: 1px solid rgba(253,250,245,0.15);
	padding-top: 20px;
	text-align: center;
	font-size: 0.85rem;
	color: rgba(253,250,245,0.6);
	font-family: var(--tj-font-heading);
}

/* ==========================================================================
   11. RESPONSIVE
   ========================================================================== */
@media (max-width: 880px){
	.tj-hero__inner{ grid-template-columns: 1fr; }
	.tj-grid{ grid-template-columns: 1fr 1fr; }
	.tj-grid--featured .tj-card:first-child{ grid-column: span 2; }
	.tj-footer__grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
	.tj-nav{ display: none; }
	.tj-menu-toggle{ display: block; }
	.tj-grid{ grid-template-columns: 1fr; }
	.tj-grid--featured .tj-card:first-child{ grid-column: span 1; }
	.tj-story-nav{ flex-direction: column; }
	.tj-panels{ grid-template-columns: 1fr; }
	.tj-footer__grid{ grid-template-columns: 1fr; }
	body{ font-size: 16px; }
}

/* ==========================================================================
   12. COMMENTS
   ========================================================================== */
.tj-comments{ max-width: 760px; margin: 0 auto; padding: 0 24px 60px; }
.tj-comment-list{ margin: 24px 0; }
.tj-comment-list li{
	background: var(--tj-white);
	border-radius: 14px;
	padding: 18px 20px;
	margin-bottom: 14px;
	box-shadow: var(--tj-shadow);
}
.tj-comments .comment-form input[type="text"],
.tj-comments .comment-form input[type="email"],
.tj-comments .comment-form textarea{
	width: 100%;
	padding: 12px 14px;
	border-radius: 10px;
	border: 2px solid rgba(58,42,26,0.15);
	font-family: var(--tj-font-body);
	margin-bottom: 14px;
}

/* Mobile nav (JS toggled) */
.tj-nav.is-open{
	display: block;
	position: absolute;
	top: 100%; left: 0; right: 0;
	background: var(--tj-parchment);
	border-bottom: 3px solid var(--tj-ink);
	padding: 10px 24px 20px;
}
.tj-nav.is-open ul{ flex-direction: column; gap: 4px; }
