
body {
    color: #354563;
	font-family: "noto-sans", sans-serif;
    font-weight: 400;
	position: relative;
    left: 0;
    overflow-x: hidden;
	-webkit-text-size-adjust: 100%; /* iphone横向き 文字拡大防止 */
}
img {
	display: block;
	width: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}
a {
	text-decoration: none;
	color: #000;
	transition: all .3s;
}
a:hover {
	filter: brightness(1.1);
}
p {
	font-size: min(1.3vw,16px);
	line-height: 1.8;
}

/*最新のsafari用*/
::-webkit-full-page-media, :future, :root .AAA {
	
}
/*古いsafari用*/
@media screen and (-webkit-min-device-pixel-ratio:0) {
	::i-block-chrome, .AAA {
		
	}
}

:root {
    --navy: #354563;
    --blue: #0167ff;
}
/*==================================================================================
header
==================================================================================*/
header {
    display: flex!important;
    justify-content: space-between;
	width: 100%;
    box-sizing: border-box;
    padding: 40px!important;
    position: absolute;
    top: 0;
    left: 0;
	z-index: 9999;
	overflow: hidden;
}
header .logo {
    display: block;
    width: 120px;
}
header .bana {
    padding: 10px 20px;
    border: .2px #7e91af solid;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(66,90,124,0.7) 0%, rgba(48,63,86,0.7) 100%);
    box-shadow: 0 0 10px rgba(0,0,0,0.2), inset 0 0 10px rgba(255,255,255,0.10);
    position: relative;
}
header .bana::after {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: .2px #6a7f98 solid;
    background: linear-gradient(-45deg, #0167ff 0%, #0059a3 100%);
    position: absolute;
    top: -8px;
    right: -8px;
    box-shadow: inset 0 0 2px rgba(255,255,255,0.6);
}

/*==================================================================================
共通
==================================================================================*/
/* レイアウト */
section {
    padding: 12vh 0!important;
}
.container {
	width: 100%;
    box-sizing: border-box;
	padding: 0 80px;
	margin: auto;
}
.max1600 {
	max-width: 1600px;
	margin: auto;
}
.max1200 {
	max-width: 1200px;
	margin: auto;
}
.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.align_center {
	align-items: center;
}
.row.just_center {
	justify-content: center;
}
.row.just_start {
	justify-content: flex-start;
}
.row.just_end {
	justify-content: flex-end;
}
.z2 {
    position: relative;
    z-index: 2;
}
.wrap {
	display: inline-block;
}

.mb_10 {
	margin-bottom: 1.6vh;
}
.mb_20 {
	margin-bottom: 3vh;
}
.mb_40 {
	margin-bottom: 5vh;
}
.mb_60 {
	margin-bottom: 7vh;
}
.mb_100 {
	margin-bottom: 10vh;
}
.mb_120 {
	margin-bottom: 12vh;
}

/* フォント */
h2 {
    padding-left: 1.8em!important;
    position: relative;
}
h2::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background: var(--navy);
    position: absolute;
    top: 0;
    left: 0;
}
h2.white::before {
    background: #fff;
}
h2 span.eng {
    letter-spacing: 0.1em;
    transform-origin: left bottom;
    transform: rotate(90deg);
    position: absolute;
    top: 5vh;
    left: 0;
}
.font_12 {
	font-size: min(1.15vw,12px);
}
.font_14 {
	font-size: min(1.2vw,14px);
}
.font_16 {
	font-size: min(1.3vw,16px);
}
.font_20 {
	font-size: min(1.6vw,20px);
}
.font_24 {
	font-size: min(1.8vw,24px);
}
.font_30 {
	font-size: min(2.4vw,30px);
}
.font_34 {
	font-size: min(2.6vw,34px);
}
.font_46 {
	font-size: min(3.4vw,46px);
}
.font_54 {
	font-size: min(4vw,54px);
}
.font_60 {
	font-size: min(4.4vw,60px);
}
.font_80 {
	font-size: min(6vw,80px);
}
.font_120 {
	font-size: min(8vw,120px);
}
.txt_center {
	text-align: center;
}
.eng {
    font-family: "avenir-lt-pro", sans-serif;
    font-weight: 500;
    letter-spacing: 0.03em;
}
.bold {
	font-weight: 700;
}
.medium {
    font-weight: 500;
}
.black {
    font-weight: 900;
}
.eng.black {
	font-weight: 800;
}
.white {
    color: #fff;
}
.blue {
    color: var(--blue);
}
.navy {
	color: var(--navy);
}
.line1_4 {
    line-height: 1.4;
}
.line {
    line-height: 1;
}

