/* * * * * * * * * * * * * NEW * * * * * * * * * * * * * * * * * * * * * * */
.parts-menu{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
}


.parts-menu a{
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding-top: 5px;
    padding-right: 5px;
    padding-left: 5px;
    padding-bottom: 5px;
    border: 1px solid #d8dce7;
    border-radius: 8px;
    background: #fff;
    color: #1c2755;
    text-decoration: none;
    font-weight: 500;
    font-size: 1em;
    position: relative;
    transition: .2s;
}
.parts-menu a:hover{
    box-shadow:0 3px 10px rgba(0,0,0,.1);
}
.parts-menu a img{
    width:48px;
    height:48px;
    object-fit:contain;
    flex-shrink:0;
}
.parts-menu a::after{
    content:"›";
    position:absolute;
    right:5px;
    top:50%;
    transform:translateY(-50%);
    font-size:1em;
    color:#1c2755;
}

#category-title {

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 46px;
	padding-bottom: 20px;

}

#category-title span {

  flex: 1;
  height: 2px;
  background: #0b2550;

}

#category-title h5 {

  margin: 0;

  color: #0b2550;

  font-size: 1.4em;

  font-weight: 700;

  letter-spacing: 0.12em;
  white-space: nowrap;

}

.tebox20{

  width: 20%;

}

.b-ttl1b {
    position: relative;
    margin: 0px 0px 20px 0px;
    padding: 15px 10px 15px 40px;
    font-size: 20px;
    font-weight: 800;
    padding: 0.4em 1.7em;/*文字の上下 左右の余白*/
    color: #494949;/*文字色*/
    background: #f4f4f4;/*背景色*/
    border-left: solid 5px #1e237f;/*左線*/
    border-bottom: solid 3px #d7d7d7;/*下線*/
    letter-spacing: 0.2em
}

/* 赤い矢印 */
.b-ttl1b::before {
    content: "❯";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #1e237f;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
}


.b-ttl1 {
    position: relative;
    margin: 0px 0px 20px 0px;
    padding: 15px 10px 15px 40px;
    font-size: 22px;
    font-weight: 800;
    color: #494949;/*文字色*/
    background: #f4f4f4;/*背景色*/
    border-left: solid 5px #DD2818;/*左線*/
    border-bottom: solid 3px #d7d7d7;/*下線*/
    letter-spacing: 0.2em
}

/* 赤い矢印 */
.b-ttl1::before {
    content: "❯";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #DD2818;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
}

.b-ttl3 {
    position: relative;
    margin-top: 0px;
    margin-right: 0px;
    margin-left: 0px;
    margin-bottom: 20px;
    padding: 8px 10px 5px 30px;
    font-size: 18px;
    border-top: 2px solid #DD2818;
    border-bottom: 2px solid #DD2818;
    background-color: #ffffff;
    color: #DD2818;
    font-weight: 800;
    margin-left: 0px;
}

/* 赤い矢印 */
.b-ttl3::before {
    content: "❯";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #DD2818;
    font-size: 25px;
    font-weight: bold;
    line-height: 1;
}

.b-ttl3b {
	position: relative;
    margin: 0px 0px 20px 0px;
	padding: 8px 10px 5px 30px;
    font-size: 18px;
	border-top: 2px solid #1e237f;
    border-bottom: 2px solid #1e237f;
    background-color: #ffffff;
    color: #1e237f;
    font-weight: 800;
    margin-left: 0px;
}

/* 赤い矢印 */
.b-ttl3b::before {
    content: "❯";
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #1e237f;
    font-size: 25px;
    font-weight: bold;
    line-height: 1;
}


.b-ttl4 {
    font-size: 14px;
    padding-top: 4px;
    padding-right: 16px;
    padding-left: 16px;
    position: relative;
    color: #DD2818;
}
.b-ttl4::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(60% - 5px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #DD2818;
}
.b-box1 {
    margin-top: 0px;
    margin-bottom: 10px;
}	

