@charset "utf-8";

html,body {
    overflow-x: hidden;
}

.toggle-button {
    display: block;
    padding: 8px 16px;
    background-color: #009844;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    margin:20px auto;
    width:200px;
}

.toggle-button:hover {
    background-color: #46cf5d;
}

.details-container {
    margin-bottom: 15px;
}

.datalist {
    border-top:#98A6B5 2px solid;
    display: flex;
    flex-wrap: wrap;
    margin-left:auto;
    margin-right:auto;
}

.datalist dt,
.datalist dd {
    padding-top:17px;
    padding-bottom:19px;
    border-bottom:#CDD6DD 1px solid;
}

#sub ul {
    margin-top:1em;
    margin-bottom:1em;
    padding-left:1em;
    list-style: disc;
}

#sub ul li {
    margin-left:1em;
    list-style: disc;
}

/* ボックス内に紛れ込んだ空のpタグを非表示（レイアウト崩れ対策） */
#voice-boxs > p {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
}

.voice-box {
    width: 480px;
    height: auto;
    min-height: 400px;
    padding: 30px 30px;
    margin-bottom: 30px;
    flex: 0 0 480px;
    box-sizing: border-box;
    overflow: hidden;
}

.bg-a {
    background: url(../images/voice-box-a.png) no-repeat;
    background-size: 100% 100%;
}

.bg-b {
    background: url(../images/voice-box-b.png) no-repeat;
    background-size: 100% 100%;
}

.qa-block {
    margin-bottom:1em;
}

.qa-q {
    color:#009844;
    margin-bottom:1em;
}

.qa-q::before {
    content: "Q";
    margin-right:1em;
}

.qa-a {
    padding-left:2em;
}

.qa-a::before {
    content: "A";
    margin-right:1em;
}

/* PC用（768px以上） */
@media screen and (min-width: 768px) {
    #sub p,
    #sub h2,
    #sub h3,
    #sub h4,
    #sub ul,
    .datalist {
        width:864px;
        margin-left:auto;
        margin-right:auto;
    }

    #sub h3 {
        font-size:19px;
        color:#009844;
        margin-top:50px;
        margin-bottom:46px;
    }

    #sub h4 {
        font-size:17px;
        color:#333;
        margin-bottom:38px;
    }

    #sub-eyecatch {
        width:100%;
    }

    #sub-eyecatch img {
        max-width:110%;
        width:110%;
        margin-left:-5%;
    }

    .datalist {
        margin-bottom:70px;
        font-size:16px;
        line-height: 1.4em;
    }

    .datalist dt {
        width:147px;
    }

    .datalist dd {
        width:717px;
    }

    #recruite-movie {
        width:1000px;
        height:563px;
        margin-top:44px;
        margin-left:auto;
        margin-right:auto;
    }

    #voice-boxs {
        display: flex;
        width:1000px;
        margin-left:auto;
        margin-right:auto;
        flex-wrap:wrap;
        justify-content: space-between;
    }

    .voice-title {
        display: block !important;
        position: relative;
        padding-left: 85px;
        min-height: 60px;
    }

    .voice-no {
        position: absolute;
        left: 0;
        top: 0;
        font-size:53px;
        font-weight: bold;
    }

    .voice-text {
        color:#009844;
        font-size: 19px;
        line-height: 1.5em;
        font-weight: normal;
    }

    .voice-content {
        margin-top:36px;
        font-size:16px;
        line-height: 30px;
    }

    #appeal {
        width:1280px;
        margin-left:auto;
        margin-right:auto;
        padding-left: 40px;
    }

    #appeal .elm {
        width:50%;
    }

    #appeal-text-wrap p,
    #appeal-text-wrap h2 {
        margin-left:34px;
        width:440px;
    }

    #appeal-text-wrap h2 {
        text-align: left;
    }

    #appeal-text-lead {
        color:#009844;
        font-size:19px;
        line-height: 30px;
        margin-bottom:27px;
    }

    #appeal-text-detail {
        font-size:16px;
        line-height: 30px;
    }
}

