@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&display=swap');
/*-----------------------------------------------------------
    基本設定
-----------------------------------------------------------*/
body {
 min-width: 1000px;
 width: auto !important;
 width: 1000px;
 color: #333;
 line-height: 1.5;
 font-family: 'Noto Sans JP', sans-serif !important;
 font-size: 11px;
 -webkit-text-size-adjust: 100%;
 background: #fff;
}
a {
 text-decoration: underline;
 overflow: hidden;
 outline: none;
}
a:link {
 color: #333;
}
a:visited {
 color: #333;
}
a:hover {
 color: #333;
 text-decoration: none;
}
a:active {
 color: #333;
}
a:hover img {
 filter: alpha(opacity=80); /* internet explorer */
 -khtml-opacity: 0.8; /* khtml, old safari */
 -moz-opacity: 0.8; /* mozilla, netscape */
 opacity: 0.8; /* fx, safari, opera */
}
.noto {
 font-family: 'Noto Sans JP', sans-serif !important;
 font-weight: 400;
 font-style: normal;
}
@media screen and (max-width: 767px) {
 body {
  min-width: auto;
  width: auto !important;
  color: #333;
  line-height: 1.5;
  font-size: 11px;
  -webkit-text-size-adjust: 100%;
 }
}
/*-----------------------------------------------------------
    基本レイアウト
-----------------------------------------------------------*/
#wrap {
 width: 960px;
 overflow: hidden;
 margin: 0 auto;
}
#content {
 width: 960px;
 overflow: hidden;
 padding: 100px 0 60px 0;
 z-index: 1;
}
#footer {
 clear: both;
 text-align: right;
 padding: 0 0 15px 0;
}
@media screen and (max-width: 767px) {
 #wrap {
  width: auto;
  overflow: hidden;
  margin: 0 auto;
 }
 #content {
  width: auto;
  overflow: hidden;
  padding: 90px 0 70px 0;
  z-index: 1;
 }
 #footer {
  clear: both;
  text-align: center;
  padding: 0 10px 15px 10px;
 }
}
/*----------------------- content --------------------------*/
#works {
 padding-bottom: 0;
}
#profile {
 position: relative;
 padding: 0 0 0 0;
}
#profile .img {
 position: absolute;
 bottom: 0;
 right: 0;
 padding: 0;
 width: 230px;
}
#profile .img img {
 height: auto;
 width: 230px;
}
.blk_pr {
 display: flex;
 justify-content: space-between;
}
.blk_pr + .blk_pr {
 margin-top: 55px;
}
.blk_pr_inner {
 width: 870px;
}
#profile .blk_pr_inner p:last-child {
 margin-bottom: 0;
}
.ttl_pr {
 width: 90px;
}
#profile dl {
 width: 650px;
 display: flex;
 flex-wrap: wrap;
}
#profile dt {
 width: 65px;
 font-weight: normal;
}
#profile dd {
 width: 585px;
 margin-bottom: 15px;
 padding-left: 7px;
 box-sizing: border-box;
}
#profile p {
 margin-bottom: 14px;
}
#profile a {
 text-decoration: none;
 margin-top: 14px;
 display: block;
}
#profile a:hover {
 text-decoration: underline;
}
#profile #mailLink {
 margin-top: 0;
}
.spw {
 padding: 0 5px;
}
@media screen and (max-width: 767px) {
 #works {
  padding: 0 10px 0 10px;
 }
 #profile {
  position: relative;
  padding: 0 10px 0 10px;
 }
 #profile .img {
  position: inherit;
  bottom: 0;
  right: 0;
  padding: 0;
  width:180px;
  margin: 0 auto 20px auto;
 }
 #profile .img img {
  height: auto;
  width: 180px;
 }
 .blk_pr {
  display: block;
  justify-content: space-between;
 }
 .blk_pr + .blk_pr {
  margin-top: 55px;
 }
 .blk_pr_inner {
  width: 870px;
 }
 #profile .blk_pr_inner p:last-child {
  margin-bottom: 0;
 }
 .ttl_pr {
  width: 90px;
  margin-bottom: 20px;
 }
 #profile dl {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
 }
 #profile dt {
  width: 12%;
  font-weight: normal;
 }
 #profile dd {
  width: 88%;
  margin-bottom: 15px;
  padding-left: 0;
  box-sizing: border-box;
 }
 #profile p {
  margin-bottom: 14px;
 }
 #profile a {
  text-decoration: none;
  margin-top: 14px;
  display: block;
 }
 #profile a:hover {
  text-decoration: underline;
 }
 #profile #mailLink {
  margin-top: 0;
 }
 .spw {
  padding: 0 5px;
 }
}
/*----------------------- 404 --------------------------*/
.error404 h2 {
 font-weight: bold;
 padding: 50px 0 10px 0;
}
.error404 p, .error404 ul {
 padding: 15px 0 0 0;
}
/*new css*/
/*header*/
.header {
 padding: 30px 0 4px 0;
 border-bottom: #333 1px solid;
 display: flex;
 justify-content: space-between;
 position: fixed;
 width: 960px;
 z-index: 10;
 background: #fff;
}
.header a {
 text-decoration: none;
}
.header h1 a {
 font-size: 12px;
 font-weight: 700;
 letter-spacing: 2.5px;
 text-decoration: none;
 color: #333;
}
.header h1 p {
 font-size: 12px;
 font-weight: normal;
 letter-spacing: normal;
 display: inline-block;
}
.header h1 span {
 display: inline-block;
 margin-right: 5px;
}
.header nav a {
 font-size: 12px;
 color: #333;
}
@media screen and (max-width: 767px) {
 .header {
  padding: 20px 10px 4px 10px;
  border-bottom: #333 1px solid;
  display: flex;
  justify-content: space-between;
  position: fixed;
  width: 100%;
  z-index: 10;
  background: #fff;
 }
 .header a {
  text-decoration: none;
 }
 .header h1 a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-decoration: none;
  color: #333;
 }
 .header h1 p {
  font-size: 11px;
  font-weight: normal;
  letter-spacing: normal;
  display: inline-block;
 }
 .header h1 span {
  display: inline-block;
  margin-right: 5px;
 }
 .header nav a {
  font-size: 11px;
  color: #333;
 }
}
/*works*/
.works-slider {
 position: relative;
 width: 100%;
 height: 640px;
 overflow: hidden;
}
.slider-inner {
 display: flex;
 width: 100%;
 height: 100%;
 transition: transform 0.6s ease;
}
.slide {
 min-width: 100%;
 height: 640px;
}
.slide {
 flex: 0 0 100%;
}
/* 画像のデフォルト（横長画像） */
.slide img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}
/* 縦長画像の場合だけ：height100% / width auto */
.slide img[style*="--portrait"] {
 width: auto;
 height: 100%;
 object-fit: contain;
}
/* ▼ 縦長画像を中央配置（左右中央寄せ） */
.slide {
 display: flex;
 align-items: center; /* 縦方向中央 */
 justify-content: center; /* 横方向中央 */
}
/* ====== arrows ====== */
.arrow {
 position: absolute;
 top: 50%;
 transform: translateY(-50%);
 width: 35px;
 height: 50px;
 border: none;
 cursor: pointer;
 /* テキストを消す（重要） */
 color: transparent;
 font-size: 0;
 line-height: 0;
 /* 背景矢印画像 */
 background-image: url("../img/cursor.png");
 background-repeat: no-repeat;
 background-size: 200% 100%;
 background-color: transparent;
 opacity: 0;
 transition: opacity 0.4s ease, filter 0.3s ease;
 z-index: 10;
}
/* ホバーで表示 */
.works-slider:hover .arrow {
 opacity: 1;
}
/* ホバーで少し明るく */
.arrow:hover {
 filter: brightness(1.2);
}
/* 左矢印（画像の左半分） */
.prev {
 left: 15px;
 background-position: left center;
}
/* 右矢印（画像の右半分） */
.next {
 right: 15px;
 background-position: right center;
}
/* ====== counter ====== */
.counter {
 position: absolute;
 bottom: 15px;
 right: 15px;
 color: #fff;
 font-size: 14px;
 letter-spacing: 1px;
 background: rgba(0, 0, 0, 0.3);
 padding: 6px 10px;
 border-radius: 3px;
 opacity: 0;
 transition: opacity 0.4s ease;
 pointer-events: none;
}
.works-slider:hover .counter {
 opacity: 1;
}
/* ====== SP ====== */
@media screen and (max-width: 767px) {}
@media (max-width: 768px) {
 .works-slider {
  height: 68vw;
 }
 .slide {
  min-width: 100%;
  height: 68vw;
 }
 /* スマホは arrow 常時 0.4 で表示 */
 .arrow {
  opacity: 0.4;
 }
 .works-slider:hover .arrow {
  opacity: 1;
 }
 /* カウントもスマホは常時薄く */
 .counter {
  opacity: 0.4;
 }
 .works-slider:hover .counter {
  opacity: 1;
 }
}
/*works-data*/
.works-data {
 padding: 10px 0 0 0;
 line-height: 1.6;
 height: 146px;
 box-sizing: border-box;
}
.works_name {
 font-size: 12px;
 font-weight: bold;
 margin-bottom: 0.5em;
 width: auto !important;
 text-align: left !important;
 line-height: 1.2;
 position: inherit !important;
 top: auto !important;
 right: auto !important;
}
.works_name_at {}
.works_link a {
 text-decoration: none;
}
.works_link a:hover {
 text-decoration: underline;
}
.works_txt {}
@media screen and (max-width: 767px) {}