@charset "utf-8" ;

body{
    background-color: white;
    font-family:halyard-display, "Zen Kaku Gothic New","new-atten", YakuHanJPs, 游ゴシック体, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
    color: #505050;
  }

    header {
      display: flex;       /* 横並びにする */
      align-items: center; /* 縦方向の中央揃え */
      justify-content: space-between; /* 両端揃え */
      padding: 0 20px 0 20px;  /* 余白を追加 */
      margin-top: 0;
      margin-bottom: 0;
      height: 155px;
    }

    h1 img {
      width: 50%;
      height: 50%;
      align-items: center;
    }

    nav ul{
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      align-items: center;
      gap: 20px;
    }

   nav ul li {
      display: flex;
      align-items: baseline;
    }

    header nav ul li a {
      display: inline-block;
      padding: 5px 15px;
      line-height: 1;
      font-size: 22px;
      color: #505050; /* カラーコードの前に # を追加 */
      text-decoration: none;
      position: relative; /* 擬似要素を使うために必要 */
      display: inline-block;
    }
    
    header nav ul li a::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: 0;
      width: 0;
      height: 2px;
      background-color: #505050; /* 下線の色 */
      transition: width 0.3s ease-in-out, left 0.3s ease-in-out;
    }
    
    header nav ul li a:hover::after {
      width: 100%;
      left: 0;
    }

    .contact-menu {
      background-color: #F0D2B4; /* 背景色 */
      border-radius: 30px; /* 丸みをつける */
      padding: 7px 20px; /* ボタンの余白 */
      line-height: normal;
      font-weight: bold;
      box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); /* ふんわり影 */
      position: relative; /* 既存のアニメーションに影響されないように */
      overflow: hidden; /* はみ出し防止 */
    }
    
    /* ホバー時のエフェクト */
    .contact-menu:hover {
      background-color: #f2d484; /* ホバー時の色変更 */
      transform: scale(1.05); /* 少し大きく */
    }
    
    /* 「お問い合わせ」には下線アニメーションを適用しない */
    .contact-menu::after {
      display: none; /* 擬似要素でのアニメーションを無効化 */
    }

    main {
      margin-top: 0;
      position: relative;
    }

    header main {
      margin: 0;
      padding: 0;
    }

    h1, nav {
      margin: 0;
      padding: 0;
    }
    

/* ✅ 画像の親要素を基準点にする */
.image-container {
  position: relative; /* これがないとabsoluteが効かない！ */
  width: 100vw;
  max-width: 100%;
  overflow: hidden;
  margin-bottom: 80px;
}

/* ✅ 画像の調整 */
.image-container img {
  width: 100%;
  height: auto;
  display: block;
}

/* ✅ お問い合わせボタンを画像の上に配置 */
.contact-btn {
  position: absolute; /* 画像の上に配置 */
  bottom: 10%; /* 画像の下から10%の位置 */
  right: 5%; /* 水平方向の中央 */

  background-color: #F0D2B4; /* ボタンの背景色 */
  color: #505050; /* 文字色 */
  padding: 12px 30px; /* 余白でサイズ調整 */
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  border-radius: 50px; /* 完全なラウンド型 */
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); /* ふんわりした影 */
  transition: 0.3s ease-in-out; /* ふわっと動く */
}

/* ホバー時のエフェクト */
.contact-btn:hover {
  background-color: #f2d484; /* ホバー時の色変更 */
  transform: scale(1.05); /* 少し大きく */
}

    main li {list-style: none;}
    main li a {
      text-decoration: none;
    }
    
#about {
  padding-top: 30px;
  padding-bottom: 20px;
  background-color: #F0D2B4;
  margin-top: 20px;
  margin-bottom: 20px;
}

h2 {
  text-align: center;
  font: Zen Kaku Gothic New;
}

#profile {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 20px; /* 画像とテキストの間隔を調整 */
  margin: 30px 10px;
}

#profile img {
  width: 200px; /* 画像の幅を調整 */
  height:auto; /* 縦横比を維持 */
  border-radius: 70%; /* 丸くする（好みに応じて） */
}

#profile-text {
  display: flex;
  flex-direction: column; /* 縦並びにする */
  background-color: #FFFBF1;
  padding: 20px;
  border-radius: 10px;
}

#name {
  font-weight: bold;
}

#social-icons {
  display: flex;
  gap: 10px; /* アイコンの間隔 */
  margin-top: 10px; /* テキストとの間隔 */
}

#social-icons img {
  width: 30px; /* アイコンサイズ調整 */
  height: auto;
}

#works {
  padding-top: 30px;
  padding-bottom: 20px;
  text-align: center; /* これを追加！ */
}

#works ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap; /* 複数行に折り返したい場合は追加 */
  gap: 20px;
  padding: 0;
  list-style: none;
}

#works ul li {
 margin: 0;
}

#works ul li img {
  width: 300px;
  height: auto;
  border-radius: 20px;
}

#service {
  background-color: #F0D2B4;
  padding-top: 30px;
  padding-bottom: 20px;
  margin-top: 20px;
  margin-bottom: 20px;
}

#price {
  text-align: center;
}