.b-box2 {
    margin-top: 0px;
    margin-right: 10px;
    margin-left: 10px;
    margin-bottom: 40px;
}	
.b-box3 {
    margin-top: 0px;
    margin-right: 10px;
    margin-left: 10px;
    margin-bottom: 20px;
}
.b-box4 {
    margin-top: 0px;
    margin-right: 0px;
    margin-left: 0px;
    margin-bottom: 15px;
}	


.red-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 600px;
    padding: 8px 12px 8px 20px;
    background: #e51f13;
    border: 2px solid #bdbdbd;
    box-shadow: inset 0 0 0 1px #fff;
    color: #fff;
    text-decoration: none;
     font-size: 1.0em;
    font-weight: bold;
    line-height: 1.2;
}
.red-banner:hover {
    opacity: 0.9;
}
.banner-arrow {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #e51f13;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold;
    flex-shrink: 0;
}

.heat-flow{
    text-align:center;
    margin:30px auto;
}

.heat-top{
    display:inline-block;
    position:relative;
    background:#f00;
    color:#fff;
    font-size:20px;
    font-weight:bold;
    line-height:1.5;
    padding:15px 20px;
    border-radius:18px;
}

/* 矢印 */
.arrow-down{
    position:relative;
    width:160px;
    height:30px;
    margin:0 auto 20px;
    background:#f00;
}

/* 矢尻 */
.arrow-down::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-50px;
    transform:translateX(-50%);
    width:0;
    height:0;
    border-left:120px solid transparent;
    border-right:120px solid transparent;
    border-top:50px solid #f00;
}

.heat-flow h2{
    margin-top:50px;
    color:#f00;
    font-size:35px;
    font-weight:1200;
}


.case-card600{
    width: 100%;
    height: 190px;
    display: flex;
    overflow: hidden;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 15px rgba(0,0,0,.15);
    font-family: "Yu Gothic",sans-serif;
    margin-top: 10px;
}


/* 左赤エリア */

.case-left600{
  width:130px;
  background:#e60000;
  color:#fff;
  text-align:center;
  padding:28px 15px;
  box-sizing:border-box;
}


.case-left600 p{
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: bold;
    top: 0px;
    padding-top: 0px;
    margin-top: 0px;
}


.case-left600 h3{
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}


/* ボタン */

.case-btn600{
  display:block;
  margin-top:25px;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:bold;
}


.case-btn600 span{
  width:42px;
  height:42px;
  border:2px solid #fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 8px;
  font-size:14px;
}



/* 中央 */

.case-center600{
    width: 140px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 5px;
    padding-right: 5px;
    align-items: center;
    text-align: center;
}


.case-block600{
    margin: 12px 0;
    text-align: center;
}


.case-title600{
    margin: 0 0 0px;
    font-size: 12px;
    font-weight: bold;
    border-bottom: 1px solid #FA0004;
    top: auto;
}


.case-red600{
    margin: 0;
    text-align: center;
    color: #e60000;
    font-size: 18px;
    font-weight: 700;
}



/* 写真 */

.case-img600{
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    padding-right: 10px;
    width: auto;
}


.case-img600 img{
    width: 165px;
    height: 135px;
    object-fit: cover;
    border-radius: 6px;
    margin-bottom: 0px;
}

.case-btn600:hover span{
    background: #fff;
    color: #e60000;
    font-size: medium;
}
.case-white {
    color: #fff;
    font-size: medium;
}


