@charset "UTF-8";
/* ==========================================================================
   コンポーネント (再利用可能な部品)
   ========================================================================== */
	 
/*--- グリッドシステム */
/*--- 縦積みテーブル */
/*--- 横スクロールテーブル */
/*--- 画像にテキストを回り込ませる */

/*--- カードレイアウト 縦/横 */
/*--- ニュース一覧 */
/*--- パンくずリスト */
/*--- アンカーナビ */
/*--- アンカーリンクのオフセット (固定ヘッダー用) */
/*--- ページネーション */

/*--- サムネイル (アスペクト比固定) */
/*--- メディア (アスペクト比固定) */
/*--- 画像ホバーエフェクト */
/*--- 画像ホバーエフェクト */
/*--- フォーム */



/* グリッドシステム
-------------------------------------------------- */

/*
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
  <div><img src="image1.jpg" alt=""></div>
  <div><img src="image2.jpg" alt=""></div>
  <div><img src="image3.jpg" alt=""></div>
  <div><img src="image4.jpg" alt=""></div>
  </div>
*/

.grid {
  display: -ms-grid;
  display: grid;
}
/* 基本 */
.grid-cols-1  { -ms-grid-columns: (1fr)[1];  grid-template-columns: repeat(1, 1fr); }
.grid-cols-2  { -ms-grid-columns: (1fr)[2];  grid-template-columns: repeat(2, 1fr); }
.grid-cols-3  { -ms-grid-columns: (1fr)[3];  grid-template-columns: repeat(3, 1fr); }
.grid-cols-4  { -ms-grid-columns: (1fr)[4];  grid-template-columns: repeat(4, 1fr); }
.grid-cols-5  { -ms-grid-columns: (1fr)[5];  grid-template-columns: repeat(5, 1fr); }
.grid-cols-6  { -ms-grid-columns: (1fr)[6];  grid-template-columns: repeat(6, 1fr); }
.grid-cols-7  { -ms-grid-columns: (1fr)[7];  grid-template-columns: repeat(7, 1fr); }
.grid-cols-8  { -ms-grid-columns: (1fr)[8];  grid-template-columns: repeat(8, 1fr); }
.grid-cols-9  { -ms-grid-columns: (1fr)[9];  grid-template-columns: repeat(9, 1fr); }
.grid-cols-10 { -ms-grid-columns: (1fr)[10]; grid-template-columns: repeat(10, 1fr); }
/* md (768px～) */
@media (min-width: 768px) {
  .md\:grid-cols-1  { -ms-grid-columns: (1fr)[1];  grid-template-columns: repeat(1, 1fr); }
  .md\:grid-cols-2  { -ms-grid-columns: (1fr)[2];  grid-template-columns: repeat(2, 1fr); }
  .md\:grid-cols-3  { -ms-grid-columns: (1fr)[3];  grid-template-columns: repeat(3, 1fr); }
  .md\:grid-cols-4  { -ms-grid-columns: (1fr)[4];  grid-template-columns: repeat(4, 1fr); }
  .md\:grid-cols-5  { -ms-grid-columns: (1fr)[5];  grid-template-columns: repeat(5, 1fr); }
  .md\:grid-cols-6  { -ms-grid-columns: (1fr)[6];  grid-template-columns: repeat(6, 1fr); }
  .md\:grid-cols-7  { -ms-grid-columns: (1fr)[7];  grid-template-columns: repeat(7, 1fr); }
  .md\:grid-cols-8  { -ms-grid-columns: (1fr)[8];  grid-template-columns: repeat(8, 1fr); }
  .md\:grid-cols-9  { -ms-grid-columns: (1fr)[9];  grid-template-columns: repeat(9, 1fr); }
  .md\:grid-cols-10 { -ms-grid-columns: (1fr)[10]; grid-template-columns: repeat(10, 1fr); }
}
/* lg (1200px～) */
@media (min-width: 1200px) {
  .lg\:grid-cols-1  { -ms-grid-columns: (1fr)[1];  grid-template-columns: repeat(1, 1fr); }
  .lg\:grid-cols-2  { -ms-grid-columns: (1fr)[2];  grid-template-columns: repeat(2, 1fr); }
  .lg\:grid-cols-3  { -ms-grid-columns: (1fr)[3];  grid-template-columns: repeat(3, 1fr); }
  .lg\:grid-cols-4  { -ms-grid-columns: (1fr)[4];  grid-template-columns: repeat(4, 1fr); }
  .lg\:grid-cols-5  { -ms-grid-columns: (1fr)[5];  grid-template-columns: repeat(5, 1fr); }
  .lg\:grid-cols-6  { -ms-grid-columns: (1fr)[6];  grid-template-columns: repeat(6, 1fr); }
  .lg\:grid-cols-7  { -ms-grid-columns: (1fr)[7];  grid-template-columns: repeat(7, 1fr); }
  .lg\:grid-cols-8  { -ms-grid-columns: (1fr)[8];  grid-template-columns: repeat(8, 1fr); }
  .lg\:grid-cols-9  { -ms-grid-columns: (1fr)[9];  grid-template-columns: repeat(9, 1fr); }
  .lg\:grid-cols-10 { -ms-grid-columns: (1fr)[10]; grid-template-columns: repeat(10, 1fr); }
}
.gap-1  { gap: var(--space-1); }
.gap-2  { gap: var(--space-2); }
.gap-3  { gap: var(--space-3); }
.gap-4  { gap: var(--space-4); }
.gap-5  { gap: var(--space-5); }
.gap-6  { gap: var(--space-6); }
.gap-7  { gap: var(--space-7); }
.gap-8  { gap: var(--space-8); }
.gap-9  { gap: var(--space-9); }
.gap-10 { gap: var(--space-10); }
.gap-11 { gap: var(--space-11); }
.gap-12 { gap: var(--space-12); }
.gap-13 { gap: var(--space-13); }
.gap-14 { gap: var(--space-14); }
.gap-15 { gap: var(--space-15); }
.gap-16 { gap: var(--space-16); }
.gap-17 { gap: var(--space-17); }
.gap-18 { gap: var(--space-18); }
.gap-19 { gap: var(--space-19); }
.gap-20 { gap: var(--space-20); }
.gap-21 { gap: var(--space-21); }
.gap-22 { gap: var(--space-22); }
.gap-23 { gap: var(--space-23); }
.gap-24 { gap: var(--space-24); }
.gap-25 { gap: var(--space-25); }



