@charset "utf-8";

/* GENERAL */

* {
    box-sizing: border-box;
}
body {
    font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    min-width: 1080px;
}
img {
    height: auto;
    max-width: 100%;
}
a {
    color: #54c2f0;
    outline: 0 none;
    text-decoration: none;
}
ol {
    padding-left: 1.5em;
}

/* HEADER */

.header-top {
    display: flex;
    justify-content: space-between;
    margin: auto;
    max-width: 100%;
    padding: 32px;
    width: 1080px;
}
.header-top-left h1 {
    margin: 0;
}
.header-top-left a {
    display: block;
    width: 300px;
}
.header-top-left img {
    display: block;
}
.header-top-right {
    width: 300px;
}
.header-nav::before {
    background-color: #54c2f0;
    bottom: 0;
    content: "";
    height: 8px;
    left: 0;
    position: absolute;
    right: 0;
    z-index: -1;
}
.header-nav {
    margin-bottom: 8px;
    position: relative;
}
.header-nav ul {
    display: flex;
    list-style: outside none none;
    margin: auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.header-nav li {
    border-bottom: 8px solid #e6e6e6;
    font-weight: bold;
    padding: 1em 0;
    text-align: center;
    width: 20%;
}
.header-nav li:hover,
.header-nav li.current {
    border-color: #1f286f;
}
.header-nav li:last-child a {
    border-right: 1px solid #ddd;
}
.header-nav a {
    border-left: 1px solid #ddd;
    color: #000;
    display: block;
    font-size: 18px;
    line-height: 1.2;
}
.header-nav span {
    color: #54c2f0;
    display: block;
    font-size: 14px;
}

/* FOOTER */

.footer {
    background-color: #f5f5f5;
    border-top: 8px solid #1f286f;
    padding: 32px 0;
}
.footer-top {
    display: flex;
    justify-content: space-between;
    margin: 0 auto 32px;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.footer-top-left {
    display: flex;
}
.footer-top-left ul {
    list-style: outside none none;
    margin: 0 3em 0 0;
    padding: 0;
}
.footer-top-left a::before {
    color: #1f286f;
    content: "»";
    font-weight: bold;
    margin-right: 4px;
}
.footer-top-left a {
    color: #333;
    font-size: 14px;
}
.footer-top-right {
    font-size: 14px;
    width: 300px;
}
.footer-top-right img {
    display: block;
}
.footer-copy {
    margin: 0;
    padding: 0 32px;
    text-align: center;
}
.footer-copy span::after {
    content: "\f1f9";
    font-family: fontawesome;
    margin-left: 0.5em;
}
.footer-copy span {
    margin-right: 0.5em;
}

/* content */

section {
    margin: 64px auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.content-header {
    background-color: #54c2f0;
    color: #fff;
    margin: 0 auto 64px;
    padding: 64px 32px;
}
.content-header h2 {
    font-size: 32px;
    margin: 0;
    text-align: center;
}
.content-header p {
    font-weight: bold;
    letter-spacing: 10px;
    margin: 0;
    text-align: center;
    text-indent: 10px;
}
.content-title {
    color: #1f286f;
    font-size: 28px;
    margin: 0 0 32px;
}
.content-title a {
    color: #1f286f;
}
.content-sub-title {
    font-size: 22px;
    font-weight: bold;
    margin: 0 0 -16px;
}
.align-right {
    text-align: right;
}

/* TOP */

.top-header {
    margin-bottom: 8px;
}
.top-header img {
    display: block;
    margin: auto;
    max-width: 100%;
    width: calc(1080px - 64px);
}
.top-links {
    background-color: #54c2f0;
    margin-top: 8px;
    padding: 64px 0;
    width: 100%;
}
.top-links-div {
    margin: auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.top-links-div .content-title {
    color: #fff;
}
.top-links-list a::before {
    background-color: #54c2f0;
    content: "";
    height: 64px;
    position: absolute;
    right: -32px;
    top: -32px;
    transform: rotate(45deg);
    width: 64px;
}
.top-links-list {
    display: flex;
    justify-content: space-between;
    list-style: outside none none;
    margin: 0;
    padding: 0;
}
.top-links-list li {
    width: calc(100% / 3 - 24px);
}
.top-links-list a {
    background-color: #fff;
    color: #000;
    display: block;
    padding: 32px 32px 140px;
    position: relative;
}
.top-links-list h3 {
    font-size: 26px;
    line-height: 1;
    margin: 0;
}
.top-links-list p {
    min-height: 110px;
}
.top-links-list h3 span {
    color: #54c2f0;
    font-size: 16px;
    margin-left: 0.5em;
}
.top-links-list-img {
    background-position: center center;
    background-size: cover;
    bottom: 0;
    height: 140px;
    left: 0;
    position: absolute;
    width: 100%;
}
.top-links-list-img.company {
    background-image: url("../images/top-links-company.jpg");
}
.top-links-list-img.service {
    background-image: url("../images/top-links-service.jpg");
}
.top-links-list-img.staff {
    background-image: url("../images/top-links-staff.jpg");
}
.top-topics-div {
    display: flex;
    justify-content: space-between;
}
.top-topics-div > div {
    width: calc(50% - 32px);
}
.top-access {
    padding: 0;
    width: 100%;
}
.top-access-div {
    margin: auto auto 64px;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}

/* SERVICE */

.service-list ul::after {
    clear: both;
    content: "";
    display: block;
}
.service-list ul {
    border: 4px solid #1f286f;
    margin: 32px auto;
    padding: 32px;
}
.service-list li {
    float: left;
    font-size: 16px;
    font-weight: bold;
    margin: 0.25em 0 0.25em 16px;
    width: calc(50% - 16px);
    white-space: nowrap;
}
.service-case {
    background-color: #54c2f0;
    background-image: url("../images/service-case-bg.jpg");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: contain;
    padding: 64px 0;
    width: 100%;
}
.service-case-div {
    margin: auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.service-case-div .content-title {
    color: #fff;
}
.service-case-div div {
    background-color: #fff;
    margin: 32px 0;
    padding: 32px;
}
.service-case-div h3 {
    color: #54c2f0;
    font-size: 22px;
    margin: 0;
}
.service-case-div strong {
    font-size: 18px;
}
.service-case-div p {
    font-size: 22px;
    font-weight: bold;
    line-height: 1;
    margin: 0;
    text-align: right;
}
.service-case-div span {
    color: #54c2f0;
    font-size: 36px;
    margin-right: 5px;
}
.service-case-div ul::after {
    clear: both;
    content: "";
    display: block;
}
.service-case-div ul {
    border: 4px solid #1f286f;
    margin: 32px auto;
    padding: 32px;
}
.service-case-div li {
    float: left;
    font-size: 18px;
    font-weight: bold;
    margin-left: 64px;
    width: calc(50% - 64px);
}

/* STAFF */

.staff-table {
    width: 100%;
}
.staff-table tbody {
    border: 4px solid #ddd;
}
.staff-table th:nth-child(1) {
    text-align: left;
}
.staff-table th:nth-child(2) {
    text-align: right;
}
.staff-table th {
    font-size: 22px;
}
.staff-table th span {
    color: #54c2f0;
    font-size: 36px;
    margin: 0 5px 0 15px;
}
.staff-table td {
    border: 1px solid #ddd;
    padding: 8px;
}

/* COMPANY */

.company-links {
    display: flex;
    justify-content: space-between;
}
.company-links a::before {
    content: "▼";
    margin-right: 4px;
}
.company-links a {
    background-color: #1f286f;
    border-radius: 8px;
    color: #fff;
    font-weight: bold;
    padding: 8px 0;
    text-align: center;
    width: calc(100% / 7 - 16px);
}
.company-mission {
    background-color: #fafafa;
    padding: 64px 0;
    width: 100%;
}
.company-mission-div {
    margin: auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}
.company-mission ol {
    border: 4px solid #1f286f;
    font-size: 22px;
    font-weight: bold;
    padding: 32px 32px 32px 230px;
}
.company-mission li:not(:last-child) {
    margin-bottom: 1em;
}
.company-chart {
    display: block;
    width: 100%;
}
.company-table {
    width: 100%;
}
.company-table th {
    background-color: #f5f5f5;
    color: #333;
    text-align: left;
    vertical-align: top;
    width: 150px;
}
.company-table th,
.company-table td {
    border: 1px solid;
    padding: 16px;
}
.company-access {
    padding: 0;
    width: 100%;
}
.company-access-div {
    margin: auto;
    max-width: 100%;
    padding: 0 32px;
    width: 1080px;
}

/* RECRUIT */

.recruit-title {
    font-size: 22px;
}
.recruit-table {
    margin: 32px 0;
    width: 100%;
}
.recruit-table th {
    background-color: #f5f5f5;
    font-weight: normal;
    text-align: left;
    vertical-align: top;
    width: 180px;
}
.recruit-table th,
.recruit-table td {
	border: 1px solid #ddd;
    padding: 16px;
}
.recruit-table ol {
    counter-reset: num;
    list-style: outside none none;
    margin: 0;
    padding: 0;
}
.recruit-table ol > li::before {
    content: "（" counter(num, decimal) "）";
    counter-increment: num;
    margin-left: -2.5em;
}
.recruit-table ol > li {
    padding-left: 2.5em;
}
.recruit-table ul {
    list-style: initial;
    margin: 0;
    padding-left: 1.5em;
}
.recruit-table li ul {
    padding-left: 0;
}
.recruit-table p {
    margin: 0;
}
.recruit-table p span {
    display: inline-block;
    width: 10em;
}
.recruit-table-email {
    vertical-align: text-bottom;
}

/* ISO */
/* LINKS */

.iso-section,
.links-section {
    align-items: center;
    display: flex;
    padding: 0;
}
.iso-section img,
.links-section img {
    width: 50%;
}
.iso-section-div,
.links-section-div {
    padding: 0 32px 0 64px;
    width: 50%;
}
.iso-section-div .content-title {
    margin: 0;
}
.iso-section-div a:first-of-type {
    margin-bottom: 32px;
}
.iso-section-div a,
.links-section-div a {
    border: 3px solid;
    display: inline-block;
    font-weight: bold;
    padding: 0.5em 2em;
    text-align: center;
}

/* SECURITY */

.security-section li {
    font-size: 18px;
    font-weight: bold;
}
.security-section li p {
    font-size: 16px;
    font-weight: normal;
    margin: 0 0 1.5em;
}

/* CONTACT */

.contact-table {
    margin: 32px 0;
    width: 100%;
}
.contact-table th,
.contact-table td {
    border: 1px solid #ddd;
    padding: 16px;
}
.contact-table th {
    background-color: #f5f5f5;
    font-weight: normal;
    text-align: left;
    vertical-align: top;
    width: 250px;
}
.contact-table th span {
    background-color: #bb0000;
    border-radius: 4px;
    color: #fff;
    float: right;
    font-size: 14px;
    font-weight: bold;
    padding: 2px 4px;
}
.contact-subtitle {
    margin: 0;
}
.contact-subtitle:not(:first-of-type) {
    margin-top: 1em;
}
.contact-table input,
.contact-table select,
.contact-table textarea {
    border: 1px solid #ddd;
    max-width: 100%;
}
.contact-table textarea {
    width: 100%;
}
.contact-btn {
    text-align: center;
}
.contact-btn input {
    border: 4px solid #54c2f0;
    border-radius: 8px;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    line-height: 1;
    margin: 0 3em;
    padding: 1em 3em;
}
.contact-btn-submit {
    background-color: #54c2f0;
    color: #fff;
}
.content-thanks {
    text-align: center;
}

/* SITEMAP */

.sitemap-section ul {
    list-style: outside none none;
    margin: 0;
    padding: 0;
}
.sitemap-section li {
    border-bottom: 1px solid #999;
}
.sitemap-section p {
    background-color: #f5f5f5;
    line-height: 1;
    margin: 0.5em 0;
    padding: 0.5em;
}
.sitemap-section li:not(:first-child) p {
    padding-left: 1.5em;
}
.sitemap-section a::before {
    color: #1f286f;
    content: "»";
    font-weight: bold;
    margin-right: 0.5em;
}

/* RWD */

@media screen and (max-width : 767px) {

body {
    min-width: 0;
}
.header-top {
    padding: 16px;
    align-items: center;
}
.header-top-left a {
    width: 180px;
    max-width: 40vw;
}
.header-top-right {
    width: 140px;
    max-width: 40vw;
}
.header-top-right img {
    display: block;
}
.header-nav::before {
    display: none;
}
.header-nav::after {
    background-color: #54c2f0;
    content: "";
    height: 8px;
    display: block;
}
.header-nav ul {
    border: 1px solid #54c2f0;
    flex-wrap: wrap;
    padding: 0;
}
.header-nav li:first-child {
    display: none;
}
.header-nav li:hover,
.header-nav li.current,
.header-nav li {
    border: 1px solid #54c2f0;
    width: 50%;
    padding: 0;
}
.header-nav a {
    border: 0;
    font-size: 14px;
    padding: 1em;
}
.header-nav span {
    font-size: 12px;
}
.footer {
    padding: 16px 0;
}
.footer-top {
    flex-direction: column;
    padding: 0 16px;
    margin: 0 auto 16px;
}
.footer-top-left {
    flex-direction: column;
    margin-bottom: 32px;
}
.footer-top-left ul {
    margin: 0;
}
.footer-top-left a {
    display: block;
    border-bottom: 1px solid #ddd;
    padding: 1em 0;
}
.footer-top-right {
    width: auto;
}
.footer-copy {
    font-size: 12px;
    padding: 0 16px;
}
section {
    margin: 32px auto;
    padding: 0 16px;
}
.content-header {
    margin: 0 auto 32px;
    padding: 32px 16px;
}
.content-header h2 {
    font-size: 24px;
}
.content-header p {
    font-size: 14px;
}
.content-title {
    font-size: 22px;
    margin: 0 0 16px;
}
.content-sub-title {
    font-size: 18px;
    margin: 0 0 -8px;
}
.top-links {
    padding: 32px 0;
}
.top-links-div {
    padding: 0 16px;
}
.top-links-list {
    flex-direction: column;
}
.top-links-list li {
    width: 100%;
}
.top-links-list li:not(:last-child) {
    margin-bottom: 16px;
}
.top-links-list a::before {
    height: 32px;
    right: -16px;
    top: -16px;
    width: 32px;
}
.top-links-list a {
    padding: 16px 16px 140px;
}
.top-links-list h3 {
    font-size: 20px;
}
.top-links-list h3 span {
    font-size: 14px;
}
.top-links-list p {
    min-height: 0;
}
.top-topics-div {
    flex-direction: column;
}
.top-topics-div > div {
    width: 100%;
}
.top-access-div {
    margin: auto auto 32px;
    padding: 0 16px;
}
.top-access iframe {
	height: 250px;
}
.company-links {
    flex-direction: column;
}
.company-links a {
    width: 100%;
    text-align: left;
    padding: 8px;
}
.company-links a:not(:last-child) {
    margin-bottom: 8px;
}
.company-mission {
    padding: 32px 0;
}
.company-mission-div {
    padding: 0 16px;
}
.company-mission ol {
    font-size: 16px;
    padding: 16px 16px 16px 2.5em;
}
.company-table th {
	width: 110px;
}
.company-table th,
.company-table td {
	padding: 8px;
    font-size: 14px;
}
.company-access-div {
    padding: 0 16px;
}
.company-access iframe {
	height: 250px;
}
.service-list ul,
.service-case-div ul {
    margin: 16px auto;
    padding: 16px 16px 16px 2em;
}
.service-list li,
.service-case-div li {
    float: none;
    font-size: 14px;
    margin: 0;
    width: 100%;
}
.service-list li:not(:last-child),
.service-case-div li:not(:last-child) {
    margin-bottom: 0.5em;
}
.service-case {
    padding: 32px 0;
}
.service-case-div {
    padding: 0 16px;
}
.service-case-div div {
    margin: 16px 0;
    padding: 16px;
}
.service-case-div h3 {
    font-size: 18px;
}
.service-case-div strong {
    font-size: 16px;
}
.service-case-div p {
    font-size: 18px;
    margin-top: 16px;
}
.service-case-div span {
    font-size: 28px;
}
.staff-table th {
    font-size: 14px;
    vertical-align: bottom;
}
.staff-table th span {
    font-size: 22px;
    line-height: 1;
}
.staff-table td {
    font-size: 14px;
}
.iso-section,
.links-section {
    flex-direction: column-reverse;
    padding: 0 16px;
}
.iso-section img,
.links-section img {
    width: 100%;
}
.iso-section-div,
.links-section-div {
    width: 100%;
    padding: 0;
}
.iso-section-div a,
.links-section-div a {
    display: block;
}
.iso-section-div a {
    margin-bottom: 32px;
}
.recruit-title {
    font-size: 18px;
    color: #1f286f;
}
.recruit-table {
    margin: 16px 0;
}
.recruit-table,
.recruit-table tbody,
.recruit-table tr,
.recruit-table th,
.recruit-table td {
    display: block;
}
.recruit-table th,
.recruit-table td {
    font-size: 14px;
    border: 0;
    padding: 0;
}
.recruit-table th {
    width: 100%;
    font-weight: bold;
    margin-bottom: 1em;
}
.recruit-table td {
    margin-bottom: 2em;
}
.contact-table,
.contact-table tbody,
.contact-table tr,
.contact-table th,
.contact-table td {
    display: block;
}
.contact-table th,
.contact-table td {
    font-size: 14px;
    border: 0;
    padding: 0;
}
.contact-table th {
    width: 100%;
    font-weight: bold;
    margin-bottom: 1em;
}
.contact-table td {
    margin-bottom: 2em;
}
.contact-table th span {
    float: none;
    margin-left: 1em;
}
input[type="text"],
input[type="email"],
select {
    height: 45px;
}
.contact-btn {
    display: flex;
    justify-content: space-around;
}
.contact-btn input {
    margin: 0;
    padding: 0.5em 2em;
    line-height: normal;
}
.content-thanks {
    text-align: left;
}
.sitemap-section a {
    display: block;
}

}