body{
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.5;
  font-feature-settings: "palt";
  	overflow-x: clip;

}
.container{
  max-width: 1040px;
  margin: auto;
}
#g_main{
  background: linear-gradient(  to right,  #fff 0%,  #fff 50%,  #fbf7ff 50%,  #fbf7ff 100%);
}

#g_main .container{
  max-width: 1480px;
  padding: 0;
}

#g_main .container img{
  width: 100%;
}
#g_catch{
  background-color: #f6eefe;
  background-image: linear-gradient(#e9e1f4 1px, transparent 1px), linear-gradient(90deg, #e9e1f4 1px, transparent 1px);
  background-size: 20px 20px;
  border-top: solid 1px #9756af;
  border-bottom: solid 1px #9756af;
  padding-top: 80px;
  padding-bottom: 80px;
}
#g_catch h2 img{
  margin: auto;
}
#g_catch .container > p{
  font-size: 24px;
  margin-top: 30px;
  text-align: center;
  font-weight: 500;
}
#g_catch .container ul{
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#g_catch .container ul li{
  padding: 30px 25px;
  width: 32%;
  background:#fff;
  border-radius: 20px;
}
#g_catch .container ul li h3{
  font-size: 24px;
  text-align: center;
  font-weight: 500;
  color: #9756af;
}
#g_catch .container ul li p{
  font-size: 15px;
  margin-top: 30px;
  text-align: center;
  font-weight: 400;
}
#g_catch .container ul li img{
  margin: 30px auto 0 auto;
}
#g_catch .container .attend{
  font-size: 12px;
  text-align: right;
  margin-top: 15px;
}

#g_guide{
  background: #fbf7ff;
  padding: 80px 0;
}
#g_guide h2 img{
  margin: auto;
}
#g_guide .container > p{
  font-size: 24px;
  margin-top: 30px;
  text-align: center;
  font-weight: 500;
}
#g_guide article{
  margin-top: 50px;
}

.admission-block {
	--theme-color: #9852b4;
	--theme-light: #f6eefa;
	padding: 20px 30px 30px 20px;
	color: #485961;
	background: #fff;
}
.admission-detail{
  width: 470px;
}
.admission-block__main {
	display: flex;
  justify-content: space-between;
  gap: 30px;
}

.admission-title {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0;
	color: var(--theme-color);
	font-size: 37px;
	line-height: 1.2;
}

.admission-title small{
  font-size: 24px;
}
.admission-number {
	display: grid;
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	color: #fff;
	font-size: 28px;
	border-radius: 10px;
	background: var(--theme-color);
	place-items: center;
}

.admission-capacity {
	margin: 30px 0 50px 70px;
}

.admission-capacity span {
	display: block;
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 500;
}

.admission-capacity strong {
	color: var(--theme-color);
	font-size: 37px;
	line-height: 1;
}

.admission-capacity strong small {
	font-size: 24px;
  color: #485961;
}

.recommend-title {
	width: 340px;
	margin: 0 0 20px 30px;
	padding: 10px 20px;
	color: #fff;
	font-size: 24px;
	text-align: center;
	border-radius: 50px;
	background: var(--theme-color);
  line-height: 1;
}

.recommend-list {
	margin: 0 0 0 30px;
	padding: 0;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.4;
	list-style: none;
}

.recommend-list li {
	position: relative;
	padding-left: 20px;
  margin-top:10px;
}

.recommend-list li:first-child {
  margin-top: 0;
}

