@charset "UTF-8";

html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	overflow-y: scroll;
	font-size: 62.5%;
}

body {
	font-family: "Zen Kaku Gothic New", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "HG丸ｺﾞｼｯｸM-PRO", "HGMaruGothicMPRO", "verdana", sans-serif;
	width: 100%;
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-size: 1.6rem;
	line-height: 1.6;
	color: #1e1e1e;
	background: #fff;
	height: 100%;
	margin: 0;
	/*	-webkit-font-smoothing: antialiased;*/
	position: relative;
}

#main {
	overflow: hidden;
	position: relative;
}

a {
	text-decoration: none;
	transition: all .2s ease-out;
	text-decoration: none;
	cursor: pointer;
}

a:focus-visible {
	outline: 1px dashed #000 !important;
}

div:focus-visible {
	outline: 1px dashed #000 !important;
}

img {
	width: 100%;
}

p {
	line-height: 150%;
}

ol,
ul,
li {
	list-style: none;
	padding: 0;
}

.pc {
	display: block;
}

.sp {
	display: none;
}

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

	.sp {
		display: block;
	}
}
.p-header a:hover {
	text-decoration: none;
	opacity: 1;
}

/* ================================
        追従
================================ */
.float_btn {
	display: flex;
	position: fixed;
	bottom: 0;
	z-index: 10;
	width: 100%;
	filter: drop-shadow(0px -10px 20px rgba(0, 0, 0, 0.1));
	background-color: #f36610;
	height: 100%;
    max-height: 100px;
}
.float_left,
.float_right {
	display: flex;
	align-items: center;
	width: 50%;
}
.float_left {
	background-color: #da1426;
	clip-path: polygon(0 0,100% 0,90% 100%,0 100%)
}
.float_right {
	background-color: #f36610;
}
.float_left div,
.float_right div {
	width: 100%;
	margin: 0 auto;
	/* padding: 20px 0; */
}
/* @media screen and (max-width:768px) {

	.float_left div,
	.float_right div {
		padding: 14px 0;
	}
} */
.float_btn div a {
	width: 100%;
	height: 100%;
	display: block;
	padding: 6%;
}
.float_left div a img,
.float_right div a img {
	width: 100%;
	max-width: 418px;
	margin: 0 auto;
}

/* @media screen and (max-width:1000px) {
	.float_left div a img,
	.float_right div a img {
		max-width: 160px;
	}
} */

@media screen and (max-width:820px) {
	.float_btn div a {
		padding: 6% 10%;
	}
}

@media screen and (max-width:768px) {
	.float_btn {
		height: 20vw;
	}
}

@media screen and (max-width:375px) {
	.float_left div a img {
		margin-left: 5px;
	}
}

/* Common
------------------------------------------------------------ */
/* ================================
        Layout
================================ */
.Center {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	max-width: 1040px;
	position: relative;
	text-align: center;
	padding: 0 20px;
}
.sec-inner {
	max-width: 800px;
	margin: 0 auto;
}

/* スクロールアニメーション */
.fadein {
	opacity: 0;
	transform : translate(0, 50px);
	transition : all 1500ms;
}
.fadein.scrollin{
	opacity: 1;
	transform: translate(0, 0);
}

@media screen and (max-width:820px) {
	.sec-inner {
		max-width: 730px;
}
}

/* Section
------------------------------------------------------------ */
/* ================================
        mv
================================ */
.mv {
	width: 100%;
	margin-top: 100px;
}

@media screen and (max-width: 768px) {
    .mv {
        margin-top: clamp(70px, 13vw, 100px);
    }
}

/* ================================
        lead
================================ */
.sec--lead {
	padding: 100px 0;
	background-position: bottom;
    background-size: cover;
	background-image: url(../img/lead_bg.webp);
	background-color: #da1426;
	margin-top: -1px;
}
.lead-txt {
	max-width: 800px;
	margin: 0 auto;
}
.lead-txt p {
	font-size: 32px;
    color: #fff;
    font-weight: 800;
    line-height: 200%;
}
.lead-txt_big {
	padding: 60px 0;
}

@media screen and (max-width:768px) {
	.sec--lead {
		background-image: url(../img/s_lead_bg.webp);
		padding: 6% 0 34%;
	}
	.lead-txt {
		padding: 0 6%;
	}
	.lead-txt p {
		font-size: 5vw;
		line-height: 160%;
	}
	.lead-txt_big {
		padding: 10% 0 0;
	}
}

