* {
	box-sizing: border-box;
}

html {
	font-size: 62.5%; /* 1rem = 10px */
}

body.fixed { /* modalウィンドウを開いた時、背景固定 */
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0;
}

body {
	position: relative;
}

h1, h2, h3, p {
	color: #191919;
}

img {
	max-width: 100%;
}

.hp_center {
	text-align: center;
}

.font_midashi {
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
}

.font_gothic {
	font-family: a-otf-gothic-bbb-pr5n, sans-serif;
}


/*********************
　	display: flex;
  	.container
*********************/
.flex {
	display: flex;
}

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

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

.flex_sa {
	display: flex;
	justify-content: space-around;
}

.flex_sa_wrap {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
}


.flex_jc {
	display: flex;
	justify-content: center;
}

.flex_ac {
	display: flex;
	align-items: center;
}

.flex_as {
	display: flex;
	align-items: flex-start;
}

.container-fluid {
	width: 100%;
}

.container {
	max-width: 1000px;
	margin: 0 0 0 auto;
	padding-right: 40px
}

@media screen and (min-width: 1500px) {
	.container {
		margin: 0 auto;
	}
}



/*********************
	header
*********************/
header {
	position: fixed;
	top: 7rem;
	left: 5rem;
	z-index: 50;
}

h1 {
	font-size: 2.1rem;
	font-weight: normal;
	line-height: 1;
	margin-bottom: 6.2rem;
	color: #231919;
}

h2 img {
	max-width: 85rem;
}

header .header_nav ul li:nth-of-type(n+2) {
	margin-top: 4rem;
}

header .header_nav ul li a {
	position: relative;
	font-size: 1.4rem;
	line-height: 1;
	color: #004A95;
	transition: all .5s;
}

.nav_logo {
	max-width: 18rem;
}


header .header_nav ul li.hov_border a::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #004A95;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}

header .header_nav ul li.hov_border a.current::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

header .header_nav ul li.hov_rotate a:hover {
	transform: rotate(15deg);
}

header .header_nav ul li a.fa-facebook-f {
	font-size: 2.4rem;
	padding-left: 7px;
}

header .header_nav ul li a.fa-instagram {
	font-size: 2.7rem;
}

/*********************
	top_sec_1
*********************/
.top_sec_1 {
	padding-top: 18rem;
	background-image: url(../img/top/top_back.png),
					  url(../img/top/main_bg.jpg);
	background-repeat: no-repeat;
	background-position: right top, left top;
	background-size: 90%, auto;
}

/** top_sec_1_1
	人生大作戦 **/
.top_sec_1_1_container {
	max-width: calc(1078px + 270px); /* 270px = 固定nav */
	margin: 0 0 0 auto;
	margin-bottom: calc(32.17rem / 2);
}

.top_sec_1_ttl {
	display: block;
	margin: 0 auto 7rem 27rem;
	max-width: 75rem;
}

.top_sec_1 .top_sec_1_1_inner {
	padding-left: 30rem;
}

.top_sec_1 .top_sec_1_1_inner img {
	margin-right: 5rem;
	max-width: 5rem;
}

.top_sec_1 .top_sec_1_1_inner .txt_wrap {
	margin-top: -2rem;
}

.top_sec_1 .top_sec_1_1_inner .txt_wrap p {
	font-size: 1.8rem;
	line-height: calc(60 / 22);
	letter-spacing: .1em;
	color: #004A95;
}


/** top_sec_1_2
	私たちは、ファイナンシャルプランナー **/
.top_sec_1_2 {
	padding-top: calc(32.17rem / 2);
	padding-bottom: 9.1rem;
}

.fp_ttl {
	max-width: 70rem;
	margin-bottom: 3rem;
}

.top_sec_1_2_inner {
	margin-top: 2.1rem;
}

.top_sec_1 .top_sec_1_2_inner .txt_wrap {
	margin-left: 4rem;
}

.fp_personImg {
	max-width: 11rem;
}

.top_sec_1 .top_sec_1_2_inner .txt_wrap p {
	font-size: 1.5rem;
	line-height: calc(40 / 16);
	letter-spacing: .1em;
}


/** top_sec_1_3
	fpのflow図 **/
.top_sec_1_3 {
	padding-top: 11.6rem;
	padding-bottom: 9.9rem;
	background-color: #E6F5FF;
}

.top_sec_1_3 .container {
	position: relative;
	padding: 0;
}

