@charset "UTF-8";

html {
  scroll-behavior: smooth;
  scroll-padding-top: 76px;
}
/* Google Fonts は functions.php（my_enqueue_google_fonts）で読み込み
   ※@importはhtmlルールの後に書くと仕様上無視されるためCSSでは読み込まない */

/*!
Theme Name: Cocoon Child (夢工房テンプレートA)
Description: 夢工房のクライアントサイト用スターターテンプレート（Cocoon子テーマ）
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    2.0.0
*/

/**************************************************
 * 0. CSS カスタムプロパティ（変数）
 **************************************************/
:root {
  /* ─── 背景色 ─── */
  --bg-1: #ffffff;  /* メイン（白） */
  --bg-2: #F7F7F7;  /* セクション（中間） */
  --bg-3: #EAEAEA;  /* フッター（濃い） */

  /* ─── ボタン ─── */
  --btn-color: #EF5C01;

  /* ─── テキスト ─── */
  --clr-text:   #2F2F2F;
  --clr-title:  #2F2F2F;  /* h2タイトル色 */
  --clr-muted:  #999;
  --clr-border: #ccc;
  --clr-hover:      #0ff;     /* リンクホバー色（案件ごとに変更） */
  --clr-highlight:  #FBFFBD; /* テキストハイライト */

  /* ─── フォント ─── */
  --font-base:   "Zen Kaku Gothic New", sans-serif;
  --font-accent2: "Jost", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  --font-accent: "Noto Sans JP", sans-serif;

  /* ─── フォントサイズ ─── */
  --fs-xl:   36px;  /* 特大 */
  --fs-lg:   24px;  /* 大 */
  --fs-base: 14px;  /* ベース */
  --fs-sm:   12px;  /* 小 */

  /* ─── フォントウェイト ─── */
  --fw-normal: normal;
  --fw-bold:   500;

  /* ─── 行間 ─── */
  --lh-base:    1.6;
  --lh-heading: 1.2;
  --lh-btn:     1;

  /* ─── レイアウト ─── */
  --max-w:         1200px;
  --max-w-lg:      1440px; /* ※初期値。実際の値は functions.php の MY_DESIGN_WIDTH が上書きする。変更はそちらで */
  --max-w-content: 900px;

  /* ─── セクション余白 ─── */
  --section-pt: 80px;
  --section-pb: 120px;
  --pad-x:      15px;

  /* ─── ボーダー半径 ─── */
  --radius-btn:  30px;
  --radius: 20px;
}

@media (max-width: 767px) {
  :root {
    --fs-xl:   24px;
    --fs-lg:   20px;
    --fs-base: 16px;
    --fs-sm:   12px;
  }
}

/**************************************************
 * 1. 共通リセット・基本設定
 **************************************************/
p, .body, a, .navi-in a, .breadcrumb, .breadcrumb-caption, #header .site-name-text,
.site-name-text, .copyright,
.entry-content > *, .mce-content-body > *,
.article p, .demo .entry-content p, .article dl, .article ul, .article ol, .article blockquote, .article pre, .article table, .article .toc,
.body .article, .body .column-wrap, .body .new-entry-cards, .body .popular-entry-cards, .body .navi-entry-cards, .body .box-menus,
.body .ranking-item, .body .rss-entry-cards, .body .widget, .body .author-box, .body .blogcard-wrap, .body .login-user-only,
.body .information-box, .body .question-box, .body .alert-box, .body .information, .body .question, .body .alert, .body .memo-box,
.body .comment-box, .body .common-icon-box, .body .blank-box, .body .button-block, .body .micro-bottom, .body .caption-box,
.body .tab-caption-box, .body .label-box, .body .toggle-wrap, .body .wp-block-image, .body .booklink-box, .body .kaerebalink-box,
.body .tomarebalink-box, .body .product-item-box, .body .speech-wrap, .body .wp-block-categories, .body .wp-block-archives,
.body .wp-block-archives-dropdown, .body .wp-block-calendar, .body .ad-area, .body .wp-block-gallery, .body .wp-block-audio,
.body .wp-block-cover, .body .wp-block-file, .body .wp-block-media-text, .body .wp-block-video, .body .wp-block-buttons,
.body .wp-block-columns, .body .wp-block-separator, .body .components-placeholder, .body .wp-block-search, .body .wp-block-social-links,
.body .timeline-box, .body .blogcard-type, .body .btn-wrap, .body .btn-wrap a, .body .block-box, .body .wp-block-embed,
.body .wp-block-group, .body .wp-block-table, .body .scrollable-table, .body .wp-block, .body .video-container,
.comment-area, .related-entries, .pager-post-navi, .comment-respond {
  margin: 0;
  padding: 0;
  border: none;
  font-family: var(--font-base);
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
  line-height: var(--lh-base);
  color: var(--clr-text);
}

.entry-title, .archive-title,
.header-text-layer .header-catch,
.article h1, .article h2, .article h3, .article h4, .article h5, .article h6 {
  margin: 0;
  padding: 0;
  border: none;
  background-color: transparent;
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
  line-height: 1;
}

.article .ttl-2-xl {
  padding-bottom: 16px;
  font-family: var(--font-accent);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--clr-title);
  line-height: var(--lh-heading);
  text-align: center;
}

/* --- 見出し＋英語ラベル ---
   使い方: <h2 class="ttl-2-xl" data-en="About">会社概要</h2>
   英語ラベルは装飾なのでdata属性で持たせ、見出し階層に入れない */
.article .ttl-2-xl[data-en] {
  margin-bottom: 80px;
}
.article .ttl-2-xl[data-en]::after {
  content: attr(data-en);
  display: block;
  margin-top: 8px;
  font-family: var(--font-accent2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-normal);
  color: var(--clr-muted);
  letter-spacing: 2px;
  line-height: 1;
}

/* --- H6（英語サブタイトルなど）
   ※旧方式。data-en移行が終わったら削除する --- */
.article .ttl-6-xs {
  text-align: center;
  margin-bottom: 80px;
}

#list, .list-wrap,
.article ul li, .article ol li {
  margin: 0;
}

.list {
  flex-direction: inherit;
  row-gap: inherit;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

a:where(:not(.wp-element-button)) {
  text-decoration: none;
}

a:hover {
  color: var(--btn-color);
}

.fa.fa-home {
  display: none;
}

/* 共通パーツ非表示設定（スマホ用など） */
.sp {
  display: none;
}

/**************************************************
 * 2. レイアウト・メインエリア
 **************************************************/

/* 横スクロール制御（PCのみ） */
body {
  background-color: var(--bg-1);
}

@media screen and (min-width: 768px) {
  body {
    min-width: 0;
  }
}

.content {
  margin: 0;
}

.wrap {
  width: auto;
}

main.main {
  padding: 56px 0 0;
  border: none;
}

@media screen and (max-width: 767px) {
  main.main {
    padding: 40px 0 0;
  }
}

/* 記事本文エリア */
.entry-content {
  margin: 0;
}

/* ==================================================
   セクション背景の共通設定 (アンティークホワイト)
   ================================================== */
/*
   1. .home ... section : トップページのエディタで作ったセクション
   2. .article-section  : 投稿・固定ページ (content.phpで追加したクラス)
   3. .archive-section  : 一覧ページ (list.phpで追加したクラス)
*/
#cta section,
article.article .entry-content section,
.article-section,
.archive-section {
  padding-top: var(--section-pt);
  padding-bottom: var(--section-pb);
}

/* ==================================================
   偶数番目のセクションを白にする (縞々)
   ================================================== */
/* TOPページの偶数番目だけ背景色を変更 */
body.home article.article .entry-content section:nth-child(even),
body.home .article-section:nth-child(even),
body.home .archive-section:nth-child(even) {
  background-color: var(--bg-1);
}

/* 汎用ボックス */
.wp-block-group.box.wp-block-group-,
.breadcrumbs-in,
.box {
  max-width: var(--max-w);
  margin: 0 auto 0;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

body.contact .article .box,
.single .main .article-section .box {
  max-width: var(--max-w-content);
  margin: 0 auto 0;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

.breadcrumbs-in {
  text-align: right;
  font-size: 12px;
}

.breadcrumbs-in a {
  font-size: 12px;
}

.breadcrumb-sep {
  padding: 0 4px;
}

.breadcrumbs-layer {
  padding: 8px 0;
  background-color: var(--bg-2);
}

.box p {
  line-height: var(--lh-base);
}

/* トップに戻るボタン */
.go-to-top-visible .go-to-top {
  bottom: 80px;
}

/**************************************************
 * 3. ヘッダーエリア
 **************************************************/

/* --- 固定バー (.header-container) --- */
#header-container {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
  height: auto;
  margin-bottom: 0;
  background-color: transparent;
}

/* --- ヘッダー中身 (.header-container-in) --- */
#header-container-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
  padding: 0 0 0 40px;
}

/* --- ビジュアルエリア (#header) --- */
#header {
  position: relative;
  width: 100%;
  min-height: 800px;
  margin: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

body:not(.home) #header {
  min-height: 400px;
}

.header-in {
  display: block;
  margin: 0;
}

/* --- ロゴ関連 --- */
.tagline {
  margin: 0;
}

.logo-image {
  padding: 0;
}

.site-name-text-link {
  padding: 0;
}

/* --- H1 --- */
.header-text-layer {
  position: absolute;
  top: 50%;
  left: 5%;
  width: 90%;
}

.header-text-layer .header-catch {
  font-size: 40px;
  font-weight: var(--fw-bold);
  line-height: var(--lh-base);
}

.header-text-layer .entry-title {
  font-size: 40px;
  font-weight: var(--fw-bold);
  line-height: var(--lh-base);
  color: #fff;
}

/* TOP以外のh1共通デザイン：style.cssの一番最後に追加 */
#header:not(.kizan-mainvisual) .header-text-layer {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(100% - 48px);
  max-width: 1120px;
  transform: translate(-50%, -50%);
}

#header:not(.kizan-mainvisual) .header-text-layer .entry-title {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-base), sans-serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .08em;
  text-align: left;
  overflow-wrap: anywhere;
  color: var(--clr-text);
  text-shadow: 0 0 4px #fff, 0 0 10px #fff;
}

#header:not(.kizan-mainvisual) .entry-title[data-en]::before {
  content: attr(data-en);
  display: block;
  margin-bottom: 20px;
  padding-left: 42px;
  background: linear-gradient(currentColor, currentColor) left center / 30px 1px no-repeat;
  font-family: var(--font-accent2), sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .12em;
  color: var(--btn-color);
}

@media screen and (max-width: 767px) {
  .header-text-layer .header-catch,
  .header-text-layer .entry-title {
    font-size: var(--fs-xl);
  }

  #header:not(.kizan-mainvisual) .header-text-layer .entry-title {
    font-size: 28px;
  }

  #header:not(.kizan-mainvisual) .entry-title[data-en]::before {
    margin-bottom: 12px;
    padding-left: 32px;
    background-size: 22px 1px;
    font-size: 14px;
  }
}

/**************************************************
 * 4. ナビゲーションメニュー
 **************************************************/
.navi {
  width: auto;
  margin: 0;
  background-color: transparent;
}

.navi .item-label, .navi .item-description {
  overflow: visible;
}

.current_page_item{
  text-decoration: none;
}

.navi-in a:hover {
  background-color: transparent;
  transition: none;
}

.navi-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

/* リスト設定 */
.navi-in > ul {
  gap: 40px;
}

.navi-in > ul li {
  width: auto;
  height: auto;
}

.navi-in > ul li:not(.btn) {
  padding: 0 8px;
}

/* ナビ内テキスト */
.navi-in > ul .caption-wrap > div {
  font-size: var(--fs-base);
  color: var(--clr-text);
  font-weight: bold;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.navi-in > ul .caption-wrap > div:hover {
  color: var(--btn-color);
}

/* PCでは不要な要素を隠す */
.navi-in .line,
.navi .sns,
.btn-gnavi_box,
.navi-overlay,
.header-container-in .spnav_bottom {
  display: none;
}

/**************************************************
 * 5. ボタンデザイン
 **************************************************/
.btn_in {
  text-align: center;
}

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

input[type="submit"],
.navi-in a.btn,
.btn {
  position: relative;
  width: auto;
  margin: 0;
  padding: 40px 60px 40px 80px;
  border: none;
  border-radius: 0 0 0 20px;
  background-color: var(--btn-color);
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  line-height: var(--lh-btn);
  color: #fff;
}

.navi-in a.btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 40px;
  z-index: 1;
  width: 20px;
  height: 16px;
  transform: translateY(-50%);
  background-image: url(./../../../common/img/mail_shiro.webp);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

.navi-in a.btn::after,
.btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  width: 7px;
  height: 7px;
  border: none;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: right 0.3s ease;
}

.navi-in a.btn:hover:after,
.btn::after {
  right: 24px;
}

.navi-in a.btn:hover,
.btn:hover {
  text-decoration: none;
}

.navi-in a.btn {
  margin-left: 40px;
}

.bottom_btn.sp {
  display: none;
}

.navi-in a.btn:hover::after,
.btn:hover::after,
.ranking-item-link-buttons a:hover::after,
.btn-wrap > a:hover::after {
  right: 20px;
}