/* アニメーション -----------*/
.animated.fadeinup {
	animation: fadeinup .6s;
}
@keyframes fadeinup {
	0% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinup.second {
	animation: fadeinup_2nd 1.2s;
}
@keyframes fadeinup_2nd {
	0% {opacity: 0; transform: translateY(30px);}
	50% {opacity: 0; transform: translateY(30px);}
	100% {opacity: 1; transform: translateY(0);}
}
.animated.fadeinright {
	animation: fadeinright .6s;
}
@keyframes fadeinright {
	0% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.animated.fadeinright.second {
	animation: fadeinright_2nd 1.2s;
}
@keyframes fadeinright_2nd {
	0% {opacity: 0; transform: translateX(30px);}
	50% {opacity: 0; transform: translateX(30px);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay {
    opacity: 0;
    transform: translateY(2px);
    transition: all .6s;
}
span.yay {
	display: inline-block;
}
.yay.second {
    animation: yay_2nd 1s;
}
@keyframes yay_2nd {
	0% {opacity: 0;}
	20% {opacity: 0;}
	100% {opacity: 1;}
}
/* 下から */
.yay.fadeinup {
    transform: translateY(20px);
}
.yay.fadeinup.second.on {
    animation: yay_up_2nd 1s;
}
@keyframes yay_up_2nd {
	0% {opacity: 0; transform: translateY(20px);}
	20% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
.yay.fadeinup.third.on {
    animation: yay_up_3rd 1s;
}
@keyframes yay_up_3rd {
	0% {opacity: 0; transform: translateY(20px);}
	40% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
.yay.fadeinup.forth.on {
    animation: yay_up_4th 1.2s;
}
@keyframes yay_up_4th {
	0% {opacity: 0; transform: translateY(20px);}
	42.85% {opacity: 0; transform: translateY(20px);}
	100% {opacity: 1; transform: translateY(0);}
}
/* 右から */
.yay.fadeinright {
    transform: translateX(30%);
}
.yay.fadeinright.second.on {
    animation: yay_right_2nd 1s;
}
@keyframes yay_right_2nd {
	0% {opacity: 0; transform: translateX(30%);}
	20% {opacity: 0; transform: translateX(30%);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay.fadeinright.third.on {
    animation: yay_right_3rd 1s;
}
@keyframes yay_right_3rd {
	0% {opacity: 0; transform: translateX(30%);}
	40% {opacity: 0; transform: translateX(30%);}
	100% {opacity: 1; transform: translateX(0);}
}
.yay.fadeinright.six.on {
    animation: yay_right_6th 1.6s;
}
@keyframes yay_right_6th {
	0% {opacity: 0; transform: translateX(30%);}
	62.5% {opacity: 0; transform: translateX(30%);}
	100% {opacity: 1; transform: translateX(0);}
}

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

/*==================================================================================
main
==================================================================================*/
section#main {
    height: 100vh;
    box-sizing: border-box;
    padding: 20vh 0 0!important;
    background: linear-gradient(45deg, #87acc6 0%, #455b7c 100%);
    position: relative;
	perspective: 1500px;
}
section#main::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url("../img/main_bg.png") center bottom / cover no-repeat;
    position: absolute;
    top: 0;
    left: 0;
	transform-origin: center top;
	animation: main_bg01 15s linear infinite;
}
@keyframes main_bg01 {
	0% {transform: scaleY(1); opacity: 1;}
	30% {transform: scaleY(.8); opacity: 1;}
	50% {transform: scaleY(.6); opacity: .2;}
	100% {transform: scaleY(1); opacity: 1;}
}
section#main::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url("../img/main_bg02.png") center bottom / cover no-repeat;
    position: absolute;
    top: 0;
    left: 0;
	transform-origin: center bottom;
	animation: main_bg02 18s infinite;
}
@keyframes main_bg02 {
	0% {transform: scaleY(1); opacity: .2;}
	50% {transform: scaleY(1.3); opacity: 1;}
	100% {transform: scaleY(1); opacity: .2;}
}
section#main .container {
    height: 100%;
}
h1 {
    line-height: 1.2;
    letter-spacing: 0.05em;
    transform: skewX(-8deg);
}
nav.gnav ul {
    display: flex;
}
nav.gnav ul li {
    margin-right: 40px;
}
nav.gnav ul li a {
    display: block;
    padding-left: .6em;
    position: relative;
}
nav.gnav ul li a::before {
    content: "-";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
}
nav.gnav ul li a:hover {
    color: var(--blue);
}
.dl_btns {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 460px;
    padding: 15px;
    border-radius: 20px;
    border: 1px #fff solid;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.3) 30%);
    box-shadow: inset 0 0 10px rgba(255,255,255,0.6);
	transition: transform .2s ease;
}
.dl_btns:hover,
.dl_btns:active {
	animation: purun .6s ease;
}
@keyframes purun {
	0% {transform: scale(1);}
	20% {transform: scale(1.05, .95);}
	40% {transform: scale(.97, 1.03) translateY(-4px);}
	60% {transform: scale(1.02, .98);}
	80% {transform: scale(.99, 1.01);}
	100% {transform: scale(1);}
}
.dl_btns p {
    width: 100%;
}
.dl_btns a {
    display: block;
}
.dl_btns a:hover {
    filter: brightness(1.3);
}
.dl_btns a.btn_g {
    width: 54%;
}
.dl_btns a.btn_a {
    width: 44%;
}
.dl_btns.disa a {
    filter: grayscale(1) opacity(.6);
    pointer-events: none;
}
section#main .dl_btns {
    width: 40%;
}
section#main .scroll {
    padding-top: calc(7vh + 10px);
    position: absolute;
    bottom: 80px;
    left: 80px;
}
section#main .scroll::before {
    content: "";
    display: block;
    height: 7vh;
    border-left: 1px #fff solid;
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: center bottom;
    animation: main_scroll 1.4s infinite;
}
@keyframes main_scroll {
    0% {transform: scaleY(1);}
    50% {transform: scaleY(0);}
    100% {transform: scaleY(0);}
}
/* manabu */
section#main .img {
    width: 36%;
	height: 70%;
	position: absolute;
	top: 0;
	right: 80px;
}
section#main .img .hover {
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
	transition: transform .6s linear;
	transform-origin: center center;
}
section#main .img img {
    display: block;
}
section#main .img img.img01 {
    width: 36%;
    position: absolute;
    top: 8%;
    right: 16%;
	animation: main 4s linear infinite;
}
section#main .img img.img02 {
    width: 77%;
    position: absolute;
    top: 0;
    right: 0;
	animation: main2 4s .4s linear infinite;
}
section#main .img img.img03 {
    width: 22%;
    position: absolute;
    top: 10%;
    left: 0;
	animation: main 4s .8s linear infinite;
}
@keyframes main {
	0% {transform: translateY(0);}
	20% {transform: translateY(.38vh);}
	25% {transform: translateY(.4vh);}
	60% {transform: translateY(-.38vh);}
	65% {transform: translateY(-.4vh);}
	100% {transform: translateY(0);}
}
@keyframes main2 {
	0% {transform: translateY(0);}
	30% {transform: translateY(-.38vh);}
	35% {transform: translateY(-.4vh);}
	70% {transform: translateY(.38vh);}
	75% {transform: translateY(.4vh);}
	100% {transform: translateY(0);}
}
section#main .img img.img04 {
    width: 34%;
    position: absolute;
    top: 9%;
    left: 28%;
	transition: transform .3s ease;
}
section#main .img img.img04:hover {
    animation: main_hat .5s ease;
}
section#main .img img.img05 {
    width: 40%;
    position: absolute;
    top: 23%;
    left: 25%;
	transition: transform .3s ease;
}
section#main .img img.img05:hover {
    animation: main_hat .5s ease;
}
/*
@keyframes main_hat {
	0% {transform: translateY(0);}
	40% {transform: translateY(-.2vh);}
	100% {transform: translateY(0);}
}
*/


