@charset "utf-8";

body {
	font-family: '游ゴシック', 'YuGothic', Meiryo, メイリオ, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
	overflow-x: hidden;
}
section {
	overflow-x: hidden;
}

/*----common----*/
.pc { display: block !important; }
.sp { display: none !important; }

h2 {
	font-size:2.2rem;
}
h3 {
	font-size:2.0rem;
}
.p-text {
	font-size:1.1rem;
	line-height:2.0;
}
.btn {
	border-radius: 0rem;
	padding: 1rem 2.5rem;
	font-size:0.85em;
	font-weight:bold;
}
.btn_taisei	{color: #fff; background: #F60; border-color: #F60;}
.btn_circle	{color: #fff; background: #FC0; border-color: #FC0;}
.btn_smcc	{color: #fff; background: #093; border-color: #093;}
.btn_aidca	{color: #fff; background: #09F; border-color: #09F;}
.btn_hakuho	{color: #fff; background: #666; border-color: #666;}

.btn_taisei:hover	{color: #fff; background: #cc3300; border-color: #cc3300;}
.btn_circle:hover	{color: #fff; background: #cc6600; border-color: #cc6600;}
.btn_smcc:hover		{color: #fff; background: #003300; border-color: #003300;}
.btn_aidca:hover	{color: #fff; background: #003399; border-color: #003399;}
.btn_hakuho:hover	{color: #fff; background: #333333; border-color: #333333;}

.btn .fa-angle-right {
	
	margin-left:10px;
}
.btn-light {
    color: #212529;
    background-color: #eeeeee;
    border-color: #eeeeee;
}
.btn-outline-light i {
	color:#fff;
}
.jp-noto {
	font-family: 'Noto Serif JP', serif;
	font-weight:600;
}
.bar {
	display: block;
	width: 150px;
	height: 10px;
	margin: 20px 0;
}
.bar-black {
	background: #000;
}
.bar-white {
	background: #fff;
}
.bar-red {
	background: #f30;
}
.sub-title {
	position:relative;
}
.sub-title .subtitle_dot {
	background: url(../images/dot_title.png);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.sub-title-txt {
	margin:0 auto;
	padding:15px 50px 15px;
	background:#000;
	color:#fff;
	width:600px;
	text-align:center;
	position: relative;
    z-index: 1;
}
.sub-title-txt h1 {
	font-size: 2.2em;
	font-family: 'Dosis', sans-serif;
	font-weight: 900;
	letter-spacing: 0.5px;
	margin-bottom:0;
}
.sub-title-txt p {
	font-size: 1.2em;
	font-weight:bold;
	margin-bottom:0;
}
.pht-r-and-txt img {
	float:right;
	margin:0 0 4rem 4rem;
	width:40%;
}
.pht-l-and-txt img {
	float:left;
	margin:0 4rem 4rem 0;
	width:40%;
}
.title {
	margin:60px 0 40px;
}
.title-cmp {
	width:90%;
	margin:60px auto 20px;
}
.title-cmp h3 {
	padding:3px 0 5px 15px;
}
#cmp_taisei .title-cmp h3	{ border-left:7px solid #F60;}
#cmp_circle .title-cmp h3	{ border-left:7px solid #FC0;}
#cmp_smcc .title-cmp h3		{ border-left:7px solid #093;}
#cmp_aidca .title-cmp h3	{ border-left:7px solid #09F;}
#cmp_hakuho .title-cmp h3	{ border-left:7px solid #666;}

.container-hr {
	padding-bottom:50px;
	border-bottom:1px solid #ccc;
}
#pageTop {
    position: fixed;
    bottom: 80px;
    right: 20px;
}
#pageTop a {
    display: block;
    z-index: 999;
    padding: 10px 0;
    border-radius: 75px;
    width: 75px;
    height: 75px;
    background-color: #f30;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
	opacity: 0.7;
}
#pageTop a span {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 9px;
}
#pageTop a:hover {
	text-decoration: none;
	opacity: 1;
}
a.telnumber {
	color:#fff;
}

/*----上書き----*/
img {
	max-width: 100%;
	height: auto;
}
.row {
    margin-right: 0;
    margin-left: 0;
}
.navbar {
    border-top: 8px solid #F30;
}
.navbar-brand {
	margin-left: 20px;
	width: 230px;
}
#navbarNav {
	margin-top: 10px;
	border-top: 1px solid #ccc;
	box-shadow: 0 6px 4px -4px rgba(0,0,0,.1);
}
.navbar-nav li {
	text-align: center;
	font-size: 0.85em;
	font-family: 'Dosis', sans-serif;
	font-weight: 900;
	letter-spacing: 0.5px;
}
.navbar-nav > li > a > span {
	display: inline-block;
	margin-top: 3px;
	letter-spacing: 0;
	font-family: '游ゴシック', 'YuGothic', Meiryo, メイリオ, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
	font-weight: bold;
	font-size: 0.95em;
}
.navbar-light .navbar-nav .nav-link:focus {
	color: #000;
}
.navbar-light .navbar-nav .nav-link {
	color: #000;
}
.navbar-light .navbar-nav .nav-link:hover {
	color: #F30;
}
.carousel-indicators {
    bottom: -70px;
	margin-bottom:3rem;
}
.carousel-indicators li {
	width: 10px;
	height: 10px;
	margin-right: 5px;
	margin-left: 5px;
	background-color: #999;
	display: block;
	border-radius: 30px;
	border-top: 0px solid transparent;
	border-bottom: 0px solid transparent;
}
.carousel-control-next-icon, .carousel-control-prev-icon {
	width:80px;
	height:80px;
}
.carousel-control-next, .carousel-control-prev {
	opacity: .7;
}
.carousel-control-prev-icon {
    background-image: url(../images/prev-icon.svg);
}
.carousel-control-next-icon {
    background-image: url(../images/next-icon.svg);
}
.carousel-indicators .active {
	background-color:#f30;
}
#topCompanies .caption {
	padding-right: 0;
	padding-left: 0;
	margin-bottom: 40px;
}
#topCompanies .caption a {
	display:block;
}


/*----各コンテンツ----*/
#keyvisual {
	position:relative;
}
#keyvisual img {
	min-height:400px;
	object-fit: cover;
}
#keyvisual_dot {
	background: url(../images/dot_title.png);
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
}
#keyvisual_taisei {
	position:absolute;
	top: 40%;
	left: 50%;
	-webkit-transform: translateY(-40%) translateX(-50%);
	transform: translateY(-40%) translateX(-50%);
	font-family: 'Roboto Condensed', sans-serif;
	font-weight:700;
	font-size:6vw;
	font-size:calc(1.475rem + 5vw);
	letter-spacing:0.1rem;
	color:#fff;
	white-space:nowrap;
}
#keyvisual_catch {
	position:absolute;
	top: 65%;
	left: 50%;
	-webkit-transform: translateY(-65%) translateX(-50%);
	transform: translateY(-65%) translateX(-50%);
	background:#000;
	padding:13px 30px;
	color:#fff;
	font-size:1.5vw;
	white-space:nowrap;
}
#toppage .title h2 {
	text-align: center;
	font-family: 'Dosis', sans-serif;
	font-weight: 900;
	font-size: 2.2rem;
	color: #000;
}
#toppage .title .title-ja {
	display: block;
	margin-top: 7px;
	font-family: '游ゴシック', 'YuGothic', Meiryo, メイリオ, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
	font-size: 0.5em;
}
#toppage .title p {
	text-align: center;
	margin: 30px;
}
#topAbout {
	margin: 50px 0;
	width: 100%;
	max-height: 500px;
	height: 500px;
	background:#000 url(../images/top/bg_cosmos.jpg) no-repeat center;
}
#topAbout_in {
	width: 100%;
	color: #fff;
	max-height: 500px;
	height: 500px;
	background: url(../images/top/img_taisei_solarsystem.png) no-repeat center;
}
#topAbout_in .bar {
	margin: 20px auto;
}
#topAbout_in .col-sm {
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	-webkit-align-items: center;
}
#topAbout_in .title {
	margin:0;
}
#topAbout_in .title h2 {
	color:#fff;
}
#topAbout_in .center {
/*	min-width:570px;*/
}
#topCompanies .caption a:hover img {
	opacity:0.7;
}
#topCompanies #cmp_taisei a:hover,
#topCompanies #cmp_taisei {
	background-color: #F60;
}
#topCompanies #cmp_circle a:hover,
#topCompanies #cmp_circle {
	background-color: #ff9900;
}
#topCompanies #cmp_smcc a:hover,
#topCompanies #cmp_smcc {
	background-color: #006600;
}
#topCompanies #cmp_aidca a:hover,
#topCompanies #cmp_aidca {
	background-color: #0099cc;
}
#topCompanies #cmp_hakuho a:hover,
#topCompanies #cmp_hakuho {
	background-color: #878787;
}
#topCompanies img {
	width: 100%;
}
#topCompanies .caption-txt {
	padding: 20px 30px;
	color: #fff;
}
#topCompanies .caption-txt p {
	line-height:1.3;
	margin: 1rem 0 0;
	font-size:0.85rem;
}
#topCompanies #cmp_taisei .caption-txt {
	background: #F60;
}
#topCompanies #cmp_circle .caption-txt {
	background: #ff9900;
}
#topCompanies #cmp_smcc .caption-txt {
	background: #006600;
}
#topCompanies #cmp_aidca .caption-txt {
	background: #0099cc;
}
#topCompanies #cmp_hakuho .caption-txt {
	background: #878787;
}
#topCompanies h3 {
	font-family: 'Noto Serif JP', serif;
	font-weight:600;
}
#topCompanies h3 span {
	font-family: 'Dosis', sans-serif;
	font-weight:700;
	font-size:1.2rem;
	display:block;
	margin-bottom:2px;
	height:30px;
}
#topCompanies h3 span img {
	width:auto;
	height:30px;
	margin-right:10px;
	margin-bottom:0;
}
#topCompanies #link_detail {
	text-align:center;
}
#topCompanies #link_detail .btn {
	border-radius: 0rem;
	width:80%;
	height:80%;
	font-weight:bold;
}
#topCompanies .bar-black {
	margin:20px auto;
}
#topBn {
	margin-top:100px;
}
#footer {
	margin-top: 100px;
	width: 100%;
	background: #000;
	color: #fff;
	overflow-x: hidden;
}
.footer-logo {
	padding: 50px 0 30px;
	text-align: center;
	width: 100%;
}
.footer-logo img {
	width:15rem;
}
.footer-copyright {
	padding: 20px 30px 0;
	width: 100%;
	background: #f30;
	text-align: right;
	font-size: 0.75em;
	letter-spacing: 0.5px;
}



