/*other.css*/

/*-------------------
Reset
-------------------*/

.theme-wrapper {
	grid-template-columns: none;
	grid-template-rows: none;
	background: #fff;
	padding-bottom: 80px;
}

.container-lg {
	max-width: 100%;
	max-width: 1240px;
	padding-left: 20px;
    padding-right: 20px;
    margin: 0 auto;
}

.py-5 {
	padding-top: 0!important;
	padding-bottom: 0!important;
}

.container {
	width: 1020px;
	padding-left: 20px;
	padding-right: 20px;
	margin-top: 50px!important;
}

/*-------------------
Bread
-------------------*/

.breadcrumb > li,
.breadcrumb > li > a {
	font-size: 1.4rem;
}

.breadcrumb > li {
	color: #212121;
}

.breadcrumb > li.active {
	color: #212121;
}

.breadcrumb > li:first-child {
	margin-left: 0;
}

.breadcrumb > li:last-child {
	margin-right: 0;
}

.breadcrumb-item + .breadcrumb-item::before {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 10px;
	height: 1px;
	background: #93A3B4;
	float: none;
	margin: -4px 5px 0;
}


/*-------------------
H - title
-------------------*/

.page_heading {
	padding-top: 80px;
	padding-bottom: 70px;
	background-image: url(/assets/img/common/page_heading.webp);
	background-size: cover;
	background-position: top right;
}

.page_heading h1 {
	font-size: 4.0rem;
	font-weight: 700;
	position: relative;
	padding-top: 15px;
}

.page_heading h1:before {
    content: '';
    display: block;
    width: 29px;
    height: 12px;
    background-image: url(/assets/img/common/h2_ic.webp);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 0;
    left: 0;
}

.page_heading_title > p {
	color: #506170;
	margin-top: 10px;
}

h2 {
	border-top: 1px solid #E2E5E9;
	font-size: 32px;
	padding-top: 15px;
	margin-top: 100px;
	margin-bottom: 30px;
}

.theme-prose > h2 {
  border-top: 1px solid #E2E5E9;
	font-size: 32px;
	padding-top: 15px;
	margin-top: 100px;
	margin-bottom: 30px;
}

h2:before {
	content: '';
	width: 120px;
	height: 2px;
	background: #00A0E9;
	background-image: none;
	top: -1px;
	left: 0;
}

h2:after {
	content: '';
	width: 60px;
	height: 2px;
	background: #FF8C00;
	background-image: none;
	position: absolute;
	top: -1px;
	left: 60px;
	
}

h3 {
	font-size: 2.4rem;
	font-weight: 500;
	padding-left: 14px;
	margin-top: 60px;
	margin-bottom: 30px;
	position: relative;
  line-height: 1.7;
}

.theme-prose > h3 {
  font-size: 2.4rem;
	font-weight: 500;
	padding-left: 14px;
	margin-top: 60px;
	margin-bottom: 30px;
	position: relative;
}

h3:before {
	content: '';
	width: 4px;
	height: 34px;
	background: #00A0E9;
	position: absolute;
	top: 2px;
	left: 0;
}

h4 {
	font-size: 1.8rem;
	font-weight: 500;
	padding: 12px 10px 12px 14px;
	background: #E9EFF2;
	position: relative;
	margin-top: 40px!important;
	margin-bottom: 20px;
}

h4:before {
	content: '';
	width: 4px;
	height: 100%;
	background: #ADD1DF;
	position: absolute;
	top: 0;
	left: 0;
}

h5 {
	font-size: 1.8rem;
	font-weight: 500;
	padding: 12px 10px 12px 14px;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	margin-top: 30px!important;
	margin-bottom: 20px;
}

.theme-prose > :where(h5) {
	font-size: 1.8rem;
}

h6 {
	font-weight: 700;
	margin-top: 30px!important;
	margin-bottom: 20px;
}

.theme-prose > :where(h6) {
	font-size: 1.6rem;
}

/*-------------------
ul li
-------------------*/

.theme-prose ul li::marker {
	content: '';
}

.theme-prose ul li {
	padding-left: 1em!important;
	position: relative;
}

.theme-prose ul li::before {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #00A0E9;
	position: absolute;
	left: 0;
	top: 0.5em;
}


/*-------------------
ol li
-------------------*/

.theme-prose ol {
	list-style: auto;
	margin-left: 1em;
}


/*-------------------
blockquote
-------------------*/

.theme-prose blockquote::before {
  background: #C8B87A;
}

