@charset utf-8;

/* -------------------------------------------
 * initialize
 */

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}


article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display:block;
}

ul li {
  list-style: none;
}

input, select {
  vertical-align: middle;
}

.hide {
  display: none;
}

.clear {
  clear: both;
}

.clearfix:before, .clearfix:after{content:""; display:table;}
.clearfix:after{clear:both;}
.clearfix{zoom:1;}


/* --------------------------------------------------
 * common styles
 */

body {
  font-family: 'Hiragino Kaku Gothic Pro',Meiryo,'MS PGothic',sans-serif;
  color: #000000;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

a {
  text-decoration: none;
  color: #02599E;
}

a:hover {
  text-decoration: underline;
}

img {
  vertical-align: top;
}

*, *:before, *:after {
  box-sizing: border-box;
}

.sp {
  display: none;
}


/* --------------------------------------------------
 * layout
 */

.wrap-all {
  width: 100%;
  min-width: 1040px;
}

.wrap {
  position: relative;
  width: 1040px;
  margin: 0 auto;
}

.site-header {
  height: 128px;
}

.site-header:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 28px;
  background-color: #F1F1F1;
  z-index: 0;
}

.site-header h1 {
  position: absolute;
  top: 49px;
  left: 0;
}

.site-header h1 a {
  display: block;
  padding: 0 0 0 65px;
  color: #000000;
  font-size: 28px;
  font-weight: bold;
  line-height: 58px;
  letter-spacing: -0.02em;
  background: url(../img/common/logo.png) no-repeat 0 0;
  background-size: 55px 58px;
}

.site-header h1 a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.site-header .description {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 11px;
  line-height: 28px;
}

.site-header .tel {
  position: absolute;
  top: 51px;
  /* left: 630px; */
  left: 410px;

}

.site-header .tel span {
  display: block;
  height: 32px;
  padding: 0 0 0 32px;
  color: #000000;
  font-size: 30px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  line-height: 30px;
  letter-spacing: 0.04em;
  background: url(../img/common/header/tel-icon.png) no-repeat 0 center;
}

.site-header .tel p {
  width: 210px;
  border: 1px solid #E5E5E5;
  text-align: center;
  font-size: 12px;
  line-height: 18px;
}

.site-header .inquiry a {
  position: absolute;
  top: 53px;
  right: 0;
  right: 210px;
  width: 190px;
  heigth: 50px;
  padding: 0 0 0 64px;
  box-shadow: inset 0 -25px #014F8E;
  color: #FFFFFF;
  font-size: 16px;
  line-height: 50px;
  letter-spacing: 0.03em;
  background-color: #02599E;
}

.site-header .inquiry a:before {
  content: "";
  position: absolute;
  top: 17px;
  left: 31px;
  width: 24px;
  height: 16px;
  background: url(../img/common/header/inquiry-icon.png) no-repeat 0 0;
}

.site-header .inquiry a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.site-header .recruit a {
  position: absolute;
  top: 53px;
  right: 0; 
  width: 190px;
  height: 50px;
  /* padding: 0 0 0 64px; */
  text-align: center;
  box-shadow: inset 0 -25px #313131;
  color: #FFFFFF;
  font-size: 16px;
  line-height: 50px;
  letter-spacing: 0.03em;
  background-color: #3a3a3a;    display: flex;
    flex-direction: column;
    line-height: 1.4;
    justify-content: center;
   
}

.site-header .recruit a  small{
      font-size: 9px;
    }

    .site-header .recruit a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.global-nav {
  height: 86px;
  border-bottom: 1px solid #E5E5E5;
  box-shadow: inset 0 -1px #FFFFFF;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 60%, #EAEAEA 100%);
}

.global-nav ul li {
  float: left;
}

.global-nav ul li a {
  display: block;
  position: relative;
  width: 208px;
  height: 86px;
  padding: 14px 0 0;
  border-right: 1px solid #E8E8E8;
  text-align: center;
  color: #000000;
  font-size: 18px;
  line-height: 36px;
  letter-spacing: 0.1em;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
}

.global-nav ul li a:first-child {
  border-left: 1px solid #E8E8E8;
}

.global-nav ul li a:hover {
  text-decoration: none;
}

#top .global-nav ul li:nth-child(1) a:before,
#service .global-nav ul li:nth-child(2) a:before,
#company .global-nav ul li:nth-child(3) a:before,
#works .global-nav ul li:nth-child(4) a:before,
#topics .global-nav ul li:nth-child(5) a:before,
.global-nav ul li a:hover:before {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 2px;
  width: 203px;
  height: 4px;
  background-color: #02599E;
}

.global-nav ul li a img {
  display: block;
  margin: 0 auto;
}

.site-footer {
  height: 311px;
}

.site-footer .sp-inquiry {
  display: none;
}

.site-footer > .wrap {
  height: 198px;
  padding: 27px 0 0;
}

.site-footer .company {
  margin: 0 0 25px;
}

.site-footer .company a {
  display: block;
  padding: 0 0 0 65px;
  color: #000000;
  font-size: 28px;
  font-weight: bold;
  line-height: 58px;
  letter-spacing: -0.02em;
  background: url(../img/common/logo.png) no-repeat 0 0;
  background-size: 55px 58px;
}

.site-footer .company a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.site-footer .links {
  position: absolute;
  top: 27px;
  left: 310px;
  font-size: 14px;
  line-height: 58px;
}

.site-footer .links a:before {
  content: "> ";
}

.site-footer .access {
}

.site-footer .access dt {
  float: left;
  width: 116px;
  font-size: 16px;
  font-weight: bold;
  line-height: 31px;
  letter-spacing: 0.1em;
}

.site-footer .access dd {
  float: left;
  width: 924px;
  font-size: 16px;
  line-height: 31px;
  letter-spacing: 0.1em;
}

.site-footer nav {
  position: relative;
  height: 69px;
  border-top: 1px solid #E5E5E5;
}

.site-footer nav ul {
  overflow: hidden;
}

.site-footer nav ul li {
  float: left;
  margin: 0 40px 0 0;
  padding: 0 0 0 18px;
  font-size: 14px;
  line-height: 68px;
  letter-spacing: 0.1em;
  background: url(../img/common/footer/nav-arrow.png) no-repeat 0 center;
}

.site-footer nav ul li a {
  color: #050505;
}

.site-footer nav .pagetop {
  display: block;
  position: absolute;
  top: -28px;
  right: 20px;
  width: 58px;
  height: 58px;
  padding: 21px 0 0;
  text-align: center;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: bold;
  line-height: 14px;
  letter-spacing: 0.02em;
  background-color: #000000;
}

.site-footer nav .pagetop:before {
  content: "";
  position: absolute;
  top: 7px;
  left: 50%;
  margin-left: -5px;
  border-top: none;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 9px solid #FFFFFF;
}

.site-footer .copyright {
  text-align: center;
  color: #FFFFFF;
  font-size: 12px;
  line-height: 44px;
  background-color: #02599E;
}

.top-common-title {
  position: relative;
  height: 95px;
  margin: 0 0 50px;
  text-align: center;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
  font-size: 36px;
  letter-spacing: 0.14em;
}

.top-common-title:before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 116px;
  height: 4px;
  margin: 0 0 0 -58px;
  background-color: #02599E;
}

.top-common-title span {
  display: block;
  height: 52px;
  color: #02599E;
  line-height: 26px;
}

.view-detail {
  display: block;
  position: relative;
  width: 289px;
  height: 52px;
  border: 2px solid #FFFFFF;
  border-radius: 1px;
  box-shadow: inset 0 -25px #014F8E;
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  font-size: 16px;
  line-height: 46px;
  letter-spacing: 0.03em;
  background-color: #02599E;
}

.view-detail:before {
  content: "";
  display: inline-block;
  position: relative;
  width: 7px;
  height: 100%;
  margin: 0 10px 0 0;
  vertical-align: middle;
  background: url(../img/common/view-detail-arrow.png) no-repeat 0 51%;
}

.view-detail:hover {
  text-decoration: none;
  opacity: 0.8;
}

.common-topics-list li {
  position: relative;
  padding: 0 0 0 164px;
  border-bottom: 1px dotted #E5E5E5;
}

.common-topics-list li time {
  position: absolute;
  top: 0;
  left: 2px;
  color: #02599E;
  font-size: 16px;
  font-weight: bold;
  line-height: 49px;
}

.common-topics-list li p {
  padding: 9px 0;
  font-size: 16px;
  line-height: 31px;
}  

.common-topics-list li p a {
  color: #050505;
}


/* --------------------------------------------------
 * lower common
 */

.lower {
  padding: 0 0 50px;
  background: url(../img/common/bg.png) repeat 2px center;
}

.lower > header {
  position: relative;
  height: 176px;
  background-color: #02599E;
}

.lower > header:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: calc(50% + 154px);
  height: 176px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.lower > header h2 {
  position: absolute;
  top: 0;
  left: calc(50% - 520px);
  padding: 40px 0 0;
  color: #FFFFFF;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-weight: normal;
  font-size: 34px;
  line-height: 60px;
}

.lower > header h2 img {
  display: block;
  margin-left: 3px;
}

.lower .bread-crumb {
  height: 39px;
  margin-top: 1px;
  border-top: 1px solid #FFFFFF;
  border-bottom: 1px solid #FFFFFF;
  background-color: #F1F1F1;
}

.lower .bread-crumb ul {
  font-size: 0;
  line-height: 37px;
}

.lower .bread-crumb ul li {
  display: inline-block;
  font-size: 12px;
  font-weight: bold;
}

.lower .bread-crumb ul li:before {
  content: ">";
  display: inline-block;
  margin: 0 0.8em;
}

.lower .bread-crumb ul li:first-child:before {
  display: none;
}

.lower .bread-crumb ul li a {
  text-decoration: underline;
}

.lower .contents {
  padding: 35px 0 0;
  overflow: hidden;
}

.lower .contents main {
  float: left;
  width: 754px;
}

.lower .contents main .block {
  display: block;
  padding: 40px;
  border: 1px solid #DEDEDE;
  background-color: #FFFFFF;
}

.lower .contents aside {
  display: block;
  float: right;
  width: 256px;
}

.lower .contents aside > * {
  margin: 0 0 30px;
}

.lower .contents aside .company {
  padding: 27px 10px 10px;
  border: 1px solid #DEDEDE;
  background-color: #FFFFFF;
}

.lower .contents aside .company h3 {
  height: 159px;
  margin: 0 3px 15px;
  border-bottom: 1px solid #DEDEDE;
  text-align: center;
  font-size: 25px;
  font-weight: bold;
  line-height: 25px;
  letter-spacing: -0.02em;
}

.lower .contents aside .company h3:before {
  content: "";
  display: block;
  width: 87px;
  height: 91px;
  margin: 0 auto 19px;
  background: url(../img/common/logo.png) no-repeat 0 0;
}

.lower .contents aside .company dl {
  padding: 0 5px;
}

.lower .contents aside .company dl dt {
  font-size: 14px;
  font-weight: bold;
  line-height: 23px;
  letter-spacing: 0.08em;
}

.lower .contents aside .company dl dd {
  margin: 0 0 17px;
  font-size: 14px;
  line-height: 23px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.lower .contents aside .company .view-detail {
  width: 234px;
  height: 48px;
  border: none;
}

.lower .contents aside .recent-entries {
  border: 1px solid #DEDEDE;
  background-color: #FFFFFF;
}

.lower .contents aside .recent-entries h3,
.lower .contents aside .archives h3 {
  padding: 0 0 0 14px;
  color: #FFFFFF;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-weight: normal;
  font-size: 24px;
  letter-spacing: 0.14;
  line-height: 52px;
  background: #02599E url(../img/common/side/title-bg.png) no-repeat right 0;
}

.lower .contents aside .recent-entries ul li {
  border-top: 1px solid #DEDEDE;
}

.lower .contents aside .recent-entries ul li:first-child {
  border: none;
}

.lower .contents aside .recent-entries ul li a {
  display: table;
  width: 100%;
  color: #1B1B1B;
}

.lower .contents aside .recent-entries ul li a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.lower .contents aside .recent-entries ul li a .image {
  display: table-cell;
  width: 70px;
  height: 70px;
  padding: 10px;
  vertical-align: middle;
  font-size: 0;
  line-height: 50px;
}

.lower .contents aside .recent-entries ul li a .image img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
}

.lower .contents aside .recent-entries ul li a span {
  display: table-cell;
  padding: 10px;
  vertical-align: middle;
  font-size: 12px;
  line-height: 18px;
}

.lower .contents aside .archives {
  border: 1px solid #DEDEDE;
  background-color: #FFFFFF;
}

.lower .contents aside .archives ul {
  padding: 10px 10px 0;
}

.lower .contents aside .archives ul li {
  margin: 0 0 5px;
}

.lower .contents aside .archives ul li a {
  display: block;
  position: relative;
  height: 62px;
  padding: 0 0 0 57px;
  border: 1px solid #DEDEDE;
  color: #060606;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-size: 18px;
  line-height: 60px;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 60%, #EBEBEB 100%);
}

