@charset "utf-8";
/*
Theme Name: FAKE child
Theme URI:https://tcd-theme.com/tcd074/
Description:WordPressテーマ「FAKE」の子テーマ
Template:fake_tcd074
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0
*/

/*
  ここから下にCSSを追記してください。
*/

/* 共通 */


body {
	background: #EDEDED;
}
#main_contents {
    width: 1000px;
    margin: 0 auto;
    padding: 100px 0 150px;
}
.dc_content {
    width: 1000px;
    margin: 0 auto;
    padding: 92px 0 92px;
}
#header {
    background-color: #EDEDED !important;
    border-bottom: 1px solid #2B2B7A;
}
.page-id-46 .design_content {
   padding-top: 150px !important;
}
.pc-only {
    display: inline;
}

@media screen and (max-width: 767px) {
    .pc-only {
        display: none !important;
    }
}

@media screen and (max-width: 650px) {
    #header {
        height: 80px !important;
    }  
}
/* PC版グローバルメニュー：お問い合わせのカスタマイズ */
@media screen and (min-width: 1051px) {
    #global_menu #menu-item-78 {
        height: 100%;
        display: flex !important;
        align-items: center !important; 
    }

    #global_menu #menu-item-78 a {
        color: #2B2B7A !important;
        border: 2px solid #2B2B7A !important;
        background: transparent !important;  
        height: 44px !important;
        line-height: 40px !important;
        padding: 0 20px !important;
        
        display: flex !important;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        margin-left: 15px;
        margin-top: 28px !important; 
    }

    #global_menu #menu-item-78 a:hover {
        background: #2B2B7A !important; 
        color: #ffffff !important;
        opacity: 0.8;
    }
}



/* 汎用タグ付きヘッダー */
.common-header {
    position: relative;
    padding-top: 35px;
    margin-bottom: 60px;
}

/* 汎用タグ（左上に配置） */
.common-tag {
    position: absolute;
    top: 0;
    left: 0;
    background: #2B2B7A;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    padding: 4px 15px;
    line-height: 1;
    display: inline-block;
}
.common-title {
	text-align: left !important;
}
/* 汎用タイトル：pが自動挿入されても崩れないように指定 */
.common-title,
.common-header p {
    font-size: 40px !important;
    font-weight: bold !important;
    color: #333;
    margin: 0 !important;
    line-height: 1.2 !important;
    display: block;
}

@media screen and (max-width: 767px) {
    .common-header { padding-top: 30px; }
    .common-tag { font-size: 14px; padding: 3px 10px; }
    .common-title, .common-header p { font-size: 30px !important; }
}


/* 固定ページのヘッダーキャッチ位置・デザインの調整 */
#page_header_catch {
    /* 位置と枠の制御 */
    top: 170px !important;
    transform: none !important;
    -webkit-transform: none !important;
    width: 1000px !important;
    margin: 0 auto !important;
    left: 0 !important;
    right: 0 !important;
    text-align: left !important;

    /* 英語を上、日本語を下に入れ替え */
    display: flex !important;
    flex-direction: column-reverse !important;
    justify-content: flex-start !important;
}

/* 日本語タイトル（h1 / .catch） */
#page_header_catch .catch {
    font-size: 54px !important;
    font-weight: bold !important;
    color: #ffffff !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.05em; /* 必要に応じて調整 */
}

/* 英語タイトル（.desc） */
#page_header_catch .desc {
    margin-bottom: 10px !important; /* 日本語タイトルとの間隔 */
}

#page_header_catch .desc span {
    font-size: 20px !important;
    font-weight: bold !important;
    color: rgba(255, 255, 255, 0.5) !important; /* 白の不透明度50% */
    display: inline-block;
    letter-spacing: 0.1em;
}

/* スマホ対応：画面幅が狭い時の微調整 */
@media screen and (max-width: 830px) {
    #page_header_catch {
        width: 90% !important;
        top: 60px !important;
    }
    #page_header_catch .catch {
        font-size: 36px !important;
    }
    #page_header_catch .desc span {
        font-size: 16px !important;
    }
}


/* サイト共通ボタン */
.common-btn-wrapper {
    text-align: center;
    margin-top: 40px;
    margin-bottom: 40px;
}

.common-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 255px;
    margin: 0 auto;
    padding: 15px 20px;
    border: 2px solid #2B2B7A;
    color: #2B2B7A !important;
    font-size: 18px !important;
    font-weight: bold !important;
    text-decoration: none;
    background: transparent;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.common-btn:hover {
    background: #2B2B7A;
    color: #fff !important;
}

/* 矢印コンテナ（横棒の土台） */
.common-btn-arrow {
    display: block;
    position: relative;
    width: 18px;
    height: 12px;
}

/* 矢印の横棒 */
.common-btn-arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #2B2B7A;
    transform: translateY(-50%);
    transition: background-color 0.3s ease;
}

/* 矢印の傘（先端） */
.common-btn-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 8px;
    height: 8px;
    border-top: 2px solid #2B2B7A;
    border-right: 2px solid #2B2B7A;
    transform: translateY(-50%) rotate(45deg);
    transition: border-color 0.3s ease;
}

/* ホバー時に矢印の色を白に変える */
.common-btn:hover .common-btn-arrow::before {
    background-color: #fff;
}

.common-btn:hover .common-btn-arrow::after {
    border-color: #fff;
}

@media screen and (max-width: 767px) {
    .common-btn {
            max-width: 300px; 
            width: 100%;
            font-size: 16px !important;
            padding: 20px 15px;
        }
}


/* TOPページ */

/* ==========================================================================
   TOPページ専用カスタムスタイル（省略なし）
   ========================================================================== */

/* スマホ時のみ、JSの計算をCSSで強制的に上書きする */
@media screen and (max-width: 767px) {
    /* 親要素の固定高さを解除 */
    #index_video {
        height: auto !important;
        padding-top: 56.25%; /* 16:9の動画の場合。比率を維持して高さを確保 */
        position: relative !important;
    }

    /* ビデオタグの絶対位置とサイズをリセット */
    #index_video_mp4 {
        width: 100% !important;
        height: 100% !important;
        top: 0 !important;
        left: 0 !important;
        position: absolute !important;
        object-fit: contain !important; /* 全体を表示 */
        transform: none !important;    /* センター寄せ等の解除 */
    }
}

/* FVのオーバーレイを非表示にする */
#index_slider .overlay {
    display: none !important;
}

@media screen and (max-width: 767px) {
    /* JSで書き込まれた高さを強制的に解除する要素のリスト */
    #index_header_content,
    #index_slider_wrap,
    #index_slider,
    #index_video {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    /* 動画コンテナに比率を持たせて、高さを自動算出させる */
    #index_video {
        position: relative !important;
        width: 100% !important;
        /* 16:9の動画なら56.25%。隙間が空くならここを小さく(50%など)調整 */
        padding-top: 56.25% !important;
        overflow: hidden;
    }

    /* オーバーレイやビデオ本体をコンテナ内に絶対配置 */
    #index_slider .overlay,
    #index_video_mp4 {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
    }

    /* ビデオ表示の補正 */
    #index_video_mp4 {
        object-fit: contain !important;
        transform: none !important;
    }
}

