@charset "utf-8";
/* ===================================================
	Charm CSS
====================================================== */

/* ---------------------------------------------------
	#sec_lead
------------------------------------------------------ */
#sec_lead {
	padding-bottom: min(9.2vw,120px);
}
#sec_lead .ticker,
#sec_lead .ticker ul {
	display: flex;
}
#sec_lead .ticker {
	width: 100%;
	position: relative;
	z-index: 0;
	overflow: hidden;
	margin-top: clamp(50px,10vw,130px);
}
#sec_lead .ticker ul {
	animation: loop 120s -60s linear infinite;
	backface-visibility: hidden;
	will-change: transform;
}
#sec_lead .ticker ul + ul {
	animation: loop2 120s linear infinite;
}
#sec_lead .ticker li {
	margin: 0 2px 0 0;
	position: relative;
	z-index: 0;
	width: clamp(300px,25vw,350px);
}
#sec_lead .ticker li .ofi {
	width: 100%;
	height: 100%;
}
@keyframes loop {
	0% { transform: translateX(100%); }
	100% { transform: translateX(-100%); }
}
@keyframes loop2 {
	0% { transform: translateX(0); }
	100% { transform: translateX(-200%); }
}

@media screen and (max-width: 768px) {}


/* ---------------------------------------------------
	Common Layout
------------------------------------------------------ */
.cmn_layout_01.bg_grad {
	position: relative;
}
.cmn_layout_01.bg_grad::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 94%;
	height: 100%;
	background: url(../img/bg_grad_l.webp) no-repeat left top / auto,
	url(../img/bg_grad_gr.webp);
}
.cmn_layout_01>.desc,
.cmn_style_02>.desc {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	line-height: 1.8;
}
.cmn_layout_01>.desc div,
.cmn_style_02>.desc div {
	flex-shrink: 1;
}
.cmn_layout_01>.desc{
	gap: min(2.3vw,30px);
	margin-top: min(5.4vw,70px);
}
.cmn_style_02>.desc {
	justify-content: space-between;
	gap: 0 min(1.5vw,20px);
}

.cmn_tit_rl {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px 0;
}
.cmn_tit_rl .icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
	width: clamp(125px,11.7vw,150px);
	height: clamp(125px,11.7vw,150px);
	padding: 4rem 3em 3em;	
	color: #fff;
	background: url(../img/point_flower_wh.webp)no-repeat top -125% right -80%/80%,
	linear-gradient(to top, var(--cl-grad3));
	text-align: center;
}
.cmn_tit_rl .num {
	display: block;
	width: 100%;
	border-top: 1px solid rgba(255,255,255,0.2);
	font-size: var(--f44);
}
.cmn_tit_rl .v_rl {
	font-size: var(--f37);
}

@media screen and (min-width: 769px) {
    .cmn_layout_01 .layout .slick {
        width: 76%;
    }
	.cmn_layout_01 .layout .txt_wrap {
		align-self: stretch;
		width: 24%;
		margin-top: -30px;
		padding-top: 0;
	}
	.cmn_layout_01 .layout.row .txt_wrap {
		padding-top: 0;
		padding-bottom: 0;
	}
}
@media screen and (max-width: 768px) {
	.cmn_layout_01.bg_grad::before {
		width: 100%;
		background-size: 100%, 10%;
        background-position: top left;
	}
	.cmn_tit_rl .v_rl {
		writing-mode: horizontal-tb;
		text-align: center;
		font-size: var(--f24);
	}
	.cmn_layout_01>.desc div:has(.--circle),
	.cmn_style_02>.desc div:has(.--circle) {
		width: 100%;
		text-align: center;
	}
}


/* ---------------------------------------------------
	.cmn_style_02
-----------------------------------------------:------- */
.cmn_style_02 {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0 8%;
	padding-top: clamp(3rem,7.4vw,95px);
}
.cmn_style_02 .cmn_tit_03 {
	flex: 1;
}
.cmn_style_02 .contents {
	flex-shrink: 0;
	line-height: 1.8;
}
.cmn_style_02 div.photo {
	display: flex;
	gap: 0 1px;
}
.cmn_style_02 div.photo>p,
.cmn_style_02 div.photo .ofi {
	width: 100%;
}
.cmn_style_02 .photo+p {
	padding: 30px 0;
}
.cmn_style_02 dl>div {
	padding: 35px 0;
}
.cmn_style_02 dl>div dt {
	font-weight: bold;
}
.cmn_style_02 dl>div dd {
	margin-top: 1em;
}
.cmn_style_02 .list_note {
	margin-top: 2em;
}
.cmn_style_02 .list_note li {
	padding-left: 1em;
	text-indent: -1em;
}
.cmn_style_02 .list_note li::before {
	content: '※';
}