.lower .contents aside .archives ul li a:hover {
  text-decoration: none;
  opacity: 0.8;
}

.lower .contents aside .archives ul li a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 60px;
}

.lower .contents aside .archives ul li:nth-child(2) a:before {
  background-image: url(../img/common/side/archive-icon1.png);
}

.lower .contents aside .archives ul li:nth-child(3) a:before {
  background-image: url(../img/common/side/archive-icon2.png);
}

.lower .contents aside .archives ul li:nth-child(1) a:before {
  background-image: url(../img/common/side/archive-icon3.png);
}

.lower .contents aside .archives ul li:nth-child(1) a {
  padding-top: 12px;
  font-size: 16px;
  line-height: 20px;
}

.lower .contents aside .archives .about {
  display: block;
  height: 156px;
  margin: 0 10px 10px;
  padding: 87px 0 12px 8px;
  border: 1px solid #DEDEDE;
  box-shadow: inset 1px 1px #FFFFFF, inset -1px -1px #FFFFFF;
  background: #F0F0F0 url(../img/common/side/works-banner.png) no-repeat 1px 1px;
}

.lower .contents aside .archives .about p:nth-child(1) {
  height: 19px;
  color: #1B1B1B;
  font-size: 11px;
  line-height: 11px;
  letter-spacing: 0.08em;
}

.lower .contents aside .archives .about p:nth-child(2) {
  color: #02599E;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 17px;
  line-height: 21px;
  letter-spacing: 0.1em;
}

.lower .contents aside .archives .about:hover {
  text-decoration: none;
  opacity: 0.8;
}

.lower .contents aside .banner a:hover {
  opacity: 0.8;
}

.lower .contents aside .banner{
  position: relative;
}

.lower .contents aside .banner .text_1{
       position: absolute;
       left: 78px;
    top: 15px;
    color: #fff;
    font-size: 14px;
}
.lower .contents aside .banner .text_2{
      position: absolute;
    left: 69px;
    top: 34px;
    color: #fff;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 0.2em;
}

.lower .contents .common-title1 {
  position: relative;
  height: 58px;
  margin: 0 0 28px;
  padding: 0 16px;
  border: 1px solid #DEDEDE;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-size: 24px;
  line-height: 50px;
  letter-spacing: -0.02em;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 60%, #EBEBEB 100%);
}

.lower .contents .common-title1:before {
  content: "";
  position: absolute;
  left: 3px;
  bottom: 3px;
  width: calc(100% - 6px);
  height: 3px;
  background-color: #02599E;
}

.lower .contents .common-title2 {
  position: relative;
  height: 40px;
  margin: 0 0 24px;
  border-bottom: 2px solid #E5E5E5;
  color: #323232;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
  font-size: 24px;
  line-height: 24px;
}

.lower .contents .common-title2:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 105px;
  height: 2px;
  background-color: #02599E;
}

.common-title3 {
  height: 32px;
  margin: 0 0 20px;
  color: #02599E;
  font-size: 18px;
  font-weight: bold;
  line-height: 18px;
  border-bottom: 2px solid #E5E5E5;
}

.pagination {
  margin: 27px 0;
  text-align: center;
  font-size: 0;
}

.pagination li {
  display: inline-block;
  width: 48px;
  height: 48px;
  margin: 0 7px;
  text-align: center;
  font-size: 18px;
  line-height: 46px;
}

.pagination li a {
  display: inline-block;
  width: 100%;
  border: 1px solid #DEDEDE;
  color: #535353;
  background-color: #FFFFFF;
}

.pagination li.prev,
.pagination li.next {
  width: 103px;
}

.pagination li.current {
  color: #FFFFFF;
  background-color: #02599E;
}

.pagination li.ellipsis {
  width: 30px;
}

.pagination li.ellipsis:before {
  content: "…";
}


/* --------------------------------------------------
 * top
 */

#top .main-visual {
  position: relative;
  width: 100%;
  height: calc(100vh - 128px);
  padding: 258px 0 0;
  text-align: center;
  text-shadow: 0 0 7px rgba(0, 0, 0, 0.19);
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  color: #FFFFFF;
}

#top .main-visual:before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 26px;
  width: 25px;
  height: 42px;
  margin-left: -12px;
  background: url(../img/top/scroll-icon.png) no-repeat 0 0;
  z-index: 2;
}

#top .main-visual .lead {
  position: absolute;
  top: 35%;
  left: 0;
  width: 100%;
  height: 90px;
  margin-top: -20px;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-size: 54px;
  line-height: 54px;
  letter-spacing: -0.02em;
  opacity: 0;
  z-index: 2;
  transition: all 1s;
  trnasform-origin: 50% 50%;
  -webkit-transition: all 1s;
  -webkit-trnasform-origin: 50% 50%;
}

#top .main-visual .lead.show {
  margin-top: 0;
  opacity: 1;
}

#top .main-visual .text {
  position: absolute;
  top: calc(35% + 90px);
  left: 0;
  width: 100%;
  font-size: 23px;
  line-height: 38px;
  letter-spacing: 0.02em;
  opacity: 0;
  z-index: 2;
  transition: all 1s;
  transform: scale(0.4, 0.4);
  transform-origin: 50% 50%;
  -webkit-transition: all 1s;
  -webkit-transform: scale(0.4, 0.4);
  -webkit-transform-origin: 50% 50%;
}

#top .main-visual .text.show {
  opacity: 1;
  transform: scale(1, 1);
  -webkit-transform: scale(1, 1);
}

#top .main-visual .images {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: #000000;
  z-index: 1;
}

#top .main-visual .images li {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover !important;
  opacity: 0;
  z-index: 1;
  transition: transform 7.5s linear;
  transform: scale(1.1, 1.1);
  trnasform-origin: 50% 50%;
  -webkit-transition: -webkit-transform 7.5s linear;
  -webkit-transform: scale(1.1, 1.1);
  -webkit-trnasform-origin: 50% 50%;
}

#top .main-visual .images li.animate {
  transform: scale(1, 1);
  -webkit-transform: scale(1, 1);
}

#top .main-visual .images li:nth-child(1) {opacity: 1;}
#top .main-visual .images li:nth-child(1) {background-image: url(../img/top/slide1.jpg);}
#top .main-visual .images li:nth-child(2) {background-image: url(../img/top/slide2.jpg);}
#top .main-visual .images li:nth-child(3) {background-image: url(../img/top/slide3.jpg);}
#top .main-visual .images li:nth-child(4) {background-image: url(../img/top/slide4.jpg);}


