@font-face {
  font-family: "ECCLAI WenKai";
  src: url("/assets/fonts/ecclai-wenkai-games.woff") format("woff");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --navy-950: #061a33;
  --navy-900: #09294f;
  --navy-800: #123b69;
  --brand-700: #2d5fa7;
  --brand-600: #3d73bd;
  --brand-100: #dbe9fb;
  --brand-050: #f1f6fd;
  --ink: #122033;
  --muted: #5d6978;
  --line: #dce3ec;
  --paper: #ffffff;
  --warm: #f7f3ea;
  --gold: #b78a3d;
  --gold-soft: #f3e7cb;
  --coral: #c95b4f;
  --coral-soft: #fae4df;
  --green: #16735f;
  --green-soft: #dff1ea;
  --violet: #6b56a5;
  --violet-soft: #eee9f8;
  --shadow-sm: 0 8px 24px rgba(6, 26, 51, 0.08);
  --shadow-lg: 0 28px 80px rgba(6, 26, 51, 0.17);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --max-width: 1200px;
  --sans: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 104px;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.nav-open {
  overflow: hidden;
}

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

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

.container {
  width: min(var(--max-width), calc(100% - 48px));
  margin-inline: auto;
}

.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;
}

.skip-link {
  position: fixed;
  z-index: 200;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: var(--paper);
  background: var(--navy-950);
  border-radius: var(--radius-sm);
  transform: translateY(-160%);
  transition: transform 160ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

:focus-visible {
  outline: 3px solid #f0bf5b;
  outline-offset: 3px;
}

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(220, 227, 236, 0.9);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 18px rgba(6, 26, 51, 0.035);
  backdrop-filter: blur(14px);
}

.utility-bar {
  color: rgba(255, 255, 255, 0.82);
  background: var(--navy-950);
  font-size: 0.75rem;
  letter-spacing: 0.025em;
}

.utility-inner {
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.utility-inner p {
  margin: 0;
}

.utility-inner a {
  color: var(--paper);
  font-weight: 700;
}

.nav-shell {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 11px;
  color: var(--navy-900);
}

.brand img {
  width: 48px;
  height: 48px;
  border-radius: 12px;
}

.brand span {
  display: grid;
  line-height: 1.05;
}

.brand strong {
  font-size: 1.14rem;
  letter-spacing: 0.08em;
}

.brand small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.67rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(15px, 1.8vw, 28px);
  font-size: 0.91rem;
  font-weight: 650;
}

.main-nav > a {
  position: relative;
  padding: 27px 0 25px;
  color: #324051;
  white-space: nowrap;
}

.main-nav > a::after {
  position: absolute;
  right: 0;
  bottom: 18px;
  left: 0;
  height: 2px;
  background: var(--brand-700);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
}

.main-nav > a:hover,
.main-nav > a[aria-current="page"] {
  color: var(--navy-900);
}

.main-nav > a:hover::after,
.main-nav > a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.main-nav .shop-link {
  margin-left: 4px;
  padding: 10px 15px;
  color: var(--paper);
  background: var(--navy-900);
  border-radius: 999px;
}

.main-nav .shop-link::after {
  display: none;
}

.main-nav .shop-link:hover {
  color: var(--paper);
  background: var(--brand-700);
}

.nav-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--line);
  color: var(--navy-900);
  background: var(--paper);
  border-radius: 50%;
  cursor: pointer;
}

.nav-toggle-lines {
  display: grid;
  width: 19px;
  gap: 4px;
}

.nav-toggle-lines i {
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 160ms ease, opacity 160ms ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-lines i:first-child {
  transform: translateY(6px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-lines i:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-lines i:last-child {
  transform: translateY(-6px) rotate(-45deg);
}

.section {
  padding: 84px 0;
}

.eyebrow {
  display: inline-block;
  margin-bottom: 16px;
  color: var(--brand-700);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.eyebrow.light {
  color: #a9cbfa;
}

.section-heading {
  margin-bottom: 45px;
}

.section-heading h2,
.library-intro h2,
.about-copy h2,
.blog-home h2,
.community-copy h2,
.contact-strip h2,
.section-preview h1 {
  margin-bottom: 0;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(2.1rem, 3.5vw, 3.45rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.03;
}

.split-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  align-items: end;
  gap: 64px;
}

.split-heading > p,
.split-heading > div:last-child p {
  max-width: 430px;
  margin-bottom: 12px;
  color: var(--muted);
}

.compact-heading {
  max-width: 720px;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 21px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.91rem;
  font-weight: 750;
  line-height: 1.2;
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-icon {
  width: 17px;
  height: 17px;
  margin-right: 7px;
}

.button-light {
  color: var(--navy-950);
  background: var(--paper);
}

.button-ghost-light {
  border-color: rgba(255, 255, 255, 0.42);
  color: var(--paper);
  background: rgba(255, 255, 255, 0.07);
}

.button-support-light {
  border-color: rgba(243, 211, 143, 0.55);
  color: #ffe8b7;
  background: rgba(183, 138, 61, 0.12);
}

.button-support-light:hover {
  background: rgba(183, 138, 61, 0.24);
}

.button-primary {
  color: var(--paper);
  background: var(--navy-900);
}

.button-primary:hover {
  background: var(--brand-700);
}

.button-outline {
  border-color: #aebdcd;
  color: var(--navy-900);
  background: transparent;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brand-700);
  font-size: 0.91rem;
  font-weight: 800;
}

.text-link span {
  transition: transform 160ms ease;
}

.text-link:hover span {
  transform: translateX(4px);
}

.hero-home {
  position: relative;
  overflow: hidden;
  padding: 72px 0 64px;
  color: var(--paper);
  background:
    radial-gradient(circle at 88% 14%, rgba(89, 147, 220, 0.28), transparent 30%),
    radial-gradient(circle at 4% 100%, rgba(22, 115, 95, 0.2), transparent 30%),
    var(--navy-950);
}

.hero-home::before {
  position: absolute;
  top: -280px;
  left: 44%;
  width: 700px;
  height: 700px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 50%;
  box-shadow: 0 0 0 110px rgba(255, 255, 255, 0.018), 0 0 0 230px rgba(255, 255, 255, 0.013);
  content: "";
}

.hero-home-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(450px, 1.05fr);
  align-items: center;
  gap: clamp(48px, 7vw, 96px);
}

.hero-intro h1 {
  max-width: 760px;
  margin-bottom: 24px;
  font-family: var(--serif);
  font-size: clamp(2.55rem, 3.8vw, 3.95rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1;
}

.hero-lead {
  max-width: 640px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, 0.77);
  font-size: clamp(1.02rem, 1.6vw, 1.19rem);
  line-height: 1.65;
}

.hero-signature {
  max-width: 480px;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 34px;
  padding-top: 25px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.signature-mark {
  width: 44px;
  height: 44px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #dfeaf8;
  border-radius: 50%;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-style: italic;
}

.hero-signature p {
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.83rem;
  line-height: 1.55;
}

.hero-signature strong {
  color: var(--paper);
  font-weight: 700;
}

.hero-signature a {
  display: inline-block;
  margin-left: 3px;
  color: #c7ddfb;
  font-weight: 750;
}

.announcement-carousel {
  min-width: 0;
}

.carousel-viewport {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.13);
  background: rgba(255, 255, 255, 0.97);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

.announcement-slide {
  min-height: 470px;
  display: none;
  grid-template-rows: auto 200px;
  color: var(--ink);
}

.announcement-slide.is-active {
  display: grid;
  animation: slide-in 420ms ease both;
}

.announcement-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 37px 40px 29px;
}

.announcement-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  color: var(--brand-700);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.announcement-eyebrow::before {
  width: 22px;
  height: 1px;
  background: currentColor;
  content: "";
}

.announcement-slide h2 {
  margin-bottom: 14px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.9rem, 2.7vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

.announcement-slide p {
  margin-bottom: 18px;
  color: var(--muted);
  font-size: 0.92rem;
}

.announcement-slide small {
  margin-top: auto;
  padding-top: 18px;
  color: #7a8491;
  font-size: 0.7rem;
}

.announcement-art {
  position: relative;
  overflow: hidden;
}

.announcement-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}

.session-announcement-art {
  height: 100%;
  display: grid;
  position: relative;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(135deg, #dce9f8, #f7f3ea);
}

.session-orbit {
  position: absolute;
  width: 265px;
  height: 265px;
  border: 1px solid rgba(45, 95, 167, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(45, 95, 167, 0.055), 0 0 0 70px rgba(45, 95, 167, 0.035);
}

.session-portrait {
  position: relative;
  z-index: 1;
  width: 184px;
  height: 184px;
  overflow: hidden;
  border: 6px solid var(--paper);
  border-radius: 50%;
  box-shadow: 0 16px 38px rgba(6, 26, 51, 0.2);
}

.session-announcement-art .session-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 66% 34%;
}

.session-announcement-art > strong,
.session-announcement-art > small {
  position: absolute;
  z-index: 2;
  color: var(--paper);
  background: var(--brand-700);
  box-shadow: var(--shadow-sm);
}

.session-announcement-art > strong {
  top: 20px;
  right: 24px;
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
}

.session-announcement-art > small {
  right: 28px;
  bottom: 20px;
  max-width: 170px;
  padding: 8px 11px;
  border-radius: 8px;
  font-size: 0.65rem;
  font-weight: 700;
}

.book-announcement-art {
  height: 100%;
  display: grid;
  position: relative;
  place-items: center;
  padding: 14px 28px;
  overflow: hidden;
  color: var(--navy-900);
  background:
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.95) 0 24%, transparent 54%),
    linear-gradient(135deg, #e7d5ad, #fff9eb 58%, #e6c986);
}

.book-announcement-art::before,
.book-announcement-art::after {
  position: absolute;
  width: 170px;
  height: 170px;
  border: 1px solid rgba(183, 138, 61, 0.25);
  border-radius: 50%;
  content: "";
}

.book-announcement-art::before {
  top: -65px;
  left: -40px;
}

.book-announcement-art::after {
  right: -50px;
  bottom: -90px;
}

.book-cover-halo {
  position: absolute;
  width: 225px;
  height: 225px;
  border: 1px solid rgba(183, 138, 61, 0.31);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(255, 255, 255, 0.2), 0 0 0 64px rgba(183, 138, 61, 0.07);
}

.book-announcement-art > img {
  width: auto;
  height: 174px;
  position: relative;
  z-index: 1;
  object-fit: contain;
  box-shadow: 0 18px 34px rgba(46, 33, 11, 0.28);
}

.book-announcement-art i {
  position: absolute;
  top: 26px;
  right: 28px;
  padding: 7px 10px;
  color: var(--paper);
  background: var(--coral);
  border-radius: 3px;
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transform: rotate(4deg);
}

.live-announcement-art {
  height: 100%;
  display: grid;
  position: relative;
  place-items: center;
  color: var(--paper);
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.18), transparent 25%),
    linear-gradient(135deg, #a94038, var(--coral));
}

.live-announcement-art::before,
.live-announcement-art::after {
  position: absolute;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  content: "";
}

.live-announcement-art::after {
  width: 285px;
  height: 285px;
}

.live-announcement-art strong {
  position: absolute;
  top: 24px;
  left: 30px;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
}

.live-announcement-art i {
  position: relative;
  z-index: 1;
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  padding-left: 5px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  font-size: 1.35rem;
  font-style: normal;
}

.live-fact {
  display: grid;
  position: absolute;
  z-index: 2;
  width: 142px;
  min-width: 0;
  padding: 10px 13px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(6, 26, 51, 0.2);
  border-radius: 10px;
  backdrop-filter: blur(8px);
}

.live-fact b {
  font-size: 1rem;
}

.live-fact span {
  font-size: 0.6rem;
  line-height: 1.25;
}

.live-fact-one {
  bottom: 18px;
  left: 22px;
}

.live-fact-two {
  right: 22px;
  bottom: 18px;
}

.live-dot {
  position: absolute;
  top: 28px;
  right: 30px;
  width: 9px;
  height: 9px;
  background: var(--paper);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.15);
}

.carousel-controls {
  min-height: 53px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 4px 0;
}

.carousel-arrow,
.carousel-pause {
  width: 39px;
  height: 39px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.26);
  color: var(--paper);
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
}

.carousel-pause {
  font-size: 0.67rem;
}

.carousel-dots {
  display: flex;
  gap: 7px;
  margin-right: auto;
}

.carousel-dots button {
  width: 28px;
  height: 3px;
  padding: 0;
  border: 0;
  background: rgba(255, 255, 255, 0.28);
  border-radius: 2px;
  cursor: pointer;
  transition: width 160ms ease, background 160ms ease;
}

.carousel-dots button.is-active {
  width: 48px;
  background: var(--paper);
}

@keyframes slide-in {
  from { opacity: 0; transform: translateX(10px); }
  to { opacity: 1; transform: translateX(0); }
}

.route-section {
  padding-block: 76px;
  background: var(--paper);
}

.route-section .section-heading {
  margin-bottom: 32px;
}

.route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.route-card {
  min-height: 274px;
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  padding: 25px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  transition: background 180ms ease, transform 180ms ease;
}

.route-card:hover {
  z-index: 1;
  background: var(--brand-050);
  transform: translateY(-3px);
}

.route-card-top {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 17px;
}

.route-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 12px;
}

.route-icon svg {
  width: 21px;
  height: 21px;
}

.route-number {
  color: #a5aeb9;
  font-family: var(--serif);
  font-size: 1.15rem;
}

.route-kicker {
  margin-bottom: 21px;
  padding: 5px 9px;
  color: var(--brand-700);
  background: var(--brand-100);
  border-radius: 999px;
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.route-card h3 {
  max-width: 310px;
  margin-bottom: 13px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.52rem;
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.12;
}

.route-card p {
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 0.88rem;
}

.route-card strong {
  margin-top: auto;
  color: var(--navy-900);
  font-size: 0.84rem;
}

.route-coral .route-kicker { color: #923d34; background: var(--coral-soft); }
.route-gold .route-kicker { color: #7c5b23; background: var(--gold-soft); }
.route-violet .route-kicker { color: #58418e; background: var(--violet-soft); }
.route-green .route-kicker { color: #0d634f; background: var(--green-soft); }
.route-ink .route-kicker { color: var(--paper); background: var(--navy-900); }

.library-home {
  padding-block: 82px;
  overflow: hidden;
  color: var(--paper);
  background: var(--navy-900);
}

.library-layout {
  display: grid;
  grid-template-columns: minmax(270px, 0.62fr) minmax(0, 1.38fr);
  align-items: center;
  gap: clamp(42px, 6vw, 72px);
}

.library-intro h2 {
  margin-bottom: 22px;
  color: var(--paper);
  font-size: clamp(2.2rem, 3.4vw, 3.35rem);
}

.library-intro p {
  max-width: 480px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, 0.72);
}

.book-shelf {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
}

.book-card {
  min-height: 182px;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  color: var(--ink);
  background: var(--paper);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
}

.book-card:nth-child(2) {
  margin-top: 0;
}

.book-card img {
  width: 100%;
  height: 100%;
  padding: 10px;
  object-fit: contain;
  background: #eef2f6;
}

.book-card > div {
  min-width: 0;
  padding: 15px 14px 16px;
}

.book-card > div > span {
  display: block;
  margin-bottom: 7px;
  color: var(--brand-700);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.book-card h3 {
  margin-bottom: 9px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.02rem;
  font-weight: 550;
  line-height: 1.18;
}

.book-card p {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.5;
}

.mini-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 13px;
  padding-top: 13px;
  border-top: 1px solid var(--line);
}

.mini-links a {
  color: var(--brand-700);
  font-size: 0.7rem;
  font-weight: 800;
}

.practice-section {
  padding-block: 78px;
  background: var(--warm);
}

.practice-section .section-heading {
  margin-bottom: 31px;
}

.practice-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  gap: 22px;
}

.practice-card {
  position: relative;
  padding: clamp(30px, 3.5vw, 42px);
  border: 1px solid #ded8ca;
  background: rgba(255, 255, 255, 0.73);
}

.practice-private {
  color: var(--paper);
  background: var(--navy-950);
  border-color: var(--navy-950);
}

.practice-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 19px;
  color: var(--brand-700);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.practice-private .practice-label {
  color: #b6d3fb;
}

.practice-label > span {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.practice-label svg {
  width: 17px;
  height: 17px;
}

.practice-card h3 {
  max-width: 720px;
  margin-bottom: 17px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.85rem, 2.55vw, 2.65rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.practice-private h3 {
  color: var(--paper);
}

.practice-card > p {
  max-width: 730px;
  color: var(--muted);
}

.practice-private > p {
  color: rgba(255, 255, 255, 0.72);
}

.practice-card > small {
  display: inline-block;
  margin-left: 14px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.68rem;
}

.check-list {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 28px 0 31px;
  padding: 0;
  list-style: none;
}

.check-list li {
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.82);
  border-radius: 999px;
  font-size: 0.74rem;
}

.status-badge {
  position: absolute;
  top: 34px;
  right: 34px;
  padding: 7px 10px;
  color: #73531f;
  background: var(--gold-soft);
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.course-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 32px 0;
}

.course-facts div {
  padding-top: 12px;
  border-top: 1px solid #d2cabb;
}

.course-facts dt {
  color: var(--muted);
  font-size: 0.67rem;
}

.course-facts dd {
  margin: 3px 0 0;
  color: var(--navy-900);
  font-size: 0.84rem;
  font-weight: 800;
}

.video-section {
  background: var(--paper);
}

.video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
}

.video-card {
  border-bottom: 1px solid var(--line);
}

.video-image {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--navy-900);
  aspect-ratio: 16 / 9;
}

.video-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 260ms ease, opacity 260ms ease;
}

.video-image > span {
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  padding-left: 3px;
  color: var(--paper);
  background: rgba(6, 26, 51, 0.86);
  border-radius: 50%;
  box-shadow: var(--shadow-sm);
}

.video-image:hover img {
  opacity: 0.88;
  transform: scale(1.025);
}

.video-card > div {
  padding: 20px 0 24px;
}

.video-card > div > span {
  color: var(--brand-700);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.video-card h3 {
  margin: 8px 0 18px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1.15;
}

.video-card > div > a {
  color: var(--navy-900);
  font-size: 0.79rem;
  font-weight: 800;
}

.about-home {
  padding-block: 78px;
  background: var(--brand-050);
}

.about-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(42px, 6vw, 76px);
}

.about-visual {
  min-width: 0;
  position: relative;
  padding: 0 25px 30px 0;
}

.about-visual img {
  width: 100%;
  height: 330px;
  object-fit: cover;
  object-position: center 48%;
  border-radius: 3px;
  box-shadow: var(--shadow-lg);
}

.about-visual blockquote {
  max-width: 350px;
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 18px 21px;
  color: var(--paper);
  background: var(--brand-700);
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.35;
  box-shadow: var(--shadow-sm);
}

.about-quote {
  position: relative;
  padding: 52px 44px;
  color: var(--paper);
  background: var(--brand-700);
  box-shadow: 18px 18px 0 var(--brand-100);
}

.about-quote span {
  position: absolute;
  top: 12px;
  left: 26px;
  color: rgba(255, 255, 255, 0.28);
  font-family: var(--serif);
  font-size: 6rem;
  line-height: 1;
}

.about-quote p {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
}

.about-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(2.15rem, 3.3vw, 3.25rem);
}

.about-copy p {
  max-width: 650px;
  color: var(--muted);
}

.about-copy .button {
  margin-top: 12px;
}

.blog-home {
  padding-block: 78px;
  color: var(--paper);
  background: var(--navy-950);
}

.blog-home-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(50px, 8vw, 110px);
  align-items: center;
}

.blog-home h2 {
  margin-bottom: 22px;
  color: var(--paper);
  font-size: clamp(2.15rem, 3.3vw, 3.25rem);
}

.blog-home-grid > div:first-child > p {
  max-width: 530px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, 0.68);
}

.blog-topic-list {
  border-top: 1px solid rgba(255, 255, 255, 0.17);
}

.blog-topic-list a {
  display: grid;
  grid-template-columns: 42px 0.8fr 1.2fr;
  align-items: center;
  gap: 17px;
  padding: 19px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.17);
  transition: padding-left 170ms ease, background 170ms ease;
}

.blog-topic-list a:hover {
  padding-left: 12px;
  background: rgba(255, 255, 255, 0.035);
}

.blog-topic-list span {
  color: #8eafd9;
  font-family: var(--serif);
}

.blog-topic-list strong {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 500;
}

.blog-topic-list small {
  color: rgba(255, 255, 255, 0.56);
}

.community-home {
  padding-block: 78px;
  background: var(--paper);
}

.community-card {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--warm);
}

.community-copy {
  padding: clamp(34px, 4.5vw, 50px);
}

.community-copy h2 {
  margin-bottom: 19px;
  font-size: clamp(2.1rem, 3.25vw, 3.2rem);
}

.community-copy > p {
  max-width: 590px;
  color: var(--muted);
}

.newsletter-form {
  max-width: 640px;
  margin-top: 24px;
}

.newsletter-form > label {
  display: block;
  margin-bottom: 8px;
  color: var(--navy-900);
  font-size: 0.76rem;
  font-weight: 800;
}

.newsletter-form > div {
  display: flex;
  gap: 8px;
}

.newsletter-form input {
  min-width: 0;
  flex: 1;
  padding: 14px 17px;
  border: 1px solid #bdc8d5;
  background: var(--paper);
  border-radius: 999px;
}

.newsletter-form > small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 0.68rem;
}

.form-message {
  min-height: 1.5em;
  margin: 10px 0 0;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 700;
}

.community-links {
  display: grid;
  background: var(--navy-900);
}

.community-links a {
  display: grid;
  grid-template-columns: 110px 1fr 28px;
  align-items: center;
  gap: 12px;
  padding: 21px 27px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
  color: var(--paper);
}

.community-links a:last-child {
  border-bottom: 0;
}

.community-links a:hover {
  background: rgba(255, 255, 255, 0.06);
}

.community-links span {
  color: #9fc3f4;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.community-links strong {
  font-family: var(--serif);
  font-size: 1.12rem;
  font-weight: 500;
}

.community-links i {
  font-style: normal;
  transition: transform 160ms ease;
}

.community-links a:hover i {
  transform: translateX(4px);
}

.contact-strip {
  padding: 46px 0;
  border-top: 1px solid var(--line);
  background: var(--brand-050);
}

.contact-strip-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.contact-strip h2 {
  font-size: clamp(1.85rem, 2.7vw, 2.65rem);
}

.contact-strip-copy {
  display: flex;
  align-items: center;
  gap: 18px;
}

.contact-strip-copy .eyebrow {
  margin-bottom: 7px;
}

.contact-strip-icon {
  width: 54px;
  height: 54px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--brand-700);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

.contact-strip-icon svg {
  width: 25px;
  height: 25px;
}

.site-footer {
  color: rgba(255, 255, 255, 0.7);
  background: var(--navy-950);
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(280px, 1.6fr) repeat(3, minmax(140px, 0.8fr));
  gap: 45px;
  padding-top: 58px;
  padding-bottom: 48px;
}

.brand-footer {
  color: var(--paper);
}

.brand-footer small {
  color: rgba(255, 255, 255, 0.56);
}

.footer-brand p {
  max-width: 390px;
  margin: 23px 0 0;
  font-size: 0.82rem;
}

.footer-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}

.footer-column h2 {
  margin-bottom: 8px;
  color: var(--paper);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-column a {
  font-size: 0.79rem;
}

.footer-column a:hover {
  color: var(--paper);
}

.footer-newsletter > p {
  max-width: 240px;
  margin: 0 0 5px;
  font-size: 0.74rem;
  line-height: 1.5;
}

.footer-newsletter-form {
  width: 100%;
  max-width: 255px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
}

.footer-newsletter-form input,
.footer-newsletter-form button {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  font-size: 0.72rem;
}

.footer-newsletter-form input {
  color: var(--ink);
  background: var(--paper);
}

.footer-newsletter-form button {
  color: var(--paper);
  background: var(--brand-700);
  cursor: pointer;
}

.footer-newsletter-form .form-message {
  grid-column: 1 / -1;
  margin: 0;
  color: #b9d8c9;
  font-size: 0.67rem;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding-top: 22px;
  padding-bottom: 25px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
  font-size: 0.69rem;
}

.footer-bottom p {
  margin: 0;
}

.section-preview {
  min-height: 68vh;
  padding: 90px 0 110px;
  background: linear-gradient(180deg, var(--brand-050), var(--paper) 54%);
}

.section-preview-head {
  max-width: 830px;
  margin-bottom: 50px;
}

.section-preview h1 {
  margin-bottom: 22px;
  font-size: clamp(3rem, 6vw, 6rem);
}

.section-preview-head > p {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.05rem;
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.preview-item {
  min-height: 190px;
  padding: 27px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.75);
}

.preview-item span {
  color: var(--brand-700);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.preview-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.preview-icon {
  width: 33px;
  height: 33px;
  padding: 7px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 10px;
}

.preview-item h2 {
  margin: 18px 0 10px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.12;
}

.preview-item p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.preview-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-top: 34px;
  padding: 24px 28px;
  color: var(--paper);
  background: var(--navy-900);
}

.preview-note p {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, 0.73);
  font-size: 0.82rem;
}

.detail-hero {
  padding: 82px 0;
  color: var(--paper);
  background:
    radial-gradient(circle at 85% 12%, rgba(89, 147, 220, 0.25), transparent 31%),
    var(--navy-950);
}

.detail-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.72fr);
  align-items: center;
  gap: clamp(45px, 8vw, 105px);
}

.detail-hero-copy h1 {
  max-width: 780px;
  margin-bottom: 22px;
  font-family: var(--serif);
  font-size: clamp(2.7rem, 4.7vw, 4.9rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.detail-hero-copy > p {
  max-width: 710px;
  margin-bottom: 27px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 1.02rem;
}

.detail-hero-copy > p strong {
  color: var(--paper);
}

.detail-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 29px;
}

.detail-facts span {
  padding: 7px 11px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.74rem;
  font-weight: 700;
}

.session-promise-card {
  padding: 34px;
  color: var(--ink);
  background: var(--paper);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

.promise-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: 21px;
  color: var(--brand-700);
  background: var(--brand-100);
  border-radius: 16px;
}

.promise-icon svg {
  width: 25px;
  height: 25px;
}

.session-promise-card h2 {
  margin-bottom: 14px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.08;
}

.session-promise-card p {
  color: var(--muted);
  font-size: 0.88rem;
}

.session-promise-card small {
  display: block;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: #788391;
  font-size: 0.67rem;
}

.experience-section {
  background: var(--paper);
}

.experience-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  position: relative;
  gap: 15px;
}

.experience-flow::before {
  position: absolute;
  z-index: 0;
  top: 59px;
  right: 10%;
  left: 10%;
  height: 2px;
  background: var(--brand-100);
  content: "";
}

.experience-flow article {
  min-height: 260px;
  position: relative;
  z-index: 1;
  padding: 25px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow-sm);
}

.experience-flow article > span {
  position: absolute;
  top: 21px;
  right: 22px;
  color: #98a6b7;
  font-family: var(--serif);
}

.experience-flow article > svg {
  width: 42px;
  height: 42px;
  padding: 9px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 13px;
}

.experience-flow h3 {
  margin: 30px 0 10px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 500;
}

.experience-flow p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.session-topics-section {
  color: var(--paper);
  background: var(--navy-900);
}

.detail-two-column {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(45px, 8vw, 105px);
}

.detail-two-column h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.2rem, 3.8vw, 3.75rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.topic-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.17);
}

