/*  
  Theme Name: 株式会社ITKワークスのテーマ
  Theme URI: 
  Description: 株式会社ITKワークスのテーマ
  Version: 1.0.0
*/

@import url(//fonts.googleapis.com/earlyaccess/notosansjp.css);

/* Base Layout CSS */
html, body {
  margin: 0;
  padding: 0;
}
body {
  font-size: 13px;
  font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
  line-height: 180%;
  /* letter-spacing: 2.4pt;*/
  letter-spacing: 1.2pt;
  color: #333;
  -webkit-text-size-adjust: 100%;
}

a:not(.btn) {
  transition: .4s;
}
a:not(.btn):hover {
  padding-left: 3px;
}
img {
  max-width: 100%;
  height: auto;
}
a:hover img {
  -moz-opacity:0.65;
  opacity:0.65;
  filter:alpha(opacity=65);
}
img, a:link img, a:visited img {
  border:0;
  vertical-align:bottom;
}
hr {
  margin: 50px 0;
  border: none;
  display: block;
  height: 2px;
  background-color: #E2E2E2;
}
address {
  font-style: normal;
}
figcaption {
  text-align: center;
}

.gothic {
  font-family: "游ゴシック", YuGothic, 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
}
.minchou {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* 反転時の色 ------------------------------------- */
::selection {
  background: #444;
  color: #fff;
}
/* Firefoxに対応 ------------------------------------- */
::-moz-selection {
  background: #444;
  color: #fff;
}



/* header ------------------------------------ */
#header {
  color: #fff;
  position: relative;
  z-index: 10;
}
#header.white {
  color: #333;
}
#header:before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  min-height: 100vh;
  min-height: calc(var(--vh, 1vh) * 100);
  background: url(bg-header.jpg) no-repeat center center #fff;
  background-size: cover;
}
body.home #header:before {
  /*background: url(bg-header.jpg) no-repeat center center #fff;*/
  background: url(bg-header.jpg) no-repeat center 90% #fff;
  background-size: cover;
}

#header .wrap {
  width: 50%;
  height: 250px;
  margin-left: 7%;
  padding-top: 80px;

  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: left;
  -ms-flex-align: left;
  -webkit-align-items: left;
  align-items: left;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  z-index: 20;
}
body.home #header .wrap {
  min-height: 100vh;
  min-height: calc(var(--vh, 1vh) * 100);
  padding-top: 0;
  /*padding-top: 80px;*/
  padding-bottom: 100px;

  -webkit-box-pack: end;
  -ms-flex-pack: end;
  -webkit-justify-content: end;
  justify-content: end;
}

#header a {
  color: #fff;
  text-decoration: none;
}
#header.white a {
  color: #333;
}
#header h1 {
  font-size: 150%;
  margin: 0;
}
#header h1 small {
  font-size: 75%;
  margin-right: 5px;
}
#header h1 span {
  display: block;
  font-size: 75%;
  color: #ccc;
  font-style: italic;
}
#header em {
  color: #ccc;
  font-style: italic;
}
#header.white h1 span, #header.white em {
  color: #666;
}
#header p {
  margin: 0;
}
#header address {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #B22D00;
  text-align: right;
}
#header address .tel {
  font-size: 150%;
  font-style: italic;
  /* font-weight: bold; */
}
#header hgroup {
  display: flex;
  -webkit-align-items: flex-end;    /* Safari etc. */
  -ms-align-items    : flex-end;    /* IE10        */
  align-items        : flex-end;
}
#header hgroup .logo {
  max-width: 120px;
  margin-right: 15px;
}

@media (max-width:767px){
  #header:before{
    background: url(bg-header.jpg) no-repeat center 20% #fff;
    background-size: 100%;
  }
  #header .wrap {
    width: 94%;
    margin-left: 3%;
  }
  #header address {
    font-size: 80%;
  }
  #header hgroup {
    display: inline;
  }
  #header hgroup .logo {
    max-width: 150px;
  }
  body.home #header .wrap {
    padding-top: 320px;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    -webkit-justify-content: start;
    justify-content: start;
  }
  body.home #header .wrap {
    padding-top: 250px;
  }
}



