
.container {
	width: 1200px;
	margin: auto;
	padding-top: 80px;
}

.btn_list {
	font-size: 14px;
	text-decoration: underline;
}

.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.row.flx_start {
	justify-content: flex-start;
}
.row.flx_end {
	justify-content: flex-end;
}
.row.center {
	justify-content: center;
}
.row.align_center {
	align-items: center;
}
.row.search {
	flex-direction: column;
	-ms-flex-direction: row;
	-moz-flex-direction: row;
	max-height: 1228px;
}
.col3 {
	width: 31%;
}
.col3_2 {
	width: 64%;
}
.col2 {
	width: 48%;
}
.col4 {
	width: 22%;
}
.mb_10 {
	margin-bottom: 10px;
}
.mb_20 {
	margin-bottom: 20px;
}
.mb_40 {
	margin-bottom: 40px;
}
.mb_80 {
	margin-bottom: 80px;
}


/* 申し込みフォーム ------------------------------- */
.form_flow {
	display: flex;
	justify-content: space-between;
    border: 2px #222c78 solid;
    margin: 30px auto 30px;
}
.form_flow .step {
    width: calc(100% / 3);
    height: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
    position: relative;
}
.form_flow .step.arrow::before {
    content: "";
	display: inline-block;
	width: 16px;
	height: 44px;
	background: url(../img/form_arrow.png) left center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: -16px;
	margin-top: -22px;
	z-index: 2;
}
.form_flow .step span {
	display: block;
    font-size: 16px;
    font-weight: bold;
    color: #9e9e9f;
}
.form_flow .step.on {
    background: #e0e1e1;
}
.form_flow .step.arrow.on::before {
	background: url(../img/form_arrow_on.png) left center / contain no-repeat;
}

.form_flow .step.on span {
    color: #222c78;
}


form.request {
	border-top: 1px #000 solid;
	padding-top: 25px;
}
form.request .row {
	align-items: center;
	padding: 0 60px;
}
form.request .row.flx_start {
	justify-content: flex-start;
}
form.request .border {
	border-top: 1px #ccc solid;
	margin: 25px 0;
}
form.request .item {
	display: block;
	width: 400px;
}
form.request .item.long {
	width: auto;
	margin-right: 100px;
}
form.request .item span {
	font-size: 18px;
	font-weight: bold;
	position: relative;
}
form.request .item.required span::after {
	content: "必須";
	display: flex;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 24px;
	background: #ff0000;
	font-size: 14px;
	font-weight: normal;
	color: #fff;
	position: absolute;
	top: 50%;
	right: -60px;
	margin-top: -10px;
}
form.request .item span.small {
	display: inline-block;
	margin: 0 2px;
	font-size: 12px;
}
form.request .item span.small::after {
	display: none;
}
form.request input {
	width: calc(100% - 442px);
	height: calc(42px - 2px);
	display: flex;
	align-items: center;
	padding: 0 20px;
	font-size: 16px;
	border: 1px #666 solid;
	border-radius: 5px;
	-webkit-appearance: none;
	background: #fff;
}
form.request input::placeholder {
	font-size: 14px;
}
form.request .form_wrap {
	display: flex;
	align-items: center;
	width: calc(100% - 400px);
}

/* select */
.select {
	position: relative;
	width: calc(100% - 400px);
}
.select::before {
	content: "";
	display: block;
    width: 24px;
    height: 24px;
	background: url(../img/select.png) center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: 15px;
	margin-top: -12px;
	z-index: -1;
}
select {
	cursor: pointer;
	width: 100%;
	height: 42px;
	display: flex;
	align-items: center;
	padding: 0 20px;
	font-size: 20px;
	border: 1px #666 solid;
	border-radius: 8px;
	background: none;
}
select::-ms-expand {
    display: none;
}

/* ラジオボタン */
.btn_radio {
    display: none!important;
}
.btn_radio + label {
    padding-left: 24px;
    position: relative;
    margin-right: 15px;
	cursor: pointer;
}
.btn_radio + label::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 16px;
    height: 16px;
    border: 1px solid #999;
    border-radius: 50%;
    background: #fff;
}
.btn_radio:checked + label::before {
    background: #222c78;
}
.btn_radio:checked + label::after {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 6px;
    left: 6px;
}