/**************************************************
 * 6. SNSアイコン
 **************************************************/
.sns ul {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 200px;
  margin: 0 auto 20px;
}

.sns ul li {
  width: 24%;
  padding: 0 8px;
}

.sns ul li img {
  display: none;
}

.sns ul li img.color_icon {
  display: block;
}

/**************************************************
 * 7. 店舗情報・営業時間パーツ
 **************************************************/
ul.address {
  display: none;
}

ul.shopinfo {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

ul.shopinfo li {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  min-height: 60px;
  padding: 4px 8px;
}

/* 「営業時間」ラベル */
ul.shopinfo li.tel .tel-inner .tel-num {
  position: relative;
  padding-left: 48px;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 6px;
  font-family: var(--font-base), sans-serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .06em;
  color: var(--btn-color);
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  ul.shopinfo li.tel .tel-inner .tel-num {
    font-size: 24px;
  }
}

ul.shopinfo li.tel .tel-inner .tel-num::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 40px;
  height: 40px;
  background-image: url(./../../../common/img/phone_orange.webp);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

ul.shopinfo li.tel .tel-inner .tel-num .tel-label {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.8;
  padding-bottom: 10px;
}

ul.shopinfo li p {
  font-size: 14px;
  line-height: 1.2;
  white-space: nowrap;
}

/* --- 電話番号パーツ詳細 (.tel-inner) --- */
.tel-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.tel-num {
  margin-bottom: 5px;
  font-size: 30px;
  font-weight: var(--fw-bold);
  line-height: 1;
  letter-spacing: -0.02em;
}

.tel-desc {
  font-size: 12px;
  font-weight: var(--fw-normal);
  line-height: 1.2;
  white-space: nowrap;
}

/* Tel.とアイコンの下線を消す */
ul.shopinfo li.tel .tel-inner .tel-num {
  text-decoration: none;
}

/* 電話番号だけリンク・下線を付ける */
ul.shopinfo li.tel .tel-inner .tel-num > .tel-number {
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: .15em;
}

/**************************************************
 * 8. フッターエリア
 **************************************************/
.footer {
  margin: 0;
  padding: 0;
  background-color: var(--bg-3);
}

.footer .footer-in {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* テキスト色調整 */
.copyright, .footer ul li, .footer ul li a, .footer ul li p,
.footer ul li span, .footer a, .footer p, .footer span {
  color: var(--clr-text);
}

/* フッターレイアウト */
.footer-bottom {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr) 212px;
  gap: 60px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 54px 40px;
  border: none;
  box-sizing: border-box;
  border-bottom: solid 1px #bbb;
}

/* ロゴ・会社情報 */
.footer-bottom_in {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-bottom_in .footer-bottom-logo {
  margin-bottom: 24px;
  position: static;
  float: none;
  bottom: auto;
}

.footer-bottom_in .footer-bottom-logo .logo {
  width: auto;
  margin: 0;
  padding: 0;
}

.footer-bottom_in .footer-bottom-logo .logo img {
  width: auto;
  max-width: 100%;
  height: 60px;
}

.footer-bottom-content {
  float: none;
  text-align: left;
  margin: 0;
}

.footer-bottom-content .shopinfo {
  display: none;
}

.footer-bottom-content .address {
  display: block;
  margin: 0;
}

.footer-bottom-content .address li {
  margin-bottom: 5px;
  line-height: var(--lh-base);
}

.footer-bottom-content .address .tel {
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding-top: 24px;
}

.footer-bottom-content .address .tel .tel-inner {
  display: block;
}

.footer-bottom-content .address li .tel-num {
  text-decoration: underline;
  font-size: inherit;
  font-weight: var(--fw-normal);
  letter-spacing: 0;
}

/* フッターメニュー */
.navi-footer-in > .menu-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, auto);
  grid-auto-flow: column;
  gap: 12px 0;
  margin: 0;
  padding: 22px 0;
  list-style: none;
  text-align: left;
}

.navi-footer-in > .menu-footer > li {
  width: auto;
  margin: 0;
  padding: 0 20px 0 30px;
  border: none;
}

.footer-menu-area {
  position: relative;
  padding: 0;
  margin-left: 20px;
}

.footer-menu-area::before,
.footer-menu-area::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #bbb;
}

.footer-menu-area::before {
  left: 0;
}

.footer-menu-area::after {
  left: 50%;
}

.navi-footer-in a {
  padding: 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--clr-text);
}

.navi-footer-in a:hover {
  text-decoration: underline;
  background-color: transparent;
  color: inherit;
}

.navi-footer-in > .menu-footer li:last-child {
  border-right: none;
}

.navi-footer-in > .menu-footer > li:last-child {
  display: none;
}

/* お問い合わせボタン */
.footer-contact-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 56px;
  padding: 16px 36px 16px 48px;
  box-sizing: border-box;
  background: var(--btn-color);
  font-size: 14px;
  text-decoration: none;
}

.footer-contact-btn span {
  color: #fff;
}

.footer-contact-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 30px;
  width: 20px;
  height: 16px;
  transform: translateY(-50%);
  background: url(./../../../common/img/mail_shiro.webp)
    center / contain no-repeat;
}

.footer-contact-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: right .3s ease;
}

#footer .footer-contact-btn:hover::after {
  right: 22px;
}

/* フッター最下部ボックス */
.footer-legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 0 20px;
}

.footer-legal .copyright,
.footer-legal a {
  margin: 0;
  font-size: 13px;
  color: var(--clr-text);
}

.footer-legal .pri {
  text-decoration: underline;
}

.copyright {
  display: inline-block;
  width: auto;
}

#footer .footer-bottom::before,
#footer .footer-bottom::after {
  content: none;
  display: none;
}

/**************************************************
 * トップに戻るボタン
 **************************************************/
#go-to-top .go-to-top-button {
  width: 48px;
  height: 48px;
  border: 1px solid var(--btn-color);
  border-radius: 0;
  background-color: inherit;
  color: var(--btn-color);
}

/* 既存のアイコン・画像・文字を非表示 */
#go-to-top .go-to-top-button > span,
#go-to-top .go-to-top-button > img {
  display: none;
}

/* 上向きの三角 */
#go-to-top .go-to-top-button::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 50%;
  border-right: 8px solid transparent;
  border-bottom: 9px solid var(--btn-color);
  border-left: 8px solid transparent;
  transform: translateX(-50%);
}

/* TOP */
#go-to-top .go-to-top-button::after {
  content: "TOP";
  position: absolute;
  top: 26px;
  left: 0;
  width: 100%;
  font-family: Arial, sans-serif;
  font-size: 10px;
  line-height: 1;
  text-align: center;
}


/**************************************************
 * 9. スマホ・タブレット用レスポンシブ (max-width: 767px)
 **************************************************/
@media screen and (max-width: 767px) {
  /* --- 共通 --- */
  .sp {
    display: block;
  }
  .breadcrumb {
    width: 100%;
    max-width: 100%;
  }

  /* --- ヘッダー --- */
  .logo {
    width: 140px;
  }
  #header-container-in {
    justify-content: flex-start;
    padding: 14px 0 14px 15px;
  }
  .header-container-in .shopinfo {
    display: none;
  }

  /* スマホ用パーツ表示 */
  .navi-in .line,
  .navi .sns,
  .header-container-in .spnav_bottom,
  .header-container-in .spnav_bottom .shopinfo {
    display: block;
    margin: 0 auto;
  }

  /* --- ハンバーガーメニュー --- */
  .btn-gnavi_box {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000;
    display: block;
    width: 70px;
    height: 64px;
    padding: 16px;
    cursor: pointer;
  }
  .btn-gnavi_box span {
    position: absolute;
    left: 50%;
    width: 30px;
    height: 2px;
    transform: translateX(-50%);
    border-radius: 0;
    background: var(--btn-color);
    transition: top .3s ease, transform .3s ease;
  }
  .btn-gnavi span:nth-child(1) {
    top: 20px;
  }
  .btn-gnavi span:nth-child(2) {
    top: 30px;
  }

  /* アニメーション */
  .is-open .btn-gnavi span {
    display: block;
    top: 25px;
    left: 50%;
  }

  .is-open .btn-gnavi span:nth-child(1) {
    transform: translateX(-50%) rotate(30deg);
  }

  .is-open .btn-gnavi span:nth-child(2) {
    transform: translateX(-50%) rotate(-30deg);
  }

  .btn-gnavi_box .txt {
    position: absolute;
    display: block;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    margin: 0;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;
    text-align: center;
    color: var(--btn-color);
    letter-spacing: 0.1em;
  }

  /* --- ナビゲーション (.navi) --- */
  .navi {
    position: fixed;
    top: 0;
    right: -100%;
    left: auto;
    z-index: 999;
    width: 100%;
    height: 100vh;
    padding: 80px 32px 0;
    background-color: var(--bg-2);
    transition: right 0.4s ease;
    overflow-y: auto;
  }
  .navi.is-open {
    right: 0;
    overflow-y: scroll;
  }

  /* PCメニュー非表示・開閉制御 */
  .navi-in .menu-pc {
    display: none;
  }
  .navi.is-open .navi-in .menu-pc {
    display: block;
    width: 100%;
    margin-bottom: 40px;
  }

  .navi-in .btn_in,
  .navi-in .sns {
    margin: 0 auto 40px;
  }
  .navi-in .sns ul {
    margin: 0;
  }
  .navi-in .btn_in a {
    margin: 0;
  }

  /* ナビ内リスト */
  .navi-in > ul li {
    text-align: left;
    border-bottom: solid 1px var(--btn-color);
  }

  .navi-in .menu-pc > li > a {
    position: relative;
    padding-right: 24px;
  }

  .navi-in .menu-pc > li > a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 2px;
    width: 7px;
    height: 7px;
    border-top: 1.5px solid #ef5c01;
    border-right: 1.5px solid #ef5c01;
    transform: translateY(-50%) rotate(45deg);
  }  

  .current_page_item, .navi-in a:hover,
  .navi-in > ul .caption-wrap > div {
    color: var(--clr-text);
    letter-spacing: 0.08em;
  }
  .navi-in > ul li:not(.btn) {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .navi-in > ul li:last-child a,
  .navi-in > ul li:last-child .caption-wrap {
    width: auto;
  }
  .navi.is-open .navi-in > ul .caption-wrap > div {
    width: auto;
  }
  .navi-in > ul .caption-wrap {
    justify-content: start;
  }

  .navi.is-open .navi-in .btn_in .btn {
    border-radius: 0;
    padding: 24px 60px 24px 80px;
  }

  .navi-in a.btn::before {
    left: 40px;
  }

  .navi.is-open .navi-in .sns {
    display: none;
  }

  /* ナビ内情報 */
  .navi.is-open .navi-in .spnav_bottom .shopinfo {
    display: block;
    padding-bottom: 32px;
    width: 100%;
    border-bottom: solid 1px #bbb;
    margin-bottom: 24px;
  }

  ul.shopinfo {
    grid-template-columns: 1fr;
    margin-bottom: 50px;
  }

  .spnav_bottom span {
    display: inline-block;
    font-size: 14px;
  }
  .spnav_bottom span.tel-num {
    font-size: 28px;
    position: relative;
  }
  .spnav_bottom p {
    font-size: 14px;
    font-weight: var(--fw-normal);
  }
  .spnav_bottom .source-org.copyright,
  .spnav_bottom a {
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: var(--fw-normal);
    line-height: var(--lh-base);
    color: inherit;
  }
  .spnav_bottom a {
    text-decoration: underline;
    padding-bottom: 10px;
  }

  #header-container #navi {
    box-sizing: border-box;
  }

  #header-container #navi .navi-in {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  #header-container #navi .spnav_bottom {
    /* ナビの左右32px分を広げる */
    flex: 0 0 calc(100% + 64px);
    width: calc(100% + 64px);
    max-width: none;
    margin: 0 -32px 0;
    padding: 0 32px 0;
    box-sizing: border-box;
  }

  #header-container #navi .spnav_bottom .shopinfo li.tel {
    justify-content: center;
    padding: 0;
  }

  #header-container #navi .spnav_bottom .tel-inner {
    max-width: 100%;
    align-items: center;
    text-align: center;
  }

  #header-container #navi .spnav_bottom .tel-desc {
    white-space: normal;
  }
  

  /* --- オーバーレイ --- */
  .navi-overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 998;
    display: block;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all 0.4s ease;
  }
  .navi-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* --- フッター (スマホ) --- */
  /* フッターレイアウト */
  .footer .footer-in {
    padding: 0 15px;
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    gap: 32px;
    max-width: 100%;
    padding: 48px 10px 28px;
  }

  /* ロゴ・会社情報 */
  .footer-bottom_in .footer-bottom-logo {
    margin: 0 auto 24px;
  }

  .footer-bottom_in .footer-bottom-logo .logo img {
    height: 46px;
  }

  .footer-bottom-content .address .tel {
    padding-top: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
  }

  /* フッターメニュー */
  .navi-footer-in > .menu-footer {
    width: 100%;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
    gap: 12px;
    padding: 0;
  }

  .navi-footer .navi-footer-in > .menu-footer li.menu-item {
    float: none;
    width: 100%;
    margin: 0;
    padding: 6px 0;
    text-align: center;
  }

  .navi-footer-in > .menu-footer > li > a {
    display: block;
    width: 100%;
    text-align: center;
  }

  .footer-menu-area {
    justify-self: stretch;
    width: 100%;
    margin: 0;
  }

  .footer-menu-area .navi-footer,
  .footer-menu-area .navi-footer-in {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .footer-menu-area::before,
  .footer-menu-area::after {
    display: none;
  }

  .navi-footer-in > .menu-footer li.menu-item {
    border-left: none;
  }

  /* お問い合わせボタン */
  #footer .footer-contact-area {
    width: 212px;
    max-width: 100%;
    justify-self: center;
  }
  
  /* フッター最下部ボックス */
  .footer-legal {
    flex-direction: column;
    max-width: none;
    padding: 20px 0 60px;
    text-align: center;
    gap: 10px;
  }

  /* --- 追従ボタン --- */
  .bottom_btn.sp {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    padding: 8px 16px calc(8px + env(safe-area-inset-bottom));
    box-sizing: border-box;
  }

  .bottom_btn.sp a.btn {
    position: relative;
    display: flex;
    flex: 1;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 10px 8px;
    border: none;
    border-radius: 8px;
    background: var(--btn-color);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
  }

  /* 既存の右矢印を消す */
  .bottom_btn.sp a.btn::after {
    content: none;
  }

  /* アイコンを文字の左に並べる */
  .bottom_btn.sp a.btn::before {
    content: "";
    position: static;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    transform: none;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    filter: none;
  }

  /* 電話 */
  .bottom_btn.sp a.tel::before {
    background-image: url(./../../../common/img/phone_white.webp);
  }

  /* メール */
  .bottom_btn.sp a.pc::before {
    background-image: url(./../../../common/img/mail_shiro.webp);
  }

  /* ページ末尾が固定ボタンに隠れないようにする */
  body {
    padding-bottom: calc(60px + env(safe-area-inset-bottom));
  }




}

