/*
Theme Name: GENSEN Child
Theme URI: https://tcd-theme.com/tcd050
Template: gensen_tcd050
Author: TCD
Author URI: https://tcd-theme.com/
Description: WordPress theme "GENSEN" create a portal site with an advanced search function. The top page header can be used as an ad space for sponsors, or you can feature a close-up view of the sites that are listed.
Version: 1.15.1776321042
Updated: 2026-04-16 15:30:42

*/

/* ==================================================================
  全体
================================================================== */
/* ------------------------------------------------------------------
  フォント関連
------------------------------------------------------------------ */
/* カラー（変数化） */
:root {
	--text_color: #333333;
	--subtext_color: #666666;
	--main_color: #b6c9e8;
	--main-light_color: #bcd8ed;
	--main-morelight_color: #e2e9f6;
	--main-dark_color: #1d4288;
	--link_color: #77a2d5;
}

/* フォント（変数化） */
:root {
	--gothic_font: Arial, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, sans-serif;
	--mincho_font: "Times New Roman" , "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;
}

/* 記事の文字サイズ（使用テーマのデフォルトフォントサイズが小さいため） */
.post_content {font-size: 16px !important;}
.post_content p {line-height: 1.75 !important; margin: 0 !important;}

/* リンク色 */
.post_content a, .custom-html-widget a {color: var(--main-dark_color);}

/* フォントカラー（サイト全体） */
html, body { color: var(--text_color);}

/* 見出しリセット（余白多いため） */
h2, h3, h4, h5, h6 {font-family:var(--gothic_font); margin:0 !important; line-height:1.5;}

/* デフォルト見出し */
#page_contents h2, #footer_access_area h2 { font-size:34px; font-weight:600; text-align:center; }
#page_contents h3, #footer_access_area h3 { font-size:28px; font-weight:600;}
#page_contents h4, #footer_access_area h4 { font-size:24px; font-weight:700;}
#page_contents h5, #footer_access_area h5 { font-size:22px; font-weight:700;}
#page_contents h6, #footer_access_area h6 { font-size:20px; font-weight:700;}
@media screen and (max-width: 800px) {
	#page_contents h2, #footer_access_area h2 { font-size:20px;}
	#page_contents h3, #footer_access_area h3 { font-size:19px; font-weight:700;}
	#page_contents h4, #footer_access_area h4 { font-size:18px;}
	#page_contents h5, #footer_access_area h5 { font-size:17px;}
	#page_contents h6, #footer_access_area h6 { font-size:16px;}
}

/* PCでは見出し内改行を無効 */
@media screen and (min-width: 801px){
  #page_contents :is(h2,h3,h4,h5,h6) br, #footer_access_area :is(h2,h3,h4,h5,h6) br { display:none; }
}

/* ハイライトのイタリック解除 */
mark {font-style: inherit !important; font-weight: 700 !important;}

/* テキストの両端揃え */
.text-justify {
  text-align: justify !important;
}

/* ------------------------------------------------------------------
  余白
------------------------------------------------------------------ */
/* テーブルの下余白削除 */
.post_content table {margin-bottom:0 !important;}

/* コンテンツ全て余白　0px */
.padding0px {padding:0px !important;}

/* コンテンツ全て余白　8px */
.padding8px {padding:8px !important;}

/* コンテンツ全て余白　16px */
.padding16px {padding:16px !important;}

/* コンテンツ全て余白　24px */
.padding24px {padding:24px !important;}

/* コンテンツ全て余白　32px */
.padding32px {padding:32px !important;}

/* フレックスボックスなど　余白20pxずつ */
.gap20px {gap:20px !important;}

/* フレックスボックスなど　余白32pxずつ */
.gap32px {gap:32px !important;}

/* フレックスボックスなど　余白48pxずつ */
.gap48px {gap:48px !important;}

/* フレックスボックスなど　ギャップなし */
.gap0px { gap: 0 !important;}

/* フレックスボックスなど　スマホ版のみギャップなし */
@media screen and (max-width: 800px) {
	.gap0px_sp { gap: 0 !important;}
}

/* ------------------------------------------------------------------
  改行制御
------------------------------------------------------------------ */
/* スマホで改行 */
@media screen and (min-width: 801px){
.br_pc_hidden br {display:none !important;}
}

/* スマホで変なところで改行されることを阻止 */
@media screen and (max-width: 800px){
.br_sp_hidden br {display:none !important;}
}

