/* =========================================================
   Motion — Dual Line モーション言語
   実線 Navy = 経営 / 破線 Green = 人生
   ========================================================= */

:root {
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-reveal: 0.75s;
  --dur-line: 1.1s;
  --dur-accordion: 0.55s;
  --dur-stagger: 0.07s;
  --dur-stagger-mobile: 0.04s;
  --stagger-max: 6;
  --stagger-max-mobile: 4;
  --line-solid: var(--c-navy);
  --line-dash: var(--c-green);
}

/* --- Reveal バリエーション --- */
.reveal--fade {
  transform: translateY(16px);
}

.reveal--mask {
  opacity: 1;
  transform: none;
  clip-path: none;
  max-height: none;
  overflow: hidden;
  transition: clip-path 1s var(--ease-out-expo), opacity 0.5s var(--ease-out-expo), max-height 1s var(--ease-out-expo);
}

html.js .reveal--mask:not(.is-visible) {
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  max-height: 0;
  margin-block: 0 !important;
}

.reveal--mask.is-visible {
  clip-path: inset(0);
  max-height: 800px;
  opacity: 1;
}

/* --- スタagger --- */
.reveal--stagger > * {
  opacity: 1;
  transform: none;
  transition: opacity var(--dur-reveal) var(--ease-out-expo), transform var(--dur-reveal) var(--ease-out-expo);
}

html.js .reveal--stagger:not(.is-visible) > * {
  opacity: 0;
  transform: translateY(16px);
}

.reveal--stagger.is-visible > * {
  opacity: 1;
  transform: none;
}

/* --- Dual Line: Navy 実線（縦・rail） --- */
.reveal--line-solid .rail__spine::after {
  content: "";
  position: absolute;
  left: -1px;
  top: 0;
  width: 2px;
  height: 100%;
  background: var(--line-solid);
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform var(--dur-line) var(--ease-out-expo);
  pointer-events: none;
}

.reveal--line-solid.is-visible .rail__spine::after {
  transform: scaleY(1);
}

.reveal--line-solid.is-visible .rail__node {
  animation: nodePulseOnce 0.6s var(--ease-out-expo) var(--dur-line) both;
}

@keyframes nodePulseOnce {
  0% { box-shadow: 0 0 0 0 rgba(95, 184, 155, 0.45); }
  70% { box-shadow: 0 0 0 8px rgba(95, 184, 155, 0); }
  100% { box-shadow: 0 0 0 0 rgba(95, 184, 155, 0); }
}

/* --- Dual Line: Navy 実線（横・flow / svc-timeline） --- */
.flow__line,
.svc-timeline__line {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--dur-line) var(--ease-out-expo);
  background: var(--line-solid) !important;
  height: 2px !important;
  opacity: 0.4;
}

.service-bridge__line {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--dur-line) var(--ease-out-expo);
}
.reveal--line-solid.is-visible .flow__line,
.reveal--line-solid.is-visible .svc-timeline__line,
.reveal--line-solid.is-visible .service-bridge__line {
  transform: scaleX(1);
}

.flow__grid > div {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.55s var(--ease-out-expo), transform 0.55s var(--ease-out-expo);
}

.reveal--line-solid.is-visible .flow__grid > div {
  opacity: 1;
  transform: none;
}

.reveal--line-solid.is-visible .flow__grid > div:nth-child(1) { transition-delay: calc(var(--dur-line) * 0.35); }
.reveal--line-solid.is-visible .flow__grid > div:nth-child(2) { transition-delay: calc(var(--dur-line) * 0.5); }
.reveal--line-solid.is-visible .flow__grid > div:nth-child(3) { transition-delay: calc(var(--dur-line) * 0.65); }
.reveal--line-solid.is-visible .flow__grid > div:nth-child(4) { transition-delay: calc(var(--dur-line) * 0.8); }
.reveal--line-solid.is-visible .flow__grid > div:nth-child(5) { transition-delay: calc(var(--dur-line) * 0.95); }

/* --- Dual Line: Green 破線（縦・timeline / cta） --- */
.timeline.reveal--line-dash::before {
  background: transparent;
  border-left: 2px dashed var(--line-dash);
  width: 2px;
  opacity: 0.55;
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform var(--dur-line) var(--ease-out-expo);
}