/* scrolldown ------------------------------------ */
.scrolldown {
  position: absolute;
  bottom: 1%;
  right: 50%;
  animation: arrowmove 1s ease-in-out infinite;
  z-index: 15;
}
.scrolldown:hover {
  cursor: pointer;
}

@keyframes arrowmove {
    0%{bottom: 1%;}
   50%{bottom: 3%;}
  100%{bottom: 1%;}
}

.scrolldown span {
  position: absolute;
  left: -23px;
  bottom: 10px;
  color: #eee;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  word-break: normal;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

.scrolldown:before {
  content: "";
  position: absolute;
  bottom: 0;
  right: -6px;
  width: 1px;
  height: 20px;
  background: #eee;
  transform: skewX(-31deg);
}

.scrolldown:after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 1px;
  height: 50px;
  background: #eee;
}

#header.white .scrolldown:before,
#header.white .scrolldown:after {
  background: #737373;
}
#header.white .scrolldown span {
  color: #737373;
}



/* navi ------------------------------------ */
#navi {
  width: 100%;
  height: 70px;
  padding: 10px 30px;
  /* background-color: #14347c; */
  background-color: #222;
  color: #fff;
  margin-top: -15px;
  opacity: 0;
  transition: .8s;
}
#navi.fixed {
  position: fixed;
  top: 0;
  z-index: 30;
  margin-top: 0;
  opacity: 1;
  transition: .8s;
}
#navi .logo {
  float: left;
}
#navi .logo a {
  color: #fff;
  text-decoration: none;
}
#navi ul {
  float: right;
  text-align: right;
  list-style: none;
  margin: 0;
  padding: 0;
}
#navi ul li {
  display: inline-block;
  padding: 15px 20px;
  font-size: 110%;
}
#navi ul li a {
  color: #fff;
  text-decoration: none;
}
#navi a {
  position: relative;
}
#navi a:hover {
  padding-left: 0;
}
#navi a:before,
#navi a:after {
  position: absolute;
  top: 25px;
  content: "";
  display: inline-block;
  width: 0;
  height: 3px; 
  background: #F30034;
  transition: 0.5s;
}
#navi a:before {
  left: 50%;
}
#navi a:after {
  right: 50%;
}
#navi a:hover:before,
#navi a:hover:after {
  width: 50%;
}

@media (max-width:767px){
  #navi {
    padding: 10px;
  }
  #navi .logo {
    font-size: 16px;
  }
  #navi ul {
    display: none;
  }
}



/* main ------------------------------------ */
#main {
  position: relative;
  z-index: 20;
  background: #eee;
  padding: 30px 0 10px;
  min-height: calc( 100vh - 282px );
}
#main .wrap {
  width: 94%;
  max-width: 1200px;
  margin: 0 auto;
}
#main .wrap.small {
  max-width: 900px;
}
.content-block-column {
  opacity : 0;
  transform: translateY(30px);
  transition: 1s;
}



/* footer ------------------------------------ */
#footer {
}
#footer .copyright {
  text-align: right;
  font-size: 80%;
  color: #999;
}
#page-top {
  position: fixed;
  right: 5px;
  bottom: 20px;
  height: 50px;
  text-decoration: none;
  font-weight: bold;
  transform: rotate(90deg);
  font-size: 90%;
  line-height: 1.5rem;
  color: #737373;
  padding: 0 0 0 35px;
  border-top: solid 1px;
}
#page-top::before {
  content: "";
  display: block;
  position: absolute;
  top: -1px;
  left: 0px;
  width: 15px;
  border-top: solid 1px;
  transform: rotate(35deg);
  transform-origin: left top;
}



/* page ------------------------------------ */
#topics {
  background-color: #fbf0f5;
  border: 1px solid #fcafd2;
  padding: 15px;
}
#topics .entry-title {
  padding-top: 10px;
  margin-bottom: 30px;
}
#topics .entry-body {
  margin-bottom: 15px;
}

