@charset "UTF-8";
/* CSS Document */

@font-face {
  font-family: "Hannari";
  src: url("https://cdn.jsdelivr.net/gh/google/fonts@main/ofl/hannari/Hannari-Regular.ttf") format("truetype");
}
html {
  scroll-behavior: smooth;
}

body{
  color:#192118;
  width: 100%;
  margin:0;
  padding:0;
  font-size:15px;
 font-family: "Hannari", "Noto Serif JP", serif;
  line-height:1.8;
overflow-x: hidden;
font-feature-settings: "palt";
background: #f4f7f8;
   display: flex;
  flex-direction: column;
  min-height: 100vh; 
}


img{
display: block;
margin: 0;
padding: 0;
max-width: 100%;
height:auto;
width:auto;
	
}

p{
margin: 0;
padding: 0;
	
}

a{
	text-decoration: none;
	color:#192118;
}

hr {
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

hr{
	border: none;   
	border-top: 2px solid #646464;
	}

main {
  flex: 1;
}

/*------------------------------------------------------------
	header
------------------------------------------------------------*/
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

header.scrolled {
    background-color: white;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: bold;
}

.header-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    z-index: 1002;
}

.header-logo img {
    width: 100%;
    max-width: 300px;
    margin: 0;
    padding: 0;
}

/* ===========================
   PCナビゲーション
=========================== */
.nav {
    display: flex;
    align-items: center;
    gap: 5px;
}

.nav-link {
    color: #1a1a1a;
    padding: 12px 20px;
    text-decoration: none;
    font-size: 12px;
    transition: all 0.3s ease;
    border-radius: 4px;
    white-space: nowrap;
    font-family: "Zen Kaku Gothic New", sans-serif;
}

.nav-link:hover {
    background: rgba(0,0,0,0.05);
    color: #c2185b;
}

.btn-contact {
    padding: 12px 32px;
    background: #a3005b;
    color: white;
    text-decoration: none;
    border-radius: 10px;
    font-size: 12px;
    font-weight: bold;
    transition: all 0.3s ease;
    margin-left: 10px;
}

.btn-contact:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(194, 24, 91, 0.4);
    background: linear-gradient(135deg, #ad1457, #d81b60);
}

/* ===========================
   PCドロップダウンメニュー
=========================== */
.nav-dropdown {
    position: relative;
    /* ドロップダウンを開いたときにカーソルが離れても閉じないよう、領域を確保 */
    padding-bottom: 5px; 
}

.dropdown-toggle {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* ▼アイコン */
.arrow {
    font-size: 8px;
    transition: transform 0.3s;
    display: inline-block;
}

/* active または hover-active のときだけ矢印反転 */
.nav-dropdown.active .arrow,
.nav-dropdown.hover-active .arrow {
    transform: rotate(180deg);
}

/* ドロップダウン本体 */
.dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background-color: white;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border-radius: 8px;
    min-width: 180px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1000;
    overflow: hidden;
}

/* クリック時 (.active) またはホバー時 (.hover-active) の表示 */
.nav-dropdown.active .dropdown-menu,
.nav-dropdown.hover-active .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* ドロップダウン内リンク */
.dropdown-item {
    display: block;
    padding: 12px 20px;
    color: #1a1a1a;
    text-decoration: none;
    font-size: 12px;
    transition: all 0.3s ease;
    border-bottom: 1px solid #f0f0f0;
    font-family: "Zen Kaku Gothic New", sans-serif;
    white-space: nowrap;
}

.dropdown-item:last-child {
    border-bottom: none;
}

.dropdown-item:hover {
    background: rgba(194, 24, 91, 0.05);
    color: #c2185b;
    padding-left: 25px;
}

/* ===========================
   モバイルメニュー 全体
=========================== */
.mobile-menu-btn {
    display: none;
    background: none;
    border: none;
    font-size: 28px;
    color: #333;
    cursor: pointer;
    padding: 8px;
    z-index: 1002;
}

.mobile-nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 1001;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.mobile-nav.active {
    /* JSによって active が付いたら表示 */
    display: block;
}

.mobile-nav-content {
    position: absolute;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100%;
    background: white;
    transition: right 0.3s ease;
    padding: 20px;
    overflow-y: auto;
}

.mobile-nav.active .mobile-nav-content {
    right: 0;
}

.mobile-nav-close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: none;
    font-size: 32px;
    color: #333;
    cursor: pointer;
    padding: 5px;
}

.mobile-nav-link {
    display: block;
    padding: 15px 20px;
    text-decoration: none;
    color: #333;
    font-size: 16px;
    border-bottom: 1px solid #eee;
    transition: background 0.3s;
    font-family: "Zen Kaku Gothic New", sans-serif;
}

.mobile-nav-link:hover {
    background: #f5f5f5;
}

.mobile-btn-contact {
    display: block;
    margin-top: 20px;
    padding: 15px 30px;
    background: linear-gradient(135deg, #c2185b, #e91e63);
    color: white;
    text-decoration: none;
    border-radius: 25px;
    text-align: center;
    font-weight: bold;
}

/* ===========================
   モバイルドロップダウン (強み)
=========================== */
.mobile-dropdown {
    position: relative;
}

.mobile-dropdown-toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.mobile-arrow {
    font-size: 12px;
    transition: transform 0.3s;
    display: inline-block;
}

.mobile-dropdown.active .mobile-arrow {
    transform: rotate(180deg);
}

/* 開閉アニメーション */
.mobile-dropdown-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #f8f8f8;
}

.mobile-dropdown.active .mobile-dropdown-content {
    max-height: 300px; /* サブメニューの高さに合わせて調整 */
}

/* サブリンク */
.mobile-nav-link.mobile-sub {
    padding-left: 40px;
    font-size: 14px;
    border-bottom: 1px solid #e0e0e0;
    background: #f8f8f8;
}

.mobile-nav-link.mobile-sub:hover {
    background: #eeeeee;
}

/* ===========================
   レスポンシブ対応
=========================== */
/* PCメニューを非表示にし、モバイルボタンを表示 (1024px以下) */
@media (max-width: 1024px) {
    .nav {
        display: none;
    }
    
    .mobile-menu-btn {
        display: block;
    }
}

/* PCサイズ (1025px以上) でモバイルメニューを強制的に非表示 */
@media (min-width: 1025px) {
    .mobile-nav {
        /* JSによる制御を防ぎつつ、メニューが表示されないようにする */
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }

    .mobile-nav.active {
        visibility: hidden !important;
        opacity: 0 !important;
    }
}
    
/* 小画面 (768px以下) の調整 */
@media (max-width: 768px) {

    /* PCのドロップダウンは確実に非表示 */
    .nav .nav-dropdown .dropdown-menu {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        transform: none !important;
    }

    /* PC用の "強み" トグルは無効化（クリックさせない） */
    .nav-dropdown .dropdown-toggle {
        pointer-events: none;
    }
    
    /* 768px以下のヘッダー調整 */
    header {
        height: auto;
        z-index: 100;
    }

    .header-container {
        padding: 10px 15px;
    }

    .header-logo img {
        max-width: 180px;
    }
}
/*------------------------------------------------------------
ボタンエリア
------------------------------------------------------------*/

.btn_a a {
  background: #78884d;
  position: relative;
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0 auto;
  max-width: 240px;
  padding: 10px 25px;
  color: #fff;
  transition: 0.3s ease-in-out;
  font-weight: 500;
}

.btn_a a:before {
  content: '';
  position: absolute;
  top: calc(50% - 2px);
  right: -2em;
  transform: translateY(calc(-50% - 2px)) rotate(30deg);
  width: 12px;
  height: 2px;
  background-color: #646464;
  transition: 0.3s;
}

.btn_a a:after {
  content: '';
  position: absolute;
  top: 50%;
  right: -2em;
  transform: translateY(-50%);
  width: 60px;
  height: 2px;
  background-color: #646464;
  transition: 0.3s;
}

.btn_a a:hover:before,
.btn_a a:hover:after {
  right: -2.5em;
}

.btn_a a:hover {
  background: #a3005b;
  color: #fff;
}


/*------------------------------------------------------------
見出しh2
------------------------------------------------------------*/
.subtitle_a,
.subtitle_b{
	position: relative;
	padding-top: 50px;
	padding-bottom: 0px;
	font-size: 50px;
	text-align: left;
	
}

.subtitle_a span,
.subtitle_b span {
	position: relative;
	z-index: 2;
	color: #646464;
	font-weight: 400;
}

/*英語白部分*/
.subtitle_a::before {
	content: attr(data-en);
	position: absolute;
	top:-100px;
	left: 0;
	color: #fff;
	font-size: 150px;
	  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
z-index: 1;
}

/*英語緑部分*/
.subtitle_b::before {
	content: attr(data-en);
	position: absolute;
	top:-100px;
	left: 0;
	color: #caddcd;
	font-size: 150px;
	  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
z-index: 1;
}


.subtitle_a::after, 
.subtitle_b::after{
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 80px;
	height:5px;
	background-color: #646464;
	z-index: 3;
}




/*------------------------------------------------------------
お問い合わせ
------------------------------------------------------------*/
.contact-section {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.contact_top{
	background: url("../../img/bg-video_top.png") no-repeat top left;
	height: 340px;
	width: 100%;
	position: absolute;
	z-index:-1;
	top: 0;
	
	}

.bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    opacity: 0.7;
}


.contacus{
  position: absolute;
  left: 5%;
  top:10%;


  }

.contacus img{
	width: 100%;
	max-width: 500px;
	  }



@media (max-width: 768px) {
.contact-section {
    position: relative;
    width: 100%;
    overflow: hidden;
   min-height:auto;
}
	
.contacus{
  position: absolute;
  right: 0;
  top:10%;

  }

.contacus img{
	width: 100%;
	max-width:200px;
	  }


  }

/* ===== タイトル・サブタイトル ===== */
.contact-title,
.contact-subtitle {
  position: relative;
  z-index: 2; /* 背景画像より上に表示 */
}

 .contact-title {
            font-size: 75px;
            font-weight:700;
            color: #646464;
            margin:0 auto;
            letter-spacing: 0.05em;
	 text-align: center;
	 padding:200px 0 0 0;
        }

        .contact-subtitle {
            font-size: 50px;
			font-weight:700;
            color: #646464;
            margin:0 auto;
            letter-spacing: 0.05em;
			text-align: center;
			padding: 0;

        }

.contact-area {
	padding:0 0 300px 0;
	margin: 0 auto;
	width: 100%;
	text-align: center;
	 position: relative;
  z-index: 2; 
	
	
	}
 .phone-number {
            display: inline-flex;
            align-items: center;
            font-size:65px;
            font-weight:bold;
            color: #b41d5c;
            text-decoration: none;
            letter-spacing: 0.02em;
            transition: opacity 0.3s;
        }

        .phone-number:hover {
            opacity: 0.8;
        }

        .phone-icon {
            width: 50px;
            height: 50px;
            margin-right: 10px;
        }

      .button-group {
            display: flex;
            justify-content: center;
            gap: 20px;
            flex-wrap: wrap;
		   position: relative;
  z-index: 2; 
		 
        }

        .contact-btn {
            padding: 10px 0;
            width: 260px;
            text-align: center;
            font-size: 17px;
            font-family: "Zen Kaku Gothic New", sans-serif;
			font-weight:bold;
            border: none;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            transition: all 0.3s;
            letter-spacing: 0.05em;
        }
        .btn-primary {
            background-color: #b41d5c;
            color: white;
        }

        .btn-primary:hover {
            background-color: #9a1850;
        }

        .btn-secondary {
            background-color:#fff;
            color: #b41d5c;
        
        }

        .btn-secondary:hover {
            background-color: #b41d5c;
            color: white;
        }

.contact_office {
  position: absolute;
  left: 0;
  bottom: 0;
	  }

.contact_office  img{
	width: 100%;
	opacity: 0.7;
	  }

/*------------------------------------------------------------
footer
------------------------------------------------------------*/
footer {
  width: 100%;
background: #a3005b;
  color: #fff;
  padding:30px 20px;
text-align: center;
margin: 0 auto;
	
}

.footer-logo {
  text-align: center;
  margin: 0 auto 10px auto;
}

.footer-logo img {
  width: 92px;
  max-width: 100%; 
  height: auto;
  display: block;
  margin: 0 auto;
}

.footer-company {
  font-size: 14px;
  margin-bottom: 30px;
  letter-spacing: 0.05em;
  font-family: "Zen Kaku Gothic New", sans-serif;
 font-weight: bold;
}

.footer-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px 20px;
  margin:0 auto 30px auto;
width: 96%;
  font-size: 13px;
	  font-family: "Zen Kaku Gothic New", sans-serif;
	 font-weight: bold;
}

.footer-nav a {
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s;
  white-space: nowrap;
}

.footer-nav a:hover {
  opacity: 0.7;
}

.footer-copyright {
  font-size: 11px;
  opacity: 0.9;
  letter-spacing: 0.03em;
}

@media (max-width: 768px) {
  footer {
    padding: 25px 0;
  position: relative;
  z-index: 10;
  }
	

  
  .footer-logo img {
    width: 70px;
  }

  
  .footer-company {
    font-size: 10px;
  }
}

/*------------------------------------------------------------
FV
------------------------------------------------------------*/
/*.top_fv {
    width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
    z-index: 1;
}
.top_fv img {
    width: 100%;
    height: auto;
    display: block;
}
*/

.top_fv_base {
  background: #cde3ef;
  position: relative; /* fv_drop_areaの基準になる */
  overflow: hidden;

}

.fv_drop_area {
  position: absolute;
  z-index: 10;
  pointer-events: none;
}

/* ← 画像にアニメーションを適用する！ */
.fv_drop_area img {
  height: auto;
  display: block;
  animation: flow-up-fade 6s linear infinite;
  position: relative; /* transformの基準 */
  will-change: transform, opacity;
}

@keyframes flow-up-fade {
  0% {
    transform: translateY(100px); /* 下からスタート */
    opacity: 0;                   /* 非表示 */
  }
  20% {
    opacity: 1;                   /* ふわっと表示 */
  }
  80% {
    transform: translateY(-80px); /* 上に移動 */
    opacity: 0;                   /* 上で消える */
  }
  100% {
    transform: translateY(100px); /* 下に戻る（ループ用） */
    opacity: 0;
  }
}



.top_fv {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}

/* 画像スライド部分 */
.top_fv img {
  position: absolute;
width: 100%;
height: 100%;;
background: #cde3ef;
  backface-visibility: hidden;
  opacity: 0;
  transform: scale(1.4) rotate(12deg);
  animation: CrossFade 24s infinite;
	object-fit: cover;

}

.top_fv img:nth-child(3) {
  animation-delay: 6s;
}
.top_fv img:nth-child(2) {
  animation-delay: 12s;
}
.top_fv img:nth-child(1) {
  animation-delay: 18s;
}

