.editorial-hero {
  position: relative;
  padding: 42px 0 68px;
  overflow: hidden;
  background: var(--ivory);
}

.editorial-hero::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(194, 154, 82, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(194, 154, 82, .055) 1px, transparent 1px);
  background-size: 46px 46px;
  content: "";
  mask-image: linear-gradient(to bottom, #000, transparent 90%);
  pointer-events: none;
}

.hero-editorial-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, .72fr);
  gap: 22px;
}

.hero-cover {
  position: relative;
  min-height: 650px;
  display: flex;
  align-items: end;
  padding: clamp(40px, 6vw, 76px);
  overflow: hidden;
  border-radius: 34px;
  background:
    radial-gradient(circle at 80% 15%, rgba(242, 184, 75, .28), transparent 26%),
    linear-gradient(135deg, #321333, var(--deep-plum) 62%, #6a2b50);
  box-shadow: var(--shadow-lg);
  color: rgba(255, 253, 248, .82);
}

.hero-cover::before,
.hero-cover::after {
  position: absolute;
  border: 1px solid rgba(234, 215, 174, .26);
  border-radius: 50%;
  content: "";
  animation: hero-drift 13s ease-in-out infinite alternate;
}

.hero-cover::before {
  top: -190px;
  right: -130px;
  width: 620px;
  height: 620px;
  box-shadow: 0 0 0 46px rgba(234, 215, 174, .035), 0 0 0 92px rgba(234, 215, 174, .018);
}

.hero-cover::after {
  bottom: -190px;
  left: -110px;
  width: 430px;
  height: 430px;
  animation-delay: -5s;
}

@keyframes hero-drift {
  from { transform: translate3d(-10px, -6px, 0) rotate(-2deg); }
  to { transform: translate3d(20px, 12px, 0) rotate(3deg); }
}

.hero-copy {
  position: relative;
  z-index: 2;
  max-width: 68%;
}

.hero-cover .eyebrow {
  color: var(--gold-pale);
}

.hero-cover h1 {
  max-width: 720px;
  color: var(--warm-white);
  font-size: clamp(3.25rem, 5.4vw, 4.5rem);
  letter-spacing: -.052em;
}

.hero-cover .hero-dek {
  max-width: 660px;
  font-size: 1.08rem;
  line-height: 1.65;
}

.hero-cover .button-outline {
  border-color: rgba(255, 255, 255, .42);
  color: var(--warm-white);
}

.hero-cover .button-outline:hover {
  border-color: var(--saffron-light);
  background: rgba(242, 184, 75, .12);
  color: var(--warm-white);
}

.hero-trust-line {
  display: flex;
  flex-wrap: wrap;
  gap: 17px;
  padding: 0;
  margin: 26px 0 0;
  list-style: none;
  color: rgba(255, 253, 248, .72);
  font-size: .72rem;
  font-weight: 750;
}

.hero-trust-line li {
  display: flex;
  align-items: center;
  gap: 7px;
}

.hero-trust-line li::before {
  width: 5px;
  height: 5px;
  transform: rotate(45deg);
  background: var(--saffron-light);
  content: "";
}

.hero-feature-stack {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: 18px;
}

.hero-feature {
  position: relative;
  min-height: 178px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 26px;
  background: var(--warm-white);
  color: var(--charcoal);
  box-shadow: 0 8px 28px rgba(46, 24, 43, .06);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.hero-feature::before {
  position: absolute;
  top: -35px;
  right: -30px;
  width: 145px;
  height: 145px;
  border: 1px solid rgba(194, 154, 82, .48);
  border-radius: 50%;
  box-shadow: 0 0 0 20px rgba(194, 154, 82, .07);
  content: "";
  transition: transform .4s var(--ease);
}

.hero-feature.daily {
  border-color: transparent;
  background: var(--teal);
  color: var(--warm-white);
}

.hero-feature.festival {
  background: var(--saffron-wash);
}

.hero-feature.start {
  background: var(--plum-soft);
}

.hero-feature:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
  color: inherit;
}

.hero-feature:hover::before {
  transform: scale(1.12) translate(-6px, 6px);
}

.hero-feature small {
  position: relative;
  z-index: 1;
  margin-bottom: 8px;
  color: currentColor;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.hero-feature strong {
  position: relative;
  z-index: 1;
  max-width: 240px;
  color: inherit;
  font: 700 1.28rem/1.15 var(--serif);
}

.hero-feature span {
  position: relative;
  z-index: 1;
  margin-top: 12px;
  font-size: .74rem;
  font-weight: 850;
}

.popular-section {
  border-bottom: 1px solid var(--border);
  background: var(--warm-white);
}

.popular-inner {
  min-height: 104px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 35px;
}

.popular-label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--deep-plum);
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  white-space: nowrap;
}