/* --- 1. VISION セクション --- */
.section-vision {
    padding: 100px 0 0;
}

.vision-inner {
    max-width: 1000px;
    margin: 0 auto;
    text-align: left;
}

.section-vision .v-blue {
    color: #2B2B7A;
    border: none;
    text-align: left;
    font-size: 52px !important;
}

.section-vision .v-sub-catch {
    font-size: 32px !important;
    font-weight: bold;
    color: #2B2B7A;
    background: #fff;
    width: fit-content;
    padding: .2em 10px;
    margin-top: 20px !important;
    display: block;
}

.section-vision .vision-text-content {
    margin: 40px 0;
    line-height: 2.2;
    color: #333;
    font-size: 24px;
    font-weight: bold;
    text-align: left;
}

.section-vision .v-spacer {
    height: 2.5em;
}

.section-vision .common-btn-wrapper {
    margin-bottom: 160px;
}

@media screen and (max-width: 767px) {
    .section-vision .v-blue {
        font-size: 36px !important;
    }
    .vision-inner {
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
    }
    .section-vision .v-sub-catch {
        font-size: 24px !important;
    }
    .section-vision .common-btn-wrapper {
        margin-bottom: 60px;
    }

    .section-vision .vision-text-content {
        font-size: 18px;
    }
    
}
/* --- 2. 幅100%動画セクション --- */
.section-full-video {
    width: 100%;
    margin: 0;
    padding: 0;
    line-height: 0;
}
.section-full-video video {
    width: 100%;
    height: auto;
    display: block;
}

/* --- 3. BUSINESS AREAS (事業領域) --- */
.section-business {
    background: #333333;
    padding: 100px 0;
    width: 100%;
    margin-bottom: -1px;
}
.section-business .common-tag.tag-white-bg {
    background: #fff !important;
    color: #2B2B7A !important;
}
.section-business .common-title.v-white {
    color: #fff !important;
}
.business-card-grid {
    max-width: 1000px;
    margin: 50px auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.business-card {
    background: #5D5D5D;
    padding: 40px;
    display: flex;
    align-items: flex-start;
    gap: 40px;
}
.business-card h3 {
    font-size: 28px;
    color: #fff;
    width: 160px;
    flex-shrink: 0;
    white-space: nowrap;
}
.business-card p {
    font-size: 16px;
    color: #fff;
    line-height: 1.6;
}

@media screen and (max-width: 767px) {
    .section-business {
        padding: 60px 0;
    }
    .business-card {
        /* 横並びから縦並びに変更 */
        flex-direction: column;
        /* 隙間を調整（見出しと本文の間） */
        gap: 20px;
        padding: 30px 20px;
    }

    .business-card h3 {
        /* 固定幅を解除して全幅に */
        width: 100% !important;
        /* スマホでは文字が溢れないよう改行を許可 */
        white-space: normal !important;
        font-size: 22px;
        margin: 0;
    }

    .business-card p {
        font-size: 14px;
        line-height: 1.7;
    }
}

/* --- 4. EXPERTISE (専門技術) --- */
.business-inner,
.expertise-inner,
.global-inner,
.lineup-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.section-expertise {
    background: #333;
    padding-bottom: 100px;
    color: #fff;
    margin-bottom: -1px;
}

@media screen and (max-width: 767px){
    .section-expertise {
        padding-bottom: 60px;
    }
    .section-expertise .common-header {
        margin-bottom: 30px;
    }
}
.section-expertise .common-tag.tag-white-bg {
    background: #fff !important;
    color: #2B2B7A !important;
}
.section-expertise .common-title.v-white {
    color: #fff !important;
}
.expertise-list {
    max-width: 1000px;
    margin: 50px auto;
}
.expertise-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 40px 0;
    border-top: 1px solid #5D5D5D;
    border-bottom: 1px solid #5D5D5D;
}

.expertise-item + .expertise-item {
    border-top: none;
}
.exp-text {
    flex: 1;
    padding-right: 40px;
}
.exp-num {
    font-size: 16px;
    color: #5D5D5D;
    border-bottom: 1px solid #5D5D5D;
    display: inline-block;
    margin-bottom: 15px;
}
.exp-text h3 {
    font-size: 24px;
    color: #fff;
    margin-bottom: 15px;
    border: none !important;
}
.exp-image {
    width: 350px;
    flex-shrink: 0;
}
.exp-image img {
    width: 100%;
    height: auto;
}
.exp-text p,
.expertise-intro {
    line-height: 1.8 !important; 
    margin-bottom: 1.5em !important;
    color: #fff;
}

.exp-text {
    line-height: 1.8 !important;
}

/* --- 5. GLOBAL (グローバル展開) --- */
.section-global {
    background: #333;
    padding-bottom: 100px;
}
.section-global .common-tag.tag-white-bg {
    background: #fff !important;
    color: #2B2B7A !important;
}
.section-global .common-title.v-white {
    color: #fff !important;
}
.global-flex {
    max-width: 1000px;
    margin: 50px auto;
    display: flex;
    gap: 20px;
}
.global-card {
    flex: 1;
    padding: 40px;
    border: 1px solid #5D5D5D;
}
.global-card h3 {
    font-size: 24px;
    color: #fff;
    margin-bottom: 15px;
    border: none !important;
}
.global-card p {
    color: #fff;
    line-height: 1.6;
}

/* --- 6. LINEUP (製品ラインナップ) --- */
.section-lineup {
    padding: 100px 0;
}
.lineup-inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto; 
}

.lineup-grid {
    width: 1000px !important;
    margin: 50px auto !important;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px; 
    background: transparent !important;
}

/* カード単体のデザイン */
.lineup-card {
    background: #fff;
    padding: 20px;
    border: 1px solid #eee;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    transition: 0.3s;
    height: 100%;
}

.lineup-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.lineup-img {
    width: 100%;
    margin-bottom: 20px;
}

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

.lineup-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto; 
}

.lineup-name {
    font-size: 18px;
    font-weight: bold;
    color: #333;
    line-height: 1.4;
    padding-right: 5px;
}

.lineup-arrow-box {
    width: 30px;
    height: 30px;
    background: #fff;
    border: 1px solid #2B2B7A;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lineup-arrow {
    width: 14px;
    height: 1px;
    background-color: #2B2B7A;
    position: relative;
}
.lineup-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 5px;
    height: 5px;
    border-top: 1px solid #2B2B7A;
    border-right: 1px solid #2B2B7A;
    transform: translateY(-50%) rotate(45deg);
}