@keyframes CrossFade {
  25% {
    opacity: 1;
    transform: scale(1) rotate(0);
  }
  40% {
    opacity: 0;
  }
}

/* イントロテキスト部分 */
.intro{
    position: absolute;
    bottom: 15%;
    left: 10%;
    color: #FFF;
    z-index: 10; /* 画像の上に表示するためにz-indexを高く設定 */
    /* === テキストのスライドインアニメーション === */
    opacity: 0; /* アニメーション開始まで非表示 */
    /* アニメーション名, 実行時間, イージング, 遅延時間, 終了後の状態 */
    animation: TextSlideIn 2.5s ease-out 0.5s forwards; 
}
.intro h1{
	font-size: 60px;
    font-weight: normal;
	padding: 0;
	margin: 0;
	text-align: left;
	text-shadow: 2px 2px 3px #808080;
}

.intro p{
	font-size: 30px;
	font-weight: normal;
	padding: 0;
	margin: 0;
	text-align: left;
	text-shadow: 2px 2px 3px #808080;
	line-height:1.4;
}
/* テキストスライドインのキーフレーム (左から中央へ) */
@keyframes TextSlideIn {
    0% {
        opacity: 0;
        transform: translateX(-100px); /* 左から-100pxの位置からスタート */
    }
    100% {
        opacity: 1;
        transform: translateX(0); /* 元の位置（左から5%の位置）に戻る */
    }
}
/*------------------------------------------------------------
ABOUT US
------------------------------------------------------------*/
/* セクション全体 */
.top_about {
  margin: 0 auto;
  padding:100px 0;
  text-align: center;
  position: relative;
  overflow: visible;
  z-index: 2; /* FVより上に */
	width: 100%;
background: #f4f7f8;

}

.top_abouttop{
	background: url("../../img/top/about_top.png") no-repeat top left;
	height: 340px;
	width: 100%;
	position: absolute;
	z-index: 2;
	top: -200px;
	
	}

.top_aboutbottom{
	background: url("../../img/top/about_bottom.png") repeat-x bottom left;
	height: 100px;
	width: 100%;
	position: absolute;
	z-index: 2;
	bottom: 0;
	
	}

/* ▼ 一番下：背景動画レイヤー */
.top_about_video {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}



.top_about_video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 動画を薄くするための半透明オーバーレイ */
.top_about_overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.8);
  z-index: 2;
  pointer-events: none;
}

/* ▼ 中間：about_back.png の背景ボックス */
.top_aboutbase {
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  background: url("../../img/top/about_back.png") no-repeat center / cover;
  aspect-ratio: 800 / 713;
  position: relative;
  z-index: 3;
	display: block; 
}

/* ▼ 一番上：前面に出したイメージ画像 */
.top_aboutbase_img {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  max-width: 1200px;
  width: 100%;
  z-index: 3; /* FVのz-index: 1より大きい値 */
  pointer-events: none;
}
.top_aboutbase_img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ボタン・テキストは確実にクリック可能に */
.top_about_btn {
  position: relative;
  z-index: 4;
  pointer-events: auto;
}

.top_about_btn .btn_a {
  pointer-events: auto;
}

/* タイトル */
.top_about h2 {
  display: inline-block;
  position: relative;
  color: #23433a;
  font-size: 60px;
  font-weight: normal;
  padding: 100px 0 0 0;
  margin: 0 auto;
  z-index: 4;
}
.top_about h2:before {
  content: '';
  display: inline-block;
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 30px;
  background-color: #23433a;
}

/* テキスト */
.top_about p {
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 35px;
  padding: 25px 0 50px 0;
  margin: 0 auto;
  z-index: 4;
  position: relative;
}



/* 私たちの強み*/
.top_strength_base{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;	
		}

.strength_area{
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 30px;
	
		}

.strength_box{
            background-color: white;
            border-radius:0 30px 0 30px;
            padding: 40px 30px;
            text-align: center;
        }

.strength_icon {
            width: 175px;
            height:175px;
            margin: 0 auto 30px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

.strength_icon img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }

.strength_box h3{
            font-size: 33px;
            font-weight: 500;
            margin-bottom: 25px;
            color: #646464;
            letter-spacing: 2px;
        }

.strength_box p {
            font-size: 18px;
            line-height: 1.8;
            color: #1a1a1a;
            margin-bottom: 35px;
            min-height: 80px;
	        text-align: left;
        }

.strength_btn {
            background-color: #78884d;
            color: white;
            border: none;
            padding: 15px 60px;
            font-size: 18px;
            font-weight: 500;
            letter-spacing: 3px;
            cursor: pointer;
            transition: background-color 0.3s ease;
            width: 100%;
        }
.strength_btn a {
	color: white;
	 }
.strength_btn:hover {
            background: #a3005b;
        }
/* OEMのご案内*/
.around_base {
    width: 100%;
    margin:80px auto;
    padding: 0;
    position: relative;
}

.around_base img {
    display: block;
    width: 100%;
    height: auto;
}

.around_area {
	max-width: 1200px;
	width: 100%;
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%); 
}
/* OEMのご案内*/

.top_product{
	background: url("../../img/top/back_oem.png")  no-repeat center center / cover;
	
		}
.top_product_area{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
 display: flex;
  flex-wrap: wrap;
	
		}

.top_product_item {
  width: 50%;
  text-align: center;
  padding: 20px ;
  box-sizing: border-box;
}

/* fadeup は「アイテム本体」に効かせる */
.top_product_item.fadeup {
    opacity: 0;
    transform: translateY(30px); /* これは親要素の移動だからOK */
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.top_product_item.fadeup.in-view {
    opacity: 1;
    transform: translateY(0);
}

/* 画像のズームアニメは img だけに適用し、親の transform の影響を受けない */
.top_product_item img {
    max-width: 500px;
    width: 100%;
    opacity: 0;
    transform: scale(1.5);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.top_product_item.in-view img {
    animation: zoomOut 1.5s ease-out forwards;
}

@keyframes zoomOut {
    0% {
        transform: scale(1.5);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}




.top_product_item h3{
	color: #4f905b;
	font-size: 40px;
	padding: 0;
	margin: 0;
	}

.top_product_item p{
	padding: 0;
	margin: 0;
		}

.top_product_btn {
	
	padding:50px 0 150px 0;
	margin: 0;
	
	
		}


.top_selection_area{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:120px 0;
  text-align: center;
	
		}

.top_selection_base {
    max-width: 1200px;
    margin: 120px auto 0 auto;
    padding: 0;
}


/* 各セクションのスタイル */
.section_box {
    position: relative; /* 子要素のabsolute配置の基準 */
    margin-bottom: 100px; /* セクション間のスペース */
}



/* img要素自体のスタイル */
.image-content {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 0 100px 0 100px;
	filter: grayscale(100%) blur(3px);
    transition: filter 0.8s ease; 
}

/* スクロールで表示されたときのスタイル */
.image-content.is-visible {
   filter: grayscale(0%) blur(0px);
}

/* テキストボックス共通（既存に変更なし） */
.text-box {
    position: absolute;
    padding: 20px 30px;
    color: white;
    width: 45%;
    box-sizing: border-box;
    top: 75%;
    left: 2%;
}

.text-box02 {
    position: absolute;
    padding: 20px 30px;
    color: white;
    width: 45%;
    box-sizing: border-box;
    top: 75%;
    right: 2%;
}

.text-box-green {
    background-color: rgba(94, 150, 114, 0.85);
}

.text-box h3,
.text-box02 h3 {
    font-size: 35px;
    margin-top: 0;
    margin-bottom: 10px;
    font-weight: bold;
}

.text-box p,
.text-box02 p {
    font-size: 20px;
    margin: 0;
    line-height: 1.5;
}


.top_section_btn {
	
	padding:50px 0 150px 0;
	margin: 0;
	
	
		}


/* OEMの流れ*/



.top_process {
    position: relative;
    overflow: hidden;
}

.top_process video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	opacity: 0.8;
    object-fit: cover;
    z-index: -1;
    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
}


.top_process_area{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	
		}
.top_process_img{
  width: 100%;
  max-width:1000px;
  margin:0 auto;
  padding:60px 0;
  text-align: center
	  }

/*よくある質問*/
.top_faq_area{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	
		}

/*お知らせ・コラム*/


/* お知らせ・コラムセクション */
.top_column {
    position: relative;
    padding-top: 0;
    padding-bottom: 40px;
	margin: 0 auto 60px auto;
}

/* 背景色（見出しの下から開始） */
.top_column::before {
    content: '';
    position: absolute;
    top: 50px;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fff;
    z-index: 0;
	  width: 100%;
  max-width:1200px;
margin: 0 auto;
text-align: center;
}

/* セクション見出し */
.top_column_title {
    background-color: #7a9b8e;
    color: white;
    text-align: center;
    padding:10px 20px;
    font-size: 42px;
    letter-spacing: 0.15em;
    font-weight: 400;
    margin: 0 auto 60px;
    max-width: 800px;
    position: relative;
    z-index: 1;
}

/* カードコンテナ */
.top_column_base {
display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 1;
}


.top_column_content {
    background-color:#f6f4f0;
    overflow: hidden;
}

/* カード画像 */
.top_column_image {
    width: 100%;
    height: 300px;
    overflow: hidden;
}

.top_column_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
	transition: transform 0.5s ease-in-out;
}
.top_column_image:hover img {
transform: scale(1.1);	
	}
	
.top_column_area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 25px 30px 10px;
}

/* 日付 */
.top_date {
    color: #999;
    font-size: 16px;
    letter-spacing: 0.05em;
}

/* カテゴリ-*/
.top_category {
    background-color: #7a9b8e;
    color: white;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
}

.top_column_content p {
    padding: 15px 30px 35px;
    color: #666;
    font-size: 15px;
    line-height: 1.8;
    margin: 0;
}


.top_column_btn{
	margin: 0 auto;
	padding:80px 0 50px 0;
	text-align: center;
	
	 }

/*------------------------------------------------------------
よくある質問エリア
------------------------------------------------------------*/
        .faq-detail {

            overflow: hidden;
            margin-bottom: 40px;
			
        }

  .faq-question-header {
            background-color: #7d9c84;
            padding:0 10px;
            display: flex;
            align-items: center;
            gap: 20px;
        }

        .q-icon {
            background-color: white;
            width: 50px;
            height: 50px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 40px;
            font-weight: bold;
            color: #7d9c84;
            flex-shrink: 0;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .question-title {
            color: white;
            font-size: 25px;
            font-weight:bold;
            letter-spacing: 0.05em;
			line-height: 1;
        }

        .answer-content{
			padding: 30px 5%;
			margin: 0;
        }


.answer-content p{
            color: #646464;
            font-size: 18px;
            line-height: 1.4;
            letter-spacing: 0.05em;
			text-align: left;
        }

.faq-content_btn{
	margin: 0 auto;
	padding:20px 0 50px 0;
	text-align: center;
	
	 }




/*------------------------------------------------------------
 下層ページ
------------------------------------------------------------*/


.fv_section {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 100px auto 20px auto;
  border-radius: 20px;
  overflow: hidden;

  aspect-ratio: 19 / 6; /* ★ここに移すのが正しい */
}

/* 黒の半透明レイヤー */
.fv_section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 2;
}

/* 背景動画 */
.fv_video_wrap {
  position: absolute;
  inset: 0;              /* ←全体を覆う */
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

/* 動画本体 */
.fv_video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(-50%, -50%);
}

/* テキストエリア */
.fv_title {
  position: absolute;
  bottom: 10%;
  left: 5%;
  color: #fff;
  text-align: left;
  z-index: 3;
}

.fv_title span {
  font-family: "Allura", cursive;
  font-size: 35px;
  margin: 0;
  line-height: 1;
}

.fv_title h1 {
  font-size: 45px;
  margin: 0;
  padding: 5px 0 15px 0;
  line-height: 1.2;
}

.fv_title p {
  font-size: 20px;
  margin: 0;
  line-height: 1.4;
}


/*投稿エリア*/
.fv_title_post {
  position: absolute;
  bottom: 10%; /* ←固定より安全な位置 */
  left: 5%;
  color: #fff;
  text-align: left;
  z-index: 3;
}

.fv_title_post span {
  font-family: "Allura", cursive;
  font-size: 35px;
  padding: 0;
  margin: 0;
line-height:1;
}

.fv_title_post .post_title {
  font-size: 45px;
  margin: 0;
  padding:5px 0 15px 0;
line-height:1;
}

.fv_title_post .post_txt {
  font-size: 20px;
  margin: 0;
  padding: 0;
line-height:1;
}

/*パンくずエリア*/
.breadcrumb_area {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding:15px 0;
	text-align: center;
	}
.breadcrumb {
  margin: 0;
  padding: 0;
  list-style: none;
	text-align: left;
}

.breadcrumb li {
  display: inline;/*横に並ぶように*/
  color: #192118;
  font-size: 12px;
}

.breadcrumb li:after {/* >を表示*/
  content: '>';
  padding: 0 0.2em;
  color: #555;
}

.breadcrumb li:last-child:after {
  content: '';
}

.breadcrumb li a {
  text-decoration: none;
  color: #192118;/*色*/
}

.breadcrumb li a:hover {
  text-decoration: underline;
}

/*------------------------------------------------------------
縦タイトルエリア
------------------------------------------------------------*/
 .sub_main-container{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:60px;
    padding:90px 0;
    max-width:1200px;
    margin:0 auto;
    position:relative;
  }



  /* 会社概要ページの画像 */
 .sub_image-area_corporate{
    flex:1 1 60%;
    z-index:1;
    position:relative;
  }

 .sub_image-area_corporate img{
    width:100%;
	max-width: 685px;
    height:auto;
    display:block;
  }

  /* 右：縦書きテキスト */
 .sub_text-area{
    flex:0 0 auto;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size:20px;
    line-height:1.6;
    letter-spacing:2px;
    z-index:1;
    position:relative;
  }

  /* タイトル装飾ライン */
 .sub_text-area h2{
    font-size:50px;
    margin:0 0 20px 0;
    font-weight:700;
    position:relative;
    display:inline-block;
    padding-top:35px; /* ライン分の余白を確保 */
  }

 .sub_text-area h2::before{
    content:"";
    position:absolute;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:2px;
    height:25px;
    background-color:#192118;
  }

 .sub_text-area p{
    margin:0;
	padding:0 35px 0 0; 
  }

  /* スマホ対応 */
  @media (max-width:750px){
 .sub_main-container{
      flex-direction:column;
      gap:40px;
      padding:40px 0;
    }
 .sub_text-area{
    flex:0 0 auto;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size:20px;
    line-height:1.6;
    letter-spacing:2px;
    z-index:1;
    position:relative;
  }


  }