.speed-case{
    max-width: 1000px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 40px;
    font-family: "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}


.speed-red{
    color: #ed1c24;
    text-align: center;
    font-size: 30px;
    font-weight: 900;
    padding-top: 5px;
    padding-right: 20px;
    padding-left: 20px;
    padding-bottom: 5px;
  
}


.speed-label{
    background: #ed1c24;
    color: #fff200;
    text-align: center;
    font-size: 30px;
    font-weight: 900;
    padding-top: 5px;
    padding-right: 20px;
    padding-left: 20px;
    padding-bottom: 5px;
    border-radius: 8px;
}

.speed-title{
    margin-top: 10px;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 10px;
    text-align: center;
    color: #FFFFFF;
    font-size: 24px;
    letter-spacing: .18em;
    font-weight: 900;
}

.speed-text{
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 20px;
    line-height: 1.8;
    color: #333;
    bottom: 50px;
}

.speed-arrow{
    width: 0;
    height: 0;
    margin-top: 30px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 15px;
    border-left: 100px solid transparent;
    border-right: 100px solid transparent;
    border-top:40px solid #f00;
    position: relative;
}

.speed-arrow::before{
  content:"";
  position:absolute;
  left:-70px;
  top:-60px;
  width:140px;
  height:30px;
  background:#f00;
}

.speed-answer{
    border: 3px solid #e60000;
    color: #e60000;
    font-size: 18px;
    line-height: 1.6;
    font-weight: 700;
    padding-top: 10px;
    padding-right: 20px;
    padding-left: 20px;
    padding-bottom: 10px;
}



.scroll-table{
 overflow-x:auto;
}

.process-table{
 width:100%;
 border-collapse:collapse;
}


.process-table th{
 background:#e82117;
 color:white;
 font-weight:bold;
 text-align:center;
}

.process-table th,
.process-table td{
 border:1px solid #ccc;
 padding:2px;
	vertical-align:middle;
}


.process-table td{
 background:#fff;
	 text-align:center;
	vertical-align:middle;
}


.case-detail{
    max-width: 100%;
    margin: 5px auto 15px auto;
}

.case-heading{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 5px;
  font-size:16px;
  font-weight:700;
  color:#111;
}

.case-heading span:nth-child(2),
.case-heading strong{
    color: #e62418;
    margin-bottom: 0px;
}

.case-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:25px;
  height:25px;
  background:#e62418;
  color:#fff;
  border-radius:5px;
  font-size:18px;
}

.case-heading strong{
  font-size:25px;
  line-height:1;
}

.case-layout{
    display: grid;
    grid-template-columns: 1fr 250px;
    gap: 15px;
    align-items: start;
    margin-bottom: 30px;
}

.case-photo img{
    width: 100%;
    height: 225px;
    object-fit: cover;
    display: block;
    border-radius: 4px;
}

