/* 静的HTML化に伴う補助スタイル（base.css は旧サイトの Tailwind 出力をそのまま使用） */
.img-fill{position:absolute;inset:0;width:100%;height:100%;color:transparent}
.items-baseline{align-items:baseline}
.leading-snug{line-height:1.375}
.max-w-md{max-width:28rem}
.my-12{margin-block:3rem}
.text-right{text-align:right}
.text-gray-300{color:#d1d5dc}
.border-t-2{border-top-style:solid;border-top-width:2px}
.space-y-3>:not(:last-child){margin-bottom:.75rem}
.space-y-5>:not(:last-child){margin-bottom:1.25rem}
@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:48rem){.md\:p-14{padding:3.5rem}}
@media (min-width:64rem){
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .lg\:text-5xl{font-size:3rem;line-height:1.15}
}

/* ヘッダー（スクロール後） */
#site-header.is-scrolled{background-color:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:#e5e5e5;height:68px;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a}

/* モバイルメニュー：閉じている間はタップを奪わない */
.mobile-menu{opacity:0;transform:translateY(-100%);visibility:hidden;pointer-events:none;transition:opacity .4s ease,transform .4s ease,visibility 0s linear .4s}
.mobile-menu.is-open{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity .4s ease,transform .4s ease}
.mobile-menu .mobile-item{opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}
.mobile-menu.is-open .mobile-item{opacity:1;transform:none}
.mobile-menu.is-open .mobile-item:nth-child(1){transition-delay:.1s}
.mobile-menu.is-open .mobile-item:nth-child(2){transition-delay:.2s}
.mobile-menu.is-open .mobile-item:nth-child(3){transition-delay:.3s}
.mobile-menu.is-open .mobile-item:nth-child(4){transition-delay:.4s}
.mobile-menu.is-open .mobile-item:nth-child(5){transition-delay:.5s}
.mobile-menu.is-open>.mobile-item{transition-delay:.4s}
#menu-btn.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
#menu-btn.is-open span:nth-child(2){opacity:0}
#menu-btn.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
body.menu-open{overflow:hidden}

/* スクロール表示アニメーション */
.js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}
.js [data-reveal].is-visible{opacity:1;transform:none}
.js [data-bar]{transform:scaleX(0);transition:transform .8s ease-out .3s}
.js [data-reveal].is-visible [data-bar],.js [data-bar].is-visible{transform:scaleX(1)}

/* ヒーロー */
.js .hero-bg{opacity:0;transform:scale(1.1);transition:opacity 1.5s ease-out,transform 2.5s ease-out}
.js .hero-left,.js .hero-right{opacity:0;transform:translateY(30px);transition:opacity 1s ease-out .3s,transform 1s ease-out .3s}
.js .hero-right{transition-delay:.6s}
.js .hero-bar{transform:scaleX(0);transform-origin:left;transition:transform .8s ease-out .8s}
.js .hero-char{opacity:0;transform:translateY(10px);transition:opacity .6s ease-out,transform .6s ease-out}
.hero.is-loaded .hero-bg{opacity:1;transform:none}
.hero.is-loaded .hero-left,.hero.is-loaded .hero-right{opacity:1;transform:none}
.hero.is-loaded .hero-bar{transform:none}
.hero.is-loaded .hero-char{opacity:1;transform:none}

/* エコシステムの循環フロー */
.eco-flow{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.eco-step{width:100%;max-width:20rem}
.eco-arrow{transform:rotate(90deg);line-height:1}
.eco-loop{font-size:2rem;line-height:1}
@media (min-width:64rem){
  .eco-flow{flex-direction:row;justify-content:center;gap:.75rem}
  .eco-step{flex:1 1 0;max-width:none;padding-inline:.5rem}
  .eco-arrow{transform:none}
}

@media (prefers-reduced-motion:reduce){
  .js [data-reveal],.js [data-bar],.js .hero-bg,.js .hero-left,.js .hero-right,.js .hero-bar,.js .hero-char,.mobile-menu,.mobile-menu .mobile-item{transition:none!important}
}

/* ヒーロー内コンテナを画面幅に収める（flex 子要素の max-content 化によるはみ出し防止） */
.hero>.container-custom{width:100%}
/* 文末の1〜2文字だけが次行に落ちるのを防ぐ */
p,h1,h2,h3,h4,li,dd{text-wrap:pretty}
