@charset "utf-8";
/* CSS Document */

/* 全ページ共通 */
.contract_body{
font-size: 16px;
}

.top_title {
    width: 100%; /* 幅を100%に設定 */
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 100px auto 0; /* 水平方向に中央揃え */
}

.top_title img {
    margin: 0 30px; /* 画像の左右に余白を追加 */
    max-width: 100%; /* 画像の最大幅を100%に設定 */
    height: auto; /* 高さを自動調整 */
}

.top_title h2 {
    font-size: 2rem;
    font-weight: 500;
    margin: 0 10px; /* タイトルの左右に余白を追加 */
    text-align: center; /* テキストを中央揃え */
}

.top_title h2 span {
    background: linear-gradient(transparent 80%, #FFFE03 50%);
}


/*全ページ共通見出し*/
h5{
text-align: center;
font-size: 1.8rem;
color: #185da1;
font-weight: bold;
}

h5:after {
	display: block;
	content: "";
	margin-top: 0.4rem;
	height: 8px;
	background: -webkit-linear-gradient(to right, #185da1, transparent);
	background: linear-gradient(to right, #185da1, transparent);
}

h6 {
  position: relative;
  padding: 1.5rem;
  text-align: center;
  margin: 50px 0;
  font-size: 1.1rem;
  font-weight: bold;
  color: #4a4b4b;
}

h6:before {
  position: absolute;
  bottom: -5px;
  left: calc(50% - 30px);
  width: 60px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #185da1;
}

/* ブランディング関係 */
.link_button {
  display: inline-block;
    max-width: 960px;
    margin: 30px 10px;
    overflow: hidden; /* 浮動要素が含まれるため、コンテナの高さを確保 */
    	cursor: pointer;
	transition: all 0.3s ease 0s;
}

.link_button img {
    max-width: 400px; /* 画像の幅を調整 */
    height: auto; /* 画像の縦横比を維持 */
    float: left; /* 画像を左側に浮動配置 */
}


.link_button:hover {
	opacity: 0.6;
}

/* 背景あり */

.backcolor_box {
    margin: 50px auto;
    padding: 50px 0;
    background:rgba(65,105,225,0.03);
    position: relative;
}

.backcolor_box .content {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    max-width: 1260px;
    margin: 0 auto;
    padding: 20px;
}

.backcolor_box img {
    width: auto;
    max-width: 100%;
    height: auto;
}
.backcolor_box .backcolor_text{
max-width: 960px;
margin: 30px auto;
}

.backcolor_box h4 {
    font-size: 1.7rem;
    font-weight: bold;
    color: #185da1;
    margin-bottom: 10px;
    text-decoration:underline;
}

.backcolor_box p {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 20px;
    text-align: left;
}

/* アコーディオンメニュー */

.accordion {
  display: flex;
  justify-content: center;
  align-items: flex-start; /* 必要に応じて 'center' に変更可能 */
  gap: 20px; /* 左右のセクションの間隔を調整 */
  margin: 100px 0;
}
.accordion .right,
.accordion .left {
  float: none; /* フロート解除 */
  max-width: 450px;
}

.toggle {
  display: none;
}

.Label {    /*タイトル*/
  padding: 1em;
  display: block;
  color: #fff;
  background: #555;
  position: relative; /* 追加 */
}
.Label::before {    /*タイトル横の矢印*/
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(135deg);
  position: absolute;
  top: calc(50% - 3px);
  right: 20px;
}
.Label,
.content {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: all 0.3s;
}
.content {    /*本文*/
  height: 0;
  margin-bottom: 10px;
  padding: 0 20px;
  overflow: hidden;
  text-align: left;
  line-height: 1.5em;
  font-size: 1.1rem;
}
.toggle:checked + .Label + .content {    /*開閉時*/
  height: auto;
  padding: 20px;
  transition: all .3s;
}
.toggle:checked + .Label::before {
  transform: rotate(-45deg) !important;
}

/*一番使うやつ*/
.standard {
  max-width: 1500px;
  height: 500px;
  margin: 80px auto 200px;
  position: relative;
}

.standard h3 {
  font-size: 1.8rem; /* フォントサイズ */
  color: #185da1;
  font-weight: 600;
  border-bottom: 3px dotted #185da1; /* 下線 */
  margin:20px auto;
  text-align: center;
}

.concept {
  max-width: 1500px; /* 最大横幅 */
  margin: 20px auto; /* 上下左右の余白を自動調整 */
  display: flex;
  gap: 30px;
}

.concept_left,.concept_center,.concept_right{
max-width: 450px;
height: 400px;
padding:30px 20px;
border: 8px solid #eaedf7;
position:relative;
line-height: 30px;
margin-top: 50px;
text-align: center;
}

.concept_left::after,
.concept_center::after,
.concept_right::after {
background-color:#cca497;/* ワンポイントの色 */
	content: '';
	display: block;
	position: absolute;
	top: -8px;
	left: -8px;
	width: 8px;
	height: 8px;
	z-index: 1;
}

.concept_left{
left: 0%;
}
.concept_center{
margin: 50px auto 0;
right: 0;
left: 0;
}
.concept_right{
right: 0;
}

.feature_head{
font-size: 1.8rem;
font-weight: bold;
color: #f08300;
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
background-color: #fff;
padding:10px;
}

.sub_head{
  font-size: 1.8rem;
  font-weight: bold;
  display: block;
  margin-bottom: 20px;
  color: #007BFF;
}

.sub_img{
  margin: 30px auto;
  width: 85%;
}

/*CTスペック紹介*/
.retention {
  max-width: 1000px;
  height: 500px;
  margin: 80px auto 50px;
}

.owend_machine {
  display: flex;
}

.machine_introduction {
 font-size: 18px;
 max-width: 600px;
  padding-right: 20px; /* 右側の余白 */
  line-height: 1.8em;
  text-align: left;
}

.img_right {
  display: flex;
}

/*CTスキャンスペック記載用css*/
.spec_text{
font-size:0.9rem;
font-weight: bold;
line-height: 1.5em;
}

.spec_title {
  font-size: 1.1rem; /* スペックタイトルのフォントサイズを18pxに設定 */
  font-weight: bold; /* 太字に設定 */
  padding:5px;
  background-color: #0054ff;
color:#fff;
}

.ct_spec_text {
  font-size:1rem;/* スペックテキストのフォントサイズを15pxに設定 */
font-weight: bold;
line-height: 1.5em; 
color:#555;
}

/*PDF DL用*/
.pdf_dl{
text-align: center;
margin:1.4em auto 0;
max-width: 960px;
}

.pdf_dl img{
width: 100%;

}

/*詳細ページのボタンcss*/

.button_detail {
  font-size: 1.0rem;
  text-align: center;
  margin: 80px auto;
  max-width: 300px;
}

a.btn_01 {
  display: inline-block;
  width: 100%;
  padding: 1rem 2rem;
  font-weight: bold;
  border: 2px solid #27acd9;
  color: #27acd9;
  transition: 0.5s;
}

a.btn_01:hover {
  color: #fff;
  background: #27acd9;
}

/* 上部の余白 */

.contract_h3 {
    padding-top: 80px; /* 上部の余白 */
    border-bottom: 3px dotted #b2d5de; /* 下線（実線）のスタイル */
    border-bottom-width: 0; /* 下線の幅を0に設定（初期値） */
    width: 100%; /* 幅を100%に設定 */
    text-align: center; /* テキストの中央揃え */
    font-size: 1.8rem; /* フォントサイズ */
    font-weight: bold; /* フォントの太さ */
    color: #185da1; /* テキストの色 */
    margin: 0 auto; /* 中央揃え */
}

.contract_h3::after {
    content: ''; /* 疑似要素の内容を空にする */
    display: block; /* ブロック要素として表示 */
    width: 600px; /* 下線の長さを指定 */
    border-bottom: 3px solid #b2d5de; /* 下線（実線）のスタイル */
    margin: auto; /* 中央揃え */
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}



/*ボックス三種css*/
.box_big {
  max-width: 1200px; /* 親要素の幅を設定 */
  margin: 0 auto; /* 中央に配置 */
  padding: 20px; /* 内側の余白 */
  display: flex; /* 子要素を縦並びにする */
  flex-direction: column; /* 子要素を縦に配置 */
color:#4a4b4b;/* フォントの色を指定 */
line-height:26px;
}

.box_big h3 {
  font-weight: bold; /* 要素のテキストを太字にする */
  font-size:1.4rem;   /* 要素のテキストを20pxにする */
  text-decoration: underline; /* 要素のテキストに下線を追加する */
text-decoration-thickness: 20%; /*要素のテキストに下線の太さを追加する */
  margin-bottom: 10px; /* 下部のマージンを追加 */
}

.box_big p {
margin-top: 15px; /* 要素の上部に10pxのマージンを追加 */
font-size:1.1rem;   /* 要素のテキストを15pxにする */
line-height: 2.3rem;
}

.box_left, .box_right {
  max-width: 850px; /* 各ボックスの幅を850pxに設定 */
  height:auto;/* 各ボックスの高さを250pxに設定 */
  padding: 30px; /* 内側の余白 */
  border: 1px solid #bbb; /* 枠線を追加 */
  box-sizing: border-box; /* ボックスの外側にパディングが影響するように設定 */
  margin-bottom: 50px; /* ボックス間の間隔 */
  background-color:#fdfdfd;
}

.box_left img, .box_center img, .box_right img {
  max-width: 100%; /* 画像の最大幅を親要素に合わせて自動縮小 */
  height: auto; /* 高さを自動調整 */
}

.box_left {
  align-self: flex-start; /* 左に配置 */
}

.box_left img,.box_center img{
  float: right; /* 画像を左に配置 */
  margin-left: 20px; /* 文章と画像の間に余白を設ける */
}

.box_right {
  align-self: flex-end; /* 右に配置 */
}

.box_right img {
  float: left; /* 画像を右に配置 */
  margin-right: 20px; /* 文章と画像の間に余白を設ける */
}

/* 3つのボックスcenterだけ追加分 */
.box_center {
    max-width: 850px; /* 各ボックスの幅を850pxに設定 */
  height:auto;/* 各ボックスの高さを250pxに設定 */
  padding: 30px; /* 内側の余白 */
  border: 1px solid #bbb; /* 枠線を追加 */
  box-sizing: border-box; /* ボックスの外側にパディングが影響するように設定 */
  margin:0 auto 50px; /* ボックス間の間隔 */
  background-color:#fdfdfd;
}



/*問い合わせBox(.contact_nav)親はを流用*/
.nav_out {
  max-width: 1200px; /* 親要素の幅を設定 */
  margin: 0 auto; /* 中央に配置 */
  padding: 20px; /* 内側の余白 */
  display: flex; /* 子要素を縦並びにする */
  flex-direction: column; /* 子要素を縦に配置 */
color:white;/* フォントの色を指定 */
line-height:26px;
}

.nav_out h3 {
  font-weight: bold; /* 要素のテキストを太字にする */
  font-size:1.4rem;   /* 要素のテキストを20pxにする */
  text-decoration: underline; /* 要素のテキストに下線を追加する */
text-decoration-thickness: 20%; /*要素のテキストに下線の太さを追加する */
  margin-bottom: 10px; /* 下部のマージンを追加 */
}

.nav_out p {
margin-top: 15px; /* 要素の上部に10pxのマージンを追加 */
font-size:1.1rem;   /* 要素のテキストを15pxにする */
line-height: 2.3rem;
}

.contact_nav {
  align-self: center; /* 中央に配置 */
  position: relative;/*親要素にrelative*/
}

.contact_nav p{
  position: absolute;/*重ねたい子要素にabsolute*/
  top:50%;
  left: 50%;
 -ms-transform: translate(-50%,-50%);/*ベンダープレフィックス*/
  -webkit-transform: translate(-50%,-50%);/*ベンダープレフィックス*/
  transform: translate(-50%,-50%);/*センター寄せの修正*/
  font-size: 1.2rem;
  margin: 0!important;/*文字がずれている場合や*/
  padding: 0!important;/*文字が折り返される場合*/
  text-align: center;
  max-width: 800px;
}
.contact_nav p span{
    font-size: 1.9rem;
    margin: 10px;
    display: block;
}

.contact_nav img{
  max-width: 100%;
}



/*タイトルと真ん中文章css*/

.standard_center  {
margin:30px auto;
max-width:960px;
}
.normal2{
text-align:center;
font-size:1.1rem;
line-height:1.5em;
margin:20px;
}

.standard_center img{
max-width:100%;
}

/*3Dプリントサービス用コスト表css*/
.cost_table {
  height: 450px;
  position:relative;
  max-width: 960px; /* コンテナの幅を設定 */
  margin: 50px auto; /* 上下に余白を設定し、中央に配置 */
}

.image-container {
  margin-right: 20px; /* 画像とテーブルの間隔を設定 */
  position: absolute;
  left: 0;
  width: 100%;

}
.image-container h4 {
margin-bottom:10px;
width:200px;
padding:10px;
font-size:0.9rem;
font-weight:bold;
color:#fff;
background-color:#555555;
text-align:center;
}
.table-container {
  position: absolute;
  right: 0;
  width: 55%;
  flex-grow: 1; /* テーブルコンテナが残りのスペースを占めるようにする */
}

.styled-table {
  border-collapse: collapse; /* セル間のボーダーを重ねる */
  width: 100%; /* テーブルの幅を100%に設定 */
}

.styled-table th, .styled-table td {
  border: 1px solid #ccc; /* セルのボーダーを設定 */
  padding: 8px; /* セル内の余白を設定 */
  text-align: center; /* テキストを中央揃えにする */
  width: 150px; /* セルの幅を固定 */
  height: 50px; /* セルの高さを固定 */
}

/*今後の流れ*/

.process{
max-width:960px;
position:relative;
text-align:center;
margin:80px auto;

}
.process h3{
   font-weight: bold;
font-size: 1.5rem;
text-decoration: underline;
text-decoration-thickness: 20%;
margin-bottom: 20px;
color: #4a4b4b;
}
.process img{
 width:100%;
}

/*3D・CTスキャン用コスト*/

.service_button{
margin:100px 0;
}

.cost_common{
position:relative;
max-width:920px;
margin:50px auto;
}
.cost_common h3{
text-align:center;
font-size:1.7rem;
text-decoration: underline;
margin:30px auto;
}
.cost_common .text_center{
font-size:4.5rem;
font-weight:bold;
text-align:center;
padding:20px;
height:150px;
color: green;
}

.cost_common .text_center span.green{
font-size:1.1rem;
color:#fff;
background-color: #ff5f4f;
margin:20px;
padding:5px 10px;
vertical-align:40%;
}
.cost_common .text_center span.grey{
font-size:1.1rem;
color:gray;
margin:10px;
height:auto;
}

.cost_common .sentence{
font-size:1.1rem;
line-height: 1.8em;
text-align: center;
}

.cost_common img{
margin:10px auto;
max-width: 100%;
}

/*slider*/

h3.slide_title{
margin: 100px auto 50px;
font-size:1.7rem;
font-weight: 600;
color:#185da1;
text-align:center;
border-bottom: 3px dotted #b2d5de;
}

.slid_list {
    max-width: 1140px;
    min-width: 960px;
    margin: 0 auto;
    display: flex;
	justify-content: space-between;
	position: relative;
	padding: 30px 30px 30px;
}
.slid_list li {
    width: 31%;
	margin: 0px 15px;
}
/*.slid_list li:hover {
    opacity: 0.7;
}*/
/*.slid_list li img {
    width: 100%;
}*/
.slid_list img {
	width: 300px;
	height: 200px;
	margin-bottom: 6px;
}
/*.slid_list img:hover,.slid_list img:hover {
	opacity: 0.7;
}*/
.slid_list_title {
    font-size: 1rem;
    font-weight: bold;
    line-height: 26px;
    margin: 15px 0 12px;
	color:#ffb23d;
	padding: 10px;
    text-align: center;
}
.slid_list_description {
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 25px;
	color:#4D4D4D;
	padding:3px 16px;
}

/*スライダー追加分*/
.slider_title {
    font-size: 1.1rem;
    font-weight: bold;
    text-decoration-line: underline;
text-decoration-thickness: 3px;
text-decoration-color: rgba(255, 0, 0, 0.617);
margin: 15px 0;
color: #333;


}

.slider_description {
    font-size: 1.2rem;
}

/* 保有設備・材料一覧ページ用CSS*/
.machinery{
  display: inline-block;
}

.machine_listbox {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* 中央揃えにする */
  max-width: 1290px; /* 親要素の最大幅を指定 */
  margin: 50px auto; /* 親要素を中央に配置 */
}

.machine_announce {
  flex: 1 1 calc(20% - 10px); /* 4つ並べるために25%の幅を指定し、間隔を調整 */
  box-sizing: border-box;
  margin: 5px;
  /*text-align: center;*/
}

.machine_announce img {
  max-width: 100%;
  height: auto;
}

.machine_listbox h2{
font-size:1.7rem;
font-weight: bold;
margin: 50px auto;
text-align: center;
border-bottom: solid 1px;
}



/*一覧ページ用css*/
.machine_spec{
font-size:1rem;
font-weight: bold;
line-height: 1.5em;
}

.method{
font-size: 1rem;
font-weight: bold;
padding:5px;
color:#fff;
margin:0 10px 10px 0;
}

.machine_spec p{
text-align: left;
margin: 10px 0;
color: #4a4b4b;
}

p span.name{
color:#4a4b4b;
margin-left: 10px;
}

p span.size{
margin-left: 10px;
}

p span.chara{
margin-left: 10px;
padding:3px;
border: solid 1px #999;     /* 枠線指定 */
    background-color: #eee;     /* 背景色指定 */
    border-radius: 10px;        /* 角丸指定 */
}

p span.color{
width:30px;
  height: 30px;
  border-radius: 50%;
  display: inline-block;
  margin: 0 5px;
  vertical-align: middle; /* 行の中央に配置 */
  border: solid 0.3px #555555;
}

.machine_button {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 20px;
  background-color: #007BFF;
  color: #fff;
  text-decoration: none;
  border-radius: 5px;
}

.machine_button:hover {
  background-color: #0056b3;
}

.other_link {
  margin: 50px auto 30px;
  padding: 10px 20px;
  max-width: 960px;
  height: auto;
  text-align: center;
}
.other_link h3{
font-weight: bold;
font-size: 1.5rem;
text-decoration: underline;
text-decoration-thickness: 20%;
margin-bottom: 60px;
color: #4a4b4b;
}

.other_link a{
padding: 20px;
}

.btn_link:hover{
  filter: brightness(80%)
}

/*2025新3Dプリンタ受託ページ用*/

.top-banner {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.top-banner img {
  width: 100%;
  height: auto;
  display: block;
}

.top-banner__caption {
  position: absolute;
  bottom: 20%;
  left: 0;
  background-color: rgb(0 0 0 / 0.2);
  color: #fff;
  padding: 30px;
}

.top-banner__caption h2 {
  font-size: 2rem;
  margin-bottom: 10px;
}

.top-banner__caption a {
  display: inline-block;
  padding: 10px 20px;
  background: #ff6600;
  color: #fff;
  text-decoration: none;
  border-radius: 5px;
}

/*②切り替わりデザイン */
.services__cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-bottom: 40px;
}

.services__card {
  width: 500px;
  background-color: #e0f0ff;
  padding: 30px 20px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.services__card h3 {
  margin-bottom: 15px;
  font-size: 1.8rem;
}

.services__card p {
  margin-bottom: 20px;
  font-size: 1.1rem;
}

.services__button {
  padding: 15px 25px;
  font-size: 1.1rem;
  border: none;
  border-radius: 8px;
  background-color: #007bff;
  color: white;
  cursor: pointer;
  transition: background-color 0.3s;
}

.services__button:hover {
  background-color: #0056b3;
}

/* -------------------
   個別表示領域
------------------- */
.services__contents {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-bottom: 50px;
}

.services__content {
  display: none;           /* 初期非表示 */
  flex-direction: row;
  align-items: center;
  background-color: #fff;
  border: 1px solid #ddd;
  padding: 20px;
  border-radius: 10px;
  gap: 20px;
  justify-content: center;
  width: 100%;
  max-width: 1000px;
}

.services__content.active {
  display: flex;           /* activeクラスがついたら表示 */
}

.services__content img {
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

.services__content-text {
  max-width: 600px;
}

/* -------------------
   共通表示領域
------------------- */
.services__common {
  width: 100%;
  max-width: 1000px;
  text-align: center;
  margin: 40px auto 0 auto; /* 上マージン40px、左右自動 */
  line-height: 1.6;
}

.services__common h3 {
  font-size: 1.8rem;
  margin-bottom: 15px;
}

.services__common p {
  font-size: 1.1rem;
  margin-bottom: 20px;
}

.services__common img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* 1. 全体レイアウト */
.services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 80px;
  margin: 80px auto 25px;
}

h2.top_underline {
  font-size: 30px;
  font-weight: bold;
  margin: 100px auto 30px;          /* 自分自身を中央寄せ */
  display: table;             /* 横幅を文字幅に縮めつつ中央寄せできる */
  color: #333;
  background-image: linear-gradient(rgba(0,0,0,0) 70%, rgb(252,81,133) 70%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  padding: 0 5px;
}

.service-card {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  width: 520px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  text-align: center;
}

.service-card img {
  width: 100%;
  border-radius: 8px;
  margin-bottom: 8px;
}

/* 2. カード内テキスト・タイトル */
.service-title {
  position: relative;
  padding-top: 20px;
  padding-bottom: 50px;
  font-size: 26px;
  font-weight: bold;
  color: #333;
  text-align: center;
  z-index: 2;
}

.service-title::before {
  content: attr(data-en);
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(224,66,114,0.2);
  font-size: 80px;
  font-style: italic;
}

.service-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%) rotate(30deg);
  width: 1px;
  height: 40px;
  background-color: rgba(224,66,114,1);
}

.service-desc {
  font-size: 1rem;
  font-weight: bold;
  line-height: 20px;
  color: #333;
  margin: 20px 0;
}

.service-desc span {
  font-size: 1.3rem;
  font-weight: bold;
  border-bottom: solid 2px #123456;
  line-height: 20px;
  color: #333;
  margin: 20px 0;
}

/* 3. ボタン系 */
.detail-btn {
  padding: 8px 16px;
  border: 1px solid #2589d0;
  border-radius: 8px;
  background: #fff;
  color: #2589d0;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s;
}

.detail-btn:hover {
  background: #f0f7ff;
}

/* 4. 特徴リスト */
.service-features {
  list-style: none;
  text-align: left;
  margin: 12px 0;
  padding-left: 20px;
  color: #666;
  font-size: .95rem;
  line-height: 2.5;
}

.service-features li::before {
  content: "■";
  color: #2589d0;
  display: inline-block;
  width: 1em;
  margin-left: -1em;
}

/* 5. 個別コンテンツ全体 */
.services__content {
  display: none;
  margin:0 auto 32px;
}

:root{
  --brand:#2589d0;
  --ink:#1a1a1a;
  --muted:#666;
  --border:#e5e7eb;
  --bg:#fff;
  --tag:#eef6ff;
}

.product-detail-card{
  margin: 40px auto;
  overflow: hidden;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
  color: var(--ink);
}

/* 6. 個別コンテンツのセクション */
.pdc-header{
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}
/* 動画コンテナ */
.pdc-header_video {
  display: flex;
  justify-content: center;  /* 横方向中央 */
  align-items: center;      /* 縦方向中央 */
  margin: 20px auto;
  width: 100%;
}

/* 動画のスタイル */
.pdc-header_video video {
  max-width: 100%;   /* 画面幅に合わせる */
  width: 720px;      /* 最大幅の指定（必要に応じて調整） */
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.pdc-title{
  font-size: clamp(1.25rem, 1.5vw + .8rem, 1.8rem);
  font-weight: 700;
  line-height: 1.35;
  position: relative;
  margin: 0 0 8px;
}

.pdc-title::after{
  content:"";
  display:block;
  width: 80px;
  height: 3px;
  background: var(--brand);
  margin-top: 10px;
  border-radius: 2px;
}

.pdc-section{
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 14px 16px;
}

.pdc-section:last-child{ 
  border-bottom: 0; 
}

.pdc-icon{
  width: 40px; height: 40px;
  display:grid; place-items:center;
  border-radius: 10px;
  background: #f2f8ff;
  border: 1px solid #dbeafe;
}

.pdc-section h3{
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 40px;
}


.pdc-body {
  grid-column: 1 / -1;
  margin-left: 0;         /* ← 左寄せを解除 */
  padding-left: 56px;     /* ← アイコンぶんの余白を中に付与 */
}

.pdc-spec{
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 10px 16px;
}
.pdc-spec dt{ color: var(--muted); }
.pdc-spec dd{ margin:0; }

.pdc-price{
  display: grid;
  gap: 8px;
}
.pdc-price .price-line{
  display: flex; justify-content: space-between; gap: 12px;
  padding: 10px 12px;
  border: 1px dashed var(--border);
  border-radius: 10px;
}

.pdc-price .price{ 
font-weight: 800; 
color: var(--brand); 
}

.pdc-model_list {
  display: flex;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 20px 0;
}

.pdc-model_img {
  flex: 1 1 calc(33.333% - 20px); /* 横3つ並ぶ */
  max-width: 300px;               /* 大きすぎ防止 */
  box-sizing: border-box;
  text-align: center;
  padding:30px;
  background-color:#ddd;
  /* 追加 */
  display: flex;
  flex-direction: column;   /* 上下に並べる */
  justify-content: center;  /* 縦中央 */
  align-items: center;      /* 横中央 */
border-radius: 10px;
}

.pdc-model_img img {
  height: auto;
  max-height: 200px; /* 高さを制御して揃える */
  object-fit: contain;
}

.pdc-model_img p {
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 16px;
  border-bottom:3px solid #2589d0;
}

.pdc-btn{
    font-weight: 800;
    color: var(--brand);
}

.pdc-docs{
  display: grid;
  gap: 10px;
}
.pdc-doc-item{
  display:flex; 
flex-wrap:wrap; 
align-items:center; 
gap:10px 12px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
justify-content: space-between;
}

/* 7. ケーススタディ */
.pdc-cases {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 12px;
}

.pdc-case {
  flex: 0 0 240px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  background: #fff;
}

.pdc-case img { width: 100%; height: auto; display: block; }
.pdc-case-body { padding: 8px; }
.pdc-case-title { font-size: 1rem; font-weight: 600; margin: 4px 0; }
.pdc-tag { font-size: 0.85rem; color: #2589d0; background: #e6f0ff; padding: 2px 6px; border-radius: 4px; }

/* カード縦並び */
.pdc-price-cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

/* カード内横並び */
.sample-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  border: 1px dashed var(--border);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  padding: 30px 50px;
}

.sample-card img {
  width: 200px;
  height: auto;
  object-fit: cover;
  flex-shrink: 0;
}

.card-content {
  flex: 1;
  padding: 10px 15px 10px 50px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pdc-price-cards {
  display: flex !important;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.pdc-section2{
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
  gap: 14px 16px;
}
.pdc-section2 h3 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 40px;
}
.price{
  font-weight: 800;
  color: var(--brand);      
  font-size: 1.5rem;
  }
.pdc-btn{
    font-weight: 800;
    color: white;
    background-color: var(--brand);
    width: 200px;
    text-align: center;
    padding: 20px;
}

/* Q&A */
.qa-section {
  max-width: 800px;
  margin: 100px auto 10px;
  padding: 80px 20px 10px;
}

.qa-title {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
}
.link_other{
color:var(--brand);
font-size:1.1rem;
font-weight:bold;
}
.qa-item {
  border-bottom: 1px solid #ddd;
  margin-bottom: 20px;
}

.qa-question {
  width: 100%;
  text-align: left;
  padding: 15px;
  font-size: 1.1rem;
  font-weight: 600;
  border: none;
  background: #f9f9f9;
  cursor: default
}


.qa-answer {
  max-height: 100px;
  padding: 20px 15px 0;
  background: #fff;
  font-size: 1rem;
  line-height: 1.6;
  color: #333;
}

.qa-answer.open {
  max-height: 300px; 
  padding: 15px;
}

/* セクション全体 */
.highlight-section {
  position: relative;
  width: 100%;
  height: 540px; /* 動画の高さに合わせる */
  overflow: hidden;
}

/* 背景動画 */
.highlight-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;  /* 全体に広げてトリミング */
  transform: translate(-50%, -50%);
  z-index: 1;
}

/* 中央のテキスト */
.highlight-overlay {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff; /* 白文字 */
}

/* キャッチコピー */
.highlight-catch {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 15px;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.5);
}

/* 見出し部分を横並び */
.section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

/*受託追加*/
#breadcrumbs {
margin:0;
}
.top-banner {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-top: 80px; 
  background: linear-gradient(90deg, #6bccf2, #57c785, #53bfee);
  color: #fff;
  overflow: hidden; /* 粒子がはみ出ても隠れる */
}

#particles {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* 文字クリックを邪魔しない */
  z-index: 0;
}

.top-banner .main-title, 
.top-banner .sub-title, 
.top-banner .description {
  z-index: 1; /* 粒子より前面に表示 */
}
/* SVG 波線 */
.top-banner svg.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 200px;
  z-index: 0;
}

/* 大見出し */
.top-banner .main-title {
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
  font-size: 3.5rem;
  font-weight: bold;
  margin-bottom: 10px;
  letter-spacing: 2px;
  color: #fff;
  z-index: 1;
}

/* 小見出し */
.top-banner .sub-title {
  font-family: sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 50px;
  color: #fff;
  z-index: 1;
}

/* 本文 */
.top-banner .description {
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
  font-size: 1.2rem;
  line-height: 1.8;
  max-width: 900px;
  color: #fff;
  z-index: 1;
}
.scroll_indicator_wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px; /* 矢印と文字の間隔 */
  margin-top: 30px; /* バナー下部との余白 */
}