/* ------------------------------------------------------------------
  コンテンツ表示・非表示
------------------------------------------------------------------ */
/* コンテンツ：PCでは非表示 */
@media screen and (min-width: 801px){
	.cont_pc_hidden {display:none !important;}
}
/* コンテンツ：PCでは非表示 - 編集画面でも消えてしまうので対処 */
.editor-styles-wrapper .cont_pc_hidden {
    display: block !important; /* 編集画面では強制的に表示 */
    opacity: 0.4;              /* 薄くして「非表示設定中」であることを明示 */
    border: 1px dashed #ccc;   /* 編集しやすくするために点線枠を表示（任意） */
    position: relative;
}
/* コンテンツ：PCでは非表示 - 編集画面で「PC非表示」とラベルを出す */
.editor-styles-wrapper .cont_pc_hidden::before {
    content: "PC非表示設定中";
    display: block;
    font-size: 10px;
    color: #fff;
    background: #999;
    padding: 2px 5px;
    position: absolute;
    top: -15px;
    left: 0;
}

/* コンテンツ：スマホでは非表示 */
@media screen and (max-width: 800px){
	.cont_sp_hidden {display:none !important;}
}

/* ==================================================================
  編集画面
================================================================== */
/* ------------------------------------------------------------------
  ブロックエディター編集画面
------------------------------------------------------------------ */
/* 全幅のセクションが画面上で全幅で表示できるように設定 */
html :where(.wp-block) {max-width:100%;}

/* ↑を100%にするとタイトルが見えにくいので調整 */
.editor-visual-editor__post-title-wrapper, .edit-post-visual-editor__post-title-wrapper {padding:0 2rem;}

/* 編集画面：見出し内の改行は表示しない */
.editor-styles-wrapper :is(h2,h3,h4,h5,h6) br {
  display: none;
}

/* 編集画面：改行を含む見出しにマークを付ける */
.editor-styles-wrapper :is(h2,h3,h4,h5,h6):has(br)::after {
  content: " [改行あり]";
  display: inline-block;
  margin-left: 8px;
  font-size: 12px;
  color: #999;
  font-weight: 400;
}

/* スペーサー：編集画面で見やすいように */
.editor-styles-wrapper .wp-block-spacer {
    display: block !important; /* 編集画面では強制的に表示 */
    border: 1px dashed #ccc;   /* どこにあるか視覚的にわかりやすくする */
    position: relative;
}

/* スペーサー：編集画面で「スペーサー」とラベルを出す */
.editor-styles-wrapper .wp-block-spacer::before {
    content: "スペーサー";
    display: block;
    font-size: 10px;
    color: #fff;
    background: #999;
    padding: 2px 5px;
    position: absolute;
    left: 0;
	width:7em !important;
	text-align:center;
	height:calc(1em + 6px);
}

/* ------------------------------------------------------------------
  ブロックエディター編集画面カラーパレット
------------------------------------------------------------------ */
/* black */
.has-black-background-color {
  background-color: #000000;
}
.has-black-color {
  color: #000000;
}

/* white */
.has-white-background-color {
  background-color: #ffffff;
}
.has-white-color {
  color: #ffffff;
}

/* main */
.has-main-background-color {
  background-color: var(--main_color);
}
.has-main-color {
  color: var(--main_color);
}

/* main-light */
.has-main-light-background-color {
  background-color: var(--main-light_color);
}
.has-main-light-color {
  color: var(--main-light_color);
}

/* main-more light */
.has-main-morelight-background-color {
  background-color: var(--main-morelight_color);
}
.has-main-morelight-color {
  color: var(--main-morelight_color);
}

/* main-dark */
.has-main-dark-background-color {
  background-color: var(--main-dark_color);
}
.has-main-dark-color {
  color: var(--main-dark_color);
}

/* text */
.has-text-background-color {
  background-color: var(--text_color);
}
.has-text-color {
  color: var(--text_color);
}

/* subtext */
.has-subtext-background-color {
  background-color: var(--subtext_color);
}
.has-subtext-color {
  color: var(--subtext_color);
}

/* ==================================================================
  企業情報
================================================================== */
/* ------------------------------------------------------------------
  共通 - セクション見出し
------------------------------------------------------------------ */
.company_heading {
  position: relative;
  display:block; 
  padding: 0 1.5em;
	font-size: 3em !important;
	font-family: var(--mincho_font) !important;
	letter-spacing: 0.1em;
	text-align:center;
width:fit-content; margin:0 auto !important;
	margin-bottom: 0.25em !important;
}

