@charset "utf-8";

/*-----------------------------------------------------------
全体スタイル
-----------------------------------------------------------*/
:root {
	--fontA: "M PLUS 1p", sans-serif;
	--fontB: "Noto Sans JP", sans-serif;
	--fontC: "Outfit", sans-serif;
	--fontD: "Rounded Mplus 1c", sans-serif;
	--fontE: "Yu Gothic", sans-serif;

	--base: #333333;
	--primary: #52BFF0;
	--secondary: #2E7DC4;
	--tertiary: #FFF45A;
	--quaternary: #FF5C4A;
	--fifth: #1130A8;
	--white: #FFF;
	--black: #1A1A1A;

	--bg-primary: #52BFF0;
	--bg-secondary: #C8F2FD;
	--bg-tertiary: #2E7DC4;
	--bg-quaternary: #FFF892;
}


.fontA {
  font-family: "M PLUS 1p", sans-serif;
}

.fontB {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-weight: 600;
  font-weight: 700;
}

.fontC {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
}

.fontD {
  font-family: "Rounded Mplus 1c", sans-serif;
  font-weight: 700;
}

.fontE {
  font-family: "Yu Gothic", sans-serif;
  font-weight: 700;
}

body {
	width: 100%;
	max-width: 1920px;
	font-size: 18px;
	line-height: 1.6;
	font-family: "M PLUS 1p", sans-serif;
	font-weight: 700;
	color: var(--base);
	background: var(--white);
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
}

/* Mplus p1 のジャギー対策 必要な要素のみ絞ること */
p,
a,
button,
h1,
h2,
h3,
h4,
h5,
h6,
label,
span,
li,
address,
small,
th,
td,
dt,
dd {
	transform: rotate(-0.05deg);
}

.sp {
	display: none
}


/*-----------------------------------------------------------
# header
-----------------------------------------------------------*/
.header {
	position: fixed;
	max-width: 1920px;
	width: 100%;
	top: 0;
	right: 0;
	left: 0;
	z-index: 999;
	pointer-events: none;
	/* pointer-events: none; */
}

.headerArea {
	padding: 30px 2.604%;
	width: 100%;
}

