/*	
theme Name: raremetal-giken-202507
Author: wave
Description: original theme	
*/

* { box-sizing: border-box; }

html,body {
	height: 100%;
	margin: 0 auto;
	padding: 0;
	font-feature-settings: 'palt' 1;
	text-align: justify;
	letter-spacing: 0.075em;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	font-size: 16px;
	line-height: 1.5;
	color: #333;
	font-family: "Noto Sans JP", sans-serif; 
}

body#us-english {
	text-align: initial;
	letter-spacing: 0.025em;
	font-family: "Roboto", sans-serif;
}

img {
	max-width: 100%;
	height:auto;
	display:block;
	margin: 0;
	padding: 0;
	border: none;
	object-fit: cover;
}

a[href^="tel:"] { cursor: default; }

a,
a:hover,
a:visited,
a:active {
	color: inherit;
	text-decoration: none;
}

li { list-style: none; }

h2 { letter-spacing: 0.05em; }

h1,h2,h3,h4,h5,h6 { line-height: 1.4; }

.main-section__inner p { line-height: 1.7; }

figcaption { font-size: 13px; }

.header__nav-inner {
	height: 60px;
	width: 100%;
	padding: 0 0 0 20px;
	display: flex;
	justify-content: space-between;
	position: fixed;
	top: 0;
    z-index: 999;
    background: #fff;
}

.br-sp,
.Toggle { display: none; }

.header__nav-companyname {
	height: 60px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.header__nav-companyname img { width: 34px; }

.header__nav-companyname figure { margin: 0; }

.header__nav-companyname h1 { font-size: 24px; }

.header__nav-menu,
.header__nav-menu-inner ul {
	height: 60px;
	display: flex;
	align-items: center;
	gap: 1em;
}

.header__nav-menu-inner ul li a {
	height: 60px;
	display: flex;
    align-items: center;
}

.header__nav-menu-contact a,
.header__nav-menu-inner ul li#menu-item-464 a {
	width: 120px;
	color: #fff !important;
	justify-content: center;
	background: #aa9580;
	position: relative; /* 親要素にrelativeを設定 */
}

.header__nav-menu-contact a::before,
.header__nav-menu-inner ul li#menu-item-464 a::before {
	height: 20px;
	width: 30px;
	margin: 0 auto;
	content: "";
	background: url('images/common/icon-email@2x.png'); /* 上に表示する画像 */
	position: absolute;
	top: 8px;
	left: 0;
	right: 0;
	display: inline-block;
    background-size: contain;
  /* 必要に応じてwidth, height, marginなどを調整 */
}

.header__nav-menu-contact a span {
	bottom: 8px;
    position: absolute;
}

.header__nav-menu-phone { display: none; }

.header__home-image {
    width: 100%;
	margin: 0 0 100px !important;
	align-items: initial !important;
}

.header__image {
    width: 100%;
	margin: 0 0 100px !important;
	padding: 50px 0 0 !important;
	align-items: initial !important;
}

.header__home-image img,
.header__image img {
	width: 100%;
	height: 430px !important;
}

.header__image,
.header__image-img,
.header__image-post,
.header__image-post img {
	width: 100%;
	height: 430px;
}

.header__image-page-heading,
.header__image-post-heading {
	height: 60px;
	line-height: 60px;
	width: auto;
	padding: 0 20px 0 50px !important;
	font-size: 30px;
    display: inline-block;
}

body#us-english .header__image-page-heading,
body#us-english .header__image-post-heading {
	font-weight: 600;
}

.header__image-post {
	margin: 0 0 100px;
    position: relative;
}

.header__image-post-heading {
	color: #fff;
	background: #3f0101;
    position: absolute;
    top: 50px;
	display: inline-block;
    width: auto;
}

main p { line-height: 1.7; }

.home__section,
.home__section-full-width-inner,
.home__location,
.page__section,
.page__section-contents,
.page__section-greeting,
.post__list,
.post__container,
.privacy__contents,
.wpcf7,
.page__section-gallery-column-2,
.page__section-table-outer,
.page__location {
	width: 1000px;
}

.inquiry__form { width: 100%; }

.home__section h2,
.page__section h2,
.home__section-full-width-inner h3,
.patent h4,
.page__section-greeting-title {
	font-family: "Ryumin Regular KL","Noto Serif JP", serif;
	font-weight: 600;
}

body#us-english .home__section h2,
body#us-english .page__section h2,
body#us-english .home__section-full-width-inner h3,
body#us-english .patent h4,
body#us-english .page__section-greeting-title {
	font-family: "Roboto Serif", serif;
	font-weight: 500;
}

.home__section h3,
.home__section-contact > p,
.home__section-contact-button > div a,
.page__section-greeting-title,
.page__section h3,
.category-name {
	font-size: 24px;
}