#service {
  text-align: center;
  padding: 50px 0;
  background-color: #F0D2B4;
}

.service-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
  flex-wrap: wrap;
  padding: 0 20px;
  box-sizing: border-box;
}

.service-box {
  width: 500px;
  background: #fff;
  margin: 20px 10px 20px 10px;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
  text-align: center;
  position: relative;
}

.service-box h3 {
  font-size: 18px;
  background-color: #D2B48C;
  color: #505050;
  padding: 8px 12px;
  border-radius: 5px;
  width: 100%;
  display:inline-block;
  margin-bottom: 10px;
}

.service-box p {
  margin-bottom: 15px;
  font-size: 16px;
  line-height: 1.6;
}

.service-box .price {
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}

h4 {
  margin-top: 5px;
}

.price-container {
  display: flex;
  justify-content: center;
  gap: 50px;
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}

/*bannerとpagedesignのCSS*/
.works-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 70%;
  margin: 30px auto 0;
  gap: 40px;
  padding: 0 20px;
  box-sizing: border-box;
}

/* 中央寄せされていたものを左寄せに上書き */
#tool {
  text-align: left;
}

.tool-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
  flex-wrap: wrap;
  padding: 0 20px;
  box-sizing: border-box;
}

.works-box {
  display: inline-block;
  width: auto;
  max-width: 100%;
  background: #fff;
  margin: 0 auto;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
  text-align: center;
  position: relative;
  box-sizing: border-box;
}

.works-box h3 {
  font-size: 18px;
  background-color: #c9d7d9;
  color: #505050;
  padding: 8px 12px;
  border-radius: 5px;
  width: 100%;
  display: inline-block;
  margin-bottom: 10px;
}

.works-box p {
  margin: 15px 0;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}

.works-box .tool {
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}

h4 {
  margin-top: 5px;
}

/* 使用ツール一覧の汎用コンテナ */
.tool-container {
  display: flex;
  justify-content: center;
  gap: 50px;
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}

/* 🔽 ここから追加したレイアウトCSS */

/* 画像とテキスト全体の横並び */
.content-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: flex-start;
  width: 100%;
}

/* 画像サイズ調整 */
.modal-trigger {
  width: 220px;
  height: auto;
  object-fit: cover;
  cursor: pointer;
}

/* テキスト側 */
.text-content {
  flex: 1;
  min-width: 220px;
  box-sizing: border-box;
  overflow-wrap: break-word;
}

.codingtext-content {
  flex: 1;
  min-width: 220px;
  box-sizing: border-box;
  overflow-wrap: break-word;
}

/* h4と#toolを横並びに */
.tool-info {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

/* ツールのラベル */
.tool-info h4 {
  margin: 0;
  font-size: 16px;
}

/* ツール名 */
.tool-info #tool {
  font-size: 16px;
  font-weight: bold;
  color: #505050;
  margin: 0;
  text-align: left;
}
/* モーダル本体 */
.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.8);
}

/* モーダル画像 */
.modal-content {
  margin: auto;
  display: block;
  max-width: 60%;
  max-height: auto;
}

/* 閉じるボタン */
.close {
  position: absolute;
  top: 30px;
  right: 50px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}
/*ここまで*/

/*codingのcss*/
.coding-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 840px;
  margin: 30px auto 0;
  gap: 40px;
  box-sizing: border-box;
  padding: 0 20px;
}

.coding-box {
  display: table;
  width: auto;
  max-width: 100%;
  background: #fff;
  margin: 0 auto;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.1);
  text-align: center;
  position: relative;
  box-sizing: border-box;
}

.coding-box h3 {
  font-size: 18px;
  background-color: #c9d7d9;
  color: #505050;
  padding: 8px 12px;
  border-radius: 5px;
  width: 100%;
  display: inline-block;
  margin-bottom: 10px;
}

.coding-box p {
  margin: 15px 0;
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}

.coding-box .tool {
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}

h4 {
  margin-top: 5px;
}

/* 使用ツール一覧の汎用コンテナ */
.tool-container {
  display: flex;
  justify-content: center;
  gap: 50px;
  font-size: 20px;
  color: #505050;
  font-weight: bold;
}
/*ここまで*/

#contact {
  background-color: #FFFBF1;
  padding-top: 30px;
  padding-bottom: 20px;
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.en-title {
  text-align: center;
  margin-bottom: 20px;
}

.form-container {
  display: flex;
  justify-content: center;
  width: 100%;
}

footer {
  background-color: white;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  width: 100%;
  margin: auto;
}

/* 3カラム（画像・ナビ・SNS）を作る */
.footer-container {
  display: flex;
  justify-content: space-between; /* 左・中央・右に配置 */
  align-items: center;
  width: 80%;
  max-width: 1200px;
  margin: auto;
}

/* 左側（ロゴ） */
.footer-logo {
  flex: 1;
  text-align: left;
}

.footer-logo img {
  width: 90%;
  height: auto;
}

/* 中央（ナビ＋コピーライト） */
.footer nav {
  flex: 2;
  text-align: center;
  color: #505050;
}