#top .rules {
  height: 940px;
  padding: 82px 0 0;
  background: url(../img/common/bg.png) repeat 2px center;
}

#top .rules .body {
  position: relative;
  height: 783px;
  background: url(../img/top/rules-block-bg.png) no-repeat 0 0;
}

#top .rules h2 {
  position: absolute;
  top: -47px;
  left: 240px;
}

#top .rules ul li {
  position: absolute;
  top: 240px;
  text-align: center;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
}

#top .rules ul li span {
  display: block;
  position: absolute;
  left: 0;
  width: 295px;
  letter-spacing: -0.02em;
}

#top .rules ul li .t1 {
  top: 0;
  color: #FFFFFF;
  font-size: 20px;
  line-height: 39px;
}

#top .rules ul li .t2 {
  top: 67px;
  font-size: 20px;
  line-height: 20px;
}

#top .rules ul li .t3 {
  top: 100px;
  color: #02599E;
  font-size: 40px;
  line-height: 40px;
}

#top .rules ul li.rule1 {left: 40px;}
#top .rules ul li.rule2 {left: 373px;}
#top .rules ul li.rule3 {left: 705px;}

#top .rules .lead {
  position: absolute;
  top: 475px;
  left: 36px;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
  font-size: 37px;
  line-height: 37px;
}

#top .rules .lead strong {
  color: #02599E;
  font-weight: bold;
}

#top .rules .lead strong span {
  display: inline-block;
  position: relative;
}

#top .rules .lead strong span:before {
  content: "";
  position: absolute;
  top: -17px;
  left: 50%;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  border-radius: 3px;
  background-color: #02599E;
}

#top .rules .text {
  position: absolute;
  top: 531px;
  left: 36px;
  font-size: 16px;
  line-height: 34px;
  letter-spacing: 0.07em;
}

#top .rules .view-detail {
  position: absolute;
  left: 384px;
  bottom: 41px;
}

#top .construction-menu {
  height: 1470px;
  padding: 58px 0 0;
  background: url(../img/top/construction-menu-bg.png) no-repeat center bottom;
  background-size: cover;
}

#top .construction-menu h2 {
  margin: 0 0 42px;
}

#top .construction-menu h2+p {
  height: 68px;
  text-align: center;
  font-size: 18px;
  line-height: 18px;
  letter-spacing: 0.1em;
}

#top .construction-menu ul {
  margin: 0 0 16px -25px;
  overflow: hidden;
}

#top .construction-menu ul li {
  float: left;
  position: relative;
  width: 330px;
  height: 330px;
  margin: 0 0 27px 25px;
  padding: 286px 0 0;
  text-align: center;
  color: #02599E;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 24px;
  line-height: 24px;
}

#top .construction-menu ul li:before {
  content: "";
  position: absolute;
  top: 0;
  left: -3px;
  width: 336px;
  height: 343px;
  background: url(../img/top/construction-menu-li-bg.png) no-repeat 0 0;
  z-index: 0;
}

#top .construction-menu ul li:after {
  content: "";
  position: absolute;
  top: 17px;
  left: 15px;
  width: 299px;
  height: 250px;
  z-index: 1;
}

#top .construction-menu ul li:nth-child(1):after {background: url(../img/top/construction-menu-image1.png);}
#top .construction-menu ul li:nth-child(2):after {background: url(../img/top/construction-menu-image2.png);}
#top .construction-menu ul li:nth-child(3):after {background: url(../img/top/construction-menu-image3.png);}
#top .construction-menu ul li:nth-child(4):after {background: url(../img/top/construction-menu-image4.png);}
#top .construction-menu ul li:nth-child(5):after {background: url(../img/top/construction-menu-image5.png);}
#top .construction-menu ul li:nth-child(6):after {background: url(../img/top/construction-menu-image6.png);}
#top .construction-menu ul li:nth-child(7):after {background: url(../img/top/construction-menu-image7.png);}
#top .construction-menu ul li:nth-child(8):after {background: url(../img/top/construction-menu-image8.png);}
#top .construction-menu ul li:nth-child(9):after {background: url(../img/top/construction-menu-image9.png);}

#top .construction-menu ul li span {
  position: relative;
  z-index: 1;
}

#top .construction-menu .view-detail {
  margin: 0 auto;
}

#top .works {
  height: 814px;
  padding: 58px 0 0;
  background: url(../img/common/bg.png) repeat 2px center;
}

#top .works dl {
  float: left;
  position: relative;
  width: 330px;
  height: 382px;
  margin: 0 0 40px 25px;
  border: 1px solid #C4C5C6;
  background-color: #FFFFFF;
}

#top .works dl:first-of-type {
  margin-left: 0;
}

#top .works dl dt {
  position: relative;
  width: 320px;
  height: 72px;
  margin: 2px 4px 4px;
  padding: 0 0 0 65px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 24px;
  line-height: 72px;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 60%, #EBEBEB 100%);
}

#top .works .dl2 dt {
  padding: 11px 0 0 84px;
  font-size: 20px;
  line-height: 25px;
}

#top .works .dl3 dt {
  padding: 0 0 0 84px;
}

#top .works dl dt:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 70px;
  height: 72px;
}

#top .works .dl1 dt:before {background: url(../img/top/works-dl1-image.png) no-repeat 0 0;}
#top .works .dl2 dt:before {background: url(../img/top/works-dl2-image.png) no-repeat 0 0;}
#top .works .dl3 dt:before {background: url(../img/top/works-dl3-image.png) no-repeat 0 0;}

#top .works dl dd {
  padding: 12px 14px;
  border-top: 4px solid #02599E;
}

#top .works dl dd .image {
  width: 300px;
  height: 145px;
  margin: 0 0 15px;
  text-align: center;
  line-height: 145px;
}

#top .works dl dd .image img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 145px;
  vertical-align: middle;
}

#top .works dl dd p {
  height: 50px;
  margin: 0 0 15px;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: 0.1em;
  overflow: hidden;
}

#top .works dl dd .view-detail {
  width: 100%;
  height: 48px;
  border: none;
  border-radius: 0;
}

#top .works .banner {
  clear: both;
  display: block;
  position: relative;
  width: 1040px;
  height: 111px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  background: url(../img/top/works-banner-bg.png) no-repeat 0 0;
}

#top .works .banner:hover {
  text-decoration: none;
  opacity: 0.8;
}

#top .works .banner p:nth-child(1) {
  position: absolute;
  top: 25px;
  left: 32px;
  color: #1B1B1B;
  font-size: 20px;
  line-height: 20px;
}

#top .works .banner p:nth-child(2) {
  position: absolute;
  top: 58px;
  left: 28px;
  color: #02599E;
  font-size: 28px;
  line-height: 28px;
}

