@charset "UTF-8";

/*
Theme Name: theme-opus
Theme URI: http://www.magical-remix.co.jp/
Description: 株式会社オプス様専用テーマ
Author: Igarashi
Author URI: http://www.magical-remix.co.jp/
Version: 1.0
*/

/* Global Resets
------------------------------------------------*/
html { overflow-y: scroll; }
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote { margin: 0; padding: 0; }
body {
	line-height: 1.8;
	font-weight: normal;
	font-style: normal;
	font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-size: 15px;
}

a:link { color: #00F; }
a:visited { color: #639; }
a:hover { text-decoration: underline; color: #F00; }
a { overflow : hidden; }
h1,h2,h3,h4,h5,h6 { font-weight:normal; font-size: 100%; }
table { margin:0 auto 0 auto; }
th,td { margin: 0; padding: 0; }
th,td { text-align: left; }
caption,th { text-align: left; margin: auto; }
img { vertical-align:bottom; }
fieldset,img,abbr { border:0; }
ol,ul { list-style: none; }
address,caption,cite,code,dfn,h1,h2,h3,h4,th,var { font-style: normal; font-weight: normal; }

/* Position
------------------------------------------------*/
.align-left { text-align:left; }
.align-center { text-align:center; }
.align-center table { margin:0 auto 0 auto; }
.align-right { text-align:right; }
.float-left { float:left; }
.float-right { float:right; }
.clear-both { clear: both; }
.valign-top { vertical-align: top; }
.valign-middle { vertical-align: middle; }
.valign-bottom { vertical-align: bottom; }

/* Other
------------------------------------------------*/
.nowrap { white-space: nowrap; }
.none { display: none; }
.hidden { visibility: hidden; }
.red { color: #f00; }
.red-bold { color: #FF0000; font-weight: bold; }
.bold { font-weight: bold; }
.italic { font-style: italic; }

/* body,Anchor
------------------------------------------------*/
body {
	background: #fff;
	color: #222;
}
a:link,
a:visited { color: #0e3e8c; }
a:hover { text-decoration: none; color: #8c0e0e; }
.clearfix:after {
	content: "";
	display: block;
	clear: both;
}
.inner {
	width: 960px;
	margin: 0 auto;
}
#pagescroll a {
	z-index: 200;
	position: fixed;
	top: 99%;
	right: 1%;
	box-sizing: border-box;
	width: 60px;
	margin: -70px 0 0 -50px;
	height: 60px;
	padding: 10px;
	font-size: 24px;
	text-align: center;
	background: #555;
	border-radius: 5px;
	opacity: 0.8;
	text-decoration: none;
	text-align: center;
	font-weight: bold;
	color: #fff;
}
#pagescroll a:hover {
	text-decoration: none;
	background: #333;
}

@media screen and (max-width:974px) {
	.inner {
		width: 100%;
		padding: 0 10px;
		box-sizing: border-box;
	}
}
@media screen and (max-width:768px) {
	#pagescroll a {
		width: 40px;
		height: 40px;
		margin: -40px 0 0 -40px;
		padding: 10px;
		font-size: 20px;
		line-height: 20px;
	}
	.wrap_box {
		position: relative;
		height: 0;
		padding-top: 56.25%;
	}
	.wrap_box iframe,
	.wrap_box object,
	.wrap_box embed {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.table-wrap {
		width: 100%;
		overflow: auto;
	}
}

/* header
------------------------------------------------*/
#header {
	display: flex;
	align-items: center;
	padding: 10px 20px 25px;
}
#header a:link,
#header a:visited { text-decoration: none; color: #333; }
#header a:hover { text-decoration: underline; color: #666; }
#header .logo {
	flex-basis: 125px;
}
#header .logo + .logo {
	flex-basis: 180px;
}
#header .box {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	flex-basis: -webkit-calc(100% - 290px);
	flex-basis: calc(100% - 290px);
}
#header .box p {
	width: 100%;
	margin: 0 0 10px;
	text-align: right;
	font-size: 12px;
}
#header .box div {
	margin-left: 10px;
}
#header .box ul {
	display: flex;
}
#header .box ul li a {
	position: relative;
	margin: 0 0 0 20px;
	padding: 0 0 0 10px;
}
#header .box ul li a:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: -5px;
	width: 4px;
	height: 4px;
	border: 2px solid;
	border-color: transparent transparent #999 #999;
	margin: -4px 0 0;
	transform: rotate(-135deg);
}