body#us-english .home__section h3,
body#us-english .home__section-contact > p,
body#us-english .home__section-contact-button > div a,
body#us-english .page__section-greeting-title,
body#us-english .page__section h3,
body#us-english .category-name {
	font-weight: 500;
}

.home__section h2,
.page__section h2 {
	padding: 0 0 20px;
	font-size: 38px;
}

.home__section h3,
.page__section h3 {
	margin: 0 0 10px !important;
	padding: 0 0 0 10px;
	line-height: 1.2;
	border-left: solid 5px;
}

.page__section h4,
.page__section-arsenic-research-inner h3 { font-size: 20px; }

body#us-english .page__section h4,
body#us-english .page__section-arsenic-research-inner h3 { font-weight: 500; }

main { margin: 60px 0 0; }

.home__section,
.page__section { padding: 0 0 80px; }

.page__section-contents,
.post__list,
.privacy__contents,
.wpcf7 { margin: 0 auto 80px !important; }

.post__list,
.post__container,
.privacy__contents { margin: 0 auto 80px; }

.section__column-3 {
	padding: 30px 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: 1fr;
	gap: 1em;
}

.post__container { margin: 150px auto 80px; }

.home__section-button > div {
	padding: 0 !important;
}

.home__section-button > div a {
	position: relative;
    display: inline-block;
    padding: 15px 45px;
	font-size: 16px;
    color: white;
    text-decoration: none;
    border: none;
    cursor: pointer;
	border-radius: 14px;
}

.home__section-button > div a::after {
	content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 7px solid white;
    display: block;
}

.home__section-full-width {
	margin: 0 0 100px !important;
	padding: 70px 0;
	color: #fff;
	background: url("images/home/home-bg-image.webp") no-repeat center center;
	background-size:cover;
}

.home__section-full-width-inner {
	padding: 0 0 50px;
}

.home__section-full-width h3 {
	font-size: 30px;
	letter-spacing: 0.2em;
}

.patent {
	width: 100%;
	margin: 30px 0 0 !important;
	background: #fff
}

.patent h4 {
	width: 100%;
	font-size: 22px;
	padding: 15px 35px !important;
}

.patent ul {
	width: 100%;
	padding: 20px 35px;
	color: #333;
}

.patent ul li {
	margin: 0 0 5px;
    line-height: 1.5;
}

.home__section-full-width-gallery {
	padding: 0 0 30px;
	gap: 30px;
}

.home__location,
.page__location {
	gap: 50px;
}

.home__location {
	padding: 0 0 30px;

}
.home__location > div,
.page__location > div {
	width: 475px;
	gap: 0;
}

.home__location > div iframe,
.page__location > div iframe {
	margin: 0 0 10px;
}

.home__section-news-list {
	width: 100%;
}

.home__section-news-list li {
	margin: 0 0 15px;
	padding: 0 0 15px;
	line-height: 1.5;
	display: flex;
	flex-direction: column-reverse;
	border-bottom: dotted 1px;
}

.home__section-news-list li time {
	margin: 0 0 5px;
}

.home__section-contact {
	width: 100%;
	padding: 50px 0;
	background: #3f0101;
}

.home__section-contact > p {
	padding: 0 0 10px;
	font-weight: bold;
}

.home__section-contact-button { gap: 30px; }

.home__section-contact-button > div {
	width: 370px !important;
	height:  80px;;
}

.home__section-contact-button > div a {
	padding: 10px;
	color: #fff;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
    gap: 10px;
}

.page__section-greeting {
	margin: 80px 0 100px !important;
	padding: 70px;
	background: url("images/company/company-bg.webp") no-repeat center center;
	background-size:cover;
}

.page__section-greeting-title {
	margin: 0 auto !important;
}

.page__section-greeting-ceo {
	margin: 0 0 0 auto !important
}

.box {
	width: 350px;
    margin: 0 50px 0 0;
    padding: 15px 20px;
	line-height: 1.5;
    text-align: center;
    background: #f7f1eb;
	border: 1px solid #f7f1eb;
    z-index: 9;
}

.organization-chart {
	width: 100%;
	position: relative; /* 子要素のabsolute基準 */
    display: flex;
    align-items: center; /* 取締役会と部門グループの縦位置を揃える */
	font-size: 14px;
}

.board-of-directors {
    z-index: 9;
}

/* メインの組織図の線のコンテナ */
.departments-wrapper {
	height: 100%; /* 部門の高さに合わせる */
	margin-left: 80px; /* 取締役会と線の間のスペース */
    display: flex;
    align-items: center; /* 中央揃え */
    position: relative;
}

.line-container {
	width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}