.topic-list li {
  padding: 18px 14px 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.17);
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.88rem;
}

.pricing-section {
  background: var(--warm);
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.pricing-grid article {
  padding: 31px;
  border: 1px solid #dcd4c5;
  background: rgba(255, 255, 255, 0.76);
}

.pricing-grid article > span {
  color: var(--brand-700);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pricing-grid strong {
  display: block;
  margin: 18px 0 13px;
  color: var(--navy-950);
  font-size: 0.83rem;
}

.pricing-grid strong b {
  font-family: var(--serif);
  font-size: 2.15rem;
  font-weight: 500;
}

.pricing-grid p {
  margin: 0;
  color: var(--muted);
}

.pricing-featured {
  color: var(--paper);
  background: var(--navy-950) !important;
  border-color: var(--navy-950) !important;
}

.pricing-featured strong,
.pricing-featured strong b {
  color: var(--paper);
}

.pricing-featured p {
  color: rgba(255, 255, 255, 0.68);
}

.pricing-featured > span {
  color: #a9cbfa !important;
}

.booking-preview {
  display: grid;
  grid-template-columns: 45px 1fr auto;
  align-items: center;
  gap: 18px;
  margin-top: 22px;
  padding: 21px 24px;
  border: 1px solid #dcd4c5;
  background: var(--paper);
}

.booking-preview > svg {
  width: 45px;
  height: 45px;
  padding: 10px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 13px;
}

.booking-preview p {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 0.8rem;
}

.status-badge-inline {
  padding: 7px 10px;
  color: #73531f;
  background: var(--gold-soft);
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.booking-policy {
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
}

.character-book-art {
  min-height: 430px;
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  overflow: hidden;
  color: var(--navy-950);
  background: linear-gradient(180deg, #1fa0b8 0 42%, #2f89c7 42% 100%);
  box-shadow: var(--shadow-lg);
}

.character-book-art::before {
  position: absolute;
  width: 250px;
  height: 250px;
  right: -100px;
  bottom: -105px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  content: "";
}

.character-book-number {
  font-family: var(--serif);
  font-size: 6.7rem;
  letter-spacing: -0.08em;
  line-height: 0.75;
}

.character-book-label {
  margin-top: 15px;
  font-size: 1.1rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.character-cards {
  height: 105px;
  position: relative;
  width: 140px;
  margin: 28px 0 20px;
}

.character-cards i {
  width: 78px;
  height: 96px;
  display: grid;
  position: absolute;
  bottom: 0;
  place-items: center;
  border: 2px solid var(--navy-950);
  background: var(--paper);
  border-radius: 7px;
  font-family: var(--serif);
  font-size: 2.5rem;
  font-style: normal;
  font-weight: 700;
  transform-origin: bottom center;
}

.character-cards i:nth-child(1) { left: 0; transform: rotate(-20deg); }
.character-cards i:nth-child(2) { left: 19px; transform: rotate(-8deg); }
.character-cards i:nth-child(3) { left: 41px; transform: rotate(6deg); }
.character-cards i:nth-child(4) { right: 0; transform: rotate(15deg); }

.character-book-art > strong {
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.light-detail h2 {
  color: var(--navy-950);
}

.light-detail > div:first-child > p {
  max-width: 500px;
  margin-top: 22px;
  color: var(--muted);
}

.book-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.book-feature-grid article {
  padding: 22px;
  border: 1px solid var(--line);
  background: var(--paper);
}

.book-feature-grid svg {
  width: 35px;
  height: 35px;
  padding: 7px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 10px;
}

.book-feature-grid h3 {
  margin: 23px 0 9px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 500;
}

.book-feature-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.book-buy-section {
  padding-top: 0;
  background: var(--paper);
}

.buy-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  padding: 38px 42px;
  color: var(--paper);
  background: var(--navy-900);
}

.buy-card h2 {
  margin: 0 0 8px;
  font-family: var(--serif);
  font-size: 2.25rem;
  font-weight: 500;
}

.buy-card p {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.84rem;
}

.live-fact b svg {
  width: 18px;
  height: 18px;
}

/* Homepage density pass approved for Fase 2. */
.home-page .section {
  padding-block: 62px;
}

.home-page .hero-home {
  padding-block: 58px 51px;
}

.home-page .hero-home-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(430px, 0.92fr);
  gap: clamp(36px, 4.3vw, 58px);
}

.home-page .hero-intro h1 {
  font-size: clamp(2.32rem, 3.35vw, 3.5rem);
}

.home-page .hero-lead {
  margin-bottom: 24px;
}

.home-page .hero-intro .button-row {
  flex-wrap: nowrap;
  gap: 8px;
}

.home-page .hero-intro .button {
  min-height: 44px;
  padding: 10px 14px;
  font-size: 0.78rem;
  white-space: nowrap;
}

.home-page .hero-signature {
  margin-top: 25px;
  padding-top: 19px;
}

.home-page .section-heading h2,
.home-page .library-intro h2,
.home-page .about-copy h2,
.home-page .blog-home h2,
.home-page .community-copy h2 {
  font-size: clamp(1.9rem, 2.8vw, 2.65rem);
}

.home-page .section-heading {
  margin-bottom: 29px;
}

.home-page .route-card {
  min-height: 238px;
  padding: 21px;
}

.home-page .route-card-top {
  margin-bottom: 13px;
}

.home-page .route-kicker {
  margin-bottom: 15px;
}

.home-page .route-card h3 {
  font-size: 1.37rem;
}

.home-page .route-card p {
  margin-bottom: 17px;
  font-size: 0.82rem;
}

.home-page .practice-card {
  padding: clamp(25px, 3vw, 34px);
}

.home-page .practice-card h3 {
  font-size: clamp(1.65rem, 2.25vw, 2.25rem);
}

.home-page .check-list,
.home-page .course-facts {
  margin-block: 22px;
}

.home-page .video-card h3 {
  font-size: 1.4rem;
}

.home-page .about-visual img {
  height: 300px;
}

.home-page .community-copy {
  padding: clamp(30px, 4vw, 42px);
}

.home-page .community-links a {
  padding-block: 18px;
}

.book-cover-stage {
  min-height: 430px;
  display: grid;
  position: relative;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.18) 0 20%, transparent 21%),
    linear-gradient(145deg, #087f9b, #48acc7 48%, #1768a1);
  box-shadow: var(--shadow-lg);
}

.book-cover-stage::before,
.book-cover-stage::after {
  width: 360px;
  height: 360px;
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  content: "";
}

.book-cover-stage::before {
  top: -205px;
  left: -115px;
}

.book-cover-stage::after {
  right: -165px;
  bottom: -230px;
}

.book-cover-stage img {
  width: auto;
  height: 350px;
  position: relative;
  z-index: 1;
  object-fit: contain;
  box-shadow: 0 24px 52px rgba(6, 26, 51, 0.32);
}

/* Fase 2 main pages */
.phase-page .section {
  padding-block: 68px;
}

.phase-page .section-heading {
  margin-bottom: 32px;
}

.phase-page .section-heading h2,
.phase-page .phase-split-heading h2,
.phase-page .quiet-card h2,
.phase-page .live-community h2,
.phase-page .newsletter-community h2,
.phase-page .membership-section h2,
.phase-page .support-community h2,
.phase-page .member-video-section h2 {
  margin-bottom: 0;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.95rem, 3vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.phase-hero {
  position: relative;
  overflow: hidden;
  padding: 68px 0;
  color: var(--paper);
  background:
    radial-gradient(circle at 88% 13%, rgba(89, 147, 220, 0.28), transparent 28%),
    radial-gradient(circle at 7% 115%, rgba(22, 115, 95, 0.19), transparent 28%),
    var(--navy-950);
}

.phase-hero::before {
  width: 520px;
  height: 520px;
  position: absolute;
  top: -320px;
  right: 16%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  box-shadow: 0 0 0 80px rgba(255, 255, 255, 0.018), 0 0 0 160px rgba(255, 255, 255, 0.012);
  content: "";
}

.phase-hero-grid {
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr);
  align-items: center;
  gap: clamp(42px, 7vw, 92px);
}

.phase-hero-grid-simple {
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.64fr);
}

.phase-hero-copy h1 {
  max-width: 850px;
  margin-bottom: 21px;
  font-family: var(--serif);
  font-size: clamp(2.55rem, 4.2vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.99;
}

.phase-hero-copy > p {
  max-width: 690px;
  margin-bottom: 27px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 1.02rem;
}

.phase-split-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(310px, 0.72fr);
  align-items: start;
  gap: clamp(42px, 7vw, 88px);
  margin-bottom: 34px;
}

.phase-split-heading > p,
.phase-split-heading .prose-column,
.prose-column p {
  color: var(--muted);
}

.prose-column p:last-child {
  margin-bottom: 0;
}

.quiet-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 0.72fr);
  align-items: center;
  gap: 55px;
  padding: 34px 38px;
  border: 1px solid var(--line);
  background: var(--brand-050);
}

.quiet-card p {
  color: var(--muted);
}

.about-profile-figure {
  max-width: 370px;
  position: relative;
  justify-self: end;
  margin: 0;
  padding: 0 18px 18px 0;
}

.about-profile-figure::after {
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 0;
  width: calc(100% - 18px);
  height: calc(100% - 18px);
  background: var(--brand-700);
  content: "";
}

.about-profile-figure img {
  width: 100%;
  height: 430px;
  object-fit: cover;
  object-position: center 28%;
}

.about-profile-figure figcaption {
  position: absolute;
  right: 0;
  bottom: 18px;
  left: 22px;
  display: grid;
  padding: 14px 17px;
  color: var(--navy-950);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-sm);
}

.about-profile-figure figcaption strong {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 600;
}

.about-profile-figure figcaption span {
  color: var(--muted);
  font-size: 0.7rem;
}

.phase-intro-section {
  background: var(--paper);
}

.timeline-section {
  background: var(--warm);
}

.story-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-top: 1px solid #d8cfbe;
  border-left: 1px solid #d8cfbe;
  list-style: none;
}

.story-timeline li {
  min-height: 215px;
  padding: 24px;
  border-right: 1px solid #d8cfbe;
  border-bottom: 1px solid #d8cfbe;
  background: rgba(255, 255, 255, 0.55);
}

.story-timeline li > span {
  color: var(--brand-700);
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.story-timeline h3 {
  margin: 33px 0 10px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.38rem;
  font-weight: 500;
  line-height: 1.12;
}

.story-timeline p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.teaching-section,
.guided-learning,
.playlist-depth,
.membership-section {
  color: var(--paper);
  background: var(--navy-900);
}

.teaching-section .section-heading h2,
.guided-learning .section-heading h2,
.playlist-depth .section-heading h2,
.membership-section h2 {
  color: var(--paper);
}

.teaching-section .split-heading > p,
.guided-learning .split-heading > p,
.playlist-depth .split-heading > p {
  color: rgba(255, 255, 255, 0.68);
}

.principle-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.17);
  border-left: 1px solid rgba(255, 255, 255, 0.17);
}

.principle-grid article {
  padding: 27px;
  border-right: 1px solid rgba(255, 255, 255, 0.17);
  border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}

.principle-grid svg {
  width: 38px;
  height: 38px;
  padding: 8px;
  color: #b8d5fa;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

.principle-grid h3 {
  margin: 24px 0 9px;
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 500;
}

.principle-grid p {
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82rem;
}

.profile-section {
  background: var(--brand-050);
}

.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.62fr);
  gap: clamp(45px, 8vw, 105px);
}

.profile-layout h2 {
  margin-bottom: 20px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.95rem, 3vw, 2.85rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.profile-layout p {
  color: var(--muted);
}

.profile-notes {
  border-top: 1px solid #c8d5e5;
}

.profile-notes div {
  display: grid;
  grid-template-columns: 95px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #c8d5e5;
}

.profile-notes span {
  color: var(--brand-700);
  font-size: 0.67rem;
  font-weight: 800;
  text-transform: uppercase;
}

.profile-notes strong {
  color: var(--navy-900);
  font-size: 0.82rem;
}

.testimony-placeholder {
  background: var(--paper);
}

.phase-cta {
  padding: 52px 0;
  color: var(--paper);
  background: var(--navy-950);
}

.phase-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 44px;
}

.phase-cta h2 {
  max-width: 720px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.85rem, 2.9vw, 2.75rem);
  font-weight: 500;
  line-height: 1.05;
}

.route-jump-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.route-jump-nav > span {
  grid-column: 1 / -1;
  padding: 11px 14px;
  color: #a9cbfa;
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.route-jump-nav a {
  padding: 11px 14px;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.77rem;
}

.route-jump-nav a:hover {
  color: var(--paper);
  background: rgba(255, 255, 255, 0.07);
}

.learning-routes {
  background: var(--paper);
}

.learning-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.learning-route {
  min-height: 300px;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 19px;
  padding: 27px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 105px;
}

.learning-route-id {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 13px;
  color: var(--brand-700);
}

.learning-route-id span {
  font-family: var(--serif);
  font-size: 1.2rem;
}

.learning-route-id svg {
  width: 38px;
  height: 38px;
  padding: 8px;
  background: var(--brand-050);
  border-radius: 11px;
}

.learning-route .route-kicker {
  display: inline-block;
  margin-bottom: 12px;
}

.learning-route h3 {
  margin-bottom: 12px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1.1;
}

.learning-route p {
  margin-bottom: 19px;
  color: var(--muted);
  font-size: 0.83rem;
}

.resource-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 15px;
}

.resource-links a {
  color: var(--brand-700);
  font-size: 0.76rem;
  font-weight: 800;
}

.guided-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.17);
  border-left: 1px solid rgba(255, 255, 255, 0.17);
}

.guided-grid > article {
  position: relative;
  padding: 30px;
  border-right: 1px solid rgba(255, 255, 255, 0.17);
  border-bottom: 1px solid rgba(255, 255, 255, 0.17);
  scroll-margin-top: 105px;
}

.guided-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: #b8d5fa;
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.guided-label svg {
  width: 32px;
  height: 32px;
  padding: 7px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.guided-grid h3 {
  margin-bottom: 14px;
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.08;
}

.guided-grid p {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.86rem;
}

.guided-grid dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 25px 0 27px;
}

.guided-grid dl div {
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.guided-grid dt {
  color: rgba(255, 255, 255, 0.52);
  font-size: 0.64rem;
}

.guided-grid dd {
  margin: 3px 0 0;
  color: var(--paper);
  font-size: 0.78rem;
  font-weight: 750;
}

.guided-grid .status-badge-inline {
  position: absolute;
  top: 30px;
  right: 30px;
}

.light-link {
  color: #b8d5fa;
}

.choose-help {
  background: var(--warm);
}

.video-hero-map {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  transform: rotate(-2deg);
}

.video-hero-map > span {
  min-height: 110px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-family: var(--serif);
  font-size: 2.25rem;
}

.video-hero-map small {
  color: rgba(255, 255, 255, 0.58);
  font-family: var(--sans);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.playlist-section {
  background: var(--paper);
}

.playlist-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.playlist-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.playlist-card {
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
}

.playlist-card > div {
  padding: 19px 20px 22px;
}

.playlist-card > div > span {
  color: var(--brand-700);
  font-size: 0.64rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.playlist-card h3 {
  margin: 9px 0 11px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.12;
}

.playlist-grid-four .playlist-card h3 {
  min-height: 2.2em;
  font-size: 1.22rem;
}

.playlist-card p {
  color: var(--muted);
  font-size: 0.78rem;
}

.playlist-card > div > a {
  color: var(--brand-700);
  font-size: 0.75rem;
  font-weight: 800;
}

.playlist-depth .playlist-card {
  border-color: rgba(255, 255, 255, 0.15);
}

.member-video-section {
  background: var(--warm);
}

.member-video-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.6fr);
  align-items: center;
  gap: clamp(35px, 6vw, 75px);
}

.member-video-card {
  display: grid;
  grid-template-columns: minmax(230px, 0.86fr) minmax(0, 1.14fr);
  color: var(--paper);
  background: var(--navy-950);
}

.member-video-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.member-video-card > div {
  padding: 31px;
}

.member-video-card h2 {
  color: var(--paper);
  font-size: 2rem;
}

.member-video-card p {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82rem;
}

.member-video-layout aside h2 {
  margin: 0 0 15px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.08;
}

.member-video-layout aside p {
  color: var(--muted);
  font-size: 0.83rem;
}

.community-hero-links {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.community-hero-links a {
  display: grid;
  grid-template-columns: 82px 1fr 18px;
  gap: 13px;
  align-items: center;
  padding: 16px 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.community-hero-links a:hover {
  padding-left: 10px;
}

.community-hero-links span {
  color: #a9cbfa;
  font-size: 0.65rem;
  font-weight: 850;
  text-transform: uppercase;
}

.community-hero-links strong {
  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 500;
}

.community-hero-links i {
  font-style: normal;
}

.live-community {
  background: var(--paper);
}

.live-community-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(390px, 0.75fr);
  align-items: center;
  gap: clamp(48px, 8vw, 105px);
}

.live-community-grid > div:first-child > p {
  max-width: 650px;
  color: var(--muted);
}

.live-community-grid .button {
  margin-top: 8px;
}

.live-facts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.live-facts-grid article {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--brand-050);
}

.live-facts-grid strong {
  color: var(--brand-700);
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 500;
}

.live-facts-grid span {
  color: var(--muted);
  font-size: 0.72rem;
}

.newsletter-community {
  background: var(--warm);
}

.newsletter-community-card {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.65fr);
  gap: clamp(42px, 8vw, 100px);
  padding: clamp(34px, 5vw, 58px);
  color: var(--paper);
  background: var(--navy-950);
}

.newsletter-community h2 {
  color: var(--paper);
}

.newsletter-community-card > div > p {
  color: rgba(255, 255, 255, 0.68);
}

.newsletter-form-dark label,
.newsletter-form-dark small {
  color: rgba(255, 255, 255, 0.72);
}

.newsletter-content-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.17);
  list-style: none;
}

.newsletter-content-list li {
  display: grid;
  grid-template-columns: 35px 1fr;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}

.newsletter-content-list span {
  color: #89b5eb;
  font-family: var(--serif);
}

.newsletter-content-list strong {
  font-size: 0.8rem;
  font-weight: 650;
}

.channels-section {
  background: var(--paper);
}

.channel-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.channel-grid a {
  min-height: 155px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: space-between;
  gap: 15px;
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.channel-grid a:hover {
  background: var(--brand-050);
}

.channel-grid span {
  color: var(--brand-700);
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.channel-grid strong {
  grid-column: 1 / -1;
  font-family: var(--serif);
  font-size: 1.22rem;
  font-weight: 500;
}

.channel-grid i {
  color: var(--brand-700);
  font-style: normal;
}

.membership-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);
  align-items: center;
  gap: clamp(45px, 8vw, 105px);
}

.membership-layout > div:first-child > p {
  max-width: 690px;
  color: rgba(255, 255, 255, 0.68);
}

.membership-series {
  display: grid;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
}

.membership-series span {
  color: #a9cbfa;
  font-size: 0.65rem;
  font-weight: 850;
  text-transform: uppercase;
}

.membership-series strong {
  margin: 24px 0;
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 500;
}

.membership-series a {
  color: #b8d5fa;
  font-size: 0.76rem;
  font-weight: 800;
}

.support-community {
  background: var(--brand-050);
}

.support-community-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 0.55fr);
  align-items: center;
  gap: clamp(45px, 8vw, 105px);
}

.support-heart {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  color: var(--coral);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 50%;
}

.support-heart svg {
  width: 23px;
  height: 23px;
}

.support-community-grid > div:first-child > p {
  max-width: 680px;
  color: var(--muted);
}

.support-community aside {
  padding: 28px;
  color: var(--paper);
  background: var(--navy-900);
}

