@import url(./page-index.css);
@import url(./page-news.css);
@import url(./page-service.css);
@import url(./page-works.css);
@import url(./page-voices.css);
@import url(./page-company.css);
@import url(./page-contact.css);
@import url(./page-privacy.css);
@charset "UTF-8";
/*--------------------------------------------------
【更新履歴】
2020.1.28 ：マニュアル作成にあたり内容整理。
2019.5.29 ：メインイメージ・ヘッダー・フッターの記述を整理、最適化。
2019.4.10 ：単位の混在を整理。
2018.11.29：不要な要素などを削除。
2018.05.24：	共通要素の色とBGの設定を分離せず一か所にまとめるようにしました。
2018.05.17：	更新履歴の項を追加。メディアクエリに印刷時の記述を追加。
			@media screen and ~~ -> @media print, screen and~~

目次
・基本ルール
・ベースレイアウト
	└ヘッダー・ナビゲーション・メインイメージ・コンテンツ・フッター
・コンテンツ部分の共通スタイル
・サイト全体で使う共通スタイル
・ページ個別のスタイル
	└index,about,contactなど

■normalize.cssについて
各ブラウザ特有のズレなどをリセットするためのCSSです。
こちらは編集しないで下さい。
全てのスタイルはstyle.cssで指定して下さい。

■メディアクエリについて
記述例：
ウィンドウサイズが600px以上（PC）のCSSを指定する場合
@media print, screen and (min-width: 600px) {
	header {
		font-size: 1.5rem;
	}
	header p {
		color: red;
	}
}

■本番公開前のクリーンアップ
下記のようなクリーンアップサービスなどを使用して
コメントや不要な改行を削除して下さい。
https://csscompressor.com/
--------------------------------------------------*/
/*--------------------------------------------------
	基本ルール
--------------------------------------------------*/
/*font-sizeはremで指定しています。15px=1.5rem。*/
html {
	font-size: 62.5%;
}
body {
	font-size: 15px;
	font-size: 1.5rem;
	font-family: "游ゴシック体","Yu Gothic",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS P Gothic",sans-serif;
	font-weight: 500;/*細めのフォントを見やすくする。デザイン次第で不要なら削除。*/
	line-height: 1.5;
	color: #333;
	background: #e3e1e4;
	background:repeat url(../img/index/background-img@2x.webp) 100%;
}
/*========= LoadingのためのCSS ===============*/
/* Loading背景画面設定 */
#splash {
/*fixedで全面に固定*/
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 999;
	background:#eee;
	text-align:center;
	color:#fff;
}
/* Loading画像中央配置 */
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
/* Loading アイコンの大きさ設定 */
#splash_logo svg{
	width:300px;
}
/*=============== SVGアニメーション内の指定 =================*/
/*アニメーション前の指定*/
#mask path {
	fill-opacity: 0;/*最初は透過0で見えない状態*/
	transition: fill-opacity .5s;/*カラーがつく際のアニメーション0.5秒で変化*/
	fill: none;/*塗りがない状態*/
	stroke: #333;/*線の色*/
}
/*アニメーション後に.doneというクラス名がで付与された時の指定*/
#mask.done path{
	fill: #FF9C00;/*塗りの色*/
	fill-opacity: 1;/*透過1で見える状態*/
	stroke: none;/*線の色なし*/
}
table {
	table-layout: fixed;/*IE11*/
	border-collapse: collapse;
	border-spacing: 0;
}
p, h1, h2, h3, h4, h5, h6, ul, li, ol, dl, dt, dd, figure {
	margin: 0;
	padding: 0;
}
ul, li, ol, dl, dt, dd {
	list-style: none;
}
a {
}
a:hover {
	text-decoration: none;
}
strong {
	font-weight: bold;
}
img {
	margin: 0;
	vertical-align: middle;
	border: none;
	-webkit-backface-visibility: hidden;/*Chromeで画像がぼやける現象の対策ですが、線の細い画像はこれによってジャギが目立つ可能性があります。適宜ON・OFFして下さい。*/
}

.flex{
	display: flex;
}
.pc-only{
	display: none;
}
.sp-only{
	display: block;
}
@media print, screen and (min-width: 600px) {
	.pc-only{
		display: block;
	}
	.sp-only{
		display: none;
	}
}

/*--------------------------------------------------
	ベースレイアウト
--------------------------------------------------*/
header, .mainimg, .wrapper, footer {
	width: 100%;
}
/*ヘッダー*/

header{
	position: absolute;
	z-index: 20;
}

header .hdr_bar {
	width: 100%;
	background: #23322d;
}
header .hdr_bar p {
	padding: 8px;
	font-size: 1.2rem;
	color: #fff;
}
header .hdr_box {
	position: relative;
	width: 100%;
}
header .hdr_box h1 {
	width: 60%;
	width: calc(100% - 144px);
}
header .hdr_box h1 a {
	position: relative;
	display: block;
	width: 100%;
	height: 72px;
}
header .hdr_box h1 img {
	display: block;
	position: absolute;
	top: 50%;
	left: 4px;
	transform: translate(0%, -50%);
	max-width: 96%;
	height: auto;
	max-height: 60px;
}
header .hdr_contact {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
}
header .hdr_contact .tel,
header .hdr_contact .navbtn {
	width: 72px;
	height: 72px;
}
header .hdr_contact .tel a,
header .hdr_contact .navbtn {
	text-indent: -7777px;
	overflow: hidden;
	background-color: rgba(255,255,255,0.6);
	background-position: center;
	background-size: 50%;
	background-repeat: no-repeat;
	border-left: 1px #5fad83 solid;
}
header .hdr_contact .tel a {
	display: block;
	width: 100%;
	height: 100%;
	background-image:  url(../img/ico_hdrtel.png);
}
header .hdr_contact .mail {
	display: none;
}
header .hdr_contact .navbtn {
	background-image: url(../img/ico_navbtn.png);
}
header .hdr_contact .navbtn.navopen {
	background-image: url(../img/ico_navbtn-close.png);
}
@media print, screen and (min-width: 600px) {
	header {
		display: block;
	}
	.sp-only{
		display: none;
	}
	#header.fixed{
		position: fixed;/*fixedを設定して固定*/
		z-index: 999;/*最前面へ*/
		top:0;/*位置指定*/
		left:0;/*位置指定*/
	}
	header .hdr_box {
		display: flex;
		justify-content: space-between;
		width: 100%;
		padding: 0;
		margin: 0 auto;
	}
	header .hdr_box h1 {
		width: 30%;
		max-height: inherit;
		padding: 0;
	}
	header .hdr_box h1 a {
		width: 100%;
		height: 100%;
	}
	header .hdr_box h1 img {
		width: 100%;
		height: auto;
		max-height: inherit;
	}
	header .hdr_contact {
		position: relative;
		width: 42%;
	}
	header .hdr_contact .tel {
		width: auto;
		height: auto;
		margin: 0 16px 0 0;
	}
	header .hdr_contact .tel a {
		padding: 8px 0 0;
		text-indent: 0;
		text-align: right;
		border: 0;
		background: none;
	}
	header .hdr_contact .tel a:hover {
		opacity: 0.7;
	}
	header .hdr_contact .tel img {
		width: 100%;
		height: auto;
	}
	header .hdr_contact .mail {
		position: relative;
		display: block;
	}
	header .hdr_contact .mail a {
		display: block;
		width: 100%;
		height: 100%;
		padding: 28px;
		box-sizing: border-box;
		text-indent: -7777px;
		overflow: hidden;
		background-color: #5fad83;
		background-image: url(../img/mail_header.png);
		background-position: center;
		background-repeat: no-repeat;
		background-size: 38px auto;
	}
	header .hdr_contact .mail a:hover {
		background-color: #6ec897;
	}
	header .hdr_contact .navbtn {
		display: none;
	}
}
.fixed .hdr_contact {/*一定距離スクロールすると電話・メニューボタンがページ右上に固定されるようにする*/
	position: fixed;
	top: 0;
	right: 0;
	z-index: 999;
}
@media print, screen and (min-width: 600px) {
	.fixed .hdr_contact {
		position: relative;
	}
}
/*ナビゲーション*/
nav {
	position: absolute;
	width: 80%;
	padding: 16px 32px 41px;
	box-sizing: border-box;
	top: 0;
	left: 10%;
	z-index: 999;
	transition: 0.4s cubic-bezier(0.38, 0, 0.25, 1);
	background: #fff;
	border-radius: 4px;
	color: #000;
}
/*メニューアイコンをタップした際のナビの動き*/
nav.navopen {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	transition: 0.4s cubic-bezier(0.38, 0, 0.25, 1);
}
nav ul {
}
nav li {
	border-bottom: 1px solid #FF9C00;
}
nav li a {
	display: block;
	width: 100%;
	height: 100%;
	padding: 12px 0;
	text-decoration: none;
	color: #000;
	font-size: 3vw;
	font-family: yu-gothic-pr6n, sans-serif;
	font-weight: 400;
	font-style: normal;
}
@media print, screen and (min-width: 600px) {
	nav {
		width: 100%;
		height: 5.359375vw;
		padding: 0;
		position: relative;
		top: auto;
		left: auto;
		transition: none;
		border-radius: 0;
	}
	.nav-inner{
		width: calc(100% - 10vw);
		height: 5.359375vw;
		align-items: center;
		justify-content: space-between;
		margin: 0 auto;
	}
	.nav-logo{
		width: 17.1875vw;;
	}
	.nav-logo img{
		width: 100%;
	}
	nav ul {
		width: 58vw;
		display: flex;
		flex-flow: nowrap;
		justify-content: space-around;
	}
	.nav-inner ul ul.sublist{
		display: block;
	}
	/* .nav-inner ul ul.sublist::after{
		position: absolute;
		bottom: -9px;
		left: 1em;
		width: 0;
		height: 0;
		content: '';
		border-width: 10px 10px 0 10px;
		border-style: solid;
		border-color: #094 transparent transparent transparent;
		}
	} */
	.nav-inner ul ul.sublist li a{
		color: #fff;
	}
	nav li {
		position: relative;
		width: 100%;
		margin: 0;
		box-sizing: border-box;
		border-bottom: 0;
		text-align: center;
	}
	nav li:first-child {
		background: none;
	}
	nav li a,
	nav li span {
		display: inline-block;
		height: auto;
		padding: 0;
		transition: all .3s;
		font-size: 1.5vw;
	}
	nav li span:hover {
		cursor: pointer;
	}
	nav li a:hover,
	nav li.current a {
		background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg  xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='30px' height='30px'%3E%3Cpath fill-rule='evenodd'  fill='rgba(255, 255, 255, 1)' d='M-0.000,-0.000 L30.000,-0.000 L30.000,30.000 L-0.000,30.000 L-0.000,-0.000 Z'/%3E%3C/svg%3E");
		background-position: 0 bottom;
		background-repeat: no-repeat;
		background-size: 100% 6px;
	}

	nav li.has-child ul{
		/*絶対配置で位置を指定*/
		position: absolute;
		left:-2vw;
		top:4vw;
		z-index: 4;
		color: #fff;
		/*形状を指定*/
		background:rgba(255, 156, 0, .8);
		opacity: .8;
		width:14.0625vw;
		/*はじめは非表示*/
		visibility: hidden;
		opacity: 0;
		/*アニメーション設定*/
		transition: all .3s;
	}
	nav li.has-child ul::after{
		/*絶対配置で位置を指定*/
		position: absolute;
		top: -.9vw;
		left: 42%;
		width: 0;
		height: 0;
		content: '';
		border-right: 1vw solid transparent;
		border-bottom: 1vw solid #FF9C00;
		opacity: .8;
		border-left: 1vw solid transparent;
	}
	/*hoverしたら表示*/
	.nav-inner .has-child:hover > ul,
	.nav-inner .has-child ul li:hover > ul,
	.nav-inner .has-child:active > ul,
	.nav-inner .has-child ul li:active > ul{
		visibility: visible;
		opacity: 1;
	}
}
/* Navbar & Navmenu color */
.hamburger {
	display: block;
	height: 60px;
	margin-left: auto;
	position: relative;
	z-index: 20;
	width: 60px;
	border: none;
	background-color: transparent;
}
.hamburger.-active .hamburger__line {
	background-color: transparent;
}
.hamburger.-active .hamburger__line::before {
	top: 0;
	transform: rotate(45deg);
}
.hamburger.-active .hamburger__line::after {
	top: 0;
	transform: rotate(-45deg);
}

