/*
Theme Name: ISLRN Edu
Theme URI: https://islrn.local/
Description: ISLRN 교육 인사이트·리서치 매거진용 Astra 자식 테마. Deep Navy 에디토리얼 톤, 에디토리얼 피처드 히어로, 카드형 글 목록, 커스텀 사이드바/푸터, 워드마크 헤더를 코드로 제공합니다.
Author: ISLRN
Template: astra
Version: 1.3.0
Text Domain: islrn-edu
*/

/* =========================================================================
   ISLRN — Deep Navy Editorial Design System
   모든 값은 CSS 변수로 관리 → 톤 조정이 쉬움
   ========================================================================= */
:root {
	--islrn-navy:        #22304A; /* header / footer / primary dark */
	--islrn-navy-deep:   #1A2540; /* darker accents */
	--islrn-blue:        #3B82F6; /* accent / links / CTA */
	--islrn-blue-dark:   #2563EB;
	--islrn-blue-soft:   #EEF3FB; /* chip / badge bg */
	--islrn-bg:          #F8F9FB; /* page background */
	--islrn-surface:     #FFFFFF; /* cards */
	--islrn-ink:         #1A2233; /* headings */
	--islrn-body:        #3A4557; /* body text */
	--islrn-muted:       #6B7686; /* meta */
	--islrn-border:      #E7EAF0;
	--islrn-radius:      16px;
	--islrn-radius-sm:   10px;
	--islrn-shadow:      0 1px 2px rgba(26,37,64,.04), 0 8px 24px rgba(26,37,64,.06);
	--islrn-shadow-lg:   0 18px 48px rgba(26,37,64,.14);
	--islrn-font:        "Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",Roboto,"Helvetica Neue","Noto Sans KR",sans-serif;
	--islrn-maxw:        1200px;
}

/* ---------- Base / Tone ---------- */
body,
.ast-container,
button, input, select, textarea, .menu-link {
	font-family: var(--islrn-font);
}
body {
	background: var(--islrn-bg);
	color: var(--islrn-body);
	-webkit-font-smoothing: antialiased;
	letter-spacing: -0.01em;
}
h1,h2,h3,h4,h5,h6,.entry-title { color: var(--islrn-ink); letter-spacing: -0.02em; }
a { color: var(--islrn-blue); }
a:hover { color: var(--islrn-blue-dark); }
.entry-content p { line-height: 1.85; color: var(--islrn-body); }

/* Single post / page reading column */
.ast-separate-container .ast-article-single {
	border-radius: var(--islrn-radius);
	box-shadow: var(--islrn-shadow);
	border: 1px solid var(--islrn-border);
}

/* =========================================================================
   HEADER — wordmark + nav
   ========================================================================= */
.main-header-bar,
.ast-primary-header-bar {
	background: var(--islrn-surface);
	border-bottom: 1px solid var(--islrn-border);
}
.ast-primary-header-bar { box-shadow: 0 1px 0 rgba(26,37,64,.02); }

