@charset "utf-8";

/* ============== 共通 =================== */
/*カラー指定*/
:root {
	--color-yellow: #FFEA00;
	--color-yellow-light: #FCFD7B;
	--color-blue-light: #CFF4FF;
	--color-blue: #72E3FF;
	--color-blue-deep: #00B9EF;
	--color-text-main: #333333;
	--color-gray-border: #dddddd;

	/* アニメーション速度 */
	--transition-speed: .3s;
}

#contents {
	color: var(--color-text-main);
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
	background-color: #ffffff;
	padding: 0;
	overflow: hidden;
}

#contents * {
	box-sizing: border-box;
}

#contents a {
	color: #0099cc;
	text-decoration: underline;
}

#contents a:hover {
	opacity: 0.7;
	transition: .3s;
}

figure {
	margin: 0;
}

.display_pc {
	display: block;
}

.display_sp {
	display: none;
}

/*注釈テキスト*/
.note_txt {
	font-size: 12px;
	line-height: 1.6;
	font-weight: normal;
	color: #999;
	text-indent: -1em;
	padding-left: 1em;
}

/*角丸ブロック*/
.round_block {
	border-radius: 8px;
}

/*マーカー*/
.line_txt {
	color: var(--color-text-main);
	display: inline;
	padding: 0 2px;
	background: linear-gradient(180deg, rgba(255, 234, 0, 0) 60%, var(--color-yellow) 60%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
}

/*強調カラーテキスト*/
.em_font {
	color: var(--color-yellow);
}

/*太字*/
.bold_font {
	font-weight: bold;
}

/*中黒リスト*/
.dot_list {
	text-indent: -1em;
	padding-left: 1em;
}

/*(数字)リスト*/
.num_list {
	text-indent: -1.4em;
	padding-left: 1.5em;
	counter-reset: number 0;
}

.num_list>li::before {
	counter-increment: number 1;
	content: "(" counter(number) ")";
}

/*点線吹き出し*/
.yellow_balloon {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	font-weight: bold;
}

.yellow_balloon::before,
.yellow_balloon::after {
	content: "";
	width: 16px;
	height: 22px;
	background: url(https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/yellow_balloon.svg) no-repeat center / contain;
}

.yellow_balloon::after {
	transform: scaleX(-1);
}

/* =================== btn =================== */
#contents .btn {
	color: #ffffff;
	font-size: 14px;
	font-weight: bold;
	text-decoration: none;
}

.btn_wrap {
	margin: -60px auto 0;
	position: relative;
	z-index: 1;
}

.btn_subtxt {
	width: auto;
	height: 60px;
}

.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #000;
	background-image: url(https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/btnarrow_right.svg);
	background-size: 20px;
	background-position: center right 15px;
	background-repeat: no-repeat;
	border-radius: 5px;
	width: 400px;
	height: 50px;
	margin: 0 auto;
	position: relative;
}

.btn_att {
	color: var(--color-text-main);
	font-size: 12px;
	margin-top: 5px;
}

/* =================== スライダー =================== */
/* スライド1枚の時 */
.swiper.is-single .swiper-wrapper {
	display: flex;
	justify-content: center;
}

.swiper.is-single .swiper-slide {
	width: 100%;
}

.swiper.is-single .swiper-pagination,
.swiper.is-single .swiper-button-prev,
.swiper.is-single .swiper-button-next {
	display: none !important;
}

/* --- スライド幅 --- */
.swiper-initialized .swiper-slide {
	width: 80%;
	margin: 0 auto;
}

/* --- ナビゲーションボタン --- */
.swiper-button-prev,
.swiper-button-next {
	display: none;
}

.swiper-initialized .swiper-button-prev,
.swiper-initialized .swiper-button-next {
	display: block;
	color: transparent;
	width: 36px;
	height: 36px;
	background-color: rgba(51, 51, 51, 0.50);
	border-radius: 50%;
	box-shadow: 2px 2px 0 0 rgba(0, 0, 0, 0.20);
	position: absolute;
	z-index: 10;
}

.swiper-initialized .swiper-button-prev {
	left: 30px;
}

.swiper-initialized .swiper-button-next {
	right: 30px;
}

