@charset "utf-8";

/* -------------------------------------------------------------------------*/
/* CUSTOM PROPERTIES
/* -------------------------------------------------------------------------*/
:root{
    /* COLOR */
	--color_1         : #063083;
    --color_text      : #333;
	--color_features  : #1d9a3b;
	--color_access    : #f02946;
	--color_program   : #0096dd;

	--color_link   : #007eb9;


    /* FONT */
    --font_jp: 'Noto Sans JP', 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'BIZ UDPGothic', Meiryo, sans-serif;
    --font_en: 'Urbanist', 'Noto Sans JP', sans-serif;

    --font_size-14: clamp(0.75rem, 0.625rem + 0.33vw, 0.875rem);
    --font_size-16: clamp(0.875rem, 0.75rem + 0.33vw, 1rem);
    --font_size-17: clamp(0.938rem, 0.813rem + 0.33vw, 1.063rem);
    --font_size-18: clamp(1rem, 0.875rem + 0.33vw, 1.125rem);
    --font_size-20: clamp(1.125rem, 1rem + 0.33vw, 1.25rem);
    --font_size-22: clamp(1.125rem, 0.875rem + 0.67vw, 1.375rem);
    --font_size-24: clamp(1.375rem, 1.25rem + 0.33vw, 1.5rem);
    --font_size-28: clamp(1.625rem, 1.5rem + 0.33vw, 1.75rem);
    --font_size-32: clamp(1.5rem, 1rem + 1.33vw, 2rem);
    --font_size-36: clamp(1.875rem, 1.5rem + 1vw, 2.25rem);
    --font_size-38: clamp(1.75rem, 1.125rem + 1.67vw, 2.375rem);
    --font_size-40: clamp(2.25rem, 2rem + 0.67vw, 2.5rem);
    --font_size-45: clamp(2.5rem, 2.188rem + 0.83vw, 2.813rem);
    --font_size-55: clamp(2.813rem, 2.188rem + 1.67vw, 3.438rem);
    --font_size-65: clamp(2.438rem, 0.813rem + 4.33vw, 4.063rem);
    --font_size-72: clamp(3.75rem, 3rem + 2vw, 4.5rem);

}

.font-en{
	font-family: var(--font_en);
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 400;
}


.font-jp, body{
	font-family: var(--font_jp);
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}


/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* BASE
/* -------------------------------------------------------------------------*/
html {
  font-size: 100%;
  line-height: 1.8;
  font-family: sans-serif;
  color: var(--color_text);
  background-color: var(--color_background);
}

body{
    font-size: var(--font_size-16);
}

img{
    vertical-align: bottom;
}

a{
	color: var(--color_link);
}

a.a-blank::after{
	content: url(../img/ic_blank.png);
	vertical-align: top;
	margin-left: 5px;
}

.ta-C{ text-align: center;}
.ta-R{ text-align: right;}
.ta-L{ text-align-last: left;}

ul.kome{
	list-style: none;
	margin: 1rem 0;
	padding: 0;

	li{
		position: relative;
		padding: 0 0 0 30px;
		margin: 0;

		&::before{
			content: '※';
			display: block;
			position: absolute;
			left: 0;
			top: 0;
		}
	}
}

.red{
	color: #ee0f0f;
}

.font-s{ font-size: var(--font_size-14);}
.font-m{ font-size: var(--font_size-16);}

.br-sp{
	display: none;

	@media (width < 800px) {
		display: inline;

	}
}

/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* HD
/* -------------------------------------------------------------------------*/
#HD {
	padding: clamp(0.625rem, 0.402rem + 0.71vw, 0.938rem) clamp(0.938rem, 0.491rem + 1.43vw, 1.563rem);
	display: flex;
	align-items: center;

	@media (width < 400px) {
		padding: 10px;
	}
}

#JAIST-logo {
	padding-right: clamp(0.625rem, 0.402rem + 0.71vw, 0.938rem);

	img {
		width: clamp(3.75rem, 2.411rem + 4.29vw, 5.625rem);
		height: auto;
	}

	@media (width < 400px) {
		padding-right: 5px;

		img{
			width: 60px;
			height: auto;
		}
	}
}

