@charset "utf-8";

/*//////////////////////////////////////////////////////////
インプレスアカデミー
外部提携講座CSS
作成：2022/2/14
//////////////////////////////////////////////////////////*/

@media screen and (max-width: 767px) {
	.main-container li {
		font-size: .875rem;
	}
}

/*==================== キービジュアル ====================*/
.OFR-keyvisual {
	margin-bottom: 1.5em;
}

/*==================== 期間・受講料 ====================*/
.OFR-term {
	margin-bottom: 1em;
	padding: 6px;
	border: 1px solid #a7bcc1;
	border-radius: 4px;
}
.OFR-term dl {
	display: flex;
	flex-grow: 1;
	margin-bottom: 0 !important;
}
.OFR-term dt {
	font-weight: normal;
}
.OFR-term dt span {
	display: inline-block;
	min-width: 6.5em;
	padding: 0.25em 0.5em;
	color: #fff;
	text-align: center;
	background: #145b6d;
	border-radius: 3px;
}
.OFR-term dd {
	flex-grow: 2;
	font-size: 122%;
	font-weight: 600;
	color: #002a39;
}
@media screen and (max-width: 980px) {
	.OFR-term dt span {
		margin-right: 1.35em;
	}
	.OFR-term dl:last-of-type dd {
		margin-bottom: 0;
	}
}
@media screen and (min-width: 981px) {
	.OFR-term {
		display: flex;
	}
	.OFR-term dd {
		margin-bottom: 0;
		text-align: center;
	}
}

/*==================== 特記事項 ====================*/
.OFR-sp-info {
	display: flex;
	margin-bottom: 0;
	padding: 6px;
}
.OFR-sp-info dt {
	font-weight: normal;
}
.OFR-sp-info dt span {
	display: inline-block;
	min-width: 6.5em;
	margin-right: 0.5em;
	padding: 0.25em 0.5em;
	color: #fff;
	text-align: center;
	background: #145b6d;
	border-radius: 3px;
}
.OFR-sp-info dd {
	font-size: 88%;
}
.OFR-sp-info dd ul {
	padding-left: 14px !important;
}
/*dl.OFR-sp-info dd ul li::before {
	content: none !important;
}*/
/* ----- 赤字 ----- */
.OFR-sp-info em {
	color: #e1005a;
	font-style: normal;
	font-weight: 600;
}
/* ----- PDU情報 ----- */
.OFR-sp-info li u {
	display: inline-block;
	margin-right: 0.25em;
	padding: 0.25em 0.5em;
	font-size: 95%;
	color: #fff;
	text-decoration: none;
	background: #957da0;
	border-radius: 3px;
}
@media screen and (max-width: 781px) {
	.OFR-sp-info {
		display: block;
		margin-bottom: 0.5em;
	}
	.OFR-sp-info dt {
		margin-bottom: 0.5em;
	}
}

/*==================== テーブル ====================*/
.OFR-table {
	margin-bottom: 40px;
}
.OFR-table tbody,
.OFR-table tr,
.OFR-table th,
.OFR-table td {
	border-color: #c4d0d5 !important;
}
.OFR-table th {
	padding: 0.5em !important;
	color: #fff;
	font-weight: normal;
	background: #96afb8 !important;
}
.OFR-table td {
	padding: 0.5em !important;
	color: #334a52;
	background: #fff7d6;
}
.OFR-table tr > td:only-child {
	padding-top: 1.5em !important;
	padding-bottom: 1.5em !important;
}
.OFR-table td a {
	display: block;
	padding: 0.4em;
	font-weight: 600;
	color: #fff !important;
	background: #f99136;
	border-radius: 6px;
}
.OFR-table td a::before {
	content: "";
	display: inline-block;
	margin-right: 0.4em;
	font-family: "Font Awesome\ 5 Free";
	font-weight: normal;
	transform: translateY(-1px);
}
.OFR-table u {
	display: inline-block;
}
/* セルにカーソルが乗ったとき */
.OFR-table tr.active td {
	background: #fdf1ba !important;
	transition: .3s;
	cursor: pointer;
}
.OFR-table tr.active td a {
	background: #ff5b2a;
}
@media screen and (max-width: 503px) {
	.OFR-table::before {
		content: "  横方向スクロールできます  ";
		display: block;
		margin-bottom: 0.25em;
		font-family: "Font Awesome\ 5 Free";
		text-align: center;
		color: #e1005a;
	}
	.OFR-table table {
		display: block;
		overflow-x: scroll;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
	}
	.OFR-table tbody,
	.OFR-table tr,
	.OFR-table th,
	.OFR-table td {
		border-width: 0 !important;
	}
	.OFR-table tbody {
		display: flex;
	}
	.OFR-table tr {
		display: flex;
		flex-direction: column;
		border-top: 1px solid #c4d0d5 !important;
		border-left: 1px solid #c4d0d5 !important;
	}
	.OFR-table th,
	.OFR-table td {
		flex-grow: 1;
		border-bottom: 1px solid #c4d0d5 !important;
	}
	.OFR-table th {
		writing-mode: vertical-rl;
		-webkit-writing-mode: vertical-rl;
		/* for firefox start ----- */
		display: flex;
		align-items: center;
		width:	2.5em;
		/* ----- for firefox end */
	}
	.OFR-table tr:last-of-type td {
		border-right: 1px solid #c4d0d5 !important;
	}
	.OFR-table tr > th:nth-of-type(1),
	.OFR-table tr > td:nth-of-type(1) {
		height: 4em;
	}
	.OFR-table tr > th:nth-of-type(2),
	.OFR-table tr > td:nth-of-type(2) {
		height: 5em;
	}
	.OFR-table tr > th:nth-of-type(3),
	.OFR-table tr > td:nth-of-type(3) {
		height: 3em;
	}
	.OFR-table tr > th:nth-of-type(4),
	.OFR-table tr > td:nth-of-type(4) {
		height: 6em;
	}
	.OFR-table u,
	.OFR-table a {
		position: relative;
		top: 50%;
		transform: translateY(-50%);
	}
	.OFR-table a {
		min-width: 160px;
	}
}
@media screen and (max-width: 678px) {
	.OFR-table td a::before {
		display: block;
		margin-right: 0;
	}
}