/**************************************************
 * 10. ニュースエリア (#news)
 **************************************************/
#news {
  max-width: var(--max-w-content);
  margin: 0 auto;
  padding: 20px 20px 40px;
  border-radius: var(--radius);
  background-color: #fff;
}

/**************************************************
 * 11. スライダー (CSSマーキー / Swiper)
 **************************************************/
/* ==================================================
   メインビジュアル無限ループ帯（CSSマーキー・Slick廃止）
   ・HTML（固定ページ本文）はそのまま：.slider > div > img
   ・javascript.js がスライドを .slider__track に集めて2周分に複製
   ・トラックを translateX(-50%) まで流してループ（前後半同一なので継ぎ目なし）
   ・スライド幅は cqw（.slider の幅基準）：PC 5枚表示 / 768px以下 3枚表示
   ================================================== */
.slider {
  overflow: hidden;
  margin-top: 80px;
  container-type: inline-size;
}

.slider__track {
  display: flex;
  width: max-content;
  /* 旧Slick（speed:5000 = 1枚5秒）と同等の速度：6枚 × 5秒 = 30秒/周 */
  animation: marquee-scroll 30s linear infinite;
}

.slider__track > div {
  width: 20cqw; /* PC: 5枚表示 */
  flex-shrink: 0;
}

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

/* マウスオーバーで一時停止（外すと止まった位置から再開） */
.slider:hover .slider__track {
  animation-play-state: paused;
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media screen and (max-width: 768px) {
  .slider__track > div {
    width: calc(100cqw / 3); /* モバイル: 3枚表示 */
  }
}

/* 視差効果を減らす設定のユーザーには流さない */
@media (prefers-reduced-motion: reduce) {
  .slider__track {
    animation: none;
  }
}

/* ==================================================
   Swiperスライダー (my-post-swiper) の装飾
   ================================================== */
.my-post-swiper {
  box-sizing: border-box;
  width: 100%;
  /* ▼▼▼ これが「左余白」を作ります ▼▼▼ */
  padding-top: 0;
  padding-right: 20px; /* 右端の余白 */
  padding-bottom: 50px; /* ページネーション用の下余白 */
  padding-left: 10vw; /* 初期表示で左に10vwの余白 */
}

.my-post-swiper .swiper-wrapper {
  margin: 0;
}

/* スライド（箱）の設定 */
.my-post-swiper .swiper-slide {
  height: auto; /* 高さを揃える */
}

.my-post-swiper .swiper-slide article .entry-card-thumb {
  width: 100%;
}

.my-post-swiper .swiper-slide article .entry-card-content {
  margin: 0;
}

/* 中身のCocoonカードの調整 */
.my-post-swiper .entry-card-wrap {
  width: 100%;
  height: 100%;
  margin: 0; /* 余計なマージン削除 */
}

/* ==================================================
   Swiper矢印のデザイン (白丸・棒付き矢印・左右反転)
   ================================================== */
/* 1. 共通設定（白い丸を作る） */
.my-post-swiper .swiper-button-prev,
.my-post-swiper .swiper-button-next {
  z-index: 20;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px; /* 丸の大きさ */
  height: 50px;
  margin-top: -25px; /* 縦位置調整 */
  border-radius: 50%; /* 丸くする */
  background-color: var(--bg-1); /* 背景を白に */
  background-image: none; /* デフォルトの青い矢印画像を消す */
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16); /* 影 */
  transition: opacity 0.3s, transform 0.3s;
}

/* ホバー時の演出 */
.my-post-swiper .swiper-button-prev:hover,
.my-post-swiper .swiper-button-next:hover {
  opacity: 0.8;
}

/* 2. 矢印の「棒」を作る (共通) */
.my-post-swiper .swiper-button-prev::before,
.my-post-swiper .swiper-button-next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px; /* 棒の長さ */
  height: 2px; /* 棒の太さ */
  transform: translate(-50%, -50%);
  background-color: #999; /* 色 */
}

/* 3. 矢印の「頭」を作る (共通ベース) */
.my-post-swiper .swiper-button-prev::after,
.my-post-swiper .swiper-button-next::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 8px; /* 頭のサイズ */
  height: 8px;
  border-top: 2px solid #999; /* 線の太さ */
  border-right: 2px solid #999;
  font-size: 0;
}

/* ==================================================
   4. 個別の向きと位置（ここが重要）
   ================================================== */

/* --- 「次へ (Next)」ボタン --- */
/* 本来は右ですが、左（空白エリア）に置きます */
.my-post-swiper .swiper-button-next {
  right: auto;
  left: 8vw; /* 左の空白エリア内 */
}

/* 矢印の向き：左「←」にする */
/* 頭を左に向ける */
.my-post-swiper .swiper-button-next::after {
  left: 19px; /* 棒の左端に合わせる位置調整 */
  transform: translateY(-50%) rotate(-135deg); /* 左向き回転 */
}

/* --- 「前へ (Prev)」ボタン --- */
/* 本来は左ですが、右端に置きます */
.my-post-swiper .swiper-button-prev {
  right: 19px; /* 右端エリア */
  left: auto;
}

/* 矢印の向き：右「→」にする */
/* 頭を右に向ける */
.my-post-swiper .swiper-button-prev::after {
  right: 20px; /* 棒の右端に合わせる位置調整 */
  transform: translateY(-50%) rotate(45deg); /* 右向き回転 */
}

/* --- スマホ調整 --- */
@media screen and (max-width: 767px) {
  .my-post-swiper {
    padding-right: 0;
    padding-left: 50px;
  }
  .my-post-swiper .swiper-button-next {
    left: 5px;
  }
  .my-post-swiper .swiper-button-prev {
    right: 5px;
  }
  .my-post-swiper .swiper-button-prev,
  .my-post-swiper .swiper-button-next {
    width: 40px;
    height: 40px;
    margin-top: -20px;
  }
  .my-post-swiper .swiper-button-prev::before,
  .my-post-swiper .swiper-button-next::before {
    width: 14px;
  }
  .my-post-swiper .swiper-button-next::after {
    left: 14px;
  }
  .my-post-swiper .swiper-button-prev::after {
    right: 14px;
  }
}

/**************************************************
 * 12. ページネーション & ページャー (共通デザイン)
 **************************************************/
/* --- 外枠のレイアウト --- */
.pagination,
.pager-links {
  display: flex;
  justify-content: center; /* 中央寄せ */
  align-items: center;
  gap: 8px; /* ボタン同士の間隔 */
  margin: 60px 0; /* 上下の余白 */
  padding: 0;
  list-style: none;
}

/* --- 丸いボタンの共通設定 --- */
/* 一覧(.pagination) と 記事分割(.pager-links) の両方に適用 */
.pagination .page-numbers,
.pager-links .page-numbers {
  display: flex;
  justify-content: center; /* 文字をど真ん中に */
  align-items: center;
  width: 50px; /* 正円にするため幅と高さを固定 */
  height: 50px;
  border: 1px solid #ddd; /* 薄い枠線 */
  border-radius: 50%; /* まん丸にする */
  background: var(--bg-1); /* 背景白 */
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  line-height: 1;
  text-decoration: none;
  color: var(--clr-text); /* 文字色 */
  transition: all 0.3s ease;
}

/* --- ホバー時 & 現在のページ --- */
/* リンクがある時のホバー */
.pagination a.page-numbers:hover,
.pager-links a.page-numbers:hover,
/* 現在のページ（spanタグ） */
.pagination .page-numbers.current,
.pager-links .page-numbers.current {
  /* 浮き上がる演出 */
  transform: translateY(-2px);
  border-color: var(--bg-2); /* 枠線も黄色に */
  background-color: var(--bg-2); /* テーマカラー（黄色） */
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
  color: #fff; /* 文字白 */
  opacity: 1;
}

/* 現在のページはクリック無効 */
.pagination .page-numbers.current,
.pager-links .page-numbers.current {
  pointer-events: none;
}

/* --- 「...」の装飾 --- */
/* ドットは枠線を消してシンプルに */
.pagination .dots,
.pager-links .dots {
  width: auto;
  border: none;
  background: transparent;
  pointer-events: none;
  color: var(--clr-muted);
}

/* --- スマホ調整 --- */
@media screen and (max-width: 767px) {
  .pagination,
  .pager-links {
    gap: 4px; /* 間隔を狭く */
  }
  .pagination .page-numbers,
  .pager-links .page-numbers {
    width: 40px; /* スマホは少し小さく */
    height: 40px;
    font-size: 14px;
  }
}

/**************************************************
 * 13. 投稿一覧カードデザイン (共通化・修正版)
 **************************************************/

/* 抜粋文のスマホ表示調整 */
.no-sp-snippet .entry-card-snippet {
  display: inline-block;
  min-height: 100px;
  margin: 0;
  overflow: visible;
  font-size: inherit;
  line-height: 1;
  -webkit-line-clamp: inherit;
  -webkit-box-orient: inherit;
}

.no-sp-snippet .entry-card-snippet p {
  margin-bottom: 20px;
  line-height: var(--lh-base);
}

/* --------------------------------------------------
   1. リスト全体（Flexコンテナ）
   -------------------------------------------------- */
/* IDセレクタ(#list)を使って優先度を上げる */
body:not(.home) #list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  align-items: stretch;
}

/* --------------------------------------------------
   2. カード本体 (.entry-card)
   -------------------------------------------------- */
/* 共通設定 */
.list .entry-card,
.my-post-swiper .swiper-slide,
.top-post-list .entry-card {
  /* カード自体のレイアウト設定 */
  display: flex;
  flex-direction: column; /* 縦積み */
  float: none; /* Cocoonのfloatを解除 */
  height: auto; /* 親のstretchに従う */
  background-color: var(--bg-1);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
}


/* --------------------------------------------------
   3. 画像エリア
   -------------------------------------------------- */
.list .entry-card-thumb,
.my-post-swiper .entry-card-thumb,
.top-post-list .entry-card-thumb {
  flex-shrink: 0; /* 画像は縮めない */
  width: 100%;
  margin: 0;
}

/* --------------------------------------------------
   4. コンテンツエリア（文字＋ボタン）
   -------------------------------------------------- */
.list .entry-card-content,
.my-post-swiper .entry-card-content,
.top-post-list .entry-card-content {
  position: relative;
  /* カードの残りの高さを埋める */
  flex: 1;
  /* 中身（ボタンなど）の配置用 */
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 20px;
}

/* --------------------------------------------------
   5. ボタンの位置調整
   -------------------------------------------------- */
.list .entry-card .btn_in,
.my-post-swiper .entry-card .btn_in,
.top-post-list .entry-card .btn_in {
  /* 位置リセット */
  position: static;
  right: auto;
  bottom: auto;
  width: 100%;
  margin-top: auto; /* 一番下に配置 */
}

/* --------------------------------------------------
   スマホ対応（レスポンシブ）
   -------------------------------------------------- */
@media screen and (max-width: 768px) {
  body:not(.home) #list {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body:not(.home) #list .entry-card {
    width: 100%;
    margin-right: 0;
  }
}

/**************************************************
 * 14. 記事詳細・メタ情報・カテゴリラベル
 **************************************************/
.article-section .single-content-title {
  padding-bottom: 16px;
  font-size: 32px;
  font-weight: var(--fw-bold);
  line-height: var(--lh-base);
  text-align: left;
}