.top_sec_1_3 .container::before {
	position: absolute;
	top: -11.6rem;
	left: 50%;
	transform: translate(-50%, -50%);
	content: '';
	width: 1rem;
	height: 11rem;
	background-image: url(../img/top/icon.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.top_sec_1_3 .flow_wrap {
	text-align: center;
	width: calc(100% / 4 - (2rem * 3 / 4));
}

.top_sec_1_3 .flow_wrap:not(:last-of-type) {
	position: relative;
}

.top_sec_1_3 .flow_wrap:not(:last-of-type)::after {
	position: absolute;
	top: 10rem;
	right: -10%;
	transform: translateY(-50%);
	content: "";
	width: 1rem;
	height: 2rem;
	background-image: url(../img/top/ungle_right.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.top_sec_1_3 .flow_wrap img {
	max-width: 70%;
}

.top_sec_1_3 .flow_wrap .ttl {
	font-size: 2.2rem;
	letter-spacing: .1em;
	line-height: 1;
	margin-top: 2.7rem;
	margin-bottom: 2rem;
}

.top_sec_1_3 .flow_wrap .txt {
	font-size: 1.4rem;
	line-height: calc(25 / 14);
	text-align: left;
	padding: 0 2rem;
}



/*********************
	top_sec_2
*********************/
.top_sec_2 {
	padding-top: 16rem;
	background-image: url(../img/top/top_back_2.jpg);
	background-repeat: no-repeat;
	background-position: left bottom;
}

.fp_work_ttl {
	max-width: 43rem;
}

.top_sec_2 h2 {
	text-align: center;
	margin-bottom: 9.06rem;
}

.top_sec_2_inner {
	padding-right: 4rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap {
	position: relative;
	width: calc(100% / 2 - 2rem);
	border-radius: 20px;
	background-color: #fff;
	background-image: url(../img/top/fp_work_bg_top.png),
					  url(../img/top/fp_work_bg_bottom.png);
	background-position: top, bottom;
	background-size: contain;
	background-repeat: no-repeat;
	padding-top: 4rem;
	padding-left: 3rem;
	padding-bottom: 3.5rem;
	min-height: 25.5rem
}

.top_sec_2 .top_sec_2_inner .work_wrap::before {
	position: absolute;
	content: "";
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	height: 70%;
	width: 4px;
	background-color: #004A95;
}

.top_sec_2 .top_sec_2_inner .work_wrap::after {
	position: absolute;
	content: "";
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	height: 70%;
	width: 4px;
	background-color: #004A95;
}

.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(2n) {
	margin-top: 15.4rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap p.num {
	position: relative;
	color: #004A95;
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 1;
	letter-spacing: .05em;
	font-family: Helvetica, sans-serif;
	margin-bottom: 1.5rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap p.num::before {
	position: absolute;
	top: -2rem;
	left: 2px;
	content: "step";
	font-size: 1.5rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap h3 {
	display: inline-block;
	font-size: 2rem;
	font-weight: normal;
	letter-spacing: .1em;
	line-height: 1;
	padding-bottom: 7px;
	border-bottom: 3px solid #182727;
	margin-bottom: 1.6rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap p.txt {
	font-size: 1.4rem;
	letter-spacing: .1em;
	line-height: calc(25 / 14);
}

.top_sec_2 .top_sec_2_inner .work_wrap p.txt span {
	display: block;
}

.top_sec_2 .top_sec_2_inner .work_wrap .right_img {
	margin-top: -9rem;
}

.top_sec_2 .top_sec_2_inner .work_wrap:first-of-type .right_img {
	margin-left: 8%;
}

.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(2) .right_img {
	margin-top: -7rem;
	 margin-right: -5rem;
	 z-index: 2;
	 max-width: 20.5rem;
}


@media screen and (min-width: 1500px) {
	.top_sec_1_1_container {
	margin: 0 auto;
	}
}





/*********************
	top_sec_3
*********************/
.top_sec_3 {
	padding-top: 33.07rem;
	padding-bottom: 18.3rem;
}

.top_sec_3 h2 {
	text-align: center;
	margin-bottom: 7.23rem;
}

.example_ttl {
	max-width: 60rem;
}

.top_sec_3 .example_wrap {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	padding: 3rem 2rem;
	width: calc(100% / 3 - (5rem * 2 / 3));
	background-color: #D8FAFF;
	border-radius: 20px;
	transition: all .5s;
}

.top_sec_3 .example_wrap:hover {
	transform: rotate(7deg);
}

.top_sec_3 .example_wrap:nth-of-type(n+4) {
	margin-top: 3.4rem;
}

.top_sec_3 .example_wrap img {
	max-width: 55%;
}

.top_sec_3 .example_wrap .txt {
	font-size: 1.8rem;
	line-height: 1;
	margin: 3.5rem 0;
}

/*********** modal ***********/
.modal {
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 60;
    overflow-y: scroll;
    background: rgba(196,196,196,0.6);
}
.modal__bg {
	position: absolute;
    
    height: 100vh;
    width: 100%;
}
.modal__content {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 74.2rem;
    border-radius: 30px;
    background-color: #fff;
    padding: 6.4rem 8rem 3.6rem;
    margin-top: 5rem;
    margin-bottom: 5rem;
}

.modal__content .txt_wrap {
	margin-left: 2.9rem;
}

.modal__content .icon {
	max-width: 13.2rem;
}

.modal__content .txt_wrap .ttl {
	font-size: 3rem;
	letter-spacing: .1em;
	line-height: calc(45 / 32);
	margin-bottom: 1.5rem;
}

.modal__content .txt_wrap .txt {
	font-size: 1.6rem;
	letter-spacing: .1em;
	line-height: calc(25 / 16);
}

.modal__content .modal_flow {
	position: relative;
	border: solid 4px #191919;
	border-radius: 15px;
	background-color: #DDFCFF;
	text-align: center;
	padding: 2.2rem 0;
	width: 100%;
	margin-top: 4.7rem;
}

.modal__content .modal_flow:not(:nth-of-type(2))::before {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -100%);
	content: "";
	width: 4px;
	height: 5.2rem;
	background-color: #191919;
}

.modal__content .modal_flow .ttl {
	font-size: 2.2rem;
	line-height: 1;
	margin-bottom: 1.5rem;
}

.modal__content .modal_flow .txt {
	font-size: 1.4rem;
	line-height: calc(25 / 14);
}

.modal__content .close_btn {
	font-size: 2rem;
	line-height: 1;
	letter-spacing: .1em;
	margin-top: 2rem;
	color: #969696;
	text-align: center;
	display: block;
	padding: 2rem 0;
	font-weight: bold;
}




/*********************
	footer
*********************/
footer {
	background-color: #4DCBF4;
	padding: 2.6rem 0 1.9rem;
}

footer small {
	display: block;
	text-align: center;
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	letter-spacing: .1em;
}







/************************************** 下層ページ **************************************/
/*********************
　	display: flex;
  	.container
*********************/
.we_are_1-1 {
	padding-top: 12.97rem;
	text-align: center;
	background-image: url(../img/we_are/bg_1.jpg);
	background-repeat: no-repeat;
	background-position: right top;
	/* background-size: 99% */
}

.we_are_1-1 .main_img {
	max-width: 100%;
	margin-top: 7.96rem;
	margin-bottom: 7rem;
}

.we_are_1-1 .txt_wrap p {
	font-size: 1.6rem;
	line-height: calc(40 / 16);
	letter-spacing: .1em;
}

/*********** 社員紹介 ***********/
.we_are_1-2 {
	margin-top: 22rem; /* 青背景から上のテキストまで */
	background-color: #E6F5FF;
}

.we_are_1-2 .container {
	transform: translateY(-11rem);
}

.we_are_1-2 .member_wrap:nth-of-type(n+2) {
	margin-top: 10rem;
}

.we_are_1-2 .member {
	text-align: center;
	max-width: calc(100% / 3 - 2rem);
	transition: all .3s;
	position: relative;
}

.we_are_1-2 .member:nth-of-type(n+2) {
	margin-left: 15rem;
}

.we_are_1-2 .member .img_wrap {
	border-radius: 50%;
	filter: drop-shadow(8px 8px 8px rgba(0, 0, 0, .46));
	transition: .3s all ease-in-out;
}

.we_are_1-2 .member .img_wrap:hover {
	filter: none;
	transform: translateY(5px);
}

.we_are_1-2 .member img {
	width: 100%;
}

.we_are_1-2 .member .img_wrap .mask {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border-radius: 50%;
	background-color: rgba(0,0,0,0.4);
	opacity: 0;
	transition: all .3s ease-in-out;
	z-index: 5;
	display: flex;
	justify-content: center;
	align-items: center;
}

.we_are_1-2 .member .img_wrap .mask p {
	color: #fff;
	font-size: 3rem;
	font-family: 'Amatic SC', cursive;
	font-weight: bold;
}

.we_are_1-2 .member .img_wrap:hover > .mask {
	opacity: 1;
}

.we_are_1-2 .member .name {
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: .1em;
	margin-top: 2.5rem;
	transition: all .3s ease-in-out;
}

.we_are_1-2 .member:hover > .name {
	color: #004A95;
}

/**** modal ****/
.member_modal .modal_wrap {
	margin-top: 10rem;
	margin-bottom: 5rem;
}

.member_modal .modal__content {
	background-color: #7DD8FF;
	border-radius: 30px;
	filter: drop-shadow(15px 15px 30px rgba(0, 0, 0, .27));
	padding: 0;
	margin: 0;
	width: 80%;
	max-width: 1000px;
	height: 46rem;
	position: relative;
}

.member_modal .modal__content .person_img {
	position: absolute;
	top: -5rem;
	left: 2rem;
	max-width: 30rem;
}

.member_modal .txt_wrap {
	background-color: #fff;
	margin-left: 29.6rem;
	transform: translate(3rem, 7rem);
	padding: 4rem;
}

.member_modal .txt_wrap .name_img {
	margin-bottom: 2rem;
	max-width: 38rem;
}

.member_modal .txt_wrap .ttl {
	font-size: 2.4rem;
	margin-bottom: 2rem;
	color: #004A95;
}

.member_modal .txt_wrap .ttl span {
	font-size: 1.8rem;
	margin-right: 2rem;
}

.member_modal .txt_wrap .txt {
	font-size: 1.6rem;
}

.member_modal .close_btn {
	position: absolute;
	top: 3.5rem;
	right: 3rem;
	transform: translateY(-50%);
	margin-top: 0;
	color: #fff;
	padding: 2rem 0;
}

/**** modal ****/

/*********** 会社概要 ***********/
.we_are_1-3 {
	padding-top: 10.2rem;
	padding-bottom: 47.2rem;
	background-image: url(../img/we_are/bg_2.jpg);
	background-repeat: no-repeat;
	background-position: left bottom;
}

.we_are_1-3 .company_wrap {
	background-color: #fff;
	border-radius: 31px;
	padding: 8.5rem calc(138 / 1100 * 100%);
}

.we_are_1-3 .company_wrap h3 {
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 8rem;
	text-align: center;
	font-weight: normal;
}

.we_are_1-3 .company_wrap .flex {
	padding: 2rem 0;
}

.we_are_1-3 .company_wrap .flex:nth-of-type(n+2) {
	border-top: solid 1px #707070;
}

.we_are_1-3 .company_wrap .flex .left {
	width: 15.4rem;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
	letter-spacing: .1em;
}

.we_are_1-3 .company_wrap .flex .right {
	width: calc(100% - 15.4rem);
	font-size: 1.6rem;
	line-height: calc(30 / 16);
}

.gmap {
	position: relative;
	height: 0;
	overflow: hidden;
	padding-bottom: calc(400 / 812 * 100%);
	margin-bottom: 2.4rem;
}

.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}


/*********** お問い合わせ ***********/
#contact {
	margin-top: calc(-17rem + -10rem);
	padding-top: 10rem;
	padding-bottom: 13.5rem;
}

#contact h2 {
	text-align: center;
	margin-bottom: 11.92rem;
}

.contact_ttl {
	max-width: 55rem;
}

.contact_flow_wrap .flow {
	max-width: 57rem;
	margin: 0 auto;
}

.contact_flow_wrap .flow:not(:last-of-type) {
	margin-bottom: 10rem;
	position: relative;
}

.contact_flow_wrap .flow:not(:last-of-type)::after {
	position: absolute;
	content: "";
	bottom: -5rem;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 3rem;
	height: 2rem;
	background-image: url(../img/we_are/ungle_bottom.png);
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
}

.contact_flow_wrap .flow .img_wrap {
	width: 20.4rem;
	text-align: center;
}

.contact_flow_wrap .flow .txt_wrap {
	width: calc(100% - 20.4rem);
}

.contact_flow_wrap .flow .txt_wrap .ttl {
	font-size: 2.2rem;
	line-height: 1;
	letter-spacing: .1em;
	margin-bottom: 3rem;
}

.contact_flow_wrap .flow .txt_wrap .txt {
	font-size: 1.4rem;
	line-height: calc(25 / 14);
}


/*********** お問い合わせフォーム ***********/
#contact h3 {
	text-align: center;
	margin-top: 19rem;
	font-size: 3rem;
	font-weight: normal;
	letter-spacing: .1em;
	line-height: 1;
	transform: translateY(50%);
	position: relative;
	z-index: 2;
}

.contact_form {
	background-color: #E6F5FF;
	border-radius: 40px;
	padding: 8.7rem calc(233 / 1100 * 100%) 7.1rem;
}

.contact_form .flex_ac {
	margin-bottom: 1.9rem;
}

.contact_form .left {
	position: relative;
	width: 18.6rem;
}

.contact_form .left_label {
	font-size: 1.6rem;
	line-height: 1;
	letter-spacing: .1em;
	padding-left: 4.5rem;
	display: block;
}

.contact_form .left span {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	background-color: #FF7B7B;
	border-radius: 3px;
	color: #fff;
	font-size: 1rem;
	letter-spacing: .1em;
	padding: 3px 8px;
}

.contact_form .right {
	width: calc(100% - 18.6rem);
	border-style: none;
	font-size: 1.6rem;
	height: 4.5rem;
	border-radius: 5px;
}

.contact_form textarea.right {
	min-height: 25.4rem;
}

.formErrorTxt {
	font-size: 1.2rem;
	color: red;
}

.privacy_wrap {
	padding-top: 6.3rem;
	padding-bottom: 7rem;
}

.privacy_wrap .ttl {
	font-size: 1.6rem;
	letter-spacing: .1em;
	text-align: center;
	margin-bottom: 2rem;
}

.privacy_wrap .txt_wrap {
	padding: 3.5rem;
	background-color: #fff;
	border-radius: 5px;
}

.privacy_wrap .txt_wrap .inner {
	height: 16.8rem;
	overflow-y: scroll;
}

.privacy_wrap .txt_wrap .inner p {
	font-size: 1.4rem;
	line-height: calc(25 / 14);
	letter-spacing: .1em;
}

.mt_20 {
	margin-top: 2rem;
}

.submit_btn,
input[type="button"] {
	display: block;
	width: 27rem;
	background-color: #1EC8FF;
	padding: 1.6rem 0 1.6rem 1rem;
	text-align: center;
	color: #fff;
	margin: 0 auto;
	font-size: 1.6rem;
	line-height: 1;
	border: solid 2px #1EC8FF;
	cursor: pointer;
	letter-spacing: 1em;
	transition: all .5s;
}

.submit_btn:hover,
input[type="button"]:hover {
	background-color: #fff;
	color: #1EC8FF;
}


/****** お問い合わせフォーム　確認ページ ******/
#contact.comfirm {
	margin-top: 0;
}

.check_txt {
	font-size: 1.6rem;
	letter-spacing: .1em;
	text-align: center;
	margin-bottom: 5rem;
}

.check_right {
	font-size: 1.6rem;
	line-height: calc(25 / 16);
	letter-spacing: .1em;
	width: calc(100% - 18.6rem);
}


/****** お問い合わせフォーム　完了ページ ******/
.thanks {
	padding-top: 15rem;
	padding-bottom: 20rem;
	background-image: url(../img/we_are/bg_1.jpg);
	background-repeat: no-repeat;
	background-position: right top;
}

.thanks h2 {
	font-size: 3.4rem;
	text-align: center;
	font-weight: normal;
}

.thanks .txt_wrap {
	max-width: 35rem;
	margin: 7rem auto;
}

.thanks .txt_wrap p {
	font-size: 1.6rem;
	letter-spacing: .1em;
	line-height: calc(25 / 16);
}

.header_container_sp {
	display: none;
}



.hide {
	opacity: 0;
}

.fadein {
    opacity: 0;
    transform: translateY(20px);
    animation: fadein 1s ease forwards;
}

@keyframes fadein {
    100% {
    	opacity: 1;
    	transform: none;
  	}
}

.fadein01 {animation-delay: .2s;}
.fadein02 {animation-delay: .4s;}
.fadein03 {animation-delay: .6s;}
.fadein04 {animation-delay: .8s;}
.fadein05 {animation-delay: 1s;}
.fadein06 {animation-delay: 1.2s;}

.in {
	opacity: 1;
	transform: translateY(0);
}



.sp, .tab {
	display: none;
}



@media screen and (max-width: 1024px) { /* タブレット&sp */
	.tab {
		display: block;
	}

	.pc_tab {
		display: none;
	}

	.header_container_sp ul li:nth-of-type(n+2) {
		margin-left: 3.2rem;
	}

	.container {
		max-width: 100%;
		padding-right: 0;
		padding-right: 5%;
		padding-left: 5%;
	}

	.top_sec_1_ttl.sp {
		margin-right: auto;
	}

	header {
		position: static;
		background-color: #5DC0FF;
		padding: 9px 14px 12px;
	}

	.header_container_sp {
		display: flex;
	}

	.top_sec_1 {
		padding-top: 0;
	}

	.sp_nav li a {
		font-size: 3rem;
		color: #fff;
	}

	.top_sec_1_ttl {
		margin: 0 auto;
		padding: 5rem 0
	}

	.top_sec_1 .top_sec_1_1_inner {
		padding-left: 0;
		padding: 0 4rem;
		text-align: center;
	}

	.top_sec_1 .top_sec_1_1_inner .txt_wrap {
		text-align: left;
		display: inline-block;
	}

	.top_sec_1_3 {
		padding-top: 10.2rem;
	}

	.modal__content {
		width: 95%;
		padding: 3rem;
	}

	.modal__content .flex_as {
		flex-direction: column;
		align-items: center;
	}

	.modal__content .txt_wrap {
		margin-left: 0;
	}

	.modal__content .modal_flow {
		padding: 2rem;
	}

	.modal__content .modal_flow .txt {
		text-align: left;
	}

	.modal__content .txt_wrap .ttl {
		margin: 4.5rem 0 2.5rem; 
		text-align: center;
		font-size: 2.4rem;
	}

	.modal__content .modal_flow .txt br {
		display: none;
	}

	/*********************
		sp modal menu
	*********************/
	.sp_menuBtn {
		position: fixed;
		bottom: 2rem;
		left: 50%;
		transform: translateX(-50%);
		z-index: 20;
	}

	.sp_menu_modal .sp_modal__content {
		width: 100vw;
		height: 100vh;
		margin: 0;
		padding: 0;
		border-radius: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background-color: #fff;
	}

	.sp_menu_modal .menu {
		height: calc(100vh - 9rem - 9rem);
	}

	.sp_menu_modal .menu ul li a {
		font-size: 2rem;
		color: #004A95;
	}

	.sp_menu_modal .menu ul li:nth-of-type(n+2) {
		margin-top: 3rem;
	}

	.sp_menu_modal ul li a {
		display: block;
		text-align: center;
	}

	.sp_menu_modal .sns_wrap ul li {
		width: 50vw;
		height: 9rem;
	}

	.sp_menu_modal .sns_wrap ul li a {
		font-size: 5.2rem;
		color: #004A95;
		width: 100%;
		height: 100%;
		padding: 2rem;
		background-color: #DDFCFF;
	}

	.sp_menu_modal .sns_wrap ul li:nth-of-type(2) a {
		font-size: 6rem;
		padding: 1.6rem;
		background-color: #ACF8FF;
	}

	.sp_menu_modal .close_btn {
		height: 9rem;
		padding: 3rem 0;
		font-size: 2.4rem;
		color: #fff;
		width: 100vw;
		background-color: #004A95;
		margin: 0;
		text-align: center;
	}
}


@media screen and (max-width: 768px) {
	.sp {
		display: block;
	}

	.pc_sp {
		display: none;
	}

	.display_i {
		display: inline;
	}

	.nav_logo {
		max-width: 14rem;
	}

	.top_sec_1 {
		background-size: contain, auto 22%;
	}

	.top_sec_1_1_container {
		max-width: 100%;
		margin: 0;
		overflow: hidden;
	}

	.top_sec_1 .top_sec_1_1_inner .txt_wrap p {
		font-size: 1.3rem;
		letter-spacing: .08em;
		line-height: calc(32 / 13);
		color: #24538B;
	}

	.top_sec_1_ttl,
	.fp_ttl {
		max-width: 100%;
	}

	.top_sec_1 .top_sec_1_2_inner .txt_wrap {
		margin-left: 0;
	}

	.top_sec_1_3 .container {
		flex-direction: column;
		align-items: center;
	}

	.top_sec_1_3 .flow_wrap {
		width: 31rem;
	}

	.top_sec_1_3 .flow_wrap:not(:last-of-type) {
		margin-bottom: 9rem;
	}

	.top_sec_1_3 .flow_wrap:not(:last-of-type)::after {
		top: auto;
		right: 50%;
		bottom: -7.5rem;
		transform: translateX(50%);
		background-image: url(../img/top/ungle_bottom.svg);
		width: 3rem;
		height: 6rem;
	}

	.top_sec_2 {
		padding-top: 8.6rem;
	}

	.fp_work_ttl {
		max-width: 31rem;
	}

	.top_sec_2_inner {
		flex-direction: column;
		align-items: center;
		padding-right: 0;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap {
		width: 31rem;
	}

	.top_sec_3 {
		padding-top: 22rem
		padding-bottom: 10rem;
	}

	.top_sec_3 .container {
		flex-direction: column;
		align-items: center;
	}

	.top_sec_3 .example_ttl {
		margin: 0 auto;
	}

	.top_sec_3 .example_wrap {
		width: 31rem;
	}

	.top_sec_3 .example_wrap:nth-of-type(n+2) {
		margin-top: 5rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap {
		padding: 5.3rem 2.4rem 2rem;
		display: block;
		background-image: url(../img/top/fp_work_bg_top_sp.png),
						  url(../img/top/fp_work_bg_bottom_sp.png);
	}

	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(2n),
	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(n+2) {
		margin-top: 7rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap:first-of-type .right_img {
		width: 12rem;
		position: absolute;
		top: 6.5rem;
		right: 2rem;
	}
	
	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(2) .right_img {
		width: 20rem;
		position: absolute;
		top: 4rem;
		right: 4rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(3) .right_img {
		width: 13rem;
		position: absolute;
		top: 4rem;
		right: 2rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(4) .right_img {
		width: 8.4rem;
		position: absolute;
		top: 6rem;
		right: 1rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap p.num {
		font-size: 4.7rem;
		margin-bottom: 4rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap:nth-of-type(3) p.num  {
		margin-bottom: 6.1rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap p.txt span {
		display: inline;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap h3 {
		font-size: 2.4rem;
	}

	.top_sec_2 .top_sec_2_inner .work_wrap h3 span:first-of-type {
		display: inline-block;
		padding-bottom: 1rem;
		margin-bottom: 5px;
		border-bottom: 3px solid #182727
	}

	.top_sec_2 .top_sec_2_inner .work_wrap h3 span:nth-of-type(2) {
		display: block;
	}

	.fp_ttl {
		max-width: 100%;
		width: 100%;
	}


	/********** わたしたち **********/
	.we_are_1-1 {
		padding-top: 4.6rem;
		background-image: none;
		overflow: hidden;
	}

	.we_are_ttl {
		width: 21.2rem;
	}

	.we_are_1-1 .main_img {
		margin-top: 4.7rem;
		margin-bottom: 3rem;
		position: relative;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		max-width: 100vw;
	}

	.we_are_1-1 .txt_wrap {
		text-align: left;
	}

	.we_are_1-1 .txt_wrap p {
		font-size: 1.4rem;
		line-height: calc(32 / 14);
		letter-spacing: .05em;
	}

	.member_modal .modal__content {
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
		height: calc(392px - 50px);
	}

	.member_modal .modal__content .person_img {
		max-width: auto;
		width: 23rem;
	}

	.member_modal .modal__content .txt_wrap {
		transform: none;
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		padding: calc(30 / 320 * 100%);
		margin-bottom: 5rem;
		border-bottom-right-radius: 30px;
		border-bottom-left-radius: 30px;
	}

	.member_modal .modal__content .txt_wrap .ttl {
		margin: 2.5rem 0;
		flex-direction: column;
		align-items: flex-start;
	}

	.member_modal .txt_wrap .ttl span {
		font-size: 1.4rem;
	}

	.we_are_1-2 .container {
		transform: translateY(-9rem);
	}

	.we_are_1-2 .member_wrap {
		flex-direction: column;
		align-items: center;
	}

	.we_are_1-2 .member {
		width: calc(260 / 320 * 100%);
		max-width: 100%;
	}

	.we_are_1-2 .member:nth-of-type(n+2) {
		margin-left: 0;
		margin-top: 6.4rem;
	}

	.we_are_1-3 {
		padding-top: 8.3rem;
		padding-bottom: 6.5rem;
		background-size: contain;
	}

	.we_are_1-3 .container {
		width: 100%;
		padding: 0;
	}

	.we_are_1-3 .company_wrap {
		border-radius: 0;
		padding: 8.3rem calc(30 / 320 * 100%) 0;
	}

	.we_are_1-3 .company_wrap h3 {
		margin-bottom: 5rem;
	}

	.we_are_1-3 .company_wrap .flex {
		flex-direction: column;
	}

	.we_are_1-3 .company_wrap .flex .left,
	.we_are_1-3 .company_wrap .flex .right {
		width: 100%;
		text-align: center;
	}

	.gmap {
		padding-bottom: calc(375 / 418 * 100%);
		width: 100vw;
		left: 50%;
		transform: translateX(-50%);
	}

	#contact {
		margin-top: 0;
		padding-bottom: 0;
		padding-top: 0;
	}

	.contact_ttl {
		max-width: 30.5rem;
	}

	#contact h2 {
		margin-bottom: 4.1rem;
	}

	.contact_flow_wrap .flow {
		flex-direction: column;
	}

	.contact_flow_wrap .flow .img_wrap {
		margin-bottom: 3rem;
	}

	.contact_flow_wrap .flow .txt_wrap {
		width: 100%;
	}

	.contact_flow_wrap .flow .txt_wrap .ttl {
		text-align: center;
	}

	#contact h3 {
		font-size: 2.4rem;
	 	margin-top: 9rem;
	}

	.contact_form {
		position: relative;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		border-radius: 0;
		padding: 6.4rem calc(30 / 320 * 100%) 14rem;
	}

	.contact_form .flex_ac,
	.contact_form .flex_as {
		flex-direction: column;
	}

	.contact_form .left,
	.contact_form .right {
		width: 100%;
	}

	.contact_form .left {
		position: static;
		display: flex;
		flex-direction: row-reverse;
		justify-content: center;
		align-items: center;
		margin-bottom: 14px;
	}

	.contact_form .left_label {
		padding-left: 0;
	}

	.contact_form .left span {
		position: static;
		transform: none;
		margin-left: 7px;
	}

	.privacy_wrap {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}

	.w_46 {
		width: 46%;
	}

	footer {
		padding: 2rem;
	}
}


@media screen and (max-width: 768px) {
	.top_sec_1 {
		background-image: url(../img/top/top_back_sp.png),
						  url(../img/top/main_bg.jpg);
		background-size: contain, auto 17%;
	}

	.top_sec_1 .top_sec_1_2_inner .txt_wrap p {
		line-height: calc(32 / 14);
	}
}


/* 修正 */
header .header_nav ul li a.fa-line {
	font-size: 2.8rem;
}
.modal__content .close_btn {
    position: absolute;
    top: 3.5rem;
    right: 3rem;
    transform: translateY(-50%);
    color: #969696;
    margin-top: 0.5rem;
}
.flow a:link {
   color: #004a95;
   text-decoration: underline;
}
.flow a:visited {
   color: #551A8B;
   text-decoration: underline;
}
.flow a:active {
   color: #FF0000;
   text-decoration: underline;
}
.line_wrap {
    display: flex;
    flex-direction: column;
    margin-top: 19rem;
    justify-content: center;
    align-items: center;
    border: 1px solid;
    border-color: #dddd;
    border-radius: 20px;
    padding: 3rem 1rem;
}
.line_wrap3 {
	margin-top: 5rem;
	border: 2px solid;
	border-color: rgb(230, 245, 255);
}
.line_btn {
    font-size: 1.6rem;
    height: 4rem;
    display: flex;
    justify-content: center;
    border-radius: 50px;
    width: fit-content;
    padding: 0.5rem 4rem;
    margin-top: 3rem;
    background-color: #06c856;
    border: solid 2px #06c856;
    transition: all .5s;
    cursor: pointer;
}
.line_btn3 {
	margin-top: 0.3rem;
	height: 5rem;
	border-radius: 30px;
}
.line_btn3_wrap {
	margin-top: 3rem;
}
.line_btn3_wrap p {
    font-size: 1.7rem;
    display: flex;
    justify-content: center;
    font-weight: bold;
}
.line_btn:hover {
    background-color: #fff;
    color: #06c856;
}
.line_btn:hover .button {
    color: #06c856;
}

.line_btn .button { 
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
    letter-spacing: 1px;
}
.line_btn .button3 { 
	font-size: 1.8rem;
        white-space: nowrap;
}
.fa-2x {
    font-size: 1.7em !important;
}
.line_btn i {
	padding-left: 1rem;
}
.line_btn3 i {
	padding-left: 0rem;
	padding-right: 1rem;
}
#contact h3 {
    margin-top: 8rem;
}
#line_ttl h3 {
	margin-top: 0rem;
	transform: none;
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
}
.line_txt {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: calc(25 / 14);
    font-family: a-otf-gothic-bbb-pr5n, sans-serif;
}
@media screen and (max-width: 768px) {
    .line_txt {
        font-size: 1.2rem;
    }
}
@media screen and (max-width: 460px) {
	#line_ttl h3 {
		font-size: 1.7rem;
                font-size: 5.2vw;
	}
}
.contact_form .left_label {
    white-space: nowrap;
}
.contact_form .left {
    width: 25rem;
}

.right_select {
	cursor: pointer;
}
.ui-selectmenu-button {
    display: flex !important;
	align-items: center;
}
.ui-state-default{
    width: calc(100% - 18.6rem) !important;
    border-style: none !important;
    font-size: 1.6rem !important;
    height: 4.5rem !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #000 !important;
}
.ui-menu .ui-menu-item {
    position: relative;
    margin: 0;
    padding: 3px 1em 6px .4em !important;
    margin: .5em !important;
    border-bottom: .3px solid gray;
}
.ui-menu .ui-menu-item:first-child {
	margin: 0 !important;
}
.ui-menu .ui-menu-item:last-child {
	border-bottom: none;
	margin-bottom: 0 !important;
}
.ui-menu .ui-menu-item:first-child,
.ui-menu .ui-menu-item:last-child {
	line-height: 3;
	font-weight: bold !important;
	font-size: 1.25em !important;
}
.ui-selectmenu-text > .ui-selectmenu-menu-item-content {
	display: none !important;
}
.ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {
    border: none !important;
 }
.ui-selectmenu-text > .ui-selectmenu-menu-item-header {
	font-weight: normal !important;
}
.ui-menu-item > .ui-selectmenu-menu-item-header {
	font-size: 1.25em !important;
}
.ui-selectmenu-button span.ui-selectmenu-text {
    padding: 0.4em 2.1em 0.4em 0em !important;
}
@media screen and (min-width: 768px) {
	.ui-selectmenu-text > .ui-selectmenu-menu-item-header {
		font-size: min(1.6rem, 1.1vw) !important;
	}
}
@media screen and (max-width: 768px) {
	.ui-state-default,
	.ui-selectmenu-menu .ui-menu {
		width: 100% !important;
	}
	.ui-selectmenu-open {
		width: calc(100% - calc(55 / 320 * 100%)) !important;
	}
}
@media screen and (max-width: 400px) {
	.ui-selectmenu-menu-item-content {
		font-size: 2.9vw !important;
	}

	.ui-menu-item > .ui-selectmenu-menu-item-header {
		font-size: 3.8vw !important;
	}
}
@media screen and (max-width: 450px) {
	.ui-selectmenu-text > .ui-selectmenu-menu-item-header {
		font-size: 3.8vw !important;
	}
}
.flex_as {
    padding-top: 10px;
}