/* =========================================================
   MyTheme – Main Stylesheet
   Palmville Christian Academy
   Palette: #2C5F2D (green) · #F4A261 (gold) · #F9F6F0 (beige)
   ========================================================= */

/* ─── CSS Custom Properties ──────────────────────────────── */
:root {
	--green:        #2C5F2D;
	--green-dark:   #1e4220;
	--green-light:  #3d7a3e;
	--gold:         #F4A261;
	--gold-dark:    #e88840;
	--beige:        #F9F6F0;
	--white:        #FFFFFF;
	--text:         #2D2D2D;
	--text-muted:   #6b7280;
	--border:       #e5e7eb;
	--success:      #16a34a;
	--error:        #dc2626;

	--font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--font-body:    'Poppins', 'Open Sans', system-ui, sans-serif;

	--max-w:        1200px;
	--pad:          1.5rem;
	--radius:       8px;
	--radius-lg:    16px;
	--shadow:       0 4px 6px -1px rgba(0,0,0,.10), 0 2px 4px -1px rgba(0,0,0,.06);
	--shadow-lg:    0 10px 25px -3px rgba(0,0,0,.12), 0 4px 10px -2px rgba(0,0,0,.06);
	--transition:   .3s ease;
}

/* ─── Reset & Base ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
	font-family: var(--font-body);
	color: var(--text);
	background: var(--white);
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--green); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--gold-dark); }

ul, ol { list-style: none; }

/* ─── Typography ─────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	line-height: 1.3;
	color: var(--green);
	margin-bottom: .85rem;
}
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.2rem; }
p  { margin-bottom: 1rem; }

/* ─── Layout ─────────────────────────────────────────────── */
.container {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 0 var(--pad);
}
.section-padding { padding: 5rem 0; }
.text-center     { text-align: center; }
.bg-light        { background-color: var(--beige); }
.bg-green        { background-color: var(--green); }
.site-main       { min-height: 60vh; }

/* ─── Skip Link ──────────────────────────────────────────── */
.skip-link {
	position: absolute;
	top: -100%;
	left: 1rem;
	background: var(--green);
	color: var(--white);
	padding: .5rem 1.25rem;
	border-radius: 0 0 var(--radius) var(--radius);
	z-index: 9999;
	font-size: .9rem;
	transition: top var(--transition);
}
.skip-link:focus { top: 0; color: var(--white); }

/* ─── Top Bar ────────────────────────────────────────────── */
.top-bar {
	background: var(--green);
	color: rgba(255,255,255,.9);
	padding: .45rem 0;
	font-size: .82rem;
}
.top-bar .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem;
}
.top-bar-contact { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.top-bar-contact span { display: flex; align-items: center; gap: .4rem; }
.top-bar-contact a,
.top-bar-social  a  { color: rgba(255,255,255,.9); }
.top-bar-contact a:hover,
.top-bar-social  a:hover { color: var(--gold); }
.top-bar-social { display: flex; gap: .6rem; }
.top-bar-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: rgba(255,255,255,.15);
	transition: background var(--transition);
	font-size: .8rem;
}
.top-bar-social a:hover { background: var(--gold); color: var(--white); }

/* ─── Header & Navigation ────────────────────────────────── */
.site-header {
	background: var(--white);
	box-shadow: 0 2px 12px rgba(0,0,0,.08);
	position: sticky;
	top: 0;
	z-index: 1000;
	transition: box-shadow var(--transition);
}
.site-header.sticky { box-shadow: 0 4px 20px rgba(0,0,0,.14); }

.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 78px;
	gap: 1rem;
}

/* Branding */
.site-branding { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.site-logo { max-height: 58px; width: auto; }
.site-logo-link,
.site-title-link { display: flex; align-items: center; }
.site-text-branding a { text-decoration: none; }
.site-name    { font-family: var(--font-heading); font-size: 1.05rem; font-weight: 700; color: var(--green); margin: 0; line-height: 1.2; }
.site-tagline { font-size: .68rem; color: var(--text-muted); margin: 0; line-height: 1; }

/* Nav */
.main-navigation { display: flex; align-items: center; }
.nav-menu { display: flex; align-items: center; gap: .15rem; }
.nav-menu > li { position: relative; }
.nav-menu a {
	display: block;
	padding: .5rem .9rem;
	color: var(--text);
	font-weight: 500;
	font-size: .88rem;
	border-radius: var(--radius);
	transition: all var(--transition);
}
.nav-menu a:hover,
.nav-menu .current-menu-item > a,
.nav-menu .current-page-ancestor > a { color: var(--green); background: rgba(44,95,45,.08); }

/* Dropdowns */
.nav-menu .sub-menu {
	position: absolute; top: calc(100% + 4px); left: 0;
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-lg);
	min-width: 210px;
	padding: .4rem 0;
	opacity: 0; visibility: hidden;
	transform: translateY(8px);
	transition: all var(--transition);
	z-index: 200;
}
.nav-menu li:hover > .sub-menu,
.nav-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-menu .sub-menu a { border-radius: 0; padding: .5rem 1.1rem; font-size: .875rem; }