/*--ABOUT PAGE--*/
.aboutpage .sub-title {
	background: url(../images/about/sub_title_bg.jpg) no-repeat center;
	background-size:cover;
}
#aboutNavi {
	border-top:1px solid #ccc;
}
#aboutNavi .nav-link {
    border-radius: 0rem;
	border-bottom:1px solid #ccc;
	border-left:1px solid #ccc;
	flex-basis: 14.2%;
	padding: 0.8rem 0.5em 0.6em;
}
#aboutNavi .last {
	border-right:none;
}
#aboutNavi .nav-link.active, #aboutNavi .show > .nav-link {
    background-color: #f30;
}
#aboutNavi a {
	color:#f30;
	font-family: 'Dosis', sans-serif;
	font-size:0.8rem;
	letter-spacing:1px;
}
#aboutNavi a.active {
	color:#fff;
}
#aboutNavi a:hover {
	background-color:#ffd4c1;
}
#aboutNavi a.active:hover {
	background-color: #F63;
}
#aboutNavi a .jp-noto {
	display:block;
	color:#000;
	font-weight:500;
	font-size:1.0rem;
}
.aboutpage .title h2 {
	padding:5px 0 5px 20px;
	color:#000;
	border-left:8px solid #000;
}
.aboutpage .title h2 span {
	display:block;
	font-family: 'Dosis', sans-serif;
	font-weight:700;
	font-size:1.2rem;
	color:#f30;
}

