@charset "Shift_JIS";

/**
 * default.css
 * updatedAt: 2017.08.25
 */

/*========================================

  Reset

========================================*/
dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,p {margin:0;}
header,footer,nav,article,section{display:block}


/*========================================

  body

========================================*/
body {
  position: relative;
  margin: 0;
  padding: 0;
  min-height: 100%;
  font-family: 'Yu Gothic','YuGothic',sans-serif;
  font-feature-settings : 'palt' 1;
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
}
.letterspace_clfix{
	font-feature-settings :initial;
}
	
.mod--serif {
  font-family: 'Yu Mincho',YuMincho,'',serif;
}

.ie11 .mod--serif {
  font-family:serif;
}

.ie10 .mod--serif, .ie9 .mod--serif, .ie-legacy .serif {
  font-family: '\48\47\53\660E\671D\45',
  '\FF2D\FF33\20\FF30\660E\671D', serif;
}

.mod--img {
  line-height: 0;
}
.mod--img img {
  width: 100%;
  height: auto;
}
.mod--wrapper {
  margin: 0 auto;
  max-width: 1200px;
  width: 93.75%;
}
.mod--wrapper__extend {
  width: 100%;
}
.mod--inner {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 948px;
  width: 93.75%;
}
.mod--inner__extend {
  width: 100%;
}
.mod--wrapper:after,
.mod--inner:after,
.mod--clearfix:after {
  clear: both;
  display: block;
  content: '';
}
a {
  color: #5787f4;
  text-decoration: none;
}
a:hover {
  color: #5787f4;
  text-decoration: underline;
}
a.hover {
  display: inline-block;
  transition: opacity 0.2s;
  -webkit-transition: opacity 0.2s;
}
a.hover:hover {
  opacity: 0.8;
}
a.arrow:before {
  position: relative;
  display: inline-block;
  top: -1px;
  margin: 0 5px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 6px;
  border-color: transparent transparent transparent #5787f4;
  content: '';
}

.b64 { display: none; }
.b48 { display: none; }
.b96 { display: none; }
.nb96 { display: block; }

@media(max-width:960px) {
  .b96 { display: block; }
  .nb96 { display: none; }
  img.b96 { display: inline; }
}
@media(max-width:640px) {
  .mod--wrapper,
  .mod--inner {
    width: 90.625%;
  }
  .mod--wrapper__extend {
    width: 100%;
  }
  .b64 { display: block; }
  .nb64 { display: none; }
  img.b64 { display: inline; }
}
@media(max-width:480px) {
  .b48 { display: block; }
  .nb48 { display: none; }
  img.b48 { display: inline; }
}

@media all and (-ms-high-contrast:none){
  *::-ms-backdrop, span.textfix {
	  display:block;
	  margin-top:2%;
	   } /* IE11 */
	   
  *::-ms-backdrop, span.textfix2 {
	  line-height:1em;
	  vertical-align:sub;
	   } /* IE11 */
}




/*========================================

  .header--

========================================*/
.header--bar {
  line-height: 0;
  background: #000;
}
.header--bar .mod--inner {
  max-width: 1180px;
}
.header--logo {
  display: inline-block;
  padding: 18px 0;
  width: 88px;
}
.header--logo img {
  width: 100%;
  height: auto;
}
.header--txt {
  text-align: center;
  padding: 6.3291% 0;
  font-size: 190%;
  line-height: 1.25;
  letter-spacing: -0.04em;
  color: #333;
}

@media(max-width:1012px) {
  .header--txt {
    font-size: 3.162vw;
  }
}
@media(max-width:640px) {
  .header--txt {
    font-size: 3.5vw;
    line-height: 1.6;
  }
}