.related-entry-card-title, .entry-card-title {
  display: inline-block;
  margin: 0;
  overflow: visible;
  font-size: inherit;
  font-weight: var(--fw-normal);
  line-height: var(--lh-base);
  text-align: left;
  -webkit-line-clamp: inherit;
  -webkit-box-orient: inherit;
}

.entry-card-thumb, .author-thumb, .blogcard-thumbnail, .related-entry-card-thumb, .popular-entry-card-thumb, .new-entry-card-thumb {
  float: none;
  width: 100%;
  margin: 0;
}

.entry-card-meta {
  position: relative;
  right: auto;
  bottom: auto;
  margin-bottom: 10px;
}

.e-card-info {
  display: block;
  width: 100%;
}

.entry-card-title a {
  font-size: 1.2em;
  font-weight: var(--fw-bold);
  line-height: var(--lh-base);
  text-align: left;
}

body:not(.home) .eye-catch-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.entry-card .btn_in {
  text-align: right;
}

.e-card-info > span {
  margin: 0;
  padding: 0;
  font-size: 14px;
}

.post-date span.fa {
  display: none;
}

.entry-date {
  margin: 0;
}

/* --- スマホ調整（一覧） --- */
@media screen and (max-width: 767px) {
  body:not(.home) .list .entry-card-wrap {
    width: 100%; /* スマホは1列 */
    margin: 0 0 20px;
  }
  .article-section .single-content-title {
    font-size: 18px;
  }
}

.eye-catch .cat-label,
.cat-label {
  position: absolute;
  top: 5px;
  right: 5px;
  bottom: auto;
  left: auto;
  max-width: inherit;
  margin: 0;
  padding: 4px 8px;
  overflow: visible;
  border: none;
  border-radius: 5px;
  background-color: var(--btn-color);
  font-size: 12px;
  line-height: 1.2;
  text-align: center;
  color: #fff;
  opacity: 1;
}

.single .eye-catch img {
  display: block;
  margin-bottom: 20px;
}

.single .eye-catch .cat-label {
  position: relative;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  margin: 20px 0 0 0;
}

.single .date-tags {
  margin-bottom: 50px;
}

.news-list-wrap .cat-label {
  position: relative;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  min-width: 80px;
  margin: 0 32px;
}

#news .news-list-wrap {
  padding: 0 20px 40px;
}

#news .news-list-wrap li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 16px 0;
  border-bottom: solid 1px #ccc;
}

#news .news-list-wrap li span {
  line-height: var(--lh-base);
}

@media screen and (max-width: 767px) {
  #news .news-list-wrap li {
    flex-wrap: wrap;
    align-items: center;
  }
  #news .news-list-wrap li .news-date {
    margin-bottom: 8px;
  }
  #news .news-list-wrap li .news-cat {
    margin-bottom: 8px;
  }
  #news .news-list-wrap li a.news-link {
    display: block;
    width: 100%;
  }
}

/**************************************************
 * 15. フォーム関連 (naniwaya-form)
 **************************************************/
.naniwaya-form > p {
  margin-bottom: 30px;
}

.naniwaya-form > p > label {
  display: inline-block;
  padding-bottom: 10px;
}

.wpcf7-form-control-wrap {
  display: block;
}

input[type="date"], select, input[type="number"] {
  width: 300px;
}

._in {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}

.last_oder {
  margin-left: 30px;
}

.submitbtn p {
  margin-top: 50px;
  text-align: center;
}

.pri_box {
  width: 70%;
  margin: 48px auto 0;
  text-align: center;
}

.pri_box > p > a {
  display: inline-block;
  padding-bottom: 30px;
  text-decoration: underline;
}

.pri_box > p > span {
  display: block;
  text-align: left;
}

.wpcf7-spinner {
  display: none;
}

/**************************************************
 * 16. CTAエリア
 **************************************************/
/* CTA全体 */
#cta .kizan-cta-section {
  padding: 80px 24px 100px;
  background: var(--bg-1);
}

#cta .kizan-cta-inner {
  max-width: 1120px;
  margin: 0 auto;
}

#cta .kizan-cta-heading {
  margin-bottom: 48px;
  text-align: center;
}

/* Contact */
#cta .kizan-cta-en {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  font-family: var(--font-accent2), sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .15em;
  color: var(--btn-color);
}

#cta .kizan-cta-en::after {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
}

#cta .kizan-cta-heading h2 {
  margin: 0 0 24px;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .08em;
  color: var(--clr-text);
}

#cta .kizan-cta-heading p {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  color: var(--clr-text);
}

/* 2つの枠 */
#cta .kizan-cta-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px;
}

#cta .kizan-cta-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  padding: 24px 20px 28px;
  border: 2px solid var(--btn-color);
  box-sizing: border-box;
  text-align: center;
}

/* フォーム非表示時は電話の枠を中央に */
#cta .kizan-cta-card:only-child {
  grid-column: 1 / -1;
  justify-self: center;
  width: 100%;
  max-width: 544px;
}

/* オレンジの丸いアイコン */
#cta .kizan-cta-icon {
  display: block;
  flex: 0 0 auto;
  width: 60px;
  height: 60px;
  margin-bottom: 24px;
  border-radius: 50%;
  background-color: var(--btn-color);
  background-position: center;
  background-size: 30px 30px;
  background-repeat: no-repeat;
}

#cta .kizan-cta-icon.is-phone {
  background-image: url(./../../../common/img/phone_white.webp);
}

#cta .kizan-cta-icon.is-web {
  background-image: url(./../../../common/img/pc_white.webp);
}

#cta .kizan-cta-title {
  margin: 0 0 20px;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: .04em;
  color: var(--clr-text);
  font-weight: 500;
}

/* 電話番号 */
#cta .kizan-cta-phone {
  font-family: var(--font-accent2), sans-serif;
  font-size: 32px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .06em;
  color: var(--btn-color);
  text-decoration: underline;
  text-underline-offset: 5px;
}

#cta .kizan-cta-phone span {
  font-size: 18px;
}

#cta .kizan-cta-hours {
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.6;
  color: var(--clr-text);
}

/* 枠線付きフォームボタン */
#cta .kizan-cta-link {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 56px;
  max-width: 100%;
  padding: 14px 48px 14px 32px;
  border: 1px solid var(--btn-color);
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--btn-color);
  text-decoration: none;
}

#cta .kizan-cta-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transition: right .3s ease;
}

#cta .kizan-cta-link:hover::after {
  right: 22px;
}

/* スマホ */
@media screen and (max-width: 767px) {
  #cta .kizan-cta-section {
    padding: 56px 24px 64px;
  }

  #cta .kizan-cta-heading {
    margin-bottom: 32px;
  }

  #cta .kizan-cta-en {
    margin-bottom: 12px;
  }

  #cta .kizan-cta-heading h2 {
    font-size: 20px;
    text-align: left;
  }

  #cta .kizan-cta-heading p {
    font-size: 14px;
    text-align: left;
  }

  #cta .kizan-cta-cards {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  #cta .kizan-cta-title {
    font-size: 16px;
  }

  #cta .kizan-cta-phone {
    font-size: clamp(22px, 6.5vw, 28px);
  }

}

/**************************************************
 * 18. Scroll Reveal
 **************************************************/
/* 通常は表示。headの準備スクリプトが動いた場合だけ隠す。 */
.reveal {
  opacity: 1;
  transform: none;
}

html.kizan-reveal-enabled .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s ease;
}

html.kizan-reveal-enabled .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  html.kizan-reveal-enabled .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/**************************************************
 * 追加修正
 **************************************************/

/* マスターの1023px以下でmenu-pcを非表示にするルールを打ち消す（タブレット帯のみ） */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .navi-in .menu-pc {
    display: flex;
  }
}

/**************************************************
 * ヘッダー
 **************************************************/
.header-container .header-container-in .shopinfo {
  display: none;
}

#header-container .tagline {
  display: none;
}

/* メインビジュアル */
#header.kizan-mainvisual {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 800px;
  min-height: 800px;
  margin: 0;
  overflow: hidden;
  background: var(--bg-1);
  opacity: 1;
}

#header.kizan-mainvisual .kizan-mainvisual-photo {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 65%;
  z-index: -1;
  clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
  background: #b9eaff;
}

#header.kizan-mainvisual .kizan-mainvisual-photo img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

#header.kizan-mainvisual .header-text-layer {
  position: relative;
  top: auto;
  left: auto;
  width: calc(100% - 80px);
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  padding: 224px 0 0;
  box-sizing: border-box;
}

#header.kizan-mainvisual .header-catch {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-base), sans-serif;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: .12em;
  color: var(--clr-text);
}

#header.kizan-mainvisual .kizan-catch-line {
  display: block;
  white-space: nowrap;
}

#header.kizan-mainvisual .kizan-catch-accent {
  color: var(--btn-color);
}

#header.kizan-mainvisual .kizan-mainvisual-description {
  margin: 32px 0 0;
  font-family: var(--font-base), sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: .04em;
  color: var(--clr-text);
}

#header.kizan-mainvisual .kizan-mainvisual-scroll {
  position: absolute;
  bottom: 112px;
  left: 0;
  display: block;
  font-family: Arial, sans-serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .05em;
  color: var(--clr-text);
}

#header.kizan-mainvisual .kizan-mainvisual-scroll::after {
  content: '';
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 60px;
  background: var(--btn-color);
}

#header.kizan-mainvisual .kizan-mainvisual-scroll::before {
  content: '';
  position: absolute;
  top: 21px;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--btn-color);
  box-shadow: 0 60px 0 var(--btn-color);
}

/* 上の丸を下へ流す */
#header.kizan-mainvisual .kizan-mainvisual-scroll::before {
  box-shadow: none;
  animation: kizan-scroll-dot 1.8s ease-in-out infinite;
}

@keyframes kizan-scroll-dot {
  0% {
    transform: translate(-50%, 0);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  85% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, 60px);
    opacity: 0;
  }
}

/* 動きを減らす設定の端末では静止 */
@media (prefers-reduced-motion: reduce) {
  #header.kizan-mainvisual .kizan-mainvisual-scroll::before {
    animation: none;
  }
}


@media screen and (max-width: 767px) {
  body:has(#header.kizan-mainvisual) #header-container {
    height: 64px;
    margin-bottom: -64px;
  }
  #header.kizan-mainvisual {
    --kizan-photo-height: min(110vw, 440px);
    height: auto;
    min-height: 0;
  }
  #header.kizan-mainvisual .kizan-mainvisual-photo {
    top: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: var(--kizan-photo-height);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 87%);
  }
  #header.kizan-mainvisual .kizan-mainvisual-photo img {
    object-position: center;
  }
  #header.kizan-mainvisual .header-text-layer {
    width: 100%;
    height: auto;
    padding: calc(var(--kizan-photo-height) + 24px) 32px 40px;
  }

  #header.kizan-mainvisual .header-catch {
    font-size: clamp(30px, 8.5vw, 36px);
    line-height: 1.75;
    letter-spacing: .12em;
  }
  #header.kizan-mainvisual .kizan-mainvisual-description {
    margin-top: 24px;
    font-size: clamp(13px, 3.5vw, 15px);
    line-height: 1.9;
    letter-spacing: .03em;
  }
  #header.kizan-mainvisual .kizan-mainvisual-scroll {
    position: relative;
    bottom: auto;
    left: auto;
    width: max-content;
    margin: 32px auto 0;
    padding-bottom: 76px;
    font-size: 10px;
  } 
}

/**************************************************
 * TOPページ各セクション
 **************************************************/
/*====== 共通 ======*/
/* H2見出し */
#main .kizan-title {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font-family: var(--font-base), sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: var(--clr-text);
}

.kizan-title-sub {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  font-family: var(--font-accent2), sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .12em;
  color: var(--btn-color);
}

.kizan-title-sub::after {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
}

/* キャッチコピー */
#main .kizan-catch {
  margin: 32px 0 24px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.8;
  text-align: center;
  color: var(--clr-text);
}

/* 本文 */
#main .kizan-text p {
  margin: 0;
  font-size: 14px;
  line-height: 2;
  letter-spacing: .04em;
  color: var(--clr-text);
}

#main .kizan-text p + p {
  margin-top: 8px;
}

/* ボタン */
.kizan-btn-wrap {
  text-align: center;
}

#main .kizan-outline-btn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 56px;
  max-width: 100%;
  padding: 14px 48px 14px 32px;
  border: 1px solid var(--btn-color);
  box-sizing: border-box;
  background: transparent;
  font-size: 14px;
  line-height: 1.5;
  color: var(--btn-color);
  text-decoration: none;
}

#main .kizan-outline-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transition: right .3s ease;
}

#main .kizan-outline-btn:hover::after {
  right: 16px;
}

@media screen and (max-width: 767px) {
  #main .kizan-outline-btn {
    text-align: left;
  }
}

/*====== 会社紹介セクション ======*/
.kizan-company {
  display: grid;
  grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
  gap: 60px;
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
}

/* 正方形の写真 */
.kizan-company-image {
  aspect-ratio: 1;
  overflow: hidden;
}

.kizan-company-image img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