/* ================================
        point
================================ */
.sec--point {
	padding: 100px 0;
	background-position: bottom;
	background-repeat: repeat-x;
    background-size: 30%;
	background-image: url(../img/point_bg.webp);
	background-color: #feef3e;
	margin-top: -1px;
}
.point-wrap {
	background-repeat: no-repeat;
    background-size: 30%;
	padding-bottom: 100px;
}
.point-wrap:first-child {
	background-image: url(../img/point_01_bg.webp);
	background-position: 80% 9%;
	background-repeat: no-repeat;
    background-size: 30%;
}
.point-wrap:nth-of-type(2) {
	background-image: url(../img/point_02_bg.webp);
	background-position: 20% 0%;
}
.point-wrap:nth-of-type(3) {
	background-image: url(../img/point_03_bg.webp);
	background-position: 80% 0%;
}
.point-ttl._right {
	margin:0 0 0 auto
}
.point-ttl {
	max-width: 800px;
	width: 80%;
}
.point-img {
	max-width: 800px;
	width: 70%;
	margin: 0 auto;
	padding: 40px 0 0;
}
.point-note {
	font-size: 20px;
	padding: 40px 0;
	font-weight: 800;
}
.sec_btn {
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
	margin-top: 40px;
}
a.btn_more {
	position: relative;
	color: #da1426;
	font-size: 20px;
	font-weight: bold;
	background: #fff;
	padding: 24px 50px;
	border: 3px solid #da1426;
	box-shadow: 3px 5px 0 #da1426;
	border-radius: 6px;
	display: inline-block;
	transition: .3s;
	text-decoration: none;
	border-radius: 100vh;
	max-width: 440px;
    width: 100%;
	text-align: center;
	font-style: italic;
}
a.btn_more:hover {
	transform: translateY(5px);
	box-shadow: 0 0 0 #da1426;
}
a.btn_more::after {
    content: "";
    background-image: url(../img/btn_arrow.webp);
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    bottom: 0;
    right: 6%;
    background-size: contain;
    height: 20px;
    width: 20px;
    background-repeat: no-repeat;
}
a.btn_more._yellow {
	background: #faf4a9;
}
a.btn_more._brown {
	color: #5a2d0d;
	border: 3px solid #5a2d0d;
	box-shadow: 3px 5px 0 #5a2d0d;
}
a.btn_more._brown:hover {
	transform: translateY(5px);
	box-shadow: 0 0 0 #5a2d0d;
}
.point-bottom {
	padding: 80px 0;
}

@media screen and (max-width:768px) {
	.sec--point {
		padding: 10% 0 26%;
		background-repeat: no-repeat;
		background-size: 100%;
	}
	.point-img {
		max-width: 800px;
		width: 100%;
		margin: 0 auto;
		padding: 4% 0 0;
	}
	.point-ttl {
		width: 100%;
	}
	.point-wrap {
		padding-bottom: 0;
	}
	.point-wrap:first-child {
		background-position: 100% 3%;
		background-size: 34%;
		padding-bottom: 30%;
	}
	.point-note {
		font-size: 4.27vw;
		padding: 6% 6% 0;
	}
	.point-wrap:nth-of-type(2) {
		background-image: url(../img/point_02_bg.webp);
		background-position: -20% 1%;
		background-size: 46%;
		padding-bottom: 30%;
	}
	.point-more {
		padding: 6%;
	}
	.sec_btn {
		gap: 30px;
		margin-top: 10%;
		padding: 0 10%;
	}
	a.btn_more {
		font-size: 4.27vw;
		padding: 6%;
	}
	.point-wrap:nth-of-type(3) {
		background-position: 100% 1%;
		background-size: 36%;
		padding-bottom: 20%;
	}
	.point-bottom {
		padding: 0;
	}
}

/* ================================
        addition
================================ */
.sec--addition {
	background-image: url(../img/sec_line_01.webp), url(../img/addition_bg.webp);
    background-repeat: repeat-x, repeat-y;
    background-size: 60%, 100%;
    background-position: bottom, top;
    padding: 200px 0;
	margin-top: -1px;
}
.addition-ttl {
    width: 90%;
    margin-left: -90px;
}
.addition-img {
    width: 100%;
    margin: 40px auto 0;
}
.addition-banner {
	width: 100%;
}
.addition-img._banner {
	width: 100%;
	justify-content: center;
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
}
a.banner-link {
    box-shadow: 10px 10px 0 #da1426;
    transition: .3s;
    display: block;
}
a.banner-link:hover {
	transform: translateY(5px);
	box-shadow: 0 0 0 #da1426;
}
.addition-wrap:first-child {
	background-image: url(../img/addition_deco_01.webp);
	background-position: 90% 9%;
    background-repeat: no-repeat;
    background-size: 14%;
}
.addition-wrap:nth-of-type(2) {
	background-image: url(../img/addition_deco_02.webp);
	background-position: 90% 13%;
    background-repeat: no-repeat;
    background-size: 14%;
}
.addition-wrap:nth-of-type(3) {
	background-image: url(../img/addition_deco_03.webp);
	background-position: 90% 24%;
    background-repeat: no-repeat;
    background-size: 14%;
}
.addition-wrap:not(:last-child) {
	padding-bottom: 100px;
}
.addition-note {
	font-size: 20px;
	font-weight: 700;
	color: #fff;
	padding: 40px 0 0;
}