/* チェックボタン */
.btn_check {
    display: none!important;
}
.btn_check + label {
    padding-left: 22px;
    position: relative;
    margin-right: 10px;
	cursor: pointer;
}
.btn_check + label::before {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 8px);
    left: 0;
    width: 16px;
    height: 16px;
    border: 1px solid #999;
    background: #fff;
}
.btn_check:checked + label::before {
    background: #222c78;
}
.btn_check:checked + label::after {
    content: "";
    display: block;
	width: 4px;
	height: 10px;
	border: 2px transparent solid;
	border-bottom: 2px #fff solid;
	border-right: 2px #fff solid;
	transform: rotate(45deg);
    position: absolute;
    top: -1px;
    left: 6px;
}

/* 名前 */
form.request input[name="name_sei"], 
form.request input[name="name_mei"],
form.request input[name="kana_sei"],
form.request input[name="kana_mei"] {
	width: calc(50% - 24px - 24px - 20px);
}
form.request input[name="name_sei"],
form.request input[name="kana_sei"] {
	margin-right: 20px;
}

/* 郵便番号 */
form.request input[name="post"] {
	width: calc(240px - 62px);
	padding: 0 20px 0 40px;
}
form.request .post {
	position: relative;
}
form.request .post::before {
	content: "〒";
	display: block;
	font-size: 16px;
	position: absolute;
	top: 50%;
	left: 20px;
	margin-top: -8px;
}
/* 都道府県 */
form.request .select.prefectures {
	width: 240px;
}
form.request .select.prefectures select {
	font-size: 16px;
}
/* 住所 */
form.request input[name="add1"], 
form.request input[name="add2"],
form.request input[name="add3"] {
	width: calc(100% - 42px - 52px);
}
/* 電話番号 */
form.request input[name="tel"] {
	width: calc(300px - 42px);
}
/* 学校名 */
form.request input[name="school"] {
	width: calc(180px - 42px);
}
form.request input[name="school2"] {
	width: calc(300px - 42px);
}
form.request input[name="school3"] {
	width: calc(100% - 42px - 150px);
}
form.request .select.level {
	width: calc(100% - 193px);
}
form.request .select.level select {
	font-size: 16px;
}
/* 学科名 */
form.request input[name="subject"] {
	width: calc(100% - 42px - 52px);
}
/* 年齢 */
form.request input[name="old"] {
	width: calc(60px - 42px);
	margin-left: 40px;
}
/* 同伴者 */
form.request input[name="family"],
form.request input[name="friend"] {
	width: calc(60px - 42px);
}
form.request input.friend {
	width: calc(220px - 42px);
}
/* 交通手段 その他 */
form.request input[name="transportation"] {
	width: calc(100% - 42px);
}

form.request .spl,
form.request .spl2,
form.request .spl3 {
	font-size: 14px;
}
form.request .spl {
	margin-right: 10px;
}
form.request .spl2 {
	margin: 0 20px 0 10px;
}
form.request .spl3 {
	margin: 0 10px 0 30px;
}
form.request .font_b {
	font-size: 18px;
	font-weight: bold;
	width: 100%;
	margin-bottom: 20px;
}
form.request .privacy {
	font-size: 16px;
	text-align: center;
	margin-bottom: 10px;
}
form.request .line {
	display: flex;
	align-items: center;
}
form.request textarea {
	width: calc(100% - 442px);
	height: calc(200px - 2px);
	padding: 0 20px;
	font-size: 16px;
	border: 1px #666 solid;
	border-radius: 5px;
	-webkit-appearance: none;
	background: #fff;
}
form.request input[name="other"] {
	width: calc(100% - 42px);
}


.btn_conf {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 360px;
	height: 46px;
	background: #666;
	font-size: 18px;
	font-weight: bold;
	color: #fff;
	margin: 20px auto 60px;
	cursor: pointer;
}

table.schedule {
	width: 100%;
	border: 1px #000 solid;
}
table.schedule tr {
	border: 1px #000 solid;
}
table.schedule th {
	vertical-align: middle;
	padding: 8px;
	width: calc(100px - 17px);
	border: 1px #000 solid;
}
table.schedule td {
	text-align: center;
	vertical-align: middle;
	padding: 8px;
	border: 1px #000 solid;
}
table.schedule td.month {
	width: calc(60px - 17px);
	font-weight: bold;
}
table.schedule td.day {
	width: calc(100px - 17px);
	text-align: right;
	font-weight: bold;
}
table.schedule td.row {
	border: none;
	align-items: center;
	padding: 8px 20px;
}
table.schedule td.row p {
	display: flex;
	align-items: center;
	width: calc(100% - 120px);
}
table.schedule td.row span {
	display: block;
}
table.schedule td.row span:first-child {
	width: 80px;
	text-align-last: justify;
	margin-right: 20px;
	font-weight: bold;
}
table.schedule td.row span:nth-child(2) {
	margin-right: 30px;
}
table.schedule td.row span.blue {
	color: #006cb8;
}
table.schedule td.row span.yellow {
	color: #d70c16;
	background: rgba(255,255,0,0.30);
}

