/*
Theme Name: Arkhe
Theme URI: https://arkhe-theme.com/
Version: 3.12.0
Tested up to: 6.8
Requires at least: 6.0
Requires PHP: 7.0
Description: A very simple theme for production templates. Customize as you like.
Tags: two-columns, one-column, right-sidebar, custom-colors, custom-menu, editor-style, theme-options, block-styles, wide-blocks
Author: LOOS,Inc.
Author URI: https://loos.co.jp/
Text Domain: arkhe
Domain Path: /languages
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/


/* ================================================
 清水電気 下層ページ専用スタイル
================================================ */

/* 色とフォントの定義 */
:root {
  --sz-main-color: #05308f; /* 濃い青 */
  --sz-sub-color: #6a83bb;  /* サブ青 */
  --sz-text-color: #333333;
  --sz-base-bg-color: #f9f9f9;
  --sz-white-color: #ffffff;
  --sz-font-family-title: 'Oswald', sans-serif; /* 英字タイトル用フォントの例 */
}

a{
color: #fff;	
}

/* コンテンツ全体のラッパー */
.sz-container {
  max-width: 1100px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}

/* 下層ページヘッダー */
.sz-page-header {
  background-color: var(--sz-main-color);
  color: var(--sz-white-color);
  padding: 60px 0;
  text-align: center;
}

.sz-page-header h1 {
  font-size: 36px;
  margin: 0;
  font-weight: bold;
}

.sz-page-header .sz-page-header-en {
  font-family: var(--sz-font-family-title);
  font-size: 18px;
  letter-spacing: 2px;
  opacity: 0.8;
  margin-top: 8px;
}

/* パンくずリスト */
.sz-breadcrumb {
  background-color: var(--sz-base-bg-color);
  padding: 15px 0;
  font-size: 14px;
}

.sz-breadcrumb a,
.sz-breadcrumb span {
  color: var(--sz-text-color);
}
.sz-breadcrumb span {
  font-weight: bold;
}

/* メインコンテンツエリア */
.sz-main-content {
  padding: 80px 0;
}

.sz-content-section {
  margin-bottom: 60px;
}
.sz-content-section:last-child {
  margin-bottom: 0;
}

.sz-section-title {
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
  color: var(--sz-main-color);
  border-bottom: 2px solid var(--sz-sub-color);
  padding-bottom: 10px;
}

/* テーブル */
.sz-info-table {
  width: 100%;
  border-collapse: collapse;
}

.sz-info-table th,
.sz-info-table td {
  border: 1px solid #ddd;
  padding: 15px;
  vertical-align: middle;
}

.sz-info-table th {
  background-color: var(--sz-base-bg-color);
  font-weight: bold;
  width: 25%;
  text-align: left;
}

/* Googleマップ */
.sz-map-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
}

.sz-map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ================================================
 Font Awesome アイコン用スタイル【追記】
================================================ */
.sz-page-header i,
.sz-breadcrumb i,
.sz-section-title i,
.sz-info-table th i {
  margin-right: 0.5em; /* アイコンとテキストの間に余白を追加 */
  width: 1.2em; /* アイコンの幅を揃える */
  text-align: center;
}

/* テーブル内のアイコン色を調整 */
.sz-info-table th i {
  color: var(--sz-sub-color);
}


/* ================================================
 レスポンシブ対応 (SP)
================================================ */
@media screen and (max-width: 768px) {
  .sz-main-content {
    padding: 40px 0;
  }
  .sz-section-title {
    font-size: 22px;
  }
  .sz-page-header h1 {
    font-size: 28px;
  }
  .sz-info-table th,
  .sz-info-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .sz-info-table th {
    border-bottom: none;
    text-align: left; /* SPでは左寄せに戻す */
  }
  .sz-info-table td {
    border-top: none;
  }
}
/* ================================================
 お問い合わせフォーム用スタイル【差し替え・追記】
================================================ */

/* 必須バッジ【差し替え】 */
.sz-required-badge {
  display: inline-block;
  background-color: #c72439; /* 背景を赤系に */
  color: #fff; /* 文字を白に */
  font-size: 12px;
  font-weight: bold;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 8px;
  vertical-align: middle;
  line-height: 1.5;
}

/* Contact Form 7 全体 */
.wpcf7-form {
  margin: 0 auto;
  max-width: 800px;
}
.wpcf7-form p {
  margin-bottom: 24px;
}

/* 各フォーム部品のラベル */
.wpcf7-form label {
  display: block;
  font-weight: bold;
  margin-bottom: 8px;
}

/* テキスト入力、メールアドレス、テキストエリア */
.wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #f9f9f9;
  font-size: 16px;
  box-sizing: border-box;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.wpcf7-form-control:focus {
  outline: none;
  border-color: var(--sz-sub-color);
  box-shadow: 0 0 5px rgba(106, 131, 187, 0.5);
}

/* テキストエリアの高さ */
.wpcf7-textarea {
  height: 180px;
  resize: vertical;
}

/* プライバシーポリシー同意チェックボックス */
.wpcf7-acceptance {
  margin-top: 20px;
  text-align: center;
}
.wpcf7-acceptance .wpcf7-list-item-label {
  font-weight: normal;
}

/* 送信ボタン */
.wpcf7-submit {
  display: block;
  width: 100%;
  max-width: 300px;
  margin: 30px auto 0;
  padding: 15px 20px;
  border: none;
  border-radius: 5px;
  background-color: var(--sz-sub-color);
  color: var(--sz-white-color);
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s, transform 0.3s;
}
.wpcf7-submit:hover {
  background-color: var(--sz-sub-color);
  transform: translateY(-2px);
}

/* エラー・完了メッセージ */
.wpcf7-response-output {
  border-radius: 4px;
}

/* ================================================
 事業内容ページ用スタイル【追記】
================================================ */

/* 各事業セクションの導入部分 */
.sz-section-lead {
  margin-bottom: 40px;
  text-align: center;
}
.sz-section-lead .sz-section-image {
  border-radius: 8px;
  margin-bottom: 20px;
  max-width: 800px; /* 画像が大きくなりすぎないように調整 */
}

/* 画像とテキストの横並びカード */
.sz-media-card {
  display: flex;
  align-items: center;
  background-color: #f9f9f9;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 30px;
  border: 1px solid #eee;
}

.sz-media-card__img {
  flex: 0 0 40%; /* 画像エリアの幅を40%に固定 */
}
.sz-media-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像の比率を保ったままエリアを埋める */
  display: block;
}

.sz-media-card__body {
  flex: 1;
  padding: 30px;
}
.sz-media-card__body h3 {
  font-size: 22px;
  margin-top: 0;
  margin-bottom: 15px;
  color: var(--sz-main-color);
}
.sz-media-card__body h3 i {
  margin-right: 0.5em;
  color: var(--sz-sub-color);
}
.sz-media-card__body p {
  margin-bottom: 15px;
}

/* 箇条書きリストのスタイル */
.sz-list {
  list-style: none;
  padding-left: 0;
}
.sz-list li {
  padding-left: 1.5em;
  position: relative;
  margin-bottom: 8px;
}
.sz-list li::before {
  content: '\f058'; /* Font Awesomeのチェックマークアイコン */
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  color: var(--sz-sub-color);
  position: absolute;
  left: 0;
  top: 1px;
}


/* ================================================
 レスポンシブ対応 (SP)【追記】
================================================ */
@media screen and (max-width: 768px) {
  /* 事業内容ページのカードレイアウト */
  .sz-media-card {
    flex-direction: column; /* SPでは縦積みに */
  }
  .sz-media-card__img {
    width: 100%;
    flex-basis: auto;
  }
  .sz-media-card__body {
    padding: 20px;
  }
  .sz-media-card__body h3 {
    font-size: 18px;
  }
}

/* ================================================
 ご依頼からの流れページ用スタイル【追記】
================================================ */

.sz-flow-list {
  list-style: none;
  padding-left: 0;
  position: relative;
}

/* タイムラインの縦線 */
.sz-flow-list::before {
  content: '';
  position: absolute;
  top: 25px;
  left: 45px;
  width: 2px;
  height: calc(100% - 50px);
  background-color: var(--sz-sub-color);
  opacity: 0.3;
}

.sz-flow-item {
  display: flex;
  align-items: flex-start;
  position: relative;
  margin-bottom: 70px;
}

.sz-flow-item:last-child {
  margin-bottom: 0;
}

.sz-flow-item__step {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
  background-color: var(--sz-main-color);
  color: #fff;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 14px;
  line-height: 1.2;
  border: 4px solid #fff;
  box-shadow: 0 0 0 4px var(--sz-main-color);
}
.sz-flow-item__step span {
  font-size: 36px;
  font-family: var(--sz-font-family-title);
}