/*==================================================================================
about
==================================================================================*/
section#about {
	padding-bottom: 6vh!important;
	background: linear-gradient(195deg, #556a89 0%, #87acc6 40%, #edf2f7 70%);
	position: relative;
	z-index: 2;
}
section#about h2 {
    position: absolute;
    top: 0;
    left: 80px;
}
section#about h3 span.font_120 {
    display: inline-block;
    transform: skewX(-15deg);
}
section#about .img {
    width: 50%;
    background: url("../img/about_frame.png") center center / 70% no-repeat;
    position: relative;
}
section#about .img::after {
    content: "";
    display: block;
    width: 18%;
    height: 20%;
    border-radius: 50%;
    background: rgba(0,0,0,0.1);
    position: absolute;
    bottom: -12%;
    left: 50%;
    transform: scaleY(-10%) translateX(-50%);
}
section#about .img .tag {
    display: inline-block;
    padding: .3em .7em;
    border-radius: 30px;
    background: var(--blue);
    color: #fff;
    position: absolute;
    top: 29%;
    left: 20%;
}
section#about .img .name_fp {
    position: absolute;
    top: 50%;
    left: 20%;
    transform: translateY(-50%);
}
section#about .img .name_m {
    position: absolute;
    top: 50%;
    right: 20%;
    transform: translateY(-50%);
}
section#about .img img {
    width: 80%;
    margin: auto;
}
section#about .txt {
    width: 45%;
}
section#about .txt p {
    max-width: 540px;
    padding: 1.2em 2em;
    border-radius: 0 15px 15px;
    border: 1px #fff solid;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.3) 30%);
    box-shadow: inset 0 0 10px rgba(255,255,255,0.6), -3px -3px 0 rgba(255,255,255,0.8), 5px 5px 5px rgba(0,0,0,0.05);
}
section#about .dl_btns {
    background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.6) 30%);
}

/*==================================================================================
company
==================================================================================*/
section#company {
    background: #edf2f7;
}
section#company ul.s_list li {
    margin-right: 20px;
}
section#company ul.s_list li span {
    display: inline-block;
	padding: .6em .8em;
	border-radius: .7em;
	background: var(--blue);
	position: relative;
}
section#company ul.s_list li span::after {
	content: "";
	display: block;
	border-right: 8px var(--blue) solid;
	border-bottom: 8px var(--blue) solid;
	position: absolute;
	bottom: -7px;
	left: 50%;
	transform: rotate(45deg) translateX(-50%);
}
section#company h3 {
    transform: skewX(-15deg);
}
section#company h3 .font_120 {
    letter-spacing: -0.05em;
}
section#company h3 .font_120 sup {
    font-size: 0.6em;
	position: relative;
	top: -.8em;
}
section#company .inner {
	width: calc(100% - 100px);
	margin: 0 0 0 auto;
}
/* CC */
section#company .ccboad {
	display: block;
	padding: 30px 40px 10% 32%;
	border-radius: 0 50px 50px;
	background: linear-gradient(30deg, #061c3f 0%, #274c89 100%);
	overflow: hidden;
	position: relative;
}
section#company .ccboad:hover {
	filter: brightness(1) contrast(1.2) saturate(.8);
	box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
