@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap'); /* フォント */

* {
  box-sizing: border-box;
}

body{
    margin: 0;
    font-family: 'Shippori Mincho', sans-serif;
    padding-top: 200px; /* ヘッダー（90px）とヘッダーメニュー（65px）の合計高さ */
}

nav{
    background-color: #88bfbf;
}

li{
    list-style: none;
}

a{
    text-decoration: none;
}

.container {
  width: 100%;
  padding: 0 15px;
  margin: 0 auto;
}

.fixed-header-wrapper {
    position: fixed; /* 画面に固定 */
    top: 0;          /* 画面の上端に配置 */
    left: 0;         /* 画面の左端に配置 */
    width: 100%;     /* 画面の幅いっぱいに広げる */
    z-index: 1000;   /* 他の要素より手前に表示させる */
    background-color: #88bfbf;/* 背景色をここでまとめて設定 */
    color: #fff;
}

/*　ヘッダー　*/
.header{
    height: 90px;
    padding: 10px;
}

.header-logo{
    float: left;
    font-size: 36px;
    font-weight: bold;
    padding: 9px 40px;
}

.header-logo a{
    text-decoration: none;
    color: #fff;
}

.header-list li{
    padding: 5px;
}

.header h1{
    font-size: 30px;
    letter-spacing: 5px;
    padding-left: 70%;
    margin-top: 1px;
}

.header h2{
    font-size: 20px;
    font-weight: normal;
    padding-left: 70%;
    margin-top: 1px;
    margin-bottom: 1px;
}

.header p{
    float: left;
    font-size: 15px;
    padding-top: 20px;
}