#Site-name {
	display: inline-block;
	padding-left: clamp(0.625rem, 0.402rem + 0.71vw, 0.938rem);
	color: var(--color_1);
	border-left: 1px solid #dadde0;
	padding-bottom: 3px;
	line-height: 1;
	text-decoration: none;

	.site-name--en {
		font-size: var(--font_size-16);
		margin: 0;
		font-weight: 700;
	}

	.site-name--jp {
		font-size: clamp(0.688rem, 0.598rem + 0.29vw, 0.813rem);
		margin: clamp(0.188rem, 0.098rem + 0.29vw, 0.313rem) 0 0;
		font-weight: 500;
	}

	@media (width < 400px) {
		padding-left: 5px;
	}
}

#HD-Entry{
	position: fixed;
	z-index: 100;
	top: 0;
	right: 0;
	line-height: 1;
	transition: top 0.3s ease;

	a{
		display: block;
		padding: 20px 10px 15px;
		text-decoration: none;
		background-color: #072f84;
		text-align: center;
		transition: background 0.2s;
		border-radius: 0 0 0 5px;

		&:hover{
			background-color: #2858c2;
		}
	}

	img{
		width: 36px;
		height: auto;
		margin-bottom: 10px;
		transition: opacity 0.3s ease-in-out;
	}

	span{
		display: block;
		padding: 5px 30px 6px;
		border-radius: 5rem;
		background-color: #fff;
		color: #072f84;
	}

	body.scrolled &{
		top: -50px;

		img{
			opacity: 0;
		}
	}

	@media (width < 1000px) {
		a{
			padding: 10px;
		}

		img{
			width: 30px;
		}

		span{
			padding: 5px 20px 6px;
		}

		body.scrolled &{
			top: -40px;
		}
	}

	@media (width < 600px) {
		a{
			padding: 10px 5px;
		}

		img{
			width: 25px;
			margin-bottom: 5px;
		}

		span{
			font-size: 12px;
			padding: 3px 10px 4px;
		}

		body.scrolled &{
			top: -30px;
		}
	}
}
/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* TOP KV
/* -------------------------------------------------------------------------*/
#TP-kv{
	position: relative;
	height: 56vw;

	.tp-kv--bc img{
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	h1{
		display: none;
	}

	.tp-kv-name{
		position: absolute;
		z-index: 1;
		top: 15%;
		left: 50%;
		transform: translateX(-50%);
		width: 100%;
		max-width: 1000px;
		padding: 0 30px;
		box-sizing: border-box;

		img{
			width: auto;
			height: auto;
			max-width: 100%;
		}
	}

	.tp-kv-name-inner--1{
		position: relative;
		overflow: hidden;

		.tp-kv-name--0{
			transform: translateX(-100%);
			transition: transform 1s ease-in-out;

			body.loaded &{
				transform: translateX(0);
			}
		}

		.tp-kv-name--1,
		.tp-kv-name--2,
		.tp-kv-name--3,
		.tp-kv-name--4{
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			opacity: 0;
			transform: translateY(-50%);
			transition: opacity 0.7s ease, transform 0.7s ease;

			body.loaded &{
				transform: translateY(0);
				opacity: 1;
			}
		}

		.tp-kv-name--1{ transition-delay: 0.3s;}
		.tp-kv-name--2{ transition-delay: 0.45s;}
		.tp-kv-name--3{ transition-delay: 0.6s;}
		.tp-kv-name--4{ transition-delay: 0.8s;}
	}

	.tp-kv-name-inner--2{
		position: relative;
		opacity: 0;
		transition: opacity 0.7s ease;
		transition-delay: 1.2s;

		body.loaded &{
			opacity: 1;
		}
	}

	.tp-kv-date{
		position: absolute;
		z-index: 1;
		left: 50%;
		bottom: 15%;
		padding: 30px 40px 15px;
		border-radius: 5rem;
		white-space: nowrap;
		color: #005ca3;
		background-color: #fff;
		line-height: 1;
		transform: translateX(-50%);

		font-family: var(--font_en);
		font-optical-sizing: auto;
		font-style: normal;
		font-weight: 600;
		font-feature-settings: "palt";

		opacity: 0;
		transition: opacity 1s;
		transition-delay: 1s;

		body.loaded &{
			opacity: 1 !important;
		}

		span{
			display: inline-block;
			vertical-align: text-bottom;
			font-size: 28px;
			line-height: 28px;
			margin: 0 3px;
		}

		.date{
			font-size: 60px;
			font-weight: 700;
			transform: translateY(-25%);
		}

		.day{
			font-size: 22px;
			font-weight: 500;
		}
	}

	@media (width < 1300px) {
		.tp-kv-name{
			top: 10%;
		}

		.tp-kv-date{
			bottom: 10%;
		}
	}

	@media (width < 1000px) {
		height: 70vw;

		.tp-kv-date{
			bottom: 10%;
			padding: 22px 30px 10px;
	
			span{
				line-height: 20px;
				font-size: 20px;
			}
	
			.date{
				font-size: 40px;
			}
	
			.day{
				font-size: 18px;
			}
		}
	}

	@media (width < 600px) {
		height: 100vw;
		overflow: hidden;

		.tp-kv-name{
			padding: 0 10px;
		}

		.tp-kv-name{
			top: 12%;
		}

		.tp-kv-name-inner--2{
			margin-top: 10px;
			img{
				transform: scale(1.5);
			}
		}
	}
}
/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* CONTENT
/* -------------------------------------------------------------------------*/
#TP-message{
	margin: 0 auto;
	padding: 70px 20px 50px;
	max-width: 1000px;
	font-weight: 700;
	text-align: center;
	color: #355264;
	line-height: 1.7;
	font-size: 0;

	span{
		display: inline-block;
		font-size: var(--font_size-22);
	}

	mark {
		all: unset;
		background: none;
		color: inherit;
		font-style: inherit;
		font-weight: inherit;

		background: linear-gradient(transparent 60%, #ffff66 60%);
		background-size: 0% 100%;
		background-repeat: no-repeat;
		transition: background-size 1.5s ease;
	}

	&.anm--on mark{
		background-size: 100% 100%;
	}

	@media (width < 600px) {
		text-align: left;
		padding: 30px 15px;

		span{
			display: inline;
			font-size: 16px;
		}
	}
}