.support-community aside > span {
  color: #a9cbfa;
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.support-community aside ul {
  margin: 20px 0 0;
  padding-left: 19px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
}

.support-community aside li + li {
  margin-top: 11px;
}

.community-news {
  background: var(--paper);
}

.catalog-book-stage {
  min-height: 430px;
  display: grid;
  position: relative;
  place-items: center;
  overflow: hidden;
  padding: 34px;
  background:
    radial-gradient(circle at 50% 45%, rgba(255, 255, 255, 0.95) 0 23%, transparent 52%),
    linear-gradient(145deg, #dce8f7, #f7f3ea 58%, #c9d9ed);
  box-shadow: var(--shadow-lg);
}

.catalog-book-stage::before {
  width: 330px;
  height: 330px;
  position: absolute;
  border: 1px solid rgba(45, 95, 167, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 50px rgba(45, 95, 167, 0.045);
  content: "";
}

.catalog-book-stage img {
  width: auto;
  height: 350px;
  position: relative;
  z-index: 1;
  object-fit: contain;
  box-shadow: 0 24px 50px rgba(6, 26, 51, 0.27);
}

.catalog-book-links {
  padding-top: 0;
  background: var(--paper);
}

@media (max-width: 1080px) {
  .main-nav {
    gap: 14px;
    font-size: 0.83rem;
  }

  .main-nav .shop-link {
    padding-inline: 12px;
  }

  .hero-home-grid {
    grid-template-columns: 1fr 420px;
    gap: 36px;
  }

  .brand small {
    max-width: none;
    white-space: nowrap;
  }

  .home-page .hero-intro .button {
    padding-inline: 11px;
    font-size: 0.72rem;
  }

  .book-shelf {
    gap: 12px;
  }

  .book-card > div {
    padding-inline: 13px;
  }

  .playlist-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .channel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  .container {
    width: min(100% - 38px, var(--max-width));
  }

  .utility-bar {
    display: none;
  }

  .nav-shell {
    min-height: 72px;
  }

  .nav-toggle {
    display: inline-flex;
  }

  .main-nav {
    position: absolute;
    z-index: 90;
    top: 100%;
    right: 0;
    left: 0;
    min-height: calc(100vh - 72px);
    max-height: calc(100vh - 72px);
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 20px;
    overflow-y: auto;
    background: var(--paper);
  }

  .main-nav.is-open {
    display: flex;
  }

  .main-nav > a {
    padding: 17px 7px;
    border-bottom: 1px solid var(--line);
    font-family: var(--serif);
    font-size: 1.65rem;
    font-weight: 500;
  }

  .main-nav > a::after {
    display: none;
  }

  .main-nav .shop-link {
    margin: 20px 0 0;
    padding: 15px 18px;
    text-align: center;
    border-radius: 999px;
    font-family: var(--sans);
    font-size: 0.95rem;
    font-weight: 800;
  }

  .hero-home {
    padding-top: 70px;
  }

  .hero-home-grid,
  .library-layout,
  .about-home-grid,
  .blog-home-grid {
    grid-template-columns: 1fr;
  }

  .hero-home-grid {
    gap: 58px;
  }

  .brand small {
    white-space: nowrap;
  }

  .announcement-carousel {
    max-width: 680px;
    margin-inline: auto;
  }

  .announcement-slide {
    min-height: 460px;
    grid-template-columns: 1.1fr 0.9fr;
    grid-template-rows: 1fr;
  }

  .hero-intro h1 {
    max-width: 760px;
    font-size: clamp(2.8rem, 7vw, 4rem);
  }

  .announcement-art {
    min-height: 100%;
  }

  .book-announcement-art > img {
    height: 285px;
  }

  .session-portrait {
    width: 218px;
    height: 218px;
  }

  .book-announcement-art i {
    top: 20px;
    right: 18px;
  }

  .live-fact {
    width: calc(50% - 20px);
    padding: 9px;
  }

  .live-fact-one {
    left: 9px;
  }

  .live-fact-two {
    right: 9px;
  }

  .live-fact span {
    font-size: 0.56rem;
  }

  .split-heading {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .route-grid,
  .video-grid,
  .preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .library-intro {
    max-width: 720px;
  }

  .book-shelf {
    max-width: 900px;
  }

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

  .about-quote {
    max-width: 640px;
  }

  .about-visual {
    max-width: 720px;
  }

  .community-card {
    grid-template-columns: 1fr;
  }

  .community-links {
    min-height: 360px;
  }

  .footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-hero-grid,
  .detail-two-column {
    grid-template-columns: 1fr;
  }

  .session-promise-card,
  .character-book-art {
    max-width: 650px;
  }

  .experience-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .experience-flow::before {
    display: none;
  }

  .book-feature-grid {
    grid-template-columns: 1fr;
  }

  .phase-hero-grid,
  .phase-hero-grid-simple,
  .phase-split-heading,
  .profile-layout,
  .member-video-layout,
  .live-community-grid,
  .newsletter-community-card,
  .membership-layout,
  .support-community-grid,
  .quiet-card {
    grid-template-columns: 1fr;
  }

  .phase-hero-grid {
    gap: 44px;
  }

  .about-profile-figure {
    width: min(100%, 480px);
    max-width: none;
    justify-self: start;
  }

  .about-profile-figure img {
    height: 520px;
  }

  .story-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-notes {
    max-width: 650px;
  }

  .learning-route-list {
    grid-template-columns: 1fr;
  }

  .learning-route {
    min-height: 0;
  }

  .playlist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .member-video-card {
    max-width: 780px;
  }

  .live-facts-grid,
  .membership-series,
  .support-community aside {
    max-width: 650px;
  }
}

@media (max-width: 640px) {
  .container {
    width: min(100% - 28px, var(--max-width));
  }

  .brand img {
    width: 43px;
    height: 43px;
    border-radius: 10px;
  }

  .brand small {
    display: block;
    max-width: 145px;
    font-size: 0.59rem;
    line-height: 1.15;
    white-space: normal;
  }

  .section {
    padding: 75px 0;
  }

  .hero-home {
    padding: 58px 0 54px;
  }

  .hero-intro h1 {
    font-size: clamp(2.45rem, 10.5vw, 3.25rem);
  }

  .hero-lead {
    font-size: 0.97rem;
  }

  .hero-intro .button-row .button {
    width: 100%;
  }

  .announcement-slide {
    min-height: 610px;
    grid-template-columns: 1fr;
    grid-template-rows: auto 230px;
  }

  .announcement-copy {
    padding: 31px 27px 25px;
  }

  .announcement-slide h2 {
    font-size: 2.4rem;
  }

  .book-announcement-art > img {
    height: 205px;
  }

  .session-portrait {
    width: 176px;
    height: 176px;
  }

  .home-page .section {
    padding-block: 52px;
  }

  .home-page .hero-home {
    padding-block: 49px 45px;
  }

  .home-page .hero-intro .button-row {
    flex-wrap: wrap;
  }

  .carousel-controls {
    justify-content: space-between;
  }

  .carousel-dots {
    margin-right: 0;
  }

  .carousel-pause {
    display: none;
  }

  .route-grid,
  .video-grid,
  .preview-grid {
    grid-template-columns: 1fr;
  }

  .route-card {
    min-height: 255px;
  }

  .book-shelf {
    grid-template-columns: 1fr;
  }

  .book-card {
    min-height: 170px;
    grid-template-columns: 108px minmax(0, 1fr);
  }

  .book-card:nth-child(2) {
    margin-top: 0;
  }

  .practice-card {
    padding: 31px 25px;
  }

  .practice-card h3 {
    font-size: 2.05rem;
  }

  .practice-card > small {
    display: block;
    margin: 13px 0 0;
  }

  .status-badge {
    position: static;
    display: inline-block;
    margin: 0 0 19px;
  }

  .course-facts {
    grid-template-columns: 1fr;
  }

  .about-visual {
    padding: 0 13px 23px 0;
  }

  .about-visual img {
    height: 270px;
  }

  .about-visual blockquote {
    max-width: 280px;
    padding: 14px 16px;
    font-size: 0.92rem;
  }

  .blog-topic-list a {
    grid-template-columns: 33px 1fr;
  }

  .blog-topic-list small {
    grid-column: 2;
  }

  .newsletter-form > div {
    flex-direction: column;
  }

  .newsletter-form .button {
    width: 100%;
  }

  .community-links a {
    grid-template-columns: 1fr 28px;
    padding: 23px;
  }

  .community-links span {
    grid-column: 1 / -1;
  }

  .contact-strip-inner,
  .preview-note {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-strip-copy {
    align-items: flex-start;
  }

  .contact-strip .button-row,
  .contact-strip .button {
    width: 100%;
  }

  .footer-main {
    grid-template-columns: 1fr;
  }

  .footer-newsletter-form {
    max-width: 340px;
  }

  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .section-preview {
    padding-top: 68px;
  }

  .detail-hero {
    padding: 60px 0;
  }

  .detail-hero-copy h1 {
    font-size: clamp(2.45rem, 11vw, 3.25rem);
  }

  .session-promise-card {
    padding: 27px 24px;
  }

  .experience-flow,
  .pricing-grid,
  .topic-list {
    grid-template-columns: 1fr;
  }

  .experience-flow article {
    min-height: 230px;
  }

  .booking-preview {
    grid-template-columns: 42px 1fr;
  }

  .booking-preview .status-badge-inline {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .character-book-art,
  .book-cover-stage,
  .catalog-book-stage {
    min-height: 385px;
  }

  .book-cover-stage img,
  .catalog-book-stage img {
    height: 310px;
  }

  .buy-card {
    align-items: flex-start;
    flex-direction: column;
    padding: 30px 25px;
  }

  .buy-card .button-row,
  .buy-card .button {
    width: 100%;
  }

  .phase-page .section {
    padding-block: 54px;
  }

  .phase-hero {
    padding-block: 54px;
  }

  .phase-hero-copy h1 {
    font-size: clamp(2.35rem, 10vw, 3.05rem);
  }

  .phase-hero-copy .button-row,
  .phase-hero-copy .button,
  .phase-cta .button-row,
  .phase-cta .button {
    width: 100%;
  }

  .phase-split-heading {
    gap: 22px;
  }

  .about-profile-figure {
    padding-right: 12px;
    padding-bottom: 12px;
  }

  .about-profile-figure img {
    height: 390px;
  }

  .story-timeline,
  .principle-grid,
  .guided-grid,
  .playlist-grid,
  .playlist-grid-four,
  .channel-grid {
    grid-template-columns: 1fr;
  }

  .story-timeline li {
    min-height: 180px;
  }

  .profile-notes div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .quiet-card {
    gap: 23px;
    padding: 28px 24px;
  }

  .phase-cta-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .route-jump-nav {
    grid-template-columns: 1fr;
  }

  .learning-route {
    grid-template-columns: 40px 1fr;
    gap: 14px;
    padding: 23px 18px;
  }

  .learning-route-id svg {
    width: 34px;
    height: 34px;
  }

  .guided-grid > article {
    padding: 25px 22px;
  }

  .guided-grid .status-badge-inline {
    position: static;
    display: inline-block;
    margin-bottom: 19px;
  }

  .guided-grid dl {
    grid-template-columns: 1fr;
  }

  .video-hero-map > span {
    min-height: 95px;
    font-size: 1.9rem;
  }

  .playlist-grid-four .playlist-card h3 {
    min-height: 0;
  }

  .member-video-card {
    grid-template-columns: 1fr;
  }

  .member-video-card img {
    aspect-ratio: 16 / 9;
  }

  .live-facts-grid {
    grid-template-columns: 1fr;
  }

  .live-facts-grid article {
    min-height: 125px;
  }

  .newsletter-community-card {
    padding: 29px 24px;
  }

  .newsletter-community .newsletter-form > div,
  .newsletter-community .newsletter-form .button {
    width: 100%;
  }

  .support-community .button-row,
  .support-community .button {
    width: 100%;
  }
}

/* Fase 2 review closure and Fase 3 visual system. */
.announcement-slide {
  height: 500px;
  min-height: 0;
  grid-template-rows: 300px 200px;
}

.announcement-art-link {
  display: block;
  color: inherit;
}

.announcement-art-link:focus-visible {
  outline-offset: -5px;
}

.announcement-art-link > div,
.announcement-art-link img {
  transition: transform 220ms ease;
}

.announcement-art-link:hover > div {
  transform: scale(1.015);
}

.route-section,
.practice-section,
.blog-home,
.newsletter-home {
  background-image: radial-gradient(circle at 92% 8%, rgba(201, 91, 79, 0.05), transparent 26%);
}

.section-marker {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 17px;
  padding: 8px 13px;
  color: var(--brand-700);
  background: var(--brand-100);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.075em;
  line-height: 1;
  text-transform: uppercase;
}

.section-marker svg {
  width: 18px;
  height: 18px;
}

.marker-coral {
  color: #9e4036;
  background: var(--coral-soft);
}

.marker-gold {
  color: #7b581d;
  background: var(--gold-soft);
}

.marker-violet {
  color: #503988;
  background: var(--violet-soft);
}

/* Sobre */
.about-page-rich .about-phase-hero .phase-hero-copy h1 {
  font-size: clamp(2.35rem, 3.55vw, 3.35rem);
}

.about-photo-backdrop {
  position: absolute;
  z-index: -1;
  inset: -28px -34px 52px 35px;
  overflow: hidden;
  background: linear-gradient(145deg, #dceafd, #f4e8cf 58%, #f5dcd7);
  border-radius: 46% 46% 18px 18px;
}

.about-photo-backdrop::before,
.about-photo-backdrop i {
  position: absolute;
  border-radius: 50%;
  content: "";
}

.about-photo-backdrop::before {
  width: 240px;
  height: 240px;
  top: -70px;
  right: -50px;
  border: 1px solid rgba(45, 95, 167, 0.22);
  box-shadow: 0 0 0 32px rgba(45, 95, 167, 0.055), 0 0 0 64px rgba(45, 95, 167, 0.035);
}

.about-photo-backdrop i:nth-child(1) {
  width: 17px;
  height: 17px;
  left: 30px;
  bottom: 46px;
  background: var(--coral);
}

.about-photo-backdrop i:nth-child(2) {
  width: 10px;
  height: 10px;
  right: 45px;
  bottom: 84px;
  background: var(--gold);
}

.about-photo-backdrop i:nth-child(3) {
  width: 52px;
  height: 2px;
  right: 24px;
  bottom: 34px;
  background: var(--brand-700);
  border-radius: 0;
  transform: rotate(-28deg);
}

.origin-story-section {
  background: linear-gradient(120deg, #fff 0 58%, #f7f3ea 58%);
}

.origin-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.08fr);
  gap: clamp(52px, 9vw, 125px);
}

.origin-lead h2,
.personal-story-main h2,
.solo-project-card h2,
.book-introduction-copy h2,
.compact-page-hero h1,
.download-catalog-card h2,
.game-launch-card h2,
.game-coming-card h2,
.group-interest-card h2 {
  margin-bottom: 21px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.origin-lead h2 {
  font-size: clamp(1.95rem, 2.8vw, 2.65rem);
}

.origin-lead blockquote {
  position: relative;
  margin: 35px 0 0;
  padding: 27px 27px 27px 33px;
  color: var(--navy-800);
  background: var(--brand-050);
  border-left: 4px solid var(--brand-600);
  font-family: var(--serif);
  font-size: 1.13rem;
  line-height: 1.55;
}

.origin-copy {
  padding-top: 32px;
  border-top: 3px solid var(--coral);
}

.origin-copy p {
  color: var(--muted);
}

.origin-copy p:first-child {
  color: var(--ink);
  font-size: 1.03rem;
}

.journey-section {
  background: var(--warm);
}

.journey-path {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.journey-path article {
  min-height: 270px;
  position: relative;
  overflow: hidden;
  padding: 25px;
  background: var(--paper);
  border: 1px solid #ded5c7;
  border-radius: 0 26px 0 0;
  box-shadow: 0 12px 32px rgba(6, 26, 51, 0.055);
}

.journey-path article::after {
  width: 90px;
  height: 90px;
  position: absolute;
  right: -45px;
  bottom: -45px;
  border-radius: 50%;
  background: var(--brand-100);
  content: "";
}

.journey-path article > span {
  color: var(--brand-700);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.journey-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin: 27px 0 22px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 15px;
}

.journey-icon svg {
  width: 23px;
  height: 23px;
}

.journey-path h3 {
  margin-bottom: 9px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.12;
}

.journey-path p {
  margin: 0;
  color: var(--muted);
  font-size: 0.8rem;
}

.journey-community .journey-icon { color: var(--green); background: var(--green-soft); }
.journey-books .journey-icon { color: #8c651f; background: var(--gold-soft); }
.journey-now .journey-icon { color: var(--violet); background: var(--violet-soft); }
.journey-community::after { background: var(--green-soft) !important; }
.journey-books::after { background: var(--gold-soft) !important; }
.journey-now::after { background: var(--violet-soft) !important; }

.principle-grid-rich {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  border: 0;
}

.principle-grid-rich article {
  min-height: 260px;
  position: relative;
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.055);
  border-radius: 18px;
}

.principle-grid-rich article:nth-child(2) { background: rgba(22, 115, 95, 0.18); }
.principle-grid-rich article:nth-child(3) { background: rgba(183, 138, 61, 0.18); }
.principle-grid-rich article:nth-child(4) { background: rgba(107, 86, 165, 0.2); }

.principle-number {
  position: absolute;
  top: 20px;
  right: 21px;
  color: rgba(255, 255, 255, 0.32);
  font-family: var(--serif);
  font-size: 1.2rem;
}

.personal-story-section {
  background: linear-gradient(135deg, var(--brand-050), #fff 58%);
  scroll-margin-top: 100px;
}

.personal-story-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.62fr);
  align-items: start;
  gap: clamp(45px, 8vw, 105px);
}

.personal-story-main p {
  color: var(--muted);
}

.personal-story-main p:first-of-type {
  color: var(--ink);
  font-size: 1.04rem;
}

.personal-story-notes {
  display: grid;
  gap: 10px;
}

.personal-story-notes article {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 2px 13px;
  padding: 17px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 13px;
  box-shadow: var(--shadow-sm);
}

.personal-story-notes svg {
  width: 42px;
  height: 42px;
  grid-row: 1 / 3;
  padding: 10px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 12px;
}

.personal-story-notes span {
  color: var(--brand-700);
  font-size: 0.64rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.personal-story-notes strong {
  color: var(--navy-950);
  font-size: 0.78rem;
  line-height: 1.4;
}

.solo-project-section {
  background: var(--paper);
}

.solo-project-card {
  display: grid;
  grid-template-columns: 68px 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 37px 40px;
  color: var(--paper);
  background: linear-gradient(125deg, var(--navy-950), var(--navy-800));
  border-radius: 22px;
}

.solo-project-card h2 {
  margin-bottom: 10px;
  color: var(--paper);
}

.solo-project-card p {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, 0.73);
}

.solo-project-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  color: #ffe2dc;
  background: rgba(201, 91, 79, 0.22);
  border-radius: 50%;
}

.solo-project-icon svg { width: 30px; height: 30px; }

.testimonials-section {
  background: var(--warm);
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.testimonial-card {
  min-height: 235px;
  display: flex;
  position: relative;
  flex-direction: column;
  margin: 0;
  padding: 25px;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid #ded5c7;
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(6, 26, 51, 0.055);
}

.testimonial-card > span {
  height: 30px;
  color: var(--brand-600);
  font-family: var(--serif);
  font-size: 3.2rem;
  line-height: 0.8;
}

.testimonial-card p {
  margin: 19px 0 25px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1.01rem;
  line-height: 1.45;
}

.testimonial-card footer {
  display: grid;
  margin-top: auto;
  color: var(--navy-950);
  font-size: 0.7rem;
  font-weight: 800;
}

.testimonial-card footer small {
  color: var(--muted);
  font-weight: 500;
}

.testimonial-tone-2 { border-top: 4px solid var(--coral); }
.testimonial-tone-3 { border-top: 4px solid var(--gold); }
.testimonial-tone-4 { border-top: 4px solid var(--green); }
.testimonial-tone-5 { border-top: 4px solid var(--violet); }
.testimonial-tone-1 { border-top: 4px solid var(--brand-600); }

/* Aprender */
.learn-phase-hero {
  background:
    radial-gradient(circle at 6% 92%, rgba(201, 91, 79, 0.2), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(183, 138, 61, 0.2), transparent 24%),
    var(--navy-950);
}

.learn-hero-layout {
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 0.8fr) minmax(430px, 0.92fr);
  align-items: center;
  gap: clamp(45px, 7vw, 90px);
}

.route-jump-nav-rich {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 22px;
  backdrop-filter: blur(8px);
}

.route-jump-nav-rich > span {
  grid-column: 1 / -1;
  padding: 2px 3px 6px;
  color: #b8d5fa;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.route-jump-nav-rich a {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 0 11px;
  padding: 13px;
  color: var(--navy-950);
  background: var(--paper);
  border-radius: 13px;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.route-jump-nav-rich a:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}

.route-jump-nav-rich svg {
  width: 36px;
  height: 36px;
  grid-row: 1 / 3;
  padding: 9px;
  color: var(--brand-700);
  background: var(--brand-050);
  border-radius: 10px;
}

.route-jump-nav-rich strong { font-size: 0.78rem; }
.route-jump-nav-rich small { color: var(--muted); font-size: 0.62rem; }
.route-jump-nav-rich .jump-coral svg { color: var(--coral); background: var(--coral-soft); }
.route-jump-nav-rich .jump-gold svg { color: #8b651f; background: var(--gold-soft); }
.route-jump-nav-rich .jump-green svg { color: var(--green); background: var(--green-soft); }
.route-jump-nav-rich .jump-violet svg { color: var(--violet); background: var(--violet-soft); }
.route-jump-nav-rich .jump-ink svg { color: var(--paper); background: var(--navy-800); }

.learning-route-list-rich {
  gap: 15px;
  border: 0;
}

.learning-route-list-rich .learning-route {
  min-height: 0;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(6, 26, 51, 0.05);
}

.learning-route-list-rich .learning-route-featured {
  grid-column: span 2;
  grid-template-columns: 60px 1fr;
  padding: 32px;
  background: linear-gradient(120deg, #fffaf0, var(--gold-soft));
  border-color: #dbc393;
}

.learning-route-list-rich .route-coral { background: linear-gradient(145deg, #fff, #fff4f1); border-color: #edccc6; }
.learning-route-list-rich .route-blue { background: linear-gradient(145deg, #fff, var(--brand-050)); border-color: #c9d9ed; }
.learning-route-list-rich .route-violet { background: linear-gradient(145deg, #fff, #f8f5ff); border-color: #ddd4ef; }
.learning-route-list-rich .route-green { background: linear-gradient(145deg, #fff, #eff9f5); border-color: #c9e4da; }
.learning-route-list-rich .route-ink { background: linear-gradient(145deg, #fff, #eef2f7); border-color: #cdd7e3; }

.route-resource-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.route-resource-chips a {
  min-height: 35px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  color: var(--navy-900);
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(45, 95, 167, 0.18);
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 750;
}

.route-resource-chips a:hover { color: var(--brand-700); border-color: var(--brand-600); }
.route-resource-chips svg { width: 15px; height: 15px; }

.guided-learning-rich {
  background:
    radial-gradient(circle at 10% 110%, rgba(201, 91, 79, 0.23), transparent 28%),
    radial-gradient(circle at 90% 0, rgba(107, 86, 165, 0.24), transparent 28%),
    var(--navy-950);
}

.guided-grid-rich {
  gap: 15px;
  border: 0;
}

.guided-grid-rich > article {
  min-height: 390px;
  overflow: hidden;
  padding: 34px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 20px;
}

.guided-private { background: rgba(45, 95, 167, 0.25); }
.guided-group { background: rgba(183, 138, 61, 0.17); }
.guided-card-glow { width: 220px; height: 220px; position: absolute; top: -130px; right: -100px; background: rgba(95, 160, 245, 0.24); border-radius: 50%; }
.button-group-interest { color: var(--navy-950); background: #f3d38f; }
.button-group-interest:hover { background: #ffe6ae; }

/* Image heroes, videos and community */
.image-phase-hero {
  min-height: 510px;
  display: flex;
  align-items: center;
}

.phase-hero-image-bg {
  position: absolute;
  inset: 0;
}

.phase-hero-image-bg::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 26, 51, 0.96) 0 42%, rgba(6, 26, 51, 0.66) 66%, rgba(6, 26, 51, 0.2));
  content: "";
}

.phase-hero-image-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.phase-hero-grid-image {
  grid-template-columns: minmax(0, 0.78fr) minmax(250px, 0.72fr);
}

.videos-phase-hero .phase-hero-image-bg img { object-position: center 52%; }
.community-hero-image img { object-position: center 48%; }

.playlist-section .section-marker,
.playlist-depth .section-marker,
.member-video-section-rich .section-marker {
  font-size: 0.78rem;
}

.playlist-depth .section-heading h2,
.playlist-depth .section-heading p {
  color: var(--paper);
}

.playlist-depth .section-heading p { color: rgba(255, 255, 255, 0.72); }
.playlist-depth .playlist-card { background: rgba(255, 255, 255, 0.98); }

.member-video-section-rich {
  background: linear-gradient(135deg, #f4effc, #f7f3ea 65%);
}

.member-playlist-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.member-playlist-grid article {
  overflow: hidden;
  background: var(--paper);
  border: 1px solid #d9d0e9;
  border-radius: 17px;
  box-shadow: var(--shadow-sm);
}

.member-playlist-grid article > div { padding: 21px; }
.member-playlist-grid article > div > span { color: var(--violet); font-size: 0.66rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.member-playlist-grid h3 { margin: 10px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.35rem; font-weight: 500; line-height: 1.12; }
.member-playlist-grid p { margin: 0; color: var(--muted); font-size: 0.78rem; }

.member-practice-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  margin-top: 19px;
  padding: 19px 22px;
  color: var(--paper);
  background: var(--navy-900);
  border-radius: 15px;
}

.member-practice-strip > div { display: flex; align-items: center; gap: 13px; }
.member-practice-strip svg { width: 36px; height: 36px; padding: 8px; color: #d9cbf4; background: rgba(255, 255, 255, 0.08); border-radius: 50%; }
.member-practice-strip span { display: grid; }
.member-practice-strip small { color: rgba(255, 255, 255, 0.66); }
.member-practice-strip .button { color: var(--navy-950); background: var(--paper); }

.live-community-rich { background: linear-gradient(140deg, #fff 0 62%, #f4f8fe 62%); }

.live-experience {
  min-height: 420px;
  position: relative;
}

.live-orbit {
  width: 300px;
  height: 300px;
  position: absolute;
  top: 58px;
  left: 50%;
  border: 1px solid #c8d9ed;
  border-radius: 50%;
  transform: translateX(-50%);
}

.live-orbit::before,
.live-orbit::after {
  position: absolute;
  inset: 28px;
  border: 1px solid #dce7f4;
  border-radius: 50%;
  content: "";
}

.live-orbit::after { inset: 61px; }

.live-experience-main {
  width: 210px;
  height: 210px;
  display: flex;
  position: absolute;
  z-index: 2;
  top: 103px;
  left: 50%;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 30px;
  color: var(--paper);
  text-align: center;
  background: linear-gradient(145deg, var(--navy-900), var(--brand-700));
  border-radius: 50%;
  box-shadow: 0 24px 60px rgba(6, 26, 51, 0.2);
  transform: translateX(-50%);
}

.live-experience-main strong { font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.live-experience-main small { margin-top: 8px; color: rgba(255, 255, 255, 0.72); font-size: 0.68rem; }
.live-pulse { width: 12px; height: 12px; margin-bottom: 13px; background: #ff6a5c; border-radius: 50%; box-shadow: 0 0 0 8px rgba(255, 106, 92, 0.18); }

.live-experience-note {
  display: flex;
  position: absolute;
  z-index: 3;
  align-items: center;
  gap: 10px;
  padding: 13px 15px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
}

.live-experience-note svg { width: 31px; height: 31px; padding: 7px; color: var(--brand-700); background: var(--brand-050); border-radius: 9px; }
.live-experience-note span { display: grid; }
.live-experience-note strong { color: var(--navy-950); font-size: 0.72rem; }
.live-experience-note small { color: var(--muted); font-size: 0.6rem; }
.note-one { top: 15px; left: 0; }
.note-two { top: 175px; right: 0; }
.note-three { bottom: 15px; left: 15px; }

.newsletter-community-rich { background: linear-gradient(125deg, #fff4ed, #f3effc); }
.newsletter-community-rich .newsletter-community-card { border-radius: 24px; box-shadow: var(--shadow-lg); }
.newsletter-icon-list li { grid-template-columns: 42px 1fr; }
.newsletter-icon-list li > span { width: 36px; height: 36px; display: grid; grid-row: 1 / 3; place-items: center; color: #f7dca5; background: rgba(255, 255, 255, 0.08); border-radius: 10px; }
.newsletter-icon-list svg { width: 19px; height: 19px; }
.newsletter-icon-list small { color: rgba(255, 255, 255, 0.58); font-size: 0.68rem; }

.social-channel-grid {
  gap: 12px;
  border: 0;
}

.social-channel-grid a {
  min-height: 145px;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  align-content: center;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(6, 26, 51, 0.045);
}

.social-icon { width: 48px; height: 48px; display: grid; place-items: center; background: var(--brand-050); border-radius: 14px; }
.social-icon svg { width: 24px; height: 24px; }
.social-channel-grid a div { display: grid; gap: 4px; }
.social-channel-grid a small { color: var(--muted); font-size: 0.65rem; font-weight: 800; text-transform: uppercase; }
.social-channel-grid a strong { grid-column: auto; font-family: var(--serif); font-size: 1.03rem; }
.social-youtube .social-icon { color: #c4302b; background: #fff0ef; }
.social-tiktok .social-icon { color: #111; background: #f0f3f5; }
.social-instagram .social-icon { color: #a63177; background: #faedf6; }
.social-facebook .social-icon { color: #1877f2; background: #eaf3ff; }

.membership-section-rich {
  background:
    radial-gradient(circle at 82% 10%, rgba(183, 138, 61, 0.22), transparent 25%),
    radial-gradient(circle at 10% 100%, rgba(107, 86, 165, 0.25), transparent 30%),
    var(--navy-900);
}

.membership-heading { max-width: 820px; }
.membership-heading > p { color: rgba(255, 255, 255, 0.75); font-size: 0.95rem; }
.membership-series-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-top: 33px; }
.membership-series-grid a { min-height: 155px; display: grid; grid-template-columns: 1fr auto; align-content: space-between; gap: 18px; padding: 22px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.17); border-radius: 16px; }
.membership-series-grid a:hover { background: rgba(255, 255, 255, 0.13); }
.membership-series-grid span { color: #f2dcae; font-size: 0.66rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.membership-series-grid strong { grid-column: 1 / -1; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; line-height: 1.18; }
.membership-series-grid i { font-style: normal; }

.support-community-rich { background: var(--brand-050); }
.support-community-layout { display: grid; grid-template-columns: minmax(360px, 0.78fr) minmax(0, 1fr); align-items: center; gap: clamp(45px, 8vw, 105px); }
.support-community-image { position: relative; padding: 0 22px 22px 0; }
.support-community-image::after { position: absolute; z-index: 0; right: 0; bottom: 0; width: calc(100% - 22px); height: calc(100% - 22px); background: var(--gold-soft); content: ""; }
.support-community-image img { width: 100%; height: 480px; position: relative; z-index: 1; object-fit: cover; }
.support-community-copy > p { max-width: 680px; color: var(--muted); font-size: 1rem; }
.support-other-ways { margin-top: 28px; padding-top: 24px; border-top: 1px solid #c9d7e7; }
.support-other-ways > strong { color: var(--navy-950); font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.support-other-ways ul { display: grid; gap: 12px; margin: 17px 0 0; padding: 0; list-style: none; }
.support-other-ways li { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 10px; color: var(--muted); font-size: 0.9rem; }
.support-other-ways svg { width: 28px; height: 28px; padding: 6px; color: var(--brand-700); background: var(--paper); border-radius: 8px; }

/* Biblioteca hub */
.library-phase-hero { background: linear-gradient(125deg, var(--navy-950) 0 58%, #123b69 58%); }
.library-hero-layout { display: grid; position: relative; z-index: 1; grid-template-columns: minmax(0, 0.88fr) minmax(400px, 0.7fr); align-items: center; gap: clamp(45px, 8vw, 100px); }
.library-hero-stack { min-height: 360px; display: grid; position: relative; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 10px; padding: 44px 30px; }
.library-hero-stack > div { min-height: 130px; display: flex; position: relative; z-index: 2; align-items: center; justify-content: center; flex-direction: column; gap: 11px; color: var(--navy-950); background: rgba(255, 255, 255, 0.94); border-radius: 12px 12px 3px 3px; box-shadow: 0 18px 40px rgba(6, 26, 51, 0.2); }
.library-hero-stack > div:nth-of-type(2) { min-height: 175px; color: #7a5619; background: #f4e7ca; }
.library-hero-stack > div:nth-of-type(3) { min-height: 215px; color: #504080; background: #eee9f8; }
.library-hero-stack svg { width: 32px; height: 32px; }
.library-hero-stack strong { font-family: var(--serif); font-size: 1.05rem; }
.library-book-shape { position: absolute; z-index: 0; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; }
.shape-one { width: 300px; height: 300px; top: 20px; left: 60px; }
.shape-two { width: 230px; height: 230px; top: 55px; left: 95px; }
.shape-three { width: 160px; height: 160px; top: 90px; left: 130px; }

.library-books-section { background: var(--warm); }
.library-catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.catalog-book-card { display: grid; grid-template-columns: 190px 1fr; gap: 25px; padding: 23px; background: var(--paper); border: 1px solid #ded5c7; border-radius: 18px; box-shadow: 0 10px 28px rgba(6, 26, 51, 0.055); }
.catalog-cover { min-height: 270px; display: grid; place-items: center; padding: 16px; background: var(--brand-050); border-radius: 12px; }
.catalog-cover img { width: auto; max-height: 235px; object-fit: contain; box-shadow: 0 15px 30px rgba(6, 26, 51, 0.18); transition: transform 180ms ease; }
.catalog-cover:hover img { transform: translateY(-4px); }
.catalog-book-card > div { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; }
.catalog-book-card > div > span { color: var(--brand-700); font-size: 0.65rem; font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; }
.catalog-book-card h3 { margin: 13px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.42rem; font-weight: 500; line-height: 1.12; }
.catalog-book-card p { color: var(--muted); font-size: 0.79rem; }
.catalog-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.catalog-actions a { color: var(--brand-700); font-size: 0.7rem; font-weight: 800; }
.catalog-character .catalog-cover { background: var(--coral-soft); }
.catalog-guide .catalog-cover { background: var(--green-soft); }
.catalog-grammar .catalog-cover { background: var(--violet-soft); }

.library-resources-section { background: var(--paper); }
.resource-hub-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.resource-hub-card { min-height: 290px; display: flex; position: relative; flex-direction: column; padding: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; transition: transform 180ms ease, box-shadow 180ms ease; }
.resource-hub-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.resource-hub-icon { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 31px; color: var(--brand-700); background: var(--brand-050); border-radius: 15px; }
.resource-hub-icon svg { width: 25px; height: 25px; }
.resource-hub-card small { color: var(--brand-700); font-size: 0.63rem; font-weight: 850; text-transform: uppercase; }
.resource-hub-card h3 { margin: 9px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.resource-hub-card p { color: var(--muted); font-size: 0.76rem; }
.resource-hub-card strong { margin-top: auto; color: var(--brand-700); font-size: 0.72rem; }
.resource-download .resource-hub-icon { color: #8b651f; background: var(--gold-soft); }
.resource-game .resource-hub-icon { color: var(--violet); background: var(--violet-soft); }
.resource-video .resource-hub-icon { color: var(--coral); background: var(--coral-soft); }

.library-separation { padding-top: 0 !important; background: var(--paper); }
.library-separation-card { display: grid; grid-template-columns: 60px 1fr auto; align-items: center; gap: 25px; padding: 32px 35px; color: var(--paper); background: linear-gradient(125deg, var(--navy-950), var(--brand-700)); border-radius: 20px; }
.library-separation-card > span { width: 60px; height: 60px; display: grid; place-items: center; color: #d9e8fb; background: rgba(255, 255, 255, 0.09); border-radius: 50%; }
.library-separation-card > span svg { width: 28px; height: 28px; }
.library-separation-card h2 { margin-bottom: 8px; font-family: var(--serif); font-size: clamp(1.7rem, 2.7vw, 2.5rem); font-weight: 500; line-height: 1.05; }
.library-separation-card p { margin: 0; color: rgba(255, 255, 255, 0.68); }

/* Rich book pages */
.catalog-book-hero { position: relative; overflow: hidden; }
.catalog-book-hero::before { width: 520px; height: 520px; position: absolute; top: -330px; right: 14%; border: 1px solid rgba(255, 255, 255, 0.09); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255, 255, 255, 0.018), 0 0 0 160px rgba(255, 255, 255, 0.013); content: ""; }
.book-theme-teal { background: linear-gradient(125deg, #06324a, #126f78); }
.book-theme-violet { background: linear-gradient(125deg, #111d3c, #58477f); }
.book-theme-coral { background: linear-gradient(125deg, #0b2d50, #9e4c47); }
.book-hero-facts { margin: 24px 0 28px; }
.book-introduction-grid { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.08fr); align-items: start; gap: clamp(48px, 8vw, 100px); }
.book-introduction-copy p { color: var(--muted); }
.book-introduction-copy p:first-of-type { color: var(--ink); font-size: 1.02rem; }
.book-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.book-feature-grid article { min-height: 220px; padding: 23px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-sm); }
.book-feature-grid article:nth-child(2) { background: #fffaf0; border-color: #e5d5b5; }
.book-feature-grid article:nth-child(3) { background: #f7f4fe; border-color: #ddd5ed; }
.book-feature-grid svg { width: 43px; height: 43px; padding: 10px; color: var(--brand-700); background: var(--brand-050); border-radius: 12px; }
.book-feature-grid h3 { margin: 28px 0 10px; color: var(--navy-950); font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.book-feature-grid p { margin: 0; color: var(--muted); font-size: 0.77rem; }

.book-inside-section { background: var(--warm); }
.book-inside-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.book-inside-grid article { display: grid; grid-template-columns: 45px 1fr; gap: 15px; padding: 21px; background: rgba(255, 255, 255, 0.72); border: 1px solid #ded5c7; border-radius: 14px; }
.book-inside-grid article > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--brand-700); background: var(--brand-050); border-radius: 50%; font-family: var(--serif); }
.book-inside-grid h3 { margin: 0 0 6px; color: var(--navy-950); font-family: var(--serif); font-size: 1.16rem; font-weight: 500; }
.book-inside-grid p { margin: 0; color: var(--muted); font-size: 0.77rem; }

.book-connections-section { background: var(--paper); }
.book-connections-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.book-connection-card { min-height: 280px; display: flex; flex-direction: column; padding: 24px; background: linear-gradient(145deg, #fff, var(--brand-050)); border: 1px solid #cddcec; border-radius: 17px; }
.book-connection-card:nth-child(2) { background: linear-gradient(145deg, #fff, #fff8e8); border-color: #e4d2aa; }
.book-connection-card:nth-child(3) { background: linear-gradient(145deg, #fff, #f7f3fd); border-color: #ddd4ef; }
.book-connection-card > span { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 25px; color: var(--brand-700); background: var(--paper); border-radius: 14px; box-shadow: var(--shadow-sm); }
.book-connection-card > span svg { width: 24px; height: 24px; }
.book-connection-card small { color: var(--brand-700); font-size: 0.64rem; font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; }
.book-connection-card h3 { margin: 8px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.book-connection-card p { color: var(--muted); font-size: 0.77rem; }
.book-connection-card strong { margin-top: auto; color: var(--brand-700); font-size: 0.72rem; }
.catalog-book-links { padding-top: 0 !important; }

/* Downloads, game and group classes */
.compact-page-hero { padding: 78px 0 68px; color: var(--paper); background: linear-gradient(125deg, var(--navy-950), var(--brand-700)); }
.compact-page-hero h1 { max-width: 850px; color: var(--paper); font-size: clamp(2.35rem, 4vw, 3.7rem); }
.compact-page-hero p { max-width: 700px; margin: 0; color: rgba(255, 255, 255, 0.74); font-size: 1rem; }
.games-compact-hero { background: linear-gradient(125deg, var(--navy-950), #5d4b8b); }

.audio-phase-hero { background: linear-gradient(125deg, var(--navy-950), #245d91); }
.audio-hero-visual { min-height: 300px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 40px; color: #d9e9fb; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 50%; }
.audio-hero-visual > span { width: 82px; height: 82px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.1); border-radius: 50%; }
.audio-hero-visual svg { width: 37px; height: 37px; }
.audio-hero-visual i { width: 7px; background: #8eb8ea; border-radius: 999px; }
.audio-hero-visual i:nth-of-type(1), .audio-hero-visual i:nth-of-type(7) { height: 28px; }
.audio-hero-visual i:nth-of-type(2), .audio-hero-visual i:nth-of-type(6) { height: 55px; }
.audio-hero-visual i:nth-of-type(3), .audio-hero-visual i:nth-of-type(5) { height: 88px; }
.audio-hero-visual i:nth-of-type(4) { height: 120px; }

.audio-status-section { background: var(--warm); }
.audio-status-card { display: grid; grid-template-columns: 60px 1fr auto; align-items: center; gap: 25px; padding: 31px; background: var(--paper); border: 1px solid #ded5c7; border-radius: 18px; }
.audio-status-icon { width: 60px; height: 60px; display: grid; place-items: center; color: var(--gold); background: var(--gold-soft); border-radius: 16px; }
.audio-status-icon svg { width: 28px; height: 28px; }
.audio-status-card h2 { margin: 12px 0 8px; color: var(--navy-950); font-family: var(--serif); font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 500; }
.audio-status-card p { margin: 0; color: var(--muted); }
.button-disabled { color: #7d8792; background: #e9edf2; cursor: not-allowed; }
.audio-content-grid, .group-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.audio-content-grid article, .group-benefit-grid article { min-height: 230px; padding: 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-sm); }
.audio-content-grid svg, .group-benefit-grid svg { width: 44px; height: 44px; padding: 10px; color: var(--brand-700); background: var(--brand-050); border-radius: 13px; }
.audio-content-grid span { display: block; margin-top: 30px; color: var(--brand-700); font-size: 0.65rem; font-weight: 850; text-transform: uppercase; }
.audio-content-grid h3, .group-benefit-grid h3 { margin: 8px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.28rem; font-weight: 500; }
.audio-content-grid p, .group-benefit-grid p { margin: 0; color: var(--muted); font-size: 0.78rem; }
.audio-next-section { background: var(--brand-050); }

.download-catalog { display: grid; gap: 14px; }
.download-catalog-card { display: grid; grid-template-columns: 64px 1fr; gap: 24px; padding: 29px; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-sm); }
.download-catalog-card > span { width: 64px; height: 64px; display: grid; place-items: center; color: var(--brand-700); background: var(--brand-050); border-radius: 17px; }
.download-catalog-card > span svg { width: 30px; height: 30px; }
.download-catalog-card small { color: var(--brand-700); font-size: 0.68rem; font-weight: 850; text-transform: uppercase; }
.download-catalog-card h2 { margin: 8px 0; font-size: 1.75rem; }
.download-catalog-card p { max-width: 750px; color: var(--muted); }
.download-coming { opacity: 0.82; }

.game-catalog-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }
.game-launch-card { display: grid; grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1fr); overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-sm); }
.game-launch-card > div:last-child { padding: 36px; }
.game-launch-art { min-height: 420px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--navy-950); }
.game-launch-art span { display: grid; place-items: center; color: var(--paper); background: rgba(255, 255, 255, 0.07); font-family: var(--serif); font-size: 4.4rem; }
.game-launch-art span:nth-child(2) { color: #f5d99c; background: rgba(183, 138, 61, 0.18); }
.game-launch-art span:nth-child(3) { color: #a9d9ca; background: rgba(22, 115, 95, 0.22); }
.game-launch-art span:nth-child(4) { color: #e8d9ff; background: rgba(107, 86, 165, 0.22); }
.game-launch-card small, .game-coming-card small { color: var(--violet); font-size: 0.67rem; font-weight: 850; text-transform: uppercase; }
.game-launch-card ul { margin: 21px 0 25px; padding-left: 19px; color: var(--muted); font-size: 0.83rem; }
.game-coming-card { padding: 29px; background: var(--violet-soft); border: 1px solid #d8ceeb; border-radius: 20px; }
.game-coming-card > span { width: 55px; height: 55px; display: grid; place-items: center; margin-bottom: 45px; color: var(--violet); background: var(--paper); border-radius: 16px; }
.game-coming-card > span svg { width: 26px; height: 26px; }
.game-coming-card h2 { margin-top: 12px; font-size: 1.75rem; }
.game-coming-card p { color: var(--muted); }

.character-game-shell { min-height: 760px; padding: 52px 0 75px; background: linear-gradient(140deg, var(--brand-050), #fff7ee); }
.game-header { display: grid; grid-template-columns: 140px 1fr auto; align-items: end; gap: 30px; margin-bottom: 28px; }
.game-header > a { align-self: start; color: var(--brand-700); font-size: 0.75rem; font-weight: 800; }
.game-header h1 { margin: 8px 0; color: var(--navy-950); font-family: var(--serif); font-size: clamp(2.3rem, 4vw, 3.7rem); font-weight: 500; line-height: 1; }
.game-header p { margin: 0; color: var(--muted); }
.game-header dl { display: grid; grid-template-columns: repeat(3, 75px); margin: 0; overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: 13px; }
.game-header dl div { padding: 11px; text-align: center; }
.game-header dl div + div { border-left: 1px solid var(--line); }
.game-header dt { color: var(--muted); font-size: 0.58rem; text-transform: uppercase; }
.game-header dd { margin: 2px 0 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.2rem; }
.game-board, .game-finish { max-width: 800px; margin-inline: auto; padding: 31px; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-lg); }
.game-progress { height: 8px; overflow: hidden; background: #e9eef4; border-radius: 999px; }
.game-progress i { width: 0; height: 100%; display: block; background: linear-gradient(90deg, var(--brand-600), var(--violet)); transition: width 240ms ease; }
.character-prompt { display: grid; place-items: center; padding: 25px 0 18px; text-align: center; }
.character-prompt > span { color: var(--muted); font-size: 0.76rem; }
.character-prompt strong { margin: 6px 0 -3px; color: var(--navy-950); font-family: var(--serif); font-size: 7rem; font-weight: 500; line-height: 1; }
.character-prompt small { color: var(--brand-700); font-size: 1rem; font-weight: 800; }
.game-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.game-options button { min-height: 57px; padding: 12px; color: var(--navy-950); background: var(--brand-050); border: 1px solid #cddbec; border-radius: 12px; cursor: pointer; font-weight: 700; }
.game-options button:hover:not(:disabled) { border-color: var(--brand-600); background: #e6f0fd; }
.game-options button.is-correct { color: #0e5747; background: var(--green-soft); border-color: #76b7a5; }
.game-options button.is-wrong { color: #913e35; background: var(--coral-soft); border-color: #df9e97; }
.game-feedback { min-height: 83px; margin: 15px 0; padding: 13px 16px; background: #f7f9fc; border-radius: 11px; }
.game-feedback span { color: var(--navy-950); font-size: 0.79rem; font-weight: 850; }
.game-feedback p { margin: 3px 0 0; color: var(--muted); font-size: 0.74rem; }
.game-feedback.is-correct { background: var(--green-soft); }
.game-feedback.is-wrong { background: var(--coral-soft); }
.game-next { width: 100%; }
.game-next:disabled { opacity: 0.5; cursor: not-allowed; }
.game-finish { text-align: center; }
.game-finish > span { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 20px; color: var(--gold); background: var(--gold-soft); border-radius: 50%; }
.game-finish > span svg { width: 31px; height: 31px; }
.game-finish h2 { color: var(--navy-950); font-family: var(--serif); font-size: 2.5rem; font-weight: 500; }
.game-finish .button-row { justify-content: center; }

.group-class-hero { background: linear-gradient(125deg, var(--navy-950), var(--green)); }
.group-class-visual { min-height: 300px; display: grid; position: relative; place-items: center; color: #d6f1e8; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 50%; }
.group-class-visual > svg { width: 85px; height: 85px; padding: 21px; background: rgba(255, 255, 255, 0.08); border-radius: 50%; }
.group-class-visual span { position: absolute; inset: 0; }
.group-class-visual i { width: 28px; height: 28px; position: absolute; background: rgba(255, 255, 255, 0.18); border-radius: 50%; }
.group-class-visual i:nth-child(1) { top: 12%; left: 47%; }
.group-class-visual i:nth-child(2) { top: 27%; right: 14%; }
.group-class-visual i:nth-child(3) { right: 20%; bottom: 16%; }
.group-class-visual i:nth-child(4) { bottom: 8%; left: 42%; }
.group-class-visual i:nth-child(5) { bottom: 22%; left: 13%; }
.group-class-visual i:nth-child(6) { top: 24%; left: 15%; }
.group-experience-section { background: var(--warm); }
.group-interest-section { background: var(--brand-050); }
.group-interest-card { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(360px, 0.65fr); gap: clamp(45px, 8vw, 100px); padding: 39px; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow-sm); }
.group-interest-card > div > p { color: var(--muted); }
.group-interest-form { display: grid; gap: 8px; }
.group-interest-form label { color: var(--navy-950); font-size: 0.69rem; font-weight: 800; }
.group-interest-form input { min-height: 46px; padding: 10px 13px; border: 1px solid #b9c8d9; border-radius: 9px; }
.group-interest-form .button { margin-top: 9px; }
.form-message { margin: 7px 0 0; color: var(--muted); font-size: 0.71rem; }

/* Blog editorial framework */
.blog-compact-hero { background: linear-gradient(125deg, var(--navy-950), #72533a); }
.blog-category-section { background: var(--paper); }
.blog-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.blog-category-card { min-height: 290px; display: flex; flex-direction: column; padding: 24px; background: linear-gradient(145deg, #fff, var(--brand-050)); border: 1px solid #ccdced; border-radius: 18px; }
.blog-category-card > span { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 35px; color: var(--brand-700); background: var(--paper); border-radius: 15px; box-shadow: var(--shadow-sm); }
.blog-category-card > span svg { width: 25px; height: 25px; }
.blog-category-card small { color: var(--brand-700); font-size: 0.64rem; font-weight: 850; letter-spacing: 0.07em; text-transform: uppercase; }
.blog-category-card h3 { margin: 10px 0; color: var(--navy-950); font-family: var(--serif); font-size: 1.4rem; font-weight: 500; }
.blog-category-card p { color: var(--muted); font-size: 0.78rem; }
.blog-category-card strong { margin-top: auto; color: var(--brand-700); font-size: 0.69rem; }
.blog-category-coral { background: linear-gradient(145deg, #fff, #fff3ef); border-color: #edccc6; }
.blog-category-coral > span { color: var(--coral); }
.blog-category-green { background: linear-gradient(145deg, #fff, #eef9f5); border-color: #c8e5da; }
.blog-category-green > span { color: var(--green); }
.blog-category-violet { background: linear-gradient(145deg, #fff, #f6f2fd); border-color: #ddd3ef; }
.blog-category-violet > span { color: var(--violet); }
.blog-editorial-status { padding-top: 0 !important; background: var(--paper); }
.blog-editorial-card { display: grid; grid-template-columns: 62px 1fr auto; align-items: center; gap: 25px; padding: 34px; color: var(--paper); background: linear-gradient(125deg, var(--navy-950), var(--navy-800)); border-radius: 20px; }
.blog-editorial-card > span { width: 62px; height: 62px; display: grid; place-items: center; color: #d9e8fb; background: rgba(255, 255, 255, 0.09); border-radius: 50%; }
.blog-editorial-card > span svg { width: 29px; height: 29px; }
.blog-editorial-card h2 { margin: 12px 0 8px; font-family: var(--serif); font-size: clamp(1.7rem, 2.7vw, 2.45rem); font-weight: 500; line-height: 1.05; }
.blog-editorial-card p { max-width: 760px; margin: 0; color: rgba(255, 255, 255, 0.7); }

@media (max-width: 1080px) {
  .announcement-slide { height: 470px; grid-template-rows: 270px 200px; }
  .journey-path, .principle-grid-rich, .resource-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .social-channel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .live-experience {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .live-orbit { display: none; }
  .live-experience-main {
    width: 185px;
    height: 185px;
    position: static;
    justify-self: center;
    margin-bottom: 7px;
    transform: none;
  }
  .live-experience-note {
    width: 100%;
    position: static;
  }
  .support-community-layout { grid-template-columns: minmax(320px, 0.7fr) minmax(0, 1fr); gap: 50px; }
  .book-introduction-grid { grid-template-columns: 1fr; }
  .book-feature-grid { max-width: 900px; }
  .catalog-book-card { grid-template-columns: 155px 1fr; }
  .catalog-cover { min-height: 245px; }
  .blog-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
  .home-page .hero-home-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .announcement-slide { height: 460px; min-height: 0; grid-template-columns: 1.1fr 0.9fr; grid-template-rows: 1fr; }
  .about-page-rich .about-phase-hero .phase-hero-copy h1 { font-size: clamp(2.45rem, 6.4vw, 3.7rem); }
  .origin-story-grid,
  .personal-story-layout,
  .learn-hero-layout,
  .library-hero-layout,
  .support-community-layout,
  .game-launch-card,
  .group-interest-card {
    grid-template-columns: 1fr;
  }
  .journey-path { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .principle-grid-rich { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .personal-story-notes, .route-jump-nav-rich { max-width: 720px; }
  .learning-route-list-rich .learning-route-featured { grid-column: auto; }
  .phase-hero-grid-image { grid-template-columns: 1fr; }
  .image-phase-hero { min-height: 470px; }
  .phase-hero-image-bg::after { background: linear-gradient(90deg, rgba(6, 26, 51, 0.94), rgba(6, 26, 51, 0.56)); }
  .member-playlist-grid, .membership-series-grid, .book-connections-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-hero-stack { max-width: 620px; }
  .library-catalog-grid { grid-template-columns: 1fr; }
  .resource-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-separation-card, .audio-status-card { grid-template-columns: 60px 1fr; }
  .library-separation-card .button, .audio-status-card .button { grid-column: 2; justify-self: start; }
  .blog-editorial-card { grid-template-columns: 62px 1fr; }
  .blog-editorial-card .button { grid-column: 2; justify-self: start; }
  .book-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .game-catalog-grid { grid-template-columns: 1fr; }
  .game-coming-card { min-height: 260px; }
  .game-header { grid-template-columns: 1fr auto; }
  .game-header > a { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .brand { gap: 8px; }
  .brand img { width: 40px; height: 40px; }
  .brand strong { font-size: 1rem; }
  .brand small { max-width: none; font-size: 0.52rem; line-height: 1.05; white-space: nowrap; }
  .announcement-slide { height: 635px; min-height: 0; grid-template-columns: 1fr; grid-template-rows: 405px 230px; }
  .announcement-slide h2 { font-size: 2.05rem; }
  .announcement-copy { padding: 27px 24px 22px; }
  .origin-story-section { background: var(--paper); }
  .origin-story-grid { gap: 35px; }
  .origin-copy { padding-top: 24px; }
  .journey-path,
  .principle-grid-rich,
  .testimonial-grid,
  .member-playlist-grid,
  .membership-series-grid,
  .library-catalog-grid,
  .resource-hub-grid,
  .book-feature-grid,
  .book-inside-grid,
  .book-connections-grid,
  .audio-content-grid,
  .group-benefit-grid {
    grid-template-columns: 1fr;
  }
  .journey-path article, .principle-grid-rich article, .testimonial-card { min-height: 0; }
  .about-photo-backdrop { inset: -15px -14px 38px 23px; }
  .solo-project-card { grid-template-columns: 1fr; padding: 29px 24px; }
  .solo-project-card .button { justify-self: start; }
  .route-jump-nav-rich { grid-template-columns: 1fr; }
  .learning-route-list-rich .learning-route,
  .learning-route-list-rich .learning-route-featured { grid-template-columns: 42px 1fr; padding: 22px 18px; }
  .guided-grid-rich > article { min-height: 0; padding: 27px 22px; }
  .image-phase-hero { min-height: 500px; }
  .phase-hero-image-bg::after { background: rgba(6, 26, 51, 0.74); }
  .member-practice-strip { align-items: flex-start; flex-direction: column; }
  .member-practice-strip .button { width: 100%; }
  .live-experience { min-height: 515px; }
  .live-orbit { width: 240px; height: 240px; top: 120px; }
  .live-experience-main { width: 175px; height: 175px; top: 152px; padding: 23px; }
  .note-one { top: 10px; left: 0; }
  .note-two { top: auto; right: 0; bottom: 82px; }
  .note-three { bottom: 8px; left: 0; }
  .newsletter-community-rich .newsletter-community-card { border-radius: 18px; }
  .social-channel-grid { grid-template-columns: 1fr; }
  .support-community-image img { height: 330px; }
  .library-hero-layout { gap: 20px; }
  .library-hero-stack { min-height: 280px; padding-inline: 0; }
  .library-hero-stack > div { min-height: 100px; }
  .library-hero-stack > div:nth-of-type(2) { min-height: 135px; }
  .library-hero-stack > div:nth-of-type(3) { min-height: 165px; }
  .shape-one { left: 15px; }
  .shape-two { left: 50px; }
  .shape-three { left: 85px; }
  .catalog-book-card { grid-template-columns: 120px 1fr; gap: 16px; padding: 16px; }
  .catalog-cover { min-height: 220px; padding: 10px; }
  .catalog-cover img { max-height: 190px; }
  .catalog-book-card h3 { font-size: 1.18rem; }
  .library-separation-card, .audio-status-card { grid-template-columns: 1fr; padding: 27px 23px; }
  .library-separation-card .button, .audio-status-card .button { grid-column: 1; }
  .catalog-book-stage { min-height: 370px; }
  .catalog-book-stage img { height: 305px; }
  .book-introduction-grid { gap: 32px; }
  .book-feature-grid article { min-height: 0; }
  .book-inside-grid article { grid-template-columns: 40px 1fr; }
  .compact-page-hero { padding: 60px 0 54px; }
  .download-catalog-card { grid-template-columns: 52px 1fr; gap: 16px; padding: 22px; }
  .download-catalog-card > span { width: 52px; height: 52px; }
  .game-launch-art { min-height: 310px; }
  .game-launch-art span { font-size: 3.7rem; }
  .game-launch-card > div:last-child { padding: 27px 22px; }
  .game-header { grid-template-columns: 1fr; }
  .game-header dl { grid-template-columns: repeat(3, 1fr); }
  .game-board, .game-finish { padding: 23px 18px; }
  .character-prompt strong { font-size: 6rem; }
  .game-options { grid-template-columns: 1fr; }
  .group-interest-card { padding: 27px 22px; }
  .blog-category-grid { grid-template-columns: 1fr; }
  .blog-category-card { min-height: 0; }
  .blog-editorial-card { grid-template-columns: 1fr; padding: 27px 23px; }
  .blog-editorial-card .button { grid-column: 1; }
}

@media (max-width: 380px) {
  .brand small { font-size: 0.48rem; }
  .brand img { width: 37px; height: 37px; }
  .nav-toggle { width: 42px; height: 42px; }
  .announcement-slide h2 { font-size: 1.85rem; }
  .catalog-book-card { grid-template-columns: 100px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Fase 3 · lote de revisión 2 */
.rail-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: -10px 0 12px;
}

.rail-controls span {
  margin-right: 5px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 700;
}

.rail-controls button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: var(--navy-950);
  background: var(--paper);
  border: 1px solid #c9d6e5;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.1rem;
  transition: color 150ms ease, background 150ms ease, transform 150ms ease;
}

.rail-controls button:hover { color: var(--paper); background: var(--brand-700); transform: translateY(-1px); }
.horizontal-card-strip { scroll-behavior: auto; scroll-snap-type: x proximity; overscroll-behavior-inline: contain; }
.horizontal-card-strip.is-dragging { scroll-snap-type: none; }

.group-promise-card { align-self: center; padding: 27px; }
.group-promise-card h2 { font-size: clamp(1.55rem, 2.1vw, 1.95rem); }
.group-promise-card ul { display: grid; gap: 10px; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); list-style: none; }
.group-promise-card li { display: grid; grid-template-columns: auto 1fr; gap: 5px; color: var(--muted); font-size: 0.78rem; line-height: 1.45; }
.group-promise-card li::before { color: var(--green); content: "✓"; font-weight: 900; }
.group-promise-card li strong { color: var(--navy-950); }

.download-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 18px; margin-top: 18px; }
.download-backup-link { display: inline-flex; margin-top: 13px; font-size: 0.78rem; }
.download-actions .download-backup-link { margin-top: 0; }

.resource-video-points { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 24px; }
.resource-video-points i { padding: 7px 11px; color: rgba(255, 255, 255, 0.88); background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; font-size: 0.72rem; font-style: normal; font-weight: 750; }

.live-experience-main strong { font-size: 1.55rem; line-height: 1.1; }
.live-experience-main small { font-size: 0.82rem; line-height: 1.35; }
.live-experience-note { min-width: 210px; gap: 12px; padding: 15px 17px; }
.live-experience-note strong { font-size: 0.84rem; line-height: 1.25; }
.live-experience-note small { margin-top: 2px; font-size: 0.72rem; line-height: 1.3; }

.newsletter-community-rich .newsletter-community-card {
  grid-template-columns: minmax(300px, 0.95fr) minmax(250px, 0.72fr) minmax(300px, 0.82fr);
  align-items: stretch;
  gap: 24px;
  padding: 40px;
  overflow: hidden;
}

.newsletter-community-visual { min-height: 440px; position: relative; margin: 0; overflow: hidden; border-radius: 18px; }
.newsletter-community-visual::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(6, 26, 51, 0.92)); content: ""; }
.newsletter-community-visual img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: center; }
.newsletter-community-visual figcaption { position: absolute; z-index: 2; right: 20px; bottom: 20px; left: 20px; display: grid; gap: 4px; }
.newsletter-community-visual figcaption span { color: #f4d999; font-size: 0.68rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.newsletter-community-visual figcaption strong { color: var(--paper); font-family: var(--serif); font-size: 1.15rem; font-weight: 500; line-height: 1.25; }
.newsletter-icon-list { align-self: center; }
.newsletter-icon-list li { grid-template-columns: 50px 1fr; gap: 12px; padding: 17px 0; }
.newsletter-icon-list li > span { width: 44px; height: 44px; }
.newsletter-icon-list strong { font-size: 0.94rem; line-height: 1.3; }
.newsletter-icon-list small { margin-top: 3px; color: rgba(255, 255, 255, 0.68); font-size: 0.8rem; line-height: 1.38; }

.membership-feature-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.76fr); align-items: center; gap: clamp(38px, 6vw, 80px); }
.membership-heading { max-width: none; }
.membership-heading > p { max-width: 760px; font-size: 1rem; line-height: 1.7; }
.membership-benefit-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 25px 0; }
.membership-benefit-row > span { min-height: 145px; display: grid; grid-template-columns: 35px 1fr; align-content: start; gap: 7px 9px; padding: 17px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 14px; }
.membership-benefit-row svg { width: 34px; height: 34px; grid-row: 1 / 3; padding: 8px; color: #f4dfb2; background: rgba(255, 255, 255, 0.09); border-radius: 10px; }
.membership-benefit-row b { color: var(--paper); font-size: 0.83rem; }
.membership-benefit-row small { color: rgba(255, 255, 255, 0.65); font-size: 0.71rem; line-height: 1.35; }
.membership-community-visual { position: relative; margin: 0; padding: 0 18px 18px 0; }
.membership-community-visual::after { position: absolute; z-index: 0; right: 0; bottom: 0; width: calc(100% - 18px); height: calc(100% - 18px); background: rgba(183, 138, 61, 0.45); border-radius: 20px; content: ""; }
.membership-community-visual img { width: 100%; height: 480px; position: relative; z-index: 1; object-fit: cover; border-radius: 20px; }
.membership-community-visual figcaption { position: absolute; z-index: 2; right: 38px; bottom: 38px; left: 20px; padding: 12px 14px; color: var(--paper); background: rgba(6, 26, 51, 0.86); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 10px; font-size: 0.75rem; font-weight: 750; }

.game-catalog-grid-two { gap: 24px; }
.game-sentence-card { border-color: #c8e3da; }
.character-prompt strong,
.matching-tile.is-character,
.sentence-token,
.sentence-answer button { font-family: "ECCLAI WenKai", KaiTi, STKaiti, "Kaiti SC", serif; font-weight: 400; }

/* Phase 3 · lote 3 */
.phase-hero-copy h1,
.detail-hero-copy h1,
.catalog-book-hero .detail-hero-copy h1,
.support-page-hero h1 {
  font-size: clamp(2.35rem, 4.2vw, 4.35rem);
  line-height: 1.01;
}

.rail-controls { justify-content: flex-end; }

.book-inside-grid article { position: relative; overflow: hidden; }
.book-inside-grid article::after { width: 58px; height: 58px; position: absolute; right: -24px; bottom: -28px; border-radius: 18px; transform: rotate(22deg); content: ""; }
.book-inside-grid article:nth-child(6n + 1) { background: #eef5ff; border-color: #cbdced; }
.book-inside-grid article:nth-child(6n + 1)::after { background: #afcbea; }
.book-inside-grid article:nth-child(6n + 2) { background: #fff1ed; border-color: #edcfc9; }
.book-inside-grid article:nth-child(6n + 2)::after { background: #e6aaa2; border-radius: 50%; }
.book-inside-grid article:nth-child(6n + 3) { background: #f2eee9; border-color: #dcd1c4; }
.book-inside-grid article:nth-child(6n + 3)::after { background: #d2b988; }
.book-inside-grid article:nth-child(6n + 4) { background: #edf8f3; border-color: #c7e2d7; }
.book-inside-grid article:nth-child(6n + 4)::after { background: #9fcebd; border-radius: 50%; }
.book-inside-grid article:nth-child(6n + 5) { background: #f4effb; border-color: #d9cdea; }
.book-inside-grid article:nth-child(6n + 5)::after { background: #c8b5df; }
.book-inside-grid article:nth-child(6n) { background: #fff7e8; border-color: #ead9b7; }
.book-inside-grid article:nth-child(6n)::after { background: #e5c77d; border-radius: 50%; }
.book-inside-grid article > span { border-radius: 12px; }

.topic-list-rich { gap: 10px; background: transparent; border: 0; }
.topic-list-rich li { display: grid; grid-template-columns: 43px 1fr; gap: 12px; padding: 14px; border: 0; border-radius: 14px; }
.topic-list-rich li:nth-child(3n + 1) { background: #eef5ff; }
.topic-list-rich li:nth-child(3n + 2) { background: #fff0ec; }
.topic-list-rich li:nth-child(3n) { background: #edf8f3; }
.topic-list-rich svg { width: 43px; height: 43px; grid-row: 1; padding: 10px; color: var(--brand-700); background: rgba(255, 255, 255, 0.8); border-radius: 12px; }
.topic-list-rich span { display: grid; gap: 2px; }
.topic-list-rich strong { color: var(--navy-950); font-size: 0.87rem; }
.topic-list-rich small { color: var(--muted); font-size: 0.73rem; }

.group-promise-card { width: 100%; max-width: 480px; justify-self: end; align-self: center; padding: 25px; }
.group-promise-card h2 { max-width: 380px; margin-bottom: 20px; }
.group-promise-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.group-promise-points span { min-height: 92px; display: grid; grid-template-columns: 32px 1fr; align-content: center; gap: 2px 9px; padding: 13px; border-radius: 13px; }
.group-promise-points span:nth-child(1) { background: #edf8f3; }
.group-promise-points span:nth-child(2) { background: #eef5ff; }
.group-promise-points span:nth-child(3) { background: #fff7e8; }
.group-promise-points span:nth-child(4) { background: #f4effb; }
.group-promise-points svg { width: 32px; height: 32px; grid-row: 1 / 3; padding: 7px; color: var(--brand-700); background: #fff; border-radius: 9px; }
.group-promise-points strong { color: var(--navy-950); font-size: 0.82rem; }
.group-promise-points small { color: var(--muted); font-size: 0.67rem; }
.group-experience-section .group-benefit-grid article:nth-child(1) { background: #eef5ff; }
.group-experience-section .group-benefit-grid article:nth-child(2) { background: #fff0ec; }
.group-experience-section .group-benefit-grid article:nth-child(3) { background: #edf8f3; }
.group-experience-section .group-benefit-grid article { min-height: 190px; box-shadow: none; }

.resource-video-featured { min-height: 290px; display: grid; grid-template-columns: minmax(240px, 0.9fr) minmax(250px, 1fr); align-items: center; gap: 26px; grid-column: span 4; color: var(--paper); background: linear-gradient(125deg, var(--navy-950), #173f6b); }
.resource-video-featured::after { width: 210px; height: 210px; position: absolute; right: -80px; bottom: -105px; border: 1px solid rgba(255, 255, 255, 0.13); border-radius: 50%; content: ""; }
.resource-video-stage { min-height: 210px; display: block; position: relative; border: 1px solid rgba(255, 255, 255, 0.17); border-radius: 24px; background: rgba(255, 255, 255, 0.06); }
.video-stage-play { width: 82px; height: 82px; display: grid; position: absolute; top: 50%; left: 50%; place-items: center; color: #fff; background: var(--coral); border-radius: 50%; transform: translate(-50%, -50%); }
.video-stage-play svg { width: 38px; height: 38px; }
.video-stage-card { min-width: 105px; display: grid; position: absolute; grid-template-columns: 26px 1fr; align-items: center; gap: 7px; padding: 10px; color: var(--navy-950); background: #fff; border-radius: 11px; box-shadow: var(--shadow-sm); }
.video-stage-card svg { width: 26px; height: 26px; padding: 5px; color: var(--brand-700); background: var(--brand-050); border-radius: 7px; }
.video-stage-card em { font-size: 0.68rem; font-style: normal; }
.stage-pinyin { top: 20px; left: 18px; }
.stage-grammar { top: 35px; right: 14px; }
.stage-reading { bottom: 18px; left: 40px; }
.resource-video-copy { display: flex; flex-direction: column; }
.resource-video-featured small { color: #f1d79c; }
.resource-video-featured h3 { max-width: 500px; color: #fff; font-size: clamp(1.55rem, 2.6vw, 2.35rem); }
.resource-video-featured p { color: rgba(255, 255, 255, 0.72); font-size: 0.86rem; }
.resource-video-featured strong { color: #fff; }

.blog-home-v2 { padding-block: clamp(62px, 8vw, 98px); }
.blog-home-v2 .blog-home-grid { grid-template-columns: minmax(300px, 0.7fr) minmax(0, 1.3fr); gap: clamp(42px, 7vw, 90px); }
.blog-home-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 28px; }
.blog-home-categories a { display: flex; align-items: center; gap: 9px; padding: 10px 12px; color: rgba(255, 255, 255, 0.82); background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 10px; font-size: 0.72rem; }
.blog-home-categories span { color: #f2dcae; font-size: 0.62rem; font-weight: 900; }
.blog-home-recent { display: grid; gap: 8px; }
.blog-home-recent-label { margin-bottom: 3px; color: #f2dcae; font-size: 0.67rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.blog-home-recent article { padding: 17px 19px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 13px; }
.blog-home-recent small { color: rgba(255, 255, 255, 0.62); font-size: 0.65rem; }
.blog-home-recent h3 { margin: 5px 0 4px; font-family: var(--serif); font-size: 1.05rem; font-weight: 500; line-height: 1.2; }
.blog-home-recent h3 a { color: #fff; }
.blog-home-recent p { display: -webkit-box; margin: 0; overflow: hidden; color: rgba(255, 255, 255, 0.68); font-size: 0.72rem; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }

.home-page .community-links a { min-height: 102px; display: grid; grid-template-columns: 54px 1fr; align-content: center; gap: 2px 15px; padding: 18px 22px; }
.home-page .community-links b { width: 54px; height: 54px; display: grid; grid-row: 1 / 3; place-items: center; color: var(--brand-700); background: var(--brand-050); border-radius: 15px; }
.home-page .community-links b svg { width: 28px; height: 28px; }
.home-page .community-links a:nth-child(2) b { color: var(--violet); background: var(--violet-soft); }
.home-page .community-links a:nth-child(3) b { color: var(--coral); background: var(--coral-soft); }
.home-page .community-links a:nth-child(4) b { color: var(--green); background: var(--green-soft); }
.home-page .community-links span { font-size: 0.72rem; }
.home-page .community-links strong { font-size: 0.96rem; }

.blog-category-card { position: relative; overflow: hidden; }
.blog-category-shapes { position: absolute; inset: 0; pointer-events: none; }
.blog-category-shapes i { position: absolute; opacity: 0.18; background: currentColor; }
.blog-category-shapes i:nth-child(1) { width: 70px; height: 70px; top: -28px; right: 16px; border-radius: 50%; }
.blog-category-shapes i:nth-child(2) { width: 40px; height: 40px; right: -10px; bottom: 22px; transform: rotate(25deg); }
.blog-category-shapes i:nth-child(3) { width: 30px; height: 12px; right: 58px; bottom: 18px; border-radius: 999px; transform: rotate(-28deg); }
.blog-category-glyph { position: relative; z-index: 1; line-height: 1; }
.blog-category-card[data-blog-filter="viajes-y-vida-practica"] .blog-category-glyph { display: inline-grid; place-items: center; padding-top: 0.08em; }
.blog-catalog-tools { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: end; gap: 10px; }
.blog-search-wrap { position: relative; }
.blog-search { width: 100%; }
.blog-search-suggestions { width: 100%; position: absolute; z-index: 30; top: calc(100% + 5px); overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); }
.blog-search-suggestions a { display: block; padding: 10px 13px; color: var(--navy-950); font-size: 0.75rem; }
.blog-search-suggestions a + a { border-top: 1px solid var(--line); }
.blog-search-suggestions a:hover { background: var(--brand-050); }
.blog-tool-select { display: grid; gap: 5px; color: var(--muted); font-size: 0.63rem; font-weight: 800; }
.blog-tool-select select { min-width: 190px; height: 48px; padding: 0 38px 0 12px; color: var(--navy-950); background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.blog-compact-list { display: grid; border-top: 1px solid var(--line); }
.blog-compact-entry { min-height: 118px; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 16px 3px; border-bottom: 1px solid var(--line); }
.blog-compact-glyph { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 13px; font-family: "ECCLAI WenKai", KaiTi, serif; font-size: 1.55rem; }
.blog-compact-entry small { color: var(--brand-700); font-size: 0.63rem; font-weight: 800; }
.blog-compact-entry h3 { margin: 4px 0; font-family: var(--serif); font-size: 1.16rem; font-weight: 500; line-height: 1.2; }
.blog-compact-entry h3 a { color: var(--navy-950); }
.blog-compact-entry p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 0.74rem; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.blog-compact-open { padding: 8px 10px; color: var(--brand-700); font-size: 0.7rem; font-weight: 800; }
.blog-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 24px; }
.blog-pagination button { min-width: 38px; height: 38px; color: var(--navy-950); background: #fff; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.blog-pagination button.is-active { color: #fff; background: var(--brand-700); border-color: var(--brand-700); }
.blog-pagination button:disabled { opacity: 0.35; cursor: not-allowed; }
.article-page-hero .article-hero-copy h1 { max-width: 980px; font-size: clamp(2rem, 3.6vw, 3.65rem); line-height: 1.04; }

.live-community-rich { overflow: hidden; }
.live-community-grid { align-items: center; }
.live-experience { width: 100%; min-height: 440px; }
.live-experience-note { max-width: 210px; }
.note-one { top: 16px; left: 0; }
.note-two { top: 150px; right: 0; }
.note-three { bottom: 18px; left: 20px; }
.social-channel-grid a { color: #fff; border: 0; }
.social-channel-grid .social-youtube { background: #cf2e2e; }
.social-channel-grid .social-tiktok { background: #171a20; }
.social-channel-grid .social-instagram { background: linear-gradient(135deg, #7e35c8, #db3b77, #e88e31); }
.social-channel-grid .social-facebook { background: #2464b8; }
.social-channel-grid a small,
.social-channel-grid a strong { color: #fff; }
.social-channel-grid .social-icon { color: #fff; background: rgba(255, 255, 255, 0.14); }
.membership-section-rich { padding-block: 62px; }
.membership-feature-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 0.58fr); gap: 44px; }
.membership-heading h2 { max-width: 720px; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3.1rem); }
.membership-heading > p { max-width: 650px; font-size: 0.9rem; }
.membership-benefit-row > span { min-height: 72px; display: grid; grid-template-columns: 34px 1fr; align-items: center; align-content: center; }
.membership-benefit-row > span:nth-child(1) { background: rgba(201, 91, 79, 0.22); }
.membership-benefit-row > span:nth-child(2) { background: rgba(183, 138, 61, 0.22); }
.membership-benefit-row > span:nth-child(3) { background: rgba(41, 143, 117, 0.22); }
.membership-benefit-row small { display: none; }
.membership-community-visual::before { width: 55px; height: 55px; position: absolute; z-index: 2; top: 18px; left: -18px; background: var(--coral); border-radius: 50%; content: ""; }
.membership-community-visual img { height: 300px; }
.membership-series-grid { margin-top: 22px; }
.membership-series-grid a { min-height: 112px; grid-template-columns: 38px 1fr; align-content: center; gap: 4px 10px; }
.membership-series-grid a:nth-child(1) { background: rgba(201, 91, 79, 0.16); }
.membership-series-grid a:nth-child(2) { background: rgba(183, 138, 61, 0.16); }
.membership-series-grid a:nth-child(3) { background: rgba(41, 143, 117, 0.16); }
.membership-series-grid .membership-series-icon { grid-row: 1 / 3; }
.membership-series-grid .membership-series-icon svg { width: 36px; height: 36px; padding: 8px; background: rgba(255, 255, 255, 0.1); border-radius: 10px; }
.membership-series-grid strong { grid-column: auto; font-family: inherit; font-size: 0.93rem; }

.support-page-hero { min-height: 540px; padding-block: 70px; }
.support-page-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 0.55fr); gap: 55px; }
.support-hero-orbit { width: min(100%, 390px); }
.support-hero-orbit article { width: 132px; }
.support-orbit-book { right: -8px; }
.support-paths-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.support-path-card,
.support-path-card:nth-child(even) { display: grid; grid-template-columns: 1fr; border-radius: 18px; }
.support-path-card:nth-child(even) .support-path-image,
.support-path-card:nth-child(even) .support-path-copy { grid-column: 1; grid-row: auto; }
.support-path-card:nth-child(even) .support-path-image { grid-row: 1; }
.support-path-image,
.support-path-image img { min-height: 220px; height: 220px; }
.support-path-copy { padding: 26px 23px 24px; }
.support-path-number { top: 18px; right: 18px; font-size: 2.7rem; }
.support-path-icon { width: 45px; height: 45px; margin-bottom: 16px; }
.support-path-copy h3 { font-size: 1.55rem; }
.support-path-copy p { font-size: 0.78rem; }
.support-impact-copy h2 { font-size: clamp(1.9rem, 3vw, 2.75rem); }
.support-impact-grid article { min-height: 150px; }
.support-impact-grid article:nth-child(1) { background: rgba(76, 132, 194, 0.18); }
.support-impact-grid article:nth-child(2) { background: rgba(201, 91, 79, 0.16); }
.support-impact-grid article:nth-child(3) { background: rgba(183, 138, 61, 0.17); }
.support-impact-grid article:nth-child(4) { background: rgba(41, 143, 117, 0.17); }
.support-impact-grid span { margin-top: 16px; font-size: 1.15rem; }

.game-catalog-grid-two { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.game-launch-card { display: grid; grid-template-columns: 1fr; border-radius: 18px; }
.game-launch-image { min-height: 230px; position: relative; }
.game-launch-image > img { width: 100%; height: 230px; object-fit: cover; }
.game-launch-card > div:last-child { padding: 23px; }
.game-launch-card h2 { margin: 7px 0; font-size: 1.6rem; }
.game-launch-card p { color: var(--muted); font-size: 0.77rem; }
.game-launch-card ul { margin: 13px 0 18px; font-size: 0.72rem; }
.game-cover-overlay { display: flex; position: absolute; z-index: 2; right: 12px; bottom: 12px; align-items: end; gap: 7px; }
.game-cover-overlay a { width: 52px; display: grid; gap: 3px; padding: 5px; color: var(--navy-950); background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(255, 255, 255, 0.75); border-radius: 8px; box-shadow: 0 8px 20px rgba(6, 26, 51, 0.18); backdrop-filter: blur(6px); }
.game-cover-overlay a:hover { transform: translateY(-3px); }
.game-cover-overlay img { width: 100%; height: 62px; object-fit: cover; object-position: top; border-radius: 4px; }
.game-cover-overlay span { overflow: hidden; font-size: 0.51rem; font-weight: 850; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.game-cover-overlay-single a { width: 62px; }
.game-cover-overlay-single img { height: 75px; }
.game-source-bar { max-width: 800px; display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 0 auto 10px; padding: 10px 13px; color: var(--muted); background: rgba(255, 255, 255, 0.72); border: 1px solid var(--line); border-radius: 12px; font-size: 0.7rem; }
.game-source-bar label { display: flex; align-items: center; gap: 8px; color: var(--navy-950); font-weight: 800; }
.game-source-bar select { height: 34px; padding-inline: 9px; border: 1px solid var(--line); border-radius: 8px; }
.game-book-companion { max-width: 800px; display: grid; grid-template-columns: 45px 1fr; align-items: center; gap: 12px; margin: 0 auto 12px; padding: 8px 12px; color: var(--navy-950); background: rgba(255, 255, 255, 0.58); border: 1px solid rgba(255, 255, 255, 0.9); border-radius: 12px; }
.game-book-companion img { width: 45px; height: 58px; object-fit: cover; opacity: 0.82; border-radius: 4px; }
.game-book-companion span { display: grid; }
.game-book-companion small { color: var(--brand-700); font-size: 0.58rem; font-weight: 850; text-transform: uppercase; }
.game-book-companion strong { font-size: 0.76rem; }
.character-audio-row { display: flex; align-items: center; gap: 14px; }
.character-audio-row button { width: 44px; height: 44px; display: grid; place-items: center; color: var(--brand-700); background: var(--brand-050); border: 1px solid #cad9e8; border-radius: 50%; cursor: pointer; }
.character-audio-row button svg { width: 23px; height: 23px; }
.character-source { display: grid; gap: 2px; margin-top: 8px; }
.character-source b { color: var(--coral); font-size: 0.65rem; }
.character-source span { color: var(--muted); font-size: 0.63rem; }
.game-load-error { padding: 10px; color: #8b342d; background: var(--coral-soft); border-radius: 9px; font-size: 0.73rem; }
.game-book-links { max-width: 920px; display: flex; justify-content: flex-end; gap: 7px; margin: 0 auto 10px; }
.game-book-links a { width: 48px; display: grid; gap: 2px; padding: 4px; color: var(--navy-950); background: rgba(255, 255, 255, 0.76); border: 1px solid var(--line); border-radius: 7px; text-align: center; }
.game-book-links img { width: 100%; height: 58px; object-fit: cover; object-position: top; opacity: 0.85; border-radius: 3px; }
.game-book-links span { font-size: 0.49rem; font-weight: 850; }

.download-catalog-tools { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.download-search { min-width: min(100%, 360px); display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: 8px; padding: 0 13px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.download-search svg { width: 20px; height: 20px; color: var(--brand-700); }
.download-search input { height: 46px; border: 0; outline: 0; }
.download-filter-row { display: flex; flex-wrap: wrap; gap: 6px; }
.download-filter-row button { padding: 9px 12px; color: var(--navy-950); background: #fff; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-size: 0.69rem; font-weight: 800; }
.download-filter-row button.is-active { color: #fff; background: var(--brand-700); border-color: var(--brand-700); }
.download-catalog-index { border-top: 1px solid var(--line); }
.download-catalog-index .download-catalog-card { grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 20px; padding: 18px 0; border-width: 0 0 1px; border-radius: 0; box-shadow: none; }
.download-catalog-image { width: 88px; height: 112px; display: block; overflow: hidden; background: var(--brand-050); border-radius: 9px; }
.download-catalog-image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.download-catalog-index .download-catalog-card h2 { margin: 4px 0; font-size: 1.4rem; }
.download-catalog-index .download-catalog-card p { margin: 0; font-size: 0.76rem; }

.books-index-hero { min-height: 520px; display: grid; align-items: center; overflow: hidden; color: #fff; background: radial-gradient(circle at 80% 30%, rgba(183, 138, 61, 0.32), transparent 28%), linear-gradient(125deg, var(--navy-950), #123f70); }
.books-index-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; align-items: center; gap: 60px; }
.books-index-hero h1 { max-width: 800px; margin: 13px 0 18px; color: #fff; font-family: var(--serif); font-size: clamp(2.45rem, 4.3vw, 4.4rem); font-weight: 500; line-height: 1; }
.books-index-hero p { max-width: 680px; color: rgba(255, 255, 255, 0.74); }
.books-index-symbol { width: 290px; height: 290px; display: grid; position: relative; place-items: center; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 50%; }
.books-index-symbol span { font-family: "ECCLAI WenKai", KaiTi, serif; font-size: 8rem; }
.books-index-symbol i { position: absolute; background: #fff; opacity: 0.16; }
.books-index-symbol i:nth-child(2) { width: 45px; height: 45px; top: 25px; left: 5px; transform: rotate(20deg); }
.books-index-symbol i:nth-child(3) { width: 56px; height: 56px; right: -10px; bottom: 50px; border-radius: 50%; }
.books-index-symbol i:nth-child(4) { width: 70px; height: 15px; bottom: 0; left: 25px; border-radius: 999px; transform: rotate(-25deg); }
.books-topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.books-topic-card { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: 22px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; }
.books-topic-blue { background: #eef5ff; }
.books-topic-teal { background: #edf8f3; }
.books-topic-violet { background: #f4effb; }
.books-topic-coral { background: #fff0ec; }
.books-topic-cover { height: 190px; display: block; overflow: hidden; border-radius: 8px; box-shadow: var(--shadow-sm); }
.books-topic-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.books-topic-card small { color: var(--brand-700); font-size: 0.65rem; font-weight: 850; text-transform: uppercase; }
.books-topic-card h3 { margin: 7px 0; font-family: var(--serif); font-size: 1.45rem; font-weight: 500; line-height: 1.12; }
.books-topic-card h3 a { color: var(--navy-950); }
.books-topic-card p { color: var(--muted); font-size: 0.77rem; }

.videos-page main { display: flex; flex-direction: column; }
.videos-page .member-video-section { order: 4; }
.videos-page .playlist-depth { order: 5; }

@media (max-width: 980px) {
  .blog-catalog-tools { grid-template-columns: 1fr 1fr; }
  .blog-search-wrap { grid-column: 1 / -1; }
  .resource-video-featured { grid-column: span 2; }
  .game-catalog-grid-two,
  .support-paths-grid { grid-template-columns: 1fr; }
  .game-launch-card { grid-template-columns: 260px 1fr; }
  .game-launch-image,
  .game-launch-image > img { height: 100%; min-height: 260px; }
  .books-topic-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .blog-home-v2 .blog-home-grid,
  .resource-video-featured,
  .books-index-hero-grid { grid-template-columns: 1fr; }
  .resource-video-featured { grid-column: auto; }
  .blog-home-categories { grid-template-columns: 1fr; }
  .blog-catalog-tools { grid-template-columns: 1fr; }
  .blog-search-wrap { grid-column: auto; }
  .blog-tool-select select { width: 100%; }
  .blog-compact-entry { grid-template-columns: 45px minmax(0, 1fr); gap: 12px; }
  .blog-compact-open { display: none; }
  .live-experience { min-height: 510px; }
  .live-experience-note { position: absolute; right: 10px; left: 10px; max-width: none; }
  .note-one { top: 10px; }
  .note-two { top: auto; bottom: 88px; }
  .note-three { bottom: 8px; }
  .membership-feature-grid { grid-template-columns: 1fr; }
  .membership-community-visual img { height: 260px; }
  .support-page-hero-grid { grid-template-columns: 1fr; }
  .support-hero-orbit { margin-inline: auto; }
  .game-launch-card { grid-template-columns: 1fr; }
  .game-launch-image,
  .game-launch-image > img { min-height: 220px; height: 220px; }
  .game-source-bar { align-items: stretch; flex-direction: column; }
  .game-source-bar label { align-items: stretch; flex-direction: column; }
  .download-catalog-index .download-catalog-card { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; }
  .download-catalog-image { width: 70px; height: 92px; }
  .download-actions { align-items: flex-start; }
  .books-index-symbol { width: 220px; height: 220px; justify-self: center; }
  .books-index-symbol span { font-size: 6rem; }
  .books-topic-card { grid-template-columns: 105px minmax(0, 1fr); gap: 15px; padding: 16px; }
  .books-topic-cover { height: 145px; }
}

.sentence-board { max-width: 920px; margin-inline: auto; padding: 31px; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-lg); }
.sentence-clue { display: grid; gap: 5px; padding: 24px 0 20px; text-align: center; }
.sentence-clue span { color: var(--green); font-size: 0.7rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.sentence-clue strong { color: var(--navy-950); font-family: var(--serif); font-size: clamp(1.55rem, 3vw, 2.35rem); font-weight: 500; }
.sentence-clue small { color: var(--muted); font-size: 0.9rem; }
.sentence-answer, .sentence-bank { min-height: 92px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 9px; padding: 14px; border-radius: 15px; }
.sentence-answer { background: linear-gradient(145deg, #eff9f5, #fff); border: 2px dashed #83b9aa; }
.sentence-answer > span { color: #6f887f; font-size: 0.77rem; }
.sentence-bank { margin-top: 12px; background: var(--brand-050); border: 1px solid #d3e0ef; }
.sentence-token { min-width: 58px; min-height: 52px; padding: 8px 13px; color: var(--navy-950); background: var(--paper); border: 1px solid #c7d5e5; border-radius: 11px; box-shadow: 0 5px 12px rgba(6, 26, 51, 0.07); cursor: pointer; font-size: 1.55rem; }
.sentence-token:hover:not(:disabled) { border-color: var(--brand-600); transform: translateY(-1px); }
.sentence-token.is-in-answer { background: #fff8e9; border-color: #d9b86d; }
.sentence-feedback { min-height: 80px; margin: 16px 0; padding: 14px 16px; background: #f7f9fc; border-radius: 12px; }
.sentence-feedback strong { color: var(--navy-950); font-size: 0.82rem; }
.sentence-feedback p { margin: 3px 0 0; color: var(--muted); font-size: 0.76rem; }
.sentence-feedback.is-correct { background: var(--green-soft); }
.sentence-feedback.is-wrong { background: var(--coral-soft); }
.sentence-actions { display: grid; grid-template-columns: auto 1fr 1fr; gap: 9px; }
.sentence-actions .button { width: 100%; }
.sentence-actions button:disabled { opacity: 0.48; cursor: not-allowed; }

.support-page-hero { min-height: 640px; display: grid; align-items: center; overflow: hidden; padding: 80px 0; color: var(--paper); background: radial-gradient(circle at 72% 50%, rgba(183, 138, 61, 0.28), transparent 27%), radial-gradient(circle at 12% 100%, rgba(201, 91, 79, 0.22), transparent 34%), var(--navy-950); }
.support-page-hero-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.7fr); align-items: center; gap: clamp(48px, 8vw, 110px); }
.support-page-hero h1 { max-width: 780px; margin: 15px 0 20px; color: var(--paper); font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 5.1rem); font-weight: 500; line-height: 0.98; }
.support-page-hero-copy > p { max-width: 700px; color: rgba(255, 255, 255, 0.75); font-size: 1.05rem; }
.support-page-hero .button-row { margin-top: 30px; }
.support-hero-orbit { width: min(100%, 480px); aspect-ratio: 1; position: relative; justify-self: center; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 50%; }
.support-hero-orbit::before, .support-hero-orbit::after { position: absolute; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 50%; content: ""; }
.support-hero-orbit::before { inset: 46px; }
.support-hero-orbit::after { inset: 105px; }
.support-hero-heart { width: 128px; height: 128px; display: grid; position: absolute; z-index: 2; top: 50%; left: 50%; place-items: center; color: #ffb4aa; background: linear-gradient(145deg, rgba(201, 91, 79, 0.68), rgba(107, 86, 165, 0.55)); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; box-shadow: 0 22px 50px rgba(0, 0, 0, 0.25); transform: translate(-50%, -50%); }
.support-hero-heart svg { width: 52px; height: 52px; }
.support-hero-orbit article { width: 150px; display: grid; position: absolute; z-index: 3; grid-template-columns: 36px 1fr; gap: 2px 9px; padding: 13px; color: var(--navy-950); background: rgba(255, 255, 255, 0.95); border-radius: 13px; box-shadow: var(--shadow-sm); }
.support-hero-orbit article svg { width: 36px; height: 36px; grid-row: 1 / 3; padding: 8px; color: var(--brand-700); background: var(--brand-050); border-radius: 10px; }
.support-hero-orbit article strong { font-size: 0.78rem; }
.support-hero-orbit article small { color: var(--muted); font-size: 0.65rem; }
.support-orbit-video { top: 25px; left: 4px; }
.support-orbit-book { top: 155px; right: -22px; }
.support-orbit-game { bottom: 30px; left: 10px; }

.support-paths-section { background: var(--warm); }
.support-paths-grid { display: grid; gap: 22px; }
.support-path-card { display: grid; grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1fr); overflow: hidden; background: var(--paper); border: 1px solid #ddd5c8; border-radius: 24px; box-shadow: var(--shadow-sm); }
.support-path-card:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr); }
.support-path-card:nth-child(even) .support-path-image { grid-column: 2; grid-row: 1; }
.support-path-card:nth-child(even) .support-path-copy { grid-column: 1; grid-row: 1; }
.support-path-image { min-height: 430px; overflow: hidden; }
.support-path-image img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }
.support-path-copy { display: grid; position: relative; align-content: center; padding: clamp(34px, 5vw, 64px); }
.support-path-number { position: absolute; top: 24px; right: 30px; color: #d8dee7; font-family: var(--serif); font-size: 4.3rem; line-height: 1; }
.support-path-icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 28px; color: var(--coral); background: var(--coral-soft); border-radius: 16px; }
.support-path-membership .support-path-icon { color: var(--violet); background: var(--violet-soft); }
.support-path-books .support-path-icon { color: var(--gold); background: var(--gold-soft); }
.support-path-icon svg { width: 26px; height: 26px; }
.support-path-copy > small { color: var(--brand-700); font-size: 0.69rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.support-path-copy h3 { max-width: 620px; margin: 10px 0 14px; color: var(--navy-950); font-family: var(--serif); font-size: clamp(2rem, 3.5vw, 3.2rem); font-weight: 500; line-height: 1.02; }
.support-path-copy p { max-width: 700px; color: var(--muted); font-size: 0.95rem; }
.support-path-copy .button { justify-self: start; margin-top: 8px; }

.support-impact-section { color: var(--paper); background: var(--navy-900); }
.support-impact-layout { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr); gap: clamp(50px, 8vw, 110px); }
.support-impact-copy h2 { margin: 15px 0; color: var(--paper); font-family: var(--serif); font-size: clamp(2rem, 3.8vw, 3.45rem); font-weight: 500; line-height: 1.05; }
.support-impact-copy p { color: rgba(255, 255, 255, 0.68); }
.text-link-light { color: #c9ddf7; }
.support-impact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.support-impact-grid article { min-height: 200px; padding: 24px; background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 16px; }
.support-impact-grid svg { width: 44px; height: 44px; padding: 10px; color: #f2dcae; background: rgba(255, 255, 255, 0.09); border-radius: 13px; }
.support-impact-grid span { display: block; margin: 28px 0 7px; font-family: var(--serif); font-size: 1.35rem; }
.support-impact-grid p { margin: 0; color: rgba(255, 255, 255, 0.65); font-size: 0.78rem; }

.support-free-section { background: var(--brand-050); }
.support-free-card { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr); align-items: center; gap: clamp(40px, 8vw, 100px); padding: clamp(32px, 5vw, 60px); background: var(--paper); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow-sm); }
.support-free-card h2 { margin: 12px 0; }
.support-free-card > div > p { color: var(--muted); }
.support-free-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.support-free-card li { display: grid; grid-template-columns: 48px 1fr; gap: 13px; padding: 15px; background: var(--brand-050); border-radius: 14px; }
.support-free-card li > svg { width: 48px; height: 48px; grid-row: 1; padding: 12px; color: var(--brand-700); background: var(--paper); border-radius: 13px; }
.support-free-card li > span { display: grid; }
.support-free-card li strong { color: var(--navy-950); font-size: 0.88rem; }
.support-free-card li small { color: var(--muted); font-size: 0.75rem; }

@media (max-width: 1180px) {
  .newsletter-community-rich .newsletter-community-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .newsletter-community-card > div:first-child { grid-column: 1 / -1; }
  .newsletter-community-visual { min-height: 400px; }
  .membership-feature-grid { grid-template-columns: 1fr; }
  .membership-community-visual { max-width: 820px; }
}

@media (max-width: 920px) {
  .support-page-hero-grid, .support-impact-layout, .support-free-card { grid-template-columns: 1fr; }
  .support-hero-orbit { width: min(82vw, 430px); margin-top: 20px; }
  .support-path-card, .support-path-card:nth-child(even) { grid-template-columns: 1fr; }
  .support-path-card:nth-child(even) .support-path-image, .support-path-card:nth-child(even) .support-path-copy { grid-column: 1; grid-row: auto; }
  .support-path-card:nth-child(even) .support-path-image { grid-row: 1; }
  .support-path-image, .support-path-image img { min-height: 350px; }
  .membership-benefit-row { grid-template-columns: repeat(3, minmax(170px, 1fr)); overflow-x: auto; }
}

@media (max-width: 640px) {
  .rail-controls { justify-content: space-between; margin-top: 0; }
  .rail-controls span { margin-right: auto; }
  .group-promise-card { padding: 24px 21px; }
  .download-actions { align-items: stretch; flex-direction: column; }
  .download-actions .button { width: 100%; }
  .newsletter-community-rich .newsletter-community-card { grid-template-columns: 1fr; padding: 23px 18px; }
  .newsletter-community-card > div:first-child { grid-column: 1; }
  .newsletter-community-visual { min-height: 330px; }
  .newsletter-icon-list li { grid-template-columns: 46px 1fr; }
  .membership-community-visual img { height: 340px; }
  .membership-benefit-row { grid-template-columns: 1fr; overflow: visible; }
  .membership-benefit-row > span { min-height: 0; }
  .sentence-board { padding: 22px 15px; }
  .sentence-answer, .sentence-bank { min-height: 78px; padding: 10px; }
  .sentence-token { min-width: 52px; min-height: 48px; font-size: 1.35rem; }
  .sentence-actions { grid-template-columns: 1fr; }
  .support-page-hero { min-height: 0; padding: 62px 0 75px; }
  .support-page-hero h1 { font-size: clamp(2.55rem, 12vw, 3.55rem); }
  .support-page-hero .button-row, .support-page-hero .button { width: 100%; }
  .support-hero-orbit { width: min(92%, 360px); }
  .support-hero-orbit article { width: 137px; }
  .support-orbit-book { right: -10px; }
  .support-path-image, .support-path-image img { min-height: 280px; }
  .support-path-copy { padding: 32px 23px; }
  .support-path-number { top: 18px; right: 20px; font-size: 3.4rem; }
  .support-path-copy h3 { font-size: 2.05rem; }
  .support-impact-grid { grid-template-columns: 1fr; }
  .support-impact-grid article { min-height: 0; }
  .support-free-card { padding: 27px 21px; }
}

/* Fase 3 · revisión de Alex (2026-08-22) */

/* Navigation indexes and dropdowns */
.nav-dropdown {
  position: relative;
}

.nav-parent-row {
  display: flex;
  align-items: center;
}

.nav-parent-link {
  position: relative;
  padding: 27px 2px 25px 0;
  color: #324051;
  white-space: nowrap;
}

.nav-parent-link::after {
  position: absolute;
  right: 0;
  bottom: 18px;
  left: 0;
  height: 2px;
  background: var(--brand-700);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
}

.nav-dropdown:hover .nav-parent-link,
.nav-dropdown:focus-within .nav-parent-link,
.nav-dropdown.is-active .nav-parent-link {
  color: var(--navy-900);
}

.nav-dropdown:hover .nav-parent-link::after,
.nav-dropdown:focus-within .nav-parent-link::after,
.nav-dropdown.is-active .nav-parent-link::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-submenu-toggle {
  width: 25px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #5a6776;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 1rem;
}

.nav-submenu-toggle > span[aria-hidden="true"] {
  transform: translateY(-2px);
  transition: transform 160ms ease;
}

.nav-submenu-toggle[aria-expanded="true"] > span[aria-hidden="true"] {
  transform: translateY(1px) rotate(180deg);
}

.nav-submenu {
  min-width: 230px;
  display: grid;
  position: absolute;
  z-index: 120;
  top: calc(100% - 10px);
  left: -18px;
  gap: 3px;
  padding: 11px;
  opacity: 0;
  visibility: hidden;
  background: rgba(255, 255, 255, 0.985);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 20px 46px rgba(6, 26, 51, 0.15);
  transform: translateY(8px);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

.nav-submenu a {
  padding: 10px 12px;
  color: #334354;
  border-radius: 9px;
  font-size: 0.82rem;
  white-space: nowrap;
}

.nav-submenu a:hover,
.nav-submenu a:focus-visible {
  color: var(--navy-950);
  background: var(--brand-050);
}

.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu,
.nav-dropdown.is-open .nav-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.brand-footer img {
  display: block;
}

/* BIS: background image style and one consistent hero scale */
.phase-hero-copy h1,
.detail-hero-copy h1,
.compact-page-hero h1 {
  max-width: 810px;
  font-size: clamp(2.35rem, 3.55vw, 3.35rem);
  line-height: 1.01;
}

.image-phase-hero,
.image-detail-hero {
  min-height: 490px;
  display: flex;
  position: relative;
  align-items: center;
  overflow: hidden;
  padding-block: 64px;
  background: var(--navy-950);
}

.image-phase-hero::before,
.image-detail-hero::before {
  display: none;
}

.image-detail-hero .detail-hero-grid {
  position: relative;
  z-index: 2;
}

.image-detail-hero .phase-hero-image-bg::after {
  background: linear-gradient(90deg, rgba(6, 26, 51, 0.98) 0 38%, rgba(6, 26, 51, 0.77) 64%, rgba(6, 26, 51, 0.27));
}

.image-detail-hero .session-promise-card {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(8px);
}

.phase-hero-grid-image,
.image-detail-hero .detail-hero-grid {
  grid-template-columns: minmax(0, 0.82fr) minmax(300px, 0.68fr);
}

.hero-quick-actions {
  gap: 8px;
}

.hero-quick-actions .button,
.image-detail-hero .button-row .button {
  min-height: 43px;
  padding: 10px 14px;
  font-size: 0.74rem;
  white-space: nowrap;
}

.aprender-hero-image img { object-position: center; }
.library-hero-image img { object-position: center; }
.blog-hero-image img { object-position: center; }
.session-hero-image img { object-position: center; }
.group-class-hero-image img { object-position: center; }
.audio-hero-image img { object-position: center; }
.downloads-hero-image img { object-position: center; }
.games-hero-image img { object-position: center; }

/* About: edited portrait, reordered story and compact student voices */
.about-photo-backdrop,
.about-profile-figure::after {
  display: none;
}

.about-profile-figure {
  padding: 0;
}

.about-profile-figure img {
  height: 440px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 24px;
  box-shadow: 0 26px 58px rgba(0, 0, 0, 0.25);
}

.horizontal-card-strip {
  display: flex;
  gap: 15px;
  padding: 3px 3px 18px;
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-color: var(--brand-600) rgba(45, 95, 167, 0.12);
  scrollbar-width: thin;
  touch-action: pan-x;
}

.horizontal-card-strip.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
  user-select: none;
}

.testimonial-grid .testimonial-card {
  width: min(350px, 82vw);
  min-width: min(350px, 82vw);
  min-height: 210px;
  scroll-snap-align: start;
}

.testimonial-tone-1 { background: linear-gradient(145deg, #ffffff, #eaf3ff); }
.testimonial-tone-2 { background: linear-gradient(145deg, #ffffff, #fff0ec); }
.testimonial-tone-3 { background: linear-gradient(145deg, #ffffff, #fff7df); }
.testimonial-tone-4 { background: linear-gradient(145deg, #ffffff, #eaf8f3); }
.testimonial-tone-5 { background: linear-gradient(145deg, #ffffff, #f3eefc); }

/* Aprender routes use a compact horizontal rail */
.learn-phase-hero .phase-hero-image-bg::after {
  background: linear-gradient(90deg, rgba(6, 26, 51, 0.98) 0 37%, rgba(6, 26, 51, 0.72) 63%, rgba(6, 26, 51, 0.3));
}

.learn-hero-layout {
  grid-template-columns: minmax(0, 0.78fr) minmax(430px, 0.92fr);
}

.learning-route-list-rich.horizontal-card-strip {
  display: flex;
  border: 0;
}

.learning-route-list-rich.horizontal-card-strip .learning-route,
.learning-route-list-rich.horizontal-card-strip .learning-route-featured {
  width: min(540px, 82vw);
  min-width: min(540px, 82vw);
  min-height: 350px;
  display: grid;
  grid-template-columns: 52px 1fr;
  grid-column: auto;
  padding: 27px;
  scroll-snap-align: start;
}

/* One-to-one sessions */
.experience-flow::before {
  display: none;
}

.experience-flow article {
  min-height: 245px;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
}

.experience-flow article:nth-child(1) { background: linear-gradient(145deg, #edf5ff, #fff); box-shadow: inset 0 0 0 1px #c9dced; }
.experience-flow article:nth-child(2) { background: linear-gradient(145deg, #fff0ec, #fff); box-shadow: inset 0 0 0 1px #edccc6; }
.experience-flow article:nth-child(3) { background: linear-gradient(145deg, #edf9f4, #fff); box-shadow: inset 0 0 0 1px #c9e4da; }
.experience-flow article:nth-child(4) { background: linear-gradient(145deg, #f4effc, #fff); box-shadow: inset 0 0 0 1px #ddd4ef; }
.experience-flow article:nth-child(2) > svg { color: var(--coral); background: var(--coral-soft); }
.experience-flow article:nth-child(3) > svg { color: var(--green); background: var(--green-soft); }
.experience-flow article:nth-child(4) > svg { color: var(--violet); background: var(--violet-soft); }
.experience-flow p { font-size: 0.91rem; line-height: 1.6; }
.topic-list li { font-size: 1.03rem; line-height: 1.45; }

/* Community */
.newsletter-community-card > div > p,
.newsletter-community-rich .newsletter-community-card > div > p {
  font-size: 1rem;
  line-height: 1.7;
}

.membership-section-rich #membership-title {
  color: var(--paper);
}

.membership-series-grid a {
  min-height: 205px;
  grid-template-columns: 52px 1fr auto;
  align-content: start;
  gap: 10px 14px;
  padding: 24px;
  color: var(--paper);
}

.membership-series-grid a.membership-series-coral { background: linear-gradient(145deg, rgba(201, 91, 79, 0.42), rgba(255, 255, 255, 0.08)); }
.membership-series-grid a.membership-series-gold { background: linear-gradient(145deg, rgba(183, 138, 61, 0.42), rgba(255, 255, 255, 0.08)); }
.membership-series-grid a.membership-series-teal { background: linear-gradient(145deg, rgba(22, 115, 95, 0.45), rgba(255, 255, 255, 0.08)); }

.membership-series-grid .membership-series-icon {
  width: 52px;
  height: 52px;
  display: grid;
  grid-row: 1 / 3;
  place-items: center;
  padding: 0;
  color: var(--paper);
  background: rgba(255, 255, 255, 0.13);
  border-radius: 14px;
}

.membership-series-icon svg {
  width: 25px;
  height: 25px;
}

.membership-series-grid small {
  color: #ffe9be;
  font-size: 0.69rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.membership-series-grid strong {
  grid-column: 2 / -1;
  margin-top: 16px;
  font-size: 1.35rem;
}

.membership-series-grid i {
  grid-column: 3;
  grid-row: 1;
}

.support-community-image img {
  display: block;
  background: var(--gold-soft);
}

/* Biblioteca and books */
.resource-hub-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.resource-video-featured {
  min-height: 235px;
  grid-column: 1 / -1;
  padding: 30px;
  color: var(--paper);
  background: linear-gradient(120deg, var(--navy-950), #793f46);
  border: 0;
}

.resource-video-featured .resource-hub-icon {
  margin-bottom: 20px;
  color: #ffe1dc;
  background: rgba(255, 255, 255, 0.1);
}

.resource-video-featured small,
.resource-video-featured h3,
.resource-video-featured strong {
  color: var(--paper);
}

.resource-video-featured h3 {
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}

.resource-video-featured p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.9rem;
}
.resource-video-photo { overflow:hidden; border:0; background:#0c2748; box-shadow:0 18px 36px rgb(0 0 0 / 22%); }
.resource-video-photo img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center right; }

.catalog-book-hero .detail-hero-copy h1 {
  font-size: clamp(2.35rem, 3.55vw, 3.35rem);
}

.catalog-book-stage {
  min-height: 430px;
  padding: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
}

.catalog-book-stage::before {
  display: none;
}

.catalog-book-stage img {
  height: 390px;
  filter: drop-shadow(0 26px 28px rgba(0, 0, 0, 0.28));
  box-shadow: none;
}

.book-inside-grid article {
  grid-template-columns: 52px 1fr;
  padding: 25px;
}

.book-inside-grid article > span {
  width: 48px;
  height: 48px;
}

.book-inside-grid article > span svg {
  width: 24px;
  height: 24px;
}

.book-inside-grid h3 { font-size: 1.28rem; }
.book-inside-grid p { font-size: 0.92rem; line-height: 1.55; }

/* Videos */
.video-session-immediate {
  padding: 22px 0;
  background: #edf4fc;
}

.video-session-immediate .member-practice-strip {
  margin: 0;
}

.member-playlist-grid .video-image img {
  object-fit: contain;
  background: var(--navy-950);
}

/* Downloads and blog readability */
.status-ready {
  color: #0f654f;
  background: var(--green-soft);
}

.blog-category-card p,
.blog-category-section .section-heading > p,
.blog-category-section .split-heading > p {
  font-size: 0.94rem;
  line-height: 1.6;
}

/* Games */
.game-catalog-grid-two {
  grid-template-columns: 1fr;
}

.game-launch-image {
  min-height: 420px;
  overflow: hidden;
  background: var(--navy-950);
}

.game-launch-image img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  display: block;
  object-fit: cover;
  object-position: center;
}

.game-pair-art {
  min-height: 420px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  place-items: center;
  gap: 13px;
  padding: 32px;
  color: var(--paper);
  background: linear-gradient(145deg, var(--navy-950), #4c3e78);
}

.game-pair-art span {
  font-family: KaiTi, STKaiti, "Kaiti SC", "Noto Serif CJK SC", serif;
  font-size: 4.4rem;
  font-weight: 400;
}

.game-pair-art strong {
  font-size: 1.05rem;
}

.game-pair-art i {
  color: #f3d38f;
  font-style: normal;
}

.character-prompt strong,
.matching-tile.is-character {
  font-family: KaiTi, STKaiti, "Kaiti SC", "Noto Serif CJK SC", serif;
  font-weight: 400;
}

.matching-board {
  max-width: 920px;
  margin-inline: auto;
  padding: 30px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-lg);
}

.matching-feedback {
  margin: 0 0 18px;
  padding: 14px 16px;
  color: var(--navy-900);
  background: var(--gold-soft);
  border-radius: 12px;
  font-weight: 750;
  text-align: center;
}

.matching-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.matching-tile {
  min-height: 92px;
  padding: 12px;
  color: var(--navy-950);
  background: var(--brand-050);
  border: 2px solid transparent;
  border-radius: 14px;
  cursor: pointer;
  font-weight: 750;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

.matching-tile.is-character {
  color: var(--navy-950);
  background: #fff6e6;
  font-size: 2.6rem;
}

.matching-tile:hover:not(:disabled) {
  transform: translateY(-2px);
  border-color: var(--brand-600);
}

.matching-tile.is-selected {
  background: #dfeeff;
  border-color: var(--brand-600);
}

.matching-tile.is-matched {
  color: #0e5747;
  background: var(--green-soft);
  border-color: #76b7a5;
}

.matching-tile.is-wrong {
  color: #913e35;
  background: var(--coral-soft);
  border-color: #df9e97;
}

.matching-restart {
  width: 100%;
  margin-top: 18px;
}

@media (max-width: 1080px) {
  .hero-quick-actions {
    flex-wrap: wrap;
  }

  .resource-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resource-video-featured {
    grid-column: 1 / -1;
  }
}

@media (max-width: 920px) {
  .nav-dropdown {
    width: 100%;
  }

  .nav-parent-row {
    border-bottom: 1px solid var(--line);
  }

  .nav-parent-link {
    flex: 1;
    padding: 17px 7px;
    font-family: var(--serif);
    font-size: 1.65rem;
    font-weight: 500;
  }

  .nav-parent-link::after {
    display: none;
  }

  .nav-submenu-toggle {
    width: 52px;
    height: 58px;
    font-size: 1.25rem;
  }

  .main-nav .nav-submenu {
    min-width: 0;
    display: none;
    position: static;
    gap: 2px;
    padding: 8px 8px 13px 22px;
    opacity: 1;
    visibility: visible;
    background: #f7f9fc;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none;
  }

  .main-nav .nav-dropdown.is-open .nav-submenu {
    display: grid;
  }

  .main-nav .nav-submenu a {
    padding: 10px 12px;
    font-size: 0.9rem;
  }

  .phase-hero-grid-image,
  .image-detail-hero .detail-hero-grid,
  .learn-hero-layout {
    grid-template-columns: 1fr;
  }

  .image-phase-hero,
  .image-detail-hero {
    min-height: 500px;
  }

  .image-phase-hero .phase-hero-image-bg::after,
  .image-detail-hero .phase-hero-image-bg::after,
  .learn-phase-hero .phase-hero-image-bg::after {
    background: linear-gradient(90deg, rgba(6, 26, 51, 0.95), rgba(6, 26, 51, 0.61));
  }

  .route-jump-nav-rich {
    max-width: 760px;
  }

  .experience-flow,
  .membership-series-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-book-stage img {
    height: 350px;
  }

  .game-launch-card {
    grid-template-columns: 1fr;
  }

  .game-launch-image,
  .game-launch-image img,
  .game-pair-art {
    min-height: 340px;
  }

  .matching-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .hero-quick-actions,
  .image-detail-hero .button-row {
    align-items: stretch;
    flex-direction: column;
  }

  .hero-quick-actions .button,
  .image-detail-hero .button-row .button {
    width: 100%;
  }

  .phase-hero-copy h1,
  .detail-hero-copy h1,
  .compact-page-hero h1 {
    font-size: clamp(2.25rem, 11vw, 3.05rem);
  }

  .about-profile-figure img {
    height: 410px;
  }

  .learning-route-list-rich.horizontal-card-strip .learning-route,
  .learning-route-list-rich.horizontal-card-strip .learning-route-featured {
    width: 86vw;
    min-width: 86vw;
    min-height: 0;
    grid-template-columns: 42px 1fr;
    padding: 22px 18px;
  }

  .route-jump-nav-rich {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .route-jump-nav-rich a {
    grid-template-columns: 31px 1fr;
    padding: 10px;
  }

  .route-jump-nav-rich svg {
    width: 31px;
    height: 31px;
    padding: 7px;
  }

  .route-jump-nav-rich small {
    display: none;
  }

  .experience-flow,
  .membership-series-grid,
  .resource-hub-grid,
  .matching-grid {
    grid-template-columns: 1fr;
  }

  .resource-video-featured {
    grid-column: auto;
  }

  .catalog-book-stage {
    min-height: 350px;
  }

  .catalog-book-stage img {
    height: 315px;
  }

  .game-launch-image,
  .game-launch-image img,
  .game-pair-art {
    min-height: 290px;
  }

  .game-pair-art {
    padding: 22px;
  }

  .game-pair-art span {
    font-size: 3.35rem;
  }

  .matching-board {
    padding: 20px 16px;
  }

  .matching-tile {
    min-height: 70px;
  }
}

/* Lote 2: prevalecen sobre los ajustes heredados del lote anterior. */
.horizontal-card-strip {
  scroll-behavior: auto;
  scroll-snap-type: x proximity;
  overscroll-behavior-inline: contain;
}

.horizontal-card-strip.is-dragging {
  scroll-snap-type: none;
}

.horizontal-card-strip.is-stepping {
  scroll-snap-type: none;
}

.character-prompt strong,
.matching-tile.is-character,
.sentence-token,
.sentence-answer button {
  font-family: "Songti SC", STSong, "Noto Serif CJK SC", "Source Han Serif SC", SimSun, NSimSun, serif;
  font-weight: 400;
}

.game-related-buttons { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; }
.sentence-source-tools { max-width:920px; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:18px auto; padding:13px 16px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); }
.sentence-book-companion { display:flex; align-items:center; gap:12px; color:var(--navy-950); }
.sentence-book-companion img { width:44px; height:62px; object-fit:contain; border-radius:4px; box-shadow:0 4px 12px rgb(6 26 51 / 14%); }
.sentence-book-companion span { display:grid; gap:3px; }
.sentence-book-companion small { color:var(--green); font-size:.64rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.sentence-book-companion strong { font-size:.84rem; }
.sentence-source-tools label { display:flex; align-items:center; gap:10px; color:var(--navy-950); font-size:.76rem; font-weight:800; }
.sentence-source-tools select { min-height:42px; padding:8px 12px; color:var(--navy-950); background:#f6f9fc; border:1px solid #ccd8e4; border-radius:10px; font:inherit; font-weight:500; }

@media(max-width:640px){.sentence-source-tools{align-items:stretch;flex-direction:column}.sentence-source-tools label{align-items:stretch;flex-direction:column}.sentence-source-tools select{width:100%}}

/* Circular rails use continuous movement; snapping between cloned sets caused visible jumps. */
.horizontal-card-strip[data-loop-scroll] {
  scroll-snap-type: none;
}

/* Blog publicado · catálogo y lecturas */
.blog-category-card {
  appearance: none;
  width: 100%;
  min-height: 320px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.blog-category-card:hover,
.blog-category-card:focus-visible,
.blog-category-card.is-active {
  transform: translateY(-4px);
  border-color: var(--brand-500);
  box-shadow: var(--shadow-md);
}

.blog-category-card .blog-category-glyph {
  width: 58px;
  height: 58px;
  margin-bottom: 28px;
  font-family: "ECCLAI WenKai", KaiTi, serif;
  font-size: 2rem;
  font-weight: 400;
}

.blog-category-card strong {
  margin: 9px 0 10px;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 600;
  line-height: 1.08;
}

.blog-category-card em {
  color: var(--muted);
  font-size: 0.88rem;
  font-style: normal;
  line-height: 1.55;
}

.blog-category-card b {
  margin-top: auto;
  padding-top: 20px;
  color: var(--brand-700);
  font-size: 0.76rem;
}

.blog-catalog-section { background: #f4f7fb; }
.blog-catalog-heading { margin-bottom: 26px; }
.blog-catalog-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 330px); gap: 18px; align-items: center; margin-bottom: 14px; }
.blog-filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.blog-filter-row button { appearance: none; padding: 10px 14px; color: var(--navy-800); background: #fff; border: 1px solid #d6e0ec; border-radius: 999px; font: inherit; font-size: 0.78rem; font-weight: 750; cursor: pointer; }
.blog-filter-row button span { color: var(--muted); font-size: 0.68rem; }
.blog-filter-row button:hover,
.blog-filter-row button:focus-visible,
.blog-filter-row button.is-active { color: #fff; background: var(--brand-700); border-color: var(--brand-700); }
.blog-filter-row button.is-active span { color: #dcecff; }
.blog-search { display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 14px; background: #fff; border: 1px solid #d6e0ec; border-radius: 14px; }
.blog-search:focus-within { border-color: var(--brand-500); box-shadow: 0 0 0 3px rgba(36, 107, 170, 0.13); }
.blog-search svg { width: 20px; color: var(--brand-700); }
.blog-search input { width: 100%; padding: 12px 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 0.86rem; }
.blog-result-count { margin: 0 0 18px; color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.blog-article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.blog-article-card { display: flex; flex-direction: column; min-height: 305px; padding: 23px; background: #fff; border: 1px solid #dce4ed; border-radius: 19px; box-shadow: 0 10px 28px rgba(18, 39, 64, 0.05); }
.blog-article-card[hidden] { display: none; }
.blog-article-card-top { display: flex; align-items: center; gap: 10px; margin-bottom: 19px; }
.blog-card-glyph { width: 38px; height: 38px; display: grid; place-items: center; color: var(--brand-700); background: var(--brand-050); border-radius: 11px; font-family: "ECCLAI WenKai", KaiTi, serif; font-size: 1.25rem; }
.blog-card-glyph.blog-category-coral { color: #a44332; background: #fff1ed; }
.blog-card-glyph.blog-category-green { color: #23745c; background: #e9f7f1; }
.blog-card-glyph.blog-category-violet { color: #694998; background: #f3edfc; }
.blog-article-card-top small { color: var(--muted); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.blog-article-card h3 { margin: 0 0 11px; font-family: var(--serif); font-size: clamp(1.18rem, 1.5vw, 1.42rem); line-height: 1.16; }
.blog-article-card h3 a { color: var(--navy-950); text-decoration: none; }
.blog-article-card h3 a:hover { color: var(--brand-700); }
.blog-article-card p { margin: 0 0 20px; color: var(--muted); font-size: 0.8rem; line-height: 1.58; }
.blog-card-link { margin-top: auto; color: var(--brand-700); font-size: 0.76rem; font-weight: 800; text-decoration: none; }
.blog-card-link:hover { text-decoration: underline; }
.blog-empty-state { max-width: 620px; margin: 38px auto 0; padding: 42px; text-align: center; background: #fff; border: 1px solid #dce4ed; border-radius: 22px; }
.blog-empty-state > span { width: 56px; height: 56px; display: grid; place-items: center; margin: 0 auto 15px; color: var(--brand-700); background: var(--brand-050); border-radius: 50%; }
.blog-empty-state svg { width: 26px; }

.article-page-hero { position: relative; overflow: hidden; padding: clamp(70px, 9vw, 120px) 0 clamp(62px, 8vw, 105px); background: linear-gradient(135deg, #eff6fd, #fff); }
.article-page-hero::before { content: ""; position: absolute; inset: auto -10% -65% auto; width: min(55vw, 700px); aspect-ratio: 1; border: 1px solid rgba(36, 107, 170, 0.15); border-radius: 50%; box-shadow: 0 0 0 80px rgba(36, 107, 170, 0.035), 0 0 0 160px rgba(36, 107, 170, 0.025); }
.article-page-hero.blog-theme-coral { background: linear-gradient(135deg, #fff1ed, #fff); }
.article-page-hero.blog-theme-green { background: linear-gradient(135deg, #eaf8f2, #fff); }
.article-page-hero.blog-theme-violet { background: linear-gradient(135deg, #f3edfc, #fff); }
.article-hero-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: clamp(38px, 7vw, 90px); align-items: center; }
.article-hero-copy { max-width: 810px; }
.article-breadcrumb { display: flex; gap: 8px; margin-bottom: 28px; color: var(--muted); font-size: 0.75rem; }
.article-breadcrumb a { color: inherit; }
.article-hero-copy h1 { max-width: 900px; margin: 12px 0 20px; color: var(--navy-950); font-family: var(--serif); font-size: clamp(2.45rem, 5.6vw, 5.15rem); font-weight: 500; letter-spacing: -0.045em; line-height: 0.98; }
.article-hero-copy > p { max-width: 760px; color: #496177; font-size: clamp(1rem, 1.55vw, 1.22rem); line-height: 1.6; }
.article-meta { display: flex; flex-wrap: wrap; gap: 15px 24px; margin-top: 28px; color: var(--muted); font-size: 0.75rem; font-weight: 700; }
.article-meta span { display: inline-flex; align-items: center; gap: 7px; }
.article-meta svg { width: 17px; color: var(--brand-700); }
.article-hero-mark { width: 220px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; gap: 6px; color: var(--brand-700); background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(36, 107, 170, 0.2); border-radius: 50%; box-shadow: 0 24px 70px rgba(18, 39, 64, 0.12); backdrop-filter: blur(10px); }
.article-hero-mark span { font-family: "ECCLAI WenKai", KaiTi, serif; font-size: 6.3rem; font-weight: 400; line-height: 0.9; }
.article-hero-mark small { max-width: 130px; text-align: center; font-size: 0.66rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.article-layout-new { display: grid; grid-template-columns: minmax(0, 780px) minmax(240px, 320px); gap: clamp(42px, 8vw, 100px); align-items: start; padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(66px, 9vw, 118px); }
.article-content-new { min-width: 0; color: #263d52; font-size: clamp(1rem, 1.25vw, 1.08rem); line-height: 1.78; overflow-wrap: anywhere; }
.article-content-new > :first-child { margin-top: 0; }
.article-content-new h2 { margin: 2.25em 0 0.65em; color: var(--navy-950); font-family: var(--serif); font-size: clamp(1.75rem, 3vw, 2.45rem); font-weight: 550; line-height: 1.1; }
.article-content-new h3 { margin: 1.9em 0 0.55em; color: var(--navy-950); font-family: var(--serif); font-size: clamp(1.35rem, 2.1vw, 1.78rem); font-weight: 600; line-height: 1.17; }
.article-content-new p { margin: 0 0 1.25em; }
.article-content-new ul,
.article-content-new ol { margin: 0 0 1.45em; padding-left: 1.25em; }
.article-content-new li { margin: 0.5em 0; padding-left: 0.2em; }
.article-content-new a { color: var(--brand-700); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-content-new figure { width: 100%; max-width: 100%; margin: 1.5em 0; overflow-x: auto; }
.article-content-new table { width: 100%; margin: 1.5em 0; border-collapse: collapse; font-size: 0.88rem; line-height: 1.5; }
.article-content-new th { color: #fff; background: var(--navy-900); text-align: left; }
.article-content-new th,
.article-content-new td { padding: 12px 14px; border: 1px solid #d6e0ea; vertical-align: top; }
.article-content-new tbody tr:nth-child(even) { background: #f6f9fc; }
.article-reading-aside { position: sticky; top: 110px; display: flex; flex-direction: column; padding: 26px; background: #f4f8fc; border: 1px solid #d6e2ee; border-radius: 20px; }
.article-aside-glyph { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 22px; color: var(--brand-700); background: #fff; border-radius: 15px; font-family: "ECCLAI WenKai", KaiTi, serif; font-size: 1.8rem; box-shadow: var(--shadow-sm); }
.article-reading-aside small { color: var(--brand-700); font-size: 0.65rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.article-reading-aside h2 { margin: 7px 0 10px; color: var(--navy-950); font-family: var(--serif); font-size: 1.55rem; }
.article-reading-aside p { color: var(--muted); font-size: 0.78rem; line-height: 1.55; }
.article-reading-aside .button { margin: 15px 0 14px; }
.article-reading-aside > a:last-child { color: var(--brand-700); font-size: 0.72rem; font-weight: 750; text-decoration: none; }
.article-related-section { background: #f4f7fb; }
.blog-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.empty-state-page { padding-top: 110px; padding-bottom: 110px; text-align: center; }

@media (max-width: 980px) {
  .blog-catalog-tools { grid-template-columns: 1fr; }
  .blog-search { max-width: 460px; }
  .blog-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-hero-inner { grid-template-columns: minmax(0, 1fr) 170px; }
  .article-hero-mark { width: 165px; }
  .article-hero-mark span { font-size: 4.7rem; }
  .article-layout-new { grid-template-columns: minmax(0, 1fr) 250px; gap: 42px; }
}

@media (max-width: 720px) {
  .blog-category-card { min-height: 0; }
  .blog-article-grid,
  .blog-related-grid { grid-template-columns: 1fr; }
  .blog-article-card { min-height: 0; }
  .blog-filter-row { flex-wrap: nowrap; width: 100%; max-width: 100%; margin-inline: 0; padding-inline: 0; overflow-x: auto; scrollbar-width: none; }
  .blog-filter-row::-webkit-scrollbar { display: none; }
  .blog-filter-row button { flex: 0 0 auto; }
  .article-hero-inner { grid-template-columns: 1fr; }
  .article-hero-mark { display: none; }
  .article-hero-copy h1 { font-size: clamp(2.35rem, 12vw, 3.55rem); }
  .article-layout-new { grid-template-columns: 1fr; }
  .article-reading-aside { position: static; }
  .article-content-new table { min-width: 580px; }
}

/* Lote 3 · capa final de prioridad */
.blog-catalog-tools { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: end; gap: 10px; margin-bottom: 14px; }
.article-hero-copy h1,
.article-page-hero .article-hero-copy h1 { max-width: 980px; font-size: clamp(2rem, 3.6vw, 3.65rem); letter-spacing: -0.025em; line-height: 1.04; }
.support-page-hero { min-height: 540px; padding-block: 70px; }
.support-page-hero h1 { font-size: clamp(2.35rem, 4.2vw, 4.35rem); line-height: 1.01; }
.support-page-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 0.55fr); gap: 55px; }
.support-hero-orbit { width: min(100%, 390px); }
.support-hero-orbit article { width: 132px; }
.support-orbit-book { right: -8px; }
.support-paths-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.support-path-card,
.support-path-card:nth-child(even) { display: grid; grid-template-columns: 1fr; border-radius: 18px; }
.support-path-card:nth-child(even) .support-path-image,
.support-path-card:nth-child(even) .support-path-copy { grid-column: 1; grid-row: auto; }
.support-path-card:nth-child(even) .support-path-image { grid-row: 1; }
.support-path-image,
.support-path-image img { min-height: 220px; height: 220px; }
.support-path-copy { padding: 26px 23px 24px; }
.support-path-number { top: 18px; right: 18px; font-size: 2.7rem; }
.support-path-icon { width: 45px; height: 45px; margin-bottom: 16px; }
.support-path-copy h3 { font-size: 1.55rem; }
.support-path-copy p { font-size: 0.78rem; }
.support-impact-copy h2 { font-size: clamp(1.9rem, 3vw, 2.75rem); }
.support-impact-grid article { min-height: 150px; }
.support-impact-grid span { margin-top: 16px; font-size: 1.15rem; }

@media (max-width: 980px) {
  .blog-catalog-tools { grid-template-columns: 1fr 1fr; }
  .blog-search-wrap { grid-column: 1 / -1; }
  .support-paths-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .blog-catalog-tools { grid-template-columns: 1fr; }
  .blog-search-wrap { grid-column: auto; }
  .article-hero-copy h1,
  .article-page-hero .article-hero-copy h1 { font-size: clamp(2rem, 10vw, 3rem); }
  .support-page-hero-grid { grid-template-columns: 1fr; }
  .support-hero-orbit { margin-inline: auto; }
}
/* Posters editoriales propios para la portada: las miniaturas reales se reservan para el catálogo de videos. */
.home-video-poster {
  aspect-ratio: 16 / 9;
  display: grid;
  place-content: center;
  text-align: center;
  isolation: isolate;
  overflow: hidden;
}

.home-video-poster::before,
.home-video-poster::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  z-index: -1;
}

.home-video-poster::before {
  width: 62%;
  aspect-ratio: 1;
  left: -15%;
  top: -38%;
  border: 1px solid rgb(255 255 255 / 38%);
  box-shadow: 0 0 0 34px rgb(255 255 255 / 6%), 0 0 0 68px rgb(255 255 255 / 5%);
}

.home-video-poster::after {
  width: 8rem;
  height: 8rem;
  right: -2rem;
  bottom: -3rem;
  background: rgb(255 255 255 / 12%);
}

.home-video-poster i {
  font: 800 clamp(1.8rem, 4vw, 3.4rem) / 1 var(--font-sans);
  font-style: normal;
  letter-spacing: .1em;
  color: white;
}

.home-video-poster b {
  margin-top: .55rem;
  color: rgb(255 255 255 / 82%);
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.poster-pinyin { background: linear-gradient(135deg, #c85149, #ec9d73); }
.poster-minute { background: linear-gradient(135deg, #1f766d, #60b5a4); }
.poster-supercourse { background: linear-gradient(135deg, #243f71, #78659c); }

/* Fase 4 · formularios públicos y contacto */
.form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-message.is-success { color: #1b735c; font-weight: 750; }
.form-message.is-error { color: #a34137; font-weight: 750; }
.newsletter-form-dark .form-message.is-success { color: #b9f0df; }
.newsletter-form-dark .form-message.is-error { color: #ffd2ca; }
button[disabled] { cursor: wait; opacity: .7; }

.contact-phase-hero { min-height: 530px; }
.contact-hero-image img { object-position: center; }
.contact-phase-hero .phase-hero-image-bg::after {
  background: linear-gradient(90deg, rgb(7 24 45 / 94%) 0%, rgb(7 24 45 / 83%) 46%, rgb(7 24 45 / 18%) 78%, rgb(7 24 45 / 4%) 100%);
}

.contact-form-layout {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(460px, 1.22fr);
  gap: clamp(35px, 7vw, 90px);
  align-items: start;
}

.contact-form-intro h2 { font-size: clamp(1.9rem, 3vw, 2.7rem); margin: 12px 0 18px; }
.contact-form-intro > p { font-size: 1rem; line-height: 1.7; }
.contact-route-card {
  display: grid;
  gap: 8px;
  margin-top: 30px;
  padding: 24px;
  border-radius: 18px;
  background: linear-gradient(145deg, #eef3fa, #fff7ed);
  border: 1px solid rgb(37 74 120 / 14%);
}
.contact-route-card small { color: var(--color-coral); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-route-card strong { font-family: var(--font-serif); font-size: 1.45rem; line-height: 1.2; }

.contact-live-form {
  display: grid;
  gap: 17px;
  padding: clamp(25px, 4vw, 42px);
  border: 1px solid rgb(19 44 76 / 13%);
  border-radius: 22px;
  background: white;
  box-shadow: 0 24px 60px rgb(22 48 78 / 9%);
}
.contact-live-form label { display: grid; gap: 7px; color: #314156; font-size: .78rem; font-weight: 800; }
.contact-live-form input,
.contact-live-form select,
.contact-live-form textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid #d8dee8;
  border-radius: 10px;
  background: #fafbfd;
  color: var(--color-ink);
  font: 500 .92rem/1.5 var(--font-sans);
}
.contact-live-form textarea { resize: vertical; }
.contact-live-form input:focus,
.contact-live-form select:focus,
.contact-live-form textarea:focus { outline: 3px solid rgb(49 92 158 / 16%); border-color: #315c9e; }
.contact-live-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.contact-live-form .button { justify-self: start; }
.form-privacy { color: #788293; font-size: .73rem; }
.form-result-section { min-height: 64vh; display: grid; place-items: center; }
.form-result-card { padding: clamp(32px, 6vw, 70px); border-radius: 24px; background: linear-gradient(145deg, #fff, #f0f4fa); text-align: center; border: 1px solid #dce2ec; }
.form-result-card h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
.form-result-card p { max-width: 620px; margin: 0 auto 25px; }

.group-interest-form label > span { color: #7a8491; font-weight: 500; }

@media (max-width: 860px) {
  .contact-form-layout { grid-template-columns: 1fr; }
  .contact-live-form { padding: 24px; }
}

@media (max-width: 560px) {
  .contact-live-form .form-row { grid-template-columns: 1fr; }
}

.managed-resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.managed-resource-card { position: relative; overflow: hidden; display: grid; gap: 9px; min-height: 190px; padding: 25px; border: 1px solid #dce2ec; border-radius: 17px; background: #f4f7fb; color: var(--color-ink); text-decoration: none; }
.managed-resource-card::after { content: ""; position: absolute; width: 110px; height: 110px; border-radius: 50%; right: -35px; top: -35px; background: rgb(49 92 158 / 10%); }
.managed-resource-card small { color: var(--color-coral); font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.managed-resource-card h3 { margin: 0; font-size: 1.45rem; }
.managed-resource-card p { margin: 0; font-size: .86rem; }
.managed-resource-card strong { margin-top: auto; color: #315c9e; font-size: .78rem; }
@media (max-width: 760px) { .managed-resource-grid { grid-template-columns: 1fr; } }

/* Fase 4 · comentarios lote 1 */
.home-page .route-card {
  isolation: isolate;
  overflow: hidden;
  border-width: 0;
  box-shadow: 0 17px 34px rgb(12 35 62 / 10%);
}
.home-page .route-card::before,
.home-page .route-card::after {
  position: absolute;
  z-index: -1;
  content: "";
}
.home-page .route-card::before { width: 115px; height: 115px; top: -50px; right: -35px; border: 18px solid rgb(255 255 255 / 45%); border-radius: 50%; }
.home-page .route-card::after { width: 70px; height: 70px; right: 22px; bottom: -45px; background: rgb(255 255 255 / 34%); transform: rotate(28deg); }
.home-page .route-section { padding-block:58px; }
.home-page .route-card { min-height:0; padding:17px; }
.home-page .route-card-top { margin-bottom:9px; }
.home-page .route-icon { width:34px; height:34px; }
.home-page .route-kicker { margin-bottom:10px; }
.home-page .route-card h3 { margin-bottom:9px; font-size:1.22rem; }
.home-page .route-card p { margin-bottom:12px; font-size:.76rem; line-height:1.48; }
.home-page .route-card strong { font-size:.76rem; }
.home-page .route-gold { background: linear-gradient(145deg,#fff1c9,#f6d985); }
.home-page .route-coral { background: linear-gradient(145deg,#ffe4dc,#f3a28f); }
.home-page .route-blue { background: linear-gradient(145deg,#e5f2ff,#9fc7ee); }
.home-page .route-violet { background: linear-gradient(145deg,#eee7ff,#c3abe5); }
.home-page .route-green { background: linear-gradient(145deg,#ddf5ec,#9fd7c5); }
.home-page .route-ink { color:#fff; background: linear-gradient(145deg,#273f5d,#617994); }
.home-page .route-ink h3,.home-page .route-ink p,.home-page .route-ink strong,.home-page .route-ink .route-kicker { color:#fff; }
.practice-fact-pills { display:flex; flex-wrap:wrap; gap:8px; padding:0; list-style:none; }
.practice-fact-pills li { margin:0!important; padding:9px 12px 9px 30px!important; position:relative; color:var(--navy-900); background:#fff; border:1px solid #d9e2ec; border-radius:999px; font-size:.74rem; }
.practice-fact-pills li::before { position:absolute; left:11px; color:var(--green); content:"✓"; font-weight:900; }
.youtube-home-section { color:var(--navy-950); background:linear-gradient(165deg,#fff 0 58%,#fff0ee 58%); }
.youtube-home-section .eyebrow { color:#d32f2f; }
.youtube-home-section .video-card { overflow:hidden; background:#fff; border:1px solid #f1cfcb; box-shadow:0 15px 34px rgb(151 37 32 / 8%); }
.youtube-home-section .video-card>div>a { color:#c62828; }
.home-video-poster { background:linear-gradient(135deg,#b91c1c,#ef4444)!important; }
.home-video-poster::after { border-radius:0; transform:rotate(35deg); }
.blog-home-v2 { position:relative; overflow:hidden; background:linear-gradient(130deg,#112b4b,#4f3b72); }
.blog-home-v2::before { width:280px; height:280px; position:absolute; top:-170px; right:12%; border:1px solid rgb(255 255 255 / 16%); border-radius:50%; box-shadow:0 0 0 55px rgb(255 255 255 / 3%),0 0 0 110px rgb(255 255 255 / 2%); content:""; }
.blog-home-categories a { position:relative; overflow:hidden; }
.blog-home-categories a span { width:30px; height:30px; display:grid; place-items:center; color:#fff; border-radius:9px; font-family:"ECCLAI WenKai",KaiTi,serif; font-size:1.05rem; }
.blog-home-categories .category-blue span{background:#377ac2}.blog-home-categories .category-coral span{background:#d66755}.blog-home-categories .category-green span{background:#27856e}.blog-home-categories .category-violet span{background:#8469aa}
.home-page .community-links a { position:relative; overflow:hidden; border:0; }
.home-page .community-links a:nth-child(1){background:linear-gradient(135deg,#fff,#ffe8e5)}
.home-page .community-links a:nth-child(2){background:linear-gradient(135deg,#fff,#eee6fa)}
.home-page .community-links a:nth-child(3){background:linear-gradient(135deg,#fff,#fff0d1)}
.home-page .community-links a:nth-child(4){background:linear-gradient(135deg,#fff,#dff4ec)}
.home-page .community-links a::after { width:55px; height:55px; position:absolute; right:-24px; bottom:-25px; background:currentColor; border-radius:50%; opacity:.08; content:""; }

.principle-grid-rich article { isolation:isolate; overflow:hidden; position:relative; color:var(--navy-950); border:0; box-shadow:0 16px 32px rgb(8 29 55 / 10%); }
.principle-grid-rich article:nth-child(1){background:linear-gradient(145deg,#edf6ff,#c9e3fb)}
.principle-grid-rich article:nth-child(2){background:linear-gradient(145deg,#fff3d8,#efd18d)}
.principle-grid-rich article:nth-child(3){background:linear-gradient(145deg,#e8f7f1,#afe0ce)}
.principle-grid-rich article:nth-child(4){background:linear-gradient(145deg,#f3edfc,#d3c0eb)}
.principle-grid-rich article::after { width:90px; height:90px; position:absolute; z-index:-1; right:-34px; bottom:-36px; background:rgb(255 255 255 / 48%); border-radius:22px; transform:rotate(25deg); content:""; }
.learning-route-list-rich.horizontal-card-strip .learning-route,
.learning-route-list-rich.horizontal-card-strip .learning-route-featured { min-height:285px; padding:22px; }
.learning-route .button,.learning-route a.button { border:0; }
.learning-route.route-gold .button{background:#a67212}.learning-route.route-coral .button{background:#b95042}.learning-route.route-blue .button{background:#276cad}.learning-route.route-violet .button{background:#6e4c9d}.learning-route.route-green .button{background:#1e745f}.learning-route.route-ink .button{background:#233b58}
.learning-route .route-resource-chips a { border:0; color:#fff; }
.learning-route.route-gold .route-resource-chips a{background:#9a6c12}.learning-route.route-coral .route-resource-chips a{background:#b95042}.learning-route.route-blue .route-resource-chips a{background:#276cad}.learning-route.route-violet .route-resource-chips a{background:#6e4c9d}.learning-route.route-green .route-resource-chips a{background:#1e745f}.learning-route.route-ink .route-resource-chips a{background:#233b58}
.learning-route .route-resource-chips svg { color:currentColor; }
.topic-list-rich li { isolation:isolate; overflow:hidden; position:relative; }
.topic-list-rich li::after { width:45px; height:45px; position:absolute; right:-18px; bottom:-20px; background:currentColor; border-radius:50%; opacity:.09; content:""; }
.group-promise-card .eyebrow { font-size:.78rem; }
.group-promise-card h2 { font-size:clamp(1.75rem,2.4vw,2.2rem); }
.group-promise-points strong { font-size:1rem; }
.group-experience-section { background:linear-gradient(160deg,#edf5ff,#f7f2fb); }
.group-benefit-grid article { isolation:isolate; overflow:hidden; position:relative; }
.group-benefit-grid article::after { width:80px; height:80px; position:absolute; z-index:0; right:-30px; bottom:-34px; background:currentColor; border-radius:20px; opacity:.08; transform:rotate(25deg); content:""; }
.group-books-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.group-books-grid article { display:grid; grid-template-columns:145px 1fr; align-items:center; gap:22px; padding:24px; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-sm); }
.group-books-grid img { width:145px; height:205px; object-fit:contain; }
.group-books-grid small { color:var(--brand-700); font-size:.66rem; font-weight:850; text-transform:uppercase; }
.group-books-grid h3 { margin:7px 0; font-family:var(--serif); font-size:1.35rem; }
.group-books-grid p { color:var(--muted); font-size:.78rem; }

.resource-video-geometry { overflow:hidden; background:linear-gradient(145deg,#1b4775,#7c3e54); }
.resource-video-geometry i { position:absolute; display:block; background:rgb(255 255 255 / 15%); }
.resource-video-geometry i:nth-child(1){width:120px;height:120px;top:-50px;left:-25px;border:18px solid rgb(255 255 255 / 18%);background:none;border-radius:50%}
.resource-video-geometry i:nth-child(2){width:85px;height:85px;right:24px;bottom:-35px;transform:rotate(25deg)}
.resource-video-geometry i:nth-child(3){width:95px;height:14px;left:38px;bottom:34px;border-radius:999px;transform:rotate(-20deg)}
.resource-video-geometry b { position:absolute; top:50%; left:50%; color:#fff; font-family:"ECCLAI WenKai",KaiTi,serif; font-size:5rem; font-weight:400; transform:translate(-50%,-58%); }
.resource-video-geometry em { position:absolute; left:50%; bottom:32px; color:rgb(255 255 255 / 78%); font-size:.73rem; font-style:normal; letter-spacing:.18em; transform:translateX(-50%); }
.books-index-hero-image img { object-position:center; }
.books-index-hero .phase-hero-image-bg::after { background:linear-gradient(90deg,rgb(6 26 51 / 96%) 0 37%,rgb(6 26 51 / 70%) 63%,rgb(6 26 51 / 18%)); }
.download-catalog-index .download-catalog-image { width:92px; height:118px; display:grid; place-items:center; overflow:hidden; background:#eef3f8; border-radius:10px; }
.download-catalog-index .download-catalog-image img { width:100%; height:100%; object-fit:contain; }
.game-catalog-grid-two { grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.game-launch-card,.game-launch-card:nth-child(n) { grid-template-columns:1fr; }
.game-launch-image,.game-launch-image img { min-height:190px; height:190px; }
.game-launch-card>div:last-child { padding:21px; }
.game-launch-card ul { margin:11px 0 15px; }
.game-card-actions { display:flex; flex-wrap:wrap; gap:7px; }
.game-card-actions .button { padding:9px 11px; font-size:.68rem; }

.blog-latest-section { background:#fff; }
.blog-latest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.blog-latest-card { isolation:isolate; overflow:hidden; position:relative; min-height:260px; display:flex; flex-direction:column; padding:24px; border-radius:18px; }
.blog-latest-card.theme-blue{background:#e8f3ff}.blog-latest-card.theme-coral{background:#fff0ec}.blog-latest-card.theme-green{background:#e8f7f1}.blog-latest-card.theme-violet{background:#f2ecfb}
.blog-latest-card::after { width:95px; height:95px; position:absolute; z-index:-1; right:-34px; bottom:-42px; background:currentColor; border-radius:26px; opacity:.08; transform:rotate(24deg); content:""; }
.blog-latest-glyph { width:48px; height:48px; display:grid; place-items:center; margin-bottom:22px; color:var(--brand-700); background:rgb(255 255 255 / 74%); border-radius:13px; font-family:"ECCLAI WenKai",KaiTi,serif; font-size:1.6rem; }
.blog-latest-card small { color:var(--brand-700); font-size:.66rem; font-weight:800; }
.blog-latest-card h3 { margin:7px 0; font-family:var(--serif); font-size:1.3rem; line-height:1.18; }
.blog-latest-card h3 a { color:var(--navy-950); }
.blog-latest-card p { display:-webkit-box; margin:0 0 18px; overflow:hidden; color:var(--muted); font-size:.78rem; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.blog-latest-card .text-link { margin-top:auto; }
.blog-tool-select { font-size:.76rem; font-weight:450; }
.blog-tool-select select { min-height:44px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; font-size:.82rem; font-weight:450; }
.blog-compact-entry { margin-bottom:5px; padding:16px; border:0; border-radius:14px; }
.blog-compact-entry.theme-blue{background:#edf5ff}.blog-compact-entry.theme-coral{background:#fff1ed}.blog-compact-entry.theme-green{background:#edf8f3}.blog-compact-entry.theme-violet{background:#f3eefb}
.blog-compact-entry[hidden] { display:none!important; }
.blog-pagination button { min-width:38px; padding-inline:10px; }

.live-community-grid { grid-template-columns:minmax(290px,.78fr) minmax(440px,1.22fr); gap:28px; }
.live-calendar-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.live-calendar-actions .button { display:inline-flex; align-items:center; gap:7px; padding:10px 13px; }
.live-calendar-actions svg { width:19px; height:19px; }
.button-youtube { color:#fff; background:#cf2e2e; border-color:#cf2e2e; }
.button-youtube:hover { color:#fff; background:#aa1f1f; }
.button-calendar-ios { color:#fff; background:#22262d; border-color:#22262d; }
.button-calendar-android { color:#fff; background:#247b4b; border-color:#247b4b; }
.live-calendar-frame { position:relative; overflow:hidden; padding:9px; background:#fff; border:1px solid #d6e0ea; border-radius:20px; box-shadow:0 18px 40px rgb(6 26 51 / 13%); }
.live-calendar-frame iframe { width:100%; height:520px; display:block; border:0; border-radius:13px; }
.newsletter-community-rich .newsletter-community-card { padding:28px; gap:22px; }
.newsletter-community-visual { min-height:320px; }
.newsletter-content-list { gap:9px; }
.social-channel-grid a:hover small,.social-channel-grid a:hover strong { color:currentColor; }
.social-channel-grid a:hover .social-icon { color:currentColor; background:rgb(255 255 255 / 88%); }
.social-channel-grid .social-youtube:hover { color:#a91f1f; background:#fff1ef; }
.social-channel-grid .social-tiktok:hover { color:#171a20; background:#eef0f2; }
.social-channel-grid .social-instagram:hover { color:#9b2b76; background:#faeef6; }
.social-channel-grid .social-facebook:hover { color:#2464b8; background:#edf4ff; }
.membership-series-grid a { min-height:122px; }
.choose-help-compact .quiet-card { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:24px; }
.choose-help-compact h2 { margin-bottom:0; }
.audio-resource-buttons { display:flex; flex-wrap:wrap; gap:9px; }
.audio-resource-buttons .button { font-size:.84rem; }
.book-connections-heading h2 { max-width:none; white-space:nowrap; }
.book-connection-card.connection-theme-coral{background:linear-gradient(145deg,#fff,#fff0ec);border-color:#edccc6}.book-connection-card.connection-theme-blue{background:linear-gradient(145deg,#fff,#edf5ff);border-color:#c9dced}.book-connection-card.connection-theme-gold{background:linear-gradient(145deg,#fff,#fff7df);border-color:#e8d3a4}.book-connection-card.connection-theme-green{background:linear-gradient(145deg,#fff,#edf9f4);border-color:#c9e4da}.book-connection-card.connection-theme-violet{background:linear-gradient(145deg,#fff,#f4effc);border-color:#ddd4ef}.book-connection-card.connection-theme-ink{background:linear-gradient(145deg,#fff,#edf1f5);border-color:#cfd8e3}

@media(max-width:980px){.live-community-grid{grid-template-columns:1fr}.live-calendar-frame iframe{height:500px}}
@media(max-width:640px){.choose-help-compact .quiet-card{align-items:flex-start;flex-direction:column}.book-connections-heading h2{white-space:normal}.live-calendar-frame iframe{height:430px}.newsletter-community-rich .newsletter-community-card{padding:20px}}

.button-mercado-pago { display:inline-flex; align-items:center; gap:8px; color:#17324d!important; background:#82d2f4!important; border-color:#82d2f4!important; font-weight:850; }
.button-mercado-pago:hover { background:#62c5ef!important; }
.mercado-pago-mark { width:25px; height:25px; display:grid; place-items:center; color:#17324d; background:#fff; border:2px solid #17324d; border-radius:50%; font-size:.9rem; line-height:1; }
.mercado-pago-note { max-width:700px; display:block; margin-top:12px; color:rgb(255 255 255 / 78%); font-size:.75rem; line-height:1.5; }
.support-payment-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.support-clp-note { display:block; margin-top:10px; color:var(--muted); font-size:.72rem; line-height:1.45; }

.home-page .community-links span { color:#344b63; }
.home-page .community-links strong { color:#102b49; }
.youtube-home-section .video-card > div { padding:20px 21px 22px; }
.youtube-home-section .video-card:nth-child(1) { border-color:#d8b8b1; background:#fff4f1; }
.youtube-home-section .video-card:nth-child(2) { border-color:#c9dced; background:#edf5ff; }
.youtube-home-section .video-card:nth-child(3) { border-color:#d8ccec; background:#f4effc; }
.youtube-home-section .video-card:nth-child(1)>div>a{color:#b95042}.youtube-home-section .video-card:nth-child(2)>div>a{color:#276cad}.youtube-home-section .video-card:nth-child(3)>div>a{color:#6e4c9d}
.youtube-home-section .poster-pinyin{background:linear-gradient(135deg,#a73f37,#e17767)!important}.youtube-home-section .poster-minute{background:linear-gradient(135deg,#1f609a,#55a0dc)!important}.youtube-home-section .poster-supercourse{background:linear-gradient(135deg,#563a7e,#9a7bc4)!important}

.learning-route-list-rich .learning-route { position:relative; isolation:isolate; overflow:hidden; }
.learning-route-list-rich .learning-route::after { width:118px; height:118px; position:absolute; z-index:-1; right:-42px; bottom:-52px; background:currentColor; border-radius:28px; opacity:.08; transform:rotate(28deg); content:""; }
.learning-route-list-rich .learning-route-id svg { padding:9px; background:rgb(255 255 255 / 72%); border-radius:13px; }
.topic-list-rich li:nth-child(1){background:#eef5ff}.topic-list-rich li:nth-child(2){background:#fff0ec}.topic-list-rich li:nth-child(3){background:#edf8f3}.topic-list-rich li:nth-child(4){background:#f4effc}.topic-list-rich li:nth-child(5){background:#fff7df}.topic-list-rich li:nth-child(6){background:#edf1f5}
.membership-series-grid a { min-height:0; align-content:center; }

.newsletter-community-card #newsletter-community-title { color:#fff; }
.membership-benefit-row>span { place-items:center; align-content:center; text-align:center; grid-template-columns:1fr; }
.membership-benefit-row svg { grid-row:auto; margin:auto; }
.membership-series-grid a { display:grid; grid-template-columns:120px 1fr; align-items:center; min-height:150px; padding:14px; }
.membership-series-grid a img { width:120px; height:90px; grid-row:1 / 3; object-fit:cover; border-radius:10px; }
.membership-series-grid small,.membership-series-grid strong { grid-column:2; }
.membership-series-grid strong { margin:0; }
.support-page-hero { isolation:isolate; position:relative; }
.support-page-hero-image { position:absolute; z-index:-2; inset:0; }
.support-page-hero-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.support-page-hero::after { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgb(6 26 51 / 97%) 0 42%,rgb(6 26 51 / 72%) 65%,rgb(6 26 51 / 18%)); content:""; }
.support-page-hero-grid { grid-template-columns:minmax(0,760px); }
.support-page-hero .support-hero-orbit { display:none; }
.support-impact-grid article { isolation:isolate; overflow:hidden; position:relative; border:0; }
.support-impact-grid article::after { width:80px; height:80px; position:absolute; right:-25px; bottom:-30px; background:#fff; border-radius:20px; opacity:.11; transform:rotate(25deg); content:""; }
.contact-live-form label { font-size:.93rem; }
.contact-live-form input,.contact-live-form select,.contact-live-form textarea { font-size:1rem; }
.contact-live-form select { font-weight:400; }

@media(max-width:980px){.group-books-grid,.game-catalog-grid-two,.blog-latest-grid{grid-template-columns:1fr}.game-launch-card{grid-template-columns:220px 1fr}.membership-series-grid{grid-template-columns:1fr}.support-page-hero-grid{grid-template-columns:1fr}}
@media(max-width:640px){.group-books-grid article{grid-template-columns:95px 1fr;padding:17px}.group-books-grid img{width:95px;height:140px}.group-books-grid .button-row{grid-column:1/-1}.game-launch-card{grid-template-columns:1fr}.game-launch-image,.game-launch-image img{height:175px;min-height:175px}.download-catalog-index .download-catalog-image{width:72px;height:95px}.membership-series-grid a{grid-template-columns:100px 1fr}.membership-series-grid a img{width:100px;height:76px}.support-page-hero::after{background:rgb(6 26 51 / 78%)}}

/* Fase 5 · legibilidad y jerarquía solicitadas */
.principle-grid-rich article p { color:#18344f; }
.principle-grid-rich article:nth-child(1)>svg { color:#174f83; background:#9ac8ef; }
.principle-grid-rich article:nth-child(2)>svg { color:#78520d; background:#e8bd5c; }
.principle-grid-rich article:nth-child(3)>svg { color:#145b49; background:#79c7ae; }
.principle-grid-rich article:nth-child(4)>svg { color:#54357e; background:#b99bd9; }
.resource-video-button { width:max-content; display:inline-flex; align-items:center; justify-content:center; align-self:center; margin:24px auto 0; padding:13px 21px; color:#fff; background:#215d93; border-radius:10px; font-size:.86rem; }
.button-audio-book { color:#fff!important; background:#173f6a!important; border-color:#173f6a!important; }
.button-audio-book:hover { color:#fff!important; background:#0e2f51!important; }
.game-sentence-card .game-card-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.game-sentence-card .game-card-actions .button { min-width:0; padding-inline:8px; text-align:center; white-space:nowrap; }
.mercado-pago-note { font-size:.9rem; }
.mercado-pago-note a { color:#fff; font-weight:850; text-decoration:underline; text-underline-offset:3px; }
.support-clp-note { font-size:.78rem; }
.support-clp-note a { color:#1d5f91; font-weight:850; text-decoration:underline; text-underline-offset:2px; }
.support-free-card li:nth-child(1) { background:#fff0ec; }
.support-free-card li:nth-child(1)>svg { color:#a94335; background:#ffd9d0; }
.support-free-card li:nth-child(2) { background:#edf5ff; }
.support-free-card li:nth-child(2)>svg { color:#245f99; background:#cfe4fb; }
.support-free-card li:nth-child(3) { background:#edf8f3; }
.support-free-card li:nth-child(3)>svg { color:#1d6a56; background:#ccebdd; }
.contact-route-card strong { color:#173f6a; }
.contact-live-form input,.contact-live-form select,.contact-live-form textarea { font-weight:400; }
@media(max-width:700px){.game-sentence-card .game-card-actions{grid-template-columns:1fr}.game-sentence-card .game-card-actions .button{white-space:normal}}

.group-announcement-art{width:min(100%,330px);min-height:260px;position:relative;display:grid;align-content:center;justify-items:center;gap:8px;padding:32px;color:#fff;background:linear-gradient(145deg,#185e55,#2f8b76);border-radius:26px;box-shadow:0 22px 48px rgb(6 26 51 / 22%)}
.group-date-card{display:grid;place-items:center;width:82px;height:90px;margin-bottom:6px;color:#173f6a;background:#fff;border-radius:16px;box-shadow:0 10px 25px rgb(6 26 51 / 18%)}.group-date-card b{font-family:var(--serif);font-size:2.35rem;line-height:1}.group-date-card small{color:#b64f43;font-size:.65rem;font-weight:900;letter-spacing:.14em}.group-announcement-art>strong{font-family:var(--serif);font-size:1.55rem}.group-announcement-art>i{font-size:.7rem;font-style:normal;font-weight:900;letter-spacing:.13em}.group-announcement-art>small{color:rgb(255 255 255 / 78%);font-size:.67rem}.group-people{display:flex;margin:5px 0}.group-people span{width:28px;height:28px;margin-left:-5px;background:#d8f1e9;border:3px solid #2b806e;border-radius:50%}.group-people span:nth-child(2){background:#ffe0c1}.group-people span:nth-child(3){background:#dce8ff}
.group-schedule-section{background:#fff}.group-timezone-control{min-width:300px;display:grid;gap:7px;color:var(--navy-950);font-size:.75rem;font-weight:850}.group-timezone-control select,.group-interest-form select{min-height:46px;padding:10px 38px 10px 12px;color:var(--navy-950);background:#fff;border:1px solid #b9c8d9;border-radius:9px;font:400 .82rem/1.3 var(--sans)}.group-schedule-note{margin:0 0 18px;padding:14px 17px;color:#3d536b;background:#fff4dd;border-left:4px solid #c48b2a;border-radius:10px;font-size:.78rem}.group-session-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.group-session-grid li{min-height:115px;display:grid;grid-template-columns:36px 1fr;align-items:start;gap:10px;padding:15px;color:var(--navy-950);background:#f3f7fb;border:1px solid #dce5ee;border-radius:14px}.group-session-grid li>span{width:34px;height:34px;display:grid;place-items:center;color:#fff;background:var(--brand-700);border-radius:9px;font-size:.68rem;font-weight:900}.group-session-grid li div{display:grid;gap:7px}.group-session-grid strong{font-size:.76rem;line-height:1.35;text-transform:capitalize}.group-session-grid small{color:#1d6c59;font-size:.72rem;font-weight:850}.group-timezone-summary{margin:14px 0 0;color:#64758a;font-size:.72rem}.group-interest-form label[hidden]{display:none!important}
@media(max-width:980px){.group-session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.group-timezone-control{min-width:0;width:100%}.group-session-grid{grid-template-columns:1fr}.group-session-grid li{min-height:0}}

/* Fase 5: ajustes de revisión y consistencia */
.book-cover-link{display:block;height:100%;overflow:hidden;background:#eef2f6}
.book-cover-link img{display:block;transition:transform 180ms ease}
.book-cover-link:hover img{transform:scale(1.025)}
.guided-grid-rich>article{display:flex;align-items:stretch;flex-direction:column}
.guided-grid-rich>article dl{margin-top:auto}
.guided-grid-rich>article>.button{align-self:flex-start;margin-top:auto}
.game-card-actions .button-primary{width:132px;min-width:132px;text-align:center}
.game-sentence-card .game-card-actions{grid-template-columns:132px repeat(2,minmax(0,1fr))}
.game-sentence-card .game-card-actions .button:nth-child(2),.game-sentence-card .game-card-actions .button:nth-child(3){width:max-content;justify-self:start}
.newsletter-community-card>div:first-child{display:flex;flex-direction:column}
.newsletter-community-card>div:first-child .section-marker{width:max-content;align-self:flex-start}
.newsletter-community-card>div:first-child .newsletter-form{margin-top:auto;padding-top:28px}
.blog-compact-hero .hero-quick-actions .button{min-height:48px;padding:13px 19px;font-size:.78rem}
.announcement-slide.theme-group .announcement-art-link{width:100%;height:100%;min-width:0;display:grid;place-items:stretch;align-self:stretch;padding:0;background:linear-gradient(145deg,#185e55,#2f8b76)}
.announcement-slide.theme-group .group-announcement-art{width:100%;height:100%;max-width:none;min-height:100%;place-content:center;text-align:center;border-radius:0;box-shadow:none}
@media(max-width:700px){.game-card-actions .button-primary{width:100%;min-width:0}.game-sentence-card .game-card-actions{grid-template-columns:1fr}.newsletter-community-card>div:first-child .newsletter-form{padding-top:20px}}

.support-paths-grid{align-items:stretch}
.support-path-card{height:100%}
.support-path-copy{align-content:start}
.support-path-copy>small{min-height:1.1rem}
.support-path-copy h3{min-height:3.2em}
.support-path-copy>p:not(.support-clp-note){min-height:9em}
.support-path-copy>.button{margin-top:auto}
@media(max-width:850px){.support-path-copy h3,.support-path-copy>p:not(.support-clp-note){min-height:0}}
@media(max-width:700px){.game-sentence-card .game-card-actions .button:nth-child(2),.game-sentence-card .game-card-actions .button:nth-child(3){width:100%;justify-self:stretch}}

/* Fase 5 · comentarios 2026-08-30 */
.group-date-card{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0}
.group-date-card b{line-height:.82;transform:translateY(34px)}
.group-date-card small{line-height:1;transform:translateY(-6px)}
.resource-video-button{align-self:flex-start;margin:24px 0 0;padding:16px 29px;font-size:1.08rem;font-weight:850}
.game-sentence-card .game-card-actions{grid-template-columns:132px max-content max-content;gap:7px}
.support-path-card{grid-template-rows:220px minmax(0,1fr)}
.support-path-copy{grid-template-rows:auto auto minmax(3.2em,auto) minmax(0,1fr) auto;align-content:stretch}
.support-path-copy .support-path-icon{align-self:start}
.support-path-body{display:grid;align-content:start;gap:12px;min-height:12.5em}
.support-path-body>p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}
.support-path-direct .support-clp-note{margin:0}
.support-path-copy>.button{align-self:end;margin-top:16px}
@media(max-width:850px){.support-path-card{grid-template-rows:auto auto}.support-path-copy{grid-template-rows:auto}.support-path-body{min-height:0}}
.group-interest-main-section{padding-block:34px;background:#f7f3eb}
.group-interest-main-section .group-next-interest{display:grid;grid-template-columns:minmax(0,.72fr) minmax(420px,1fr);gap:clamp(24px,5vw,62px);padding:29px 32px;background:#fff;border:1px solid #d8e2ec;border-radius:18px;box-shadow:var(--shadow-sm)}
.group-interest-main-section h2{margin:8px 0;color:var(--navy-950);font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.25rem);font-weight:500}
.group-interest-main-section p{color:var(--muted)}
.group-interest-main-section form{display:grid;gap:10px}
.group-interest-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.group-interest-main-section label{display:grid;gap:5px;color:var(--navy-950);font-size:.72rem;font-weight:850}
.group-interest-main-section label span{color:var(--muted);font-weight:500}
.group-interest-main-section input,.group-interest-main-section textarea{width:100%;min-height:43px;padding:9px 11px;border:1px solid #bdccdc;border-radius:9px;font:400 .83rem/1.4 var(--sans)}
.group-interest-main-section .button{justify-self:start}
@media(max-width:850px){.group-interest-main-section .group-next-interest{grid-template-columns:1fr}.group-interest-fields{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.game-sentence-card .game-card-actions{grid-template-columns:1fr}.group-interest-main-section .group-next-interest{padding:23px 18px}.group-interest-fields{grid-template-columns:1fr}.group-interest-main-section .button{width:100%}}

/* Clases grupales 2601 y 2602 */
.group-hero-enroll{min-width:154px;font-size:.84rem!important}
.group-editions-section{background:linear-gradient(150deg,#f4f8fc,#fff7ec)}
.group-edition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.group-edition-card{display:flex;flex-direction:column;min-height:390px;padding:31px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}
.group-edition-card>span{width:max-content;padding:6px 10px;color:#fff;background:var(--green);border-radius:999px;font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.group-edition-card.edition-evening>span{background:var(--violet)}
.group-edition-card h3{margin:17px 0 7px;color:var(--navy-950);font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500}
.group-edition-card>p{color:var(--muted)}
.group-edition-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:24px 0}
.group-edition-card dl div{padding:13px;background:#f3f7fb;border-radius:11px}.group-edition-card dt{color:var(--muted);font-size:.65rem}.group-edition-card dd{margin:5px 0 0;color:var(--navy-950);font-size:.75rem;font-weight:800}
.group-edition-card>.button{width:100%;margin-top:auto}
.group-session-grid em{color:#607287;font-size:.65rem;font-style:normal}
.group-policy-section{background:var(--navy-950);color:#fff}.group-policy-section h2{color:#fff}.group-policy-layout{display:grid;grid-template-columns:minmax(240px,.55fr) minmax(0,1fr);gap:clamp(32px,7vw,90px)}
.group-policy-cards{display:grid;gap:10px}.group-policy-cards article{padding:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:14px}.group-policy-cards h3{margin:0 0 7px;color:#fff;font-family:var(--serif);font-size:1.2rem}.group-policy-cards p{margin:0;color:rgba(255,255,255,.7);font-size:.8rem}
.group-faq-section{background:#fff}.group-faq-list{display:grid;gap:9px}.group-faq-list details{padding:18px 20px;background:#f5f8fb;border:1px solid var(--line);border-radius:13px}.group-faq-list summary{cursor:pointer;color:var(--navy-950);font-weight:850}.group-faq-list p{margin:11px 0 0;color:var(--muted);font-size:.82rem}.group-final-cta{margin-top:28px;padding:28px;text-align:center;background:var(--brand-050);border-radius:17px}.group-final-cta h2{margin:0 0 6px}.group-final-cta p{color:var(--muted)}
@media(max-width:850px){.group-edition-grid,.group-policy-layout{grid-template-columns:1fr}.group-edition-card dl{grid-template-columns:1fr}.group-edition-card{min-height:0}.group-books-grid .button-row{align-items:stretch;flex-direction:column}.group-books-grid .button{width:100%}}

/* Fase 5 · comparador global de ediciones */
.group-hero-enroll{min-width:190px!important;min-height:51px!important;padding:13px 22px!important;font-size:.96rem!important}
.group-editions-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);align-items:end;gap:clamp(24px,6vw,70px);margin-bottom:22px}
.group-editions-heading h2{margin:9px 0;color:var(--navy-950);font-family:var(--serif);font-size:clamp(2rem,3.5vw,3.15rem);font-weight:500;line-height:1.04}
.group-editions-heading p{max-width:760px;margin:0;color:var(--muted)}
.group-edition-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.group-edition-tabs button{display:grid;gap:5px;padding:17px 20px;text-align:left;color:var(--navy-950);background:#fff;border:2px solid transparent;border-radius:14px;box-shadow:var(--shadow-sm);cursor:pointer}
.group-edition-tabs button span{font-family:var(--serif);font-size:1.35rem;font-weight:600}.group-edition-tabs button strong{color:var(--green);font-size:.72rem}.group-edition-tabs button.is-active{border-color:var(--brand-600);background:var(--brand-050)}
.group-edition-panel{padding:clamp(20px,4vw,36px);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}
.group-edition-panel>header{display:grid;grid-template-columns:minmax(220px,.6fr) minmax(0,1fr);align-items:end;gap:28px;margin-bottom:22px}
.group-edition-panel>header>div>span{color:var(--brand-700);font-size:.69rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.group-edition-panel h3{margin:8px 0 0;color:var(--navy-950);font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.35rem);font-weight:500}
.group-edition-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.group-edition-facts span{display:grid;gap:5px;padding:12px;background:#f3f7fb;border-radius:10px}.group-edition-facts small{color:var(--muted);font-size:.61rem}.group-edition-facts strong{color:var(--navy-950);font-size:.73rem}
.group-edition-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}.group-edition-panel-footer .group-timezone-summary{margin:0}.group-edition-panel-footer .button{min-width:210px}
.group-session-grid em{color:#405a74;font-size:.78rem;font-weight:850}
.group-faq-list p{font-size:.96rem;line-height:1.65}
@media(max-width:900px){.group-editions-heading,.group-edition-panel>header{grid-template-columns:1fr}.group-edition-facts{grid-template-columns:1fr}.group-edition-panel-footer{align-items:stretch;flex-direction:column}.group-edition-panel-footer .button{width:100%}}
@media(max-width:620px){.group-edition-tabs{grid-template-columns:1fr}.group-editions-heading{gap:18px}.group-edition-panel{padding:18px 14px}.group-hero-enroll{width:100%}}