@media screen and (max-width: 767px) {
    .lineup-name {
        font-size: 16px;
    }
    .lineup-grid {
        width: 95% !important;
        grid-template-columns: repeat(2, 1fr);
    }
}
@media screen and (max-width: 480px) {
    .lineup-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 767px) {
    .v-sub-catch { font-size: 24px !important; }
    .expertise-item { flex-direction: column; }
    .exp-text { padding-right: 0; margin-bottom: 20px; }
    .exp-image { width: 100%; }
    .global-flex { flex-direction: column; }
}


/* Googleマップ */
.access-section-wrapper {
    max-width: 1000px;
    margin: 0 auto;
}

.access-section-wrapper .common-header {
    margin-bottom: 40px;
}

.google-map-container {
    text-align: center;
    margin: 40px auto;
    width: 100%; 
}

.google-map-container iframe {
    width: 100%;
    height: 400px; 
    display: block;
    margin: 0 auto;
    border: none;
}

@media screen and (max-width: 767px) {
    .google-map-container iframe {
        height: 300px;
    }
}

.index_news_section {
    padding: 100px 0  0 !important;
    clear: both;
}
.news_list_container {
    max-width: 1000px !important;
    width: 95% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.news_list_container .common-header {
    margin-bottom: 40px;
}

/* 記事リスト */
.news_list_inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    margin-bottom: 40px !important;
    max-width: 900px !important;
    margin-inline: auto;
}

.news_item {
    width: 100% !important;
    background: #ffffff !important;
    padding: 25px 30px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
}

.news_link {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    text-decoration: none !important;
}

.news_meta {
    display: flex !important;
    align-items: center !important;
    flex-grow: 1;
}

.news_meta .date {
    font-size: 16px;
    color: #2B2B7A;
    margin-right: 40px;
    font-weight: bold;
}

.news_meta .title {
    font-size: 18px;
    margin: 0;
	font-weight: normal !important;
}

.news_arrow_box {
    width: 30px !important;
    height: 30px !important;
    border: 1px solid #2B2B7A !important;
    position: relative !important;
    flex-shrink: 0 !important;
}

.news_arrow {
    position: absolute !important;
    top: 50% !important;
    left: 6px !important;
    width: 16px !important;
    height: 2px !important;
    background-color: #2B2B7A !important;
    transform: translateY(-50%) !important;
    display: block !important;
}

.news_arrow::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    width: 7px !important;
    height: 7px !important;
    border-top: 2px solid #2B2B7A !important;
    border-right: 2px solid #2B2B7A !important;
    transform: translateY(-50%) rotate(45deg) !important;
    display: block !important;
}


@media screen and (max-width: 767px) {
    .news_item { padding: 20px !important; }
    .news_meta { flex-direction: column !important; align-items: flex-start !important; }
    .news_meta .date { margin-bottom: 5px; margin-right: 0; }
    .news_meta .date {
        font-size: 15px;
    }
    
    .news_meta .title {
        font-size: 17px;
    }
}

/* 製品ページ */
/* ページID 50番のページ限定設定 */
.page-id-50 .tcd-pb-row.row2 + .tcd-pb-row.row3 {
    margin-top: -30px !important;
}

.page-id-50 .tcd-pb-row.row2 + .tcd-pb-row.row3 .pb-widget-editor p {
    color: #333333 !important;
    text-align: center !important;
    margin-top: 5px !important;
}

/* フッター */
#footer {
	background: #fff;
}
/* フッタースモールバナー */
#footer_custom_small_banners {
    width: 100% !important;
    border-top: 1px solid #EDEDED;
    padding: 40px 0;
    background: #fff;
    clear: both;
}

#footer_small_banners_inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 15px;
    box-sizing: border-box;
}

.small_banner_container {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    justify-content: flex-start;
}

.small_banner_item {

    width: calc((100% - (13px * 3)) / 4);
    box-sizing: border-box;
}

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

@media screen and (max-width: 800px) {
    .small_banner_item {
        width: calc((100% - 13px) / 2);
    }
}

@media screen and (max-width: 480px) {
    .small_banner_container {
        gap: 10px;
    }
    .small_banner_item {
        width: calc((100% - 10px) / 2);
    }
}


/* 採用ページ */
.recruit-all-tomec {
    text-align: left;
    max-width: 1000px;
    margin: 60px auto;
}

.recruit-all-tomec .recruit-title {
	 text-align: left;
    font-size: 60px !important;
    color: #2B2B7A !important;
    font-family: 'Arial Black', sans-serif;
    margin-bottom: 40px !important;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.recruit-all-tomec .recruit-lead {
    font-size: 24px !important;
    font-weight: bold !important;
    line-height: 2.5 !important;
    color: #333;
    text-align: left;
    word-break: break-all;
}

@media screen and (max-width: 767px) {
    .recruit-all-tomec .recruit-title {
        font-size: 40px !important;
        margin-bottom: 25px !important;
    }
    .recruit-all-tomec .recruit-lead {
        font-size: 18px !important;
        line-height: 2.0 !important;
        text-align: justify;
    }
}

/* カードコンテナ */
.recruit-card-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1000px;
    margin: 60px auto;
}

.recruit-card {
    background: #fff;
    padding: 40px;
    box-sizing: border-box;
}

.job-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #2B2B7A !important;
    margin: 0 !important;
    padding-bottom: 20px !important;
    border-bottom: 2px solid #2B2B7A;
    display: inline-block;
	border-bottom: 2px solid #2B2B7A !important;
}

.detail-row {
    display: flex;
    align-items: flex-start !important;
    padding: 30px 0;
    border-top: 1px solid #A5A5A5;
}
.detail-row:last-of-type {
    padding-bottom: 0 !important;
}
.detail-row:first-child {
    border-top: none;
    padding-top: 20px 0 30PX;
}

.detail-label {
    width: 120px;
    flex-shrink: 0;
    font-size: 18px !important;
    font-weight: bold !important;
    margin: 0 !important;
    color: #333;
    margin: 0 !important;
    line-height: 1.5 !important;
}

.detail-content {
    flex-grow: 1;
    font-size: 16px !important;
    line-height: 1.8;
}
.detail-content p {
    margin: 0 0 5px 0 !important;
}
@media screen and (max-width: 767px) {
    .recruit-card {
        padding: 30px 20px;
    }
 .detail-row {
        flex-direction: column;
    }
    .detail-label {
        margin-bottom: 10px !important;
    }
    .job-title {
        font-size: 22px !important;
    }
}

/* よくある質問 */

.faq-section {
    max-width: 1000px;
    margin: 0 auto 120px auto;
}

/* カテゴリタイトル */
.faq-category {
    margin-bottom: 80px;
}
.faq-cat-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #2B2B7A !important;
    border-bottom: 2px solid #2B2B7A !important;
    padding-bottom: 10px !important;
}

/* 各質問アイテム */
.faq-item {
    padding: 30px 0;
    border-bottom: none !important;
}
.faq-list .faq-item:last-child {
    padding-bottom: 0 !important;
}