.tp-dfBlock{
	display: flex;
	gap: 40px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 50px 40px;

	.tp-dfBlock-title{
		width: 140px;
		text-align: center;
		line-height: 1;

		.tp-dfBlock-title--inner{
			position: sticky;
			top: 20px;
		}

		img{
			width: 110px;
			height: auto;
		}

		span{
			display: block;
			font-size: 13px;
			margin-top: 7px;
			font-weight: 600;
		}

		h3{
			margin: 13px 0 0;
			font-size: 24px;
			font-weight: 700;
		}
	}

	.tp-dfBlock-cnt{
		flex: 1;
		border-left: 2px solid;
		padding-left: 40px;
	}

	@media (width < 1000px) {
		gap: 20px;
		padding: 40px 20px;

		.tp-dfBlock-title{
			width: 100px;

			img{
				width: 100px;
			}

			span{
				font-size: 11px;
			}

			h3{
				font-size: 17px;
			}
		}

		.tp-dfBlock-cnt{
			padding-left: 20px;
		}
	}

	@media (width < 600px) {
		display: block;
		padding: 30px 15px;

		.tp-dfBlock-title{
			width: auto;

			img{
				width: 60px;
			}

			h3{
				margin-top: 5px;
			}
		}

		.tp-dfBlock-cnt{
			margin-top: 40px;
			padding: 0;
			border: none;
		}
	}

}