.case-spec{
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.case-spec th,
.case-spec td{
  border:1px solid #ccc;
  padding:5px 10px;
  vertical-align:middle;
}

.case-spec th{
  width:65px;
  background:#e62418;
  color:#fff;
  text-align:center;
  font-weight:800;
}

.case-spec td{
    background: #fff;
    color: #222;
    line-height: 1.7;
}
.alumi-table{
    width: 100%;
    border-collapse: collapse;
    padding-top: 10px;
}
.alumi-table th{
    background-color: #DD2818;
    color: white;
    font-weight: 700;
    text-align: center;
}
.alumi-table th,
.alumi-table td{
    border: 1px solid #ccc;
    padding: 2px;
    vertical-align: middle;
    text-align: center;
}
.alumi-table td:nth-child(1){
 text-align: center;
	 width: 100px;
}
.alumi-table td:nth-child(2){
 text-align: left;
}

.alumi2-table{
    width: 100%;
    border-collapse: collapse;
    padding-top: 10px;
}
.alumi2-table th{
    background-color: #DD2818;
    color: white;
    font-weight: 700;
    text-align: center;
}
.alumi2-table th,
.alumi2-table td{
    border: 1px solid #ccc;
    padding: 10px;
    vertical-align: middle;
    text-align: center;
}
.alumi2-table td:nth-child(1){
	 width: 120px;
}
.alumi2-table td:nth-child(2){
 width: 120px;
}
.alumi2-table td:nth-child(3){
  text-align: left;
}

.img-text-box img{
    width: 200px;
    height: 250px;
    object-fit: cover;
    float: left;
    margin-top: 0px;
    margin-right: 10px;
    margin-left: 0px;
    margin-bottom: 10px;
}

/* 回り込み解除 */
.img-text-box::after{
  content:"";
  display:block;
  clear:both;
}


.scroll-table{
    overflow-x: auto;
    font-size: 11px;
}

.surface-table{
  width:100%;
  min-width:600px;
  border-collapse:collapse;
}

.surface-table th,
.surface-table td{
  border:1px solid #ccc;
  padding:2px;
  line-height:1.4;
  vertical-align:middle;
	text-align:center;
}

.surface-table th{
  background:#e62418;
  color:#fff;
  text-align:center;
  font-weight:600;
}

.surface-table td{
  background:#fff;
  color:#222;
}

.surface-table td:first-child{
  text-align:center;
  font-weight:bold;
  width:130px;
}

.surface-table .plus-head,
.surface-table .plus-cell{
  width:70px;
  background:#fff;
  border-top:none;
  border-bottom:none;
  text-align:center;
}

.surface-table .plus-cell{
  color:#159bd3;
  font-size:52px;
  font-weight:800;
}

.surface-table td:nth-child(3),
.surface-table td:nth-child(4),
.surface-table td:nth-child(5){
  width:130px;
}

.surface-table td:nth-child(6){
  width:180px;
}

.surface-table td:nth-child(7){
  width:260px;
}



.kaen-table{
    width: 100%;
    border-collapse: collapse;
    padding-top: 10px;
}
.kaen-table th{
    background-color: #DD2818;
    color: white;
    font-weight: 700;
    text-align: center;
}
.kaen-table th,
.kaen-table td{
    border: 1px solid #ccc;
    padding: 2px;
    vertical-align: middle;
    text-align: center;
    font-size: 12px;
}


.service-section {
    padding-top: 20px;
    padding-right: 4%;
    padding-left: 4%;
    padding-bottom: 10px;
    background: linear-gradient(135deg, #f8f8f8, #eeeeee);
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
}

.service-head {
    text-align: center;
    margin-bottom: 20px;
}

.service-head p {
    color: #dd2818;
    letter-spacing: 0.1px;
    font-weight: bold;
    margin: 0 0 10px;
    font-family: Arial, sans-serif;
}

.service-head p::after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  background: #dd2818;
  margin: 8px auto 0;
}

.service-head h2 {
    font-size: 32px;
    letter-spacing: .18em;
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 5px;
}

.service-head span {
    font-size: 14px;
}

.service-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.service-card {
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(0,0,0,.14);
}

.service-img {
  height: 150px;
  background-size: cover;
  background-position: center;
}

.service-body {
    padding: 10px;
    min-height: 140px;
}

.service-body h3 {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #dd2818;
    font-size: 16px;
    margin: 0 0 10px;
    font-weight: bold;
}

.service-body h3 span {
    position: relative;
    align-items: center;
    color: #dd2818;
    font-family: Arial, sans-serif;
    font-size: 19px;
    font-weight: bold;
    line-height: 2px;
    padding-top: 10px;
}

.service-body h3 span::after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  background: #dd2818;
  margin-top: 8px;
}

.service-body ul {

  margin: 0 0 0px;

  padding: 0;

  list-style: none;

  display: grid;

  grid-template-columns: repeat(1, 1fr);

  gap: 12px 10px;

  font-family: "Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;

  font-size:12px;

}
.service-body li {
    position: relative;
    padding-left: 13px;   /* ← 文字開始位置 */
    line-height: 1.6;
    margin-top: 0px;
}

.service-body li::before {

  content: "";

  position: absolute;

  left: 0;

  top: .45em;

  width: 8px;

  height: 8px;

  background: #dd2818;

  border-radius: 50%;

}





/* 三角リスト */
.case-list{
    margin: 5px;
    padding: 0;
    list-style: none;
}
.case-list li{
    position: relative;
    padding-left: 15px;
}
/* 黒三角 */
.case-list li::before{
 content:"";
 position:absolute;
 left:0;
 top:.45em;
 width:0;
 height:0;
 border-top:5px solid transparent;
 border-bottom:5px solid transparent;
 border-left:8px solid #000;
}
/* 赤矢印 */
.case-arrow{
 color:red;
 font-size:60px;
 font-weight:bold;
 text-shadow:
 2px 2px 4px rgba(0,0,0,.25);
}