#top .works .banner p:nth-child(3) {
  position: absolute;
  right: 43px;
  bottom: 3px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  line-height: 26px;
}

#top .topics {
  padding: 80px 0;
}

#top .topics .body {
  padding: 39px;
  border: 1px solid #E5E5E5;
  box-shadow: inset 8px 8px #EFEFEF, inset -8px -8px #EFEFEF;
}

#top .topics .body header {
  position: relative;
  height: 49px;
  margin: 0 0 1px;
  border-bottom: 2px solid #E5E5E5;
}

#top .topics .body header:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 131px;
  height: 2px;
  background-color: #02599E;
}

#top .topics .body header h2 {
  float: left;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 31px;
  font-weight: normal;
  line-height: 31px;
  letter-spacing: 0.08em;
}

#top .topics .body header h2 span {
  color: #02599E;
  font-weight: normal;
}

#top .topics .body header h2 img {
  vertical-align: baseline;
}

#top .topics .body header a {
  float: right;
  width: 152px;
  height: 26px;
  padding: 0 0 0 50px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  line-height: 26px;
  background: #02599E url(../img/common/view-detail-arrow.png) no-repeat 37px center;
  background-size: 4px 8px;
}

#top .last-section {
  height: 430px;
  background: url(../img/top/last-section-bg.png) no-repeat center center;
  background-size: cover;
}

#top .last-section .wrap {
  height: 469px;
  padding: 60px 0 0;
}

/* #top .last-section .wrap:before {
  content: "";
  position: absolute;
  right: -130px;
  bottom: 0;
  width: 614px;
  height: 343px;
  background: url(../img/top/last-section-image.png) no-repeat 0 0;
} */

#top .last-section h2 {
  height: 58px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-weight: normal;
  font-size: 31px;
  line-height: 31px;
  letter-spacing: 0.08em;
}

#top .last-section p {
  font-size: 16px;
  line-height: 32px;
}


/* --------------------------------------------------
 * service
 */

#service .lower > header:before {
  background-image: url(../img/service/title-bg.png);
}

#service .service > .lead {
  /* height: 367px; */
  margin: 0 0 25px;
  /* padding: 25px; */
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-size: 28px;
  line-height: 42px;
  white-space: nowrap;
  /* background: url(../img/service/lead-bg.png) no-repeat 0 0; */
}

#service .service > .lead span{
  color: #02599E;
}

#service .service > .text {
  height: 155px;
  font-size: 16px;
  line-height: 31px;
}

#service .service .service-list {
  
}

#service .service .service-list .dls {
  margin: 0 0 50px;
  padding: 20px 0 0 20px;
  overflow: hidden;
  background-color: #F3FAFF;
}

#service .service .service-list .dls dl {
  float: left;
  width: 308px;
  margin: 0 17px 20px 0;
  padding: 18px;
  border: 2px solid #E5E5E5;
  background-color: #FFFFFF;
}

#service .service .service-list .dls dl dt {
  height: 36px;
  margin: 0 0 9px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 20px;
  line-height: 20px;
  border-bottom: 2px solid #000000;
}

#service .service .service-list .dls dl dd p {
  margin: 0 0 9px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 14px;
  line-height: 22px;
}

#service .service .service-list .dls dl dd ul {
}

#service .service .service-list .dls dl dd ul li {
  display: inline;
  font-size: 14px;
  line-height: 28px;
}

#service .service .service-list .dls dl dd ul li:before {
  content: "●";
}

#service .service .service-list .dls .dl1,
#service .service .service-list .dls .dl2 {
  height: 193px;
}

#service .service .service-list .dls .dl3,
#service .service .service-list .dls .dl4 {
  height: 189px;
}

#service .service .service-list .dls .dl5,
#service .service .service-list .dls .dl6 {
  height: 172px;
}

#service .service .service-list .dls .dl7,
#service .service .service-list .dls .dl8 {
  height: 196px;
}

#service .service .service-list .dls .dl1 dt {border-color: #3BAADE;}
#service .service .service-list .dls .dl2 dt {border-color: #F55267;}
#service .service .service-list .dls .dl3 dt {border-color: #A0D760;}
#service .service .service-list .dls .dl4 dt {border-color: #FEAA09;}
#service .service .service-list .dls .dl5 dt {border-color: #C696D4;}
#service .service .service-list .dls .dl6 dt {border-color: #FADB21;}
#service .service .service-list .dls .dl7 dt {border-color: #54BC63;}
#service .service .service-list .dls .dl8 dt {border-color: #2287D8;}
#service .service .service-list .dls .dl1 dd ul li:before {color: #3BAADE;}
#service .service .service-list .dls .dl2 dd ul li:before {color: #F55267;}
#service .service .service-list .dls .dl3 dd ul li:before {color: #A0D760;}
#service .service .service-list .dls .dl4 dd ul li:before {color: #FEAA09;}
#service .service .service-list .dls .dl5 dd ul li:before {color: #C696D4;}
#service .service .service-list .dls .dl6 dd ul li:before {color: #FADB21;}
#service .service .service-list .dls .dl7 dd ul li:before {color: #54BC63;}
#service .service .service-list .dls .dl8 dd ul li:before {color: #2287D8;}
#service .service .service-list .dls .dl5 dd ul {white-space: nowrap;}

#service .service .about1 > p:first-of-type {
  height: 65px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 18px;
  line-height: 18px;
}

#service .service .about1 > .lead {
  display: inline-block;
  margin: 0 0 40px;
  border-bottom: 4px solid #E8EF73;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
  font-size: 41px;
  line-height: 41px;  
}

#service .service .about1 > .lead strong {
  color: #02599E;
  font-weight: bold;
}

#service .service .about1 > .lead strong span {
  display: inline-block;
  position: relative;
}

#service .service .about1 > .lead strong span:before {
  content: "";
  position: absolute;
  top: -17px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 3.5px;
  background-color: #02599E;
}

#service .service .about1 dl {
  position: relative;
}

#service .service .about1 dl dt {
  position: absolute;
  top: 34px;
  left: 114px;
  color: #02599E;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 26px;
  line-height: 26px;
}

#service .service .about1 dl dt img {
  position: absolute;
  top: -40px;
  left: -99px;
}

#service .service .about1 dl dd {
  position: absolute;
  top: 82px;
  left: 40px;
  color: #292929;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: -0.03em;
}

#service .service .about1 .dl1 {
  width: 684px;
  height: 304px;
  margin: 0 0 30px;
  background: url(../img/service/about1-1-bg.png) no-repeat 0 0;
}

