@charset "utf-8";

/*===========================================================
カバー
===========================================================*/

.cover {
	max-width: 192rem;
	width: 100%;
	margin: 0 auto;
	position: relative;
}

.cover::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(77, 47, 21, 0.55);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	z-index: 2;
}

.cover-tel-area {
	padding: 0 1.5rem;
	display: none;
	width: 100%;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 14rem;
	right: 0;
	left: 0;
	margin: auto;
	z-index: 3;
}

.cover-text-container {
	display: inline-flex;
	align-items: center;
	position: absolute;
	bottom: 14%;
	left: 5.2%;
	z-index: 4;
}

.cover-text-area {
	display: inline-flex;
	flex-direction: column;
}

.cover-text-box {
    display: inline-block;
	position: relative;
}

.cover-text-box01 {
	margin: 0 0 -1rem;
	left: 3%;
}

.cover-text-box02 {
	left: 18%;
}

.cover-text-box01 .cover-text strong {
	margin: 0 2rem 0 0;
}

.cover-text-box02 .cover-text strong {
	margin: 0 1rem 0 0;
}

.cover-text-box03 .cover-text strong {
	margin: 0 2rem 0 0;
}

.cover-text {
    display: inline-block;
	font-size: 5rem;
	font-weight: 400;
	font-family: var(--font-family02);
	color: var(--white);
	letter-spacing: 0.05em;
	text-shadow: 0 0.4rem 0.6rem rgba(0, 0, 0, 0.3);
}

.cover-text strong {
	font-size: 7.5rem;
	font-weight: 400;
	letter-spacing: 0.03em;
	text-shadow: 0 0 0.6rem var(--primary);
}

.cover-text-illust {
    max-width: 32.3rem;
    width: 24.8%;
    position: relative;
    top: -5rem;
    right: 2rem;
}

.cover-illust-position {
    max-width: 83.7rem;
    width: 100%;
    position: absolute;
    left: -18rem;
    bottom: -8rem;
    margin: 0 auto;
	z-index: 3;
	pointer-events: none;
}

/*===========================================================
top01
===========================================================*/

.top01 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
	background: url(../../../../uploads/top_bg01.jpg) center top;
	background-repeat: no-repeat;
	background-size: cover;
	/* overflow: hidden; */
}

.top01::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(45, 23, 5, 0.75);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}

.top01-frame {
    max-width: 163.6rem;
    width: 100%;
    margin: 0 auto;
    padding: 8rem 0 30rem 3rem;
}

.top01-container {
    max-width: 155rem;
    width: 100%;
    margin: 0 0 0 auto;
}

.top01-area {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.top01-left {
    margin: 11rem 0 0 0;
    max-width: 91.6rem;
    width: 100%;
    writing-mode: vertical-rl;
    text-orientation: upright;
	position: relative;
	z-index: 3;
}

/* .top01-right {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    max-width: 52.1rem;
    width: 100%;
    writing-mode: vertical-rl;
    text-orientation: upright;
	position: relative;
	z-index: 3;
	gap: 2rem;
} */

.top01-right {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    max-width: 52.1rem;
    width: 100%;
	position: relative;
	z-index: 3;
	gap: 2rem;
}

/* .top01-title-area {
    max-width: 22.5rem;
    width: 100%;
} */

.top01-title-area {
    max-width: 22.5rem;
    width: 100%;
    writing-mode: vertical-rl;
    text-orientation: upright;
}

.top01-text-illust {
	margin: 2rem 0 0 2rem;
    max-width: 23.3rem;
    width: 100%;
}

.top01-text-box .text02 {
    letter-spacing: 0.3em;
    line-height: 2.5em;
}

.top01-text-box02 {
	margin: 0 4rem 0 0;
}

.top01-text-box03.pc {
	display: block;
}

.top01-text-box03.sp {
	display: none;
}

.top01-text-box04.pc {
    margin: 0 7rem 0 0;
    position: relative;
    top: 36%;
}

.top01-text-box04.sp {
    display: none;
}

.top01-text-box05 {
    margin: 0 3rem 0 0;
    position: relative;
    top: 36%;
}

.top01-text-box06 {
    margin: 0 3rem 0 0;
    position: relative;
    top: 36%;
}

.top01-text02-sp {
	display: none;
}

.top01-illust01 {
    max-width: 63.5rem;
    width: 34%;
    position: absolute;
    bottom: -21%;
    left: -9%;
}

.top01-illust02 {
    display: none;
    max-width: 34rem;
    width: 100%;
    position: absolute;
    bottom: 20%;
    right: 0;
    left: 0;
    margin: auto;
}

.top01-illust03 {
    max-width: 38.9rem;
    width: 100%;
    position: absolute;
    bottom: -5.5%;
    right: 0;
    left: 0;
    margin: auto;
	z-index: 1;
}

.top01-illust04 {
	display: none;
    max-width: 29.1rem;
    width: 100%;
    position: absolute;
    bottom: -3.5%;
    left: -10%;
    margin: auto;
	z-index: 4;
}

/*===========================================================
top02
===========================================================*/

.top02 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.top02-container {
	width: 100%;
    display: flex;
    align-items: stretch;
	position: relative;
}

.top02-left {
    max-width: 96rem;
    width: 100%;
    padding: 7rem 1.5rem 12rem;
	background: var(--bg-primary);
	position: relative;
	color: var(--white);
}

.top02-left::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: url(../../../../uploads/top_bg02.png) center top;
    background-color: rgba(45, 23, 5, 0.8);
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
}

