@charset "utf-8";
/* CSS Document */
.company-page{
	width: 90%;
	margin: 0 auto;}
/* セクション1：会社概要（下だけ） */
.section-company {
	position: relative;
	padding: 100px 25px;
	width: 100%;
	z-index: 15;
	background-color: #f8f8f8;}
/* セクション3：工場設備（上下並行） */
.section-factory {
	position: relative;
	padding: 100px 25px;
	width: 100%;
	z-index: 15;
	background-color: #f8f8f8;}
/* ===== 会社概要表 ===== */
.company-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 40px;}
.company-table th,
.company-table td {
	border-bottom: 1px solid #dfdfdf;
	padding: 16px;
	font-size: 1.5rem;
	vertical-align: top;}
.company-table th {
	width: 25%;
	border-bottom: 1px solid #1c3e75;
	font-weight: 600;}
.company-table ul {
	margin: 0;
	padding-left: 18px;}
.company-table ul li{
	list-style: disc;}
/* ===== map ===== */
.map-access-section {
    max-width: 1000px;
    margin: 60px auto;
    padding: 0 20px;}
.map-flex-container {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: space-between;}
.map-flex-item {
    flex: 1;
    min-width: 300px;}
.map-name {
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 5px;
    color: #000;
    display: flex;
    align-items: center;}
.map-name::before {
    content: "";
    width: 4px;
    height: 1.9em;
    background: #004ca0;
    margin-right: 10px;
    display: inline-block;}
.map-address {
    font-size: 1.5rem;
    color: #666;
    margin-bottom: 15px;}
.map-video-container {
    position: relative;
    width: 100%;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    line-height: 0;}
/* ===== 沿革 ===== */
.history-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 30px;
	font-size: 1.5rem;
	line-height: 1.8;}
.history-table th,
.history-table td {
	border: 1px solid #dfdfdf;
	padding: 14px 16px;
	vertical-align: top;}
.history-table th {
	width: 25%;
	background: #f5f5f5;
	font-weight: 600;
	white-space: nowrap;}
.history-table td {
 	color: #555;}
/* 補足情報 */
.history-supplement,
.history-message {
	margin-top: 20px;
	padding:10px 30px;}
.history-supplement h3,
.history-message h3 {
	font-size: 1.9rem;
	color: #0044aa;
	margin-bottom: 15px;
	border-left: 4px solid #0044aa;
	padding-left: 10px;}
.history-supplement p {
	line-height: 1.8;
	color: #333;
	font-size: 1.5rem;}
.history-message p {
	line-height: 1.8;
	color: #333;
	font-weight: bold;}
/* ===== 工場設備 表 ===== */
.facility-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 40px;
	font-size: 15px;}
.facility-table th,
.facility-table td {
	border: 1px solid #dfdfdf;
	padding: 14px 16px;
	vertical-align: middle;}
.facility-table th {
	background: #fafafa;
	border: 1px solid #dfdfdf;
	font-weight: 600;
	text-align: center;}
.facility-table tbody tr:nth-child(even) {
	background: #fafafa;}
/* ===== 工場マップ ===== */
.map-container {
    max-width: 1000px;
    margin: 0 auto;}
.map-frame {
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 20px 20px 0px rgba(26, 37, 47, 0.05);
    position: relative;}
.map-frame::before {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    width: 40px;
    height: 40px;
    border-top: 4px solid #B22222;
    border-left: 4px solid #B22222;}
.map-box {
    width: 100%;
    line-height: 0;}
.map-box img {
    width: 100%;
    height: auto;
    filter: contrast(1.05);}
.u-hidden-sp {
	display: none;}
/* ===== SP ===== */
@media screen and (max-width: 768px) {
.map-flex-container {
	flex-direction: column;}
.map-flex-item {
	width: 100%;}
.u-hidden-pc {
	display: none;}
.u-hidden-sp {
	display: block;}
.section-factory {
    padding-top: 80px; 
    padding-bottom: 80px;
    padding-left: 20px;
    padding-right: 20px;}
.company-page{
	width: 100%;}
.company-table,
.company-table tr,
.company-table th,
.company-table td {
	display: block;
	width: 100%;}
.company-table td {
	font-size: 1.4rem;
	padding: 16px 10px;}
.company-table th {
	background: rgba(245,245,245,0.5);}
.history-table,
.history-table tbody,
.history-table tr,
.history-table th,
.history-table td {
	display: block;
	width: 100%;}
.history-table tr {
	margin-bottom: 20px;
	border: 1px solid #ddd;}
.history-table th {
	background: #1c3e75;
	color: #fff;
	padding: 10px 14px;}
.history-table td {
	border: none;
	padding: 12px 14px;
	font-size: 1.4rem;}
.history-supplement,
.history-message {
	padding: 20px;
	margin-top: 0;}
.timeline-item {
	flex-direction: column;
	gap: 6px;}
.facility-table thead {
	display: none;}
.facility-table th{
	display: block;
	width: 100%;}
.facility-table,
.facility-table tbody,
.facility-table tr,
.facility-table td {
	display: block;
	width: 100%;}
.facility-table tr {
	margin-bottom: 16px;
	border: 1px solid #dfdfdf;
	padding: 12px;}
.facility-table td {
	border: none;
	padding: 6px 0;
	font-size: 14px;}
.facility-table td:first-child {
    background: #1c3e75;
    color: #fff;
    font-weight: bold;
    text-align: center;}
.facility-table td:before {
    content: attr(data-label);
    float: left;
    font-weight: bold;
    margin-right: 10px;}
.map-frame {
	padding: 15px;
	box-shadow: 10px 10px 0px rgba(26, 37, 47, 0.05);}
.map-frame::before {
	width: 20px;
	height: 20px;
	border-top-width: 3px;
	border-left-width: 3px;}
}
@media screen and (max-width: 450px) {
.map-frame {
	padding: 15px 10px;
	box-shadow: 7px 7px 0px rgba(26, 37, 47, 0.05);}	
}
/*組織図*/
.img_area{
	width: 800px;
	margin: 0 auto;}
.img_area img{
	width: 100%;
	height: auto;}
@media screen and (max-width: 950px) {
.img_area{
	width: 100%;}
}