@keyframes ribbon-drop {
	0% {
		transform: translateY(-100%);
	}

	100% {
		transform: translateY(0);
	}
}

.ribbon {
	overflow: hidden;
	--ribbon-background-color: #f5f5f7;
	--ribbon-text-color: #1d1d1f;
	--ribbon-link-color: #06c;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
}

.ribbon-content-wrapper {
	text-align: center;
}

.ribbon-content {
	margin-left: auto;
	margin-right: auto;
	width: 980px;
}

@media only screen and (min-width: 1441px) {
	.ribbon-content {
		margin-left: auto;
		margin-right: auto;
		width: 980px;
	}
}

@media only screen and (max-width: 1068px) {
	.ribbon-content {
		margin-left: auto;
		margin-right: auto;
		width: 692px;
	}
}

@media only screen and (max-width: 734px) {
	.ribbon-content {
		margin-left: auto;
		margin-right: auto;
		width: 87.5%;
	}
}

.ribbon-link {
	white-space: nowrap;
}

.ribbon-link:focus {
	text-decoration: underline;
}

.ribbon .ribbon-content-wrapper {
	padding-top: 0.94118em;
	padding-bottom: 0.94118em;
}

.ribbon .ribbon-content {
	font-size: 14px;
	line-height: 1.42859;
	font-weight: 400;
	letter-spacing: -0.016em;
	font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica",
		"Arial", sans-serif;
}

.ribbon .ribbon-content:lang(ja) {
	letter-spacing: 0em;
	font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons",
		"Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo",
		"ＭＳ Ｐゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

.ribbon .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.ribbon .ribbon-content {
	color: var(--ribbon-text-color);
}

.ribbon .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.ribbon .ribbon-link {
	color: var(--ribbon-link-color);
}

.ribbon-elevated .ribbon-content-wrapper {
	padding-top: 1.41176em;
	padding-bottom: 1.41176em;
}

.ribbon-elevated .ribbon-content {
	font-size: 17px;
	line-height: 1.47059;
	font-weight: 400;
	letter-spacing: -0.022em;
	font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica",
		"Arial", sans-serif;
}
.ribbon-elevated .ribbon-content:lang(ja) {
	letter-spacing: 0em;
	font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons",
		"Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo",
		"ＭＳ Ｐゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

.ribbon-blue {
	--ribbon-background-color: #0071e3;
	--ribbon-text-color: #fff;
	--ribbon-link-color: #fff;
	--ribbon-focus-color: rgba(255, 255, 255, 0.6);
}

.ribbon-blue .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.ribbon-blue .ribbon-content {
	color: var(--ribbon-text-color);
}

.ribbon-blue .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.ribbon-blue .ribbon-link {
	color: var(--ribbon-link-color);
}

.ribbon-blue-to-default {
	--ribbon-background-color: #f5f5f7;
	--ribbon-background-color-initial: #0071e3;
	--ribbon-text-color: #1d1d1f;
	--ribbon-text-color-initial: #fff;
	--ribbon-link-color: #06c;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
	--ribbon-link-color-initial: #fff;
}

@keyframes animate-background-0071e3-f5f5f7 {
	0% {
		background-color: var(--ribbon-background-color-initial);
	}

	100% {
		background-color: var(--ribbon-background-color);
	}
}

.ribbon-blue-to-default .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color-initial);
	animation: animate-background-0071e3-f5f5f7 1s cubic-bezier(0.42, 0, 0.58, 1)
		1.8s forwards;
}

@media (prefers-reduced-motion) {
	.ribbon-blue-to-default .ribbon-content-wrapper {
		background-color: var(--ribbon-background-color);
		animation: none;
	}
}

@keyframes animate-color-fff-1d1d1f {
	0% {
		color: var(--ribbon-text-color-initial);
	}

	100% {
		color: var(--ribbon-text-color);
	}
}

.ribbon-blue-to-default .ribbon-content {
	color: var(--ribbon-text-color-initial);
	animation: animate-color-fff-1d1d1f 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.ribbon-blue-to-default .ribbon-content {
		color: var(--ribbon-text-color);
		animation: none;
	}
}

.ribbon-blue-to-default .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

@keyframes animate-color-fff-06c {
	0% {
		color: var(--ribbon-link-color-initial);
	}

	100% {
		color: var(--ribbon-link-color);
	}
}