section#company .ccboad::before {
	content: "";
	display: block;
	width: 100%;
	max-width: 1280px;
	height: 100%;
	background: url("../img/logo_cc_c.png") left -3% top -3% / 30% no-repeat, url("../img/logo_cc.png") left 20px bottom -2% / 70% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
}
section#company .ccboad::after {
	content: "";
	display: block;
	width: 3em;
	height: 3em;
	border: 1px #fff solid;
	border-radius: 50%;
	background: linear-gradient(45deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.8));
	background-position: center;
	position: absolute;
	right: 40px;
	bottom: 40px;
	box-shadow: 2px 2px 6px rgba(0,0,0,0.3), inset 0 0 10px rgba(255,255,255,0.8);
	transition: all .3s;
}
section#company .ccboad:hover::after {
	animation: ccboad_arrow .3s;
	border-color: var(--blue);
	background: var(--blue) url("../img/icon_arrow_wh.png") center center / 30% no-repeat;
	box-shadow: 2px 2px 6px rgba(0,0,0,0.3), inset 0 0 10px rgba(0,0,0,0.2);
	transform: scale(1.4);
}
@keyframes ccboad_arrow {
	0% {transform: scale(1); background-image: none;}
	50% {transform: scale(0); background-image: none;}
	100% {transform: scale(1.4); background-image: url("../img/icon_arrow_wh.png");}
}
section#company .ccboad .item {
	display: inline-block;
	margin: 0 10px 10px 0;
	padding: .1em .6em;
	border-radius: 0 .5em .5em;
	background: linear-gradient(45deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.4) 100%);
	letter-spacing: 0.02em;
}
section#company .opa {
	opacity: .4;
}
/* LIFE BANK */
section#company h3.sub {
	max-width: 1200px;
	margin: 0 0 0 auto;
    transform: skewX(-10deg);
}
section#company .lbboad {
	display: block;
	max-width: 1200px;
	box-sizing: border-box;
	margin: 0 0 0 auto;
	padding: 30px 40px 30px 15%;
	border-radius: 0 50px 50px;
	border: 2px #fff solid;
	background: linear-gradient(30deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.6) 100%);
	box-shadow: inset 0 0 30px rgba(255,255,255,0.8);
	position: relative;
}
section#company .lbboad::before {
	content: "";
	display: block;
	width: 15%;
	height: 40%;
	background: url("../img/logo_lb.png") center top / 50% no-repeat;
	position: absolute;
	top: 30px;
	left: 0;
}
section#company .lbboad::after {
	content: "";
	display: block;
	width: 3em;
	height: 3em;
	border: 1px #fff solid;
	border-radius: 50%;
	background: linear-gradient(30deg, #061c3f 0%, #274c89 100%);
	position: absolute;
	right: 40px;
	bottom: 40px;
	box-shadow: 2px 2px 6px rgba(0,0,0,0.1);
	transition: all .3s;
}
section#company .lbboad:hover::after {
	animation: lbboad_arrow .3s;
	border-color: var(--blue);
	background: var(--blue) url("../img/icon_arrow_wh.png") center center / 30% no-repeat;
	box-shadow: 2px 2px 6px rgba(0,0,0,0.3), inset 0 0 10px rgba(0,0,0,0.2);
	transform: scale(1.4);
}
@keyframes lbboad_arrow {
	0% {transform: scale(1); background-image: none;}
	50% {transform: scale(0); background-image: none;}
	100% {transform: scale(1.4); background-image: url("../img/icon_arrow_wh.png");}
}
section#company .lbboad .item {
	display: inline-block;
	margin: 0 10px 10px 0;
	padding: .1em .6em;
	border-radius: 0 .5em .5em;
	background: linear-gradient(45deg, #ced5e0 0%, #dae1ea 100%);
	letter-spacing: 0.02em;
}

/*==================================================================================
contact
==================================================================================*/
section#contact {
	padding: 0 0 7vh!important;
	background: #edf2f7;
}
section#contact .bg {
	padding: 10vh 0;
	border-radius: 0 0 60px 60px;
	background: linear-gradient(#c7d4dd 0%, #87acc6 80%);
	overflow: hidden;
	position: relative;
}
section#contact .bg::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/contact_bg.png") right top / 80% no-repeat;
	position: absolute;
	top: 0;
	left: 0;
}
section#contact .inner {
	width: calc(100% - 100px);
	margin: 0 0 0 auto;
}
section#contact h2 {
    position: absolute;
    top: 0;
    left: 80px;
}
section#contact h3 {
    transform: skewX(-15deg);
}
section#contact .txt {
    width: 62%;
}
section#contact .img {
    width: 30%;
	max-width: 360px;
	border-radius: 50%;
	border: 4px #fff solid;
	background: linear-gradient(#c7d4dd 0%, #87acc6 100%);
	box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
	position: absolute;
	right: 0;
	bottom: 0;
}
section#contact .icon_mail {
	padding-left: 2em;
	position: relative;
}
section#contact .icon_mail::before {
	content: "";
	display: block;
	width: 1.6em;
	height: 1.6em;
	background: url("../img/icon_mail.png") center top / contain no-repeat;
	position: absolute;
	top: -10%;
	left: 0;
}