.top02-text-area {
    max-width: 66rem;
    width: 100%;
    margin: 0 auto;
	position: relative;
	z-index: 1;
}

.top02-title-box {
    text-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.25);
}

.top02-text-box {
    margin: 3rem 0 0;
    text-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.25);
}

.top02-btn-area {
    margin: 7rem 0 0;
}

.top02-right {
	max-width: 96.3rem;
	width: 100%;
}

.top02-img-box {
	width: 100%;
	height: 100%;
	position: relative;
}

.top02-img-box img {
	width: 100%;
	height: 100% !important;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	object-fit: cover;
}

.top02-img-box02 {
	display: none;
}

.top02-img-box02 img {
	width: 100%;
}

.top02-illust-box01 {
    max-width: 21.1rem;
    width: 100%;
    position: absolute;
    bottom: 4rem;
    left: -6rem;
}

.top02-illust-box02 {
    max-width: 83.7rem;
    width: 100%;
    position: absolute;
    right: -30rem;
    bottom: -3.5rem;
}

/*===========================================================
top03
===========================================================*/

.top03 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
    padding: 12rem 0 0;
}

.top03-title-area {
    display: flex;
    margin: 0 auto;
    max-width: 128.4rem;
    width: 100%;
}

.top03-title-illust {
    max-width: 36.6rem;
    width: 28.6%;
    margin: 0 4.5rem 0 0;
}

.top03-container {
    max-width: 179.2rem;
    width: 100%;
    margin: 2rem 0 0 auto;
}

.top03-img-area {
    max-width: 158.8rem;
    width: 88.6%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
	position: relative;
	z-index: 1;
}

.top03-img-set {
	margin: 10rem 0 0;
    max-width: 86.5rem;
    width: 54.5%;
    display: flex;
    align-items: flex-start;
}

.top03-img-box01 {
    max-width: 69.4rem;
    width: 80.3%;
}

.top03-illust-box {
    max-width: 25.7rem;
    width: 29.5%;
    margin: 10rem 0 0 -8.6rem;
}

.top03-img-box02 {
    max-width: 36.6rem;
    width: 23.1%;
}

.top03-text-container {
    margin: -24% 0 0 auto;
    padding: 16.5rem 1.5rem 14rem;
    max-width: 130.3rem;
    width: 72.7%;
	background: var(--bg-secondary);
    position: relative;
}

.top03-text-container::before {
    content: "";
	display: block;
    width: 100%;
	height: 100%;
	background: url(../../../../uploads/top_bg03.png) center top;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}

.top03-text-area {
    max-width: 100.4rem;
    width: 78.9%;
    margin: 0 0 0 auto;
	position: relative;
	z-index: 3;
}

.top03-text-box {
    max-width: 66.1rem;
    width: 100%;
    text-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.25);
}

.top03-btn-area {
    margin: 7rem 0 0;
}

/*===========================================================
top04
===========================================================*/

.top04 {
	max-width: 192rem;
	width: 100%;
	margin: 0 auto;
	padding: 10rem 0 0;
	position: relative;
	overflow: hidden;
}

.top04-img-set01 {
    max-width: 88rem;
    width: 45.9%;
    position: absolute;
	top: 0;
	bottom: 0;
	left: -12%;
	margin: auto;
}