/* 右側（SNSアイコン） */
.footer-social {
  flex: 1;
  display: flex;
  justify-content: flex-end; /* 右寄せ */
  gap: 15px;
}

/* ナビゲーションを横並びに */
footer nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  gap: 20px;
}

footer nav ul li {
  display: inline;
}

footer nav ul li a {
  text-decoration: none;
  color: #505050;
  font-weight: bold;
}

/* コピーライトのスタイル */
footer small {
  display: block;
  text-align: center;
  width: 100%;
  margin-top: 10px;
  font-size: 12px;
  color: #888;
}

/* ページトップボタンを右下に固定 */
.pagetop {
  position: fixed;
  bottom: 15%;
  right: 20px;
  width: 50px;
  height: 50px;
}

#CONTACT {
  max-width: 1000px;
  margin: 0 auto;
  padding: 10px;
}

.parent-container {
  display: flex;
  justify-content: center; /* 横方向中央寄せ */
  align-items: center;     /* 縦方向中央寄せ */
  height: auto;           /* 高さをビューポート全体に設定 */
}

/* iframeのスタイル */
#CONTACT .parent-container iframe {
  width: 100%;
  max-width: 1000px;
  height: 1000px;
  margin: 0 auto;
  display: block;
  border: none;
}

/* 画像サイズ調整 */
h3 img {
  width: 40%;
  height: 40%;
}

.all h1 {
  color: #505050;
  text-align: center;
}

/* ハンバーガーのデザイン */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
  width: 30px;
  height: 25px;
  justify-content: space-between;
  position: absolute;
  z-index: 1001;
  top: 20px;
  right: 20px;
}

.hamburger span {
  display: block;
  height: 3px;
  background-color: #333;
  border-radius: 2px;
  margin: 4px 0;
}

.hamburger {
  display: none; /* デフォルトは非表示（PC用） */
}

/*以下レスポンシブ*/

@media screen and (max-width: 768px) {
	/* 768px以下に適用されるCSS（スマホ用） */
.hamburger {
  display: flex;
}

  nav {
    display: none;
    position: absolute;
    top: 60px;
    right: 10px;
    width: auto;
    min-width: 140px;
    background-color: white;
    padding: 20px 0;
    z-index: 1000;
  }

  nav.active {
    display: block;
  }

  nav ul {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    gap: 16px;
    padding: 0 20px;
    margin: 0;
    list-style: none;
  }

  nav ul li a {
    text-decoration: none;
    font-size: 16px;
    color: #333;
  }

  h1 img {
    width: 40%; /* スマホ用にサイズ調整 */
    height: auto;
    padding: 0;
  }

  .image-container .contact-btn {
    position: static;
    display: block;
    margin: 20px auto;
    width: 80%;
    text-align: center;
  }

  #profile {
    flex-direction: column;
    align-items: center;
    margin: 0;
    gap: 0;
    margin-top: 15px;
  }

  #profile img {
    max-width: 80%;
    margin-bottom: 20px;
  }

  #profile-text {
    width: 90%;
    text-align:left;
    margin: 0 auto;
  }

  #profile-picture {
    text-align: center;
  }

  #works ul li img {
  display: block;
  margin: 0 auto;
  }

.service {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.service-item {
  width: 45%;
  margin: 2%;
}

  .service-item {
    width: 90%;
    margin: 20px auto;
  }

  .service-item img {
    width: 100%;
    display: block;
  }

  .service-item p {
    text-align: center;
  }

  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  footer > * {
    margin: 10px 0;
  }

  header nav ul li a {
    font-size: 16px;
  }

  h2 {
    font-size: 20px;
  }

  .service-container {
    display: block;
    margin-top: 0;
  }

  .service-box {
    width: 90%;
    display: block;
    margin: 20px auto; /* ← 追加 */
  }

  .works-container {
    width: 90%;
  }

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

  .works-box {
    padding: 15px;
  }

  .modal-trigger {
    width: 100%;
    max-width: 300px;
  }

  .coding-container {
    padding: 0 15px; /* モバイルは少し余白を減らす */
  }

  .coding-box {
    padding: 15px;
  }

  .coding-box h3 {
    font-size: 16px;
  }

  .coding-box p {
    font-size: 15px;
  }

  .tool-container {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  .coding-box img {
    width: 100%;
    height: auto;
  }
}

@media (min-width: 1400px) {
    /* 画像エリアを拡大 */
    .image-container {
      width: 100vw;
      max-width: 100%; /* 念のため追加 */
    }
  
    .image-container img {
      width: 100%;
      height: auto;
    }

    #service {
      width: 100vw;
  }

@media (min-width: 1600px) {   
      /* フォントサイズだけ拡大して全体に適用 */
  html {
    font-size: 150%;
  }

  /* transformは使わずにレイアウト崩れを防ぐ */
  body {
    transform: none;
  }

  .contact-btn {
    padding: 18px 45px;  /* 余白を大きく */
    font-size: 32px;     /* フォントサイズアップ */
    border-radius: 80px; /* ラウンドも少し大きく */
    box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.15); /* 影も少し強調 */
  }

  #social-icons img {
    width: 300%;
    height: auto;
  }
}
}