@charset "UTF-8";

html {
  -webkit-font-smoothing: antialiased; /* フォントスムージングをオフ */
  scroll-behavior: smooth;
}

body {
  -webkit-text-stroke: 0.5px; /* フォントの輪郭を調整 */
  font-family: "Noto Sans SC", sans-serif;
  font-optical-sizing: auto;
  font-weight: 200;
  font-style: normal;
  font-size: 12px;
  color: #333;
  margin: 0 auto; /* 外側の余白（上下と中央配置） */
  padding: 1em;     /* 内側余白 */
  border: solid 2px #eee; /* 線の種類・太さ・色 */
  transition: background-color 0.3s;
}
.wrap { animation: fadein 1.5s forwards; }

@keyframes fadein {
  0% {opacity: 0}
  100% {opacity: 1}
}
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*----------------------- PC -----------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/

@media screen and (min-width: 750px) {
.sp { display: none; }

/*----------------------   header   ----------------------*/

header {
  background-color: white;
  position: sticky;
  top: 0;
  height: 88px;
  padding-bottom: 8px;
  padding-inline: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 16px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
  z-index: 100;
}
header h1 {
  font-family: "Baskerville", serif;
  font-weight: 200;
  font-style: normal;
  font-size: 42px;
  color: #333;
}
.header-nav {
  display: flex;
  gap: 30px;
}
header ul {
  display: flex;
  list-style: none;
  align-items: center;
  opacity: 1;
  transition: opacity 0.3s ease;  /* 他の要素に透明感をつける */
}
header ul.sns li { padding-left: 23px; }
header ul.menu li:first-child { padding-left: 20px; }
header ul.menu li { padding-left: 40px; }
header ul li img {
  display: block;
  width: 23px;
}
/* リストアイテム */
header ul li a {
  display: block;
  color: black;
  text-decoration: none;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
header ul li a:hover { opacity: .2;  /* ホバーした部分だけ透明度を100% */ }
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  background-color: #ddd;
  padding: 16px;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
.breadcrumb a:hover {
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
  opacity: .2;  /* ホバーした部分だけ透明度を100% */
}
.breadcrumb li:not(:last-of-type)::after {
  content: "›";
  margin: 0 .6em; /* 記号の左右の余白 */
  color: #777; /* 記号の色 */
}

/*----------------------   blog   ----------------------*/

#blog ,
#blog_wrap {
  background-color: #eee;
  padding: 120px 0;
  display: block;
  margin: 0 auto;
}
#blog_link {
  background-color: #eee;
  padding: 0;
  display: block;
  margin: 0 auto;
}
#blog h2 {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  font-size: 42px;
  text-align: center;
  letter-spacing: 0.12em;
  padding: 50px 0 80px;
}
#blog div {
  width: 1000px;
  height: 400px;
  margin: 0 auto 40px;
  display: flex;
  flex-wrap: wrap;
  background-color: white;
  transition: .3s;
}
#blog div img {
  height: 400px;
  display: block;
}
#blog div a {
  height: 400px;
  width: calc(100% / 2);
  background-color: white;
  padding: 150px 50px;
}
#blog div:hover {
  box-shadow: 0 15px 30px -5px rgba(0,0,0,.15), 0 0 5px rgba(0,0,0,.1);
  transform: translateY(-4px);
}
#blog div h3 {
  font-size: 22px;
  line-height: 1.5;
  font-weight: 500;
}
#blog div p { line-height: 1.75; }
#blog_wrap div {
  width: 1000px;
  margin: 0 auto;
  display: block;
  background-color: white;
}
#blog_wrap div h3 {
  width: 800px;
  margin: 0 auto;
  display: block;
  padding: 120px 0 40px;
  font-size: 22px;
  line-height: 1.5;
  font-weight: 500;
}
#blog_wrap div h3 span {
  font-weight: 200;
  font-size: 12px;
}
#blog_wrap div p {
  width: 800px;
  margin: 0 auto 40px;
  display: block;
  font-weight: 200;
  line-height: 2.25;
  font-size: 14px;
}
#blog_wrap div img {
  display: block;
  margin: 0 auto;
  padding-bottom: 120px;
}
#blog_wrap div img.sp { display: none; }
#blog a.link ,
#blog_wrap a.link {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  display: block;
  margin: 80px auto 160px;
  text-align: center;
  font-style: normal;
  letter-spacing: 0.12em;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