#message .pht-r-and-txt img {
	max-width:342px;
	margin-bottom:6rem;
}
#message .name {
	text-align:right;
}
#message .name span {
	font-size:1.8rem;
	margin-left:10px;
	font-weight:900;
}
#message .trim-circle {
	display: inline-block;
	margin:10px;
	border-radius: 50%;
}
#message .pht-3pics {
	width:100%;
	margin-top:50px;
}
#philosophy #sanpou-yoshi .d-flex {
	margin-bottom:10px;
}
#philosophy .d-flex div:nth-child(1) {
	white-space:nowrap;
	width:8em;
	text-align:left;
	font-size:1.6rem;
}
#philosophy .d-flex div:nth-child(2) {
	width:30em;
	text-align:left;
	font-size:1.4rem;
}
#philosophy #sanpou-yoshi .justify-content-end {
	font-size:1.2em;
}

#5pillars img {
	margin:0 auto;
}

/*--ABOUT OUTLINE--*/
#outline table {
	border-top:1px solid #cccccc; 
	box-sizing: border-box;
	width:90%;
	margin:0 auto;
}
#outline th, #outline td{
	box-sizing: border-box;
	border-bottom:1px solid #cccccc;
	font-weight:normal;
}
#outline tr th {
	white-space:nowrap;
	width:10em;
	padding:10px 15px;
	background:#efefef;
}
#outline tr td {
	padding:10px 20px;
}
#outline td.position {
	white-space:nowrap;
}
#outline td.position span {
	display:inline-block;
	margin-right:20px;
	white-space:nowrap;
	width:8em;
}
#outline td.name {
	white-space:nowrap;
}

