@charset "UTF-8";

:root {
	font-family: 'Noto Sans JP', sans-serif;
	--color-blue: #3B4C85;
	--color-skyblue: #DEF1FB;
	--color-orange: #EC6C00;
	--color-yellow: #FFF000;
}

@media all {
	.lp-header {
		position: fixed;
		z-index: 999;
		transition: transform .3s;
	}
	.lp-main-header,
	.example-header {
		background-color: var(--color-blue);
		overflow: hidden;
	}
	.lp-header > div {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		margin: 0 auto;
		height: 100%;
		padding: 0 20px;
	}
	.lp-header a {
		display: flex;
		justify-content: center;
		align-items: center;
		background: var(--color-orange);
		color: #fff;
		font-weight: bold;
	}
	.y-line {
		display: inline-block;
		background: linear-gradient(to bottom, rgba(255,255,255,0) 50%, var(--color-yellow) 50%);
	}
	.y-line-narrow {
		display: inline-block;
		background: linear-gradient(to bottom, rgba(255,255,255,0) 80%, var(--color-yellow) 80%);
	}
	.o-wave {
		display: inline-block;
		background: bottom repeat-x url(../img/rakutoku/y-wave.png);
		color: var(--color-orange);
	}
	.first-section-lead span {
		display: inline-block;
	}
	.first-section-list {
		position: relative;
		background-color: var(--color-skyblue);
	}
	.first-section-list::before {
		content: '';
		z-index: 1;
		position: absolute;
		top: -20px;
		left: calc(50% - 53px);
		width: 106px;
		height: 53px;
		background: center / contain no-repeat url(../img/rakutoku/triangle-w.svg);
		overflow: hidden;
	}
	.pov {
		counter-reset: pov;
		font-weight: bold;
	}
	.pov-item {
		counter-increment: pov;
		position: relative;
	}
	.pov-dt {
		display: inline-block;
		font-weight: 900;
		line-height: 1.125;
		font-feature-settings: "palt";
	}
	.pov-dt::before {
		content: '0' counter(pov);
		position: absolute;
		z-index: 1;
	}
	.pov-dd {
		font-feature-settings: "palt";
	}


	.example-header {
		color: var(--color-yellow);
		text-align: center;
	}
	.example-item {
		position: relative;
		background-color: #fff;
		border: 2px solid #D8E9F8;
		text-align: center;
	}
	.example-item::before,
	.example-item::after {
		content: '';
		position: absolute;
		display: block;
		background: center / contain no-repeat url(../img/rakutoku/pin.png);
	}
	.example-item::after {
		transform: scale(-1, 1);
	}
	.example-dt {
		font-weight: 900;
		color: var(--color-blue);
	}
	.example-inner-list {
		position: relative;
		background-color: var(--color-skyblue);
	}
	.example-inner-list::after {
		content: 'など';
		display: block;
		position: absolute;
		font-weight: normal;
	}
	.example-inner-list li {
		position: relative;
		padding-left: 1em;
		font-feature-settings: "palt";
	}
	.example-inner-list li::before {
		content: '';
		position: absolute;
		display: block;
		background-color: #009FE8;;
	}

	.achieve-section {
		background-color: var(--color-skyblue);
	}
	.achieve-header {
		text-align: center;
	}
	.achieve-ttl {
		font-weight: bold;
		color: var(--color-orange);
	}
	.achieve-lead {
		font-weight: bold;
	}
	.achieve-dt {
		display: inline-flex;
		justify-content: center;
		align-items: center;
		background-color: var(--color-blue);
		font-weight: bold;
		color: #fff;
	}
	.achieve-dd {
		display: inline-block;
		font-weight: 900;
		color: var(--color-blue);
	}
	
	.contact-section {
		margin: 0;
	}
	.contact-header {
		font-feature-settings: "palt";
		font-weight: bold;
		text-align: center;
	}
	.contact-ttl {
		font-weight: 900;
		color: var(--color-blue);
	}
	.contact-tel-link a {
		color: var(--color-blue);
	}

	.form {
		background: #fff;
	}
	.form-list dt {
		font-weight: bold;
	}
	.required::after {
		content: none;
	}
	.required::before {
    content: '必須';
    display: inline-flex;
		justify-content: center;
		align-items: center;
    margin-right: 1.5em;
		height: 2em;
		width: 4em;
    border: 1px solid var(--color-blue);
    border-radius: 1em;
    color: var(--color-blue);
    line-height: 1;
	}
}