.main-vertical-line {
	height: 100%; /* 全体の高さに合わせる */
    width: 1px;
    background-color: black;
	position: absolute;
    left: 0;
    top: 0;
}

.main-horizontal-line {
	height: 1px;
	width: 40px; /* 垂直線から最初の部門への距離 */
	background-color: black;
    position: absolute;
    left: 0; /* 垂直線と同じ位置 */
    top: 50%; /* 中央に配置 */
    transform: translateY(-50%);
}


/* 各部署のコンテナ */
.departments {
	margin-left: 40px; /* メインの水平線からの距離 */
    display: flex;
    flex-direction: column;
    position: relative; /* 各部署への接続線の基準 */
}

.department-item {
    position: relative;
    margin-bottom: 20px; /* 各部署間の余白 */
    display: flex; /* 線の配置のため */
    align-items: center; /* 縦方向の中央揃え */
}

.department-item:last-child {
    margin-bottom: 0;
}

/* 各部署への水平線 */
.department-item::before {
	height: 1px;
	width: 40px; /* 垂直線からボックスまで */
	background-color: black;
    content: '';
    position: absolute;
    left: -40px; /* メインの垂直線から */
    top: 50%;
    transform: translateY(-50%);
}

/* 各部署の垂直線（枝分かれ部分） */
.department-item:not(:first-child)::after {
	height: 20px; /* 上の要素との間隔 */
	width: 1px;
	ackground-color: black;
    content: '';
    position: absolute;
    left: -40px; /* メインの垂直線と同じ位置 */
    top: -20px; /* 上の要素の真ん中から来るように */
}

/* 最初の部署の垂直線（上方向） */
.department-item:first-child::after {
	height: 100px; /* 上に伸びる線の長さ */
	width: 1px;
	background-color: black;
    content: '';
    position: absolute;
    left: -40px;
    top: -100px; /* ここは調整が必要です */
}

/* 最後の部署の垂直線（下方向） */
.department-item:last-child::after {
	height: 100px; /* 下に伸びる線の長さ */
	width: 1px;
	background-color: black;
    content: '';
    position: absolute;
    left: -40px;
    bottom: -100px; /* ここは調整が必要です */
}

/* 擬似要素による線の調整 */
.departments::before {
	height: 100%;
	width: 1px;
	background-color: black;
    content: '';
    position: absolute;
    left: -40px; /* メインの垂直線と合わせる */
    top: 0;
    z-index: 0; /* ボックスより下になるように */
}

/* 取締役会とメインの垂直線の間の水平線 */
.organization-chart::before {
	height: 1px;
	width: 50px;
	background-color: black;
    content: '';
    position: absolute;
    left: calc(var(--board-right) + 0px);
	left: 350px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 0;
}

/* CSS変数を使ってJavaScriptなしでボックスの位置を基準にする */
.board-of-directors {
    --board-right: 0; /* 初期値 */
}

.board-of-directors.box {
    position: relative; /* --board-rightの基準 */
}

.board-of-directors.box {
    /* JavaScriptを使わない場合、手動で調整 */
    /* これでは正確にボックスの右端を取れないので、単純なleft値で調整 */
    /* あるいは flexbox の gap や margin で調整 */
}

.departments-wrapper {
    margin-top: 0;
    align-self: stretch; /* 高さの基準を揃える */
}

.main-vertical-line {
    left: 0;
    height: calc(100% - 20px); /* 上下の余白 */
    top: 10px; /* 上部のオフセット */
}

.main-horizontal-line {
    width: 40px; /* メインの垂直線から最初の部門への距離 */
    left: 0;
    top: 50%; /* 各部署の真ん中に来るように */
    transform: translateY(-50%);
}

.department-item::before {
    left: -40px;
}

/* 各部門の垂直線の調整 */
.department-item::after {
    display: none; /* 一旦全て非表示 */
}

/* メインの垂直線からの枝分かれを擬似要素で表現 */
.departments::before {
	height: 220px;
    width: 1px;
	background-color: black;
    content: '';
    position: absolute;
    left: -40px;
    top: 26px;
    z-index: 0;
}

/* 各部門への水平線 */
.department-item::before {
	height: 1px;
	width: 40px;
	background-color: black;
    content: '';
    position: absolute;
    left: -40px; /* 垂直線からの距離 */
    top: 50%;
    transform: translateY(-50%);
}

/* メインの垂直線をdepartments-wrapperの絶対位置に配置 */
.departments-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.main-vertical-line {
    position: absolute;
    width: 1px;
    background-color: black;
    left: 40px; /* departments-wrapper の左端から40px */
    height: calc(100% + 40px); /* 各部門間の垂直線の合計 + 上下の余白 */
    top: -20px; /* 垂直線の上部を調整 */
    z-index: 0;
}