.ribbon-blue-to-default .ribbon-link {
	color: var(--ribbon-link-color-initial);
	animation: animate-color-fff-06c 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.ribbon-blue-to-default .ribbon-link {
		color: var(--ribbon-link-color);
		animation: none;
	}
}

.ribbon-drop-wrapper {
	animation: ribbon-drop 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
}

@media (prefers-reduced-motion) {
	.ribbon-drop-wrapper {
		animation: none;
	}
}

.theme-dark .ribbon,
.theme-dark.ribbon {
	--ribbon-background-color: #1d1d1f;
	--ribbon-text-color: #f5f5f7;
	--ribbon-link-color: #2997ff;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
}

.theme-dark .ribbon .ribbon-content-wrapper,
.theme-dark.ribbon .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.theme-dark .ribbon .ribbon-content,
.theme-dark.ribbon .ribbon-content {
	color: var(--ribbon-text-color);
}

.theme-dark .ribbon .ribbon-link:focus,
.theme-dark.ribbon .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.theme-dark .ribbon .ribbon-link,
.theme-dark.ribbon .ribbon-link {
	color: var(--ribbon-link-color);
}

.theme-dark .ribbon-blue,
.theme-dark.ribbon-blue {
	--ribbon-background-color: #0071e3;
	--ribbon-text-color: #fff;
	--ribbon-link-color: #fff;
	--ribbon-focus-color: rgba(255, 255, 255, 0.6);
}

.theme-dark .ribbon-blue .ribbon-content-wrapper,
.theme-dark.ribbon-blue .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.theme-dark .ribbon-blue .ribbon-content,
.theme-dark.ribbon-blue .ribbon-content {
	color: var(--ribbon-text-color);
}

.theme-dark .ribbon-blue .ribbon-link:focus,
.theme-dark.ribbon-blue .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.theme-dark .ribbon-blue .ribbon-link,
.theme-dark.ribbon-blue .ribbon-link {
	color: var(--ribbon-link-color);
}

.theme-dark .ribbon-blue-to-default,
.theme-dark.ribbon-blue-to-default {
	--ribbon-background-color: #1d1d1f;
	--ribbon-background-color-initial: #0071e3;
	--ribbon-text-color: #f5f5f7;
	--ribbon-text-color-initial: #fff;
	--ribbon-link-color: #2997ff;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
	--ribbon-link-color-initial: #fff;
}

@keyframes animate-background-0071e3-1d1d1f {
	0% {
		background-color: var(--ribbon-background-color-initial);
	}

	100% {
		background-color: var(--ribbon-background-color);
	}
}

.theme-dark .ribbon-blue-to-default .ribbon-content-wrapper,
.theme-dark.ribbon-blue-to-default .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color-initial);
	animation: animate-background-0071e3-1d1d1f 1s cubic-bezier(0.42, 0, 0.58, 1)
		1.8s forwards;
}

@media (prefers-reduced-motion) {
	.theme-dark .ribbon-blue-to-default .ribbon-content-wrapper,
	.theme-dark.ribbon-blue-to-default .ribbon-content-wrapper {
		background-color: var(--ribbon-background-color);
		animation: none;
	}
}

@keyframes animate-color-fff-f5f5f7 {
	0% {
		color: var(--ribbon-text-color-initial);
	}

	100% {
		color: var(--ribbon-text-color);
	}
}

.theme-dark .ribbon-blue-to-default .ribbon-content,
.theme-dark.ribbon-blue-to-default .ribbon-content {
	color: var(--ribbon-text-color-initial);
	animation: animate-color-fff-f5f5f7 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.theme-dark .ribbon-blue-to-default .ribbon-content,
	.theme-dark.ribbon-blue-to-default .ribbon-content {
		color: var(--ribbon-text-color);
		animation: none;
	}
}

.theme-dark .ribbon-blue-to-default .ribbon-link:focus,
.theme-dark.ribbon-blue-to-default .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

@keyframes animate-color-fff-2997ff {
	0% {
		color: var(--ribbon-link-color-initial);
	}

	100% {
		color: var(--ribbon-link-color);
	}
}

