@charset "UTF-8";

body {
	font-family: "Avenir", 'Noto Sans JP', sans-serif;
	font-size: 12px;
	line-height: 1.8;
    background: #f8f8f8;
    -webkit-overflow-scrolling: touch; /*慣性スクロール*/
      -webkit-text-size-adjust: 100%;
       -moz-osx-font-smoothing: grayscale; /*フォント滑らかに*/
        -webkit-font-smoothing: antialiased; /*フォント滑らかに*/
}

/*********************************************************/
/*** header ***/
/*********************************************************/

header {
    height: 156px;
    padding: 16px 24px;
    top: 0;
    left: 0;
    right: 0;
    position: fixed;
    box-sizing: border-box;
    z-index: 100;
    -webkit-transition: .1s ease-in-out;
       -moz-transition: .1s ease-in-out;
            transition: .1s ease-in-out;
}
header.mini {
    height: 96px;
}
header.Open {
    background: #f8f8f8;
}
header h1 {
    top: calc(50% - 8px);
    left: calc(50% - 18px);
    transform: translate(-50%, -50%);
    position: absolute;
}
header h1 img {
    width: auto;
    height: 40px;
    position: relative;
}
main {
    padding: 144px 12px 60px;
}

/*********************************************************/
/*** nav_menu ***/
/*********************************************************/

#HamBtn {
    width   : 30px;
    height  : 32px;
    top     : calc(50% - 8px);
    right   : 20px;
    transform: translateY(-50%);
    cursor  : pointer;
    display : inline-block;
    position: absolute;
    border: none;
    background: none;
    z-index : 1000;
}
#HamBtn span {
    width             : 16px;
    padding-top       : 8px;
    border-bottom     : solid 2px #444;
    display           : block;
    position          : absolute;
    -webkit-transition: .25s ease-in-out;
       -moz-transition: .25s ease-in-out;
            transition: .25s ease-in-out;
}
#HamBtn span:nth-child(1) { top:  2px; }
#HamBtn span:nth-child(2) { top:  8px; }
#HamBtn span:nth-child(3) { top: 14px; }

#HamBtn.Open span:nth-child(1) {
    top              : 10px;
    left             : 4px;
    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
            transform: rotate(-45deg);
}
#HamBtn.Open span:nth-child(2),
#HamBtn.Open span:nth-child(3) {
    top              : 10px;
    left             : 10px;
    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
            transform: rotate(45deg);
}
header nav {
    left: 24px;
    right: 24px;
    bottom: 16px;
    position: absolute;
    -webkit-transition: .25s ease-in-out;
       -moz-transition: .25s ease-in-out;
            transition: .25s ease-in-out;
}
header.mini nav {
    bottom: 0px;
}
header nav:before {
    content: "";
    width: 1px;
    height: auto;
    top: 4px;
    left: 50%;
    bottom: 4px;
    transform: translateX(-50%);
    position: absolute;
    background: #aaa;
    box-sizing: border-box;
}
#nav_menu {
    width: 100%;
    height: 0;
    opacity: 0;
    font-size: 14px;
    text-align: center;
    display: flex;
    box-sizing: border-box;
    overflow: hidden;
}
#nav_menu.Open {
    height: auto;
    opacity: 1;
    -webkit-transition: .25s ease-in-out;
       -moz-transition: .25s ease-in-out;
            transition: .25s ease-in-out;
}
#nav_menu li {
    width: 50%;
}

/*********************************************************/
/*** 記事パーツ ***/
/*********************************************************/

.metaList span {
    top: -1px;
    font-size: 0.92em;
    position: relative;
}
.metaList span:after {
    content: ":";
    margin: 0 4px;
}

/*********************************************************/
/*** 記事一覧 ***/
/*********************************************************/

.listBox > li {
    padding-bottom: 24px;
}
.listImgBox {
    width: 100%;
    padding-top: 100%;
    position: relative;
}
.works .listImgBox {
    padding-top: 0%;
}
.listImgBox img {
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    object-fit: cover;
}
.works .listImgBox img {
    width: 100%;
    height: auto;
    position: relative;
}
.listTxtBox {
    height: 72px;
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.6;
    text-align: center;
    overflow: hidden;
}
.listTxtBox .title {
    margin: 4px 0;
}
.listTxtBox .author,
.listTxtBox li {
    font-size: 0.8em;
    color: #555;
    display: inline-block;
}
.listTxtBox li:nth-child(n + 2) p:before {
    content: "/";
    padding-right: 4px;
}

/*********************************************************/
/*** 記事詳細 ***/
/*********************************************************/

.article_content .metaBox {
    top: -12px;
    font-size: 12px;
    text-align: center;
    color: #555;
    position: relative;
}
.article_content .metaBox h2 {
    margin: 24px 0 8px;
    font-size: 1.2em;
    color: #000;
}
.article_content .author {
    /*font-size: 1.1em;*/
    margin-bottom: 20px;
}
.article_content .part {
    margin-top: 20px;
}
.backBtn {
    margin-top: 24px;
    font-size: 11px;
    text-align: right;
}

/*********************************************************/
/*** page_title ***/
/*********************************************************/

.page_title {
    /*margin-bottom: 60px;*/
    margin: 0 12px 60px;
    padding: 0 0 4px;
    font-size: 16px;
    text-align: center;
    border-bottom: 1px solid #aaa;
}

/*********************************************************/
/*** about_template ***/
/*********************************************************/

#about_template img {
    width: calc(100% - 84px);
    margin: 0 auto 60px;
}
#about_template h3 {
    margin-bottom: 24px;
}
#about_template h3 span {
    position: relative;
}
#about_template h3 span:before,
#about_template h3 span:after {
    content: "";
    width: 2px;
    height: 14px;
    margin: 0 8px;
    top: 2px;
    background: #aaa;
    display: inline-block;
    position: relative;
}
#about_template > div {
    font-size: 14px;
    line-height: 2.4;
    text-align: center;
    color: #555;
}
#about_template > div a {
    margin: 0 2px;
    text-decoration: underline;
    text-decoration-color: #aaa;
    display: inline-block;
}

/*********************************************************/
/*** contact_template ***/
/*********************************************************/

#contact_template {
    font-size: 16px;
    text-align: center;
    letter-spacing: 2px;
    color: #555;
}
#contact_template form {
    margin-top: 64px;
    text-align: left;
}
#contact_template label {
    /*width: 82%;*/
    /*margin: 0 auto 12px;*/
    display: block;
}
#contact_template label span {
    display: block;
}
#contact_template label .subtitle {
    margin: 0px 0px 4px;
}
#contact_template label span:nth-child(2) {
    /*width: calc(100% - 240px);*/
}
#contact_template label input,
#contact_template label textarea {
    width: 100%;
    padding: 16px;
    font-size: 14px;
    border: unset;
    box-sizing: border-box;
}
#contact_template .wpcf7-submit {
    width: 120px;
    margin: 24px 0 60px;
    padding: 12px;
    font-size: 14px;
    letter-spacing: 4px;
    text-align: center;
    color: #fff;
    background: #000;
    border: unset;
    float: right;
}

/*********************************************************/
/*** display: none; ***/
/*********************************************************/

.PC_Only { display: none !important; }