/*========================================

  .mainvisual--

========================================*/
.mainvisual {
  margin: 0 auto;
  max-width: 1200px;
  background:#000000;
  background-image: url(../img/mainvisual.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}
.mainvisual--inner {
  position: relative;
  padding-bottom: 452px;
}
.mainvisual--title {
  position: absolute;
  text-align: left;
  top: 50;
  left: 50;
  width: 100%;
  height: 100%;
  font-size: 373.3%;
  font-weight: 500;
  line-height: 0;
  padding: 2em 0em;
}
.mainvisual--title img {
  margin: 9.4936708% 0 1.5822784%;
  width: 46.5189873%;
  height: auto;
}
.mainvisual--title span {
  display: inline-block;
  line-height: 1.17;
  color: #FFF;
  text-shadow: 0 0 18px rgba(0,0,0,0.75),
  0 0 18px rgba(0,0,0,0.75),
  0 0 18px rgba(0,0,0,0.75);
  margin-left: 0.5em;
}

.mainvisual--title .title-sub{
	font-size: 50%;
	display: block;
	margin-bottom: 0.5rem;
	margin-left: 1em;
}

@media(max-width:1012px) {
  .mainvisual--inner {
    padding-bottom: 44.6640316%;
  }
  .mainvisual--title {
    font-size: 6vw;
  }
}
@media(max-width:640px) {
	.mainvisual {
		background-size: 105%;
    background-position: 50px;
}
  .mainvisual--inner {
    padding-bottom: 38%;
  }
  .mainvisual--title {
    font-size: 7vw;
	padding: 1.2em 0em;
  }
  .mainvisual--title img {
    margin: 7% 0 3%;
    width: 70%;
  }
  
  .mainvisual--title span {
  margin-left: 0.25em;
}

.mainvisual--title .title-sub{
	margin-left: 0.5em;
}
  
}

/*========================================

  .underline

========================================*/
.underline {
  position: relative;
  padding-bottom: 3px;
}
.underline:after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: -14%;
  height: 3px;
  width: 128%;
}
.underline--red:after {
  background: #e70000;
  background: -moz-linear-gradient(left, rgba(231,0,0,0) 5%, rgba(231,0,0,1) 30%, rgba(231,0,0,1) 70%, rgba(231,0,0,0) 95%);
  background: -webkit-linear-gradient(left, rgba(231,0,0,0) 5%,rgba(231,0,0,1) 30%,rgba(231,0,0,1) 70%,rgba(231,0,0,0) 95%);
  background: linear-gradient(to right, rgba(231,0,0,0) 5%,rgba(231,0,0,1) 30%,rgba(231,0,0,1) 70%,rgba(231,0,0,0) 95%);
}
.underline--orange:after {
  background: #ff591a;
  background: -moz-linear-gradient(left, rgba(255,89,26,0) 5%, rgba(255,89,26,1) 30%, rgba(255,89,26,1) 70%, rgba(255,89,26,0) 95%);
  background: -webkit-linear-gradient(left, rgba(255,89,26,0) 5%,rgba(255,89,26,1) 30%,rgba(255,89,26,1) 70%,rgba(255,89,26,0) 95%);
  background: linear-gradient(to right, rgba(255,89,26,0) 5%,rgba(255,89,26,1) 30%,rgba(255,89,26,1) 70%,rgba(255,89,26,0) 95%);
}

@media(max-width:640px) {
  .underline:after {
    bottom: -2px;
    height: 2px;
  }
}


/*========================================

  #Intro

========================================*/
#Intro {
  overflow: hidden;
  text-align: center;
  color: #fff;
  background-image: url(../img/intro_bg.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-color: #000;
}
#Intro section {
  margin-top: 10.5485232%;
}
.intro--heading {
  padding: 11% 0 4.5%;
  font-size: 312.5%;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-shadow: 0px 0px 46px rgba(0,0,0,0.9),
    0px 0px 46px rgba(0,0,0,0.9),
    0px 0px 46px rgba(0,0,0,0.9),
    0px 0px 46px rgba(0,0,0,0.9),
    0px 0px 46px rgba(0,0,0,0.9);
}
.intro--heading span {
  font-size: 132.0%;
}
.intro--txt01 {
  font-size: 225%;
  line-height: 2.0;
}
.intro--secTxt {
  font-size: 225%;
  font-weight: 400;
  line-height: 1.4;
}
.intro--01 {
  margin: 2.6371308% 0 0 17.0886075%;
  max-width: 791px;
  width: 83.4388185%;
}
.intro--02 {
  margin: 2.6371308% 0 0 -2.4261603%;
  max-width: 814px;
  width: 85.8649789%;
}
.intro--03 {
  margin: 2.6371308% 0 0 17.0886075%;
  max-width: 772px;
  width: 81.4345991%;
}
.intro--note {
  text-align: right;
  margin: 7.38% 0 13.713%;
  font-size: 100%;
  line-height: 1.4;
}
.intro--txt02 {
  font-size: 225%;
  line-height: 2.0;
}
.intro--txt02 strong {
  display: inline-block;
  margin-top: 5.5%;
  font-size: 200%;
  font-weight: 400;
  line-height: 1.6;
}
.intro--conclusion {
  background-image: url(../img/intro_bg2.png);
  background-repeat: repeat-x;
  background-position: left bottom;
  background-color: #eaeaea;
}
.intro--conclusion__img {
  margin-top: -34.8101265%;
  margin-left: -13.2911392%;
  width: 126.5822784%;
}

.intro--txt03 {
  position: relative;
  z-index: 1;
  margin-top: 2.5em;
  font-size: 300%;
  line-height: 1.6;
}
.intro--txt04 {
  margin-top: -4%;
  padding-bottom: 7.3839%;
  font-size: 450%;
  line-height: 1.6;
  color: #333;
}