/* 縦積みテーブル
-------------------------------------------------- */

/*
<div class="table-wrapper">
  <table class="table-stacked">
    <thead>
      <tr>
        <th colspan="2">テーブルのタイトル</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">項目名1</th>
        <td>内容が入ります。内容が入ります。</td>
      </tr>
      <tr>
        <th scope="row">項目名2</th>
        <td>内容が入ります。</td>
      </tr>
      <tr>
        <th scope="row">少し長めの項目名3</th>
        <td>内容が入ります。内容が入ります。内容が入ります。</td>
      </tr>
    </tbody>
  </table>
</div>
*/

.table-stacked {
  width: 100%;
  border-collapse: collapse;
}
.table-stacked thead {
  display: none;
}
.table-stacked tr {
  border: 1px solid #ddd;
}
.table-stacked tr:not(:first-child) {
  margin-top: var(--space-4);
}
.table-stacked th,
.table-stacked td {
  display: block;
  width: 100%;
  text-align: left;
	padding: var(--space-5);
	background-color:#fff;
}
.table-stacked th {
  font-weight: bold;
  background-color: var(--color-bg-light);
  border-bottom: 1px solid #ddd;
}
.table-stacked td {
  line-height: 1.6;
}
@media (min-width: 768px) {
  .table-stacked thead {
    display: table-header-group;
  }
  .table-stacked tr {
    display: table-row;
    border: 0;
  }
  .table-stacked tr:not(:first-child) {
    margin-top: 0;
  }
  .table-stacked th,
  .table-stacked td {
    display: table-cell;
    width: auto;
    vertical-align: middle;
    border: 1px solid #ddd;
  }
  .table-stacked th[scope="row"] {
    width: 20%;
  }
}
@media (min-width: 1200px) {
  .table-stacked th,
  .table-stacked td {
  }
  .table-stacked th[scope="row"] {
    width: 20%;
  }
}