@media screen and (max-width:768px) {
	.sec--addition {
		background-size: 80%, 100%;
		padding: 10% 0 30%;
	}
	.addition-ttl {
		width: 100%;
		margin-left: -11%;
	}
	.addition-img._banner {
		gap: 8vw;
		padding: 0 6%;
	}
	.addition-wrap:not(:last-child) {
		padding-bottom: 20%;
        background-size: 19%;
	}
	.addition-wrap:first-child {
		background-position: 90% 6%;
	}
	.addition-wrap:nth-of-type(2) {
		background-position: 90% 11%;
	}
	.addition-wrap:nth-of-type(3) {
		background-image: url(../img/addition_deco_03.webp);
        background-position: 95% 19%;
        background-repeat: no-repeat;
        background-size: 25%;
	}
	.addition-note {
		font-size: 4.27vw;
		padding: 8% 6% 0;
	}
}

/* ================================
        event
================================ */
.sec--event {
	background-image: url(../img/sec_line_02.webp), url(../img/event_bg.webp);
    background-repeat: repeat-x, repeat-y;
    background-size: 60%, cover;
    background-position: bottom, top;
    padding: 200px 0;
}
.event-wrap:first-child {
	background-image: url(../img/event_deco_01.webp);
	background-position: 90% 22%;
    background-repeat: no-repeat;
    background-size: 17%;
}
.event-box_wrap {
	position: relative;
}
.event-box {
	position: relative;
	background-color: #eedab7;
	padding: 60px;
	margin: 60px auto;
	width: 90%;
}
.event-box_content {
	position: relative;
}
.event-box_deco {
	position: absolute;
	z-index: 1;
}
.event-box_deco._01 {
    width: 17%;
    top: -20%;
    left: -3%;
}
.event-box_deco._02 {
	width: 17%;
    top: -34%;
    right: 0%;
}
.event-box_deco._03 {
    width: 9%;
    top: 30%;
    right: -6%;
}
.event-box_frame {
	position: absolute;
	width: 100%;
	right: 50%;
	transform: translateX(50%);
	z-index: 1;
}
.event-box_frame._top {
	top: -13%;
}
.event-box_frame._bottom {
	bottom: -13%;
}
.event-box_ttl {
	font-size: 24px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 20px;
}
.event-box_note {
	font-size: 20px;
	font-weight: 500;
	text-align: center;
}
.event-ttl {
    width: 50%;
    margin-left: -50px;
}

@media screen and (max-width:768px) {
	.sec--event {
		background-size: 80%, cover;
		padding: 16% 0 24%;
	}
	.event-ttl {
		width: 50%;
        margin-left: -8%;
	}
	.event-box {
		padding: 8% 8% 12%;
		margin: 10% auto;
		width: 84%;
	}
	.event-box_frame {
		width: 90%;
	}
	.event-box_frame._top {
		top: -7%;
	}
	.event-box_frame._bottom {
		bottom: -6%;
	}
	.event-wrap:first-child {
		background-position: 90% 6%;
		background-size: 26%;
	}
	.event-box_ttl {
		font-size: 6.4vw;
		margin-bottom: 4%;
	}
	.event-box_note {
		font-size: 4.27vw;
	}
	.sec_btn._event {
		padding: 0;
	}
	.event-box_deco._01 {
		width: 30%;
		top: -22%;
		left: -19%;
	}
	.event-box_deco._02 {
		width: 23%;
		top: -10%;
		right: 0%;
	}
	.event-box_deco._03 {
		width: 14%;
		top: 13%;
		right: -16%;
	}
}

/* ================================
         access
================================ */
.sec--access {
	background-image: url(../img/sec_line_03.webp), url(../img/access_bg.webp);
    background-repeat: repeat-x, repeat-y;
    background-size: 60%, cover;
    background-position: bottom, top;
    padding: 200px 0;
}
.access-ttl {
    width: 100%;
    margin-left: -100px;
}
.access-wrap {
	background-image: url(../img/access_deco_01.webp);
	background-position: 90% 1%;
    background-repeat: no-repeat;
    background-size: 20%;
}
.access-note {
	color: #fff;
}
.access-note_ttl {
	font-size: 24px;
	font-weight: 700;
	margin: 40px 0 20px;
}
.access-note_txt {
	font-size: 20px;
	font-weight: 500;
}

@media screen and (max-width:768px) {
	.sec--access {
        background-size: 80%, cover;
        padding: 16% 0 30%;
    }
	.access-ttl {
        width: 100%;
        margin-left: -12%;
    }
	.access-banner_wrap {
		padding: 0 6%;
	}
	.access-note_ttl {
		font-size: 6.4vw;
		font-weight: 700;
		margin: 8% 0 4%;
	}
	.access-note_txt {
		font-size: 4.27vw;
	}
}

/* ================================
        Footer
================================ */
.Top-footer {
	position: relative;
	background-color: #fff;
	color: #251716;
	font-size: 1.5rem;
	padding-bottom: 180px;
}
.Top-footer-logo {
	width: 380px;
	margin: 0 auto;
	padding: 70px 0 40px;
}
.Top-footer p {
	font-weight: 500;
}

@media screen and (max-width:768px) {
	.Center {
		padding: 0 15px;
	}
	.Top-footer {
		font-size: 1.2rem;
		padding-bottom: 120px;
	}
	.Top-footer-logo {
		width: 190px;
		padding: 35px 0 20px;
	}
}