.timeline.reveal--line-dash.is-visible::before {
  transform: scaleY(1);
}

.timeline.reveal--line-dash > li {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s var(--ease-out-expo), transform 0.5s var(--ease-out-expo);
}

.timeline.reveal--line-dash.is-visible > li {
  opacity: 1;
  transform: none;
}

.cta__connector span {
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform var(--dur-line) var(--ease-out-expo);
  background: none !important;
  border-left: 2px dashed var(--c-green-soft);
  width: 0 !important;
  height: 46px;
}

.reveal--line-dash.is-visible .cta__connector span {
  transform: scaleY(1);
}

.cta__dot span {
  animation: ctaDotRipple 3s ease-out infinite;
  animation-delay: var(--dur-line);
}

@keyframes ctaDotRipple {
  0% { box-shadow: 0 0 0 0 rgba(95, 184, 155, 0.45); }
  70% { box-shadow: 0 0 0 12px rgba(95, 184, 155, 0); }
  100% { box-shadow: 0 0 0 0 rgba(95, 184, 155, 0); }
}

/* --- 下層ページヒーロー --- */
/* 本文は常時表示。演出は is-visible 時の letter-spacing のみ（JS/キャッシュ不整合でも消えない） */
.page-hero.reveal,
.rail.reveal.reveal--line-solid,
.flow.reveal.reveal--line-solid {
  opacity: 1;
  transform: none;
}

.page-hero .eyebrow,
.page-hero h1,
.page-hero p {
  opacity: 1;
  transform: none;
  transition: letter-spacing 0.65s var(--ease-out-expo);
}

.page-hero .eyebrow span {
  letter-spacing: 0.18em;
}

.page-hero.is-visible .eyebrow span {
  letter-spacing: 0.3em;
}

/* --- レール見出しカスケード --- */
/* 見出しテキストは常時表示。縦線スケール等の演出のみ is-visible 依存 */
.reveal--line-solid .rail__head,
.reveal--line-solid .rail__spine > h2,
.reveal--line-solid .rail__lead {
  opacity: 1;
  transform: none;
}

.reveal--line-solid.is-visible .rail__spine > h2 {
  letter-spacing: 0.04em;
}

/* --- CTA 見出しカスケード --- */
.reveal--line-dash .cta__inner > h2,
.reveal--line-dash .cta__inner > p {
  opacity: 1;
  transform: none;
}

/* --- 料金タブ価格クロスフェード --- */
.plancard__num {
  font-variant-numeric: tabular-nums;
  transition: opacity 0.15s var(--ease);
}

.plancard__num.is-fading {
  opacity: 0;
}

/* --- オプション行（スタagger 子要素として扱う） --- */

/* --- チェッカーパネル --- */
.checker__step,
.checker__result {
  transition: opacity 0.35s var(--ease-out-expo);
}

.checker__step.is-fading,
.checker__result.is-fading {
  opacity: 0;
}

/* --- ヘッダー --- */
.hdr {
  transition: box-shadow 0.3s var(--ease), backdrop-filter 0.3s var(--ease), background 0.3s var(--ease);
}

.hdr.is-scrolled {
  box-shadow: 0 4px 24px rgba(30, 39, 97, 0.08);
  background: rgba(255, 255, 255, 0.96);
}

.hdr.is-menu-open {
  backdrop-filter: saturate(120%) blur(4px);
  background: rgba(255, 255, 255, 0.88);
}

/* --- モバイルメニュー --- */
.mmenu {
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 0.35s var(--ease-out-expo), visibility 0.35s, transform 0.35s var(--ease-out-expo);
}

.mmenu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

.mmenu__top,
.mmenu nav a,
.mmenu__cta,
.mmenu__line {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s var(--ease-out-expo), transform 0.35s var(--ease-out-expo);
}

.mmenu.is-open .mmenu__top {
  opacity: 1;
  transform: none;
  transition-delay: 0ms;
}