/* Hamburger */
.menu-toggle {
	display: none;
	background: none;
	border: 2px solid var(--green);
	border-radius: var(--radius);
	cursor: pointer;
	padding: .4rem .55rem;
	color: var(--green);
}
.hamburger-icon { display: flex; flex-direction: column; gap: 4px; width: 22px; }
.hamburger-icon span { display: block; height: 2px; background: var(--green); border-radius: 2px; transition: all var(--transition); }
.menu-toggle[aria-expanded="true"] .hamburger-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .hamburger-icon span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .hamburger-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ─── Buttons ────────────────────────────────────────────── */
.btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 2rem;
	border-radius: 50px;
	font-weight: 600;
	font-size: .9rem;
	font-family: var(--font-body);
	transition: all var(--transition);
	cursor: pointer;
	border: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1;
}
.btn-primary { background: var(--green); color: var(--white); border-color: var(--green); }
.btn-primary:hover { background: var(--green-dark); border-color: var(--green-dark); color: var(--white); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(44,95,45,.3); }
.btn-outline { background: transparent; color: var(--white); border-color: var(--white); }
.btn-outline:hover { background: var(--white); color: var(--green); }
.btn-gold { background: var(--gold); color: var(--white); border-color: var(--gold); }
.btn-gold:hover { background: var(--gold-dark); border-color: var(--gold-dark); color: var(--white); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(244,162,97,.4); }
.btn-outline-white { background: transparent; color: var(--white); border-color: rgba(255,255,255,.55); }
.btn-outline-white:hover { background: rgba(255,255,255,.15); color: var(--white); border-color: var(--white); }

/* ─── Section Labels & Titles ────────────────────────────── */
.section-label {
	display: inline-block;
	font-size: .78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .15em;
	color: var(--gold-dark);
	margin-bottom: .65rem;
}
.section-header { margin-bottom: 3rem; }

/* ═══════════════════════════════════════════════════════════
   FRONT PAGE – HERO
   ═══════════════════════════════════════════════════════════ */
.hero-section {
	position: relative;
	min-height: 90vh;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
}
.hero-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(135deg, rgba(18,46,18,.82) 0%, rgba(44,95,45,.62) 100%);
	display: flex;
	align-items: center;
	width: 100%;
}
.hero-content {
	position: relative;
	color: var(--white);
	max-width: 700px;
	padding: 2rem 0;
	animation: fadeInUp .9s ease both;
}
.hero-title { font-size: clamp(2.2rem, 6vw, 4.5rem); color: var(--white); margin-bottom: .4rem; text-shadow: 2px 2px 12px rgba(0,0,0,.35); }
.hero-tagline { font-size: clamp(.95rem, 2.5vw, 1.35rem); color: var(--gold); font-family: var(--font-heading); font-style: italic; margin-bottom: 1.1rem; }
.hero-description { font-size: 1rem; opacity: .95; margin-bottom: 2rem; max-width: 560px; }
.hero-buttons { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ═══════════════════════════════════════════════════════════
   WELCOME / ABOUT
   ═══════════════════════════════════════════════════════════ */
.welcome-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.welcome-image img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); width: 100%; height: 440px; object-fit: cover; }
.welcome-content p { color: var(--text-muted); margin-bottom: 1.2rem; }

/* ═══════════════════════════════════════════════════════════
   CORE VALUES
   ═══════════════════════════════════════════════════════════ */
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.value-card {
	background: var(--white);
	border-radius: var(--radius-lg);
	padding: 2.5rem 2rem;
	text-align: center;
	box-shadow: var(--shadow);
	transition: transform var(--transition), box-shadow var(--transition);
	border-bottom: 4px solid transparent;
}
.value-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-bottom-color: var(--gold); }
.value-icon {
	width: 70px; height: 70px;
	background: linear-gradient(135deg, var(--green), var(--green-dark));
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 1.5rem;
}
.value-icon i { font-size: 1.7rem; color: var(--white); }
.value-card h3 { font-size: 1.2rem; margin-bottom: .65rem; color: var(--green); }
.value-card p  { color: var(--text-muted); font-size: .875rem; margin: 0; line-height: 1.7; }