/*------------------------------------------------------------
	投稿ページ
------------------------------------------------------------*/
.post_bese{
background: url("../../img/post/back_s.png")  no-repeat top center / cover;	
	
	 }

.post_big{
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 50px auto 0 auto;
  padding: 0;

	 }


.post_area{
    max-width:1200px;
    margin:0 auto;
	padding:0 0 5% 0;
    display:grid;
    grid-template-columns: 1fr 360px;
    gap:120px;
    align-items:start;
  }

.post_main{
	margin: 0;
	padding: 0
	
	  }

/*サイド*/
.post_sidebar{
	margin: 0;
	padding: 0;	
	position:relative;
	
	}
.post_sidebar_widget{
	margin: 0;
	padding: 0 0 3% 0;	

	}

.post_sidebar_widget h3{
  margin: 10px 0;
  font-family: "Allura", cursive;
  font-weight: 600;
  font-size: 24px;
  color: #646464;
  border-top: 2px solid #646464;
  border-bottom: 2px solid #646464;
  letter-spacing: 1px;
  }

.post_sidebar_widget h3::before {
  content: "";
  display: inline-block;
  width: 35px;
  height: 35px;
  background: url("../../img/post/icon.png") no-repeat center / contain;
  vertical-align: middle;
}

.post_category, .post_recommended, .post_ranking{
    display:flex;
    flex-direction:column;
    gap:12px;

  }

.post_category a{
    color:#646464;
    text-decoration:none;
    font-size:18px;
    padding:2px 0;
	
  }

.post_category{
	text-align: left;
	  }

  .rec-item{
    display:flex;
    gap:12px;
	padding:10px 0 15px 0;
    align-items:flex-start;
	border-bottom:1px solid #cccbcb;  
  }

  .rec-thumb{
    width:64px;
    height:64px;
    flex:0 0 64px;
  }

  .rec-thumb img {
  width: 64px;
  height: 64px;
  object-fit: cover; /* 画像をトリミングしながらボックスを埋める */
}

.rec-item .rec-thumb img {
  transition: filter 0.3s ease;
}

.rec-item:hover .rec-thumb img {
  filter: grayscale(100%);
}

  .rec-text{
    font-size:13px;
    color:#646464;
	text-align: left;
  }

.post_sidebar_category{
	font-size:10px;
 }
.post_sidebar_date{
    font-size:12px;
    margin-top:6px;
	color:#999999;
  }

/*お客様の声のRecommended*/
.voice_sidebar_title{
	font-size:10px;
 }

.voice_sidebar_txt{
    font-size:12px;
    margin-top:6px;
  }


/*お知らせ・コラムリスト*/
.postlist_main{
margin: 0 auto;
padding: 0;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap:30px;
	
	  }

.column_list_box {
            background:#fff;
            padding:50px 25px 25px 45px;
            box-shadow: 0 0 4px rgba(102, 102, 102, 0.04);
	font-family: "Zen Kaku Gothic New", sans-serif;
        }


.column_list_thumbnail{
  position: relative;
  margin-bottom: 15px;
overflow: hidden;
}

.column_list_thumbnail::before {
  content: "";
  position: absolute;
  top: -20px;
  left: -20px;
  width: 80%;
  height: 80%;
  background: #cbd7ce;
  z-index: 0;
}

.column_list_thumbnail img {
  position: relative;
  width: 100%;
  height: auto;
  display: block;
  z-index: 1;
transition: transform 0.4s ease;
}

.column_list_box:hover .column_list_thumbnail img {
  transform: scale(1.1); /* 拡大率：1.1倍 */
}

.column_list_content {
  margin-top: 10px;
}

.column_list_date {
  color: #999;
  font-size: 12px;
}

.column_list_category{
  display: inline-block;
  background-color: #3d6b3c;
  color: #fff;
  font-size: 10px;
  border-radius: 15px;
  padding: 3px 12px;
  margin-bottom: 10px;
float: right;
}

.column_list_title {
  font-size: 14px;
  line-height: 1.4;
  padding:40px 0 0 0;
  margin: 0;
  text-align: left;
}

/*お知らせ・コラム*/
.column_title_back{
	padding: 0 0 30px 0;
	margin: 0;
	  }
.column_title_back h1{
    font-weight:700;
    font-size:30px;
	padding: 0 0 10px 0;
    margin:0;
	 font-family: "Zen Kaku Gothic New", sans-serif;
	 text-align: left;
	 color: #646464;
  }

.column_thumbnail_back{
	width: 100%;
	margin:0 auto;
	padding: 0;
	text-align: center;
	 background: url("../../img/column/thumbnail_back.png")  no-repeat center center / cover;
    aspect-ratio: 1160 / 830;
    position: relative;	
	  }



.column_thumbnail_area{
	width: 100%;
	max-width:630px;
	margin:0;
	padding: 0;
	 }


.column_data_area{
    display:flex;
    gap:12px;
    align-items:center;
    font-size:13px;
    margin-bottom:12px;
  }
.column_data{
	font-size: 10px;
	border-bottom:2px solid #999999;  
	font-family: "Zen Kaku Gothic New", sans-serif;
	  }
.column_category{
    background:#4f905b;
    color:#fff;
    border-radius:999px;
    padding:0 12px;
    font-weight:600;
    font-size:10px;
  }

 .column_base{
margin: 0;
padding:10px 0;
text-align: left;
font-family: "Zen Kaku Gothic New", sans-serif;
color: #646464;
	 
	  }



 .column_base p{
	margin: 0;
    padding: 0;
    font-size:14px;
  }


.column_base h2 {
  position: relative;
  display: flex;
  align-items: center; /* 縦方向センター揃え */
  font-size: 25px;
  gap: 8px; /* ラインと文字の間に余白 */
}

.column_base h2::before {
  content: "";
  display: inline-block;
  width: 20px;       /* ラインの長さ */
  height: 2px;       /* 太さ */
  background-color: #646464; /* ラインの色 */
}

/*お客様の声*/
.voice_thumbnail_back{
	width: 100%;
	margin:0 auto;
	padding: 0;
	text-align: center;
	 background: url("../../img/voice/thumbnail_back.png")  no-repeat center center / cover;
    aspect-ratio: 1160 / 716;
    position: relative;	
	  }

.voice_thumbnail_area{
	width: 90%;
	margin:0;
	padding:30px 0 0 60px;

	 }

.voice_thumbnail_txt{
           position: absolute;
            top: 70%;
            left: 0;
            width:60%;
	      
            bottom:0;
            background-color: #4f905b;
            padding:0;
            display: flex;
            flex-direction: column;
            justify-content: center;	
		 }

.voice_thumbnail_txt h1{
	text-align: left;
	font-size: 20px;
	color: #fff;
	padding: 0 20px;
	
		 }

.voice_thumbnail_txt h1:before {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: 20px;
    left: 20px;
    width: 50px;
    height: 4px;
    background-color: #fff;

}

.voice_base{
margin: 0;
padding:10% 0 5% 0;
text-align: left;
color: #646464;
	 
	  }

.voice_base h2 {
            font-size: 25px;
            font-weight: 500;
            color: #7d9c84;
            text-align:left;
            padding:30px 10px;
            margin: 0;
            border-top: 2px solid #7d9c84;
            border-bottom: 2px solid #7d9c84;
            letter-spacing: 0.05em;
        }

.voice_base p {
padding:5% 0;
margin: 0;
text-align: left;
	     }

.voice_base h3{
            font-size: 20px;
            font-weight: 500;
	        background: #cbd7ce;
            text-align:left;
            padding:20px;
            margin:2% 0;
            letter-spacing: 0.05em;
        }
.voice_table table{
    border-collapse: separate;
    border-spacing: 3px; /* セル間に3pxの隙間を作る */
    border: none;
    font-size: 18px;
    width: 100%;
    margin: 5% auto;
}

.voice_table tr {
    border-bottom: none;
}

.voice_table tr:last-child {
    border-bottom: none;
}

.voice_table th {
    background-color: #6b8e7a;
    color: white;
    font-weight: normal;
    padding:3%;
    text-align: center;
    vertical-align: middle;
    width: 19%;
}

.voice_table td {
    background-color: #f5f5f0;
    padding:3%;
    vertical-align: middle;
    width:69%;
}

/*------------------------------------------------------------
働く人の声
------------------------------------------------------------*/
 .interview_area {
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-template-rows: auto auto;
            gap: 60px;
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 60px 0 100px 0;
        }

 .interview_item {
            display: flex;
            flex-direction: column;
        }

 .interview_image-box {
            
            width: 100%;
            
        }

.interview_image-box img {
  transition: filter 0.3s ease;
}

.interview_image-box:hover img {
  filter: grayscale(100%);
}



 .interview_text-box {
            padding: 30px 20px;
            font-size: 18px;
            line-height: 1.6;

	 text-align: left;
        }

        @media (max-width: 768px) {
 .interview_area{
                grid-template-columns: 1fr;
            }
            
.interview_text-box {
                font-size: 16px;
                padding: 20px 15px;
            }
        }
/* ==========================================
インタビュー内容

 ========================================== */
.interview_section {
            width: 100%;
            background: #fff;
            padding: 0;
            margin-top: 140px;
	 
        }

.interview_title_area{
            max-width: 1400px;
            margin: 0 auto;
	position: relative;
	  }


  .interview_title {
 position: absolute;
left: 60px;
top: 20px;
z-index: 1;
	   }

  .interview_title img{
	  max-width: 500px;
	    }

        .interview_container {
            display: flex;
            max-width: 1400px;
			width:100%; 
            margin: 0 auto;
            min-height: 600px;
			background: #fff;
        }



	  

.interview_content {
	width: 30%;
	  padding: 80px 60px  80px 100px;
	            flex-direction: column;
            justify-content: center;
	
	 }

        /* メインメッセージ */
        .interview_message {
            margin:70px 0  40px 0;
			padding: 0;
       
        }
        .interview_message h1{
			margin: 0;
			padding: 0;
			font-size: 25px;
            font-weight: 500;
            color: #333;
            line-height: 1.7;
			   letter-spacing: 0.05em;
			        }

        /* 区切り線 */
        .interview_divider {
            width: 80px;
            height: 1px;
            background: #999;
            margin-bottom: 30px;
        }

        /* 情報エリア */
        .interview_info {
            color: #666;
        }

        .interview_info p {
            font-size: 0.95rem;
            line-height: 1.9;
            margin-bottom: 5px;
        }

        .interview_name {
            font-size: 1.4rem;
            font-weight: bold;
            color: #333;
            margin-top: 15px;
            letter-spacing: 0.05em;
        }

.interview_image {
            width: 70%;
            position: relative;
            overflow: hidden;
            margin-top: -50px;
        }

        .interview_image img {
            width: 100%;
            height: 90%;
            object-fit: cover;
            object-position: center;
			border-radius: 0 0 40px 40px;
        }




.interview_detail{
max-width: 1200px;
width:100%; 
margin: 0 auto;
padding: 100px 0;
text-align: center;
font-family: "Zen Kaku Gothic New", sans-serif;

        }

.interview_detail p,
.in_detail_txt p{
	font-size: 14px;
	color: #646464;
	text-align: left;
	padding:20px 0;
	margin: 0;
	
	   }

.in_detail_box{
 display: flex;
            gap: 30px;
            align-items: flex-start;
   }


.in_detail_img{
           max-width: 395px;
            height: auto;
            overflow: hidden;

   }	

.in_detail_img img {
            width: 100%;
            height: auto;
            display: block;
        }


.in_detail_txt{
  flex: 1;
	
	      }



.in_detail_titleh2{
margin: 0;
padding: 0;
text-align: left;
color: #89a590;
font-weight: 500;
font-size: 25px;
border-bottom: solid 3px #89a590;
line-height:1.4;
	    }

.in_detail_title{
margin: 0;
padding:3% 0 0 0;
text-align: left;
color: #89a590;
font-weight: 500;
font-size: 25px;
border-bottom: solid 3px #89a590;
line-height:1.4;
	    }


.in_detail_box02{
position: relative;
margin: 5% auto;
padding: 0;
	
	   }
.in_detail_box02 img{
	width: 100%;
	border-radius:100px 0 100px 0;
		   }

.in_detail_box02txt{
	position: absolute;
	width: 50%;
	 top:50%;
  left: 5%;
	padding: 2%;
	background: rgba(125,156,132,0.9);
	
		   }

.in_detail_box02txt h2{
	font-size: 35px;
	padding: 0;
	margin: 0;
	font-weight: 500;
	text-align: left;
	color: #fff;
	  }

.in_detail_box02txt p{
	font-size: 20px;
	text-align: left;
	color: #fff;
		  }


.in_detail_message{
	position: relative;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	
	  }

.in_detail_message img{
	display: block;
	width: 100%;
	min-height: auto;
	  }

.in_detail_message_area{
max-width: 1200px;
width:100%; 
margin: 0 auto;
padding:0;
text-align: center;
font-family: "Zen Kaku Gothic New", sans-serif;
position: absolute;
  top: -10%;
  left: 7%;	
	 }


.in_detail_message_title{
margin: 0 ;
padding: 0;

	 }

.in_detail_message_title img{
	width: 100%;
	max-width: 620px;
	
	 }

.in_detail_message_txt{
	background: rgba(255,255,255,0.8);
	box-shadow: 0 0 8px gray;
	padding: 2%;
	margin:2% 0 0 0;
	width: 50%;
		 }

.in_detail_message_txt h2{
	font-size: 25px;
	font-weight: 500;
	text-align: left;
	color: #89a590;
	line-height:1.4;
		  }


.in_detail_message_txt p{
	font-size: 14px;
	text-align: left;
	color: #646464;
		  }

.other_members{
max-width: 1200px;
width:100%; 
margin: 0 auto;
padding:100px 0 60px 0;
text-align: center;
	
		  }

.other_members_area{
display: flex;
	justify-content: space-around;
		  }

.other_members_item{
   width: 30%;
    height: auto;	
		  }

.other_members_item img{
	 width: 100%;
		  }
.other_members_item p{
margin: 0 auto;
padding:5% 0;
text-align: left;
font-size: 14px;
	  }
	
/*------------------------------------------------------------
品質管理と企画開発・生産システム
------------------------------------------------------------*/
.quality_area01{
    width: 100%;
    max-width: 1100px;
    padding: 60px 50px;
    margin: 0 auto;
    display: flex;
    flex-direction: row-reverse; /* 画像左、テキスト右 */
    align-items: center;
	text-align: center;
    gap: 50px;
}

.quality_area01_txt{
    flex: 0 0 35%; 
    padding: 0;
    display: flex;
    flex-direction: row; 
    align-items: center; 
    justify-content: flex-start;
    text-align: left;
	gap: 0;
}

