@charset "utf-8";

/*============================
#base
============================*/
body {
  border-top: solid 30px #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  line-height: 1.6;
  color: #222;
}

.container {
  width: 938px;
  margin: 0 auto;
}

.mgb_sm {
  margin-bottom: 15px;
}

.wrap {
  width: 820px;
  margin: 0 auto;
}

.title {
  background: #209fde;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  padding: 10px 0;
  line-height: 1;
}

.title i.good {
  width: 47px;
  height: 40px;
  background: url(./img/icon_good.png) no-repeat center center / contain;
  margin-right: 10px;
}

.title span.sm {
  font-size: 20px;
  font-weight: 400;
}

.title span.lg {
  font-size: 34px;
  font-weight: 700;
}

.flex {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

.ttl_01 {
  color: #f71f2a;
  font-size: 26px;
  border-bottom: solid 2px #222;
  padding-bottom: 10px;
  margin-bottom: 15px;
  line-height: 1;
}

.ttl_02 {
  position: relative;
  padding-left: 1em;
  font-weight: 500;
  font-size: 18px;
  padding-bottom: 8px;
  border-bottom: solid 1px #222;
  margin-bottom: 10px;
  line-height: 1;
}

.ttl_02:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "■";
  color: #219fde;
}

a {
  display: inline-block;
  vertical-align: baseline;
  text-decoration: none;
  color: #666;
}

a:hover {
  color: #222;
}

a img {
  vertical-align: bottom;
}

.notes {
  padding-left: 1em;
  text-indent: -1em;
}

.totop {
  position: relative;
  text-align: center;
  margin: 60px 0;
}

.totop:before {
  position: absolute;
  content: "";
  width: 100%;
  height: 0;
  border-top: dotted 1px #ddd;
  left: 0;
  top: 50%;
}

.totop a {
  position: relative;
  z-index: 2;
  width: 50px;
  height: 50px;
  display: inline-block;
  background: #fff;
  border: dotted 1px #ddd;
}

.totop a:before {
  position: absolute;
  content: "";
  left: 50%;
  top: 50%;
  border-style: solid;
  border-width: 0 8px 8px;
  border-color: #aaa transparent;
  transform: translate(-50%, -50%);
}

.circle {
  position: relative;
  padding-left: 1.2em;
}

.circle:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "●";
}

/*============================
#header
============================*/
header {
  border-top: solid 3px #2daebf;
  padding-top: 30px;
  margin-bottom: 10px;
}

header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

header .container h1 {
  width: 462px;
  margin: 0;
}

header .container h1 a {
  display: block;
}

header .container .inquiry {
  line-height: 1;
}

header .container .inquiry .btn {
  margin-bottom: 8px;
}

header .container .inquiry .btn a {
  display: block;
  background: #000;
  color: #fff;
  font-size: 13px;
  padding: .6em 1.5em .7em;
  font-weight: 300;
}

header .container .inquiry .contact {
  padding-left: 36px;
}

header .container .inquiry .contact.tel {
  font-weight: 500;
  background: url(./img/icon_tel.png) no-repeat center left;
  margin-bottom: 10px;
  font-size: 20px;
}

header .container .inquiry .contact.mail {
  background: url(./img/icon_mail.png) no-repeat center left;
  font-size: 20px;
}

header .container nav {
  width: 100%;
  line-height: 1;
  background: #333;
  margin-top: 30px;
}

header .container nav ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  list-style: none;
}

header .container nav ul li {
  width: 134px;
}

header .container nav ul li span{
  font-size:12px;
  display:block;
  margin-top:.3em
}
header .container nav ul li a {
  display: block;
  text-align: center;
  font-weight: 400;
  color: #fff;
  font-size: 14px;
  padding: .8em;
}
header .container nav ul li a.home:before {
    content:"";
    width:1.2em;
    height:1.2em;
    display:inline-block;
    background:url(img/icon_home.png) no-repeat center center /contain;
    margin-right:.5em;
  vertical-align:baseline;
}
header .container nav ul li a p{
  display:inline-block;
  vertical-align:baseline;
}
header .container nav ul li a:hover {
  color: #ccff00;
}
header .container nav ul li a.home:hover:before {
    background-image:url(img/icon_home_on.png);
}