#TP-features{
	.tp-dfBlock-title{color: var(--color_features);}
	.tp-dfBlock-cnt{ border-color: #c0e5c9;}

	h5{
		margin: 0;
		display: inline-block;
	}

	ol{
		counter-reset: features-counter;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	li{
		margin: 0;
		padding: 0;
	}

	li + li{
		margin-top: 30px;
	}

	li:before {
		content: counter(features-counter);
		counter-increment: features-counter;
		margin-right: 10px;
		margin-top: -5px;
		font-size: 40px;
		vertical-align: middle;
		color: var(--color_features);
		font-weight: 700;
		vertical-align: middle;
		display: inline-block;
	}

	h5{
		margin: 0 0 15px;
		font-size: var(--font_size-20);
		font-weight: 600;
		color: var(--color_features);
		display: inline-block;
		border-bottom: 2px dotted var(--color_features);
	}

	p{
		margin: 0;
	}


	@media (width < 1000px) {
	}

	@media (width < 800px) {
		
	}

	@media (width < 600px) {
		.tp-dfBlock-title{
			padding: 20px 0;
			border-top: 4px solid var(--color_features);
			border-bottom: 2px dotted var(--color_features);
		}

		li{
			padding: 15px;
			background-color: #f9fcf2;
			border: 1px solid #dee9d8;
			border-radius: 10px;
		}

		li + li{
			margin-top: 20px;
		}

		li:before {
			display: block;
			text-align: center;
			margin: 0 0 10px;
			line-height: 1;
		}

		h5{
			display: block;
			padding-bottom: 10px;
			border-width: 1px;
			line-height: 1.5;
		}
	}
}

#TP-access{
	.tp-dfBlock-title{color: var(--color_access);}
	.tp-dfBlock-cnt{ border-color: #fbb8b8;}

	.tp-access-title{
		display: flex;
		gap: 15px;
		align-items: flex-start;

		h4{
			margin: 3px 0 0;
			font-size: var(--font_size-24);
			padding: 5px 20px 7px;
			color: #fff;
			background-color: var(--color_access);
			line-height: 1;
		}

		p{
			flex: 1;
			margin: 0;
			font-size: var(--font_size-22);
			font-weight: 600;
		}

	}

	.tp-access-list{
		list-style: none;
		margin: 2.5rem 0;
		padding: 0;
		font-size: var(--font_size-18);

		li{
			position: relative;
			margin: 0;
			padding: 0 0 0 15px;


			&::before{
				content: '';
				display: block;
				width: 7px;
				height: 7px;
				background-color: var(--color_link);
				border-radius: 100%;

				position: absolute;
				left: 0;
				top: 13px;
			}

			span{
				font-size: var(--font_size-16);
				margin-left: 15px;
			}
		}
	}

	.tp-access-btn{
		display: flex;
		gap: 30px;
		list-style: none;
		margin: 2rem 0;
		padding: 0;
		font-size: var(--font_size-18);
		font-weight: 600;

		li{
			display: flex;
			margin: 0;
			padding: 0;
			flex: 1;
			text-align: center;
			line-height: 1.5;
		}

		a{
			display: flex;
			width: 100%;
			justify-content: center;
			padding: 10px 20px;
			background-color: #fff;
			border: 1px solid var(--color_access);
			text-decoration: none;
			color: var(--color_access);
			border-radius: 5rem;
			box-shadow: 0 2px 0 var(--color_access);
			transition: background 0.2s, box-shadow 0.2s;

			&:hover{
				background-color: #ffedeb;
				box-shadow: none;
			}

			div{
				display: flex;
				gap: 15px;
				align-items: center;
			}

			p{
				margin: 0;
			}

			span.pdf{
				font-size: 14px;
				display: block;
				color: #fff;
				background-color: var(--color_access);
				padding: 3px 5px 4px;
				line-height: 1;
			}
		}

		i{
			font-style: normal;
			color: var(--color_text);
			display: block;
			font-size: var(--font_size-14);
			font-weight: 500;
		}
	}

	@media (width < 1000px) {
		.tp-access-btn{
			gap: 10px;
		}
	}

	@media (width < 800px) {
		.tp-access-btn{
			display: block;

			li + li {
				margin-top: 20px;
			}
		}
	}

	@media (width < 600px) {

		.tp-dfBlock-title{
			padding: 20px 0;
			border-top: 4px solid var(--color_access);
			border-bottom: 2px dotted var(--color_access);
		}
		
		.tp-access-title{
			display: block;

			h4{
				display: inline-block;
				margin: 0 0 10px;
			}
		}
	}
}

#TP-program{
	.tp-dfBlock-title{color: var(--color_program);}
	.tp-dfBlock-cnt{ border-color: #b2dff5;}

	.tp-program-box{
		display: flex;
		gap: 20px;
		padding: 30px 10px 30px 30px;
		border-bottom: 1px dotted #0096dd;

		&:first-child{
			border-top: 1px dotted #0096dd;
		}

		&:nth-child(odd){
			background-color: #f5fbfe;
		}
	}

	.tp-program-box-cnt {
		flex: 1;

		>p {
			margin: 0.5rem 0;
			font-size: var(--font_size-18);
		}

		.tp-program-title {
			font-size: var(--font_size-24);
			margin: 0;
			font-weight: 500;
			color: #fff;
			line-height: 1.5;

			span {
				display: inline-block;
				padding: 0 20px 2px;
				background-color: var(--color_program);
			}
		}

		.tp-program-subTitle{
			font-size: var(--font_size-18);
			margin: 0;
			font-weight: 600;
		}

		.tp-program-time {
			font-size: var(--font_size-32);
			margin: 0.5rem 0;
			font-weight: 500;
			line-height: 1.5;
		}

		.tp-program-time--m {
			font-size: var(--font_size-28);
			margin: 0.5rem 0;
			font-weight: 500;
			line-height: 1.5;

			span{
				font-size: var(--font_size-20);
			}
		}
		
		.tp-program-time--s {
			font-size: var(--font_size-24);
			margin: 0.5rem 0;
			font-weight: 500;
			line-height: 1.5;

			span{
				display: inline-block;
				margin-right: 15px;
			}
		}

		.tp-access-btn{
			text-align: center;
			margin-top: 1rem;
			
			a{
				display: inline-block;
				position: relative;
				font-size: var(--font_size-18);
				padding: 8px 40px;
				background-color: #fff;
				border: 1px solid var(--color_program);
				text-decoration: none;
				color: #007eb9;
				border-radius: 5rem;
				box-shadow: 0 2px 0 var(--color_program);
				transition: background 0.2s, box-shadow 0.2s;

				&:hover{
					background-color: #ebf7ff;
					box-shadow: none;
				}

				&::after{
					content: '';
					display: block;
					width: 10px;
					height: 10px;
					border: 2px solid var(--color_link);
					border-bottom: none;
					border-left: none;

					position: absolute;
					top: 50%;
					right: 18px;
					transform: translateY(-50%) rotate(45deg);
				}

				+ p{
					margin-top: 0.5rem;
				}
			}
		}

		.font-m{
			margin-top: 0;
			font-size: var(--font_size-16);
			margin-left: 15px;
		}
	}

	.tp-program-box-fig{
		width: 34%;
		margin: 0;
		padding: 0;

		img{
			width: auto;
			height: auto;
			max-width: 100%;
		}
	}

	.tp-program-box-3clm{
		display: flex;
		gap: 20px;
	}

	.tp-program-box--s{
		flex: 1;
		display: grid;
		grid-template-rows: 1fr auto;

		.tp-program-box--s-txt{

			.tp-program-time {
				font-size: var(--font_size-22);
				margin: 0;
				font-weight: 500;
				line-height: 1.5;
		
				span{
					display: inline-block;
					margin-right: 15px;
				}
			}

			> p{
				font-size: var(--font_size-14);
				line-height: 1.5;
			}
		}

		figure{
			margin: 0;
			padding: 0;

			img{
				width: auto;
				height: auto;
				max-width: 100%;
			}
		}


		.tp-program-title--s{
			margin: 0 0 0.8rem;
			padding: 3px 10px;
			font-size: var(--font_size-17);
			text-align: center;
			background-color: var(--color_program);
			color: #fff;
			font-weight: 500;
		}
	
	}

	.btn-talk{
		margin: 20px 0;
		font-size: 14px;
		line-height: 1.3;

		span{
			display: block;
			padding: 12px 15px;
			border: 1px solid var(--color_link);
			text-decoration: none;
			background-color: #fff;
			border-radius: 5px;
			box-shadow: 0 2px 0 var(--color_program);
			transition: background 0.2s, box-shadow 0.2s;
			cursor: pointer;
			color: var(--color_link);

			&:hover{
				background-color: #ebf7ff;
				box-shadow: none;
			}
		}
	}

	@media (width < 1000px) {
		.tp-program-box-3clm{
			flex-wrap: wrap;
			gap: 40px 10px;
		}

		.tp-program-box--s{
			flex: none;
			width: calc(50% - 5px);

			figure{
				text-align: center;

				img{
					width: 70%;
				}
			}
		}
	}

	@media (width < 800px) {
		.tp-program-box{
			display: block;
			padding: 30px 20px;
		}

		.tp-program-box-fig{
			width: auto;
			margin-top: 25px;
			text-align: center;

			img{
				width: 100%;
				max-width: 350px;
			}
		}

		.tp-program-box--s{
			figure{
				img{
					width: auto;
				}
			}
		}
	}

	@media (width < 600px) {
		.tp-program-box{
			padding: 30px 10px;
		}

		.tp-dfBlock-title{
			padding: 20px 0;
			border-top: 4px solid var(--color_program);
			border-bottom: 2px dotted var(--color_program);
		}

		.tp-program-box-cnt {
			.tp-program-title {
				font-size: 21px;
				span {
					padding: 0 10px 2px;
				}
			}
		}

		.tp-program-box-3clm{
			display: block;
		}

		.tp-program-box--s{
			width: 100%;
			padding-bottom: 30px;
			border-left: 2px solid var(--color_program);

			.tp-program-title--s{
				font-size: var(--font_size-20);
				display: inline-block;
				border-radius: 0 5rem 5rem 0;
				margin-left: -20px;
			}

			.tp-program-box--s-txt{
				padding-left: 20px;
				
				p{
					font-size: var(--font_size-18);
				}

				.tp-program-time{
					font-size: var(--font_size-24);
				}
			}

			figure{
				padding-left: 10px;

				img{
					width: 100%;
					max-width: 350px;
				}
			}
		}
	}
}

#TP-register{
	color: #fff;
	background-color: #072f84;
	padding: 30px 0;

	.tp-dfBlock-cnt{ border-color: #526ea9;}

	@media (width < 600px) {
		padding: 10px 0;
	}
}

.tp-register-btn{
	text-align: center;
	margin: 30px 0;

	a{
		display: block;
		position: relative;
		padding: 30px 50px;
		font-size: var(--font_size-22);
		background-color: #fff;
		border-radius: 5rem;
		font-weight: 600;
		color: #166bde;
		box-shadow: 0 7px 0 #7392d2;
		transition: background 0.2s, box-shadow 0.2s;

		&:hover{
			background-color: #e9fffe;
			box-shadow: none;
		}

		&::after{
			content: '';
			display: block;
			width: 15px;
			height: 15px;
			border: 2px solid #166bde;
			border-top: 0;
			border-left: none;

			position: absolute;
			right: 30px;
			top: 50%;
			transform: translateY(-50%) rotate(-45deg);
		}
	}

	p{
		font-size: var(--font_size-22);
		font-weight: 600;
		font-feature-settings: "palt";
		

		span{
			font-size: var(--font_size-28);
			color: #ffff00;
			margin: 0 5px;
		}
	}

	@media (width < 600px) {
		margin: 10px 0;
	}

}

.tp-register-info{
	margin-top: 80px;
	padding: 20px 30px 10px;
	color: var(--color_text);
	background-color: #fff;
	font-size: var(--font_size-18);

	.tp-register-info-title{
		margin: 0;
		padding-bottom: 5px;
		font-size: var(--font_size-20);
		color: #072f84;
		font-weight: 600;
		border-bottom: 1px dotted;
	}
}
/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* FT
/* -------------------------------------------------------------------------*/
#TP_btn{
    position: fixed;
    right: -100px;
    bottom: 20px;
    z-index: 1000;
    transition: right 0.4s ease;


    body.scrolled &{
        right: 20px;
    }

    p{
		font-size: 12px;
        display: block;
        background-color: #000;
        color: #fff;
        line-height: 1;
        padding: 10px;
        opacity: 0.5;
        border-radius: 5px;
        text-decoration: none;
        transition: opacity 0.2s ease;
        cursor: pointer;

        &::before {
            content: '';
            display: block;
            margin: 0 auto 10px;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 0 5px 8.7px 5px;
            border-color: transparent transparent #fff transparent;
        }

        &:hover{
            opacity: 1;
        }
    }

    @media (width < 600px) {
        p{
            span{
                display: none;
            }
        }
    }
}

