/* ページアニメーション */

@-webkit-keyframes slide-left {
    0% {
        transform: translateX(100vw);
    }
    100% {
        transform: translateX(0);
    }
}

@keyframes slide-left {
    0% {
        transform: translateX(100vw);
    }
    100% {
        transform: translateX(0);
    }
}

.slide-in {
    -webkit-animation: slide-left 0.35s forwards ease-out;
    animation: slide-left 0.35s forwards ease-out;
}

.slide-out {
    animation: slide-left 0.35s reverse ease-in forwards;
}

.page-animation {
    overflow-x: hidden;
}

main.back,
header.back,
.prev-content-wrapper.back {
    position: relative;
    z-index: -100;
}

main.back:not(.header),
header.back:not(.header),
.prev-content-wrapper.back:not(.header) {
    width: 100vw;
}

main.front,
header.front,
.prev-content-wrapper.front {
    position: absolute;
    z-index: -10;
}
.prev-content-wrapper.front {
  width: 100vw;
}

.prev-content-wrapper>main {
    display: none;
}


/* コンテンツ部のアニメーション */

@-webkit-keyframes max-height {
    100% {
        height: 100%;
    }
}

@keyframes max-height {
    100% {
        height: 100%;
    }
}

@-webkit-keyframes clear-transform-scale {
    100% {
        transform: scale(1, 1);
    }
}

@keyframes clear-transform-scale {
    100% {
        transform: scale(1, 1);
    }
}

@-webkit-keyframes service-content {
    50% {
        width: 100%;
        height: 15px;
    }
    100% {
        width: 100%;
        height: 100%;
    }
}

@keyframes service-content {
    50% {
        width: 100%;
        height: 15px;
    }
    100% {
        width: 100%;
        height: 100%;
    }
}

@-webkit-keyframes fade-up {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

@keyframes fade-up {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

@-webkit-keyframes slide-up {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: translateY(0px);
    }
}

@keyframes slide-up {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: translateY(0px);
    }
}

body main .sub_title {
    position: relative;
    border-color: transparent;
}

body main .sub_title::before {
    content: "";
    position: absolute;
    top: 0;
    left: -5px;
    width: 5px;
    height: 100%;
    background-color: #132c77;
}

body main .sub_title_sec::before{
	display: none;
}