/* 各部署の箱の上の線が少し出るように調整 */
/* これを擬似要素で表現するのは難しいので、divで作成した方が楽 */
/* しかし、今回は擬似要素を活かす */

/* 各部署への接続線（L字型）を擬似要素で表現 */
.department-item::before { /* 水平線 */
    content: '';
    position: absolute;
    left: -40px; /* departments-wrapper の左端 (メインの垂直線) から */
    width: 40px;
    height: 1px;
    background-color: black;
    top: 50%;
    transform: translateY(-50%);
}

.department-item:not(:first-child)::after { /* 垂直線（前の要素から） */
    content: '';
    position: absolute;
    left: -40px; /* メインの垂直線と同じ位置 */
    width: 1px;
    background-color: black;
    top: -20px; /* 上の要素の真ん中から来るように調整 */
    height: 20px;
}

.department-item:first-child::after { /* 最初の要素の上の垂直線 */
    content: '';
    position: absolute;
    left: -40px;
    width: 1px;
    background-color: black;
    height: calc(50% - 20px); /* 真ん中から上へ */
    top: 0;
}

.department-item:last-child::after { /* 最後の要素の下の垂直線 */
    content: '';
    position: absolute;
    left: -40px;
    width: 1px;
    background-color: black;
    height: calc(50% - 20px); /* 真ん中から下へ */
    bottom: 0;
    top: auto; /* topをリセット */
}

.page__section-gallery-column-2 {
	padding: 0 0 80px;
	gap: 30px;
}

.page__section-gallery-column-2 img {
	height: 320px !important;
}

.page__section-table {
	width: 100%;
	padding: 0 0 80px;
}

.page__section-table table td {
	padding: 20px;
	border: solid 1px #a5a5a5;
}

.page__section-table table td:first-of-type {
	border-left: none;
	background: #f7f1eb;
}

.page__section-table table td:nth-of-type(2) {
	border-right: none;
}

.page__section-table table td ul li {
    text-indent: -1em;
    padding: 0 0 0 1em;
}

.page__section-table table td ul.table__list-eng li {
    text-indent: -.5em;
    padding: 0 0 0 .5em;
}

.page__section-table table td img {
	width: 225px !important;
}

.page__section-block {
	margin: 0 0 20px !important;
	padding: 0 0 20px;
	border-bottom:dotted 1px #a5a5a5;
}

.page__section-block:last-of-type {
	margin: 0 !important;
	padding: 0;
	border-bottom: none;
}

.page__section-gallery {
	padding: 80px 0 50px;
}

.page__section-gallery-4 {
	padding: 0 0 50px;
}

.page__section-research {
	padding: 40px 50px;
	background: #fff8f3;
}

.page__section-cases {
	margin: 0 0 20px !important;
	padding: 0 0 20px;
	border-bottom: dotted 1px; #a5a5a5;
}

.page__section-cases:first-of-type {
	padding: 80px 0 20px;
}

.page__section-cases-gallery {
	padding: 20px 0 0;
}

.page__section-arsenic-research {
	width:  100%;
	padding: 40px 50px;
	background: url("images/cases/water-image.webp") no-repeat center center;
	background-size:cover;
}

.page__section-arsenic-research-inner {
	width: 600px;
	padding: 30px 40px;
	background-color: rgb(255 255 255 / 0.8);
}

.page__section-arsenic-research-inner h3 {
	margin: 0 !important;
	padding: 0;
	border: none;
}

.post__list ul li {
	margin: 0 0 20px;
	padding: 0 0 20px;
	border-bottom: dotted 1px;
}

.post__list ul li time {
	font-size: 13px;
	letter-spacing: 0;
}

.post__list ul li h2 {
	font-size: 20px;
	font-weight: 500;
}

.post__list-aside {
	padding: 10px 0 0;
	line-height: 1;
	align-items: initial !important;
}

.post__list-aside-category,
.post__container-contents-aside p {
	padding: 0 5px;
	font-size: 12px;
	color: #fff;
	background: #3f0101;
	border-radius: 12px;
	line-height: 1.7;
}