.recommend-list li::before {
	position: absolute;
	top: 13px;
	left: 0;
	background-color: var(--theme-color);
	content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.detail-group + .detail-group {
	margin-top: 30px;
}

.detail-group h3 {
	margin: 20px 0 20px;
	color: var(--theme-color);
	font-size: 24px;
}

.detail-table {
	width: 100%;
	border-spacing: 0;
	border-collapse: collapse;
	font-size: 15px;
	font-weight: 500;
	background: #fff;
}

.detail-table th,
.detail-table td {
	height: 50px;
	padding: 10px 14px;
	border: 1px solid #d5d0d7;
	text-align: left;
	vertical-align: middle;
}

.detail-table th {
	width: 28%;
	text-align: center;
	background: var(--theme-light);
}

.detail-table td small {
	font-size: 10px;
}

.admission-point {
	padding: 0 20px 20px;
	border-radius: 20px;
	background: var(--theme-light);
	overflow: hidden;
  margin-top: 50px;
}

.point-heading {
	margin: 0 -20px 20px;
	padding: 15px 20px;
	color: #fff;
	font-size: 24px;
	text-align: center;
	background: var(--theme-color);
  line-height: 1;
}

.point-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.point-card {
	min-height: 380px;
	padding: 35px 30px 25px;
	border: 1px solid #ccc;
	background: #fff;
}

.point-card h4 {
	margin: 0 0 25px;
	color: var(--theme-color);
	font-size: 24px;
	text-align: center;
}

.point-card p {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
}

.point-card__section {
	margin-top: 35px;
	padding-top: 25px;
	border-top: 1px solid var(--theme-color);
	text-align: center;
}

.point-card__section h5 {
	margin: 0 0 15px;
	color: var(--theme-color);
	font-size: 19px;
}

.point-card__section ul {
	display: inline-block;
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
	text-align: left;
	list-style: none;
}

.point-card__section li {
	position: relative;
	padding-left: 15px;
}

.point-card__section li::before {
	position: absolute;
  top: 10px;
	left: 0;
	background-color: var(--theme-color);
	content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.point-note {
	margin-top: 8px !important;
	font-size: 11px !important;
	text-align: center;
}
.admission-block.is-pink {
	--theme-color: #e653a7;
	--theme-light: #fceaf6;
}

.admission-block.is-blue {
	--theme-color: #40aaf4;
	--theme-light: #e5f5ff;
}

.admission-capacity strong.is-text {
	font-size: 28px;
}

.admission-block.is-green {
	--theme-color: #59c654;
	--theme-light: #e8f8e6;
}

.admission-block.is-green .recommend-title{
  margin-top: 30px;
}

.general-header {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	min-height: 290px;
}

.general-summary {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.general-capacity {
	text-align: right;
}

.general-capacity > span {
	display: block;
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 500;
}

.general-capacity p {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 10px;
	margin: 0;
	font-size: 15px;
	font-weight: 500;
}

.general-capacity strong {
	color: var(--theme-color);
	font-size: 38px;
	line-height: 1;
}

.general-capacity strong small {
	margin-left: 3px;
	color: #485961;
	font-size: 21px;
}

.general-period {
	width: 100%;
	margin-top: auto;
}

.general-period th {
	width: 29%;
}

.examination-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
  margin-top: 30px;
}

.examination-title {
	margin: 0 0 15px;
	color: var(--theme-color);
	font-size: 23px;
}

.examination-title small {
	font-size: inherit;
}

.examination-table th,
.examination-table td {
	height: 50px;
}

.examination-table th {
	min-width: 100px;
}

.examination-table th:nth-child(2) {
	background: var(--theme-light);
}

.examination-table td small {
	font-size: 12px;
}

.examination-table td small.small {
	font-size: 10px;
}

.admission-block.is-turquoise {
	--theme-color: #35b3ae;
	--theme-light: #e2f7f5;
}
.admission-block.is-turquoise .recommend-title{
  margin-top: 30px;
}

.admission-block--common {
	max-width: 1000px;
}

.common-header {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	min-height: 265px;
}

.common-info .admission-title {
	white-space: nowrap;
}

.common-summary {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.common-capacity {
	display: flex;
	align-items: baseline;
	gap: 10px;
	text-align: right;
}

.common-capacity span {
	font-size: 14px;
	font-weight: 500;
}

.common-capacity strong {
	color: var(--theme-color);
	font-size: 38px;
	line-height: 1;
}

.common-capacity strong small {
	margin-left: 3px;
	color: #485961;
	font-size: 21px;
}

.common-period {
	width: 100%;
	margin-top: auto;
}

.common-period th {
	width: 29%;
}

.common-examination {
	margin-top: 20px;
}

.examination-title {
	margin: 0 0 15px;
	color: var(--theme-color);
	font-size: 23px;
}

.examination-title small {
	font-size: inherit;
}

.common-examination-table th,
.common-examination-table td {
	height: 50px;
}

.common-examination-table thead th {
	background: var(--theme-light);
	text-align: center;
}

.common-examination-table thead th:first-child {
	width: 14%;
}

.common-examination-table thead th:nth-child(2),
.common-examination-table thead th:nth-child(3) {
	width: 43%;
}

.common-examination-table tbody th {
	width: 14%;
	background: var(--theme-light);
}

.common-examination-table td {
	font-weight: 500;
}

.common-examination-table .has-center {
	text-align: center;
}

.secondary-examination {
	width: 57%;
	margin-top: 30px;
}

.secondary-table th {
	width: 25%;
}

.secondary-table th,
.secondary-table td {
	height: 50px;
}
.admission-block.is-orange {
	--theme-color: #fa7f4c;
	--theme-light: #fff1e6;
}
.admission-block.is-orange .recommend-title{
  margin-top: 30px;
}

.common-test-header {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	min-height: 265px;
}

.common-test-info .admission-title {
	white-space: nowrap;
}

.common-test-summary {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.common-test-capacity {
	text-align: right;
}

.common-test-capacity p {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.7;
}

.common-test-capacity > div {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 10px;
}

.common-test-capacity span {
	font-size: 14px;
	font-weight: 500;
}

.common-test-capacity strong {
	color: var(--theme-color);
	font-size: 38px;
	line-height: 1;
}

.common-test-capacity strong small {
	margin-left: 3px;
	color: #485961;
	font-size: 21px;
}

.common-test-period {
	width: 100%;
	margin-top: auto;
}

.common-test-period th {
	width: 29%;
}

.common-test-table th {
	width: 29%;
}

.common-test-table th,
.common-test-table td {
	height: 50px;
}

#g_voice{
  background-color: #f6eefe;
  background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px);
  background-size: 20px 20px;
  border-top: solid 1px #9756af;
  border-bottom: solid 1px #9756af;
  padding-top: 80px;
  padding-bottom: 80px;
}
#g_voice h2 img{
  margin: auto;
}
#g_voice .container > p{
  font-size: 24px;
  margin-top: 30px;
  text-align: center;
  font-weight: 500;
}
#g_voice .container ul{
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#g_voice .container ul li{
  padding: 30px 15px;
  width: 32%;
  background:#fff;
}
#g_voice .container ul li h3{
  font-size: 24px;
  font-weight: 500;
  color: #9756af;
}
#g_voice .container ul li p{
  font-size: 15px;
  margin-top: 30px;
  font-weight: 400;
}
#g_voice .container ul li small{
  display: block;
  text-align: right;
  margin-top: 20px;
}
#information-detail {
	padding: 70px 20px 80px;
	color: #485961;
	background: #f6eeff;
}
#information-detail h2 img{
  margin: auto;
}

