@charset "UTF-8";
/* CSS Document */
body{
margin: 0;
font-family: "Noto Serif JP", serif;
line-height: 1.6;
font-weight: 300;
}
header{
position: fixed;
top: 0;
display: flex;
justify-content: space-between;
align-items: center;
padding: 5px 40px;
width: 100%;
z-index: 1000;
background-color: #fff;
}
.logo p{
margin: 0;
font-size: 12px;
}
.logo img{
width: 280px;
}
.f-logo{
width: 200px;
}
.copy{
text-align: center;
padding: 10px;
margin-top: 10px;
border-top: 1px solid #ccc;
}
.top{
position: relative;
margin-top: 100px;
z-index: -1;
}
.top::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, 0.4);
}
.top img{
max-width: 100%;
}
.top h1{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color:rgba(255,246,246,0.50);
text-align: left;
margin: 0;
padding: 0;
font-size:7vw;
z-index: 3;
line-height: 120%;
font-weight:900;
overflow: hidden;
}
.char {
display: inline-block;
will-change: filter, opacity, transform; 
}
img{
max-width: 100%;
box-sizing: border-box;
}
img.top-h{
margin-top: 100px;
}
.top-m{
margin-top: 100px;
}
main{
position: relative;
}
section{
position: relative;
max-width: 1200px;
margin: 0 auto;
padding: 40px;
}
.section{
opacity: 0;
transform: translateY(40px);
}
.wrap{
padding: 60px 0;
}
h1{
text-align: center;
font-weight: 100;
font-size: 42px;
letter-spacing: 5px;
margin-bottom: 40px;
}
h2{
text-align: center;
letter-spacing: 2px;
margin: 40px auto 30px;
font-size: 36px;
font-weight: 300;
}
.flex-center{
display: flex;
justify-content: center;
padding: 20px 0;
}
.lead-top{
text-align: center;
}
p.lead{
font-size: 16px;
line-height: 200%;
margin: 40px 20px;
letter-spacing: 2px;
display: inline-block;
text-align: left;
}
.bg-info{
background: #EEAECA;
background: linear-gradient(13deg,rgba(238, 174, 202, 0.7) 0%, rgba(190, 181, 218, 0.63) 53%, rgba(148, 187, 233, 0.68) 100%);
padding: 20px 0;
}
.info dl{
max-width: 800px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
gap:5%;
align-items: flex-start;
padding: 20px;
}
.info dt{
width: 20%;
background-color: #fefefe;
letter-spacing: 2px;
color: #222;
padding: 2px;
text-align: center;
}
.info dt span{
font-size: 8px;
margin: 0 2px;
letter-spacing: 1px;
}
.info dd{
width: 75%;
margin-bottom: 5px;
}
.info dd h3{
margin: 0;
font-size: 16px;
font-weight: 400;
}
footer{
position: relative;
padding: 40px;
display: flex;
align-items: center;
justify-content: space-between;
gap:20px;
}
address img{
margin-bottom: 5px;
}
.f-nav p{
margin: 20px 0;
font-size: 14px;
}
.f-nav ul{
margin: 0;
padding: 0;
display: flex;
width: 100%;
gap: 20px;
}
.f-nav li{
width: 50%;
}
.f-nav li a{
font-size: 18px;
flex: 1;
display: inline-flex;
align-items: center;
white-space: nowrap;
padding: 10px 20px;
background-color: #3d62ac;
color: #fff;
margin: 1%;
}
.f-nav li :hover{
background-color:#9AACC3;
}
.mail a::before{
margin-right: 5px;
font-family: "Material Symbols Outlined";
content: '\e158';
font-size: 21px;
}
.tel a::before{
margin-right: 5px;
font-family: "Material Symbols Outlined";
content: '\e7ba';
font-size: 21px;
}
li.tel-pc{
font-size: 18px;
flex: 1;
display: inline-flex;
align-items: center;
white-space: nowrap;
padding: 10px 20px;
background-color: #3d62ac;
color: #fff;
margin: 1%;
width: 100%;
}
li.tel-pc::before{
margin-right: 5px;
font-family: "Material Symbols Outlined";
content: '\e7ba';
font-size: 21px;
}
.flex-wrap{
margin: 40px 0;
display: flex;
flex-direction: column;
gap: 60px;
}
.flex-box{
display: flex;
align-items: stretch; /* 高さを揃える */
position: relative;
min-height: auto; /* 高さを固定しない */
padding: 60px 0; /* 上下に余白を作る */
background-color:#DCE5E8;
}
.flex-box.reverse{
background-color: #fff;
flex-direction: row-reverse;
}
.flex-box img{
width: 55%;
eight: auto;
object-fit: cover;
opacity: 1; /* 表示 */
}
.flex-box-t{
position: relative; 
width: 55%; 
background-color: rgba(255, 255, 255, 0.95);
padding: 40px;
opacity: 1; /* 表示 */

/* 重なりを表現したい場合のみ、少し左にずらす */
margin-left: -10%; 
z-index: 2;
align-self: center; /* 縦方向は中央に */
}
.flex-box.reverse .flex-box-t{
margin-left: 0;
margin-right: -10%; /* 反転時は右にずらす */
}
.flex-box-t h3{
margin: 20px 0;
font-size: 24px;
letter-spacing: 5px;
font-weight:400;
}
.flex-box-t h3 span{
font-size: 12px;
margin-left: 10px;
letter-spacing: 2px;
}
.flex-box-t h3 span::before{
content: '-';
}
.btn-1{
display: flex;
justify-content: center;
margin: 40px auto;
width: 100%;
}
.btn-1 a{
padding: 7px;
text-align: center;
width: 300px;
background-color: #222;
color: #fff;
border-radius: 2px;
}
.btn-1 :hover{
background-color: #666;
}
.btn-2{
display: flex;
justify-content: center;
margin: 40px auto;
width: 100%;
}
.btn-2 a{
padding: 7px;
text-align: center;
width: 300px;
background-color: #fff;
color: #222;
border-radius: 2px;
}
.btn-2 :hover{
background-color: #666;
color: #fff;
}
.manufacturers a{
display: block;
background-color: #3d62ac;
color: #fff;
padding: 50px;
text-align: center;
font-size: 21px;
width: 80%;
margin: 40px auto 80px;
}
.manufacturers span{
display: block;
font-size: 14px;
}
.manufacturers a::after{
margin-right: 5px;
font-family: "Material Symbols Outlined";
content: '\e7cd';
font-size: 26px;
}
.manufacturers :hover{
background-color:#9AACC3;
}
.aboutus{
background-image: url("../parts/aboutus.jpg");
background-position: center;
background-size: cover;
min-height: 600px;
display: flex;
align-items: center;
position: relative;
margin-top: 40px;
}
.aboutus::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, 0.4);
}
.aboutus-box{
display: flex;
align-items: center;
z-index: 1;
}
.aboutus-t{
width: 70%;
color: #fff;
}
.aboutus-t h2{
font-size: 36px;
margin-bottom: 40px;
}
/*ベース*/
.sp{
display: none;
}
.pc{
display: block;
}
p{
line-height: 200%;
}
.bg-b{
background-color: #CCD9DA;
}
.bg-gy{
background-color: #F5F5F5;
}
.bg-lb{
background-color:#DAE3E8;
}