/* スマホ用（767px以下） */
@media screen and (max-width: 767px) {
    #sub p,
    #sub h2,
    #sub h3,
    #sub h4,
    #sub ul,
    .datalist {
        width:300px;
        margin-left:auto;
        margin-right:auto;
    }

    #sub h2 {
        margin-top:60px;
    }

    #sub h3 {
        font-size:19px;
        color:#009844;
        margin-top:50px;
        margin-bottom:46px;
    }

    #sub h4 {
        font-size:17px;
        color:#333;
        margin-bottom:38px;
    }

    .datalist {
        margin-bottom:70px;
    }

    .datalist dt {
        width:120px;
    }

    .datalist dd {
        width:180px;
        line-height: 1.4em;
    }

    #sub-eyecatch img {
        max-width:395px;
        width:395px;
        margin-left:-10px;
    }

    #recruite-movie {
        margin-top:50px;
    }

    #appeal-text-wrap h2 {
        width:300px;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
    }

    .voice-box {
        width:300px;
        height:auto;
        min-height:270px;
        margin-left:auto;
        margin-right:auto;
        margin-bottom:20px;
        flex: 0 0 300px;
    }

    .voice-title {
        display: block !important;
        position: relative;
        padding-left: 60px;
        min-height: 40px;
    }

    .voice-no {
        position: absolute;
        left: 0;
        top: 0;
        font-size:32px;
        font-weight: bold;
    }

    .voice-text {
        margin-bottom:1em;
        color:#009844;
        font-size: 14px;
        line-height: 1.5em;
        font-weight: normal;
    }

    .voice-content {
        font-size: 12px;
        line-height: 1.5em;
    }
}

/* ===== ブロックエディタのテーブルをdatalist風に ===== */
#sub .wp-block-table {
    width: 864px;
    margin-left: auto;
    margin-right: auto;
    border-collapse: collapse;
    border-top: #98A6B5 2px solid;
    margin-bottom: 70px;
}

#sub .wp-block-table td,
#sub .wp-block-table th {
    padding: 17px 12px 19px;
    border-bottom: #CDD6DD 1px solid;
    border-left: none;
    border-right: none;
    font-size: 16px;
    line-height: 1.4em;
    text-align: left;
    vertical-align: top;
}

#sub .wp-block-table td:first-child,
#sub .wp-block-table th:first-child {
    width: 147px;
    color: #555;
    font-weight: normal;
    white-space: nowrap;
}

#sub .wp-block-table td:last-child,
#sub .wp-block-table th:last-child {
    width: auto;
}

#sub .wp-block-table thead {
    display: none;
}

@media screen and (max-width: 767px) {
    #sub .wp-block-table {
        width: 300px;
    }

    #sub .wp-block-table td:first-child,
    #sub .wp-block-table th:first-child {
        width: 100px;
        font-size: 14px;
    }

    #sub .wp-block-table td,
    #sub .wp-block-table th {
        font-size: 14px;
        padding: 12px 8px;
    }
}

/* ===== Contact Form おしゃれ化 ===== */

#contact-form-area {
  padding: 70px 20px 100px !important;
}

/* contact-form-box: センタリング＋アクセントライン */
#contact-form-area .contact-form-box {
  width: 920px !important;
  max-width: 920px !important;
  margin: 50px auto 0 !important;
  padding: 30px 48px !important;
  border: none !important;
  border-top: 4px solid #009844 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  border-radius: 0 0 12px 12px !important;
  box-shadow: 0 2px 20px rgba(0,152,68,0.07) !important;
}

/* wpcf7ラッパーはフラットに（カードはcontact-form-boxに任せる） */
#contact-form-area .wpcf7,
#contact-form-area .wpcf7-form,
#contact-form-area form {
  width: 100% !important;
  max-width: 100% !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* ページタイトル */
#contact-form-area .ac {
  text-align: center !important;
}

/* フォーム内のpタグ（各フィールドブロック） */
#contact-form-area .wpcf7-form p {
  margin: 0 0 24px !important;
  width: 100% !important;
}

/* ラベル */
#contact-form-area .wpcf7-form label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin-bottom: 7px;
  letter-spacing: 0.03em;
}

/* テキスト・メール・電話入力欄 */
#contact-form-area .wpcf7-form input[type="text"],
#contact-form-area .wpcf7-form input[type="email"],
#contact-form-area .wpcf7-form input[type="tel"] {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  height: 46px;
  padding: 0 16px !important;
  border: 1.5px solid #dce8dc !important;
  border-radius: 8px !important;
  font-size: 15px;
  color: #333;
  background: #fff !important;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  appearance: none;
}

/* テキストエリア */
#contact-form-area .wpcf7-form textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  height: 200px !important;
  padding: 14px 16px !important;
  border: 1.5px solid #dce8dc !important;
  border-radius: 8px !important;
  font-size: 15px;
  color: #333;
  background: #fff !important;
  line-height: 1.7;
  resize: vertical;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  appearance: none;
}