/* ═══════════════════════════════════════════════════════════
   PROGRAMS
   ═══════════════════════════════════════════════════════════ */
.programs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.programs-image img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); width: 100%; height: 440px; object-fit: cover; }
.programs-list { margin: 1.5rem 0 2rem; display: flex; flex-direction: column; gap: .5rem; }
.programs-list li {
	display: flex; align-items: center; gap: .75rem;
	padding: .85rem 1.1rem;
	background: var(--white);
	border-radius: var(--radius);
	font-weight: 500;
	box-shadow: var(--shadow);
	transition: transform var(--transition);
}
.programs-list li:hover { transform: translateX(5px); }
.programs-list li i { color: var(--gold); font-size: .8rem; }

/* ═══════════════════════════════════════════════════════════
   CALL TO ACTION
   ═══════════════════════════════════════════════════════════ */
.cta-section { position: relative; overflow: hidden; }
.cta-section::before {
	content: '';
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}
.cta-title { color: var(--white); margin-bottom: 1rem; position: relative; }
.cta-desc  { color: rgba(255,255,255,.9); font-size: 1.05rem; max-width: 580px; margin: 0 auto 2rem; position: relative; }
.cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; position: relative; }

/* ═══════════════════════════════════════════════════════════
   POST CARDS  (homepage + blog + archive)
   ═══════════════════════════════════════════════════════════ */
.posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }

.post-card {
	background: var(--white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	transition: transform var(--transition), box-shadow var(--transition);
	display: flex; flex-direction: column;
}
.post-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }

.post-card-image { overflow: hidden; height: 210px; background: var(--beige); }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.post-card:hover .post-card-image img { transform: scale(1.06); }
.post-card-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--green), var(--green-dark)); opacity: .7; }

.post-card-content { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }

.post-meta { font-size: .78rem; color: var(--text-muted); margin-bottom: .5rem; display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.post-meta i { color: var(--gold-dark); }

.post-card-title { font-size: 1.05rem; margin-bottom: .6rem; }
.post-card-title a { color: var(--text); }
.post-card-title a:hover { color: var(--green); }

.post-card-excerpt { color: var(--text-muted); font-size: .875rem; margin-bottom: 1rem; flex: 1; line-height: 1.65; }
.post-card-excerpt p { margin: 0; }

.read-more { display: inline-flex; align-items: center; gap: .4rem; color: var(--green); font-weight: 600; font-size: .85rem; transition: gap var(--transition); }
.read-more:hover { gap: .75rem; color: var(--gold-dark); }

/* No posts */
.no-posts-found {
	text-align: center; padding: 4rem 2rem;
	display: flex; flex-direction: column; align-items: center; gap: 1rem;
}
.no-posts-found i { color: var(--border); }
.no-posts-found h2 { margin-bottom: .25rem; }
.no-posts-found p  { color: var(--text-muted); }

.no-posts { color: var(--text-muted); font-style: italic; }

/* ═══════════════════════════════════════════════════════════
   BLOG PAGE  (home.php)
   ═══════════════════════════════════════════════════════════ */
.blog-page .container,
.archive-page .container,
.index-page   .container { padding-top: 3rem; padding-bottom: 3rem; }

.blog-layout,
.archive-layout,
.index-page .blog-layout {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 3rem;
}

.page-header { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 3px solid var(--green); }
.page-title { color: var(--green); }
.archive-header { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 3px solid var(--green); }
.archive-title  { color: var(--green); }
.archive-description { color: var(--text-muted); margin: .5rem 0 0; }

/* blog/archive – 2-col grid inside main content area */
.blog-content   .posts-grid,
.archive-content .posts-grid { grid-template-columns: repeat(2, 1fr); }

/* Pagination */
.posts-pagination { margin-top: 3rem; }
.posts-pagination .nav-links { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; }
.posts-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 .65rem;
	border-radius: 50px;
	border: 2px solid var(--border);
	color: var(--text); font-weight: 500; font-size: .9rem;
	transition: all var(--transition);
}
.posts-pagination .page-numbers:hover,
.posts-pagination .page-numbers.current { background: var(--green); border-color: var(--green); color: var(--white); }