.mmenu.is-open nav a:nth-child(1) { opacity: 1; transform: none; transition-delay: 50ms; }
.mmenu.is-open nav a:nth-child(2) { opacity: 1; transform: none; transition-delay: 100ms; }
.mmenu.is-open nav a:nth-child(3) { opacity: 1; transform: none; transition-delay: 150ms; }
.mmenu.is-open nav a:nth-child(4) { opacity: 1; transform: none; transition-delay: 200ms; }
.mmenu.is-open nav a:nth-child(5) { opacity: 1; transform: none; transition-delay: 250ms; }
.mmenu.is-open nav a:nth-child(6) { opacity: 1; transform: none; transition-delay: 300ms; }
.mmenu.is-open nav a:nth-child(7) { opacity: 1; transform: none; transition-delay: 350ms; }
.mmenu.is-open nav a:nth-child(8) { opacity: 1; transform: none; transition-delay: 400ms; }

.mmenu.is-open .mmenu__cta,
.mmenu.is-open .mmenu__line {
  opacity: 1;
  transform: none;
  transition-delay: 450ms;
}

.burger.is-open span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.burger.is-open span:nth-child(2) {
  opacity: 0;
}

.burger.is-open span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* --- ボタン active / カード hover 統一 --- */
.btn:active {
  transform: translateY(1px);
}

.card:hover,
.post-card:hover {
  transform: translateY(-2px);
}

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

/* --- ブリッジ2カラム --- */
.bridge.reveal--stagger > .bridge__card {
  transition-delay: 0ms;
}

.bridge.reveal--stagger > .vision {
  transition-delay: 120ms;
}


/* --- Hero Viz Panel (compact corner card) --- */
.hero__viz-panel {
  opacity: 0;
  transform: translateY(16px) scale(0.97);
  transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo);
}

.hero__viz-panel.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* --- Hero Viz Choreography --- */
.hero-viz-container {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.55s var(--ease-out-expo), transform 0.55s var(--ease-out-expo);
}

.hero-viz-container.hero-viz--ready {
  opacity: 1;
  transform: none;
}

.hero-viz-container.reveal {
  opacity: 0;
  transform: translateY(20px) scale(0.97);
  transition: none;
}

.hero-viz-container.reveal.is-visible:not(.hero-viz--ready) {
  opacity: 0;
  transform: translateY(20px) scale(0.97);
}

.hero-viz-container.reveal.is-visible.hero-viz--ready,
.hero-viz-container.hero-viz--ready {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 0.6s var(--ease-out-expo),
    transform 0.6s var(--ease-out-expo),
    box-shadow 0.6s var(--ease-out-expo);
}

.hero-viz__legend__item {
  display: flex;
  align-items: center;
  gap: 9px;
  opacity: 0;
  transform: translateY(8px);
}

.hero-viz__legend__chip {
  display: block;
  flex: none;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s var(--ease-out-expo);
}

.hero-viz__legend__chip--biz {
  width: 20px;
  height: 2px;
  background: var(--c-navy);
}

.hero-viz__legend__chip--life {
  width: 20px;
  height: 0;
  border-top: 1.6px dashed var(--c-green);
}

.hero-viz--ready .hero-viz__legend__item:nth-child(1) {
  animation: heroVizLegendIn 0.55s var(--ease-out-expo) 0.4s both;
}

.hero-viz--ready .hero-viz__legend__item:nth-child(2) {
  animation: heroVizLegendIn 0.55s var(--ease-out-expo) 0.48s both;
}

.hero-viz--ready .hero-viz__legend__item:nth-child(1) .hero-viz__legend__chip {
  transition-delay: 0.45s;
}

.hero-viz--ready .hero-viz__legend__item:nth-child(2) .hero-viz__legend__chip {
  transition-delay: 0.53s;
}

.hero-viz--ready .hero-viz__legend__chip {
  transform: scaleX(1);
}

@keyframes heroVizLegendIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.hero-viz__node {
  opacity: 0;
}

.hero-viz__node__dot {
  opacity: 0;
}

.hero-viz--beat-past .hero-viz__node--past {
  animation: heroVizNodeIn 0.55s var(--ease-out-expo) both;
}