#FT-bnr{
	max-width: 1260px;
	margin: 0 auto;
	padding: 50px 30px;
	text-align: center;

	ul{
		list-style: none;
		margin: 0;
		padding: 0;
		font-size: 0;
	}

	li{
		display: inline-block;
		width: 350px;
		margin: 10px;

		a{
			display: block;
		}

		img{
			width: auto;
			height: auto;
			max-width: 100%;
		}
	}

	@media (width < 600px) {
		li{
			display: block;
			width: auto;

			img{
				width: 100%;
				max-width: 350px;
			}
		}
	}
}

#FT{
	margin-top: 20px;
	text-align: center;
	border-top: 5px solid #e9e9e9;
	padding-top: 30px;

	address{
		font-size: 15px;
		font-style: normal;
	}

	h1{
		font-size: var(--font_size-20);
		margin: 0;

		img{
			width: 80px;
			margin-bottom: 10px;
		}

		a{
			color: var(--color_text);
			text-decoration: none;

			&:hover{
				text-decoration: underline;
			}
		}
	}

	p{
		margin: 0;
	}

	.copyright {
		font-size: 14px;
		font-size: 0.875rem;
		margin: 2rem 0 0;
		padding: 2rem 2rem 90px;
		text-align: right;
		background-color: #e9e9e9;
		color: #7e7e7e;
		line-height: 1.2;
	}

	&.ft-page{
		margin-top: 0;
	}

	@media (width < 600px) {
		margin-top: 0;
	}

}
/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* CNT
/* -------------------------------------------------------------------------*/
#CNT.cnt-page{
	border-top: 5px solid #072f84;
	padding: 50px 20px;

	h2{
		font-size: var(--font_size-24);
		font-weight: 700;

        margin: 0 0 3rem;
        padding-bottom: 40px;
        color: var(--color_1);
        border-bottom: 2px solid;
        line-height: 1.5;
    }

	@media (width < 600px) {
		padding: 30px 15px;

		h2{
			font-size: 18px;
            padding-bottom: 20px;
        }
	}
}