.company_heading::before,
.company_heading::after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1em;
  line-height: 1;
  color: #fff;
  -webkit-text-stroke: 2px #333;
}

.company_heading::before {
  content: "[";
  left: -1em;
}

.company_heading::after {
  content: "]";
  right: -1em;
}

/* ------------------------------------------------------------------
  共通 - ふきだし
------------------------------------------------------------------ */
.bubble_box {
  position: relative;
  background: #fff;
  border: 2px solid #000000 !important;
  border-radius: 24px !important;
  padding: 16px 24px !important;
  width: 50%;
}
@media screen and (max-width: 800px) {
	.bubble_box {width: 100%; padding: 16px !important;}
}

/* 三角 */
.bubble_box::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 25%;
  border-style: solid;
  border-width: 20px 10px 0 10px;
  border-color: #000000 transparent transparent;
  translate: -50% 100%;
}

/* 三角（背景色で内側を塗る） */
.bubble_box::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 25%;
  border-style: solid;
  border-width: 15.5px 7.8px 0 7.8px;
  border-color: #ffffff transparent transparent;
  translate: -50% 100%;
}

.bubble_box p {margin-bottom:0 !important; line-height: 1.75 !important;}

/* ------------------------------------------------------------------
  共通 - ふきだし（下線のみ）
------------------------------------------------------------------ */
.underline_title {
    position: relative;
    padding: 0.8rem 0;
    margin-bottom: 0.2rem;
    border-bottom: 1px solid;
    font-weight: 800 !important;
    text-align: center;
    font-size:17px !important;
    margin-bottom: 0.7em !important;
	padding-bottom: 0.3em !important;
}

.underline_title:before,
.underline_title:after {
    position: absolute;
    top: 100%;
    left: 50%;
    content: "";
    height: 0;
    width: 0;
}

.underline_title:before {
    border: 11px solid;
    border-color: transparent;
    border-top-color: black;
    margin-left: -14px;
}

.underline_title:after {
    border: 10px solid;
    border-color: transparent;
    border-top-color: white;
    margin-left: -13px;
}

/* ------------------------------------------------------------------
  共通 - SMBの「情報」ブロック
------------------------------------------------------------------ */
/* 1. デスクトップ・スマホ共通：行間の余白を狭める */
.smb-information__body>*+* {margin-top:0 !important;}
/* .c-row>.c-row__col {margin-bottom:0 !important; padding-right:0 !important;} */
.smb-information:not([data-sm-split-column=true]) .smb-information__item__label,
.smb-information:not([data-sm-split-column=true]) .smb-information__item__body {padding:12px !important;}
.smb-information:not([data-sm-split-column=true]) .smb-information__item__label {font-weight:700;}
/* 2. デスクトップ版（801px以上）の調整 */
@media screen and (min-width: 801px) {
    .smb-information .smb-information__item .c-row {
        align-items: baseline; /* ラベルと本文の高さを揃える */
    }
}

/* 3. スマホ版（800px以下）の調整 */
@media screen and (max-width: 800px) {
    /* ラベルとボディを縦並びにする（Snow Monkeyのc-row__col--1-1の挙動を補完） */
    .smb-information .smb-information__item .c-row__col {
        display: block;
        width: 100% !important;
    }

    /* 2カラム目（ボディ側）を1字下げする */
    .smb-information .smb-information__item .smb-information__item__body {
        padding-left: 2em !important; /* 2文字分のインデント */
        margin-top: 0.2em;           /* ラベルとの隙間を微調整 */
    }

    /* ラベル側の余白調整 */
    .smb-information .smb-information__item__label {
        font-weight: bold; /* スマホで見やすくするために太字（任意） */
    }
}

.smb-information__body div, .smb-information__body p { font-size:14px !important; line-height:1.5 !important;}

/* ------------------------------------------------------------------
  タイトル（企業名＋写真＋地域などのエリア）
------------------------------------------------------------------ */
/* タイトル情報など */
.company_title {display: flex; align-items: center; gap: 24px;}
.company_title img{width: 100px;}
.company_title .right {width: stretch; line-height: 1.5;}
.company_title .kana {letter-spacing:0.1em; font-size:0.9em !important;}
.company_title h2 {border-bottom: 1px solid var(--main_color) !important; margin-bottom:8px !important;}
.company_title .job {font-size:22px !important; font-weight: 800;}
.company_title .area {font-size:16px;}
.company_title .area::before {content: " | ";}
.company_title .post_date, .company_title .post_date time {text-align:right; font-size:0.9em !important;}
@media screen and (min-width: 801px) {
	.company_title .info_area br {display:none;}
}
@media screen and (max-width: 800px) {
	.company_title {margin-top: 1em;}
	.company_title img {width: 48px;}
	.company_title h2 {font-size:22px !important;}
	.company_title .job {font-size: 16px !important;}
	.company_title .area::before {content: "";}
}