.sz-flow-item__body {
  padding-left: 30px;
  flex-grow: 1;
}

.sz-flow-item__title {
  font-size: 24px;
  margin-top: 0;
  margin-bottom: 10px;
  color: var(--sz-main-color);
}
.sz-flow-item__title i {
  margin-right: 0.5em;
  color: var(--sz-sub-color);
}

.sz-flow-item__desc {
  margin: 0;
  line-height: 1.8;
}

/* ================================================
 レスポンシブ対応 (SP)【追記】
================================================ */
@media screen and (max-width: 768px) {
  .sz-flow-list::before {
    left: 30px;
    top: 20px;
    height: calc(100% - 40px);
  }
  .sz-flow-item__step {
    width: 60px;
    height: 60px;
    border-width: 3px;
    box-shadow: 0 0 0 3px var(--sz-main-color);
    font-size: 10px;
  }
  .sz-flow-item__step span {
    font-size: 24px;
  }
  .sz-flow-item__body {
    padding-left: 20px;
  }
  .sz-flow-item__title {
    font-size: 20px;
  }
}

/* ================================================
 代表挨拶セクション用スタイル【追記】
================================================ */

.sz-greeting-card {
  display: flex;
  align-items: flex-start; /* 上揃えに変更 */
  background-color: #f9f9f9;
  border-radius: 8px;
  border: 1px solid #eee;
  padding: 30px;
}

.sz-greeting-card__img {
  flex: 0 0 300px; /* 画像エリアの幅を固定 */
  margin-right: 30px;
}
.sz-greeting-card__img img {
  width: 100%;
  border-radius: 8px; /* 画像に角丸を追加 */
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.sz-greeting-card__body {
  flex: 1;
}
.sz-greeting-card__body p {
  margin-top: 0;
  margin-bottom: 1.5em;
  line-height: 1.9;
}
.sz-greeting-card__body p:last-child {
  margin-bottom: 0;
}

.sz-greeting-card__lead {
  font-size: 1.1em;
  font-weight: bold;
}

.sz-greeting-card__name {
  text-align: right;
  font-weight: bold;
  line-height: 1.6;
}

/* ================================================
 レスポンシブ対応 (SP)【追記】
================================================ */
@media screen and (max-width: 768px) {
  .sz-greeting-card {
    flex-direction: column; /* SPでは縦積みに */
    padding: 20px;
  }
  .sz-greeting-card__img {
    flex-basis: auto;
    width: 80%; /* 画像幅を調整 */
    max-width: 250px;
    margin: 0 auto 20px; /* 中央配置 */
  }
  .sz-greeting-card__name {
    text-align: left; /* SPでは左寄せに */
  }
}

/* ================================================
 ワインショップページ専用スタイル【修正版】
================================================ */

/* このページ(.grape-page)の中でのみ、色の変数を上書きします。
  これにより、背景は白のまま、青かった部分だけが緑に変わります。
*/
.grape-page {
  --sz-main-color: #5c6917; /* ← 濃い青(#05308f)の代わりに濃い緑を指定 */
  --sz-sub-color: #dbe1bb;  /* ← サブの青(#6a83bb)の代わりに薄い緑を指定 */
}

/* ページヘッダーの背景オーバーレイも緑系に */
.grape-page-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(92, 105, 23, 0.5); /* 濃い緑の半透明 */
  z-index: 1;
}
.grape-page-header .sz-container {
  position: relative;
  z-index: 2;
}

/* セクションタイトルのデザイン */
.grape-page .sz-section-title {
  border: none;
  font-size: 30px;
}
.grape-page .sz-section-title span {
  display: inline-block;
  border-bottom: 3px solid var(--sz-sub-color);
  padding-bottom: 10px;
}

/* カードなどの背景色は、白背景と馴染むように
  ごく薄いグレー(#f9f9f9)を改めて指定します。
*/
.grape-page .sz-greeting-card {
  background-color: #f9f9f9;
}


/* 商品カテゴリのグリッド */
.sz-wine-grid {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 40px;
}
.sz-wine-card {
  width: 32%;
  text-align: center;
}
.sz-wine-card img {
  width: 100%;
  border-radius: 8px;
  margin-bottom: 10px;
  border: 1px solid #eee;
}
.sz-wine-card h3 {
  font-size: 20px;
  color: var(--sz-main-color);
}

/* オンラインショップへの誘導ボックス */
.sz-cta-box {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  border: 1px solid var(--sz-sub-color);
}
.sz-cta-box img {
  width: 40%;
  object-fit: cover;
}
.sz-cta-box__body {
  padding: 40px;
  flex: 1;
}
.sz-cta-box__body h3 {
  font-size: 24px;
  color: var(--sz-main-color);
  margin-top: 0;
}
.sz-cta-buttons {
  margin-top: 20px;
  display: flex;
  gap: 15px;
}

/* 汎用ボタン（このページ専用色を自動で継承） */
.sz-btn {
  display: inline-block;
  background-color: var(--sz-main-color);
  color: #fff;
  padding: 12px 24px;
  border-radius: 5px;
  font-weight: bold;
  text-decoration: none;
  transition: opacity 0.3s;
}
.sz-btn:hover {
  opacity: 0.8;
}
.sz-btn i {
  margin-right: 8px;
}