.cnt-inner{
	max-width: 1200px;
	margin: 0 auto;
}

#INT_pageLink{
    margin-top: 3rem;
    text-align: center;

    ul{
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    li{
        flex: 1;
        margin: 0;
        padding: 0;
		font-weight: 600;

        &:nth-child(1){ margin-right: 5px;}
        &:nth-child(2){ margin-left: 5px;}

        a{
            display: block;
            text-decoration: none;
            padding: 15px 5px;
            background-color: #ebebeb;
            border: 1px solid #c9c9c9;
            color: #007ef5;
            transition: background 0.2s ease;

            &:hover{
                background-color: #caebff;
                border-color: #2baeff;
            }

            &::before{
                content: '';
                display: inline-block;
                vertical-align: middle;
                margin-right: 8px;

                width: 0;
                height: 0;
                border-style: solid;
                border-width: 7.8px 4.5px 0 4.5px;
                border-color: #518abe transparent transparent transparent;
            }
        }
    }


    @media (width < 600px) {
        ul{
            display: block;
        }

        li{
            margin: 5px 0 !important;
        }
    }
}

.interview_block{
    padding: 3rem 0;

    h3{
		font-size: var(--font_size-22);
        margin: 0 0 2rem;
        padding-top: 2rem;
        border-top: 1px dotted #a0a0a0;
		font-weight: 700;

        &::before{
            content: '';
            display: inline-block;
            width: 20px;
            height: 20px;
            margin-right: 10px;
            border-radius: 100%;
            background-color:var(--color_program);
        }
    }

    @media (width < 600px) {
        padding: 2rem 0;

        h3{
            @include ftz(19);
        }
    }
}