.top04-img-box01 {
    width: 100%;
}

.top04-illust-box01 {
    max-width: 37.2rem;
    width: 42.3%;
    position: absolute;
    bottom: 9rem;
    right: 5rem;
}

.top04-img-set02 {
    max-width: 86rem;
    width: 44.8%;
    position: absolute;
	top: 0;
	bottom: 0;
	right: -12%;
	margin: auto;
}

.top04-img-box02 {
    width: 100%;
}

.top04-illust-box02 {
    max-width: 21.1rem;
    width: 24.2%;
    position: absolute;
    top: 18rem;
    left: 10rem;
}

.top04-container {
    max-width: 76.9rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.top04-title-area {
    width: 100%;
}

.top04-illust-box03 {
    margin: 0 0 -7rem;
    max-width: 23.5rem;
    width: 100%;
}

.top04-title-box {
    text-align: center;
}

.top04-text-area {
    margin: 5rem auto 0;
    max-width: 60rem;
    width: 100%;
    text-align: center;
}

.top04-btn-area {
    margin: 7rem 0 0;
    display: flex;
    justify-content: center;
}

/*===========================================================
top05
===========================================================*/

.top05 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    padding: 15.5rem 0 0 1.5rem;
    position: relative;
}

.top05::before {
	content: "";
	display: block;
	width: 55.4%;
	height: 70%;
	background: url(../../../../uploads/top_bg04.png) center top;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	bottom: 0;
	left: 0;
	margin: auto;
	z-index: -1;
}

.top05-frame {
    max-width: 171.5rem;
    width: 100%;
    margin: 0 auto 0 0;
}

.top05-container {
    max-width: 147.7rem;
    width: 100%;
    margin: 0 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.top05-left {
    max-width: 29.2rem;
    width: 100%;
}

.top05-title-box {
    writing-mode: vertical-rl;
    text-orientation: upright;
}

.top05-title-box .title01 {
	white-space: nowrap;
}

.top05-right {
    max-width: 108.8rem;
    width: 73.7%;
    padding: 3.5rem 0 0;
    position: relative;
}

.top05-slider-area {
    width: 100%;
}

.top05-text-box01 {
    margin: 4rem 0 0;
	padding: 0 1.5rem 0 0;
    max-width: 89.1rem;
    width: 100%;
}

.top05-btn-area {
    margin: 3.2rem 0 0;
	padding: 0 1.5rem;
    display: flex;
    justify-content: flex-end;
}

/*===========================================================
swiper pagination
===========================================================*/

.top05 .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    display: block;
    width: 2rem;
    height: 2rem;
    /* border: solid 1px var(--primary); */
    /* background: var(--white); */
	background: url(../../../../uploads/pager_icon02.png) center top;
	background-repeat: no-repeat;
	background-size: cover;
    margin: 0 0.8rem;
    opacity: 1;
	transition: all .3s;
}

.top05 .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal {
    display: flex;
    bottom: auto !important;
    top: 0;
    left: 0 !important;
    margin: auto;
}

.top05 .swiper-pagination-bullet-active {
	background: url(../../../../uploads/pager_icon01.png) center top !important;
    /* background: var(--primary) !important; */
	/* transform: scale(1.3); */
}

/*===========================================================
top06
===========================================================*/

.top06 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
	padding: 14rem 0 0;
    position: relative;
}

.top06-frame01 {
    max-width: 135.4rem;
    width: 96.5%;
    margin: 0 auto;
	padding: 3rem 0;
    position: relative;
}

.top06-illust-box01 {
    max-width: 34.1rem;
    width: 25.2%;
    position: absolute;
    top: 0;
    left: 0;
    margin: auto;
	z-index: 1;
}

.top06-illust-box02 {
    max-width: 34.1rem;
    width: 25.2%;
    position: absolute;
    right: 0;
    bottom: 0;
    margin: auto;
	z-index: 1;
}

.top06-container01 {
    max-width: 120rem;
    width: 88.6%;
    margin: 0 auto;
    padding: 4.6rem 1.5rem 12rem;
	background: var(--bg-primary);
	position: relative;
}

.top06-container01::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: url(../../../../uploads/top_bg05.png) center top;
    background-color: rgba(45, 23, 5, 0.8);
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}