.faq-item + .faq-item {
    border-top: 1px solid #A5A5A5 !important;
}

/* Q（質問）部分 */
.faq-q {
    display: flex;
    align-items: flex-start;
    margin-bottom: 15px;
}
.q-symbol {
    font-size: 30px;
    font-weight: bold;
    color: #2B2B7A;
    width: 40px;
    flex-shrink: 0;
    line-height: 1;
}
.q-text {
    font-size: 20px !important;
    font-weight: bold !important;
    color: #2B2B7A;
    line-height: 1.5;
}

/* A（回答）部分 */
.faq-a {
    display: flex;
    align-items: flex-start;
}
.a-symbol {
    font-size: 30px;
    font-weight: bold;
    color: #5D5D5D;
    width: 40px;
    flex-shrink: 0;
    line-height: 1;
}
.a-text {
    font-size: 16px !important;
    color: #333;
    line-height: 1.8;
}
.a-text p {
    margin-bottom: 10px !important;
}

/* スケジュールリストの装飾 */
.schedule-list {
    margin-top: 20px !important;
}
.schedule-list p {
    margin-bottom: 5px !important;
}

@media screen and (max-width: 767px) {
    .faq-main-title { font-size: 30px !important; }
    .faq-cat-title { font-size: 22px !important; }
    .q-symbol, .a-symbol { font-size: 24px; width: 30px; }
    .q-text { font-size: 18px !important; }
    .a-text { font-size: 15px !important; }
}

/* 拠点一覧ページ */

.base-info-container {
    max-width: 1000px;
    margin: 0 auto 100px;
}

.base-main-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #2B2B7A !important;
    border-bottom: 2px solid #2B2B7A !important;
    margin-bottom: 10px !important;
	text-align: left !important;
    padding-bottom: 30px !important;
}

.base-row {
    display: flex;
    justify-content: space-between;
    padding: 30px 0;
    border-bottom: 1px solid #A5A5A5;
}

.base-col-name {
    width: 25%;
    flex-shrink: 0;
}

.base-name {
    font-size: 17px !important;
    font-weight: bold !important;
    color: #2B2B7A !important;
    margin: 0 !important;
    line-height: 1.4;
}

/* 2列目：住所・連絡先 */
.base-col-info {
    width: 55%;
    flex-grow: 1;
    padding: 0 20px;
}
.base-col-info p {
    font-size: 16px;
    line-height: 1.8;
    margin: 0 !important;
    color: #333;
}

.base-adr-line {
    display: inline-block;
    margin-bottom: 20px;
    vertical-align: top;
}

.base-col-map {
    width: 74px;
    flex-shrink: 0;
}

.map-link-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 74px;
    height: 74px;
    border: 1px solid #2B2B7A;
    text-decoration: none !important;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

/* マップピンアイコン（画像） */
.map-pin-img {
    width: 22px;
    height: auto;
    margin-bottom: 4px;
    transition: filter 0.3s ease;
}

/* 「地図を開く」テキスト */
.map-text {
    font-size: 11px;
    color: #2B2B7A;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
}
.map-link-box:hover {
    background-color: #2B2B7A;
}

.map-link-box:hover .map-text {
    color: #fff;
}
.map-link-box:hover .map-pin-img {
    filter: brightness(0) invert(1);
}

@media screen and (max-width: 767px) {
    .base-row {
        flex-wrap: wrap;
        align-items: flex-start;
        padding: 20px 0;
    }
    
    .base-col-name {
        width: 100%;
        margin-bottom: 10px;
    }
    
    .base-col-info {
        width: calc(100% - 100px);
        padding: 0;
        margin-right: 15px;
    }
    .base-main-title {
        margin-top: 70px !important;
    }
    
    .base-col-map {
        width: 74px;
    }

    .base-name {
        font-size: 15px !important;
    }

    .base-col-info p {
        font-size: 14px;
    }
}

/* 会社概要ページ */
/* 代表メッセージ本文 */
.message-content {
    max-width: 1000px;
    margin: 0 auto 120px; /* 下に余白120px */
}

.message-content p {
    font-size: 16px;
    line-height: 2;
    color: #333;
}


.message-signature {
    text-align: right;
}

.signature-post {
    font-size: 16px !important;
    margin-bottom: 5px !important;
    color: #333;
	margin-top: 50px !important;
}

.signature-name {
    font-size: 24px !important;
    font-weight: bold !important;
    color: #333;
    margin: 0 !important;
}

@media screen and (max-width: 767px) {
    .message-content {
        padding: 0 20px;
    }
    .signature-name {
        font-size: 20px !important;
    }
}

.dc_content {
	padding-top: 0 !important;
}
.company-history-block {
 background-color: #333333;
    color: #fff;
    padding: 100px 0;
    width: 100vw !important;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    
    box-sizing: border-box;
}

.history-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.history-main-copy {
	text-align: left !important;
    font-size: 44px !important;
}
/* HISTORY見出しとタイムラインの横並び */
.history-flex-container {
    display: flex;
    justify-content: space-between; 
    align-items: flex-start;
    margin-top: 80px;
}

.history-left-heading {
    width: 400px;
    flex-shrink: 0;
}

.history-intro-text {
    font-size: 18px;
}
.history-tag {
    display: inline-block;
    background: #fff;
    color: #2B2B7A;
    font-size: 18px;
    font-weight: bold;
    padding: 0 15px;
    margin-bottom: 20px;
    line-height: 1.4;
}

.history-tag-text {
    font-size: 30px;
    font-weight: bold;
    line-height: 1.6;
    margin: 0 !important;
}

/* 右側：タイムラインエリア */
.history-right-timeline {
    width: 440px;
    flex-shrink: 0;
    position: relative;
}

.timeline-list {
    position: relative;
    padding: 0;
}

.timeline-list::before {
    content: "";
    position: absolute;
    left: 35px;
    top: 10px;
    height: calc(100% - 40px); 
    width: 2px;
    background-color: #FFFFFF;
    z-index: 1;
}

.timeline-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 40px;
    position: relative;
    z-index: 2;
}

.timeline-item:last-child {
    margin-bottom: 0;
}
.timeline-year {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 70px !important;
    flex-basis: 70px !important;
    flex-shrink: 0 !important;
    background-color: #2B2B7A;
    color: #fff;
    font-weight: bold;
    text-align: center;
    padding: 5px 0;
    border: 1px solid #FFFFFF;
    font-size: 16px;
    margin-right: 20px;
    line-height: 1.2;
    box-sizing: border-box;
}

.timeline-content {
    font-size: 16px;
    line-height: 1.6;
    margin: 0 !important;
    padding-top: 5px;
}