.theme-dark .ribbon-blue-to-default .ribbon-link,
.theme-dark.ribbon-blue-to-default .ribbon-link {
	color: var(--ribbon-link-color-initial);
	animation: animate-color-fff-2997ff 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.theme-dark .ribbon-blue-to-default .ribbon-link,
	.theme-dark.ribbon-blue-to-default .ribbon-link {
		color: var(--ribbon-link-color);
		animation: none;
	}
}

.theme-light .ribbon,
.theme-light.ribbon {
	--ribbon-background-color: #f5f5f7;
	--ribbon-text-color: #1d1d1f;
	--ribbon-link-color: #06c;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
}

.theme-light .ribbon .ribbon-content-wrapper,
.theme-light.ribbon .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.theme-light .ribbon .ribbon-content,
.theme-light.ribbon .ribbon-content {
	color: var(--ribbon-text-color);
}

.theme-light .ribbon .ribbon-link:focus,
.theme-light.ribbon .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.theme-light .ribbon .ribbon-link,
.theme-light.ribbon .ribbon-link {
	color: var(--ribbon-link-color);
}

.theme-light .ribbon-blue,
.theme-light.ribbon-blue {
	--ribbon-background-color: #0071e3;
	--ribbon-text-color: #fff;
	--ribbon-link-color: #fff;
	--ribbon-focus-color: rgba(255, 255, 255, 0.6);
}

.theme-light .ribbon-blue .ribbon-content-wrapper,
.theme-light.ribbon-blue .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color);
}

.theme-light .ribbon-blue .ribbon-content,
.theme-light.ribbon-blue .ribbon-content {
	color: var(--ribbon-text-color);
}

.theme-light .ribbon-blue .ribbon-link:focus,
.theme-light.ribbon-blue .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

.theme-light .ribbon-blue .ribbon-link,
.theme-light.ribbon-blue .ribbon-link {
	color: var(--ribbon-link-color);
}

.theme-light .ribbon-blue-to-default,
.theme-light.ribbon-blue-to-default {
	--ribbon-background-color: #f5f5f7;
	--ribbon-background-color-initial: #0071e3;
	--ribbon-text-color: #1d1d1f;
	--ribbon-text-color-initial: #fff;
	--ribbon-link-color: #06c;
	--ribbon-focus-color: rgba(0, 125, 250, 0.6);
	--ribbon-link-color-initial: #fff;
}

@keyframes animate-background-0071e3-f5f5f7 {
	0% {
		background-color: var(--ribbon-background-color-initial);
	}

	100% {
		background-color: var(--ribbon-background-color);
	}
}

.theme-light .ribbon-blue-to-default .ribbon-content-wrapper,
.theme-light.ribbon-blue-to-default .ribbon-content-wrapper {
	background-color: var(--ribbon-background-color-initial);
	animation: animate-background-0071e3-f5f5f7 1s cubic-bezier(0.42, 0, 0.58, 1)
		1.8s forwards;
}

@media (prefers-reduced-motion) {
	.theme-light .ribbon-blue-to-default .ribbon-content-wrapper,
	.theme-light.ribbon-blue-to-default .ribbon-content-wrapper {
		background-color: var(--ribbon-background-color);
		animation: none;
	}
}

@keyframes animate-color-fff-1d1d1f {
	0% {
		color: var(--ribbon-text-color-initial);
	}

	100% {
		color: var(--ribbon-text-color);
	}
}

.theme-light .ribbon-blue-to-default .ribbon-content,
.theme-light.ribbon-blue-to-default .ribbon-content {
	color: var(--ribbon-text-color-initial);
	animation: animate-color-fff-1d1d1f 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.theme-light .ribbon-blue-to-default .ribbon-content,
	.theme-light.ribbon-blue-to-default .ribbon-content {
		color: var(--ribbon-text-color);
		animation: none;
	}
}

.theme-light .ribbon-blue-to-default .ribbon-link:focus,
.theme-light.ribbon-blue-to-default .ribbon-link:focus {
	outline-color: var(--ribbon-focus-color);
}

@keyframes animate-color-fff-06c {
	0% {
		color: var(--ribbon-link-color-initial);
	}

	100% {
		color: var(--ribbon-link-color);
	}
}

.theme-light .ribbon-blue-to-default .ribbon-link,
.theme-light.ribbon-blue-to-default .ribbon-link {
	color: var(--ribbon-link-color-initial);
	animation: animate-color-fff-06c 1s cubic-bezier(0.42, 0, 0.58, 1) 1.8s
		forwards;
}