/* 横スクロールテーブル
-------------------------------------------------- */

/*
<div class="table-scroll-wrapper">
  <table class="table-scrollable">
    <thead>
      <tr>
        <th scope="col">見出し1</th>
        <th scope="col">見出し2</th>
        <th scope="col">見出し3</th>
        <th scope="col">見出し4</th>
        <th scope="col">見出し5</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>データ1-1</td>
        <td>データ1-2</td>
        <td>データ1-3</td>
        <td>データ1-4</td>
        <td>データ1-5</td>
      </tr>
      <tr>
        <td>データ2-1</td>
        <td>データ2-2</td>
        <td>データ2-3</td>
        <td>データ2-4</td>
        <td>データ2-5</td>
      </tr>
    </tbody>
  </table>
</div>
*/

.table-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-scrollable {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}
.table-scrollable th,
.table-scrollable td {
  padding: var(--space-3);

  border: 1px solid #ddd;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}
.table-scrollable thead th {
  background-color: var(--color-text);
  color: #fff;
  font-weight: bold;
}
.table-scrollable tbody tr:nth-child(odd) td {
  background-color: var(--color-bg-light);
}
@media (min-width: 768px) {
  .table-scrollable th,
  .table-scrollable td {
    padding: var(--space-5);
  }
}
@media (min-width: 1200px) {
  .table-scroll-wrapper {
    overflow-x: visible;
  }
}



/* 画像にテキストを回り込ませる
-------------------------------------------------- */

/*
<div class="media-object">
  <div class="media-object__image">
    <img src="https://placehold.co/400x300/74c69d/fff?text=Image" alt="">
  </div>
  <div class="media-object__body">
    <p>ここにテキストが入ります。Flexboxを使うことで、floatよりもはるかに簡単にレイアウトを制御できます。回り込み解除のためのclearfixも不要です。</p>
  </div>
</div>
<div class="media-object media-object--reverse">
  <div class="media-object__image">
    <img src="https://placehold.co/400x300/3b82f6/fff?text=Image" alt="">
  </div>
  <div class="media-object__body">
    <p>`.media-object--reverse`クラスを追加するだけで、画像とテキストの位置を簡単に入れ替えることができます。HTMLの順序を変える必要はありません。</p>
  </div>
</div>
*/

/*.media-object__image {
  margin-bottom: var(--space-4);
}
.media-object__image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}
.media-object__body {
  line-height: 1.7;
}*/
  .media-object {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: var(--space-6);
  }
  .media-object__image {
    -ms-flex-preferred-size: 300px;
        flex-basis: 300px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-bottom: 0;
  }
  .media-object__body {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .media-object--reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
/*@media (min-width: 1200px) {
  .media-object {
    gap: var(--space-8);
  }
  .media-object__image {
    -ms-flex-preferred-size: 300px;
        flex-basis: 300px;
  }
}*/


/* カードレイアウト
-------------------------------------------------- */

/*
<div class="card">
  <div class="card__image">...</div>
  <div class="card__content">...</div>
</div>
*/

.card{
	}
.card__image{
	}
.card__content{
	}

@media (min-width: 1200px) {
}


/* ニュース一覧
-------------------------------------------------- */

/*
<div class="news">
  <ul class="news-list">
    <li class="news-list__item">
      <a href="#" class="news-list__link">
        <time class="news-list__date" datetime="2025-07-25">2025.07.25</time>
        <span class="news-list__category news-list__category--info">お知らせ</span>
        <p class="news-list__title">ホームページをリニューアル致しました。今後ともよろしくお願いいたします。</p>
      </a>
    </li>
    <li class="news-list__item">
      <a href="#" class="news-list__link">
        <time class="news-list__date" datetime="2025-07-20">2025.07.20</time>
        <span class="news-list__category news-list__category--event">イベント</span>
        <p class="news-list__title">夏期限定キャンペーンを開始しました。</p>
      </a>
    </li>
    <li class="news-list__item">
      <div class="news-list__link"> <time class="news-list__date" datetime="2025-07-15">2025.07.15</time>
        <span class="news-list__category news-list__category--other">その他</span>
        <p class="news-list__title">システムメンテナンスのお知らせ（リンク無し）</p>
      </div>
    </li>
  </ul>
</div>
*/

.news-list {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.news-list__item:not(:first-child) {
  border-top: 1px solid #eee;
}
.news-list__link {
	position:relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--space-5);
  padding: var(--space-5);
  color: var(--color-text);
  text-decoration: none;
  -webkit-transition: background-color 0.3s;
  -o-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
.news-list__link[href]::after {
	font-family: var(--font-icon);
	font-weight: 300;
	content: "\f054";
	position:absolute;
	right:0;
	top:50%;
	margin-top:-1em;
	color: #ccc;
	-webkit-transition: color 0.3s;
	-o-transition: color 0.3s;
	transition: color 0.3s;
}
.news-list__link[href]:hover {
	background-color: var(--color-bg-light);
}
.news-list__link[href]:hover::after {
	color: var(--color-primary);
}
.news-list__date {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 1.5rem;
  font-family: var(--font-oswald);
}
.news-list__category {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: 0.25em 0.75em;
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
	min-width: 100px;
}
.news-list__category--1 {
  color: #fff;
  background-color: var(--color-primary);
}
.news-list__category--2 {
  color: #fff;
  background-color: var(--color-primary);
}
.news-list__category--3 {
  color: #fff;
  background-color: var(--color-primary);
}
.news-list__title {
	width: 100%;
	white-space: nowrap;
	overflow: hidden;
	-o-text-overflow: ellipsis;
	text-overflow: ellipsis;
	font-size: 1.5rem;
	-webkit-box-ordinal-group: 4;
	    -ms-flex-order: 3;
	        order: 3;
}
@media (min-width: 768px) {
  .news-list__link {
		-ms-flex-wrap: nowrap;
		flex-wrap: nowrap;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
  }
}



/* パンくずリスト
-------------------------------------------------- */

/*
<nav aria-label="パンくずリスト" class="breadcrumb">
  <ol class="breadcrumb__list">
    <li class="breadcrumb__item">
      <a href="/" class="breadcrumb__link">ホーム</a>
    </li>
    <li class="breadcrumb__item">
      <a href="/category/" class="breadcrumb__link">カテゴリ一覧</a>
    </li>
    <li class="breadcrumb__item" aria-current="page">
      現在のページ
    </li>
  </ol>
</nav>
*/

.breadcrumb {
  padding: var(--space-3) 0;
  border-bottom: 1px solid #ddd;
  background-color: #fff;
}
.breadcrumb__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-2);
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #ccc #f0f0f0;
}
.breadcrumb__list::-webkit-scrollbar {
  height: 4px;
}
.breadcrumb__list::-webkit-scrollbar-track {
  background: #f0f0f0;
}
.breadcrumb__list::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 2px;
}
.breadcrumb__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-2);
  font-size: 1.3rem;
  color: var(--color-text);
}
.breadcrumb__item:not(:first-child)::before {
  font-family: var(--font-icon);
  font-weight: 300;
  content: "\f105";
  color: #ccc;
}
.breadcrumb__link {
  color: var(--color-primary);
  text-decoration: none;
  -webkit-transition: -webkit-text-decoration 0.3s;
  transition: -webkit-text-decoration 0.3s;
  -o-transition: text-decoration 0.3s;
  transition: text-decoration 0.3s;
  transition: text-decoration 0.3s, -webkit-text-decoration 0.3s;
}
.breadcrumb__link:hover {
  text-decoration: underline;
}
.breadcrumb__item[aria-current="page"] {
  font-weight: bold;
  color: var(--color-text);
}
@media (min-width: 768px) {
  .breadcrumb__list {
    overflow-x: visible;
    white-space: normal;
  }
  .breadcrumb__item {
    font-size: 1.4rem;
  }
}
@media (min-width: 1200px) {
  .breadcrumb__list {
    max-width: 1200px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .breadcrumb__item {
    font-size: 1.5rem;
  }
}



/* アンカーナビ
-------------------------------------------------- */

/*
<nav aria-label="ページ内ナビゲーション" class="anchor-nav">
  <ul class="anchor-nav__list">
    <li class="anchor-nav__item">
      <a href="#section1" class="anchor-nav__link">
        <i class="fa-solid fa-circle-info"></i>
        <span>概要</span>
      </a>
    </li>
    <li class="anchor-nav__item">
      <a href="#section2" class="anchor-nav__link">
        <i class="fa-solid fa-star"></i>
        <span>特徴</span>
      </a>
    </li>
    <li class="anchor-nav__item">
      <a href="#section3" class="anchor-nav__link">
        <i class="fa-solid fa-map-location-dot"></i>
        <span>アクセス</span>
      </a>
    </li>
    <li class="anchor-nav__item">
      <a href="#section4" class="anchor-nav__link">
        <i class="fa-solid fa-envelope"></i>
        <span>お問い合わせ</span>
      </a>
    </li>
  </ul>
</nav>
*/

.anchor-nav {
}
.anchor-nav__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.anchor-nav__item{
	border-right:1px dotted #ccc;
	}
.anchor-nav__item:nth-child(3) {
	border-right:none;
	}
.anchor-nav__link {
	width:100%;
  padding: 1em;
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--color-text);
	text-align:center;
	display:block;
	transition: transform 0.2s ease-out;
}
.anchor-nav__link:hover {
  transform: translateY(-3px);
  color: #666;
	opacity: 1;
}
.anchor-nav__link i {
  font-size: 1.0rem;
  color: var(--color-primary);
  vertical-align: middle;
}
.anchor-nav__link:hover i {
  color: #666;
}