@media screen and (max-width: 767px) {
    .history-flex-container {
        flex-direction: column;
    }
    .history-left-heading,
    .history-right-timeline {
        width: 100%;
    }
    .history-left-heading {
        margin-bottom: 50px;
    }
    .history-intro-text {
        font-size: 16px;
    }
}


/* ALL TOMEC セクション */
.all-tomec-section {
    margin-top: 80px;
    width: 100%;
}

.all-tomec-label {
    font-size: 54px;
    font-weight: bold;
    color: #5D5D5D;
    line-height: 1;
    margin-bottom: -5px;
    letter-spacing: 0.02em;
}

.all-tomec-box {
    background-color: #5D5D5D;
    padding: 35px;
}

.all-tomec-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #fff !important;
    margin-bottom: 15px !important;
}

.all-tomec-text {
    font-size: 18px;
    line-height: 1.8;
    color: #fff;
    margin: 0 !important;
}

@media screen and (max-width: 767px) {
    .all-tomec-label { font-size: 40px; }
    .all-tomec-title { font-size: 22px !important; }
    all-tomec-box { padding: 20px;}
    .all-tomec-text { font-size: 16px;}
}


.dc_data_list h2.catch.rich_font {
    text-align: left !important; 
    position: relative;
    padding-top: 40px; 
    margin-bottom: 20px;
    display: block; /* 幅を確保 */
}

/* ラベル部分を .dc_data_list 内の h2 だけに追加 */
.dc_data_list h2.catch.rich_font::before {
    content: "COMPANY";
    position: absolute;
    top: 0;
    left: 0;
    /* ラベルの装飾 */
   background: #2B2B7A;
   color: #ffffff;
    font-family: 'Arial', sans-serif;
    font-size: 18px;
    font-weight: bold;
    padding: 5px 10px;
    line-height: 1;
    display: inline-block;
}

.dc_data_list {
    width: 1000px;
    padding: 92px 0 0px;
    margin: 0 auto;
}

.dc_data_list h2.catch.rich_font span {
    display: inline-block;
    padding: 0;
    margin: 0;
}
.dc_data_list dl {
    border-left: 1px solid #a5a5a5 !important;
    border-top: 1px solid #a5a5a5 !important;
    background-color: #ffffff;
}


.dc_data_list dl dt {
    background-color: #5D5D5D !important;
    color: #ffffff !important;
    border-right: 1px solid #a5a5a5 !important;
    border-bottom: 1px solid #a5a5a5 !important;
}

.dc_data_list dl dd {
    background-color: #ffffff !important;
    color: #333333 !important;
    border-right: 1px solid #a5a5a5 !important;
    border-bottom: 1px solid #a5a5a5 !important;
}

/* フル幅画像ブロック全体 */
.company-full-width-image {
    width: 100vw !important;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    margin-top: 0 !important; 
    margin-bottom: 0 !important;
    padding: 0;
    line-height: 0;
    box-sizing: border-box;
}

.company-full-width-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    max-height: 400px;
    display: block;
    border: none;
}

.company-history-block {
    margin-top: 0 !important;
    display: block;
    clear: both;
}

.company-full-width-image > p,
.company-history-block > p {
    display: none !important;
    margin: 0 !important;
}

.history-main-copy {
    margin-top: 0 !important;
    padding-top: 0 !important;
    font-size: 36px !important;
}

/* アーカイブ・カテゴリーページ */
.archive.category #page_header {
    height: 100px !important;
}
@media screen and (max-width: 767px) {

    .archive.category #page_header {
        display: none !important;
    }
}

/* お問い合わせページ */
.contact-intro, .privacy-section {
    max-width: 1000px;
    margin: 0 auto 40px;
    line-height: 1.8;
}
privacy-section 

.privacy-section {
    background: #f9f9f9;
    padding: 30px;
    border: 1px solid #EDEDED;
}

.privacy-section h3 {
    font-size: 20px !important;
    font-weight: bold !important;
    margin-bottom: 15px !important;
    color: #333;
}

/* フォーム本体 */
.contact-form-container {
    max-width: 1000px;
    margin: 60px auto;
}
.wpcf7 {
    padding: 40px;
} 
.form-row {
    display: flex;
    border-top: 1px solid #EDEDED;
    padding: 25px 0;
}

.form-row:last-of-type {
    border-bottom: 1px solid #EDEDED;
}

.form-label {
    width: 240px;
    flex-shrink: 0;
    font-weight: bold;
    font-size: 16px;
    color: #333;
    display: flex;
    align-items: center;
}

.required {
    background: #2B2B7A;
    color: #fff;
    font-size: 11px;
    padding: 2px 6px;
    margin-left: 10px;
    border-radius: 2px;
}

.form-field {
    flex-grow: 1;
}

.contact-form-container input[type="text"],
.contact-form-container input[type="email"],
.contact-form-container input[type="tel"],
.contact-form-container select,
.contact-form-container textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    background: #fff;
    box-sizing: border-box;
    font-size: 16px;
}

.name-field {
    display: flex;
    gap: 10px;
}

.zip-wrap {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 10px;
}

.zip-wrap input {
    width: 80px !important;
}

.sub-label {
    font-size: 13px;
    color: #888;
    margin: 10px 0 5px !important;
}

.form-submit p {
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    justify-content: center;
}
.form-submit input[type="submit"].wpcf7-submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 64px !important;
    padding: 0 60px !important;
    line-height: 1 !important;
    text-align: center !important;
    background: #2B2B7A !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: bold !important;
    border: none !important;
    cursor: pointer;
    transition: 0.3s;
    appearance: none;
    -webkit-appearance: none;
}

.form-submit .wpcf7-spinner {
    position: absolute;
    margin: 0 0 0 10px;
    bottom: auto;
}

.form-submit input[type="submit"]:hover {
    background: #333 !important;
    opacity: 0.8;
}

@media screen and (max-width: 767px) {
    .wpcf7 {
        padding: 20px;
    } 
    .form-row {
        flex-direction: column;
    }
    .form-label {
        width: 100%;
        margin-bottom: 10px;
    }
}


/* プライバシーポリシー全体 */
.privacy-policy-container {
    max-width: 1000px;
    margin: 60px auto 120px;
    color: #333;
    line-height: 1.8;
}

.policy-intro {
    font-size: 16px;
    margin-bottom: 50px;
}

.policy-section {
    margin-bottom: 40px;
}

/* 各セクションの見出し */
.policy-h2 {
    font-size: 20px !important;
    font-weight: bold !important;
    color: #333;
    border-left: 4px solid #2B2B7A !important;
    padding: 5px 0 5px 15px !important;
    margin: 0 0 15px 0 !important;
    background: transparent !important;
	text-align: left !important;
}

.policy-section p {
    font-size: 15px;
    margin: 0 !important;
}

.policy-list {
    margin: 15px 0 0 20px !important;
    padding: 0 !important;
}

.policy-list li {
    font-size: 15px;
    margin-bottom: 5px;
    list-style: disc !important;
}