@media (prefers-reduced-motion) {
	.theme-light .ribbon-blue-to-default .ribbon-link,
	.theme-light.ribbon-blue-to-default .ribbon-link {
		color: var(--ribbon-link-color);
		animation: none;
	}
}

.ribbon-wrapper {
	color: #333;
	background-color: #f2f2f2;
	padding: 9px 0;
	text-align: center;
}

.ribbon-wrapper p {
	font-size: 12px;
	line-height: 1.33337;
	font-weight: 400;
	letter-spacing: -0.01em;
	font-family: "SF Pro Text", "SF Pro Icons", "Helvetica Neue", "Helvetica",
		"Arial", sans-serif;
}

.ribbon-wrapper p:lang(ja) {
	line-height: 1.41667;
	letter-spacing: 0em;
	font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons",
		"Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo",
		"ＭＳ Ｐゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

.ribbon-content {
	margin-left: auto;
	margin-right: auto;
	width: 980px;
}

@media only screen and (max-width: 1068px) {
	.ribbon-content {
		width: 692px;
	}
}

@media only screen and (max-width: 734px) {
	.ribbon-content {
		width: 87.5%;
		max-width: 560px;
	}
}

.ribbon.theme-dark .ribbon-wrapper {
	background-color: #151516;
	color: #f5f5f7;
}

.ribbon.theme-dark .icon-copy {
	color: #2997ff;
}

.page-overview .ribbon-content-wrapper {
	padding: 13px 0;
}

/* .ac-ls-visible .page-overview .ribbon {
	margin-top: 116px;
} */

.ac-ls-visible .ribbon-obdb {
	margin-top: 116px;
}

.ac-ls-visible .ribbon-ase + .ribbon-obdb {
	margin-top: 0;
}

.ac-gf-sosumi .bold {
	color: var(--footer-link-color);
}

#ac-globalfooter .ac-gf-sosumi .strong {
	font-weight: 500;
}

.theme-dark .ribbon-blue-to-default,
.theme-dark.ribbon-blue-to-default {
	--ribbon-background-color: transparent;
	/* border-bottom: 1px solid rgba(255, 255, 255, 0.24); */
}

.ribbon .column {
	width: 100%;
}

.theme-dark .ribbon {
	--ribbon-background-color: rgba(29, 29, 31, 0.72);
}

.page-college-students
	.theme-dark
	.ribbon-blue-to-default.bts-ribbon
	.ribbon-content-wrapper {
	--ribbon-background-color: #1d1d1f;
}

.theme-dark .ribbon-blue-to-default,
.theme-dark.ribbon-blue-to-default {
	border-top: 1px solid rgba(255, 255, 255, 0.24);
}

@media only screen and (max-width: 320px) {
	.page-ipad-air {
		position: relative;
		z-index: 10;
	}
}

.page-ipad-air .ribbon {
	position: relative;
	top: 96px;
	z-index: 2;
}

.no-js .page-ipad-air .ribbon,
.no-js .page-ipad-air .ribbon,
.no-enhanced .page-ipad-air .ribbon {
	position: static;
	top: 0;
}
.ipad-12mo-ribbon-wrapper + .section-hero {
	top: 46px;
	position: relative;
}
.ipad-10-2-ribbon .ribbon {
	position: relative;
	z-index: 2;
}
.ipad-mini-ribbon .ribbon-blue-to-default {
	border-top: 1px solid rgba(0, 0, 0, 0.15);
}
.ipad-mini-ribbon .ribbon {
	position: relative;
	top: 46px;
	z-index: 2;
}
@media only screen and (max-width: 1068px) {
	.ipad-mini-ribbon .ribbon {
		top: 46px;
	}
}
@media only screen and (max-width: 833px) {
	.ipad-mini-ribbon .ribbon {
		top: 43px;
	}
}
@media only screen and (max-width: 734px) {
	.ipad-mini-ribbon .ribbon {
		top: 42px;
	}
}
.ipad-10-2-ribbon .ribbon-blue-to-default {
	--ribbon-background-color: #fff;
}
.ipad-mini-ribbon .ribbon-blue-to-default {
	--ribbon-background-color: #fff;
}

.ribbon .icon-wrapper .icon-after::after {
	position: relative !important;
	top: -0.075em;
}

.ribbon .icon-wrapper .icon {
	top: 0px !important;
}
