@charset "UTF-8";
/* =========================================================
   08-cta.css — CTA banner（黒地、ホバー時に右パディングが伸びる）
   ========================================================= */

.lib-cta-wrap {
  max-width: 1280px; margin: 120px auto 160px; padding: 0 32px;
}

.lib-cta {
  display: flex; align-items: center; justify-content: space-between;
  background: #0a0a0a;
  color: #ffffff;
  padding: 48px 56px;
  transition: padding .35s cubic-bezier(.22,.61,.36,1), background .35s ease;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}
.lib-cta * { color: #ffffff; }
.lib-cta__sub { color: #a9a59c !important; }
.lib-cta::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.06) 50%, transparent 100%);
  transform: translateX(-100%);
  transition: transform .8s cubic-bezier(.22,.61,.36,1);
}
.lib-cta:hover { padding-right: 72px; color: var(--paper); }
.lib-cta:hover::before { transform: translateX(100%); }

.lib-cta__text { display: flex; flex-direction: column; gap: 6px; position: relative; }
.lib-cta__lead { font-size: 24px; font-weight: 700; letter-spacing: 0.005em; }
.lib-cta__sub {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--fg-on-dark-muted);
}

.lib-cta__arrow {
  width: 56px; height: 56px; border-radius: var(--radius-pill);
  border: 1px solid var(--paper);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .25s ease, color .25s ease, transform .25s ease;
  flex-shrink: 0;
  position: relative;
}
.lib-cta:hover .lib-cta__arrow { background: var(--paper); color: var(--ink-1000); transform: translateX(4px); }