/* sp */
@media only screen and (max-width: 767px) {
	:root {
		font-size: 0.3125vw;
	}
	#splash-logo {
		width: 80%;
	}
	/* body {
		padding-bottom: 70rem;
	} */
	.lp-header {
		left: 0;
		bottom: 0;
		background: #fff;
		width: 320rem;
		height: 70rem;
	}
	.lp-header.hidden {
		transform: translateY(100rem);
	}
	.lp-header a {
		width: 86.25vw;
		height: 13.75vw;
		border-radius: 6.875vw;
		font-size: 18rem;
	}

	.lp-main {
		overflow: hidden;
	}
	.lp-main-header {
		padding: 60px 0 50px;
		text-align: center;
		/* max-height: 148vw; 高さを指定すると、parallax風味が効く */
	}
	.h1-ttl {
		width: auto;
		height: 148rem;
	}
	.h1-img {
		margin-top: 48rem;
		width: auto;
		height: 166rem;
	}
	.first-section,
	.example-section {
		font-feature-settings: "palt";
	}

	.first-section-lead {
		margin-top: 3em;
		padding: 0 5rem;
		font-size: 18rem;
		text-align: center;
	}
	.first-section-list {
		margin-top: 50rem;
		padding: 85rem 0;
	}
	.first-section-list::before {
		top: -20rem;
		left: calc(50% - 53rem);
		width: 106rem;
		height: 53rem;
	}
	.pov-item {
		padding-top: 87rem;
		text-align: center;
		width: 320rem;
		overflow: hidden;
	}
	.pov-item + .pov-item {
		margin-top: 40rem;
	}
	.pov-dt {
		font-size: 31rem;
	}
	.pov-dt::before {
		top: 0;
		left: calc(50% - .6em);
		font-size: 62rem;
	}
	.pov-dd {
		font-size: 19rem;
		margin-top: 4rem;
	}
	.pov-img {
		margin-top: 8rem;
		width: 278rem;
	}

	.example-header {
		display: flex;
		flex-direction: column;
		justify-content: center;
		height: 163rem;
	}
	.example-ttl span {
		display: block;
		margin-top: 4rem;
		font-size: 24rem;
	}
	.example-ttl img {
		width: 209rem;
	}
	.example-case {
		padding: 35rem 17rem 60rem;
		background-image: url(../img/rakutoku/gridx4.png);
		background-size: 34rem;
	}
	.example-item {
		padding: 22rem 0 28rem;
	}
	.example-item::before,
	.example-item::after {
		top: -8rem;
		width: 18rem;
		height: 28rem;
	}
	.example-item::before {
		left: 4rem;
	}
	.example-item::after {
		right: 4rem;
	}
	.example-item + .example-item {
		margin-top: 28rem;
	}
	.example-dt {
		font-size: 18rem;
	}
	.example-fig img {
		width: 244rem;
	}
	.example-dd {
		margin-top: 16rem;
		font-size: 18rem;
	}
	.example-inner-list {
		margin: 12rem auto 0;
		padding: 10rem 0 32rem 19rem;
		width: 246rem;
		font-size: 16rem;
		text-align: left;
		line-height: 1.5;
	}
	.example-inner-list::after {
		right: 15rem;
		bottom: 10rem;
		font-size: 14rem;
	}
	.example-inner-list li::before {
		top: 12rem;
		left: 0;
		width: 4rem;
		height: 4rem;
		border-radius: 1rem;
	}
	.example-inner-list li > small {
		font-size: 14rem;
	}

	.achieve-section {
		padding: 60rem 5rem 132rem;
	}
	.achieve-ttl img {
		width: 65vw;
	}
	.achieve-ttl span {
		display: block;
		margin-top: 10rem;
		font-size: 24rem;
	}
	.achieve-lead {
		margin-top: 30px;
		font-size: 20rem;
		font-feature-settings: "palt";
	}
	.achieve-list {
		margin-top: 32rem;
	}
	.achieve-item + .achieve-item {
		margin-top: 64rem;
	}
	.achieve-dt {
		width: 100rem;
		height: 34rem;
		font-size: 19rem;
	}
	.achieve-dd {
		margin-left: 16rem;
		font-size: 20rem;
	}
	.achieve-label {
		margin: 10rem 0 20rem;
	}
	.achieve-label img {
		margin-right: 8rem;
		width: auto;
		height: 27rem;
	}
	.contact-section {
		margin: 0;
		padding: 44rem 0;
		width: 100%;
		background: center top repeat url(../img/rakutoku/gridx4.png);
		background-size: 34rem;
	}
	.contact-ttl {
		padding: 0 5rem;
		font-size: 22rem;
	}
	.contact-lead {
		padding: 0 5rem;
		font-size: 20rem;
	}
	.contact-tel-link {
		font-size: 28rem;
	}
	.other-menu-list {
		font-size: 14rem;
	}
}