.wp-block-query-pagination-numbers span,
.page-numbers,
.nav-links span,
.nav-links a {
	width: 26px;
	line-height: 26px;
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

.wp-block-query-pagination-numbers span,
.nav-links span {
	color: #fff;
	background: #3f0101;
	border: solid 1px #3f0101;
}

.page-numbers { border: solid 1px; }

.nav-links a.prev,
.nav-links a.next {
	width: auto;
    border: none;
    white-space: nowrap;
}

.category-name {
	margin: 0 0 30px;
	padding: 0 0 0 10px;
	line-height: 1.3;
	color: #a00000;
	font-weight: bold;
	border-left: solid 5px;
}

.post__container-contents h1 { font-size: 26px; }

.post__container-contents h1,
.post__container-contents h2,
.post__container-contents h3,
.post__container-contents h4,
.post__container-contents h5 {
	margin: 0 0 10px;
}

.post__container-contents p,
.post__container-contents ul,
.post__container-contents ol,
.post__container-contents time,
.post__container-contents figure {
	margin: 0 0 30px;
}

.post__container-contents time {
	font-size: 13px;
    display: block;
}

.post__container-contents-aside {
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.post__pager,
.post__pager li a {
	display: flex;
	align-items: center;
}

.post__pager {
	padding:40px 0 0;
	justify-content: center;
	gap: 30px;
}

.post__pager li a { gap: 10px; }

.post__pager li a img { height: 18px; }

.privacy__contents h2 {
	padding: 20px 0 0;
	font-size: 22px;
}

.privacy__contents { line-height: 1.7; }

.privacy__contents p,
.privacy__contents ul li { padding: 0 0 10px; }

.privacy__contents ul li {
	margin: 0 0 0 1.5em;
	list-style-type: decimal;
}

.privacy__contents ul li ul.privacy__contents-list { margin: 10px 0 0; }

.privacy__contents ul li ul.privacy__contents-list li {
	margin: 0 0 0 1.5em;
	padding: 0;
    list-style-type: decimal;
}

.privacy__contents .customer-support { gap: 0; }

.privacy__contents .customer-support p { padding: 0; }

p.over { margin: 0 0 0 auto !important; }

.inquiry__form-items {
	border-top: solid 1px #a5a5a5;
}

.inquiry__form-items label {
	width: 100%;
	margin: 0;
	display: flex;
	border-bottom: solid 1px #a5a5a5;
}

.inquiry__form-items label span.item__name,
.inquiry__form-items label span.item__name-eng {
	display: flex;
	background: #fcefe6;

}

.inquiry__form-items label span.item__name {
	width: 250px;
	padding: 0 0 0 20px;
	align-items: center;
}

.inquiry__form-items label span.item__name-eng {
	width: 350px;
	padding: 20px 0 0 20px;
	flex-direction: column;
    justify-content: flex-start;
}

.inquiry__form-items label input,
.wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	padding: 10px;
	border: solid 1px #d8d8d8;
	border-radius: 12px;
}

.wpcf7-form-control-wrap {
	width: 100%;
    line-height: 1;
    padding: 30px 0 30px 30px;
}

#inquiry__form-accept span.wpcf7-form-control-wrap { padding: 0; }

#inquiry__form-accept span.wpcf7-list-item {
	margin: 20px 0 0;
	padding: 0;
}

#inquiry__form-accept span.wpcf7-list-item label {
    align-items: center;
    display: flex;
    gap: 5px;
}

#inquiry__form-submit input {
	width: 250px;
	margin: 20px 0 0;;
	line-height: 60px;
	background: #3f0101;
	color: #fff;
	font-weight: bold;
	font-size: 18px;
	display: flex;
    justify-content: center;
	border-radius: 12px;
	cursor: pointer;
}

#inquiry__form-accept span.wpcf7-list-item-label a { text-decoration: underline; }

#inquiry__form-accept span.wpcf7-list-item-label a:hover { color: #0010a4; }

.inquiry__form-items label span.item__name span.must,
.inquiry__form-items label span.item__name-eng span.must{
	font-size: 12px;
	color: #e21b00;
}

.inquiry__form-items label span.item__name span.must { margin: 0 0 0 5px; }

footer { padding: 0 0 5px; }

.footer__inner > div {
	width: 750px;
	margin: 0 auto !important;
	padding: 50px 0;
	letter-spacing: normal;
	display: flex;
	justify-content: space-between;
}

.footer__company-name {
	font-size: 20px;
	display: flex;
	gap: 5px;
}

footer > div nav { width:  300px; }

footer > div nav ul { gap: 0.25em !important; }

footer > div nav ul#menu-footer { flex-wrap: wrap; }

footer > div nav ul li,
footer > div nav ul#menu-footer li {
	margin: 0 10px 0 0;
	padding: 0 10px 0 0 !important;
	font-size: 14px;
    cursor: pointer;
}

footer > div nav ul#menu-footer li { position: relative; }

footer > div nav ul li::before,
footer > div nav ul li::after,
footer > div nav ul#menu-footer li::before,
footer > div nav ul#menu-footer li::after {
  content: "";
  position: absolute;
  top: calc(50% - -0.5px);
  right: 0;
  width: 8px;
  height: 1px;
  border-radius: 9999px;
  background-color: #333333;
  transform-origin: calc(100% - 0.5px) 50%;
}

footer > div nav ul li::before,
footer > div nav ul#menu-footer li::before {
  transform: rotate(45deg);
}