/* フォーカス時 */
#contact-form-area .wpcf7-form input[type="text"]:focus,
#contact-form-area .wpcf7-form input[type="email"]:focus,
#contact-form-area .wpcf7-form input[type="tel"]:focus,
#contact-form-area .wpcf7-form textarea:focus {
  border-color: #009844 !important;
  box-shadow: 0 0 0 3px rgba(0,152,68,0.12) !important;
}

/* セレクト */
#contact-form-area .wpcf7-form select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  height: 46px;
  padding: 0 40px 0 16px !important;
  border: 1.5px solid #dce8dc !important;
  border-radius: 8px !important;
  font-size: 15px;
  color: #333;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23009844' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}

#contact-form-area .wpcf7-form select:focus {
  border-color: #009844 !important;
  box-shadow: 0 0 0 3px rgba(0,152,68,0.12) !important;
  outline: none;
}

/* 送信ボタン */
#contact-form-area .wpcf7-form input[type="submit"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 52px !important;
  background: #009844 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.1s !important;
  box-shadow: 0 4px 12px rgba(0,152,68,0.2) !important;
}

#contact-form-area .wpcf7-form input[type="submit"]:hover {
  background: #007a38 !important;
}

#contact-form-area .wpcf7-form input[type="submit"]:active {
  transform: scale(0.98) !important;
}

/* バリデーションエラー時の赤枠 */
#contact-form-area .wpcf7-form .wpcf7-not-valid {
  border-color: #e74c3c !important;
  background: #fff5f5 !important;
}

/* エラー・サンクスメッセージ */
#contact-form-area .wpcf7-response-output {
  margin-top: 16px !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  border: none !important;
}

/* スマホ対応 */
@media screen and (max-width: 767px) {
  #contact-form-area .contact-form-box {
    width: 300px !important;
    max-width: 300px !important;
    padding: 24px 20px !important;
  }
  #contact-form-area > div:not(.contact-form-box) > .wpcf7 {
    padding: 24px 20px !important;
  }
}

/* ===== .contact-form-box がないページ用（recruit-form / bustour等）===== */
/* .contact-form-box の中の .wpcf7 には当てない */
#contact-form-area > div:not(.contact-form-box) > .wpcf7 {
  margin: 30px auto 0 !important;
  padding: 30px 48px !important;
  border: none !important;
  border-top: 4px solid #009844 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  border-radius: 0 0 12px 12px !important;
  box-shadow: 0 2px 20px rgba(0,152,68,0.07) !important;
}

/* ===== 投稿シングルページ ===== */

/* 日付 */
#sub .post-date {
  text-align: left;
  font-size: 13px;
  color: #888;
  margin-bottom: 8px;
}

/* タイトル */
#sub .post-title,
#sub h1.entry-title,
.single #sub h1,
.single .entry-title {
  text-align: left !important;
  font-size: 22px !important;
  font-weight: bold;
  color: #333;
  margin-bottom: 36px !important;
  line-height: 1.5;
}

/* 一覧に戻るボタン */
.single .link-btn,
#sub .back-to-list {
  text-align: left !important;
  margin-left: 0 !important;
}

/* ===== 投稿シングルページ（news-single）===== */

/* 日付：左寄せ */
.news-single-date {
  text-align: left;
  font-size: 13px;
  color: #888;
  margin-bottom: 8px;
  width: 864px;
  margin-left: auto;
  margin-right: auto;
}

/* タイトルh2：左寄せ・サイズアップ */
.news-single h2 {
  text-align: left !important;
  font-size: 24px !important;
  font-weight: bold;
  color: #333;
  margin-bottom: 40px !important;
  line-height: 1.5;
}

/* 一覧に戻るボタン：左寄せ */
.news-single .link-btn {
  text-align: left !important;
}

/* スマホ対応 */
@media screen and (max-width: 767px) {
  .news-single-date {
    width: 300px;
  }
  .news-single h2 {
    font-size: 20px !important;
  }
}

/* ===== 投稿本文の段落間余白（single.phpのみ） ===== */
.news-single-content p {
  margin-top: 1.8em;
  margin-bottom: 1.8em;
}

.news-single-content p:first-child {
  margin-top: 0;
}

.news-single-content p:last-child {
  margin-bottom: 0;
}