@media (min-width: 768px) {
.anchor-nav__list {
  grid-template-columns: repeat(6, 1fr);
}
.anchor-nav__item:nth-child(3) {
	border-right:1px dotted #ccc;
	}
.anchor-nav__item:last-child {
	border-right:none;
	}
.anchor-nav__link {
  font-size: 1.6rem;
}
}
@media (min-width: 1200px) {
}



/* アンカーリンクのオフセット (固定ヘッダー用)
-------------------------------------------------- */

/*
<!-- ヘッダーのナビゲーション（例） -->
<header class="site-header--fixed">
  <nav>
    <a href="#section-a">セクションAへ</a>
    <a href="#section-b">セクションBへ</a>
  </nav>
</header>

<main>
  <!-- リンク先のセクションに直接IDとクラスを指定 -->
  <section id="section-a" class="scroll-target">
    <h2>セクションA</h2>
    <p>このセクションの上部が、ヘッダーに隠れることなく表示されます。</p>
  </section>

  <section id="section-b" class="scroll-target">
    <h2>セクションB</h2>
    <p>こちらも同様に、ヘッダーの下にきれいに表示されます。</p>
  </section>
</main>
*/

.scroll-target {
  scroll-margin-top: 60px; /* スマホでのヘッダーの高さ */
}
@media (min-width: 1200px) {
  .scroll-target {
    scroll-margin-top: 60px; /* PCでのヘッダーの高さ */
  }
}