#news ul li {
  padding-bottom: 5px;
  margin-bottom: 5px;
}
#news ul li .date {
  display: inline-block;
  width: 100px;
}
#news ul li .comment {
  display: inline-block;
}
#news ul li.more {
  list-style: none;
  text-align: right;
}

#page-information .entry-body {
  padding-bottom: 50px;
  border-bottom: 1px solid #ddd;
}

#catchcopy {
  margin-top: 80px;
  margin-bottom: 80px;
  text-align: center;
  font-size: 180%;
  font-weight: bold;
  line-height: 200%;
}
#catchcopy strong {
  font-weight: bold;
}
@media (max-width:767px){
  #catchcopy {
    font-size: 140%;
  }
}

.profile-block {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-gap: 15px;
  row-gap: 20px;
  justify-content: space-between;
  margin: 30px 0;
}
.profile-block .profile-item {
  border: 1px solid #ccc;
  padding: 10px;
}
.profile-block .profile-item h2:first-child {
  margin-top: 0;
}
.profile-block .profile-item img {
  max-width: 100%;
}
.imagehover, a[rel=attachment] {
  overflow: hidden;
  width: 100%;
}
.imagehover img, a[rel=attachment] img {
  transition: .5s;
}
.imagehover img:hover, a[rel=attachment] img:hover {
  /*transform: scale(1.1, 1.1); */
  transform: scale(1.1, 1.1) rotateZ(3deg);
}
.service-list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 15px;
  row-gap: 20px;
  justify-content: space-between;
  margin: 30px 0;
}
@media (max-width:767px){
  .profile-block,
  .service-list {
    grid-template-columns: 1fr;
  }
}
.service-list .service-item {
  border: 1px solid #ccc;
  padding: 10px;
}

.flip-scroll {
  opacity: 0;
}
.flip {
  animation-name: flipAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes flipAnime{
  from {
    transform: translate(-20px,80px) rotate(-15deg);
    opacity: 0;
  }
  to {
    transform: translate(0,0) rotate(0deg);
    opacity: 1;
  }
}
.fadeup-scroll {
  opacity: 0;
}
.fadeup {
  animation-name: fadeUpAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeUpAnime{
  from {
    transform: translateY(50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}



.entry {
  margin-bottom: 50px;
}
.entry-title {
  padding-top: 50px;
  text-align: center;
  margin-bottom: 80px;
}
.entry-body {
  margin-bottom: 50px;
}

.label {
  display: inline-block;
  padding: 3px 20px;
  background-color: #b53b3b;
  color: #fff;
  border-radius: 5px;
}

table {
  width: 100%;
  margin: 10px 0;
}
table th, table td {
  border: 1px solid #999;
  padding: 12px 8px;
}
table th {
  background-color: #eee;
}
table td {
  background-color: #fff;
}

form table th {
  white-space: nowrap;
}


.table-outline table {
  width: 100%;
}
.table-outline table th {
  white-space: nowrap;
  width: 25%;
}
.table-outline table td {
  width: 75%;
}
@media (max-width:767px){
  .table-outline table th, .table-outline table td {
    display: block;
    width: 100%;
  }
}


input:not([type=submit]), textarea {
  width: 100%;
  padding: 5px;
  display: block;
}
textarea {
  height: 200px;
}
button, input[type=submit], input[type=button] {
  padding: 8px 30px;
  min-width: 150px;
  display: block;
  margin: 0 auto;
}



/* common ------------------------------------ */
.w20, .w40, .w60, .w80 { margin-left: auto; margin-right: auto; }
.w20 { width: 20%; margin-left: auto; margin-right: auto; }
.w40 { width: 40%; }
.w60 { width: 60%; }
.w80 { width: 80%; }
.w100 { width: 100%; }

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-blue { color: #2D00B2; }
.text-red { color: #B22D00; }
.text-green { color: #2D9235; }