/* ================================================
 レスポンシブ対応 (SP)【追記】
================================================ */
@media screen and (max-width: 768px) {
  .grape-page .sz-section-title {
    font-size: 24px;
  }
  .sz-wine-grid {
    flex-direction: column;
    gap: 30px;
  }
  .sz-wine-card {
    width: 100%;
  }
  .sz-cta-box {
    flex-direction: column;
  }
  .sz-cta-box img {
    width: 100%;
    max-height: 250px;
  }
  .sz-cta-box__body {
    padding: 20px;
  }
  .sz-cta-buttons {
    flex-direction: column;
  }
  .sz-cta-buttons .sz-btn {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
}


body{
	background: #1c347d;
	color: #fff;
}

.mv-section{
	margin-bottom: 50px;
}

.mv_photo img {
    width: 100%;
    max-height: 900px;
    object-fit: cover;
}
.mv_catch{
	margin: -350px 0 0 5%;
}

.mv_catch .en_sub{
	color: #fff499;
	font-size: 66px;
	font-family: Arial;
	font-weight: bold;
    text-shadow: 1px 2px 3px #808080;
}
.mv_catch h1{
	font-size: 35px;
	margin-bottom: 50px;
}

.mv_catch h2{
	font-size: 22px;
	margin-bottom: 10px;
}

.top_txt{
	max-width: 400px;
}

.feature-section {
  color: #ffffff; /* セクション内の基本文字色を白に */
  padding: 80px 0; /* セクション上下の余白 */
}

.feature-grid {
  /* サイトのコンテンツ幅（仮） */
  max-width: 1200px;
  margin: 0 auto; /* 中央揃え */
  padding: 0 20px; /* 画面端の最小余白 */

  /* * FlexboxまたはGridで2カラムレイアウトを作成します
   * ここではGridを使用します
   */
  display: grid;
  grid-template-columns: 1fr 1fr; /* 左右均等な2カラム */
  gap: 40px; /* カラム間の隙間 */
  align-items: center; /* 垂直方向（縦）の中央揃え */
}

/* --------------------------------
 * 左カラム：写真
 * -------------------------------- */
.feature-photo img {
  width: 100%; /* 親要素（.feature-photo）に幅を合わせる */
  height: auto; /* 画像の縦横比を維持 */
  display: block; /* 画像下の余分な隙間を削除 */
}

/* --------------------------------
 * 右カラム：テキスト
 * -------------------------------- */
.feature-txt {
  /* このブロック内のテキストは左揃え */
  text-align: left;
}

.feature-txt .en_dub {
  font-size: 1rem; /* 16px相当 */
  font-weight: bold;
  text-transform: uppercase; /* "Feature"を大文字に */
  opacity: 0.8; /* 少し控えめな白 */
  margin-bottom: 8px;
}

.feature-txt h2 {
  font-size: 2.2rem; /* 35px相当 (見出しは大きめに) */
  font-weight: bold;
  margin-bottom: 24px;
  line-height: 1.3;
}

.feature-txt .top_txt {
  font-size: 1rem; /* 16px相当 */
  line-height: 1.7; /* 行間を広げて読みやすく */
  margin-bottom: 32px;
}

/* --------------------------------
 * ボタン (.btn01)
 * -------------------------------- */
.feature-txt .btn01 {
  display: inline-block; /* aタグに余白(padding)を効かせるため */
  background-color: #ffffff; /* 背景：白 */
  color: #0a2a5d; /* 文字色：セクションの背景色と同じ青 */
  padding: 12px 36px; /* ボタンの余白（上下, 左右） */
  text-decoration: none; /* リンクの下線を消す */
  font-weight: bold;
  border-radius: 4px; /* 少し角丸に */
  border: 1px solid #ffffff; /* * ホバー時にレイアウトが崩れないよう、
                               * 最初から透明な枠線を指定 
                               */
  transition: all 0.3s ease; /* ホバーアニメーションを滑らかに */
}

/* ボタンのホバーエフェクト (マウスが乗った時) */
.feature-txt .btn01:hover {
  background-color: transparent; /* 背景を透明に */
  color: #ffffff; /* 文字色を白に */
}

/* --------------------------------
 * レスポンシブ対応 (タブレット・スマホ)
 * -------------------------------- */
@media (max-width: 768px) {
  .feature-section {
    padding: 60px 0; /* モバイルでは余白を少し詰める */
  }

  .feature-grid {
    grid-template-columns: 1fr; /* 1カラム（縦積み）レイアウトに変更 */
    gap: 30px;
  }

  .feature-txt {
    /* モバイルではテキストとボタンを中央揃えに */
    text-align: center; 
  }

  .feature-txt h2 {
    font-size: 1.8rem; /* 見出しを少し小さく */
  }
}


/* --------------------------------
 * News Section
 * -------------------------------- */

.news-section {
  /* 指定された背景色 (横幅100%) */
  background-color: #859bd1;
  width: 100%;
  padding: 60px 0; /* セクション上下の余白 */
  color: #ffffff; /* セクション内の基本文字色を白に */
}

.news-container {
  /* コンテンツ幅を制限し、中央揃えに */
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px; /* 画面端の最小余白 */
  
  /* Flexboxで見出しとリストを横並びに */
  display: flex;
  align-items: flex-start; /* 上揃え */
  gap: 40px; /* 見出しとリストの間の隙間 */
}

/* --------------------------------
 * 左側：見出し (NEWS)
 * -------------------------------- */
.news-heading {
  /* 見出しの幅を固定し、縮まないようにする */
  flex-basis: 200px;
  flex-shrink: 0;
}

.news-heading h2 {
  font-size: 4.5rem; /* 72px相当 (デザインに合わせて調整) */
  font-weight: 700;
  line-height: 1.1;
  color: #ffffff;
}

/* --------------------------------
 * 右側：記事リスト
 * -------------------------------- */
.news-list {
  /* 残りの幅すべてを使う */
  flex-grow: 1;
  /* リストが縦に並ぶように */
  display: flex;
  flex-direction: column;
  gap: 16px; /* 記事と記事の間の隙間 */
  padding-top: 10px; /* 見出しの文字と高さを合わせる微調整 */
}

.news-item {
  /* 日付とタイトルを横並びに */
  display: flex;
  align-items: center; /* 縦方向の中央揃え */
}

.news-date {
  /* 指定された日付の背景色 */
  background-color: #204aac;
  color: #ffffff;
  padding: 8px 16px;
  font-size: 0.9rem; /* 14.4px相当 */
  font-weight: bold;
  margin-right: 20px;
  flex-shrink: 0; /* 日付ボックスが縮まないように */
  border-radius: 4px; /* 少し角丸に */
}

.news-title {
  font-size: 1rem; /* 16px相当 */
  font-weight: normal;
  line-height: 1.5;
  margin: 0; /* h3タグのデフォルトマージンをリセット */
}

.news-title a {
  color: #ffffff; /* リンクの色を白に */
  text-decoration: underline;
  transition: opacity 0.3s ease;
}

.news-title a:hover {
  opacity: 0.8; /* ホバー時に少し透明に */
  text-decoration: none;
}


/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .news-container {
    /* スマホでは縦積みにする */
    flex-direction: column;
    align-items: flex-start; /* 左揃え */
    gap: 20px;
  }

  .news-heading {
    flex-basis: auto; /* 幅の固定を解除 */
  }
  
  .news-heading h2 {
    font-size: 3rem; /* 48px相当 (スマホ用に少し小さく) */
  }

  .news-list {
    width: 100%; /* リストの幅を100%に */
    padding-top: 0;
  }
  
  .news-item {
     /* 日付とタイトルも縦積みに変更 */
     flex-direction: column;
     align-items: flex-start; /* 左揃え */
     gap: 8px; /* 日付とタイトルの隙間 */
  }

  .news-date {
    margin-right: 0;
  }
}

.service-section {
  padding: 80px 0;
  width: 100%; /* 100vwでも可 */
  /* はみ出す画像による横スクロールバーを防止 */
  overflow-x: hidden;
}

/* --------------------------------
 * セクションタイトル (Service / 事業内容)
 * -------------------------------- */
.section-title-container {
  text-align: center;
  color: #ffffff;
  margin-bottom: 60px;
}

.section-title-container .section-title-en {
  font-size: 2.5rem; /* 40px相当 */
  font-weight: bold;
  text-transform: uppercase;
  margin: 0;
}

.section-title-container .section-title-ja {
  font-size: 1rem; /* 16px相当 */
  margin: 8px 0 0 0;
}

/* --------------------------------
 * サービス各項目 (共通)
 * -------------------------------- */
.service-item {
  /* * position: absolute で配置する
   * .service-image-bg の基準点
   */
  position: relative;
}
/* 項目間の余白 */
.service-item + .service-item {
  margin-top: 80px;
}

/* --------------------------------
 * 背景画像 (左右の端に寄る画像)
 * -------------------------------- */
.service-image-bg {
  /* 画像の幅 (画面の約半分強) */
  width: 85%;
  z-index: 1; /* 白い箱(z-index: 2)より下 */
}
.service-image-bg img {
    display: block;
    height: 500px;
    object-fit: cover;
    width: 100%;
    object-position: 100% 0;
}

/* --------------------------------
 * テキストの入る白い箱 (中央寄せ)
 * -------------------------------- */
.service-content-box {
  /* ユーザー指定: max-width 1000px, センター寄せ */
  max-width: 1000px;
  margin: 0 auto;
  
  background-color: #ffffff;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  
  /* 画像より手前に表示 */
  position: relative;
  z-index: 2;

  /* * 中身のテキストを左右に寄せるため
   * 2カラムのGridレイアウトにする
   */
  display: grid;
  grid-template-columns: 1fr 1fr; /* 50%ずつの2カラム */
}

/* --------------------------------
 * テキストラッパー (箱の中身)
 * -------------------------------- */
.service-text-wrapper {
  padding: 50px 40px; /* 白い箱の内側の余白 */
  text-align: center;
}

.service-text-wrapper .service-title {
  color: #0a2a5d; /* 濃い青 */
  font-size: 1.8rem; /* 29px相当 */
  font-weight: bold;
  margin: 0 0 8px 0;
}

.service-text-wrapper .service-subtitle {
  color: #555555; /* 濃いグレー */
  font-size: 1rem; /* 16px相当 */
  font-weight: bold;
  margin: 0;
}

.service-text-wrapper .service-divider {
  width: 60px; /* 短い線 */
  border: none;
  border-top: 2px solid #0a2a5d;
  margin: 24px auto; /* 上下24px, 左右autoで中央揃え */
}

.service-text-wrapper .service-description {
    color: #333333;
    font-size: 1rem;
    line-height: 2.3;
    text-align: left;
    margin: 0 auto 32px auto;
    max-width: 800px;
}

/* ボタン (前回のNEWSセクションのボタンとは別) */
.service-text-wrapper .btn-detail {
  display: inline-block;
  background-color: #0a2a5d; /* 濃い青 */
  color: #ffffff;
  padding: 12px 40px;
  text-decoration: none;
  font-weight: bold;
  border-radius: 4px;
  border: 1px solid #0a2a5d;
  transition: all 0.3s ease;
}

.service-text-wrapper .btn-detail:hover {
  background-color: #ffffff;
  color: #0a2a5d;
}

/* --------------------------------
 * レイアウトのバリエーション (左右)
 * -------------------------------- */

/* 1枚目: 画像が左 */
.style-image-left .service-image-bg {
  left: 0;
}
/* 1枚目: テキストをGridの2列目 (右側) に配置 */
.style-image-left .service-text-wrapper {
    grid-column: 1 / 3;
    grid-row: 1;
    margin-top: -100px;
    background: #fff;
}

/* 2枚目: 画像が右 */
.style-image-right .service-image-bg {
  right: 0;
}
/* 2枚目: テキストをGridの1列目 (左側) に配置 */
.style-image-right .service-text-wrapper {
    grid-column: 1 / 3;
    grid-row: 1;
    margin-top: -100px;
    background: #fff
}


.style-image-right .service-image-bg {
    width: 85%;
    margin: 0 0 0 auto;
    z-index: 1;
}



/* --------------------------------
 * レスポンシブ対応 (1024px以下)
 * (1000pxのボックスと左右の画像が厳しくなるため)
 * -------------------------------- */