/* tab & pc */
@media print,
(min-width: 768px) {
	.lp-header {
		top: 0;
		left: 0;
		width: 100%;
		height: 100px;
		background: linear-gradient(0deg, rgba(56, 74, 127, 0) 0%, rgba(56, 74, 127, 1) 100%);;
	}
	.lp-header.hidden {
		transform: translateY(-120px);
	}
	.lp-header > div {
		width: 81.25vw;
	}
	.lp-header a {
		width: 228px;
		height: 55px;
		border-radius: 27.5px;
		font-size: 20px;
	}

	.lp-main-header {
		padding: 100px 40px 0 20px;
		height: calc(31.25vw + 100px);
	}
	.lp-main-header h1 {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin: 0 auto;
		width: 81.967%;
	}
	.h1-ttl {
		width: 52.8%;
	}
	.h1-img {
		width: 40%;
	}
	.first-section-lead {
		margin: 75px auto 0;
		padding: 0 20px;
		max-width: 880px;
		font-size: 28px;
		font-weight: bold;
		text-align: center;
	}
	.o-wave {
		background-size: 12%;
	}
	.first-section-list {
		margin-top: 100px;
		padding: 60px 10px 100px;
	}
	.pov-item {
		display: flex;
		margin: 0 auto;
		padding-top: 30px;
		width: 100%;
		max-width: 775px;
		overflow: hidden;
	}
	.pov-item + .pov-item {
		margin-top: 50px;
	}
	.pov dl {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		padding: 0 115px 0;
		width: 100%;
		height: 190px;
		background: #fff;
	}
	.pov-dl::before,
	.pov-dl::after {
		content: '';
		position: absolute;
		bottom: 0;
		width: 100%;
		height: 190px;
		background-color: var(--color-skyblue);
	}
	.pov-dl::before {
		left: 1px;
		transform: rotate(-52.8deg);
		transform-origin: left bottom;
	}
	.pov-dl::after {
		right: 1px;
		transform: rotate(-52.8deg);
		transform-origin: right top;
	}
	.pov-dt {
		display: inline-block;
		padding: 0 4px;
		font-size: 32px;
		line-height: 1.125;
		font-feature-settings: "palt";
	}
	.pov-dt::before {
		position: absolute;
		top: -4px;
		left: 94px;
		font-size: 62px;
		z-index: 1;
	}
	.pov-dd {
		margin-top: 4px;
		font-size: 20px;
		font-feature-settings: "palt";
	}
	.pov-img {
		position: absolute;
		bottom: 7px;
		right: 74px;
		display: block;
		width: auto;
		height: 200px;
	}
	.pov-item.pov3 {
		padding-bottom: 10px;
	}
	.pov-item.pov3 .pov-dl::after {
		height: 200px;
	}
	.pov-img.img3 {
		height: 216px;
		bottom: 0;
		right: 55px;
	}
	

	.example-header {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 170px;
		font-size: 38px;
	}
	.example-ttl {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
	}
	.example-ttl img {
		margin-right: 20px;
	}
	.example-case {
		padding: 60px 0;
		background-image: url(../img/rakutoku/grid.png);
		background-size: 34px;
	}
	.example-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	.example-item {
		margin: 20px;
		padding: 30px 0 0 ;
		width: 450px;
		height: 554px;
	}
	.example-item::before,
	.example-item::after {
		width: 28px;
		height: 44px;
		top: -8px;
	}
	.example-item::before {
		left: 4px;
	}
	.example-item::after {
		right: 4px;
	}
	.example-dt {
		font-size: 27px;
	}
	.example-fig {
		margin-top: 10px;
	}
	.example-dd {
		margin-top: 24px;
		font-size: 24px;
		font-weight: bold;
	}
	.example-inner-list {
		margin: 16px auto 0;
		padding: 12px 0 24px 2em;
		width: 322px;
		font-size: 16px;
		text-align: left;
		line-height: 1.5;
	}
	.example-inner-list::after {
		bottom: .5em;
		right: 2em;
	}
	.example-inner-list li::before {
		top: 10px;
		left: 0;
		width: 5px;
		height: 5px;
		border-radius: 1px;
	}
	.example-inner-list li small {
		font-size: 14px;
	}

	.achieve-section {
		padding: 80px 20px;
	}
	.achieve-ttl {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		margin: 0 auto;
		width: 384px;
		font-size: 38px;
		line-height: 1;
	}
	.achieve-lead {
		margin-top: 30px;
		font-size: 20px;
	}
	.achieve-content {
		position: relative;
		margin: 70px auto 0;
		padding: 50px 20px 57px;
		max-width: 1000px;
		background-image: url(../img/rakutoku/grid.png);
		background-size: 34px;
		background-position-x: 20px;
	}
	.achieve-content::before,
	.achieve-content::after {
		content: '';
		position: absolute;
		top: 6px;
		width: 28px;
		height: 44px;
		background: center / contain no-repeat url(../img/rakutoku/pin.png);
	}
	.achieve-content::before {
		left: 14px;
	}
	.achieve-content::after {
		right: 14px;
		transform: scale(-1, 1);
	}
	.achieve-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin: 0 auto;
		max-width: 824px;
	}
	.achieve-item {
		width: 47.5%;
		max-width: 357px;
	}
	.achieve-item:nth-child(n+3) {
		margin-top: 50px;
	}
	.achieve-dt {
		font-size: 19px;
		width: 100px;
		height: 34px;
	}
	.achieve-dd {
		margin-left: 16px;
		font-size: 20px;
	}
	.achieve-label {
		margin: 10px 0 18px;
	}
	.achieve-label img + img {
		margin-left: 6px;
	}

	.contact-section {
		padding: 70px 0;
		background: center repeat url(../img/rakutoku/grid.png);
		background-size: 34px;
	}
	.contact-ttl {
		font-size: 30px;
	}
	.contact-lead {
		font-size: 20px;
	}
	.contact-tel-link {
		font-size: 28px;
	}
}