/* 下向き線矢印（擬似要素） */
.scroll_arrow {
  position: relative;
  width: 32px;   /* 矢印の幅を少し大きく */
  height: 32px;  /* 矢印の高さを少し大きく */
  margin-top: 10px; /* 矢印を少し下に */
  animation: scrollDown 1.5s infinite;
}

.scroll_arrow::before,
.scroll_arrow::after {
  content: "";
  position: absolute;
  width: 4px;    /* 線を少し太く */
  height: 16px;  /* 線を少し長く */
  background-color: #ffffff; /* 白に変更 */
  bottom: 0;
  left: 50%;
  transform-origin: bottom center;
}

.scroll_arrow::before {
  transform: rotate(45deg);
}

.scroll_arrow::after {
  transform: rotate(-45deg);
}

/* 真下に揺れるアニメーション */
@keyframes scrollDown {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(10px); } /* 揺れ幅を少し大きく */
  60% { transform: translateY(5px); }
}

/* 小さな文字 */
.scroll_text {
  font-size: 13px;
  color: #ffffff;  /* 白に変更 */
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
  /* ここまでバナー */
.note{
margin-top:10px;
}
.detail-btn {
margin:0 30px;
width:35%;
}
/* 全体セクション */
.page_wrapper {
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  line-height: 1.8;
  margin-top:100px;
}

/* 背景ヘッダー */
.contact_header {
  background: url('https://systemcreate-inc.co.jp/system/wp-content/uploads/contact_form_img_3.png') center/cover no-repeat;
  position: relative;
  text-align: center;
  color: #fff;
  padding: 100px 20px;
}

.contact_header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 123, 204,0.3); /* 青みフィルター */
}