/*--ABOUT HISTORY--*/
#history table {
	border-top:1px solid #cccccc; 
	box-sizing: border-box;
	width:80%;
	margin:0 auto;
}
#history th ,#history td {
	box-sizing: border-box;
	padding:15px 10px;
	border-bottom:1px solid #cccccc; 
}
#history tr th, 
#history tr td:nth-of-type(1) {
	white-space:nowrap;
}
#history .month {
	display:inline-block;
	text-align:center;
	width:3em;
}
#history .cmp_name {
	display:inline-block;
	padding:3px 10px;
	border-radius:2px;
	color:#fff;
	font-weight:bold;
	font-size:12px;
	text-align:center;
	white-space:nowrap;
	width:7em;
}
#history .cmp_taisei	{ background: #F60;}
#history .cmp_circle	{ background: #FC0;}
#history .cmp_smcc		{ background: #093;}
#history .cmp_aidca		{ background: #09F;}
#history .cmp_hakuho	{ background: #666;}

#prevention .card {
	border:none;
	border-radius: 0rem;
}
#prevention .card-img-top {
    width: 100%;
    border-top-left-radius: calc(0rem - 0px);
    border-top-right-radius: calc(0rem - 0px);
}
#prevention .card-title {
	font-size:1.5rem;
}
#prevention .card-body {
	padding: 1.5rem 0 3rem;
}
#prevention .card-deck .card {
    margin-right: 30px;
    margin-left: 30px;
}