/* お問い合わせ先ボックス */
.contact-info-box {
    background: #f4f4f4;
    padding: 25px;
    margin-top: 15px;
    border-radius: 2px;
}

.contact-info-box p {
    font-size: 16px;
    margin-bottom: 5px !important;
}

.contact-info-box .company-name {
    font-weight: bold;
    font-size: 16px;
    margin-bottom: 10px !important;
    color: #2B2B7A;
}

@media screen and (max-width: 767px) {
    .policy-h2 {
        font-size: 18px !important;
    }
    .contact-info-box p {
        font-size: 15px;
    }
}

/* フッターエリア */
.custom-footer-main {
    background-color: #2B2B7A !important;
    color: #fff !important;
    padding: 80px 0 0 !important;
    width: 100%;
    clear: both;
}

.custom-footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.footer-flex-container {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 100px; 
    margin-bottom: 40px;
}

.footer-left {
    width: 320px; 
    flex-shrink: 0;
}

.footer-address {
    font-size: 16px;
    line-height: 1.8;
    font-style: normal;
    margin-top: 20px;
    white-space: nowrap;
}

.footer-right {
    display: flex;
    flex-grow: 0;
    justify-content: flex-start;
    gap: 80px;
}

.footer-nav-col {
    min-width: 140px;
}

.footer-nav-col ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.footer-nav-col li {
    margin-bottom: 30px;
}

.footer-nav-col li:last-child {
    margin-bottom: 0;
}

.footer-nav-col a {
    color: #fff !important;
    text-decoration: none;
    font-size: 17px;
    transition: 0.3s;
    line-height: 1.6;
}

.footer-recommend {
    margin-top: 40px;
}

.recommend-title {
    font-weight: bold;
    margin-bottom: 15px;
    font-size: 14px;
}

.footer-recommend ul li {
    font-size: 13px;
    color: #fff;
    margin-bottom: 15px !important;
    padding-left: 12px;
    position: relative;
    list-style: none !important;
}

.footer-recommend ul li::before {
    content: "-";
    position: absolute;
    left: 0;
}

.footer-bottom {
    border-top: none !important;
    padding-top: 0;
    text-align: right;
}

.footer-bottom-links {
    margin-bottom: 10px;
}

.footer-bottom-links a {
    color: #fff !important;
    text-decoration: none;
    font-size: 14px;
    margin-left: 30px;
    margin-right: 0;
}

#copyright {
    background: #2B2B7A !important;
    color: #fff !important;
    border-top: none !important;
    padding: 30px 0;
    text-align: center;
    margin: 0 !important;
    font-size: 12px;
}

#return_top {
    border-top: none !important;
}
.custom-footer-main {
    margin-bottom: -1px;
}

@media screen and (max-width: 1024px) {
    .footer-flex-container { gap: 50px; }
    .footer-right { gap: 10px; }
}

@media screen and (max-width: 767px) {
    .footer-left { width: 100%; }
    .footer-address { white-space: normal; } 
    .footer-flex-container, .footer-right {
        flex-direction: column;
    }
    .footer-nav-col { width: 100%; margin-bottom: 20px;}
    .footer-bottom { text-align: left; }
    .footer-bottom-links a { margin-left: 0; margin-right: 20px; }
    .footer-nav-col a {font-size: 16px;}
}

.footer-bottom-links {
    margin-bottom: 0;
}

#footer_inner {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

#footer_custom_small_banners {
    margin-bottom: 0 !important;
    padding-bottom: 40px !important;
}


.custom-footer-main {
    margin-top: 0 !important;
    background-color: #2B2B7A !important;
}

/* サイトマップページ */
.sitemap-wrapper {
    max-width: 950px;
    margin: 40px auto;
}

/* 各セクションのカード */
.sitemap-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    padding: 40px;
    margin-bottom: 25px;
}

.sitemap-header {
    margin-bottom: 25px;
    border-bottom: 2px solid #2B2B7A;
    display: inline-block;
}

.en-title {
    display: block;
    font-size: 11px;
    color: #2B2B7A;
    letter-spacing: 0.2em;
    font-weight: bold;
    margin-bottom: 4px;
}

.sitemap-title {
    font-size: 20px !important;
    font-weight: 700 !important;
    margin: 0 0 10px 0 !important;
    color: #333 !important;
    border: none !important;
    padding: 0 !important;
}

/* 1列リスト */
.sitemap-full-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.sitemap-full-list li {
    border-bottom: 1px solid #f0f0f0;
}

.sitemap-full-list li:last-child {
    border-bottom: none;
}

.sitemap-full-list li a {
    color: #444 !important;
    text-decoration: none;
    font-size: 16px;
    display: flex;
    align-items: center;
    padding: 15px 0;
    transition: all 0.3s ease;
}

/* アイコン装飾 */
.sitemap-full-list li a::before {
    content: "";
    width: 6px;
    height: 6px;
    border-top: 2px solid #2B2B7A;
    border-right: 2px solid #2B2B7A;
    transform: rotate(45deg);
    margin-right: 15px;
    transition: transform 0.3s;
}

/* ホバー演出 */
.sitemap-full-list li a:hover {
    color: #2B2B7A !important;
    padding-left: 10px;
    background-color: #fafafa;
}

@media screen and (max-width: 767px) {
    .sitemap-card {
        padding: 25px 20px;
    }
    .sitemap-title {
        font-size: 18px !important;
    }
}

/* 製品詳細ページ */

/* FVエリア */
.p-fv {
    padding-top: 180px !important; 
    padding-bottom: 100px;
    background-color: #ffffff;
    width: 100%;
}
.p-fv-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.p-fv-title {
    font-size: 48px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    border: none !important;
}
.p-fv-model {
    font-size: 16px;
    color: #666;
    margin-top: 30px;
}
.p-fv-image {
    width: 460px;
    flex-shrink: 0;
}
.p-fv-image img {
    width: auto;
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    .p-fv {
        padding-top: 100px !important; 
    }
}

#header_logo .desc.show_in_mobile, 
#header_logo .desc.mobile,
#header_logo .desc {
    display: none !important;
}

/* PDF帯エリア */

.p-pdf-bar {
    background-color: #5D5D5D;
    width: 100%;
    padding: 40px 0;
}

.p-pdf-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

.p-pdf-btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px 40px;
}

.p-pdf-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.p-pdf-info {
    display: flex;
    align-items: center;
    color: #ffffff;
    font-size: 16px !important;
    margin-bottom: 10px; 
}

.p-pdf-circle {
    display: inline-block;
    width: 8px;
    height: 8px;
    background-color: #ffffff;
    border-radius: 50%;
    margin-right: 10px;
}

/* ダウンロードボタン */
.p-pdf-link {
    display: flex;
    align-items: center;
    color: #ffffff !important;
    text-decoration: none;
    border: 2px solid #ffffff;
    padding: 20px 25px;
    font-size: 14px;
    min-width: 240px;
    justify-content: center;
    transition: 0.3s ease;
    box-sizing: border-box;
}

