@charset "utf-8";

/*-----------------------------------------------------------
全体スタイル
-----------------------------------------------------------*/
:root {
	--font01: "M PLUS 1p", sans-serif;
	--font02: "Dela Gothic One", sans-serif;
	--font03: "Outfit", sans-serif;

	--base: #1A1A1A;
	--primary: #FF861C;
	--secondary: #FFB676;
	--tertiary: #FFDF76;
	--quaternary: #EB3329;
	--fifth: #1130A8;
	--white: #FFF;
	--black: #1A1A1A;

	--bg-primary: #FFCA1C;
	--bg-secondary: #FFDF76;
	--bg-tertiary: #FF861C;
	--bg-quaternary: #FFFCDB;
}

body {
	width: 100%;
	max-width: 1920px;
	font-size: 16px;
	line-height: 1.6;
	font-family: "M PLUS 1p", sans-serif;
	font-weight: 500;
	color: var(--base);
	background: var(--bg-quaternary);
	background-image: url(../img/bg01.svg);
	background-repeat: repeat;
	background-size: auto;
	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; */
}

.headerArea {
	padding: 30px 2.604%;
	width: 100%;
}

.headerArea {
	display: flex;
	justify-content: space-between;
}

.headerLogo {
	display: block;
	max-width: 180px;
	width: 100%;
}

.headerLogoImg {
	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
	border-radius: 5%;
}

.headerNav {
	margin: -7px 0 0 15px;
	flex: 1;
	text-align: right;
}

.headerNavArea {
	padding: 10px 40px;
	width: auto;
	background: var(--white);
	border-radius: 100vmax;
	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
	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 30px;
}

.headerSnsListItem:nth-of-type(n + 2) {
	margin: 0 0 0 15px;
}

.headerSnsListLink {
    display: flex;
    justify-content: center;
    align-items: center;
    transition: .3s ease-in-out;
}

.headerLinkListLink {
	font-size: 18px;
	font-weight: 900;
	transition: .3s ease-in-out;
}

.headerContact {
	margin: 0 30px 0 auto;
	max-width: 240px;
	background: var(--bg-tertiary);
	border: 2px solid var(--black);
	border-top: 0;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 6px 0 var(--black);
	transition: .3s ease-in-out;
	pointer-events: auto;
}

.headerContactBtn {
	padding: 14px 5px 14px;
	width: 100%;
	color: var(--white);
	font-weight: 900;
	font-size: 18px;
	text-align: center;
	display: block;
}

.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%;
	border-top: 2px solid var(--black);
	background: var(--white);
}

.footerArea {
	padding: 110px 5.2% 50px;
}

.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: 20px;
	font-weight: 800;
}

.footerAddress {
	margin: 20px 0 0;
	font-size: 18px;
	font-weight: 700;
}

.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: 15px;
	font-weight: 500;
}



/*-----------------------------------------------------------
# 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(--font03);
	font-weight: 800;
	letter-spacing: 0.03em;
	line-height: 1;
}

.ttlSub01 {
	margin: 0.4em;
	font-size: 0.2em;
	font-weight: 800;
}

.fukidashi01 {
	border: 2px solid var(--base);
	border-radius: 10px;
	background: var(--white);
	position: relative;
}

.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: 300px;
	width: 100%;
	min-height: 65px;
	border: 2px solid var(--base);
	border-radius: 100vmax;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0.03em;
	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: 0.98em 1.5em 0.98em;
	max-width: 330px;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 25px;
	font-weight: 800;
	letter-spacing: 0.03em;
	line-height: 1.28em;
	font-family: var(--font03);
	border: 2px solid var(--base);
	border-radius: 100vmax;
	background: var(--white);
	box-shadow: 0 6px 0 var(--base);
	position: relative;
	transition: .3s ease-in-out;
}

.btn02:hover {
	transform: translateY(4px);
	box-shadow: none;
	background: var(--bg-secondary);
	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;
}

.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: 20px;
    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: 18px;
    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 ここまで */

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */



