/* ===== Animation ===== */
.fade-up{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s ease-out, transform .8s ease-out;
}

.fade-up.is-visible{
  opacity:1;
  transform:none;
}

/* Hero */
.hero{
  position:relative;
  padding:120px 0 550px;
  background-image: url('../uploads/img/2025-11-15_20.10.47.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#fff;
  text-align:center;
}

.hero::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0; bottom:0;
  background:rgba(0,0,0,0.35); /* 文字を見やすくするオーバーレイ */
  z-index:0;
}

.hero > .container{
  position:relative;
  z-index:1;
}

.hero-title{
  font-size:48px;
  font-weight:700;
  margin-bottom:16px;
  line-height:1.2;
  opacity:0;
  transform:scale(0.9) translateY(20px);
  animation:fadeScale 1s forwards;
  animation-delay:0.2s;
}

.hero-text{
  font-size:20px;
  color:#f0f0f0;
  opacity:0;
  transform:translateY(20px);
  animation:fadeUp 1s forwards;
  animation-delay:0.5s;
}

/* アニメーション keyframes */
@keyframes fadeScale{
  to{
    opacity:1;
    transform:scale(1) translateY(0);
  }
}

@keyframes fadeUp{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Main */
.site-main{
  padding:80px 0;
  background:#f9fafb;
}

.section{
  margin-bottom:80px;
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s ease-out, transform .8s ease-out;
}

/* タイトル */
.section h2{
  font-size:28px;
  margin-bottom:16px;
  color:#111;
}

/* Cards */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:28px;
}

.card{
  display:block;
  padding:28px;
  background:#fff;
  border-radius:18px;
  text-decoration:none;
  color:#222;
  box-shadow:0 12px 35px rgba(0,0,0,.08);
  transition:transform .35s cubic-bezier(0.4,0,0.2,1), box-shadow .35s ease;
}

.card:hover{
  transform:translateY(-10px) scale(1.03);
  box-shadow:0 20px 45px rgba(0,0,0,.12);
}

.card h3{
  margin-bottom:8px;
  font-size:20px;
}