#service .service .about1 .dl2 {
  width: 673px;
  height: 396px;
  margin: 0 0 43px;
  background: url(../img/service/about1-2-bg.png) no-repeat 0 0;
}

#service .service .about1 .dl3 {
  width: 673px;
  height: 582px;
  margin: 0 0 40px;
  background: url(../img/service/about1-3-bg.png) no-repeat 0 0;
}

#service .service .about1 .dl1 dd > p {width: 404px;}
#service .service .about1 .dl2 dd > p {width: 580px; letter-spacing: -0.07em;}
#service .service .about1 .dl3 dd > p {width: 580px; letter-spacing: -0.07em;}

#service .service .about1 .dl3 dd .licenses {
  width: 594px;
  height: 322px;
  margin: 20px 0 0;
  border: 1px solid #E5E5E5;
  background-color: #FFFFFF;
}

#service .service .about1 .dl3 dd .licenses p {
  margin: 0 0 32px;
  border-bottom: 3px solid #02599E;
  text-align: center;
  color: #02599E;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-size: 22px;
  line-height: 48px;
}

#service .service .about1 .dl3 dd .licenses ul {
  padding: 0 0 0 48px;
}

#service .service .about1 .dl3 dd .licenses ul li {
  float: left;
  width: 268px;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: -0.07em;
}

#service .service .about1 .dl3 dd .licenses ul li:before {
  content: "・";
}

#service .service .about2 > .lead.pc {
  display: inline-block;
  margin: 20px 0 30px;
  font-family: "リュウミン M-KL", "A-OTF リュウミン Pro M-KL";
  font-weight: bold;
  font-size: 32px;
  line-height: 32px;  
}

#service .service .about2 > .lead strong {
  color: #02599E;
  font-weight: bold;
}

#service .service .about2 > .lead strong span {
  display: inline-block;
  position: relative;
}

#service .service .about2 > .lead strong span:before {
  content: "";
  position: absolute;
  top: -17px;
  left: 50%;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  border-radius: 3px;
  background-color: #02599E;
}

#service .service .about2 > .text {
  margin: 0 0 30px;
  color: #292929;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: -0.05em;
}

#service .service .about2 .examples {
  margin: 0 0 30px;
}

#service .service .about2 .examples ul {
  overflow: hidden;
}

#service .service .about2 .examples ul li {
  float: left;
  width: 325px;
  margin: 0 0 25px;
}

#service .service .about2 .examples ul li:nth-child(even) {
  float: right;
}

#service .service .about2 .examples ul li img {
  margin: 0 0 10px;
}

#service .service .about2 .examples ul li p:nth-of-type(1) {
  height: 35px;
  color: #02599E;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 20px;
  line-height: 20px;
}

#service .service .about2 .examples ul li p:nth-of-type(2) {
  font-size: 14px;
  line-height: 26px;
}

#service .service .about2 .others {
  margin: 0 0 40px;
  background-color: #F6F7F2;
}

#service .service .about2 .others h5 {
  position: relative;
  text-align: center;
  color: #FFFFFF;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-weight: normal;
  font-size: 30px;
  line-height: 80px;
  background-color: #02599E;
}

#service .service .about2 .others h5:before {
  content: "";
  position: absolute;
  left: calc(50% - 6px);
  bottom: -12px;
  border-top: 12px solid #02599E;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-bottom: none;
}

#service .service .about2 .others p {
  text-align: center;
  color: #02599E;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 20px;
  line-height: 75px;
}

#service .service .about2 .others ul {
  padding: 0 0 0 25px;
  overflow: hidden;
}

#service .service .about2 .others ul li {
  float: left;
  width: 300px;
  margin: 0 22px 25px 0;
  border: 2px solid #000000;
  text-align: center;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 18px;
  line-height: 68px;
  background-color: #FFFFFF;
}

#service .service .about2 .others ul li:nth-child(1) {border-color: #B9DFF0;}
#service .service .about2 .others ul li:nth-child(2) {border-color: #F6C3C9;}
#service .service .about2 .others ul li:nth-child(3) {border-color: #D1ECB3;}
#service .service .about2 .others ul li:nth-child(4) {border-color: #FAE3B6;}
#service .service .about2 .others ul li:nth-child(5) {border-color: #EACFF2;}
#service .service .about2 .others ul li:nth-child(6) {border-color: #F8EA99;}
#service .service .about2 .others ul li:nth-child(7) {border-color: #F8EA99;}
#service .service .about2 .others ul li:nth-child(8) {border-color: #9BCEF6;}
#service .service .about2 .others ul li:nth-child(9) {border-color: #B9DFF0;}
#service .service .about2 .others ul li:nth-child(10) {border-color: #F6C3C9;}

#service .service .inquiry {
  text-align: center;
}

#service .service .inquiry p {
  height: 45px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 22px;
  line-height: 22px;
}

#service .service .inquiry .view-detail {
  width: 304px;
  height: 48px;
  margin: 0 auto;
  border: none;
  line-height: 47px;
}


/* --------------------------------------------------
 * company
 */

#company .lower > header:before {
  background-image: url(../img/company/title-bg.png);
}

#company main .company {
}

#company main .company h3 {
  margin: -40px -40px 0;
}

#company main .company .introduction {
  margin: 0 0 50px;
}

#company main .company .introduction .lead {
  margin: 40px 0 30px;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 28px;
  line-height: 28px;
  letter-spacing: -0.02em;
}

#company main .company .introduction .lead strong {
  color: #02599E;
  font-weight: normal;
}

#company main .company .introduction p {
  margin: 0 0 1em;
  font-size: 16px;
  line-height: 33px;
  letter-spacing: 0.07em;
}

#company main .company .introduction .image1 {
  float: left;
  margin: 0 28px 10px 0;
}

#company main .company .introduction .image2 {
  float: right;
  margin: 0 0 10px 28px;
}

#company main .company .introduction .image2+p,
#company main .company .introduction .image2+p+p {
  letter-spacing: 0.01em;
}

#company main .company .introduction p:nth-of-type(8) {
  letter-spacing: -0.03em;
}

#company main .company .introduction .signature {
  margin: 1.2em 0 0;
  text-align: right;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.02em;
}

#company main .company .outline,
#company main .company .history {
  margin: 0 0 50px;
}

#company main .company .outline table,
#company main .company .history table {
  width: 100%;
  border-collapse: collapse;
}

#company main .company .outline table tr th,
#company main .company .history table tr th {
  padding: 12px 0;
  border-bottom: 1px dotted #B2B2B2;
  vertical-align: top;
  text-align: left;
  color: #02599E;
  font-size: 14px;
  font-weight: bold;
  line-height: 26px;
}

