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

/* ==================================================== */
/* 0. 全体設定・基本スタイル */
/* ==================================================== */
html,
html * {
	box-sizing: border-box;
	font-family: 'Poppins', 'Noto Sans JP', sans-serif;
	margin: 0;
	padding: 0;
}

.main-container {
	margin: 0 auto;
	max-width: 1200px;
	padding: 0 10px;
	width: 100%;
}

html,
body {
  overflow-x: hidden;
}

.section-heading {
	color: black;
	font-size: 28px;
	line-height: 1.6;
	margin-bottom: 0;
	padding: 10px;
}

.section-subheading {
	color: black;
	font-size: 24px;
	font-weight: 300;
	line-height: 1.6;
	margin-bottom: 40px;
	padding: 10px;
}

/* ==================================================== */
/* 1. ヘッダーセクション */
/* ==================================================== */
.header {
	align-items: center;
	background-color: rgba(255, 255, 255, 0.8); 
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	display: flex;
	justify-content: space-between;
	padding: 0 20px;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 1000;
}

.header-logo img {
	height: 80px;
}

/* PC用ナビゲーション */
.header-nav ul {
	align-items: center;
	display: flex;
	list-style: none;
	margin-right: 20px;
	padding: 0;
    max-width: 1200px;
    flex-wrap: nowrap;
}

.header-nav-inner-pc {
	display: block; /* PC画面では表示 */
}

.header-nav-inner-sp,
.header-nav-menus-sp,
.contact-area-sp {
	display: none; /* PC画面では非表示 */
}

.header-nav li {
	margin-left: 35px;
    /* 文字が折り返さないように、各liのmin-widthを調整 */
    min-width: 70px;
}

.style-nav ul li a {
    /* リンクのテキストが折り返さないように設定 */
    white-space: nowrap;
	font-weight: 500;
	color: black;
	display: block;
	padding-bottom: 5px;
	position: relative;
	text-decoration: none;
}

.style-nav ul li:not(.contact-button-wrapper):not(.language-switcher-item) a::after {
	background-color: white;
	bottom: 0;
	content: '';
	height: 2px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	width: 0;
}

.style-nav ul li:not(.contact-button-wrapper):not(.language-switcher-item) a:hover::after {
	width: 100%;
}

.contact-button-header {
	align-items: center;
	background-color: #de2939;
	border: 1px solid #de2939;
	border-radius: 20px;
	color: white !important;
	display: inline-flex;
	font-size: 14px;
	justify-content: center;
	padding: 4px 15px;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.3s, color 0.3s;
	width: 150px;
}

.contact-button-header i,
.contact-button-sp i {
	display: inline-block;
	font-size: 10px; /* アイコンサイズを調整 */
	margin-right: 5px;
}

.contact-button-header:hover {
	background-color: white;
	color: #de2939 !important;
}

.style-nav ul li a.contact-button-header::after {
	content: none;
}

/* ハンバーガーメニューボタン */
.hamburger-btn {
	align-items: center;
	background-color: #F10032;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	display: none; /* PCでは非表示 */
	flex-direction: column;
	height: 50px;
	justify-content: center;
	position: fixed;
	right: 15px;
	top: 15px;
	width: 50px;
	z-index: 999;
}

.btn-bar {
	background-color: #fff;
	display: block;
	height: 3px;
	margin: 2px auto;
	transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
	width: 15px;
}

/* ハンバーガーメニュー開閉アニメーション */
.hamburger-btn.is-active .btn-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.hamburger-btn.is-active .btn-bar:nth-child(2) {
	opacity: 0;
}

.hamburger-btn.is-active .btn-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.language-switcher-wrapper {
	display: none; /* 古いHTML構造では非表示にする */
}

.language-switcher-item {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-left: 20px;
}

.language-button {
	color: black;
	font-size: 14px;
	text-decoration: none;
	padding: 5px;
	border-bottom: 2px solid transparent;
	transition: color 0.3s, border-bottom-color 0.3s;
}

.language-button:hover {
	color: #de2939;
	border-bottom-color: transparent;
}

.language-button.active {
	font-weight: bold;
	color: #de2939;
	border-bottom-color: transparent;
}

.language-divider {
	color: black;
	font-size: 14px;
}

.style-nav ul li:not(.contact-button-wrapper):not(.language-switcher-item) a:hover::after {
	width: 100%;
}

.style-nav ul li:not(.contact-button-wrapper):not(.language-switcher-item) a.active::after {
	width: 100%;
}


/* ==================================================== */
/* 2. メインビジュアル (背景動画) */
/* ==================================================== */
.video-container {
	height: 100vh;
	overflow: hidden;
	position: relative;
	width: 100%;
	margin-bottom: 100px
}

.bg-video {
	left: 50%;
	min-height: 100%;
	min-width: 100%;
	object-fit: cover;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: -1;
}

.video-overlay {
	align-items: flex-start;
	color: #fff;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	max-width: 1200px;
	padding: 0px 40px;
	position: absolute;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	top: 0;
	width: 100%;
	z-index: 1;
}

.video-overlay h1 {
	font-size: 48px;
	font-weight: bold;
	margin-bottom: 5px;
}

/* ==================================================== */
/* 3. メインコンテンツセクション */
/* ==================================================== */

/* --- About usセクション --- */
.about-us {
	background-image: url("images/Web back ground-water2_image.png");
	background-position: center;
	background-size: cover;
	min-height: 500px;
	padding: 50px 10px;
	position: relative; /* 子要素の配置基準 */
	text-align: left;
	z-index: 1; /* コンテンツが背景の上に来るように調整 */
}

/* 各セクションのコンテンツの余白を調整 */
.about-us,
.about-us-container,
.business-section,
.business-content-wrapper,
.company-section,
.company-content-wrapper,
.member-section,
.member-content-wrapper,
.contact-section,
.contact-content-wrapper {
	margin: 0;
	padding: 0;
}

.about-us-container {
	align-items: flex-start;
	display: flex;
	gap: 20px;
	justify-content: space-between;
	padding-bottom: 100px;
	margin-bottom: 0px;
	max-width: 1200px;
}

.about-us-text {
	align-items: flex-start;
	display: flex;
	flex-basis: 50%;
	flex-direction: column;
	max-width: 50%;
	padding-left: 50px;
	
}

.about-us-images-wrapper {
	flex-basis: 40%;
	max-width: 40%;
	margin-top: -70px;
	margin-left: 0;
	padding-left: 0;
}

.about-us-images {
	height: 670px;
	margin-bottom: 0px;
	position: relative;
	width: 100%;
}

.about-us-images img {
	border-radius: 10px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	height: 230px;
	opacity: 0;
	object-fit: cover;
	position: absolute;
	transform: translateY(50px);
	width: 350px;
}

.about-us-images picture:nth-child(1) img {
	left: 0;
	top: 0;
	z-index: 3;
}

.about-us-images picture:nth-child(2) img {
	left: 180px;
	top: 220px;
	z-index: 2;
}

.about-us-images picture:nth-child(3) img {
	left: -10px;
	top: 420px;
	z-index: 1;
}