.popular-label::before {
  width: 24px;
  height: 2px;
  background: var(--saffron);
  content: "";
}

.popular-list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.popular-list a {
  min-height: 58px;
  display: grid;
  grid-template-columns: 29px 1fr;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  border-left: 1px solid var(--border);
  color: var(--charcoal);
  font-family: var(--serif);
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.2;
}

.popular-list a:hover {
  color: var(--plum);
}

.popular-list b {
  color: var(--antique-gold);
  font: 700 1.2rem var(--display);
}

.explore-publication {
  background: var(--ivory);
}

.cover-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 220px;
  gap: 18px;
}

.category-cover {
  position: relative;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 31px;
  overflow: hidden;
  border-radius: 24px;
  color: var(--warm-white);
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}

.category-cover::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(135deg, transparent 48%, rgba(255, 255, 255, .07) 48%, rgba(255, 255, 255, .07) 50%, transparent 50%),
    radial-gradient(circle at 80% 15%, rgba(255, 255, 255, .12), transparent 28%);
  background-size: 32px 32px, auto;
  content: "";
  transition: transform .6s var(--ease);
}

.category-cover::after {
  position: absolute;
  top: 25px;
  right: 25px;
  width: 82px;
  height: 82px;
  border: 1px solid rgba(255, 255, 255, .36);
  border-radius: 50%;
  box-shadow: 0 0 0 14px rgba(255, 255, 255, .07);
  content: "";
}

.category-cover:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow-md);
  color: var(--warm-white);
}

.category-cover:hover::before {
  transform: scale(1.05);
}

.category-cover > * {
  position: relative;
  z-index: 1;
}