footer > div nav ul li::after,
footer > div nav ul#menu-footer li::after {
  transform: rotate(-45deg);
}

.foot__post { align-items: center; }

.foot__post-info {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

#menu-footer {
	display: flex;
	gap: 0.5em;
}

.copyright {
	font-size: 12px;
	text-align: center;
}


p#pageTop {
    display: block;
    position: fixed;
    right: 10px;
    bottom: 10px;
    z-index: 999;
}

p#pageTop a {
    border-radius: 30px;
    width: 45px;
    height: 45px;
    background: #3f0101;
    display: flex;
    justify-content: center;
    align-items: center;
}

p#pageTop img {
    width: 25px;
}

.switcher {
	padding: 5px;
	position: fixed;
	right: 0;
	display: flex;
	gap: 10px;
	font-size: 12px;
	color: #fff;
	background: #606060;
	letter-spacing: 0;
	top: 60px;
	z-index: 998;
}

.en-US a::before {
       content: '';
       display: inline-block;
       width: 20px;
       height: 20px;
       background-image: url('images/common/us-flag@2x.png');
       background-size: cover;
       margin-right: 5px;
     }

.ja a::before {
       content: '';
       display: inline-block;
       width: 20px;
       height: 20px;
       background-image: url('images/common/jp-flag@2x.png');
       background-size: cover;
       margin-right: 5px;
}


.switcher li a {
	display: flex;
	align-items: center;
}

.en h2,
.en h3,
.en h4,
.en h5 {
	letter-spacing: 0;
}






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

.header__image,
.header__image-img,
.header__home-image img,
.header__image img {
	height: 300px !important;
	min-height: 300px !important;
}

.header__image-post,
.header__image-post img {
	height: 300px;
}

.header__image,
.header__home-image,
.home__section-full-width,
.header__image-post {  margin: 0 0 50px !important; }


.home__section,
.page__section,
.page__section-gallery-column-2,
.page__section-table { padding: 0 0 50px; }

.home__section-full-width,
.page__section-gallery { padding: 50px 0; }

.page__section-greeting { margin: 50px 0 !important; }

.page__section-contents,
.post__list,
.privacy__contents,
.wpcf7 { margin: 0 auto 50px !important; }

.page__section-cases:first-of-type { padding: 50px 0 20px; }

.home__section-full-width-gallery { gap: 20px; }

.home__location,
.page__location { gap: 5%; }

.home__location > div,
.page__location > div { width: 47.5%; }



}







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

.switcher { top: 50px; }

.home__section,
.home__section-full-width-inner,
.page__section,
.post__list,
.post__container,
.privacy__contents,
.wpcf7 {
    width: 90%;
}

.home__location,
.page__section-contents,
.page__section-greeting,
.page__section-table-outer,
.page__location,
.page__section-gallery-column-2 {
	width: 100%;
}

.header__image-page-heading,
.header__image-post-heading {
	height: 50px;
    line-height: 50px;
	font-size: 26px;
}

.home__section h3,
.home__section-contact > p,
.home__section-contact-button > div a,
.page__section-greeting-title,
.page__section h3,
.category-name {
	font-size: 22px;
}

.home__section h2,
.page__section h2 {
	font-size: 34px;
}

main { margin: 50px 0 0; }

.header__nav-inner,
.header__nav-companyname,
.header__nav-menu { height: 50px; }

.header__nav-companyname img { width: 24px; }

.header__nav-companyname h1 { font-size: 22px; }

.header__nav-menu {
    display: block;
    width: 60px;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 999;
	background: #aa9580;
}

.header__nav-menu-inner {
    height: 100vh;
	width: 50%;
    position: fixed;
    z-index: 2;
    top: 50px;
    right: 0;
    transform: translateX(150%);
    transition: all 0.6s;
    background: #aa9580;
}

.header__nav-menu-inner.active {
	transform: translateX(0%);
}

.header__nav-menu-inner ul {
	width: 100%;
	padding: 0;
	display: block;
	border-left: none;
}

.header__nav-menu-inner ul li {
	width: 100%;
	padding: 0;
	font-weight: normal;
	border-top: 1px dotted #ffffff;
}

.header__nav-menu-inner ul,
.header__nav-menu-inner ul li,
.header__nav-menu-inner ul li a { height: 70px; }

.header__nav-menu-inner ul li a {
	width: 100%;;
	justify-content: center;
	color: #fff;
}

.Toggle {
    display: block;
    position: fixed;
    right: 4px;
    top: 6px;
    width: 52px;
    height: 42px;
    cursor: pointer;
    z-index: 3;
}