/* ═══════════════════════════════════════════════════════════
   SIDEBAR / WIDGETS
   ═══════════════════════════════════════════════════════════ */
.blog-sidebar .widget { background: var(--white); border-radius: var(--radius-lg); padding: 1.5rem; margin-bottom: 2rem; box-shadow: var(--shadow); }
.blog-sidebar .widget-title { font-size: 1rem; color: var(--green); margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 2px solid var(--gold); }
.blog-sidebar .widget ul li { padding: .4rem 0; border-bottom: 1px solid var(--border); }
.blog-sidebar .widget ul li:last-child { border-bottom: none; }
.blog-sidebar .widget ul li a { color: var(--text); font-size: .875rem; }
.blog-sidebar .widget ul li a:hover { color: var(--green); }

/* Search widget */
.search-form { display: flex; }
.search-field { flex: 1; padding: .6rem 1rem; border: 2px solid var(--border); border-right: none; border-radius: var(--radius) 0 0 var(--radius); font-family: var(--font-body); font-size: .875rem; outline: none; transition: border-color var(--transition); }
.search-field:focus { border-color: var(--green); }
.search-submit { padding: .6rem 1rem; background: var(--green); color: var(--white); border: 2px solid var(--green); border-radius: 0 var(--radius) var(--radius) 0; cursor: pointer; transition: background var(--transition); font-family: var(--font-body); }
.search-submit:hover { background: var(--green-dark); }

/* ═══════════════════════════════════════════════════════════
   SINGLE POST
   ═══════════════════════════════════════════════════════════ */
.single-post-page .container { padding-top: 2.5rem; padding-bottom: 3rem; }
.single-layout { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; }

.single-article { background: var(--white); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.post-thumbnail  { max-height: 420px; overflow: hidden; }
.post-thumbnail img { width: 100%; max-height: 420px; object-fit: cover; }

.entry-header-content { padding: 1.75rem 2rem 0; }
.entry-categories { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.category-badge { background: var(--green); color: var(--white); padding: .2rem .75rem; border-radius: 50px; font-size: .75rem; font-weight: 600; }
.entry-title { font-size: clamp(1.5rem, 3.5vw, 2.2rem); margin-bottom: .6rem; }
.entry-meta  { display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: .8rem; color: var(--text-muted); padding-bottom: 1.25rem; border-bottom: 1px solid var(--border); margin-bottom: .5rem; }
.entry-meta i  { color: var(--gold-dark); }
.entry-meta a  { color: var(--text-muted); }
.entry-meta a:hover { color: var(--green); }

.entry-content { padding: 1.75rem 2rem; line-height: 1.85; }
.entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 2rem; }
.entry-content p,  .entry-content ul, .entry-content ol { margin-bottom: 1.25rem; }
.entry-content ul, .entry-content ol { padding-left: 1.5rem; list-style: initial; }
.entry-content img { border-radius: var(--radius); margin: 1rem auto; }
.entry-content blockquote { border-left: 4px solid var(--gold); padding: 1rem 1.5rem; background: var(--beige); border-radius: 0 var(--radius) var(--radius) 0; font-style: italic; margin: 1.5rem 0; }

.entry-footer { padding: 1rem 2rem 1.75rem; }
.post-tags { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-size: .85rem; color: var(--text-muted); }
.post-tags a { background: var(--beige); color: var(--text); padding: .2rem .7rem; border-radius: 50px; font-size: .78rem; transition: background var(--transition); }
.post-tags a:hover { background: var(--green); color: var(--white); }

/* Post navigation */
.post-navigation { margin-top: 2rem; }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.nav-previous, .nav-next { background: var(--white); border-radius: var(--radius-lg); padding: 1.25rem; box-shadow: var(--shadow); transition: box-shadow var(--transition); }
.nav-previous:hover, .nav-next:hover { box-shadow: var(--shadow-lg); }
.nav-next { text-align: right; }
.nav-subtitle { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-muted); margin-bottom: .25rem; }
.nav-title    { display: block; font-weight: 600; font-size: .9rem; color: var(--green); }