.information-detail__inner {
	max-width: 1000px;
	margin: 0 auto;
}


.information-detail__lead {
  font-size: 24px;
  margin-top: 30px;
  text-align: center;
  font-weight: 500;
}

.information-detail__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
  margin-top: 40px;
}

.information-card {
	min-width: 0;
	padding: 35px 30px 30px;
	background: #fff;
}

.information-card__title {
	margin: 0 0 12px;
	color: #9850b2;
	font-size: 24px;
	line-height: 1.5;
	text-align: center;
}

.information-card__content {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	gap: 30px;
	align-items: center;
  min-height: 185px;
}

.information-card__image img {
  margin: auto;
}

.information-card__body p {
	margin: 0 0 35px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
}

.information-card__button {
	display: block;
	width: 200px;
	max-width: 100%;
	margin: 0 auto;
	padding: 11px 15px;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	border-radius: 50px;
	background: #9850b2;
	transition:
		opacity 0.3s,
		transform 0.3s;
}

.information-card__button:hover {
	opacity: 0.8;
	transform: translateY(-2px);
	color: #fff;
}


/* 右側カード
----------------------------------- */
.information-card:nth-child(2) .information-card__content {
	grid-template-columns: 140px minmax(0, 1fr);
}

.information-card:nth-child(2) .information-card__body p {
	margin-bottom: 35px;
}




#lp-cta{
  background: #f6eeff;
  display: block;
}
.lp_cta_area > .lp-cta__item:first-child{
  justify-content: flex-start;
}
.pagetop{
  background: #f6eeff;
}

footer{
  background: #f6eeff;
}