/* スマホ */

@media(max-width:800px){

.case-wrap{

 flex-direction:column;

}


.problem,
.solution{

 width:100%;

}


.case-arrow{

 transform:rotate(90deg);

}}
/* 001 */
.button001 a {
    background: #eee;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    max-width: 280px;
    padding: 10px 25px;
    color: #313131;
    transition: 0.3s ease-in-out;
    font-weight: 500;
}
.button001 a:hover {
    background: #313131;
    color: #FFF;
}
.button001 a:after {
    content: '';
    width: 5px;
    height: 5px;
    border-top: 3px solid #313131;
    border-right: 3px solid #313131;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 20px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}
.button001 a:hover:after {
    border-color: #FFF;
}
	
	

/* タブレット */
@media screen and (max-width: 900px) {
  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ */
@media screen and (max-width: 600px) {
  .service-section {
    padding: 45px 5%;
  }

  .service-head h2 {
    font-size: 30px;
  }

  .service-grid {
    grid-template-columns: 1fr;
  }

  .service-body ul {
    grid-template-columns: 1fr;
  }
}

/* タブレット */
@media screen and (max-width: 900px) {
  .service-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ */
@media screen and (max-width: 600px) {
  .service-section {
    padding: 45px 5%;
  }

  .service-head h2 {
    font-size: 30px;
  }

  .service-grid {
    grid-template-columns: 1fr;
  }

  .service-body ul {
    grid-template-columns: 1fr;
  }
}




@media screen and (max-width:768px){
  .case-layout{
    grid-template-columns:1fr;
  }

  .case-photo img{
    height:auto;
  }

  .case-heading{
    flex-wrap:wrap;
    font-size:22px;
  }

  .case-spec{
    font-size:16px;
  }
}

.privacy-policy {
    color: #333;
    line-height: 1.9;
    margin-left: 10px;
    margin-right: 10px;
}

.privacy-policy p {
  margin: 0 0 18px;
}

.privacy-policy ol {
    margin-top: 20px;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 0;
    padding-left: 20px;
}

.privacy-policy li {
    margin-bottom: 10px;
    padding-left: 1px;
    margin-top: 0px;
    padding-top: 0px;
}

.contact-banner {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 8px 18px 12px;
  background: #f8e5d9;
  border: 1px solid #a9a9a9;
  border-radius: 12px;
  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    Meiryo,
    sans-serif;
}

.contact-banner-note {
  margin: 0 0 8px;
  color: #111;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.contact-banner-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.contact-banner-message {
  flex: 1;
  text-align: center;
}

.contact-banner-message p {
  margin: 0;
  color: #111;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.55;
}

.contact-banner-message strong {
  display: inline-block;
  margin-right: 4px;
  color: #e60012;
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
}

.contact-banner-form {
  width: 310px;
  box-sizing: border-box;
  padding: 8px 14px 7px;
  background: #fff;
  text-align: center;
}

.contact-banner-form-title {
  margin: 0 0 5px;
  color: #111;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

.contact-banner-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-height: 42px;
  padding: 5px 15px;
  box-sizing: border-box;
  color: #fff;
  background: #e60012;
  border-radius: 13px;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.contact-banner-button:hover {
  color: #fff;
  opacity: 0.8;
}

.contact-banner-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  flex-shrink: 0;
  color: #e60012;
  background: #fff;
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
}

.contact-banner-reception {
  margin: 6px 0 0;
  color: #111;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

/* スマートフォン */
@media screen and (max-width: 700px) {
  .contact-banner {
    padding: 10px 14px 14px;
  }

  .contact-banner-note {
    font-size: 13px;
  }

  .contact-banner-inner {
    flex-direction: column;
    gap: 12px;
  }

  .contact-banner-message p {
    font-size: 19px;
  }

  .contact-banner-message strong {
    font-size: 32px;
  }

  .contact-banner-form {
    width: 100%;
  }

  .contact-banner-button {
    font-size: 16px;
  }
}



/* スマホ */
@media(max-width:768px){

.process-table{
 min-width:900px;
}

}



@media (max-width:1200px){
    .parts-menu{
        grid-template-columns:repeat(3,1fr);
    }
}
@media (max-width:768px){
    .parts-menu{
        grid-template-columns:repeat(2,1fr);
    }
}
@media (max-width:480px){
    .parts-menu{
        grid-template-columns:1fr;
    }
}

@media screen and (max-width:900px){
  .case-card{
    flex-direction:column;
  }

  .case-left{
    width:100%;
    padding:35px;
  }

  .case-content{
    flex-direction:column;
  }

  .case-info{
    flex-direction:column;
    gap:35px;
  }

  .case-item + .case-item{
    border-left:none;
    border-top:1px solid #ddd;
    padding-top:35px;
  }
}
.philosophy-section {
    width: 700px;
	text-align: center;
    max-width: 100%;
    margin: 0 auto;
    color: #222;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;
}

.philosophy-title {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.kaiketsu-title {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
}


.text-blue {
    color: #1898d0;
}

.text-red {
    color: #e60012;
}

.philosophy-text {
    font-family:
        "Noto Sans JP",
        "Yu Gothic",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 16px;
    line-height: 2;
}

.philosophy-text p {
    margin: 0 0 12px;
}


.philosophy-bottom {
    margin: 0;
    font-size: 22px;
    line-height: 1.8;
    letter-spacing: 0.05em;
}

/* スマートフォン */

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

    .philosophy-section {
        width: auto;
        padding: 0 15px;
        box-sizing: border-box;
    }

    .philosophy-title {
        font-size: 21px;
    }

    .philosophy-text {
        font-size: 15px;
        line-height: 1.9;
    }

    .philosophy-diagram {
        width: 340px;
        height: 350px;
    }

    .philosophy-circle {
        width: 190px;
        height: 190px;
    }

    .philosophy-company {
        left: 2px;
        bottom: 0;
    }

    .philosophy-society {
        right: 2px;
        bottom: 0;
    }

    .circle-content {
        width: 145px;
    }

    .philosophy-employee .circle-content {
        top: 18px;
        left: 43px;
    }

    .philosophy-company .circle-content {
        top: 83px;
        left: 22px;
    }

    .philosophy-society .circle-content {
        top: 83px;
        left: 50px;
    }

    .circle-content h3 {
        margin-bottom: 2px;
        font-size: 23px;
    }

    .circle-content ol {
        padding-left: 18px;
        font-size: 9px;
        line-height: 1.55;
    }

    .philosophy-center-logo {
        top: 165px;
        width: 54px;
        height: 54px;
    }

    .philosophy-center-logo span {
        font-size: 25px;
    }

    .philosophy-bottom {
        font-size: 17px;
    }
}

/* スピード試作 */
.trial-message {
    color: #dd2818;
    font-family: "Noto Sans JP",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        Meiryo,
        sans-serif;
    font-size: 21px;
    font-weight: 500;
    line-height: 1.7;
    padding-bottom: 0px;
    margin-bottom: 20px;
}

.trial-message p {
    margin: 0 0 20px;
}

.trial-message strong {
    font-weight: 900;
}


/* スピード試作についてのbutton */
.speed-banner-wrap {
    text-align: center;
    margin-top: 10px;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 10px;
}

.speed-banner {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 700px;
    max-width: 100%;
    padding-top: 5px;
    padding-right: 28px;
    padding-left: 28px;
    padding-bottom: 5px;
    box-sizing: border-box;
    background: #e61d14;
    border: 3px solid #d9d9d9;
    color: #fff;
    text-decoration: none;
    transition: .25s;
}

.speed-banner:hover {
    background: #cc140c;
    color: #fff;
}

.speed-title {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .08em;
    padding-top: 0px;
    color: #ed1c24;
}

.speed-btn {
    display: inline-block;
    padding: 8px 18px;

    background: #000;
    border-radius: 30px;

    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
}

.speed-bannerb {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 700px;
    max-width: 100%;
    padding-top: 5px;
    padding-right: 28px;
    padding-left: 28px;
    padding-bottom: 5px;
    box-sizing: border-box;
    background: #1691de;
    border: 3px solid #d9d9d9;
    color: #fff;
    text-decoration: none;
    transition: .25s;
}

.speed-bannerb:hover {
    background: #026db0;
    color: #fff;
}


@media (max-width:768px){

    .speed-banner{
        flex-direction: column;
        gap: 15px;
        padding: 18px;
    }

    .speed-title{
        font-size: 24px;
        text-align:center;
    }

    .speed-btn{
        font-size:16px;
    }

}

.tech-heading {
    margin-top: 0px;
    margin-right: 0;
    margin-left: 0px;
    margin-bottom: 5px;
    padding-bottom: 0px;
    border-bottom: 2px solid #d91c14;
}

.tech-heading .main {
    color: #d91c14;
    font-size: 25px;
    font-weight: 700;
    margin-left: 5px;
    margin-top: 0px;
    margin-bottom: 0px;
	letter-spacing: .25em;
}
.tech-heading .gray {
    color: #888888;
	font-size: 25px;
    font-weight: 700;
    margin-left: 5px;
    margin-top: 0px;
    margin-bottom: 0px;
	letter-spacing: .25em;
}
.countermeasure-table-wrap {
    width: 100%;
    margin: 30px auto;
    overflow-x: auto;
}

.countermeasure-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
    font-family: "Noto Sans JP",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        Meiryo,
        sans-serif;
    color: #333;
    line-height: 1.7;
}

.countermeasure-table th,
.countermeasure-table td {
    border: 1px solid #bdbdbd;
    padding-top: 10px;
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 10px;
    vertical-align: middle;
    box-sizing: border-box;
}

.countermeasure-table thead th {
    background: #b5b5b5;
    color: #fff;
    font-weight: 700;
    text-align: center;
    padding: 10px 10px;
}

.countermeasure-table .category {
    color: #ef2a24;
    background: #fff;
    text-align: center;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .03em;
}

.countermeasure-table td {
    background: #fff;
}

.countermeasure-table td:nth-child(2) {
    text-align: left;
}

.countermeasure-table td:nth-child(3) {
}

.countermeasure-table tbody tr:hover td,
.countermeasure-table tbody tr:hover th {
    background: #fafafa;
}


/* スマホ */

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

    .countermeasure-table-wrap{
        margin:20px auto;
    }

    .countermeasure-table{
        min-width:700px;
        font-size:14px;
    }

    .countermeasure-table th,
    .countermeasure-table td{
        padding:12px;
    }

    .countermeasure-table thead th{
        font-size:18px;
    }

    .countermeasure-table .category{
        font-size:17px;
    }

}
.heat-treatment-lead {
  width: 100%;
  padding: 0px 0px 12px;
  background: #fff;
  color: #555;
}

.heat-treatment-title {
  position: relative;
  margin: 0 0 18px;
  padding-left: 24px;
  font-size: clamp(28px, 4.2vw, 36px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #666;
  text-shadow: 0 2px 3px rgba(0,0,0,.18);
}

.heat-treatment-title::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 7px;
  height: calc(100% - 8px);
  background: #e52b20;
}

.heat-treatment-title strong {
  color: #e93425;
  font-weight: 800;
}

.heat-treatment-text {
    padding-left: 22px;
    font-size: clamp(14px, 1.6vw, 16px);
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: .01em;
    color: #555;
    margin-bottom: 0px;
}

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

  .heat-treatment-lead {
    padding: 18px 15px;
  }

  .heat-treatment-title {
    padding-left: 17px;
    font-size: 29px;
    line-height: 1.4;
  }

  .heat-treatment-title::before {
    width: 5px;
  }

  .heat-treatment-title span,
  .heat-treatment-title strong {
    display: block;
  }

  .heat-treatment-text {
    padding-left: 0;
    font-size: 14px;
    line-height: 1.8;
  }
}

.problem-menu {
  margin:50px auto;
}

.menu-section {
    position: relative;
    border: 1px solid #b9b9b9;
    border-radius: 15px;
    padding-top: 35px;
    padding-right: 15px;
    padding-left: 15px;
    padding-bottom: 10px;
	margin-bottom: 50px;
}

.menu-section + .menu-section {
  margin-top: 15px;
}

.section-title {
    position: absolute;
    z-index: 2;
    top: -22px;
    left: 50%;
    width: min(950px, 65%);
    margin: 0;
    padding-top: 7px;
    padding-right: 24px;
    padding-left: 24px;
    transform: translateX(-50%);
    border-radius: 27px;
    color: #fff;
    text-align: center;
    font-size: 24px;
    line-height: 1.12;
    letter-spacing: .08em;
    font-weight: 800;
    text-shadow: 0 2px 1px rgba(0,0,0,.08);
    padding-bottom: 10px;
}

.menu-section.is-red .section-title {
  background: linear-gradient(to bottom, #ff0a0a 0%, #ff0808 58%, #df1820 100%);
}

.menu-section.is-blue .section-title {
  background: linear-gradient(to bottom, #0d51a8 0%, #0750a7 58%, #05357d 100%);
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.menu-card {
  min-width: 0;
  height: 130px;
  padding: 10px 5px 15px;
  border: 1px solid #b8b8b8;
  border-radius: 10px;
  background:
    linear-gradient(
      to bottom,
      #f8f8f8 0%,
      #f8f8f8 79%,
      #ededed 88%,
      #c7c7c7 100%
    );
  color: #4b4b4b;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}

.menu-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 16px rgba(0,0,0,.10);
}

.menu-card:focus-visible {
  outline: 4px solid rgba(35,115,210,.32);
  outline-offset: 4px;
}

.menu-label {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    font-size: 24px;
	padding: 10px 0px 10px;
    line-height: 1.0;
    font-weight: 800;
    letter-spacing: .02em;
}
.menu-b-label {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    font-size: 14px;
    padding: 10px 0px 10px;
    line-height: 1.0;
    font-weight: 800;
    letter-spacing: .02em;
}


.menu-section.is-blue .menu-label {
  min-height: 83px;
  align-items: center;
  font-size: clamp(22px, 1.78vw, 37px);
  font-weight: 600;
}

.menu-icon {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
    flex: 0 0 auto;
    margin-bottom: 0px;
}

/* 元画像では摩耗・コストダウンの切り出しが176px幅 */
.menu-card img[src$="wear.png"],
.menu-card img[src$="costdown.png"] {
  width: 176px;
}

.lab-title {
    color: #000;
    font-size: 18px;
    line-height: 1.12;
    letter-spacing: .08em;
    font-weight: 800;
    text-shadow: 0 2px 1px rgba(0,0,0,.08);
    padding-bottom: 10px;
}


#foot {
  background: #858585;
  width: 100%;
  padding: 35px 0 30px;
}

#foot01 {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  padding: 0 60px 0 200px;
  box-sizing: border-box;
}

.footlist {
  flex: 1;
}

.footlist ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footlist li {
    margin: 0 0 4px;
    padding: 0;
    line-height: 1.35;
}

.footlist a {
  color: #fff;
  text-decoration: none;
  font-size: 12px;
}

.footlist a:hover {
    text-decoration: underline;
    font-size: 12px;
    max-width: none;
}

.footlist .arrow1 {
  position: relative;
  padding-left: 23px;
}

.footlist .arrow1::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 1px;
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  color: #fff;
  background: #f22;
  border-radius: 50%;
  font-size: 10px;
}

/* スマホ */
@media screen and (max-width: 768px) {
  #foot01 {
    display: block;
    padding: 0 20px;
  }

  .footlist {
    margin-bottom: 25px;
  }

  .footlist a {
    font-size: 15px;
  }
}