/* アイキャッチ下部余白調整 */
.single-introduce #article #post_image {margin-bottom:24px !important;}

/* タイトル - 情報エリア */
.company_catch .title {
  font-size: 18px !important;
  padding-left: 16px !important;
  border-left: 4px solid var(--main-dark_color) !important;
  border-bottom: 1px solid var(--main-dark_color) !important;
  margin-bottom:8px !important;
  font-weight: 600 !important;
  line-height: 1.5;
  padding-top: 6px;
}

@media screen and (max-width: 800px) {
	.company_catch p {font-size: 15px;}
}

/* 日付関連 */
.post_date { display: flex; gap: 1em; justify-content: flex-end; line-height: 1 !important; margin-bottom: 0.5em !important;}
.post_date div, .post_date time {font-size: 14px;}
@media screen and (max-width: 800px) {
	.post_date {flex-direction: column; gap:0; align-items: flex-end;}
	.post_date div, .post_date time {font-size: 12px; margin-bottom: 0.5em;}
}

/* カテゴリーエリア */
.cat_area {display: flex; align-items: baseline;}
.cat_area span {font-size: 0.8em; width: 8em;}

/* ------------------------------------------------------------------
  目次
------------------------------------------------------------------ */
div#toc_container {width: 90% !important; margin: 0 auto;}
#toc_container p.toc_title+ul.toc_list {margin: 1em 5% !important;}

/* ------------------------------------------------------------------
  VOICE
------------------------------------------------------------------ */
/* ふきだし - 仕事内容 */
.bubble_box .job {font-size: 22px !important; font-weight:700;}

/* 社員紹介 */
.voices_employee {padding: 8px; font-size:0.9em !important;}
.voices_employee .employee_area {display: flex !important; line-height:1; margin-bottom:1em;}
.voices_employee .name_area p {line-height:1 !important;}
.voices_employee .position {font-size: 1.4em !important;}
.voices_employee .kana {font-size: 0.9em !important; line-height: 1.7 !important;}
.voices_employee .name {font-size: 2em !important; font-weight: 800; font-family: var(--mincho_font) !important;}
.voices_employee .smb-information div, .voices_employee .smb-information p {font-size: 14px !important; line-height: 1.5 !important;}
.voices_employee .smb-information__item__label { white-space: nowrap; word-break: keep-all;}
@media screen and (max-width: 800px) {
	.voices_employee .employee_area {gap: 0.5em !important;}
	.voices_employee .position {font-size: 1.3em !important; text-align: center;}
	.voices_employee .name_area p {line-height:1 !important;}
	.voices_employee .name_area {justify-content: center;}
	.voices_employee .smb-information__item { margin-bottom: 10px;}
	.voices_employee .smb-information__item .c-row { margin: 0 !important;}
	.voices_employee .smb-information__item .c-row > .c-row__col { margin-bottom: 0 !important; padding-top: 0 !important;
    padding-bottom: 0 !important;}
	.voices_employee .smb-information__item__label { padding-top: 0 !important; padding-bottom: 0 !important;}
	.voices_employee .smb-information__item__body { width: 100% !important; padding-top: 0 !important; padding-bottom: 10px !important;}
	.voices_employee .smb-information__item__body p { margin: 0 !important;}
}


