/*
 Theme Name: GENSEN Child
 Theme URI: https://jobs.doto-hokkaido.com/
 Description: Child theme for TCD "GENSEN". Use this theme to safely customize templates and functions.
 Author: andnet
 Author URI: https://jobs.doto-hokkaido.com/
 Template: gensen_tcd050
 Version: 1.0.0
 Text Domain: gensen-child
*/

/* =========================================================
   基本カスタム
========================================================= */

.post_content p {
  line-height: 1.8 !important; /* ← 好みで 1.6〜1.8 あたりに調整 */
}

#article_header {
  background-color: #fff;
  border: none;
  padding: 20px 0 25px;
}
@media only screen and (max-width: 1024px) {
  #article_header {
    padding: 20px;
  }
}

.introduce_shoulder_copy {
  background: #00a44f;
}

#cb_0 {
  height: 100px;
}
#cb_0 .post_content p {
  line-height: 0 !important;
  margin: 0;
}

.dotofree01 {
  font-size: 10em;
  font-weight: bold;
  color: #3dab7b;
  z-index: 2;
}
.rotate-text {
  display: inline-block;
  animation: rotateText 80s linear infinite;
  white-space: nowrap;
  position: absolute;
  left: 0;
  top: 0;
}
@keyframes rotateText {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(30%);
  }
}

.dotofree02 {
  font-size: 4em;
  font-weight: bold;
  color: #333;
  z-index: 1;
}
.rotate-text02 {
  display: inline-block;
  animation: rotateText02 64s linear infinite;
  white-space: nowrap;
  position: absolute;
  right: 0;
  top: 100px;
}
@keyframes rotateText02 {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-90%);
  }
}

@media only screen and (max-width: 767px) {
  #cb_0 {
    height: 130px;
    padding-top: 30px;
  }
}

.gmap-container {
  max-width: 660px;
  width: 100%;
  margin: 0 auto;
}
#gmap {
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative;
}
#gmap iframe {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

.cb_content-carousel .cb_desc,
.cb_content-carousel .excerpt,
.cb_content-carousel .slick-arrow {
  color: #333;
}

#global_menu ul ul a {
  background-color: #;
}

.post_content .normal-lh {
  line-height: 1.8;
}

#post_meta_bottom .post_tag a {
  display: inline-block;
  padding: 5px 16px;
  border: 2px solid #ea9d2e;
  border-radius: 16px;
  color: #ea9d2e !important;
  text-decoration: none;
  font-weight: bold;
}
#post_meta_bottom .post_tag a:hover {
  background-color: #ea9d2e;
  color: #fff !important;
}
#post_meta_bottom li {
  padding: 0 15px 0 0 !important;
}
#post_meta_bottom li:last-child {
  margin-bottom: 10px !important;
}

.post_content th {
  line-height: 1.4 !important;
}

/* .cf7-form {
  margin: 0 auto;
  padding: 20px;
  background-color: #fff;
}
.cf7-form-group {
  margin-bottom: 20px;
}
.cf7-form-group label {
  width: 30%;
  font-weight: bold;
  text-align: left;
}
.cf7-form-control,
.cf7-form-select {
  width: 65%;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 16px;
  background-color: #fff;
}
.cf7-birthdate-container {
  display: flex;
  gap: 10px;
  align-items: center;
}
.cf7-birthdate-container div {
  display: flex;
  align-items: center;
  gap: 5px;
}
.cf7-birthdate-container span {
  font-size: 14px;
  margin-left: 2px;
}
.cf7-form-submit-group {
  display: flex;
  justify-content: center;
}
.cf7-form-submit {
  width: 100%;
  padding: 10px;
  background-color: #2fc4ba;
  color: #fff;
  border: none;
  border-radius: 5px;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.3s ease-in-out;
}
.cf7-form-submit:hover {
  background-color: #2fc4ba;
}
.wpcf7 {
  background-color: #f0fcff !important;
} */

/* =========================================================
   ▼ 求人テーブル（doto-table） ボーダー管理セクション
   ここを書き換えるだけで、テーブルの線の出し分けが簡単にできます
========================================================= */
:root {
  --doto-table-outer-border-width: 0;
  --doto-table-outer-border-color: transparent;
  --doto-table-cell-border-width: 0;
  --doto-table-cell-border-color: transparent;
  --doto-table-row-divider-width: 0;
  --doto-table-row-divider-color: transparent;
}