.Toggle span {
	display: block;
	position: absolute;
	width: 40px;
	border-bottom: solid 3px #fff;
	-webkit-transition: .35s ease-in-out;	/*変化の速度を指定*/
	-moz-transition: .35s ease-in-out;		/*変化の速度を指定*/
	transition: .35s ease-in-out;			/*変化の速度を指定*/
	left: 6px;
}
 
.head-nav .Toggle span {
	border-bottom: solid 3px #fff;
}

.Toggle span:nth-child(1) {
	top: 9px;
}
 
.Toggle span:nth-child(2) {
	top: 18px;
}
 
.Toggle span:nth-child(3) {
	top: 27px;
}
 
/* 最初のspanをマイナス45度に */
.Toggle.active span:nth-child(1) {
	top: 18px;
	left: 6px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
 
/* 2番目と3番目のspanを45度に */
.Toggle.active span:nth-child(2),
.Toggle.active span:nth-child(3) {
	top: 18px;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}

.header__nav-menu-contact a,
.header__nav-menu-phone a {
	border-bottom:  dotted 1px;
}

.header__nav-menu-contact a::before,
.header__nav-menu-inner ul li#menu-item-464 a::before,
.header__nav-menu-contact a span {
    position: initial;
}

.header__nav-menu-contact a::before,
.header__nav-menu-inner ul li#menu-item-464 a::before {
    margin: 0 10px 0 0;
}

.header__nav-menu-phone { display:  block; }

.header__nav-menu-phone a { font-size: 20px; }

.header__nav-menu-phone a::before {
    height: 30px;
    width: 30px;
    margin: 0 10px 0 0;
    content: "";
    background: url(images/common/icon-phone@2x.png) no-repeat;
    top: 8px;
    left: 0;
    right: 0;
    display: inline-block;
    background-size: contain;
}

.header__image,
.page__section-contents,
.post__list, .privacy__contents, .wpcf7 {
    margin: 0 auto 30px !important;
}

.home__section h2,
.page__section h2 { padding: 0 0 10px; }

.page__section-greeting { margin: 30px 0 100px !important; }

.page__section-greeting {
    margin: 30px 0 !important;
    padding: 40px 70px;
}

.home__section, 
.page__section,
.page__section-gallery-column-2,
.page__section-table,
.page__section-gallery-4 { padding: 0 0 30px; }

.header__home-image,
.home__section-full-width {  margin: 0 0 30px !important; }

.page__section-gallery,
.page__section-cases:first-of-type { padding: 30px 0; }

.patent { margin: 20px 0 0 !important; }

.home__location { padding: 0 0 10px; }

.post__container { margin: 100px auto 50px; }

.page__section-gallery-column-2 figure img { height: 270px !important; }

.box { width: 250px; }

.organization-chart::before { left: 250px; }



}





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

.br-sp { display: block; }

.header__nav-companyname h1 { font-size: 18px; }

.home__section h2,
.page__section h2 { font-size: 26px; }

.home__section-full-width h3 { font-size: 22px; }

.home__section h3,
.home__section-contact > p,
.home__section-contact-button > div a,
.page__section-greeting-title,
.page__section h3,
.category-name,
.patent h4 { font-size: 20px; }

.page__section h4,
.page__section-arsenic-research-inner h3 {
    font-size: 18px;
	line-height: 1.5;
}

.home__section-full-width,
.home__section-contact { padding: 30px 0; }

.patent h4 { padding: 10px 20px !important; }

.patent ul { padding: 20px 40px; }

.home__section-contact-button {
	width: 90%;
}

.home__section-button > div a { padding: 10px 45px; }

.home__section-full-width-inner { padding: 0 0 30px; }

.page__section-gallery-column-2 figure img { height: 230px !important; }

.box { width: 270px; }

.organization-chart::before {
    width: 60px;
    left: 260px;
}

#inquiry__form-submit input {
    width: 150px;
    line-height: 50px;
}

.privacy__contents h2 {
    padding: 0;
    font-size: 18px;
}

footer {
	width: 90%;
	margin: 0 auto;
}

.footer__inner { width: 100%; }

.footer__inner > div {
    width: 100%;
	padding: 30px 0;
	display: block;
}

.footer__company-name { padding: 0 0 10px; }

.footer__inner-address {
	margin: 0 0 20px;
	gap: 0.25em;
}




}





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

body,
h2,
.home__section-full-width h3 { letter-spacing: 0.025em; }

main p { line-height: 1.6; }

.switcher {
	display: block;
	top: 40px;
}

.switcher li.ja { margin: 0 0 5px; }

.header__nav-companyname h1,
.page__section-table table td { letter-spacing: 0; }

.header__nav-companyname img { width: 20px; }

.header__nav-inner,
.header__nav-companyname,
.header__nav-menu { height: 40px; }

.header__nav-menu { width: 50px; }

.Toggle {
    right: 0;
    top: 0;
    width: 50px;
}