.kizan-company-content {
  min-width: 0;
}

.kizan-company-content > .kizan-btn-wrap {
  margin-top: 48px;
}

/* スマホ */
@media screen and (max-width: 767px) {
  .kizan-company {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .kizan-company-image {
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
  }

  #main .kizan-title {
    font-size: 24px;
  }

  #main .kizan-catch {
    margin-top: 24px;
    font-size: 19px;
    text-align: left;
  }
  #main .kizan-text p {
    text-align: left;
  }

  .kizan-company-content > .kizan-btn-wrap {
    margin-top: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #main .kizan-outline-btn::after {
    transition: none;
  }
}


/*====== 事業紹介セクション ======*/
body.home #main .kizan-services {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
  gap: 60px;
  align-items: start;
}

/* 左側：見出し・本文・ボタン */
body.home #main .kizan-services-content {
  min-width: 0;
}

body.home #main .kizan-services .kizan-catch {
  margin: 32px 0;
}

body.home #main .kizan-services-intro {
  margin: 0;
  text-align: left;
}

body.home #main .kizan-services-content > .kizan-btn-wrap {
  margin-top: 60px;
}

/* 右側：写真 */
body.home #main .kizan-services-photo {
  min-width: 0;
  aspect-ratio: 48 / 37;
  overflow: hidden;
}

body.home #main .kizan-services-photo img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

/*====== タブレット ======*/
@media screen and (min-width: 768px) and (max-width: 1100px) {
  body.home #main .kizan-services {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 32px;
  }

  body.home #main .kizan-services-content > .kizan-btn-wrap {
    margin-top: 40px;
  }
}

/*====== スマホ ======*/
@media screen and (max-width: 767px) {
  body.home #main .kizan-services {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  body.home #main .kizan-services .kizan-catch {
    margin: 24px 0;
    font-size: 19px;
  }

  body.home #main .kizan-services-content > .kizan-btn-wrap {
    margin-top: 32px;
  }

  body.home #main .kizan-services-photo {
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
  }
}


/*====== 求人情報セクション ======*/
#main .entry-content section.kizan-recruit-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 80px 0 100px;
  background: var(--btn-color);
}

/* 写真だけを半透明に */
#main .kizan-recruit-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("./../../../common/img/recruit-bg.webp")
    left center / auto 100% no-repeat;
  opacity: .3;
  pointer-events: none;
}

.kizan-recruit {
  text-align: center;
}

/* 共通見出し・本文の色を変更 */
body.home #main .kizan-recruit .kizan-title {
  color: #fff;
}

body.home .kizan-recruit .kizan-title-sub {
  margin: 0 0 24px;
  color: #fff;
}

body.home #main .kizan-recruit .kizan-text p {
  margin-top: 24px;
  color: #fff;
}

/* ボタンの配置 */
.kizan-recruit-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 280px));
  justify-content: center;
  gap: 40px;
  margin-top: 48px;
}

/* 求人専用ボタン */
#main .kizan-recruit-btn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 64px;
  padding: 14px 40px 14px 24px;
  border: 1px solid var(--btn-color);
  box-sizing: border-box;
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--btn-color);
  text-align: center;
  text-decoration: none;
}

/* アイコン：文字と一緒に並べる */
#main .kizan-recruit-btn::before {
  content: "";
  position: static;
  display: block;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  transform: none;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

/* 協力会社募集 */
#main .kizan-recruit-btn--partner::before {
  background-image:
    url("./../../../common/img/handshake-icon.webp");
}

/* 人材募集 */
#main .kizan-recruit-btn--staff::before {
  background-image:
    url("./../../../common/img/member-icon.webp");
}

/* 右矢印 */
#main .kizan-recruit-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transition: right .3s ease;
}

#main .kizan-recruit-btn:hover::after {
  right: 16px;
}

#main .kizan-recruit-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

/*====== スマホ ======*/
@media screen and (max-width: 767px) {
  #main .entry-content section.kizan-recruit-section {
    padding: 56px 0 64px;
  }

  #main .kizan-recruit-section::before {
    background-image: url("./../../../common/img/recruit-bg-sp.webp");
    background-position: center bottom;
    background-size: 100% auto;
  }

  #main .kizan-recruit .kizan-title.recruit-title {
    font-size: 20px;
    text-align: left;
  }

  .kizan-recruit .kizan-title-sub {
    margin-bottom: 20px;
  }

  #main .kizan-recruit .kizan-text p {
    margin-top: 20px;
  }

  .kizan-recruit-buttons {
    grid-template-columns: minmax(0, 320px);
    gap: 16px;
    margin-top: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #main .kizan-recruit-btn::after {
    transition: none;
  }
}


/*====== お知らせセクション ======*/
.kizan-news {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}

/* 左：見出し・一覧ボタン */
.kizan-news-heading {
  text-align: center;
}

.kizan-news-heading .kizan-btn-wrap {
  margin-top: 36px;
}

/* 右：お知らせ一覧 */
.kizan-news-list {
  min-width: 0;
}

#main .kizan-news-list #news {
  padding: 0;
}

#main .kizan-news-list .news-list-wrap {
  margin: 0;
  padding: 0;
  list-style: none;
}

#main .kizan-news-list .news-list-wrap li {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 12px 24px;
  margin: 0;
  padding: 20px 8px;
  border-bottom: 1px solid #ccc;
}

/* 日付 */
#main .kizan-news-list .news-date {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #999;
}

/* カテゴリー */
#main .kizan-news-list .news-cat {
  margin: 0;
  line-height: 1;
}

#main .kizan-news-list .cat-label {
  position: static;
  display: inline-block;
  min-width: 0;
  margin: 0;
  padding: 4px 14px;
  border: none;
  border-radius: 20px;
  background: var(--btn-color);
  font-size: 12px;
  line-height: 1.4;
  color: #fff;
}

/* タイトルを2段目に配置 */
#main .kizan-news-list .news-link {
  display: block;
  flex: 0 0 100%;
  min-width: 0;
  overflow: hidden;
  font-size: 14px;
  line-height: 1.8;
  color: var(--clr-text);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#main .kizan-news-list .news-link:hover {
  color: var(--btn-color);
}

.kizan-news-list #news > .btn_in {
  display: none;
}

/*====== スマホ ======*/
@media screen and (max-width: 767px) {
  .kizan-news {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .kizan-news-heading .kizan-btn-wrap {
    margin-top: 24px;
  }

  #main .kizan-news-list .news-list-wrap li {
    gap: 12px 16px;
    padding: 20px 0;
  }

  /* スマホではタイトル全文を表示 */
  #main .kizan-news-list .news-link {
    overflow: visible;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}


/*====== アクセスセクション ======*/
article.article .entry-content section.kizan-access-section {
  padding-top: 0;
  padding-bottom: 0;
}

.kizan-access {
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
  align-items: stretch;
}

/* 左：地図 */
.kizan-access-map {
  min-width: 0;
  min-height: 420px;

  /* 右端を「／」の向きに切り取る */
  clip-path: polygon(
    0 0,
    100% 0,
    calc(100% - 80px) 100%,
    0 100%
  );
}

.kizan-access-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  margin: 0;
  border: 0;
}

/* 右：会社情報 */
.kizan-access-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 60px max(24px, calc((100vw - 1120px) / 2)) 60px 24px;
  box-sizing: border-box;
}

.kizan-access-logo {
  display: block;
  width: 280px;
  max-width: 100%;
  height: auto;
  margin: 0 0 32px;
}

/* 所在地・業務内容 */
#main .kizan-access-details {
  margin: 0;
  padding: 0;
}

.kizan-access-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #ccc;
}

#main .kizan-access-row dt,
#main .kizan-access-row dd {
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.9;
  color: var(--clr-text);
}

#main .kizan-access-row dd {
  overflow-wrap: anywhere;
}

/*====== スマホ ======*/
@media screen and (max-width: 767px) {
  .kizan-access {
    grid-template-columns: 1fr;
  }

  /* スマホは会社情報→地図の順 */
  .kizan-access-info {
    grid-row: 1;
    padding: 48px 24px 32px;
  }

  .kizan-access-map {
    grid-row: 2;
    min-height: 320px;
    clip-path: none;
  }

  .kizan-access-map iframe {
    min-height: 320px;
  }

  .kizan-access-logo {
    width: 240px;
    margin: 0 auto 24px;
  }

  .kizan-access-row {
    gap: 12px;
  }

  #main .kizan-access-row dt,
  #main .kizan-access-row dd {
    font-size: 13px;
  }
}

/**************************************************
 * 会社概要ページ
 **************************************************/
#main .entry-content section.kizan-about-info-section,
#main .entry-content section.kizan-about-access-section {
  padding: 80px 0 100px;
}

#main .entry-content section.kizan-about-info-section {
  background: #fff;
}

#main .entry-content section.kizan-about-access-section {
  background: var(--bg-2, #f7f7f7);
}

#main .kizan-about.box {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}

#main .kizan-about-intro {
  margin-top: 32px;
  text-align: center;
}

/* 会社情報 */
#main table.kizan-about-table {
  width: 100%;
  margin: 40px 0 0;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
  color: var(--clr-text, #2f2f2f);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .04em;
}

#main .kizan-about-table tr,
#main .kizan-about-table tr:nth-child(odd),
#main .kizan-about-table tr:nth-child(even) {
  background: transparent;
}

#main .kizan-about-table th,
#main .kizan-about-table td {
  padding: 28px 40px;
  border: 0;
  border-bottom: 1px solid #ccc;
  background: transparent;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
  vertical-align: middle;
  overflow-wrap: anywhere;
}

#main .kizan-about-table th {
  width: 28%;
  font-weight: 700;
}

#main .kizan-about-table td {
  font-weight: 400;
}

#main .kizan-about-contact-item {
  display: inline-block;
  margin-right: 20px;
}

#main .kizan-about-contact-item:last-child {
  margin-right: 0;
}

/* アクセス */
#main .kizan-about-access-card {
  margin-top: 32px;
  padding: 40px;
  border-radius: 10px;
  background: #fff;
}

#main .kizan-about-access-top {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  align-items: start;
  gap: 40px;
  margin-bottom: 32px;
}

#main .kizan-about-access-info {
  min-width: 0;
}

#main .kizan-about-logo {
  margin: 0 0 24px;
}

#main .kizan-about-logo img {
  display: block;
  width: 250px;
  max-width: 100%;
  height: auto;
  margin: 0;
}

#main dl.kizan-about-access-details {
  margin: 0;
  color: var(--clr-text, #2f2f2f);
  font-size: 13px;
  line-height: 1.8;
}

#main .kizan-about-access-details > div {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #ccc;
}

#main .kizan-about-access-details dt,
#main .kizan-about-access-details dd {
  margin: 0;
  padding: 0;
  overflow-wrap: anywhere;
}

#main .kizan-about-access-details dt {
  font-weight: 700;
}

#main .kizan-about-directions {
  padding: 16px 20px;
  border: 1px solid var(--btn-color, #ef5c01);
  border-radius: 8px;
}

#main .kizan-about-directions h3 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--btn-color, #ef5c01);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: .2em;
}

#main .kizan-about-directions p {
  margin: 0;
  color: var(--clr-text, #2f2f2f);
  font-size: 13px;
  line-height: 1.8;
}

#main .kizan-about-map {
  width: 100%;
  height: 400px;
}

#main .kizan-about-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
}

/* スマホ */
@media screen and (max-width: 767px) {
  #main .entry-content section.kizan-about-info-section,
  #main .entry-content section.kizan-about-access-section {
    padding: 56px 0 64px;
  }

  #main .kizan-about.box { padding: 0 24px; }
  #main .kizan-about-intro { margin-top: 24px; text-align: left; }
  #main table.kizan-about-table { margin-top: 28px; }
  #main .kizan-about-table th,
  #main .kizan-about-table td { padding: 20px 8px; }
  #main .kizan-about-table th { width: 26%; }
  #main .kizan-about-contact-item { display: block; margin-right: 0; }
  #main .kizan-about-access-card { margin-top: 28px; padding: 24px 16px; }
  #main .kizan-about-access-top {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    margin-bottom: 24px;
  }
  #main .kizan-about-logo img { width: 220px; }
  #main .kizan-about-access-details > div {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px;
  }
  #main .kizan-about-map { height: 320px; }
}


/**************************************************
 * 事業紹介ページ
 **************************************************/
#main .entry-content section.kizan-business-info-section,
#main .entry-content section.kizan-business-process-section {
  padding: 80px 0 100px;
}

#main .entry-content section.kizan-business-info-section { 
  background: #fff;
}

#main .entry-content section.kizan-business-process-section { 
  background: var(--bg-2, #f7f7f7); 
}

/* 業務内容 */
#main .kizan-business.box {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}

#main .kizan-business-intro {
  margin-top: 32px;
  text-align: center;
}

/* 写真付きの事業説明 */
#main .kizan-business-card {
  display: grid;
  grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  margin-top: 32px;
  padding: 32px;
  border-radius: 10px;
  background: var(--bg-2, #f7f7f7);
  scroll-margin-top: 120px;
}

#main .kizan-business-image {
  min-width: 0;
  aspect-ratio: 19 / 12;
  overflow: hidden;
}