/*--GROUP COMPANIES--*/
#grouppage .sub-title {
	background: url(../images/group/sub_title_bg.jpg) no-repeat center;
	background-size:cover;
}
#g_companies .title-cmp {
    width: 100%;
}
#grouppage #cmp_taisei .title-cmp {
	margin: 20px auto 20px;
}
#g_companies .title-cmp h3 {
	color:#000;
	margin-bottom:20px;
}
#g_companies .title-cmp h3 span {
	display:block;
	margin-bottom:5px;
	font-weight:500;
	font-size: 1rem;
}
.company .col {
	padding-left: 0;
}
.company ul {
	font-size:1rem;
	padding-left:25px;
}
.company ul li {
	margin-bottom:8px;
	line-height:1.5;
}
.company .btn {
	float:right;
	margin:30px 0;
	padding: 1.5rem 3.5rem;
	width: 100%;
	font-size: 1rem;
}
.cmp_imgs > div {
	width:46%;
	float:left;
	margin:10px 2% 0 0;
}
.cmp_imgs > div .trim-circle {
    border-radius: 50%;
}

/**************** MEDIA QUERIES ******************/

@media (min-width: 1230px) {
.container {
    max-width: 1200px;
	padding:0;
}
#g_companies .title-cmp img {
	width: 100%;
	height:350px;
	object-fit: cover;
}
}
@media (min-width: 993px) {
.navbar {
	border-top: 8px solid #F30;
	padding: 0;
	position: relative;
	height: 90px;
	background: #fff;
}
#navbarNav {
	margin-top: 0;
	border-top: none;
	box-shadow: none;
}
.navbar-nav {
	position: absolute;
	top: 0;
	right: 0;
}
.navbar-nav li {
	height: 82px;
	width: 180px;
	border-left: 1px solid #ccc;
	text-align: center;
}
.navbar-nav > li > a > span {
	display: block;
}
.nav-link {
	padding: 1.2rem 0.5em 1em;
}
.navbar-light .navbar-nav li:nth-child(3) {
	background: #000;
}
.navbar-light .navbar-nav li:nth-child(3) > a {
	color: #fff;
}
}
@media (max-width: 992px) {
.navbar-brand {
	margin: 0;
	width: 80%;
	max-width: 239px;
}
.navbar-light .navbar-nav .nav-link {
	border-bottom: 1px solid #ddd;
}
.navbar-nav > li > a > span {
	margin-left:10px;
}
#topAbout_in {
	background-size:60%;
}
#topCompanies .caption-txt h3 span img {
    height: 25px;
}
#topCompanies .caption-txt h3 span {
    font-size: 1.0rem;
}
#topCompanies .caption-txt h3 {
    font-size: 1.4em;
}
#topCompanies .caption-txt {
	padding: 20px 20px;
}
#topCompanies .caption-txt p {
    font-size: 0.85rem;
}
#topCompanies #link_detail .btn {
    height: 100%;
}
#aboutNavi .nav-link {
	flex-basis: 25%;
}
#keyvisual_taisei {
	font-size:calc(1.475rem + 6vw);
}
#keyvisual_catch {
	font-size:calc(0.5rem + 1.5vw);
	white-space:normal;
	width:90%;
}
#outline .title-cmp {
    width:95%;
    margin: 40px auto 30px;
}
#outline table {
	width:95%;
}
#history table {
	width:95%;
}
}
@media (max-width: 768px) {
.container {
    max-width: 90%;
}
.pc { display: none !important; }
.sp { display: block !important; }

.footer-logo img {
	width:15rem;
}
.footer-logo p {
	font-size:0.85rem;
}
.pht-r-and-txt img {
	margin:0 0 2rem 2rem;
}
.pht-l-and-txt img {
	margin:0 2rem 2rem 0;
}
#topAbout_in {
	background-size:70%;
}
.sub-title-txt {
	width:80%;
}
.sub-title-txt p {
    font-size: 1.0em;
}
#message .pht-r-and-txt img {
	max-width:342px;
	margin-bottom:2rem;
}
#outline tr th {
	border-bottom:1px dotted #999;
	width:100%;
	padding:8px 10px;
	display:block;
	background:#efefef;
}
#outline tr td {
	width:100%;
	display:block;
	padding:8px 10px 20px 20px;
}
#prevention .card-deck .card {
    margin-right: 15px;
    margin-left: 15px;
}
.cmp_imgs > div {
    width: 80%;
    float: none;
    margin:5%;
}
}