/* ヘッダーメニュー */
.header-menu{
    height: 65px;
    display: flex; /* 横並び */
    justify-content: space-evenly; /* 等間隔に並べる */
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.header-menu ul{
    display: flex; /* 横並び */
    justify-content: space-evenly; /* 等間隔配置 */
    margin: 0;
    padding: 0;
    height: 65px;
    align-items: center; /* 縦中央揃え */
    flex-wrap: wrap;
}

.header-menu li {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    padding: 5px 60px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.header-menu li p{
    font-size: 12px;
    font-weight: normal;
    margin: 3px 0 0;
    padding: 0;
}

.header-menu li a{
    display: block;
    color: #fff
}

.header-menu li:hover{
    background-color: #67b5b7;
    color: #fff;
}

/* サブメニュー（ドロップダウン） */
.submenu {
    display: none;
    position: absolute;
    width: 100%;
    top: 100%;
    left: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    background-color: #67b5b7;
    color: #fff;
    z-index: 100;
/* オプション：フェードイン効果 */
    opacity: 0; /* 最初は透明 */
    visibility: hidden; /* 最初は非表示 */
    transition: opacity 0.5s ease, visibility 0.5s ease; /* フェードイン・アウトのアニメーション */
    overflow: visible;
}

.submenu li{
    font-size: 18px;
    font-weight: normal;
    background-color: #67b5b7;
    padding: 8px 15px;
}

.submenu li a{
    display: block;
    color: #fff;
    padding: 8px 15px;
    white-space: nowrap;
}
/* 親メニュー項目にホバーしたときドロップダウンを表示 */
.header-menu li:hover .submenu{
    display: block; /* ホバー時に表示 */
    opacity: 1;
    visibility: visible;
}
/* ドロップダウンメニューの項目にホバーしたときの背景色 */
.submenu li:hover{
    background-color: #55a0a2;
    font-size: 18px;
    font-weight: normal;
}

/* ハンバーガーアイコン */
.menu-toggle {
    display: none;
    font-size: 26px;
    color: white;
    padding: 15px 20px;
    cursor: pointer;
    }

/* トップ画像 */
.top-image-wrapper {
    width: 100%; /* 親要素の幅いっぱいに広げる */
    overflow: hidden; /* 画像がはみ出さないように */
    margin-top: 0; /* ヘッダーの下にぴったりつける場合 */
    /* 必要に応じて、画像の上にオーバーレイやテキストを重ねる場合は、
       position: relative; を設定します */
}

.top-image {
    display: block; /* 画像の下の余白をなくす */
    width: 100%; /* ラッパーの幅に合わせて画像を広げる */
    height: auto; /* アスペクト比を維持 */
    /* 中央に配置したい場合（画像がラッパーよりも大きい、または同じ幅の場合） */
    /* object-fit: cover; /* 画像をトリミングして、コンテナを埋める */
    /* object-position: center; /* 中央を基準にトリミング */
}

/* メインコンテンツ */
.main-content-wrapper{
    display: flex; /* Flexboxを有効にして子要素を横並びにする */
    justify-content: space-between; /* メインとサイドバーを両端に配置 */
    align-items: flex-start; /* 上端揃え */
    padding-top: 20px; /* ヘッダーとの間に少し余白 */
    padding-bottom: 50px; /* フッターとの間に少し余白 */
}

.main-content-wrapper.container {
    margin-top: 20px; /* トップ画像の下に適切な余白 */
    /* 既存の display: flex; などはそのまま */
}

.main-content{
    flex: 1; /* 残りのスペースをすべて占有 */
    min-width: 60%; /* メインコンテンツの最小幅 */
    margin-right: 30px; /* サイドバーとの間に余白 */
    background-color: #fff; /* メインコンテンツの背景色（確認用） */
    padding: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1)
}

.main-content ul {
    padding: 0; /* リストのデフォルトパディングをリセット */
    list-style: none; /* リストのマーカーを非表示 */
}

.main-content ul li {
    display: flex; /* Flexboxを有効にして子要素を横並びにする */
    justify-content: flex-start; /* 左寄せ */
    align-items: flex-start; /* 上端揃え */
    margin-bottom: 15px; /* 各アイテムの下に余白 */
    line-height: 1.6; /* 行の高さを調整して読みやすくする */
}

.main-content .news-date {
    flex-shrink: 0; /* 日付の幅を固定し、縮まないようにする */
    width: 100px; /* 日付の幅を適切に設定（例: 100px）。必要に応じて調整してください。 */
    margin-right: 15px; /* 日付と文章の間に余白 */
    font-weight: bold; /* 日付を強調 */
    color: #555; /* 日付の色 */
}

.main-content .news-text {
    flex-grow: 1; /* 残りのスペースを全て文章が占めるようにする */
}

/* 当組合の取り組みセクション */
/* main-img.jpg のスタイル */
.main-content-image {
    margin-bottom: 30px; /* 画像と下のコンテンツの間に余白 */
    text-align: center; /* 画像を中央寄せ */
}

.main-content-image img {
    max-width: 100%; /* 親要素の幅に合わせて縮小 */
    height: auto; /* アスペクト比を維持 */
    display: block; /* 画像下の余白をなくす */
    margin: 0 auto; /* 中央寄せ */
    border-radius: 8px; /* 角を丸くする（任意） */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 影をつける（任意） */
}

.our-efforts {
    margin-top: 30px; /* 最新情報との間に余白 */
}

.effort-item {
    display: flex; /* 画像とテキストを横並びにする */
    align-items: center; /* 縦方向の中央揃え */
    margin-bottom: 20px; /* 複数の項目がある場合の下余白 */
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #f9f9f9;
}

.effort-item img {
    max-width: 500px; /* バナー画像の最大幅 */
    height: auto;
    margin-right: 20px; /* 画像とテキストの間の余白 */
    flex-shrink: 0; /* 画像が縮まないようにする */
    border-radius: 4px;
}

.effort-text {
    flex-grow: 1; /* 残りのスペースをテキストが占める */
    font-size: 1.1em;
    color: #333;
}

.effort-text p {
    margin: 0; /* pタグのデフォルトマージンをリセット */
    line-height: 1.6; /* テキストの行間を調整 */
}

/* リンクの色を調整（もしあれば） */
.main-content .news-text a {
    color: #00afcc; /* 既存のリンク色 */
    text-decoration: underline; /* リンクに下線を追加 */
}

.main-content h2 {
    border-bottom: 1px solid #ccc; /* 下線のみ */
    padding-bottom: 5px;
    margin-bottom: 20px;
    /* もし他の border があれば、ここで上書きも可能ですが、
       基本は他の場所から削除するのがベスト */
    /* border: none; ← 他の border を打ち消す場合はこれを追加 */
}

.main-content a{
    color: #00afcc;
}

/* サイドバー */ 
.sidebar{
    width: 280px; /*  */
    flex-shrink: 0; /*  */
    background-color: #e8ece9; /*  */
    padding: 20px; /*  */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1)
}

.sidebar-heading-group{
    display: flex; /* Flexboxを有効にして子要素を横並びにする */
    align-items: baseline; /* テキストのベースラインを揃える */
    margin-bottom: 15px; /* 下に余白 */
}