@media screen and (max-width: 999px) {
  .recommend-list{
    font-size: 18px;
  }
  #g_catch .container > p,
  #g_guide .container > p,
  #g_voice .container > p,
  .information-detail__lead{
    font-size: 20px;
  }
  .admission-title small {
    display: block;
  }
  .information-card__content{
    display: block;
  }
  .information-card__body p{
    margin-top: 30px;
  }
  .information-card__title{
    font-size: 19px;
  }
  .information-card__image{
    min-height: 180px;
    display: flex;
    align-items: center;
  }
}

@media screen and (max-width: 767px) {
  .admission-detail{
    width: 100%;
  }
  #g_catch{
    padding: 40px 0 60px 0;
  }
  #g_catch .container > p,
  #g_guide .container > p{
    font-size: 16px;
    margin-top: 15px;
  }
  #g_catch .container ul{
    margin-top: 30px;
  }
  #g_catch .container ul li{
    width: 100%;
  }
  #g_catch .container ul li + li{
    margin-top: 15px;
  }
  #g_catch .container ul li h3{
    font-size: 16px;
  }
  #g_catch .container ul li p{
    font-size: 14px;
    margin-top: 15px;
  }
  #g_catch .container .attend{
    font-size: 11px;
  }
  #g_guide{
    padding: 40px 0 60px 0;
  }
  #g_guide article{
    margin-top: 30px;
  }
	.admission-block {
		padding: 20px 15px;
	}

	.admission-block__main {
		display: block;
		min-height: auto;
	}

	.admission-title {
		gap: 10px;
		font-size: 20px;
	}
  

	.admission-number {
		flex-basis: 35px;
		width: 35px;
		height: 35px;
		font-size: 24px;
		border-radius: 7px;
	}

	.admission-capacity {
		margin: 15px 0 20px 0;
	}
  .admission-capacity span{
    display: inline;
    margin-right: 10px;
  }

	.recommend-title {
		width: 280px;
		margin: auto;
		font-size: 16px;
	}

	.recommend-list {
		margin-left: 40px;
		font-size: 16px;
    margin-top: 15px;
	}
  .recommend-list li::before{
    top: 7px;
  }

	.admission-detail {
		margin-top: 30px;
	}
  .detail-group + .detail-group{
    margin-top: 20px;
  }
  .detail-group + .detail-group h3{
    margin-top: 0;
  }

	.detail-group h3 {
		font-size: 20px;
    margin: 30px 0 15px;
	}

	.detail-table {
		font-size: 14px;
	}
	.detail-table.sp_only {
		display: table !important;
	}
  .detail-table td small{
		font-size: 11px;
    display: block;
  }

	.detail-table th,
	.detail-table td {
		height: auto;
		padding: 10px 7px;
	}

	.detail-table th {
		width: 33%;
	}

	.point-grid {
		grid-template-columns: 1fr;
	}
  .admission-point{
    margin-top:30px;
  }
  .point-heading{
    font-size: 16px;
  }

	.point-card {
		min-height: auto;
		padding: 20px 18px;
	}

	.point-card h4 {
		font-size: 16px;
    margin-bottom: 20px;
	}
	.general-header,
	.examination-grid {
		grid-template-columns: 1fr;
	}
  .point-card__section{
    margin-top: 20px;
    padding-top: 20px;
  }
  .admission-title small {
    display: inline;
    font-size: 20px;
  }
  .admission-capacity strong{
    font-size: 27px;
  }
  .admission-capacity strong small{
    font-size: 16px;
  }
  .admission-capacity strong.is-text{
    font-size: 20px;
  }
	.general-header {
		min-height: auto;
	}

	.general-summary {
		display: block;
		margin-top: 30px;
	}

	.general-capacity {
		margin-bottom: 25px;
		margin-top: 15px;
    text-align: left;
	}
  .general-capacity strong{
    font-size: 27px;
  }
  .general-capacity p{
    display: block;
  }
  .general-capacity span{
    display: block;
  }
  .general-capacity strong small{
    font-size: 16px;
  }

	.examination-grid {
		gap: 30px;
		margin-top: 30px;
	}

	.examination-title {
		font-size: 19px;
	}

	.examination-title small {
		display: inline;
		font-size: 15px;
	}

	.examination-table th {
		min-width: 70px;
	}

	.examination-table th.sm {
		width: 70px;
	}

	.general-info .recommend-title {
		margin-top: 30px;
	}
	.common-header {
		display: block;
		min-height: auto;
	}

	.common-info .admission-title {
		white-space: normal;
	}

	.common-info .admission-title > span:last-child {
		display: block;
	}

	.common-info .admission-title small {
		display: block;
		margin: 3px 0 0;
		font-size: 14px;
	}

	.common-info .recommend-title {
		margin-top: 30px;
	}

	.common-summary {
		display: block;
		margin-top: 30px;
	}

	.common-capacity {
		justify-content: flex-end;
		margin-bottom: 25px;
    margin-top: 15px;
    text-align: left;
	}
  .common-capacity strong{
    font-size: 27px;
  }
  .common-capacity strong small{
    font-size: 16px;
  }

	.common-examination {
		margin-top: 30px;
		overflow-x: auto;
	}

	.common-examination-table {
		min-width: 500px;
	}

	.secondary-examination {
		width: 100%;
		margin-top: 30px;
	}

	.secondary-table th {
		width: 30%;
	}
	.common-test-header {
		display: block;
		min-height: auto;
	}

	.common-test-info .admission-title {
		white-space: normal;
	}

	.common-test-info .admission-title > span:last-child {
		display: block;
	}

	.common-test-info .admission-title small {
		display: block;
		margin: 4px 0 0;
		font-size: 14px;
	}

	.common-test-info .recommend-title {
		margin-top: 30px;
	}

	.common-test-summary {
		display: block;
		margin-top: 30px;
	}

	.common-test-capacity {
    margin-top: 15px;
    margin-bottom: 25px;
    text-align: left;
	}
  .common-test-capacity strong{
    font-size: 27px;
  }
  .common-test-capacity strong small{
    font-size: 16px;
  }

	.common-test-capacity p {
		font-size: 13px;
	}

	.common-test-table th {
		width: 30%;
	}
  #g_voice{
    padding: 40px 0 60px 0;
  }
  #g_voice .container > p{
    font-size: 16px;
    margin-top: 15px;
  }
  #g_voice .container ul{
    margin-top: 30px;
    display: block;
  }
  #g_voice .container ul li{
    width: 100%;
  }
  #g_voice .container ul li + li{
    margin-top: 30px;
  }
  #information-detail {
		padding: 60px 20px 40px;
	}
  #g_voice .container ul li p{
    margin-top: 15px;
  }
  #g_voice .container ul li small{
    margin-top: 10px;
  }

	.information-detail__lead {
    font-size: 16px;
    margin-top: 15px;
	}

	.information-detail__list {
		grid-template-columns: 1fr;
	}

	.information-card {
		padding: 28px 20px;
	}

	.information-card__title {
		margin-bottom: 25px;
		font-size: 19px;
	}


	.information-card__body p {
		margin-bottom: 25px;
		font-size: 13px;
	}

	.information-card__button {
		width: 100%;
		font-size: 13px;
	}

	.information-card__image {
    min-height: unset;
  }

}