/* ページネーション
-------------------------------------------------- */

/*
<nav aria-label="ページネーション" class="pagination">
  <ol class="pagination__list">
    <li class="pagination__item">
      <a href="#" class="pagination__link">前へ</a>
    </li>
    <li class="pagination__item">
      <a href="#" class="pagination__link">1</a>
    </li>
    <li class="pagination__item">
      <span class="pagination__link pagination__link--current" aria-current="page">2</span>
    </li>
    <li class="pagination__item">
      <a href="#" class="pagination__link">3</a>
    </li>
    <li class="pagination__item">
      <a href="#" class="pagination__link">次へ</a>
    </li>
  </ol>
</nav>
*/

.pagination__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.pagination__link {
  display: -ms-grid;
  display: grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 0.5em;
  font-size: 1.4rem;
  font-weight: bold;
  color: var(--color-primary);
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 9999px;
  text-decoration: none;
  -webkit-transition: background-color 0.3s, color 0.3s;
  -o-transition: background-color 0.3s, color 0.3s;
  transition: background-color 0.3s, color 0.3s;
}
.pagination__link--current {
  color: #fff;
  background-color: var(--color-text);
  border-color: var(--color-text);
}
a.pagination__link:hover {
  color: #fff;
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}
@media (min-width: 768px) {
  .pagination__list {
    gap: var(--space-3);
  }
  .pagination__link {
    min-width: 44px;
    height: 44px;
    font-size: 1.5rem;
  }
}
@media (min-width: 1200px) {
  .pagination__list {
    gap: var(--space-4);
  }
  .pagination__link {
    min-width: 48px;
    height: 48px;
    font-size: 1.6rem;
  }
}



/* サムネイル (アスペクト比固定)
-------------------------------------------------- */

/*
<!-- 16:9 のサムネイル -->
<div class="thumbnail thumbnail--16-9">
  <img src="https://placehold.co/1600x900/74c69d/fff?text=16:9" alt="16:9の画像">
</div>

<!-- 4:3 のサムネイル -->
<div class="thumbnail thumbnail--4-3">
  <img src="https://placehold.co/800x600/3b82f6/fff?text=4:3" alt="4:3の画像">
</div>

<!-- 1:1 (正方形) のサムネイル -->
<div class="thumbnail thumbnail--1-1">
  <img src="https://placehold.co/800x800/6b7280/fff?text=1:1" alt="1:1の画像">
</div>
*/

.thumbnail {
  display: block;
  width: 100%;
  overflow: hidden;
  background-color: var(--color-bg-light);
  /*border-radius: 4px;*/
}
.thumbnail--16-9 { aspect-ratio: 16 / 9; }
.thumbnail--4-3  { aspect-ratio: 4 / 3; }
.thumbnail--1-1  { aspect-ratio: 1 / 1; }
.thumbnail--3-2  { aspect-ratio: 3 / 2; }
.thumbnail img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
}
@media (min-width: 1200px) {
/*  .thumbnail img {
    transition: transform 0.4s ease;
  }
  .thumbnail:hover img {
    transform: scale(1.05);
  }*/
}



/* メディアレスポンシブ対応
-------------------------------------------------- */

/*
<div class="media-container">
  <iframe 
    src="https://www.youtube.com/embed/your_video_id" 
    title="YouTube video player" 
    frameborder="0" 
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
    allowfullscreen>
  </iframe>
</div>
<div class="media-container">
  <iframe 
    src="https://www.google.com/maps/embed?pb=..." 
    allowfullscreen="" 
    loading="lazy">
  </iframe>
</div>
*/

.media-container {
  width: 100%;
  overflow: hidden;
  /*border-radius: 4px;*/
}

.media-container--16-9 { aspect-ratio: 16 / 9; }
.media-container--4-3  { aspect-ratio: 4 / 3; }
.media-container--1-1  { aspect-ratio: 1 / 1; }
.media-container--3-2  { aspect-ratio: 3 / 2; }

.media-container iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

/* アコーディオン
-------------------------------------------------- */
/* アコーディオン
-------------------------------------------------- */
.accordion {
	border: 1px solid var(--color-border);
	border-radius: 8px;
	overflow: hidden; /* 角丸をきれいに見せるため */
	background-color: #fff;
	transition: box-shadow 0.3s ease;
}
.accordion:not(:last-child) {
	margin-bottom: var(--space-4);
}
.accordion:hover {
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* --- 質問部分 --- */
.accordion__head {
	display: flex;
	align-items: center;
	width: 100%;
	padding: var(--space-5);
	background-color: #fff;
	cursor: pointer;
	position: relative;
	text-align: left;
	transition: background-color 0.3s ease;
}

.accordion__q {
	color: var(--color-primary);
	font-size: 1.75rem;
	font-weight: bold;
	/*margin-right: var(--space-3);*/
	line-height: 1;
}

.accordion__title {
	font-weight: 700;
	flex: 1; /* 残りの幅をすべて使う */
	color: var(--color-primary);
}

/* --- 開閉アイコン (+) --- */
.accordion__head::before,
.accordion__head::after {
	content: '';
	position: absolute;
	top: 50%;
	right: var(--space-5);
	width: 18px;
	height: 2px;
	background-color: var(--color-primary);
	transform-origin: center;
	transition: transform 0.4s ease;
}

.accordion__head::before {
	transform: translateY(-50%) rotate(90deg);
}
.accordion__head::after {
	transform: translateY(-50%) rotate(0deg);
}


/* --- 開いている時のスタイル --- */
.accordion.is-open .accordion__head {
	background-color: var(--color-bg-light);
}
/* アイコンをマイナス (-) に変更 */
.accordion.is-open .accordion__head::before {
	transform: translateY(-50%) rotate(180deg);
}
.accordion.is-open .accordion__head::after {
	transform: translateY(-50%) rotate(180deg);
}


/* --- 答え部分 (アニメーションなし) --- */
.accordion__body {
	display: none; /* 初期状態では非表示 */
	padding: var(--space-5);
	background-color: #fff;
}

.accordion__body > p {
	margin: 0;
}

/* is-openクラスが付いた時に、表示 */
.accordion.is-open .accordion__body {
	display: block;
}


.page-top {
	/* 見た目の設定 */
	background-color: var(--color-primary);
	color: white;
	border:1px solid white;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	text-align: center;
	line-height: 50px;
	text-decoration: none;
	font-size: 20px;
	font-weight: bold;
	z-index:999;
	/* 画面右下に固定表示 */
	position: fixed;
	right: 20px;
	bottom: 20px;
	/* 最初は非表示にしておく */
	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);
	transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}

.page-top:hover{
	border:1px solid var(--color-primary);
	background-color:#fff;
	color:var(--color-primary);
	}

/* is-activeクラスが付与されたときのスタイル（表示状態） */
.page-top.is-active {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* 画像ホバーエフェクト
-------------------------------------------------- */

/*
<!-- 全体をリンクにしたい場合は a タグを使います -->
<a href="#" class="hover-icon">
  
  <!-- 背景となる画像 -->
  <img src="https://placehold.co/600x400/74c69d/fff?text=Hover+Me" alt="説明文">

  <!-- ホバー時に表示されるマスク（黒い半透明の背景） -->
  <div class="hover-icon__mask">
    
    <!-- マスクの中に表示されるテキスト -->
    <div class="hover-icon__caption">
      <p>ここにキャプションが入ります</p>
      <i class="fa-solid fa-arrow-up-right-from-square"></i> <!-- Font Awesomeアイコンの例 -->
    </div>

  </div>
</a>
*/

.hover-icon {
  display: block;
  overflow: hidden;
  position: relative;
}
.hover-icon__mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;

  -webkit-box-align: center;

      -ms-flex-align: center;

          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.hover-icon__caption {
  text-align: center;
  color: #fff;
}
.hover-icon:hover .hover-icon__mask {
  opacity: 1;
}



/* 画像ホバーエフェクト
-------------------------------------------------- */

/*
<!-- 全体をリンクにしたい場合は a タグを使います -->
<a href="#" class="zoom-hover">
  <img src="https://placehold.co/600x400/74c69d/fff?text=Zoom+Only" alt="説明文">
</a>
*/

.zoom-hover {
  display: block;
  overflow: hidden; /* はみ出した画像を隠す */
}

.zoom-hover img {
  transition: transform 0.6s ease; /* アニメーションを設定 */
}

.zoom-hover:hover img {
  transform: scale(1.1); /* ホバー時に画像を1.1倍に拡大 */
}




    /* ==========================================================================
       フォーム全体
       ========================================================================== */
    .form-intro {
      padding: var(--space-4);
      background-color: var(--color-bg-light);
      border-radius: 4px;
      margin-bottom: var(--space-6);
      font-size: 1.4rem;
      line-height: 1.7;
    }

    .form-error-summary {
      color: var(--color-error);
      text-align: center;
      font-weight: bold;
      margin-bottom: var(--space-4);
    }
		
		.required-mark {
			display:inline-block;
			color:var(--color-error);
      font-size: 1.2rem;
      margin-left: var(--space-1);
			padding: var(--space-1) var(--space-2);
			font-weight:400;
			line-height:1;
			vertical-align: text-bottom;
    }



/* フォーム
-------------------------------------------------- */
   	.form-input,
    .form-textarea,
    .form-select {
      display: block;
      width: 100%;
      padding: var(--space-2) var(--space-3);
      font-size: 1.6rem;
      font-family: inherit;
      border: 1px solid var(--color-border);
      border-radius: 3px;
      background-color: #fff;
      transition: border-color 0.3s, box-shadow 0.3s;
      box-sizing: border-box;
    }
    .form-input:focus,
    .form-textarea:focus,
    .form-select:focus {
      outline: none;
      border-color: var(--color-primary);
      box-shadow: 0 0 0 3px rgba(116, 198, 157, 0.3);
    }
    .form-textarea {
      min-height: 120px;
      resize: vertical;
    }

    /* ラジオボタン & チェックボックス */
    .form-choice-group {
      display: flex;
      flex-direction: column;
      /*gap: var(--space-3);*/
    }
    .form-choice-input {
      position: absolute;
      opacity: 0;
      width: 0;
      height: 0;
    }
    .form-choice-label {
      display: inline-flex;
      align-items: center;
      gap: var(--space-2);
      cursor: pointer;
    }
    .form-choice-label::before {
      content: '';
      display: inline-block;
      width: 18px;
      height: 18px;
      border: 2px solid var(--color-border);
      background-color: #fff;
      transition: border-color 0.3s, background-color 0.3s;
    }
    .form-choice-input[type="radio"] + .form-choice-label::before {
      border-radius: 50%;
    }
    .form-choice-input[type="radio"]:checked + .form-choice-label::before {
      background-color: var(--color-primary);
      border-color: var(--color-primary);
      box-shadow: inset 0 0 0 3px #fff;
    }
    .form-choice-input[type="checkbox"] + .form-choice-label::before {
      border-radius: 4px;
    }
    .form-choice-input[type="checkbox"]:checked + .form-choice-label::before {
      background-color: var(--color-primary);
      border-color: var(--color-primary);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E");
      background-size: 100%;
    }
    .form-choice-input:focus + .form-choice-label::before {
      box-shadow: 0 0 0 3px rgba(116, 198, 157, 0.3);
    }

    /* ファイル選択 */
    .form-file-item {
      display: flex;
      align-items: center;
      gap: var(--space-3);
    }
    .form-file-item:not(:last-child) {
      margin-bottom: var(--space-2);
    }
    .form-file-input {
      position: absolute;
      opacity: 0;
      width: 0;
      height: 0;
    }
    .form-file-label {
      display: inline-flex;
      align-items: center;
      gap: var(--space-2);
      padding: var(--space-2) var(--space-3);
      font-size: 1.4rem;
      color: var(--color-primary);
      background-color: #fff;
      border: 1px solid var(--color-primary);
      border-radius: 3px;
      cursor: pointer;
      transition: background-color 0.3s, color 0.3s;
    }
    .form-file-label:hover {
      background-color: var(--color-primary);
      color: #fff;
    }
    .form-file-name {
      font-size: 1.4rem;
      color: #777;
    }

    /* ボタン */
    /*.form-button-group {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: var(--space-4);
      margin-top: var(--space-6);
    }*/
    .form-btn {
			display:block;
			margin-left:auto;
			margin-right:auto;
			width:100%;
      max-width: 400px;
      padding: var(--space-5) var(--space-5);
      font-size: 1.6rem;
      font-weight: 700;
      border-radius: 3px;
      cursor: pointer;
      transition: background-color 0.3s, transform 0.3s, border-color 0.3s, color 0.3s;
      text-align: center;
      font-family: inherit;
    }
    .form-submit-btn {
      color: #fff;
      background-color: var(--color-primary);
      border: 1px solid var(--color-primary);
    }
    .form-submit-btn:hover {
      background-color: var(--color-primary-dark);
      border-color: var(--color-primary-dark);
      transform: translateY(-2px);
    }
    .form-reset-btn {
      color: var(--color-text);
      background-color: var(--color-bg-light);
      border: 1px solid var(--color-border);
    }
    .form-reset-btn:hover {
      background-color: #e9e9e9;
      border-color: #ccc;
    }