.top06-inner-area01 {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.top06-text-area01 {
    max-width: 61.4rem;
    width: 100%;
    margin: 0 auto;
	position: relative;
	z-index: 1;
	text-align: center;
}

.top06-title01 {
    font-size: 2.5rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top06-title01-decoration01 {
    font-size: 3.2rem;
    font-weight: 400;
}

.top06-title01-decoration02 {
    font-size: 6rem;
    font-weight: 400;
}

.top06-container02 {
    max-width: 83.1rem;
    width: 100%;
    margin: -12rem auto 0;
    position: relative;
    padding: 3rem 1.5rem 7.1rem;
	background: url(../../../../uploads/pc_top_bg06.jpg) center top;
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 2;
}

.top06-area02 {
    max-width: 66.5rem;
    width: 100%;
    margin: auto;
}

.top06-row01 {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 0 2rem;
    background-image: linear-gradient(to right, var(--white) 0.4rem, transparent 0.4rem);
    background-size: 1rem 0.3rem;
    background-repeat: repeat-x;
    background-position: left bottom;
}

.top06-title02 {
    font-size: 5rem;
    font-weight: 400;
    letter-spacing: 0.05em;
}

.top06-title02 strong {
    font-size: 7.5rem;
    font-weight: 400;
    line-height: 1.153846;
}

.top06-row02 {
    margin: 2rem 0 0 auto;
    max-width: 61.4rem;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.top06-logo {
    max-width: 20rem;
    width: 100%;
}

.top06-text-area02 {
    max-width: 33rem;
    width: 100%;
}

.top06-text-item {
    display: flex;
}

/*===========================================================
top07
===========================================================*/

.top07 {
    max-width: 192rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
    padding: 14.5rem 1.5rem 15.8rem;
}

.top07-frame {
    max-width: 180.4rem;
    width: 100%;
    margin: 0 auto;
    position: relative;
}

.top07-illust-box01 {
    max-width: 51.7rem;
    width: 28.7%;
    position: absolute;
    right: 0;
    top: -8rem;
    margin: 0 auto;
}

.top07-illust-box02 {
    max-width: 34.7rem;
    width: 19.2%;
    position: absolute;
    right: 8rem;
    top: 4rem;
}

.top7-container {
	max-width: 122rem;
	width: 100%;
	margin: 0 auto;
    position: relative;
    z-index: 1;
}

.top07-title-area {
	text-align: center;
}

.top07-area {
	margin: 4rem 0 0;
}

.top07-btn-area {
	margin: 7rem 0 0;
	display: flex;
	justify-content: center;
}

/*===========================================================
Instagram feed
===========================================================*/

#sb_instagram #sbi_images {
	gap: 4rem 8.5rem !important;
}

.sbi_photo {
    max-height: 35rem !important;
    height: 100% !important;
}

.sbi_follow_btn {
    max-width: 37.8rem;
    width: 100%;
	position: relative;
	transition: all .3s;
}

.sbi_follow_btn a {
	padding: 0.3rem !important;
	display: flex !important;
	align-items: center;
	font-size: 2.1rem !important;
	font-weight: 400;
	font-family: var(--font-family02);
	letter-spacing: 0.05em;
	color: var(--white) !important;
	background: var(--primary) !important;
	border-radius: 3.7rem !important;
	overflow: hidden;
	position: relative;
	box-shadow: unset !important;
}

.sbi_follow_btn a::before {
    content: "";
    display: block;
    width: 6.5rem;
    height: 6.7rem;
    margin: 0 0.9rem 0 0;
    background: url(../../../../uploads/btn_icon01.svg) center top;
    background-repeat: no-repeat;
    background-size: contain;
    position: relative;
    z-index: 9999;
}

.sbi_follow_btn::after {
	content:"";
	position:absolute;
	top: 0;
	right: -2.5rem;
	left: 0;
	bottom:0;
	height:0.6rem;
	background: linear-gradient(var(--white) 0 0) right top/5rem 0.2rem no-repeat,
    linear-gradient(var(--white) 0 0) right bottom/5rem 0.2rem no-repeat;
	margin: auto;
	transition: all .3s;
}

.sbi_follow_btn:hover::after {
    background: linear-gradient(var(--white) 0 0) right top/6rem 0.2rem no-repeat,
    linear-gradient(var(--white) 0 0) right bottom/6rem 0.2rem no-repeat;
}

.sbi_follow_btn .svg-inline--fa {
	display: none !important;
}

#sb_instagram #sbi_load {
    margin: 7rem 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4rem;
}

.sbi_btn_text {
    font-size: 2.1rem;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 1920px) {


/*===========================================================

===========================================================*/



}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 1500px) {


/*===========================================================
top04
===========================================================*/

.top04-illust-box01 {
    bottom: 23rem;
    right: 5rem;
}

}


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 1024px) {


/*===========================================================
カバー
===========================================================*/

.cover-text {
	font-size: 3rem;
}

.cover-text strong {
	font-size: 5rem;
}

.cover-text-container {
	bottom: 8%;
    left: 2%;
}

/*===========================================================
top01
===========================================================*/

.top01 {
    background: url(../../../../uploads/sp_top_bg01.jpg) center top;
	background-repeat: no-repeat;
	background-size: cover;
}

.top01-frame {
    padding: 12rem 0 9rem;
}

.top01-area {
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
}

.top01-left {
    margin: 5rem 0 0;
	padding: 0 3.5rem;
    writing-mode: unset;
}

.top01-text-box .text02 br {
    display: none;
}

.top01-text-box02 {
    margin: 4rem auto 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.top01-text-box02 .text02 {
	width: 100%;
}

.text02-decoration02 {
	text-align: center;
}

.top01-text02-01 {
    margin: 0 10rem 0 0;
}

.top01-text02-02 {
    margin: 0 0 0 6rem;
}

.top01-text02-pc {
	display: none;
}

.top01-text-box03 {
	margin: 4rem 0 0;
}

.top01-text-box03.pc {
	display: none;
}

.top01-text-box03.sp {
	display: block;
}

.top01-text-box04 {
	margin: 3rem 0 0;
}

.top01-text-box04.pc {
	display: none;
}

.top01-text-box04.sp {
	display: block;
}

.top01-text-box05.pc {
	display: none;
}

.top01-text-box06 {
	margin: 2.5rem 0 0;
}

.top01-illust01 {
	display: none;
}

.top01-illust02 {
	display: block;
    transform: scale(2);
}

/*===========================================================
top02
===========================================================*/

.top02-img-box02 {
	display: none;
	max-width: 30rem;
	width: 100%;
}

/*===========================================================
top03
===========================================================*/

.top03-title-area {
    padding: 0 0 0 1.5rem;
}

/*===========================================================
top04
===========================================================*/

.top04-btn-area {
    margin: 30rem 0 0;
}

.top04-img-set01 {
    top: auto;
    left: 0;
    right: 0;
    bottom: -4rem;
}

.top04-img-set02 {
    top: -8rem;
    bottom: auto;
}

.top04-illust-box01 {
	max-width: 29.1rem;
	width: 100%;
	bottom: 23rem;
	right: auto;
	left: -15rem;
}

.top04-illust-box02 {
    width: 100%;
    top: 41%;
    left: auto;
    right: -12rem;
}

/*===========================================================
Instagram feed
===========================================================*/

#sb_instagram #sbi_images {
	gap: 4rem !important;
}

} 


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 768px) {


/*===========================================================
カバー
===========================================================*/

.cover {
	height: 65rem;
}

.cover-wrapper {
    width: 100%;
    height: 100%;
}

.cover .swiper {
	width: 100%;
	height: 100%;
}

.cover .swiper img {
	width: 100%;
	height: 100% !important;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	object-fit: cover;
}

.cover-text {
	font-size: 2.8rem;
}

.cover-text strong {
	font-size: 3.8rem;
}

.cover-tel-area {
	display: flex;
}

/* 768px以下だけパンさせる */

.cover .main-visual-slider .swiper-slide {
    overflow: hidden; /* 念のためはみ出し防止 */
}

.cover .main-visual-slider .swiper-slide img {
    object-fit: cover;
    /* ★ ベース＝終点（左寄り）にしておく */
    object-position: 0% 50%;
    /* チラつき対策 */
    will-change: object-position;
    backface-visibility: hidden;
    transform: translateZ(0);
}

  /* アクティブスライドになった時だけ右→左へ流す */
.cover .main-visual-slider .swiper-slide.swiper-slide-active img {
    animation: pan-rl 7000ms linear both; /* ← Swiper autoplay.delay と同じ時間に */
}

/* 非アクティブになったら即リセット（フェードの重なり対策） */
.cover .main-visual-slider .swiper-slide:not(.swiper-slide-active) img {
    animation: none !important;
    object-position: 0% 50% !important; /* 終点を保持 */
}

/* 右→左のパン */
@keyframes pan-rl {
  from { object-position: 0% 50%; }  /* 右寄り */
  to   { object-position: 100% 50%; }  /* 左寄り */
}

.cover-illust-position {
	max-width: 45.2rem;
	width: 100%;
	bottom: -4rem;
	left: -26rem;
}

/*===========================================================
top01
===========================================================*/

.top01-frame {
    padding: 6rem 0 9rem;
}

.top01-illust03 {
	display: none;
}

.top01-illust04 {
	display: block;
}

/*===========================================================
top02
===========================================================*/

.top02-left {
	padding: 38rem 1.5rem 6.1rem;
}

.top02-img-box {
	display: none;
}

.top02-right {
	max-width: 30rem;
	position: absolute;
	top: 0;
	right: 0;
	margin: auto;
}

.top02-illust-box01 {
	display: none;
}

.top02-img-box02 {
	display: block;
}

.top02-btn-area {
	display: flex;
	justify-content: center;
}

.top02-text-box {
	margin: 3.7rem 0 0;
}

/*===========================================================
top03
===========================================================*/

.top03 {
    padding: 10rem 0 0;
}

.top03-title-area {
    padding: 0;
}

.top03-title-illust {
	display: none;
}

.top03-title-box {
    margin: 0 auto;
    text-align: center;
}

.top03-title-box .title01 {
	line-height: 1.6;
}

.top03-img-area {
    max-width: 69.6rem;
    width: 100%;
    align-items: flex-end;
}

.top03-img-box01 {
    max-width: 55.8rem;
    width: 100%;
}

.top03-img-set {
	margin: 0;
    max-width: 55.8rem;
    width: 100%;
    flex-direction: column;
}

.top03-illust-box {
    max-width: 58.2rem;
    width: 100%;
    margin: -1rem 0 0 -9rem;
}

.top03-img-box02 {
    max-width: 29.4rem;
    width: 100%;
    margin: 0 0 -10rem -15.6rem;
}

.top03-text-container {
    margin: -29.6rem auto 0;
    padding: 46.6rem 1.5rem 6rem;
    width: 100%;
}

.top03-text-area {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
}

.top03-text-box {
    max-width: 100%;
}

.top03-btn-area {
    margin: 2rem 0 0;
    display: flex;
    justify-content: center;
}

/*===========================================================
top04
===========================================================*/

.top04 {
	padding: 15.6rem 0 0;
}

.top04-title-area {
    position: relative;
}

.top04-illust-box03 {
    max-width: 15rem;
    width: 100%;
    position: absolute;
    top: -10rem;
    left: 0;
    right: 20rem;
    margin: auto;
}

.top04-text-area {
	margin: 3rem 0 0;
	padding: 0 1.5rem;
	max-width: 100%;
	width: 100%;
	text-align: left;
}

.top04-img-set02 {
	max-width: 29.8rem;
	width: 100%;
	top: -6rem;
}

/*===========================================================
top05
===========================================================*/

.top05 {
    margin: 6rem auto 0;
    padding: 9.5rem 0 0;
}

.top05::before {
    width: 100%;
    top: 0;
    bottom: auto;
}

.top05-container {
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.top05-left {
    max-width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.top05-title-box {
    max-width: 30.2rem;
    width: 40%;
    display: flex;
    flex-direction: column;
}

.top05-text-box01 {
    margin: 0;
    max-width: 36rem;
    width: 53%;
}

.top05-right {
    margin: 3rem 0 0;
    width: 100%;
}

.top05-slider-area .swiper-wrapper {
    height: 24.7rem;
}

.top05-slider-area .swiper-slide {
    position: relative;
    height: 24.7rem;
}

.top05-slider-area .swiper-slide img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
}

.top05-btn-area {
	margin: 3rem 0 0;
	justify-content: center;
}

.top05 .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal {
	left: 2rem !important;
}

.top05 .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    width: 1.4rem;
    height: 1.4rem;
    margin: 0 0.5rem 0;
}

/*===========================================================
top06
===========================================================*/

.top06 {
	padding: 7rem 0 0;
}

.top06-frame01 {
	padding: 0;
	width: 100%;
}

.top06-illust-box01 {
	display: none;
}

.top06-illust-box02 {
	display: none;
}

.top06-container01 {
	padding: 5rem 1.5rem 6rem;
	width: 100%;
}

.top06-container01::before {
    background: url(../../../../uploads/sp_top_bg05.png) center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.top06-container02 {
    margin: 3rem auto 0;
    background-size: contain;
}

/* .top06-container02 {
	max-width: 34rem;
	width: 100%;
	margin: 3rem auto 0;
	padding: 7rem 1.5rem;
	background: url(../../../../uploads/sp_top_bg06.jpg) center top;
	background-repeat: no-repeat;
	background-size: contain;
}

.top06-row01 {
	margin: 0 auto;
	padding: 0 0.5rem;
	max-width: 25.8rem;
    flex-direction: column;
	align-items: center;
	justify-content: center;
}

.top06-title02 {
	font-size: 3.5rem;
}

.top06-title02 strong {
	font-size: 5.5rem;
}

.top06-row02 {
    margin: 2.5rem auto 0;
    max-width: 25.4rem;
    width: 100%;
    flex-direction: column-reverse;
}

.top06-logo {
    max-width: 16.1rem;
} */

/*===========================================================
top07
===========================================================*/

.top07 {
    padding: 6rem 1.5rem 10.8rem;
}

/*===========================================================
Instagram feed
===========================================================*/

#sb_instagram #sbi_images {
	gap: 2rem !important;
}

.sbi_photo {
    max-height: 30rem !important;
}

} 


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 576px) {


/*===========================================================
カバー
===========================================================*/

.cover-text-box01 {
    left: 0;
}

.cover-text-box02 {
    left: 0;
}

.cover-text-box03 h2 {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
}

.cover-text-illust {
    max-width: 14.4rem;
    width: 100%;
    position: absolute;
    top: -27%;
    right: 2%;
}

/*===========================================================
top01
===========================================================*/

.top01-text-illust {
	max-width: 18.1rem;
	width: 100%;
}

/*===========================================================
top03
===========================================================*/

.top03 {
    padding: 7rem 0 0;
}

.top03-text-container {
	margin: -23.6rem auto 0;
	padding: 30.6rem 1.5rem 6rem;
}

.top03-img-area {
    max-width: 34.8rem;
}

.top03-img-set {
    max-width: 27.9rem;
}

.top03-img-box01 {
    max-width: 27.9rem;
}

.top03-illust-box {
    margin: -1rem 0 0 -6rem;
    max-width: 29.1rem;
    position: relative;
    z-index: 1;
}

.top03-img-box02 {
    max-width: 14.7rem;
    margin: 0 0 -2rem -7.8rem;
}

.top04-img-set01 {
	max-width: 30.7rem;
	width: 100%;
	bottom: 0;
}

.top04-btn-area {
	margin: 21rem 0 0;
}

.top04-illust-box01 {
	bottom: 15rem;
}

.top05 {
    margin: 6rem auto 0;
    padding: 3rem 0 0;
}

.top06-container02 {
	max-width: 34rem;
	width: 100%;
	margin: 3rem auto 0;
	padding: 7rem 1.5rem;
	background: url(../../../../uploads/sp_top_bg06.jpg) center top;
	background-repeat: no-repeat;
	background-size: contain;
}

.top06-row01 {
	margin: 0 auto;
	padding: 0 0.5rem;
	max-width: 25.8rem;
    flex-direction: column;
	align-items: center;
	justify-content: center;
}

.top06-title02 {
	font-size: 3.5rem;
}

.top06-title02 strong {
	font-size: 5.5rem;
}

.top06-row02 {
    margin: 2.5rem auto 0;
    max-width: 25.4rem;
    width: 100%;
    flex-direction: column-reverse;
}

.top06-text-area02 {
    padding: 0 0 0 2rem;
}

.top06-logo {
    max-width: 16.1rem;
}

.top07-illust-box01 {
	max-width: 31.8rem;
	width: 100%;
	right: -6rem;
}

.top07-illust-box02 {
	display: none;
}

.top07-title-area .title01 {
    font-size: 3.5rem;
}

/*===========================================================
Instagram feed
===========================================================*/

.sbi_follow_btn {
    max-width: 31.8rem;
}

.sbi_follow_btn a {
    font-size: 1.8rem !important;
}

.sbi_photo {
    max-height: 21rem !important;
}

}


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (width <= 414px) {


/*===========================================================
Instagram feed
===========================================================*/

.sbi_photo {
    max-height: 18rem !important;
}



}


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */