@charset "utf-8";
/* CSS Document */


/*  -------  RESET CSS  ---------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}
 
ul[class],
ol[class] {
  padding: 0;
}
 
/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul[class],
ol[class],
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}
 
/* Set core body defaults */
body {
  min-height: 100vh;
  scroll-behavior: smooth;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}
 
/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
  list-style: none;
}
 
/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

a { text-decoration: none; }

/* Make images easier to work with */
img { max-width: 100%; }

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}
 
/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/*  -------  COMMON ---------------------------------------------------------------- */


html  { font-family: "Noto Sans Mono CJK JP", "Noto Sans JP", "Noto Sans Japanese", "ＭＳ ゴシック", sans-serif; }

.sp_view { display: none;}
.pc_view { }

.tC { text-align: center ;}
.acc_txt { color: #90a305 !important; font-weight:bold !important; }



/* ----------------------------------------
* TITLE
---------------------------------------- */
.lv2 {
  position: relative;
  padding: 1rem .5rem;
  margin-bottom: 10px;
}

.lv2:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  content: '';
  border-radius: 3px;
  background-image: -webkit-gradient(linear, right top, left top, from(#12bfe8), to(#013480));
  background-image: -webkit-linear-gradient(right, #12bfe8 0%, #013480 100%);
  background-image: linear-gradient(to left, #12bfe8 0%, #013480 100%);
}


/* ----------------------------------------
* Font
---------------------------------------- */
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 100;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-ExtraLight.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 200;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-Light.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 400;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-Regular.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 500;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-Medium.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 600;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-SemiBold.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 700;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-Bold.otf) format(‘opentype’);
}
@font-face {
font-family: ‘Noto Serif Japanese’;
font-style: normal;
font-weight: 900;
src: url(/fonts/NotoSerifCJKjp/NotoSerifCJKjp-Black.otf) format(‘opentype’);
}


/* ----------------------------------------
* Header
---------------------------------------- */

header {
	display: flex;}
header #logo {  margin: 20px;}
nav{
    margin-left: auto;
}
.gnav li{ display: inline-block;}
.gnav li a {
	color: #000;
	display: inline-block;
	padding: 30px;}


.gnav li:last-child{
	display: inline-block;
	padding: 0px;
	background: #edd50c;
	transition : all 0.5s ease 0s;
}

.gnav li:last-child a{
	display: block;
	padding: 30px 40px;
	background: #edd50c;
	transition : all 0.5s ease 0s;
}

.gnav li:last-child a:hover {
	background: #f9e966;}


/*  -------  TOP PAGE  ---------------------------------------------------------------- */


main {background: url("../img/bg_solution.png"); }
.inner { width: 1200px; margin: 0 auto;}


/* ----------------------------------------
* KEY
---------------------------------------- */
#main_visual {
	background: url("../img/bg_main.png") no-repeat 100% 0%;
	background-size: cover;
	min-height: 100vh;
}

#main_visual h1{
	font-weight: normal;
	color: #fff;
	font-size: 110%;
	margin: 30px 0 0 155px;
	letter-spacing: 0.05em;
	text-shadow: 1px 1px 2px #0078b4;
}

#main_visual img {
    margin: 150px 0 0 150px;
    display: inline-block;
	}


/* ----------------------------------------
* SOLUTION
---------------------------------------- */


#solution {  }
.title_img { margin-bottom: 20px;}

#solution_detail { 
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}

#solution article{
  position: relative;
  text-align: center;
  width: 31%;
  background: #f5f5f5;
  margin: 40px 0;
}

#solution article:after{ 
  position: absolute;
  left:0;
  top: 0;
  content: '';
  border-top:10px solid #edd50c;
  border-left:10px solid #edd50c;
  border-right: 10px solid #f5f5f5;
  border-bottom: 10px solid #f5f5f5;
  box-sizing: border-box;
}

#solution h2 {
	color: #065fa0;
	padding: 20px;}
	
#solution article p {
	padding: 20px 40px 40px;
	text-align: left;
}

.solution_title_read { margin: 40px 0; }



/* ----------------------------------------
* NEWS
---------------------------------------- */
#news {
    display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
    width: 1200px;
    margin: 60px auto;
}

#news article {
    width: 48%;
    margin-bottom:15px;
}

#news article iframe {  width:100%; height:330px;} 




/* ----------------------------------------
* COMPANY
---------------------------------------- */

#company {
	background: url("../img/bg_company.png") no-repeat 100% 0%;
	background-size: cover;
	padding: 300px 0 200px;
	position: relative;
	min-height: 120vh;
	}

.com_read {
	width: 400px;
	color: #fff;
	margin: 50px 0;
	text-shadow: 1px 1px 2px #0078b4;}
	
	
#com_img  {
	position: absolute;
	top: 60%;
	right: 10%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}


/* TABLE STYLE */
.normal_table {
  border-collapse: collapse;
  margin: 30px auto;
  padding: 0;
  width: 80%;
}
.normal_table tr {
  background-color: #fff;
  border-bottom: 2px solid #fff;
}
.normal_table tr:nth-child(even){
  background-color: #efefef;
}
.normal_table th,
.normal_table td {
  padding: 0.8em 1em;
}

.normal_table td:nth-child(2n) {
  border-left: 2px dashed #ddd;
}

.normal_table td:nth-child(3n) {
  border-left: 2px dashed #ddd;
}

.normal_table thead th {
    padding: 1em;
}
.normal_table thead tr{
  background-color: rgba(0,113,92,0.2);
}
.normal_table tbody th {
  text-align: left;
  font-size: 1em;
}


/* ----------------------------------------
*  SERVICE
---------------------------------------- */
#service { }

#service_detail { 
	display: flex;
	flex-wrap: wrap;
	justify-content:center;
}

#service article{
  position: relative;
  width: 38%;
  margin: 40px 2%;
}

#service article img { width: 100%; }
#service article a:hover { opacity: 0.8; }
#service article h2 {
	color: #0c8dc1;
	font-size: 120%;
	margin-bottom: 5px;}
	
#service article h2 span {
	font-size: 90%;}



.a_link {
    color:#0c8dc1;
    font-weight: bold;
    margin: 10px 0;
    display: block;
}
.a_link:before {
    content: " 》";
}

/* ----------------------------------------
*  CONTACT
---------------------------------------- */
#contact {
	background: #fff;
	padding: 70px 0;
	}
	
.contact_read {
	text-align: center;
	margin-top: 20px;}
	
	



input {
    width: 100%;
    background-color: white;
    -webkit-rtl-ordering: logical;
    padding: 5px;
    border: 1px solid #ddd;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
		border-radius: 5px;
}
textarea {
    width: 100%;
    min-height: 240px;
    background-color: white;
    -webkit-rtl-ordering: logical;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    resize: auto;
    cursor: text;
    white-space: pre-wrap;
    word-wrap: break-word;
    padding: 5px;
    border: 1px solid #ddd;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
		border-radius: 5px;
}
input[type="submit"]{
    width: 240px;
    padding: 10px 0;
    background-color: #003d60;
    border-radius: 0;
    border: none;
    font-size: 110%;
    color: #fff;
    cursor: pointer;
	border-radius: 50px;
}
input[type="button"]{
    width: 240px;
    padding: 10px 0;
    background-color: #333;
    border-radius: 0;
    border: none;
    font-size: 110%;
    color: #fff;
    cursor: pointer;
	border-radius: 50px;margin-top: 10px;
}

input[type="submit"]:hover{
    opacity: 0.7;
}

dl{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
dt,dd{
    line-height: 1.7;
	font-size: 100%;
}

dt{
    min-width: 200px;
    padding: 5px 0 10px 10px;
    border-bottom: 1px solid #dedede;
    font-weight: 600;
    text-align: left;
}
dd{
    width: 100%;
    padding: 5px 30px 10px 30px;
    border-bottom: 1px solid #dedede;
}


#entry_form {
width: 70%;
margin: 0 auto;}

#entry_form dt{
    position: relative;
}
#entry_form .required dt:after{
    content: '必須';
    padding: 0 3px;
    background: #be1010;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
    position: absolute;
    right: 0;
    top: 10px;
}
#entry_form .arbitrary dt:after{
    content: '任意';
    padding: 0 3px;
    background: #999;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
    position: absolute;
    right: 0;
    top: 31px;
}

#entry_form .submitArea{
    padding: 30px 0 0;
    text-align: center;
	margin-bottom: 60px;
}

.event_table {
  border-collapse:collapse;
  margin:20px auto;
  width: 90%;
}
.event_table td,
.event_table th{
  border: 2px solid #ddd;
  padding:15px 10px;
}
.event_table th{
  background-color: #efefef;
  width: 25%;
}


/* ----------------------------------------
*  FOOTER
---------------------------------------- */
footer { 
	background: #003d60;
	padding: 30px;
	color:#fff;
	font-size: 90%;
	text-align: center;
	}

#copy{
	text-align: center;
	font-size: 90%;
	padding: 20px;
	}






/*  -------  SP CSS  ---------------------------------------------------------------- */

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

.sp_view { display: inherit}
.pc_view { display: none !important; }

header #logo {
    margin: 10px;
}

.inner { width: 100%; margin: 0 auto;}

.gnav li:last-child{
	display: inline-block;
	padding: 0;
	background: #edd50c;
}

.gnav li:last-child a{
	display: block;
	padding: 20px 15px;
	background: #edd50c;
	transition : all 0.5s ease 0s;
	font-size: 90%;
}

#main_visual {
	background: url("../img/bg_main_sp.png") no-repeat 80% 0%;
	background-size: cover;
	min-height: 120vh;
}

#main_visual img {
    margin: 0 auto 0;
	padding-top: 50px;
    display: block;
	width: 90%;
	text-shadow: 1px 1px 2px #0078b4;
	}
	
#main_visual h1 {
    font-size: 110%;
	width: 90%;
    margin: 30px auto 0;
    letter-spacing: 0.05em;
    text-shadow: 1px 1px 2px #0078b4;
}

#solution { padding: 20px; }
#solution article{
  position: relative;
  text-align: center;
  width: 100%;
  background: #f5f5f5;
  margin: 10px 0;
}

/* ----------------------------------------
* NEWS
---------------------------------------- */
#news {
    display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
    width: 90%;
    margin: 60px auto;
}

#news article {
    width: 100%;
    margin: 10px 0;
}

#news article:nth-child(even) {margin: 10px 0 45px;}

#news article iframe {  width:100%; height:230px;} 


#company {
	background: url("../img/bg_company_sp.png") no-repeat 100% 0%;
	background-size: cover;
	padding: 80px 20px 50px;
	position: static;
	min-height: auto;
	}
	
.company_data_img { width: 90%; margin:  0 auto;}

.com_read {
	width: 100%;
	color: #fff;
	margin: 20px auto 40px;
	text-shadow: 1px 1px 2px #0078b4;}
	
#com_img  {
	position: static;
	top: auto;
	bottom: 10%;
	right: 10%;
	width: 80%;
	display: block;
	margin: 0 auto;
	transform: translateY(0%);
	-webkit-transform: translateY(0%);
	-ms-transform: translateY(0%);
}


.normal_table {
    border: 0;
    width:100%;
	margin:0px auto;
  }

.normal_table thead {
    display: none;
  }
.normal_table tr {
    display: block;
    margin-bottom: .625em;
    
  }
.normal_table td {
	width: 100%;
   border: none !important;
    display: block;
    text-align: left;
    position: relative;
    padding: 1em 0.5em 1em 1em;
    border-right: none;
  }
  
.normal_table td:last-child {
    border-bottom: 0;
  }
.normal_table tbody th {
    padding: 1em;
	width: 100%;
	display: block;
	color: #000;
	background: #eee;
	font-size: 1em;
}
.normal_table tr:nth-child(even){
  background-color: #fff;
}

.normal_table td:nth-child(2n) {
  border: none !important;
}

.normal_table td:nth-child(3n) {
   border: none !important;
}



#service { padding: 40px 20px 20px;}
	
#service article{
  position: relative;
  width: 100%;
  margin: 20px 1%;
}

#service_detail iframe { width: 100%; height: 230px;}


#contact {
	background: #fff;
	padding: 70px 20px;
	}
	
.contact_read {
	text-align: left;
	margin-top: 20px;}
	
#entry_form {
    width: 100%;
    margin: 0 auto;
}

dl {
    display: -webkit-block;
    display: -ms-block;
    display: block;
}

dt {
    min-width:100%;
	display: block !important;
	background: #eee;
}

dd {
	width: 100%;
	display: block !important;
	padding: 5px 0px 10px 0px;
	border-bottom: none;
}

#entry_form .required dt:after {

    right: 10px;
    top: 10px;
}

}

	
	