.quality_area01_title{
    order: 2; 
    flex: 0 0 auto; 
    padding: 0;
    display: flex;
    flex-direction: row-reverse;
    gap: 0;
}

.quality_area01_title h2{
    writing-mode: vertical-rl;
    font-size: 50px;
    font-weight: normal;
    margin: 0;
    padding: 0;
   line-height: 1.2;
    text-orientation: upright;
}
.quality_area01_title h2 span{
	font-family: "Zen Kaku Gothic New", sans-serif;
}


.quality_area01_description{
order: 1; 
    /* flexアイテムとして残りのスペースを利用 */
    flex: 1; 
   writing-mode: vertical-rl;
    font-size: 20px;
    text-align: left;
    /* タイトルブロックとの間の余白を調整 */
    margin: 0; 
	padding: 0 30px 0 0;
    max-width: none;
    line-height: 1.6;
	 text-orientation: mixed;
}
.num-vertical {
  text-orientation: upright; /* 数字だけ縦 */
}

.quality_area01_img_area{
    flex: 1;
    text-align: left;
}

.quality_area01_img_area img {
    width: 100%;
    max-width: 670px; 
    height: auto;
    object-fit: cover;
}



@media (max-width: 768px) {
.quality_area01 {
        flex-direction: column; /* 縦に並べる */
        padding: 20px;
        gap: 30px;
    }
.quality_area01_txt {
        order: 1; 
        flex-direction: column; 
        width: 100%;
        /* センター寄せを維持 */
        align-items: center; 
        text-align: center; 
    }
    
    .quality_area01_title {
        order: initial; 
        flex-direction: column; 
        align-items: center; /* 中央寄せ */
        height: auto;
    }

    /* 修正点: h2を縦書きのままにし、中央寄せを調整 */
    .quality_area01_title h2 {
  writing-mode: horizontal-tb;
		font-size: 24px
    }
    
    .quality_area01_description {
        /* 説明文は横書きのまま維持（可読性のため）*/
        writing-mode: horizontal-tb;
        text-align: center; 
        margin: 20px auto 0 auto;
		font-size: 14px
		
    }
    

	
.quality_area01_img_area{
        order: 2; /* 画像をテキストの下に表示 */
        flex: none;
        padding: 0 10px;
        text-align: center;
    }
    
.quality_area01_img_area img{
	width: 90%;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	    }
	
 }	

/*多彩な検査設備で品質を見極める*/

.quality_area02{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;

	}


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

 .equipment_item {
margin: 0 auto;
padding: 0;
        }



 .equipment_photo{
            width: 100%;
            overflow: hidden;
        border-radius:40px 0 40px 0;
        }

 .equipment_photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

 .equipment_txt{
            padding: 20px 0;
            text-align: left;
            font-size: 20px;
            font-weight: 500;
            color: #2c5f2d;
            background-color: transparent;
        }

        @media (max-width: 768px) {
 .equipment_base{
                grid-template-columns: repeat(2, 1fr);
                gap: 15px;
            }

 .equipment_txt{
                font-size: 16px;
                padding: 15px;
            }

        }



/*多彩な検査設備で品質を見極める*/

.quality_area03{
  width: 100%;
  margin:0 auto;
  text-align: center;
  background: #fff;

	}
	
.quality_area03_base{	
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:100px 0 0 0;
  text-align: center;
	}

.qualitycheck{
	 width: 100%;
	margin:0 auto;
	padding: 50px 0;
	text-align: center;
	
	
		}

/*原料から製品までの一貫管理*/
.quality_back{

background: url("../../img/quality/back_s.png")  no-repeat top center / cover;
}


.quality_area04{	
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:100px 0;
  text-align: center;
	}


/*------------------------------------------------------------
企画開発
------------------------------------------------------------*/
.development_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0 100px 0;
  text-align: center;
	}

.development_product_area{
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap:20px;
	 padding:30px 0 0 0;
}

.development_box{
      display: flex;
      gap: 22px;
      align-items: center;
      background:#fff;
      padding:20px;
      text-decoration: none;
      color: inherit; 
	transition: opacity 0.3s;
}

.development_box:hover{
opacity: 0.7;

}

.development_icon{
      width: 50px;
      height: 50px;
      min-width: 50px;
      display: flex;
      align-items: center;
      justify-content: center;
}

.development_box p{
      font-size: 22px;
      line-height: 1.25;
      color: #7d9c84;
	text-align: left;
      margin: 0; /* 追加：デフォルトのマージンを削除 */
}


/*開発の流れ*/

.development_big {
background: linear-gradient(to bottom, #fff 20%, #f4f7f8 80%);
margin: 0 auto;
padding: 100px 0 0 0;
text-align: center;
	}


.development_img{
width: 100%;
max-width: 910px;
margin: 0 auto;
padding: 50px 0;
text-align: center;
	
		}


/*------------------------------------------------------------
OEMの流れ
------------------------------------------------------------*/
.oem_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	}

.oem_area02{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:135px 0 50px 0;
  text-align: center;
	}


.oem_flow{
	
  margin:0 auto;
  padding:60px 0;
  text-align: leftr;
	
		}


.oem_base{
	background: url("../../img/oem/back_s.png")  no-repeat top center / cover;
	
		}

.oem_img{
  margin:0 auto;
  padding:75px 0;
  text-align: center;
	
		}

/*通常のご依頼〜納品までの期間目安*/
.oem_schedule {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  width: 100%;
  padding: 5% 0;
}

.oem_flows {
padding: 0;
margin: 0;
width: 100%;
max-width: 1200px;

}

.oem_flows > li {
  list-style-type: none;
  display: flex;
  padding: 20px 0 30px 0;
    border-bottom: solid 1px #E1E8ED;
}

.oem_flows > li dl dt {
  font-size: 140%;
  line-height: 2;
  font-weight: bold;
  margin-bottom: 10px;
  text-align: left;  
  color: #7a9b88; 
}

.oem_flows > li .flow_icon {
  line-height: 1;
  font-size: 2em;
  font-weight: bold;
  color: #7a9b88;
  text-align: center;
  width: 70px;
  position: relative;
  margin-top: 0;
}

.oem_flows > li .flow_icon::before {
  content: 'STEP';
  font-size: 0.3em;
  display: block;
  margin-bottom: 3px;
  letter-spacing: 1px;
}

.oem_flows > li .flow_icon::after {
  content: "";
  display: block;
  width: 1px;
  height: calc(100% - 40px);
  background-color: #7a9b88;
  position: absolute;
  left: 0;
  right: 0;
  top: 60px;
  margin: auto;
}

.oem_flows > li dl dd {
  margin: 0;
text-align: left; 
font-size: 120%;
  
}

.oem_flows > li dl {
  width: calc(100% - 70px);
  margin-top: 0.8em;
}


/*------------------------------------------------------------
よくある質問
------------------------------------------------------------*/
.faq_area01 {
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding: 0;
  text-align: center;
	}

.faq_area02{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	}

 .faq_category-tabs{
            max-width: 1200px;
            margin: 0;
            padding:10px 0 20px 0;
            display: flex;
            flex-wrap: wrap;
            gap:5px;
	 
        }

 .faq_category-tabs .tab {
            padding:5px 30px;
            border: 1px solid #7d9c84;
            border-radius: 25px;
            background-color: white;
            color: #7d9c84;
			font-weight: bold;
            font-size: 15px;
            cursor: pointer;
            transition: all 0.3s;
            text-decoration: none;
            display: inline-block;
        }

 .faq_category-tabs .tab:hover {
            background-color: #7a9b8e;
            color: white;
            border-color: #7a9b8e;
        }

.faq-pagination {
  width: 100%;
  max-width: 1200px;
  margin: 60px auto 0; /* ← 中央寄せ */
  padding: 0;
  display: flex;
  justify-content: center; /* ← コレでセンター寄せ確実！ */
}

.faq-pagination .page-numbers {
  display: inline-block;
  margin: 0 5px;
  padding: 8px 12px;
  border: 1px solid #7a9b8e;
  border-radius: 4px;
  text-decoration: none;
  color: #7a9b8e;
}

.faq-pagination .current {
  background: #7a9b8e;
  color: #fff;
  border-color: #7a9b8e;
}


/*よくある質問詳細*/
   .faq-answer-section {
            padding: 40px 10px;
        }

        .answer-header {
            display: flex;
            align-items: flex-start;
            gap: 20px;
            margin-bottom: 30px;
        }

        .a-icon {
            background-color: #7a9b8e;
            width: 50px;
            height: 50px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32px;
            font-weight: bold;
            color: white;
            flex-shrink: 0;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .answer-content_detail{
            flex: 1;
            padding:0;
        }

        .answer-content_detail p{
            color: #646464;
            font-size: 18px;
            line-height: 1.8;
            letter-spacing: 0.05em;
			text-align: left;
        }


 .related-list {
            list-style: none;
            margin: 30px 0 0 0;
	        text-align: left;
	        padding: 0;
	 
        }

        .related-list li {
            padding:5px 0;
			margin: 0;
			
        }



        .related-list a {
            color: #646464;
            font-size: 18px;
            letter-spacing: 0.05em;
            display: block;
            transition: color 0.3s;
			text-decoration: underline;
			
        }

        .related-list a:hover {
            color: #7a9b8e;
        }

        .related-list a::before {
            content: '・';
            margin-right: 5px;
			  display: inline-block;
  text-decoration: none;
        }



/*------------------------------------------------------------
会社概要
------------------------------------------------------------*/
.corporate_base{
	background: url("../../img/corporate/back_s.png")  no-repeat top center / cover;
	
		}

.corporate_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
}

.corporate_quality{
display: flex;
margin: 0;
padding: 0;
	}

.corporate_quality_img{
margin: 0;
padding: 0;

max-width:640px; 
		}

.corporate_quality_txt{
margin: 0;
padding: 0 5%;
			}

.corporate_quality_txt ul {
            list-style: decimal;
            padding: 0;
            margin: 0;
            padding-left: 1.5em;
        }
        
.corporate_quality_txt li {
            font-size: 18px;
            line-height:1.4;
            color: #265b39;
            margin-bottom: 20px;
            text-align: left;
        }
        
.corporate_quality_txt li::marker {
            font-size:18px;
        }
        
.corporate_quality_txt li:last-child {
            margin-bottom: 0;
        }

.corporate_quality_message{
margin: 0;
padding:1% 0 5% 0;

	
	     }

.corporate_quality_message h3{
margin: 0;
padding:0;
font-size:30px; 
text-align: center;
		     }

.corporate_quality_message p{
font-size:18px;
text-align: right;
	
			     }


.corporate_timeline{
  width: 100%;
max-width: 1200px;
	     border-collapse: separate;
            border-spacing: 5px;
	 font-family: "Zen Kaku Gothic New", sans-serif;
}

.corporate_timeline th {
  background-color: #6b8e7c;
  color: white;
  font-weight: bold;
  padding: 20px;
  text-align: center;
  vertical-align: middle;
  width: 280px;

}

.corporate_timeline td {
  background-color: #f5f5f5;
  padding: 20px 30px;
  text-align: left;
  line-height: 1.8;
}

.corporate_timeline a {
  color: #333;
  text-decoration: none;
}

.corporate_timeline a:hover {
  text-decoration: underline;
}

/*本社エリア*/
.company_area01{
	display: flex;
	}
	
/*会社DATA*/
.company_data01,
.company_photo01{
	width: 50%;
	margin: 0 auto;
	padding: 0;
	
	}

/*支社エリア*/
.company_area02{
	display: flex;
	column-gap:10%;
	}

.company_data02{
	width: 50%;
	margin: 0 auto;
	padding: 0;
	
	}

.company_photo02{
	margin: 0 auto;
	padding:5% 0 0 0;
	
	}


.company_data{
	text-align: left;
	 font-family: "Zen Kaku Gothic New", sans-serif;
}
.company_data h3{
    font-size: 25px;
    color: #646464;
    margin-bottom: 60px;
    position: relative;
    padding-left: 35px;
}

.company_data h3::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 2px;
    background-color: #7d9c84;
}


.company_data dl{
	padding:0;
	margin: 0;
	 font-size: 14px;
	    color: #646464;
	}

.company_data dt {
    float: left;
    clear: left;
    width: 100px;
    margin-bottom: 15px;
}

.company_data dd {
    margin-left: 100px;
    margin-bottom: 15px;
}

.company_data dd a {
    color: #646464;
    text-decoration: none;
}

.company_data dd a:hover {
    text-decoration: underline;
}

.squaremeter{
    margin-top: 8px;
    font-size: 12px;
}

.company_maparea{
	padding: 25px 0;
	margin: 0;
	
	}

.company_maparea h3{
	text-align: left;
	font-size: 25px;
	color: #7d9c84;
	font-family: "Zen Kaku Gothic New", sans-serif;
		}
	

.map {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9のアスペクト比 */
    height: 0;
	margin: 0 0 50px 0;
}

.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}




/*------------------------------------------------------------
取扱製品
------------------------------------------------------------*/
.product_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
}

.product_list{
  display: flex;
  gap: 20px;
  flex-wrap: wrap; 
  margin:0 auto;
  padding:70px 0 0 0;
}

.product_item {
  flex: 0 1 calc(50% - 10px); 
}

.product_item img {
  width: 100%;
  height: auto;
  display: block; 
  transition: opacity 0.3s ease;
}

.product_item a:hover img {
  opacity: 0.7;
}


.product_back{

background: url("../../img/product/back_s.png")  no-repeat top center / cover;
}

.product_area02{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:200px 0 60px 0;
  text-align: center;
}

.product_list02{
  width: 100%;
  max-width:1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 30px;
        }
.product_box {
            overflow: hidden;
        }
.product_title{
            background-color: #7a9a86;
            color: white;
            padding:0 30px;
            font-size: 25px;
            font-weight: bold;
            letter-spacing: 2px;
            margin: 0;
	        font-family: "Zen Kaku Gothic New", sans-serif;
	        text-align: left;
        }
.product_category  {
            padding:0 20px;
	       margin: 0;
	   
        }
.product_category ul {
            list-style: none;
            padding: 0;
            margin: 0;
	
        }
.product_category  li {
            padding:0 0;
            font-size: 18px;
	        text-align: left;
display: flex; 
line-height:2.4;
        }
.product_category a {
    color: #646464; 
    text-decoration: none;
    display: block;
}
.product_category a:hover {
    color: #7a9a86;
        }
.product_category li::before {
    content: "- ";
    margin-right: 8px;
    display: inline;
}