/*==================== コース概要 ====================*/
.OFR-summary h2 {
	position: relative;
	padding: 0 !important;
	font-size: 1.65rem !important;
	color: #002a39 !important;
	border-bottom: 6px solid #a7bcc1 !important;
}
.OFR-summary h2::after {
	content: "";
	display: block;
	position: absolute;
	width: 12vw;
	min-width: 6em;
	height: 6px;
	bottom: -6px;
	background: #145b6d;
}
.OFR-summary ul > li {
	padding-left: 0.45em;
}
.OFR-summary ul > li::before {
	content: "" !important;
	top: 0.5em !important;
	color: #a7bcc1;
}
/* ----- 注釈 ----- */
.OFR-summary p u {
	display: block;
	margin-top: 1.5em;
	font-size: 92%;
	line-height: 1.75em;
}
/* ----- 赤字 ----- */
.OFR-summary em {
	color: #e1005a;
	font-style: normal;
	font-weight: 600;
}

/*==================== トレーナーからひと言 ====================*/
.OFR-comment {
	margin-top: 30px;
	margin-left: 1.5vw;
	margin-right: 1.5vw;
	padding: 2vw;
	font-size: 95%;
	background: #f1f1e6;
	border-radius: 6px;
}
.OFR-comment h3 {
	padding-left: 0 !important;
	font-size: 1.15rem !important;
	color: inherit !important;
}
.OFR-comment h3::before {
	content: none !important;
}
@media screen and (max-width: 991px) {
	.OFR-comment {
		padding: 3vw;
	}
}

/*==================== 前提条件など ====================*/
.OFR-section {
	margin-top: 2.5em;
}
.OFR-section h3 {
	position: relative;
	margin-bottom: 0.75em;
	font-size: 1.5rem;
	color: #334a52;
}
.OFR-section h3::before {
	content: "";
	display: block;
	position: absolute;
	left: -9em;
	top: 50%;
	width: 8em;
	height: 2px;
	background: #a7bcc1;
	transform: translateY(-50%);
}
.OFR-section li > ul,
.OFR-section li > ol {
	margin-top: 1em;
}
.OFR-section ul > li {
	padding-left: 0.45em;
}
.OFR-section ul > li::before {
	content: "" !important;
	top: 0.5em !important;
	color: #a7bcc1;
}
/* ----- 注釈 ----- */
.OFR-section p u,
.OFR-section li u {
	display: block;
	margin-top: 1em;
	font-size: 92%;
	line-height: 1.75em;
}
.OFR-section p u {
	margin-top: 1.5em;
}
/* ----- 赤字 ----- */
.OFR-section em {
	color: #e1005a;
	font-style: normal;
	font-weight: 600;
}
/* ----- 受講特典 ----- */
.OFR-present dd {
	display: flex;
}
.OFR-present-img {
	margin-right: 0.75em;
}
.OFR-present-img img {
	min-width: 100px;
	margin-top: 0.4em;
}
/* ----- 編集画面用：dt,ddを罫線表示 ----- */
.OFR-section dt,
.OFR-section dd {
	border: 1px dotted;
}

/*==================== 支払い方法・キャンセルポリシー ====================*/
.OFR-policy {
	margin-top: 3em;
	padding: 2vw;
	background: #f2f6f7;
	border: 1px solid #a7bcc1;
	border-radius: 3px;
}
.OFR-policy h3 {
	padding-left: 0 !important;
	color: #334a52 !important;
}
.OFR-policy h3::before {
	content: none !important;
}
.OFR-policy ul > li {
	padding-left: 0.45em;
}
.OFR-policy ul > li::before {
	content: "" !important;
	top: 0.5em !important;
	color: #a7bcc1;
}
/* ----- 注釈 ----- */
.OFR-policy p u {
	display: block;
	margin-top: 1.5em;
	font-size: 92%;
	line-height: 1.75em;
}
@media screen and (max-width: 991px) {
	.OFR-policy {
		padding: 3vw;
	}
}

/*==================== お問い合わせ ====================*/
.OFR-inquiry {
	margin: 4em auto;
	text-align: center;
	color: #334a52;
	border-radius: 8px;
}
.OFR-inquiry h2 {
	margin-bottom: 0.75em;
	font-size: 1.3rem;
}
.OFR-policy ul + h3 {
	margin-top: 1.5em;
}
.OFR-inquiry a[href^="mailto"] {
	display: inline-block;
	margin: 0.25em 0;
	font-size: 105%;
}
.OFR-inquiry a[href^="mailto"]::before {
	content: "";
	display: inline-block;
	margin-right: 0.4em;
	font-family: "Font Awesome\ 5 Free";
	font-size: 1.2rem;
	transform: translateY(2px);
}
@media screen and (max-width: 375px) {
	.OFR-inquiry h2 {
		font-size: 1.2rem;
	}
}
@media screen and (max-width: 638px) {
	.OFR-inquiry {
		font-size: 90%;
		margin-top: 2.5em;
	}
}