/* About us アニメーション */
@keyframes slideUp {
	from {
		opacity: 0;
		transform: translateY(50px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.about-us-images img.is-visible {
	animation: slideUp 1s ease-out forwards;
}

.about-us-images picture:nth-child(1) img.is-visible {
	animation-delay: 0.2s;
}

.about-us-images picture:nth-child(2) img.is-visible {
	animation-delay: 0.4s;
}

.about-us-images picture:nth-child(3) img.is-visible {
	animation-delay: 0.6s;
}

/* About us 見出し・本文スタイル */
.about-heading {
	color: #0e8668;
	font-size: 72px;
	margin-left: 50px;
	margin-bottom: -5px;
}

.about-subheading {
	color: #0e8668;
	font-size: 28px;
	margin-bottom: 20px;
}

.about-subheading-green {
	color: #0e8668;
	font-size: 32px;
}

.about-us-right .about-subheading {
	color: #008000;
	font-size: 32px;
	margin-bottom: 20px;
	margin-top: 40px;
}

.about-text-content {
	color: #000000;
	font-size: 20px;
	line-height: 1.6;
	margin: 0 auto 0 auto;
	max-width: 800px;
}

/* --- problem-solution-section --- */
.problem-solution-section {
	background-color: white;
	padding: 20px 10px;
	position: relative;
	text-align: center;
	z-index: 1;
}

/* WebPとAVIFに共通の背景画像スタイル */
.problem-solution-section::before {
	background-image: url("images/problem solution_background.jpg");
	background-position: center;
	background-size: cover;
	content: '';
	filter: brightness(80%);
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: -1;
}

/* AVIF/WebP対応ブラウザ向けのスタイル */
.avif-supported .problem-solution-section::before {
	background-image: url("images/problem solution_background.avif");
}

.webp-supported .problem-solution-section::before {
	background-image: url("images/problem solution_background.webp");
}

.problem-solution-heading {
	color: #de2939;
	font-size: 40px;
	line-height: 1.6;
	margin-bottom: 5px;
	padding: 0;
}

.problem-solution-subheading {
	color: #de2939;
	font-size: 20px;
	line-height: 1.6;
	padding: 0;
}

.problem-solution-item {
	border-radius: 10px;
	margin-top: 100px;
	margin-bottom: 100px;
	padding: 20px;
}

.problem-solution-item-heading {
	color: white;
	font-size: 28px;
	line-height: 1.6;
	margin-bottom: 5px;
	padding: 0;
}

.problem-solution-item-text {
	color: white;
	font-size: 20px;
	line-height: 1.6;
	padding: 0;
	 word-break: break-all;
}

/* --- technology-detail-section --- */
.technology-detail-section {
	background-color: white;
	background-image: url("images/Web back ground-water1_image.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: white;
	padding: 100px 10px;
	position: relative;
	text-align: center;
	z-index: 1;
}

.technology-item-container {
	display: flex;
	flex-wrap: wrap;
	gap: 0px;
	justify-content: center;
}

.technology-item {
	background-color: #f8f8f8;
	border-radius: 10px;
	flex-basis: 45%;
	max-width: 45%;
	padding: 20px;
}

.technology-item-heading {
	color: #0e8668;
	font-size: 72px;
	margin-left: 20px;
	margin-bottom: 0px;
	text-align: left;
}

.technology-item-subheading {
	color: #0e8668;
	font-size: 28px;
	margin-bottom: 100px;
	margin-left: 25px;
	text-align: left;
}

.technology-item-container.photo-container {
    padding: 20px 0;
    text-align: center;
}

.technology-item-container.photo-container img {
    border-radius: 12px;
    height: auto;
    max-width: 250px;
    width: 100%;
}

/* --- technology-photo-section --- */
.technology-photo-section {
	background-color: white;
	background-image: url("images/Web back ground-water3_image.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-top: 0px;
	padding: 0;
	text-align: center;
}

.photo-grid {
	align-items: start;
	display: grid;
	gap: 0px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-bottom: 0;
	margin-top: 0;
	padding-bottom: 100px;
}

.photo-item {
	padding: 0;
}

.tech-photo {
	aspect-ratio: 1.618 / 1;
	border-radius: 12px;
	margin-bottom: 5px;
	margin-top: 10px;
	max-width: 550px;
	object-fit: cover;
	width: 100%;
}

.photo-caption {
	color: black;
	font-size: 24px;
	font-weight: bold;
	margin-bottom: 10px;
	padding: 0;
	text-align: center;
}

/* --- cavitation plasma machine photo section --- */
.cavitation-photo-section {
	margin: 0 auto;
	overflow: hidden;
	padding: 20px;
	width: 100%;
}

.cavitation-photo-heading {
	color: black;
	font-size: 28px;
	margin-bottom: 20px;
	text-align: center;
}

.cavitation-photo {
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: 700px;
	object-fit: cover;
	width: 100%;
	margin-bottom: 100px;
}

/* --- technology-detail-section2 and 3 --- */
.tech-detail-flex-container-pc {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: center;
	padding-top: 100px;
	padding-bottom: 100px;
}

.tech-detail-flex-container-sp {
	display: none;
}

.tech-detail-image-wrapper {
	display: flex;
	flex-basis: 50%;
	justify-content: flex-start;
	padding: 10px;
}

.tech-detail-video,
.tech-detail-photo {
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	max-width: 400px;
	object-fit: cover;
	width: 100%;
}

.tech-detail-text-wrapper {
	display: flex;
	flex-basis: 50%;
	flex-direction: column;
	justify-content: center;
	padding: 10px;
}

.tech-detail-heading {
	color: black;
	font-size: 28px;
	margin-bottom: 20px;
	text-align: center;
}

.tech-detail-text {
	color: black;
	font-size: 20px;
	line-height: 1.6;
}

.technology-detail-section3 .tech-detail-flex-container-pc {
	align-items: center;
	display: flex;
	flex-direction: row;
	gap: 20px;
	justify-content: center;
	padding: 10px;
}

.technology-detail-section3 .tech-detail-flex-container-sp {
	display: none;
}

.technology-detail-section3 .tech-detail-image-wrapper {
	display: flex;
	flex-basis: 50%;
	justify-content: flex-start;
	padding: 10px;
}

.technology-detail-section3 .tech-detail-photo {
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	max-width: 400px;
	object-fit: cover;
	width: 100%;
}

.technology-detail-section3 .tech-detail-text-wrapper {
	display: flex;
	flex-basis: 50%;
	flex-direction: column;
	justify-content: center;
	padding: 10px;
}

.technology-detail-section3 .tech-detail-heading {
	color: black;
	font-size: 28px;
	margin-top: 10px;
	margin-bottom: 0px;
	text-align: center;
}

.technology-detail-section3 .tech-detail-text {
	color: black;
	font-size: 20px;
	line-height: 1.6;
	text-align: left;
	margin-top: 0px;
}

/* --- Sterilization Effects Section --- */
.sterilization-effects-section {
	background-color: white;
	background-image: none;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	min-height: 100px;
	padding: 0;
	text-align: center;
	margin-bottom: 100px;
}

.sterilization-effects-content {
	padding: 0;
	text-align: center;
}

.sterilization-heading {
	color: black;
	font-size: 28px;
	margin-bottom: 5px;
}

.sterilization-text {
	color: black;
	font-size: 20px;
	line-height: 1.6;
	margin-bottom: 20px;
}

.sterilization-photo-grid {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: center;
	margin-bottom: 20px;
	padding: 10px;
}

.sterilization-category-wrapper {
	align-items: center;
	display: flex;
	flex-basis: calc(50% - 10px);
	flex-direction: column;
	gap: 10px;
	max-width: calc(50% - 10px);
}

.sterilization-photo-item-group {
	align-items: center;
	display: flex;
	gap: 10px;
	justify-content: center;
	width: 100%;
}

.sterilization-photo-item {
	flex-basis: 100%; /* グループ内で横一列になるように調整 */
	max-width: 100%;
	padding: 0;
}

.sterilization-photo {
	border-radius: 0;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
	width: 100%;
}

/* --- Technologyセクション (Parallax) --- */
.technology-section {
	align-items: center;
	background-image: url("images/parallax_image.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: white;
	display: flex;
	height: 60vh;
	justify-content: center;
	padding: 50px 20px;
	text-align: center;
	width: 100%;
}

/* AVIF/WebP対応ブラウザ向けのスタイル */
.avif-supported .technology-section {
	background-image: url("images/parallax_image.avif");
}

.webp-supported .technology-section {
	background-image: url("images/parallax_image.webp");
}

.technology-content {
	margin: 0 auto;
	max-width: 1200px;
	padding: 100px 20px;
}

.technology-content h1,
.technology-content h2 {
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.technology-content h1 {
	font-size: 40px;
	margin-bottom: 10px;
}

.technology-content h2 {
	font-size: 40px;
	line-height: 1.4;
	margin-bottom: 30px;
}

.view-more-button {
	align-items: center;
	background-color: #de2939;
	border: 1px solid none;
	border-radius: 25px;
	color: white;
	display: none;/* --- 戻す際はinline flex */
	font-size: 14px;
	font-weight: bold;
	height: 50px;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.3s, color 0.3s;
	width: 300px;
}

.view-more-button a {
	color: white;
	text-decoration: none;
}

.view-more-button:hover {
	background-color: white;
	border-color: white;
	color: #de2939;
}

.view-more-button:hover a {
	color: #de2939;
}

/* --- Businessセクション --- */
.business-section {
	background-color: #ffffff;
	margin: 0 auto;
	max-width: 1200px;
	padding: 0px 20px;
	text-align: left;
	margin-bottom: 100px;
}

.business-heading-wrapper,
.company-heading-wrapper,
.member-heading-wrapper {
	margin: 0 auto 50px auto;
	max-width: 1200px;
}

.business-heading {
	color: #de2939;
	font-size: 72px;
	margin-bottom: -5px;
}

.business-subheading {
	color: #de2939;
	font-size: 28px;
}

.business-content-wrapper {
	align-items: stretch;
	display: flex;
	gap: 15px;
	justify-content: center;
	margin: 0 auto;
	max-width: 1200px;
}

.business-image-wrapper {
	flex-basis: 40%;
	max-width: 40%;
}

.business-image-wrapper img {
	border-radius: 12px;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.business-text-wrapper {
	display: flex;
	flex-basis: 60%;
	flex-direction: column;
	justify-content: space-between;
	max-width: 60%;
}

.business-text-box {
	background-color: #de2939;
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 20px;
}

.business-text-heading-green {
	color: whitesmoke;
	font-size: 24px;
	margin-bottom: 0px;
}

.business-text-subheading {
	color: whitesmoke;
	font-size: 24px;
	margin-bottom: 20px;
}

.business-text-content {
	color: whitesmoke;
	font-size: 20px;
	font-weight: 300;
	line-height: 1.6;
	text-align: left;
}

.business-view-more {
	align-items: center;
	background-color: white;
	border: 1px solid white;
	border-radius: 25px;
	color: white;
	display: none;
	font-size: 15px;
	font-weight: bold;
	height: 50px;
	justify-content: center;
	margin-top: 20px;
	text-decoration: none;
	transition: background-color 0.3s, color 0.3s;
	width: 300px;
}

.business-view-more a {
	color: #de2939;
	text-decoration: none;
}

.business-view-more:hover {
	background-color: #de2939;
	border-color: white;
	color: white;
}

.business-view-more:hover a {
	border-color: white;
	color: white;
}

/* --- Companyセクション --- */
.company-section {
	background-color: white;
	margin: 0 auto;
	max-width: 1200px;
	padding: 0 20px;
	margin-bottom: 100px;
	text-align: left;
}

.company-heading-wrapper {
	margin: 0 auto 50px auto;
	max-width: 1200px;
}

.company-heading {
	color: #1b4d90;
	font-size: 72px;
	margin-bottom: -5px;
}

.company-subheading {
	color: #1b4d90;
	font-size: 28px;
}

.company-content-wrapper {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: flex-start;
	margin: 0 auto;
	max-width: 1200px;
}

.company-image-wrapper {
	display: none;
}

.company-image-wrapper img {
	border-radius: 10px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	height: auto;
	width: 100%;
}

.company-info {
	display: flex;
	flex-basis: 100%;
	flex-direction: column;
	gap: 30px;
	max-width: 100%;
	padding: 20px 0;
	text-align: left;
}

.company-info-item {
	align-items: flex-start;
	border-bottom: 2px solid black;
	display: flex;
	justify-content: space-between;
	padding-bottom: 15px;
}

.info-label {
	color: black;
	flex-basis: 30%;
	font-size: 18px;
	font-weight: normal;
	min-width: 100px;
	padding-right: 20px;
}

.info-text {
	color: black;
	flex-basis: 70%;
	font-size: 18px;
}

/* Access MAP */
.access-map-wrapper {
	margin-top: 40px;
	width: 100%;
}

.access-map-heading {
	color: #1b4d90; /* Companyの見出しと同じ青色 */
	font-size: 20px;
	margin-bottom: 15px;
	border-left: 5px solid #1b4d90;
	padding-left: 15px;
}

.map-container {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%; /* 16:9のアスペクト比を維持 */
	overflow: hidden;
	border-radius: 10px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

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

/* 社名の由来 追加スタイル */
.company-origin-wrapper {
	margin-top: 60px;
	width: 100%;
}

/* Access MAPと同じ見出しデザイン */
.company-origin-heading {
	color: #1b4d90;
	font-size: 20px;
	margin-bottom: 20px;
	border-left: 5px solid #1b4d90;
	padding-left: 15px;
}

.company-origin-text p {
	color: #333;
	font-size: 20px;
	line-height: 1.8;
	margin-bottom: 20px;
	text-align: justify; /* 両端揃えできれいに見せる */
}

.company-origin-text p:last-child {
	margin-bottom: 0;
}

/* --- Memberセクション --- */
.member-section {
	background-color: #ffffff;
	margin: 0 auto 30px auto;
	max-width: 1200px;
	padding: 0 20px;
	text-align: left;
}

.member-heading-wrapper {
	margin: 0 auto 50px auto;
	max-width: 1200px;
}

.member-heading {
	color: #1b4d90;
	font-size: 72px;
	margin-bottom: -5px;
}

.member-subheading {
	color: #1b4d90;
	font-size: 28px;
}

.member-content-wrapper {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
	margin: 0 auto;
	max-width: 1200px;
}

.member-image-wrapper {
	flex-basis: 40%;
	max-width: 40%;
}

.member-image-wrapper img {
	border-radius: 10px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	height: auto;
	width: 100%;
}

.member-info-wrapper {
	flex-basis: 60%;
	max-width: 60%;
	text-align: left;
}

.member-position {
	color: black;
	display: block;
	font-size: 20px;
	font-weight: normal;
	margin-bottom: 5px;
}

.member-name {
	color: black;
	display: block;
	font-size: 20px;
	font-weight: normal;
	margin-bottom: 5px;
}

.member-bio {
	color: #000000;
	font-size: 18px;
	line-height: 1.6;
}

.member-item {
    display: flex; 
    align-items: center; 
    gap: 20px;
    width: 100%; 
    margin-bottom: 20px; 
}

.member-item .member-image-wrapper {
    flex-basis: 30%; 
    max-width: 30%;
}

.member-item .member-info-wrapper {
    flex-basis: 70%; 
    max-width: 70%;
}

/* --- Newsセクション --- */

.news-section {
	background-color: white;
	margin: 0 auto;
	max-width: 100%;
	padding: 80px 20px;
	text-align: left;
}

.news-heading-wrapper {
	margin: 0 auto 50px auto;
	max-width: 1200px;
}

#news-section .news-heading-wrapper h1.news-heading {
	/* PCサイズ: Companyセクションと同じ 72px に統一 */
	color: #1b4d90;
	font-size: 72px;
	margin-bottom: -5px;
}

#news-section .news-heading-wrapper h2.news-subheading {
	/* PCサイズ: Companyセクションと同じ 28px に統一 */
	color: #1b4d90;
	font-size: 28px;
}

.news-list {
	list-style: none;
	margin: 0 auto 30px;
	padding: 0;
	max-width: 1000px;
}

.news-item {
	border-bottom: 1px solid #ccc;
	transition: background-color 0.3s;
}

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

.news-item:hover {
	background-color: #e9e9e9;
}

.news-link {
	align-items: center;
	color: black;
	display: flex;
	padding: 20px 0;
	text-decoration: none;
}

.news-meta {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 15px;
	width: 250px; /* PCでの日付とカテゴリの幅を固定 */
}

.news-date {
	font-size: 18px;
	color: #666;
	font-weight: 400;
}

.news-category {
	background-color: #1b4d90;
	border-radius: 4px;
	color: white;
	display: inline-block;
	font-size: 14px; 
	padding: 4px 8px;
	text-transform: uppercase;
}

.news-title {
	flex-grow: 1;
	font-size: 20px; 
	line-height: 1.5;
	margin: 0 20px;
	font-weight: 400;
}

.news-arrow {
	color: #de2939;
	flex-shrink: 0;
	font-size: 20px;
	margin-right: 10px;
}

/* カテゴリごとの配色（CMSを意識して用意） */
.category-ir {
	background-color: #1b4d90; /* オレンジ系 */
}

.category-media {
	background-color: #1b4d90; /* 緑系 */
}

.category-press {
	background-color: #1b4d90; /* 青系 */
}

/* view all ボタン */
.view-all-news-button-wrapper {
	display: none;
	text-align: center;
	margin-top: 40px;
}

.view-all-news-button {
	align-items: center;
	background-color: #de2939;
	border-radius: 25px;
	color: white;
	display: inline-flex;
	font-size: 16px;
	font-weight: bold;
	height: 50px;
	justify-content: center;
	padding: 0 40px;
	text-decoration: none;
	transition: background-color 0.3s, opacity 0.3s;
}

.view-all-news-button:hover {
	background-color: #b71c1c; /* 濃い赤 */
}

/* --- Contactセクション --- */
.contact-section {
    position: relative; /* 背景画像の基準 */
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh; /* 最小高さを確保（既存の60vhを維持） */
    padding: 20px 20px; /* 上下左右のパディングでコンテンツの余白を確保 */
    text-align: center;
    color: white; /* テキストの色を白に保つ */
    overflow: hidden; /* 背景画像がはみ出さないように */
}

/* 背景画像コンテナと画像自体のスタイル */
.contact-section .background-image-container,
.contact-section .background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1; /* コンテンツの下に配置 */
    filter: brightness(85%); /* 既存の明るさ調整を維持 */
}

/* メインコンテンツラッパー */
.contact-content-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    max-width: 800px; /* コンテンツの最大幅を適度に設定 */
    width: 100%;
    padding: 20px 0; /* 内側の上下パディングを調整（セクション自体のpaddingで十分な場合もあるため控えめに） */
    z-index: 1; /* コンテンツを背景の上に配置 */
}

.contact-heading-group {
    margin-bottom: 10px;
    padding: 0 10px; /* スマホで端が切れないように */
}

.contact-text-and-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px; /* テキストとボタンの間の隙間を調整 */
    padding: 0 10px; /* スマホで端が切れないように */
}

/* 既存のテキスト・ボタンのスタイルを維持 */
.contact-heading {
    font-size: 40px;
    margin-bottom: 10px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.contact-subheading {
    font-size: 40px;
    line-height: 1.4;
    margin-bottom: 0px; /* ここを0にして、heading-groupのmargin-bottomに任せる */
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.contact-text {
    font-size: 20px;
    font-weight: normal;
    line-height: 1.6;
    text-align: center;
    margin-bottom: 0; /* ボタンとの隙間はgapで制御 */
}

.contact-button {
    align-items: center;
    background-color: #de2939;
    border: none;
    border-radius: 25px;
    color: white;
    display: inline-flex;
    font-size: 15px;
    font-weight: bold;
    height: 50px;
    justify-content: center;
    margin-top: 0;
    text-decoration: none;
    transition: background-color 0.3s, color 0.3s;
    width: 300px;
    /* 既存のホバー効果を維持 */
}

.contact-button:hover {
    background-color: white;
    color: #de2939;
}


/* ==================================================== */
/* 4. お問い合わせフォーム */
/* ==================================================== */
.contact-form-page {
	background-color: #ffffff;
	padding: 0px 0px;
	text-align: center;
}

.contact-form-heading-wrapper {
	margin-bottom: 0;
}

.contact-page-heading {
	color: #1b4d90;
	font-size: 24px;
	margin-bottom: 0;
	margin-top: 40px;
}

.contact-page-subheading {
	color: #1b4d90;
	font-size: 60px;
	margin-top: -30px;
	margin-bottom: 0;
}

.contact-form-container {
	background-color: #f8f8f8;
	border-radius: 20px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	margin: auto auto;
	margin-top: -30px;
	max-width: 1200px;
	padding: 20px;
	text-align: left;
}

.contact-form-info-box {
	margin-top: -30px;
	margin-bottom: 0;
}

.info-text-center {
	color: #333;
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 20px;
	text-align: center;
}

.contact-form {
	display: flex;
	flex-direction: column;
	padding: 20px;
}

.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px; 
	padding: 10px;
}

.form-group label {
	color: black;
	font-weight: normal;
	margin: 0;
}

.required-symbol {
	color: #de2939;
	font-size: 16px;
	margin-left: 5px;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 16px;
	padding: 12px;
	transition: border-color 0.3s;
	width: 100%;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
	border-color: #de2939;
	outline: none;
}

.checkbox-group {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.checkbox-group input[type="checkbox"] {
	flex-shrink: 0;
	margin: 0;
}

.checkbox-group label {
	line-height: 1.5;
	margin: 0;
}

.privacy-text {
	align-items: center;
	display: flex;
	gap: 0;
	white-space: nowrap;
}

.checkbox-group .checkbox-label {
	align-items: center;
	display: flex;
	line-height: 1.5;
}

.privacy-link {
	color: black;
	font-size: 16px;
	margin-bottom: 10px;
	margin-right: 0;
	text-decoration: underline;
}

.submit-button {
	align-self: center;
	background-color: white;
	border: none;
	border-radius: 20px;
	color: #de2939;
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	height: 40px;
	margin-top: 20px;
	padding: 5px 50px;
	transition: background-color 0.3s;
	width: 300px;
}

.submit-button:hover {
	background-color: #de2939;
	color: white;
}

/* ==================================================== */
/* 5. フッターセクション */
/* ==================================================== */
footer {
	background-color: white;
	border-top: 1px solid #ccc;
	color: #333;
	padding: 20px;
}

.footer-container {
	align-items: flex-start;
	display: flex;
	gap: 50px;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 1200px;
}

.footer-logo-area {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
}

.footer-logo {
	height: 60px;
	margin-bottom: 10px;
}

.footer-address {
	color: #666;
	font-size: 14px;
	text-align: left;
}

.footer-nav ul {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.footer-nav li {
	border-bottom: 1px solid #ccc;
}

.footer-nav a {
	align-items: center;
	color: #333;
	display: flex;
	font-size: 16px;
	font-weight: normal;
	justify-content: space-between;
	padding: 15px 0;
	text-decoration: none;
	width: 100%;
}

.nav-text {
	display: block;
	min-width: 200px;
}

.nav-arrow {
	align-self: center;
	display: inline-block;
	font-size: 18px;
	transition: transform 0.3s ease-in-out;
}

.footer-nav a:hover {
	color: #de2329;
}

.footer-nav a:hover .nav-arrow {
	transform: translateX(5px);
}

.copyright {
    text-align: center;
    color: #666;
    font-size: 9px;
    padding-top: 10px; /* 上部に余白を追加 */
    border-top: 1px solid #ccc; /* 上部に線を引く */
    margin-top: 10px; /* フッターコンテンツとの間に余白を追加 */
}

/* PC画面用の下線色変更 */
@media screen and (min-width: 767px) {
	.style-nav ul li:not(.contact-button-wrapper):not(.language-switcher-item) a::after {
	background-color: black;
	bottom: 0;
	content: '';
	height: 2px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	width: 0;
}
	
}

.footer-nav ul {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end; /* 右寄せに変更 */
	width: 100%;
}

.footer-nav li {
	border-bottom: none;
	width: calc(50% - 5px);
}

.footer-nav a {
	align-items: center;
	color: #333;
	display: flex;
	font-size: 16px;
	font-weight: normal;
	justify-content: flex-end; /* 右寄せに変更 */
	padding: 15px 0;
	text-decoration: none;
	width: 100%;
}

.nav-text {
	display: block;
	min-width: unset; /* 最小幅を解除 */
	margin-right: 15px; /* テキストと矢印の間に少し余白 */
}

/* ==================================================== */
/* 6. メディアクエリ (スマホ向けスタイル) */
/* ==================================================== */
@media screen and (max-width: 766px) {
	/* --- 言語切り替えボタン (スマホ) --- */
	.language-switcher-item {
		display: none;
	}
	
	/* --- 全体設定 --- */
	.main-container {
		padding: 0 10px;
	}
	
	/* --- ヘッダー・ナビゲーション (スマホ向け) --- */
	
	.header,
    .header-inner {
        background-color: transparent; /* 背景色を透明に設定 */
        box-shadow: none; /* もし影があれば消す（背景を完全に無くすため） */
    }
	
	.header-nav-inner-pc {
		display: none;
	}

	.header-nav-inner-sp {
		align-items: flex-start;
		display: flex;
		flex-direction: column;
		height: 100%;
		padding-top: 20px;
		width: 100%;
	}
	
	.header-nav {
		background-color: #de2939;
		border-radius: 20px 0 0 20px;
		box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
		height: 100vh;
		max-width: 400px;
		padding: 20px 30px;
		position: fixed;
		right: -100%;
		top: 0;
		transition: right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
		width: 80%;
		z-index: 998;
	}
	
	.header-nav.is-active {
		right: 0;
	}

	.header-logo-sp {
		align-self: flex-start;
		display: block;
		margin-bottom: 10px;
	}
	
	.header-logo-sp img {
		height: 60px;
		width: auto;
	}
	
	.header-nav-menus-sp {
		align-items: flex-start;
		display: flex;
		flex-wrap: wrap;
		gap: 5px;
		justify-content: flex-start;
		margin-bottom: 20px;
	}

	.header-nav-menus-sp .nav-column {
		display: flex;
		flex-direction: column;
		margin-bottom: 0;
		width: calc(50% - 10px);
	}

	.header-nav-menus-sp .nav-column:nth-child(3) {
		display: flex;
		flex-direction: column;
		width: 100%;
	}

	.header-nav-menus-sp ul {
		align-items: flex-start;
		display: flex;
		flex-direction: column;
		height: 100%;
		list-style: none;
		margin: 0;
		padding: 0;
		width: 100%;
	}
	
	.header-nav-menus-sp ul li {
		align-items: center;
		display: flex;
		flex: 1;
		width: 100%;
	}
	
	.header-nav-menus-sp ul li a {
		width: 100%;
	}
	
	.header-nav-menus-sp ul li:not(:last-child) {
		margin-bottom: 0;
	}
	
	.header-nav-menus-sp a {
		color: white !important;
		font-size: 12px;
		font-weight: bold;
		text-decoration: none;
	}

	.contact-area-sp {
		align-items: center;
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-top: 0;
		width: 100%;
	}

	.contact-button-sp {
		background-color: transparent;
		border: 1px solid white;
		border-radius: 25px;
		color: white;
		display: inline-block;
		font-size: 14px;
		font-weight: normal;
		max-width: 200px;
		padding: 5px 0;
		text-align: center;
		text-decoration: none;
		transition: background-color 0.3s, color 0.3s;
		width: 100%;
	}

	.contact-button-sp:hover {
		background-color: white;
		color: #de2939;
	}

	.privacy-policy-link-sp {
		align-self: center;
		color: white;
		font-size: 14px;
		text-decoration: none;
		transition: color 0.3s;
	}

	.privacy-policy-link-sp:hover {
		color: #ccc;
	}
	
	.header-nav-menus-sp a::after {
		content: none;
	}
	
	.hamburger-btn {
		display: flex;
		z-index: 999;
	}
	
	.header-nav {
		display: flex;
	}
	
	.header-nav ul {
		display: flex;
	}
	
	/* --- メインビジュアル (スマホ向け) --- */
	.video-container {
		height: 60vh;
	}
	
	.bg-video {
		height: 100%;
		width: auto;
	}

	.video-overlay h1 {
		font-size: 24px;
	}

	.video-overlay p {
		font-size: 14px;
	}

	/* --- About usセクション (スマホ向け) --- */
	
.about-us-container {
		flex-direction: column;
		gap: 10px;
		max-width: 90%;
	    max-height: 550px;
	}
	
	.about-us-text,
	.about-us-images-wrapper {
		flex-basis: 100%;
		max-width: 100%;
		margin-top: 0px;
		padding-left: 0;
		text-align: center;
	}

	about-us-images {
		display: block; /* flexboxを解除 */
		height: auto; /* 高さを自動調整 */
		margin: 20px auto 0; /* 中央寄せ */
		position: relative;
		width: 100%;
	}

	.about-us-images img {
		position: static; /* absoluteを解除 */
		width: 100%; /* 画面幅いっぱいに表示 */
		height: auto; /* 縦横比を維持 */
		border-radius: 8px;
		box-shadow: 0 4px 8px rgba(0,0,0,0.2);
		opacity: 0;
	}

	.about-us-images picture:nth-child(2) img {
		display: block; /* 常に表示 */
		top: auto;
		left: auto;
		transform: none; /* transformを解除 */
		z-index: 3;
	}

	.about-us-images picture:nth-child(1) img,
	.about-us-images picture:nth-child(3) img {
		display: none; /* 2枚目と3枚目を非表示 */
	}

	.about-heading {
		margin-left: 0px;
		font-size: 28px;
	}

	.about-subheading {
		font-size: 20px;
		text-align: left;
		margin: 0px;
	}

	.about-text {
		font-size: 28px;
	}
	
	.about-text-content {
		margin-top: 10px;
		font-size: 14px;
		text-align: left;
	}
	
	/* problem-solution section (スマホ向け) */
	.problem-solution-item{
		padding: 10px;
		margin: 0px;
	}
	.problem-solution-item-heading {
		font-size: 20px;
		font-weight: normal;
		margin-bottom: 0;
		text-align: left;
	}

	.problem-solution-item-text {
		font-size: 14px;
		text-align: left;
		margin: 0px;
	}

	/* technology-detail-section (スマホ向け) */
	 .technology-detail-section {
        background-image: none;
		margin-bottom: 0px;
    }
	
	.section-heading {
		font-size: 16px;
		margin-top: 10px;
		padding: 0;
	}

	.section-subheading {
		font-size: 14px;
		margin-top: 0px;
		margin-bottom: 0px;
		padding: 0;
	}
	
	.technology-item-heading {
	color: #0e8668;
	font-size: 28px;
	margin-left: 0px;
	margin-bottom: 0px;
	text-align: left;
}

.technology-item-subheading {
	color: #0e8668;
	font-size: 28px;
	margin-bottom: 100px;
	margin-left: 0px;
	text-align: left;
}

	.technology-item {
		flex-basis: 100%;
		max-width: 100%;
	}

	
	.technology-item-container.photo-container {
		padding: 10px 0;
		text-align: center;
	}

	.technology-item-container.photo-container img {
		border-radius: 12px;
		height: auto;
		max-width: 150px;
		width: 100%;
	}
	
	/* technology-photo-section (スマホ向け) */
	.photo-grid {
		grid-template-columns: 1fr;
		margin-top: -40px;
		margin-bottom: 10px;
		padding-bottom: 0px;
	}

	.photo-caption {
		font-size: 16px;
		font-weight: normal;
		margin-top: -10px;
	}
	
	.tech-photo {
		max-width: 300px;
		border-radius: 8px;
	}
	
	/* technology-detail-section2  (スマホ向け) */
	.tech-detail-flex-container-pc {
		display: none;
		margin: 0;
		padding: 0;
	}

	.tech-detail-flex-container-sp {
		align-items: center;
		display: flex;
		flex-direction: column;
	}

	.tech-detail-image-wrapper {
		flex-basis: 100%;
		justify-content: center;
	}
	
    .tech-detail-flex-container-sp .tech-detail-image-wrapper img {
        width: 80%;
        max-width: 250px;
        display: block;
        margin: 0 auto;
    }
	
	    .tech-detail-flex-container-sp .tech-detail-video {
        width: 80%;
        max-width: 250px; 
		border-radius: 8px;
        display: block;
        margin: 0 auto;
    }
	
	.tech-detail-photo {
		height: auto;
		max-width: 100px;
	}

	.tech-detail-text-wrapper {
		flex-basis: 100%;
	}

	.tech-detail-heading {
		font-size: 16px;
		text-align: center;
		margin-top: 0px;
		margin-bottom: 5px;
	}

	.tech-detail-text {
		font-size: 14px;
		margin-top: 5px;
		text-align: left;
	}
	
	.tech-detail-video {
		height: auto;
		max-width: 300px;
		width: 100%;
	}
	
	/* technology-detail-section3  (スマホ向け) */
	.technology-detail-section3 .tech-detail-flex-container-pc {
		display: none;
	}

	.technology-detail-section3 .tech-detail-flex-container-sp {
		align-items: center;
		display: flex;
		flex-direction: column;
	}

	.technology-detail-section3 .tech-detail-image-wrapper {
		flex-basis: 100%;
		justify-content: center;
	}
	
	.technology-detail-section3 .tech-detail-photo {
		height: auto;
		max-width: 300px;
		width: 100%;
		margin-bottom: 10px;
	}
	
	.technology-detail-section3 .tech-detail-text-wrapper {
		flex-basis: 100%;
		text-align: left;
	}

	.technology-detail-section3 .tech-detail-heading {
		font-size: 16px;
		text-align: center;
		margin-top: 10px;
	}

	.technology-detail-section3 .tech-detail-text {
		font-size: 14px;
		text-align: left;
		margin-top: 5px;
	}
	
	/* --- cavitation plasma machine photo section (スマホ向け) --- */
	.cavitation-photo-section {
		margin: 0 auto;
		overflow: hidden;
		padding: 0px 0;
		width: 100%;
	}
	
	.cavitation-photo-heading {
		color: black;
		font-size: 16px;
		margin-top: 10px;
		text-align: center;
	}
	
	.cavitation-photo {
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: 450px;
	border-radius: 8px;
	object-fit: cover;
	width: 100%;
	margin-bottom: 0px;
}
	
	/* --- Technologyセクション (スマホ向け) --- */
	.technology-section {
		height: auto;
		margin-top: 40px;
		margin-bottom: 40px;
		padding: 0px 0px;
	}
	
	.technology-content h1 {
		font-size: 20px;
	}

	.technology-content h2 {
		font-size: 14px;
	}
	
	.view-more-button {
	align-items: center;
	background-color: #de2939;
	border: 1px solid none;
	border-radius: 20px;
	color: white;
	display: none;/* --- 戻す際はinline flex */
	font-size: 14px;
	font-weight: bold;
	height: 40px;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.3s, color 0.3s;
	width: 150px;
}
	
	/* --- Sterilization Effects Section (スマホ向け) --- */
	.sterilization-heading {
		font-size: 16px;
	}
	
	.sterilization-text {
		font-size: 14px;
	}

	.sterilization-text .info-text {
  vertical-align: sub;
  font-size: smaller;
}
	
	.sterilization-subheading {
		font-size: 16px;
		margin-bottom: 5px;
	}
	
	.sterilization-photo-grid {
		flex-direction: column;
		gap: 10px;
	}
	
	.sterilization-category-wrapper {
		flex-basis: 100%;
		flex-direction: column;
		gap: 5px;
		max-width: 100%;
	}

	.sterilization-photo-item-group {
		align-items: center;
		display: flex;
		gap: 10px;
		justify-content: center;
		width: 100%;
	}

	.sterilization-photo-item {
		flex-basis: 100%;
		max-width: 100%;
	}
	
	.sterilization-photo {
		border-radius: 8px;
		display: block;
		height: auto;
		margin: 0 auto;
		max-width: 300px;
		object-fit: cover;
		width: 100%;
	}
	
	/* --- Businessセクション (スマホ向け) --- */
	.business-content-wrapper {
		flex-direction: column;
		gap: 10px;
		margin-bottom: 20px;
	}

	.business-heading-wrapper {
	margin: 0px;
	max-width: 1200px;
}
	
	.business-image-wrapper,
	.business-text-wrapper {
		flex-basis: 100%;
		max-width: 100%;
		margin: 0px;
		padding: 0px;
	}
	
	.business-image-wrapper {
		order: 2;
	}

	.business-text-wrapper {
		order: 1;
	}

	.business-text-box {
		padding: 20px;
	}

	.business-heading {
		font-size: 28px;
		margin: 0px;
		padding: 0px;
	}

	.business-subheading {
		font-size: 20px;
		margin-bottom: 10px;
		padding: 0px;
	}
	
	.business-text-heading-green {
		font-size: 18px;
	}

	.business-text-subheading {
		font-size: 16px;
	}

	.business-text-content {
		font-size: 14px;
	}
	
	.business-view-more {
		display: none;
		margin: 20px auto 0;
	}
	
	/* --- Companyセクション (スマホ向け) --- */	
	.company-content-wrapper {
		flex-direction: column;
		gap: 20px;
		padding: 0;
	}
	
	.company-image-wrapper {
		align-items: center;
		display: flex;
		flex-basis: 100%;
		justify-content: center;
		max-width: 100%;
	}
	
	.company-info {
		flex-basis: 100%;
		gap: 20px;
		margin-top: -30px;
		max-width: 100%;
		order: 1;
		padding: 0;
	}
	
	.company-image-wrapper {
		order: 2;
	}
	
	.company-image-wrapper img {
		width: 100%;
		max-width: 300px;
	}
	
	.company-list {
		padding: 0 20px;
	}

	.company-list li {
		flex-direction: column;
		margin-bottom: 15px;
	}
	
	.company-info-item {
		align-items: center;
		border-bottom: 2px solid black;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		padding-bottom: 15px;
	}

	.info-label {
		flex-basis: auto;
		font-size: 14px;
		font-weight: normal;
		min-width: auto;
		padding-right: 20px;
		width: 200px;
	}

	.info-text {
		flex-basis: auto;
		font-size: 14px;
		text-align: left;
		width: calc(100% - 100px);
	}
	
	.company-heading {
		font-size: 28px;
	}

	.company-subheading {
		font-size: 20px;
	}
	
	/* --- access map (スマホ向け) --- */	
	.access-map-wrapper {
		margin-top: 30px;
		padding: 0 20px; /* スマホ時の左右余白 */
	}
	
	.map-container {
		padding-bottom: 75%; /* スマホでは少し縦長にして見やすくする（4:3比率） */
	}
	
	/* --- company-origin (スマホ向け) --- */
	.company-origin-wrapper {
		margin-top: 40px;
		padding: 0 20px; /* スマホ時の左右余白 */
	}

	.company-origin-text p {
		font-size: 14px;
		text-align: left; /* スマホでは左揃えに戻す */
	}
	
	
	/* --- Memberセクション (スマホ向け) --- */
	.member-section {
		margin: 0;
		padding: 30px 20px;
	}

	.member-heading-wrapper {
		margin-bottom: 20px;
		margin-left: 0;
		padding: 0;
	}

	.member-heading {
		font-size: 28px;
	}

	.member-subheading {
		font-size: 20px;
	}
	
	.member-content-wrapper {
		flex-direction: column;
		gap: 0px;
	}

	.member-image-wrapper,
	.member-info-wrapper {
		align-items: center;
		display: flex;
		flex-basis: 100%;
		justify-content: center;
		max-width: 100%;
	}

	.member-image-wrapper img {
		width: 100%;
		max-width: 300px;
		margin-bottom: 0px;
	}

	.member-info-wrapper {
		padding: 0 20px;
		text-align: left;
		margin-top: 0px;
	}

	.member-info {
		align-items: flex-start;
		display: flex;
		flex-direction: column;
		margin-top: 0px;
	}
	
	.member-position {
		font-size: 14px;
	}

	.member-name {
		font-size: 14px;
	}

	.member-bio {
		font-size: 14px;
	}
	
	.member-item {
        flex-direction: column; 
        align-items: flex-start; 
        gap: 10px;
    }

    .member-item .member-image-wrapper,
    .member-item .member-info-wrapper {
        flex-basis: 100%;
        max-width: 100%;
    }
    
    .member-image-wrapper img {
        margin: 0;
    }

	/* --- Newsセクション (スマホ向け) --- */
	.news-section {
		padding: 30px 10px; /* 上下のパディングを調整し、左右は.main-containerに任せる */
	}

	.news-heading-wrapper {
		margin: 0 auto 20px; /* 下の余白を調整 */
		padding: 0 10px; /* 左右のパディングを調整 */
	}

	/* headingのスタイルをCompanyセクションと合わせて調整 */
	#news-section .news-heading-wrapper h1.news-heading {
		font-size: 28px; /* PCの72pxから縮小 */
		margin-bottom: -5px;
	}

	#news-section .news-heading-wrapper h2.news-subheading {
		font-size: 20px; /* PCの28pxから縮小 */
	}

	.news-list {
		margin-bottom: 20px;
		max-width: 100%; /* 最大幅を調整 */
		padding: 0 10px;
	}

	.news-item {
		/* border-bottom: 1px solid #ccc; は既存のまま */
	}

	.news-item:hover {
		background-color: transparent; /* スマホではホバー効果を無効化（誤操作防止） */
	}

	.news-link {
		flex-direction: column; /* 縦並びにする */
		align-items: flex-start; /* 左寄せ */
		padding: 15px 0; /* 上下のパディングを調整 */
	}

	.news-meta {
		width: 100%; /* 幅を100%に */
		gap: 10px; /* 日付とカテゴリの隙間を調整 */
		margin-bottom: 5px; /* タイトルとの間に隙間 */
	}

	.news-date {
		font-size: 14px; /* サイズを縮小 */
		color: #999; /* 色を薄くして日付を強調しない */
	}

	.news-category {
		font-size: 12px; /* サイズを縮小 */
		padding: 3px 6px; /* パディングを調整 */
	}

	.news-title {
		font-size: 16px; /* サイズを縮小 */
		line-height: 1.5;
		margin: 0; /* 左右マージンを解除 */
		width: 100%;
		order: 3; /* タイトルを日付・カテゴリの下に配置 */
	}

	.news-arrow {
		display: none; /* スマホでは矢印を非表示にすることが多いが、今回は残す */
		font-size: 16px;
		margin-right: 0;
		position: absolute; /* タイトル行の右端に配置するためにabsolute化 */
		right: 10px; /* .news-linkからの相対位置 */
		top: 50%;
		transform: translateY(-50%);
	}

	/* .news-linkを相対位置の基準にするため追加（競合の可能性が低いためこの位置に記述） */
	.news-item {
		position: relative; 
	}
	
	.news-link {
		position: relative; /* 矢印の配置基準 */
		padding-right: 30px; /* 矢印のスペースを確保 */
	}
	
	.news-arrow {
		display: block; /* 矢印を再表示 */
		position: absolute;
		right: 10px;
		top: 50%;
		transform: translateY(-50%);
		margin-right: 0;
	}
	
	/* view all ボタン (スマホでは表示を推奨) */
	.view-all-news-button-wrapper {
		display: none; 
		margin-top: 20px;
	}

	.view-all-news-button {
		font-size: 14px;
		height: 40px;
		border-radius: 20px;
		padding: 0 30px;
	}

	 /* --- Contactセクション (スマホ向け) --- */
    .contact-section {
        min-height: 50vh; /* スマホでは高さを少し抑える */
        padding: 20px 10px; /* 上下のパディングを調整 */
    }

    .contact-content-wrapper {
        padding: 0;
    }

    .contact-heading-group {
        margin-bottom: 10px;
    }
    
    .contact-text-and-button {
        gap: 10px; /* スマホでの隙間を調整 */
    }

    .contact-heading {
        font-size: 28px;
        padding: 0;
        margin: 0;
    }

    .contact-subheading {
        font-size: 20px;
        padding: 0;
        margin: 0;
    }

    .contact-text {
        font-size: 14px;
        line-height: 1.6;
        text-align: center;
        padding: 0;
        margin: 0;
    }
    
    .contact-button {
        font-size: 14px;
        height: 40px;
        border-radius: 20px;
        width: 200px;
        margin: 0;
    }
	
	.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 10px;
}
	
	.form-group label {
		font-size: 14px;
		margin-bottom: 5px;
	}
	
	.required-symbol {
	color: #de2939;
	font-size: 14px;
	margin-left: 5px;
}
	
	/* --- フッター (スマホ向け) --- */
    .footer-container {
        flex-direction: column; 
        align-items: center; 
        gap: 20px; 
        text-align: center; 
    }

    /* フッターロゴのエリア */
    .footer-logo-area {
        align-items: center; 
    }

    /* フッターナビゲーションリスト */
    .footer-nav ul {
        width: 100%;
        align-items: center;
        flex-direction: column;
        gap: 0;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .footer-nav li {
        border-bottom: 1px solid #ccc;
        width: 100%;
    }

    .footer-nav li:last-child {
        border-bottom: none; 
    }

    .footer-nav a {
        align-items: center;
        display: flex;
        font-size: 14px;
        justify-content: space-between; 
        padding: 8px 10px; 
        width: 100%;
    }

    .nav-text {
        min-width: unset; /* 不要な最小幅を削除 */
    }

    .nav-arrow {
        font-size: 14px;
    }
	
	.copyright {
        padding-top: 5px;
        margin-top: 5px;
        font-size: 9px;
    }
}
	/* --- お問い合わせフォーム (スマホ向け) --- */
	.contact-form-page {
		padding: 30px;
	}

	.contact-form-heading-wrapper {
		margin-bottom: 5px;
	}
	
	.contact-page-heading {
		font-size: 20px;
	}

	.contact-page-subheading {
		font-size: 48px;
	}
	
	.info-text-center {
		font-size: 14px;
		padding-left: 0;
		text-align: center;
	}
	
	.contact-form-info-box {
		margin-bottom: -50px;
		padding: 0;
	}
	
	  .form-group label,
	  .form-group select,
	  .privacy-link { 
		font-size: 14px;
		margin-bottom: 10px; 
	  }
	
	  .checkbox-group {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }
  
  .checkbox-group input[type="checkbox"] {
    flex-shrink: 0;
    margin: 0;
  }
  
  .checkbox-group label {
    line-height: 1.5;
    margin: 0;
  }
  
  .privacy-text {
    align-items: center; 
    display: flex;
    gap: 0;
    white-space: nowrap;
  }
  
  .checkbox-group .checkbox-label {
    align-items: center;
    display: flex;
    line-height: 1.5;
  }
  
  .privacy-link {
    color: black;
    font-size: 14px; 
    margin-right: 0;
    text-decoration: underline;
  }

  .form-group label {
    font-size: 14px;
    margin-bottom: 10px;
  }
	
	
	#inquiry-type option:disabled {
    color: #999; /* 文字色をグレーにして目立たなくする */
    display: none; /* ドロップダウンリストから非表示にする */
	}

	/* プルダウンの最初の要素にスタイルを適用 */
	#inquiry-type option:first-child {
		color: #666; /* 選択肢の色を少し薄くする */
	}
	
	/* --- プライバシーポリシー (スマホ向け) --- */
	.privacy-policy-page {
		padding: 30px;
	}
	
	.privacy-policy-heading-wrapper {
		margin-bottom: 5px;
	}
	
	.privacy-page-heading {
		margin-top: 90px; 
		font-size: 20px;
	}

	.privacy-page-subheading {
		margin-top: 60px;
		margin-bottom: -40px;
		font-size: 30px;
	}
	
	.privacy-policy-text-box h3 {
		font-size: 14px;
	}
	
	/* --- Thanksページ (スマホ向け)--- */
	.thanks-container {
		align-items: center;
		background-color: white;
		border-radius: 20px;
		display: flex;
		flex-direction: column;
		gap: 15px;
		justify-content: center;
		margin: 0 auto;
		max-width: 800px;
		padding: 40px;
		text-align: center;
	}

	.thanks-text-box {
		margin-bottom: 0;
	}

	.thanks-page-heading {
		color: #1b4d90;
		font-size: 42px;
		margin-bottom: 0;
		margin-top: 20px;
	}

	.thanks-page-subheading {
		color: #1b4d90;
		font-size: 60px;
		margin-bottom: -30px;
	}
	.thanks-message {
		color: #1b4d90;
		font-size: 20px;
		font-weight: bold;
		margin-bottom: 5px;
	}

	.thanks-detail-text {
		color: #333;
		font-size: 14px;
		line-height: 1.6;
	}


	/* --- Errorページ (スマホ向け) --- */
	.error-container {
		padding: 0;
	}

	.error-message {
		font-size: 24px;
	}
	
	/* --- 404ページ (スマホ向け) --- */
	.not-found-container {
		padding: 30px;
	}
	
	.not-found-subheading {
		font-size: 24px;
	}
	
	.not-found-heading {
		font-size: 50px;
	}


/* ==================================================== */
/* 7. プライバシーポリシーセクション */
/* ==================================================== */
.privacy-policy-page {
	background-color: #ffffff;
	padding: 100px 20px 80px;
	text-align: left;
}

.privacy-policy-heading-wrapper {
	margin-bottom: 50px;
	text-align: center;
}

.privacy-page-heading {
	color: #1b4d90;
	font-size: 20px;
	margin-bottom: 5px;
	margin-top: 60px;
}

.privacy-page-subheading {
	color: #1b4d90;
	font-size: 48px;
	font-weight: bold;
	margin-top: -20px;
}

.privacy-policy-content-container {
	margin: -20px auto 0 auto;
	max-width: 800px;
}

.privacy-policy-text-box h3 {
	color: black;
	font-size: 18px;
	font-weight: normal;
	margin-bottom: 5px;
	margin-top: 20px;
}

.privacy-intro-text {
	margin-bottom: 10px;
}

.privacy-policy-text-box p {
	color: #333;
	font-size: 16px;
	line-height: 1.6;
}

.privacy-policy-text-box ul {
	margin-bottom: 20px;
	margin-top: 10px;
	padding-left: 20px;
}

.privacy-policy-text-box li {
	color: #333;
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 5px;
}

/* ==================================================== */
/* 8. Thanksページ */
/* ==================================================== */
.thanks-container {
	align-items: center;
	background-color: white;
	border-radius: 20px;
	display: flex;
	flex-direction: column;
	gap: 15px;
	justify-content: center;
	margin: 0 auto;
	max-width: 800px;
	padding: 0;
	text-align: center;
}

.thanks-page-heading {
	color: #1b4d90;
	font-size: 42px;
	margin-top: 60px;
	margin-bottom: -30px;
}

.thanks-page-subheading {
	color: #1b4d90;
	font-size: 60px;
	margin-bottom: 0;
}

.thanks-message {
	color: #1b4d90;
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 5px;
}

.thanks-detail-text {
	color: #333;
	font-size: 14px;
	line-height: 1.6;
}

.thanks-text-box {
	margin-bottom: 20px;
}

.return-button {
	background-color: white;
	border: 1px solid #de2939;
	border-radius: 20px;
	color: #de2929;
	cursor: pointer;
	display: inline-block;
	font-size: 14px;
	font-weight: normal;
	padding: 5px 30px;
	text-decoration: none;
	transition: background-color 0.3s;
	margin-top: 30px;
	margin-bottom: 30px;
}

.return-button:hover {
	background-color: #de2929;
	color: white;
}

/* ==================================================== */
/* 9. Errorページ */
/* ==================================================== */
.error-container {
	background-color: white;
	border-radius: 20px;
	margin: 0 auto;
	max-width: 800px;
	padding: 0;
	text-align: center;
}

.error-form-heading-wrapper {
	margin-top: 40px;
	margin-bottom: 0;
}

.error-page-heading {
	color: #1b4d90;
	font-size: 24px;
	margin-bottom: 0;
	margin-top: 40px;
}

.error-page-subheading {
	color: #1b4d90;
	font-size: 60px;
	margin-top: 0px;
	margin-bottom: 0;
}

.error-text-box {
	margin-bottom: 40px;
}

.error-message {
	color: #de2329;
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 20px;
	text-align: center;
}

.error-detail-text {
	color: #333;
	font-size: 14px;
	line-height: 1.6;
	margin-bottom: 0;
	text-align: center;
}
	
/* ==================================================== */
/* 10. 404ページ */
/* ==================================================== */
.not-found-page {
	background-color: white;
	padding: 60px 10px;
	text-align: center;
}

.not-found-container {
	background-color: white;
	border-radius: 20px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	margin: 0 auto;
	max-width: 400px;
	padding: 0;
	text-align: center;
}

.not-found-heading {
	color: #de2939;
	font-size: 48px;
	font-weight: bold;
	margin-bottom: -30px;
}

.not-found-subheading {
	color: #de2939;
	font-size: 32px;
	margin-bottom: -30px;
}

.not-found-text-box {
	margin-bottom: 5px;
}

.not-found-detail-text {
	color: #333;
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
}