.hamburger__line {
	display: block;
	height: 2px;
	position: absolute;
	top: 6.133333333333333 vw;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	background-color: #FF9C00;
	transition: 0.4s;
}
.hamburger__line:before,
.hamburger__line:after {
	content: "";
	display: block;
	height: 100%;
	position: absolute;
	width: 100%;
	background-color: #FF9C00;
	transition: inherit;
}
.hamburger__line:before {
	top: -1.6vw;
}
.hamburger__line:after {
	top: 1.6vw;
}
.hamburger__text {
	position: absolute;
	bottom: -2vw;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
}
/* .hamburger__text::before {
	content: "メニュー";
	text-align: center;
	color: #172e59;
	font-size: 10px;
	font-weight: 900;
} */
.header {
position: fixed;
	width: 100vw;
	height: 14vw;
	z-index: 10;
	top: 0;
	background-color: #F7F7ED;
}

.head-logo{
	margin-left: 3vw;
}

.header__nav-area {
	position: fixed;
	top: 0;
	left: -100%;
	z-index: 15;
	height: 100vh;
	width: 100vw;
	visibility: hidden;
	padding-top: 60px;
	background-color: #F8F8E6;
	transition: 0.4s;
}
.header__nav-area.-active {
	left: 0;
	visibility: visible;
}
.global-navigation {
	position: relative;
	padding-top: 40px;
	padding-right: 25px;
	padding-bottom: 40px;
	padding-left: 25px;
}

.global-navigation .nav-logo{
	text-align: center;
	margin-top: 50px;
}
.global-navigation .tel-sp{
	position: absolute;
	top: -16vw;
	left: 0;
	width: 18vw;

}
.global-navigation .tel-sp img{
	width: 100%;
}
.global-navigation__list > li {
	padding-bottom: 20px;
	border-bottom: 2px solid #FF9C00;
}
.global-navigation__list > li + li {
	margin-top: 20px;
}
.global-navigation__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #333;
	font-weight: 900;
	transition: color 0.4s;
	font-size: 3vw;
}
.global-navigation__link.-accordion {
	position: relative;
	background: none;
	border: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 100%;
	padding: 12px 0;
}
.global-navigation__link.-accordion::after {
	content: '';
	display: block;
	height: 12px;
	position: absolute;
	top: 50%;
	right: 5px;
	width: 2px;
	background-color: #FF9C00;
	transform: translateY(-50%);
	transition: transform 0.4s;
}
.global-navigation__link.-accordion::before {
	content: '';
	display: block;
	height: 2px;
	position: absolute;
	top: 50%;
	right: 0;
	width: 12px;
	background-color: #FF9C00;
	transform: translateY(-50%);
}
.global-navigation__link.-active::after {
	transform: translateY(-50%) rotate(-90deg);
}
.accordion {
	height: 0;
	overflow: hidden;
	visibility: hidden;
	transition: 0.4s;
}
.accordion.-active {
	height: auto;
	padding-top: 30px;
	visibility: visible;
}
.accordion__list li {
	font-size: 0.75rem;
}
.accordion__list li + li {
	 margin-top: 21px;
}
.accordion__link {
	color: #333;
}
.mail-tel{
	display: flex;
	width: 100%;
	justify-content: center;
	column-gap: 3vw;
}
/*メインイメージ*/
.mainimg {
	position: relative;
	width: 100%;
	height: 350px;
	/*デフォルトの背景画像*/
	background-image: url(../img/index/index-mv01@2x.webp);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
.mainimg .mainimg_box {
	width: 100%;
	height: 100%;
}
.mainimg .mainimg_box .catch {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	text-align: center;
	box-sizing: border-box;
	z-index: 10;
}
.mainimg .mainimg_box .catch img {
	width: 100%;
	height: auto;
	margin-bottom: 8px;
	filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.5));
}
.mainimg .mainimg_box .catch p {
	font-weight: 600;
	font-size: 4.5vw;
	text-align: center;
	color: #fff;
	filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.5));
}
@media print, screen and (min-width: 600px) {
	.mainimg .mainimg_box {
	}
}
/*コンテンツ部分*/
/*ここではコンテンツ部分のベースレイアウトのみ決める。本文のスタイル設定は「コンテンツ部分の共通スタイル」の項で行う*/
.breadcrumbs {
	padding: 1vw 1.4vw 1.2vw;
}
.breadcrumbs span {
	font-size: 3vw;
}
.breadcrumbs span.arrow {
	color: #ff9c00;
}
.breadcrumbs span a {
	color: #000;
}
.breadcrumbs span a.home {
	display: inline-block;
	width: 6vw;
	aspect-ratio: 1 / 0.87;
	vertical-align: bottom;
	text-indent: -7777px;
	background: url(../img/common/mark-orange@2x.webp) 0 0/auto 100% no-repeat;
}


/* サイドボタンのコンテナ */
.side-buttons {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    z-index: 1000;
}

.side-buttons a{
	width:10vw;
}


.side-buttons a img{
	width:100%;
}