/*============================
#footer
============================*/
footer {
  padding: 20px;
  font-size: 14px;
  font-weight: 300;
}

footer nav {
  line-height: 1;
  margin-bottom: 1em;
}

footer nav ul {
  display: flex;
  justify-content: center;
}

footer ul li .home{
  padding-left:1.5em;
  background:url(img/icon_home_gr.png) no-repeat left center /contain;
}
footer ul li .home:hover{
  background-image:url(img/icon_home_gr_on.png)
}

footer ul li:not(:last-child) {
  margin-right: 2em;
}

footer p.copy {
  text-align: center;
  line-height: 1;
}

/*============================
#slide
============================*/
.slide {
  position: relative;
  margin-bottom: 20px;
}

.slide:before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0%;
  width: 100%;
  height: 350px;
  background: url(./img/mv_bg.jpg) repeat center center;
  transform: translateY(-50%);
}

.slide .container {
  position: relative;
  z-index: 2;
  width: 940px;
}

/*============================
#point
============================*/
#point {
  margin-bottom: 80px;
}

#point .title {
  margin-bottom: 40px;
}

#point .title .sm{
  font-size:18px;
}
#point .title .sm + .lg{
  font-size:32px;
}
#point ul.point_list {
  counter-reset: num01 0;
  margin: 0 auto 80px;
}

#point ul.point_list li {
  position: relative;
  counter-increment: num01 1;
  padding-left: 120px;
}

#point ul.point_list li:before {
  position: absolute;
  content: counter(num01);
  left: 0;
  top: -.1em;
  width: 100px;
  text-align: center;
  font-size: 100px;
  line-height: 1;
  color: #575757;
  font-weight: 400;
}

#point ul.point_list li:nth-child(n+2) {
  margin-top: 80px;
}

#point ul.point_list li:nth-child(1) .img_box {
  width: 423px;
  margin-right: 17px;
}
#point ul.point_list li:nth-child(1) .txt_box{
  width:260px;
}
#point ul.point_list li:nth-child(1) .img_in {
  display: block;
  text-align: right;
  margin-top: 10px;
}

#point ul.point_list li:nth-child(2) .flex {
  display: block;
}

#point ul.point_list li:nth-child(2) .img_box {
  margin-bottom: 10px;
}

#point ul.point_list li:nth-child(3) .flex {
  display: block;
}

#point ul.point_list li:nth-child(3) .img_box {
  width: 449px;
  margin-bottom: 15px;
}

#point ul.point_list li:nth-child(4) .flex {
  justify-content: flex-start;
}

#point ul.point_list li:nth-child(4) .img_box {
  /*width: 271px;*/
  margin-right: 20px;
}
#point ul.point_list li:nth-child(4) .txt_box{
  width:410px
}
#point ul.point_list li:nth-child(4) .txt_box p:not(:last-child) {
  margin-bottom: 1em;
}

#point ul.point_list li:nth-child(5) .img_box {
  margin-right: 20px;
}

#point ul.point_list li:nth-child(6):before {
  height:80px;
  content:"";
  background:url(img/icon_gear.png) no-repeat center center /contain;
  color: #f71f2a;
}
#point ul.point_list li:nth-child(6) .sup {
  position: absolute;
  top: 80px;
  left: 5px;
  font-weight: bold;
  font-size: 20px;
  color: #f71f2a;
}
#point ul.point_list li:nth-child(6) .flex {
  position:relative;
  height: 309px;
}

#point ul.point_list li:nth-child(6) .img_box{
  position:absolute;
  width:100%;
  height:100%;
  z-index:1;
}
#point ul.point_list li:nth-child(6) .txt_box{
  position:relative;
  width:calc(100% - 440px);
  z-index:2;
  margin-left:auto;
  margin-right:0;

}
#point ul.point_list li:nth-child(6) .img_box img{
  max-width:100%;
}
#point ul.point_list li .txt_box .notes {
  margin-top: 10px;
  font-weight: 500;
  font-size: 15px;
}