.pg_tbl{
	font-size: 13px;
    line-height: 1.3;

    table{
        border-collapse: collapse;
        width: 100%;
    }

    tr:nth-child(odd){
        td{
            background-color: #fafafa;
        }
    }

    th, td{
        padding: 5px 3px;
        border: 1px solid #d8d8d8;
    }

    td{
        padding: 10px 5px;
    }

    th{
        color: #fff;
        font-weight: normal;
        line-height: 1.3;
        border-color: #00608d;
		background-color: var(--color_program);
        white-space: nowrap;

        span{
			font-size: 12px;
            display: block;
        }
    }

    tr.bd_thick{
        td{
            border-top-width: 4px;
        }
    }

    td:nth-child(1){ width: 220px;}
    td:nth-child(2){ width: 230px;}
    td:nth-child(3){ width: 50px;}
    td:nth-child(4){ width: 120px;}
    td:nth-child(5){ width: 90px;}
    td:nth-child(6){ width: 110px;}


    td:nth-child(3){
        text-align: center;
    }
    

    @media (width < 800px) {
        overflow-x: scroll;

        table{
			font-size: var(--font_size-14);
            width: 1000px;
        }

        th, td{
            padding: 5px;
        }

        td:last-child{
            width: 300px;
        }
    }

}

.ul-info {
	list-style: none;
	padding: 0;

	li {
		position: relative;
		margin: 1rem 0;
		padding: 0 0 0 15px;

		&::before {
			position: absolute;
			left: 0;
			top: 0.7rem;
			content: '';
			display: block;
			width: 6px;
			height: 6px;
			background-color: var(--color_program);
			border-radius: 100%;
		}
	}
}

