/* components.css: 组件级细化样式（按钮已在 base 中，后续补充分离可重构） */
/* 动画/渐显（后期可用 IntersectionObserver 优化） */
.reveal { opacity:0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity:1; transform: translateY(0); }

/* 速览九型某些 hover 交互 */
.types-grid li { transition: box-shadow var(--transition-base), transform var(--transition-base); }
.types-grid li:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }

/* inline CTA 下划线效果 */
.inline-cta { position:relative; }
.inline-cta::after { content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background: var(--color-primary); transition: width var(--transition-base); }
.inline-cta:hover::after { width:100%; }

/* FAQ 细节展开动画（简易） */
.faq-items details[open] { border:1px solid var(--color-border); }

/* Placeholder for future sticky CTA */
.sticky-cta-bar { position: fixed; left:0; right:0; bottom:0; display:none; background:#fff; border-top:1px solid var(--color-border); padding: var(--space-3) var(--space-5); justify-content: space-between; align-items: center; box-shadow: 0 -2px 6px rgba(0,0,0,0.06); }
.sticky-cta-bar .info { font-size: .875rem; color: var(--color-text-dim); }
.sticky-cta-bar .btn { flex-shrink:0; }

/* Dark text on gradient ensure readability */
.final-cta .btn { box-shadow: 0 4px 10px rgba(0,0,0,0.25); }
