@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');

/*reset css
---------------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, sub, sup, tt, var, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style:normal;
	font-weight: normal;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, main {
	display: block;
}

html{
	overflow-y: scroll;
	font-size:62.5%;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  transform: rotate(0.05deg);
  font-feature-settings : "palt";
  font-size:16px;
  font-size:1.6rem;
  line-height:1;
  color:#000;
  overflow:hidden;
}

h1,h2,h3,h4,h5,h6 {
	font-style: normal;
	font-weight: normal;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

input, textarea{
	margin: 0;
	padding: 0;
}

ol, ul{list-style:none;}

table{
    border-collapse: collapse; 
    border-spacing:0;
}

caption, th{
    text-align: left;
}
a{text-decoration: none;}
a:focus {
	outline:none;
}
a:hover{
 text-decoration: none;
}
img{vertical-align: bottom;}

.clearfix:after {
	content: "."; 
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}

.clearfix {
	min-height: 1px;
}

* html .clearfix {
	height: 1px;
}

.clear {clear:both; margin:0;padding:0}


.img-filter a:hover img {
	opacity: 0.7;
 filter: alpha(opacity=80);
 -moz-opacity: 0.7;
}


/*sp-none*/
/* 画面サイズが992px以上の場合に適用 */
@media only screen and (min-width: 992px) {
 .pc-none{display: none;}
 .sp-none{display: block;}
}
/* 画面サイズが991px以下の場合に適用 */
@media only screen and (max-width: 991px) {
 .pc-none{display: block;}
 .sp-none{display: none;}
}




/* header */
.header{
  height: 140px;
  width: 100%;
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-align-items: center; /* Safari */
  align-items:center;
  padding: 0px 15px;
  position: absolute;
  z-index: +1;
}
.header .inner{
  width: 100%;
  padding: 0px 15px;
}
.headerbox{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -ms-flex-wrap:wrap;/*--- IE10用 ---*/ 
  -webkit-flex-wrap: wrap; /* Safari */
  flex-wrap:wrap;
  -webkit-box-pack:justify;/*--- Androidブラウザ用 ---*/
  -ms-flex-pack:justify;/*--- IE10 ---*/ 
  -webkit-justify-content: space-between; /* Safari */
  justify-content:space-between;
  -webkit-align-items: center; /* Safari */
  align-items:center;
}

/* 画面サイズが992px以上の場合に適用 */
@media only screen and (min-width: 992px) {}
/* 画面サイズが991px以下の場合に適用 */
@media only screen and (max-width: 991px) {
 .header{height: 70px;}
 .logo{max-width: 80%;}
 .logo img{
  max-height: 35px;
  width: auto;
 }
}

/* nav */
/* 画面サイズが992px以上の場合に適用 */
@media only screen and (min-width: 992px) {
 .gnavi nav ul{
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-box-direction:row;/*--- Androidブラウザ用 ---*/ 
  -ms-flex-direction: row;/*--- IE10用 ---*/
  -webkit-flex-direction: row; /* Safari */
  flex-direction:row;
 }
 .gnavi nav ul li{margin-left: 20px;}
 .gnavi nav ul li a{
  font-size: 1.8rem;
  color: #000;
  font-weight: 700;
 }
}