.product_area03{
            background-image: url('../../img/products/products_contact.png');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            padding: 80px 40px;
            width: 100%;
            position: relative;
        }
        

        
        .product_consultation{
            position: relative;
            z-index: 2;
        }

        .product_consultation{
            max-width: 1200px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }

        .product_consultation h2 {
            font-size: 45px;
            color: #7d9c84;
            font-weight:bold;
            line-height: 1.2;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

        .product_description{
            font-size: 25px;
            color: #333;
            line-height: 1.4;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

        .product_button {
            display: inline-block;
            padding: 15px;
            background-color: #7d9c84;
            color: white;
            text-decoration: none;
            font-size: 15px;
            border: 3px solid white;
            outline: 3px solid #7d9c84;
            border-radius: 0;
            transition: all 0.3s ease;
            letter-spacing: 0.05em;
            box-shadow: 0 0 0 3px #7d9c84;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .product_button:hover {
            opacity: 0.8;
        }




/*------------------------------------------------------------
採用情報
------------------------------------------------------------*/
.recruit_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
}

.recruit_movieback{
  background: url("../../img/recruit/movie_back.png") no-repeat center center / cover;
  width: 100%;
  aspect-ratio: 2400 / 1554;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.recruit_youtubebase{
  width: 100%;
  display: flex;
  justify-content: center;
}

.recruit_youtube {
  width: 100%;
  max-width: 700px;
  aspect-ratio: 16 / 9;
}

.recruit_youtube iframe {
  width: 100%;
  height: 100%;
}

.recruit_movie_waku{
	position: absolute;
	  top: 0;
  left: 0;
	
	}

.recruit_movie_wakuimg {
  width: 100%;
  }


.recruit_works_back{

background:#f4f7f8 url("../../img/recruit/works_back.png")  no-repeat center center;
background-size: 100% auto;
  }

.recruit_works_area{
  max-width: 1200px;
  width:100%; 
  margin: 0 auto;
  padding:100px 0 60px 0;
  text-align: center;
}

.recruit_works_box{
  display: flex;
  margin: 0 auto;
  padding: 0 0 5% 0;
}

.recruit_works_photo01{
  width: 40%;
  margin: 0 auto;
  padding: 0;
  order: 1;
}

.recruit_works_photo02{
  width: 40%;
  margin: 0 auto;
  padding: 0;
  order: 2;
}

.recruit_works_txt01{
  width: 50%;
  margin: 0 auto;
  padding: 0 5%;	
  position: relative;
   order: 2;
  z-index: 0;
}

.recruit_works_txt02{
  width: 50%;
  margin: 0 auto;
  padding: 0 5%;	
  position: relative;
  order: 1;
  z-index: 0;
}

.recruit_works_txttitle01,
.recruit_works_txttitle02,
.recruit_works_txttitle03,
.recruit_works_txttitle04,
.recruit_works_txttitle05,
.recruit_works_txttitle06,
.recruit_works_txttitle07,
.recruit_works_txttitle08{
  position: absolute;
  top: 0;
  left: 5%;
  z-index: 1;
}

.recruit_works_txttitle01 img{
  width: 100%;
  max-width:314px; 
}
.recruit_works_txttitle02 img{
  width: 100%;
  max-width:175px; 
}
.recruit_works_txttitle03 img{
  width: 100%;
  max-width:225px; 
}
.recruit_works_txttitle04 img{
  width: 100%;
  max-width:213px; 
}
.recruit_works_txttitle05 img{
  width: 100%;
  max-width:256px; 
}
.recruit_works_txttitle06 img{
  width: 100%;
  max-width:380px; 
}
.recruit_works_txttitle07 img{
  width: 100%;
  max-width:409px; 
}

.recruit_works_txttitle08 img{
  width: 100%;
  max-width:340px; 
}


.recruit_works_txt01 h3,
.recruit_works_txt02 h3{
  font-size: 30px;
  text-align: left;
  margin: 0;
  padding:12% 0 0 0;
  color: #7d9c84;
  position: relative;
  z-index: 2;
}

.recruit_works_txt01 p,
.recruit_works_txt02 p{
  font-size: 18px;
  text-align: left;
  margin: 0;
  padding:2% 0 0 0;
  color: #646464;
}


.recruit_post_bese{
background: url("../../img/recruit/back_s.png")  no-repeat top center / cover;	
	
	 }


.recruit_post_area{
    max-width:1200px;
    margin:0 auto;
	padding:4% 0 5% 0;

  }


.recruit-content_btn{
	margin: 0 auto;
	padding:20px 0 50px 0;
	text-align: center;
	
	 }



.recruit_entry_area{
  max-width: 1200px;
  width:100%; 
  margin: 0 auto;
  padding:100px 0 60px 0;
  text-align: center;
	
		 }

.recruit_entry_back{
background: url("../../img/recruit/entry.png")  no-repeat top left;	
  max-width: 600px;
  width:100%;
  text-align: center;
   margin: 0 auto;
   padding:100px 0 0 0;
	
	 }

.recruit_entry_title{
position: relative;
  display: inline-block;
  margin-bottom: 1em;
	font-size: 50px;
	line-height: 1.2;
	}

.recruit_entry_title:before {
  content: '';
  position: absolute;
  bottom: -30px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
 background-color: #646464;
}
.recruit_entry_contact{
  max-width: 1200px;
  width:100%; 
  margin: 0 auto;
  padding:0;
  text-align: center;
	
		 }


.recruit_entry_required {
color: #e74c3c;
font-size: 20px;
text-align: center;
font-weight: bold;
margin: 0;
padding:50px 0 0 0;
        }


/*------------------------------------------------------------
生産システム
------------------------------------------------------------*/
.system_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
}

.system_title01{
position: relative;
  display: inline-block;
  margin-bottom: 1em;
	font-size: 50px;
	line-height: 1.2;
	}

.system_title01:before {
  content: '';
  position: absolute;
  bottom: -30px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
 background-color: #646464;
}

.system_area01 p{
	margin: 0 auto;
	padding:2% 0;
	text-align: center;
	font-size:20px;
	
	}




.system_base{
            background-image: url('../../img/system/system02.png');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            padding: 100px 40px;
            width: 100%;
            position: relative;
        }
        

 
.system_area02{
            max-width: 1200px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }

.system_area02 h2 {
position: relative;
  display: inline-block;
  margin-bottom: 1em;
	font-size: 50px;
	line-height: 1.2;
        }

 
.system_area02::after{
  content: '';
  position: absolute;
  bottom: 100px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 0;
 background-color: #646464;
}

.system_area02 p{
            font-size: 25px;
            color: #333;
            line-height: 1.4;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

/*製造設備一覧*/
.system_area03{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:200px 0 100px 0;
  text-align: center;
}



.manufacturing_area{
display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  padding: 40px 0 0 0;
  width: 100%;             /* ← 必ず100% */
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;  /* ← はみ出し防止 */
}
.manufacturing_item{

overflow:hidden;
text-align:center;
transition:transform 0.2s ease, box-shadow 0.2s ease;
}

.manufacturing_item img{
width:100%;
height:auto;
display:block;
border-radius:40px 0 40px 0;
}
.manufacturing_item p{
font-size:20px;
padding:10px 0 0 0;
margin: 0;
line-height:1.5;
text-align: left;
}

/*小ロットでも、高鮮度・ 高品質を実現*/
.system_area04{
  width: 100%;
  background: #fff;
  margin:0 auto;
  padding:60px 0 0 0;
  text-align: center;
}

/*オンラインでつながる資材管理体制*/
.system_back{

background: url("../../img/system/back_s.png")  no-repeat top center / cover;
}

.system_area05{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0 100px 0;
  text-align: center;
}
.system_online{
      position: relative;
      width: 100%;
      height: 457px; /* 追加：画像の高さに合わせる */
      display: flex;
      align-items: center;
      justify-content: flex-start;
      overflow: hidden;
}

.system_online_img{
      position: absolute;
      top: 0;
      right: 0;
      width: 1000px;
      height: 457px;
      z-index: 1;
      overflow: hidden;
      border-radius:210px 0 0 0;
}

.system_text-box {
      position: relative;
      z-index: 2;
      margin: 0;
      color: white;
      text-align: left;
      display: flex;
      flex-direction: column;
      justify-content: center;
      height: 100%; /* 追加：親要素の高さいっぱいに */
}

.system_text-line {
      background: #8aa590;
      display: inline-block;
      padding:10px 20px;
      font-size: 25px;
      line-height: 1.6;
      margin:5px 0;
}

@media (max-width: 768px) {
.manufacturing_area{
    display: grid;
    width: 100%;             /* ← 90%をやめる！ */
    max-width: 700px;
    margin: 0 auto;
    padding: 0 10px;         /* ← paddingで調整する */
    box-sizing: border-box;  /* ← 横スクロール防止 */
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .manufacturing_item img{
    width:100%;
    height:auto;
    display:block;
    border-radius:20px 0 20px 0;
  }

.manufacturing_item p{
font-size:18px;
margin: 0;
padding:10px 0 0 0;
line-height:1.5;
text-align: left;
}
	
/*小ロットでも、高鮮度・ 高品質を実現*/
.system_area04{
  width: 100%;
  max-width: 700px;	
  background: #fff;
  margin:0 auto;
  padding:30px 0 0 0;
  text-align: center;
}
	
.system_area05{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0 5% 0;
  text-align: center;
}
	
}



/* タブレット対応 */
@media (max-width: 1024px) {
      .system_online{
            height: 350px;
      }
      .system_online_img{
            width: 70%;
            height: 350px;
            border-radius: 150px 0 0 0;
      }
      .system_text-line {
            font-size: 24px;
            padding:10px 20px;
      }
}

/* スマートフォン対応 */
@media (max-width: 768px) {
      .system_online{
            height: auto;
            min-height: 250px;
      }
      .system_online_img{
            width: 90%;
            height: 250px;
           border-radius:50px 0 0 0;

      }
      .system_text-box {
            padding: 0 20px;
     
      }
      .system_text-line {
            font-size: 14px;
            padding: 10px 20px;
            margin: 5px 0;
      }
}
/*------------------------------------------------------------
お問い合わせ
------------------------------------------------------------*/
.contact_base{
	background: url("../../img/contact/back_s.png")  no-repeat top center / cover;
	
		}
.contact_area{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	}


.contact_area h2{
  position: relative;
  display: inline-block;
  margin-bottom: 1em;
  font-size: 50px;
}
.contact_area h2:before {
  content: '';
  position: absolute;
  bottom: -15px;
  display: inline-block;
  width: 80px;
  height: 5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: black;
  border-radius: 2px;
}

.contact_img{
	
  margin:0 auto;
  padding:60px 0;
  text-align: center;
	
		}


.contact_attention{
margin: 0;
padding: 110px 0 50px 0;
text-align: left;
	
	
	}

.contact_attention p{
	font-size: 14px;
	color: #646464;
	font-family: "Zen Kaku Gothic New", sans-serif;
	
	
	}

 .contact_form {
            width: 100%;
	        margin: 0;
	        padding: 0;
	     border-collapse: separate;
            border-spacing: 5px;
	 font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .contact_form th {
            width: 25%;
            background-color: #c5d4cf;
            padding: 20px 15px;
            font-size: 20px;
            font-weight:bold;
            color: #646464;
            text-align: left;
            vertical-align: top;
            border: none;
        }

        .contact_form th.middle-align {
            vertical-align: middle;
        }

        .contact_form td {
            padding: 10px 20px;
            border: none;
            background-color: white;
			text-align: left;
        }

        .contact_form td.textarea-cell {
            padding: 10px 20px;
        }

        .required {
            color: #e74c3c;
            margin-left: 2px;
            font-size: 16px;
        }

        .contact_form input[type="text"],
        .contact_form input[type="email"],
        .contact_form input[type="tel"] {
            width: 90%;
            padding: 10px 15px;
            border: 1px solid #ccc;
            border-radius: 0;
            font-size: 14px;
            font-family: inherit;
            background-color: white;
        }

        .contact_form textarea {
            width: 90%;
            height: 230px;
            padding: 15px;
            border: 1px solid #ccc;
            border-radius: 0;
            font-size: 14px;
            font-family: inherit;
            resize: none;
            background-color: white;
        }

        .contact_form input:focus,
        .contact_form textarea:focus {
            outline: none;
            border-color: #999;
        }

        .contact_form .radio-content {
            padding: 10px 0;
			text-align: left;
        }

        .contact_form .radio-option {
            margin-bottom: 15px;
        }

        .contact_form .radio-option label {
            display: flex;
            align-items: center;
            cursor: pointer;
            font-size: 14px;
            color: #333;
        }

        .contact_form input[type="radio"] {
            margin-right: 10px;
            cursor: pointer;
            width: 16px;
            height: 16px;
        }

        .contact_form .other-input {
            width: 100%;
            margin-top: 15px;
            padding: 10px 15px;
            border: 1px solid #ccc;
            border-radius: 0;
            font-size: 14px;
      
      
        }

        .contact_form .other-input::placeholder {
            color: #ccc;
        }

.privacypolicy_contact{
            text-align: center;
            padding: 50px 0 0 0;
           
        }

        .submit-container {
            text-align: center;
            padding: 50px 20px;
           
        }



        .submit-btn {
            background-color: #7a9d8e;
            color: white;
            padding: 18px 80px;
            border: none;
            border-radius: 0;
            font-size: 15px;
            cursor: pointer;
            font-family: inherit;
            transition: opacity 0.3s;
        }

        .submit-btn:hover {
            opacity: 0.9;
        }

        @media (max-width: 768px) {
            .contact_form {
                display: block;
            }

            .contact_form thead, 
            .contact_form tbody, 
            .contact_form tr, 
            .contact_form th, 
            .contact_form td {
                display: block;
            }

            .contact_form th {
                width: 90%;
				padding:10px 5%;
                border-bottom: none;
				font-size: 16px;
            }
			
	
			

            .contact_form td {
                border-top: none;
            }

            .submit-btn {
                 width: 100%;
                padding: 18px 0;
				text-align: center;
				margin: 0 5% 0 0;
				
            }
        }

/* ============================================
   レスポンシブ対応（モバイル・タブレット）
   style.cssの最後に追加してください
============================================ */

/* タブレット・スマートフォン共通 */
@media (max-width: 768px) {
    /* ヘッダーロゴのサイズ調整 */
    .header-logo img {
        max-width: 200px;
    }
    
    /* PCナビゲーションを非表示 */
    .nav {
        display: none !important;
    }
    
    /* ハンバーガーメニューボタンを表示 */
    .mobile-menu-btn {
        display: block !important;
    }
    
    /* FVの調整（画像表示） */
/*    .top_fv img {
        width: 100%;
        height: auto;
    }*/
    
    /* ABOUT USセクション */
    .top_about h2 {
        font-size: 40px;
        padding: 60px 0 0 0;
    }
    
    .top_about p {
        font-size: 14px;
        line-height: 28px;
        padding: 20px 15px 40px 15px;
    }
    
    /* お問い合わせセクション */
    .contact-title {
        font-size: 45px;
        padding: 60px 0 0 0;
    }
    
    .contact-subtitle {
        font-size: 30px;
    }
	
	.contact-area {
	padding:40px 0 100px 0;
	margin: 0 auto;
	width: 100%;
	text-align: center;
	 position: relative;
  z-index: 2; 
	
	
	}
   

    
    .phone-number {
        font-size: 40px;
    }
    
    .phone-icon {
        width: 35px;
        height: 35px;
    }
    
    .button-group {
        flex-direction: column;
        align-items: center;
    }
    
    .contact-btn {
        width: 100%;
        max-width: 300px;
    }
}

/* スマートフォン（小型） */
@media (max-width: 480px) {
    /* ヘッダー */
    .header-logo img {
        max-width: 160px;
    }
    
    .header-container {
        padding: 15px 5%;
    }
    
    body {
        font-size: 14px;
    }
    
    /* ABOUT US */
    .top_about h2 {
        font-size: 32px;
        padding: 40px 0 0 0;
    }
    
    .top_about h2:before {
        height: 20px;
        bottom: -10px;
    }
    
    .top_about p {
        font-size: 13px;
        line-height: 24px;
        padding: 15px 10px 30px 10px;
    }
    
    /* お問い合わせ */
    .contact-title {
        font-size: 35px;
        padding: 40px 0 0 0;
		
    }
    
    .contact-subtitle {
        font-size: 22px;
		padding: 0;
		margin: 0;
    }
    
    .phone-number {
        font-size: 32px;
		padding: 0;
		margin: 0;
    }
    
    .phone-icon {
        width: 28px;
        height: 28px;
    }
    
    .contact-btn {
        font-size: 16px;
        padding: 12px 0;
    }
    
    /* ボタンエリア */
    .btn_a a {
        max-width: 200px;
        padding: 8px 20px;
        font-size: 14px;
    }
}

/*------------------------------------------------------------
すぐにご提案可能なオリジナル開発品
------------------------------------------------------------*/
.productitem_bese01{
	background: url("../../img/preparedproduct/back01.png")  no-repeat center center / contain;
	
		}
.productitem_bese02{
	}
.productitem_area01{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
}


.productitem_area01 p{
 margin:0 auto;
  padding:0 50px;
  text-align: left;
}

.productitem_title01{
position: relative;
  display: inline-block;
  margin-bottom: 1em;
	font-size: 50px;
	line-height: 1.2;
	}

.productitem_title01:before {
  content: '';
  position: absolute;
  bottom: -30px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
 background-color: #646464;
}


.productitem01{
            width: 100%;
            display: flex;
            gap: 80px;
            align-items: center;
	        padding: 5% 0;
	        margin: 0;
	}

.productitem01_img{
            flex: 1;
        }
.productitem01_img img{
           width: 100%;
	box-shadow: 25px 25px 0 #cbd7ce;
            height: auto;
            display: block;
        }

.productitem01_txt{
            flex: 1;
            padding: 40px  40px 0  40px;
            display: flex;
            justify-content: flex-start;
        }

.productitem01_txt p{
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;

    /* ← Hannariは mixed が1番揺れない */
    text-orientation: mixed;

    /* ← 仮名の幅を整え、縦書き字形を安定させる */
    font-feature-settings: "pkna", "vert";

    /* 行間を広くする用（1.8〜2.2まで安定） */
    line-height: 1.8;

    /* ← Hannariはここが大事。縦書きでは letter-spacing を小さく */
    letter-spacing: 0.02em;

    font-size: 35px;
    font-weight: 500;
    margin: 0;
    color: #1a1a1a;
	
        }

/*Cosmetics*/
.productitem_area02 {
position: relative;
    width: 100%;
    height: 450px;
    overflow: visible;
}


.productitem_area02 > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cosmetics_title {
    position: absolute;
    bottom:-10%;
    left: 10%;
    z-index: 2;
}

.cosmetics_title img {
    max-width: 595px;
    height: auto;
    display: block;
}
        

.productitem_area03 {
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:80px 0 60px 0;
  text-align: center;
        }

.productitem_title02 {
            font-size: 25px;
            margin:0;
	        padding: 0;
            text-align: left;
            font-weight: 500;
            letter-spacing: 1px;
        }

.productitem_area03 p{
 margin:0 auto;
  padding:20px 50px;
  text-align: left;
        }

.productitem_tags {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 50px;
}

.product_tag {
            background-color: #6b9c7f;
            color: white;
            padding: 8px 16px;
            border-radius: 4px;
            font-size: 13px;
            font-weight: 500;
            white-space: nowrap;
        }


/*関連用語*/

.productitem_area04{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
        }

.terms_area{
	margin:0 auto;
	padding:20px 0;
	text-align: center;
	
	
	  }

.terms_title {
	padding:10px 20px;
	margin: 0;
	background: #7d9c84;
	text-align: left;
	color: #fff;
	font-size: 20px;
	  }

.terms_txt{
	background: #fff;
	text-align: left;
	padding: 20px;
	
	
		  }

/*分類表示*/

.productitem_bese05{
	background: url("../../img/preparedproduct/back_s.png")  no-repeat top center / cover;
	
		}

.productitem_area05{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
        }
	

.productitemtable{
  width: 100%;
  border-collapse: collapse;
}

.productitemtable td {
  padding: 15px 30px;
  border: 1px solid #ccc;
  text-align: left;
}

.productitemtable .pa-rating {
  background-color: #7a9b88;
  color: white;
  font-weight: bold;
  width: 30%;

}

.productitemtable .pa-description {
  background-color: #f5f5f5;

}

.productitem_area06{
  width: 100%;
  max-width:1200px;
  margin:0 auto;
  padding:60px 0;
  text-align: center;
        }
	


/* ============================================
アニメーション
============================================ */
/*ふわふわ　上下にゆれる*/
.drop_a{
    animation: shake-up 3s infinite ease-in-out;
}

@keyframes shake-up {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(15px);
    }
}

/*下からふわっと*/
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 50%);
  transition: 2s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/* 下からふわっと表示アニメーション */
.fadeup {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
    will-change: opacity, transform;
}

.fadeup.in-view {
    opacity: 1;
    transform: translateY(0);
}


.fade-left,
.fade-right {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.9s ease-out, transform 0.9s ease-out;
}

/* テキスト：左から */
.fade-left {
  transform: translateX(-40px);
}

/* 画像：右から */
.fade-right {
  transform: translateX(40px);
}

/* 表示時 */
.fade-show {
  opacity: 1;
  transform: translate(0, 0);
}


/* 初期状態は横に隠れて透明 */
.slide-in {
    transform: translateX(-100%);
    opacity: 0;
    transition: transform 1s ease-out, opacity 1s ease-out;
}

/* 画面内に入ったらアニメーション */
.slide-in.active {
    transform: translateX(0);
    opacity: 1;
}

/* ------------------------------------- */
/* 1. 初期状態 (アニメーション前) */
/* ------------------------------------- */
.js-fadein {
    opacity: 0; 
    transform: translateY(20px); 
    /* ここにぼかしを追加 */
    filter: blur(5px); /* 初期は5pxぼかす */
    
    /* アニメーションの時間を定義 */
    /* opacity, transform, filter の全てにアニメーションを適用 */
    transition: opacity 1.0s ease, transform 1.0s ease, filter 1.0s ease;
}

/* ------------------------------------- */
/* 2. 表示状態 (アニメーション後) */
/* ------------------------------------- */
.js-fadein.is-show {
    opacity: 1; 
    transform: translateY(0); 
    /* 表示時はぼかしをなくす */
    filter: blur(0); 
}

/* ============================================
イラスト位置
============================================ */
/*葉っぱ01*/
.illust_title01{
    position: relative;
    top: -20px; 
}

.illust_title01 img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 273px;

}

/**葉っぱ02*/
.illust_title02{
    position: relative;
    top:-300px; 
}

.illust_title02 img {
    position: absolute;
    left: 0;
    width: 100%;
    max-width: 216px;

}

/**葉っぱ03*/
.illust_title03{
    position: relative;
    top:-150px; 
}

.illust_title03 img {
    position: absolute;
    left: 50px;
    width: 100%;
    max-width: 155px;

}


@keyframes shake-up {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(15px);
    }
}