body main .sub_title .reflect__inner {
    display: inline-block;
    transform-origin: bottom;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .sub_title::before {
    height: 2px;
    -webkit-animation: max-height forwards 0.55s 0.3s;
    animation: max-height forwards 0.55s 0.3s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .sub_title .reflect__inner {
    transform: scale(1, 0.1);
    -webkit-animation: clear-transform-scale forwards 0.55s 0.3s;
    animation: clear-transform-scale forwards 0.55s 0.3s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .service_content {
    background: unset;
    position: relative;
}

/* body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .service_content::before {
    content: "";
    height: 15px;
    width: 15px;
    background: #132c77;
    border-radius: 20px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    -webkit-animation: service-content 0.7s forwards 0s;
    animation: service-content 0.7s forwards 0s;
} */

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .service_content>* {
    -webkit-animation: fade-up 0.35s backwards 1s;
    animation: fade-up 0.35s backwards 1s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .service_consulting {
    -webkit-animation: fade-up 0.35s backwards 1s;
    animation: fade-up 0.35s backwards 1s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .about_content>* {
    -webkit-animation: fade-up 0.55s backwards 0.3s;
    animation: fade-up 0.55s backwards 0.3s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .company_content>table {
    -webkit-animation: fade-up 0.55s backwards 0.3s;
    animation: fade-up 0.55s backwards 0.3s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .contact>* {
    -webkit-animation: fade-up 0.55s backwards 0.3s;
    animation: fade-up 0.55s backwards 0.3s;
}

body:not(.page-animation) .prev-content-wrapper.front+main:not(.slide-in) .mv_text>* {
    -webkit-animation: fade-up 0.55s backwards 0.3s;
    animation: fade-up 0.55s backwards 0.3s;
}

body:not(.page-animation).service-page .prev-content-wrapper.front+main .sub_title::before {
    -webkit-animation: max-height 0.35s forwards;
    animation: max-height 0.35s forwards;
}

body:not(.page-animation).service-page .prev-content-wrapper.front+main .sub_title .reflect__inner {
    -webkit-animation: clear-transform-scale 0.35s forwards 1s;
    animation: clear-transform-scale 0.35s forwards 1s;
}

body.page-animation>main .sub_title::before {
    height: 2px;
    -webkit-animation: max-height forwards 0.55s 0.65s;
    animation: max-height forwards 0.55s 0.65s;
}

body.page-animation>main .sub_title .reflect__inner {
    transform: scale(1, 0.1);
    -webkit-animation: clear-transform-scale forwards 0.55s 0.65s;
    animation: clear-transform-scale forwards 0.55s 0.65s;
}

body.page-animation>main .service_content {
    background: unset;
    position: relative;
}

body.page-animation>main .service_content>* {
    -webkit-animation: fade-up 0.35s backwards 1.35s;
    animation: fade-up 0.35s backwards 1.35s;
}

body.page-animation>main .service_consulting {
    -webkit-animation: fade-up 0.35s backwards 1.35s;
    animation: fade-up 0.35s backwards 1.35s;
}

body.page-animation>main .about_content>* {
    -webkit-animation: fade-up 0.55s backwards 0.65s;
    animation: fade-up 0.55s backwards 0.65s;
}

body.page-animation>main .contact>* {
    -webkit-animation: fade-up 0.55s backwards 0.65s;
    animation: fade-up 0.55s backwards 0.65s;
}

body.page-animation>main .company_content>table {
    -webkit-animation: fade-up 0.55s backwards 0.65s;
    animation: fade-up 0.55s backwards 0.65s;
}

body.page-animation>main .mv_text>* {
    -webkit-animation: fade-up 0.55s backwards 0.65s;
    animation: fade-up 0.55s backwards 0.65s;
}

body.page-animation.service-page>main .sub_title::before {
    -webkit-animation: max-height 0.35s forwards 0.35s;
    animation: max-height 0.35s forwards 0.35s;
}

body.page-animation.service-page>main .sub_title .reflect__inner {
    -webkit-animation: clear-transform-scale 0.35s forwards 1.35s;
    animation: clear-transform-scale 0.35s forwards 1.35s;
}

body.page-animated {
    overflow-x: initial;
}


/* コンテンツ部のアニメーション */

.openbtn1 {
    display: none;
    position: relative;
    /*ボタン内側の基点となるためrelativeを指定*/
    cursor: pointer;
    width: 44px;
    height: 30px;
}


/*ボタン内側*/

.openbtn1 span {
    display: inline-block;
    transition: all .4s;
    height: 3px;
    position: absolute;
    left: 0;
    width: 100%;
    background: #000;
}

.openbtn1 span:nth-of-type(1) {
    top: 0;
}

.openbtn1 span:nth-of-type(2) {
    top: 14px;
}

.openbtn1 span:nth-of-type(3) {
    bottom: 0;
}


/*activeクラスが付与されると線が回転して×に*/

.openbtn1.active span:nth-of-type(1) {
    -webkit-transform: translateY(14px) rotate(-45deg);
    transform: translateY(14px) rotate(-45deg);
}

.openbtn1.active span:nth-of-type(2) {
    opacity: 0;
    /*真ん中の線は透過*/
}

.openbtn1.active span:nth-of-type(3) {
    -webkit-transform: translateY(-14px) rotate(45deg);
    transform: translateY(-14px) rotate(45deg);
}

body {
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: #0C2241;
    font-family: 'Noto Serif JP', serif;
}

main {
    padding-bottom: 90px;
}

a {
    color: #0C2241;
}

iframe {
    height: 100%;
}

.container {
    width: 90%;
    margin: 0 auto;
    max-width: 1500px;
}

.container_inner {
    margin: 0 70px;
}

.sp {
    display: none;
}

.header {
    box-shadow: 0px 4px 10px rgba(175, 175, 175, 0.25);
}

.header_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
}

.header_menu {
    display: flex;
    justify-content: space-between;
}

.header_menu li {
    margin-right: 60px;
}

.header_menu li:last-child {
    margin-right: 0;
}

.header_menu li a {
    display: block;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
}

.header_menu li a span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: .64em;
    display: block;
    text-align: center;
}

.header_logo {
    font-size: 28px;
    font-weight: 700;
	letter-spacing: 0;
}


/* トップページ*/

.front_page {
    padding-bottom: 0;
}

.mv {
    position: relative;
    max-width: 1500px;
    margin: 0 auto;
}

.mv img {
	max-height: calc( 100vh - 80px);
    object-fit: cover;
}

.mv_text {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 90px;
    font-weight: 700;
    color: #0C2241;
}

.mv_text_tit {
    font-size: 48px;
    text-align: center;
    text-shadow: 4px 4px 12px #FFFFFF;
}

.mv_text_description {
    font-family: 'Noto Sans JP', sans-serif;
    margin-top: 40px;
    font-size: 16px;
    text-shadow: 4px 4px 12px rgba(255, 255, 255, 0.25);
}


/* サービス */

.sub_title {
    display: inline-block;
    margin-left: 50px;
    margin-top: 55px;
    padding-left: 20px;
    font-size: 32px;
    font-weight: 700;
    border-left: 5px solid #132C77;
    /*0から90pxにアニメーションさせる*/
    height: 90px;
}

.sub_title .sub_title_en {
    font-family: 'Noto Sans JP', sans-serif;
    display: block;
    text-align: center;
    font-weight: 500;
    font-size: .43em;
}

.sub_title .reflect {
    display: block;
    opacity: 0.1;
    filter: blur(2px);
    transform: matrix(1, 0, 0, -1, 0, -20) rotate3d(1, 0, 0, 65deg);
}

.service_content {
    background: #132C77;
    border-radius: 20px;
    margin-top: 5px;
    padding: 40px 60px;
    margin-bottom: 93px;
    width: 100%;
    height: auto;
    max-height: 552px;
}

.service_content_top {
    display: flex;
    column-gap: 40px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}

.service_content_image {
    width: 45%;
}

.service_content_text {
    font-family: 'Noto Sans JP', sans-serif;
    width: calc(55% - 40px);
    font-weight: 400;
    font-size: 16px;
    letter-spacing: 0.2em;
    line-height: 2;
}
.service_content_text_tit{
	margin-bottom: 18px;
}
.service_content_text_tit img{
    height: 50px;
	width: auto;
}


.service_consulting_top {
    display: flex;
    align-items: center;
    margin-bottom: 52px;
	margin-left: 70px;
}

.service_consulting_image {
    width: 45%;
}

.service_consulting_text {
    font-family: 'Noto Sans JP', sans-serif;
    width: 60%;
    margin-left: 40px;
    font-weight: 500;
    font-size: 12px;
    line-height: 2;
}

.service_consulting_text_tit {
    font-weight: 600;
    font-size: 28px;
    line-height: 34px;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
}

.service_consulting_text_lists {
    margin-bottom: 8px;
    font-size: 16px;
}

.btn {
    font-family: 'Noto Sans JP', sans-serif;
    display: block;
    width: 347px;
    height: 58px;
    line-height: 58px;
    margin: 0 auto;
    text-align: center;
border-radius: 29px !important;
    font-weight: 600;
font-size: 18px;
	cursor: pointer;
}

.btn_white {
    background: #FFFFFF;
    color: #173EB3;
}

.btn_blue {
    background: #132C77;
    color: #ffffff;
}


/* 代表挨拶 */

.about_content {
    margin-top: 8px;
    padding: 60px;
    box-shadow: 0px 4px 10px rgba(175, 175, 175, 0.25);
    font-weight: 700;
    font-size: 16px;
    line-height: 2.5;
}

.paragraph {
    margin-bottom: 80px;
}

.sign {
    width: 230px;
    margin-left: auto;
}

.name {
    text-align: right;
    font-size: 16px;
    font-weight: 700;
}


/* 会社概要 */

.company_content {
    font-family: 'Noto Sans JP', sans-serif;
    display: flex;
    justify-content: space-between;
    max-width: 1000px;
    margin: 0 auto;
    margin-top: -17px;
    font-weight: 500;
    font-size: 16px;
    line-height: 2.5;
}

.company_content table {
    margin-right: 40px;
}

.company_content table tr td {
    min-width: 160px;
}

.company_content table tr td.address {
    line-height: 1.5;
}

.footer {
    font-family: 'Noto Sans JP', sans-serif;
    text-align: center;
    height: 156px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    line-height: 1;
    background: #E5E5E5;
}

.footer_menu {
    display: flex;
    margin-bottom: 30px;
}

.footer_menu a {
    font-size: 11px;
    margin: 0 50px;
}

small {
    font-size: 10px;
}

/* お問い合わせ */
.form_table{
	margin-top: 60px;
	margin-bottom: 45px;
	    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
	font-size:16px;
}
.form_table dl{
	display:flex;
	padding: 15px 0;
    border-top: 1px solid;
	border-color: rgba(189,189,189, 0.5);
}

.form_table dd{
		width:100%;
}

.form_table input{
	height: 40px;
	width:100%;
	border: 1px solid;
	border-color: rgba(12,34,65, .3);
	padding: 6px 12px;
}

.form_table textarea{
	width:100%;
	padding: 6px 12px;
	border: 1px solid;
	border-color: rgba(12,34,65, .3);
	height: 300px;
}

.form_table dt{
	min-width: 240px;
	    padding-top: 9px;
}


/* terms */

.sub_title_sec {
    margin-left: 0 !important;
    padding-left: 0;
    border: none;
    height: auto;
}

.terms_content {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    margin-top: 60px;
    font-size: 10px;
}

.terms_content p {
    margin-bottom: 20px;
}


/* 1080pxでブレイクポイント */

@media all and (max-width:1080px) {
    .container {
        width: calc( 100% - 140px);
    }
    .container_inner {
        margin: 0;
    }
    .openbtn1 {
        display: block;
    }
    .sp_menu {
        /* JSで操作 */
        position: fixed;
        z-index: 100;
        top: 80px;
        left: 100%;
        background: white;
        transition: all .4s;
        width: 100%;
        border-left: 10px solid #0C2241;
        box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
    }
    .sp_menu.show {
        left: 0;
    }
    .header_menu {
        flex-direction: column;
    }
    .header_menu li {
        margin-right: 0;
    }
    .header_menu li a {
        text-align: left;
        padding: 19px 0;
        padding-left: 40px;
        font-size: 22px;
        font-weight: 700;
    }
    .header_menu li a span {
        display: none;
    }
    .mv_text {
width: max-content;
        right: 50%;
        transform: translate(50%, -50%);
    }
    .sub_title {
        margin-left: 35px;
    }
    .service_content {
        max-height: none;
        padding: 60px;
        margin-bottom: 82px;
    }
    .service_content_top {
        flex-direction: column;
        margin-bottom: 60px;
    }
    .service_content_image {
        width: 100%;
        margin-bottom: 40px;
    }
    .service_content_text {
        width: 100%;
    }
    .service_content_text_tit img{
       height: 40px;
    }
    .service_consulting {
        
        padding: 60px;
    }
    .service_consulting_top {
        flex-direction: column;
        margin-bottom: 60px;
		margin-left: 0;
    }
    .service_consulting_image {
        width: 100%;
    }
    .service_consulting_text {
        width: 100%;
        margin-left: 0;
        margin-top: 40px;
    }
    .about_content {
        padding: 60px 40px;
    }
    .company_content {
        flex-direction: column;
        margin-left: 60px;
    }
    .company_content table {
        margin-right: 0;
        margin-bottom: 60px;
    }
    .company_content table tr td {
        min-width: 118px;
    }
    .map {
        height: 262px;
    }
	.form_table dt{
		min-width: 190px;
	}
	.contact{
		margin: 0 60px;
	}
}

@media all and (max-width:750px) {
    .openbtn1 {
        width: 27px;
        height: 22px;
    }
    .openbtn1 span:nth-of-type(2) {
        top: 9px;
    }
    /*activeクラスが付与されると線が回転して×に*/
    .openbtn1.active span:nth-of-type(1) {
        -webkit-transform: translateY(10px) rotate(-45deg);
        transform: translateY(10px) rotate(-45deg);
    }
    .openbtn1.active span:nth-of-type(3) {
        -webkit-transform: translateY(-9px) rotate(45deg);
        transform: translateY(-9px) rotate(45deg);
    }
    .container {
        width: calc( 100% - 36px);
    }
    .sp {
        display: block;
    }
    .pc {
        display: none;
    }
    .btn {
        width: 100%;
        font-size: 16px;
    }
   .header_logo {
        font-size: 16px;
    }
    .header_menu li a {
        font-size: 12px;
        padding: 18px 0;
        padding-left: 22px;
    }
    .header_inner {
        height: 60px;
    }
    .sp_menu {
        top: 60px;
    }

	.mv{
		height: 420px;
	}
	.mv img {
		height: 100%;
}
    .mv_text {
        top: 40%;
    }
    .mv_text_tit {
        font-size: 32px;
    }
    .mv_text_description {
        font-size: 12px;
    }
    .sub_title {
        margin-left: 0;
        font-size: 20px;
        height: 57px;
        margin-top: 30px;
    }
    .service_content {
        margin-bottom: 55px;
    }
    .service_content,
    .service_consulting {
        padding: 10px;
        margin-top: 0;
    }
    .service_content_top {
        margin-bottom: 30px;
    }
    .service_content_image {
        margin-bottom: 20px;
    }
    .service_content_text {
        font-size: 12px;
    }
    .service_consulting_text {
        margin-top: 20px;
    }
    .service_content_text_tit {
        font-size: 24px;
		margin-bottom: 8px;
    }
    .service_consulting_top {
        margin-bottom: 30px;
    }
    .service_consulting_text_tit {
        font-size: 18px;
		margin-bottom: 8px;
    }
    .service_consulting_text_lists {
        font-size: 12px;
        margin-bottom: 16px;
    }
    .service_consulting_text {
        font-size: 8px;
    }
    .about_content {
        padding: 40px 12px 0 12px;
        box-shadow: none;
        font-size: 12px;
        line-height: 22px;
    }
    .company_content {
        font-size: 12px;
        margin-left: 12px;
        margin-right: 12px;
        margin-top: 20px;
    }
    .company_content table {
        margin-bottom: 30px;
    }
    .company_content table tr td {
        min-width: 100px;
    }
    .map iframe {
        width: 100%;
    }
    .paragraph {
        margin-bottom: 40px;
    }
    .name {
        font-size: 12px;
    }
    .sign {
        width: 190px;
    }
	.form_table{
		margin-top: 46px;
		font-size: 12px;
	}
	.form_table dt{
		padding-top: 0;
		margin-bottom: 8px;
	}
	.form_table dl{
		flex-direction: column;
		border-top: unset;
		padding: 8px 0;
	}
	.form_table textarea{
		height: 200px;
	}
    .contact p {
        font-size: 12px;
    }
	.contact {
    margin: 0 12px;
}
	.contact .btn{
		width: calc(100% - 36px);
	}
	.terms_content {
		margin-top: 0;
	}
    .footer {
        height: auto;
        padding: 50px 0;
    }
    .footer_menu {
        flex-direction: column;
        margin-bottom: 0;
    }
    .footer_menu a {
        margin-bottom: 36px;
    }
}

@media all and (max-width:400px) {
	.d-none-sm-sp{
		display: none;
	}
}