/* 矢印アイコン（::before） */
.swiper-initialized .swiper-button-prev::before,
.swiper-initialized .swiper-button-next::before {
	content: "";
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	border-top-right-radius: 3px;
	position: absolute;
	top: 50%;
	z-index: 10;
}

.swiper-initialized .swiper-button-prev::before {
	left: 55%;
	transform: translate(-50%, -50%) rotate(-135deg);
}

.swiper-initialized .swiper-button-next::before {
	left: 48%;
	transform: translate(-50%, -50%) rotate(45deg);
}

/* 当たり判定拡張 */
.swiper-initialized .swiper-button-prev::after,
.swiper-initialized .swiper-button-next::after {
	content: "" !important;
	position: absolute;
	top: -4px;
	left: -4px;
	right: -4px;
	bottom: -4px;
	background: transparent;
}

/* 無効化時の透過 */
.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
	opacity: 0;
	pointer-events: none;
}

/* --- ページネーション --- */
.swiper-pagination {
	display: none;
}

#contents .swiper-pagination-bullets {
	display: flex;
	justify-content: center;
	gap: 15px;
	position: static;
	margin-top: 15px;
	padding: 8px 0;
}

#contents .swiper-pagination-bullet {
	width: 28px;
	height: 28px;
	background: #F2F2F2;
	box-shadow: 2px 2px 0 0 rgba(0, 0, 0, 0.20);
	opacity: 1;
	border-radius: 50%;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	color: var(--color-text-main);
	position: relative;
	cursor: pointer;
}

#contents .swiper-pagination-bullet-active {
	border: 3px solid #666;
}

/* ページネーションの判定拡張 */
#contents .swiper-pagination-bullet::after {
	content: "";
	position: absolute;
	top: -8px;
	left: -8px;
	right: -8px;
	bottom: -8px;
	background: transparent;
	border-radius: 50%;
}

/* =================== リンクカード =================== */
.linkcard {
	display: flex;
	gap: 25px;
	justify-content: center;
	align-self: stretch;
	flex-wrap: wrap;
}

.linkcard_item {
	display: flex;
	flex: 1;
}

#contents .linkcard_anchor {
	display: flex;
	flex-direction: column;
	align-items: center;
	border-radius: 8px;
	border: 1px solid var(--color-gray-border);
	overflow: hidden;
	color: var(--color-text-main);
	text-decoration: none;
	font-size: 12px;
	/* 19.2px */
	min-height: 60px;
	width: 100%;
}

.linkcard_txt {
	display: flex;
	padding: 10px 35px 10px 10px;
	justify-content: flex-start;
	align-items: center;
	gap: 5px;
	align-self: stretch;
	background: #F2F2F2;
	background-image: url(https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/btnarrow_right.svg);
	background-size: 20px;
	background-position: center right 10px;
	background-repeat: no-repeat;
	width: 100%;
	height: 100%;
	text-align: left;
}

/* =================== アコーディオン =================== */
.acc_input {
	display: none;
}

.accordion {
	width: 100%;
}

.acc_ttl {
	display: block;
	width: 100%;
	padding: 15px 10px;
	position: relative;
	cursor: pointer;
	margin: auto;
	text-align: left;
}

.acc_content {
	display: grid;
	grid-template-rows: 0fr;
	text-align: left;
	transition: grid-template-rows 0.3s ease-out;
	overflow: hidden;
}

.acc_input:checked+.acc_ttl+.acc_content {
	grid-template-rows: 1fr;
	transition: grid-template-rows 0.5s ease-in-out;
}

.acc_input:checked+.acc_ttl::after {
	transform: translateY(-50%) rotate(0deg);
}

.acc_inner {
	min-height: 0;
	padding: 0;
}

.acc_inner .dot_list {
	text-align: left;
	overflow: hidden;
	border-top: 1px dashed var(--color-gray-border);
	padding: 20px 0 20px 1em;
}

.acc_ttl {
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 10px;
}

.acc_ttl:hover {
	background: #f2f2f2;
	transition: .3s;
}

.acc_arrow {
	position: relative;
	width: 20px;
	height: 20px;
	background-color: #F2F2F2;
	border-radius: 50%;
	flex-shrink: 0;
	display: inline-block;
	vertical-align: middle;
}