/*会社概要*/
.greeting-box{
background-image: url("../company/svg.png");
background-position: top;
background-size: cover;
padding: 40px 40px 0;
}
.greeting{
margin: 0 auto;
max-width: 1600px;
display: flex;
padding: 0 20px 40px;
gap:0 5%;
align-items: center;
flex-wrap: wrap;
}
.watanabe{
width: 25%;
text-align: center;
}
.watanabe p{
margin: 20px 0;
letter-spacing: 2px;
}
.greeting-t{
padding: 40px;
width: 70%;
}
.watanabe img{
max-width: 100%;
filter: drop-shadow(0px 0px 16px rgba(0,0,0,0.1));
}
table{
margin: 50px auto;
}
table th{
width: 25%;
padding: 20px;
font-weight: 400;
}
table td{
padding: 20px;
}
.table-1 tr:nth-child(odd){
background-color:#F5F5F5;
}
.table-2 tr:nth-child(odd){
background-color:#ffffff;
}

.table-3 tr:first-child th:nth-child(2) {
    text-align: left;
  }
.symbol{
display: flex;
margin: 80px auto;
justify-content: center;
gap:5%;
}
.symbol img{
width: 20%;
}
.map-box{
display: flex;
gap:5%;
justify-content: center;
margin-bottom: 40px;
margin-top: 40px;
}
.map{
width:47%;
}
.map h3{
font-weight: 400;
margin: 10px 0 0;
}
.map p{
line-height: 150%;
}
.map iframe{
margin-top: 40px;
}
/*サービス*/
table.table-3{
margin-top: 30px;
}
.w1000{
max-width: 1000px; 
margin: 0 auto;
}
.table-3 th{
border: 1px solid #eee;
padding: 10px;
background-color: #F5F5F5;
}
.table-3 td{
border: 1px solid #eee;
padding: 10px;
background-color: #fff;
}
.table-3 th:first-child{
width: 10%;
vertical-align: text-top;
background-color: #F5F5F5;
}
.table-3 th[scope="row"] {
  width: 10%;
  vertical-align: text-top;
  background-color: #fff; /* ここを白にする */
}
.line{
border-top: double #eee 4px;
}
.service-wrapper{
width: 90%;
margin: 0 auto;
padding: 80px 20px 120px;
display: flex;
gap:10%;
align-items:flex-start;
flex-direction: row;
}
.service-wrapper:nth-of-type(2n){
flex-direction: row-reverse;
}
.service-img{
width: 40%;
position: relative;
}
.service-img img{
width: 94%;
}
img.img-s {
position: absolute;
right: -10%;
top: 60%;
width: 50%;
/*box-shadow: -10px -10px 0px 0px rgba(255, 253, 253, 0.8);*/
box-shadow: -10px -10px 0px 0px rgba(241, 241, 241, 0.7);
}
.service-t{
width: 50%;
}
.service-t h3{
font-weight: 500;
margin-bottom: 10px;
}
.service-t h4{
font-weight: 500;
margin-bottom: 10px;
background-color: #55676A;
color: #fff;
padding: 2px 10px;
}
.service-t p{
margin-bottom: 20px;
}
.service-t ul{
margin-bottom: 20px;
list-style: circle;
list-style-position: inside;
}
.box100{
display: flex;
gap:5%;
}
.box50{
width: 47.5%;
}
.mixing{
display: flex;
padding: 40px;
background-color: #fff;
margin: 20px auto;
gap:5%;
border-radius: 10px;
flex-direction: row;

}
.mixing img{
border-radius: 50%;
width: 40%;
aspect-ratio: 1 / 1; /* 縦横比を1:1に強制する */
object-fit: cover;
align-self: flex-start; /* 親の高さに引き伸ばされるのを防ぐ */
}
.miximg-t h3{
background-color: #E7E7E7;
padding: 2px 20px;
}
.miximg-t p{
line-height: 170%;
}
/*contact*/