/* ========================================
	入試日程カレンダー
======================================== */

#schedule-calendar {
	padding: 80px 0 35px;
	background: #fcf7ff;
	border-top: solid 1px #9756af;
  border-bottom: solid 1px #9756af;
}

#schedule-calendar .container {
	width: calc(100% - 40px);
	max-width: 1000px;
	margin: 0 auto;
  padding-right: 0;
}

.schedule-calendar__inner {
	width: 100%;
}

.schedule-calendar__title {
	width: 380px;
	max-width: 80%;
	margin: 0 auto 30px;
	padding: 0;
	text-align: center;
}

.schedule-calendar__title img {
	display: block;
	width: 100%;
	height: auto;
}


/* ========================================
	凡例
======================================== */

.schedule-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 15px 35px;
	margin: 0 0 55px;
	padding: 0;
	color: #9850b2;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.4;
	list-style: none;
}

.schedule-calendar__legend li {
	display: flex;
	align-items: center;
	gap: 9px;
}

.schedule-calendar__legend li::before {
	display: block;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	content: "";
}

.schedule-calendar__legend .is-deadline::before {
	background: #40aaf4;
}

.schedule-calendar__legend .is-exam::before {
	background: #9850b2;
}

.schedule-calendar__legend .is-result::before {
	background: #e34fa7;
}


/* ========================================
	横スクロールエリア

	左端はcontainerに揃え、
	右側だけ画面端まで広げる
======================================== */