@media screen and (min-width: 769px) {
	.cmn_style_02 .contents {
		width: 77.5%;
	}
}
@media screen and (max-width: 768px) {
	.cmn_style_02 {
		flex-direction: column;
	}
	.cmn_style_02 .photo {
		margin-top: 2rem;
	}
	.cmn_style_02 .photo+p {
		padding: 20px 0;
	}
	.cmn_style_02 dl>div {
		padding: 20px 0;
	}
}


/* ---------------------------------------------------
	#point_01
------------------------------------------------------ */
#point_01 {
	padding: min(7.8vw,100px) 0 min(9.2vw,120px);
	background: url(../img/point_leaf_03_02.webp) no-repeat right 0 bottom min(5.4vw,70px)/clamp(13vw, 29vw, 23.3rem);
}
#point_01>.photo {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	margin-top: 30px;
}
#point_01>.photo>div:nth-child(2n-1) {
	width: calc(48% - 1.5px);
}
#point_01>.photo>div:nth-child(2n) {
	width: calc(52% - 1.5px);
}
#point_01>.photo .ofi {
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 769px) {
	#point_01>.inner_md {
		padding-right: 6%;
	}
}
@media screen and (max-width: 768px) {
	#point_01 {
		padding-top: 0;
		background-position: right -6% bottom min(5.4vw, 70px);
	}
}


/* ---------------------------------------------------
	#point_02
------------------------------------------------------ */
#point_02 {
	padding: min(10.5vw,135px) 0 min(9.8vw,125px);
}
#point_02 .layout .photo_col {
	display: flex;
	flex-wrap: wrap;
	gap: 0 4%;
}
#point_02 .layout .photo_col div:first-child {
	width: 100%;
	padding-left: 16.4%;
}
#point_02 .layout .photo_col div:nth-child(2) {
	width: min(58%,595px);
	margin-top: min(-5.5vw,-70px);
}
#point_02 .layout .photo_col p:last-child {
	width: 38%;
	padding-top: 1.5rem;
}

@media screen and (min-width: 769px) {
	#point_02 {
		background: url(../img/point_leaf_03_02.webp) no-repeat right 28% bottom min(5.4vw, 70px) / clamp(13vw, 29vw, 23.3rem),
		url(../img/point_leaf_03_02.webp) no-repeat left -16% top 53.5% / clamp(13vw, 29vw, 23.3rem);
	}
	#point_02 .slick {
		margin-left: 6%;
	}
	#point_02 .slick .slick-dots {
		text-align: left;
	}
	#point_02 .layout {
		margin-top: min(5.5vw,70px);
	}
	#point_02 .layout .photo_col {
		width: 74%;
	}
	#point_02 .layout .txt_wrap {
		margin: 0 auto;
	}
}
@media screen and (max-width: 768px) {
	#point_02 .slick .ofi {
        aspect-ratio: 20 / 21;
	}
	#point_02 .layout {
		background: url(../img/point_leaf_03_02.webp) no-repeat right 5% bottom 18% / 29vw,
		url(../img/point_leaf_03_02.webp) no-repeat left -25% top  -6%/ 35vw;
	}
	#point_02 .layout .photo_col p:last-child {
		width: 100%;
		padding: 1rem 5% 0;
	}
}


/* ---------------------------------------------------
	#point_03
------------------------------------------------------ */
#point_03 {
	padding: min(10vw,130px) 0;
	background: url(../img/point_flower_wh.webp) no-repeat top 50% left -6% / min(20vw, 320px),
	url(../img/point_leaf_03_02.webp) no-repeat right 4% bottom min(5.4vw, 70px) / clamp(13vw, 29vw, 23.3rem);
}
#point_03>.photo {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	margin-top: 30px;
}
#point_03>.photo>div:nth-child(2n-1) {
	width: calc(48.6% - 1.5px);
}
#point_03>.photo>div:nth-child(2n) {
	width: calc(51.4% - 1.5px);
}
#point_03>.photo .ofi {
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 769px) {
	#point_03>.inner_md {
		padding-right: 6%;
	}
}
@media screen and (max-width: 768px) {
	#point_03 {
		padding-top: 0;
	}
}


/* ---------------------------------------------------
	#point_04
------------------------------------------------------ */
#point_04 {
	margin-top: min(3.9vw,50px);
	padding-bottom: min(4.7vw,60px);
}

@media screen and (max-width: 768px) {}