table.schedule a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 90px;
	height: 26px;
	background: #62c1cf;
	font-size: 16px;
	color: #fff;
}
table.schedule a span {
	width: auto!important;
	margin-right: 0!important;
}
table.schedule a.disa {
	background: #b3b3b3;
	pointer-events: none;
}

table.school_expo {
	width: 100%;
	border: 1px #000 solid;
}
table.school_expo tr {
	border: 1px #000 solid;
}
table.school_expo th {
	padding: 5px 0;
	border: 1px #000 solid;
	font-weight: normal;
	font-size: 14px;
}
table.school_expo td {
	padding: 5px 10px;
	border: 1px #000 solid;
}
table.school_expo td:first-child {
	width: calc(90px - 21px);
	text-align: center;
	vertical-align: middle;
	font-weight: bold;
}
table.school_expo td:nth-child(2) {
	width: calc(130px - 21px);
	vertical-align: middle;
}
table.school_expo td .row {
	align-items: center;
}
table.school_expo td p {
	line-height: 1.4;
}
table.school_expo .btn_map {
	display: inline-block;
	background: #000;
	color: #fff;
	padding: 2px 10px;
	margin-top: 5px;
}
table.school_expo .btn_entry {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 70px;
	background: #62c1cf;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
}
table.school_expo .btn_entry.disa {
	background: #b3b3b3;
}

.select_expo {
	max-width: 680px;
	margin: 40px auto 0;
}
.select_expo .row {
	margin-bottom: 10px;
}
.select_expo .conf {
	width: 96px;
	text-align-last: justify;
	margin-right: 40px;
}
.select_expo .prefecture {
	font-size: 24px;
	font-weight: bold;
	line-height: 1;
}
.select_expo .prefecture span {
	font-size: 16px;
}
.select_expo .day {
	font-size: 24px;
	font-weight: bold;
	line-height: 1.4
}
.select_expo .day span {
	display: block;
	font-size: 16px;
	font-weight: normal;
}
.select_expo .btn_retern{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 360px;
	height: 40px;
	background: #666;
	font-size: 18px;
	color: #fff;
	margin: 40px auto;
}

.btn_link {
	display: block;
	position: relative;
	padding: 10px 0;
	border-bottom: 1px solid #000;
}
.btn_link::after {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	position: absolute;
	background: url(/ttcn2023wp/wp-content/themes/ttcn/images/common/ico_excel.png) no-repeat center center;
	background-size: contain;
	top: calc(50% - 9px);
	right: 2px;
}
.btn_link:hover {
	opacity: 1;
	color: #006cb8;
	border-bottom: 1px solid #006cb8;
}


.btn_gray {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 240px;
	height: 40px;
	background: #666;
	font-size: 18px;
	font-weight: bold;
	color: #fff;
	margin: 0 10px 20px;
}

table.border {
	width: 100%;
}
table.border th {
	width: 100px;
	font-weight: normal;
	text-align: left;
	padding: 10px 0;
	position: relative;
}
table.border tr:first-child th::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	border-top: 1px #000 solid;
	position: absolute;
	top: 0;
	left: 0;
}
table.border th::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	border-bottom: 1px #000 solid;
	position: absolute;
	left: 0;
	bottom: 0;
}
table.border td {
	padding-left: 15px;
}
table.border td p {
	padding: 10px 0;
	border-bottom: 1px #000 solid;
}
table.border tr:first-child td p {
	border-top: 1px #000 solid;
}

.icon_pdf {
	position: relative;
}