@media (max-width: 1024px) {
  .service-section {
    padding: 60px 0;
  }
  
  .service-item + .service-item {
    margin-top: 40px; 
  }

  .service-image-bg {
    /* Absolute配置を解除し、通常のブロック要素に */
    position: static;
    width: 100%; /* 幅100% */
    height: 250px; /* 高さを固定 (または auto) */
  }

  .service-content-box {
    display: block; /* Gridレイアウトを解除 */
    max-width: 90%; /* 画面幅の90%に */
    margin-top: -50px; /* 画像に少し重ねる */
    /* 左右のGrid指定をリセット */
    grid-column: auto;
    grid-row: auto;
  }

  .service-text-wrapper {
     padding: 30px 20px; /* スマホ用の余白 */
  }
}

/* --------------------------------
 * Works Section
 * -------------------------------- */
.works-section {
  color: #ffffff; /* セクション内の基本文字色 (主にタイトル) */
  padding: 80px 0; /* セクション上下の余白 */
  width: 100%;
}

/* セクションタイトルは Service セクションのスタイルを流用 */
/* .section-title-container { ... } */


/* --------------------------------
 * 15% / 85% レイアウト
 * -------------------------------- */
.works-layout-wrapper {
  display: flex;
  margin-top: 60px; /* セクションタイトルからのマージン */
}

/* 左側 15% (雷マーク) */
.works-aside-left {
  flex-basis: 15%; /* 幅 15% */
  flex-shrink: 0;
  
  /* 雷マークを中央に配置 */
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 20px; /* 左右の余白 */
}

.works-thunder-icon {
  max-width: 100px; /* 雷マークの最大幅 (適宜調整) */
  width: 100%;
  height: auto;
  opacity: 0.5; /* 少し薄くする (デザインに合わせて調整) */
}

/* 右側 85% (水色エリア) */
.works-content-main {
  flex-basis: 85%; /* 幅 85% */
  flex-grow: 1; /* 残りの幅をすべて取る */
  
  /* 画像から抽出した水色の背景 */
  background-color: #b9c5e0; 
  
  /* 内側の余白 */
  padding: 50px;
}

/* --------------------------------
 * 施工実績 3コラムグリッド
 * -------------------------------- */
.works-grid {
  display: grid;
  /* 均等な3カラム */
  grid-template-columns: repeat(3, 1fr);
  gap: 30px; /* カラム間の隙間 */
}

.work-item {
  background-color: #ffffff; /* カードの背景は白 */
  color: #333333; /* カード内の文字色は黒系 */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.work-item-image img {
  width: 100%;
  height: auto;
  display: block; /* 画像下の余分な隙間を削除 */
  aspect-ratio: 4 / 3; /* 画像の縦横比を 4:3 に固定 */
  object-fit: cover; /* 比率が合わない場合にトリミング */
}

.work-item-content {
  padding: 20px;
}

.work-category {
  display: inline-block;
  background-color: #0a2a5d; /* 濃い青 */
  color: #ffffff;
  font-size: 0.8rem; /* 12.8px相当 */
  padding: 4px 12px;
  border-radius: 4px;
  margin-bottom: 12px;
}

.work-title {
  font-size: 1rem; /* 16px相当 */
  line-height: 1.6;
  margin: 0;
}

/* --------------------------------
 * 詳細を見るボタン
 * -------------------------------- */
.works-button-wrap {
  text-align: center;
  margin-top: 40px;
}

/* ボタン (.btn01) のスタイル */
/* このスタイルは Feature セクションの .btn01 と共通化できます */
.works-button-wrap .btn01 {
  display: inline-block; 
  background-color: #ffffff; /* 背景：白 */
  color: #0a2a5d; /* 文字色：濃い青 */
  padding: 12px 36px;
  text-decoration: none; 
  font-weight: bold;
  border-radius: 4px; 
  border: 1px solid #ffffff; 
  transition: all 0.3s ease; 
}

.works-button-wrap .btn01:hover {
  background-color: transparent; 
  color: #ffffff; 
}

.card-content .btn01 {
  display: inline-block; 
  background-color: #ffffff; /* 背景：白 */
  color: #0a2a5d; /* 文字色：濃い青 */
  padding: 12px 36px;
  text-decoration: none; 
  font-weight: bold;
  border-radius: 4px; 
  border: 1px solid #ffffff; 
  transition: all 0.3s ease; 
}

.card-content .btn01:hover {
  background-color: transparent; 
  color: #ffffff; 
}

/* --------------------------------
 * レスポンシブ対応 (900px以下)
 * -------------------------------- */
@media (max-width: 900px) {
  .works-section {
    padding: 60px 0 60px 0; /* 下部の余白は 0 に */
  }

  .works-layout-wrapper {
     /* 縦積みに変更 */
     flex-direction: column;
  }

  /* 雷マークは非表示に */
  .works-aside-left {
    display: none;
  }
  
  .works-content-main {
    flex-basis: 100%; /* 幅を100%に */
    padding: 40px 20px; /* スマホ用の余白 */
  }

  .works-grid {
    /* 1カラム（縦積み）に変更 */
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.recruit-section {
  /* 背景画像 */
  background-image: url('/wp-content/uploads/recruitbg.jpg');
  background-size: cover; /* 画面いっぱいに広げる */
  background-position: center center; /* 中央を基準に */
  background-repeat: no-repeat;
  
  padding: 120px 20px; /* 上下の余白を大きく取る */
  text-align: center; /* 中身を中央揃え */
  color: #ffffff; /* 文字色を白に */
  
  /* オーバーレイをかけるための基準点 */
  position: relative;
  z-index: 1; /* 他の要素との重なり順の基準 */
}

/* 背景画像の上に重ねる暗いオーバーレイ */
.recruit-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  
  /* 黒色 (40%の不透明度) */
  background-color: rgba(0, 0, 0, 0.4); 
  
  /* 文字(.recruit-content)より背面に配置 */
  z-index: -1; 
}



/* --------------------------------
 * コンテンツ (テキストとボタン)
 * -------------------------------- */
.recruit-content {
  /* 本文が横に広がりすぎないように */
  max-width: 800px; 
  margin: 0 auto; /* 中央揃え */
}

.recruit-title-en {
  font-size: 3rem; /* 48px相当 */
  font-weight: bold;
  text-transform: uppercase;
  margin: 0;
}

.recruit-title-ja {
  font-size: 1.1rem; /* 17.6px相当 */
  font-weight: bold;
  /* "Recruit"との間の余白 */
  margin: 8px 0 24px 0; 
}

.recruit-description {
  font-size: 1rem; /* 16px相当 */
  line-height: 1.7;
  /* ボタンとの間の余白 */
  margin-bottom: 32px; 
}

/* --------------------------------
 * ボタン (.btn01)
 * -------------------------------- */
/* Worksセクションの .btn01 と同じスタイルを流用 */
.recruit-content .btn01 {
  display: inline-block; 
  background-color: #ffffff;
  color: #0a2a5d; /* サイトのメインカラー(濃い青) */
  padding: 12px 36px;
  text-decoration: none; 
  font-weight: bold;
  border-radius: 4px; 
  border: 1px solid #ffffff; 
  transition: all 0.3s ease; 
}

.recruit-content .btn01:hover {
  background-color: transparent; 
  color: #ffffff; 
}



.info-section {
    padding-top: 0;
    padding-bottom: 80px;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}
.info-card {
    position: relative;
    padding-top: 25px;
}

.info-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 45%; 
    background-color: #5272b8;
    z-index: 1;
}

.info-card2 {
    position: relative;
    padding-top: 15px;
}

.info-card2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 45%; 
    background-color: #b6cd9b;
    z-index: 1;
}


.card-image-wrapper {
    position: relative;
    z-index: 2;
    padding: 0 25px 30px 25px; 
    background-color: transparent; 
}

.card-image-wrapper img {
    display: block;
    height: 260px;
    object-fit: cover;
    width: 100%;
    object-position: 100% 0;
}

.card-content {
    padding: 0 30px 30px 30px;
    text-align: center;
}


.card-content h3 {
    font-size: 1.5rem;
    margin: 0 0 15px 0;
}

.card-content p {
    font-size: 0.9rem;
    line-height: 1.8;
    margin: 0 0 30px 0;
    text-align: left;
}


.card-image-wrapper .btn01 {
  display: inline-block; 
  background-color: #ffffff; /* 背景：白 */
  color: #0a2a5d; /* 文字色：濃い青 */
  padding: 12px 36px;
  text-decoration: none; 
  font-weight: bold;
  border-radius: 4px; 
  border: 1px solid #ffffff; 
  transition: all 0.3s ease; 
}

.card-image-wrapper .btn01:hover {
  background-color: transparent; 
  color: #ffffff; 
}


@media (max-width: 768px) {
    .info-grid {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 40px;
        max-width: 1100px;
        margin: 0 auto;
        padding: 0 20px;
    }
}

.wine-section {
  /* 指定された背景色 */
  background-color: #dbe1ba;
  padding: 80px 0; /* セクション上下の余白 */
  width: 100%;
}

.wine-container {
  /* コンテンツ幅を制限し、中央揃えに */
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px; /* 画面端の最小余白 */
  
  /* 2カラムレイアウト */
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px; /* カラム間の隙間 */
  align-items: center; /* 垂直方向（縦）の中央揃え */
}

/* --------------------------------
 * 左カラム：画像
 * -------------------------------- */
.wine-image img {
  width: 100%;
  height: auto;
  display: block; /* 画像下の余分な隙間を削除 */
}

/* --------------------------------
 * 右カラム：テキスト
 * -------------------------------- */
.wine-text {
  /* 指定された文字色 */
  color: #5c6a17;
  text-align: left;
}

.wine-title {
  font-size: 2.5rem; /* 40px相当 */
  font-weight: bold;
  margin: 0;
}

/* タイトルの下線 */
.wine-title::after {
  content: '';
  display: block;
  width: 50px;
  height: 3px;
  /* 指定された濃い緑色 */
  background-color: #5c6a17;
  margin-top: 12px; 
}

.wine-subtitle {
  font-size: 1.1rem; /* 17.6px相当 */
  font-weight: bold;
  margin: 16px 0 24px 0;
}

.wine-description {
  font-size: 1rem; /* 16px相当 */
  line-height: 1.7;
  margin-bottom: 32px;
}

/* --------------------------------
 * ボタン
 * -------------------------------- */
.btn-wine {
  display: inline-block;
  /* 指定された背景色 */
  background-color: #5c6a17;
  color: #ffffff; /* 文字色は白 */
  padding: 12px 36px;
  text-decoration: none;
  font-weight: bold;
  border-radius: 4px;
  border: 1px solid #5c6a17;
  transition: all 0.3s ease;
}

.btn-wine:hover {
  background-color: transparent;
  color: #5c6a17;
}



.fban2 {
    max-width: 1200px;
    display: flex;
    margin: 0 auto 50px auto;
}
.fban2 p {
    flex-basis: 30%;
    margin: 0 1.5%;
}
.fban2 p img {
    width: 100%;
    height: auto;
}

.footer-container {
  width: 90%; /* 全体を90%に */
  max-width: 1200px; /* PCでの最大幅 */
  margin: 0 auto; /* 中央寄せ */
  padding: 60px 0;
}

/* メインコンテンツ（4カラムグリッド） */
.footer-main-content {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr; /* 1列目を少し広く */
  gap: 30px; /* カラム間の余白 */
  text-align: left; /* 全体を左揃えに */
}

/* 1. 会社情報エリア */
.footer-info p {
  margin: 0 0 10px 0;
  line-height: 1.7;
	color: #333;
}
footer{
	background: #f5f5f5;
	padding-top: 60px;
}

.footer-logo {
  margin-bottom: 20px;
}
.footer-logo-tagline {
  font-size: 13px;
  color: #555;
  margin-bottom: 5px;
}
.footer-logo img {
  max-width: 280px;
  height: auto;
}

/* 電話番号 */
.footer-phone {
  display: flex;
  align-items: center;
  margin: 20px 0;
}
.footer-phone .phone-icon {
  width: 24px;
  height: 24px;
  margin-right: 10px;
}
.footer-phone a {
  font-size: 26px;
  font-weight: bold;
  color: #052f8f;
  text-decoration: none;
}

/* お問い合わせボタン */
.footer-contact-button {
  display: inline-block;
  background-color: #052f8f;
  color: #fff;
  font-weight: bold;
  padding: 12px 40px;
  text-decoration: none;
  position: relative;
  transition: opacity 0.3s;
}
.footer-contact-button:hover {
  opacity: 0.8;
}

/* 2,3,4. リンクエリア */
.footer-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-links li {
  margin-bottom: 15px;
}
.footer-links a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.footer-links a:hover {
  color: #4bbbeb;
}

/* コピーライト */
.footer-copyright {
  text-align: center;
  padding: 20px 5%;
  font-size: 13px;
  color: #fff;
  border-top: 1px solid #e9ecf2;
background: #052f8f;
}

/* レスポンシブ対応（スマートフォン表示） */
@media (max-width: 768px) {
  .footer-main-content {
    grid-template-columns: 1fr; /* 1カラムに変更 */
    gap: 0;
  }
  .footer-container {
        padding: 40px 0;
        margin: 0 10%;
        width: auto;
  }
	
}
/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .wine-section {
    padding: 60px 0;
  }
  
  .wine-container {
    /* 1カラム（縦積み）に変更 */
    grid-template-columns: 1fr;
    gap: 30px;
  }
  
  .wine-text {
     /* モバイルでは中央揃えに */
     text-align: center;
  }
  
  /* 中央揃えに伴い、下線も中央に配置 */
  .wine-title::after {
    margin-left: auto;
    margin-right: auto;
  }
	
	.fban2 {
		flex-direction: column;
		gap: 20px;
		margin-left: 5%;
		margin-right: 5%;
	}
    .fban2 p {
        margin: 0;
    }
}


.clearfix:after {
  content: ".";  /* 新しい要素を作る */
  display: block;  /* ブロックレベル要素に */
  clear: both;
  height: 0;
  visibility: hidden;
}
.hamburger-menu{
	display: none;
}
.clearfix {
  min-height: 1px;
}


.hmenu{
	z-index: 1000;
	position: absolute;
	top: 30px;
    right: 100px;
	font-size: 14px;
    background: rgba(0,0,0,0.0);
	padding: 0;
}
.hmenu.is-animation{
    background: rgba(0,0,0,0.5);
	padding: 20px;
	top: 0;
	right: 0;
}


.hmenu li{
	float: left;
	margin: 0 25px 0 0;
	display:  block;
	line-height: 1;
}

.hmenu a{
 color: #000;	
	display:  block;
	padding: 5px 0;
	font-size: 16px;
	text-decoration: none;
}
.hmenu a:hover{
	opacity: 0.7;
}
.head_wrap {
    height: 100px;
    background: #fff;
    width: 100%;
    z-index: 100;
}

.hmenu > li > a span {
    display: block;
    font-size: 12px;
    color: #888;
    font-weight: normal;
    margin-top: 10px;
    text-align: center;
}

.side_btn{
	position: fixed;
	right: 0;
	top: 250px;
	z-index: 1000;
}
.top_logo{
	z-index: 1000;
	position: absolute;
	top: 35px;
	left: 20px;
}
.top_logo img{
    height: 40px;
    width: auto;
}


li.menu__single {
    position: relative;
}

ul.hmenu li span{
	display: block;
	text-align: center;
	margin-top: 7px;
	font-size: 11px;
    color: #7fabb4;
}

.hmenu li.menu__single ul.menu__second-level {
    position: absolute;
    top: 50px;
    width: 200px;
    background: #5272b8;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    float: none;
	padding: 0;
	margin: 0;
}


.hmenu ul.menu__second-level li{
    float: none;
	font-size: 16px;
	margin: 0;
	padding: 0;
}

.hmenu ul.menu__second-level li a{
	display: block;
	padding: 15px 10px;
	font-size: 14px;
	color: #fff;
}

li.menu__single:hover ul.menu__second-level {
    top: 50px;
    visibility: visible;
    opacity: 1;
}

ul.menu__second-level {
    visibility: hidden;
    opacity: 0;
    z-index: 1;
}

ul.menu__third-level {
    visibility: hidden;
    opacity: 0;
}

ul.menu__fourth-level {
    visibility: hidden;
    opacity: 0;
}

ul.menu__second-level a:hover{
    background: #708bc4;
	color: #fff;
	display: block;
}


.menu__second-level li {
}

.menu__third-level li {
}


/* floatクリア */
.menu:before,
.menu:after {
    content: " ";
    display: table;
}

.menu:after {
    clear: both;
}

.menu {
    *zoom: 1;
}



@media (max-width: 1151px) {
.hmenu {
    display: none;
}
	html.is-fixed,
　　　　html.is-fixed body {
  height: 100%;
  overflow: hidden;
　　　　}
	.side_btn{
		display: none;
	}
.hamburger-menu{
	display: block;	
	}

.menu-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    height: 60px;
    width: 60px;
    justify-content: center;
    align-items: center;
    z-index: 10001;
    background-color: #0a3da9;
}
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
    background-color: #fff;
    position: absolute;
}
.menu-btn span:before {
    bottom: 8px;
}
.menu-btn span:after {
    top: 8px;
}
#menu-btn-check:checked ~ .menu-btn span {
    background-color: rgba(255, 255, 255, 0);
}
#menu-btn-check:checked ~ .menu-btn span::before {
    bottom: 0;
    transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    transform: rotate(-45deg);
}
#menu-btn-check {
    display: none;
}

.menu-content ul {
    padding: 70px 30px 0 30px;
}
.menu-content ul li {
    border-bottom: solid 1px #ffffff;
    list-style: none;
}
.menu-content ul li a {
    display: block;
    width: 100%;
    font-size: 15px;
    box-sizing: border-box;
    color:#ffffff;
    text-decoration: none;
    padding: 20px 15px 20px 0;
    position: relative;
}
.menu-content ul li a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px #ffffff;
    border-right: solid 2px #ffffff;
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 24px;
}
.menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 10000;
    background-color: #3e64b3;
    transition: all 0.5s;
}
#menu-btn-check:checked ~ .menu-content {
    left: 0;
}
}



.p-page-header {
  position: relative;
  overflow: hidden;
  background-color: #0a2a5d; /* 背景色（画像読み込み前） */
}
/* 画像上の暗いオーバーレイ */
.p-page-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, 0.5); 
  z-index: 2;
}
.p-page-header__img {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  z-index: 1;
}
.p-page-header__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-page-header__inner {
  position: relative;
  z-index: 3;
  /* 上下の余白 (既存ヘッダーの高さに応じて調整) */
  padding-top: 100px; 
  padding-bottom: 100px;
  text-align: center;
}
.p-page-header__title {

    color: #fff;
    font-size: 2.5rem;
    font-weight: bold;
    margin: 0 0 16px 0;
    z-index: 10;
    position: relative;
    text-align: center;
    padding: 100px 0 0 0;
}
.p-page-header__desc {
  color: #fff;
  font-size: 1.2rem; /* 19px相当 */
  font-weight: bold;
  margin: 0;
}
.p-page-header__desc span {
  display: inline-block;
  padding: 4px 12px;
}


/* --------------------------------
 * ページ本文 (縦並びセクション)
 * -------------------------------- */
.feature-content-section-vertical {
  padding: 40px 0; /* ページ本文の上下余白 */
}

.feature-list-vertical {
  display: flex;
  flex-direction: column;
  gap: 40px; /* 各項目の間の隙間 */
}

.feature-item-vertical {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2カラム */
  gap: 50px; /* 画像とテキストの間の隙間 */
  align-items: center; /* 垂直方向の中央揃え */
  
  background-color: #f9f9f9; /* 背景を薄いグレーに */
  border: 1px solid #eaeaea;
  padding: 30px;
  border-radius: 4px;
}

/* 画像が右側の場合のスタイル */
.feature-item-vertical.style-image-right .feature-item-image {
  /* Gridの列の順番を入れ替え */
  grid-column: 2 / 3;
  grid-row: 1;
}
.feature-item-vertical.style-image-right .feature-item-text-content {
  grid-column: 1 / 2;
  grid-row: 1;
}

.feature-item-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 4px; /* 画像の角を丸める */
}

.feature-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-item-text-content {
  text-align: left;
}

.feature-item-title {
  font-size: 1.5rem; /* 24px相当 (少し大きめに) */
  font-weight: bold;
  color: #0a2a5d; /* サイトのメインカラー */
  margin: 0 0 16px 0;
}

.feature-item-text {
  font-size: 1rem; /* 16px相当 */
  line-height: 1.7;
  color: #333333;
  margin: 0;
}

/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .feature-content-section-vertical {
    padding: 30px 0;
  }

  .feature-item-vertical {
    /* 1カラム（縦積み）に変更 */
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px;
  }

  /* 左右の順番指定をリセット (スマホでは画像が常に上) */
  .feature-item-vertical.style-image-right .feature-item-image,
  .feature-item-vertical.style-image-left .feature-item-image {
    grid-column: 1;
    grid-row: 1;
  }
  .feature-item-vertical.style-image-right .feature-item-text-content,
  .feature-item-vertical.style-image-left .feature-item-text-content {
    grid-column: 1;
    grid-row: 2;
  }

  .feature-item-title {
    font-size: 1.25rem; /* 20px相当 */
  }

  /* ページヘッダーの調整 */
  .p-page-header__inner {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .p-page-header__title {
    font-size: 2rem; /* 32px相当 */
  }
  .p-page-header__desc {
    font-size: 1.1rem; /* 17.6px相当 */
  }
}

.l-main__body{
	padding: 80px 0;
}

.p-page-header__sub{
	font-size: 45px;
	font-family: Arial;
	font-weight: bold;
}

.point{
	text-align: center;
	font-size: 46px;
	color: #d8e0f2;
	font-family: Arial;
font-weight: bold;
position: relative;
	margin-bottom: 20px;
}

.point::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
	right: 0;
	margin: 0 auto;
    width: 80px;
    height:3px;
    background-color: #d8e0f2;
}

.sec_basic {
    padding: 50px 0;
}
/* セクション間の区切り線 */
.sec_basic + .sec_basic {
    border-top: 1px solid #eee;
}

/* .container は l-inner で代用されている場合もあります */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ページ内見出し (H2) */
.title_h2 {
    font-size: 2rem; /* 32px */
    font-weight: bold;
    text-align: center;
    margin-bottom: 40px;
    color: #fff; /* サイトのメインカラー */
}

/* ページ内小見出し (H3) */
.title_h3 {
    font-size: 1.5rem; /* 24px */
    font-weight: bold;
    margin: 0 0 16px 0;
    color: #879ed4;
}

/* 中央揃えの導入テキスト */
.pc-text-center {
    text-align: center;
    font-size: 1.1rem;
    line-height: 1.7;
    margin-bottom: 30px;
}

/* 2カラムレイアウトの行 */
.row {
    display: flex;
    gap: 30px;
    margin-bottom: 30px;
}
/* 2カラムレイアウトの列 */
.row .col {
    flex: 1;
}
.row .col figure {
    margin: 0;
}
.row .col figure img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px; /* 画像の角を少し丸める */
}

/* 画像とテキストの幅比率 (左: 1/3, 右: 2/3) */
.row .col.flex_1 {
    flex: 1; /* 約 33% */
    min-width: 250px;
}
.row .col.flex_2 {
    flex: 2; /* 約 66% */
    display: flex;
    flex-direction: column;
    justify-content: center; /* テキストを垂直方向に中央揃え */
}

.conbox{
background: #fff;
padding: 30px;
}

.conbox p{
	color: #333 !important;
}

/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
    .sec_basic {
        padding: 30px 0;
    }
    
    .row {
        flex-direction: column; /* 縦積みに変更 */
        gap: 20px;
        margin-bottom: 20px;
    }
    .row .col.flex_1,
    .row .col.flex_2 {
        min-width: 0;
    }
    
    .title_h2 {
        font-size: 1.8rem;
        margin-bottom: 30px;
    }
    .title_h3 {
        font-size: 1.3rem;
    }
    
    .pc-text-center {
        text-align: left; /* スマホでは左揃えに */
        font-size: 1rem;
    }
    
    /* PC用の改行(<br>)を非表示に */
    .pc-only {
        display: none;
    }
}

.h2-icon-wrapper {
    text-align: center; /* アイコンを中央揃え */
    margin-bottom: 12px; /* アイコンと見出しの間の余白 */
}

.h2-icon-wrapper i {
    font-size: 2.5rem; /* 40px相当 (サイズはお好みで調整してください) */
    color: #fff499; /* サイトのメインカラー(濃い青) */
    opacity: 0.8; /* 少しだけ透明度を落とす */
}

/* H2見出しの上部マージンを調整 */
.title_h2 {
    /* .h2-icon-wrapper がマージンを持つため、
       H2本体の上部マージンは不要に */
    margin-top: 0; 
}


.flow-content-section {
  padding: 40px 0;
}

/* 導入文 */
.flow-intro-text {
  text-align: center;
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 50px;
}

/* ステップリスト全体 (タイムラインの基準) */
.flow-list {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* タイムラインの縦線 */
.flow-list::before {
  content: '';
  position: absolute;
  top: 25px; /* アイコンの中心から開始 */
  bottom: 25px; /* 最後のアイコンの中心で終了 */
  left: 35px; /* 線の位置 (PC) */
  width: 4px;
  background-color: #0a2a5d; /* メインカラー */
  opacity: 0.1;
  z-index: 1;
}

/* 各ステップ */
.flow-step {
  position: relative;
  /* (アイコン 70px + 余白 30px) */
  padding-left: 100px; 
  margin-bottom: 40px; 
}

/* ステップヘッダー (番号 + アイコン) */
.flow-step-header {
  position: absolute;
  left: 0;
  top: 0;
  width: 70px; /* アイコンの直径 */
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2; /* タイムライン(z-index: 1)より手前 */
}

.flow-step-number {
  font-size: 0.8rem;
  font-weight: bold;
  color: #879ed4;
  margin-bottom: 8px;
}

/* アイコンの円 */
.flow-step-icon {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: #ffffff; /* タイムラインの線を隠すため */
  border: 3px solid #0a2a5d; /* メインカラー */
  
  /* アイコン (i) を中央揃え */
  display: flex;
  justify-content: center;
  align-items: center;
}
.flow-step-icon i {
  font-size: 2.2rem; /* 35px */
  color: #0a2a5d;
}

/* ステップのテキストコンテンツ (右側) */
.flow-step-content {
  background-color: #f9f9f9;
  border: 1px solid #eee;
  padding: 25px 30px;
  border-radius: 4px;
  /* アイコンの高さに合わせる最小値 */
  min-height: 100px; 
}

.flow-step-title {
  font-size: 1.5rem; /* 24px */
  font-weight: bold;
  color: #0a2a5d;
  margin: 0 0 12px 0;
}

.flow-step-description {
  font-size: 1rem;
  line-height: 1.7;
  color: #333;
  margin: 0;
}
i {
    font-size: 2.5rem;
    color: #879ed4 !important;
    opacity: 1;
}

/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .flow-content-section {
    padding: 30px 0;
  }

  .flow-intro-text {
    font-size: 1rem;
    text-align: left;
    margin-bottom: 40px;
  }

  /* タイムラインの縦線 (左に寄せる) */
  .flow-list::before {
    left: 25px; /* 線の位置 (SP) */
    width: 2px; /* 線を細く */
  }

  /* アイコンの円 (小さくする) */
  .flow-step-header {
    width: 50px;
  }
  .flow-step-icon {
    width: 50px;
    height: 50px;
    border-width: 2px;
  }
  .flow-step-icon i {
    font-size: 1.5rem; /* 24px */
  }
  .flow-step-number {
    font-size: 0.7rem;
    margin-bottom: 5px;
  }

  /* 各ステップ (左の余白を詰める) */
  .flow-step {
    /* (アイコン 50px + 余白 20px) */
    padding-left: 70px; 
    margin-bottom: 30px;
  }
  
  .flow-step-content {
    padding: 20px;
    min-height: 0;
  }
  
  .flow-step-title {
    font-size: 1.25rem; /* 20px */
  }

  /* ページヘッダーの調整 */
  .p-page-header__inner {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .p-page-header__sub {
    font-size: 1.2rem;
  }
  .p-page-header__desc {
    font-size: 1.1rem;
  }
}

.faq-content-section {
  padding: 40px 0;
}

/* H2見出し (既存スタイル流用) */
.title_h2 {
    font-size: 2rem; /* 32px */
    font-weight: bold;
    text-align: center;
    margin-bottom: 40px;
}
/* 2つ目以降のH2見出しのマージン */
.faq-list + .title_h2 {
    margin-top: 60px;
}

/* FAQリスト全体 */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 16px; /* Q&A間の隙間 */
}

/* Q&Aアイテム (<details>) */
.faq-item {
  border: 1px solid #dbe1ba; /* ワインショップの薄い緑 */
  border-radius: 4px;
  overflow: hidden;
}

/* 質問 (<summary>) */
.faq-question {
  display: block; /* デフォルトのマーカーを消すため */
  position: relative;
  padding: 20px 50px 20px 60px; /* Qとアイコンの余白を確保 */
  font-size: 1.1rem;
  font-weight: bold;
  color: #0a2a5d; /* メインカラー */
  background-color: #f9f9f9;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

/* デフォルトの▼マーカーを非表示 (Chrome/Safari) */
.faq-question::-webkit-details-marker {
  display: none;
}
/* デフォルトの▼マーカーを非表示 (Firefox) */
.faq-question {
  list-style: none;
}

.faq-question:hover {
  background-color: #f0f0f0;
}

/* Qの疑似要素 */
.faq-question::before {
  content: 'Q';
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  font-weight: bold;
  color: #0a2a5d;
}

/* 開閉アイコン (+/-) の疑似要素 */
.faq-question::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  font-weight: bold;
  color: #5c6a17; /* ワインの濃い緑 */
}

/* 開いた状態のアイコン */
.faq-item[open] > .faq-question::after {
  content: '−'; /* マイナス記号 */
}
/* 開いた状態の質問の背景色 */
.faq-item[open] > .faq-question {
  background-color: #f0f0f0;
}


/* 回答 (<div>) */
.faq-answer {
  position: relative;
  padding: 25px 30px 25px 60px; /* Aの余白を確保 */
  background-color: #ffffff;
}

/* Aの疑似要素 */
.faq-answer::before {
  content: 'A';
  position: absolute;
  left: 20px;
  top: 15px; /* テキストの上端に合わせる */
  font-size: 1.5rem;
  font-weight: bold;
  color: #5c6a17; /* ワインの濃い緑 */
}

.faq-answer p {
  font-size: 1rem;
  line-height: 1.7;
  color: #333;
  margin: 0;
}

/* 回答内のリンク */
.faq-answer a {
  color: #0a2a5d;
  text-decoration: underline;
}
.faq-answer a:hover {
  text-decoration: none;
}


/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .faq-content-section {
    padding: 30px 0;
  }
  .title_h2 {
    font-size: 1.8rem;
    margin-bottom: 30px;
  }

  .faq-question {
    padding: 15px 45px 15px 50px; /* 少し詰める */
    font-size: 1rem;
  }
  .faq-question::before {
    left: 15px;
    font-size: 1.3rem;
  }
  .faq-question::after {
    right: 15px;
    font-size: 1.3rem;
  }

  .faq-answer {
    padding: 20px 20px 20px 50px; /* 少し詰める */
  }
  .faq-answer::before {
    left: 15px;
    top: 20px;
    font-size: 1.3rem;
  }
}

/* --------------------------------
 * H2見出しのアイコン (FAQページ)
 * -------------------------------- */
.h2-icon-wrapper {
    text-align: center; /* アイコンを中央揃え */
    margin-bottom: 12px; /* アイコンと見出しの間の余白 */
}

.h2-icon-wrapper i {
    font-size: 2.5rem; /* 40px相当 (サイズはお好みで調整) */
    color: #0a2a5d; /* サイトのメインカラー */
    opacity: 0.8; /* 少しだけ透明度を落とす */
}

/* --------------------------------
 * CSSの調整 (必須)
 * -------------------------------- */

/* 1. アイコンの直後にあるH2の上マージンをリセット */
.h2-icon-wrapper + .title_h2 {
    margin-top: 0;
}

/* 2. ワインショップセクション (2つ目のH2) の
      アイコンラッパーに、セクション間の上部マージンを適用 */
.faq-list + .h2-icon-wrapper {
    margin-top: 60px; /* セクション間の余白 */
}


.sec_basic {
    padding: 50px 0;
}
/* セクション間の区切り線 */
.sec_basic + .sec_basic {
    border-top: 1px solid #eee;
}
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 導入テキスト (中央揃え) */
.pc-text-center {
    text-align: center;
    font-size: 1.1rem;
    line-height: 1.7;
    margin-bottom: 30px;
}
/* 右揃え (代表取締役) */
.text-right {
    text-align: right;
    font-weight: bold;
    margin-top: 1.5em;
}

/* 2カラムレイアウト */
.row {
    display: flex;
    gap: 30px;
}
.row .col {
    flex: 1;
}
.row .col figure {
    margin: 0;
}
.row .col figure img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.row .col.flex_1 {
    flex: 1; /* 約 33% */
    min-width: 250px;
}
.row .col.flex_2 {
    flex: 2; /* 約 66% */
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.row .col.flex_2 p {
    margin-bottom: 1.5em;
}
/* flex_2 の最後のPタグのマージンをリセット */
.row .col.flex_2 p:last-child {
    margin-bottom: 0;
}


/* --------------------------------
 * H2見出し + アイコン
 * -------------------------------- */
.h2-icon-wrapper {
    text-align: center;
    margin-bottom: 12px;
}
.h2-icon-wrapper i {
    font-size: 2.5rem; /* 40px */
    color: #0a2a5d;
    opacity: 0.8;
}
.title_h2 {
    font-size: 2rem; /* 32px */
    font-weight: bold;
    text-align: center;
    margin-top: 0; /* アイコンがあるので上マージンは不要 */
    margin-bottom: 40px;
}

/* --------------------------------
 * 会社概要テーブル
 * -------------------------------- */
.table_default {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ddd;
}
.table_default th,
.table_default td {
    padding: 20px !important;
    text-align: left;
    border-bottom: 1px solid #ddd;
    vertical-align: top;
}
.table_default th {
    background-color: #879ed4;
    font-weight: bold;
    /* デザインに合わせて幅を固定 */
    width: 25%;
    min-width: 150px;
	color: #fff;
}

.table_default td{
	background: #fff;
	color: #333;
}

/* --------------------------------
 * Google マップ
 * -------------------------------- */
.map_container {
    position: relative;
    width: 100%;
    /* アスペクト比 16:9 */
    padding-top: 56.25%; 
    height: 0;
    overflow: hidden;
    border-radius: 4px; /* マップにも角丸 */
}
.map_container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}


/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
    .sec_basic {
        padding: 30px 0;
    }
    
    .row {
        flex-direction: column; /* 縦積みに変更 */
        gap: 20px;
    }
    .row .col.flex_1,
    .row .col.flex_2 {
        min-width: 0;
    }
    
    .title_h2 {
        font-size: 1.8rem;
        margin-bottom: 30px;
    }
    
    .pc-text-center {
        text-align: left; /* スマホでは左揃えに */
        font-size: 1rem;
    }

    /* PC用の改行(<br>)を非表示に */
    .pc-only {
        display: none;
    }

    /* 会社概要テーブル (スマホ用) */
    .table_default tr {
        border-bottom: 2px solid #0a2a5d;
    }
    .table_default th,
    .table_default td {
        display: block;
        width: 100%;
        box-sizing: border-box; /* paddingを含めて100%に */
        padding: 15px;
        border-bottom: none; /* 個別の下線を消す */
    }
    .table_default th {
        border-bottom: 1px dashed #ddd; /* 項目間の区切り線 */
        min-width: 0;
    }
    .table_default td {
        /* thとセットで下のボーダーが引かれるように調整 */
         border-bottom: 1px solid #ddd;
    }
    /* テーブルの最後の行の最後のセルだけ下線を消す */
     .table_default tr:last-child td {
        border-bottom: none;
     }

}
.sec_basic.sec_recruit {
  padding: 50px 0;
}
.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

/* 募集終了メッセージボックス */
.recruit-message-box {
  border: 2px solid #0a2a5d; /* メインカラー */
  background: #f9f9f9;
  border-radius: 8px;
  padding: 40px;
  text-align: center;
  max-width: 800px; /* 広がりすぎないように */
  margin: 20px auto; /* 上下と左右中央 */
}

.recruit-message-icon {
  font-size: 2.5rem; /* 40px */
  color: #0a2a5d;
  margin-bottom: 20px;
}

.recruit-message-title {
  font-size: 1.5rem; /* 24px */
  font-weight: bold;
  color: #0a2a5d;
  margin: 0 0 16px 0;
}

.recruit-message-box p {
  font-size: 1rem;
  line-height: 1.7;
  color: #333;
  margin: 0;
}
.recruit-message-box p + p {
  margin-top: 1em;
}

/* --------------------------------
 * レスポンシブ対応 (768px以下)
 * -------------------------------- */
@media (max-width: 768px) {
  .sec_basic.sec_recruit {
    padding: 30px 0;
  }
  .recruit-message-box {
    padding: 30px 20px;
    text-align: left; /* スマホでは左揃え */
  }
  .recruit-message-icon {
    text-align: center; /* アイコンだけ中央 */
  }
  .recruit-message-title {
    font-size: 1.25rem; /* 20px */
    text-align: center; /* タイトルも中央 */
  }
}


.archive-list {
  margin-bottom: 60px;
}

.archive-item {
  padding: 30px !important;
	background: #fff;
}
.archive-item:first-child {
  padding-top: 0;
}

.archive-item__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
  font-size: 14px;
}
.archive-item__date {
  color: #333;
}
.archive-item__category {
  display: inline-block;
  background-color: #4bbbeb;
  color: #fff;
  padding: 3px 12px;
  border-radius: 4px;
  font-size: 12px;
}

.archive-item__title {
  font-size: 22px;
  margin: 0 0 15px 0;
  color: #333;
}
.archive-item__title a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.archive-item__title a:hover {
  color: #333;
}

.archive-item__excerpt p {
  font-size: 15px;
  line-height: 1.8;
  margin: 0;
  color: #333;
}

/* ページネーション */
.pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.pagination .nav-links {
  display: flex;
  gap: 10px;
}
.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #e9ecf2;
  border-radius: 50%;
  text-decoration: none;
  color: #555;
  transition: all 0.3s;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
  background-color: #4bbbeb;
  color: #fff;
  border-color: #4bbbeb;
}


/* --- single.php --- */
.post-content {
    max-width: 800px;
    margin: 0 auto 60px auto;
    padding: 30px !important;
    background: #fff;
  color: #333;
}

.post-header {
  margin-bottom: 40px;
  border-bottom: 1px solid #e9ecf2;
  padding-bottom: 20px;
}

.post-title {
  font-size: 32px;
  line-height: 1.5;
  margin: 0 0 20px 0;
  color: #333;
}

.post-meta {
  display: flex;
  gap: 20px;
  font-size: 14px;
  color: #555;
}
.post-meta a {
  color: #555;
  text-decoration: none;
}
.post-meta a:hover {
  color: #4bbbeb;
}
.post-meta .fas {
  margin-right: 5px;
}

/* 投稿本文のスタイル */
.post-content h2, .post-content h3, .post-content h4 {
  font-weight: bold;
  margin: 40px 0 20px 0;
  color: #333;
}
.post-content h2 {
  font-size: 24px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e9ecf2;
  color: #333;
}
.post-content h3 {
  font-size: 20px;
}
.post-content p {
  line-height: 1.9;
  margin-bottom: 1.5em;
  color: #333;
}
.post-content ul, .post-content ol {
  padding-left: 20px;
  margin-bottom: 1.5em;
}
.post-content li {
  line-height: 1.8;
  margin-bottom: 0.8em;
}
.post-content a {
  color: #4bbbeb;
  text-decoration: underline;
}
.post-content a:hover {
  text-decoration: none;
}
.post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 20px 0;
}

/* 前後記事へのナビゲーション */
.post-navigation {
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
}
.post-navigation .nav-links {
  display: flex;
  width: 100%;
}
.post-navigation .nav-previous,
.post-navigation .nav-next {
  flex: 1;
  padding: 20px;
  display: block;
}

.post-navigation .nav-previous{
	text-align: left;
}

.post-navigation .nav-next{
	text-align: right;
}

.post-navigation a {
  text-decoration: none;
  color: #fff;
}
.post-navigation a:hover .nav-title {
  color: #4bbbeb;
}
.post-navigation .nav-subtitle {
  display: block;
  font-size: 12px;
  color: #fff;
  margin-bottom: 5px;
}
.post-navigation .nav-title {
  font-weight: bold;
  transition: color 0.3s;
}
.page-body {
    padding-top: 40px;
    padding-bottom: 40px;
}

.page-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 40px;
}

/* ヘッダー (背景画像なし)
--------------------------------*/
.subpage-header {
    padding: 50px 0;
    max-width: 1000px;
    margin: 0 auto;
}
.subpage-header .page-container {
  text-align: center;
}
.subpage-header__icon {
  font-size: 42px; /* アイコンのサイズをフォントサイズで指定 */
  color: #4bbbeb; /* テーマカラーを適用 */
  margin-bottom: 20px;
}
.subpage-header__title {
  font-size: 36px;
  font-weight: bold;
  color: #fff;
  margin: 0;
}
.subpage-header__subtitle {
  font-size: 16px;
  color: #879ed4;
  margin: 5px 0 0 0;
  letter-spacing: 1px;
}


@media(max-width: 768px) {
  .post-title {
    font-size: 26px;
  }
	.p-page__content{
		padding: 0 30px;
	}
.p-page-header__inner {
        padding-top: 40px;
        padding-bottom: 40px;
    }
	
.top_logo img {
    height: 35px;
    width: auto;
}

.head_wrap {
    height: 80px;
	}
	
.top_logo {
    z-index: 1000;
    position: absolute;
    top: 25px;
    left: 20px;
}

.l-main__body {
    padding: 40px 0 80px 0;
}

.footer-contact-button {
    display: block;
    background-color: #052f8f;
    color: #fff;
    font-weight: bold;
    padding: 12px 40px;
    text-decoration: none;
    position: relative;
    transition: opacity 0.3s;
    margin: 0 auto 30px auto;
    text-align: center;
}
.table_default {
    width: 100%;
    border-collapse: collapse;
    border: unset;
}
.table_default tr {
        border-bottom: unset;
    }
	
    .table_default td {
        border-bottom: 1px solid #ddd;
        margin-bottom: 30px;
    }
}

[data-sidebar=on] .l-main {
        max-width: 100%;
        width: auto;
        margin: 0 auto;
    }