/*!
 * Bootstrap Reboot v4.1.1 (https://getbootstrap.com/)
 * Copyright 2011-2018 The Bootstrap Authors
 * Copyright 2011-2018 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
 */
 *,
 *::before,
 *::after {
   box-sizing: border-box; }
 
 html {
   font-family: sans-serif;
   line-height: 1.15;
   -webkit-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
   -ms-overflow-style: scrollbar;
   -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
 
 @-ms-viewport {
   width: device-width; }
 
 article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
   display: block; }
 
 body {
   margin: 0;
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
   font-size: 1rem;
   font-weight: 400;
   line-height: 1;
   color: #212529;
   text-align: left;
   background-color: #fff; }
 
 [tabindex="-1"]:focus {
   outline: 0 !important; }
 
 hr {
   box-sizing: content-box;
   height: 0;
   overflow: visible; }
 
 h1, h2, h3, h4, h5, h6 {
   margin: 0; }
 
 p {
   margin: 0; }
 
 abbr[title],
 abbr[data-original-title] {
   text-decoration: underline;
   -webkit-text-decoration: underline dotted;
   text-decoration: underline dotted;
   cursor: help;
   border-bottom: 0; }
 
 address {
   margin-bottom: 1rem;
   font-style: normal;
   line-height: inherit; }
 
 ol,
 ul,
 dl {
   margin: 0;
   padding: 0; }
 
 ol ol,
 ul ul,
 ol ul,
 ul ol {
   margin: 0;
   padding: 0; }
 
 dt {
   font-weight: 700; }
 
 dd {
   margin: 0;
   padding: 0; }
 
 blockquote {
   margin: 0 0 1rem; }
 
 dfn {
   font-style: italic; }
 
 b,
 strong {
   font-weight: bolder; }
 
 small {
   font-size: 80%; }
 
 sub,
 sup {
   position: relative;
   font-size: 75%;
   line-height: 0;
   vertical-align: baseline; }
 
 sub {
   bottom: -.25em; }
 
 sup {
   top: -.5em; }
 
 a {
   color: #007bff;
   text-decoration: none;
   background-color: transparent;
   -webkit-text-decoration-skip: objects; }
 
 a:hover {
   color: #0056b3;
   text-decoration: underline; }
 
 a:not([href]):not([tabindex]) {
   color: inherit;
   text-decoration: none; }
 
 a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
   color: inherit;
   text-decoration: none; }
 
 a:not([href]):not([tabindex]):focus {
   outline: 0; }
 
 pre,
 code,
 kbd,
 samp {
   font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
   font-size: 1em; }
 
 pre {
   margin: 0;
   overflow: auto;
   -ms-overflow-style: scrollbar; }
 
 figure {
   margin: 0; }
 
 img {
   vertical-align: middle;
   border-style: none; }
 
 svg:not(:root) {
   overflow: hidden;
   vertical-align: middle; }
 
 table {
   border-collapse: collapse; }
 
 caption {
   padding: 0;
   color: #6c757d;
   text-align: left;
   caption-side: bottom; }
 
 th {
   text-align: inherit; }
 
 label {
   display: inline-block;
   margin: 0; }
 
 button {
   border-radius: 0; }
 
 button:focus {
   outline: 1px dotted;
   outline: 5px auto -webkit-focus-ring-color; }
 
 input,
 button,
 select,
 optgroup,
 textarea {
   margin: 0;
   font-family: inherit;
   font-size: inherit;
   line-height: inherit; }
 
 button,
 input {
   overflow: visible; }
 
 button,
 select {
   text-transform: none; }
 
 button,
 html [type="button"],
 [type="reset"],
 [type="submit"] {
   -webkit-appearance: button; }
 
 button::-moz-focus-inner,
 [type="button"]::-moz-focus-inner,
 [type="reset"]::-moz-focus-inner,
 [type="submit"]::-moz-focus-inner {
   padding: 0;
   border-style: none; }
 
 input[type="radio"],
 input[type="checkbox"] {
   box-sizing: border-box;
   padding: 0; }
 
 input[type="date"],
 input[type="time"],
 input[type="datetime-local"],
 input[type="month"] {
   -webkit-appearance: listbox; }
 
 textarea {
   overflow: auto;
   resize: vertical; }
 
 fieldset {
   min-width: 0;
   padding: 0;
   margin: 0;
   border: 0; }
 
 legend {
   display: block;
   width: 100%;
   max-width: 100%;
   padding: 0;
   margin: 0;
   font-size: 1.5rem;
   line-height: inherit;
   color: inherit;
   white-space: normal; }
 
 progress {
   vertical-align: baseline; }
 
 [type="number"]::-webkit-inner-spin-button,
 [type="number"]::-webkit-outer-spin-button {
   height: auto; }
 
 [type="search"] {
   outline-offset: -2px;
   -webkit-appearance: none; }
 
 [type="search"]::-webkit-search-cancel-button,
 [type="search"]::-webkit-search-decoration {
   -webkit-appearance: none; }
 
 ::-webkit-file-upload-button {
   font: inherit;
   -webkit-appearance: button; }
 
 output {
   display: inline-block; }
 
 summary {
   display: list-item;
   cursor: pointer; }
 
 template {
   display: none; }
 
 [hidden] {
   display: none !important; }
 
 html, body {
   font-size: 16px;
   font-family: "Yu Gothic", YuGothic, sans-serif;
   font-feature-settings: 'palt';
   line-height: 1.75;
   letter-spacing: .015em; }
 
 a:hover {
   text-decoration: none; }
 
 main {
   width: 100%;
   margin: 0;
   padding: 0; }
 
 section {
   width: 100%;
   margin: 0;
   padding: 0; }
 
 .box {
   width: 100%;
   max-width: 1080px;
   margin: 0 auto;
   padding: 0 40px; }
 
 #fixed-contact {
   position: fixed;
   top: 40px;
   right: 40px;
   display: block;
   width: 200px;
   transition: .4s;
   z-index: 999; }
   @media (max-width: 768px) {
     #fixed-contact {
       top: 15px;
       right: 10px;
       width: 140px; } }
   #fixed-contact:hover {
     opacity: .7; }
   #fixed-contact img {
     width: 100%; }
 
 #main-visual {
   position: relative;
   width: 100%; }
   #main-visual #mv-text {
     position: absolute;
     top: 50%;
     left: 50%;
     display: flex;
     justify-content: center;
     align-items: center;
     flex-wrap: wrap;
     display: -webkit-flex;
     -webkit-justify-content: center;
     -webkit-align-items: center;
     -webkit-flex-wrap: wrap;
     transform: translate(-50%, -80%); }
     @media (max-width: 768px) {
       #main-visual #mv-text {
         width: 90%; } }
     #main-visual #mv-text h1 {
       display: block;
       width: 100%;
       max-width: 660px;
       margin-bottom: 7.5%; }
       #main-visual #mv-text h1 img {
         display: block;
         width: 100%;
         margin: 0;
         padding: 0; }
       #main-visual #mv-text h1 span {
         display: block;
         font-size: 18px;
         font-weight: 700;
         color: #fff;
         text-align: center;
         letter-spacing: .075em; }
         @media (max-width: 768px) {
           #main-visual #mv-text h1 span {
             font-size: 12px; } }
   #main-visual > picture,
   #main-visual img {
     width: 100%; }
 
 #inner-title {
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   display: -webkit-flex;
   -webkit-justify-content: center;
   -webkit-align-items: center;
   -webkit-flex-wrap: wrap;
   width: 100%;
   height: 400px;
   background-image: url(../image/inner-mv.jpg);
   background-repeat: no-repeat;
   background-size: cover;
   background-position: center; }
   @media (max-width: 768px) {
     #inner-title {
       height: 300px; } }
   #inner-title h1 {
     position: absolute;
     top: 40px;
     left: 40px;
     width: 380px; }
     @media (max-width: 768px) {
       #inner-title h1 {
         top: 20px;
         left: 15px;
         width: 240px; } }
     #inner-title h1 img {
       width: 100%; }
   #inner-title h2 {
     width: 210px; }
     @media (max-width: 768px) {
       #inner-title h2 {
         width: 150px; } }
     #inner-title h2 img {
       width: 100%; }
     #inner-title h2 span {
       display: block;
       margin-top: 5px;
       font-size: 15px;
       font-weight: 700;
       color: #fff;
       text-align: center; }
       @media (max-width: 768px) {
         #inner-title h2 span {
           font-size: 12px; } }
   #inner-title + .box {
     margin-top: 90px; }
     #inner-title + .box > h2 {
       margin: 60px 0 15px 0;
       font-size: 28px;
       color: #2A558F;
       text-align: center; }
       @media (max-width: 768px) {
         #inner-title + .box > h2 {
           font-size: 24px;
           text-align: left; } }
     #inner-title + .box > p {
       margin-bottom: 30px;
       text-align: center; }
       @media (max-width: 768px) {
         #inner-title + .box > p {
           text-align: left; } }
 
 #about {
   padding-top: 160px; }
   @media (max-width: 768px) {
     #about {
       padding-top: 120px; } }
   #about .box h2 {
     margin-bottom: 70px;
     font-size: 15px;
     font-weight: 700;
     color: #000;
     text-align: center;
     letter-spacing: .075em; }
     @media (max-width: 768px) {
       #about .box h2 {
         font-size: 12px; } }
     #about .box h2 img {
       display: block;
       width: auto;
       max-width: 100%;
       height: 40px;
       margin: 0 auto 10px auto; }
       @media (max-width: 768px) {
         #about .box h2 img {
           height: 30px; } }
   #about .box > p {
     font-size: 18px;
     font-weight: 700;
     color: #000;
     text-align: center;
     line-height: 2.25;
     letter-spacing: .075em; }
     @media (max-width: 768px) {
       #about .box > p {
         font-size: 16px; } }
     #about .box > p br.sp {
       display: none; }
       @media (max-width: 768px) {
         #about .box > p br.sp {
           display: block; } }
   #about .box .value {
     margin-top: 90px;
     padding-top: 60px; }
     #about .box .value h3 {
       position: relative;
       width: 100%;
       margin-bottom: 90px;
       font-size: 25px;
       font-weight: 700;
       text-align: center;
       letter-spacing: .075em; }
       @media (max-width: 768px) {
         #about .box .value h3 {
           font-size: 22px; } }
       #about .box .value h3:before {
         content: '';
         position: absolute;
         left: calc(50% - 20px);
         bottom: -20px;
         display: block;
         width: 40px;
         height: 4px;
         background: #2A558F; }
     #about .box .value > picture,
     #about .box .value > img {
       display: block;
       width: 100%;
       max-width: 900px;
       margin: 0 auto 60px auto; }
       #about .box .value > picture img,
       #about .box .value > img img {
         display: block;
         width: 100%; }
     #about .box .value ul.value-text {
       width: 100%; }
       #about .box .value ul.value-text li {
         display: flex;
         justify-content: space-between;
         align-items: flex-start;
         flex-wrap: wrap;
         display: -webkit-flex;
         -webkit-justify-content: space-between;
         -webkit-align-items: flex-start;
         -webkit-flex-wrap: wrap;
         margin: 0;
         padding: 35px 0;
         list-style: none;
         border-top: 1px solid #dadada; }
         #about .box .value ul.value-text li:last-child {
           border-bottom: 1px solid #dadada; }
         #about .box .value ul.value-text li .title {
           width: 200px; }
           @media (max-width: 768px) {
             #about .box .value ul.value-text li .title {
               width: 100%;
               margin-bottom: 20px; } }
           #about .box .value ul.value-text li .title img {
             display: block;
             width: auto;
             max-width: 100%;
             height: 50px; }
         #about .box .value ul.value-text li .content {
           width: calc(100% - 200px); }
           @media (max-width: 768px) {
             #about .box .value ul.value-text li .content {
               width: 100%; } }
           #about .box .value ul.value-text li .content small {
             display: block;
             margin-top: 5px;
             color: #2E9FD2; }
     #about .box .value .company {
       width: 100%;
       margin: 90px 0 0 0;
       padding: 30px;
       background: #f7f7f7; }
       @media (max-width: 600px) {
         #about .box .value .company {
           padding: 15px; } }
       #about .box .value .company table {
         width: 100%; }
         #about .box .value .company table tr th, #about .box .value .company table tr td {
           margin: 0;
           padding: 10px; }
           @media (max-width: 600px) {
             #about .box .value .company table tr th, #about .box .value .company table tr td {
               display: block;
               width: 100%;
               font-size: 14px; } }
         @media (max-width: 600px) {
           #about .box .value .company table tr th {
             padding-bottom: 0; } }
 
 #groups {
   width: 100%;
   margin-top: 200px;
   border-top: 1px solid #dadada; }
   #groups .groups-wrap {
     display: flex;
     justify-content: space-between;
     align-items: stretch;
     flex-wrap: wrap;
     display: -webkit-flex;
     -webkit-justify-content: space-between;
     -webkit-align-items: stretch;
     -webkit-flex-wrap: wrap;
     width: 100%; }
     #groups .groups-wrap .item {
       border-top: 1px solid #dadada;
       position: relative;
       width: 50%; }
       @media (max-width: 768px) {
         #groups .groups-wrap .item {
           width: 100%; }
           #groups .groups-wrap .item + .item {
             border-top: 1px solid #dadada; } }
       #groups .groups-wrap .item:nth-child(2n) {
         border-left: 1px solid #dadada;
         border-right: 1px solid #dadada; }
         @media (max-width: 768px) {
           #groups .groups-wrap .item:nth-child(2n) {
             border-left: none;
             border-right: none; } }
       #groups .groups-wrap .item a {
         display: flex;
         justify-content: center;
         align-items: center;
         flex-wrap: wrap;
         display: -webkit-flex;
         -webkit-justify-content: center;
         -webkit-align-items: center;
         -webkit-flex-wrap: wrap;
         align-content: flex-start;
         width: 100%;
         height: 100%;
         padding-bottom: 60px;
         color: #000;
         transition: .4s; }
         #groups .groups-wrap .item a:after {
           content: '';
           position: absolute;
           right: 25px;
           bottom: 25px;
           display: block;
           width: 12px;
           height: 12px;
           transform: rotate(45deg);
           border-top: 2px solid #2b558f;
           border-right: 2px solid #2b558f;
           user-select: none; }
         #groups .groups-wrap .item a:hover {
           opacity: .7; }
         #groups .groups-wrap .item a img {
           width: auto;
           max-width: 100%;
           height: 150px;
           margin: 60px 0 20px 0; }
         #groups .groups-wrap .item a address {
           width: 100%;
           font-size: 14px;
           text-align: center; }
         #groups .groups-wrap .item a .works {
           margin-top: 15px;
           text-align: center; }
           #groups .groups-wrap .item a .works b {
             display: inline-block;
             margin: 0 0 10px 0;
             padding: 5px 30px;
             font-size: 14px;
             line-height: 1;
             border-radius: 999px;
             background: rgba(42, 85, 143, 0.1); }
           #groups .groups-wrap .item a .works p {
             font-size: 14px; }
 
             #groups .groups-wrap .item.row-2 a {
               display: flex;
               justify-content: center;
               align-items: center;
               flex-wrap: wrap;
               display: -webkit-flex;
               -webkit-justify-content: center;
               -webkit-align-items: center;
               -webkit-flex-wrap: wrap;
               align-content: flex-start;
               width: 100%;
               height: auto;
               padding: 25px 0;
               color: #000;
               transition: .4s; }
               #groups .groups-wrap .item.row-2 a + a {
                 border-top: 1px dashed #dadada; }
                 @media (max-width: 768px) {
                   #groups .groups-wrap .item.row-2 a + a {
                     padding-bottom: 60px; } }
                 #groups .groups-wrap .item.row-2 a p {
                   width: 100%;
                   font-size: 14px;
                   font-weight: 700;
                   text-align: center; }
                   #groups .groups-wrap .item.row-2 a p span {
                     display: inline-block;
                     padding: .3em 1.5em .2em 1.5em;
                     line-height: 1.2;
                     border: 1px solid #000;
                     border-radius: 999px; }
                 #groups .groups-wrap .item.row-2 a address {
                   margin-bottom: 0; }
                   #groups .groups-wrap .item.row-2 a img {
                     margin-top: 0;
                     max-width: 90%;
                     max-height: 50px; }
 
 #recruit {
   margin: 0;
   padding: 90px 20px;
   background-image: url(../image/footer_bg.jpg);
   background-repeat: no-repeat;
   background-size: cover;
   background-position: center; }
   #recruit .box {
     display: flex;
     justify-content: center;
     align-items: center;
     flex-wrap: wrap;
     display: -webkit-flex;
     -webkit-justify-content: center;
     -webkit-align-items: center;
     -webkit-flex-wrap: wrap;
     padding: 25px 25px 25px 40px;
     border: 5px solid #fff; }
     @media (max-width: 768px) {
       #recruit .box {
         padding: 25px 15px; } }
     #recruit .box .text {
       width: 50%; }
       @media (max-width: 768px) {
         #recruit .box .text {
           width: 100%;
           margin-bottom: 40px; } }
       #recruit .box .text p {
         font-size: 16px;
         font-weight: 700;
         color: #fff;
         letter-spacing: .075em;
         text-shadow: 0 0 5px rgba(42, 99, 124, 0.35); }
         @media (max-width: 768px) {
           #recruit .box .text p {
             font-size: 14px; } }
       #recruit .box .text b {
         display: block;
         width: 100%;
         margin: 15px 0;
         font-size: 20px;
         color: #fff;
         letter-spacing: .15em;
         text-shadow: 0 0 5px rgba(42, 99, 124, 0.35); }
         @media (max-width: 768px) {
           #recruit .box .text b {
             font-size: 16px; } }
       #recruit .box .text img {
         width: 100%;
         max-width: 360px; }
       #recruit .box .text a {
         transition: .4s; }
         #recruit .box .text a:hover {
           opacity: .7; }
     #recruit .box .image {
       width: 50%; }
       @media (max-width: 768px) {
         #recruit .box .image {
           width: 100%; } }
       #recruit .box .image img {
         width: 100%; }
 
 .required {
   margin: 0 .3em;
   color: #DC1717; }
 
 .contact-form {
   width: 100%;
   max-width: 800px;
   margin: 0 auto; }
   .contact-form ul {
     margin: 0;
     padding: 0; }
     .contact-form ul li {
       width: 100%;
       margin-bottom: 30px;
       list-style: none; }
       .contact-form ul li p {
         display: block;
         width: 100%;
         margin-bottom: 10px;
         font-size: 16px;
         font-weight: 700; }
         @media (max-width: 768px) {
           .contact-form ul li p {
             font-size: 14px; } }
       .contact-form ul li .input {
         width: 100%; }
         .contact-form ul li .input input, .contact-form ul li .input textarea {
           width: 100%;
           margin: 0;
           padding: 10px;
           border: 1px solid #DADADA;
           -webkit-appearance: none;
           appearance: none;
           font-size: 16px;
           letter-spacing: .075em; }
           .contact-form ul li .input input:placeholder-shown, .contact-form ul li .input textarea:placeholder-shown {
             color: #888888; }
           .contact-form ul li .input input::-webkit-input-placeholder, .contact-form ul li .input textarea::-webkit-input-placeholder {
             color: #888888; }
           .contact-form ul li .input input:-moz-placeholder, .contact-form ul li .input textarea:-moz-placeholder {
             color: #888888;
             opacity: 1; }
           .contact-form ul li .input input::-moz-placeholder, .contact-form ul li .input textarea::-moz-placeholder {
             color: #888888;
             opacity: 1; }
           .contact-form ul li .input input:-ms-input-placeholder, .contact-form ul li .input textarea:-ms-input-placeholder {
             color: #888888; }
           @media (max-width: 768px) {
             .contact-form ul li .input input, .contact-form ul li .input textarea {
               font-size: 14px; } }
         .contact-form ul li .input textarea {
           height: 200px; }
         .contact-form ul li .input .address {
           display: flex;
           justify-content: flex-start;
           align-items: center;
           flex-wrap: wrap;
           display: -webkit-flex;
           -webkit-justify-content: flex-start;
           -webkit-align-items: center;
           -webkit-flex-wrap: wrap; }
           .contact-form ul li .input .address span {
             width: 30px; }
           .contact-form ul li .input .address input {
             width: calc(100% - 200px); }
             @media (max-width: 768px) {
               .contact-form ul li .input .address input {
                 width: 100%;
                 margin-top: 10px; } }
           .contact-form ul li .input .address input[name="zip"] {
             width: 150px;
             margin-right: 20px; }
   .contact-form .privacy {
     width: 100%;
     height: 300px;
     margin: 0;
     padding: 30px;
     background: #f7f7f7;
     overflow: auto; }
     .contact-form .privacy-wrap {
       width: 100%; }
       .contact-form .privacy-wrap b {
         display: block;
         font-size: 16px;
         color: #2A558F; }
         @media (max-width: 768px) {
           .contact-form .privacy-wrap b {
             font-size: 14px; } }
       .contact-form .privacy-wrap h3 {
         margin: 30px 0 10px 0;
         font-size: 16px; }
         @media (max-width: 768px) {
           .contact-form .privacy-wrap h3 {
             font-size: 12px; } }
       .contact-form .privacy-wrap ul, .contact-form .privacy-wrap ol {
         margin-left: 1.5em; }
         .contact-form .privacy-wrap ul li, .contact-form .privacy-wrap ol li {
           margin-bottom: 15px;
           line-height: 1.75; }
           @media (max-width: 768px) {
             .contact-form .privacy-wrap ul li, .contact-form .privacy-wrap ol li {
               font-size: 12px; } }
       .contact-form .privacy-wrap ul li {
         list-style: disc; }
   .contact-form-button {
     display: flex;
     justify-content: center;
     align-items: center;
     flex-wrap: wrap;
     display: -webkit-flex;
     -webkit-justify-content: center;
     -webkit-align-items: center;
     -webkit-flex-wrap: wrap;
     margin-top: 60px; }
     .contact-form-button input[type="submit"], .contact-form-button button, .contact-form-button a {
       margin: 0;
       padding: 15px 40px;
       font-size: 16px;
       font-weight: 700;
       color: #fff;
       -webkit-appearance: none;
       appearance: none;
       border: none;
       box-shadow: none;
       background: #2A558F; }
       @media (max-width: 768px) {
         .contact-form-button input[type="submit"], .contact-form-button button, .contact-form-button a {
           width: 100%;
           padding: 15px;
           font-size: 14px;
           text-align: center; } }
       .contact-form-button input[type="submit"]:hover, .contact-form-button button:hover, .contact-form-button a:hover {
         cursor: pointer;
         opacity: .7; }
       .contact-form-button input[type="submit"] + *, .contact-form-button button + *, .contact-form-button a + * {
         margin-left: 20px; }
         @media (max-width: 768px) {
           .contact-form-button input[type="submit"] + *, .contact-form-button button + *, .contact-form-button a + * {
             margin: 15px 0 0 0; } }
     .contact-form-button button, .contact-form-button a {
       color: #000;
       background: #ddd; }
 
 footer {
   border-top: 1px solid #DADADA;
   margin: 0;
   padding: 60px 0; }
   footer p {
     width: 100%;
     font-size: 12px;
     font-weight: 700;
     letter-spacing: .075em;
     text-align: center; }
 