/* Comments */
.comments-section { margin-top: 2rem; background: var(--white); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow); }
.comments-title  { font-size: 1.4rem; margin-bottom: 1.5rem; }
.comment-list    { list-style: none; margin: 0 0 2rem; }
.comment         { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.comment-author  { font-weight: 600; }
.comment-metadata { font-size: .78rem; color: var(--text-muted); }

/* ═══════════════════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════════════════ */
.contact-page-hero {
	background: linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%);
	padding: 4rem 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.contact-page-hero::after {
	content: '';
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}
.contact-page-hero h1 { color: var(--white); position: relative; z-index: 1; margin-bottom: .5rem; }
.contact-page-hero p  { color: rgba(255,255,255,.85); position: relative; z-index: 1; margin: 0; }

.contact-layout { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; padding: 4rem 0; }

.contact-info-title { color: var(--green); margin-bottom: 1.5rem; }
.contact-info-item { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; padding: 1.2rem; background: var(--beige); border-radius: var(--radius-lg); transition: box-shadow var(--transition); }
.contact-info-item:hover { box-shadow: var(--shadow); }
.contact-info-icon { width: 46px; height: 46px; background: var(--green); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-info-icon i { color: var(--white); font-size: .95rem; }
.contact-info-text h4 { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-muted); margin-bottom: .2rem; font-family: var(--font-body); font-weight: 600; }
.contact-info-text p,
.contact-info-text a { color: var(--text); font-weight: 500; margin: 0; word-break: break-word; font-size: .9rem; }
.contact-info-text a:hover { color: var(--green); }

.contact-map { margin-top: 1.5rem; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.contact-map iframe { display: block; width: 100%; border: none; }
.map-link { margin: 0; background: var(--beige); padding: .65rem 1rem; font-size: .82rem; text-align: center; border-top: 1px solid var(--border); }
.map-link a { color: var(--green); font-weight: 500; }
.map-link a:hover { color: var(--gold-dark); }

/* Form */
.contact-form-wrap { background: var(--white); border-radius: var(--radius-lg); padding: 2.5rem; box-shadow: var(--shadow-lg); }
.contact-form-title    { color: var(--green); margin-bottom: .4rem; }
.contact-form-subtitle { color: var(--text-muted); font-size: .875rem; margin-bottom: 2rem; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.form-group { margin-bottom: 1.4rem; }
.contact-form label { display: block; font-weight: 600; font-size: .875rem; margin-bottom: .4rem; color: var(--text); }
.contact-form label .required { color: var(--error); margin-left: 2px; }

.contact-form input,
.contact-form textarea {
	width: 100%; padding: .8rem 1rem;
	border: 2px solid var(--border);
	border-radius: var(--radius);
	font-family: var(--font-body); font-size: .9rem; color: var(--text); background: var(--white);
	transition: border-color var(--transition), box-shadow var(--transition);
	outline: none;
	-webkit-appearance: none;
}
.contact-form input:focus,
.contact-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(44,95,45,.1); }
.contact-form textarea { min-height: 140px; resize: vertical; }

.form-message {
	padding: 1rem 1.25rem;
	border-radius: var(--radius);
	margin-bottom: 1.5rem;
	font-weight: 500;
	font-size: .9rem;
	display: flex; align-items: center; gap: .75rem;
}
.form-message.success { background: rgba(22,163,74,.1); border: 1px solid rgba(22,163,74,.35); color: var(--success); }
.form-message.error   { background: rgba(220,38,38,.07); border: 1px solid rgba(220,38,38,.3); color: var(--error); }

.contact-form .btn { width: 100%; justify-content: center; padding: 1rem; font-size: 1rem; }

/* ═══════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════ */
.site-footer { background: var(--green-dark); color: rgba(255,255,255,.8); }
.footer-top  { padding: 4rem 0; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1.5fr; gap: 3rem; }

.footer-heading { font-size: 1.05rem; color: var(--white); margin-bottom: 1.1rem; }
.footer-about p  { font-size: .875rem; line-height: 1.75; margin-bottom: 1.2rem; }
.footer-social   { display: flex; gap: .65rem; }
.social-link { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.1); color: var(--white); transition: background var(--transition), transform var(--transition); }
.social-link:hover { background: var(--gold); color: var(--white); transform: translateY(-3px); }

.footer-menu { display: flex; flex-direction: column; gap: .4rem; }
.footer-menu li a { color: rgba(255,255,255,.72); font-size: .875rem; display: flex; align-items: center; gap: .5rem; transition: color var(--transition), padding-left var(--transition); }
.footer-menu li a::before { content: '›'; color: var(--gold); font-size: 1.1rem; line-height: 1; }
.footer-menu li a:hover { color: var(--white); padding-left: .3rem; }

.footer-contact-list { display: flex; flex-direction: column; gap: .8rem; }
.footer-contact-list li { display: flex; align-items: flex-start; gap: .65rem; font-size: .875rem; }
.footer-contact-list li i { color: var(--gold); margin-top: 3px; flex-shrink: 0; width: 14px; }
.footer-contact-list a { color: rgba(255,255,255,.8); word-break: break-word; }
.footer-contact-list a:hover { color: var(--gold); }

.footer-bottom { background: rgba(0,0,0,.2); padding: 1.2rem 0; border-top: 1px solid rgba(255,255,255,.07); }
.copyright { text-align: center; font-size: .82rem; color: rgba(255,255,255,.55); margin: 0; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .3rem; }
.copyright .fa-heart { color: #e25555; animation: pulse 1.5s ease infinite; }

/* ─── Animations ─────────────────────────────────────────── */
@keyframes fadeInUp {
	from { opacity: 0; transform: translateY(28px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
	0%, 100% { transform: scale(1); }
	50%       { transform: scale(1.25); }
}

/* ─── WordPress Core Classes ─────────────────────────────── */
.alignleft  { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin: 1rem auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .8rem; color: var(--text-muted); text-align: center; margin-top: .4rem; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.screen-reader-text { position: absolute; clip: rect(0,0,0,0); overflow: hidden; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

/* Large tablets 1024px */
@media (max-width: 1024px) {
	.welcome-grid,
	.programs-grid { gap: 2.5rem; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-about { grid-column: span 2; }
	.blog-layout,
	.archive-layout,
	.single-layout { grid-template-columns: 1fr 260px; }
}

/* Tablets 768px */
@media (max-width: 768px) {
	:root { --pad: 1.25rem; }

	/* Hamburger */
	.menu-toggle { display: flex; align-items: center; justify-content: center; }
	.nav-menu {
		display: none;
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--white); flex-direction: column; align-items: flex-start;
		padding: 1rem; box-shadow: 0 12px 24px rgba(0,0,0,.1); gap: 0;
		border-top: 2px solid var(--green);
	}
	.nav-menu.is-open { display: flex; }
	.nav-menu a { width: 100%; padding: .75rem 1rem; border-radius: var(--radius); }
	.nav-menu .sub-menu { position: static; box-shadow: none; opacity: 1; visibility: visible; transform: none; padding-left: 1rem; display: none; }
	.nav-menu li.is-open > .sub-menu { display: block; }
	.main-navigation { position: relative; }

	.hero-section { min-height: 75vh; }

	.welcome-grid,
	.programs-grid { grid-template-columns: 1fr; gap: 2rem; }
	.programs-image { order: -1; }
	.welcome-image img,
	.programs-image img { height: 280px; }

	.values-grid { grid-template-columns: 1fr; }

	.posts-grid { grid-template-columns: 1fr; }

	.blog-layout,
	.archive-layout,
	.single-layout { grid-template-columns: 1fr; }
	.blog-sidebar { order: -1; }

	.blog-content   .posts-grid,
	.archive-content .posts-grid { grid-template-columns: 1fr; }

	.contact-layout { grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem 0; }

	.footer-grid { grid-template-columns: 1fr; gap: 2rem; }
	.footer-about { grid-column: span 1; }

	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.form-row { grid-template-columns: 1fr; }

	.section-padding { padding: 3.5rem 0; }
}

/* ═══════════════════════════════════════════════════════════
   ENROLL PAGE
   ═══════════════════════════════════════════════════════════ */
.enroll-hero {
	background: linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%);
	padding: 5rem 0 4rem;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.enroll-hero::after {
	content: '';
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}
.enroll-hero .section-label { color: var(--gold); margin-bottom: .75rem; }
.enroll-hero h1 { color: var(--white); margin-bottom: .75rem; font-size: clamp(1.8rem, 4vw, 3rem); position: relative; z-index: 1; }
.enroll-hero p  { color: rgba(255,255,255,.85); font-size: 1.05rem; max-width: 580px; margin: 0 auto; position: relative; z-index: 1; }

.enroll-container { padding-top: 3.5rem; padding-bottom: 5rem; }

/* ── Step indicator ───────────────────────────────────────── */
.enroll-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 3rem;
}
.enroll-steps .step {
	display: flex; flex-direction: column; align-items: center;
	gap: .5rem; flex-shrink: 0;
}
.step-circle {
	width: 54px; height: 54px;
	border-radius: 50%;
	background: var(--border);
	display: flex; align-items: center; justify-content: center;
	font-size: 1.2rem; color: var(--text-muted);
	transition: all .4s ease;
}
.enroll-steps .step.active .step-circle,
.enroll-steps .step.done .step-circle {
	background: var(--green);
	color: var(--white);
	box-shadow: 0 4px 14px rgba(44,95,45,.35);
}
.enroll-steps .step span {
	font-size: .75rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .08em;
	color: var(--text-muted); transition: color .4s ease; white-space: nowrap;
}
.enroll-steps .step.active span,
.enroll-steps .step.done span { color: var(--green); }
.enroll-steps .step-line {
	flex: 1; height: 3px; background: var(--border);
	min-width: 60px; max-width: 130px;
	transition: background .4s ease;
	margin-bottom: 1.6rem;
}
.enroll-steps .step-line.done { background: var(--green); }

/* ── Form shell ───────────────────────────────────────────── */
.enroll-form {
	background: var(--white);
	border-radius: var(--radius-lg);
	padding: 2.5rem 3rem;
	box-shadow: var(--shadow-lg);
	margin-bottom: 4rem;
}
.form-step { display: none; border: none; padding: 0; margin: 0; }
.form-step--active { display: block; animation: fadeInUp .4s ease both; }

.form-section-title {
	display: flex; align-items: center; gap: 1rem;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: 2px solid var(--green);
}
.form-section-title i  { font-size: 1.4rem; color: var(--green); }
.form-section-title h2 { font-size: 1.4rem; margin: 0; }

/* ── Custom select ────────────────────────────────────────── */
.select-wrapper { position: relative; }
.select-wrapper select {
	width: 100%; padding: .8rem 2.5rem .8rem 1rem;
	border: 2px solid var(--border); border-radius: var(--radius);
	font-family: var(--font-body); font-size: .9rem;
	color: var(--text); background: var(--white);
	transition: border-color var(--transition), box-shadow var(--transition);
	outline: none; appearance: none; -webkit-appearance: none; cursor: pointer;
}
.select-wrapper select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(44,95,45,.1); }
.select-wrapper > i {
	position: absolute; right: 1rem; top: 50%; transform: translateY(-50%);
	color: var(--text-muted); pointer-events: none; font-size: .8rem;
	transition: transform .3s ease;
}
.select-wrapper select:focus ~ i { transform: translateY(-50%) rotate(180deg); }

/* ── Radio group ──────────────────────────────────────────── */
.radio-group { display: flex; gap: 1.5rem; align-items: center; padding: .75rem 0; }
.radio-label { display: flex; align-items: center; gap: .55rem; cursor: pointer; font-weight: 500; font-size: .9rem; }
.radio-label input[type="radio"] { display: none; }
.radio-custom {
	width: 20px; height: 20px; border: 2px solid var(--border);
	border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0; transition: all .25s ease;
}
.radio-label input:checked ~ .radio-custom {
	border-color: var(--green); background: var(--green);
	box-shadow: inset 0 0 0 3px var(--white);
}

/* ── Checkbox ─────────────────────────────────────────────── */
.checkbox-label {
	display: flex; align-items: flex-start; gap: .75rem;
	cursor: pointer; font-size: .875rem; color: var(--text-muted); line-height: 1.65;
}
.checkbox-label input[type="checkbox"] { display: none; }
.checkbox-custom {
	width: 22px; height: 22px; flex-shrink: 0;
	border: 2px solid var(--border); border-radius: 4px;
	display: inline-flex; align-items: center; justify-content: center;
	transition: all .25s ease; margin-top: 2px;
}
.checkbox-label input:checked ~ .checkbox-custom { background: var(--green); border-color: var(--green); }
.checkbox-label input:checked ~ .checkbox-custom::after {
	content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
	color: var(--white); font-size: .7rem;
}

/* ── Field error ──────────────────────────────────────────── */
.field-error { border-color: var(--error) !important; box-shadow: 0 0 0 3px rgba(220,38,38,.1) !important; }

/* ── Step navigation ──────────────────────────────────────── */
.step-nav { margin-top: 2rem; display: flex; justify-content: flex-end; }
.step-nav--split { justify-content: space-between; }

.btn-outline-green {
	background: transparent; color: var(--green); border: 2px solid var(--green);
	padding: .75rem 2rem; border-radius: 50px; font-weight: 600; font-size: .9rem;
	font-family: var(--font-body);
	display: inline-flex; align-items: center; gap: .5rem;
	transition: all var(--transition); cursor: pointer; text-decoration: none;
}
.btn-outline-green:hover { background: var(--green); color: var(--white); }

/* ── Review panel ─────────────────────────────────────────── */
.review-panel {
	display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;
	background: var(--beige); border-radius: var(--radius-lg);
	padding: 2rem; margin-bottom: 1.5rem;
}
.review-group h3 {
	font-size: 1rem; color: var(--green); margin-bottom: 1rem;
	padding-bottom: .5rem; border-bottom: 2px solid var(--gold);
}
.review-row { display: flex; flex-direction: column; margin-bottom: .75rem; }
.review-row dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); font-weight: 600; margin-bottom: .15rem; }
.review-row dd { font-weight: 500; color: var(--text); margin: 0; font-size: .9rem; }

.enroll-agree {
	background: rgba(44,95,45,.05);
	border-radius: var(--radius);
	padding: 1rem 1.25rem;
	border: 1px solid rgba(44,95,45,.18);
}

/* ── Success state ────────────────────────────────────────── */
.enroll-success {
	text-align: center; padding: 4rem 2rem;
	background: var(--white); border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg); margin-bottom: 4rem;
	animation: fadeInUp .6s ease both;
}
.enroll-success-icon { font-size: 5rem; color: var(--success); margin-bottom: 1.5rem; animation: pulse 2s ease infinite; }
.enroll-success h2 { color: var(--green); margin-bottom: .75rem; }
.enroll-success p  { color: var(--text-muted); font-size: 1.05rem; margin-bottom: 2rem; max-width: 500px; margin-left: auto; margin-right: auto; }
.enroll-success-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ── FAQ accordion ────────────────────────────────────────── */
.enroll-faq { margin-top: 3rem; }
.faq-list   { max-width: 800px; margin: 0 auto; }

.faq-item {
	border-radius: var(--radius-lg);
	background: var(--white);
	box-shadow: var(--shadow);
	margin-bottom: 1rem;
	overflow: hidden;
	transition: box-shadow var(--transition);
}
.faq-question {
	width: 100%; background: none; border: none;
	padding: 1.25rem 1.5rem;
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	cursor: pointer; text-align: left;
	font-family: var(--font-body); font-size: .95rem; font-weight: 600; color: var(--text);
	transition: color var(--transition);
}
.faq-question:hover,
.faq-question[aria-expanded="true"] { color: var(--green); }
.faq-icon {
	flex-shrink: 0; color: var(--green); font-size: .82rem;
	width: 30px; height: 30px; border-radius: 50%;
	background: rgba(44,95,45,.1);
	display: flex; align-items: center; justify-content: center;
	transition: background var(--transition), color var(--transition);
}
.faq-question[aria-expanded="true"] .faq-icon { background: var(--green); color: var(--white); }
.faq-answer { padding: 0 1.5rem 1.25rem; animation: fadeInUp .25s ease both; }
.faq-answer p { color: var(--text-muted); font-size: .9rem; margin: 0; line-height: 1.78; }

/* ── Screen reader only ───────────────────────────────────── */
.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;
}

/* ── Enroll responsive ────────────────────────────────────── */
@media (max-width: 768px) {
	.enroll-form { padding: 2rem 1.5rem; }
	.review-panel { grid-template-columns: 1fr; gap: 1.5rem; }
	.enroll-steps .step-line { min-width: 30px; }
	.enroll-steps .step span { font-size: .68rem; }
}
@media (max-width: 560px) {
	.enroll-form { padding: 1.5rem 1rem; }
	.step-nav--split { flex-direction: column-reverse; gap: .75rem; }
	.step-nav--split .btn,
	.step-nav--split .btn-outline-green { width: 100%; justify-content: center; }
}

/* Mobile 480px */
@media (max-width: 480px) {
	:root { --pad: 1rem; }

	.hero-content { text-align: center; }
	.hero-buttons { justify-content: center; }

	.site-name    { font-size: .9rem; }
	.site-tagline { display: none; }

	.contact-form-wrap { padding: 1.5rem; }

	.cta-buttons { flex-direction: column; align-items: center; }

	.values-grid { grid-template-columns: 1fr; }
	.section-padding { padding: 2.5rem 0; }
}