#main .kizan-business-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

#main .kizan-business-content {
  min-width: 0;
}

#main .kizan-business-heading {
  margin: 0 0 16px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--clr-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}

#main .kizan-business-catch {
  margin: 0 0 20px;
  color: var(--btn-color);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
}

/* 現場で大切にしていること */
#main .kizan-business-values {
  margin-top: 32px;
}

#main .kizan-business-values-heading {
  margin: 0 0 20px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--clr-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

#main ol.kizan-business-values-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#main li.kizan-business-value {
  min-width: 0;
  margin: 0;
  padding: 24px;
  border-radius: 10px;
  background: #faf0e9;
  box-sizing: border-box;
}

#main .kizan-business-value::before,
#main .kizan-business-value::after {
  content: none;
}

#main .kizan-business-value-number {
  display: block;
  margin-bottom: 10px;
  color: var(--btn-color);
  font-family: var(--font-accent2), sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
}

#main .kizan-business-value h4 {
  margin: 0 0 16px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--clr-text);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

/*====== スマホ ======*/
@media screen and (max-width: 767px) {
  #main .kizan-business.box {
    padding: 0 24px;
  }

  #main .kizan-business-intro {
    margin-top: 24px;
    text-align: left;
  }

  #main .kizan-business-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    margin-top: 28px;
    padding: 24px 20px;
    scroll-margin-top: 100px;
  }

  #main .kizan-business-heading {
    font-size: 21px;
  }

  #main .kizan-business-catch {
    font-size: 17px;
  }

  #main .kizan-business-values {
    margin-top: 32px;
  }

  #main .kizan-business-values-heading {
    font-size: 21px;
  }

  #main ol.kizan-business-values-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
}


/* 施工の流れ */
#main ol.kizan-business-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 44px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

#main li.kizan-business-step {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 18px;
  border-radius: 6px;
  background: #fff;
}

#main .kizan-business-step::before { 
  content: none; 
}

#main .kizan-business-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -27px;
  width: 16px;
  height: 16px;
  border-top: 4px solid var(--btn-color, #ef5c01);
  border-right: 4px solid var(--btn-color, #ef5c01);
  transform: translateY(-50%) rotate(45deg);
}

#main .kizan-business-step:nth-child(3)::after { 
  content: none; 
}

#main .kizan-business-step-heading {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

#main .kizan-business-step-number {
  flex-shrink: 0;
  color: var(--btn-color, #ef5c01);
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .04em;
}

#main .kizan-business-step-number > span {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  letter-spacing: .06em;
}

#main .kizan-business-step-heading h3 {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--clr-text, #2f2f2f);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

#main .kizan-business-step-image { 
  aspect-ratio: 16 / 9; 
  overflow: hidden; 
}

#main .kizan-business-step-image img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

#main .kizan-business-step > p {
  margin: 18px 0 0;
  color: var(--clr-text, #2f2f2f);
  font-size: 14px;
  line-height: 1.8;
}

/* アフターフォロー */
#main .kizan-business-aftercare {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 170px;
  margin-top: 60px;
  padding: 24px 40px;
  box-sizing: border-box;
  overflow: hidden;
  border-radius: 8px;
  background: #faf0e9;
}

#main .kizan-business-aftercare-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #fff;
}

#main .kizan-business-aftercare-icon img {
  display: block;
  width: 64px;
  height: 64px;
  margin: 0;
  object-fit: contain;
}

#main .kizan-business-aftercare-content {
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 52%;
}

#main .kizan-business-aftercare-content h3 {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--btn-color, #ef5c01);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: .2em;
}

#main .kizan-business-aftercare-content p {
  margin: 0;
  color: var(--clr-text, #2f2f2f);
  font-size: 14px;
  line-height: 1.8;
}

#main img.kizan-business-aftercare-photo {
  position: absolute;
  top: 0;
  right: 0;
  width: 42%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 40%);
  mask-image: linear-gradient(to right, transparent, #000 40%);
}

/* スマホ */
@media screen and (min-width: 768px) and (max-width: 1100px) {
  #main .kizan-business-card { 
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); 
    gap: 28px; 
  }

  #main .kizan-business-card.is-reverse { 
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); 
  }

  #main .kizan-business-step-heading { 
    gap: 10px; 
  }

  #main .kizan-business-step-heading h3 { 
    font-size: 16px; 
  }

  #main .kizan-business-aftercare { 
    padding: 24px; 
  }

  #main .kizan-business-aftercare-icon { 
    width: 88px; 
    height: 88px; 
  }

}

@media screen and (max-width: 767px) {
  #main .entry-content section.kizan-business-info-section,
  #main .entry-content section.kizan-business-process-section { 
    padding: 56px 0 64px; 
  }

  #main .kizan-business.box { 
    padding: 0 24px; 
  }

  #main .kizan-business-intro { 
    margin-top: 24px; 
    text-align: left; 
  }

  #main .kizan-business-list { 
    gap: 24px; 
    margin-top: 28px; 
  }

  #main .kizan-business-card,
  #main .kizan-business-card.is-reverse {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 24px 20px;
    scroll-margin-top: 100px;
  }

  #main .kizan-business-card.is-reverse > .kizan-business-image,
  #main .kizan-business-card.is-reverse > .kizan-business-content { 
    grid-column: auto; 
    grid-row: auto; 
  }

  #main .kizan-business-heading { 
    font-size: 21px; 
    margin-bottom: 16px; 
  }

  #main .kizan-business-heading span { 
    font-size: 12px; 
  }

  #main ol.kizan-business-steps { 
    grid-template-columns: minmax(0, 1fr); 
    gap: 40px; margin: 32px 0 0; 
  }

  #main .kizan-business-step:nth-child(3)::after { 
    content: ''; 
  }

  #main .kizan-business-step:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -25px;
    left: 50%;
    width: 12px;
    height: 12px;
    transform: translateX(-50%) rotate(135deg);
  }

  #main .kizan-business-aftercare { 
    flex-wrap: wrap; 
    gap: 20px; 
    margin-top: 40px; 
    padding: 24px 20px 0; 
  }

  #main .kizan-business-aftercare-icon { 
    width: 72px; 
    height: 72px; 
  }

  #main .kizan-business-aftercare-icon img { 
    width: 44px; 
    height: 44px; 
  }

  #main .kizan-business-aftercare-content { 
    flex: 1 1 180px; 
    width: auto; 
  }

  #main .kizan-business-aftercare-content h3 { 
    font-size: 17px; 
  }

  #main img.kizan-business-aftercare-photo {
    position: static;
    width: calc(100% + 40px);
    max-width: none;
    height: 160px;
    margin: 0 -20px;
    -webkit-mask-image: none;
    mask-image: none;
  }
}


/**************************************************
 * 求人情報ページ
 **************************************************/
#main .entry-content section.kizan-partner-section,
#main .entry-content section.kizan-staff-section { 
  padding: 80px 0; 
}

#main .entry-content section.kizan-partner-section { 
  background: #fff; 
}

#main .entry-content section.kizan-staff-section { 
  background: var(--bg-2, #f7f7f7); 
}

/* TOPの求人セクションと区別するため、下層ページ専用のクラスを使用 */
#main .kizan-recruit-page.box {
  width: 100%; 
  max-width: 1200px; 
  margin: 0 auto;
  padding: 0 40px; 
  box-sizing: border-box;
  scroll-margin-top: 120px;
}

#main .kizan-recruit-page > .kizan-title { 
  color: var(--clr-text, #2f2f2f); 
}

#main .kizan-recruit-page .kizan-text p { 
  text-align: left; 
}

#main .kizan-recruit-page .kizan-recruit-layout {
  display: grid; 
  gap: 60px; 
  align-items: start; 
  margin-top: 56px;
}

#main .kizan-recruit-page .kizan-recruit-layout.is-partner {
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
}

#main .kizan-recruit-page .kizan-recruit-layout.is-staff {
  grid-template-columns: minmax(0, 1fr) minmax(0, 360px);
}

#main .kizan-recruit-page .kizan-recruit-image { 
  min-width: 0; 
  aspect-ratio: 4 / 3; 
  overflow: hidden; 
}

#main .kizan-recruit-page .kizan-recruit-image img {
  display: block; 
  width: 100%; 
  height: 100%; 
  margin: 0;
  object-fit: cover; 
  object-position: center;
}

#main .kizan-recruit-page .kizan-recruit-content { 
  min-width: 0; 
}

#main .kizan-recruit-page .kizan-recruit-catch {
  margin: 0 0 20px; 
  padding: 0; 
  border: 0; 
  background: transparent;
  color: var(--clr-text, #2f2f2f); 
  font-family: var(--font-base), sans-serif;
  font-size: 22px; 
  font-weight: 700; 
  line-height: 1.7; 
  letter-spacing: .04em;
}

#main .kizan-recruit-page .kizan-recruit-heading,
#main .kizan-recruit-page .kizan-recruit-subheading {
  margin: 0 0 20px; 
  padding: 0; 
  border: 0; 
  background: transparent;
  color: var(--clr-text, #2f2f2f); 
  font-size: 22px; 
  font-weight: 700; 
  line-height: 1.6;
}

#main .kizan-recruit-page .kizan-recruit-heading {
  display: flex; 
  flex-wrap: wrap; 
  align-items: baseline; 
  gap: 8px 12px;
}

#main .kizan-recruit-page .kizan-recruit-heading span {
  color: var(--btn-color, #ef5c01); 
  font-family: var(--font-accent2), sans-serif;
  font-size: 14px; 
  font-weight: 500; 
  letter-spacing: .04em;
}

#main .kizan-recruit-page .kizan-recruit-subheading { 
  text-align: center; 
}

/* 協力会社：6つの募集工種 */
#main .kizan-recruit-page .kizan-recruit-trades { 
  margin-top: 56px; 
}

#main .kizan-recruit-page ul.kizan-recruit-trade-list {
  display: grid; 
  grid-template-columns: repeat(3, minmax(0, 1fr)); 
  gap: 24px;
  margin: 0; 
  padding: 0; 
  list-style: none;
}

#main .kizan-recruit-page li.kizan-recruit-trade {
  min-width: 0; 
  min-height: 140px; 
  margin: 0; 
  padding: 24px;
  box-sizing: border-box; 
  border-left: 3px solid var(--btn-color, #ef5c01);
  background: var(--bg-2, #f7f7f7);
}

#main .kizan-recruit-page .kizan-recruit-trade::before,
#main .kizan-recruit-page .kizan-recruit-trade::after { 
  content: none; 
}

#main .kizan-recruit-page .kizan-recruit-trade-number {
  display: block; 
  margin-bottom: 12px; 
  color: var(--btn-color, #ef5c01);
  font-family: var(--font-accent2), sans-serif; 
  font-size: 18px; 
  line-height: 1.2;
}

#main .kizan-recruit-page .kizan-recruit-trade h4 {
  margin: 0; 
  padding: 0; 
  border: 0; 
  background: transparent;
  color: var(--clr-text, #2f2f2f); 
  font-size: 22px; 
  font-weight: 700; 
  line-height: 1.6;
}

#main .kizan-recruit-page .kizan-recruit-trade p {
  margin: 8px 0 0; 
  color: var(--clr-text, #2f2f2f); 
  font-size: 13px; 
  line-height: 1.8;
}

/* ご相談事項・募集要項 */
#main .kizan-recruit-page .kizan-recruit-inquiry,
#main .kizan-recruit-page .kizan-recruit-requirements { 
  margin-top: 56px; 
}

#main .kizan-recruit-page table.kizan-recruit-table {
  width: 100%; 
  margin: 0; 
  border: 0; 
  border-collapse: collapse; 
  border-spacing: 0;
  background: transparent; 
  color: var(--clr-text, #2f2f2f);
  font-size: 14px; 
  line-height: 1.8; 
  letter-spacing: .02em;
}

#main .kizan-recruit-page .kizan-recruit-table tr,
#main .kizan-recruit-page .kizan-recruit-table tr:nth-child(odd),
#main .kizan-recruit-page .kizan-recruit-table tr:nth-child(even) { 
  background: transparent; 
}

#main .kizan-recruit-page .kizan-recruit-table th,
#main .kizan-recruit-page .kizan-recruit-table td {
  padding: 16px 20px; 
  border: 0; 
  border-bottom: 1px solid #ccc;
  background: transparent; 
  color: inherit; 
  font-size: inherit;
  text-align: left; 
  vertical-align: top; 
  overflow-wrap: anywhere;
}

#main .kizan-recruit-page .kizan-recruit-table th { 
  width: 25%; 
  font-weight: 700; 
}

#main .kizan-recruit-page .kizan-recruit-table td { 
  font-weight: 400; 
}

/* 今後の取り組み */
#main .kizan-recruit-page .kizan-recruit-future {
  margin-top: 60px; 
  padding: 28px 32px 32px; 
  border-radius: 8px; 
  background: #faf0e9;
}

#main .kizan-recruit-page ul.kizan-recruit-future-list {
  display: grid; 
  grid-template-columns: repeat(2, minmax(0, 1fr)); 
  gap: 24px;
  margin: 0; 
  padding: 0; 
  list-style: none;
}

