/*---------------------------------------
  ROOT              
-----------------------------------------*/
:root {
	--text-color: #303030;
	--primary-color: #1C3177;
	--primary-text-color: #eeeeee;
	--global-space: 5vw;
	--white-color:                  #eeeeee;
	--secondary-color:              #7f96c2;
	--section-bg-color:             #eeeeee;
	--custom-btn-bg-color:          #7f96c2;
	--custom-btn-bg-hover-color:    #13547a;
	--link-hover-color:             #13547a;
	--btn-font-size:                18px;  
	--border-radius-medium:         20px;
}


/*---------------------------------------
  Keyframes             
-----------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
@keyframes fadeIn {
	0% {opacity: 0;transform: scale(0.8);}
	100% {opacity: 1;transform: scale(1);}
}
@keyframes moveFromBottom {
    from {
        opacity: 0;
        transform: translateY(200%);
    }
    to {
        opacity: 1;
        transform: translateY(0%);
    }
}
@keyframes moveFromLeftRotate{
    from {
        transform: translateX(-100%) rotate(-90deg);
    }
    to {
        transform: translateX(0%) rotate(0deg);
    }
}
@keyframes smallToBig{
    from {
        transform: scale(0.1);
    }
    to {
        transform: scale(1);
    }
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes circlemove{
	0%{bottom:160px;}
	100%{bottom:0px;}
}
@keyframes cirlemovehide{
	0%{opacity:0}
	50%{opacity:1;}
	80%{opacity:0.9;}
	100%{opacity:0;}
}
@keyframes scroll {
	0% {
	  height: 40px;
	}
	30% {
	  height: 70px;
	}
	60% {
	  height: 40px;
	}
}
@-webkit-keyframes scroll {
	0% {
	  height: 40px;
	}
	30% {
	  height: 70px;
	}
	60% {
	  height: 40px;
	}
}


/*---------------------------------------
  COMMON            
-----------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	height: 100%;
	font-size: 16px;
}
@media screen and (min-width:900px) {
		html, body {font-size: 18px;}
}
@media screen and (min-width:2000px) {
	html, body {font-size: 20px;}
}
body {
	margin: 0;padding:0;
	font-family: "Inter", "Noto Sans", "Noto Sans JP",sans-serif;
	font-optical-sizing: auto;
	-webkit-text-size-adjust: none;
	line-height: 2;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Montserrat", sans-serif;; 
}
table {border-collapse:collapse;}
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}
video {max-width: 100%;}
iframe {width: 100%;}
input {font-size: 1rem;}
section + section {
	margin-top: 3rem;
}
a {
	color: var(--text-color);
	transition: 0.3s;
	text-decoration: none;
}
a:hover {
	color: var(--primary-color);
}
ul {
	list-style: none;
}

/* Container */
body:not(.home) #container {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.B-container{
	width: 80%;
	margin-top: 10vh;
	margin-bottom: 5vh;
	margin-left: auto;
	margin-right: auto;
}

/* CONTENTS */
#contents {
	flex: 1;
	padding: var(--global-space);
	padding-bottom: 0;
    background-size: cover;
    background-position: center;
    background-color: #eeeeee;
}
@media screen and (max-width:600px) {
	#contents {padding-top: 80px;}
}

/* LOGO */
#logo img {
	display: block;
	margin-top: 20px;
	width: 300px;
}

/* MAIN */
main h2 {
	font-size: 3rem;
	letter-spacing: 0.1em;
}
main h2 .hosoku {
	display: block;font-weight: normal;
	font-size: 0.3em;
}
main h3 {
	display: inline-block;
}

/* span */
.highlight {
    font-weight: bold;
    color: var(--primary-color);
}
.bold {
    font-weight: bold;
}

/*---------------------------------------
  SECTION              
-----------------------------------------*/
/* Blue-area */
.Blue-area {
	position: relative;
	background: var(--primary-color);
	color: var(--white-color);
	padding: var(--global-space);
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
}
.Blue-area h3{
	display: inline-block;
	border-bottom: 3px solid var(--white-color);
}

