@charset "UTF-8";
/*
Eiji Shimamura Website (c) 2023
*/

/* PC用CSS */

/* 変数 */
:root {
  --color-link: #ff7700;
}

img,iframe{
  vertical-align: bottom;
}

/* 基本設定 */
body{
  font-size: 100%;
  font-family: 'Noto Serif JP', serif;
  /* font-family: 'Noto Sans JP', sans-serif; */
}

a,
a:link,
a:visited
{
  color: #000;
  text-decoration: underline;
  /* text-shadow: 0.1rem 0.1rem 0px rgba(255, 255, 255, .3); */
}

a:hover{
  opacity: .7;
  text-decoration: none;
}

p:first-child{ margin-top: 0; }
p:last-child{ margin-bottom: 0; }

figure img{
  width: 100%;
  height: auto;
}

/* ================================= 共通クラス */

/* PC／スマホで表示の切り替え */

.for-pc{ display: block; } /* PC用 */
.for-sp{ display: none;  } /* スマホ用 */

.bold{ font-weight: bold; }


/* 定義リスト（水平） */
dl.horizontal{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  border-bottom: 1px solid #ccc;
}

dl.horizontal dt,
dl.horizontal dd
{
  padding: 30px 10px;
  margin: 0;
  flex-shrink: 0;
  border-top: 1px solid #ccc;
}
dl.horizontal dt:first-of-type,
dl.horizontal dd:first-of-type{
  border: 0;
}

dl.horizontal dt{
  width: 25%;
  display: table;
}
dl.horizontal dt span{
  display: table-cell;
  height: 100%;
  vertical-align: middle;
}

dl.horizontal dd{
  width: 75%;
}

dl.child{
  width: 500px;
  border: 0;
  margin: 0;
}
dl.child dt,
dl.child dd{
  padding: 5px;
  margin: 0;
  border: 0;
}


/* アイコンリスト */
ul.icons{
  /* display: flex; */
  list-style: none;
  margin: 1rem 0;
  padding: 0;
  text-align: center;
  font-size: 1rem;
  line-height: 1;
}
ul.icons.x2{
  font-size: 2rem;
}
ul.icons.x3{
  font-size: 3rem;
}

ul.icons li{
  display: inline-block;
  margin: 0 .2rem;
}

ul.icons a{
  color: #000;
  text-decoration: none;
}

/* ul.icons img{
  width: auto;
  height: 40px;
} */

.post-edit-link{
  font-size: .7rem;
  display: inline-block;
  padding: .2rem 1rem .3rem;
  line-height: 1;
  background-color: #FFF;
  color: #000 !important;
  border-radius: 3rem;
  margin-left: .5rem;
}


/* ================================= 
スライド */

.slides{
  /* position: fixed;
  top: 0;
  left: 0; 
  z-index: 1;*/
  width: 100%;
  height: 100vh;
}
.slides img{
  width: 100%;
  height: 100vh;
  object-fit: cover;
}

.slides::before{
  content: '';
  width: 100%;
  height: 100vh;
  position: absolute;
  top:0;
  left:0;
  z-index: 100;
  opacity: .8;

  background: url(../images/bg-dot.png) 50% 50% fixed;
  mix-blend-mode: multiply;
}

/* --------------------------------
スライドショーのアニメーション設定
*/

/* ズーム（デフォルト） */
.add-animation {
  animation: anime-zoom 6s linear 0s forwards;
}

@keyframes anime-zoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}

/* 縦スライド */
.add-animation.anime-slide {
  animation: anime-slide 6s linear 0s forwards;
}

@keyframes anime-slide {
  0% {
    object-position: 0 0;
  }
  100% {
    object-position: 0 -200px;
  }
}

/* ================================= 
ページ */

#page{
  position: relative;
  z-index: 10;
}

/* ================================= 
ページヘッダー */

.page-header{
  width: 240px;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  background-color: #000;
  color: #fff;
}
.logged-in .page-header{
  top:32px;
  height: calc(100vh - 32px);
}


.page-header .inner{
  position: relative;
  height: 100%;
  width: 100%;
  padding: 30px;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  
}

.page-header .inner a{
  color: #fff;
  text-decoration: none;
}

.page-header .logo{
  position: relative;
  margin: 0 auto;
  padding:0;
  padding-top: 150px;
}
.page-header .logo::before,
.page-header .logo::after   {
  content: '';
  display: block;
  position: absolute;
  background: no-repeat 50% 50% / contain;
  width: 150px;
  height: 100px;
}
.page-header .logo::before{
  background-image: url(../images/logo-stone-color.png);
  top: 0;
  left: 0;
  z-index: 20;
}
.page-header .logo::after{
  background-image: url(../images/logo-stone-mono.png);
  top: 20px;
  left: 20px;
  z-index: 10;
}