/* FAQ - 全体（上線削除） */
.smb-faq {border-top:none !important;}
.smb-faq__item {padding: 16px 0 !important; border-bottom: 1px solid #aaa !important;}
.smb-faq__item:last-child { border: none !important;}

/* FAQ - 質問・回答共通 */
.smb-faq__item__answer__label, .smb-faq__item__question__label {font-size: 1.75em !important; margin-right:16px !important;}

/* FAQ - 質問 */
.smb-faq__item__question {align-items: baseline; color: var(--main-dark_color); margin-bottom:16px !important;}
.smb-faq__item__question__body {font-size: 1.1em !important;}
@media screen and (max-width: 800px) {
	.smb-faq__item__answer__label {font-size:15px;}
}

/* ------------------------------------------------------------------
  MESSAGE
------------------------------------------------------------------ */
/* 代表者名など */
.message_rep .position {font-size: 1.1em !important;}
.message_rep .kana {font-size: 0.9em !important; line-height: 1 !important; margin-top: 1em;}
.message_rep .name {font-size: 2em !important; line-height: 1.3 !important; font-weight: 800; font-family: var(--mincho_font) !important;}
@media screen and (max-width: 800px) {
	.message_rep {margin-top: 1em;}
	.message_rep .position {font-size: 1.3em !important; text-align:center; line-height:1;}
	.message_rep .name {font-size: 2em !important;}
	.message_rep .name_area {text-align: center;}
}

/* キャッチコピー */
.message_catch {font-size:22px !important; margin-bottom: 1em !important; font-weight: 800 !important;}

/* 画像とテキスト */
.message_box::after {
    content: "";
    display: block;
    clear: both;
}
.message_box img {
    width: 40%;
    height: auto;
    float: left;
    margin: 0 20px 10px 0;
}
@media screen and (max-width: 800px) {
	.message_box p {font-size: 15px;}
}

/* ------------------------------------------------------------------
  CHECK
------------------------------------------------------------------ */
/* ふきだし */
.check_area .bubble_box {background: #000; color: #ffff00;}
.check_area .bubble_box::after { border-color: #000 transparent transparent;}
@media (max-width: 800px) {
	.check_area .bubble_box {width: 50%;}
  }

/* 見出し */
.check_area h4, .check_area h5 {margin-bottom: 0.5em !important; font-weight: 800 !important;}
.check_area h4 {font-size:24px !important;}
.check_area h5 {font-size:20px !important;}

@media screen and (max-width: 800px) {
	.check_area p {font-size: 15px;}
}

/* ------------------------------------------------------------------
  PROFILE
------------------------------------------------------------------ */
.profile_text {font-size: 14px;
    line-height: 1.75 !important;
    text-align: justify;
	margin-bottom:1em !important;}

/* ------------------------------------------------------------------
  会社情報
------------------------------------------------------------------ */
/* 会社情報 - 全体の外枠 */
.about_info.smb-information {
  border: 1px solid #ccc;
}
.about_info .smb-information__item {
  border-bottom: 1px solid #ccc;
}
.about_info .smb-information__item:last-child {
  border-bottom: none;
}

/* 会社情報 - 行全体 */
.about_info .smb-information__item .c-row {
  align-items: stretch !important;
  margin: 0 !important;
}

/* 会社情報 - Snow Monkey側の余白リセット */
.about_info .smb-information__item .c-row > .c-row__col {
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* 会社情報 - 1カラム目：背景を下まで繋げる */
.about_info .smb-information__item .c-row > .c-row__col:first-child {
  display: flex !important;
  align-self: stretch !important;
  background-color: #e2e9f6;
  border-right: 1px solid #ccc;
}

/* 会社情報 - ラベル */
.about_info .smb-information__item__label {
  display: flex !important;
  align-items: flex-start;
  width: 100%;
  min-height: 100%;
  padding: 12px 10px !important;
  background: transparent !important;
  font-weight: 700;
}

/* 会社情報 - 2カラム目 */
.about_info .smb-information__item__body {
  padding: 8px 16px !important;
}

/* 会社情報 - 本文内の余白リセット */
.about_info .smb-information__item__body p {
  margin: 0;
}

/* 会社情報 - スマホ：縦積み時 */
@media (max-width: 639px) {
  .about_info .smb-information__item .c-row > .c-row__col:first-child {
    border-right: none;
    border-bottom: 1px solid #ccc;
  }

  .about_info .smb-information__item__body {
    padding: 8px 10px;
  }
}

/* 採用情報 - 段落下余白制御 */
.about_recruit p {margin-bottom:0 !important;}

/* 採用対象・採用対象その他をタグチップ方式で表示 */
.about_chips_area {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.about_chip {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 9999px;
    background-color: var(--main-morelight_color);
    color: var(--main-dark_color);
	border: 2px solid var(--main_color);
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.5;
}

/* 募集業種 */
.about_industry {
    background-color: var(--main-morelight_color);
    color: var(--main-dark_color);
	border: 2px solid var(--main_color);
	padding:4px 12px;
    border-radius: 8px;
}