/* 各ボタンのスタイル */
.side-button {
    display: block;
    background-color: #004d40; /* 深いグリーン（好みに変更可能） */
    color: white;
    text-align: center;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    border-radius: 5px 0 0 5px;
    transition: all 0.3s ease;
    writing-mode: vertical-rl; /* 縦書き対応 */
}

/* ホバー時の動き */
.side-button:hover {
    background-color: #00796b;
    padding-right: 30px;
}
@media print, screen and (min-width: 600px) {
	.side-buttons a{
	width:auto;
}


.side-buttons a img{
	width:100%;
}
}


.wrapper {
	box-sizing: border-box;
}
.wrapper {
	position: relative;
}
.wrapper .content {
	width: 100%;
}
.wrapper .content main {
	width: 100%;
	padding: 0;
}
@media print, screen and (min-width: 600px) {
	.mainimg {
		height: 400px;
	}
	.mainimg .mainimg_box .catch img {
		width: 212px;
	}
	.mainimg .mainimg_box .catch p {
		font-size: 2.4rem;
	}
	.breadcrumbs {
		padding-left: calc(100% - 92vw);
		padding-right: calc(100% - 92vw);
		margin-top: 5.5vw;
	}
	.breadcrumbs span {
		font-size: 1.2vw;
	}
	.breadcrumbs span a.home {
		width: 2.4vw;
	}
	.contact_mail-tel{
		top: 10vw;
	}
	.contact_mail-tel div{
		width: 5.78125vw;
		margin-left: auto;
	}
	.contact_mail-tel img{
		width: 100%;
	}
	.wrapper {
		position: relative;
	}
	.wrapper .content {
		width: 100%;
	}
	.wrapper .content main {
		width: 100%;
		padding: 0;
	}
}
/*フッター*/
footer{
	position: relative;
	background-color: #fff;
}
footer .ftr-bg{
	position: absolute;
	width: 21.25vw;
	bottom: 0;
}
footer .ftr-bg img{
	width: 100%;
}
footer a{
	text-decoration: none;
}
footer .ftr_nav {
	display: none;
	width: calc(100% - 20vw);
	padding: 1.25vw 0;
	margin: 0 auto;
}
footer .ftr_nav ul {
	width: 100%;
	font-size: 0;
	text-align: left;
	justify-content: space-between;
}
footer .ftr_nav li {
	display: inline-block;
	padding: 0 16px;
	font-size: 1.5rem;
}
footer .ftr_box {
	width: 100%;
	padding:0;
	height: 30vw;
	margin: 0 auto;
	flex-flow: wrap;
	justify-content: space-between;
}
footer .ftr_logo-add{
	text-align-last: left;
	width: 100%;
	margin-left: auto;
	margin-right: 5vw;
}
footer .ftr_box .ftr_logo-add address{
	width: 100%;
	padding-left: 1vw;
	margin: 0;
}
footer .ftr_box .logo {
	padding: 4vw 0;
	width: 46vw;
	margin: 0 auto;
}
footer .ftr_box .logo img {
	width: 100%;
	height: auto;
}
footer .ftr_box .copy {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	text-align: center;
	color: #333;
	height: 3.5937499999999996vw;
}
@media print, screen and (min-width: 600px) {
	footer{
		position: relative;
	}
	footer .ftr-bg{
		position: absolute;
		width: 21.25vw;
		bottom: 0;
	}
	footer .ftr-bg img{
		width: 100%;
	}
	footer a{
		text-decoration: none;
	}
	footer .ftr_nav {
		display: block;
		width: calc(100% - 20vw);
		padding: 1.25vw 0;
		margin: 0 auto;
	}
	footer .ftr_nav ul {
		width: 100%;
		font-size: 0;
		text-align: left;
		justify-content: space-between;
	}
	footer .ftr_nav li {
		display: inline-block;
		padding: 0 16px;
		font-size: 1.5rem;
	}
	footer .ftr_box {
		width: 100%;
		height: auto;
		padding:0;
		margin: 0 auto;
		display: flex;
		flex-flow: wrap;
		justify-content: space-between;
	}
	footer .ftr_logo-add{
		text-align-last: left;
		width: 33.4375vw;
		margin-left: auto;
		margin-right: 5vw;
		align-items: center;
	}
	footer .ftr_box .ftr_logo-add address{
		width: 75%;
		padding-left: 1vw;
		margin: 0;
	}
	footer .ftr_box .logo {
		width: 25%;
	}
	footer .ftr_box .logo img {
		height: auto;
	}
	footer .ftr_box address {
		width: 34%;
		font-size: 1.5rem;
		text-align: right;
	}
	footer .ftr_box .copy {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		text-align: center;
		background-color: #FF9C00;
		color: #fff;
		height: 3.5937499999999996vw;
	}
	footer {
		margin-top: 0vw;
		color: #000;
		background: #fff;
		height: auto;
	}
	footer .ftr_nav li a {
		color: #000;
		font-size: 1.2vw;
	}
	footer .ftr_nav li a::before{
		content: '■';
		color: #FF9C00;
	}
	footer .ftr_nav li ul li a::before{
		content: none;
	}
	footer ul.sub-menu {
		display: grid;
		font-size: 1.4063vw;
	}
	footer ul.sub-menu li::before{
		content: '─';
		color: #FF9C00;
	}

	footer .ftr_box .logo {
		width: 45%;
		margin: 0 0 16px;
	}
	footer .ftr_box .logo img {
		width: 100%;
		height: 100%;
	}
	footer .ftr_box address {
		margin: 0 0 16px;
		font-size: 1.3rem;
		font-style: normal;
	}
	footer .ftr_box .copy {
		font-size: 1.4rem;
		font-weight: normal;
	}
}
/*--------------------------------------------------
	コンテンツ部分の共通スタイル
--------------------------------------------------*/
section {
	padding: 7.1825vw 0;
}
section h2 {
	font-size: 4.4vw;
}
section .sec_content {
}
section .sec_content::after {
	content: " ";
	display: block;
	clear: both;
}
section .sec_content h3 {
}
section .sec_content p,
section .sec_content ul,
section .sec_content ol,
section .sec_content dl {
	margin: 0 0 16px;
}
section .sec_content table {
	width: 100%;
	margin: 0 0 16px;
	border-width: 1px;
	border-style: solid;
	border-color: #b6b3b8;
}
section .sec_content table caption {
	padding: 10px;
	font-size: 1.6rem;
	font-weight: bold;
	background-color: #b6b3b8;
}
section .sec_content table th,
section .sec_content table td {
	padding: 10px;
	border-width: 1px;
	border-style: solid;
	border-color: #b6b3b8;
	background-color: #fff;
}
section .sec_content table th {
	background-color: #d8d7d9;
}
@media print, screen and (min-width: 600px) {
	section h2 {
	}
	section{
		padding: 0;
	}
	section .sec_content {
		padding: 0;
	}
}
/*--------------------------------------------------
	サイト全体で使う共通スタイル
--------------------------------------------------*/
/*floatした子要素を内包する親要素にclass="clear"を
付与することでfloatを解除します。*/
.clear::after {
	content: " ";
	display: block;
	clear: both;
}
/*== ボタン共通設定 */
.btn-box{
	display: flex;
	margin: 0 auto;
}
.btn{
	margin: 0 auto;
	/*アニメーションの起点とするためrelativeを指定*/
	position: relative;
	overflow: hidden;
	/*ボタンの形状*/
	text-decoration: none;
	display: inline-block;
	padding: 2vw 5vw;
	background: #FF9C00;
	text-align: center;
	outline: none;
	/*アニメーションの指定*/
	transition: ease .2s;
}
/*ボタン内spanの形状*/
.btn span {
	position: relative;
	font-size: 5vw;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
}
.btn:hover span{
	color:#fff;
}
/*== 背景が流れる（左から右） */
.bgleft:before {
	content: '';
	/*絶対配置で位置を指定*/
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	/*色や形状*/
	background:#FF9C00;/*背景色*/
	width: 100%;
	height: 100%;
	/*アニメーション*/
	transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: right top;
}
/*hoverした際の形状*/
.bgleft:hover:before{
	transform-origin:left top;
	transform:scale(1, 1);
}
@media print, screen and (min-width: 600px) {
	/*== ボタン共通設定 */
	.btn-box{
		display: flex;
		margin:  auto;
	}
	.btn{
		margin: 0 auto;
		/*アニメーションの起点とするためrelativeを指定*/
		position: relative;
		overflow: hidden;
		/*ボタンの形状*/
		text-decoration: none;
		display: inline-block;
		padding: 1vw 2vw;
		background: #000;
		text-align: center;
		outline: none;
		/*アニメーションの指定*/
		transition: ease .2s;
	}
	/*ボタン内spanの形状*/
	.btn span {
		position: relative;
		font-size: 1.5625vw;
		z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
		color:#fff;
	}
	.btn:hover span {
		color:#fff;
	}
	.top_client-voice .btn-box{
		margin: 3vw auto 0;
	}
}
/*ページャー*/
ul.pagination {
	margin: 16px 0 0;
	text-align: center;
}
ul.pagination .page_num {
	display: none;
}
ul.pagination li {
	display: inline-block;
	margin: 0 2px;
	font-size: 3.4vw;
	border: 1px solid #707070;
	background: #fff;
}
ul.pagination li.current {
	padding: 2.2vw 3.2vw;
}
ul.pagination li:hover,
ul.pagination li.current {
	color: #fff;
	background: #000;
	border: 1px solid #000;
}
ul.pagination li a {
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	padding: 2.2vw 3.2vw;
	color: #202a56;
	text-decoration: none;
}
ul.pagination li:hover a {
	color: #fff;
}
ul.pagination li.first,
ul.pagination li.prev,
ul.pagination li.next,
ul.pagination li.last {
	border: 0;
	background: none;
}
ul.pagination li.first a,
ul.pagination li.prev a,
ul.pagination li.next a,
ul.pagination li.last a {
	text-indent: -7777px;
	background-position: top 50% left 50%;
	background-size: 90% auto;
	background-repeat: no-repeat;
}
ul.pagination li.first a:hover,
ul.pagination li.prev a:hover,
ul.pagination li.next a:hover,
ul.pagination li.last a:hover {
	opacity: 0.6;
}
ul.pagination li.first a {
	background-image: url(../img/common/arr3_l.svg);
}
ul.pagination li.prev a {
	padding: 2.2vw 3.6vw;
	background-image: url(../img/common/arr2_l.svg);
}
ul.pagination li.next a {
	padding: 2.2vw 3.6vw;
	background-image: url(../img/common/arr2.svg);
}
ul.pagination li.last a {
	background-image: url(../img/common/arr3.svg);
}
@media print, screen and (min-width: 600px) {
	ul.pagination li {
		font-size: 1.2vw;
	}
	ul.pagination li.current,
	ul.pagination li a {
		padding: 0.8vw 1.2vw;
	}
	ul.pagination li.prev a,
	ul.pagination li.next a {
		padding: 1.2vw 1.4vw;
	}
}
/* --------------------------メーカースライダー */
.reason {
	width: 68.01796875000001vw;
	margin: 0 auto 7.8125vw;
}
.reason-slider .slick-slide {
	margin:0 10px;/*スライド左右の余白調整*/
}
.reason-slider img {
	width:100%;/*スライダー内の画像を横幅100%に*/
	height:5vw;
}
.reason .reason_ttlwrap{
	width: 50vw;
	margin: 0 auto;
	text-align: center;
}
.reason .reason-logo{
	margin: 0 auto;
}
.reason .reason-logo img{
	width: 100%
}
.reason h1{
	margin: 0 auto;
}
.reason h1 span {
	border-bottom: 3px solid #FF9C00;
}
@media print, screen and (min-width: 600px) {
	.reason .reason_ttlwrap{
		width: 16.52890625vw;
	}
}
@media print, screen and (min-width: 600px){
	.reason-slider div{
		height: 2vw;
		width: 100%;
	}
	/* totoのロゴのみスマホ版で高さ調整 */
	.reason-slider div img.toto-logo{
		width: 100%;
	}
}
/* -----------------------------------works-slider */
.works_slider{
	margin-bottom: 10vw;
}
.slider-up img {
	width:100%;/*スライダー内の画像を横幅100%に*/
	height:auto;
}
/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
.slider-up .slick-slide {
	margin:0 10px;/*スライド左右の余白調整*/
}
.slider-down img {
	width:100%;/*スライダー内の画像を横幅100%に*/
	height:auto;
}
/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
	.slider-down .slick-slide {
		margin:0 10px;/*スライド左右の余白調整*/
		display: flex;
		justify-content: center;
		align-items: center;
		height: 80px;
		background: #ddd;
	}