.headerArea {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.headerLogo {
	display: block;
	max-width: 180px;
	width: 100%;
	pointer-events: auto;
}

.headerLogoImg {
	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
	border-radius: 5%;
}

.headerNav {
	margin: -7px 0 0 15px;
	width: 75%;
	max-width: 1240px;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 37px;
	padding: 8px 8px 13px;
	/* box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); */
	background: var(--white);
	border-radius: 5px;
	pointer-events: auto;
}

.headerNavArea {
	padding: 10px 0 10px;
	width: auto;
	display: inline-flex;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: wrap;
	pointer-events: auto;
}

.headerLinkList {
	display: flex;
	align-items: center;
}

.headerSnsList {
	margin: 0 0 0 30px;
	display: flex;
	align-items: center;
}

.headerLinkListItem:nth-of-type(n + 2) {
	margin: 0 0 0 40px;
}

.headerSnsListItem:nth-of-type(n + 2) {
	margin: 0 0 0 25px;
}

.headerSnsListLink {
    display: flex;
    justify-content: center;
    align-items: center;
    transition: .3s ease-in-out;
}

.headerLinkListLink {
	font-size: 18px;
	font-family: var(--fontB);
	display: block;
	transition: .3s ease-in-out;
}

.headerContact {
	max-width: 240px;
	width: 100%;
	background: var(--bg-tertiary);
	border: 2px solid var(--primary);
	border-top: 0;
	border-radius: 10px;
	box-shadow: 0 6px 0 var(--primary);
	transition: .3s ease-in-out;
	pointer-events: auto;
}

.headerContactBtn {
	padding: 14px 5px 14px;
	width: 100%;
	color: var(--white);
	font-size: 18px;
	text-align: center;
	font-family: var(--fontB);
	display: block;
	pointer-events: auto;
}

.headerLinkListLink {
	pointer-events: auto;
}

.headerLinkListLink:hover {
	color: var(--primary);
}

.headerSnsListLink:hover {
	opacity: 0.6;
}

.headerContact:hover {
	background: var(--bg-primary);
	transform: translateY(4px);
	box-shadow: none;
}

/*-----------------------------------------------------------
# footer
-----------------------------------------------------------*/
.footer {
	margin: 0 auto;
	max-width: 1920px;
	width: 100%;
	background: var(--bg-primary);
	padding: 0 5.2%;
}

.footerArea {
	max-width: 1270px;
	width: 100%;
	margin: 0 auto;
	padding: 96px 0 30px;
}

.footerContainer {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

.footerBox {
	display: flex;
}

.footerInfo {
	margin: 28px 0 0 50px;
}

.footerLogo {
	max-width: 198px;
	width: 100%;
}

.footerSiteName {
	font-size: 30px;
	font-weight: 700;
	font-family: var(--fontD);
}

.footerAddress {
	margin: 20px 0 0;
	font-size: 16px;
	font-weight: 700;
	font-family: var(--fontD);
	line-height: 1.71;
}

.footerSnsList {
	display: flex;
	justify-content: flex-end;
}

.footerSns {
	flex: 1;
}

.footerSnsListItem:nth-of-type(n + 2) {
	margin: 0 0 0 20px;
}

.copyright {
	margin: 30px 0 0;
	text-align: right;
	display: block;
	font-size: 14px;
	font-weight: 900;
}



/*-----------------------------------------------------------
# sp menu
-----------------------------------------------------------*/
.spNav {
	display: none;
}

.spNavBtn {
	display: none;
}

.spMenu {
	display: none;
}



/*-----------------------------------------------------------
# common
-----------------------------------------------------------*/

.ttl01Box {
	text-align: center;
	font-size: 100px;
}

.ttl01 {
	font-size: 1em;
	font-family: var(--fontC);
	font-weight: 800;
	letter-spacing: 0.03em;
	color: var(--primary);
	line-height: 1;
}

.ttlSub01 {
	margin: 0.4em;
	font-size: 0.2em;
	font-weight: 800;
}

.fukidashi01 {
	position: relative;
}

.fukidashi01:before,.fukidashi01:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	width: 33px;
	height: 47px;
	z-index: 1;
}

.highlight {
	color: var(--quaternary);
}

.txt01 {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.388em;
}

.txt02 {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.944em;
}

.txt03 {
	font-size: 18px;
	letter-spacing: 0.03em;
	line-height: 2.222em;
}

.btn01 {
	padding: 0.2em 1em 0.2em;
	max-width: 280px;
	width: 100%;
	min-height: 60px;
	border: 2px solid var(--base);
	border-radius: 100vmax;
	font-family: var(--fontB);
	font-size: 20px;
	letter-spacing: 0.05em;
	line-height: 1.5em;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: .3s ease-in-out;
}

.btn01.active {
	background: var(--white);
}

.btn01:hover {
	background: var(--bg-quaternary);
	transition: .3s ease-in-out;
}

.btn02 {
	padding: 1.3em 1.5em 1.3em;
	max-width: 273px;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 20px;
	letter-spacing: 0.05em;
	line-height: 1.28em;
	font-family: var(--fontB);
	/* border: 2px solid var(--secondary); */
	border-radius: 100vmax;
	background: var(--tertiary);
	box-shadow: 0 6px 0 var(--secondary);
	position: relative;
	transition: .3s ease-in-out;
}

.btn02:hover {
	background: var(--bg-secondary);
	transform: translateY(4px);
	box-shadow: none;
	transition: .3s ease-in-out;
}

.btn02--next:after {
	content: "";
	height: 0.84em;
	width: 0.56em;
	display: inline-block;
	background: var(--base);
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	position: absolute;
	top: 50%;
	right: 1.2em;
	transform: translate(0, -50%);
}

.btn02--back:after {
	content: "";
	height: 0.84em;
	width: 0.56em;
	display: inline-block;
	background: var(--base);
	clip-path: polygon(0 50%, 100% 100%, 100% 0);
	position: absolute;
	top: 50%;
	left: 1.2em;
	transform: translate(0, -50%);
}

.btn02.btn02--gray {
	background: #d9d9d9;
}

.btn02.btn02--gray:hover {
	background: #efefef;
}

.incover {
	background: var(--bg-primary);
	height: 300px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.incoverBox {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 80px;
}

.incoverEnTxt {
	font-family: var(--font02);
	color: var(--base);
}

.incoverTit {
	font-size: 0.4em;
	font-weight: 800;
}

.pankuzu {
	margin: 15px 0 0;
	padding: 0 15px;
}

.pankuzuArea {
	margin: 0 auto;
	max-width: 1230px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

.pankuzuTxt-arrow {
	margin: 0 1em;
}

.pankuzuTxt {
	font-size: 18px;
	font-weight: 800;
}

.pankuzuTxt-link {
	color: var(--primary);
	text-decoration: underline;
}

.pankuzuTxt-link:hover {
	text-decoration: none;
}

.inWrap {
	@a: 0px auto;
	padding: 100px 0 100px;
	max-width: 1920px;
}

.inner {
	margin: 0 auto;
	padding: 0 15px;
	max-width: 1560px;
}


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 1700px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.headerLogo {
    max-width: 140px;
    pointer-events: auto;
}

.headerArea {
    padding: 20px 15px;
}

.headerLinkListItem:nth-of-type(n + 2) {
    margin: 0 0 0 15px;
}

.headerLinkListLink {
    font-size: 16px;
}

.headerSnsImg {
    max-width: 25px;
}


/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 1700px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 1350px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.headerNavArea {
    display: block;
}


.headerNav {
    flex: inherit;
	width: 65%;
}

.headerLinkListLink {
    font-size: 13px;
}

.headerLinkList {
    order: 1;
}

.headerSnsList {
    margin: 8px 0 0;
    order: 2;
    width: 100%;
    justify-content: flex-end;
}

.headerLogo {
    max-width: 120px;
}

.headerContactBtn {
    padding: 10px 5px 10px;
    font-size: 14px;
}

.headerContact {
    max-width: 200px;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 1350px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 1200px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.ttl01Box {
    font-size: 80px;
}

.txt01 {
    font-size: 16px;
}

.txt02 {
    font-size: 16px;
}

.txt03 {
    font-size: 16px;
}

.btn02 {
    font-size: 18px;
    max-width: 250px;
}

.footerArea {
    padding: 80px 15px 30px;
}

.footerLogo {
    max-width: 140px;
}

.footerInfo {
    margin: 15px 0 0 40px;
}

.footerSiteName {
    font-size: 18px;
}

.footerAddress {
    font-size: 16px;
}

.footerSnsListLink {
	transition: .3s ease-in-out;
}

.footerSnsListLink:hover {
	opacity: .6;
}

.incover {
	height: 250px;
}

.incoverBox {
	font-size: 60px;
}

.inWrap {
	padding: 80px 0 80px;
}

.pankuzuTxt {
	font-size: 16px;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 1200px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 1024px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.pc {
	display: none;
}

.sp {
	display: block;
}

.headerNav {
    display: none;
}

.spNav {
	border-top: 1px solid var(--white);
	width: calc(100% - 80px);
	height: 80px;
	display: block;
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 9999;
	background: var(
	--bg-secondary);
}

.spNavBtn {
	display: flex;
	z-index: 999999;
	position: fixed;
	width: 80px;
	height: 80px;
	right: 0;
	bottom: 0;
	border-top: 1px solid var(--white);
	border-left: 1px solid var(--white);
	background: var(--bg-primary);
	flex-direction: column;
	justify-content: center;
	align-items: center;
	transition: .3s ease-in-out;
}

.spNavBtn.open {
    background: var(--bg-secondary);
}

.spMenu {
	display: block;
}

.spMenu {
    position: fixed;
    height: 100vh !important;
    width: 100vw;
    top: 0;
    right: 0;
    left: 0;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    background: var(--bg-primary);
    transition: .3s ease-in-out;
}

.spMenuArea {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.spMenuConte {
    /* height: 100%; */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.spMenuBx:nth-of-type(n + 2) {
    margin: 15px 0 0;
}

.spMenuLink {
    font-size: 20px;
    font-weight: 800;
}

.spNavArea {
    height: 100%;
    width: 100%;
}

.spNavBlock {
    width: 100%;
    height: 100%;
    display: flex;
}

.spNavConte {
    flex: 1;
}

.spNavConte:nth-of-type(n + 2) {
    border-left: 1px solid var(--white);
}

.spNavLink {
    margin: 2px 0 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.spFa {
    font-size: 25px;
}

.spNavLinkTxt {
    margin: 0.2em 0 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}

.spNavBtnBar {
    margin: 4px 0 0;
    height: 27px;
    width: 35px;
    display: block;
    position: relative;
}

.spNavBtnBarItem {
    margin: auto;
    display: block;
    width: 100%;
    height: 3px;
    background: var(--base);
    border-radius: 100vmax;
    position: absolute;
    transition: .3s ease-in-out;
}

.spNavBtnBarItem:nth-of-type(1) {
    top: 0;
    right: 0;
    left: 0;
}

.spNavBtnBarItem:nth-of-type(2) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.spNavBtnBarItem:nth-of-type(3) {
    right: 0;
    bottom: 0;
    left: 0;
}

.spNavBtnTxt {
    margin: 7px 0 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

.spSnsList {
    margin: 30px 0 0;
    display: flex;
    justify-content: center;
}

.spSnsListItem:nth-of-type(n + 2) {
    margin: 0 0 0 20px;
}

.spSnsListLink {
    display: flex;
    justify-content: center;
    align-items: center;
}

.open .spNavBtnBarItem:nth-of-type(1) {
    top: 52%;
    transform: rotate(45deg);
}

.open .spNavBtnBarItem:nth-of-type(2) {
	opacity: 0;
}

.open .spNavBtnBarItem:nth-of-type(3) {
    bottom: 32%;
    transform: rotate(135deg);
}

.open.spMenu {
    opacity: 1;
    visibility: visible;
}

.ttl01 {
    font-size: 70px;
}

.footerArea {
    padding: 40px 15px 30px;
}

.footerContainer {
    display: block;
}

.footerBox {
    display: block;
}

.footerLogo {
    margin: 0 auto;
}

.footerInfo {
    margin: 20px auto 0;
}

.footerSiteName {
    font-size: 16px;
    text-align: center;
}

.footerAddress {
    margin: 15px auto 0;
    text-align: center;
    font-size: 14px;
}

.footerSns {
    margin: 40px auto 0;
}

.footerSnsList {
    justify-content: center;
}

.copyright {
    margin: 40px auto 0;
    text-align: center;
    font-size: 12px;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 1024px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 768px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.headerArea {
    padding: 15px;
}

.headerLogo {
    max-width: 80px;
}

.txt01 {
    font-size: 14px;
}

.txt02 {
    font-size: 14px;
}

.txt03 {
    font-size: 12px;
}

.ttl01 {
    font-size: 50px;
}

.btn01 {
    max-width: 250px;
    font-size: 18px;
    min-height: 50px;
}

.btn02 {
    font-size: 15px;
    max-width: 200px;
}

.spNavLinkTxt {
    font-size: 16px;
}

.spNavBtnTxt {
    font-size: 16px;
}

.incover {
	height: 200px;
}

.incoverBox {
	font-size: 45px;
}

.pankuzuTxt {
	font-size: 14px;
}

.inWrap {
	padding: 60px 0 60px;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 768px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 576px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

.ttl01 {
    font-size: 40px;
}

.btn01 {
    font-size: 16px;
    min-height: 40px;
}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 576px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (max-width: 375px) {

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */



/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

} /* max-width: 375px ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */



