/* Final homepage chapters — Adaptation, Method, Expansion. */
.finale-meta {
  display:flex;
  gap:18px;
  margin:0 0 30px;
  color:#6a7895;
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.finale-meta span { color:#315bff; }

.adaptation-chapter {
  position:relative;
  overflow:clip;
  padding:120px 0 130px;
  background:
    radial-gradient(circle at 76% 20%,rgba(49,91,255,.08),transparent 26%),
    linear-gradient(180deg,#f7f9fc 0%,#fbfcff 100%);
  color:#0d1527;
}
.adaptation-copy { position:relative; z-index:2; }
.adaptation-copy h2 {
  max-width:980px;
  margin:0;
  font-size:clamp(46px,5vw,78px);
  font-weight:560;
  line-height:1;
  letter-spacing:-.058em;
}
.adaptation-copy h2 span { color:#315bff; }
.adaptation-copy > p:last-child {
  max-width:600px;
  margin:30px 0 0 auto;
  color:#556782;
  font-size:clamp(17px,1.3vw,20px);
  line-height:1.62;
}
.adaptation-system {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:74px;
}
.adaptation-card {
  position:relative;
  min-height:360px;
  padding:24px;
  border:1px solid rgba(90,112,162,.13);
  border-radius:28px;
  background:rgba(255,255,255,.78);
  box-shadow:0 28px 80px rgba(27,47,92,.06),inset 0 1px 0 rgba(255,255,255,.95);
  overflow:hidden;
}
.adaptation-card::after {
  content:'';
  position:absolute;
  inset:auto -12% -42% 12%;
  height:62%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(49,91,255,.08),transparent 68%);
}
.adaptation-label {
  position:relative;
  z-index:2;
  color:#6b7b9a;
  font-size:10px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.adaptation-card h3 {
  position:absolute;
  z-index:2;
  left:24px;
  right:24px;
  bottom:24px;
  margin:0;
  max-width:300px;
  font-size:clamp(21px,1.8vw,28px);
  font-weight:540;
  line-height:1.08;
  letter-spacing:-.04em;
}
.adaptation-visual { position:absolute; inset:68px 24px 100px; }
.adaptation-visual::before,.adaptation-visual::after,.adaptation-visual i,.adaptation-visual b,.adaptation-visual em {
  content:'';
  position:absolute;
  display:block;
  border-radius:999px;
}
.adaptation-visual::before {
  left:8%; right:8%; top:50%; height:1px;
  background:linear-gradient(90deg,transparent,#9cb4ec 18%,#315bff 50%,#86cfc6 82%,transparent);
}
.adaptation-visual::after {
  left:50%; top:50%; width:72px; height:72px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(49,91,255,.14);
  background:radial-gradient(circle,#fff 0 30%,#edf3ff 31% 58%,rgba(49,91,255,.06) 59% 100%);
  box-shadow:0 0 38px rgba(49,91,255,.12);
}
.adaptation-visual i,.adaptation-visual b,.adaptation-visual em { width:8px; height:8px; background:#315bff; box-shadow:0 0 0 5px rgba(49,91,255,.06); }
.adaptation-card-a .adaptation-visual i { left:12%; top:48%; }
.adaptation-card-a .adaptation-visual b { right:12%; top:48%; background:#67c9bd; }
.adaptation-card-a .adaptation-visual em { left:50%; top:20%; }
.adaptation-card-b .adaptation-visual::before { transform:rotate(-14deg); transform-origin:center; }
.adaptation-card-b .adaptation-visual i { left:16%; top:24%; }
.adaptation-card-b .adaptation-visual b { right:15%; bottom:23%; background:#67c9bd; }
.adaptation-card-b .adaptation-visual em { left:55%; top:14%; }
.adaptation-card-c .adaptation-visual::before { transform:rotate(14deg); transform-origin:center; }
.adaptation-card-c .adaptation-visual i { left:16%; bottom:23%; }
.adaptation-card-c .adaptation-visual b { right:15%; top:24%; background:#67c9bd; }
.adaptation-card-c .adaptation-visual em { left:43%; bottom:14%; }

.method-chapter { padding:126px 0 132px; background:#fff; color:#0d1527; }
.method-final-heading { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:70px; align-items:end; }
.method-final-heading h2 {
  margin:0;
  font-size:clamp(46px,4.8vw,76px);
  font-weight:560;
  line-height:1;
  letter-spacing:-.057em;
}
.method-final-heading h2 span { color:#315bff; }
.method-final-heading p { margin:0 0 8px; color:#586986; font-size:18px; line-height:1.6; }
.method-final-steps {
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  margin:82px 0 36px;
  padding:0;
  list-style:none;
  border-top:1px solid #cbd6ee;
}
.method-final-steps li { position:relative; padding:27px 24px 0 0; min-height:140px; }
.method-final-steps li::before {
  content:'';
  position:absolute;
  left:0; top:-4px;
  width:7px; height:7px;
  border-radius:50%;
  background:#315bff;
  box-shadow:0 0 0 6px rgba(49,91,255,.06);
}
.method-final-steps span { display:block; margin-bottom:22px; color:#315bff; font-size:10px; font-weight:700; letter-spacing:.15em; }
.method-final-steps strong { display:block; margin-bottom:8px; font-size:20px; letter-spacing:-.03em; }
.method-final-steps small { display:block; max-width:170px; color:#6b7893; font-size:13px; line-height:1.45; }

.expansion-chapter {
  position:relative;
  min-height:780px;
  display:flex;
  align-items:center;
  overflow:clip;
  background:linear-gradient(180deg,#f7f9fc 0%,#eef3ff 52%,#f8fafc 100%);
  color:#0d1527;
}
.expansion-atmosphere { position:absolute; inset:0; pointer-events:none; }
.expansion-atmosphere::before {
  content:'';
  position:absolute;
  left:50%; top:52%;
  width:min(1000px,82vw); height:min(1000px,82vw);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.96) 0,rgba(225,233,255,.50) 31%,rgba(49,91,255,.07) 54%,transparent 72%);
}
.expansion-atmosphere span { position:absolute; left:50%; top:52%; border:1px solid rgba(49,91,255,.08); border-radius:50%; transform:translate(-50%,-50%); }
.expansion-atmosphere span:nth-child(1) { width:420px; height:420px; }
.expansion-atmosphere span:nth-child(2) { width:690px; height:690px; opacity:.7; }
.expansion-atmosphere span:nth-child(3) { width:960px; height:960px; opacity:.45; }
.expansion-inner { position:relative; z-index:2; padding-top:110px; padding-bottom:110px; text-align:center; }
.expansion-inner .finale-meta { justify-content:center; }
.expansion-belief { margin:0 auto 54px; color:#536583; font-size:clamp(18px,1.5vw,22px); line-height:1.5; }
.expansion-belief span { color:#315bff; }
.expansion-inner h2 {
  max-width:1030px;
  margin:0 auto;
  font-size:clamp(54px,6.2vw,96px);
  font-weight:560;
  line-height:.94;
  letter-spacing:-.064em;
}
.expansion-copy { max-width:630px; margin:34px auto 0; color:#586985; font-size:18px; line-height:1.62; }
.expansion-cta { margin-top:34px; }

@media (max-width:900px) {
  .adaptation-chapter,.method-chapter { padding:96px 0; }
  .adaptation-system { grid-template-columns:1fr; margin-top:56px; }
  .adaptation-card { min-height:300px; }
  .adaptation-copy > p:last-child { margin-left:0; }
  .method-final-heading { grid-template-columns:1fr; gap:28px; }
  .method-final-steps { grid-template-columns:1fr 1fr; gap:0 28px; }
  .method-final-steps li { border-top:1px solid #e1e7f2; }
  .method-final-steps li::before { top:-4px; }
  .expansion-chapter { min-height:680px; }
}

@media (max-width:620px) {
  .adaptation-chapter,.method-chapter { padding:76px 0; }
  .adaptation-copy h2,.method-final-heading h2 { font-size:clamp(40px,11vw,54px); }
  .adaptation-system { gap:14px; }
  .adaptation-card { min-height:270px; border-radius:22px; }
  .method-final-steps { grid-template-columns:1fr; margin-top:56px; }
  .method-final-steps li { min-height:0; padding:24px 0 24px; }
  .expansion-chapter { min-height:620px; }
  .expansion-inner { text-align:left; }
  .expansion-inner .finale-meta { justify-content:flex-start; }
  .expansion-inner h2 { font-size:clamp(46px,13vw,64px); }
  .expansion-belief,.expansion-copy { margin-left:0; }
}

@media (prefers-reduced-motion:no-preference) {
  .adaptation-card { transition:transform 320ms cubic-bezier(.2,.72,.2,1),border-color 320ms ease,box-shadow 320ms ease; }
  .adaptation-card:hover { transform:translateY(-5px); border-color:rgba(49,91,255,.20); box-shadow:0 34px 90px rgba(27,47,92,.09),inset 0 1px 0 #fff; }
  .expansion-atmosphere::before { animation:finale-breathe 9s ease-in-out infinite alternate; }
}
@keyframes finale-breathe { from { transform:translate(-50%,-50%) scale(.985); opacity:.84; } to { transform:translate(-50%,-50%) scale(1.02); opacity:1; } }