.Toggle span {  width: 38px; }

main { margin: 40px 0 0; }

.header__nav-menu-inner {
    width: 80%;
    top: 40px;
}

.home__section h2,
.page__section h2 { font-size: 22px; }

.home__section-full-width h3,
.home__section h3, .home__section-contact > p,
.home__section-contact-button > div a,
.page__section-greeting-title,
.page__section h3,
.category-name,
.post__container-contents h1 { font-size: 20px; }

.post__container-contents h2,
.post__container-contents h3,
.post__container-contents h4,
.post__container-contents h5,
.patent h4 { font-size: 18px; }

.section__column-3 { padding: 20px 0; }

.header__image,
.header__image-img,
.header__home-image img,
.header__image img,
.header__image-post,
.header__image-post img {
    height: 180px !important;
    min-height: 180px !important;
}

.home__section-full-width-inner,
.home__section-full-width-gallery,
.home__location,
.home__location > div,
.page__location > div { padding: 0 0 20px; }

.home__location > div:nth-of-type(2),
.page__location > div:nth-of-type(2) { padding: 0; }

.home__section-full-width-gallery { gap: 10px; }

.home__section-contact { padding: 30px 0; }

.home__section-contact-button { gap: 20px; }

.home__section-contact-button > div { height: 60px; }

.home__section h3,
.page__section h3 {
    padding: 0 0 0 7px;
    border-left: solid 3px;
}

.home__section-contact-button {
	width: 280px;
	justify-content: center;
}

.box {
	height: 80px;
	width: 135px;
	margin: 0;
	padding: 15px 10px;
	        display: flex;
        justify-content: center;
        align-items: center;

}

.organization-chart::before {
    width: 50px;
    left: 109px;
}

.departments { margin-left: 60px; }

.departments::before {
	height: 300px;
	top: 40px;
	left: -37px;
}

.department-item::before { left: -22px; }

.department-item { left: -15px; }

.page__section-gallery-column-2 { gap: 10px; }

.page__section-gallery-column-2 figure img { height: 120px !important; }

.page__section-table table td {
    padding: 20px 10px;
    line-height: 1.5;
	font-size: 14px;
}

.page__section-table table td:first {
    white-space: nowrap;
}

.home__location,
.page__location { display: block !important; }

.home__location > div,
.page__location > div {
        width: 100%;
}

.home__location > div iframe,
.page__location > div iframe {
    margin: 0 0 10px;
    height: 250px;
}

.header__image { padding: 20px 0 0 !important; }

.header__image-page-heading,
.header__image-post-heading,
.header__image-page-heading,
.header__image-post-heading {
	padding: 0 20px !important;
    height: 40px;
    line-height: 40px;
    font-size: 20px;
}

.header__image-post-heading { top: 30px; }

.page__section-greeting {
        margin: 30px 0 !important;
        padding: 30px 20px;
}

.page__section-arsenic-research-inner {
    width: 100%;
    padding: 30px 20px;
}

.page__section-arsenic-research { padding: 20px 20px; }

.page__section-arsenic-research-inner {
    width: 100%;
    padding: 20px;
}

.page__section-cases-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

.post__list ul li h2 { font-size: 16px; }

.header__image-post-heading { top: 30px; }

.page__section-table table td:first-of-type { width: 100px; }

.inquiry__form-items label { display: initial; }

.inquiry__form-items { border: none; }

.wpcf7-form-control-wrap {
    padding: 0;
    width: 100%;
    display: block;
}

.inquiry__form-items label {
    width: 100%;
    margin: 0 0 20px;
    display: block;
	border: none;
}

.inquiry__form-items label span.item__name,
.inquiry__form-items label span.item__name-eng {
	width: 100%;
	margin: 0 0 15px;
    padding: 10px 0 10px 10px;
    display: flex;
    align-items: center;
    background: #fcefe6;
	border-top: solid 1px #a5a5a5;
}

.inquiry__form-items label span.item__name-eng { flex-direction: initial; }

.inquiry__form-items label span.item__name-eng span.must{ margin: 0 0 0 5px; }

textarea { border-radius: 0; }

.wpcf7-form-control-wrap {
    line-height: 1;
    padding: 0;
}

#inquiry__form-accept span.wpcf7-list-item { margin: 0; }

#inquiry__form-accept label {
    align-items: center;
    display: flex;
    gap: 5px;
}

.page__section-gallery,
.page__section-cases:first-of-type {
	padding: 20px 0;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.page__section-research { padding: 30px 20px; }

.category-name { margin: 0 0 10px; }

.home__section-contact-button img { width: 30px !important; }

footer > div nav ul { gap: 0.125em !important; }

.foot__post-info {
	margin: 0 0 20px;
    gap: 0.25em;
}







}