@media screen and (max-width:768px) {
	#header {
		display: block;
		position: relative;
		height: 85px;
		padding: 10px;
		box-sizing: border-box;
	}
	#header .logo + .logo {
		position: absolute;
		top: 45px;
		left: 125px;
	}
	#header .logo img {
		width: auto;
		height: 65px;
	}
	#header .logo + .logo img {
		height: 20px;
	}
	#header .box {
		display: block;
		position: absolute;
		top: 10px;
		left: 125px;
	}
	#header .box p,
	#header .box ul {
		display: none;
	}
	#header .box div {
		margin: 0;
	}
}

/* nav
------------------------------------------------*/
#nav ul li a {
	display: block;
	text-decoration: none;
	color: #333;
}
#nav ul.level-01 {
	display: flex;
	justify-content: center;
	position: relative;
	z-index: 10000;
	width: 100%;
}
#nav ul.level-01 li {
	flex-grow: 1;
	position: relative;
	text-align: center;
}
#nav ul.level-01 li a {
	flex-grow: 1;
	padding: 10px 0;
	font-size: 16px;
	font-weight: bold;
}
#nav ul.level-01 li a:hover {
	background: #f7f7f7;
}
#nav ul.level-02 {
	display: none;
	position: absolute;
	left: 0;
	top: 48px;
	background: #fff;
	width: 260px;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 5px 0;
	box-sizing: border-box;
}
#nav ul.level-02:before {
	content: "";
	position: absolute;
	top: -29px;
	left: 4em;
	background: #fff;
	width: 15px;
	height: 15px;
	border: 1px solid #ccc;
	border-color: #ccc #ccc transparent transparent;
	-webkit-transform: translateY(20px) rotate(-45deg);
	transform: translateY(20px) rotate(-45deg);
}
#nav ul.level-02.next {
	border-radius: 0;
	border-top-left-radius: 5px;
	border-bottom-left-radius: 5px;
}
#nav ul.level-02 li {
	position: static;
}
#nav ul.level-02 li a {
	position: relative;
	padding: 0 15px 0 5px;
	text-align: left;
	font-size: 13px;
	font-weight: normal;
}
#nav ul.level-02 li a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 10px;
	width: 4px;
	height: 4px;
	border: 1px solid;
	border-color: transparent transparent #999 #999;
	margin: -3px 0 0;
	transform: rotate(-135deg);
}
#nav ul.level-03 {
	position: absolute;
	left: 100%;
	top: -1px;
	background: #fff;
	width: 250px;
	height: 100.5%;
	border: 1px solid #ccc;
	border-top-right-radius: 5px;
	border-bottom-right-radius: 5px;
	padding: 10px 0;
	box-sizing: border-box;
}
#nav ul.level-03.nav-high-place {
	background: #fff url(img/bg-nav-high-place.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-duct {
	background: #fff url(img/bg-nav-duct.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-maintenance {
	background: #fff url(img/bg-nav-maintenance.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-advance-coat {
	background: #fff url(img/bg-nav-advance-coat.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-clo2 {
	background: #fff url(img/bg-nav-clo2.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-scallow {
	background: #fff url(img/bg-nav-scallow.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-allblue {
	background: #fff url(img/bg-nav-allblue.jpg) no-repeat center bottom;
}
#nav ul.level-03.nav-dotman {
	background: #fff url(img/bg-nav-dotman.jpg) no-repeat center bottom;
}
#nav ul.level-02 li a:hover,
#nav ul.level-03 li a:hover,
#nav a.active {
	text-decoration: none;
	font-weight: bold !important;
	color: #0e3e8c;
}
#nav ul.level-02 li a:hover:after,
#nav ul.level-03 li a:hover:after,
#nav a.active:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 10px;
	width: 4px;
	height: 4px;
	border: 1px solid;
	border-color: transparent transparent #333 #333 !important;
	margin: -3px 0 0;
	transform: rotate(-135deg);
}