@media(max-width:1012px) {
  #Intro {
    background-size: 118.577075% auto;
  }
  .intro--heading {
    font-size: 4.94vw;
  }
  .intro--secTxt {
    font-size: 3.56vw;
  }
  .intro--txt01,
  .intro--txt02 {
    font-size: 3.56vw;
  }
  .intro--txt03 {
    font-size: 4.8vw;
  }
  .intro--txt04 {
    font-size: 7.12vw;
  }
}
@media(max-width:640px) {
  .intro--heading {
    padding: 10% 0 5%;
    font-size: 6.4vw;
  }
  .intro--secTxt {
    font-size: 5.2vw;
  }
  .intro--note {
    text-align: center;
    margin: 10% 0 20%;
    font-size: 3.2vw;
  }
  .intro--txt01 {
    font-size: 4.2vw;
  }
  .intro--txt02 {
    margin-top: 15%;
    font-size: 4.2vw;
  }
  .intro--txt02 strong {
    font-size: 170%;
    line-height: 1.8;
  }
  .intro--txt03 {
    font-size: 7vw;
  }
  .intro--txt04 {
    font-size: 8.2vw;
  }
}


/*========================================

  #Block-01

========================================*/
#Block-01 {
  overflow: hidden;
  text-align: center;
  background-image: url(../img/b01_bg.png);
  background-repeat: repeat-x;
  background-position: center top;
  background-color: #fff;
}
.b01--heading {
  padding: 7.3839% 0 12.65%;
  font-size: 225%;
  line-height: 2.0;
}
.b01--heading span {
  font-size: 222.2%;
  line-height: 1.0;
  color: #ff591a;
}
.b01--text01 {
  font-size: 225%;
  line-height: 1.3;
}
.b01--text01 strong {
  display: inline-block;
  font-size: 200.2%;
}
.b01--text01__basic {
  color: #0c88c8;
}
.b01--text01_spcfix{
	letter-spacing:-5em;
}
.b01--text01__wide {
  color: #ff591a;
  letter-spacing:0.2em;
}
.b01--text02 {
  margin-top: 7.4%;
  font-size: 225%;
  line-height: 1.5;
}
.b01--text02 strong {
  display: inline-block;
  margin-top: 3.5%;
  font-size: 177.8%;
  line-height: 1;
  color: #ff591a;
}
.b01--text02 strong span {
  position: relative;
  padding-top: 3%;
}
.b01--text02 strong span:after {
  position: absolute;
  display: block;
  top: 0;
  left: 50%;
  margin-left: -7.5px;
  width: 15px;
  padding-bottom: 15px;
  background: #ff591a;
  border-radius: 50%;
  content: '';
}

@media(max-width:1012px) {
  .b01--heading {
    font-size: 3.56vw;
  }
  .b01--text01 {
    font-size: 3.0vw;
  }
  .b01--text02 {
    font-size: 3.56vw;
  }
  .b01--text02 strong span:after {
    margin-left: -0.74vw;
    width: 1.48vw;
    padding-bottom: 1.48vw;
  }
}
@media(max-width:640px) {
  .b01--heading {
    padding-top: 16%;
    font-size: 4.5vw;
    line-height: 2.4;
  }
  .b01--text01 {
    font-size: 4.8vw;
    line-height: 1.6;
  }
  .b01--text01 strong {
    font-size: 145%;
  }
  .b01--text01_spcfix{
	letter-spacing:-0.15em;
@}
  .b01--text02 {
    margin-top: 10%;
    font-size: 5vw;
    line-height: 1.7;
  }
  .b01--text02 strong {
    margin-top: 5%;
  }
  .b01--text02 strong span:after {
    margin-left: -1vw;
    width: 2vw;
    padding-bottom: 2vw;
  }
}


/*----------------------------------------
  .b01--type
----------------------------------------*/
.b01--type {
  padding: 5.2742616%;
}
.b01--type__title {
  text-align: center;
  padding: 0.4em;
  font-size: 262.5%;
  line-height: 1.0;
  color: #fff;
}
.b01--type__title span {
  font-weight: 700;
}
.b01--type__txt {
  font-size: 31px;
  font-weight: 700;
  line-height: 1.56;
}

@media(max-width:1012px) {
  .b01--type__title {
    font-size: 4.15vw;
  }
  .b01--type__txt {
    font-size: 3.162vw;
  }
}
@media(max-width:640px) {
  .b01--type__title {
    font-size: 5.8vw;
    line-height: 1.2;
  }
  .b01--type__txt {
    font-size: 4.4vw;
  }
}

/*----------------------------------------
  .b01--basic
----------------------------------------*/
.b01--basic {
  margin-top: 4.22%;
  background: #e9f8ff;
}
.b01--basic__title {
  background: #0c88c8;
}
.b01--basic__box {
  margin-top: 2.36%;
  font-size: 0;
}
.b01--basic__icnBox {
  display: inline-block;
  vertical-align: middle;
  width: 21.6981132%;
}
.b01--basic__txtBox {
  display: inline-block;
  vertical-align: middle;
  text-align: left;
  margin: 4% 0 0 5%;
}