#company main .company .outline table tr th {
  width: 128px;
}

#company main .company .history table tr th {
  width: 178px;
  font-weight: normal;
}

#company main .company .outline table tr td,
#company main .company .history table tr td {
  padding: 12px 0;
  border-bottom: 1px dotted #B2B2B2;
  font-size: 14px;
  line-height: 26px;
}

#company main .company .outline table p{
  margin-bottom:0.8em;
}

/* --------------------------------------------------
 * works
 */

#works .lower > header:before {
  background-image: url(../img/works/title-bg.png);
}

#works .category-link {
  display: inline-block;
  padding: 0 10px;
  border-radius: 3px;
  color: #FFFFFF;
  font-size: 11px;
  line-height: 26px;
  letter-spacing: 0.1em;
  background-color: #000000;
}

#works .works-categories {
  margin: -21px;
  overflow: hidden;
}

#works .works-categories li {
  float: left;
  margin: 0 0 0 11px;
}

#works .works-categories li:first-child {
  margin: 0;
}

#works .works-categories li a {
  display: block;
  width: 170px;
  height: 49px;
  border: 1px solid #DEDEDE;
  border-radius: 3px;
  text-align: center;
  color: #000000;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 16px;
  line-height: 47px;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 60%, #EBEBEB 100%);
}

#works .works .works-list {
  margin: 30px 0;
  overflow: hidden;
}

#works .works .works-list li {
  float: left;
  width: 240px;
  height: 321px;
  margin: 0 0 17px 17px;
  padding: 15px 13px 0;
  background-color: #FFFFFF;
}

#works .works .works-list li:nth-child(3n-2) {
  clear: left;
  margin-left: 0;
}

#works .works .works-list li .image {
  display: block;
  height: 148px;
  text-align: center;
  font-size: 0;
  line-height: 148px;
}

#works .works .works-list li .image img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 148px;
  vertical-align: middle;
}

#works .works .works-list li .title {
  height: 40px;
  margin: 11px 0;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.1em;
  overflow: hidden;
}

#works .works .works-list li .category-link {
  margin: 0 0 14px;
}

#works .works .works-list li .view-detail {
  width: 212px;
  height: 42px;
  border: none;
  line-height: 42px;
}

#works .works-detail {
}

#works .works-detail .works-categories {
  margin-bottom: 20px;
}

#works .works-detail article {
}

#works .works-detail article header {
  margin: 0 0 30px;
  padding: 0 0 15px;
  border-bottom: 2px solid #E5E5E5;
}

#works .works-detail article header h2 {
  margin: 0 0 5px;
  color: #02599E;
  font-size: 22px;
  font-weight: bold;
  line-height: 38px;
  letter-spacing: 0.1em;
}

#works .works-detail article .slides {
  margin: 0 0 20px;
}

#works .works-detail article .slides .thumbs {
  height: 130px;
  margin-right: -20px;
}

#works .works-detail article .slides .thumbs li {
  float: left;
  margin: 0 17px 0 0;
  width: 121px;
  height: 110px;
  text-align: center;
  font-size: 0;
  line-height: 110px;
  cursor: pointer;
  background-color: #ECECEC;
}

#works .works-detail article .slides .thumbs li img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
}

#works .works-detail article .slides .view {
  width: 672px;
  height: 450px;
  text-align: center;
  font-size: 0;
  line-height: 450px;
  background-color: #ECECEC;
}

#works .works-detail article .slides .view img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
}

#works .works-detail article p {
  margin: 10px 0 20px;
  font-size: 16px;
  line-height: 30px;
}

#works .works-detail article strong { font-weight: bold; }
#works .works-detail article em { font-style: italic; }
#works .works-detail article blockquote {
  display: block;
  -webkit-margin-before: 1em;
  -webkit-margin-after: 1em;
  -webkit-margin-start: 40px;
  -webkit-margin-end: 40px;
}
 
#works .works-detail article .aligncenter {
  display: block;
  margin: 0 auto;
}

#works .works-detail article .alignright {
  float: right;
  margin: 0 0 10px 10px;
}

#works .works-detail article .alignleft {
  float: left;
  margin: 0 10px 10px 0;
}

#works .works-detail article .detail {
  clear: both;
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #E5E5E5;
}

#works .works-detail article .detail tr th {
  width: 110px;
  padding: 10px 1px;
  border-bottom: 1px solid #E5E5E5;
  color: #02599E;
  vertical-align: top;
  text-align: left;
  font-size: 14px;
  font-weight: bold;
  line-height: 25px;
}

#works .works-detail article .detail tr th span {
  display: inline-block;
  padding: 0 0 0 8px;
  border-left: 3px solid #02599E;
}

#works .works-detail article .detail tr td {
  padding: 10px 0;
  border-bottom: 1px solid #E5E5E5;
  font-size: 14px;
  line-height: 25px;
}

#works .works-detail+.view-detail {
  width: 308px;
  margin: 17px auto 0;
}


/* --------------------------------------------------
 * topics
 */

#topics .lower > header:before {
  background-image: url(../img/topics/title-bg.png);
}

#topics article {
}

#topics article header {
  margin: 0 0 30px;
  padding: 0 0 18px 2px;
  border-bottom: 1px solid #E5E5E5;
}

#topics article header time {
  display: block;
  height: 24px;
  color: #02599E;
  font-size: 16px;
  font-weight: bold;
  line-height: 16px;
}

#topics article header h4 {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 0.1em;
}

#topics article .body {
  overflow: hidden;
}

#topics article .body p {
  margin: 0 0 1em;
  font-size: 16px;
  line-height: 33px;
}

#topics article .body img {
  max-width: 100%;
  height: auto;
  margin: 1em 0;
}

#topics article .body strong { font-weight: bold; }
#topics article .body em { font-style: italic; }
#topics article .body blockquote {
  display: block;
  -webkit-margin-before: 1em;
  -webkit-margin-after: 1em;
  -webkit-margin-start: 40px;
  -webkit-margin-end: 40px;
}

#topics article .body .aligncenter {
  display: block;
  margin: 0 auto;
}

#topics article .body .alignright {
  float: right;
  margin: 0 0 10px 10px;
}

#topics article .body .alignleft {
  float: left;
  margin: 0 10px 10px 0;
}
 

/* --------------------------------------------------
 * privacy
 */

#privacy .lower > header:before {
  background-image: url(../img/privacy/title-bg.png);
}

#privacy main section p {
  margin: 0 0 38px;
  font-size: 16px;
  line-height: 33px;
  letter-spacing: -0.03em;
}