#blog a.link:hover ,
#blog_wrap a.link:hover { opacity: .2;  /* ホバーした部分だけ透明度を100% */ }

/*----------------------   foot   ----------------------*/

#foot {
  width: 100%;
  margin: 0 auto;
}
#foot img {
  width: 100%;
  display: block;
}

/*----------------------   footer   ----------------------*/

footer {
  width: 100%;
  padding: 24px 0 8px;
  margin: 0 auto;
  text-align: center;
  letter-spacing: 0.1em;
  font-size: 10px;
}

}

/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*----------------------- SP -----------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/

@media screen and (max-width: 749px) {

/* メニュー全体 */
.menu-wrapper {
  position: fixed;
  top: 30px;
  right: 30px;
  z-index: 1001;
}
/* ハンバーガーメニュー */
.menu-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  user-select: none;
}
/* チェックボックスを隠す */
.menu-checkbox { display: none; }
/* 3本線 */
.menu-icon {
  width: 30px;
  height: 20px;
  position: relative;
}
.menu-icon span {
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #333;
  transition: 0.3s ease-in-out;
}
.menu-icon span:nth-child(1) { top: 0; }
.menu-icon span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.menu-icon span:nth-child(3) { bottom: 0; }

/* テキスト */
.menu-label {
  margin-top: 5px;
  font-size: 12px;
  font-weight: 200;
  transition: 0.3s ease-in-out;
  color: #333;
}
.menu-label::after { content: "menu"; }
/* メニューエリア */
.menu-content {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: background-color 0.5s ease-in-out, opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  z-index: 1000;
}
.menu-content ul {
  list-style: none;
  text-align: center;
}
.menu-content li {
  margin: 20px 0;
  font-size: 24px;
  color: #777;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
/* チェックが入ったら変化 */
.menu-checkbox:checked + .menu-wrapper .menu-icon span:nth-child(1) {
  top: 45%;
  transform: rotate(45deg);
}
.menu-checkbox:checked + .menu-wrapper .menu-icon span:nth-child(2) { opacity: 0; }
.menu-checkbox:checked + .menu-wrapper .menu-icon span:nth-child(3) {
  bottom: 45%;
  transform: rotate(-45deg);
}
.menu-checkbox:checked + .menu-wrapper .menu-label::after { content: "close"; }
/* メニューを表示する（ふわっと出る） */
.menu-checkbox:checked ~ .menu-content {
  background-image: linear-gradient(210deg, rgba(225, 225, 225, .9) 26%, rgba(255, 255, 255, 1));
  opacity: 1;
  visibility: visible;
}
.menu-checkbox:checked ~ .menu-content li { opacity: 1; }
/* メニューを閉じるときのふわっと感 */
.menu-checkbox:not(:checked) ~ .menu-content {
  background-color: rgba(0, 0, 0, 0);
  opacity: 0;
  visibility: hidden;
}
.menu-checkbox:not(:checked) ~ .menu-content li { opacity: 0; }

/*----------------------   header   ----------------------*/

header {
  position: relative;
  top: 0;
  height: 88px;
  padding-bottom: 8px;
  padding-inline: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #eee;
}
header h1 {
  font-family: "Baskerville", serif;
  font-weight: 200;
  font-style: normal;
  font-size: 26px;
  color: #333;
}
.header-nav {
  display: flex;
  gap: 30px;
}
header ul {
  display: flex;
  list-style: none;
  align-items: center;
  opacity: 1;
  transition: opacity 0.3s ease;  /* 他の要素に透明感をつける */
}
header ul.sns ,
header ul.menu { display: none; }
header ul li img {
  display: block;
  width: 23px;
}
/* リストアイテム */
header ul li a {
  display: block;
  color: black;
  text-decoration: none;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
header ul li a:hover {
  opacity: .2;  /* ホバーした部分だけ透明度を100% */
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  background-color: #eee;
  padding: 16px;
  line-height: 1.75;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
.breadcrumb a:hover {
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
  opacity: .2;  /* ホバーした部分だけ透明度を100% */
}
.breadcrumb li:not(:last-of-type)::after {
  content: "›";
  margin: 0 .6em; /* 記号の左右の余白 */
  color: #777; /* 記号の色 */
}

/*----------------------   blog   ----------------------*/

#blog ,
#blog_wrap {
  background-color: #eee;
  padding: 50px 0;
  display: block;
  margin: 0 auto;
}
#blog_link {
  background-color: #eee;
  padding: 0;
  display: block;
  margin: 0 auto;
}
#blog h2 {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  font-size: 42px;
  text-align: center;
  letter-spacing: 0.12em;
  padding-bottom: 50px;
}
#blog div {
  width: 90%;
  margin: 0 auto 40px;
  display: flex;
  flex-wrap: wrap;
  background-color: white;
  box-shadow: 0 15px 30px -5px rgba(0,0,0,.15), 0 0 5px rgba(0,0,0,.1);
}
#blog div a {
  background-color: white;
  padding: 50px 30px;
}
#blog div a span { letter-spacing: 0.1em; }
#blog div p.sp {
  display: block;
  text-align: center;
  padding: 10px;
  margin: 0 0 0 auto;
}
#blog div p.sp span.arrow {
  position: relative;
  display: inline-block;
  width: 70px;
  height: 1px;
  margin-top: 16.1px;
  border-radius: 9999px;
  background-color: #333;
}
#blog div p.sp span.arrow::before {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 20px;
  height: 1px;
  border-radius: 9999px;
  background-color: #333;
  transform: rotate(20deg);
  transform-origin: calc(100% - 1px) 50%;
}
#blog div h3 {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 500;
}
#blog div p { line-height: 1.75; }
#blog_wrap div {
  width: 90%;
  margin: 0 auto;
  display: block;
  background-color: white;
  box-shadow: 0 15px 30px -5px rgba(0,0,0,.15), 0 0 5px rgba(0,0,0,.1);
}
#blog_wrap div h3 {
  width: 90%;
  margin: 0 auto;
  display: block;
  padding: 40px 0;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 500;
}
#blog_wrap div h3 span {
  font-weight: 200;
  font-size: 12px;
  letter-spacing: 0.1em;
}
#blog_wrap div p {
  width: 90%;
  margin: 0 auto 40px;
  display: block;
  font-weight: 200;
  line-height: 2.25;
  font-size: 12px;
}
#blog_wrap div img {
  display: block;
  margin: 0 auto;
}
#blog_wrap div img.pc { display: none; }
#blog a.link ,
#blog_wrap a.link {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  display: block;
  margin: 80px auto;
  text-align: center;
  font-style: normal;
  letter-spacing: 0.12em;
  transition: opacity 0.3s ease;  /* ホバー時の透明度変更をスムーズに */
}
#blog a.link:hover ,
#blog_wrap a.link:hover { opacity: .2;  /* ホバーした部分だけ透明度を100% */ }

/*----------------------   foot   ----------------------*/

#foot {
  width: 100%;
  margin: 0 auto;
}
#foot img {
  width: 100%;
  display: block;
}

/*----------------------   footer   ----------------------*/

footer {
  width: 100%;
  padding: 24px 0 8px;
  margin: 0 auto;
  text-align: center;
  letter-spacing: 0.1em;
  font-size: 10px;
}


}

/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*---------------------- TAB -----------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*--------------------------------------------------*/

@media screen and (min-width:768px) and ( max-width:1200px) {



}