@media(max-width:640px) {
  .b01--basic {
    margin-top: 8%;
  }
  .b01--basic__box {
    margin-top: 6%;
  }
  .b01--basic__icnBox {
    width: 36%;
  }
  .b01--basic__txtBox {
    text-align: center;
    margin: 6% 0 0;
  }
}

/*----------------------------------------
  .b01--wide
----------------------------------------*/
.b01--wide {
  margin-top: 9%;
  background: #ffe3d9;
}
.b01--wide__title {
  background: #ff591a;
}
.b01--wide__box {
  padding: 3% 0 5.9%;
  font-size: 0;
  list-style: none;
}
.b01--wide__box li {
  position: relative;
  display: inline-block;
  vertical-align: bottom;
  margin: 3% 0 0 8.726415%;
  width: 26.5330188%;
}
.b01--wide__box li:nth-child(3n+1) {
  margin-left: 0;
}
.b01--wide__box li:first-child:after {
  position: absolute;
  top: 50%;
  margin-top: -11.5556%;
  margin-left: 5.3334%;
  padding-bottom: 23.1112%;
  width: 23.1112%;
  background-image: url(../img/b01_wide_icn.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  content: '';
}
.b01--wide__txt {
  margin-top: 2%;
  font-size: 300%;
  font-weight: 700;
  line-height: 1.2;
  color: #ff591a;
}

@media(max-width:1012px) {
  .b01--wide__txt {
    font-size: 4.74vw;
  }
}
@media(max-width:640px) {
  .b01--wide__box {
    padding: 1% 0 8%;
  }
  .b01--wide__box li,
  .b01--wide__box li:nth-child(3n+1) {
    margin: 6% 0 0 12%;
    width: 36%;
  }
  .b01--wide__box li:nth-child(2n+1) {
    margin-left: 0;
  }
  .b01--wide__box li:first-child:after {
    margin: -10% 0 0 5%;
    padding-bottom: 20%;
    width: 20%;
  }
  .b01--wide__txt {
    font-size: 6.5vw;
  }
}


/*========================================

  #Block-02

========================================*/
#Block-02 {
  overflow: hidden;
}
.b02--heading {
  padding-top: 8.44%;
  text-align: center;
  font-size: 262.5%;
  font-weight: 400;
}
.b02--text01 {
  margin-top: 5.27%;
  padding-bottom: 2%;
  text-align: center;
  font-size: 225%;
  font-weight: 700;
  line-height: 1.6;
  color: #ff591a;
}
.b02--text01 span {
  display: inline-block;
  margin-top: 1%;
  font-size: 155.6%;
  font-weight: 400;
  line-height: 1;
  color: #333;
  letter-spacing:-0.05em;
}

@media(max-width:1012px) {
  .b02--heading {
    font-size: 4.15vw;
  }
  .b02--text01 {
    font-size: 3.56vw;
  }
  .b02--text01 span {
    font-size: 140%;
  }
}
@media(max-width:640px) {
  .b02--heading {
    padding-top: 12%;
    font-size: 5.2vw;
    letter-spacing: -0.04em;
  }
  .b02--text01 {
    margin-top: 8%;
    font-size: 5vw;
  }
  .b02--text01 span {
    font-size: 140%;
    line-height: 1.4;
  }
}

/*----------------------------------------
  .b02--example
----------------------------------------*/
.b02--example {
  position: relative;
  margin: 3.8% auto 0;
  padding-bottom: 4.54%;
  font-size: 0;
  background: #dbe0e4;
}
.b02--example:after {
  position: absolute;
  bottom: 0;
  left: 50%;
  margin: 0 0 -27px -27px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 27px 27px 0 27px;
  border-color: #dbe0e4 transparent transparent transparent;
  content: '';
}
.b02--example__item {
  position: relative;
  display: inline-block;
  vertical-align: bottom;
  width: 50%;
}
.b02--example__item:last-child:before {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2px;
  height: 90%;
  background: #fff;
  content: '';
}
img.b02--example__01 {
  margin: 0 0 8.4388185% 7.8059071%;
  max-width: 386px;
  width: 81.4345991%;
}
img.b02--example__02 {
  margin: 3.3755274% 0 0 6.1181434%;
  max-width: 393px;
  width: 82.9113924%;
}
.b02--example__txt {
  text-align: center;
  font-size: 32px;
  line-height: 1.25;
}