/* スライダー画像上 ブログタイトル */
.works_slider.slider-up .slide-box{
	width: 41.015625vw;
	aspect-ratio: 16/9;
	background-repeat: no-repeat;
	background-size: cover;
}
.works_slider a{
	position: relative;
}
.works_slider.slider-up .works_sheader{
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 1vw 0;
	background-color: rgba(255,255,255,.9);
	margin: 0;
	width: 15vw;
	height: 35vw;
	z-index: 5;
	left: 0;
	writing-mode: vertical-rl;
	font-family: "kinuta-maruminold-stdn", serif;
	font-weight: 400;
	font-style: normal;
	color: #333;
}
.works_slider .works_sheader{
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 2vw 0;
	background-color: rgba(255,255,255,1);
	margin: 1%;
	width: 30%;
	height: 97%;
	z-index: 5;
	left: 0;
	writing-mode: vertical-rl;
	font-family: "kinuta-maruminold-stdn", serif;
	font-weight: 400;
	font-style: normal;
	text-align: left;
	color: #333;
}
.works_sheader::after{
	position: absolute;
	content: "";
	width: 10%;
	height: 5%;
	top: 1%;
	left: 2%;
	background-image: url(../img/common/sheader_top-deco.svg);
	background-repeat: no-repeat;
}
.works_sheader::before{
	position: absolute;
	content: "";
	width: 10%;
	height: 5%;
	bottom: 1%;
	right: 1%;
	background-image: url(../img/common/sheader_under-deco.svg);
	background-repeat: no-repeat;
}
.works_slider .works_sheader time{
	padding: 0.5vw;
	font-size: 2vw;
}
.works_slider .works_sheader h2{
	display: block;
	margin: auto 0;
	padding: 3vw 0;
	background-color: initial;
	color: #333;
	font-size: 2.8vw;
}
.works_slider.slider-down .works_sheader{
	display: none;
	gap: 0;
}
.works_slider.slider-down .works_sheader time{
	text-align-last: left;
	font-size: 2vw;
}
.works_slider.slider-down .works_sheader h2{
	font-size: 2.8vw;
	padding: 3vw 0;
}
@media print, screen and (min-width: 600px){
	.works_slider{
		margin-bottom: 2vw;
	}
	.slider-up img {
			width:100%;/*スライダー内の画像を横幅100%に*/
			height:auto;
	}
	/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
	.slider-up .slick-slide {
		margin:0 10px;/*スライド左右の余白調整*/
	}
	.slider-down img {
		max-width:100%;/*スライダー内の画像の高さを最大100%に*/
		max-height:100%;/*スライダー内の画像の高さを最大100%に*/
	}
	/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
	.slider-down .slick-slide {
		margin:0 10px;/*スライド左右の余白調整*/
	}
	/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
	.reason-slider .slick-slide {
		margin:0 10px;/*スライド左右の余白調整*/
	}
	.reason-slider img {
		width:100%;/*スライダー内の画像を横幅100%に*/
		height:2vw;
	}
	/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
	.slider-down .slick-slide {
		margin:0 10px;/*スライド左右の余白調整*/
		display: flex;
		justify-content: center;
		align-items: center;
		height: 197px;
		background: #ddd;
	}
}
/* スライダー画像上ブログタイトル */
.works_slider.slider-up .slide-box{
	width: 41.015625vw;
	aspect-ratio: 16/9;
}
.works_slider a{
	position: relative;
}
@media print, screen and (min-width:600px){
.works_slider.slider-up .works_sheader{
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 1vw 0;
	background-color: rgba(255,255,255,.9);
	margin: .2vw;
	width: 12vw;
	height: 17.5vw;
	z-index: 5;
	left: 0;
	writing-mode: vertical-rl;
	font-family: "kinuta-maruminold-stdn", serif;
	font-weight: 400;
	font-style: normal;
	color: #333;
}
.works_slider .works_sheader{
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 2vw 0;
	background-color: rgba(255,255,255,1);
	margin: 1%;
	width: 30%;
	height: 97%;
	z-index: 5;
	left: 0;
	writing-mode: vertical-rl;
	font-family: "kinuta-maruminold-stdn", serif;
	font-weight: 400;
	font-style: normal;
	text-align: left;
	color: #333;
}
.works_sheader::after{
	position: absolute;
	content: "";
	width: 10%;
	height: 5%;
	top: 1%;
	left: 2%;
	background-image: url(../img/common/sheader_top-deco.svg);
	background-repeat: no-repeat;
}
.works_sheader::before{
	position: absolute;
	content: "";
	width: 10%;
	height: 5%;
	bottom: 1%;
	right: 1%;
	background-image: url(../img/common/sheader_under-deco.svg);
	background-repeat: no-repeat;
}
.works_slider .works_sheader time{
	padding: 0.5vw;
}
.works_slider .works_sheader h2{
	display: block;
	margin: auto 0;
	padding: 1vw 0;
	background-color: initial;
	color: #333;
	font-size: 1.5vw;
}
.works_slider.slider-down .works_sheader{
	gap: 0;
}
.works_slider.slider-down .works_sheader time{
	text-align-last: left;
	font-size: .8vw;
}
.works_slider.slider-down .works_sheader h2{
	font-size: 1vw;
	padding: 1vw 0;
}
}