.p-pdf-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.p-pdf-img-icon {
    width: 16px;
    height: auto;
    margin-right: 10px;
}


@media screen and (max-width: 767px) {
    .p-pdf-item {
        width: 100%;
        max-width: 300px;
        align-items: center; /* スマホでは中央寄せ */
    }
    .p-pdf-link {
        width: 100%;
    }
}
/* 製品特性エリア */
.p-feature {
    padding-top: 140px;
    padding-bottom: 100px;
}
.p-feature-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}
.p-feature-body {
    margin-top: 50px;
    line-height: 2.2;
    font-size: 16px;
    color: #333;
}

@media screen and (max-width: 900px) {
    .p-fv-inner { flex-direction: column; text-align: center; }
    .p-fv-image { width: 100%; margin-top: 40px; }
    .p-fv-title { font-size: 32px !important; }
    .p-pdf-inner { flex-direction: column; gap: 15px; align-items: center; }
}
#product-page-custom .common-btn-wrapper {
    margin-top: 100px;
}

/* 製品一覧ページ */

.archive-header {
    padding: 200px 0 0;
    
}
.archive-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.archive-title {
    font-size: 32px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin-bottom: 15px !important;
    border: none !important;
}
.title-underline {
    display: block;
    width: 100%;
    height: 1px;
    margin-top: 10px;
    background: linear-gradient(to right, #2B2B7A 250px, gray 250px) !important;
    border: none !important;
    position: relative;
    z-index: 10;
    flex-shrink: 0;
}

/* 一覧エリア */
.product-list {
    padding: 60px 0 100px;
}
.product-list-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

/* カードタイプ */
.product-card {
    background: #fff;
    padding: 50px;
    margin-bottom: 40px;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.card-left {
    flex: 1;
    padding-right: 40px;
    display: flex;
    flex-direction: column;
}
.card-title {
    font-size: 24px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 0 0 10px 0 !important;
    border: none !important;
    line-height: 1.4;
}
.card-model {
    font-size: 15px;
    color: #666;
    margin-bottom: 0;
}

/* 商品画像 */
.card-right {
    width: 280px;
    flex-shrink: 0;
}
.card-right img {
    width: 100%;
    height: auto;
}

.common-btn.p-detail {
    max-width: 210px !important;
    font-size: 15px !important;
    padding: 12px 15px !important;
}

@media screen and (max-width: 767px) {
    .archive-header {
        padding-top: 100px;
        
    }
    .product-card {
        flex-direction: column-reverse;
        padding: 30px 20px;
    }
    .card-left {
        padding-right: 0;
        text-align: center;
    }
    .card-right {
        width: 100%;
        margin-bottom: 30px;
    }
    .title-underline::before {
        width: 50%;
    }
}

.product-card .common-btn-wrapper {
    text-align: left;
    margin-top: 40px;
    margin-bottom: 0;
}

.product-card .common-btn.p-detail {
    margin: 0;
    max-width: 210px !important;
}

@media screen and (max-width: 767px) {
 
    .product-card .common-btn-wrapper {
        margin-top: 30px;
        text-align: center;
    }
    .product-card .common-btn.p-detail {
        margin: 0 auto;
    }
}

/* --- 送信完了ページ専用スタイル --- */
.thanks-container {
    max-width: 1000px;
    margin: 60px auto 120px;
    padding: 0 20px;
}

.thanks-content {
    background: #fff;
    padding: 60px 40px;
    text-align: center;
    border: 1px solid #EDEDED;
}


.check-mark {
    width: 30px;
    height: 15px;
    border-left: 4px solid #fff;
    border-bottom: 4px solid #fff;
    transform: rotate(-45deg);
    margin-top: -5px;
}

.thanks-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #2B2B7A !important;
    margin-bottom: 40px !important;
    border: none !important;
}

.thanks-message {
    font-size: 16px;
    line-height: 2;
    color: #333;
    margin-bottom: 40px;
}


@media screen and (max-width: 767px) {
    .thanks-content {
        padding: 40px 20px;
    }
    .thanks-title {
        font-size: 22px !important;
    }
    .thanks-message {
        font-size: 14px;
    }
}

/* お知らせ一覧 */
.news-inner {
    max-width: 900px;
    padding: 180px 20px 100px;
    margin: 0 auto;
}
.news-main-title {
    font-size: 32px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 0 0 60px 0 !important;
    padding-bottom: 20px !important;
    border: none !important;
    position: relative; /* 疑似要素の基準 */
}

/* タイトル下のベースとなる黒い線 */
.news-main-title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: #333333;
}

/* タイトル下のアクセントとなる紺色の線 */
.news-main-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 260px; /* 製品一覧と同じ長さ */
    height: 2px;
    background: #2B2B7A;
    z-index: 1;
}


.news-item {
    border-bottom: 1px solid #A5A5A5 !important; /* 各投稿の間の線（濃く修正） */
    transition: all 0.3s ease;
}

.news-item a {
    display: flex;
    padding: 35px 10px; /* 上下パディングを広げて質素さを解消 */
    text-decoration: none;
    align-items: center;
    transition: background 0.3s;
    position: relative;
}

/* ホバー時の装飾：背景色と矢印の動き */
.news-item:hover {
    opacity: .8;
}

.news-date {
    width: 140px;
    font-size: 15px;
    color: #666;
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    flex-shrink: 0;
}

.news-title {
    font-weight: normal;
    line-height: 1.6 !important;
    flex-grow: 1;
}
.news-main-title::before {
    background: #333333 !important;
}
.news-main-title::after {
    background: #2B2B7A !important;
    width: 260px !important;
}

/* 右側に詳細への矢印アイコンを表示 */
.news-item a::after {
    content: "";
    width: 8px;
    height: 8px;
    border-top: 2px solid #2B2B7A;
    border-right: 2px solid #2B2B7A;
    transform: rotate(45deg);
    margin-left: 20px;
    transition: transform 0.3s;
}

.news-item:hover a::after {
    transform: rotate(45deg) translate(3px, -3px);
}

@media screen and (max-width: 767px) {
    #news-archive .news-inner {
        padding-top: 100px !important;
    }
    .news-main-title {
        font-size: 24px !important;
    }
    .news-main-title::after {
        width: 120px; 
    }
    .news-item a {
        flex-direction: column;
        align-items: flex-start;
        padding: 25px 0;
    }
    .news-item a::after {
        display: none;
    }
    .news-date {
        margin-bottom: 8px;
    }
}

/* お知らせ詳細 */
.news-content-inner {
    max-width: 1000px;
    padding: 180px 20px 100px;
    margin: 0 auto !important;
}

.news-header {
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 2px solid #2B2B7A;
}

.news-entry-title {
    font-size: 28px !important;
    line-height: 1.4 !important;
    margin-top: 10px !important;
}