@media(max-width:1012px) {
  .b02--example:after {
    margin: 0 0 -20px -20px;
    border-width: 20px 20px 0 20px;
  }
  .b02--example__txt {
    font-size: 3.16vw;
  }
}
@media(max-width:640px) {
  .b02--example {
    box-sizing: border-box;
    padding: 0 3%;
    width: 82%;
  }
  .b02--example:after {
    margin: 0 0 -16px -16px;
    border-width: 16px 16px 0 16px;
  }
  .b02--example__item {
    display: block;
    text-align: center;
    padding: 12% 0;
    width: auto;
  }
  .b02--example__item:last-child:before {
    top: 0;
    bottom: auto;
    left: 6%;
    width: 88%;
    height: 2px;
  }
  img.b02--example__01,
  img.b02--example__02 {
    margin: 0;
  }
  .b02--example__txt {
    margin-top: 6%;
    font-size: 5.2vw;
  }
}


/*========================================

  #Block-03

========================================*/
#Block-03 {
  overflow: hidden;
}
.b03--heading {
  text-align: center;
  padding: 9.5% 0;
  font-size: 300%;
  font-weight: 400;
  line-height: 1.0;
}
.b03--note {
  text-align: right;
  margin-top: 3.16%;
  font-size: 100%;
  line-height: 1.4;
}
.b03--text01 {
  text-align: center;
  margin-top: 6.33%;
  padding-bottom: 1%;
  font-size: 350%;
  line-height: 1.4;
}

@media (max-width:1012px) {
  .b03--heading {
    font-size: 4.74vw;
  }
  .b03--text01 {
    font-size: 5.53vw;
  }
}
@media (max-width:640px) {
  .b03--heading {
    padding: 15% 0 0;
    font-size: 8vw;
  }
  .b03--note {
    text-align: center;
    font-size: 3.2vw;
  }
  .b03--text01 {
    margin-top: 10%;
    font-size: 6.6vw;
  }
}

/*----------------------------------------
  .b03--line
----------------------------------------*/
.b03--lineBox {
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto 100%;
}
.b03--line {
  position: relative;
}
.b03--line__txt {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 2.8481012%;
  font-size: 0;
}
.b03--line__txt:before {
  display: inline-block;
  vertical-align: middle;
  width: 0;
  height: 100%;
  background: #ff0000;
  content: '';
}
.b03--line__txt p {
  display: inline-block;
  vertical-align: middle;
  font-size: 36px;
  line-height: 1.39;
}

.b03--line__01 {
  background-image: url(../img/b03_line_01bg.jpg);
}
.b03--line__01--img {
  float: right;
  margin-right: -12.5527426%;
  padding: 4.43% 0 2.8481%;
  width: 77.742616%;
}

.b03--line__02 {
  background-image: url(../img/b03_line_02bg.jpg);
}
.b03--line__02--txt {
  left: 71.4135%;
}
.b03--line__02--img {
  float: left;
  margin-left: -6.4345991%;
  padding: 2.63713% 0 2.742616%;
  width: 72.4683544%;
}

.b03--line__03 {
  background-image: url(../img/b03_line_03bg.jpg);
}
.b03--line__03--img {
  float: right;
  margin-right: -8.0168776%;
  padding: 2% 0 2.6371308%;
  width: 74.578059%;
}

@media (max-width:1012px) {
  .b03--line__txt p {
    font-size: 3.1vw;
  }
  .b03--line__01--img,.b03--line__03--img {
	  padding-right:10%;
  }
  .b03--line__02--img{
	  padding-left:5%;
  }
}
@media (max-width:640px) {
  .b03--lineBox {
    margin-top: 6%;
  }
  .b03--line {
    text-align: center;
    padding: 4% 0;
  }
  .b03--line__01,
  .b03--line__02 {
    background-position: right top a(5);
  }
  .b03--line__02 {
    background-position: left top;
  }
  .b03--line__txt {
    position: static;
    display: inline-block;
    text-align: left;
    margin: 0 auto;
    font-size: 0;
  }
  .b03--line__txt p {
    font-size: 6.6vw;
    text-shadow: 0 0 24px rgba(255,255,255,1),
      0 0 24px rgba(255,255,255,1),
      0 0 24px rgba(255,255,255,1);
  }
  .b03--line__img {
    float: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    width: 100%;
  }
}


/*========================================

  #Block-04

========================================*/
.b04--heading {
  text-align: center;
  font-size: 362.5%;
  font-weight: 400;
  line-height: 2.5;
}
.b04--heading em {
  display: inline-block;
  padding: 14.77% 0 10%;
  font-size: 82.8%;
  font-style: normal;
  line-height: 1.0;
}
.b04--heading strong {
  display: inline-block;
  margin-top: 3.5%;
  font-size: 137.9%;
  line-height: 1.0;
  color: #ff591a;
}
.b04--heading strong span {
  position: relative;
  padding-top: 3%;
}
.b04--heading strong span:after {
  position: absolute;
  display: block;
  top: 0;
  left: 50%;
  margin-left: -7.5px;
  width: 15px;
  padding-bottom: 15px;
  background: #ff591a;
  border-radius: 50%;
  content: '';
}
.b04--txt01 {
  position: relative;
  text-align: center;
  margin-top: 8.44%;
  padding: 0.889em;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.0;
  color: #fff;
  border-radius: 5px;
  background: #ff591a;
}