/* Sub-mainimg */
#sub-mainimg {
    background-color: var(--primary-color);
	color: #fff;
	padding-top: 8vw;
	padding-bottom: 5vw;
    padding-left: var(--global-space);
	padding-right: var(--global-space);
	margin-bottom: -5vw;
    height: 30vh;
	z-index: 3;
	text-align: center;
}
#sub-mainimg h2 {
	position: relative;
  	display: inline-block;
  	margin-bottom: 1em;
	font-size: 2.7rem;
	letter-spacing: 0.12em;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
}
#sub-mainimg h2:before {
	content: '';
	position: absolute;
	bottom: -15px;
	display: inline-block;
	width: 60px;
	height: 5px;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	background-color: #eee;
	border-radius: 2px;
}

/* Topic-area */
.topic-section {
	background-color: #fff;
	color: var(--text-color);
	background-size: cover;
	font-size: 	0.9em;
	width: 80%;
	margin: 2vh auto 10vh;
	border-radius: 20px;
	padding: 5vw 10vw;
	box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
	word-spacing : 0.05em;
	font-family: "Inter", sans-serif;
}
.topic-section h3, .topic-section h4 {
    line-height: 1.5;
	font-family: "Open Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	letter-spacing: 0.05em;
}
.topic-section h3{
	line-height: 1;
	color: var(--primary-color);
}
.topic-section h5 {
	padding: 0.6rem 1rem;
	border-left: 4px solid var(--text-color);
}
.topic-section p{
	margin-bottom: 1.5em;
}
.topic-title{
	width: 100%;
	border-bottom: dashed 2px var(--secondary-color);
	margin-bottom: 20px;
}
.topic-section ul {
	color: #1e366a;
	border: dotted #1e366a 1px;
	padding: 0.5em 0.5em 0.5em 2em;
}
.topic-section ul li {
	line-height: 1.5;
	padding: 0.5em 0;
}
.listtt{
	width: 80%;
	margin-right: auto;
	margin-left: auto;
}

/*---------------------------------------
  Scrolldown Arrow           
-----------------------------------------*/
.scrolldown-arrow {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 35%;
	position: relative;
}
.arrow-field {
	display: flex;
	align-items: center;
	justify-content: space-around;
	width: 300px;
} 
.arrow {
	width: 0;
	height: 40px;
	border: 1px solid var(--primary-color);
	position: relative;
	animation: scroll 1.5s infinite;
	-webkit-animation: scroll 1.5s infinite;
	&::after {
	  content: '';
	  display: block;
	  position: absolute;
	  top: 100%;
	  left: -5px;
	  width: 1px;
	  height: 10px;
	  border-top: 10px solid var(--primary-color);
	  border-left: 5px solid transparent;
	  border-right: 5px solid transparent;
	}
}


/*---------------------------------------
  FadeIn               
-----------------------------------------*/
.fade-in-text {
    visibility: hidden;
}
.char {
    display: inline-block;
    opacity: 0;
    animation: fadeIn 0.05s linear both;
}


/*---------------------------------------
  BUTTON               
-----------------------------------------*/
/*btn*/
.btn,
a.btn,
button.btn {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: var(--white-color);
  border-radius: 0.5rem;
  background: var(--primary-color);
}
.btn-border-radius a {
	display: inline-block;
	padding: 0.5rem 2rem;
	border-radius: 100px;
	background: var(--primary-color);
}

/* custom-btn */
.custom-btn {
    background: var(--custom-btn-bg-color);
    border: 2px solid transparent;
    border-radius: 20px;
    color: var(--white-color);
    font-size: var(--btn-font-size);
    font-weight: var(--font-weight-semibold);
    line-height: normal;
    transition: all 0.3s;
    padding: 10px 20px;
}
.custom-btn:hover {
    background: var(--custom-btn-bg-hover-color);
}