#main .kizan-recruit-page .kizan-recruit-future-list > li {
  min-width: 0; 
  margin: 0; 
  padding: 24px; 
  border-radius: 6px; 
  background: #fff;
}

#main .kizan-recruit-page .kizan-recruit-future-list > li::before,
#main .kizan-recruit-page .kizan-recruit-future-list > li::after { 
  content: none; 
}

#main .kizan-recruit-page .kizan-recruit-future-list h4 {
  margin: 0 0 16px; 
  padding: 0; 
  border: 0; 
  background: transparent;
  color: var(--btn-color, #ef5c01); 
  font-size: 19px; 
  font-weight: 700; 
  line-height: 1.6;
}

#main .kizan-recruit-page .kizan-recruit-future-list p {
  margin: 0; 
  color: var(--clr-text, #2f2f2f); 
  font-size: 14px; 
  line-height: 1.8;
}

#main .kizan-recruit-page .kizan-recruit-action { 
  margin-top: 56px; 
}

#main .kizan-recruit-page .kizan-recruit-action .kizan-outline-btn {
  white-space: normal; 
  overflow-wrap: anywhere;
}

@media screen and (min-width: 768px) and (max-width: 1100px) {
  #main .kizan-recruit-page .kizan-recruit-layout { 
    gap: 32px; 
  }

  #main .kizan-recruit-page .kizan-recruit-layout.is-partner { 
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); 
  }

  #main .kizan-recruit-page .kizan-recruit-layout.is-staff { 
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); 
  }
}

@media screen and (max-width: 767px) {
  #main .entry-content section.kizan-partner-section,
  #main .entry-content section.kizan-staff-section { 
    padding: 56px 0; 
  }

  #main .kizan-recruit-page.box { 
    padding: 0 24px; 
    scroll-margin-top: 100px; 
  }

  #main .kizan-recruit-page .kizan-recruit-layout.is-partner,
  #main .kizan-recruit-page .kizan-recruit-layout.is-staff {
    grid-template-columns: minmax(0, 1fr); 
    gap: 28px; 
    margin-top: 36px;
  }
  #main .kizan-recruit-page .kizan-recruit-image { 
    width: 100%; 
    max-width: 480px; 
    margin: 0 auto; 
  }

  #main .kizan-recruit-page .is-staff > .kizan-recruit-image { 
    order: -1; 
  }

  #main .kizan-recruit-page .kizan-recruit-catch { 
    font-size: 19px; 
  }

  #main .kizan-recruit-page .kizan-recruit-heading,
  #main .kizan-recruit-page .kizan-recruit-subheading { 
    font-size: 20px; 
  }

  #main .kizan-recruit-page .kizan-recruit-heading span { 
    font-size: 12px; 
  }

  #main .kizan-recruit-page .kizan-recruit-trades,
  #main .kizan-recruit-page .kizan-recruit-inquiry,
  #main .kizan-recruit-page .kizan-recruit-requirements { 
    margin-top: 36px; 
  }

  #main .kizan-recruit-page ul.kizan-recruit-trade-list { 
    grid-template-columns: repeat(2, minmax(0, 1fr)); 
    gap: 16px; 
  }

  #main .kizan-recruit-page li.kizan-recruit-trade { 
    padding: 20px 16px; 
  }

  #main .kizan-recruit-page .kizan-recruit-trade h4 { 
    font-size: 19px; 
  }

  #main .kizan-recruit-page .kizan-recruit-table th { 
    width: 26%; 
  }

  #main .kizan-recruit-page .kizan-recruit-table th,
  #main .kizan-recruit-page .kizan-recruit-table td { 
    padding: 14px 6px; 
  }

  #main .kizan-recruit-page .kizan-recruit-future { 
    margin-top: 40px; 
    padding: 24px 16px; 
  }

  #main .kizan-recruit-page ul.kizan-recruit-future-list { 
    grid-template-columns: minmax(0, 1fr); 
    gap: 16px; 
  }

  #main .kizan-recruit-page .kizan-recruit-future-list > li { 
    padding: 20px; 
  }

  #main .kizan-recruit-page .kizan-recruit-future-list h4 { 
    font-size: 18px; 
  }

  #main .kizan-recruit-page .kizan-recruit-action { 
    margin-top: 36px; 
  }

}

@media screen and (max-width: 374px) {
  #main .kizan-recruit-page ul.kizan-recruit-trade-list { 
    grid-template-columns: minmax(0, 1fr); 
  }
}

/**************************************************
 * お知らせ一覧ページ
 **************************************************/
#main .kizan-news-archive { 
  padding:64px 0 100px; 
  background:var(--bg-1); 
}

#main .kizan-news-archive > .box { 
  width:100%; 
  max-width:1200px; 
  margin:0 auto; 
  padding:0 40px; 
  box-sizing:border-box; 
}

#main .kizan-news-archive *, 
#main .kizan-news-archive *::before, 
#main .kizan-news-archive *::after { 
  box-sizing:border-box; 
}

/* カテゴリー切り替え */
#main .kizan-news-filter { 
  display:flex; 
  flex-wrap:wrap; 
  align-items:center; 
  gap:16px 24px; 
  margin:0 0 64px; 
  padding:18px 20px; 
  background:#faf0e9; 
}

#main .kizan-news-filter-label { 
  font-size:12px; 
  line-height:1.5; 
}

#main .kizan-news-filter-list { 
  display:flex; 
  flex-wrap:wrap; 
  gap:10px; 
  margin:0; 
  padding:0; 
  list-style:none; 
}

#main .kizan-news-filter-list > li { 
  margin:0; 
  padding:0; 
}

#main .kizan-news-filter-list a { 
  display:block; 
  min-width:88px; 
  padding:6px 18px; 
  border:1px solid var(--btn-color); 
  border-radius:30px; 
  background:transparent; 
  font-size:12px; 
  line-height:1.5; 
  text-align:center; 
  text-decoration:none; 
  color:var(--btn-color); 
}

#main .kizan-news-filter-list a[aria-current=page], 
#main .kizan-news-filter-list a:hover { 
  background:var(--btn-color); 
  color:#fff; 
}

/* 既存#listの3列指定を、この一覧のみ4列へ */
#main .kizan-news-archive #list { 
  display:grid; 
  grid-template-columns:repeat(4,minmax(0,1fr)); 
  gap:32px 24px; 
  align-items:stretch; 
  width:100%; 
  margin:0; 
  padding:0; 
}

#main .kizan-news-archive #list::before, 
#main .kizan-news-archive #list::after { 
  content:none; 
  display:none; 
}

#main .kizan-news-archive .kizan-news-card { 
  display:flex; 
  flex-direction:column; 
  float:none; 
  width:100%; 
  min-width:0; 
  height:100%; 
  margin:0; 
  padding:0; 
  border:0; 
  background:#fff; 
  box-shadow:0 1px 4px rgb(0 0 0 / 12%); 
}

#main .kizan-news-thumb { 
  position:relative; 
  flex-shrink:0; 
  width:100%; 
  margin:0; 
  padding:0; 
}

#main .kizan-news-image-link { 
  display:block; 
  aspect-ratio:1; 
  overflow:hidden; 
  background:#dce4ed; 
}

#main .kizan-news-image { 
  display:block; 
  width:100%; 
  height:100%; 
  max-width:none; 
  margin:0; 
  object-fit:cover; 
  transition:transform .3s ease; 
}

#main .kizan-news-image-link:hover .kizan-news-image { 
  transform:scale(1.04); 
}

#main .kizan-news-noimage { 
  display:flex; 
  align-items:center; 
  justify-content:center; 
  width:100%; 
  height:100%; 
  color:#fff; 
}

#main .kizan-news-noimage svg { 
  width:48px; 
  height:48px; 
}

#main .kizan-news-category { 
  position:absolute; 
  top:8px; 
  right:8px; 
  z-index:1; 
  max-width:calc(100% - 16px); 
  padding:3px 10px; 
  border-radius:20px; 
  background:var(--btn-color); 
  font-size:10px; line-height:1.5; 
  text-decoration:none; 
  overflow-wrap:anywhere; 
  color:#fff; 
}

#main .kizan-news-card-body { 
  display:flex; flex:1; 
  flex-direction:column; 
  min-width:0; 
  padding:14px 14px 16px; 
}

#main .kizan-news-card-date { 
  display:block; 
  margin:0 0 8px; 
  font-size:11px; 
  line-height:1.5; 
  color:#999; 
}

#main .kizan-news-card-title { 
  display:block; 
  margin:0; 
  padding:0; 
  border:0; 
  background:transparent; 
  font-size:14px; 
  font-weight:500; 
  line-height:1.7; 
  text-align:left; 
}

#main .kizan-news-card-title a { 
  display:-webkit-box; 
  -webkit-box-orient:vertical; 
  -webkit-line-clamp:3; 
  overflow:hidden; 
  font-family:var(--font-base),sans-serif; 
  font-size:14px; 
  font-weight:500; 
  line-height:1.7; 
  text-decoration:none; 
  overflow-wrap:anywhere; 
  color:var(--clr-text); 
}

#main .kizan-news-card-title a:hover { 
  color:var(--btn-color); 
}

#main .kizan-news-card-more { 
  display:flex; 
  flex:0 0 36px; 
  align-items:flex-end; 
  justify-content:flex-end; 
  min-width:44px; 
  min-height:36px; 
  margin:auto 0 0 auto; 
  text-decoration:none; 
  color:var(--btn-color); 
}

#main .kizan-news-card-more span { 
  position:relative; 
  display:block; 
  width:48px; 
  height:8px; 
  border-bottom:1px solid currentColor; 
}

#main .kizan-news-card-more span::after { 
  content:''; 
  position:absolute; 
  right:0; 
  bottom:-1px; 
  width:9px; 
  height:1px; 
  background:currentColor; 
  transform:rotate(35deg); 
  transform-origin:right center; 
}

#main .kizan-news-card a:focus-visible, 
#main .kizan-news-filter a:focus-visible { 
  outline:2px solid var(--btn-color); 
  outline-offset:3px; 
}

/* 既存ページ送りの形だけ変更 */
#main .kizan-news-archive .pagination { 
  display:flex; 
  flex-wrap:wrap; 
  align-items:center; 
  justify-content:center; 
  gap:8px; 
  margin:64px 0 0; 
  padding:0; 
}

#main .kizan-news-archive .pagination .nav-links { 
  display:flex; 
  flex-wrap:wrap; 
  align-items:center; 
  justify-content:center; 
  gap:8px; 
}

#main .kizan-news-archive .pagination .page-numbers { 
  display:inline-flex; 
  align-items:center; 
  justify-content:center; 
  width:auto; 
  min-width:32px; 
  height:32px; 
  margin:0; 
  padding:0 10px; 
  border:1px solid var(--btn-color); 
  border-radius:0; 
  background:#fff; 
  box-shadow:none; 
  font-size:12px; 
  font-weight:400; 
  line-height:1; 
  text-decoration:none; 
  color:var(--btn-color); 
  transform:none; 
}

#main .kizan-news-archive .pagination .current, 
#main .kizan-news-archive .pagination a.page-numbers:hover { 
  background:var(--btn-color); 
  color:#fff; 
}

#main .kizan-news-archive .pagination .dots { 
  min-width:16px; 
  padding:0; 
  border:0; 
  background:transparent; 
}

@media screen and (max-width:767px) {
  #main .kizan-news-archive { 
    padding:40px 0 64px; 
  }

  #main .kizan-news-archive > .box { 
    padding:0 24px; 
  }

  #main .kizan-news-filter { 
    gap:12px; 
    margin-bottom:32px; 
    padding:16px; 
  }

  #main .kizan-news-filter-label { 
    flex-basis:100%; 
  }

  #main .kizan-news-filter-list { 
    gap:8px; 
  }

  #main .kizan-news-filter-list a { 
    min-width:0; 
    padding:6px 12px; 
  }

  #main .kizan-news-archive #list { 
    grid-template-columns:repeat(2,minmax(0,1fr)); 
    gap:24px 16px; 
  }

  #main .kizan-news-card-body { 
    padding:12px 10px; 
  }

  #main .kizan-news-card-title, #main .kizan-news-card-title a { 
    font-size:13px; 
  }

  #main .kizan-news-archive .pagination { 
    margin-top:40px; 
  }
}

@media (prefers-reduced-motion:reduce) {
  #main .kizan-news-image { transition:none; }
}


/**************************************************
 * お知らせ詳細ページ
 **************************************************/
#main .article-section.kizan-news-single {
  padding: 64px 0 100px;
  background-color: var(--bg-1, #fff);
}

#main .kizan-news-single > .kizan-news-single-inner {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}

#main article.kizan-news-article {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#main .kizan-news-single-image {
  margin: 0 0 48px;
}

#main .kizan-news-single-image .kizan-news-single-photo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: 0;
}

#main .kizan-news-single-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
}

#main .kizan-news-single-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

#main .kizan-news-single-category {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  min-height: 26px;
  padding: 4px 20px;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--btn-color, #ef5c01);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  overflow-wrap: anywhere;
}

#main .kizan-news-single-category:hover {
  text-decoration: underline;
}

#main .kizan-news-single-date {
  flex-shrink: 0;
  color: #888;
  font-size: 12px;
  line-height: 1.5;
}

