*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-feature-settings: "palt" 1; -webkit-text-size-adjust: 100%; }
body {
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.8;
  letter-spacing: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  font-kerning: normal;
  overflow-x: clip;
}
h1, h2, h3 { line-height: 1.4; letter-spacing: 0.02em; word-break: auto-phrase; overflow-wrap: anywhere; }
p, li, dd, dt, td, th { word-break: auto-phrase; }
img, svg { display: block; max-width: 100%; }
ul, ol { list-style: none; }
a { color: inherit; }
.illust { max-width: none; }
.flip { transform: scaleX(-1); }
.nw { white-space: nowrap; }

.site-nav { display: flex; overflow-x: auto; scrollbar-width: none; }
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a { flex: none; white-space: nowrap; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.site-nav a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 56px;
  padding: 0 20px;
  border-radius: 10px;
  background: #06C755;
  color: #FFFFFF;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.cta:hover { background: #05B34D; }
.cta:active { background: #048B3C; }
.cta:focus-visible { outline: 3px solid #048B3C; outline-offset: 3px; }
.cta-chip { flex: none; white-space: nowrap; font-size: 0.75rem; font-weight: 700; background: #FFFFFF; color: #048B3C; border-radius: 4px; padding: 2px 8px; }

.js .rv {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.js .rv.in { opacity: 1; transform: none; }
@media print { .js .rv { opacity: 1; transform: none; transition: none; } }

@media (prefers-reduced-motion: reduce) {
  .js .rv { opacity: 1; transform: none; transition: none; }
  .cta { transition: none; }
}