/* --- テーブル本体 --- */
.doto-table {
  width: 100%;
}

/* PC・モバイル共通：確実に枠線なし */
.doto-table,
.doto-table th,
.doto-table td {
  border: none !important;
}

.doto-table th,
.doto-table td {
  line-height: 1.8 !important;
}

/* 背景色などはそのまま */
.doto-table th {
  background: #ebfbff !important;
  text-align: left;
  font-weight: 700;
}

/* PC表示用調整 */
@media screen and (min-width: 768px) {
  .doto-table th {
    width: 160px;
  }
  .doto-table {
    border-collapse: separate;
    border-spacing: 0 8px;
  }
  .doto-table tr {
    background-color: #fff;
    border-radius: 6px;
    overflow: hidden;
  }
  .doto-table th,
  .doto-table td {
    padding: 12px 10px;
  }
}

/* モバイル表示 */
@media screen and (max-width: 767px) {
  .doto-table {
    border-collapse: collapse;
  }
  .doto-table,
  .doto-table tbody,
  .doto-table tr,
  .doto-table th,
  .doto-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .doto-table tr {
    margin: 0 0 16px;
    border-radius: 6px;
    background-color: #fff;
    overflow: hidden;
  }
  .doto-table th,
  .doto-table td {
    padding: 10px;
  }
}

/* =========================================================
   ポストメタ領域（#post_meta_bottom）オーバーライド
   ※テーブル以外のボーダー調整はここでまとめて管理
========================================================= */
#post_meta_bottom {
  margin: 0;
  padding: 0;
  background: none;
}

/* タグアイコン（擬似要素）を消す */
#post_meta_bottom li.post_tag:before {
  content: "";
  display: none;
}

/* レイアウト微調整（既存仕様維持） */
@media only screen and (max-width: 1024px) {
  body.single-introduce #post_meta_bottom {
    margin: 0;
  }
}

/* thanks ページ用の簡単ボタン */
.btn-primary,
.btn-secondary {
  display: inline-block;
  padding: 12px 20px;
  border-radius: 6px;
  text-decoration: none;
}
.btn-primary {
  background: #00a44f;
  color: #fff !important;
}
.btn-primary:hover {
  opacity: 0.9;
}
.btn-secondary {
  background: #eee;
  color: #333 !important;
  margin-left: 10px;
}
.btn-secondary:hover {
  background: #e2e2e2;
}

.post_content h1,
.post_content h2,
.post_content h3,
.post_content h4,
.post_content h5,
.post_content h6 {
  line-height: 1.4;
}

/* ストライプアンダーライン付き見出し */
h2.wp-block-heading.stripe-underline {
  position: relative;
  display: inline-block;
  padding-bottom: 2px;
}

h2.wp-block-heading.stripe-underline::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -10%; /* 左に10%はみ出す */
  width: 120%; /* 全体を110%に広げる（左右均等） */
  height: 16px; /* アンダーラインの太さ */
  background-image: repeating-linear-gradient(
    135deg,
    transparent,
    transparent 10px,
    #fff67f 10px,
    #fff67f 17px
  );
  z-index: -1;
}
/* 終了 ストライプアンダーライン付き見出し */

/* ===== フッター固定ボタン（高さ厳密合わせ） ===== */
@media (max-width: 1024px) {
  .footer-fixed-buttons {
    position: fixed;
    bottom: 0;
    left: 0;
    width: calc(100% - 50px); /* pageTop分だけ引く */
    display: flex;
    z-index: 9998;
    height: 50px;
  }

  .footer-fixed-buttons .footer-btn {
    flex: 1 1 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    box-sizing: border-box; /* ← これで枠も含めて50px */
    background: #ffe95d;
    border: 1px solid #fff;
    color: #3dab7b;
    text-decoration: none;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
  }

  /* 二重線防止 */
  .footer-fixed-buttons .footer-btn + .footer-btn {
    margin-left: -1px;
  }

  body {
    padding-bottom: 50px;
  }
}

@media (max-width: 1024px) {
  #return_top a {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box; /* ← ここも揃える */
    line-height: 1;
  }
}

.fav-job-btn {
  background: #fff; /* 背景（通常） */
  border: 1px solid #ccc; /* 通常時の枠色 */
  padding: 0.4em 0.8em;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
}

