@charset "utf-8";

/* font-family: "Zen kaku Gothic New",  sans-serif; */
/* font-family: "Manrope", sans-serif; */
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");

/*=====ボディ設定*/
html {
  font-size: 62.5%;
  line-height: 1;
  color: #333333;
  font-family: "Zen kaku Gothic New", sans-serif;
}

body {
  font-size: 1.6rem;
  overflow: hidden;
  margin: 0;
}

/* 共通設定 */

/* Wrapper　コンテンツの中身のサイズ */
.wrapper {
  width: 940px;
  margin: 0 auto;
  padding: 80px 0;
}

/* セクションタイトル */
/* Works,Service,Blog,Profile,contact */
.ttl_cmn_1 {
  color: #2f5d50;
  line-height: 1.8;
  text-align: center;
  padding-bottom: 50px;
}

/* Works,Service,Blog,Profile1段目 */
.ttl_cmn_main {
  display: inline;
  font-size: 3.2rem;
  font-weight: 700;
  font-family: "Manrope", sans-serif;
  padding: 0 20px;
  background: linear-gradient(transparent 70%, #f4f1c9 70%);
}

/* Works,Service,Blog,Profile,contact2段目 */
.ttl_cmn_sub {
  display: block;
  font-size: 1.6rem;
  font-weight: 500;
  color: #2f5d50;
}

/* 共通用ボタン */
.btn_cmn_1 {
  display: block;
  width: 210px;
  text-align: center;
  color: #fafaf7;
  background-color: #2f5d50;
  border-radius: 30px;
  font-weight: 500;
  text-decoration: none;
  padding: 12px 18px 12px 18px;
  margin: 0 auto;
  transition: color 0.3s, background-color 0.3s;
}

.btn_cmn_1:hover {
  background-color: rgba(36, 75, 65, 1);
  color: #f4f1c9;
}

/* 共通設定ここまで */

/*=====ヘッダー*/

/* ヘッダー */
.nav_header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: 80px;
  border-bottom: 1px solid #2f5d50;
  background-color: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(5px);
}

.nav_inner {
  max-width: 1140px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 26px 20px 15px 20px;
  margin: 0 auto;
}

.nav_con {
  display: none;
}

/* タイトル */
header h1 a {
  font-size: 3rem;
  font-weight: 700;
  font-family: "Manrope", sans-serif;
  color: #2f5d50;
  text-decoration: none;
}

/* ナビゲーションメニュー */
/* ナビゲーション配置 */
.list_global_nav {
  display: flex;
  justify-content: right;
  gap: 21px;
  align-items: center;
  list-style: none;
  width: 100%;
  margin: 0 auto;
}

/* ナビゲーションフォント */
.list_menu {
  font-size: 1.8rem;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  color: #2f5d50;
  text-decoration: none;
  transition: opacity 0.3s;
}

.list_menu:hover {
  opacity: 0.6;
}

/* Contactボタン */
.btn_contact_1 {
  display: block;
  width: 132px;
  text-align: center;
  font-size: 1.8rem;
  font-family: "Manrope", sans-serif;
  color: #fafaf7;
  background-color: #2f5d50;
  border-radius: 30px;
  font-weight: 600;
  text-decoration: none;
  padding: 10px 30px 10px 30px;

  transition: color 0.3s, background-color 0.3s;
}

.btn_contact_1:hover {
  background-color: rgba(36, 75, 65, 1);
  color: #f4f1c9;
}

/* トップの文章 */
.hero_inner {
  position: absolute;
  top: 35%;
  left: 10%;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 5%;
}

.hero_text {
  font-size: 3.2rem;
  font-weight: 600;
  color: #2f5d50;
  line-height: 1.8;
  letter-spacing: 0.17rem;
}

.hero_works {
  font-size: 1.4rem;
  font-weight: 500;
  color: #597d73;
}

/* 木のイメージ */
.img_forest1 {
  position: absolute;
  left: 1%;
  bottom: -12%;
  width: 200px;
  height: auto;
  max-width: 30vw;
}

/*=====メイン*/
main {
}

/* About コンセプト */

.grid_about {
  display: grid;
  grid-template-columns: 438px 434px;
  justify-content: space-between;
  width: auto;
  place-items: center;
}