/* =========================================
   Works Slider - Replace to Modern Overlay
   (Override existing vertical header design)
   ========================================= */

:root{
  --works-brand: #f59a23; /* Plus Oneオレンジ。必要なら調整 */
  --works-radius: 14px;
}

/* ---- slide card ---- */
.works_slider .slide-box{
  position: relative !important;
  overflow: hidden !important;
  background-color: #eee !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.08) !important;
}

/* 上段：background-image を正しく表示 */
.works_slider.slider-up .slide-box{
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  /* 既に aspect-ratio:16/9 があるので基本そのままでOK */
}

/* 下段：imgをcoverで統一（既存の width/height:auto を上書き） */
.works_slider.slider-down .slide-box img{
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  aspect-ratio: 16 / 9; /* 上段と揃える */
}

/* クリック領域 */
.works_slider .slide-box > a{
  display:block !important;
  height:100% !important;
  position: relative !important;
  z-index: 5;
  text-decoration: none !important;
  color: inherit !important;
}

/* ---- remove old decoration (縦書き/白パネル/飾り) ---- */
.works_slider .works_sheader{
  /* 既存の縦書き・白背景を完全に無効化 */
  writing-mode: horizontal-tb !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;

  /* 左下に集約 */
  position: absolute !important;
  left: 14px !important;
  right: 14px !important;
  bottom: 12px !important;

  display: grid !important;
  gap: 6px !important;

  z-index: 10 !important;
  color: #fff !important;

  /* フォントも今風に（縦書き用書体は外す） */
  font-family: system-ui, -apple-system, "Noto Sans JP", "Hiragino Kaku Gothic ProN",
    "Yu Gothic", "Meiryo", sans-serif !important;
  font-weight: 700 !important;
  text-align: left !important;
}