.fav-job-btn.is-faved {
  background: #fff3cd; /* お気に入り時の背景 */
  border: 1px solid #f2b200; /* お気に入り時の枠色 */
  color: #a87400; /* 文字色（調整可） */
}
/* ヘッダー下マージン */
.single-introduce #article .post-title-row #post_title {
  margin: 0 0 16px 0;
}

/* 写真上にお気に入り */
.introduce_list_col .image {
  position: relative;
}

.introduce_list_col .fav-job-btn {
  position: absolute;
  top: 8px;
  left: 8px;
  background: #fff;
  border: 1px solid #ccc;
  padding: 4px 8px;
  font-size: 12px;
  border-radius: 4px;
  cursor: pointer;
  z-index: 2; /* 画像より前面に出す */
}

.introduce_list_col .fav-job-btn.is-faved {
  background: #fff3cd;
  border-color: #f2b200;
  color: #a87400;
}

/* 検索結果カードの画像上にボタンを重ねる */
.custom_search_results #post_list2 .article .image {
  position: relative;
}

.custom_search_results #post_list2 .article .fav-job-btn {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  padding: 4px 8px;
  font-size: 12px;
  background: #fff;
  border: 1px solid #ccc; /* 通常の枠色 */
  border-radius: 4px;
  cursor: pointer;
}

.custom_search_results #post_list2 .article .fav-job-btn.is-faved {
  background: #fff3cd;
  border-color: #f2b200; /* お気に入り時の枠色 */
  color: #a87400;
}

/* お気に入り一覧のカード：ブロックのみ（flex不使用） */
#fav-jobs-list {
  margin: 0;
  padding: 0;
}
#fav-jobs-list .fav-card {
  display: block;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid #e5e7eb; /* 薄いグレー */
  border-radius: 8px;
  background: #fff;
}

/* 1行目：タイトル */
.fav-card .fav-title {
  margin: 0 0 6px;
  font-size: 1.2rem;
  line-height: 1.4;
}
.fav-card .fav-title a {
  text-decoration: none;
}

/* 2行目：リンクだけ */
.fav-card .fav-actions {
  margin: 0;
}
.fav-card .fav-link {
  display: inline-block;
  text-decoration: underline;
}

/* 余白調整（モバイルで詰まりにくく） */
@media (min-width: 768px) {
  #fav-jobs-list .fav-card {
    margin-bottom: 18px;
    padding: 16px 18px;
  }
}

.fav-card .job-title {
  margin: 0 0 6px;
  font-size: 0.9rem;
  color: #666;
}

.archive-custom-title {
  color: #3dab7b;
  margin: 24px 0 12px;
  font-size: clamp(24px, 3.2vw, 40px);
  line-height: 1.25;
}

/* ===== DOTOフォーム専用デザイン ===== */
.dotoform-wrapper {
  margin: 0 auto;
  background: #fafafa;
}

.dotoform-wrapper p {
  margin-bottom: 20px !important;
  font-size: 16px;
}

.dotoform-required {
  color: #ff6600;
  font-weight: bold;
  margin-left: 4px;
}

.dotoform-input,
.dotoform-textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 16px;
  box-sizing: border-box;
}

.dotoform-textarea {
  min-height: 120px;
}

.dotoform-checkbox input {
  margin-right: 5px;
}

.dotoform-accept {
  font-size: 14px;
}

.dotoform-submit {
  background: #3dab7b !important;
  color: #fff;
  padding: 12px 30px;
  font-size: 16px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  display: inline-block;
}

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

@media (max-width: 1024px) {
  .footer-fixed-buttons {
    display: none !important;
  }
  body {
    padding-bottom: 0 !important;
  } /* 余白も戻す */
}

/* ===========================================
 * SWELL風「関連記事カード」PCスタイル（GENSEN子テーマ）
 * 対象HTML：andnet- で始まるクラス（前回提示のマークアップ）
 * =========================================== */

/* 外枠：細めの実線。キャプションを上辺にかぶせる */
.andnet-block-style.is-style-border_dg {
  position: relative;
  border: 1px dashed #6dbabb; /* SWELL風の締まった黒寄りの細線 */
  border-radius: 2px; /* 角はほぼ直角 */
  background: #fff;
  padding: 20px; /* 内側余白 */
}

/* キャプション：上辺に乗せる。背景で枠線をマスク */
.andnet-blogCard__caption {
  position: absolute;
  top: -12px; /* 上に少し飛び出させる */
  left: 18px;
  display: inline-block;
  padding: 0 10px;
  background: #fff; /* 枠線の上に白帯を敷いて線を切る */
  font-weight: 400;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  color: #333333;
}

