/* =====================================
   IMO CTA
===================================== */

.p-imo-cta {

	padding: 30px 0 36px;

	box-sizing: border-box;
}

/* 全要素 border-box */

.p-imo-cta * {
	box-sizing: border-box;
}

/* =====================================
   Button
===================================== */

.p-imo-cta .p-imo-cta__button {

	display: flex !important;

	align-items: center !important;

	justify-content: center !important;

	/* PC時 60% */
	width: min(60%, 900px) !important;

	max-width: 100% !important;

	margin: 0 auto !important;

	padding: 18px 52px 18px 26px !important;

	position: relative !important;

	background:
		linear-gradient(
			180deg,
			#ff744d 0%,
			#ff643a 55%,
			#f5532f 100%
		) !important;

	border: 2px solid rgba(255,255,255,0.96) !important;

	border-radius: 9999px !important;

	color: #fff !important;

	text-decoration: none !important;

	box-shadow:
		0 6px 0 rgba(0,0,0,0.16),
		0 14px 24px rgba(0,0,0,0.18),
		inset 0 2px 0 rgba(255,255,255,0.35) !important;

	overflow: hidden !important;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease,
		box-shadow 0.2s ease !important;
}

/* Hover */

.p-imo-cta .p-imo-cta__button:hover {

	transform: translateY(-2px);

	opacity: 0.96;
}

/* =====================================
   Text
===================================== */

.p-imo-cta .p-imo-cta__text {

	display: block !important;

	width: 100% !important;

	max-width: 100% !important;

	margin: 0 auto !important;

	padding: 0 !important;

	color: #fff !important;

	font-size: clamp(18px, 1.5vw, 28px) !important;

	font-weight: 700 !important;

	line-height: 1.2 !important;

	letter-spacing: 0.02em !important;

	text-align: center !important;

	white-space: nowrap !important;

	text-shadow:
		0 2px 2px rgba(0,0,0,0.18),
		0 0 1px rgba(255,255,255,0.9) !important;
}

/* =====================================
   Arrow
===================================== */

.p-imo-cta .p-imo-cta__arrow {

	position: absolute !important;

	right: 20px !important;

	top: 50% !important;

	width: 14px !important;

	height: 14px !important;

	margin: 0 !important;

	padding: 0 !important;

	font-size: 0 !important;

	line-height: 0 !important;

	transform: translateY(-50%) rotate(45deg) !important;

	border-top: 4px solid #fff !important;

	border-right: 4px solid #fff !important;

	display: block !important;

	z-index: 2 !important;

	pointer-events: none !important;
}



/* =====================================
   Mobile
===================================== */

@media screen and (max-width: 768px) {

	.p-imo-cta {

		padding: 20px 12px 28px;
	}

	/* SPは画面幅いっぱい */

	.p-imo-cta .p-imo-cta__button {

		width: 100% !important;

		max-width: 100% !important;

		padding: 16px 44px 16px 18px !important;

		border-radius: 999px !important;
	}

	.p-imo-cta .p-imo-cta__text {

		font-size: 0.95rem !important;

		line-height: 1.35 !important;

		letter-spacing: 0.01em !important;

		text-align: center !important;

		white-space: normal !important;
	}

	.p-imo-cta .p-imo-cta__arrow {

		right: 18px !important;

		width: 11px !important;

		height: 11px !important;

		border-top: 3px solid #fff !important;

		border-right: 3px solid #fff !important;
	}
	
    .p-imo-anchor {

		margin: -2px 0 26px;
	}

	.p-imo-anchor__link {

		font-size: 0.92rem;

		line-height: 1.5;
	}
}

/* =====================================
   IMO Anchor Link
===================================== */

.p-imo-anchor {

	text-align: center;

	margin: -6px 0 34px;
}

.p-imo-anchor__link {

	display: inline-flex;

	align-items: center;

	gap: 8px;

	color: #005bac;

	font-size: 0.98rem;

	font-weight: 700;

	text-decoration: none;

	border-bottom: 1px solid rgba(0,91,172,0.35);

	padding-bottom: 2px;

	transition:
		color 0.2s ease,
		border-color 0.2s ease,
		opacity 0.2s ease;
}

/* Arrow */

.p-imo-anchor__link::after {

	content: "";

	width: 7px;
	height: 7px;

	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;

	transform: rotate(45deg);

	margin-top: -2px;
}

/* Hover */

.p-imo-anchor__link:hover {

	color: #003f78;

	border-color: rgba(0,63,120,0.6);

	opacity: 0.85;
}
/* =====================================
   IMO English CTA / Flat Orange
===================================== */

.p-imo-flat-cta {
	margin: 20px 0 14px;
	text-align: center;
}

/* CTA Button */

.p-imo-flat-cta__button {

	position: relative;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 100%;
	max-width: 560px;

	padding: 15px 56px 15px 24px;

	background: #f5663b;

	color: #fff !important;

	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;

	text-align: center;

	text-decoration: none !important;

	border-radius: 4px;

	box-sizing: border-box;

	transition:
		background 0.2s ease,
		opacity 0.2s ease;
}

/* Hover */

.p-imo-flat-cta__button:hover {

	background: #e85629;

	color: #fff !important;

	text-decoration: none !important;

	opacity: 0.95;
}

/* Arrow */

.p-imo-flat-cta__button::after {

	content: "";

	position: absolute;

	right: 22px;
	top: 50%;

	width: 9px;
	height: 9px;

	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;

	transform: translateY(-50%) rotate(-45deg);
}

/* =====================================
   Anchor Link
===================================== */

.p-imo-flat-anchor {
	margin: 0 0 30px;
	text-align: center;
}

.p-imo-flat-anchor__link {

	display: inline-block;

	color: #0068b7 !important;

	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;

	text-decoration: none !important;

	border-bottom: 1px solid #0068b7;

	padding-bottom: 2px;
}

/* Arrow */

.p-imo-flat-anchor__link::after {

	content: "";

	display: inline-block;

	width: 6px;
	height: 6px;

	margin-left: 8px;
	margin-bottom: 3px;

	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;

	transform: rotate(45deg);
}

.p-imo-flat-anchor__link:hover {

	color: #004f8c !important;

	border-color: #004f8c;
}

/* =====================================
   Mobile
===================================== */

@media screen and (max-width: 768px) {

	.p-imo-flat-cta {
		margin: 18px 0 12px;
	}

	.p-imo-flat-cta__button {

		max-width: 100%;

		padding: 14px 46px 14px 18px;

		font-size: 15px;
	}

	.p-imo-flat-cta__button::after {

		right: 18px;

		width: 8px;
		height: 8px;
	}

	.p-imo-flat-anchor {
		margin-bottom: 24px;
	}

	.p-imo-flat-anchor__link {
		font-size: 13px;
	}
}