/*水滴01*/

.illust_drop01{
    position: relative;
    top: 100px; 
}

.illust_drop01 img{
    position: absolute;
    right:270px; 
    width: 100%;
	max-width: 104px;

}
/*水滴02*/
.illust_drop02{
    position: relative;
     top:-100px;
}

.illust_drop02 img{
    position: absolute;
   left: 150px;
    width: 100%;
	max-width: 129px;

}

/*水滴03*/
.illust_drop03{
    position: relative;
     top:0;
}

.illust_drop03 img{
    position: absolute;
   left: 100px;
    width: 100%;
	max-width: 159px;

}

@keyframes poyoyon {
  0%, 40% {
    transform: skew(0deg, 0deg);
  }
  5% {
    transform: skew(5deg, 5deg);
  }
  10% {
    transform: skew(-4deg, -4deg);
  }
  15% {
    transform: skew(3deg, 3deg);
  }
  20% {
    transform: skew(-2deg, -2deg);
  }
  25% {
    transform: skew(1deg, 1deg);
  }
  30% {
    transform: skew(-0.6deg, -0.6deg);
  }
  35% {
    transform: skew(0.3deg, 0.3deg);
  }
}

/* アイテム01 */
.illust_iteme01 {
    position: relative;
    top:-100px;
}

.illust_iteme01 img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 527px;
}

/*品質管理の飾り*/

.illust_quality{
    position: relative;
    top: 0; 
}

.illust_quality img{
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 440px;
}

/*生産システムの飾り*/

.illust_system{
    position: relative;
    top: -150px; 

}

.illust_system img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 440px;
}


/*企画開発の飾り*/

.illust_development{
    position: relative;
    top: -150px; 

}

.illust_development img {
    position: absolute;
    right: 150px;
    width: 100%;
    max-width: 340px;
}


/*採用ページの飾り*/

.illust_title_rec {
    position: relative;
    top: -20px;
    z-index: 1; /* 親にも付けると安定 */
}

.illust_title_rec img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 244px;
    animation: shake-up 3s infinite ease-in-out;
    z-index: 9999; /* 最前面 */
}

.rec_drop01{
    position: relative;
    top: 0; 
}

.rec_drop01 img{
    position: absolute;
    right:0; 
    width: 100%;
	max-width: 117px;
}

.rec_drop02{
    position: relative;
    top: 0; 
}

.rec_drop02 img{
    position: absolute;
    right:0; 
    width: 100%;
	max-width: 117px;
}

.rec_drop03{
    position: relative;
    top:-150px; 
}

.rec_drop03 img{
    position: absolute;
    right:30px; 
    width: 100%;
	max-width: 140px;
}

.rec_drop04{
    position: relative;
    top:0; 
}

.rec_drop04 img{
    position: absolute;
    right:30px; 
    width: 100%;
	max-width: 148px;
}

.rec_drop05{
    position: relative;
    top:0; 
}

.rec_drop05 img{
    position: absolute;
    right:30px; 
    width: 100%;
	max-width: 96px;
}



.rec_drop06{
    position: relative;
    top:0; 
}

.rec_drop06 img{
    position: absolute;
    right:30px; 
    width: 100%;
	max-width: 71px;
}

.rec_drop07{
    position: relative;
    top:0; 
}

.rec_drop07 img{
    position: absolute;
    right:30px; 
    width: 100%;
	max-width: 96px;
}

/*働く人の声*/

.illust_interview{
    position: relative;
    top: -100px; 

}

.illust_interview img {
    position: absolute;
    right: 150px;
    width: 100%;
    max-width: 440px;

}

/*企画開発の飾り*/

.llust_preparedproduct{
    position: relative;
    top: -100px; 

}

.llust_preparedproduct img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 440px;

}


.global-drop {
  position: fixed; /* 全体に固定 */
  bottom: -200px; /* 最初は画面の下の外に配置 */
  left: 50%;
  transform: translateX(-50%);
  width: 100px; /* 適宜サイズを調整 */
  height: auto;
background: url("../../img/drop.png");
  background-size: contain;
  background-repeat: no-repeat;

  opacity: 0;
  transition: all 1s ease-out;
	  z-index: 1000;
}

.global-drop.active {
  bottom: 50px; /* フェードインと同時に位置を調整 */
  opacity: 1;
}


/* ============================================
スマホ版
============================================ */
@media (max-width: 768px) {
	
body{
  color:#192118;
  width: 100%;
  margin:0;
  padding:0;
  font-size:14px;
 font-family: "Hannari", "Noto Serif JP", serif;
  line-height:1.8;
overflow-x: hidden;
font-feature-settings: "palt";
background: #f4f7f8;
   display: flex;
  flex-direction: column;
  min-height: 100vh; 
}

  

/*------------------------------------------------------------
見出しh2
------------------------------------------------------------*/
.subtitle_a,
.subtitle_b{
	position: relative;
	padding-top: 50px;
	padding-bottom: 0px;
	font-size: 24px;
	text-align: left;
	
}

.subtitle_a span,
.subtitle_b span {
	position: relative;
	z-index: 2;
	color: #646464;
	font-weight: 400;
}

/*英語白部分*/
.subtitle_a::before {
	content: attr(data-en);
	position: absolute;
	top:0;
	left: 0;
	color: #fff;
	font-size:50px;
	  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
z-index: 1;
}

/*英語緑部分*/
.subtitle_b::before {
	content: attr(data-en);
	position: absolute;
	top:0px;
	left: 0;
	color: #caddcd;
	font-size: 50px;
	  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
z-index: 1;
}


.subtitle_a::after, 
.subtitle_b::after{
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height:5px;
	background-color: #646464;
	z-index: 3;
}
	

/*------------------------------------------------------------
ABOUT US
------------------------------------------------------------*/
.top_aboutbase_img{
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	max-width:768px;
	width: 100%;
	z-index: 1; 
	 pointer-events: none;
}
    .top_aboutbase_img {
        display: none;
    }
.top_about h2{
    display: inline-block;
    position: relative;
    color: #23433a;
	font-size: 30px;
	font-weight: normal;
	padding: 50px 0 0 0;
	margin: 0 auto;


}	
	
.top_about h2:before {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 20px;
    background-color: #23433a;

}
	
.top_about p{
	font-size: 12px;
	 letter-spacing: 0.01em;
	line-height:1.4;
	 line-height: 35px;
	padding: 25px 2% ;
	margin: 0 auto;
	}
	
	
/* 私たちの強み*/
.top_strength_base{
  width: 90%;
  max-width:700px;
  margin:0 auto;
  padding:30px 0;
  text-align: center;	
		}	
	
.strength_box{
            background-color: white;
            border-radius:0 30px 0 30px;
            padding: 40px 20px;
            text-align: center;
        }
	
.strength_box h3{
            font-size: 24px;
            font-weight: 500;
            margin-bottom: 5px;
            color: #646464;
            letter-spacing: 2px;
        }

.strength_box p {
            font-size: 14px;
            line-height: 1.8;
            color: #1a1a1a;
            margin-bottom: 5px;
            min-height: 80px;
	        text-align: left;
        }

	
.strength_area {
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr; /* ← ここを変更 */
    gap: 30px;
}
	
/* OEMのご案内*/
.around_base {
    width: 100%;
    margin:30px auto;
    padding: 0;
    position: relative;
}
.around_area {
	max-width: 700px;
	width: 90%;
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%); 
}
	
	
.top_product_area{
  width: 100%;
  max-width:768px;
  margin:0 auto;
  padding:0 0;
  text-align: center;
 display: flex;
  flex-wrap: wrap;
	
		}
	