.contact_header_inner {
  position: relative;
  z-index: 1;
}

.contact_subtitle {
  font-size: 16px;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.contact_title {
  font-size: 36px;
  font-weight: bold;
  margin: 0;
}

/* 本文フォーム部分 */
.contact_1 {
  background: #fff;
  padding: 60px 20px;
  max-width: 900px;
  margin: -50px auto 0; /* 背景から浮かせる */
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.contact_1 h6 {
  margin-top: 40px;
  font-size: 18px;
  font-weight: bold;
}
.form_box{
text-align:center;
margin-top:20px;
}

/* 電話ボックス */
.tel_box {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin: 20px 0;
  background: #f9f9f9;
  padding: 20px;
  border-radius: 8px;
}

.tel_icon {
  width: 40px;
  height: auto;
}

.tel_content p {
  margin: 5px 0;
}

.tel_number {
  font-weight: bold;
  font-size: 18px;
}

.tel_number a {
  color: #007acc;
  text-decoration: none;
}

.tel_number a:hover {
  text-decoration: underline;
}



@media screen and (max-width: 1140px) {
.top_title h2 {
  padding-bottom: 20px ;
  font-size:1.8rem;
}
/*スタンダードmobile*/
.standard {
  position: relative;
  height: auto;
  margin: 0.6rem auto;
  text-align: center;
  padding: 30px;
}

.concept_text {
  position: relative;
  text-align: center;
  margin: 20px auto;
  padding-right:0;
}

.concept_img {
  position: relative;
  text-align: center;
}
}

@media screen and (max-width: 960px) {
.contract_body{
text-align: center;

}
/*トップバナーモバイル*/
.top_title {
  display: inline-block;
}

.top_title h2{
max-width:80%;
margin-bottom:1em;
}

.top_title img{
margin:0;
max-width: 80%;
}

link_button p{
width:auto;
}

.backcolor_box p{
padding: 0 30px;
}



/*特徴3つ横並び*/
.concept{
display: inline-block;
}

.concept_left, .concept_center, .concept_right {
font-size:1rem;
height: auto;
}

/*コストテーブルmobile*/
.cost_table {
height: unset;
margin:40px auto;
}
.image-container {
  position: relative;
  margin: 30px auto;
}

.table-container {
  position: relative;
  margin: 10px auto;
}
.box_center p span {
font-size:1.5rem;
}
 .box_center p {
font-size:0.8rem;
 }

.machine_introduction {
margin: 20px ;

}

h3.slide_title {
margin:50px auto 10px;
}

.retention{
  margin: 0 auto 300px;
}

.owend_machine {
  display: inline-block;
  margin: 10px auto;
}
.img_right{
margin: 10px auto;
}

.contact_nav p span{
font-size:1.5rem;
}

.contact_nav p{
font-size:1.1rem;
}

/*3box*/
.box_left img,.box_right img{
float: none; 
margin:10px auto;
}

 .flow__steps {
    display: flex;
    flex-direction: column; /* 縦並び */
    width: 100%;            /* 横幅100% */
    gap: 20px;
    margin: 0 auto;
  }

  .flow__step {
    flex: none;             /* 幅を固定しない */
    width: 90%;             /* 少し余白を持たせる */
    height: auto;           /* 高さ自動 */
    padding: 20px 15px;
  }

  /* 矢印を非表示 */
  .flow__step::after,
  .flow__step::before {
    content: none;
  }

  .flow__step img {
    max-width: 80px;        /* アイコン小さめ */
    max-height: 80px;
    margin: 0 auto 10px;    /* 上下余白調整 */
  }

  .flow__step h3 {
    font-size: 1.1rem;
    margin-bottom: 8px;
  }

  .flow__step p {
    font-size: 0.9rem;
    line-height: 1.4;
  }
}

@media (max-width:900px){ 
  .pdc-cases{ flex-wrap: wrap; justify-content: center; } 
  }

/* 2025追加モバイル用 */
@media (max-width: 768px) {
.detail-btn {
  font-size: 15px;
}

  /* カード */
  .services__cards {
    flex-direction: column;
    align-items: center;
  }

  .services__card {
    width: 90%; /* 画面幅の90% */
    padding: 20px 15px;
  }

  /* 個別表示領域 */
  .services__content {
    flex-direction: column; /* 画像の上、テキスト下 */
    padding: 15px;
  }

  .services__content img {
    width: 100%;
    max-width: 100%;
    margin-bottom: 15px;
  }

  .services__content-text {
    max-width: 100%;
    text-align: center;
  }

  /* スライドキャプション */
  .top-banner__caption h2 {
    font-size: 1.5rem;
  }

  .top-banner__caption a {
    padding: 8px 16px;
    font-size: 1rem;
  }

  /* 共通表示領域 */
  .services__common {
    padding: 0 15px;
  }

.pdc-body {
padding:0;
}
  /* 各セクションの余白を少し小さく */
  .pdc-section {
    padding: 16px;
    grid-template-columns: 32px 1fr; /* アイコン小さめ */
    gap: 10px 12px;
  }

  .pdc-icon {
    width: 32px;
    height: 32px;
    font-size: 0.9rem;
  }

  .pdc-spec {
    grid-template-columns: 1fr; /* 縦並びにする */
    font-size:18px;
  }

  /* 価格カード：縦並びに */
  .sample-card {
    flex-direction: column;   /* 画像を上、テキストを下 */
    padding: 16px;
    align-items: flex-start;
  }

  .sample-card img {
    width: 100%;       /* 画面幅いっぱいに */
    max-width: 100%;   /* はみ出さないように */
    height: auto;
  }

  .card-content {
    padding: 12px 0 0 0; /* 画像の下に余白 */
    margin:0 auto;
    font-size:18px;
  }

  /* ケーススタディ：横並び → 縦並び */
  .pdc-cases {
    flex-direction: column;
    align-items: center;
    margin:0 auto;
  }

  .pdc-case {
    width: 100%;
    max-width: 320px;
  }

  /* ダウンロードボタンを全幅に */
  .pdc-btn {
    width: 100%;
    padding: 16px;
    text-align: center;
    font-size:15px;
  }
  .pdc-cases {
    flex-direction: column;
    align-items: stretch; /* ← 中央ではなく幅いっぱいに広げる */
    gap: 16px;
  }

  .pdc-case {
    width: 100%;       /* 画面幅いっぱい */
    max-width: none;   /* 最大幅の制約を外す */
    flex: 1 1 auto;    /* 高さと幅を柔軟に */
  }

  .pdc-case-body {
    padding: 12px;     /* 余白を少し広めに */
    text-align: left;  /* 中央揃えから左揃えに */
  }

  .pdc-case-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 6px 0;
    color: #333;       /* 念のため文字色を固定 */
  }

  .pdc-tag {
    display: inline-block;
    margin-top: 4px;
  }
/*追加*/
 .top-banner {
    padding-top: 60px; /* ヘッダー分 */
    padding-left: 15px;
    padding-right: 15px;
  }

  /* 大見出し */
  .top-banner .main-title {
    font-size: 2.2rem;
    line-height: 1.3;
    letter-spacing: 1px;
    margin-bottom: 8px;
  }

  /* 小見出し */
  .top-banner .sub-title {
    font-size: 1rem;
    margin-bottom: 30px;
  }

  /* 本文 */
  .top-banner .description {
    font-size: 0.9rem;
    line-height: 1.5;
    max-width: 90%;
  }

  /* Canvasを画面に合わせる */
  #particles {
    width: 100%;
    height: 100%;
  }

  /* SVG波線の高さを少し縮小 */
  .top-banner svg.wave {
    height: 120px;
  }
}
@media screen and (max-width: 600px) {
.contract_body{
font-size: 0.9px;
}

.cost_common .text_center{
font-size:3rem;
}

.cost_common .sentence {
font-size:1rem;
}

/*concept_mobile*/


/*link_button_mobileレイアウト*/
.link_button {
max-width: 90%;

}
.link_button img{
max-width: 100%;
}

.standard{
padding:15px;

}

.warning_label{
  margin: 10px auto;
  font-size:0.8rem;
}

/*コストテーブル*/
.image-container {
  margin: 30px auto;
}

.table-container {
  margin: 10px auto;
  font-size:0.8rem;
}

.image-container h4 {
font-size:0.7rem;
}

/*box_center文字サイズ調整*/
.contact_nav p span {
font-size:1.3rem;
}
 .contact_nav p {
font-size:0.9rem;
line-height: 1.2rem;
 width: 400px;
 }

.button_detail{
padding: 0 50px;
}

.other_link img{
width: 90%;
padding-bottom: 30px;
}

 .pdc-section{
    grid-template-columns: 32px 1fr;
    gap: 10px 12px;
  }
  .pdc-icon{ width:32px; height:32px; }
  .pdc-section h3{ line-height: 32px; font-size: 1.05rem; }
  .pdc-body{ margin-left: 44px; }

  .contact_1 {
    padding: 20px 15px; /* 内側余白を小さくしてコンパクトに */
  }

  .contact_1 h3 {
    font-size: 22px;
    margin-bottom: 15px;
  }

  .contact_1 h6 {
    font-size: 16px;
    margin-top: 20px;
    margin-bottom: 10px;
  }

  .contact_1 p {
    font-size: 15px;
    margin-bottom: 12px;
  }

  .tel_box,.form_box {
    padding: 15px;
    width: 100%;          /* 画面幅いっぱいに広げる */
    border-radius: 8px;
    border-left: 4px solid #0073e6; /* 電話ボックスはアクセント線 */
  }

  .tel_box img {
    width: 40px;
    height: 40px;
    margin-bottom: 10px;
  }


  .contact_1 a {
    word-break: break-word; /* 長いリンクも折り返す */
  }
}
/* 9. 補助 */
.small{ color: var(--muted); font-size: .92rem; }
.hr{ height:1px; background:var(--border); margin: 10px 0; }