.hero-viz--beat-past .hero-viz__node--past .hero-viz__node__dot {
  animation: heroVizNodeDotIn 0.4s var(--ease-out-expo) 0.12s both;
}

.hero-viz--beat-now .hero-viz__node--now {
  animation: heroVizNodeIn 0.55s var(--ease-out-expo) both;
}

.hero-viz--beat-now .hero-viz__node--now .hero-viz__node__dot {
  animation: heroVizNodeDotIn 0.4s var(--ease-out-expo) 0.12s both;
}

.hero-viz--beat-future .hero-viz__node--future {
  animation: heroVizNodeIn 0.55s var(--ease-out-expo) both;
}

.hero-viz--beat-future .hero-viz__node--future .hero-viz__node__dot {
  animation: heroVizNodeDotIn 0.45s var(--ease-out-expo) 0.15s both;
}

@keyframes heroVizNodeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes heroVizNodeDotIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.hero-viz__label {
  transform: translateY(6px);
}

.hero-viz--beat-past .hero-viz__label--past,
.hero-viz--beat-now .hero-viz__label--now,
.hero-viz--beat-future .hero-viz__label--future {
  animation: heroVizLabelIn 0.55s var(--ease-out-expo) both;
}

.hero-viz--beat-now .hero-viz__label--now text:first-of-type {
  letter-spacing: 0.12em;
}

@keyframes heroVizLabelIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.hero-viz-container.hero-viz--life-drawn .hero-viz__path--life {
  stroke-dasharray: 5 5 !important;
  stroke-dashoffset: 0 !important;
}

.hero-viz-container.hero-viz--draw-biz [data-viz-anim="clip-biz"],
.hero-viz-container.hero-viz--ambient [data-viz-anim="clip-biz"] {
  width: 480px;
}

.hero-viz-container.hero-viz--ready .hero-viz__axis,
.hero-viz-container.hero-viz--ambient .hero-viz__axis {
  stroke-dashoffset: 0 !important;
}

.hero-viz-container.hero-viz--ambient .hero-viz__guide line {
  stroke-dashoffset: 0 !important;
}

/* ambient 到達後はアニメーション成否に関わらず最終表示を保証 */
.hero-viz-container.hero-viz--ambient .hero-viz__legend__item,
.hero-viz-container.hero-viz--ambient .hero-viz__label {
  opacity: 1 !important;
  transform: none !important;
}

.hero-viz-container.hero-viz--ambient .hero-viz__legend__chip {
  transform: scaleX(1) !important;
}

.hero-viz-container.hero-viz--ambient .hero-viz__node {
  opacity: 1 !important;
}

.hero-viz-container.hero-viz--ambient .hero-viz__node__dot {
  opacity: 1 !important;
}

.hero-viz-container.hero-viz--beat-past .hero-viz__node--past,
.hero-viz-container.hero-viz--beat-now .hero-viz__node--now,
.hero-viz-container.hero-viz--beat-future .hero-viz__node--future {
  opacity: 1;
}

.hero-viz-container.hero-viz--beat-past .hero-viz__node--past .hero-viz__node__dot,
.hero-viz-container.hero-viz--beat-now .hero-viz__node--now .hero-viz__node__dot,
.hero-viz-container.hero-viz--beat-future .hero-viz__node--future .hero-viz__node__dot {
  opacity: 1;
}

.hero-viz__ripples {
  opacity: 0;
  pointer-events: none;
}

.hero-viz--ambient .hero-viz__ripples {
  opacity: 1;
}

/* --- Service Viz Choreography --- */
.service-viz-container.reveal {
  opacity: 0;
  transform: translateY(20px) scale(0.97);
  transition: none;
}

.service-viz-container.reveal.is-visible:not(.service-viz--ready) {
  opacity: 0;
  transform: translateY(20px) scale(0.97);
}

.service-viz-container.reveal.is-visible.service-viz--ready,
.service-viz-container.service-viz--ready {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 0.6s var(--ease-out-expo),
    transform 0.6s var(--ease-out-expo),
    box-shadow 0.6s var(--ease-out-expo);
}

.service-viz__legend__item {
  display: flex;
  align-items: center;
  gap: 9px;
  opacity: 0;
  transform: translateY(8px);
}