.icon_pdf::after {
	content: "";
	width: 20px;
	height: 20px;
	background: url("../images/icon_pdf.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: -30px;
	margin-top: -10px;
}

.icon_xls {
	position: relative;
}

.icon_xls::after {
	content: "";
	width: 20px;
	height: 20px;
	background: url("../images/icon_xls.png") center center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: -30px;
	margin-top: -10px;
}



.pc {
	display: inline;
}
.sp {
	display: none;
}


@media screen and (max-width : 768px) {

	.container {
		width: 100%;
		padding: 0 15px;
		padding-top: 40px;
	}
	.row.search {
		flex-direction: row;
		max-height: none;
	}
	.col3 {
		width: 100%;
		max-width: 680px;
		margin: auto;
	}
	.col2, .col3_2 {
		width: 100%;
		max-width: 480px;
		margin: auto;
	}
	.col2 .col2 {
		width: 48%;
	}
	.col4 {
		width: 48%;
	}
	.mb_20 {
		margin-bottom: 10px;
	}
	.mb_40 {
		margin-bottom: 20px;
	}
	.mb_80 {
		margin-bottom: 40px;
	}

	/* 申し込みフォーム ----------------------------------------------------------------- */
	.form_flow .step span {
	    font-size: 14px;
		margin-left: 10px;
	}
	.form_flow .step:first-child span {
		margin-left: 0;
	}
	form.request .row {
		padding: 0;
	}
	form.request .item {
		width: 100%;
		margin-bottom: 15px;
	}
	form.request .item.long {
		width: 100%;
		margin-right: 0;
	}
	form.request .item.sp_non {
		display: none;
	}
	form.request .item span {
		font-size: 16px;
	}
	form.request .item.long span {
		line-height: 1.4;
	}
	form.request .item.required span::after {
		width: 40px;
		height: 20px;
		font-size: 12px;
		right: -50px;
		margin-top: -8px;
	}
	form.request .item.long.required span::after {
		top: 5px;
		right: -200px;
		margin-top: 0;
	}
	form.request .item span.small {
		font-size: 10px;
	}

	form.request input {
		width: calc(100% - 22px);
		height: calc(36px - 2px);
		padding: 0 10px;
	}

	form.request .form_wrap {
		width: 100%;
		flex-wrap: wrap;
	}
	/* select */
	.select {
		width: 100%;
	}
	.select::before {
	    width: 20px;
	    height: 20px;
		right: 10px;
		margin-top: -10px;
	}
	select {
		height: 36px;
		padding: 0 10px;
		font-size: 18px;
	}

	/* ラジオボタン */
	.btn_radio + label {
	    margin: 0 15px 0 0;
		line-height: 1.2;
	}
	/* チェックボタン */
	.btn_check + label {
	    margin: 0 15px 0 0;
	}
	/* 名前 */
	form.request input[name="name_sei"], 
	form.request input[name="name_mei"],
	form.request input[name="kana_sei"],
	form.request input[name="kana_mei"] {
		width: calc(50% - 50px);
	}
	form.request input[name="name_sei"],
	form.request input[name="kana_sei"] {
		margin-right: 10px;
	}
	/* 郵便番号 */
	form.request input[name="post"] {
		width: calc(240px - 42px);
		padding: 0 10px 0 30px;
	}
	form.request .post::before {
		left: 10px;
	}
	/* 住所 */
	form.request input[name="add1"], 
	form.request input[name="add2"],
	form.request input[name="add3"] {
		width: calc(100% - 22px - 46px);
	}	
	/* 電話番号 */
	form.request input[name="tel"] {
		width: calc(100% - 22px);
	}
	/* 学校名 */
	form.request input[name="school"] {
		width: calc(100% - 22px - 68px);
		margin-bottom: 10px;
	}
	form.request input[name="school2"] {
		width: calc(100% - 22px - 58px);
	}
	form.request input[name="school3"] {
		width: calc(100% - 22px);
		margin-top: 8px;
	}
	form.request .select.level {
		width: 100%;
		margin-top: 8px;
	}
	/* 学科名 */
	form.request input[name="subject"] {
		width: calc(100% - 22px - 46px);
	}
	/* 年齢 */
	form.request input[name="old"] {
		margin-left: 0;
	}
	form.request .note {
		font-size: 12px;
	}
	form.request .spl,
	form.request .spl2,
	form.request .spl3 {
		font-size: 12px;
	}
	form.request .spl2 {
		margin: 0 0 0 10px;
	}
	form.request .spl3 {
		margin: 0 10px 0 25px;
	}
	form.request .privacy {
		font-size: 14px;
	}
	form.request .line {
		width: 100%;
		margin-top: 10px;
	}
	form.request textarea {
		width: calc(100% - 22px);
		height: calc(160px - 2px);
		padding: 0 10px;
	}
	form.request input[name="other"] {
		width: calc(100% - 22px);
	}
	.btn_conf {
		width: 100%;
	}

}

.dlbtn{
	display: flex;
	justify-content: center;
	gap: 0 20px;
	margin-top: 60px;
	margin-bottom: 40px;
}
.dlbtn > div{
	width: calc(50% - 10px);
	max-width: 250px;
	margin-bottom: 10px;
}
@media screen and (max-width : 768px) {

	.dlbtn{
		display: block;
	}
	.dlbtn > div{
		width: 100%;
		margin-inline: auto;
	}
}

.w360{
	max-width: 360px;
	margin: auto;
}