.sidebar-heading-group h3{
    margin-top: 0;
    font-size: 1.2em;
    border: none;
}

.sidebar-heading-group p{
    margin-left: 10px;
    font-size: 0.9em;
    white-space: nowrap;
}

.sidebar .ad-item{
    display: flex; /* 横並び */
    justify-content: center; /* 中央揃え */
    align-items: center; /* 縦方向中央揃え */
    gap: 15px; /* アイコン間のスペース */
    margin-bottom: 20px;
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.sidebar .ad-item img{
    max-width: 40px; /* アイコンの最大幅 */
    height: auto;
    /* margin-bottom: 0; */ /* HTMLからインラインスタイルを削除すれば不要 */
}

.ad-item {
    display: flex; /* 子要素をFlexアイテムにする */
    justify-content: center; /* アイテムを中央に配置 */
    align-items: center; /* 縦方向の中央揃え */
    gap: 15px; /* アイコン間のスペース（お好みに合わせて調整） */
    /* 既存のスタイルはそのまま */
    margin-bottom: 20px;
    text-align: center; /* 画像がFlexアイテムになるので、text-alignは影響しなくなりますが、念のため残しておいてもOK */
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.ad-item img {
    /* 個々の画像のスタイルはそのまま、または必要に応じて調整 */
    max-width: 40px; /* すでにインラインスタイルで指定されているので、これは不要かもしれません */
    height: auto;
    margin-bottom: 0; /* 親要素でgapを設定したので、個々のmargin-bottomは不要 */
}

.sidebar ul{
    padding: 0;
    margin: 0;
}

.sidebar ul li{
    margin-bottom: 10px; /* 各リストアイテム間の余白 */
    text-align: center; /* 画像を中央寄せ */
}

.sidebar ul li img {
    max-width: 200px; /* ロゴの最大幅 */
    height: auto;
    /* margin-bottom: 0; */ /* HTMLからインラインスタイルを削除すれば不要 */
    display: block; /* 中央寄せのためにブロック要素にする */
    margin-left: auto; /* 中央寄せ */
    margin-right: auto; /* 中央寄せ */
}

/* モバイル用サイドバー開閉ボタンの初期非表示 */
.sidebar-toggle-button{
    display: none;
}

/* フッター */
.footer {
    background-color: #333; /* 暗めの背景色 */
    color: #fff; /* 白い文字色 */
    padding-top: 15px; /* 上下のパディング */
    padding-bottom: 20px;
    margin-top: 50px; /* メインコンテンツとの間に余白 */
}

/* ロゴとサイトマップのセクション */
.footer-content-wrapper {
    display: flex; /* Flexboxでロゴとサイトマップを横並びにする */
    justify-content: flex-start; /* 両端揃え（ロゴは左、サイトマップは右寄りに） */
    align-items: center; /* 上端揃え */
    gap: 40px;
    padding-bottom: 30px; /* 著作権表示との間に余白 */
    border-bottom: 1px solid rgba(255, 255, 255, 0.2); /* 著作権表示の上に線 */
    margin-bottom: 20px; /* 著作権表示との間のマージン */
    background-color: #006888;
    color: #fff;
}

.footer-logo{
    align-self: stretch;
    display: flex;
    justify-content: center;
    align-items: center;
}
.footer-logo img {
    max-width: 150px; /* ロゴ画像の最大幅を調整 */
    height: auto;
    display: block; /* 画像の下の余白をなくす */
}

/* サイトマップ全体 */
.footer-sitemap {
    display: flex; /* サイトマップの各列を横並びにする */
    gap: 40px; /* 列間のスペース */
    /* 必要に応じて幅を調整: flex: 1; を与えて残りのスペースを埋めさせることも可能 */
     justify-content: space-around;
    /* width: 70%; /* 例えば、フッター全体の70%をサイトマップに割り当てる */
}

.sitemap-column {
    flex: 1; /* 各列が均等にスペースを分配 */
    min-width: 170px; /* 列の最小幅（コンテンツが狭くなるのを防ぐ） */
}

.sitemap-column h4 {
    color: #88bfbf; /* サイトマップ列のタイトル色 */
    font-size: 1.1em;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); /* タイトルの下に線 */
    padding-bottom: 5px;
}

.sitemap-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sitemap-column ul li {
    margin-bottom: 8px;
}

.sitemap-column ul li a {
    color: #eee; /* リンクの色 */
    text-decoration: none;
    font-size: 0.95em;
}

.sitemap-column ul li a:hover {
    color: #88bfbf; /* ホバー時の色 */
    text-decoration: underline;
}

/* 著作権表示 */
.footer-copyright {
    text-align: center; /* 中央寄せ */
    font-size: 0.85em;
    color: #bbb;
}

.footer-copyright p {
    margin: 0; /* デフォルトのマージンをリセット */
}

/* about.html 固有のスタイル */
.main-content .about-section {
    margin-bottom: 50px; /* 各セクション間の下余白 */
    padding-bottom: 20px;
    border-bottom: 1px dashed #ccc; /* 各セクションの区切り線 */
}

.main-content .about-section:last-of-type {
    border-bottom: none; /* 最後のセクションには区切り線をつけない */
    margin-bottom: 20px; /* フッターとの調整 */
}


/* 2列構成の共通スタイル */
.section-content-two-columns {
    display: flex; /* 子要素（テキストと画像）を横並びにする */
    align-items: flex-start; /* 上端揃え */
    gap: 30px; /* テキストと画像の間のスペース */
    flex-wrap: wrap; /* 画面幅が狭い場合に折り返す */
}

.section-content-two-columns .text-content {
    flex: 1; /* 残りのスペースを柔軟に占める */
    min-width: 300px; /* テキストコンテンツの最小幅 */
    line-height: 1.7;
}

.section-content-two-columns .image-content {
    flex-shrink: 0; /* 画像のサイズが縮まないようにする */
    max-width: 300px; /* 画像の最大幅 */
    width: 100%; /* 親要素の幅いっぱいに広がるように設定（flex-wrap時用） */
    text-align: center; /* 画像を中央寄せ */
}

.section-content-two-columns .image-content img {
    max-width: 100%; /* 親要素の幅に合わせて画像を縮小 */
    height: auto;
    border-radius: 8px; /* 画像の角を丸くする */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 画像に影をつける */
}

/* 画像とテキストの左右を入れ替える場合（例: 代表挨拶） */
.section-content-two-columns.reverse-columns {
    flex-direction: row-reverse;
}

.license-numbers {
    display: grid; /* FlexboxではなくGridを使用 */
    grid-template-columns: auto 1fr; /* 最初の列は内容に応じて自動幅、2番目の列は残りスペースを全て占める */
    gap: 0 5px; /* 行間のギャップを0、列間のギャップを5pxに設定 */
    /* ここでは text-align: justify; は使用しません */
}

.license-numbers .license-title {
    text-align: right; /* タイトル部分を右寄せにすることでコロン `:` を揃える */
    white-space: nowrap; /* テキストの折り返しを防ぐ */
}

.license-numbers .license-number {
    text-align: left; /* 番号部分を左寄せ */
    white-space: nowrap; /* テキストの折り返しを防ぐ */
}

/* 組合概要のテーブルスタイル */
.main-content table {
    width: 100%;
    border-collapse: collapse; /* セルの境界線を結合 */
    margin-top: 20px;
    margin-bottom: 20px;
}

.main-content th,
.main-content td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
}

.main-content th {
    background-color: #f2f2f2;
    width: 120px; /* 項目名の列幅 */
    font-weight: bold;
    color: #555;
}

/* アクセスセクションのレイアウト */
.access-content-wrapper {
    display: flex;
    flex-direction: column; /* デフォルトで縦並び */
    gap: 30px;
}

.map-container {
    width: 100%;
    height: 450px; /* マップの高さ */
    border: 1px solid #ddd;
    overflow: hidden; /* マップの境界線を整える */
    border-radius: 8px;
}

.map-container iframe {
    width: 90%;
    height: 100%;
    border: 0;
}

.access-info-table {
    flex-grow: 1; /* 残りのスペースを占める */
}

.access-info-table table {
    width: 100%; /* アクセステーブルの幅を100%に */
}

.access-note {
    font-size: 0.9em;
    color: #777;
    margin-top: 10px;
}

/* お問い合わせフォーム専用のスタイル */
.contact-form {
    max-width: 700px;
    margin: 0 auto;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: #333;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 1em;
    box-sizing: border-box; /* パディングとボーダーを要素の合計幅・高さに含める */
}

.contact-form select {
    appearance: none; /* selectのデフォルトスタイルを削除 */
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20512%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M192%20256L64%20128v256l128-128z%22%2F%3E%3C%2Fsvg%3E'); /* selectのカスタム矢印 */
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 1em;
    padding-right: 35px; /* カスタム矢印のためのスペース */
}

.contact-form textarea {
    resize: vertical; /* 縦方向のみリサイズ可能にする */
}

.submit-button {
    display: block;
    width: 200px;
    padding: 15px 20px;
    margin: 30px auto 0;
    background-color: #88bfbf;
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 1.1em;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.submit-button:hover {
    background-color: #67b5b7;
}

/* jigyou.html の「当組合が選ばれる理由」セクションのスタイル */
.reason-section {
    margin-top: 50px;
    padding: 30px 20px;
    background-color: #f0f8ff; /* 薄い青系の背景色 */
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.reason-section .section-heading {
    text-align: center;
    font-size: 1.8em;
    color: #88bfbf; /* ヘッダーメニューと同じ青緑色 */
    margin-bottom: 40px;
    position: relative;
    padding-bottom: 10px;
}

.reason-section .section-heading::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background-color: #88bfbf;
}

.reason-item {
    position: relative; /* 数字の絶対配置の基準にするため */
    margin-bottom: 30px;
    padding-left: 90px; /* 数字分のスペースを確保 */
    min-height: 80px; /* 数字が表示される最低限の高さを確保 */
}

.reason-item:last-child {
    margin-bottom: 0;
}

.reason-number {
    position: absolute;
    left: 0;
    top: 0;
    font-size: 4em; /* 数字をさらに大きく */
    font-weight: bold;
    color: #e0f2f2; /* 薄い青緑色 */
    line-height: 1;
    z-index: 1; /* 背景に配置するため */
}

.reason-item .reason-title {
    font-size: 1.4em;
    color: #333;
    margin-top: 0;
    margin-bottom: 5px; /* タイトルとテキストの間に少し余白 */
    position: relative;
    z-index: 2; /* テキストより手前に配置 */
}

.reason-item .reason-text {
    font-size: 1.0em;
    color: #555;
    line-height: 1.7;
    margin-top: 0;
    position: relative;
    z-index: 2; /* タイトルより手前に配置 */
}

/* jigyou.html の「受入れ国（対応可能な国）」セクションのスタイル */
.countries-section {
    margin-top: 50px;
    padding: 30px 20px;
    background-color: #fff; /* 白い背景 */
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    text-align: center; /* コンテンツ全体を中央揃えにするため */
}

.countries-section .section-heading {
    text-align: center;
    font-size: 1.8em;
    color: #88bfbf; /* ヘッダーメニューと同じ青緑色 */
    margin-bottom: 40px;
    position: relative;
    padding-bottom: 10px;
}

.countries-section .section-heading::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background-color: #88bfbf;
}

.countries-description {
    font-size: 1.1em;
    color: #555;
    line-height: 1.7;
    margin-bottom: 30px;
    max-width: 800px; /* 説明文の最大幅を制限して読みやすくする */
    margin-left: auto;
    margin-right: auto;
}

.countries-image {
    margin-top: 20px;
    margin-bottom: 20px;
    text-align: center; /* 画像を中央揃え */
}

.countries-image img.responsive-image {
    max-width: 70%; /* 画像の最大幅を親要素の70%に制限 */
    height: auto; /* アスペクト比を維持 */
    display: block; /* 中央寄せのためにブロック要素に */
    margin-left: auto; /* 中央寄せ */
    margin-right: auto; /* 中央寄せ */
    border-radius: 8px; /* 角を丸くする（任意） */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 影をつける（任意） */
}