.b04--txt01:after {
  position: absolute;
  bottom: -20px;
  left: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 22.5px 0 22.5px;
  border-color: #ff591a transparent transparent transparent;
  content: '';
}
.b04--txt02 {
  text-align: center;
  margin-top: 5.27%;
  font-size: 58px;
  line-height: 1.0;
}
.b04--txt03 {
  text-align: center;
  margin-top: 4.22%;
  padding: 0.4723em;
  font-size: 36px;
  line-height: 1.0;
  letter-spacing: 0.04em;
  border: 2px solid #a8a8a8;
}
.b04--txt03 span.type--namber {
  display: inline-block;
  vertical-align: middle;
  font-size: 166.7%;
  line-height: 0;
  color: #ff591a;
}
.b04--txt04 {
  text-align: center;
  margin-top: 8.44%;
  font-size: 0;
}
.b04--txt04 span {
  display: inline-block;
  vertical-align: middle;
  font-size: 36px;
  line-height: 1;
}
.b04--gmaster {
  margin-right: 3.16%;
  width: 17.5105485%;
}
.b04--glens {
  margin-right: 3.16%;
  width: 19.1983122%;
}
.b04--zeiss {
  margin-right: 2.11%;
  width: 24.3670886%;
}
.b04--txt05 {
  text-align: center;
  margin-top: 1%;
  font-size: 58px;
  line-height: 1.8;
}

.b04--txt06 {
  list-style: none;
  text-align: left;
  padding-left: 9%;
}

.b04--txt06 li{
	margin-top:7%;
}

.b04--txt06 li p {
	padding: 0.4em 0.5em 0.5em 0.5em;
    font-weight: 600;
	text-align:center;
	vertical-align: middle;
	line-height: 1.1;
	display: inline-block;
}

.b04--txt06 li p span.type--name{
	font-size:1.4em;
}

.b04--box_basic{
    font-size: 1.85em;
	width:35%;
    background: #0c88c8;
	color: #FFF;
	margin-right: 1.5%;
}

.b04--box_wide{
    font-size: 1.85em;
	width:35%;
    background: #ff591a;
	color: #FFF;
	margin-right: 1.5%;
}

.b04--box_members{
	vertical-align: super;
    font-size: 1.6em;
}

.b04--box_basic span.type--name{
	letter-spacing:-0.05em;
}

.b04--box_wide span.type--name{
	letter-spacing:0.2em;
}

.b04--txt_red{
	color:#ec0000;
}

.b04--arrow img{
	width:10%;
}

.b04--year{
	font-size: 1.5em !important;
	letter-spacing:0 !important;
}

.b04--member{
	font-size: 1.85em !important;
	line-height: 1;
}

.b04--note {
	text-align: right;
    margin-top: 6%;
    font-size: 100%;
    line-height: 1.4;
}


@media (max-width:1012px) {
  .b04--heading {
    font-size: 5.73vw;
  }
  .b04--heading strong span {
    padding-top: 4.5%;
  }
  .b04--heading strong span:after {
    margin-left: -0.74vw;
    width: 1.48vw;
    padding-bottom: 1.48vw;
  }
  .b04--txt01 {
    font-size: 3.56vw;
  }
  .b04--txt01:after {
    bottom: -16px;
    border-width: 16px 20px 0 20px;
  }
  .b04--txt02,
  .b04--txt05 {
    font-size: 5.73vw;
  }
  .b04--txt03,
  .b04--txt04 span {
    font-size: 3.56vw;
  }
  .b04--txt06 {
    padding:0;
  }
  .b04--box_basic,.b04--box_wide{
    font-size: 3.5vw;
  }
  .b04--box_members{
    font-size: 3vw;
  }
}
@media (max-width:640px) {
  .b04--heading strong {
    margin-top: 7%;
    font-size: 150%;
  }
  .b04--heading strong span {
    padding-top: 7%;
  }
  .b04--heading strong span:after {
    margin-left: -1vw;
    width: 2vw;
    padding-bottom: 2vw;
  }
  .b04--txt01 {
    padding: 0.4em;
    font-size: 6vw;
    line-height: 1.2;
  }
  .b04--txt01:after {
    bottom: -12px;
    border-width: 12px 16px 0 16px;
  }
  .b04--txt02 {
    margin-top: 8%;
    font-size: 6.4vw;
  }
  .b04--txt03 {
    margin-top: 7%;
    font-size: 5.8vw;
    border-width: 1px;
  }
  .b04--txt05 {
    margin-top: 3%;
  }
  .b04--txt06 li{
	margin-top:10%;
  }
  .b04--box_basic,.b04--box_wide{
    font-size: 3.1vw;
  }
  .b04--box_members{
    font-size: 2.8vw;
  }
}
/*----------------------------------------
  .b04--type
----------------------------------------*/
.b04--type {
  margin-top: 3.69%;
  padding: 0;
  font-size: 0;
  list-style: none;
}
.b04--type li {
  display: inline-block;
  vertical-align: top;
  margin-left: 4.113924%;
  width: 30.5907172%;
}
.b04--type li:first-child {
  margin-left: 0;
}