/* sticky header + thin gradient accent bar on top + scroll shadow */
#masthead {
	position: sticky; top: 0; z-index: 999;
	background: var(--islrn-surface);
	transition: box-shadow .3s ease;
}
#masthead::before {
	content:""; display:block; height:3px;
	background: linear-gradient(90deg, var(--islrn-navy) 0%, var(--islrn-blue) 100%);
}
body.islrn-scrolled #masthead {
	box-shadow: 0 6px 24px rgba(26,37,64,.10);
}
/* Astra's own admin bar offset safety */
.admin-bar #masthead { top: 32px; }
@media (max-width:782px){ .admin-bar #masthead { top: 46px; } }

/* Wordmark injected via astra_logo filter */
.islrn-wordmark { display:inline-flex; flex-direction:column; line-height:1.05; text-decoration:none; }
.islrn-wordmark__name {
	font-weight: 800;
	font-size: 1.6rem;
	letter-spacing: 0.14em;
	color: var(--islrn-navy);
}
.islrn-wordmark__tag {
	margin-top: 3px;
	font-size: .68rem;
	letter-spacing: .06em;
	font-weight: 600;
	color: var(--islrn-muted);
}
.islrn-wordmark:hover .islrn-wordmark__name { color: var(--islrn-blue); }

/* Nav links */
.main-header-menu .menu-item > .menu-link,
.ast-builder-menu .menu-item > .menu-link {
	color: var(--islrn-ink);
	font-weight: 600;
	font-size: .96rem;
	position: relative;
}
.main-header-menu .menu-item > .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link {
	color: var(--islrn-blue);
}
.main-header-menu .menu-item > .menu-link::after {
	content:""; position:absolute; left:0; right:100%; bottom:-4px; height:2px;
	background: var(--islrn-blue); border-radius:2px; transition:right .25s ease;
}
.main-header-menu .menu-item > .menu-link:hover::after,
.main-header-menu .current-menu-item > .menu-link::after { right:0; }

/* =========================================================================
   HERO — Editorial Featured (astra_content_before)
   ========================================================================= */
.islrn-hero {
	background:
		radial-gradient(1200px 400px at 12% -10%, rgba(59,130,246,.16), transparent 60%),
		linear-gradient(135deg, var(--islrn-navy) 0%, var(--islrn-navy-deep) 100%);
	color: #EAF0FA;
	padding: clamp(40px, 6vw, 76px) 20px;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.islrn-hero__inner {
	max-width: var(--islrn-maxw); margin:0 auto;
	display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 4vw, 56px);
	align-items:center;
}
.islrn-hero__eyebrow {
	font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
	color:#8FB4F5; margin:0 0 16px;
}
.islrn-hero__title {
	color:#fff; font-weight:800; line-height:1.22;
	font-size: clamp(1.9rem, 3.6vw, 3rem); margin:0 0 18px;
}
.islrn-hero__desc {
	color:#B9C6DC; font-size:1.05rem; line-height:1.7; margin:0 0 26px; max-width:34em;
}
.islrn-hero__chips { display:flex; flex-wrap:wrap; gap:10px; }
.islrn-hero__chips a {
	display:inline-flex; align-items:center; padding:8px 15px; border-radius:999px;
	background: rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
	color:#DCE6F5; font-size:.86rem; font-weight:600; text-decoration:none;
	transition: all .2s ease;
}
.islrn-hero__chips a:hover { background: var(--islrn-blue); border-color: var(--islrn-blue); color:#fff; }

/* Feature card */
.islrn-hero__feature {
	display:block; text-decoration:none; background: var(--islrn-surface);
	border-radius: var(--islrn-radius); overflow:hidden; box-shadow: var(--islrn-shadow-lg);
	transition: transform .3s ease;
}
.islrn-hero__feature:hover { transform: translateY(-4px); }
.islrn-hero__thumb { aspect-ratio: 16/9; overflow:hidden; background:#0f1830; }
.islrn-hero__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s ease; }
.islrn-hero__feature:hover .islrn-hero__thumb img { transform: scale(1.04); }
.islrn-hero__body { padding: 22px 24px 26px; }
.islrn-hero__badge {
	display:inline-block; padding:5px 12px; border-radius:999px;
	background: var(--islrn-blue-soft); color: var(--islrn-blue-dark);
	font-size:.75rem; font-weight:700; letter-spacing:.02em; margin-bottom:12px;
}
.islrn-hero__ftitle { color:var(--islrn-ink); font-size:1.32rem; font-weight:800; line-height:1.35; margin:0 0 10px; }
.islrn-hero__fexcerpt { color:var(--islrn-body); font-size:.95rem; line-height:1.65; margin:0 0 14px;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.islrn-hero__date { color:var(--islrn-muted); font-size:.82rem; font-weight:600; }
.islrn-hero { padding-bottom: clamp(56px, 7vw, 92px); }
/* connect hero → list: lift the content block so cards overlap the hero base */
.islrn-hero + #content { margin-top: -46px; position:relative; z-index:2; }
.islrn-hero + #content .ast-separate-container { padding-top:0 !important; }

@media (max-width: 921px) {
	.islrn-hero__inner { grid-template-columns: 1fr; gap:26px; }
	/* brand statement first, featured card below on mobile */
	.islrn-hero__intro { order:1; }
	.islrn-hero__feature { order:2; }
	.islrn-hero__title { font-size: clamp(1.7rem, 7vw, 2.2rem); }
	.islrn-hero__desc { font-size:1rem; }
}
@media (max-width: 600px) {
	.islrn-hero { padding-left:18px; padding-right:18px; }
	.islrn-hero + #content { margin-top:-30px; }
}

/* =========================================================================
   BLOG — Card grid (custom template-parts/blog/blog-layout-5.php)
   ========================================================================= */
/* Force a responsive multi-column grid regardless of Astra's ast-grid-N. */
.ast-blog-layout-5-grid .ast-row,
.blog .ast-row, .archive .ast-row, .search .ast-row {
	display:grid !important;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)) !important;
	gap: 26px !important;
	margin-left:0 !important; margin-right:0 !important;
}
/* card shell */
.ast-article-post {
	background: var(--islrn-surface);
	border:1px solid var(--islrn-border);
	border-radius: var(--islrn-radius);
	overflow:hidden;
	box-shadow: var(--islrn-shadow);
	transition: transform .32s cubic-bezier(.2,.7,.3,1), box-shadow .32s cubic-bezier(.2,.7,.3,1), border-color .32s ease;
	display:flex; margin:0 !important;
}
.ast-article-post:hover {
	transform: translateY(-6px);
	box-shadow: var(--islrn-shadow-lg);
	border-color: #CFD9EA;
}
.ast-article-post .ast-article-inner,
.ast-article-post > .blog-layout-5 {
	display:flex !important; flex-direction:column; flex-wrap:nowrap; width:100%; margin:0; border:0; box-shadow:none; padding:0;
}
/* thumbnail */
.ast-article-post .islrn-card-thumb,
.ast-article-post .ast-blog-featured-section {
	width:100% !important; margin:0 !important; max-width:100% !important; flex:0 0 auto; overflow:hidden;
	background:var(--islrn-blue-soft); position:relative;
}
.ast-article-post .islrn-card-thumb img,
.ast-article-post .post-thumb-img-content img {
	width:100%; height:200px; object-fit:cover; display:block; border-radius:0;
	transition: transform .6s cubic-bezier(.2,.7,.3,1); backface-visibility:hidden;
}
.ast-article-post:hover .islrn-card-thumb img { transform: scale(1.06); }
/* subtle gradient veil at image bottom for depth */
.ast-article-post .islrn-card-thumb::after {
	content:""; position:absolute; inset:auto 0 0 0; height:38%;
	background:linear-gradient(to top, rgba(26,37,64,.18), transparent); opacity:0; transition:opacity .32s ease;
}
.ast-article-post:hover .islrn-card-thumb::after { opacity:1; }
/* body */
.ast-article-post .islrn-card-body {
	width:100% !important; max-width:100% !important; padding:18px 20px 20px !important;
	display:flex; flex-direction:column; flex:1 1 auto; margin:0 !important;
}
/* top meta: category + read time on ONE line */
.islrn-card-top { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.islrn-cat-badge {
	display:inline-block; padding:4px 11px; border-radius:999px;
	background:var(--islrn-blue-soft); color:var(--islrn-blue-dark) !important;
	font-size:.73rem; font-weight:800; letter-spacing:.01em; text-decoration:none; white-space:nowrap;
	transition:background .2s ease, color .2s ease;
}
.islrn-cat-badge:hover { background:var(--islrn-blue); color:#fff !important; }
.islrn-card-top .islrn-readtime {
	display:inline-flex; align-items:center; gap:5px; margin:0;
	color:var(--islrn-muted); font-size:.78rem; font-weight:600;
}
.islrn-card-top .islrn-readtime svg { width:13px; height:13px; }
/* title — stronger hierarchy */
.islrn-card-title { font-size:1.24rem; line-height:1.4; font-weight:800; letter-spacing:-.02em; margin:0 0 10px; }
.islrn-card-title a { color:var(--islrn-ink) !important; text-decoration:none;
	background-image:linear-gradient(var(--islrn-blue),var(--islrn-blue)); background-size:0 2px; background-position:0 100%; background-repeat:no-repeat; transition:background-size .3s ease, color .2s ease; }
.ast-article-post:hover .islrn-card-title a { color:var(--islrn-blue-dark) !important; }
/* excerpt */
.islrn-card-excerpt { color:var(--islrn-body); font-size:.92rem; line-height:1.68; margin-bottom:16px;
	display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.islrn-card-excerpt p { margin:0; }
/* foot meta row */
.islrn-card-foot {
	margin-top:auto; padding-top:14px; border-top:1px solid var(--islrn-border);
	display:flex; align-items:center; gap:8px; color:var(--islrn-muted); font-size:.8rem; font-weight:600;
}
.islrn-card-foot .islrn-card-author::before { content:"·"; margin-right:8px; color:var(--islrn-border); }
.islrn-card-foot .islrn-card-more {
	margin-left:auto; display:inline-flex; align-items:center; gap:4px;
	color:var(--islrn-blue-dark); font-weight:700; opacity:0; transform:translateX(-4px);
	transition:opacity .3s ease, transform .3s ease;
}
.islrn-card-foot .islrn-card-more svg { width:14px; height:14px; }
.ast-article-post:hover .islrn-card-more { opacity:1; transform:translateX(0); }

/* =========================================================================
   SIDEBAR — custom widgets (sidebar.php)
   ========================================================================= */
#secondary .islrn-widget {
	background: var(--islrn-surface); border:1px solid var(--islrn-border);
	border-radius: var(--islrn-radius); padding:20px 20px; margin-bottom:22px;
	box-shadow: var(--islrn-shadow);
}
.islrn-widget__title {
	font-size:.82rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
	color:var(--islrn-navy); margin:0 0 14px; padding-bottom:12px;
	border-bottom:2px solid var(--islrn-blue-soft); display:flex; align-items:center; gap:8px;
}
.islrn-widget__title::before { content:""; width:8px; height:8px; border-radius:2px; background:var(--islrn-blue); }
/* search */
.islrn-widget .search-field {
	width:100%; border:1px solid var(--islrn-border); border-radius:var(--islrn-radius-sm);
	padding:11px 14px; background:var(--islrn-bg); font-size:.9rem;
}
.islrn-widget .search-field:focus { outline:none; border-color:var(--islrn-blue); background:#fff; }
.islrn-widget .search-form { position:relative; }
.islrn-widget .search-submit {
	position:absolute; right:5px; top:50%; transform:translateY(-50%);
	background:var(--islrn-blue); color:#fff; border:0; border-radius:8px;
	padding:7px 14px; font-size:.82rem; font-weight:700; cursor:pointer;
}
/* about card */
.islrn-about p { color:var(--islrn-body); font-size:.9rem; line-height:1.7; margin:0 0 14px; }
.islrn-about .islrn-btn { display:inline-block; }
/* category / list links */
.islrn-list { list-style:none; margin:0; padding:0; }
.islrn-list li { border-bottom:1px dashed var(--islrn-border); }
.islrn-list li:last-child { border-bottom:0; }
.islrn-list a {
	display:flex; justify-content:space-between; align-items:center; gap:8px;
	padding:10px 2px; color:var(--islrn-ink); text-decoration:none; font-size:.92rem; font-weight:600;
}
.islrn-list a:hover { color:var(--islrn-blue); }
.islrn-list .islrn-count {
	font-size:.74rem; font-weight:700; color:var(--islrn-muted);
	background:var(--islrn-bg); border-radius:999px; padding:2px 9px; min-width:26px; text-align:center;
}
/* recent posts with thumb */
.islrn-recent { list-style:none; margin:0; padding:0; }
.islrn-recent li { display:flex; gap:12px; padding:11px 0; border-bottom:1px dashed var(--islrn-border); }
.islrn-recent li:last-child { border-bottom:0; }
.islrn-recent__thumb { flex:0 0 62px; width:62px; height:62px; border-radius:10px; overflow:hidden; background:var(--islrn-blue-soft); }
.islrn-recent__thumb img { width:100%; height:100%; object-fit:cover; }
.islrn-recent__t { font-size:.88rem; font-weight:700; line-height:1.4; color:var(--islrn-ink); text-decoration:none;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.islrn-recent__t:hover { color:var(--islrn-blue); }
.islrn-recent__d { display:block; margin-top:5px; font-size:.74rem; color:var(--islrn-muted); font-weight:600; }
/* tags */
.islrn-tags { display:flex; flex-wrap:wrap; gap:8px; }
.islrn-tags a {
	font-size:.8rem; font-weight:600; color:var(--islrn-body); text-decoration:none;
	background:var(--islrn-bg); border:1px solid var(--islrn-border); border-radius:999px; padding:6px 12px;
}
.islrn-tags a:hover { background:var(--islrn-blue); color:#fff; border-color:var(--islrn-blue); }
/* subscribe CTA */
.islrn-widget--cta {
	background: linear-gradient(140deg, var(--islrn-navy), var(--islrn-navy-deep));
	border:0; color:#EAF0FA;
}
.islrn-widget--cta .islrn-widget__title { color:#fff; border-bottom-color:rgba(255,255,255,.14); }
.islrn-widget--cta .islrn-widget__title::before { background:#8FB4F5; }
.islrn-widget--cta p { color:#B9C6DC; font-size:.88rem; line-height:1.65; margin:0 0 14px; }
.islrn-btn {
	display:inline-flex; align-items:center; gap:6px; justify-content:center;
	background:var(--islrn-blue); color:#fff !important; text-decoration:none; font-weight:700; font-size:.9rem;
	padding:11px 18px; border-radius:var(--islrn-radius-sm); transition:background .2s ease; border:0; cursor:pointer;
}
.islrn-btn:hover { background:var(--islrn-blue-dark); }
.islrn-btn--block { display:flex; width:100%; }

/* =========================================================================
   FOOTER — custom dark footer (astra_footer_before)
   ========================================================================= */
/* hide Astra default builder footer for deterministic result */
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap { display:none !important; }

.islrn-footer { background: var(--islrn-navy-deep); color:#B9C6DC; padding:56px 20px 0; }
.islrn-footer__inner {
	max-width: var(--islrn-maxw); margin:0 auto;
	display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px;
}
.islrn-footer__brand .islrn-wordmark__name { color:#fff; font-size:1.5rem; }
.islrn-footer__brand .islrn-wordmark__tag { color:#7E8CA6; }
.islrn-footer__brand p { margin:16px 0 0; font-size:.88rem; line-height:1.7; color:#95A3BE; max-width:26em; }
.islrn-footer h4 {
	color:#fff; font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin:0 0 16px;
}
.islrn-footer ul { list-style:none; margin:0; padding:0; }
.islrn-footer li { margin-bottom:10px; }
.islrn-footer a { color:#B9C6DC; text-decoration:none; font-size:.9rem; }
.islrn-footer a:hover { color:#fff; }
.islrn-footer__cta p { font-size:.88rem; line-height:1.65; color:#95A3BE; margin:0 0 14px; }
.islrn-footer__bottom {
	max-width: var(--islrn-maxw); margin:44px auto 0; padding:22px 0;
	border-top:1px solid rgba(255,255,255,.08);
	display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
	font-size:.82rem; color:#7E8CA6;
}
@media (max-width: 921px) {
	.islrn-footer__inner { grid-template-columns: 1fr 1fr; gap:32px; }
}
@media (max-width: 544px) {
	.islrn-footer__inner { grid-template-columns: 1fr; }
}

/* =========================================================================
   CUSTOM PAGES — About / Contact / Content Guide
   ========================================================================= */
.islrn-page { max-width: 860px; margin:0 auto; }
.islrn-page__lead { font-size:1.15rem; line-height:1.75; color:var(--islrn-body); margin:0 0 32px; }
.islrn-section-title { font-size:1.5rem; font-weight:800; margin:40px 0 18px; color:var(--islrn-ink); }
/* value/feature grid */
.islrn-cards { display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin:24px 0; }
.islrn-cards .islrn-card {
	background:var(--islrn-surface); border:1px solid var(--islrn-border); border-radius:var(--islrn-radius);
	padding:24px 22px; box-shadow:var(--islrn-shadow);
}
.islrn-card h3 { margin:0 0 10px; font-size:1.1rem; color:var(--islrn-ink); }
.islrn-card p { margin:0; font-size:.92rem; line-height:1.7; color:var(--islrn-body); }
.islrn-card .islrn-card__ico {
	width:44px; height:44px; border-radius:12px; background:var(--islrn-blue-soft);
	display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:14px;
}
/* content guide */
.islrn-guide__cat { margin:0 0 38px; }
.islrn-guide__cat h2 {
	display:flex; align-items:center; gap:12px; font-size:1.35rem; margin:0 0 6px; color:var(--islrn-ink);
}
.islrn-guide__cat h2 .islrn-count {
	font-size:.78rem; font-weight:700; color:var(--islrn-blue-dark);
	background:var(--islrn-blue-soft); border-radius:999px; padding:3px 12px;
}
.islrn-guide__cat > p { color:var(--islrn-muted); margin:0 0 16px; font-size:.95rem; }
.islrn-guide__list { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.islrn-guide__item {
	display:flex; gap:14px; align-items:center; background:var(--islrn-surface);
	border:1px solid var(--islrn-border); border-radius:var(--islrn-radius-sm); padding:12px 14px;
	text-decoration:none; transition:border-color .2s, transform .2s;
}
.islrn-guide__item:hover { border-color:var(--islrn-blue); transform:translateY(-2px); }
.islrn-guide__item img { width:56px; height:56px; border-radius:8px; object-fit:cover; flex:0 0 56px; background:var(--islrn-blue-soft); }
.islrn-guide__item span { font-size:.92rem; font-weight:700; color:var(--islrn-ink); line-height:1.4; }
/* contact */
.islrn-contact-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin:24px 0; }
.islrn-contact-item {
	background:var(--islrn-surface); border:1px solid var(--islrn-border); border-radius:var(--islrn-radius);
	padding:24px; box-shadow:var(--islrn-shadow);
}
.islrn-contact-item strong { display:block; color:var(--islrn-navy); font-size:1.02rem; margin-bottom:8px; }
.islrn-contact-item a { font-weight:700; }

/* =========================================================================
   MISC polish
   ========================================================================= */
.ast-pagination .page-numbers {
	border-radius:10px; border:1px solid var(--islrn-border); background:var(--islrn-surface);
	color:var(--islrn-ink); font-weight:700;
}
.ast-pagination .page-numbers.current,
.ast-pagination a.page-numbers:hover { background:var(--islrn-blue); color:#fff; border-color:var(--islrn-blue); }
/* make blog grid area breathe */
.blog #primary, .archive #primary, .search #primary { padding-top: 8px; }

/* =========================================================================
   COLOR ENFORCEMENT — override any customizer/DB palette (dark themes etc.)
   so the tone is identical on the original site regardless of its settings.
   ========================================================================= */
body {
	background-color: var(--islrn-bg) !important;
	background-image: radial-gradient(rgba(34,48,74,.045) 1px, transparent 1px) !important;
	background-size: 22px 22px !important;
	background-attachment: fixed !important;
	color: var(--islrn-body) !important;
}
#page, .site-content, .ast-separate-container {
	background-color: transparent !important;
	background-image: none !important;
	color: var(--islrn-body) !important;
}
.ast-separate-container .ast-article-post {
	background-color: var(--islrn-surface) !important;
	background-image: none !important;
}
.ast-separate-container .ast-article-single:not(.ast-related-post),
.ast-separate-container .comment-respond,
.ast-page-builder-template .entry-header,
.single .ast-article-single {
	background-color: var(--islrn-surface) !important;
	background-image: none !important;
}
/* text stays dark on the now-light surfaces */
h1,h2,h3,h4,h5,h6,
.entry-title, .entry-title a,
.ast-article-post .entry-title a,
.islrn-hero__ftitle, .islrn-section-title,
.islrn-card h3 { color: var(--islrn-ink) !important; }
.islrn-hero__title, .islrn-hero__ftitle { }
.ast-article-post .entry-content,
.ast-article-post .ast-excerpt-container,
.entry-content p,
.ast-article-single .entry-content { color: var(--islrn-body) !important; }
.ast-article-post .entry-meta,
.ast-article-post .entry-meta a,
.ast-article-post .posted-on,
.ast-article-post .posted-by { color: var(--islrn-muted) !important; }
/* keep hero + footer + CTA intentionally dark (they define their own colors) */
.islrn-hero__title { color:#fff !important; }
.islrn-hero__desc { color:#B9C6DC !important; }
.islrn-hero__eyebrow { color:#8FB4F5 !important; }
.islrn-footer h4 { color:#fff !important; }
.islrn-footer a { color:#B9C6DC !important; }
.islrn-footer a:hover { color:#fff !important; }
.islrn-footer__brand .islrn-wordmark__name { color:#fff !important; }
.islrn-widget--cta .islrn-widget__title { color:#fff !important; }
/* sidebar widgets forced light (in case customizer darkens .widget) */
#secondary .islrn-widget { background-color: var(--islrn-surface) !important; }
#secondary .islrn-widget.islrn-widget--cta { background: linear-gradient(140deg, var(--islrn-navy), var(--islrn-navy-deep)) !important; }
#secondary .islrn-widget__title { color: var(--islrn-navy) !important; }
#secondary .islrn-widget--cta .islrn-widget__title { color:#fff !important; }
#secondary .islrn-list a, #secondary .islrn-recent__t { color: var(--islrn-ink) !important; }
#secondary .islrn-widget--cta p { color:#B9C6DC !important; }

/* =========================================================================
   v1.1 — refinements
   ========================================================================= */
/* About topic cards: line SVG icons */
.islrn-card__ico { color: var(--islrn-blue-dark); }
.islrn-card__ico svg { width:24px; height:24px; display:block; }

/* Footer social */
.islrn-footer__social { display:flex; gap:10px; margin-top:20px; }
.islrn-footer__social a {
	width:38px; height:38px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center;
	background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); color:#B9C6DC !important;
	transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.islrn-footer__social a:hover { background:var(--islrn-blue); border-color:var(--islrn-blue); color:#fff !important; transform:translateY(-2px); }
.islrn-footer__social svg { width:18px; height:18px; }

/* Single post reading polish */
.single .entry-title { font-size:clamp(1.7rem, 3vw, 2.35rem); font-weight:800; letter-spacing:-.025em; line-height:1.3; }
.single .ast-article-single .entry-content,
.single .ast-article-single .entry-content p { font-size:1.05rem; line-height:1.9; color:var(--islrn-body) !important; }
.single .ast-article-single .entry-content > p { margin:0 0 1.5em; }
.single .entry-content h2 { font-size:1.5rem; font-weight:800; letter-spacing:-.02em; margin:2em 0 .7em; }
.single .entry-content h2::before { content:""; display:block; width:42px; height:3px; background:var(--islrn-blue); border-radius:3px; margin-bottom:.55em; }
.single .entry-content h3 { font-size:1.22rem; font-weight:700; margin:1.6em 0 .6em; }
.single .entry-content img { border-radius:12px; margin:1.3em 0; box-shadow:var(--islrn-shadow); height:auto; }
.single .entry-content a { color:var(--islrn-blue-dark); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.single .entry-content blockquote {
	border-left:4px solid var(--islrn-blue); background:var(--islrn-blue-soft);
	margin:1.6em 0; padding:1em 1.4em; border-radius:0 10px 10px 0; color:var(--islrn-ink); font-weight:500;
}
.single .entry-content ul, .single .entry-content ol { margin:0 0 1.5em; padding-left:1.4em; }
.single .entry-content li { margin:.4em 0; line-height:1.8; }
/* keep the single post card comfortably padded */
.single .ast-article-single { padding: clamp(24px, 4vw, 48px) !important; }

/* Archive / Search header banner — legible light header (was dark & unreadable) */
.ast-archive-description {
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 6px 0 24px !important;
	margin: 0 0 6px !important;
	text-align: left !important;
}
.ast-archive-description .ast-archive-title,
h1.ast-archive-title {
	color: var(--islrn-ink) !important;
	font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.25;
	position: relative; padding-left: 16px; margin: 0;
}
.ast-archive-title::before {
	content:""; position:absolute; left:0; top:.14em; bottom:.14em; width:5px; border-radius:3px;
	background: linear-gradient(var(--islrn-navy), var(--islrn-blue));
}
.ast-archive-description p,
.ast-archive-description .ast-archive-description-text {
	color: var(--islrn-body) !important; font-size: 1rem; line-height: 1.7; margin: 14px 0 0; max-width: 62ch;
}
.ast-archive-description .ast-breadcrumbs,
.ast-archive-description nav { margin-top: 10px; font-size: .82rem; color: var(--islrn-muted); }

/* Sidebar search input — force light (dark-mode remnant) */
#secondary .islrn-widget .search-field,
.islrn-widget input[type="search"] {
	background: var(--islrn-bg) !important; color: var(--islrn-ink) !important;
	border: 1px solid var(--islrn-border) !important; box-shadow: none !important;
}
.islrn-widget input[type="search"]::placeholder { color: var(--islrn-muted) !important; }
.islrn-widget .search-field:focus { background:#fff !important; border-color: var(--islrn-blue) !important; }

/* =========================================================================
   v1.3 — selected refinements
   ========================================================================= */
/* Card placeholder (no image at all) */
.islrn-card-thumb--ph {
	display:flex; align-items:center; justify-content:center; height:200px; text-decoration:none;
	background:
		radial-gradient(120px 120px at 30% 20%, rgba(255,255,255,.10), transparent 60%),
		linear-gradient(135deg, var(--islrn-navy) 0%, var(--islrn-navy-deep) 100%);
	position:relative; overflow:hidden;
}
.islrn-card-thumb--ph::after {
	content:""; position:absolute; inset:0;
	background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size:16px 16px;
}
.islrn-ph-mark { color:#fff; font-weight:800; letter-spacing:.22em; font-size:1.3rem; opacity:.9; position:relative; }

/* Single post — eyebrow (category + read time) above title */
.islrn-single-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 14px; }
.islrn-single-eyebrow .islrn-readtime { display:inline-flex; align-items:center; gap:5px; color:var(--islrn-muted); font-size:.85rem; font-weight:600; }
.islrn-single-eyebrow .islrn-readtime svg { width:14px; height:14px; }

/* Single post — related posts */
.islrn-related { max-width:920px; margin:36px auto 0; }
.islrn-related__title { font-size:1.35rem; font-weight:800; letter-spacing:-.02em; margin:0 0 18px; padding-left:14px; position:relative; color:var(--islrn-ink); }
.islrn-related__title::before { content:""; position:absolute; left:0; top:.15em; bottom:.15em; width:5px; border-radius:3px; background:linear-gradient(var(--islrn-navy),var(--islrn-blue)); }
.islrn-related__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:20px; }
.islrn-related__card {
	background:var(--islrn-surface); border:1px solid var(--islrn-border); border-radius:var(--islrn-radius); overflow:hidden;
	text-decoration:none; box-shadow:var(--islrn-shadow); display:flex; flex-direction:column;
	transition:transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease, border-color .28s ease;
}
.islrn-related__card:hover { transform:translateY(-5px); box-shadow:var(--islrn-shadow-lg); border-color:#CFD9EA; }
.islrn-related__thumb { height:140px; overflow:hidden; background:var(--islrn-blue-soft); }
.islrn-related__thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.islrn-related__card:hover .islrn-related__thumb img { transform:scale(1.06); }
.islrn-related__body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:7px; }
.islrn-related__cat { align-self:flex-start; padding:3px 10px; border-radius:999px; background:var(--islrn-blue-soft); color:var(--islrn-blue-dark); font-size:.7rem; font-weight:800; }
.islrn-related__t { color:var(--islrn-ink); font-weight:700; font-size:.98rem; line-height:1.4;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.islrn-related__card:hover .islrn-related__t { color:var(--islrn-blue-dark); }
.islrn-related__d { color:var(--islrn-muted); font-size:.78rem; font-weight:600; }

/* Header search icon + overlay */
.islrn-nav-search { display:flex; align-items:center; }
.islrn-search-toggle {
	background:transparent; border:0; cursor:pointer; color:var(--islrn-ink); padding:8px; border-radius:8px;
	display:inline-flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease;
}
.islrn-search-toggle svg { width:20px; height:20px; }
.islrn-search-toggle:hover { background:var(--islrn-blue-soft); color:var(--islrn-blue-dark); }
.islrn-search-overlay {
	position:fixed; inset:0; z-index:9999; background:rgba(26,37,64,.55); backdrop-filter:blur(3px);
	display:flex; align-items:flex-start; justify-content:center; padding:14vh 20px 20px;
	opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
}
.islrn-search-overlay.is-open { opacity:1; visibility:visible; }
.islrn-search-box {
	background:#fff; width:min(620px,100%); border-radius:var(--islrn-radius); padding:30px 30px 32px; position:relative;
	box-shadow:var(--islrn-shadow-lg); transform:translateY(-12px); transition:transform .25s ease;
}
.islrn-search-overlay.is-open .islrn-search-box { transform:translateY(0); }
.islrn-search-label { margin:0 0 14px; font-weight:800; color:var(--islrn-ink); font-size:1.1rem; }
.islrn-search-close { position:absolute; top:14px; right:16px; background:none; border:0; font-size:1.6rem; line-height:1; color:var(--islrn-muted); cursor:pointer; }
.islrn-search-close:hover { color:var(--islrn-ink); }
.islrn-search-box .search-form { position:relative; }
.islrn-search-box .search-field { width:100%; padding:14px 16px; font-size:1rem; border:1px solid var(--islrn-border); border-radius:var(--islrn-radius-sm); background:var(--islrn-bg); }
.islrn-search-box .search-field:focus { outline:none; border-color:var(--islrn-blue); background:#fff; }
.islrn-search-box .search-submit { position:absolute; right:6px; top:50%; transform:translateY(-50%); background:var(--islrn-blue); color:#fff; border:0; border-radius:8px; padding:9px 16px; font-weight:700; cursor:pointer; }

/* Back-to-top button */
.islrn-to-top {
	position:fixed; right:22px; bottom:22px; z-index:900; width:46px; height:46px; border-radius:50%;
	background:linear-gradient(140deg,var(--islrn-navy),var(--islrn-blue)); color:#fff; border:0; cursor:pointer;
	display:flex; align-items:center; justify-content:center; box-shadow:0 8px 22px rgba(26,37,64,.28);
	opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .3s ease, visibility .3s ease, transform .3s ease;
}
.islrn-to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.islrn-to-top:hover { transform:translateY(-3px); box-shadow:var(--islrn-shadow-lg); }
.islrn-to-top svg { width:20px; height:20px; }
@media (max-width:600px){ .islrn-to-top { right:16px; bottom:16px; width:42px; height:42px; } }

/* Unified button / link hover transitions & focus */
.islrn-btn, .islrn-cat-badge, .islrn-search-toggle, .islrn-to-top,
.ast-article-post, .islrn-related__card, .main-header-menu .menu-link, .islrn-hero__chips a {
	transition-timing-function: cubic-bezier(.2,.7,.3,1);
}
a:focus-visible, button:focus-visible, .islrn-btn:focus-visible, input:focus-visible {
	outline:2px solid var(--islrn-blue); outline-offset:2px; border-radius:4px;
}