/*==================================================================================
フッター
==================================================================================*/
footer {
	border-top: 1px #ccc solid!important;
}
footer ul li {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(100% / 3);
	box-sizing: border-box;
	border-right: 1px #ccc solid;
	padding: 30px 2vw;
}
footer ul li:first-child {
	border-left: 1px #ccc solid;
}
footer ul li a.icon_link {
	display: inline-block;
	padding-right: 1.6em;
	position: relative;
}
footer ul li a.icon_link::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background: url("../img/icon_arrow.png") right center / contain no-repeat;
	position: absolute;
	top: 0;
	right: 0;
	transition: all .2s;
}
footer ul li a.icon_link:hover::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background: url("../img/icon_arrow.png") right center / contain no-repeat;
	position: absolute;
	top: -.2em;
	right: -.2em;
}
footer ul li:last-child a:first-child {
	margin-right: 10px;
}
footer ul li a:hover {
	color: var(--blue);
}
footer ul li.disa a {
	filter: grayscale(1) opacity(.6);
    pointer-events: none;
}
footer .copy {
	padding: 1em 0;
	border-top: 1px #ccc solid;
}



.tb {display: none;}
.pc {display: inline;}
.sp {display: none;}

@media screen and (max-width : 960px) {
	.pc {display: none;}
	.tb {display: inline;}
	
	p { font-size: 14px; }	
	/*==================================================================================
	header
	==================================================================================*/
	header {
	    padding: 20px!important;
	}
	header .logo {
	    width: 100px;
	}
	header .bana {
	    padding: 8px 10px;
	}
	header .bana::after {
	    width: 15px;
	    height: 15px;
	    top: -6px;
	    right: -6px;
	    box-shadow: inset 0 0 2px rgba(255,255,255,0.3);
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	section {
	    padding: 100px 0!important;
	}
	.container {
		padding: 0 40px;
	}
	.mb_10 {
		margin-bottom: 5px;
	}
	.mb_20 {
		margin-bottom: 15px;
	}
	.mb_40 {
		margin-bottom: 20px;
	}
	.mb_60 {
		margin-bottom: 40px;
	}
	.mb_100 {
		margin-bottom: 60px;
	}
	.mb_120 {
		margin-bottom: 80px;
	}

	/* フォント */
	h2 span.eng {
	    top: 30px;
	}
	.font_12 {
		font-size: min(1.6vw,10px);
	}
	.font_14 {
		font-size: min(1.8vw,12px);
	}
	.font_16 {
		font-size: min(2.4vw,14px);
	}
	.font_20 {
		font-size: min(2.4vw,18px);
	}
	.font_24 {
		font-size: min(4vw,20px);
	}
	.font_30 {
		font-size: min(4vw,24px);
	}
	.font_34 {
		font-size: min(3.2vw,28px);
	}
	.font_46 {
		font-size: min(4.6vw,34px);
	}
	.font_54 {
		font-size: min(4.6vw,34px);
	}
	.font_60 {
		font-size: min(4.2vw,46px);
	}
	.font_80 {
		font-size: min(7vw,50px);
	}
	.font_120 {
		font-size: min(11.4vw,80px);
	}
	/*==================================================================================
	main
	==================================================================================*/
	section#main {
	    height: 100vh;
		padding: 10vh 0 0!important;
	}
	section#main .container {
	    max-width: 640px;
	}
	h1.font_60 {
		font-size: min(6.4vw,46px);
	}
	nav.gnav ul li {
	    margin-right: 30px;
	}
	.dl_btns {
	    max-width: 100%;
		justify-content: center;
		box-sizing: border-box;
	    padding: 10px;
	    border-radius: 15px;
	}
	section#main .yay.fadeinup.third {
	    width: calc(100% - 80px);
		position: absolute;
		bottom: 5vh;
		left: 40px;
	}
	section#main .dl_btns {
	    width: 100%;
		margin: auto;
		position: relative;
	    order: 3;
	}
	.dl_btns a.btn_g {
	    max-width: 200px;
		margin-right: 2%;
	}
	.dl_btns a.btn_a {
	    max-width: 160px;
	}
	section#main .scroll {
	    display: none;
	}
	/* manabu */
	section#main .img {
	    width: 80%;
		height: auto;
		margin: 0 5% 0 auto;
		position: relative;
		right: 0;
	}
	section#main .img img.img02 {
	    position: relative;
	    margin: 0 0 0 auto;
	}
	/*==================================================================================
	about
	==================================================================================*/
	section#about {
		padding-bottom: 0!important;
		background: linear-gradient(195deg, #556a89 0%, #87acc6 60%, #edf2f7 80%);
	}
	section#about h2 {
		margin-bottom: 20px;
	    position: relative;
	    top: 0;
	    left: 0;
	}
	section#about h3 span.font_120 {
		font-size: min(10.4vw,80px);
	}
	section#about .img {
	    width: 100%;
		max-width: 360px;
		margin: 0 auto 60px;
	    background: url("../img/about_frame.png") center center / 100% no-repeat;
	}
	section#about .img .tag {
	    top: 24%;
	    left: 7%;
	}
	section#about .img .name_fp {
	    left: 7%;
	}
	section#about .img .name_m {
	    right: 7%;
	}
	section#about .img img {
		width: 100%;
	}
	section#about .txt {
	    width: 100%;
	}
	section#about .txt p {
		max-width: 360px;
		box-sizing: border-box;
		margin: auto;
	    padding: 0;
		margin-bottom: 10px;
	    border-radius: 0;
		border: none;
		background: none;
	    box-shadow: none;
		font-size: 14px;
	}
	/*==================================================================================
	company
	==================================================================================*/
	section#company ul.s_list {
		margin-bottom: 30px;
	}
	section#company ul.s_list li {
	    margin-right: 10px;
	}
	section#company .inner {
		width: calc(100% - 60px);
	}
	section#company h3.font_54 {
		font-size: min(3.6vw,34px);
	}
	section#company h3 .font_120 {
		font-size: min(7.8vw,68px);
	    letter-spacing: -0.05em;
	}
	section#company .font_80 {
		font-size: min(5.4vw,50px);
	}
	/* CC */
	section#company .ccboad {
		padding: 20px 30px 10% 20px;
		border-radius: 0 30px 30px;
	}
	section#company .ccboad::before {
		background: url("../img/logo_cc_c.png") right -3% top -3% / 30% no-repeat, url("../img/logo_cc.png") left 20px bottom -1% / 70% no-repeat;
	}
	section#company .ccboad::after {
		width: 1.4em;
		height: 1.4em;
		right: 20px;
		bottom: 20px;
	}
	/* LIFE BANK */
	section#company h3.font_46 {
		font-size: min(3.8vw,34px);
	}
	section#company .lbboad {
		padding: 20px 40px 20px 15%;
		border-radius: 0 30px 30px;
	}
	section#company .lbboad::after {
			width: 1.4em;
			height: 1.4em;
			right: 20px;
			bottom: 20px;
	}
	/*==================================================================================
	contact
	==================================================================================*/
	section#contact {
		padding: 0 0 5vh!important;
	}
	section#contact .bg {
		padding: 5vh 0;
		border-radius: 0 0 40px 40px;
	}
	section#contact .inner {
		width: calc(100% - 60px);
	}
	section#contact h2 {
	    position: relative;
	    top: 0;
	    left: 0;
	}
	section#contact .txt {
	    width: 66%;
	}
	section#contact .font_20.txt  {
	    font-size: min(1.6vw,16px);
	}
	section#contact .img ~ p.medium{
		padding-right: 30%;
	}
}