.page-header .logo a{
  display: block;
  position: relative;
}
.page-header .logo a img{
  display: block;
  width: 100%;
  height: auto;
}
.page-header .logo a .logo-typo{
}
.page-header .logo a .logo-subject{
  height: 11px;
  width: auto;
  margin: 24px auto;
}
.page-header .logo a .logo-typo{
}

.logo img,
.page-header img{
  width: 100%;
  height: auto;
}

.page-header small{
  display: block;
  font-size: .5rem;
  text-align: center;
  margin-top: 1rem;
}

/* ================================= ナビゲーション */

.menu-icon,
#menu-cb
{
  display: none;
}

ul.menu-gloval,
ul.menu-gloval ul.child,
ul.sns{
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

ul.menu-gloval{
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}


.menu-gloval li{
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding: .5rem 0;
}
.menu-gloval ul.child li{
  border: none;
  padding: 0;
}

.menu-gloval li a{
  display: block;
  padding: .3rem 0;
  font-size: .9rem;
}

ul.sns{
  margin-top: 1rem;
  display: flex;
  justify-content: center;
}
ul.sns li{
  margin: 0 .8rem;
  font-size: 1.6rem;
}


/* ページネーション */

.navigation{
	margin: 30px 0 0;
}

.pagenav{
	display: table;
	width: 100%;
	
	border-collapse: separate;
	border-spacing: 15px;
}
.pagenav a.pagenav-btn{
	display: table-cell;
	background: #000;
	border-radius: .5em;
	padding: 1em .5em;
	text-align: center;
	color: #fff;
}
.pagenav a.pagenav-btn p{
	margin: .5em 0 0;
}

.pagenav .btns{
	display: table-cell;
	width: 25%;
}
.pagenav .btns a.pagenav-btn{
	display: block;
	background: #999;
}

.pagination{
	padding: 0;
  text-align:center;
}
.pagination .screen-reader-text { display:none; }

.pagination .nav-links {}

.nav-links .page-numbers {
	display:inline-block;
	text-decoration:none;
	border-radius: .5em;
  padding:5px 10px;
  margin:0 2px;
	background: #E6E6E6;
}
.nav-links .page-numbers.current {
  color: #FFF;
	background: #000;
}
.pagination a{
	color: #666;
}
.pagination a:hover{
    color: #fff;
    background-color: #000;
}

/* 前の投稿／次の投稿 */

.next-previous ul{
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
}

.next-previous .nav-next,
.next-previous .nav-previous,
.next-previous .nav-return {
  width: 30%;
  text-align: center;
  white-space: nowrap;
}

.next-previous .nav-next a,
.next-previous .nav-previous a,
.next-previous .nav-return a {
  display: block;
  padding: 0.5em;
  background: var(--more-bg);
  color: var(--more-txt);
  text-decoration: none;
  border-radius: 50px;
}



/* ================================= ページフッター */

footer{
  display: none;
}

/* ================================= メイン */
main{
  position: relative;
  display: flex;
  padding-left: 240px;
}
.main-header{
  position: sticky;
  /* position: fixed; */
  top: 0;
  /* left: 0; */
  z-index: 100;

  flex-shrink: 0;
  width: 240px;
  height: 100vh;
  background-color: #fff;
  color: #000;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.main-header .heading{
  flex-shrink: 0;
  margin: 0;
  padding: 1rem;
  line-height: 1;
  text-align: center;
}

.main-header .heading .en{
  display: inline-block;
  margin: 0;
  padding: 0 .5rem;
  line-height: 1;
  font-size: 1.3rem;
}
.main-header .heading .ja{
  display: block;
  border-top: 1px solid #000;
  margin-top: .8rem;
  padding-top: .8rem;
  font-size: .5rem;
  line-height: 1;
}

/* ================================= セクション */

/* インナーボックス */
.inner{
  width: 1000px;
  margin: 0 auto;
  padding: 50px 20px 80px;
}





/* ================================= レイアウト */

/* Flex（フレックス） */

.row{
  display: flex;
  justify-content: space-between;
  align-items:flex-start;
}

.row .item{
  flex-shrink: 0;
}


/* Grid（グリッド） */

.grid{
  padding: 20px;
  padding-left: 0;
  display: grid;
  gap: 10px;
  /* grid-template-columns: 1fr 1fr 1fr; */
  /* grid-template-columns: repeat(3, minmax(200px, 1fr)); */
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-template-rows: repeat(auto-fit, minmax(100px, 1fr));
  grid-auto-flow: row;
  /* grid-auto-rows: 30vh; */
}

.grid .item{
  margin: 0;
  padding: 0;
}
.grid .item img{
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.grid .item.contain img{
  object-fit: contain;
}

.grid .item figcaption{
  display: none;
}
.fancybox-caption__body .heading{
  font-weight: bold;
  font-size: 1.125rem;
}
.fancybox-caption__body .data{
  font-weight: bold;
  font-size: 0.75rem;
}
.fancybox-caption__body .description{
  margin: 0 auto;
  max-width: 900px;
  text-align: left;
  line-height: 1.6;
  font-size: 0.9rem;
}

.rowspan2{ grid-row: span 2;}
.colspan2{ grid-column: span 2;}

.rowspan3{ grid-row: span 3;}
.colspan3{ grid-column: span 3;}

.rowspan4{ grid-row: span 4;}
.colspan4{ grid-column: span 4;}

.rowspan5{ grid-row: span 5;}
.colspan5{ grid-column: span 5;}

/* ================================= 
ブログ */

.blog .main-content{
  border-left: 1px solid #000;
  padding: 20px 50px;
  max-width: 1000px;
}

.blog .main-header{
  justify-content: flex-start;
  padding-top: 70px;
}

.blog .nav-header{
  margin-top: 50px;
  padding: 0 20px;
}
.blog .nav-header .block{
  margin: 1.5rem 0;
}
.blog .nav-header .block-heading{
  font-size: 1rem;
  text-align: center;
  background-image: linear-gradient(transparent 50%, #ddd 50%);
}
.blog .nav-header ul{
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
  font-size: .8rem;
}
.blog .nav-header ul li a{
  display: block;
  padding: .3rem;
}

.blog .nav-header .block-archive ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  
}
.blog .nav-header .block-archive ul li{
  margin: 0;
  flex-grow: 1;
}

.post-item{
  margin: 2rem 0;
  padding-bottom: 2rem;
  border-bottom: 1px dotted #ccc;
}

.post-item a{
  color: #000;
}
a.more-link{
  display: table;
  background-color: #000;
  color: #fff;
  padding: .5rem 2rem .6rem;
  text-decoration: none;
  margin-top: 1rem;
  line-height: 1;
}
.more-link:hover{
  opacity: 1;
  background-color: var(--color-link);
}

.post-utils{
  display: flex;
  align-items: center;
  margin-top: 1rem;
}

.post-utils .date{
  font-size: .85rem;
}

.post-utils .cat{
  list-style: none;
  margin: 0 .5rem;
  padding: 0;
  display: flex;
  font-size: .8rem;
}
.post-utils .cat li{
  margin: 0 .3rem;
}
.post-utils .cat li a{
  display: block;
  background-color: #ddd;
  color: #000;
  text-decoration: none;
  padding: .1rem 1rem;
  border-radius: 3rem;
}

.post-content{
  margin-top: 2rem;
}

.blog .post-title{
  font-size: 1.3rem;
}

.post-thumbnail{
  margin: 0;
}

/* アーカイブ */
.blog.archive .post-text{
  width: calc(60% - 30px);
  flex-shrink: 0;
}



.blog.archive .post-thumbnail{
  width: 40%;
  flex-shrink: 0;
}

.blog.archive .post-thumbnail img{
  width: 100%;
  height: auto;
}

.blog.archive .post-item{
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
}


/* シングル */
.nav-blog-cat{
  margin: 0 0 4rem;
}
.nav-blog-cat ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: flex-end;
  line-height: 1;
}

.nav-blog-cat li{
  padding-bottom: .1rem;
}

.nav-blog-cat li::after{
  content: ' >';
}

.nav-blog-cat .carrent{
  font-size: 1.3rem;
  font-weight: bold;
  padding: 0 .5rem;
}
.nav-blog-cat .carrent::after{
  content: '';
}

/* ================================= 
バイオグラフィー */

.biography .main-content{
  border-left: 1px solid #000;
  padding: 50px;
  max-width: 1000px;
}

.personal-info{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 3rem;
}

.personal-info .names{
  width: 45%;
}
.personal-info .names .business-name{
  font-size: 1rem;
  font-weight: bold;
  /* margin-bottom: 1rem; */
}
.personal-info .names .position{
  font-size: .9rem;
  margin-bottom: 2rem;
}
.personal-info .names .fullname{
  font-size: 1.8rem;
  letter-spacing: .2rem;
}
.personal-info .names .fullname .en{
  display: block;
  font-size: .8rem;
}

.personal-info .portrait{
  width: 50%;
}
.personal-info .portrait img{
  width: 100%;
  height: auto;
}

.profile h3{
  margin: 4rem 0 1rem;
  border-left: 5px solid #ccc;
  padding-left: .5rem;
}