.info_block{
    margin-bottom: 25px;
    padding: 25px;
    background-color: #fbffc1;

    p{
        margin: 0;
    }

    .emph{
        font-weight: bold;
        color: #e20000;
    }

    @media (width < 600px){
        padding: 15px;
    }
}


/* -------------------------------------------------------------------------*/





/* -------------------------------------------------------------------------*/
/* MODAL
/* -------------------------------------------------------------------------*/
div.modal-open {
	display: inline-block;
	margin-top: 15px;
	padding: 8px 20px;
	background: #00a2ff;
	color: #fff;
	line-height: 1.3;
	border-radius: 50px;
	box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1);
	transition: all 0.2s ease;
	cursor: pointer;
}

div.modal-open:hover {
  box-shadow: none;
  background-color: #2acdff;
}

.modal-close {
	display: block;
	width: 40px;
	height: 40px;
	font-size: 40px;
	cursor: pointer;
	line-height: 40px;
	color: #fff;

	position: absolute;
	right: 10px;
	top: 10px;
}



/*モーダル本体の指定 + モーダル外側の背景の指定*/

body.modal-active{
	overflow: hidden;
}

.modal-container {
	position: fixed;
	z-index: 1001;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	text-align: center;
	background: rgba(0, 0, 0, 50%);
	padding: 40px 20px;
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: .3s;
	box-sizing: border-box;

	body.modal-active &{
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	@media (width < 600px){
		padding: 40px 15px;
	}
}


.modal-body {
	display: inline-block;
	max-width: 850px;
	width: 100%;
}

.modal-content {
	position: relative;
	background: #fff;
	text-align: left;
	line-height: 1.8;
	border-radius: 10px;
	overflow: hidden;
}

.modal-hd{
	padding: 15px 50px 15px 15px;
	color: #fff;
	background-color: var(--color_program);

	p{
		margin: 0;
		font-size: var(--font_size-18);
		font-weight: 700;

		span{
			display: inline-block;
			white-space: nowrap;
		}
	}
}

.modal-inner{
	padding: 10px 20px 20px;
}

.modal-info{
	margin-bottom: 10px;
	padding: 15px;
	background-color: #f5fbff;
	border-radius: 5px;
	border: 1px solid #cee5f1;

	p{
		margin: 0;
	}
}

.modal-content .mdl_line {
	padding:8px 15px;
	border-bottom:1px dotted var(--color_program);
}


@media (width > 600px) {
	.modal-content br.sp{
		display:none;
	}
	.modal-content a.mdl_mgn{
		display:inline-block;
		margin-left:4rem;
	}

}

@media (width < 600px) {
	.modal-content a.mdl_mgn{
		display:inline;
		margin-left:0;
	}
	.modal-content .mdl_line {
		padding:8px 0;
	}

	.modal-info{
		padding: 10px;
		
		p{
			font-size: 14px !important;
		}
	}
}
/* -------------------------------------------------------------------------*/