@media screen and (max-width : 460px) {
	.tb {display: none;}
	.sp {display: inline;}
	/*==================================================================================
	header
	==================================================================================*/
	header .logo {
		width: 80px;
	}
	header .bana {
	    display: none;
	}
	/*==================================================================================
	共通
	==================================================================================*/
	/* レイアウト */
	section {
		padding: 60px 0!important;
	}
	.container {
		padding: 0 20px;
	}
	/* フォント */
	.font_12 {
		font-size: 10px;
	}
	.font_14 {
		font-size: 12px;
	}
	.font_16 {
		font-size: 14px;
	}
	.font_20 {
		font-size: 16px;
	}
	.font_24 {
		font-size: 20px;
	}
	.font_30 {
		font-size: 24px;
	}
	.font_34 {
		font-size: 28px;
	}
	.font_46 {
		font-size: 34px;
	}
	.font_54 {
		font-size: 34px;
	}
	.font_60 {
		font-size: 40px;
	}
	.font_80 {
		font-size: 50px;
	}
	.font_120 {
		font-size: 74px;
	}

	/*==================================================================================
	main
	==================================================================================*/
	section#main .yay.fadeinup.third {
	    width: calc(100% - 40px);
		left: 20px;
	}
	section#main h1 .font_120 {
	    font-size: 60px;
	}
	nav.gnav {
	    margin-bottom: 5vh;
	}
	nav.gnav li a.font_16 {
	    font-size: 12px;
	}
	/*==================================================================================
	about
	==================================================================================*/
	section#about h3 {
		padding-left: 40px;
	}
	section#about h3  {
		font-size: 14px;
		line-height: 1.8;
	}
	section#about h3 span.font_120 {
		font-size: 40px;
	}
	section#about .img {
		margin: 0 auto 40px;
	}
	section#about .img .tag {
	    font-size: 14px;
	}
	section#about .img .name_fp {
		font-size: 12px;
	}
	section#about .img .name_m {
	    font-size: 12px;
	}
	section#about .txt p {
		margin-bottom: 0;
		line-height: 1.6;
	}
	/*==================================================================================
	company
	==================================================================================*/
	section#company h2 {
		margin-bottom: 40px;
	}
	section#company ul.s_list {
	    padding-left: 40px;
	}
	section#company ul.s_list li {
	    margin-right: 5px;
	}
	section#company ul.s_list li .font_20 {
	    font-size: 14px;
	}
	section#company .inner {
		width: 100%;
	}
	section#company h3.font_54 {
		padding-left: 40px;
		font-size: 14px;
	}
	section#company h3 .font_120 {
		font-size: 28px;
	}
	section#company .font_80 {
		font-size: 18px;
	}
	/* CC */
	section#company .ccboad {
		padding: 20px 15px 10% 15px;
		border-radius: 0 30px 30px;
	}
	section#company .ccboad::before {
		background: url("../img/logo_cc_c.png") right -3% top -3% / 40% no-repeat, url("../img/logo_cc.png") left 20px bottom / 70% no-repeat;
	}
	section#company .ccboad::after {
		width: 1.4em;
		height: 1.4em;
		right: 20px;
		bottom: 20px;
	}
	section#company .ccboad p,
	section#company .lbboad p {
		font-size: 12px;
	}
	section#company .ccboad .font_30,
	section#company .lbboad .font_30 {
		display: inline-block;
		margin-bottom: 10px;
		font-size: 22px;
		line-height: 1.4;
	}
	section#company .ccboad .font_24 {
		font-size: 16px;
	}
	section#company .ccboad .item,
	section#company .lbboad .item {
		margin: 0 5px 5px 0;
		padding: .1em .4em;
		font-size: 16px;
		letter-spacing: 0;
	}
	/* LIFE BANK */
	section#company h3.font_46 {
		margin-bottom: 80px;
		font-size: 16px;
	}
	section#company h3.sub .font_80 {
		font-size: 30px;
	}
	section#company h3.sub .font_60 {
		font-size: 20px;
	}
	section#company .lbboad {
		padding: 50px 15px 30px;
		border-radius: 0 30px 30px;
	}
	section#company .lbboad::before {
		content: "";
		display: block;
		width: 80px;
		height: 80px;
		background: url("../img/logo_lb.png") center top / contain no-repeat;
		top: -50px;
		left: 10px;
	}
	section#company .lbboad::after {
			width: 1.4em;
			height: 1.4em;
			right: 20px;
			bottom: 20px;
	}
	section#company .lbboad .font_20 {
		font-size: 14px;
	}
	/*==================================================================================
	contact
	==================================================================================*/
	section#contact {
		padding: 0 0 60px!important;
	}
	section#contact .bg {
		margin-bottom: 0;
		padding: 60px 0 28%;
	}
	section#contact .inner {
		width: calc(100% - 40px);
	}
	section#contact h3.font_80 {
	    font-size: 30px;
	}
	section#contact .font_34 {
	    font-size: 18px;
		line-height: 1.6;
	}
	section#contact .txt {
	    width: 100%;
	}
	section#contact .font_20.txt  {
	    font-size: 12px;
	}
	section#contact .img {
	    width: 40%;
		margin: -25% auto 20px;
		position: relative;
	}
	section#contact .img ~ p.medium{
		padding-right: 0;
	}
	/*==================================================================================
	フッター
	==================================================================================*/
	footer ul li {
		width: calc(100% / 2);
		border-right: 1px #ccc solid;
		padding: 20px 0;
	}
	footer ul li:last-child {
		width: 100%;
		padding: 10px;
		border-top: 1px #ccc solid;
		border-left: 1px #ccc solid;
	}
	footer ul li a.font_20 {
		font-size: 14px;
	}
}