#privacy main section p+p {
  margin: -24px 0 0;
}

#privacy main section dl dd ul li {
  margin: -38px 0 38px;
  padding: 0 0 0 1em;
  text-indent: -1em;
  font-size: 16px;
  line-height: 33px;
  letter-spacing: -0.05em;
}

#privacy main section dl dd ul li:before {
  content: "・";
}


/* --------------------------------------------------
 * inquiry/
 */

#inquiry .lower > header:before {
  background-image: url(../img/inquiry/title-bg.png);
}

#inquiry main .contact-tel {
  margin: 0 0 40px;
}

#inquiry main .contact-tel .tel {
  display: inline-block;
  margin: 0 10px 0 0;
  font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
  font-size: 39px;
  line-height: 39px;
}

#inquiry main .contact-tel .tel:before {
  content: "";
  display: inline-block;
  width: 34px;
  height: 34px;
  margin: 0 5px 0 0;
  vertical-align: -3px;
  background: url(../img/common/tel-icon-sp.png) no-repeat 0 0;
  background-size: 34px 34px;
}

#inquiry main .contact-tel .time {
  display: inline-block;
  font-size: 14px;
  line-height: 14px;
}

#inquiry main .contact-form p {
  margin: 0 0 15px;
  font-size: 16px;
  line-height: 33px;
}

#inquiry main .contact-form .errors {
  padding: 15px 20px;
  border: 1px solid #E20C0C;
  color: #E20C0C;
}

#inquiry main .contact-form .required {
  color: #E20C0C;
  font-weight: normal;
}

#inquiry main .contact-form table {
  width: 100%;
  margin: 0 0 20px;
  border-collapse: collapse;
}

#inquiry main .contact-form table tr th {
  width: 203px;
  padding: 20px 0;
  border-bottom: 1px dotted #D9D9D9;
  text-align: left;
  vertical-align: top;
  color: #02599E;
  font-size: 16px;
  font-weight: bold;
  line-height: 40px;
}

#inquiry main .contact-form table tr td {
  padding: 20px 0;
  border-bottom: 1px dotted #D9D9D9;
}

#inquiry main .contact-form table.confirm tr td {
  padding: 25px 0;
  line-height: 30px;
}

#inquiry main .contact-form table tr:last-child > * {
  border: none;
}

#inquiry main .contact-form table tr td input {
  width: 100%;
  height: 40px;
  border: 1px solid #DEDEDE;
  padding: 0 10px;
  font-size: 14px;
}

#inquiry main .contact-form table tr td input[name='zipcode'] {
  width: 204px;
}

#inquiry main .contact-form table tr td input[name='address'] {
  margin-top: 20px;
}

#inquiry main .contact-form table tr td textarea {
  width: 100%;
  height: 154px;
  padding: 10px;
  border: 1px solid #DEDEDE;
  font-size: 14px;
}

#inquiry main .contact-form .buttons {
  text-align: center;
  font-size: 0;
}

#inquiry main .contact-form .buttons .view-detail {
  display: inline-block;
  width: 164px;
  margin: 0 10px;
}

#inquiry main .contact-form .submit-button {
  margin: 0 auto;
}

#inquiry main .complete .contact-form p {
  margin: 0 0 15px;
  font-size: 16px;
  line-height: 31px;
}

#inquiry main .complete .contact-form p strong {
  color: #EE1C1C;
}

#inquiry main .complete .contact-form .view-detail {
  width: 308px;
  margin: 30px auto 0;
}

.custom-wpcf7c-confirmed input.wpcf7-text,
.custom-wpcf7c-confirmed textarea { outline: 0;
      cursor: unset;
      box-shadow: 0 0 0 1000px #fff inset;
      border: none !important;
    }

.custom-wpcf7c-confirmed input.wpcf7-text:-webkit-autofill {
      box-shadow: 0 0 0 1000px #fff inset;
      border: none !important;
    }

.wpcf7c-btn-confirm,
.wpcf7c-btn-back,
.wpcf7-submit{
      display: block;
    position: relative;
    width: 289px;
    height: 52px;
    border: 2px solid #FFFFFF;
    border-radius: 1px;
    box-shadow: inset 0 -25px #014f8e;
    color: rgba(255, 255, 255, 0.9);
    text-align: center;
    font-size: 16px;
    line-height: 43px;
    letter-spacing: 0.03em;
    background-color: #02599E;
    margin-left: auto;
    margin-right: auto;

}

.wpcf7c-btn-back,
.wpcf7-submit{
      width: 164px;
    margin-left: 10px;
    margin-right: 10px;
}

span.arrow_1{
  position: relative;height: 100%;
}
span.arrow_1:before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 7px;
    height: 100%;
    margin: 0 10px 0 0;
    vertical-align: middle;
    background: url(../img/common/view-detail-arrow.png) no-repeat 0 48%;

    z-index: 10;
    left: 70px;

}

span.arrow_2{
  position: relative;
  height: 55px;
}
span.arrow_2:before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 7px;
    height: 100%;
    margin: 0 10px 0 0;
    vertical-align: middle;
    background: url(../img/common/view-detail-arrow.png) no-repeat 0 46%;
    
    z-index: 10;
    left: 60px;

}

.wpcf7 .ajax-loader {
    display: none !important;
}


section.recruit{
  height: 432px;
  position: relative;
display: block;
}

section.recruit .right{
  height: 432px;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;    width: 50%;
    margin-left: auto;
}

section.recruit .text-1{    margin-top: 30px;
    margin-bottom: 30px;
  font-size: 26px;
  color: #fff;    font-family: "リュウミン R-KL", "A-OTF リュウミン Pro R-KL";
}

section.recruit .link-1{
  width: 325px;
  height: 48px;
  border: 1px solid #fff;
  font-size: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}

section.recruit .link-1:hover {
  text-decoration: none;
  opacity: 0.8;
  background: rgba(255, 255, 255, 0.2);
}

section.recruit .wrap{
  position: relative;
}

section.recruit .wrap::before{
  position: absolute;
  content:'';
  top: 0;
    left: 0px;
width: 609px;
  height: 432px;
      background: url(../img/top/recruit-1.png) no-repeat;

}

section.recruit::before{
  position: absolute;
  content:'';
  top: 0;
left: 0;
width: 100%;
  height: 50%;
  background: #014f8e;
  z-index: -1;
}
section.recruit::after{
  position: absolute;
  content:'';
  bottom: 0;
left: 0;
width: 100%;
  height: 50%;
  background: #00467e;
   z-index: -1;
}


form.wpcf7-form.sent .wpcf7-response-output{
    display: block !important;
}