.news-entry-body {
    line-height: 1.8;
    font-size: 16px;
}

@media screen and (max-width: 767px) {
    .news-content-inner {
        padding-top: 100px;
    }
    .news-item a {
        flex-direction: column;
        align-items: flex-start;
    }
    .news-date {
        margin-bottom: 5px;
    }
}

/* --- お知らせ詳細 本文内の見出しデザイン --- */

/* h2: 左側に太いライン */
.news-entry-body h2 {
    font-size: 24px !important;
    font-weight: bold !important;
    color: #333 !important;
    padding: 10px 0 10px 15px !important;
    border-left: 6px solid #2B2B7A !important;
    border-bottom: none !important;
    margin: 60px 0 30px !important;
    line-height: 1.4 !important;
    text-align: left !important;
}

/* h3: 下線とアクセント */
.news-entry-body h3 {
    font-size: 20px !important;
    font-weight: bold !important;
    color: #333 !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #2B2B7A !important;
    margin: 50px 0 25px !important;
    position: relative;
}

.news-entry-body h4 {
    font-size: 18px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 40px 0 20px !important;
    display: flex;
    align-items: center;
}
/* --- 「一覧へ戻る」ボタンの余白調整 --- */
.news-footer {
    margin-top: 80px !important;
    padding-top: 40px;
    border-top: 1px solid #EDEDED;
    text-align: center;
}

.back-btn {
    display: inline-block;
    background: #2b2b7a;
    color: #fff !important;
    text-decoration: none;
    padding: 15px 50px;
    font-size: 14px;
    transition: 0.3s;
}

.back-btn:hover {
    background: #333;
    opacity: 1;
}


@media screen and (max-width: 767px) {
    .news-content-inner {
        padding-top: 100px;
    }
    .news-footer {
        margin-top: 50px !important;
    }
}

/* --- ページネーション--- */

.pagination {
    margin: 60px auto !important;
    display: block !important;
    text-align: center !important;
}

#news-archive .pagination .nav-links {
    display: flex !important;
    justify-content: center !important;
    gap: 10px !important;
    align-items: center !important;
}

#news-archive .pagination .page-numbers {
    display: inline-block !important;
    padding: 10px 18px !important;
    border: 1px solid #A5A5A5 !important;
    color: #333 !important;
    text-decoration: none !important;
    font-size: 15px !important;
    background: #fff !important;
    transition: 0.3s !important;
    line-height: 1 !important;
}

#news-archive .pagination .page-numbers.current {
    background: #2B2B7A !important;
    color: #fff !important;
    border-color: #2B2B7A !important;
}


#news-archive .pagination a.page-numbers:hover {
    background: #f4f4f4 !important;
    opacity: 1 !important;
}

.pagination .screen-reader-text {
    display: none !important;
}

/* エントリーフォーム */
input[name="entry-age"] {
    width: 80px !important;
    display: inline-block;
    margin-right: 5px;
}

/* --- リッチエディタ内の設定--- */
.p-feature-free-area {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-start;
    margin-top: 20px;
}

.p-feature-free-area > * {
    flex: 0 1 auto;
    max-width: 100%;
    margin: 0 !important;
}

.p-feature-free-area p {
    flex: 0 0 100%; 
}


.p-feature-free-area p:has(img) {
    flex: 0 1 auto; 
    width: auto !important;
}

.p-feature-free-area p:has(iframe),
.p-feature-free-area .wp-block-embed,
.p-feature-free-area figure.wp-block-embed {
    flex: 0 0 100% !important; 
    width: 100% !important;
}

.p-feature-free-area iframe {
    width: 100% !important;
    max-width: 700px !important;
    aspect-ratio: 16 / 9;
    margin: 30px auto !important; 
    display: block; 
    border: none;
    height: auto !important;
}

.p-feature-free-area img {
    width: auto !important;
    max-width: 100%; 
    height: auto;
    display: block; 
    margin: 0 auto !important;
}

@media (max-width: 768px) {
    .p-feature-free-area iframe {
        max-width: 100% !important;
        margin: 20px 0 !important; 
    }

    .p-feature-free-area > * {
        flex: 0 0 100% !important;
        margin-bottom: 20px !important;
    }
}
/* フォントサイズ調整 */
body, 
.detail-content, 
.message-content p, 
.p-feature-body, 
.news-entry-body, 
.base-col-info p, 
.timeline-content, 
.form-label, 
.policy-intro, 
.sitemap-full-list li a,
.section-business .business-card p, 
.section-expertise .exp-text p, 
.section-global .global-card p, 
.news-meta .title, 
.news-title,
.policy-section p, 
.policy-contact p,
.policy-list li, 
.news-date,
.a-text,
.wpcf7 p {
    font-size: 18px !important;
}

@media screen and (max-width: 767px) {
    body, 
    .detail-content, 
    .message-content p, 
    .p-feature-body, 
    .news-entry-body, 
    .base-col-info p, 
    .timeline-content, 
    .form-label, 
    .policy-intro, 
    .sitemap-full-list li a,
    .section-business .business-card p, 
    .section-expertise .exp-text p, 
    .section-global .global-card p, 
    .news-meta .title, 
    .news-title,
    .policy-section p, 
    .policy-contact p,
    .policy-list li, 
    .news-date,
    .a-text,
    .wpcf7 p {
        font-size: 16px !important;
    }
}
/* ヘッダーメニューの個別調整 */
@media screen and (min-width: 1201px) {
    #global_menu > ul > li > a {
        font-size: 18px !important;
    }
}



/* --- 英語翻訳時（htmlにtranslated-ltrクラスがある時）の調整 --- */
@media screen and (min-width: 1201px) {
    html.translated-ltr #global_menu > ul > li > a {
        font-size: 14px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        letter-spacing: -0.02em !important;

    html.translated-ltr #global_menu > ul > li > a span {
        display: none !important;
    }
}

@media screen and (max-width: 1200px) and (min-width: 901px) {
    html.translated-ltr #global_menu > ul > li > a {
        font-size: 12px !important;
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
}
	
@media screen and (min-width: 1201px) {
    html.translated-ltr body #global_menu > ul {
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    html.translated-ltr body #global_menu > ul > li {
        width: auto !important;
        height: auto !important;
    }

    html.translated-ltr body #global_menu > ul > li > a {
        white-space: normal !important;
        line-height: 1.2 !important;
        text-align: center !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 60px !important;
    }
}

/* --- 2. 住所（Address）の折り返し強制 --- */
html.translated-ltr body .footer-address {
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
}

html.translated-ltr body .footer-address font {
    display: inline !important;
    white-space: normal !important;
}
	
.privacy-section a.form-link {
    color: #0054a6 !important;
    text-decoration: underline !important;
    font-weight: bold !important;
    display: inline !important;
}

.privacy-section a.form-link:hover {
    color: #003366 !important;
    text-decoration: none !important;
}