/* チェックマーク（SWELLの「✓ あわせて読みたい」風） */
.andnet-blogCard__caption::before {
  content: "✓ ";
  margin-right: 4px;
}

/* 中身レイアウト：左サムネ / 右テキスト（PC2カラム） */
.andnet-blogCard__inner {
  display: grid;
  grid-template-columns: 320px 1fr; /* 画像幅（目安） */
  gap: 24px;
  align-items: center; /* 画像と本文の視線をそろえる */
}

/* サムネ：16:9でクリップ、角は直線 */
.andnet-postThumb__figure {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f3f4f6; /* 画像なしのときのプレースホルダ色 */
}
.andnet-postThumb__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.andnet-postThumb__ph {
  width: 100%;
  height: 100%;
}

/* タイトル：太字・やや大きめ */
.andnet-blogCard__title {
  display: inline-block;
  font-weight: 600;
  font-size: clamp(16px, 2vw, 22px);
  line-height: 1.4;
  color: #111;
  text-decoration: none;
  margin: 2px 0 10px;
}
.andnet-blogCard__title:hover {
  text-decoration: underline;
}

/* 抜粋：薄いグレーで長文でも読みやすく */
.andnet-blogCard__excerpt {
  display: block;
  color: #6b7280; /* SWELLのグレーに近いトーン */
  font-size: 0.88rem;
  line-height: 1.9;
}

/* カード全体のホバー：うっすら持ち上げて影を付ける（好みで） */
.andnet-block-style.is-style-border_dg:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* ------- レスポンシブ（SPでは1カラム＆余白を最適化） ------- */
@media (max-width: 1024px) {
  .andnet-blogCard__inner {
    grid-template-columns: 260px 1fr;
    gap: 18px;
  }
}
@media (max-width: 767px) {
  .andnet-block-style.is-style-border_dg {
    padding: 16px;
  }
  .andnet-blogCard__caption {
    top: -10px;
    left: 12px;
    font-size: 0.9rem;
    padding: 0 8px;
  }
  .andnet-blogCard__inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .andnet-blogCard__title {
    font-size: clamp(17px, 4.5vw, 20px);
    margin-bottom: 6px;
  }
  .andnet-blogCard__excerpt {
    font-size: 0.95rem;
    line-height: 1.7;
  }
}

.apply-cta-wrap {
  margin: 24px 0;
  text-align: center;
}
.btn-apply {
  display: inline-block;
  width: 320px;
  max-width: 100%;
  padding: 14px 0;
  border-radius: 6px;
  text-align: center;
}
@media (max-width: 767px) {
  .btn-apply {
    width: 100%; /* スマホでは全幅 */
  }
}
.btn-apply.primary {
  background: #ffae00;
  color: #fff;
  font-weight: 600;
  font-size: 16px;
}
.btn-apply.primary:hover {
  opacity: 0.9;
}

.cf7-consent {
  margin: 16px 0;
}
.cf7-form-acceptance input[type="checkbox"] {
  margin-right: 8px;
}
.cf7-consent a {
  text-decoration: underline;
}

/* =========================================================
   応募フォーム（Contact Form 7）見本準拠スタイル
   - ボックス配色：#3dab7b（枠） / #f3faf7（背景）
   - 送信ボタン：#ffae00
========================================================= */

/* --- 応募先の求人ボックス（見本のグリーン枠） --- */
.apply-job-summary {
  margin: 1.5rem 0;
  padding: 1.2rem 1.4rem 1rem 2rem;
  border: 2px dashed #3dab7b !important;
  border-radius: 8px;
  background: #fff;
}
.apply-job-summary__h {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  color: #3dab7b; /* 少し濃い緑で見出し */
}
.apply-job-summary__row dt {
  color: #3dab7b;
}
/* 応募先サマリー：dt→ddを縦並びに */
.apply-job-summary__row {
  display: grid; /* gridのまま1列に */
  grid-template-columns: 1fr !important;
  grid-auto-rows: auto;
}
.apply-job-summary__row dt,
.apply-job-summary__row dd {
  grid-column: 1; /* 同じ列に積む */
}
.apply-job-summary__row dt {
  margin: 0 0 0.25rem;
  font-weight: 600;
}
.apply-job-summary__row dd {
  margin: 0;
}
