/*
Theme Name: Indies Education
Theme URI: https://indieseducation.com/
Author: Indies Education
Description: A focused editorial block theme for practical business education.
Version: 2.0.4
Requires at least: 6.7
Requires PHP: 8.0
Text Domain: indies-education
*/

:root {
  --ie-ink: #14213a;
  --ie-panel: #ffffff;
  --ie-panel-2: #eeebe3;
  --ie-paper: #f7f5ef;
  --ie-muted: #606975;
  --ie-amber: #a88745;
  --ie-coral: #8d2635;
  --ie-teal: #456e71;
  --ie-line: #d7d2c7;
  --ie-radius: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--ie-paper); color: var(--ie-ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
h1, h2, h3, h4, .wp-block-post-title { font-family: Georgia, "Times New Roman", serif; font-weight: 500 !important; }
a { text-underline-offset: .2em; }
::selection { background: #e7d8b8; color: var(--ie-ink); }

.wp-site-blocks { overflow: clip; }
.ie-site-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, #ffffff 94%, transparent);
  backdrop-filter: blur(16px);
  border-top: 4px solid var(--ie-coral);
  border-bottom: 1px solid var(--ie-line);
}
.ie-header-inner { min-height: 82px; }
.ie-header-brand { gap: 12px; }
.ie-header-brand .wp-block-site-logo img { border-radius: 2px; }
.ie-brand a { color: var(--ie-ink); text-decoration: none; letter-spacing: .015em; font-family: Georgia, "Times New Roman", serif; }
.ie-brand em { color: var(--ie-coral); font-style: normal; }
.wp-block-navigation a { text-decoration: none; }
.ie-site-header .wp-block-navigation a { color: #26344b; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.wp-block-navigation a:hover { color: var(--ie-coral); }

.ie-home-hero {
  min-height: min(780px, 84vh); display: grid; align-items: center;
  position: relative; isolation: isolate; background-size: cover; background-position: center;
}
.ie-home-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(13,27,49,.98) 0%, rgba(13,27,49,.92) 42%, rgba(13,27,49,.25) 69%, rgba(13,27,49,.08) 100%);
}
.ie-hero-copy { width: min(calc(100% - 40px), 1240px); max-width: none; padding-top: clamp(96px, 12vw, 160px); padding-bottom: clamp(80px, 10vw, 130px); color: #fff; }
.ie-hero-copy > * { max-width: 700px; }
.ie-kicker { color: var(--ie-coral); text-transform: uppercase; letter-spacing: .17em; font-size: .74rem; font-weight: 800; }
.ie-home-hero .ie-kicker { color: #d8bc7c; }
.ie-display { font-size: clamp(3.2rem, 6.8vw, 6.6rem); line-height: .94; letter-spacing: -.045em; margin: .3em 0; color: #fff; }
.ie-display span { color: #ead9b6; }
.ie-lede { color: #ece9e2; font-size: clamp(1.05rem, 1.65vw, 1.3rem); max-width: 620px; line-height: 1.65; text-wrap: balance; }
.ie-button .wp-block-button__link, .ie-button-alt .wp-block-button__link {
  border-radius: 2px; padding: 15px 24px; font-size: .79rem; letter-spacing: .07em; text-transform: uppercase; font-weight: 800; transition: background .2s ease, color .2s ease;
}
.ie-button .wp-block-button__link { background: var(--ie-coral); color: #fff; }
.ie-button-alt .wp-block-button__link { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.55); }
.ie-button .wp-block-button__link:hover { background: #741d2a; }
.ie-button-alt .wp-block-button__link:hover { background: #fff; color: var(--ie-ink); }

.ie-section { padding-top: clamp(80px, 9vw, 140px); padding-bottom: clamp(80px, 9vw, 140px); }
.ie-section-head { max-width: 760px; margin-bottom: clamp(32px, 5vw, 64px); }
.ie-section-head h2 { font-size: clamp(2.35rem, 4.7vw, 4.5rem); line-height: 1.02; letter-spacing: -.035em; margin: .2em 0; }
.ie-section-head p { color: var(--ie-muted); font-size: 1.15rem; }
.ie-pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--ie-line); border-left: 1px solid var(--ie-line); }
.ie-pillar {
  position: relative; overflow: hidden; min-height: 270px; padding: 34px; border: 0; border-right: 1px solid var(--ie-line); border-bottom: 1px solid var(--ie-line);
  border-radius: 0; background: #fff; color: inherit; text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.ie-pillar::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--ie-coral); transform: scaleY(0); transform-origin: top; transition: transform .2s ease; }
.ie-pillar::after { content: "→"; position: absolute; right: 28px; bottom: 22px; color: var(--ie-coral); font-size: 1.5rem; }
.ie-pillar:hover { background: #f0ede5; }
.ie-pillar:hover::before { transform: scaleY(1); }
.ie-pillar small { color: var(--ie-coral); text-transform: uppercase; letter-spacing: .13em; font-weight: 800; }
.ie-pillar h3 { font-size: 1.85rem; margin: 1.65em 0 .4em; }
.ie-pillar p { color: var(--ie-muted); }

.ie-principles { border-block: 0; background: var(--ie-ink); color: #fff; }
.ie-principles .ie-kicker { color: #d8bc7c; }
.ie-principle-row { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 30px; padding: 32px 0; border-bottom: 1px solid rgba(255,255,255,.18); align-items: baseline; }
.ie-principle-row:last-child { border-bottom: 0; }
.ie-principle-row strong { color: #d8bc7c; font-size: .8rem; letter-spacing: .12em; }
.ie-principle-row h3 { margin: 0; font-size: 1.65rem; }
.ie-principle-row p { margin: 0; color: #c9d0d9; }

.ie-query .wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 22px; }
.ie-query .wp-block-post { display: flex; flex-direction: column; min-width: 0; margin-block: 0; border: 1px solid var(--ie-line); border-radius: 2px; overflow: hidden; background: #fff; }
.ie-query .wp-block-post-featured-image { margin: 0; aspect-ratio: 3/2; overflow: hidden; }
.ie-query .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.ie-query .wp-block-post:hover img { transform: scale(1.035); }
.ie-query .wp-block-post-title, .ie-query .wp-block-post-excerpt, .ie-query .wp-block-post-date, .ie-query .taxonomy-category { margin-inline: 24px; }
.ie-query .wp-block-post-title { font-size: 1.65rem; line-height: 1.12; margin-top: 18px; }
.ie-query .wp-block-post-title a { color: var(--ie-ink); text-decoration: none; }
.ie-query .wp-block-post-excerpt { display: flex; flex: 1; flex-direction: column; color: var(--ie-muted); }
.ie-query .wp-block-post-excerpt__excerpt { margin-bottom: 18px; }
.ie-query .wp-block-post-excerpt__more-text { margin-top: auto; margin-bottom: 24px; }
.ie-query .wp-block-post-excerpt p:last-child { margin-bottom: 24px; }
.ie-query .wp-block-post-date, .ie-query .taxonomy-category { color: var(--ie-coral); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.ie-query .taxonomy-category a, .ie-query .wp-block-post-excerpt__more-link { color: var(--ie-coral); }
.ie-query .wp-block-post-excerpt__more-link { font-weight: 700; }

/* Single-lesson curriculum: intentionally isolated from generic archive cards. */
.ie-related-lessons {
  margin-block: clamp(72px, 9vw, 128px);
  padding: clamp(34px, 5vw, 64px);
  color: #fff;
  background: var(--ie-ink);
  border-top: 5px solid var(--ie-coral);
}
.ie-related-lessons__header {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(240px, .7fr);
  gap: 32px;
  align-items: end;
  padding-bottom: clamp(26px, 4vw, 42px);
  border-bottom: 1px solid rgba(255,255,255,.2);
}
.ie-related-lessons__eyebrow {
  margin: 0 0 9px;
  color: #d8bc7c;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.ie-related-lessons__header h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.35rem, 4.3vw, 4.4rem);
  line-height: .96;
  letter-spacing: -.045em;
}
.ie-related-lessons__intro {
  max-width: 360px;
  margin: 0;
  color: #c9d0d9;
  font-size: .97rem;
  line-height: 1.6;
}
.ie-related-lessons__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  background: rgba(255,255,255,.2);
  list-style: none;
}
.ie-related-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  background: #fff;
  color: var(--ie-ink);
}
.ie-related-card__image {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #d9d7d0;
}
.ie-related-card__image > br { display: none; }
.ie-related-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}
.ie-related-card:hover .ie-related-card__image img { transform: scale(1.025); filter: saturate(.88); }
.ie-related-card__body {
  display: flex;
  min-height: 220px;
  flex: 1;
  flex-direction: column;
  padding: clamp(22px, 2.4vw, 30px);
}
.ie-related-card__meta {
  display: flex;
  gap: 8px;
  color: var(--ie-coral);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ie-related-card h3 {
  margin: 17px 0 28px;
  font-size: clamp(1.35rem, 2.1vw, 1.85rem);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.ie-related-card h3 a { color: inherit; text-decoration: none; }
.ie-related-card h3 a:hover { color: var(--ie-coral); }
.ie-related-card__cta {
  width: fit-content;
  margin-top: auto;
  color: var(--ie-coral);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-decoration-thickness: 1px;
  text-transform: uppercase;
}
.ie-related-card__cta:focus-visible,
.ie-related-card h3 a:focus-visible { outline: 3px solid var(--ie-amber); outline-offset: 4px; }

.ie-cta { padding: clamp(44px, 8vw, 90px); border-radius: 2px; color: #fff; background: var(--ie-coral); }
.ie-cta h2 { font-size: clamp(2.4rem, 5vw, 5.2rem); line-height: .98; letter-spacing: -.055em; max-width: 900px; margin: 0 0 .3em; }
.ie-cta p { max-width: 680px; font-size: 1.16rem; color: #f2dfe2; }
.ie-cta .ie-kicker { color: #fff; }

.ie-archive-hero {
  position: relative;
  margin-block-start: 0 !important;
  padding-block: clamp(54px, 7vw, 88px);
  color: #fff;
  background: var(--ie-ink);
  border-top: 5px solid var(--ie-coral);
  border-bottom: 1px solid #293650;
}
.ie-archive-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, var(--ie-coral) 0 18%, #d8bc7c 18% 31%, transparent 31%);
}
.ie-archive-hero__inner { max-width: 1240px; }
.ie-archive-eyebrow {
  margin: 0 0 18px;
  color: #d8bc7c;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ie-archive-hero h1 {
  max-width: 900px;
  margin: 0;
  color: #fff;
  font-size: clamp(3.1rem, 6vw, 5.25rem);
  letter-spacing: -.055em;
  line-height: .94;
}
.ie-archive-hero .taxonomy-description {
  max-width: 780px;
  margin: 25px 0 0;
  color: #cbd3df;
  font-size: clamp(1.03rem, 1.6vw, 1.22rem) !important;
  line-height: 1.6;
}
.ie-archive-hero .taxonomy-description p { margin: 0; }

/* Category archives are a text-led case library. Featured images remain on the
   lesson itself and in social metadata; hiding them here prevents repetitive
   legacy social cards from weakening the curriculum index. */
.ie-archive-query.ie-section { padding-top: clamp(46px, 6vw, 76px); padding-bottom: clamp(72px, 8vw, 112px); }
.ie-archive-query .ie-archive-grid { counter-reset: ie-lesson; gap: 20px; }
.ie-archive-query .wp-block-post {
  counter-increment: ie-lesson;
  position: relative;
  min-height: 330px;
  padding: 62px 28px 28px;
  border: 1px solid var(--ie-line);
  border-top: 3px solid var(--ie-coral);
  background: #fff;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.ie-archive-query .wp-block-post:hover {
  transform: translateY(-3px);
  border-color: #bfb7a8;
  box-shadow: 0 18px 44px rgba(20,33,58,.09);
}
.ie-archive-query .wp-block-post::before {
  content: "Lesson " counter(ie-lesson, decimal-leading-zero);
  position: absolute;
  top: 25px;
  left: 28px;
  color: var(--ie-coral);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ie-archive-query .wp-block-post-featured-image { display: none; }
.ie-archive-query .taxonomy-category,
.ie-archive-query .wp-block-post-title,
.ie-archive-query .wp-block-post-excerpt { margin-inline: 0; }
.ie-archive-query .taxonomy-category { margin-block: 0 15px; }
.ie-archive-query .taxonomy-category a { text-decoration-thickness: 1px; }
.ie-archive-query .wp-block-post-title {
  min-height: 2.25em;
  margin-block: 0 17px;
  font-size: clamp(1.45rem, 2vw, 1.8rem);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.ie-archive-query .wp-block-post-excerpt { margin-block: 0; font-size: .94rem; line-height: 1.6; }
.ie-archive-query .wp-block-post-excerpt__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 0 22px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.ie-archive-query .wp-block-post-excerpt__more-text { margin-block: auto 0; padding-top: 5px; }
.ie-archive-query .wp-block-post-excerpt__more-link {
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.ie-archive-query .wp-block-query-pagination {
  margin-top: 42px;
  padding-top: 25px;
  border-top: 1px solid var(--ie-line);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .04em;
}

.ie-article-header { padding-top: clamp(72px, 9vw, 128px); padding-bottom: clamp(38px, 5vw, 68px); }
.ie-article-header .wp-block-post-title { font-size: clamp(3rem, 6.2vw, 6rem); line-height: .96; letter-spacing: -.06em; max-width: 1080px; text-wrap: balance; }
.ie-article-meta { color: var(--ie-muted); }
.ie-article-meta a { color: var(--ie-coral); }
.ie-featured-image { border-radius: 2px; overflow: hidden; border: 1px solid var(--ie-line); }
.ie-featured-image img { width: 100%; max-height: 620px; object-fit: cover; }
.ie-article-body { font-size: clamp(1.06rem, 1.4vw, 1.2rem); line-height: 1.78; padding-block: clamp(60px, 8vw, 120px); }
.ie-article-body > * { max-width: 760px; margin-inline: auto; }
.ie-article-body > .alignwide { max-width: 1180px; }
.ie-article-body h2 { font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.06; letter-spacing: -.045em; margin-top: 2.2em; }
.ie-article-body h3 { font-size: 1.55rem; margin-top: 1.8em; }
.ie-article-body p, .ie-article-body li { color: #303a49; }
.ie-article-body strong { color: var(--ie-ink); }
.ie-article-body a { color: var(--ie-coral); }
.ie-article-body blockquote { border-left: 4px solid var(--ie-coral); padding: 22px 28px; background: #ece8de; border-radius: 0; }
.ie-article-body figure.alignwide { margin-top: 3.4rem; margin-bottom: 3.4rem; }
.ie-article-body figcaption { color: var(--ie-muted); font-size: .82rem; text-align: center; margin-top: 12px; }
.ie-article-body figure img { border-radius: 2px; }
.ie-article-body .wp-block-html svg { display: block; width: 100%; height: auto; border-radius: 2px; }
.ie-thesis-visual { margin-block: 4rem; padding: clamp(18px, 3vw, 36px); background: #101c31; border-top: 4px solid var(--ie-coral); box-shadow: 0 24px 70px rgba(20,33,58,.13); }
.ie-thesis-visual svg { overflow: visible; }
.ie-thesis-visual figcaption { color: #d7dde6; font-size: .84rem; line-height: 1.55; margin: 18px 4px 0; text-align: left; }
.ie-thesis-visual figcaption strong { color: #ead9b6; }
.ie-thesis-table { margin-block: 3rem; border-top: 3px solid var(--ie-coral); background: #fff; }
.ie-thesis-table table { border-collapse: collapse; width: 100%; }
.ie-thesis-table th { background: var(--ie-ink); color: #fff; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.ie-thesis-table th, .ie-thesis-table td { border: 1px solid var(--ie-line); padding: 14px 16px; text-align: left; vertical-align: top; }
.ie-thesis-table tbody tr:nth-child(even) { background: #f1eee7; }
.ie-reference { font-size: .9rem; color: var(--ie-muted) !important; padding-left: 2.2rem; text-indent: -2.2rem; }
.ie-reference:target { background: #eee5d3; }
.ie-insight { padding: 30px; border-radius: 0; background: #ece8de; border-top: 3px solid var(--ie-coral); }
.ie-insight strong { display: block; color: var(--ie-coral); text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; margin-bottom: 10px; }
.ie-checklist { padding: 32px 34px; border-radius: 0; background: #edf1ef; border: 1px solid #9fb5b1; }
.ie-checklist li::marker { color: var(--ie-teal); }

.ie-site-footer { border-top: 5px solid var(--ie-coral); background: #101c31; color: #fff; }
.ie-footer-title { font-size: clamp(2.2rem, 5vw, 4.6rem); letter-spacing: -.055em; }
.ie-footer-title span { color: #d8bc7c; }
.ie-site-footer a { color: inherit; }

@media (max-width: 900px) {
  .ie-pillar-grid, .ie-query .wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
  .ie-principle-row { grid-template-columns: 64px 1fr; }
  .ie-principle-row p { grid-column: 2; }
  .ie-related-lessons { padding-inline: 26px; }
  .ie-related-lessons__grid { grid-template-columns: 1fr; }
  .ie-related-card { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(0, 1.2fr); }
  .ie-related-card__image { height: 100%; aspect-ratio: auto; }
  .ie-related-card__body { min-height: 210px; }
  .ie-archive-query .wp-block-post { min-height: 305px; }
}
@media (max-width: 620px) {
  .ie-header-inner { min-height: 66px; }
  .ie-header-brand .wp-block-site-logo img { width: 36px; height: 36px; }
  .ie-brand { font-size: 1rem !important; }
  .ie-home-hero { min-height: 760px; background-position: 62% center; }
  .ie-home-hero::before { background: linear-gradient(0deg, var(--ie-ink) 0%, rgba(7,17,31,.86) 58%, rgba(7,17,31,.25) 100%); }
  .ie-hero-copy { padding-top: 110px; padding-bottom: 64px; }
  .ie-display { font-size: clamp(3rem, 16vw, 4.4rem); }
  .ie-pillar-grid, .ie-query .wp-block-post-template { grid-template-columns: 1fr; }
  .ie-query .wp-block-post-title { min-height: 0; }
  .ie-archive-hero { padding-block: 46px 50px; }
  .ie-archive-hero h1 { font-size: clamp(2.8rem, 15vw, 4rem); }
  .ie-archive-hero .taxonomy-description { margin-top: 18px; font-size: 1rem !important; }
  .ie-archive-query.ie-section { padding-top: 34px; }
  .ie-archive-query .wp-block-post { min-height: 0; padding: 58px 22px 24px; }
  .ie-archive-query .wp-block-post::before { left: 22px; }
  .ie-archive-query .wp-block-post-title { font-size: 1.55rem; }
  .ie-pillar { min-height: 220px; }
  .ie-article-header { padding-top: 62px; padding-bottom: 36px; }
  .ie-article-header .wp-block-post-title { font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .ie-featured-image { border-radius: 18px; }
  .ie-featured-image img { max-height: 440px; }
  .ie-article-body { font-size: 1.04rem; }
  .ie-article-body blockquote, .ie-insight, .ie-checklist { padding: 22px; }
  .ie-related-lessons { width: 100%; margin-block: 64px; padding: 30px 18px 18px; }
  .ie-related-lessons__header { grid-template-columns: 1fr; gap: 16px; }
  .ie-related-lessons__grid { margin-top: 0; }
  .ie-related-card { display: flex; }
  .ie-related-card__image { height: auto; aspect-ratio: 16 / 9; }
  .ie-related-card__body { min-height: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