.service-viz__legend__chip {
  display: block;
  flex: none;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s var(--ease-out-expo);
}

.service-viz__legend__chip--biz {
  width: 20px;
  height: 2px;
  background: var(--c-navy);
}

.service-viz__legend__chip--life {
  width: 20px;
  height: 0;
  border-top: 1.6px dashed var(--c-green);
}

.service-viz--ready .service-viz__legend__item:nth-child(1) {
  animation: serviceVizLegendIn 0.55s var(--ease-out-expo) 0.4s both;
}

.service-viz--ready .service-viz__legend__item:nth-child(2) {
  animation: serviceVizLegendIn 0.55s var(--ease-out-expo) 0.48s both;
}

.service-viz--ready .service-viz__legend__item:nth-child(1) .service-viz__legend__chip {
  transition-delay: 0.45s;
}

.service-viz--ready .service-viz__legend__item:nth-child(2) .service-viz__legend__chip {
  transition-delay: 0.53s;
}

.service-viz--ready .service-viz__legend__chip {
  transform: scaleX(1);
}

@keyframes serviceVizLegendIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

.service-viz__node { opacity: 0; }
.service-viz__node__dot { opacity: 0; }

.service-viz--beat-past .service-viz__node--past { animation: serviceVizNodeIn 0.55s var(--ease-out-expo) both; }
.service-viz--beat-past .service-viz__node--past .service-viz__node__dot { animation: serviceVizNodeDotIn 0.4s var(--ease-out-expo) 0.12s both; }
.service-viz--beat-now .service-viz__node--now { animation: serviceVizNodeIn 0.55s var(--ease-out-expo) both; }
.service-viz--beat-now .service-viz__node--now .service-viz__node__dot { animation: serviceVizNodeDotIn 0.4s var(--ease-out-expo) 0.12s both; }
.service-viz--beat-future .service-viz__node--future { animation: serviceVizNodeIn 0.55s var(--ease-out-expo) both; }
.service-viz--beat-future .service-viz__node--future .service-viz__node__dot { animation: serviceVizNodeDotIn 0.45s var(--ease-out-expo) 0.15s both; }

@keyframes serviceVizNodeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes serviceVizNodeDotIn { from { opacity: 0; } to { opacity: 1; } }

.service-viz__label { transform: translateY(6px); }

.service-viz--beat-past .service-viz__label--past,
.service-viz--beat-now .service-viz__label--now,
.service-viz--beat-future .service-viz__label--future {
  animation: serviceVizLabelIn 0.55s var(--ease-out-expo) both;
}

@keyframes serviceVizLabelIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.service-viz-container.service-viz--life-drawn .service-viz__path--life {
  stroke-dasharray: 5 5 !important;
  stroke-dashoffset: 0 !important;
}

.service-viz-container.service-viz--draw-biz [data-viz-anim="clip-biz"],
.service-viz-container.service-viz--ambient [data-viz-anim="clip-biz"] {
  width: 960px;
}

.service-viz-container.service-viz--ready .service-viz__axis,
.service-viz-container.service-viz--ambient .service-viz__axis {
  stroke-dashoffset: 0 !important;
}

.service-viz-container.service-viz--ambient .service-viz__guide line {
  stroke-dashoffset: 0 !important;
}

.service-viz-container.service-viz--ambient .service-viz__legend__item,
.service-viz-container.service-viz--ambient .service-viz__label {
  opacity: 1 !important;
  transform: none !important;
}

.service-viz-container.service-viz--ambient .service-viz__legend__chip {
  transform: scaleX(1) !important;
}

.service-viz-container.service-viz--ambient .service-viz__node,
.service-viz-container.service-viz--ambient .service-viz__node__dot {
  opacity: 1 !important;
}

.service-viz__ripples { opacity: 0; pointer-events: none; }
.service-viz--ambient .service-viz__ripples { opacity: 1; }

/* --- アコーディオン（FAQ / 問い合わせ prepare） --- */
.faq__panel,
.page-contact__prepare-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-accordion) var(--ease-out-expo);
}