#main .kizan-news-single-content {
  margin: 0;
  color: var(--clr-text, #2f2f2f);
  font-size: 14px;
  line-height: 2;
  letter-spacing: .04em;
  overflow-wrap: anywhere;
}

#main .kizan-news-single-content > :first-child {
  margin-top: 0;
}

#main .kizan-news-single-content > :last-child {
  margin-bottom: 0;
}

#main .kizan-news-single-content p {
  margin: 0 0 24px;
  font-size: inherit;
  line-height: inherit;
}

#main .kizan-news-single-content hr {
  width: 100%;
  height: 0;
  margin: 32px 0;
  border: 0;
  border-top: 1px solid #ddd;
  background: transparent;
}

#main .kizan-news-single-content h2,
#main .kizan-news-single-content h3,
#main .kizan-news-single-content h4 {
  margin: 40px 0 20px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-weight: 700;
  line-height: 1.6;
}

#main .kizan-news-single-content h2 { font-size: 24px; }
#main .kizan-news-single-content h3 { font-size: 20px; }
#main .kizan-news-single-content h4 { font-size: 17px; }

#main .kizan-news-single-content ul,
#main .kizan-news-single-content ol {
  margin: 0 0 24px;
  padding-left: 1.6em;
}

#main .kizan-news-single-content li {
  margin-bottom: 8px;
}

#main .kizan-news-single-content figure {
  max-width: 100%;
  margin: 32px 0;
}

#main .kizan-news-single-content img {
  max-width: 100%;
  height: auto;
}

#main .kizan-news-single-content a {
  text-underline-offset: .2em;
}

#main .kizan-news-single-category:focus-visible {
  outline: 2px solid var(--clr-text, #2f2f2f);
  outline-offset: 4px;
}

@media screen and (max-width: 767px) {
  #main .article-section.kizan-news-single {
    padding: 40px 0 64px;
  }

  #main .kizan-news-single > .kizan-news-single-inner {
    padding: 0 24px;
  }

  #main .kizan-news-single-image { 
    margin-bottom: 24px; 
  }

  #main .kizan-news-single-meta { 
    margin-bottom: 28px; 
  }

  #main .kizan-news-single-category { 
    padding: 4px 14px; 
  }

  #main .kizan-news-single-date { 
    font-size: 11px; 
  }

  #main .kizan-news-single-content h2 { 
    font-size: 21px; 
  }

  #main .kizan-news-single-content h3 { 
    font-size: 18px; 
  }
}


/**************************************************
 * お問い合わせページ
 **************************************************/
/* お問い合わせページ用：共通のkizan-title等は既存CSSを使用 */
#main .kizan-contact.box { 
  width:100%; max-width:960px; 
  margin:0 auto; padding-right:20px; 
  padding-left:20px; 
  box-sizing:border-box; 
}

#main .kizan-contact *, 
#main .kizan-contact *::before, 
#main .kizan-contact *::after { 
  box-sizing:border-box; 
}

#main .kizan-contact-intro { 
  margin:32px 0; 
  text-align:center; 
}

#main .kizan-contact-panel { 
  margin-top:32px; 
  padding:28px 24px 32px; 
  border:2px solid var(--btn-color); 
  border-radius:20px; 
  text-align:center; 
}

#main .kizan-contact-panel-title { 
  display:flex; 
  flex-wrap:wrap; 
  align-items:baseline; 
  justify-content:center; 
  gap:8px 12px; 
  margin:0 0 24px; 
  padding:0; 
  border:0; 
  background:transparent; 
  font-size:24px; 
  font-weight:600; 
  line-height:1.6; 
}

#main .kizan-contact-panel-title span { 
  font-family:var(--font-accent2),sans-serif; 
  font-size:16px; 
  font-weight:500; 
  color:var(--btn-color); 
}

#main .kizan-contact-number { 
  display:flex; 
  align-items:center; 
  justify-content:center; 
  gap:12px; 
  margin:0 0 20px; 
}

#main .kizan-contact-number-label { 
  font-size:18px; 
  letter-spacing:.08em; 
}

#main .kizan-contact-number a, 
#main .kizan-contact-number-value { 
  font-family:var(--font-accent2),sans-serif; 
  font-size:clamp(28px,4.5vw,48px); 
  font-weight:700; 
  line-height:1.3; 
  letter-spacing:.07em; 
  color:var(--clr-text); 
  white-space:nowrap; 
}

#main .kizan-contact-number a { 
  color:var(--btn-color); 
  text-decoration:underline; 
  text-underline-offset:6px;
  font-size: 36px;
}

#main .kizan-contact-icon { 
  flex:0 0 60px; 
  width:60px; 
  height:60px; 
  margin-right:8px; 
  border:1px solid var(--btn-color); 
  border-radius:50%; 
  background-position:center; 
  background-size:30px 30px; 
  background-repeat:no-repeat; 
}

#main .is-tel .kizan-contact-icon { 
  background-image: url(./../../../common/img/icon_phone_orange.webp); 
}

#main .is-fax .kizan-contact-icon { 
  background-image: url(./../../../common/img/icon_fax_orange.webp); 
}

#main .kizan-contact-hours { 
  margin:0; 
  font-size:16px; 
  line-height:1.8; 
}

#main .kizan-contact-form-section { 
  margin-top:160px; 
}

#main .kizan-contact-form { 
  margin-top:36px; 
}

#main .kizan-form-field { 
  margin:0 0 24px; 
}

#main .kizan-form-field > p { 
  margin:0; 
}

#main .kizan-form-field label { 
  display:block; 
  margin:0 0 10px; 
  padding:0; 
  font-size:14px; 
  font-weight:500; 
  line-height:1.6; 
  letter-spacing:.06em; 
}

#main .kizan-required { 
  display:inline-block; 
  margin-left:16px; 
  padding:2px 7px; 
  background:var(--btn-color); 
  font-size:11px; 
  font-weight:400; 
  line-height:1.5; 
  letter-spacing:.05em; 
  color:#fff; 
  vertical-align:middle; 
}

#main .kizan-contact-form .wpcf7-form-control-wrap { 
  display:block; 
}

#main .kizan-contact-form input:is([type=text],[type=email],[type=tel]), 
#main .kizan-contact-form select, 
#main .kizan-contact-form textarea { 
  display:block; 
  width:100%; 
  max-width:100%; 
  min-height:40px; 
  margin:0; 
  padding:10px 12px; 
  border:1px solid #bbb; 
  border-radius:4px; 
  box-shadow:none; 
  background:#fff; 
  font-family:var(--font-base),sans-serif; 
  font-size:14px; 
  font-weight:400; 
  line-height:1.6; 
  color:var(--clr-text); 
}

#main .kizan-contact-form select { 
  padding-right:32px; 
  cursor:pointer; 
}

#main .kizan-contact-form textarea { 
  min-height:200px; 
  resize:vertical; 
}

#main .kizan-contact-form input::placeholder, 
#main .kizan-contact-form textarea::placeholder { 
  color:#888; 
  opacity:1; 
}

#main .kizan-contact-form input:focus-visible, 
#main .kizan-contact-form select:focus-visible, 
#main .kizan-contact-form textarea:focus-visible { 
  outline:2px solid var(--btn-color); 
  outline-offset:2px; 
}

#main .kizan-contact-form .wpcf7-not-valid { 
  border-color:#c62828; 
}

#main .kizan-contact-form .wpcf7-not-valid-tip { 
  margin-top:6px; 
  font-size:13px; 
  line-height:1.6; 
}

#main .kizan-contact-form .kizan-field-note { 
  margin:8px 0 0; 
  font-size:12px; 
  line-height:1.7; 
  color:#666; 
}

#main .kizan-contact-reply-note { 
  margin:28px 0; 
  font-size:13px; 
  line-height:1.8; 
}

#main .kizan-contact-consent { 
  margin:0; 
  font-size:14px; 
  line-height:1.8; 
}

#main .kizan-contact-consent .wpcf7-list-item { 
  display:block; 
  margin:0; 
}

#main .kizan-contact-consent label { 
  cursor:pointer; 
}

#main .kizan-contact-consent input[type=checkbox] { 
  width:18px; 
  height:18px; 
  margin:0 8px 0 0; 
  accent-color:var(--btn-color); 
  vertical-align:middle; 
}

#main .kizan-contact-consent a { 
  color:#0077b5; 
  text-decoration:underline; 
  text-underline-offset:3px; 
}

#main .kizan-contact-submit { 
  margin-top:36px; 
  text-align:center; 
}

#main .kizan-contact-submit > p { 
  margin:0; 
}

#main .kizan-submit-wrap { 
  position:relative; 
  display:inline-block; 
}

#main .kizan-contact-form .kizan-contact-send { 
  display:inline-block; 
  width:156px; 
  min-height:56px; 
  margin:0; 
  padding:14px 44px; 
  border:1px solid var(--btn-color); 
  border-radius:0; 
  background:#fff; 
  font-family:var(--font-base),sans-serif; 
  font-size:14px; 
  font-weight:500; 
  line-height:1.6; 
  color:var(--btn-color); 
  cursor:pointer; 
}

#main .kizan-submit-wrap::after { 
  content:''; 
  position:absolute; 
  top:50%; 
  right:28px; 
  width:7px; 
  height:7px; 
  border-top:1.5px solid var(--btn-color); 
  border-right:1.5px solid var(--btn-color); 
  transform:translateY(-50%) rotate(45deg); 
  pointer-events:none; 
}

#main .kizan-contact-form .kizan-contact-send:disabled { 
  border-color:#ccc; 
  background:#fff; 
  color:#aaa; 
  opacity:.65; 
  cursor:not-allowed; 
}

#main .kizan-submit-wrap:has(.kizan-contact-send:disabled)::after { 
  border-color:#aaa; 
  opacity:.65; 
}

#main .kizan-contact .wpcf7-spinner { 
  display:inline-block; 
  position:absolute; 
  top:50%; 
  right:-44px; 
  margin:-12px 0 0; 
}

#main .kizan-contact .wpcf7-response-output { 
  margin:28px 0 0; 
  padding:16px; 
  font-size:14px; 
  line-height:1.8; 
}

@media screen and (max-width:767px) {
  #main .kizan-contact.box { 
    padding-right:24px; 
    padding-left:24px; 
  }

  #main .kizan-contact-intro { 
    margin:24px 0; 
    text-align:left; 
  }

  #main .kizan-contact-panel { 
    padding:24px 12px; 
    border-radius:14px; 
  }

  #main .kizan-contact-panel-title { 
    flex-direction:column; 
    align-items:center; 
    gap:4px; 
    font-size:18px; 
  }

  #main .kizan-contact-panel-title span { 
    font-size:12px; 
  }

  #main .kizan-contact-number { 
    gap:5px; 
    margin-bottom:18px; 
  }

  #main .kizan-contact-icon { 
    flex-basis:32px; 
    width:32px; 
    height:32px; 
    margin-right:2px; 
    background-size:18px 18px; 
  }

  #main .kizan-contact-number-label { 
    font-size:12px; 
    letter-spacing:0; 
  }

  #main .kizan-contact-number a, 
  #main .kizan-contact-number-value { 
    font-size:clamp(17px,5.4vw,28px); 
    letter-spacing:.01em; 
  }

  #main .kizan-contact-hours { 
    font-size:12px; 
  }

  #main .kizan-contact-form-section { 
    margin-top:72px; 
  }
  
  #main .kizan-contact-form { 
    margin-top:28px; 
  }

  #main .kizan-contact-form input:is([type=text],[type=email],[type=tel]), 
  #main .kizan-contact-form select, 
  #main .kizan-contact-form textarea { 
    font-size:16px; 
  }

  #main .kizan-contact-consent .kizan-required { 
    margin-left:8px; 
  }
  
}


/**************************************************
 * お問い合わせページ
 **************************************************/
#main .kizan-privacy {
  color: var(--clr-text);
  font-size: 14px;
  line-height: 2;
  overflow-wrap: anywhere;
}

#main .kizan-privacy h2 {
  margin: 48px 0 20px;
  padding: 0 0 12px;
  border: 0;
  border-bottom: 1px solid #ddd;
  background: transparent;
  color: var(--clr-text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
}

#main .kizan-privacy p {
  margin: 0 0 20px;
  font-size: inherit;
  line-height: inherit;
}

#main .kizan-privacy ul {
  margin: 0 0 20px;
  padding-left: 1.5em;
  list-style: disc;
}

#main .kizan-privacy li {
  margin-bottom: 8px;
}

#main .kizan-privacy > :last-child {
  margin-bottom: 0;
}

#main .kizan-privacy a {
  color: var(--btn-color);
  text-decoration: underline;
  text-underline-offset: .2em;
}

@media screen and (max-width: 767px) {
  #main .kizan-privacy h2 {
    margin-top: 36px;
    font-size: 19px;
  }
}



/* 画像エリア全体は、移動させずフェードだけ */
html.kizan-reveal-enabled .reveal.reveal-fade {
  transform: none;
  transition: opacity .9s ease;
}

@media (prefers-reduced-motion: reduce) {
  html.kizan-reveal-enabled .reveal.reveal-fade {
    transition: none;
  }
}