.ttl_about {
  font-size: 3.2rem;
  font-weight: 600;
  color: #2f5d50;
  line-height: 1.6;
  /* ボーダー */
  display: inline;
  background: linear-gradient(transparent 70%, #f4f1c9 70%);
}

.text_about {
  font-weight: 500;
  line-height: 1.8;
  padding-top: 40px;
}

/* Works　制作実績 */

.works {
  background-color: #fafaf7;
}

.grid_works {
  display: grid;
  grid-template-columns: repeat(3, 280px);
  justify-content: space-between;
}

.loop_works {
  padding-bottom: 50px;
}

.link_works {
  display: grid;
  text-decoration: none;
  transition: opacity 0.3s;
}

.link_works h3 {
  order: 2;
  font-size: 1.8rem;
  font-weight: 600;
  color: #333333;
  padding: 8px 0;
}

.link_works img {
  order: 1;
  width: 280px;
  height: auto;
  object-fit: cover;
}

.link_works p {
  order: 3;
  font-size: 1.5rem;
  color: #333333;
}

.link_works:hover {
  opacity: 0.6;
}

/* Service できること */

.service {
  background-color: #fafaf7;
}

.grid_service {
  display: grid;
  grid-template-columns: repeat(4, 204px);
  justify-content: space-between;
}

.ttl_service {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  padding: 20px 0 14px;
}

.text_service {
  line-height: 1.4;
  font-size: 1.5rem;
}

/* ブログ */

.grid_blog {
  display: grid;
  grid-template-columns: repeat(3, 280px);
  justify-content: space-between;
}

.loop_blog {
  padding-bottom: 50px;
}

.link_blog {
  text-decoration: none;
  transition: opacity 0.3s;
}

.blog_card {
  display: grid;
  grid-template-rows:
    auto
    auto
    minmax(calc(1.4em * 2), 1fr)
    auto;
  height: 100%;
  row-gap: 8px;
}

.ttl_link_blog {
  font-size: 1.8rem;
  font-weight: 600;
  color: #333333;
  line-height: 1.4;
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  align-self: start;
}

.thumbnail img {
  width: 100%;
  height: 200px;
  object-fit: contain;
  background: #f5f5f5; /* 余白が気になる時 */
}

.date_blog {
  font-size: 1.5rem;
  color: #333333;
  padding-top: 10px;
}

.more_blog {
  font-size: 1.5rem;
  color: #333333;
  text-align: right;
}

.link_blog:hover {
  opacity: 0.6;
}

/* プロフィール */

.profile {
  background-color: #fafaf7;
}

.grid_profile {
  display: grid;
  grid-template-columns: 438px 434px;
  justify-content: space-between;
  width: auto;
}

.text_name {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4;
}

.text_name span {
  font-size: 1.6rem;
  font-weight: 400;
}

.text_profile {
  line-height: 1.8;
  padding-top: 20px;
}

/* コンタクト */
.contact {
  position: relative;
  background-color: #f4f1c9;
}

/* 見出し1段目 */
.ttl_contact {
  display: inline;
  font-size: 3.2rem;
  font-weight: 700;
  font-family: "Manrope", sans-serif;
  padding: 0 20px;
  background: linear-gradient(transparent 70%, #fafaf7 70%);
}

.text_contact {
  line-height: 1.8;
  text-align: center;
  padding-bottom: 36px;
}

.btn_contact_2 {
  display: block;
  width: 268px;
  text-align: center;
  color: #fafaf7;
  background-color: #2f5d50;
  border-radius: 30px;
  font-weight: 500;
  text-decoration: none;
  padding: 12px 18px 12px 18px;
  margin: 0 auto;
  transition: color 0.3s, background-color 0.3s;
}

.btn_contact_2:hover {
  background-color: rgba(36, 75, 65, 1);
  color: #f4f1c9;
}

.img_forest2 {
  position: absolute;
  right: 1%;
  top: -12%;
  width: 200px;
  height: auto;
  max-width: 30vw;
}

.img_forest3 {
  position: absolute;
  left: 1%;
  bottom: -12%;
  width: 200px;
  height: auto;
  max-width: 30vw;
}

/*=====フッター*/
footer {
  width: auto;
  text-align: center;
  background-color: #2f5d50;
  padding: 60px 0 10px 0;
}

footer h2 {
  font-size: 3rem;
  font-family: "Manrope", sans-serif;
  font-weight: 700;
  color: #fafaf7;
  padding-bottom: 40px;
}

footer p {
  font-size: 1.3rem;
  color: #fafaf7;
  font-family: "Manrope", sans-serif;
}

/* ブレークポイント＝＝＝＝＝＝＝＝＝ */
@media screen and (max-width: 768px) {
  /*ここにcssを書く*/

  /* 共通設定 */

  /* SPイメージ最大サイズ */
  img {
    max-width: 100%;
    height: auto;
  }

  /* SP Wrapper　コンテンツの中身のサイズ */
  .wrapper {
    width: 92%;
    max-width: 600px;
    padding: 40px 0 40px;
  }

  /* セクション見出し */
  /* Works,Service,Blog,Profile,contact */
  .ttl_cmn_1 {
    color: #2f5d50;
    line-height: 1.8;
    text-align: center;
    padding-bottom: 50px;
  }

  /* Works,Service,Blog,Profile1段目 */
  .ttl_cmn_main {
    display: inline;
    font-size: 3.2rem;
    font-weight: 700;
    font-family: "Manrope", sans-serif;
    padding: 0 20px;
    background: linear-gradient(transparent 70%, #f4f1c9 70%);
  }

  /* Works,Service,Blog,Profile,contact2段目 */
  .ttl_cmn_sub {
    display: block;
    font-size: 1.6rem;
    font-weight: 500;
    color: #2f5d50;
  }

  /* 共通用ボタン */
  .btn_cmn_1 {
    display: block;
    width: 210px;
    text-align: center;
    color: #fafaf7;
    background-color: #2f5d50;
    border-radius: 30px;
    font-weight: 500;
    text-decoration: none;
    padding: 12px 18px 12px 18px;
    margin: 0 auto;
    transition: color 0.3s, background-color 0.3s;
  }

  .btn_cmn_1:hover {
    background-color: rgba(36, 75, 65, 1);
    color: #f4f1c9;
  }

  /* 共通設定ここまで */

  /*=====ヘッダー*/
  header {
    position: relative;
  }

  /* ヘッダー（タイトルとナブコン） */
  .nav_header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    /* SP高さを追加 */
    height: 60px;
    border-bottom: 1px solid #2f5d50;
    background-color: rgba(255, 255, 255, 0.7);
  }

  .nav_inner {
    width: 100%;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* タイトル */
  header h1 a {
    display: flex;
    height: 100%;
    font-size: 3rem;
    font-weight: 700;
    font-family: "Manrope", sans-serif;
    color: #2f5d50;
    text-decoration: none;
    padding: 15px 20px;
    margin: 0;
  }

  /* ナビゲーションメニュー */
  .global_nav {
    display: flex;
  }

  /* SP時ナブコン */
  .nav_con {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 600;
    width: 60px;
    height: 60px;
    background-image: url(../images/navcon_close.svg);
    background-position: center center;
    background-color: #2f5d50;
  }

  /* SP時ナブコン -ナビゲーションの展開 */
  .nav_con.is_open {
    background-image: url(../images/navcon_open.svg);
    background-color: #f4f1c9;
  }

  /* ナビゲーション配置 */

  .list_global_nav {
    position: fixed; /* nav の外ではなく画面全体を基準に */
    top: 0;
    left: 0;
    width: 100vw; /* 画面幅いっぱい */
    height: 100vh; /* 画面高さいっぱい */
    background-color: #f4f1c9;
    padding: 80px 5vw; /* 上下は少なめに調整 */
    display: none; /* 初期は非表示 */
    z-index: 500; /* 画面上に出す */
    overflow-y: auto; /* スマホでスクロール可能に */
  }

  /* ナビゲーションフォント（リンク） */
  .list_menu {
    display: block;
    color: #2f5d50;
    transition: 0;
    padding: 20px 0;

    font-size: 1.8rem;
    font-family: "Manrope", sans-serif;
    font-weight: 600;
    text-align: center;
    color: #2f5d50;
    text-decoration: none;
    transition: opacity 0.3s;
  }

  .list_menu:hover {
    opacity: 0.6;
  }

  /* Contactボタン */
  .btn_contact_1 {
    display: block;
    width: 132px;
    text-align: center;
    font-size: 1.8rem;
    font-family: "Manrope", sans-serif;
    color: #fafaf7;
    background-color: #2f5d50;
    border-radius: 30px;
    font-weight: 600;
    text-decoration: none;
    margin: 0 auto;
    padding: 10px 30px 10px 30px;

    transition: color 0.3s, background-color 0.3s;
  }

  .btn_contact_1:hover {
    background-color: rgba(36, 75, 65, 1);
    color: #f4f1c9;
  }

  /* トップの文章 */
  .hero_inner {
    position: absolute;
    top: 35%;
    left: 10%;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-top: 5%;
  }

  /* SP時ヒーローテキスト */
  .hero_text {
    font-size: clamp(2.6rem, 7.5vw, 3.2rem);
    font-weight: 600;
    color: #2f5d50;
    line-height: 1.8;
    letter-spacing: 0.17rem;
  }

  .hero_works {
    font-size: 1.4rem;
    font-weight: 500;
    color: #597d73;
  }

  /* 木のイメージ */
  .img_forest1 {
    position: absolute;
    left: 1%;
    /* SP時bottom位置変更 */
    bottom: -8%;
    width: 200px;
    height: auto;
    max-width: 30vw;
  }

  /*=====メイン*/
  main {
    margin: 0 auto;
  }

  /* About コンセプト */
  #about {
    margin-top: 20px;
  }

  /* SPレイアウト縦 */
  .grid_about {
    display: block;
  }

  /* SP　About見出しサイズ */
  .ttl_about {
    font-size: clamp(2.6rem, 7.5vw, 3.2rem);
    font-weight: 600;
    color: #2f5d50;
    line-height: 1.6;
    /* ボーダー */
    display: inline;
    background: linear-gradient(transparent 70%, #f4f1c9 70%);
  }

  .text_about {
    font-weight: 500;
    line-height: 1.8;
    padding-top: 40px;
    /* SP時padding-bottom */
    padding-bottom: 40px;
  }

  /* SP時写真位置 */
  .grid_about img {
    display: block;
    margin: 0 auto;
  }

  /* Works　制作実績 */

  .works {
    background-color: #fafaf7;
  }

  /* SP制作実績レイアウト */
  .grid_works {
    display: block;
  }

  .loop_works {
    padding-bottom: 50px;
  }

  .link_works {
    display: grid;
    justify-items: center;
    text-decoration: none;
    transition: opacity 0.3s;
  }

  .link_works h3 {
    order: 2;
    font-size: 1.8rem;
    font-weight: 600;
    color: #333333;
    padding: 8px 0;
  }

  .link_works img {
    order: 1;
    width: 280px;
    height: auto;
    object-fit: cover;
  }

  .link_works p {
    order: 3;
    font-size: 1.5rem;
    color: #333333;
  }

  .link_works:hover {
    opacity: 0.6;
  }

  /* Service できること */

  .service {
    background-color: #fafaf7;
  }

  /* SPサービスレイアウト */
  .grid_service {
    display: block;
  }

  .grid_service img {
    display: block;
    margin: 0 auto;
  }

  .ttl_service {
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    padding: 14px 0;
  }

  .text_service {
    line-height: 1.2;
  }

  /* ブログ */
  .blog {
  }

  .grid_blog {
    display: block;
    width: 75vw;
    max-width: 280px;
    margin: 0 auto;
  }

  .loop_blog {
    padding-bottom: 50px;
  }

  .link_blog {
    display: grid;
    text-decoration: none;
    transition: opacity 0.3s;
  }

  .link_blog h3 {
    font-size: 1.8rem;
    font-weight: 600;
    color: #333333;
    padding: 8px 0;
  }

  .link_blog img {
    width: 280px;
    height: auto;
    object-fit: cover;
  }

  .date_blog {
    font-size: 1.5rem;
    color: #333333;
  }

  .more_blog {
    font-size: 1.5rem;
    color: #333333;
    text-align: right;
  }

  .link_blog:hover {
    opacity: 0.6;
  }

  /* プロフィール */

  .profile {
    background-color: #fafaf7;
  }

  .grid_profile {
    display: block;
    width: auto;
  }

  .text_me {
    padding-bottom: 40px;
  }

  .text_name {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.4;
  }

  .text_name span {
    font-size: 1.6rem;
    font-weight: 400;
  }

  .text_profile {
    line-height: 1.8;
    padding-top: 20px;
  }

  .grid_profile img {
    display: block;
    margin: 0 auto;
  }

  /* コンタクト */
  .contact {
    position: relative;
    background-color: #f4f1c9;
    /* SP時padding-bottom追加 */
    padding-bottom: 30px;
  }

  /* 見出し1段目 */
  .ttl_contact {
    display: inline;
    font-size: 3.2rem;
    font-weight: 700;
    font-family: "Manrope", sans-serif;
    padding: 0 20px;
    background: linear-gradient(transparent 70%, #fafaf7 70%);
  }

  .text_contact {
    line-height: 1.8;
    text-align: center;
    padding-bottom: 36px;
  }

  .btn_contact_2 {
    display: block;
    width: 268px;
    text-align: center;
    color: #fafaf7;
    background-color: #2f5d50;
    border-radius: 30px;
    font-weight: 500;
    text-decoration: none;
    padding: 12px 18px 12px 18px;
    margin: 0 auto;
    transition: color 0.3s, background-color 0.3s;
  }

  .btn_contact_2:hover {
    background-color: rgba(36, 75, 65, 1);
    color: #f4f1c9;
  }

  .img_forest2 {
    position: absolute;
    right: 1%;
    /* SP時 */
    top: -6%;
    width: 200px;
    height: auto;
    max-width: 30vw;
  }

  .img_forest3 {
    position: absolute;
    left: 1%;
    /* SP時 */
    bottom: -6%;
    width: 200px;
    height: auto;
    max-width: 30vw;
  }

  /*=====フッター*/
  footer {
    width: auto;
    text-align: center;
    background-color: #2f5d50;
    padding: 60px 0 10px 0;
  }

  footer h2 {
    font-size: 3rem;
    font-family: "Manrope", sans-serif;
    font-weight: 700;
    color: #fafaf7;
    padding-bottom: 40px;
  }

  footer p {
    font-size: 1.3rem;
    color: #fafaf7;
    font-family: "Manrope", sans-serif;
  }
}