.faq__item[open]:not(.is-closing) .faq__panel,
.page-contact__prepare[open]:not(.is-closing) .page-contact__prepare-panel {
  grid-template-rows: 1fr;
}

.faq__item.is-closing .faq__panel,
.page-contact__prepare.is-closing .page-contact__prepare-panel {
  grid-template-rows: 0fr;
}

.faq__panel-inner,
.page-contact__prepare-panel > .page-contact__prepare-body {
  overflow: hidden;
  min-height: 0;
}

.faq__panel-inner > p {
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity calc(var(--dur-accordion) * 0.75) var(--ease-out-expo) 0.12s,
    transform calc(var(--dur-accordion) * 0.75) var(--ease-out-expo) 0.12s;
}

.faq__item[open]:not(.is-closing) .faq__panel-inner > p {
  opacity: 1;
  transform: none;
}

.faq__item.is-closing .faq__panel-inner > p {
  opacity: 0;
  transform: translateY(-4px);
  transition-delay: 0s;
  transition-duration: calc(var(--dur-accordion) * 0.45);
}

.page-contact__prepare-panel > .page-contact__prepare-body {
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity calc(var(--dur-accordion) * 0.75) var(--ease-out-expo) 0.12s,
    transform calc(var(--dur-accordion) * 0.75) var(--ease-out-expo) 0.12s;
}

.page-contact__prepare[open]:not(.is-closing) .page-contact__prepare-panel > .page-contact__prepare-body {
  opacity: 1;
  transform: none;
}

.page-contact__prepare.is-closing .page-contact__prepare-panel > .page-contact__prepare-body {
  opacity: 0;
  transform: translateY(-4px);
  transition-delay: 0s;
  transition-duration: calc(var(--dur-accordion) * 0.45);
}

/* --- reduced-motion 統合 --- */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal--fade,
  .reveal--mask {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    max-height: none !important;
    margin-block: revert !important;
    transition: none !important;
  }
  .reveal--stagger > *,
  .page-hero .eyebrow,
  .page-hero h1,
  .page-hero p,
  .reveal--line-solid .rail__head,
  .reveal--line-solid .rail__spine > h2,
  .reveal--line-solid .rail__lead,
  .reveal--line-dash .cta__inner > h2,
  .reveal--line-dash .cta__inner > p,
  .flow__grid > div,
  .timeline.reveal--line-dash > li {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }

  .reveal--line-solid .rail__spine::after,
  .flow__line,
  .svc-timeline__line,
  .cta__connector span,
  .timeline.reveal--line-dash::before {
    transform: none !important;
    transition: none !important;
  }

  .reveal--line-solid.is-visible .rail__node,
  .cta__dot span {
    animation: none !important;
  }

  .hero__viz-panel,
  .hero__viz-panel.is-visible,
  .hero-viz-container,
  .hero-viz-container.reveal,
  .hero-viz-container.reveal.is-visible,
  .hero-viz-container.hero-viz--ready,
  .service-viz-container.reveal,
  .service-viz-container.reveal.is-visible,
  .service-viz-container.service-viz--ready {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .hero-viz__legend__item,
  .hero-viz__node,
  .hero-viz__node__dot,
  .hero-viz__label,
  .service-viz__legend__item,
  .service-viz__node,
  .service-viz__node__dot,
  .service-viz__label {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  .hero-viz__legend__chip,
  .service-viz__legend__chip {
    transform: none !important;
    transition: none !important;
  }

  .hero-viz__ripples,
  .service-viz__ripples {
    opacity: 0 !important;
  }

  .mmenu {
    transition: none !important;
    transform: none !important;
  }

  .mmenu__top,
  .mmenu nav a,
  .mmenu__cta,
  .mmenu__line {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .faq__panel,
  .page-contact__prepare-panel {
    transition: none !important;
  }

  .faq__panel-inner > p,
  .page-contact__prepare-panel > .page-contact__prepare-body {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .faq__icon::after {
    transition: none !important;
  }

  .faq__item[open] .faq__icon::after {
    transform: scaleY(0) !important;
  }
}

@media (max-width: 1024px) {
  .reveal--line-solid .rail__spine::after {
    display: none;
  }
}