/* footer */
.footer{
 background: #000;
 width: 100%;
 color: #fff;
 padding: 30px 15px;
}
.footer .inner{
 width: 100%;
 max-width: 1200px;
 margin-left: auto;
 margin-right: auto;
}
.footer .footer_logo{
 font-size: 2rem;
 text-align: center;
}
.footer .footer_logo a{color: #fff;}
/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {
  .footer{padding: 15px;}
  .footer .footer_logo{font-size: 1rem;}
}

/* common */
.ttl01 {text-align: center;}
.ttl01 span {
  position: relative;
  display: inline-block;  
  margin-bottom: 80px;
  font-weight: 600;
  font-size: 3.2rem;
  letter-spacing: 0.1em;
}
.ttl01 span:before {
  content: '';
  position: absolute;
  bottom: -30px;
  display: inline-block;
  width: 60px;
  height: 5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: black;
  border-radius: 3px;
}
.ttl02 { 
  margin-bottom: 80px;
  font-weight: 600;
  font-size: 2.4rem;
  margin-bottom: 30px;
}

.btn01{
 text-align: center;
}
.btn01 a{
 position: relative;
 display: block;
	border-radius:25px;		/* CSS3草案 */
	-webkit-border-radius:25px;	/* Safari,Google Chrome用 */
	-moz-border-radius:25px;	/* Firefox用 */
 background: #ffbbdb;
 color: #000;
 max-width: 300px;
 width: 90%;
 margin-left: auto;
 margin-right: auto;
 text-align: center;
 padding: 5px 10px 10px 10px;
 -webkit-transition: all .3s;
	transition: all .3s;
 font-size: 2.4rem;
 font-weight: 500;
}
.btn01 a:after{
 content: '';
 position: absolute;
 right: -5px;
 top: 50%;
 width: 30px;
 height: 1px;
 background: #000;
 -webkit-transition: all .3s;
	transition: all .3s;
}
.btn01 a:hover{
 color: #fff;
 background: #837ad3;
}
.btn01 a:hover:after{
 right: 0px;
 background: #fff;
}
/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {
  .ttl01{margin-bottom: 50px;}
  .ttl01 span{
    font-size: 2.4rem;
    margin-bottom: 40px;
  }
  .ttl02{
    font-size: 1.8rem;
    margin-bottom: 20px;
  }
}

/* 全ページ共通CSS */
.contents{padding-top: 150px;}
.contents > section{margin-bottom: 150px;}
.contents > section .inner{
 max-width: 1200px;
 margin-left: auto;
 margin-right: auto;
 padding: 0px 15px;
}
/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {
  .contents{padding-top: 100px;}
  .contents > section{margin-bottom: 80px;}
}

/* toppage */
header.topmain{
  position: relative;
  height: 500px;
}
.mainvisual{
  position: absolute;
  width: 100%;
  height: 500px;
  background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-box-pack:justify;/*--- Androidブラウザ用 ---*/
  -ms-flex-pack:justify;/*--- IE10 ---*/ 
  -webkit-justify-content: center; /* Safari */
  justify-content:center;
  -webkit-align-items: center; /* Safari */
  align-items:center;
}

/* 画面サイズが991px以下の場合に適用 */
@media only screen and (max-width: 991px) {
}
/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {
}

.worksbox{
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-box-pack:justify;/*--- Androidブラウザ用 ---*/
  -ms-flex-pack:justify;/*--- IE10 ---*/ 
  -webkit-justify-content: flex-start; /* Safari */
  justify-content:flex-start;
  -webkit-align-items: flex-start; /* Safari */
  align-items:flex-start;
  -ms-flex-wrap:wrap;/*--- IE10用 ---*/ 
  -webkit-flex-wrap: wrap; /* Safari */
  flex-wrap:wrap;
  margin-bottom: 80px;
}
.worksbox .box{
  width: 30%;
  margin-left: 15px;
  margin-right: 15px;
  margin-bottom: 30px;
}
.iconbox{
  display:-webkit-box;/*--- Androidブラウザ用 ---*/
  display:-ms-flexbox;/*--- IE10 ---*/
  display: -webkit-flex; /* Safari */
  display: flex;
  -webkit-box-direction:row;/*--- Androidブラウザ用 ---*/ 
  -ms-flex-direction: row;/*--- IE10用 ---*/
  -webkit-flex-direction: row; /* Safari */
  flex-direction:row;
  -webkit-align-items: center; /* Safari */
  align-items:center;
  -ms-flex-wrap:wrap;/*--- IE10用 ---*/ 
  -webkit-flex-wrap: wrap; /* Safari */
  flex-wrap:wrap;
  margin-left: -5px;
  margin-right: -5px;
  margin-top: -5px;
  margin-bottom: 10px;
}
.iconbox li{padding:5px;}
.iconbox li a{
  display: inline-block;
  padding: 5px 18px;
  color: #000;
  border-radius: 5px;
  font-weight: bold;
  font-size: 1.2rem;
}
.design{background: #E49AAB;}
.html{background: #BFE4FF;}
.css{background: #FFDFA2;}
.wordpress{background: #F3BDD7;}
.wix{background: #A3B5FD;}
.bootstrap{background: #C3C5F8;}
.jquery{background: #89BBAD;}

.worksbox .box img{
  width: 100%;
  height: auto;
  border: 1px solid #eee;
}
.worksbox .box .txt1{
  margin-top: 8px;
  line-height: 1.2;
}
.workstxtbox {
  line-height: 1.6;
  text-align: center;
}

.profile_img{
 text-align: center;
 margin-bottom: 30px;
}
.profile_img img{
 max-width: 100%;
 height: auto;
 margin-left: auto;
 margin-right: auto;
}
.profilebox{text-align: center;}
.profilebox .name{
 font-weight: 700;
 font-size: 2.4rem;
 margin-bottom: 30px;
} 
.profilebox table{
 display: inline-block;
 margin-left: auto;
 margin-right: auto;
 text-align: left;
 line-height: 1.6;
}
.profilebox table th,.profilebox table td{
 font-weight: 700;
 padding: 1em;
 border-bottom: 1px solid #ccc;
}
.profilebox table td p{font-weight: 700;}

.table_contact{
 width: 100%;
 border-top: 1px solid #ccc;
 border-right: 1px solid #ccc;
}
.table_contact th,.table_contact td{
 border-bottom: 1px solid #ccc;
 padding: 15px;
 border-left: 1px solid #ccc;
}
.table_contact th {
 background: #eee;
 width: 35%;
 font-weight: bold;
}
.table_contact th span{
 display: inline-block;
 padding: 5px;
 line-height: 1;
 font-size: 12px;
 background: #837ad3;
 color: #fff;
 float: right;
}
.contact_btn{
  text-align: center;
  margin-top: 15px;
}
.contact_btn input{
  padding: 3px 15px;
}
.wpcf7-not-valid-tip{line-height: 1.2;}


/* 画面サイズが991px以下の場合に適用 */
@media only screen and (max-width: 991px) {
 .worksbox .box{
  width: 48%;
  margin: 0px 1% 4% 1%;
 }
}
/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {
  .worksbox{margin-bottom: 40px;}
  .workstxtbox {
    line-height: 1.2;
    font-size: 1.4rem;
    text-align: left;
  }
  .iconbox{margin-bottom: 0px;}
  .iconbox li{padding: 2px;}
  .iconbox li a{
    padding: 2px 5px;
    font-size: 1rem;
  }
  .worksbox .box .txt1{font-size: 1.2rem;}
  .profilebox table th,.profilebox table td{
  font-size: 1.4rem;
  padding: 1em .5em;
  }
  .table_contact th,
  .table_contact td{
  font-size: 1.4rem;
  width: 100%;
    display: block;
  }
  .table_contact th span{
  float: inherit;
  margin-left: 10px;
  }
}


/* 投稿一覧 */
.paging{text-align: center;}
.page-numbers{
  padding: 2px 10px;
}
span.page-numbers{
  background: #eee;
}
a.page-numbers{
  background: #000;
  border: 1px solid #000;
  color: #fff;
}


/* 投稿 */

.articlebox{line-height: 1.4;}
.articlebox figure{
  margin-bottom: 30px!important;
  max-width: 500px;
  height: auto;
}


/* 画面サイズが640px以下の場合に適用 */
@media only screen and (max-width: 640px) {

  .articlebox p{font-size: 0.8em;}
}
/* タグ別一覧 */
.tagtitle{
  padding: 5px 8px;
  margin-bottom: 30px;
  background: #eee;
  font-size: 1.4rem;
}