/* 元の飾りを消す */
.works_sheader::before,
.works_sheader::after{
  content: none !important;
  background-image: none !important;
}

/* 日付：小さくタグ化 */
.works_slider .works_sheader time{
  display: inline-flex !important;
  width: fit-content !important;
  padding: 6px 10px !important;

  font-size: 12px !important;
  letter-spacing: .12em !important;
  line-height: 1 !important;

  color: #fff !important;
  background: rgba(255,255,255,.16) !important;
  border-radius: 999px !important;
  backdrop-filter: blur(6px);
}

/* タイトル：横書き・2行まで */
.works_slider .works_sheader h2{
  margin: 0 !important;
  padding: 0 !important;

  color: #fff !important;
  background: transparent !important;

  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1.2 !important;

  text-shadow: 0 2px 14px rgba(0,0,0,.40) !important;

  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* ---- gradient overlay ---- */
.works_slider .slide-box::before{
  content:"" !important;
  position:absolute !important;
  left:0; right:0; bottom:0 !important;
  height: 44% !important;

  background: linear-gradient(
    to top,
    rgba(0,0,0,.70),
    rgba(0,0,0,.22),
    rgba(0,0,0,0)
  ) !important;

  pointer-events:none !important;
  z-index: 1 !important;
}

/* ブランド色の薄い帯（面積は小さく） */
.works_slider .slide-box::after{
  content:"" !important;
  position:absolute !important;
  left:0; right:0; bottom:0 !important;
  height: 22% !important;

  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--works-brand), black 10%),
    rgba(245,154,35,0)
  ) !important;

  opacity: .25 !important; /* 0.20〜0.35で調整 */
  pointer-events:none !important;
  z-index: 2 !important;
}

/* ---- slider-down の “高さ80px/197px” を解除（ここが重要） ---- */
/* 今のCSSだとサムネが強制的に細長く潰れるので、カード表示にする */
.works_slider.slider-down .slick-slide{
  height: auto !important;
  background: transparent !important;
  display: block !important;
}

/* 下段でもヘッダー表示したい場合：display:none を上書き */
.works_slider.slider-down .works_sheader{
  display: grid !important;
  gap: 6px !important;
}

/* hover（PCのみ） */
@media (hover:hover){
  .works_slider .slide-box{
    transition: box-shadow 220ms ease, transform 220ms ease !important;
  }
  .works_slider .slide-box:hover{
    box-shadow: 0 18px 45px rgba(0,0,0,.14) !important;
    transform: translateY(-2px) !important;
  }
  .works_slider.slider-down .slide-box img{
    transition: transform 260ms ease !important;
  }
  .works_slider.slider-down .slide-box:hover img{
    transform: scale(1.03) !important;
  }
}

/* SP微調整 */
@media (max-width: 480px){
  .works_slider .works_sheader{
    left: 12px !important;
    right: 12px !important;
    bottom: 10px !important;
  }
  .works_slider .works_sheader h2{
    font-size: 14px !important;
  }
}

