/* Reset some default styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.6;
  color: #333;
}

/* Header styles */
.header {
  background-image: linear-gradient(135deg, rgba(128, 168, 208, 1) 0%, rgba(245, 138, 191, 0.52) 100%);
  color: #fff;
  padding: 1rem 0;
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: padding 0.3s;
}

/* 3本線を並べたハンバーガーボタン風の装飾 */
.nav-toggle {
  display: none; /* PC時は非表示（後のメディアクエリでスマホ時に表示する） */
  background: none;
  border: none;
  cursor: pointer;
}

.nav-toggle__bar {
  display: block;
  width: 25px;
  height: 3px;
  margin: 5px;
  background-color: #fff;
}

/* スマホ用メディアクエリ */
@media (max-width: 768px) {
  /* ハンバーガーボタンを表示 */
  .nav-toggle {
    display: block;
  }

  /* 従来の.nav__listを折りたたむためのスタイル */
  .nav {
    position: absolute; /* 画面に重ねる */
    top: 60px;         /* ヘッダーの下に配置（ヘッダーの高さに合わせて調整） */
    right: 0;
    background-color: rgba(0,0,0,0.8); 
    width: 200px;       /* メニュー幅 */
    padding: 1rem;
    display: none;      /* デフォルトは非表示 */
  }

  /* .navが.active（open）状態なら表示 */
  .nav.active {
    display: block;
  }
  
  /* 縦方向にナビを並べる */
  .nav__list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  
  .nav__item {
    margin-left: 0; 
    margin-bottom: 1rem;
  }
}

/* Shrinking nav effect */
.header--small {
  padding: 0.5rem 0;
}

.header__inner {
  width: 80%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logo {
  font-size: 2rem;
}

.nav__list {
  list-style: none;
  display: flex;
}

.nav__item {
  margin-left: 2rem;
}

.nav__link {
  color: #fff;
  text-decoration: none;
  padding: 0.5rem 0;
}

.nav__link:hover,
.nav__link--active {
  border-bottom: 2px solid #E7E7E7;
}

html {
  scroll-behavior:smooth;
}

/* Main content and hero styles */
.main-content {
  text-align: center;
  padding: 4rem 0;
}

.hero {
  background-image: linear-gradient(135deg, rgba(102, 155, 219, 1) 0%, rgba(208, 242, 202, 0.43) 100%);
  color: #fff;
  padding: 3rem 0;
}

.hero__content {
  width: 80%;
  margin: 0 auto;
}

.hero__title {
  font-size: 3rem;
  margin-bottom: 2rem;
}

.hero__description {
  font-size: 1.5rem;
  margin-bottom: 3rem;
}

/* Section padding */
.about, .services, .note, .contact, .X {
  padding: 4rem 0;
}

/* Services section */
.services {
  justify-content: space-around;
  padding: 2rem 0;
}

.services__list {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  margin-top: 2rem;
  gap: 1rem;
}

.service-card {
  background-color: #fff;           /* カードの背景色 */
  border-radius: 8px;              /* 角の丸み */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); /* ふんわりした影 */
  padding: 1.5rem;
  width: 30%;                      /* 3つ横並びなら幅30% */
  display: flex;
  flex-direction: column;
  justify-content: space-between;  /* 上下を詰めて整列できる */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 12px rgba(0,0,0,0.15);
}

.service-card__name {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
  color: #4B3F72; /* ブランドに合う色を */
}

.service-card__description {
  margin-bottom: 1rem;
  line-height: 1.4;
}

.service-card__price {
  font-weight: bold;
  color: #333;
}

.services__title {
  margin-bottom: 1rem;
  color: #4B3F72;
}

@media (max-width: 768px) {
  .services__list {
    flex-direction: column;
    align-items: center; /* カードを中央寄せ */
  }

  .service-card {
    width: 80%;  /* カード幅を広めに */
    margin-bottom: 2rem;
  }
}

/* Contact section */
.btn-contact {
  display: inline-block;       /* インライン要素をブロックレベル要素のように扱う */
  background-color: #fff;      /* ボタン背景色（例: 白） */
  color: #313A6E;             /* 文字色（例: 濃い青） */
  padding: 1rem 2rem;         /* ボタンの内側余白 */
  text-decoration: none;      /* 下線を消す */
  font-weight: bold;          /* 文字を太字に */
  border-radius: 5px;         /* 角の丸み */
  box-shadow: 0 2px 4px rgba(0,0,0,0.1); /* ふんわりした影 */
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* ホバー時のスタイル（背景色変化など） */
.btn-contact:hover {
  background-color: #f0f0f0;   /* ホバー時の背景色 */
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

/* Footer styles */
.footer {
  background-image: linear-gradient(135deg, rgba(128, 168, 208, 1) 0%, rgba(245, 138, 191, 0.52) 100%);
  color: #fff;
  text-align: center;
  padding: 1rem 0;
}

.footer__text {
  font-size: 1rem;
}

/* Responsive styles */
@media (max-width: 768px) {
  .header__inner,
  .hero__content,
  .features {
      width: 95%;
  }

  .nav__list {
      flex-direction: column;
      align-items: center;
  }

  .nav__item {
      margin: 0.5rem 0;
  }

  .features {
      flex-direction: column;
  }

  .features__item {
      width: 100%;
      margin-bottom: 2rem;
  }

  .hero__title {
      font-size: 2rem;
  }

  .hero__description {
      font-size: 1rem;
  }
}