.category-cover small {
  margin-bottom: 10px;
  color: var(--gold-pale);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.category-cover h3 {
  max-width: 520px;
  margin-bottom: .35em;
  color: inherit;
}

.category-cover p {
  max-width: 510px;
  margin: 0;
  color: rgba(255, 253, 248, .78);
  font-size: .82rem;
}

.cover-learn {
  grid-column: span 6;
  grid-row: span 2;
  background: linear-gradient(145deg, #2f1130, var(--plum));
}

.cover-learn h3 {
  font-size: clamp(2.2rem, 3.5vw, 3.25rem);
}

.cover-deities {
  grid-column: span 3;
  background: linear-gradient(145deg, #765c2c, #ad7f32);
}

.cover-scriptures {
  grid-column: span 3;
  background: linear-gradient(145deg, #1c263e, #35476a);
}

.cover-festivals {
  grid-column: span 6;
  background: linear-gradient(135deg, #a85708, var(--saffron));
}

.cover-practices {
  grid-column: span 3;
  background: linear-gradient(145deg, #245855, var(--teal));
}

.cover-stories {
  grid-column: span 3;
  background: linear-gradient(145deg, #68323d, var(--rose));
}

.cover-kids {
  grid-column: span 6;
  color: var(--ink);
  background: linear-gradient(135deg, #f1c85d, #f5ded0);
}

.cover-kids small,
.cover-kids p {
  color: rgba(23, 21, 27, .72);
}

.today-publication {
  position: relative;
  overflow: hidden;
  background: var(--ink);
  color: rgba(255, 253, 248, .76);
}

.today-publication::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 8% 20%, rgba(139, 68, 82, .2), transparent 25%),
    radial-gradient(circle at 90% 70%, rgba(47, 112, 109, .18), transparent 25%);
  content: "";
}

.today-publication .section-heading,
.today-publication .today-editorial-grid {
  position: relative;
}

.today-publication h2,
.today-publication h3 {
  color: var(--warm-white);
}

.today-publication .eyebrow {
  color: var(--gold-pale);
}

.today-editorial-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 1px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 26px;
  background: rgba(255, 255, 255, .13);
  overflow: hidden;
}

.today-feature {
  position: relative;
  min-height: 310px;
  display: flex;
  flex-direction: column;
  padding: 34px;
  background: rgba(23, 21, 27, .72);
}

.today-feature:first-child {
  background: rgba(86, 38, 87, .56);
}

.today-feature:nth-child(2) {
  background: rgba(217, 130, 18, .12);
}

.today-feature:nth-child(3) {
  background: rgba(47, 112, 109, .2);
}

.today-feature::before {
  width: 48px;
  height: 48px;
  margin-bottom: auto;
  border: 1px solid rgba(234, 215, 174, .55);
  border-radius: 50%;
  box-shadow: 0 0 0 9px rgba(234, 215, 174, .05);
  content: "";
}

.today-feature small {
  margin-bottom: 9px;
  color: var(--saffron-light);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.today-feature p {
  font-size: .85rem;
}

.today-feature .text-link {
  margin-top: auto;
  color: var(--warm-white);
}

.featured-publication {
  background: var(--warm-white);
}

.story-grid {
  display: grid;
  grid-template-columns: 1.38fr 1fr 1fr;
  gap: 18px;
}

.story-card {
  position: relative;
  min-height: 310px;
  display: flex;
  flex-direction: column;
  padding: 28px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--white);
  color: var(--charcoal);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.story-card::before {
  height: 122px;
  margin: -28px -28px 25px;
  background:
    radial-gradient(circle at 70% 30%, rgba(242, 184, 75, .38), transparent 23%),
    linear-gradient(135deg, var(--plum-soft), var(--ivory));
  content: "";
}

.story-card.lead {
  grid-row: span 2;
  min-height: 638px;
  justify-content: flex-end;
  border: 0;
  background: var(--deep-plum);
  color: rgba(255, 253, 248, .78);
}

.story-card.lead::before {
  position: absolute;
  inset: 0;
  height: auto;
  margin: 0;
  background:
    url("../images/covers/cover-learn.svg") center 18% / 78% auto no-repeat,
    radial-gradient(circle at 70% 20%, rgba(242, 184, 75, .17), transparent 32%),
    var(--deep-plum);
  opacity: .88;
}

.story-card.lead::after {
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(transparent, rgba(60, 23, 61, .92) 56%);
  content: "";
}

.story-card > * {
  position: relative;
  z-index: 1;
}

.story-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  color: inherit;
}

.story-card h3 {
  color: inherit;
  font-size: 1.42rem;
}

.story-card.lead h3 {
  color: var(--warm-white);
  font-size: clamp(2.3rem, 3.5vw, 3.25rem);
}

.story-card small {
  color: var(--saffron-700);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.story-card.lead small {
  color: var(--gold-pale);
}

.story-card p {
  color: var(--muted-text);
  font-size: .82rem;
}

.story-card.lead p {
  color: rgba(255, 253, 248, .72);
}

.story-meta {
  margin-top: auto;
  color: var(--muted-text);
  font-size: .7rem;
  font-weight: 750;
}

.tools-publication {
  background: var(--surface-muted);
}

.tool-product-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 15px;
}

.tool-product {
  position: relative;
  min-height: 285px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: var(--warm-white);
  color: var(--charcoal);
  transition: transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}

.tool-product-icon {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  margin-bottom: 34px;
  border-radius: 20px;
  background: var(--plum-soft);
}

.tool-product:nth-child(2) .tool-product-icon {
  background: var(--saffron-wash);
}

.tool-product:nth-child(3) .tool-product-icon {
  background: #e7ebf4;
}

.tool-product:nth-child(4) .tool-product-icon {
  background: var(--rose-light);
}

.tool-product:nth-child(5) .tool-product-icon {
  background: var(--teal-light);
}

.tool-product-icon img {
  width: 44px;
  height: 44px;
}

.tool-product h3 {
  font-size: 1.3rem;
}

.tool-product p {
  color: var(--muted-text);
  font-size: .79rem;
}

.tool-product .text-link {
  margin-top: auto;
}

.tool-product:hover {
  transform: translateY(-6px);
  border-color: var(--gold-pale);
  box-shadow: var(--shadow-sm);
  color: var(--charcoal);
}

.family-publication {
  background: linear-gradient(105deg, #f7e8d8, #fff6df);
}

.family-editorial-grid {
  display: grid;
  grid-template-columns: .88fr 1.12fr;
  gap: 60px;
  align-items: center;
}

.family-illustration {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border-radius: 46% 54% 42% 58% / 48% 42% 58% 52%;
  background:
    url("../images/illustrations/family-lamp.svg") center / 86% auto no-repeat,
    rgba(255, 253, 248, .68);
  box-shadow: inset 0 0 0 1px rgba(139, 68, 82, .12);
}

.family-copy > p {
  max-width: 620px;
  color: var(--muted-text);
}

.family-guide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 30px;
}

.family-guide {
  min-height: 145px;
  padding: 20px;
  border: 1px solid rgba(139, 68, 82, .13);
  border-radius: 16px;
  background: rgba(255, 253, 248, .78);
  color: var(--charcoal);
}

.family-guide:first-child {
  grid-column: span 2;
}

.family-guide small,
.family-guide strong {
  display: block;
}

.family-guide small {
  margin-bottom: 6px;
  color: var(--rose);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.family-guide strong {
  font-family: var(--serif);
  font-size: 1.15rem;
}

.family-guide:hover {
  color: var(--plum);
}

.trust-newsletter {
  background: var(--ivory);
}

.trust-newsletter-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--warm-white);
  box-shadow: var(--shadow-sm);
}

.trust-editorial,
.newsletter-preview {
  padding: clamp(35px, 5vw, 58px);
}

.trust-editorial {
  position: relative;
  overflow: hidden;
  background: var(--deep-plum);
  color: rgba(255, 253, 248, .78);
}

.trust-editorial::after {
  position: absolute;
  right: -80px;
  bottom: -160px;
  width: 340px;
  height: 340px;
  border: 1px solid rgba(234, 215, 174, .28);
  border-radius: 50%;
  box-shadow: 0 0 0 36px rgba(234, 215, 174, .04);
  content: "";
}

.trust-editorial h2,
.trust-editorial a {
  position: relative;
  z-index: 1;
  color: var(--warm-white);
}

.trust-editorial .inline-paths a {
  border-color: rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .08);
}

.newsletter-preview {
  align-self: center;
}

.newsletter-preview p {
  color: var(--muted-text);
  font-size: .86rem;
}

.newsletter-preview label {
  font-size: .74rem;
  font-weight: 850;
}

.newsletter-preview input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  margin: 8px 0 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-muted);
}

/* Legacy homepage modules retain a professional fallback if visited from cached markup. */
.home-hero,
.today-section,
.scripture-spotlight {
  background: var(--deep-plum);
  color: var(--warm-white);
}

.category-showcase,
.goal-section {
  background: var(--ivory);
}