.acc_arrow::before,
.acc_arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background-color: #333;
	transform: translate(-50%, -50%);
	transition: all 0.3s ease;
	border-radius: 1px;
}

.acc_arrow::before {
	width: 10px;
	height: 1px;
}

.acc_arrow::after {
	width: 1px;
	height: 10px;
}

.acc_input:checked+.acc_ttl .acc_arrow::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}

.acc_input:checked+.acc_ttl .acc_arrow::before {
	transform: translate(-50%, -50%) rotate(180deg);
}

/* ============== アニメーション ============== */
@keyframes fuwafuwa {
	0% {
		transform: translateY(0);
	}

	25% {
		transform: translateY(-10px);
	}

	50% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(0);
	}
}

@keyframes yurayura {
	0% {
		transform: rotate(0deg);
	}

	12.5% {
		transform: rotate(3deg);
	}

	37.5% {
		transform: rotate(-3deg);
	}

	50.1%,
	100% {
		transform: rotate(0deg);
	}
}

@keyframes tokotoko {
	0% {
		transform: rotate(-1deg) translateY(0);
	}

	7.5% {
		transform: rotate(0deg) translateY(-2px);
	}

	15% {
		transform: rotate(1deg) translateY(0);
	}

	22.5% {
		transform: rotate(0deg) translateY(-2px);
	}

	30% {
		transform: rotate(-1deg) translateY(0);
	}

	30.1%,
	100% {
		transform: rotate(-1deg) translateY(0);
	}
}


/* =================== sec共通 =================== */
.sec {
	margin-top: 120px;
	background: linear-gradient(90deg, #FFF 50%, rgba(255, 255, 255, 0.00) 50%);
}

.sec:nth-child(odd) {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.00) 50%, #FFF 50%);
}

.sec_inner {
	width: calc(100% - 60px);
	max-width: 970px;
	margin: auto;
	background: #fff;
	padding: 40px 70px;
	position: relative;
	border-radius: 0 30px 30px 0;
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 30px;
}

.sec:nth-child(odd) .sec_inner {
	border-radius: 30px 0 0 30px;
}

.sec_ttl {
	width: 360px;
	height: auto;
	margin: auto;
	position: absolute;
	top: -70px;
	left: 50%;
	transform: translateX(-50%);
}

/* =================== main =================== */
.main {
	background-image: url("https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/mv_bg.png"),
		linear-gradient(180deg, var(--color-blue-deep) 0%, var(--color-blue) 30%, var(--color-blue-light) 100%);
	background-repeat: repeat;
	background-position: center top;
	background-size: 1200px;
}


/* =================== ローチケ旅行とは =================== */
.about .sec_inner {
	padding-top: 90px;
}