/*--------------------------------------------------
	ページ個別のスタイル
--------------------------------------------------*/
/*------------------------------------------------*/
/*
以下、ページごとの個別CSSは先頭で読み込んでいます。
個別CSS内には、
.wrapper > .content > main の"コンテンツ部分"のみに
適用したいCSSのみ記述して下さい。
.wrapperそのものへの指定やメインイメージ部、その他
共通部分に影響が出そうな記述は style.css で管理すること。
*/
/*-------------------------------------------index*/
#index .mainimg {
	height: 100vh;
	background-image: none;
}
#index .mainimg .mv-logo{
	position: absolute;
	z-index: 10;
	width: 40vw;
}
#index .mainimg .mv-logo img{
	width: 100%;
}
#index .mainimg .mainimg_box {
	position: absolute;
	z-index: 10;
	height: 100vh;/*indexのメインイメージの高さ(PC用)*/
}
#index .mainimg .mainimg_box .catch {
	width: 90%;
	height: auto;
}
#index .mainimg .mainimg_box .catch img {
	width: 100%;
	margin-bottom: 0;
	filter: none;
}
/* メインイメージスライダー */
#index #mv-slider {
	width: 100%;
	height: 100vh;/*スライダー全体の縦幅を画面の高さいっぱいにする*/
}
#index .mainimg .top-news{
	position: absolute;
	height: 15vw;
	width: 100%;
	bottom: 0;
	background-color: rgba(255,255,255,0.6);
	z-index: 10;
}
#index .mainimg .top-news .top_news-box{
	width: calc(100% - 10vw);
	margin: 0 auto;
	align-items: center;
	height: 100%;
	justify-content: space-between;
	font-size: 2.25vw;
}
#index .mainimg .top-news .top_news-box h1{
	font-size: 2.25vw;
	font-weight: 500;
	line-height: 2.2;
	border-bottom:.2vw solid #FF9C00;
}
#index .mainimg .top-news .top_news-box a{
	text-decoration: none;
	margin-right: 1vw;
	font-size: 4vw;
}
#index .mainimg .top-news .news-tag a{
	color: #fff;
	background-color: #FF9C00;
	padding:.5vw 1vw;
}
#index .mainimg .top-news .news-date{
	color: #666;
	font-size: 3vw;
}
#index .mainimg .top-news .top-news-link{
	width: 60%;
	justify-content: space-between;
}
#index .contact_mail-tel{
	width: 10%;
	position: sticky;
	right: 0;
	margin-left: auto;
	top: 8vw;
	display: flex;
	flex-direction: column;
	z-index: 10;
}
@media print, screen and (min-width: 600px) {
	#index .mainimg .mv-logo{
		position: absolute;
		z-index: 10;
		width: 15.46875vw;
	}
	#index .mainimg .mv-logo img{
		width: 100%;
	}
	#index .mainimg .mainimg_box {
		width: 100%;
		height: 100vh;/*indexのメインイメージの高さ(PC用)*/
	}
	#index .mainimg .mainimg_box .catch {
		width: 60%;
	}
	/* メインイメージスライダー */
	#mv-slider{
		width: 100%;
		height: 100vh;/*スライダー全体の縦幅を画面の高さいっぱいにする*/
	}
	#index .mainimg .top-news{
		position: absolute;
		height: 5.359375vw;
		width: 100%;
		bottom: 0;
		background-color: rgba(255,255,255,0.6);
		z-index: 15;
	}
	#index .mainimg .top-news .top_news-box{
		width: calc(100% - 10vw);
		margin: 0 auto;
		align-items: center;
		height: 100%;
		justify-content: space-between;
		font-size: 1.25vw;
	}
	#index .mainimg .top-news .top_news-box h1{
		font-size: 1.25vw;
		font-weight: 500;
		border-bottom:.2vw solid #FF9C00;
	}
	#index .mainimg .top-news .top_news-box a{
		text-decoration: none;
		margin-right: 1vw;
		font-size: 1.25vw;
	}
	#index .mainimg .top-news .news-tag a{
		color: #fff;
		background-color: #FF9C00;
		padding:.5vw 1vw;
	}
	#index .mainimg .top-news .news-date{
		color: #666;
		font-size: 1.25vw;
	}
	#index .mainimg .top-news .top-news-link{
		width: 70%;
		justify-content: space-between;
	}
	#index .contact_mail-tel{
		top: 10vw;
	}
}
#index .wrapper {
}
@media print, screen and (min-width: 600px) {
		#index .wrapper {
	}
}
.swiper-button-next, .swiper-button-prev{
	color: #FF9C00;
}

@media (max-width: 767px) {
	.widget-pc { display: none; }
	.widget-sp { 
		display: block; 
		height: 1698px;
		margin: 0 auto;
	}
  }
  @media (min-width: 768px) {
	.widget-pc { 
		display: block;
		height: 700px;
		margin: 0 auto;
	 }
	.widget-sp { display: none; }
  }

/*-------------------------------------------news*/
/*page-news.css*/
#archive .mainimg,
#single .mainimg {
	background-image: url(../img/common/mainimage_news.jpg);
}
/*----------------------------------------service*/
/*page-service.css*/
#service.bathroom .mainimg {
	background-image: url(../img/common/mainimage_service-bathroom.jpg);
}
#service.kitchen .mainimg {
	background-image: url(../img/common/mainimage_service-kitchen.jpg);
}
#service.toilet .mainimg {
	background-image: url(../img/common/mainimage_service-toilet.jpg);
}
#service.gas .mainimg {
	background-image: url(../img/common/mainimage_service-gas.jpg);
}
#service.washroom .mainimg {
	background-image: url(../img/common/mainimage_service-washroom.jpg);
}
#service.house .mainimg {
	background-image: url(../img/common/mainimage_service-house.jpg);
}
/*------------------------------------------works*/
/*page-works.css*/
#worksarchive .mainimg,
#works .mainimg {
	/*施工実績個別ページは各記事に設定された画像が表示されるが、予期せぬ動作をした時のためにデフォルトで設定*/
	background-image: url(../img/common/mainimage_works.jpg);
}
/*-----------------------------------------voices*/
/*page-voices.css*/
#voicesarchive .mainimg,
#voices .mainimg {
	/*お客様の声個別ページは各記事に設定された画像が表示されるが、予期せぬ動作をした時のためにデフォルトで設定*/
	background-image: url(../img/common/mainimage_voices.jpg);
}
/*----------------------------------------company*/
/*page-company.css*/
#company .mainimg {
	background-image: url(../img/common/mainimage_company.jpg);
}
/*----------------------------------------contact*/
/*page-contact.css*/
#contact .mainimg {
	background-image: url(../img/common/mainimage_company.jpg);
}
/*----------------------------------------privacy*/
/*page-privacy.css*/
#privacy .mainimg {
	background-image: url(../img/common/mainimage_company.jpg);
}