@media screen and (max-width:768px) {
	#nav ul li a {
		border-bottom: 1px solid #ccc;
		height: 40px;
		box-sizing: border-box;
		line-height: 40px;
		font-size: 16px;
		font-weight: bold;
	}
	#nav ul li:last-child a {
		border: 0;
	}
	#nav ul.level-01 {
		display: block;
		position: absolute;
		background: #eee;
		width: 100%;
	}
	#nav ul.level-01 li {
		z-index: 0;
	}
	#nav ul.level-01 li a {
		padding: 0 20px;
	}
	#nav ul.level-01 li.search-box {
		margin: 15px 0 10px;
	}
	#nav ul.level-02 {
		position: static;
		background: #eee;
		width: 100%;
		border: 0;
		margin: -1px 0 0;
	}
	#nav ul.level-02:before {
		content: none;
	}
	#nav ul.level-02 li a {
		height: auto;
		border: 0;
		padding: 4px 15px 4px 20px;
		line-height: normal;
	}
	#nav ul.level-02 li:last-child a {
		border-bottom: 1px solid #ccc;
	}
	#nav ul li span.toggle-button {
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		width: 39px;
		height: 39px;
		cursor: pointer;
	}
	#nav ul li span.toggle-button:before {
		content: "";
		display: inline-block;
		position: absolute;
		top: 50%;
		right: 19px;
		width: 2px;
		height: 20px;
		margin: -10px 0 0 0;
		background: #aaa;
	}
	#nav ul li span.toggle-button:after {
		content: "";
		display: block;
		content: "";
		position: absolute;
		top: 50%;
		right: 10px;
		width: 20px;
		height: 2px;
		margin-top: -2px;
		background: #aaa;
	}
	#nav ul li span.toggle-button.close:before {
		content: none;
	}
	.menu-trigger,
	.menu-trigger span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
	}
	.menu-trigger {
		cursor: pointer;
		position: absolute;
		top: 0;
		right: 0;
		z-index: 1002;
		background: #fff;
		width: 70px;
		height: 85px;
	}
	.menu-trigger span {
		position: absolute;
		left: 0;
		width: 30px;
		height: 3px;
		background: #25426c;
		margin: 0 0 0 22px;
	}
	.menu-trigger span:nth-of-type(1) {
		top: 30px;
	}
	.menu-trigger span:nth-of-type(2) {
		top: 41px;
	}
	.menu-trigger span:nth-of-type(3) {
		bottom: 30px;
	}
	.menu-trigger.close {
		background: #eee;
	}
	.menu-trigger.close span:nth-of-type(1) {
		-webkit-transform: translateY(20px) rotate(-45deg);
		transform: translateY(20px) rotate(-45deg);
		top: 20px;
	}
	.menu-trigger.close span:nth-of-type(2) {
		opacity: 0;
	}
	.menu-trigger.close span:nth-of-type(3) {
		-webkit-transform: translateY(-20px) rotate(45deg);
		transform: translateY(-20px) rotate(45deg);
		bottom: 22px;
	}
}

/* title
------------------------------------------------*/
#title-area {
	background: #f2f2f2;
	margin: 0 0 30px;
	padding: 115px 0;
	text-align: center;
	font-size: 35px;
	font-weight: bold;
	color: #fff;
}
@media screen and (max-width:768px) {
	#title-area {
		margin: 0 0 10px;
		padding: 40px 0;
		font-size: 25px;
	}
}

/* main
------------------------------------------------*/
#main {
	margin: 0 0 40px;
}
#main a:hover img {
	opacity: 0.8;
}
#main .inner:after {
	content: "";
	display: block;
	clear: both;
}
#main .inner #breadcrumbs {
	margin: 0 0 30px;
	font-size: 13px;
}
#main .inner #content {
	float: left;
	width: 640px;
}
@media screen and (max-width:974px) {
	#main .inner #content {
		float: none;
		margin: 0 auto 30px;
	}
}
@media screen and (max-width:768px) {
	#main .inner #content {
		float: none;
		width: 100%;
	}
	#main img {
		display: block;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
	}
	.table_wrap {
		max-width: 700px;
		overflow-x: auto;
	}
	.table_wrap:-webkit-scrollbar {
		height: 5px;
	}
	.table_wrap:-webkit-scrollbar-track {
		background: #F1F1F1;
	}
	.table_wrap:-webkit-scrollbar-thumb {
		background: #BCBCBC;
	}
	.table_wrap table {
		table-layout: fixed;
		min-width: 100%;
	}
	.table_wrap table th {
		width: 150px;
		min-width: 150px;
	}
	.table_wrap table td {
		width: 150px;
		min-width: 150px;
	}
}

