/* 審査 round1 対応：フォーカス・モバイルナビ・レイアウトの緩急・動き */
a:focus-visible, button:focus-visible, .form__input:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
@media (max-width: 1080px) {
  .nav { visibility: hidden; box-shadow: none; transition: transform 0.35s ease, visibility 0s 0.35s; }
  .nav.is-open { visibility: visible; box-shadow: -10px 0 40px rgba(19,47,85,0.15); transition: transform 0.35s ease; }
}
.section__label { letter-spacing: 0.2em; font-family: var(--f-base); }
.section__lead, .step p, .strength__item p { font-size: 16px; color: var(--c-text); opacity: 0.82; }

/* service: 縦タイムライン */
#service .container { max-width: 880px; }
.steps { grid-template-columns: 1fr; gap: 0; position: relative; }
.steps::before { content: ""; position: absolute; left: 34px; top: 12px; bottom: 12px; width: 1px; background: var(--c-border); }
.step { display: grid; grid-template-columns: 70px 1fr; column-gap: 28px; background: none; border: none; box-shadow: none; padding: 20px 0; position: relative; }
.step__no { grid-row: 1 / 3; font-size: 13px; line-height: 1.2; color: #8a5a17; letter-spacing: 0.08em; background: var(--c-bg); position: relative; z-index: 1; padding: 6px 0; text-align: center; margin: 0; align-self: start; }
.step h3 { font-size: 22px; margin: 0 0 6px; }

/* strength: 非対称2カラム */
#strength .container { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 64px; align-items: start; }
#strength .section__head { text-align: left; margin: 0; position: sticky; top: calc(var(--header-h) + 32px); }
.strength { grid-template-columns: 1fr; border-top: 2px solid var(--c-primary-deep); }
.strength__item, .strength__item + .strength__item { padding: 28px 0; border-left: none; border-bottom: 1px solid var(--c-border); }
#service { padding: 120px 0; }
#strength { padding: 120px 0; }
#company { padding: 110px 0; }
@media (max-width: 1080px) { #strength .container { grid-template-columns: 1fr; gap: 32px; } #strength .section__head { position: static; } }
@media (max-width: 768px) {
  #service, #strength, #company { padding: 64px 0; }
  .step { grid-template-columns: 52px 1fr; column-gap: 16px; }
  .steps::before { left: 26px; }
}

/* hover / motion */
.nav > a { position: relative; }
.nav > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform 0.25s; }
.nav > a:hover::after, .nav > a[aria-current="page"]::after { transform: scaleX(1); }
@media (max-width: 1080px) { .nav > a::after { display: none; } }
.strength__item { transition: transform 0.25s; }
.strength__item:hover { transform: translateX(6px); }
.ftr__links a:hover { color: #fff; }
.btn span[aria-hidden], .hdr__cta span[aria-hidden] { transition: transform 0.2s; }
.btn:hover span[aria-hidden], .hdr__cta:hover span[aria-hidden] { transform: translateX(4px); }
.hero::before { animation: drift 18s ease-in-out infinite alternate; }
@keyframes drift { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(-18px,-10px,0) scale(1.05); } }
.hero h1, .hero__lead, .hero__actions, .hero-card { animation: rise 0.9s ease both; }
.hero__lead { animation-delay: 0.12s; }
.hero__actions { animation-delay: 0.24s; }
.hero-card { animation-delay: 0.36s; }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hero__actions .btn--ghost { border: none; border-bottom: 1px solid rgba(255,255,255,0.6); border-radius: 0; padding: 14px 4px; }
.hero__actions .btn--ghost:hover { background: none; border-bottom-color: #fff; }
.page-hero__title { font-family: var(--f-disp); }
@media (prefers-reduced-motion: reduce) {
  .hero::before, .hero h1, .hero__lead, .hero__actions, .hero-card { animation: none; }
}