.schedule-calendar__scroll {
	width: auto;
	margin-right: calc(50% - 50vw);
	padding: 0;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: #9850b2 #eee5f1;
	scrollbar-width: thin;
}

.schedule-calendar__scroll::-webkit-scrollbar {
	height: 10px;
}

.schedule-calendar__scroll::-webkit-scrollbar-track {
	background: #eee5f1;
}

.schedule-calendar__scroll::-webkit-scrollbar-thumb {
	border: 2px solid #eee5f1;
	border-radius: 10px;
	background: #9850b2;
}


/* ========================================
	テーブル
======================================== */

.schedule-table {
	width: 1315px;
	min-width: 1315px;
	margin: 0;
	border-spacing: 0;
	border-collapse: separate;
	table-layout: fixed;
	color: #485961;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	background: #fff;
}

.schedule-table th,
.schedule-table td {
	height: 80px;
	padding: 15px 20px;
	border-right: 1px solid #d3ced6;
	border-bottom: 1px solid #d3ced6;
	text-align: left;
	vertical-align: middle;
}

.schedule-table thead th {
	height: 70px;
	padding: 12px 15px;
	color: #9850b2;
	font-size: 24px;
	text-align: center;
	background: #f4eafb;
	border-top: 1px solid #d3ced6;
}

.schedule-table th:first-child {
	border-left: 1px solid #d3ced6;
}


/* 各列の横幅 */
.schedule-table thead th:nth-child(1) {
	width: 285px;
}

.schedule-table thead th:nth-child(2) {
	width: 120px;
}

.schedule-table thead th:nth-child(3) {
	width: 120px;
}

.schedule-table thead th:nth-child(4) {
	width: 120px;
}

.schedule-table thead th:nth-child(5) {
	width: 120px;
}

.schedule-table thead th:nth-child(6) {
	width: 215px;
}

.schedule-table thead th:nth-child(7) {
	width: 215px;
}

.schedule-table thead th:nth-child(8) {
	width: 120px;
}


/* 行ごとの高さ */
.schedule-table tbody tr:nth-child(1) th,
.schedule-table tbody tr:nth-child(1) td,
.schedule-table tbody tr:nth-child(2) th,
.schedule-table tbody tr:nth-child(2) td,
.schedule-table tbody tr:nth-child(3) th,
.schedule-table tbody tr:nth-child(3) td {
	height: 80px;
}

.schedule-table tbody tr:nth-child(4) th,
.schedule-table tbody tr:nth-child(4) td,
.schedule-table tbody tr:nth-child(5) th,
.schedule-table tbody tr:nth-child(5) td {
	height: 140px;
}

.schedule-table tbody tr:nth-child(6) th,
.schedule-table tbody tr:nth-child(6) td,
.schedule-table tbody tr:nth-child(7) th,
.schedule-table tbody tr:nth-child(7) td {
	height: 110px;
}


/* ========================================
	一番左の固定列
======================================== */

.schedule-table__fixed {
	position: sticky;
	left: 0;
	z-index: 2;
	width: 285px;
	min-width: 285px;
	max-width: 285px;
	color: #9850b2;
	font-size: 24px;
	line-height: 1.5;
	background: #f4eafb;
}

.schedule-table thead .schedule-table__fixed {
	z-index: 4;
	background: #f4eafb;
}

.schedule-table tbody .schedule-table__fixed {
	text-align: left;
}

/* 固定列に含まれる補足 */
.schedule-table__fixed small {
	font-size: 15px;
	line-height: 1.5;
}
.schedule-table__fixed span {
  display: block;
	font-size: 15px;
	line-height: 1.5;
}

/* 固定列の右側の影 */
.schedule-table__fixed::after {
	position: absolute;
	top: 0;
	right: -8px;
	bottom: 0;
	width: 8px;
	pointer-events: none;
	background: linear-gradient(
		to right,
		rgba(67, 41, 76, 0.12),
		rgba(67, 41, 76, 0)
	);
	content: "";
}


/* ========================================
	日付
======================================== */

.schedule-date {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	line-height: 1.5;
	white-space: nowrap;
  font-size: 15px;
}

.schedule-date + .schedule-date {
	margin-top: 7px;
}

.schedule-date::before {
	display: block;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	border-radius: 50%;
	content: "";
}