/*---------------------------------------
  CONTENTS MENU              
-----------------------------------------*/ 
.tab-content {
	background-color: var(--white-color);
	border-radius: 20px;
}
.nav {
	padding-left: auto;
	padding-left: auto;
}
.nav-tabs {
	border-bottom: 1px solid #b0a9a9;
	margin-bottom: 30px;
	justify-content: center;
	width: 90%;
} 
.nav-tabs .nav-link {
	border-bottom: 1px solid #b0a9a9;
	border-top: 0;
	border-right: 0;
	border-left: 0;
	color: var(--text-color);
	font-size: var(--btn-font-size);
	font-weight: var(--font-weight-medium);
	padding: 15px 25px;
	transition: all 0.3s;
}
.nav-tabs .nav-link:first-child {
	margin-right: 15px;
	margin-left: 15px;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-link:focus, 
.nav-tabs .nav-link:hover {
	color: var(--primary-color);
	border-bottom: 1px solid #1C3177;
	background: var(--white-color);
	outline: none;
}
nav a:focus {
    outline: none;
}
.nav-tabs .nav-item {
	line-height: 1.5;
}
table {
	border-collapse: collapse;
	border: 2px solid rgb(140 140 140);
	font-family: sans-serif;
	font-size: 0.8rem;
	letter-spacing: 1px;
	width: 70%;
	margin-right: auto;
  	margin-left: auto;
	text-align: center;
}
caption {
	caption-side: bottom;
	padding: 4px;
} 
thead,
tfoot {
	background-color: rgb(228 240 245);
} 
th,
td {
	border: 1px solid rgb(160 160 160);
	padding: 8px 10px;
} 
td:last-of-type {
	text-align: center;
} 
tbody > tr:nth-of-type(even) {
	background-color: rgb(237 238 242);
}  
tfoot th {
	text-align: right;
}
tfoot td {
	font-weight: bold;
}

/*---------------------------------------
  TOPICS               
-----------------------------------------*/  
.topics-listing-page .site-header {
	padding-bottom: 65px;
}

.contents-block-img {
	width: 200px;
	padding: auto;
}

/*section*/
.shapedividers_com-1753{
	overflow:hidden;
	position:relative;
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
	height: 100px;
	background-color: #eee;
}
.shapedividers_com-1753::before{
	content:'';
	position: absolute;
	bottom: -1px;
	left: -1px;
	right: -1px;
	top: -1px;
	z-index: 3;
	pointer-events: none;
	background-repeat: no-repeat; 
	background-size: 100% 45px;
	background-position: 50% 0%;    
	background-image: url('data:image/svg+xml;charset=utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35.28 2.17" preserveAspectRatio="none"><path d="M0 .5c3.07.55 9.27-.42 16.14 0 6.88.4 13.75.57 19.14-.11V0H0z" fill="%231c3177"/><path d="M0 1c3.17.8 7.29-.38 10.04-.55 2.75-.17 9.25 1.47 12.67 1.3 3.43-.17 4.65-.84 7.05-.87 2.4-.02 5.52.88 5.52.88V0H0z" opacity=".5" fill="%231c3177"/><path d="M0 1.85c2.56-.83 7.68-.3 11.79-.42 4.1-.12 6.86-.61 9.58-.28 2.73.33 5.61 1.17 8.61 1 3-.19 4.73-.82 5.3-.84V.1H0z" opacity=".5" fill="%231c3177"/></svg>'); 
}
	
@media (min-width:768px){
	.shapedividers_com-1753::before{
	background-size: 100% 70px;
	background-position: 50% 0%;   
	}  
}
@media (min-width:1025px){
	.shapedividers_com-1753::before{ 
	bottom: -0.1vw;
	left: -0.1vw;
	right: -0.1vw;
	top: -0.1vw; 
	background-size: 100% 90px;
	background-position: 50% 0%;  
	}
}
@media (min-width:2100px){
	.shapedividers_com-1753::before{
	background-size: 100% calc(2vw + 90px);
	}
}

/* Figure-image */
.f-img{
	width: 80%;
	height: 40vh;
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
}
.f-img img{
	border: 1px solid #ccc;
    width: 100%;
	height: 100%;
	object-fit: contain;
}

.f2-img{
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
}
.f2-img img{
	border: 1px solid #ccc;
    width: 100%;
	object-fit: cover;
}