@media (max-width: 576px) {
.p-text {
	font-size:1.0rem;
}
h2 {
	font-size:1.8rem;
}
h3 {
	font-size:1.6rem;
}
.container {
    max-width: 98%;
}
.navbar-brand {
	width: 50%;
}
.pht-r-and-txt img ,.pht-l-and-txt img  {
	margin:2rem auto;
	float:none;
	display:block;
	width:80%;
}
#pageTop {
    bottom: 30px;
}
.btn {
	padding: 1rem 1rem;
}
.footer-logo img {
    width: 13rem;
}
.footer-logo p {
    font-size: 0.7rem;
}
.footer-copyright {
	text-align:center;
	font-size: 0.6em;
}
#topAbout_in {
	background-size:90%;
}
#topAbout_in .title {
	position:relative;
}
#topAbout_in .title h2 {
	position:absolute;
	top:20px;
}
#topAbout_in .center {
	display:none;
}
#topAbout_in .link-box {
	position:relative;
}
#topAbout_in .link-box button {
	position:absolute;
	bottom:20px;
	padding:1rem 2.5rem;
}
#topCompanies .caption-txt {
    padding: 20px 10px;
}
#topCompanies .caption-txt h3 {
	font-size: 1.4em;
}
#topCompanies .caption-txt h3 span {
    font-size: 1.0rem;
}
#topCompanies .caption-txt p {
	margin: 0.5rem 0 0;
    font-size: 0.7rem;
}
#topBn img.sp {
	width:100%;
	max-width:604px;
}
.sub-title-txt h1 {
	line-height:1.0;
}
.sub-title-txt p {
	margin-top:7px;
}
#aboutNavi .nav-link {
	flex-basis: 50%;
	padding: 0.4rem 0.5em 0.5em;
}
#aboutNavi a {
	font-size:0.7rem;
}
#aboutNavi a .jp-noto {
	font-size:1.0rem;
}
#message .name span {
	display:block;
	line-height:1.1;
}
#philosophy .d-flex div:nth-child(1) {
	font-size:1.1rem;
}
#philosophy .d-flex div:nth-child(2) {
	font-size:1.0rem;
}
#philosophy #sanpou-yoshi .justify-content-end {
	font-size:0.8em;
}
#outline .title-cmp {
    width: 100%;
}
#outline table {
	width:100%;
}
#history th, #history td {
    padding: 8px 8px;
}
#history table {
	border-top:none;
	width:100%;
}
#history tr th {
	border-top:1px solid #ccc;
	border-bottom:1px dotted #999;
	width:100%;
	padding:8px 10px;
	display:block;
	background:#efefef;
/*	font-size:0.85rem;*/
}
#history tr td {
	width:100%;
	display:block;
	padding: 8px 5px 5px;
	border-bottom:none;
/*	font-size:0.8rem;*/
}
#history .cmp_name {
/*	font-size:0.6rem;*/
}
#history tr td.event {
	width:100%;
	display:block;
	border-bottom:1px dotted #999;
	padding:0 5px 5px 3.5em;
}
#history tr td.last {
	padding-bottom:20px;
}
#g_companies .company .p-text {
	margin-top:30px;
}
#g_companies .title-cmp {
	margin: 60px auto 20px;
}
#g_companies .cmp_imgs {
	padding:0;
}
#g_companies .cmp_imgs > div {
    width: 46%;
    float: left;
    margin:2%;
}
}