.top_product_item h3{
	color: #4f905b;
	font-size: 18px;
	padding: 0;
	margin: 0;
	}

.top_product_item p{
	padding: 0;
	margin: 0;
	font-size: 12px;
	text-align: left;
		}
.top_product_btn {
	
	padding:2% 0 4% 0;
	margin: 0;
	
	
		}	
/*既存開発セクション*/	
.top_selection_area{
  width: 90%;
  max-width:700px;
  margin:0 auto;
  padding:60px 0 0 0;
  text-align: center;
	
		}
	
/* img要素自体のスタイル */
.image-content {
display: block;
    width: 100%;
    height: auto; 
    object-fit: cover;
    border-radius: 0 30px 0 30px;
	transition: transform 0.8s ease-out;
	transform: scale(1.0);
}
	
/* テキストボックスの共通スタイル */
.text-box {
    position: absolute;
    padding: 10px 2%;
    color: white;
    width:85%; /* 幅 */
    box-sizing: border-box;
	top:65%;
	left: 2%;
}

.text-box02{
    position: absolute;
    padding: 10px 2%;
    color: white;
    width:85%; /* 幅 */
    box-sizing: border-box;
	top:65%;
	right: 2%;
}
	
.text-box h3,
.text-box02 h3{
    font-size: 16px;
    margin-top: 0;
    margin-bottom: 10px;
    font-weight: bold;
}

.text-box p ,
.text-box02 p {
 font-size:12px;
    margin: 0;
    line-height: 1.5;

	
}
	
/* OEMの流れ*/
.top_process_area{
  width: 90%;
  max-width:700px;
  margin:0 auto;
  padding:0;
  text-align: center;
	
		}
	
/*よくある質問*/
.top_faq_area{
  width: 90%;
  max-width:700px;
  margin:0 auto;
  padding:30px 0;
  text-align: center;
	
		}
	
/*お知らせ・コラム*/


/* お知らせ・コラムセクション */
.top_column {
	 width: 100%;
    position: relative;
    padding-top: 0;
    padding-bottom: 40px;
	margin: 0 auto 60px auto;
}

/* 背景色（見出しの下から開始） */
.top_column::before {
    content: '';
    position: absolute;
    top: 50px;
    left: 0;
    width: 100%;
    height: calc(100% - 50px);
    z-index: 0;

    /* グラデーション */
    background: linear-gradient(to bottom, #fff 0%, rgba(255,255,255,0) 100%);
}

/* セクション見出し */
.top_column_title {
    background-color: #7a9b8e;
    color: white;
    text-align: center;
    padding:10px 0;
    font-size: 24px;
    letter-spacing: 0.15em;
    font-weight: 400;
    margin: 0 auto 60px;
	width: 90%;
    max-width: 600px;
    position: relative;
    z-index: 1;
}

/* カードコンテナ */
.top_column_base {
display: grid;
    grid-template-columns: 1fr;
    gap:0;
	width: 90%;
    max-width: 600px;
    margin: 0 auto;
    padding: 0 0;
    position: relative;
    z-index: 1;
}




.top_column_area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 25px 30px 10px;
}

/* 日付 */
.top_date {
    color: #999;
    font-size: 16px;
    letter-spacing: 0.05em;
}

/* カテゴリ-*/
.top_category {
    background-color: #7a9b8e;
    color: white;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
}

.top_column_content p {
    padding: 15px 30px 35px;
    color: #666;
    font-size: 15px;
    line-height: 1.8;
    margin: 0;
}


.top_column_btn{
	margin: 0 auto;
	padding:80px 0 50px 0;
	text-align: center;
	
	 }
/*------------------------------------------------------------
よくある質問エリア
------------------------------------------------------------*/
 .q-icon {
            background-color: white;
            width: 30px;
            height: 30px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            font-weight: bold;
            color: #7d9c84;
            flex-shrink: 0;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }
	
  .a-icon {
            background-color: #7a9b8e;
           width: 30px;
            height: 30px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            font-weight: bold;
            color: white;
            flex-shrink: 0;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .question-title {
            color: white;
            font-size:16px;
            font-weight:bold;
            letter-spacing: 0.05em;
			line-height: 1;
			text-align: left;
        }

        .answer-content{
			padding: 20px 2%;
			margin: 0;
        }


.answer-content p{
            color: #646464;
            font-size: 15px;
            line-height: 1.4;
            letter-spacing: 0.05em;
			text-align: left;
        }

	
/*------------------------------------------------------------
 下層ページ
------------------------------------------------------------*/
/*FV*/
.fv_section {
  position: relative;
  width: 96%;
  max-width:700px;
  margin:70px auto 20px auto;
  border-radius: 10px;
  overflow: hidden;
aspect-ratio: 19 / 8; 
}	
	
fv_title {
  position: absolute;
  top:40%important;
  left:5%;
  color: #fff;
  text-align: left;
}

.fv_title span {
  font-family: "Allura", cursive;
  font-size: 20px;
  padding: 0;
  margin: 0;
line-height:1;
}

.fv_title h1 {
  font-size: 25px;
  margin: 0;
  padding:5px 0 15px 0;
line-height:1;
}

.fv_title p {
  font-size: 12px;
  margin: 0;
  padding: 0;
line-height:1;
}

/*投稿エリア*/
.fv_title_post {
  position: absolute;
  top:40%important;
  left:5%;
  color: #fff;
  text-align: left;
}

.fv_title_post span {
  font-family: "Allura", cursive;
  font-size: 20px;
  padding: 0;
  margin: 0;
line-height:1;
}

.fv_title_post .post_title {
  font-size: 25px;
  margin: 0;
  padding:5px 0 15px 0;
line-height:1;
}

.fv_title_post .post_txt {
  font-size: 12px;
  margin: 0;
  padding: 0;
line-height:1;
}

/*パンくずエリア*/
.breadcrumb_area {
	width: 96%;
	max-width: 700px;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	}
	
/*------------------------------------------------------------
品質管理と企画開発・生産システム
------------------------------------------------------------*/
.quality_area01{
width: 90%;
padding: 60px 0;
margin: 0 auto;
flex-direction: column; /* ←縦並び（画像 → テキスト） */
        gap: 30px; /* スマホ用の間隔に調整 */
        text-align: center;
}
	
	


	
/* ============================================
イラスト位置
============================================ */
.illust_title01{
    position: relative;
    top:0; 
}
.illust_title01 img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 100px;
    animation: shake-up 3s infinite ease-in-out;
}
	
/**葉っぱ02*/
.illust_title02{
    position: relative;
    top:-100px; 
}

.illust_title02 img {
    position: absolute;
    left: 0;
    width: 100%;
    max-width: 100px;
    animation: shake-up 3s infinite ease-in-out;
}
/**葉っぱ03*/
.illust_title03{
    position: relative;
    top:-150px; 
}

.illust_title03 img {
    position: absolute;
    left: 0;
    width: 100%;
    max-width: 55px;
    animation: shake-up 3s infinite ease-in-out;
}
	
.illust_drop01 img{
    position: absolute;
    right:50px; 
    width: 100%;
	max-width: 50px;
	 animation: poyoyon 2.5s infinite;
}
	
	.illust_drop02 img{
    position: absolute;
   left: 50px;
    width: 100%;
	max-width: 50px;
	 animation: poyoyon 2.5s infinite;
}
	
/*水滴03*/
.illust_drop03{
    position: relative;
     top:-50px;
}

.illust_drop03 img{
    position: absolute;
   left: 50px;
    width: 100%;
	max-width:59px;
	 animation: poyoyon 2.5s infinite;
}

	/* アイテム01 */
.illust_iteme01 {
    position: relative;
    top:0;
}

.illust_iteme01 img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width:150px;
	animation: shake-up 3s infinite ease-in-out;
}
	
/*品質管理の飾り*/
.illust_quality img{
    position: absolute;
    right: 0;
    width: 100%;
    max-width:150px;
    animation: shake-up 3s infinite ease-in-out;
}	
	}


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

.top_fv {
  width: 100%;
  height: 50vh;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.intro{
    position: absolute;
    bottom:30%;
    left: 10%;
    color: #FFF;
    z-index: 10; /* 画像の上に表示するためにz-indexを高く設定 */
    /* === テキストのスライドインアニメーション === */
    opacity: 0; /* アニメーション開始まで非表示 */
    /* アニメーション名, 実行時間, イージング, 遅延時間, 終了後の状態 */
    animation: TextSlideIn 2.5s ease-out 0.5s forwards; 
}

.intro h1{
	font-size: 30px;
    font-weight: normal;
	padding: 0;
	margin: 0;
	text-align: left;
	text-shadow: 2px 2px 3px #808080;
}

.intro p{
	font-size: 14px;
	font-weight: normal;
	padding: 0;
	margin: 0;
	text-align: left;
	text-shadow: 2px 2px 3px #808080;
	line-height:1.4;
}
	
.top_about {
  margin: 0 auto;
  padding:50px 0;
  text-align: center;
  position: relative;
  overflow: visible;
  z-index: 2; /* FVより上に */
	width: 100%;
background: #f4f7f8;

}
	
.system_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}

.system_title01{
position: relative;
  display: inline-block;
  margin-bottom: 0.5em;
	font-size:24px;
	line-height: 1.2;
	}

.system_title01:before {
  content: '';
  position: absolute;
  bottom: -15px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
 background-color: #646464;
}

.system_area01 p{
	margin: 0 auto;
	padding:5% 0;
	text-align: center;
	font-size:14px;
	
	}
	


.system_base{
            padding: 50px 0;
	 background-position: center top;

        }
        

 
.system_area02{
	        width:90%;
            max-width: 700px;
            margin: 0 auto;
	       padding: 0 5%;
            position: relative;
            z-index: 2;
        }

.system_area02 h2 {
position: relative;
  display: inline-block;
  margin-bottom: 0.5em;
	font-size:24px;
	line-height: 1.2;
        }

 
.system_area02::after{
  content: '';
  position: absolute;
  bottom: 50px;
  display: inline-block;
	width: 80px;
	height:5px;
  left: 5%;
 background-color: #646464;
}

.system_area02 p{
            font-size: 14px;
            color: #333;
            line-height: 1.4;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
	        padding: 20px 0 0 0; 
        }
	
/*製造設備一覧*/
.system_area03{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}

	
	

	
/*生産システムの飾り*/

.illust_system{
    position: relative;
    top: -50px; 

}

.illust_system img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 220px;
}

/*------------------------------------------------------------
OEMの流れ
------------------------------------------------------------*/
.oem_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	}
	
.oem_area02{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	}
	
.oem_img{
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	
		}
	
/*多彩な検査設備で品質を見極める*/

.quality_area02{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;

	}

/*多彩な検査設備で品質を見極める*/	
.quality_area03_base{	
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:5% 2% 0 2%;
  text-align: center;
	}
	
.qualitycheck{
	 width: 100%;
	margin:0 auto;
	padding:2% 0;
	text-align: center;
	
	
		}
/*原料から製品までの一貫管理*/
.quality_area04{	
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	}
	
/*------------------------------------------------------------
企画開発
------------------------------------------------------------*/
.development_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0 5% 0;
  text-align: center;
	}
  .development_product_area{
      grid-template-columns: 1fr;
  }

  .development_box{
      flex-direction: row; /* そのままでOK（縦並びにしたい場合は column に） */
  }
	
.development_box p{
      font-size: 16px;
      line-height: 1.25;
      color: #7d9c84;
	text-align: left;
      margin: 0; /* 追加：デフォルトのマージンを削除 */
}
/*企画開発の飾り*/

.illust_development{
    position: relative;
    top: 0px; 

}

.illust_development img {
    position: absolute;
    right: 10px;
    width: 100%;
    max-width:140px;
}


/*開発の流れ*/

.development_big {
background: linear-gradient(to bottom, #fff 20%, #f4f7f8 80%);
margin: 0 auto;
padding: 5% 0 0 0;
text-align: center;
	}


.development_img{
width: 96%;
max-width: 700px;
margin: 0 auto;
padding:2% 0;
text-align: center;
	
		}
	
/*------------------------------------------------------------
よくある質問
------------------------------------------------------------*/
.faq_area01 {
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:0 0;
  text-align: center;
	}

.faq_area02{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0 10% 0;
  text-align: center;
	}

 .faq_category-tabs{
            max-width:700px;
	        width: 90%;
            margin: 0;
            padding:10px 0;
            display: flex;
            flex-wrap: wrap;
            gap:5px;
	 
        }
 .faq_category-tabs .tab {
            padding:5px 20px;
            border: 1px solid #7d9c84;
            border-radius: 15px;
            background-color: white;
            color: #7d9c84;
			font-weight: bold;
            font-size: 14px;
            cursor: pointer;
            transition: all 0.3s;
            text-decoration: none;
            display: inline-block;
        }
	
.faq-pagination {
  width: 96%;
  max-width: 700px;
  margin:5% auto 0; /* ← 中央寄せ */
  padding: 0;
  display: flex;
  justify-content: center; /* ← コレでセンター寄せ確実！ */
}
	
        .faq-detail {

            overflow: hidden;
            margin-bottom: 10px;
			
        }
	
 .related-list {
            list-style: none;
            margin: 2% 0 0 0;
	        text-align: left;
	        padding: 0;
	 
        }

        .related-list a {
            color: #646464;
            font-size: 14px;
            letter-spacing: 0.05em;
            display: block;
            transition: color 0.3s;
			text-decoration: underline;
			
        }
	
/*よくある質問詳細*/
   .faq-answer-section {
            padding: 40px 10px 0 10px;
        }
	
/*コラム*/	
.post_big{
  position: relative;
  width: 90%;
  max-width: 700px;
  margin: 50px auto 0 auto;
  padding: 0;

	 }
 .post_area {
	  max-width:700px;
	 width:90%;
	 
    margin:0 auto;
	padding:5% 0;	
    grid-template-columns: 1fr; /* 1カラム */
    gap: 40px; /* 間隔調整（お好みで） */
  }

  .post_sidebar {
    margin-top: 0; /* 不要なズレ防止 */
  }
	

  /* ボックスの余白を軽く */
  .column_list_box {
    padding: 25px 15px 20px 20px;
  }

  /* 日付・カテゴリ・タイトルのバランス調整 */
  .column_list_date {
    font-size: 11px;
  }

  .column_list_category {
    float: none;
    margin: 3px 0 8px 0;
    font-size: 9px;
    padding: 2px 10px;
  }

  .column_list_title {
    padding-top: 15px;
    font-size: 14px;
    line-height: 1.5;
  }

  /* サムネイルの装飾サイズ調整 */
  .column_list_thumbnail::before {
    top: -10px;
    left: -10px;
    width: 70%;
    height: 70%;
  }

  /* サムネイル画像の軽微な調整 */
  .column_list_thumbnail img {
    transition: transform 0.3s ease;
  }
	
/*------------------------------------------------------------
お問い合わせ
------------------------------------------------------------*/
.contact_area{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	}
	
.contact_area h2{
  position: relative;
  display: inline-block;
  margin-bottom: 0.5em;
	font-size:24px;
}
.contact_area h2:before {
  content: '';
  position: absolute;
  bottom: -15px;
  display: inline-block;
  width: 80px;
  height: 5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: black;
  border-radius: 2px;
}
	
	

.contact_img{
	
  margin:0 auto;
  padding:2% 0;
  text-align: center;
	
		}


.contact_attention{
margin: 0;
padding: 5% 0 2% 0;
text-align: left;
	
	
	}

	
/*------------------------------------------------------------
採用情報
------------------------------------------------------------*/
.recruit_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}
	