.about .sec_inner::before {
	content: "";
	position: absolute;
	background-image: url("https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/about_ponta.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 123px;
	height: 110px;
	bottom: -70px;
	right: 50px;
	animation: fuwafuwa 3s infinite ease-in-out;
	will-change: transform;
}

/* =================== ポイントたまる =================== */
.point .sec_inner {
	padding-top: 140px;
}

.point .sec_inner::before {
	content: "";
	position: absolute;
	background-image: url("https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/point_ponta.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 94px;
	height: 100px;
	bottom: -80px;
	left: 50px;
	animation: yurayura 4s infinite ease-in-out;
	transform-origin: center bottom;
	will-change: transform;
}

.point_example {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.point_example img {
	width: 300px;
	height: auto;
}

.point_list {
	margin-top: 15px;
}

.point_bnr_txt {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.point_item .linkcard_img {
	width: 260px;
}


/* =================== 連携方法 =================== */
.flow .sec_inner {
	padding-top: 100px;
}

.flow_item {
	display: flex;
	width: 100%;
	max-width: 260px;
	padding: 30px 20px 20px 20px;
	flex-direction: column;
	align-items: center;
	gap: 15px;
	background: #E6FAFF;
	border-radius: 8px;
	position: relative;
	height: auto;
	margin: 0;
}

.flow_item_img {
	width: 220px;
	height: auto;
}

.flow_item_num {
	display: flex;
	height: 30px;
	padding: 5px 30px;
	justify-content: center;
	align-items: center;
	border-radius: 8px;
	background: #E6FAFF;
	position: absolute;
	top: -15px;
	font-weight: bold;
}

.flow_list {
	padding-top: 15px;
	display: flex;
	justify-content: center;
	gap: 45px 25px;
	flex-wrap: wrap;
}

.flow_item_txt {
	text-align: left;
}

.flow_swiper .swiper-button-prev,
.flow_swiper .swiper-button-next {
	transform: translateY(-50%);
}

/* =================== 予約 =================== */
.booking .sec_inner {
	padding-top: 140px;
}

.booking .sec_inner::before {
	content: "";
	position: absolute;
	background-image: url("https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/booking_ponta.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 115px;
	height: 95px;
	bottom: -70px;
	right: 50px;
	animation: tokotoko 3s infinite ease-in-out;
	transform-origin: center bottom;
	will-change: transform;
}

.booking_item .linkcard_img {
	width: 60px;
	height: auto;
	padding: 15px 0 10px 0;
}


/* =================== ローソンWEB =================== */
.lawsonweb .sec_inner {
	padding-top: 130px;
}

#contents .lawsonweb_item .linkcard_anchor {
	flex-direction: row;
}

.lawsonweb_item .linkcard_img {
	width: 100px;
	height: auto;
}

/* =================== ボタンエリア =================== */
.sec.btnarea {
	margin: 0;
	background: none;
}

.btnarea .sec_inner {
	background: none;
	gap: 0;
	padding: 0;
}

.btnarea .btn_wrap {
	margin: auto calc(50% - 50vw);
	width: 100vw;
	padding-bottom: 40px;
	background: var(--color-yellow-light);
}

.btn_img {

	/* 横方向のみ繰り返す */

	margin-left: calc(50% - 50vw);

	margin-right: calc(50% - 50vw);

	width: 100vw;

	background-image: url(https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/btn_bg_p.png), linear-gradient(180deg, transparent 0%, var(--color-blue-light) 30%, var(--color-blue-light) 100%);

	background-repeat: repeat-x;

	background-position: bottom;
}

/* =================== 活用 =================== */
.sec.feature {
	margin: 0;
	background: url("https://pntc.sslcs.cdngc.net/cdn/l-tike-travel/img/feature_bg.png") repeat center bottom / 1200px 495px;
}

.feature .sec_inner {
	background: none;
	padding: 60px 0;
}

.feature .sec_ttl {
	position: inherit;
	top: 0;
	left: 0;
	transform: none;
}

.feature_list {
	display: flex;
	justify-content: center;
	gap: 25px;
	flex-wrap: wrap;
}

.feature .feature_item {
	width: calc((100% - 50px) / 3);
	margin: 0;
}

/* ============== att =================== */
.att {
	border-top: 1px solid var(--color-gray-border);
	border-bottom: 1px solid var(--color-gray-border);
	overflow: hidden;
}

.att_item+.att_item {
	margin-top: 30px;
}

.att_item_ttl {
	font-size: 14px;
	font-weight: bold;
	line-height: 1.3;
	padding-left: 1.5em;
	position: relative;
}

/*「●」タイプのリスト用*/
.att_item_ttl::before {
	content: "";
	display: block;
	background-color: #ff9123;
	border-radius: 50%;
	width: 14px;
	height: 14px;
	position: absolute;
	top: 2px;
	left: 0;
}

.att_item_inner p {
	margin-top: 10px;
}

.att_item_inner .note_txt {
	margin-top: 0;
}

.att_item_inner p+p {
	margin-top: 0;
}

.att_item_img {
	text-align: center;
	margin-top: 20px;
}

.att_item_img+* {
	margin-top: 20px;
}

.att_small_unit dd>*:first-child {
	margin-top: 0;
}

.att .dot_list .att_small_unit {
	text-indent: 0;
}

.att .dot_list li>.dot_list,
.att .dot_list li>.num_list,
.att .num_list li>.dot_list,
.att .num_list li>.num_list,
.att_small_unit .dot_list,
.att_small_unit .num_list {
	margin-top: 0;
}

.att .dot_list li>.dot_list+*,
.att .dot_list li>.num_list+*,
.att .num_list li>.dot_list+*,
.att .num_list li>.num_list+*,
.att_small_unit .dot_list+*,
.att_small_unit .num_list+* {
	margin-top: 10px;
}

.att .dot_list li>.num_list,
.att .num_list li>.num_list {
	transform: translateX(-0.2em);
}

.att_small_unit .dot_list,
.att_small_unit .num_list {
	margin-left: 0.5em;
}

.att .em_font {
	color: #f50028;
	font-weight: bold;
}

/* コンテンツ（SP：767px以下）
========================================================*/
@media screen and (max-width: 767px) {

	/* ============== 共通 =================== */
	img {
		width: 100%;
		height: auto;
	}

	.display_pc {
		display: none;
	}

	.display_sp {
		display: block;
	}

	/*マーカー*/
	.line_txt {
		background-size: 0% 100%;
		background-position: left bottom;
		transition: background-size 1s ease-out;
	}

	.line_txt.is_show {
		background-size: 100% 100% !important;
	}

	/* ============== btn =================== */
	.btn {
		width: 100%;
	}

	.btn_wrap {
		padding: 0 15px;
	}

	.btn_att {
		text-align: left;
		margin-top: 5px;
	}


	.linkcard {
		gap: 10px;
	}

	.linkcard_item {
		width: calc(50% - 5px);
		flex: unset;
	}

	/* =================== スライド =================== */

	/* ============== sec共通 =================== */

	.sec_inner {
		width: calc(100% - 15px);
		margin-right: 15px;
		padding: 90px 30px 40px;
	}

	.sec:nth-child(odd) .sec_inner {
		margin: 0 0 0 15px;
	}

	.sec_inner p {
		width: 100%;
		text-align: left;
	}

	.top_ttl {
		position: relative;
		overflow: hidden;
		z-index: 1;
	}

	.hand_img {
		position: absolute;
		width: 100%;
		height: auto;
		bottom: -15%;
		right: 0;
		z-index: -1;
		pointer-events: none;
		opacity: 0;
		animation: hand_single 1s ease-out forwards;
		animation-delay: 0.5s;
		transform-origin: right bottom;
		will-change: transform;
	}

	@keyframes hand_single {
		0% {
			transform: rotate(5deg) translate(0px, 10px);
			opacity: 0;
		}

		100% {
			transform: rotate(0deg) translate(0, 0);
			opacity: 1;
		}
	}

	/* =================== ローチケ旅行とは =================== */
	.about .sec_inner::before {
		right: 0;
	}

	/* =================== ポイントたまる =================== */
	.point_bnr_txt p {
		text-align: center;
	}

	.point .sec_inner::before {
		left: 20px;
	}

	/* =================== 連携方法 =================== */
	.flow_swiper {
		width: calc(100vw - 15px);
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		overflow: hidden;
	}

	.flow_list {
		justify-content: unset;
		gap: unset;
		flex-wrap: unset;
	}

	.sec_inner .flow_item_num {
		width: auto;
	}

	.flow_item {
		max-width: 285px;
	}

	/* =================== 予約 =================== */
	.booking .sec_inner::before {
		right: 30px;
	}

	/* =================== ローソンWEB =================== */
	.lawsonweb_list .linkcard_item {
		width: 100%;
	}

	/* =================== ボタンエリア =================== */
	.sec.btnarea {
		background: linear-gradient(180deg, transparent 10px, var(--color-blue-light) 70%, var(--color-yellow-light) 70%);
	}

	.sec.btnarea .sec_inner {
		margin: 0;
		width: 100%;
	}

	.btnarea .btn_wrap {
		width: 100%;
	}

	/* =================== 活用 =================== */
	.sec.feature .sec_inner {
		width: 100%;
		margin: 0;
	}

	.feature_list {
		justify-content: unset;
		gap: unset;
		flex-wrap: unset;
	}

	.feature .feature_item {
		width: 75%;
	}

	/* ============== att =================== */
	.att_item_ttl {
		padding-left: 1.5em;
	}

	.att_item_inner p,
	.att .num_list,
	.att_small_unit,
	.att_small_unit+* {
		margin-top: 5px;
	}
}