#point ul.point_list li h3.ttl_01 .badge {
  background: #f71f2a;
  display: inline-block;
  color: #fff;
  padding: .1em .5em .2em;
  border-radius: .5em;
  line-height: 1;
  margin-right: .5em;
}

#point .banner a {
  display: block;
}


/*============================
#mode
============================*/
#mode .title {
  margin-bottom: 25px;
}

#mode .flex {
  background: #f9f6d3;
  padding: 20px;
}

#mode .txt_box {
    width: 345px;
}

#mode .txt_box .notes {
  margin-bottom: 1em;
}

#mode .txt_box p:not(:last-child) {
  margin-bottom: 1em;
}

#mode .txt_box p span.img_in {
  display: block;
  text-align: center;
}

#mode .txt_box p span.img_in+span {
  text-align: center;
  display: block;
}

#mode .txt_box p span.in_img img {}

#mode .img_box {
  width: 409px;
  margin-left: 26px;
}

/*============================
#structure
============================*/
#structure .title {
  margin-bottom: 40px;
}

#structure .sub_box {
  width: 47%;
  font-size: 15px;
}
#structure .sub_box .ttl_02 .sm{
  font-size:14px;
  display:inline-block;
  margin-left:.5em;
}
#structure .sub_box .ttl_02:not(:first-child) {
  margin-top: 25px;
}

#structure .sub_box ul li {
  position: relative;
  padding-left: 1em;
}

#structure .sub_box ul li:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "・";
  font-weight: bold;
}

#structure .sub_box .img_box {
  margin-top: 1em;
}
#structure .sub_box .img_box.sm_right > img {
  position: relative;
  display: block;
  width: 200px;
  margin-top: -50px;
  margin-left: auto;
  margin-bottom: -50px;
}

#structure .sub_box .img_box img {
  max-width: 100%;
  height: auto;
}

#structure .sub_box table {
  width: 100%;
}

#structure .sub_box table tbody tr th,
#structure .sub_box table tbody tr td {
  border: solid 1px #222;
  font-weight: 400;
  line-height: 1;
  text-align: left;
  padding: .2em 1em;
}

#structure .sub_box table tbody tr th {
  background: #d3e6f4;
}

#structure .sub_box .notes {
  font-size: 14px;
  margin-top: 8px;
}

/*============================
#results
============================*/
#results .img_box {
  text-align: center;
}

/*============================
#catalog
============================*/
#catalog .title {
  margin-bottom: 40px;
}

#catalog .catalog_box {
  text-align: center;
  margin-bottom: 40px;
}

#catalog .dl_btn {
  text-align: center;
  margin-bottom: 40px;
}

#catalog .flex {
  justify-content: center;
}

#catalog .img_box {
  width: 222px;
  margin-right: 18px;
}

#catalog .img_box a {
  display: block;
}

#catalog .txt_box {
  width: 450px;
}

#catalog .txt_box p {
  font-size: 14px;
  margin-bottom: 10px;
}

#catalog .txt_box p strong {
  font-size: 15px;
}
/*============================
#movie
============================*/
#movie{
  margin-bottom:100px;
}
#movie .title {
  margin-bottom: 30px;
}

/*============================
#company
============================*/
#company .title {
  margin-bottom: 30px;
}

#company table {
  width: 100%;
}

#company table tbody tr th,
#company table tbody tr td {
  font-size: 14px;
  border: solid 1px #000;
  padding: .5em 1em;
  font-weight: 400;
  text-align: left;
}

#company table tbody tr th {
  background: #eaeaea;
}

#company table tbody tr td a {
  text-decoration: underline;
  color: #1798d8;
}
#company table tbody tr td a:hover{
  text-decoration: none;
}

/*============================
#contact
============================*/
#contact .title {
  margin-bottom: 40px;
}

#contact dl {
  margin-bottom: 35px;
  font-size: 13px;
}

#contact dl dt:before {
  content: "■";
}

#contact dl dd:not(:last-child) {
  margin-bottom: 1.5em;
}

#contact dl dd {
  font-weight: 300;
}

#contact .form_box {
  margin-bottom: 35px;
}

#contact .privacy p {
  font-size: 14px;
  line-height: 1.4;
}