.recruit_youtube {
  width: 70%;
  max-width: 600px;
  aspect-ratio: 16 / 9;
}


	
.recruit_works_area{
  width: 96%;
  max-width:700px;
  margin: 0 auto;
  padding:5% 0 2% 0;
  text-align: center;
}
	
	

	
/*採用ページの飾り*/

.illust_title_rec {
    position: relative;
    top: -20px;
    z-index: 1; /* 親にも付けると安定 */
}

.illust_title_rec img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 100px;
    z-index: 9999; /* 最前面 */
}
.recruit_works_box{
    display: block;          /* 縦並びに */
    width: 100%;
    padding: 0 0 12% 0;
    overflow: hidden;        /* 横スクロール防止 */
  }

  .recruit_works_photo01,
  .recruit_works_photo02{
    width: 100%;
    padding: 0;
    margin: 0 auto 20px auto;
    order: initial;
  }

  .recruit_works_photo01 img,
  .recruit_works_photo02 img{
    width: 100%;
    height: auto;
    display: block;          /* 横スクロール防止 */
  }

  .recruit_works_txt01,
  .recruit_works_txt02{
    width: 100%;
    padding: 0 5%;
    order: initial;
    box-sizing: border-box;
  }

  /* タイトル画像が飛び出さないように位置調整 */
  .recruit_works_txttitle01,
  .recruit_works_txttitle02,
  .recruit_works_txttitle03,
  .recruit_works_txttitle04,
  .recruit_works_txttitle05,
  .recruit_works_txttitle06,
  .recruit_works_txttitle07,
  .recruit_works_txttitle08{
    left: 0;
    top: 0;
    transform: scale(0.8);  /* 大きすぎてはみ出す防止 */
    transform-origin: left top;
  }

  /* H3上下の余白調整（タイトル画像が縮むため） */
  .recruit_works_txt01 h3,
  .recruit_works_txt02 h3{
    font-size: 24px;
    padding: 18% 0 0 0;
  }

  .recruit_works_txt01 p,
  .recruit_works_txt02 p{
    font-size: 16px;
  }
	
.recruit_post_area{
  width: 96%;
  max-width:700px;
  margin: 0 auto;
  padding:5% 0 2% 0;

  }
	
/*働く人の声*/

.illust_interview{
    position: relative;
    top: 0; 

}

.illust_interview img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 200px;

}
	
.recruit_post_area{
      width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;

  }
	
 .interview_area {
            width: 96%;
            max-width: 700px;
            margin: 0 auto;
            padding: 2% 0 5% 0;
        }
	
.recruit-content_btn{
	margin: 0 auto;
padding:0 0 2% 0;
	text-align: center;
	
	 }

.recruit_entry_area{
      width: 96%;
  max-width:700px;
  margin: 0 auto;
  padding:5% 0 2% 0;
  text-align: center;
	
		 }

.recruit_entry_back{
    background-size: 60%; /* ← 小さくする（お好みで調整） */
    background-position: top center; /* 中央寄せ推奨 */
    padding:0; /* 余白も調整（必要に応じて） */
  }
	


.recruit_entry_title{
position: relative;
  display: inline-block;
  margin-bottom:0.05em;
	font-size: 25px;
	line-height: 1.2;
	}

/* ==========================================
インタビュー内容

 ========================================== */
 /* 全体余白調整 */
  .interview_section {
    margin-top: 60px;
  }
	
.interview_title_area{
            max-width: 700px;
            margin: 0 auto;
	position: relative;
	  }	
	
.interview_detail{
max-width: 700px;
width:96%; 
margin: 0 auto;
padding: 2% 0;
text-align: center;

        }

  /* タイトル位置を自然に */
  .interview_title {
    position: relative;
    left: 0;
    top: 0;
    margin-bottom: 0;
    text-align: center;
  }

  .interview_title img {
    max-width: 70%;
  }

  /* ===== メインの画像 & テキストを縦並びに ===== */
  .interview_container {
    display: block;
    min-height: auto;
  }

  .interview_content {
    width: 100%;
    padding:0 20px;
  }

  .interview_image {
    width: 100%;
    margin: 20px 0 0 0;
  }

  .interview_image img {
    height: auto;
    border-radius: 0; /* スマホでは角丸なしが自然 */
  }

  /* 見出し */
  .interview_message h1 {
    font-size: 20px;
    line-height: 1.6;
  }

  /* ===== 詳細セクション ===== */

  .interview_detail {
    padding: 60px 15px;
  }

  /* 画像＋テキストを縦並びに */
  .in_detail_box {
    display: block;
  }

  .in_detail_img {
    max-width: 100%;
    margin-bottom: 20px;
  }

  .in_detail_txt p {
    font-size: 13px;
  }

  /* タイトルサイズ縮小 */
  .in_detail_titleh2,
  .in_detail_title {
    font-size: 20px;
  }

  /* ===== 大画像＋テキスト重ねエリア ===== */

.in_detail_box02 img{
	width: 100%;
	border-radius:20px 0 20px 0;
		   }
	
.in_detail_box02txt{
	position: absolute;
	width: 90%;
	 top:35%;
  left: 5%;
	padding: 1%;
	background: rgba(125,156,132,0.9);
	
		   }

.in_detail_box02txt h2{
	font-size:16px;
	padding: 0;
	margin: 0;
	font-weight: 500;
	text-align: left;
	color: #fff;
	  }

.in_detail_box02txt p{
	font-size: 12px;
	text-align: left;
	color: #fff;
		padding: 0;
	margin: 0;
		  }


  /* ===== メッセージ大エリア ===== */

.in_detail_message{
	position: relative;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	
	  }

.in_detail_message img{
	display: block;
	width: 100%;
	min-height: auto;
	  }

.in_detail_message_area{
max-width:750px;
width:100%; 
margin: 0 auto;
padding:0;
text-align: center;
font-family: "Zen Kaku Gothic New", sans-serif;
position: absolute;
  top: -15%;
  left: 2%;	
	 }


.in_detail_message_title img{
	width: 100%;
	max-width:300px;
	
	 }

.in_detail_message_txt{
	background: rgba(255,255,255,0.8);
	box-shadow: 0 0 2px gray;
	padding: 2%;
	margin:1% auto 0 auto;
	width:80%;
		 }

.in_detail_message_txt h2{
	font-size: 14px;
	font-weight: 500;
	text-align: left;
	color: #89a590;
	line-height:1.2;
		  }


.in_detail_message_txt p{
	font-size: 12px;
	line-height:1;
	text-align: left;
	color: #646464;
		  }

.other_members{
max-width: 700px;
width:96%; 
margin: 0 auto;
padding:5% 0 2% 0;
text-align: center;
	
		  }

/*------------------------------------------------------------
すぐにご提案可能なオリジナル開発品
------------------------------------------------------------*/
.productitem_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}
	
.productitem_area01 p{
 margin:0 auto;
  padding:0 2%;
  text-align: left;
}

.productitem_title01{
position: relative;
  display: inline-block;
  margin-bottom: 0.05em;
	font-size: 25px;
	line-height: 1.2;
	}
	
 .productitem01 {
    flex-direction: column;     /* ← 1列にする */
    gap: 40px;                  /* スマホ用に少し狭く */
    padding: 10% 0;
  }

  .productitem01_img,
  .productitem01_txt {
    flex: none;
    width: 100%;                /* 横幅100% */
    padding: 0;                 /* スマホ見やすくリセット */
  }

  .productitem01_txt p {
    writing-mode: horizontal-tb;   /* ← 縦書きのままが良ければ消す */
    text-orientation: initial;
    line-height: 1.8;
    font-size: 24px;               /* 読みやすいサイズに調整 */
  }
	
/*Cosmetics*/
.productitem_area02 {
position: relative;
    width: 100%;
    height: 250px;
    overflow: visible;
}

.cosmetics_title {
    position: absolute;
    bottom:-20%;
    left: 5%;
    z-index: 2;
}

.cosmetics_title img {
    max-width:300px;
    height: auto;
    display: block;
}
       

.productitem_area03 {
  width:96%;
  max-width:700px;
  margin:0 auto;
  padding:12% 0 2% 0;;
  text-align: center;
        }

.productitem_title02 {
            font-size: 20px;
            margin:0;
	        padding: 0;
            text-align: left;
            font-weight: 500;
            letter-spacing: 1px;
        }

.productitem_area03 p{
 margin:0 auto;
  padding:20px 2%;
  text-align: left;
        }
.productitem_tags {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 50px 2% 0 2%;
}
	
/*企画開発の飾り*/

.llust_preparedproduct{
    position: relative;
    top: 0; 

}

.llust_preparedproduct img {
    position: absolute;
    right: 0;
    width: 100%;
    max-width: 130px;

}
/*関連用語*/

.productitem_area04{
  width:96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
        }
	
.productitem_area05{
  width:96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
        }
	
/*------------------------------------------------------------
取扱製品
------------------------------------------------------------*/
.product_area01{
  width:96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}
.product_list{
  display: flex;
  gap: 20px;
  flex-wrap: wrap; 
  margin:0 auto;
  padding:5% 0 0 0;
}
.product_area02{
  width:96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}
.product_list02{
  width:96%;
  max-width:700px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 1fr;
            gap: 20px;
        }
.product_title{	
	font-size: 16px;
	    }
.product_category  li {
            padding:0 0;
            font-size: 14px;
	        text-align: left;
display: flex; 
line-height:1.8;
        }
	

.product_area03{
            background-image: url('../../img/products/products_contact.png');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            padding: 20px 0;
            width: 100%;
            position: relative;
        }
        

        
        .product_consultation{
            position: relative;
            z-index: 2;
        }

        .product_consultation{
			width:90%;
            max-width: 700px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }

        .product_consultation h2 {
            font-size: 24px;
            color: #7d9c84;
            font-weight:bold;
            line-height: 1.2;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

        .product_description{
            font-size: 14px;
            color: #333;
            line-height: 1.4;
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

        .product_button {
            display: inline-block;
            padding: 15px;
            background-color: #7d9c84;
            color: white;
            text-decoration: none;
            font-size: 12px;
            border: 3px solid white;
            outline: 3px solid #7d9c84;
            border-radius: 0;
            transition: all 0.3s ease;
            letter-spacing: 0.05em;
            box-shadow: 0 0 0 3px #7d9c84;
			font-family: "Zen Kaku Gothic New", sans-serif;
        }

        .product_button:hover {
            opacity: 0.8;
        }
	
#makeup,
#skincare,
#haircare,
#others {
  scroll-margin-top: 70px; /* ← 固定ヘッダーの高さに合わせて調整 */
}
	
/*------------------------------------------------------------
会社概要
------------------------------------------------------------*/
.corporate_area01{
  width: 96%;
  max-width:700px;
  margin:0 auto;
  padding:2% 0;
  text-align: center;
}	
	
.corporate_quality {
display: block;
}
	
.corporate_quality_img {
	max-width: 50%;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	}
	
.corporate_quality_txt{
margin: 0;
padding:5%;
			}
	
.corporate_quality_message h3{
margin: 0;
padding:0;
font-size:24px; 
text-align: center;
		     }
	
	

.corporate_quality_message p{
font-size:12px;
text-align: right;
	
			     }
	
  .corporate_timeline, 
  .corporate_timeline tbody, 
  .corporate_timeline tr, 
  .corporate_timeline th, 
  .corporate_timeline td {
    display: block;
    width: 100%;
  }

  .corporate_timeline tr {
    margin-bottom: 15px; /* 行と行の間隔 */
  }

  .corporate_timeline th {
    width: 100%;
    padding: 15px;
    text-align: left; /* 必要なら左寄せに変更 */
    border-radius: 5px 5px 0 0;
  }

  .corporate_timeline td {
    padding: 15px;
    border-radius: 0 0 5px 5px;
  }
	
/*本社エリア*/
.company_area01{
 display: block;
	}
/*会社DATA*/
.company_data01,
.company_photo01{
	width: 100%;
	margin: 0 auto;
	padding: 0;
	
	}
	
/*支社エリア*/
.company_area02{
	 display: block;
	column-gap:10%;
	}	
.company_data02{
	width: 100%;
	margin: 0 auto;
	padding: 0;
	
	}
}

/* ================================================
   ▼ 超スマホ（480px以下）
================================================ */
@media screen and (max-width: 480px) {
  .recruit_works_txttitle01,
  .recruit_works_txttitle02,
  .recruit_works_txttitle03,
  .recruit_works_txttitle04,
  .recruit_works_txttitle05,
  .recruit_works_txttitle06,
  .recruit_works_txttitle07,
  .recruit_works_txttitle08{
    transform: scale(0.65);  /* さらに縮小してはみ出し防止 */
  }

  .recruit_works_txt01 h3,
  .recruit_works_txt02 h3{
    font-size: 22px;
    padding-top: 22%;
  }

  .recruit_works_txt01 p,
  .recruit_works_txt02 p{
    font-size: 15px;
  }
}


/*------------------------------------------------------------
404エラー
------------------------------------------------------------*/
.error_404{
	padding:5% 0 0 0;
	margin: 0 auto;
	text-align: center;
	width: 500px;
	
}