.schedule-date.is-deadline::before {
	background: #40aaf4;
}

.schedule-date.is-exam::before {
	background: #9850b2;
}

.schedule-date.is-result::before {
	background: #e34fa7;
}

.schedule-date small {
	display: block;
	font-size: 12px;
	line-height: 1.4;
	white-space: normal;
}

.schedule-calendar__scroll {
	cursor: grab;
	user-select: none;
}

.schedule-calendar__scroll.is-dragging {
	cursor: grabbing;
}
.schedule-calendar__scroll {
	overflow-x: auto;
	overflow-y: hidden;
	cursor: grab;
	user-select: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	touch-action: pan-x pan-y;
}

.schedule-calendar__scroll.is-dragging {
	cursor: grabbing;
}

.schedule-calendar__scroll,
.schedule-calendar__scroll * {
	-webkit-user-drag: none;
}

.schedule-calendar__scroll img {
	pointer-events: none;
}
/* ========================================
	注釈
======================================== */

.schedule-calendar__note {
	margin: 12px 0 0;
	padding: 0;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.5;
	text-align: right;
}


/* ========================================
	タブレット
======================================== */

@media screen and (max-width: 1100px) {
	.schedule-calendar__scroll {
		margin-right: -20px;
	}

	.schedule-calendar__note {
		padding-right: 0;
	}
}


/* ========================================
	スマートフォン
======================================== */

@media screen and (max-width: 767px) {
	#schedule-calendar .container {
		width: calc(100% - 30px);
	}

	.tab_over {
		display: none !important;
	}

	.sp_only {
		display: block;
	}

	#schedule-calendar {
		padding: 45px 0 25px;
	}

	.schedule-calendar__title {
		width: 270px;
		max-width: 85%;
		margin-bottom: 20px;
	}

	.schedule-calendar__legend {
		gap: 10px 18px;
		margin-bottom: 30px;
		font-size: 14px;
	}

	.schedule-calendar__legend li {
		gap: 6px;
	}

	.schedule-calendar__legend li::before {
		width: 14px;
		height: 14px;
	}

	.schedule-calendar__scroll {
		margin-right: -15px;
		padding-bottom: 7px;
	}

	.schedule-calendar__scroll::-webkit-scrollbar {
		height: 7px;
	}

	.schedule-table {
		width: 1050px;
		min-width: 1050px;
		font-size: 12px;
	}

	.schedule-table th,
	.schedule-table td {
		height: 70px;
		padding: 12px;
	}
  .schedule-table tbody .schedule-table__fixed{
    text-align: center;
  }

	.schedule-table thead th {
		height: unset;
		padding: 10px;
		font-size: 17px;
	}

	/* スマホの各列幅 */
	.schedule-table thead th:nth-child(1) {
		width: 140px;
	}

	.schedule-table thead th:nth-child(2),
	.schedule-table thead th:nth-child(3),
	.schedule-table thead th:nth-child(4),
	.schedule-table thead th:nth-child(5),
	.schedule-table thead th:nth-child(8) {
		width: 85px;
	}

	.schedule-table thead th:nth-child(6),
	.schedule-table thead th:nth-child(7) {
		width: 180px;
	}

	.schedule-table__fixed {
		width: 140px;
		min-width: unset;
		max-width: unset;
		padding: 12px;
		font-size: 14px;
	}

	.schedule-table__fixed small {
		margin-top: 5px;
		font-size: 10px;
    display: block;
    font-size: 14px;
	}

	.schedule-table__fixed span {
		margin-top: 5px;
		font-size: 10px;
    display: block;
    font-size: 14px;
	}

	.schedule-date {
		gap: 6px;
	}

	.schedule-date + .schedule-date {
		margin-top: 5px;
	}

	.schedule-date::before {
		width: 13px;
		height: 13px;
		margin-top: 5px;
	}

	.schedule-date small {
		font-size: 10px;
	}

	.schedule-calendar__note {
		margin-top: 10px;
		font-size: 10px;
	}
  .schedule-table tbody tr:nth-child(1) th, .schedule-table tbody tr:nth-child(1) td, .schedule-table tbody tr:nth-child(2) th, .schedule-table tbody tr:nth-child(2) td, .schedule-table tbody tr:nth-child(3) th, .schedule-table tbody tr:nth-child(3) td{
    height: auto;
  }
}