@media (max-width:640px) {
  .b04--type li {
    margin-left: 2%;
    width: 32%;
  }
}

/*----------------------------------------
  .b04--example
----------------------------------------*/
.b04--example {
  margin: 14.35% auto 0;
  width: 96.7299578%;
  background-image: url(../img/b04_example_bg.png);
  background-position: left top;
}
.b04--example__heading {
  text-align: center;
  padding: 0.639em;
  font-size: 36px;
  line-height: 1.0;
  color: #fff;
  background: #333;
}
.b04--example__img {
  margin: 6.870229% auto 0;
  width: 42.8571428%;
}
.b04--example__txt {
  text-align: center;
  margin-top: 2.18%;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
.b04--example__box {
  text-align: center;
  padding: 7% 0 3.82%;
  font-size: 0;
  list-style: none;
}
.b04--example__box li {
  display: inline-block;
  margin-left: 0.87241%;
  width: 30.5343511%;
}
.b04--example__box li:first-child {
  margin-left: 0;
}

@media (max-width:1012px) {
  .b04--example__heading {
    font-size: 3.56vw;
  }
  .b04--example__txt {
    font-size: 2.77vw;
  }
}
@media (max-width:640px) {
  .b04--example {
    width: auto;
  }
  .b04--example__heading {
    padding: 0.4em;
    font-size: 5.4vw;
    line-height: 1.3;
  }
  .b04--example__img {
    width: 65%;
  }
  .b04--example__txt {
    font-size: 4.4vw;
  }
}


/*========================================

  #Service

========================================*/
.service--heading__box {
  background-image: url(../img/service_heading.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}
.service--heading {
  text-align: center;
  margin-top: 14.14%;
  padding: 1.34em 0;
  font-size: 48px;
  font-weight: 400;
  line-height: 1.25;
  color: #fff;
}
.service--item {
  margin-top: 10.55%;
  font-size: 0;
}
.service--item__ttl {
  text-align: center;
  margin-bottom: 5.27%;
  font-size: 40px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing:-0.05em;
}
.service--item__img {
  display: inline-block;
  vertical-align: middle;
  width: 39.4514767%;
}
.service--item__txt {
  display: inline-block;
  vertical-align: middle;
  margin-left: 4.2194092%;
  width: 52%;
}
.service--item__txt strong {
  display: block;
  font-size: 28px;
  line-height: 1.2;
  color: #ff591a;
}
.service--item__txt p {
  margin-top: 1.5%;
  font-size: 20px;
  line-height: 1.75;
  color: #616161;
}
.service--item__txt a {
  display: inline-block;
  margin-top: 1.5%;
  font-size: 20px;
  line-height: 1.75;
}
.service--item__txt a:before {
  position: relative;
  display: inline-block;
  margin: 0 5px 0 3px;
  padding-bottom: 20px;
  width: 15px;
  background-image: url(../img/arrow.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  content: '';
}
.service--item__txt em {
  display: block;
  text-align: right;
  font-size: 48px;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: -0.05em;
}
.service--item__txt em span {
  display: inline-block;
  text-align: left;
}
img.service--item__img--04 {
  margin-left: -8.0213903%;
  width: 113.6363636%;
}
.service--item__txt--04 {
  width: 54%;
}
.service--detail {
  text-align: center;
  margin: 8% 0 12.66%;
  font-size: 32px;
  line-height: 1.0;
}
.service--detail a {
  padding-bottom: 4px;
  border-bottom: 2px solid #5787f4;
  text-decoration: none;
}
.service--detail a:hover {
  border: none;
}
.service--detail a:before {
  position: relative;
  display: inline-block;
  margin: 0 5px 0 3px;
  padding-bottom: 30px;
  width: 20px;
  background-image: url(../img/arrow.svg);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  content: '';
}

@media (max-width:1012px) {
  .service--heading {
    font-size: 4.74vw;
  }
  .service--item__ttl {
    font-size: 3.8vw;
  }
  .service--item__txt strong {
    font-size: 2.77vw;
  }
  .service--item__txt p,
  .service--item__txt a {
    font-size: 1.98vw;
  }
  .service--item__txt a:before {
    padding-bottom: 2vw;
    width: 2vw;
  }
  .service--item__txt em {
    font-size: 4.54vw;
  }
  .service--detail {
    font-size: 3.16vw;
  }
  .service--detail a:before {
    padding-bottom: 2.5vw;
    width: 2vw;
  }
}
@media (max-width:640px) {
  .service--heading {
    margin-top: 20%;
    padding: 1.0em 0;
    font-size: 5.8vw;
    line-height: 1.4;
  }
  .service--item {
    margin-top: 15%;
  }
  .service--item__ttl {
    font-size: 5.4vw;
    letter-spacing: -0.04em;
  }
  .service--item__img {
    display: block;
    width: auto;
  }
  
  .service--item__txt {
    display: block;
    margin: 5% auto 0;
    width: 92%;
  }
  .service--item__txt strong {
    font-size: 5.2vw;
  }
  .service--item__txt p,
  .service--item__txt a {
    font-size: 4.2vw;
  }
  .service--item__txt a:before {
    padding-bottom: 3.5vw;
    width: 3.5vw;
  }
  img.service--item__img--04 {
    display: block;
    margin: 0 auto;
    width: 90%;
  }
  .service--item__txt--04 {
    width: auto;
  }
  .service--item__txt em {
    text-align: center;
    font-size: 7vw;
  }
  .service--detail {
    margin: 12% 0 20%;
    font-size: 5.4vw;
  }
  .service--detail a:before {
    padding-bottom: 3.5vw;
    width: 3vw;
  }
}


/*========================================

  .sign--

========================================*/
.sign-- {
  padding-bottom: 100px;
  padding-top: 100px;
}
.sign--txt01 {
  text-align: center;
  margin: 16.88% 0 5.27%;
  font-size: 36px;
  line-height: 2.22;
}
.sign--txt02 {
  text-align: center;
  margin: 12.66% 0 5.27%;
  font-size: 36px;
  line-height: 1.66;
}
.sign--btn {
  position: relative;
  display: block;
  box-sizing: border-box;
  text-align: center;
  margin: 0 auto;
  padding: 1.5em;
  width: 59.282%;
  color: #fff;
  background-color: #5787f4;
  transition: background-color 0.2s !important;
}
.sign--btn:hover {
  color: #fff;
  text-decoration: none;
  background-color: #4171df;
}
.sign--btn strong {
  display: inline-block;
  font-size: 31px;
  line-height: 1.0;
}
.sign--btn p {
  margin-top: 1.6%;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.0;
}
.sign--btn:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 25px;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px 0 10px 16px;
  border-color: transparent transparent transparent #fff;
  content: '';
}

@media (max-width:1012px) {
  .sign--txt01,
  .sign--txt02 {
    font-size: 3.56vw;
  }
  .sign--btn strong {
    font-size: 3.06vw;
  }
  .sign--btn p {
    font-size: 1.78vw;
  }
  .sign--btn:before {
    left: 20px;
    border-width: 8px 0 8px 14px;
  }
}
@media (max-width:640px) {
  .sign--txt01 {
    font-size: 5.6vw;
    line-height: 1.8;
  }
  .sign--txt02 {
    font-size: 5.6vw;
    line-height: 1.6;
  }
  .sign--btn {
    width: 94%;
  }
  .sign--btn strong {
    font-size: 5.6vw;
  }
  .sign--btn p {
    font-size: 3.4vw;
  }
  .sign--btn:before {
    left: 16px;
    border-width: 7px 0 7px 12px;
  }
}

/*========================================

  footer

========================================*/

.footer {
  margin-top: 0px;
  padding: 30px 0 60px;
  border-top: 1px solid #dbdbdb;
}
.footer_copyright {
  display: block;
  font-size: 10px;
  padding-left: 100px;
  line-height: 1.0;
}


footer .questionnaire {
  text-align: center;
  color: #fff;
  padding: 5.25%;
  background: #aebdc9;
}
footer strong {
  display: block;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.6;
}
footer p {
  margin-top: 5px;
  font-size: 20px;
  line-height: 1.6;
}
footer a {
  display: block !important;
  text-align: center;
  margin: 25px auto 0;
  padding: 14px 0;
  max-width: 440px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  text-decoration: none;
  background: #5787f4;
}
footer a:hover {
  color: #fff;
  text-decoration: none;
}
footer small {
  display: block;
  margin-top: 40px;
  padding-bottom: 20px;
  font-size: 12px;
  line-height: 1.6;
}

@media(max-width:960px) {
  footer strong {
    font-size: 2.7vw;
  }
  footer p {
    font-size: 2.08vw;
  }
  footer a {
    font-size: 2.08vw;
  }
}
@media(max-width:640px) {
  footer strong {
    font-size: 4.4vw;
  }
  footer p {
    font-size: 4.0vw;
  }
  footer a {
    font-size: 4.6vw;
  }
  footer small {
    margin-top: 20px;
  }
  .footer_copyright {
  padding-left: 0px;
}