/* tab */
@media (min-width: 768px) and (max-width: 1024px) {}



/* inview */
@media only screen {
	.pov-item {
		opacity: 0;
		transform: translateX(120%);
		transition: .5s;
		transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
	}
	.pov-item.animated {
		opacity: 1;
		transform: translateX(0px);
	}
}
@media only screen and (min-width: 1025px) {
	.pov-item.pov1.animated {
		transform: translateX(-112px);
	}
	.pov-item.pov2.animated {
		transform: translateX(0px);
	}
	.pov-item.pov3.animated {
		transform: translateX(112px);
	}
}



/* form */
@media all {
	.form-list input,
	.form-list select,
	.form-list textarea {
		border: 1px solid var(--color-blue);
	}
	.form input[type="checkbox"] {
		width: 2em;
		height: 2em;
		margin-right: 1em;
	}
	.privacy {
		display: flex;
		justify-content: center;
		font-weight: bold;
	}

	.submit-btn, .button-form_check {
		background-color: var(--color-orange);
		font-weight: bold;
	}
	#dispmsg {
		background-color: transparent;
		margin-top: 0;
	}
	.form-sent {
		background-color: transparent;
	}
}
/* form - sp */
@media only screen and (max-width: 767px) {
	.form {
		margin: 50rem 0 0;
		padding: 20rem 10rem;
	}
	.form-list {
		margin-top: 20rem;
	}
	#fancybox-wrap {
		width: 80vw!important;
		height: 70vh!important;
		top: 10vh!important;
		left: 10vw!important;
	}
	#privacy_text {
		font-size: 14rem;
	}
	.form-list dt,
	.form-list dd,
	.form-list input,
	.form-list select,
	.form-list textarea,
	.privacy {
		font-size: 16rem;
	}
	.privacy {
		padding-left: 10rem;
		display: inline-flex;
		font-weight: bold;
	}
	.form input[type="checkbox"] {
		margin-right: 10rem;
	}

	.form-list input,
	.form-list select {
		height: 50rem;
	}
	.form-list dd {
		margin-top: 6rem;
	}
	.form-list dd + dt {
		margin-top: 24rem;
	}
	.required::before {
		font-size: 13.5rem;
	}
	.submit-btn, .button-form_check {
		border-radius: 25rem;
	}
	.checking .form-check {
		font-size: 14rem;
	}
	.checking .check-list {
		max-height: 46vh;
	}
	.form-check .button-form_check {
		max-width: 100rem;
		font-size: 14rem;
	}
	.form-check .return {
		max-width: 80rem;
		font-size: 11.25rem;
	}
}
/* form - tab & pc */
@media print,
(min-width: 768px) {
	.form {
		margin: 40px auto 0;
		padding: 80px 20px;
		width: calc(100% - 40px);
		max-width: 1000px;
		border: 1px solid var(--color-skyblue);
	}
	.form-list {
		padding: 0;
	}
	.form-list dt {
		width: 290px;
		font-size: 18px;
	}
	.form-list dd {
		width: calc(100% - 290px);
	}
	.required::before {
		font-size: 18px;
	}
	.form .privacy {
		font-size: 20px;
		font-weight: bold;
		text-align: center;
	}
	#privacy_text {
		padding: 0;
		width: auto;
	}
	.submit-btn, .button-form_check {
		border-radius: 30px;
	}
	#dispmsg.error {
		margin-bottom: 2em;
	}
}


/* splash */
@media all {
	.lp-header,
	.lp-main {
		opacity: 0;
	}
}