@charset "utf-8";

/* =========================
   固定ヘッダー分
========================= */
body{
  padding-top: 80px;   /* headerがfixedの場合 */
}

/* =========================
   Hero
========================= */
.hero{
  position: relative;
  width: 100%;
  height: 60vh;
  min-height: 420px;

  display: flex;
  align-items: flex-start;
  justify-content: flex-start;

  padding: 20px 8% 0;   /* ← 二重80px防止 */
  overflow: hidden;

  background-color: #f3f3f3; /* 読み込み前の下地 */
}

/* 背景画像（滑らかズーム） */
.hero::after{
  content:"";
  position:absolute;
  inset:0;

  background-image: url("../img/top3.png");
  background-size: cover;
  background-position: 50% bottom;
  background-repeat: no-repeat;

  transform: scale(1.05);
  animation: heroZoom 14s ease-in-out infinite alternate;
  will-change: transform;

  z-index: 0;
  pointer-events: none;
}

/* グラデーション（薄め） */
.hero::before{
  content:"";
  position:absolute;
  inset:0;

  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.08) 0%,
    rgba(0,0,0,0.03) 40%,
    rgba(0,0,0,0) 70%
  );

  z-index: 1;
  pointer-events: none;
}

/* テキスト */
.hero-inner{
  position: relative;
  z-index: 2;
  margin-top: 40px;

  color: #fff;
  opacity: 0;
  animation: fadeUp 1.2s ease forwards;
}

.hero-inner h2{
  font-weight: 500;
  letter-spacing: 0.05em;
  text-shadow: 0 3px 12px rgba(0,0,0,0.3);
  font-size: 1.6rem;
  margin-bottom: 10px;
}

.hero-inner p{
  font-size: 1.2rem;
  text-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

/* ズーム */
@keyframes heroZoom{
  from{ transform: scale(1.05); }
  to  { transform: scale(1.00); }
}

/* テキストフェード */
@keyframes fadeUp{
  from{
    opacity:0;
    transform: translateY(30px);
  }
  to{
    opacity:1;
    transform: translateY(0);
  }
}

/* =========================
   PC表示
========================= */
@media (min-width: 768px){

  .hero{
    height: 70vh;
    min-height: 520px;
    padding: 40px 10% 0;
  }

  .hero::after{
    background-position: center bottom;
  }

  .hero-inner{
    margin-top: 60px;
  }

  .hero-inner h2{
    font-size: 2.4rem;
  }

  .hero-inner p{
    font-size: 1.5rem;
  }
}