/* post
------------------------------------------------*/
#main .post .title {
	border-bottom: 2px solid #8393ab;
	margin: 0 0 25px;
	padding: 0 0 5px;
	font-size: 28px;
	font-weight: bold;
}
#main .post-body {
	overflow: hidden;
}
#main .post-body:after {
	content: "";
	display: block;
	clear: both;
}
#main .post-body h1 { margin: 0.5em 0; font-size: xx-large; font-weight: bold;}
#main .post-body h2 {
	border-left: 5px solid #0068b7;
	margin: 25px 0 10px;
	padding: 0 0 0 10px;
	font-size: 24px;
	font-weight: bold;
}
#main .post-body h3 {
	border-bottom: 1px solid #0068b7;
	margin: 20px 0 10px;
	padding: 0 0 2px;
	font-size: 20px;
	font-weight: bold;
}
#main .post-body h4 {
	border-left: 5px solid #1355bf;
	margin: 20px 0 10px;
	padding: 0 0 0 10px;
	font-size: 18px;
	font-weight: bold;
	color: #333;
}
#main .post-body h5 {
	background: #e6ebf2;
	padding: 5px 10px;
	margin: 20px 0 10px;
	font-weight: bold;
}
#main .post-body h6 { margin: 0.9em 0; font-size: x-small; font-weight: bold;}
#main .post-body hr {
	border: dotted 1px #999;
	border-style: dotted none none;
	margin: 1.2em 0;
}
#main .post-body p {
	margin: 0.9em 0;
}
#main .post-body table {
	width: 100%;
	margin-top: 0.5em;
	margin-bottom: 1.5em;
	border-collapse: collapse;
	border: solid 1px #999;
}
#main .post-body table caption {
	margin-top: 1em;
	text-align: left;
}
#main .post-body table th,
#main .post-body table td {
	border: solid 1px #ccc;
	padding: 5px;
}
#main .post-body table th {
	background: #e5efff;
	text-align: center;
	color: #333;
}
#main .post-body ol {
	padding-left: 2em;
	list-style-type: decimal;
	margin: 1em 0;
}
#main .post-body ul {
	padding-left: 1.5em;
	list-style-type: disc;
	margin: 1em 0;
}
#main .post-body .wp-block-gallery,
#main .post-body .blocks-gallery-grid {
	padding-left: 0;
}
#main .post-body dd { margin-left: 2.5em; }
#main .post-body blockquote { margin: 1em 2.5em; }
#main .post-body img {
	max-width: 100%;
	height: auto;
}
#main .post-body img.alignright { float: right; margin: 0 0 10px 20px; }
#main .post-body img.alignleft { float: left; margin: 0 20px 10px 0; }
#main .post-body img.aligncenter { display: block; margin: 0 auto; }

@media screen and (max-width:768px) {
	#main .post-body {
		overflow: auto;
	}
	#main .post .title {
		font-size: 25px;
	}
	#main .post-body h2 {
		font-size: 22px;
	}
	#main .post-body h3 {
		font-size: 20px;
	}
	#main .post-body h4 {
		font-size: 17px;
	}
	#main .post-body img.alignright,
	#main .post-body img.alignleft { float: none; margin: 5px auto; }
	#main .post-body img.aligncenter { margin: 5px auto; }
}
@media screen and (max-width:480px) {
	#main .post-body table th,
	#main .post-body table td {
		font-size: 14px;
	}
}

/* side
------------------------------------------------*/
#main .inner #side {
	float: right;
	width: 250px;
}
#main .inner #side #sidenav h3 {
	background: #25426c;
	padding: 5px 10px;
	font-size: 17px;
	font-weight: bold;
	color: #fff;
}
#main .inner #side #sidenav ul {
	margin: 0 0 20px;
}
#main .inner #side #sidenav ul ul {
	margin: 0;
}
#main .inner #side #sidenav ul li {
	background: #e5efff;
	margin: 0 0 2px;
	padding: 7px 5px 7px 20px;
	line-height: 1.5;
}
#main .inner #side #sidenav ul li li {
	padding: 5px 5px 0 15px;
}
#main .inner #side #sidenav ul li a {
	position: relative;
	text-decoration: none;
}
#main .inner #side #sidenav ul li a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: -15px;
	width: 4px;
	height: 4px;
	border: 1px solid;
	border-color: transparent transparent #666 #666;
	margin: -3px 0 0;
	transform: rotate(-135deg);
}
#main .inner #side #sidenav ul li li a:after {
	left: -13px;
	border-color: transparent transparent #666 transparent;
	transform: rotate(0);
	margin: -6px 0 0;
}
#main .inner #side #sidenav ul li a:hover {
	text-decoration: underline;
}
#main .inner #side #sidenav + ul li {
	margin: 0 0 10px;
}
#main .inner #side #sidenav + ul li img {
	max-width: 100%;
	height: auto;
}

@media screen and (max-width:974px) {
	#main .inner #side {
		float: none;
		width: 640px;
		margin: 0 auto;
	}
}
@media screen and (max-width:768px) {
	#main .inner #side {
		width: 100%;
	}
	#main .inner #side #sidenav + ul {
		display: none;
	}
}