.contact h3{
margin-bottom: 10px;
font-weight: 400;
}
.contact p{
margin-bottom: 20px;
}
.pp-wrapper{
padding: 40px 0;
}
.pp{
height: 300px;
overflow-y: auto;
background-color: #fff;
padding: 40px;
margin-bottom: 20px;
text-align: left;
line-height: 150%;
}
.pp h5{
font-size: 14px;
}
.kakunin{
text-align: center;
}
/* アニメーション用クラスの初期状態 */
.js-fade-up, 
.js-fade-up-slow, 
.js-fade-left, 
.js-fade-right {
  opacity: 0;
  will-change: transform, opacity;
}

@media screen and (min-width: 769px) {

}
@media (max-width: 768px){
.top h1{
font-size:10vw;
}
.wrap{
padding: 40px 0;
}
section{
padding: 40px 20px;
}
.info dl{
max-width: 100%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
gap:5%;
align-items: flex-start;
padding: 20px 0;
}
.info dt{
width: 100%;
background-color: #fefefe;
letter-spacing: 2px;
color: #222;
padding: 5px 0 5px 10px;
text-align: left;
}
.info dd{
width: 100%;
margin-bottom: 5px;
padding: 10px;
}
.manufacturers a{
display: block;
background-color: #3d62ac;
color: #fff;
padding: 30px 0px;
text-align: center;
font-size: 21px;
width: 100%;
margin: 0 auto 40px;
}

.flex-box, 
.flex-box.reverse {
flex-direction: column;
min-height: auto;
}

.flex-box img {
width: 100%;
height: auto;
}

.flex-box-t {
position: relative; /* 絶対配置を解除 */
    width: 90%;
    right: auto;
    left: auto;
    top: auto;
    transform: none; /* transformのズレを解消 */
    padding: 30px 20px;
    box-shadow: none;
	margin-left: 0%;
	margin-top: -10px;
}
.flex-box.reverse .flex-box-t{
margin-left: 0;
margin-right: 0%; /* 反転時は右にずらす */
margin-top: -10px;
}
.flex-box-t h3{
margin: 20px 0;
font-size: 21px;
letter-spacing: 2px;
}
.flex-box-t h3 span{
font-size: 12px;
margin-left: 10px;
letter-spacing: 2px;
display: block;
}
.aboutus{
margin-bottom: 40px;
}
.aboutus-t{
width: 90%;
color: #fff;
margin: auto;
}
.aboutus-t h2{
font-size: 26px;
margin-bottom: 40px;
}
h1{
text-align: center;
font-weight: 100;
font-size: 34px;
letter-spacing: 0;
margin-bottom: 20px;
}
h2{
text-align: center;
letter-spacing: 2px;
margin: 10px auto 10px;
font-size: 28px;
font-weight: 300;
}
.sp{
display: block;
}
.pc{
display: none;
}
footer{
position: relative;
padding: 20px;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column-reverse;
}
.f-nav ul{
margin: 0 ;
padding: 0 0 20px;
display: block;
width: 100%;
gap: 0;
text-align:center;
}
.f-nav li{
display: inline-block;
margin-bottom: 20px;
width: 80%;
}
.f-nav li a{
display: inline-flex;
align-items: center;
white-space: wrap;
padding: 10px 20px;
background-color: #3d62ac;
color: #fff;
width:100%;
margin: 1%;
text-align: center;
}
.service-wrapper{
width: 100%;
margin: 0 auto;
padding: 40px 20px 60px;
display: block;
gap:10%;
align-items:flex-start;
flex-direction: row;
}
.service-wrapper:nth-of-type(2n){
flex-direction: row;
}
.service-img{
width: 90%;
position: relative;
}
.service-t{
width: 100%;
padding-top: 50px;
}
/*会社概要*/
.greeting-box{
background-image: url("../company/svg.png");
background-position: top;
background-size: cover;
padding: 0 20px 0;
}
.greeting{
margin: 0 auto;
max-width: 1600px;
display: block;
padding: 0;
gap:0 5%;
align-items: center;
}
.watanabe{
width: 100%;
padding-bottom: 20px;
}
.watanabe img{
margin: 0 auto;
width: 80%;
}
.greeting-t{
width: 100%;
padding: 0 0 20px;
}
.symbol{
display: block;
margin: 40px auto;
justify-content: center;
gap:5%;
}
.symbol img{
width: 40%;
margin: 0 auto 40px;
}
table, 
  table tbody, 
  table tr, 
  table th, 
  table td {
    display: block;
    width: 100% !important; /* PC用の25%などを上書き */
    box-sizing: border-box;
  }
  /* テーブルの構造を縦並びにリセット */
  .table-1, .table-1 tbody, .table-1 tr, .table-1 th, .table-1 td,
  .table-2, .table-2 tbody, .table-2 tr, .table-2 th, .table-2 td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  /* --- table-1 の設定 --- */
  .table-1 th {
    background-color: #F5F5F5; /* PC版と同じグレーをスマホのthにも適用 */
    padding: 10px 20px;
    border-bottom: none; /* tdとの境界をスッキリさせる */
	text-align: left;
  }
  .table-1 td {
    background-color: #ffffff;
    padding: 10px 20px 20px;
    border-bottom: 2px solid #F5F5F5; /* 次の項目との区切り */
  }

  /* テーブルの構造を解除して縦に並べる */
  .table-2, .table-2 tbody, .table-2 tr, .table-2 th, .table-2 td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  .table-2 tr {
    margin-bottom: 20px; /* 各年代セットの間に隙間を作る */
  }

  /* 年号の部分 (th) */
  .table-2 th {
    background-color: #fff !important; /* ここでグレーにする */
    padding: 10px;
    text-align: left;
    font-weight: bold;
    border: 1px solid #F5F5F5;
  }

  /* 説明文の部分 (td) */
  .table-2 td {
    background-color: #F5F5F5 !important; /* ここは常に白 */
    padding: 20px 10px;
    border: 1px solid #F5F5F5;
    border-top: none; /* thとくっつける */
  }

  /* もし「奇数行だけ何か変えたい」という指定が残っていたら、これでリセット */
  .table-2 tr:nth-child(odd),
  .table-2 tr:nth-child(odd) th,
  .table-2 tr:nth-child(odd) td {
    /* 奇数・偶数関係なく、thはグレー、tdは白に統一 */
  }
 
  /* 一番上の行の見出し調整 */
  .table-3 tr:first-child th:first-child {
    display: none; /* 「五十音順」のセルだけを非表示 */
  }
.table-3 tr:first-child th:nth-child(2) {
	border-right: 1px solid #F5F5F5;
  }
  .table-3 tr:first-child th:not(:first-child) {
    display: block;
    background-color: #eee; /* 見出しらしく少し色を濃く */
    box-sizing: border-box;
  }

  /* --- 以下、先ほどまでの設定を維持 --- */
  .table-3, .table-3 tbody, .table-3 tr {
    display: block;
    width: 100%;
  }

  .table-3 tr {
    display: flex;
    flex-wrap: wrap;
  }

  .table-3 th[scope="row"] {
    display: block;
    background-color: #F5F5F5 !important;
    text-align: left;
    padding: 10px;
  }

  .table-3 td {
    display: block;
    box-sizing: border-box;
    border: 1px solid #eee;
    padding: 10px;
    background-color: #fff;
    font-size: 14px;
    word-break: break-all;
  }
.map-box{
display: block;
gap:5%;
justify-content: center;
margin-bottom: 40px;
}
.map{
width:100%;
margin-bottom: 40px;
}
.box100{
display: block;
gap:5%;
}
.box50{
width: 100%;
}
.mixing{
display: block;
padding: 20px;
background-color: #fff;
margin: 20px auto;
gap:5%;
border-radius: 10px;
flex-direction: row;

}
.mixing img{
border-radius: 50%;
width: 80%;
margin: 0 auto 20px;
}
}
@media(min-width: 768px){
  a[href^="tel:"]{
    pointer-events: none;
  }
}