/* アニメーション(会社トップと回送ページで共通) */
/* ---------- 流れる帯(ティッカー) ---------- */
.ticker { position: relative; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--bg); padding: 14px 0; }
.ticker-track { display: flex; gap: 48px; width: max-content; animation: k-marquee 32s linear infinite; }
.ticker span { font-family: var(--mono); font-size: 13px; letter-spacing: 0.18em; color: var(--muted); white-space: nowrap; }
.ticker span b { color: var(--text); font-family: var(--sans); letter-spacing: 0.05em; font-size: 14px; }

/* ---------- スクロールで表示 ---------- */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); transition-delay: var(--d, 0s); }
.js .reveal.in { opacity: 1; transform: none; }
.js .reveal.from-left { transform: translateX(-36px); }
.js .reveal.from-right { transform: translateX(36px); }
.js .reveal.from-left.in, .js .reveal.from-right.in { transform: none; }

/* ---------- キーフレーム ---------- */
@keyframes k-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes k-in-left { from { opacity: 0; transform: translate(-40px, 30px) rotate(-6deg); } to { opacity: 1; transform: rotate(-4deg); } }
@keyframes k-in-right { from { opacity: 0; transform: translate(40px, 30px) rotate(6deg); } to { opacity: 1; transform: rotate(3deg); } }
@keyframes k-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -14px; } }
@keyframes k-pop { from { opacity: 0; transform: scale(0.6) translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes k-ping { 0% { box-shadow: 0 0 0 0 rgba(31, 138, 76, 0.6); } 80%, 100% { box-shadow: 0 0 0 10px rgba(31, 138, 76, 0); } }
@keyframes k-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes k-zoom { from { transform: scale(1); } to { transform: scale(1.08); } }

@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: none !important; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
}