.theme-prose blockquote::before {
  content: '';
  position: absolute;
  top: 1.25rem;
  left: 1rem;
  display: block;
  width: 45px;
  height: 33px;
  background: none;
  clip-path: none;
  background-image: url("data:image/svg+xml,%3Csvg width='45' height='33' viewBox='0 0 45 33' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M39 2.7C35.9333 5.03333 33.7333 7.26666 32.4 9.39999C31.1333 11.4667 30.5 13.7667 30.5 16.3C31.3667 15.7667 32.3667 15.5 33.5 15.5C35.0333 15.5 36.2667 16.0333 37.2 17.1C38.2 18.1 38.7 19.4 38.7 21C38.7 22.8 38.0667 24.2667 36.8 25.4C35.6 26.5333 33.9667 27.1 31.9 27.1C27.1667 27.1 24.8 23.9667 24.8 17.7C24.8 16.0333 25 14.5 25.4 13.1C25.8 11.6333 26.4333 10.2333 27.3 8.89999C28.2333 7.5 29.4667 6.1 31 4.69999C32.5333 3.23333 34.4333 1.66666 36.7 -4.29153e-06L39 2.7ZM19.8 2.7C16.7333 5.03333 14.5333 7.26666 13.2 9.39999C11.9333 11.4667 11.3 13.7667 11.3 16.3C12.1667 15.7667 13.1667 15.5 14.3 15.5C15.8333 15.5 17.0667 16.0333 18 17.1C19 18.1 19.5 19.4 19.5 21C19.5 22.8 18.8667 24.2667 17.6 25.4C16.4 26.5333 14.7667 27.1 12.7 27.1C7.96667 27.1 5.6 23.9667 5.6 17.7C5.6 16.0333 5.8 14.5 6.2 13.1C6.6 11.6333 7.23333 10.2333 8.1 8.89999C9.03333 7.5 10.2667 6.1 11.8 4.69999C13.3333 3.23333 15.2333 1.66666 17.5 -4.29153e-06L19.8 2.7Z' fill='%23CECAA1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

.theme-prose blockquote {
	background: #F5F4E9;
	padding: 30px 30px 25px 65px;
	border-left: 4px solid #CECAA1;
    margin: 10px 0;
}

.theme-prose blockquote p {
	color: #614020;
}


/*-------------------
other
-------------------*/

p a {
	color: #0477E9;
	text-decoration: underline!important;
}

.mt-be-image {
	margin: 40px auto 0;
}

.mt-be-image img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
}

/*-------------------
other
-------------------*/

.btn {
	display: inline-block;
	width: fit-content;
	font-size: 1.4rem;
	position: relative;
	padding: 11px 20px 10px 20px;
}

.btn-lg,
.btn-lg {
	font-size: 1.8rem;
	padding: 16px 20px 15px 20px;
}



.btn.btn-primary.btn-sm,
.btn.btn-outline-primary.btn-sm {
	background-color: #212121;
	border: 1px solid #212121;
	border-radius: 4px;
	font-size: 1.4rem;
	padding: 8px 15px 7px 15px;
}

.btn.btn-outline-primary.btn-sm {
	background-color: #fff;
	color: #212121;
}

.btn.btn-primary.btn-sm:before,
.btn.btn-outline-primary.btn-sm:before {
	content: none;
}

.btn.btn-primary {
	background-color: #0477E9;
	border: 1px solid #0477E9;
	color: #fff;
	padding-right: 47px;
}

.btn.btn-outline-primary {
	background-color: #fff;
	border: 1px solid #0477E9;
	color: #0477E9;
	padding-right: 47px;
}

.btn.btn-lg.btn-outline-primary {
	background-color: #fff;
	border: 1px solid #0477E9;
	color: #0477E9;
	padding-right: 47px;
}

.btn.btn-primary:before {
	content: '';
	display: block;
	width: 12px;
	height: 6px;
	background-image: url(/assets/img/common/wh_ar.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
}

.btn.btn-outline-primary:before {
	content: '';
	display: block;
	width: 12px;
	height: 6px;
	background-image: url(/assets/img/common/bl_ar.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto;
}

.btn.btn-primary[target="_blank"],
.btn.btn-outline-primary[target="_blank"] {
	position: relative;
	padding-right: 62px
}

.btn.btn-primary[target="_blank"]:after {
	content: '';
	display: block;
	width: 16px;
	height: 16px;
	background-image: url(/assets/img/common/ex_wh_ic.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 40px;
	margin: auto;
}

.btn.btn-outline-primary[target="_blank"]:after {
	content: '';
	display: block;
	width: 16px;
	height: 16px;
	background-image: url(/assets/img/common/ex_bl_ic.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 40px;
	margin: auto;
}

/*-------------------
チャット
-------------------*/

.theme-block-chat-item .theme-block-chat-item-head figure {
	border-radius: 50%;
    overflow: hidden;
}

/*-------------------
アコーディオン
-------------------*/

.accordion {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.accordion-item:first-of-type {
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}

.accordion-item:not(:first-of-type) {
	border: 1px solid #E2E5E9;
}

.accordion-item {
	border: 1px solid #E2E5E9;
	border-radius: 6px;
	padding: 20px 20px 20px;
}

.accordion .accordion-header {
	background: #fff;
}

.accordion-button {
	font-size: 1.8rem;
	font-weight: 500;
	padding: 0;
}

.accordion-item .accordion-button::after {
	content: '';
	width: 22px;
	height: 22px;
	background-image: url(/assets/img/common/ac_plus.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.accordion-item[open] .accordion-button::after {
	background-image: url(/assets/img/common/ac_minus.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.accordion-item[open] .accordion-body {
	padding-top: 20px;
}

/*-------------------
背景付きセクション
-------------------*/

.theme-block-section {
	--theme-section-bg: #E2EAF2;
  margin: 80px auto 80px;
}

.theme-block-section h3 {
	margin-top: 30px;
}

.table > thead td {
	background-color: #ECF8FD;
	text-align: center;
	font-weight: 500;
}

.table tr td {
	border: 1px solid #BCC5CD;
}

.table tr td:first-of-type {
	border-left: none;
}

.table tr td:last-of-type {
	border-right: none;
}

.table tr td a {
  color: #0477E9;
  text-decoration: underline !important;
}

table.table_fixed {
	table-layout: fixed!important;
}

/*-------------------
pagination
-------------------*/

.pagination {
	justify-content: center;
	column-gap: 10px;
}

.page-item {
	width: 200px;
    height: 60px;
	background: #fff;
	border: 1px solid #506170;
	display: flex;
    align-items: center;
    justify-content: center;
}

.page-item.disabled {
	background: #f2f2f2;
}

.page-link {
	font-size: 1.6rem;
	padding: 0;
	display: block;
	height: auto;
	width: auto;
	background: transparent;
	border: none;
}

.disabled > .page-link,
.page-link.disabled {
	background: transparent;
}

.page-item-index {
	width: 200px;
	flex-basis: 200px;
}

.page-item:first-child .page-link:before {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 10px;
	height: 10px;
	border: 0;
	border-top: solid 1px #506170;
	border-left: solid 1px #506170;
	transform: rotate(-45deg);
	margin-right: 5px;
	margin-top: -4px;
}

.page-item:last-child .page-link:after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 10px;
	height: 10px;
	border: 0;
	border-top: solid 1px #506170;
	border-right: solid 1px #506170;
	transform: rotate(45deg);
	margin-left: 5px;
	margin-top: -4px;
}

/*
.theme-block-file-decoration {
	background: #2B4F6F;
	color: #fff;
	width: 97px;
}
*/

.theme-block-file-decoration-label {
	color: #fff;
	font-size: 14px;
}

.theme-block-file > a {
	background: #fff;
	border: 1px solid #2B4F6F;
	justify-items: flex-start;
	color: #212121;
	text-decoration: underline;
	padding-left: 50px;
}

.theme-block-file > a:hover {
	color: #0477E9;
	background: #fff;
	opacity: 1;
	text-decoration: none!important;
}

.theme-block-file > a:hover span {
	color: #0477E9;
	text-decoration: none;
}

.theme-block-file-decoration-label {
	display: none;
}

.theme-block-file-decoration .material-symbols-outlined {
/*
	width: 20px;
	height: 15px;
	background-image: url(/assets/img/common/icon_pdf.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
*/
}

.theme-block-file{
	position: relative;
/*
  --theme-block-file-columns: 1fr;
  --theme-block-file-decoration-label: 'リンク';
  --theme-block-file-decoration-fontSize: 14px;
  --theme-block-file-decoration-materialSymbols-name: 'attach_file';
  --theme-block-file-decoration-materialSymbols-fontSize: 1rem;
*/
}

.theme-block-file-decoration-icon::before {
  content: none;
}

.theme-block-file-decoration {
	position: absolute;
	top: 0;
	left: 0;
	width: auto;
	height: 100%;
	background: transparent;
}


.theme-block-file-decoration-icon {
  /* Material Symbolsを無効化 */
  font-size: 0;
  
  /* 画像を指定 */
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url('/assets/img/common/icon_link.webp');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}



.theme-block-file-decoration + a {
	border-top-left-radius: 4px;
	background: #F0F3F6;
	border: 1px solid #F0F3F6;
}


.theme-block-file:has(a[href$=".docx"]) .theme-block-file-decoration + a,
.theme-block-file:has(a[href$=".xlsx"]) .theme-block-file-decoration + a,
.theme-block-file:has(a[href$=".zip"]) .theme-block-file-decoration + a,
.theme-block-file:has(a[href*=".pdf"]) .theme-block-file-decoration + a {
	border-top-left-radius: 0;
	background: #fff;
	border: 1px solid #2B4F6F;
	text-align: left;
}


.theme-block-file:has(a[href$=".docx"]) > a,
.theme-block-file:has(a[href$=".xlsx"]) > a,
.theme-block-file:has(a[href$=".zip"]) > a,
.theme-block-file:has(a[href*=".pdf"]) > a{
	padding-left: 15px;
}

.theme-block-file:has(a[href$=".docx"]) .theme-block-file-decoration,
.theme-block-file:has(a[href$=".xlsx"]) .theme-block-file-decoration,
.theme-block-file:has(a[href$=".zip"]) .theme-block-file-decoration,
.theme-block-file:has(a[href*=".pdf"]) .theme-block-file-decoration {
	position: relative;
	background: #2B4F6F;
	color: #fff;
	width: 97px;
  height: 40px;
}

.theme-block-file:has(a[href$=".docx"]) .theme-block-file-decoration-label,
.theme-block-file:has(a[href$=".xlsx"]) .theme-block-file-decoration-label,
.theme-block-file:has(a[href$=".zip"]) .theme-block-file-decoration-label,
.theme-block-file:has(a[href*=".pdf"]) .theme-block-file-decoration-label {
	display: block;
}

.theme-block-file:has(a[href$=".docx"]) .theme-block-file-decoration-icon::before,
.theme-block-file:has(a[href$=".xlsx"]) .theme-block-file-decoration-icon::before,
.theme-block-file:has(a[href$=".zip"]) .theme-block-file-decoration-icon::before {
	content: none;
}

.theme-block-file:has(a[href$=".docx"]) .theme-block-file-decoration .material-symbols-outlined {
	width: 20px;
	height: 15px;
	background-image: url(/assets/img/common/icon_word.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.theme-block-file:has(a[href$=".xlsx"]) .theme-block-file-decoration .material-symbols-outlined {
	width: 20px;
	height: 15px;
	background-image: url(/assets/img/common/icon_excel.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.theme-block-file:has(a[href$=".zip"]) .theme-block-file-decoration .material-symbols-outlined {
	width: 20px;
	height: 15px;
	background-image: url(/assets/img/common/icon_zip.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.theme-block-file:has(a[href*=".pdf"]) .theme-block-file-decoration .material-symbols-outlined {
	width: 20px;
	height: 15px;
	background-image: url(/assets/img/common/icon_pdf.webp);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.theme-block-file:has(a[href*=".pdf"]):has(img) {
	--theme-block-file-columns: 80px 1fr;
}

.theme-block-file:has(a[href*=".pdf"]) img {
	width: 80px;
	border: 1px solid #cecece;
}

.theme-block-file:has(a[href*=".docx"]) {
  --theme-block-file-decoration-label: 'Word';
  --theme-block-file-decoration-materialSymbols-name: 'description';
}

.theme-block-file:has(a[href*=".xlsx"]) {
  --theme-block-file-decoration-label: 'Excel';
  --theme-block-file-decoration-materialSymbols-name: 'view_list';
}

.theme-block-file:has(a[href*=".pdf"]) {
  --theme-block-file-decoration-label: 'PDF';
  --theme-block-file-decoration-materialSymbols-name: 'description';
}

.theme-block-file:has(a[href*=".zip"]) {
  --theme-block-file-decoration-label: 'zip';
  --theme-block-file-decoration-materialSymbols-name: 'folder_zip';
}

/*-------------------
コード
-------------------*/

.theme-block-file:has(code) .theme-block-file-decoration-label {
	display: block;
}

.theme-block-file:has(code) .material-symbols-outlined {
	display: none;
}

.theme-block-file:has(code) .theme-block-file-decoration {
	background: #4c4c4c;
	padding: 5px 10px;
	border-radius: 10px 10px 0 0;
	position: relative;
	position: relative;
    background: #2B4F6F;
    color: #fff;
    width: 97px;
}

.theme-block-file:has(code) .theme-block-file-decoration-label {
	color: #fff;
}

.theme-block-file:has(code) pre {
	padding: 40px 40px 40px;
	background-color: #F0F3F6;
}

.ifram_wrap {
	position: relative;
	width: 100%;
	max-width: 700px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin: 50px auto 50px;
}

.ifram_wrap iframe {
	width: 100%;
	height: 100%;
}

.center_title01 {
	font-size: 32px;
	text-align: center;
	margin: 50px auto 50px;
}

.center_title02 {
	font-size: 24px;
	text-align: center;
	margin: 50px auto 30px;
}
  
.theme-block-columns .btn-lg {
	width: 100%;
	padding-left: 30px!important;
	padding-right: 30px!important;
}

.accordion-item a {
	color: #0477E9;
    text-decoration: underline !important;
}

.centering {
	display: flex;
	justify-content: center;
	align-items: center;
}

dl.curriculum {
	width: fit-content;
	margin: 40px auto 0;
}

dl.curriculum > div {
	display: flex;
	flex-shrink: 0;
}

dl.curriculum > div:nth-child(odd) > dt,
dl.curriculum > div:nth-child(odd) > dd {
	background-color: #ECF8FD;
}

dl.curriculum > div > dt,
dl.curriculum > div > dd {
	padding: 10px 15px 10px;
}

dl.curriculum > div > dt {
	width: 100px;
	text-align: right;
	font-weight: 500;
}

dl.curriculum > div > dd {
	flex: 1;
}

.whiteblock {
	padding-top: 80px;
	padding-bottom: 80px;
	background-color: transparent;
}

@media screen and (min-width:768px) {
	.theme-block-columns:has(.profile_text) {
		grid-template-columns: auto 1fr;
		gap: var(--theme-block-columns-gap, 4rem);
      	align-items: center;
	}
}

.red {
	color: #CC3E3A;
}

.btn.btn-wide {
	width: 100%;
	font-size: 1.8rem;
    padding: 16px 20px 15px 20px;
}

:where(table), .table_stripe {
	border: none;
}

.table_stripe tr:nth-child(odd) td {
	background-color: #ECF8FD;
}

.fukidashi_left,
.fukidashi_right {
	position: relative;
	padding: 20px;
	background-color: #ECF8FD;
	border-radius: 10px;
	margin-top: 30px;
}

.fukidashi_left::before{
	content: '';
	position: absolute;
	display: block;
	width: 0;
	height: 0;
	left: -15px;
	top: 20px;
	border-right: 15px solid #ECF8FD;
	border-top: 15px solid transparent;
	border-bottom: 15px solid transparent;
}

.fukidashi_left {
	box-shadow: rgba(0, 0, 0, 0.15) 2.4px 2.4px 3.2px;
	margin-left: 20px;
}

.fukidashi_right {
	background-color: #F0F3F6;
	box-shadow: rgba(0, 0, 0, 0.15) -2.4px 2.4px 3.2px;
	margin-right: 20px;
}

.fukidashi_right::before{
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  right: -15px;
  top: 20px;
  border-left: 15px solid #F0F3F6;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
}

.theme-block-columns:has(.interview_link) {
	align-items: center;
}

.table-responsive table {
	table-layout: fixed;
}

/*-------------------
interview
-------------------*/

.intv {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.theme-prose .intv > li {
	padding-left: 0!important;
}

.intv > li:before {
	content: none!important;
}

.intv > li > dl {
	display: flex;
	gap: 20px;
}

.intv > li > dl > dt {
	width: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
}

.intv > li > dl > dt > div {
	width: 100%;
	height: 60px;
	border-radius: 50%;
	overflow: hidden;
}

.intv > li > dl > dt > p {
	font-size: 11px;
	font-weight: 700;
	color: #526064;
}

.intv > li > dl > dd {
	width: calc(100% - 80px);
	padding: 10px 0;
	font-size: 1.6rem;
}

/*-------------------
interview02
-------------------*/

dl.int_v {
	display: flex;
	gap: 20px;
	margin: 15px 0 15px;
}

dl.int_v > dt {
	width: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
}

dl.int_v > dt > div {
	width: 100%;
	height: 60px;
	border-radius: 50%;
	overflow: hidden;
}

dl.int_v > dt > p {
	font-size: 11px;
	font-weight: 700;
	color: #526064;
}

dl.int_v > dd {
	width: calc(100% - 80px);
	padding: 10px 0;
	font-size: 1.6rem;
}

dl.int_v > dd a {
	color: #0477E9;
    text-decoration: underline !important;
}

.theme-prose ul li.blocks-gallery-item::before {
	content: none;
}