/* .search-box
------------------------------------------------*/
.search-box input[type="text"] {
	border: solid 1px #ccc;
	padding: 5px;
	font-size: 14px;
}
.search-box input[type="submit"] {
	display: inline-block;
	background: #888;
	border: none;
	border-radius: 3px;
	padding: 7px 10px;
	line-height: 1;
	cursor: pointer;
	font-size: 15px;
	color: #fff;
}
@media screen and (max-width:768px) {
	.search-box input[type="text"] {
		width: 75%;
		box-sizing: border-box;
	}
	.search-box input[type="submit"] {
		width: 20%;
		box-sizing: border-box;
	}
}

/* #contactbox
------------------------------------------------*/
#contactbox {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	padding: 10px 0 0 225px;
	border: 1px solid #0e3e8c;
	border-radius: 2px;
	box-sizing: border-box;
}
#contactbox img {
	position: absolute;
	top: -10px;
	left: 70px;
}
#contactbox h3 {
	width: 100%;
	margin: 5px 0;
	font-size: 26px;
	font-weight: bold;
	color: #0e3e8c;
}
#contactbox dl {
	margin: 0 20px 0 0;
}
#contactbox dd {
	font-size: 13px;
}
#contactbox dd span {
	font-size: 24px;
	font-weight: bold;
}
#contactbox p a {
	display: block;
	background: #db4c3c;
	background: -moz-linear-gradient(top,  #db4c3c 0%, #820d00 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#db4c3c), color-stop(100%,#820d00));
	background: -webkit-linear-gradient(top,  #db4c3c 0%,#820d00 100%);
	background: -o-linear-gradient(top,  #db4c3c 0%,#820d00 100%);
	background: -ms-linear-gradient(top,  #db4c3c 0%,#820d00 100%);
	background: linear-gradient(to bottom,  #db4c3c 0%,#820d00 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#db4c3c', endColorstr='#820d00',GradientType=0 );
	width: 255px;
	height: 61px;
	border-radius: 5px;
	text-align: center;
	text-decoration: none;
	line-height: 61px;
	font-size: 17px;
	font-weight: bold;
	color: #fff;
}
#contactbox p a:hover {
	background: #a42719;
}

@media screen and (max-width: 768px) {
	#contactbox.inner {
		display: block;
		width: -webkit-calc(100% - 20px);
		width: calc(100% - 20px);
		margin: 0 10px;
		padding: 10px;
	}
	#contactbox img {
		top: 10px;
		left: 10px;
		width: 65px;
	}
	#contactbox h3 {
		width: auto;
		margin: 0;
		padding: 0 0 0 75px;
		font-size: 20px;
	}
	#contactbox dl {
		margin: 0 0 10px;
		text-align: center;
		line-height: 1.3;
	}
	#contactbox dt {
		margin: 5px 0;
	}
	#contactbox p a {
		margin: 0 auto;
	}
}
@media screen and (max-width: 480px) {
	#contactbox dt span {
		display: block;
	}
	#contactbox dd span {
		display: block;
	}
}

/* #sub-nav
------------------------------------------------*/
#sub-nav {
	display: flex;
	justify-content: flex-end;
	background: #dbe0e6;
	margin: 35px 0 20px;
	padding: 10px 0;
}
#sub-nav li {
	margin: 0 25px 0 0;
}
#sub-nav li a {
	position: relative;
	text-decoration: none;
	color: #222;
}
#sub-nav li a:before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: -15px;
	width: 4px;
	height: 4px;
	border: 1px solid;
	border-color: transparent transparent #666 #666;
	margin: -3px 0 0;
	transform: rotate(-135deg);
}

@media screen and (max-width: 480px) {
	#sub-nav li a {
		font-size: 13px;
	}
}

/* footer
------------------------------------------------*/
#footer {
	padding: 0 0 20px;
}
#footer dl {
	display: flex;
	align-items: center;
}
#footer dt {
	margin: 0 30px 0 0;
}
#footer ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 30px 0 10px;
}
#footer ul:after {
	content: "";
	display: block;
	width: 33%;
}
#footer ul li {
	margin: 0 0 10px;
}
#footer ul li img {
	max-width: 100%;
	height: auto;
}

@media screen and (max-width: 768px) {
	#footer {
		padding: 0 10px 20px;
	}
	#footer dl {
		display: block;
	}
	#footer dt {
		margin: 0 0 5px;
	}
	#footer ul {
		justify-content: flex-start;
	}
	#footer ul li {
		margin: 0 10px 10px 0;
	}
}