.responsive-image {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* ginou.html の「技能実習期間」セクションのスタイル */
.ginou-period-section {
    text-align: left; /* セクション内のコンテンツを左揃えにする */
}

.ginou-period-section .section-heading {
    text-align: center; /* 見出しは中央揃えを維持 */
}

.period-flow {
    margin-top: 30px;
    display: flex;
    flex-direction: column; /* 縦に並べる */
    align-items: center; /* 各行とflow-textを中央揃えにする */ /* ここはcenterのままでOK */
    gap: 30px; /* 各行の間のスペース */
    width: 100%; /* 親要素の幅いっぱいに広げる */
}

.flow-row {
    display: flex;
    align-items: center; /* 要素を縦方向中央揃え */
    flex-wrap: wrap; /* 小さい画面で折り返す */
    justify-content: center; /* 行の内部要素を中央揃えにする */
    gap: 15px; /* 要素間のスペース */
    max-width: 800px; /* 必要に応じて、この行の最大幅を設定してコンテンツを中央に保つ */
    width: 100%; /* 幅を確保 */
}

.period-box {
    width: 120px;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
    font-size: 1.1em;
    font-weight: bold;
    line-height: 1.4;
    padding: 5px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.period-box.yellow {
    background-color: #fffacd; /* 薄い黄色 */
    color: #333;
}

.period-circle {
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%; /* 円形にする */
    font-size: 1.5em;
    font-weight: bold;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.period-circle.blue {
    background-color: #add8e6; /* 薄い青 */
    color: #333;
}

.plus, .equals {
    font-size: 1.8em;
    font-weight: bold;
    color: #666;
    margin: 0 10px; /* 記号の左右のスペース */
}

.flow-text {
    font-size: 1.0em;
    color: #555;
    line-height: 1.6;
    margin-top: 20px; /* 上のフロー図との間に余白を追加 */
    margin-left: 0; /* 左マージンをリセット */
    text-align: center; /* テキスト自体を中央揃えにする */
    max-width: 1000px; /* テキストの最大幅を制限して読みやすくする */
    width: 100%; /* 幅を確保 */
}

.flow-text .red-text {
    color: #c00; /* 赤色 */
    font-weight: bold;
}

/* ginou.html 内のフロー画像用スタイル */
.ginou-flow-image-container {
    margin-top: 40px; /* 上のコンテンツとの間に余白 */
    margin-bottom: 20px; /* 下のキャプションとの間に余白 */
    text-align: center; /* 画像を中央揃え */
}

.ginou-flow-image {
    max-width: 65%; /* 親要素の75%の幅に制限 */
    height: auto; /* アスペクト比を維持 */
    display: block; /* 中央揃えのためにブロック要素に */
    margin-left: auto;
    margin-right: auto;
    border-radius: 8px; /* 角を丸くする（任意） */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 影をつける（任意） */
}

.image-caption {
    font-size: 0.95em;
    color: #666;
    text-align: center;
    margin-top: 10px;
    margin-bottom: 30px;
    line-height: 1.6;
}

/* ginou.html の「受入れ人数枠」セクションのスタイル */
.ginou-acceptance-limit-section {
    text-align: center; /* セクション全体を中央揃えに */
    padding-bottom: 50px; /* 下に余白 */
}

.ginou-acceptance-limit-section h2 {
    /* メインコンテンツのh2スタイルを継承 */
}

.acceptance-table-container {
    margin: 30px auto; /* テーブルを中央揃え */
    max-width: 600px; /* テーブルの最大幅を制限 */
    border: 1px solid #ccc;
    border-collapse: collapse;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.acceptance-table-container table {
    width: 100%;
    border-collapse: collapse;
}

.acceptance-table-container th,
.acceptance-table-container td {
    border: 1px solid #ccc;
    padding: 12px 15px;
    text-align: center; /* セル内のテキストを中央揃え */
    font-size: 1.0em;
    color: #333;
}

.acceptance-table-container thead th {
    background-color: #88bfbf; /* 見出しの背景色 */
    color: #fff; /* 見出しの文字色 */
    font-weight: bold;
}

.acceptance-table-container tbody tr:nth-child(odd) {
    background-color: #f9f9f9; /* 奇数行の背景色 */
}

.acceptance-table-container tbody tr:hover {
    background-color: #f0f0f0; /* ホバー時の背景色 */
}

.acceptance-table-container td:first-child {
    background-color: #fffacd; /* 左側の列の背景色 */
    color: #333;
}
/* 破線の区切り線のために擬似要素を使用 (CSSで完璧な再現は難しいが、近い表現) */
.acceptance-table-container th:first-child::after,
.acceptance-table-container td:first-child::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0; /* 右端に配置 */
    width: 1px; /* 線の太さ */
    height: 100%; /* 高さ */
    border-right: 1px dashed #ccc; /* 破線 */
}
/* thとtdにposition: relative; を追加して、::afterの基準にする */
.acceptance-table-container th,
.acceptance-table-container td {
    position: relative;
}

.acceptance-example {
    margin-top: 30px;
    padding: 15px 20px;
    text-align: left; /* テキストは左寄せ */
    max-width: 600px; /* テーブルの幅に合わせる */
    margin-left: auto;
    margin-right: auto;
    background-color: #f0f8ff; /* 薄い青系の背景色 */
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.acceptance-example p {
    font-weight: bold;
    color: #555;
    margin-bottom: 10px;
}

.acceptance-example ul {
    list-style-type: disc; /* 黒丸のリスト */
    padding-left: 25px; /* リストのインデント */
    margin: 0;
    color: #555;
    line-height: 1.6;
}
.acceptance-example li {
    margin-bottom: 5px;
}

/* ginou.html の「移行対象職種・作業一覧」セクションのスタイル */
.ginou-occupation-list-section {
    text-align: center; /* セクション全体を中央揃えに */
    padding-bottom: 50px; /* 下に余白 */
}

.ginou-occupation-list-section h2 {
    /* メインコンテンツのh2スタイルを継承 */
}

.ginou-occupation-list-section p {
    font-size: 1.0em;
    color: #555;
    line-height: 1.6;
    margin-top: 20px;
    margin-bottom: 20px;
    max-width: 1000px; /* テキストの最大幅を制限 */
    margin-left: auto;
    margin-right: auto;
}

.link-wrapper {
    margin-top: 30px;
    margin-bottom: 30px;
}

.external-link {
    display: inline-block; /* ボタンのように見せるため */
    background-color: #88bfbf; /* ボタンの背景色 */
    color: #fff; /* ボタンの文字色 */
    padding: 15px 25px;
    border-radius: 5px;
    text-decoration: none; /* 下線をなくす */
    font-weight: bold;
    transition: background-color 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* リンクボタンの文字色を強制的に白にするための追加CSS */
.main-content a.external-link {
    color: #fff !important; /* !importantで最優先にします */
}

.external-link:hover {
    background-color: #67b5b7; /* ホバー時の色 */
}

/* 特定技能制度イントロセクション */
.tokutei-intro-section h2 {
    /* ginou.html の h2 と同じスタイル */
}

.tokutei-text-content {
    flex: 1; /* 残りのスペースを占める */
    min-width: 300px; /* 最小幅 */
    line-height: 1.7;
}

.tokutei-image-content {
    flex-shrink: 0; /* 画像が縮まないようにする */
    max-width: 400px; /* 画像の最大幅を調整 */
    width: 100%; /* 親要素の幅いっぱいに広がるように設定 */
    text-align: center;
}

.tokutei-image-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.section-content-with-image {
    display: flex;
    align-items: center; /* 縦方向中央揃え */
    gap: 30px;
    flex-wrap: wrap; /* 画面幅が狭い場合に折り返す */
}

.tokutei-heading {
    font-size: 1.2em;
    font-weight: bold;
    color: #333;
    margin-bottom: 10px;
}

.tokutei-note {
    font-size: 0.9em;
    color: #777;
    margin-top: 20px;
    margin-bottom: 5px;
}

.tokutei-industries {
    font-size: 1.0em;
    color: #555;
    line-height: 1.6;
}

/* 在留期間と試験セクション (tokutei-ginou_02.png) */
.tokutei-period-exam-section .section-heading {
    text-align: center; /* 見出しは中央揃え */
}

.tokutei-grid-table {
    display: grid;
    grid-template-columns: 150px 1fr; /* 左の項目列の幅を固定し、右のコンテンツ列は残りのスペースを占める */
    border: 1px solid #ddd;
    border-collapse: collapse;
    margin: 30px auto;
    max-width: 700px; /* テーブル全体の最大幅を制限 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    background-color: #fff;
}

.tokutei-grid-table .grid-row {
    display: contents; /* グリッドの行を作成しないが、子要素はグリッドアイテムとして配置される */
}

.tokutei-grid-table .grid-cell-header {
    background-color: #88bfbf; /* 見出しの背景色 */
    color: #fff;
    font-weight: bold;
    padding: 12px 15px;
    text-align: center; /* 中央揃え */
    border: 1px solid #ddd;
    grid-column: span 2; /* 2列にまたがる */
}

.tokutei-grid-table .grid-cell-label {
    background-color: #fffacd; /* 黄色の背景色 */
    padding: 12px 15px;
    font-weight: bold;
    color: #333;
    border: 1px solid #ddd;
    text-align: left; /* 左揃え */
}

.tokutei-grid-table .grid-cell-content {
    padding: 12px 15px;
    border: 1px solid #ddd;
    color: #555;
    line-height: 1.6;
    text-align: left; /* 左揃え */
}

.tokutei-grid-table .grid-cell-content .large-text {
    font-size: 1.3em; /* 5年 を少し大きく */
    font-weight: bold;
    color: #00afcc; /* 目立つ色 */
}

/* 技能実習との比較セクション (tokutei-ginou_03.png) */
.tokutei-comparison-section .section-heading {
    text-align: center;
}

.tokutei-comparison-table-container {
    margin: 30px auto;
    max-width: 60%; /* 親要素の幅いっぱいに広がるように */
    overflow-x: auto; /* 横スクロールを可能にする */
    border: 1px solid #ccc;
    border-collapse: collapse;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    background-color: #fff;
}

.tokutei-comparison-table-container table {
    width: 100%;
    min-width: 800px; /* テーブルが小さくなりすぎないように最小幅を設定 */
    border-collapse: collapse;
}

.tokutei-comparison-table-container th,
.tokutei-comparison-table-container td {
    border: 1px solid #ccc;
    padding: 12px 15px;
    text-align: left; /* デフォルトは左揃え */
    font-size: 0.95em;
    color: #333;
    vertical-align: top; /* セル内容を上揃え */
}

.tokutei-comparison-table-container thead th {
    background-color: #88bfbf; /* 見出しの背景色 */
    color: #fff;
    font-weight: bold;
    text-align: center; /* 列見出しは中央揃え */
}

.tokutei-comparison-table-container tbody th {
    background-color: #f2f2f2; /* 行見出しの背景色 */
    font-weight: bold;
    color: #555;
    text-align: center; /* 行見出しも中央揃え */
    min-width: 300px; /* 行見出しの最小幅 */
}

.tokutei-comparison-table-container tbody tr:nth-child(odd) {
    background-color: #f9f9f9; /* 奇数行の背景色 */
}

.tokutei-comparison-table-container tbody tr:hover {
    background-color: #f0f0f0; /* ホバー時の背景色 */
}

/* flow.htmlのテーブル幅と配置を調整するためのラッパー */
.flow-table-wrapper {
    width: 60%; /* 全体の幅を75%に設定 */
    margin-left: auto; /* 左の余白を自動調整 */
    margin-right: auto; /* 右の余白を自動調整 */
}

/* --- tokutei.html の「登録支援機関の役割」セクション専用スタイル --- */

/* セクション全体のラッパー */
.rso-section {
    /* このクラス自体にはスタイルは不要ですが、中の要素を特定するために使います */
}

/* 導入文のスタイル */
.rso-section .intro-text {
    text-align: left;
    max-width: 800px;
    margin: 0 auto 30px;
}

/* 「委託するメリット」の背景や余白 */
.rso-section .reason-section {
    background-color: #f9f9f9;
    padding-top: 20px;
}

/* 「委託するメリット」のタイトル */
.rso-section .reason-section h3 {
    font-size: 1.5em;
    text-align: center;
    color: #333;
    margin-bottom: 30px;
}

/* 支援内容テーブルの上の余白 */
.rso-section .tokutei-comparison-table-container {
    margin-top: 40px;
}

.rso-section h2.section-heading {
    text-align: center;
}

/* 「技能実習との比較」テーブル専用のスタイル */
.comparison-specific-table tbody th {
    min-width: 50px; /* お好みの幅に調整してください */
}

/* center.html スライドショーのスタイル */
.slideshow-container {
    max-width: 800px;
    height: 400px; /* 固定したい高さを指定 */
    position: relative;
    margin: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    border-radius: 8px;
    overflow: hidden;
}

.slide-item img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* 画像を収めるように縮小（トリミングなし、余白あり） */
}

/* 最初は非表示 */
.slide-item {
  display: none;
  height: 100%; /* ← この行を追加 */
}

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 20px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
  background-color: rgba(0,0,0,0.3);
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

/* Fading animation */
.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  from {opacity: .4}
  to {opacity: 1}
}

/* job-info.html 求人情報用のスタイル */
.job-item {
    margin-top: 40px;
    margin-bottom: 40px;
    padding: 25px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #f9f9f9;
}

.job-item h3 {
    font-size: 1.5em;
    color: #333;
    padding-bottom: 10px;
    margin-top: 0;
    margin-bottom: 20px;
    border-bottom: 2px solid #88bfbf;
}

.job-item table {
    width: 100%;
    border-collapse: collapse;
}

.job-item th,
.job-item td {
    border: 1px solid #ddd;
    padding: 12px 15px;
    text-align: left;
    vertical-align: top;
}

.job-item th {
    background-color: #f2f2f2;
    width: 150px; /* 項目名の列幅を固定 */
    font-weight: bold;
}