/* 基本スタイル */
*{
	margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
	font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
background-color: #f8f9fa;
padding-top: 70px;
/* ヘッダーの高さ分のパディング */
            min-height: 100vh;
/* 最小高さを画面の高さに設定 */
            display: flex;
flex-direction: column;
/* 縦方向にレイアウト */
        }
.container{
	width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
/* メインコンテンツ部分 */
        main {
flex: 1;
/* メインコンテンツが伸びるようにする */
        }
/* ヘッダー（統一構造） */
        header{
	background-color: white;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
position: fixed !important;
top: 0;
left: 0;
right: 0;
z-index: 1000;
width: 100%;
/* 追加：幅を100%に設定して確実に固定 */
}
.header-inner{
	display: flex;
justify-content: space-between;
align-items: center;
height: 70px;
}
.logo{
	display: block;
text-decoration: none;
}
.logo img{
	height: 40px;
vertical-align: middle;
}
@media (min-width: 576px) {
.logo-text{
	display: inline;
}
}
/* デスクトップナビゲーション */
        .nav-desktop{
	display: none;
}
@media (min-width: 768px) {
.nav-desktop{
	display: block;
}
}
.nav-desktop ul{
	display: flex;
list-style: none;
}
.nav-desktop li{
	margin-left: 30px;
position: relative;
}
.nav-desktop a{
	text-decoration: none;
color: #333;
font-weight: 500;
position: relative;
padding: 5px 0;
}
.nav-desktop a:hover{
	color: #3a86ff;
}
.nav-desktop a::after{
	content: '';
position: absolute;
width: 0;
height: 2px;
background: #3a86ff;
bottom: 0;
left: 0;
transition: width 0.3s;
}
.nav-desktop a:hover::after{
	width: 100%;
}
/* モバイルナビゲーション */
        .menu-button{
	background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
z-index: 2000;
}
@media (min-width: 768px) {
.menu-button{
	display: none;
}
}
.mobile-nav{
	position: fixed;
top: 0;
right: -100%;
/* 初期状態は画面外に */
            width: 250px;
height: 100%;
background-color: white;
z-index: 1500;
transition: right 0.3s ease;
box-shadow: -2px 0 5px rgba(0,0,0,0.1);
overflow-y: auto;
padding: 70px 0 20px;
}
.mobile-nav.open{
	right: 0;
/* 開いた時画面内に */
        }
.mobile-nav ul{
	list-style: none;
}
.mobile-nav li{
	margin-bottom: 5px;
}
.mobile-nav a{
	font-size: 1.1rem;
text-decoration: none;
color: #333;
display: block;
padding: 12px 20px;
border-bottom: 1px solid #f0f0f0;
transition: all 0.3s ease;
}
.mobile-nav a:hover{
	background-color: #f8f9fa;
color: #3a86ff;
padding-left: 25px;
}
.menu-overlay{
	position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0,0,0,0.5);
z-index: 1400;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease;
}
.menu-overlay.open{
	opacity: 1;
visibility: visible;
}
.close-button{
	position: absolute;
top: 20px;
right: 20px;
background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
z-index: 2000;
transition: transform 0.3s ease;
}
.close-button:hover {
transform: rotate(90deg);
}
/* ヒーローセクション */
        .hero{
	background: linear-gradient(to right, #1a56db, #3a86ff);
color: white;
padding: 70px 0 50px;
text-align: center;
margin-top: -70px;
/* ヘッダーの高さ分のネガティブマージン */
            padding-top: 140px;
/* 元のパディング + ヘッダーの高さ */
        }
.hero h1{
	font-size: 2.5rem;
margin-bottom: 15px;
}
.hero p{
	font-size: 1.2rem;
margin-bottom: 30px;
opacity: 0.9;
}
.hero-features{
	display: flex;
justify-content: center;
flex-wrap: wrap;
margin-top: 30px;
gap: 15px;
}
.feature{
	text-align: center;
margin: 0 10px;
}
.feature-icon{
	font-size: 2.5rem;
margin-bottom: 10px;
background-color: rgba(255,255,255,0.2);
width: 60px;
height: 60px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 10px;
transition: transform 0.3s ease;
}
.feature:hover .feature-icon{
	transform: scale(1.1);
background-color: rgba(255,255,255,0.3);
}
/* タブセクション - 横スクロール */
        .section{
	padding: 50px 0;
}
.section-title{
	text-align: center;
font-size: 1.8rem;
margin-bottom: 30px;
position: relative;
}
.section-title::after{
	content: '';
display: block;
width: 50px;
height: 3px;
background: #3a86ff;
margin: 15px auto 0;
}
.tab-container{
	background: white;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
overflow: hidden;
}
.tab-scroll{
	overflow-x: auto;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
padding: 10px;
background: #f0f4f8;
scrollbar-width: thin;
scrollbar-color: #3a86ff #f0f4f8;
}
.tab-scroll::-webkit-scrollbar {
height: 3px;
}
.tab-scroll::-webkit-scrollbar-thumb {
background: #3a86ff;
border-radius: 10px;
}
.tab-scroll::-webkit-scrollbar-track {
background: #f0f4f8;
}
.tab-buttons{
	display: inline-flex;
/* インラインでフレックス表示 */
            min-width: 100%;
/* スクロール可能にする */
        }
.tab-button{
	padding: 8px 16px;
margin-right: 8px;
border: none;
background: #e6f0ff;
border-radius: 20px;
cursor: pointer;
font-size: 0.9rem;
transition: all 0.3s;
white-space: nowrap;
/* 文字を折り返さない */
            flex-shrink: 0;
/* 縮小しない */
        }
.tab-button:last-child{
	margin-right: 0;
}
.tab-button.active{
	background-color: #3a86ff;
color: white;
}
.tab-button:not(.active):hover{
	background-color: #d1e3ff;
transform: translateY(-2px);
}
.tab-content{
	display: none;
padding: 20px;
}
.tab-content.active{
	display: block;
animation: fadeIn 0.5s;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* テーブルスタイル */
        .table-responsive{
	overflow-x: auto;
}
table{
	width: 100%;
border-collapse: collapse;
}
th, td{
	padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #e0e0e0;
}
th{
	background-color: #f8f9fa;
font-weight: bold;
}
tbody tr:hover{
	background-color: #f5f8ff;
}
/* カードスタイル */
        .card-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 20px;
}
.card{
	background: white;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
transition: transform 0.3s, box-shadow 0.3s;
}
.card:hover{
	transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.card-body{
	padding: 20px;
}
.card-title{
	font-size: 1.2rem;
margin-bottom: 15px;
}
ul{
	padding-left: 20px;
}
.text-success{
	color: #2ecc71;
}
.text-danger{
	color: #e74c3c;
}
/* 国別リンクグリッド */
        .country-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
@media (min-width: 768px) {
.country-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.country-card{
	background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
padding: 15px;
display: flex;
justify-content: space-between;
align-items: center;
text-decoration: none;
color: #333;
transition: all 0.3s;
}
.country-card:hover{
	transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
background-color: #f5f8ff;
}
.country-name {
display: flex;
align-items: center;
}
.country-flag{
	width: 24px;
height: 16px;
margin-right: 8px;
vertical-align: middle;
object-fit: cover;
}
.arrow-icon{
	color: #3a86ff;
transition: transform 0.3s ease;
}
.country-card:hover .arrow-icon {
transform: translateX(5px);
}
/* 特徴セクション */
        .features-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 20px;
}
@media (min-width: 768px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 992px) {
.features-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.feature-card{
	background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
padding: 20px;
transition: transform 0.3s ease;
}
.feature-card:hover{
	transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.feature-header{
	display: flex;
align-items: center;
margin-bottom: 15px;
}
.feature-circle{
	width: 50px;
height: 50px;
border-radius: 50%;
background-color: #e6f0ff;
display: flex;
align-items: center;
justify-content: center;
margin-right: 15px;
color: #3a86ff;
font-size: 1.5rem;
transition: transform 0.3s ease;
}
.feature-card:hover .feature-circle{
	transform: scale(1.1);
background-color: #d1e3ff;
}
/* フッター */
        footer{
	background-color: #2d3748;
color: white;
padding: 50px 0 20px;
margin-top: auto;
/* フッターを下部に押し出す */
            width: 100%;
/* 幅を100%にする */
        }
.footer-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 30px;
}
@media (min-width: 768px) {
.footer-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.footer-title{
	font-size: 1.2rem;
margin-bottom: 15px;
position: relative;
padding-bottom: 10px;
}
.footer-title::after{
	content: '';
position: absolute;
bottom: 0;
left: 0;
width: 40px;
height: 2px;
background-color: #3a86ff;
}
.footer-links{
	list-style: none;
}
.footer-links li{
	margin-bottom: 10px;
}
.footer-links a{
	color: #cbd5e0;
text-decoration: none;
transition: color 0.3s ease, padding-left 0.3s ease;
display: inline-block;
}
.footer-links a:hover{
	color: white;
padding-left: 5px;
}
.footer-bottom{
	border-top: 1px solid #4a5568;
margin-top: 30px;
padding-top: 20px;
text-align: center;
color: #a0aec0;
}
/* テーブルのスクロール対応と最初の列固定 */
        .table-scroll-container{
	width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
position: relative;
margin-bottom: 1.5rem;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.comparison-table{
	width: 100%;
min-width: 600px;
/* テーブルの最小幅を設定 */
            border-collapse: separate;
/* セルを分離 */
            border-spacing: 0;
/* セル間の間隔を0に */
        }
.comparison-table th,
        .comparison-table td{
	padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #e0e0e0;
white-space: nowrap;
/* テキストを折り返さない */
        }
.comparison-table th{
	background-color: #f8f9fa;
font-weight: bold;
position: sticky;
top: 0;
z-index: 10;
}
.comparison-table tbody tr:hover{
	background-color: #f5f8ff;
}
/* 固定列のスタイル（左側の列） */
        .comparison-table th:first-child,
        .comparison-table td:first-child{
	position: sticky;
left: 0;
z-index: 20;
/* 他のセルより前面に */
            background-color: #f8f9fa;
/* 固定列の背景色 */
            border-right: 1px solid #e0e0e0;
/* 右側に境界線 */
        }
/* ホバー時の固定列背景色 */
        .comparison-table tbody tr:hover td:first-child{
	background-color: #f0f7ff;
/* ホバー時は少し濃い色に */
        }
/* 最初の列のスタイル強調 */
        .provider-name,
        .country-name,
        .feature-name{
	font-weight: bold;
min-width: 120px;
/* 最小幅を確保 */
        }
/* モバイル対応のスクロールインジケーター */
        @media (max-width: 767px) {
.table-scroll-container::after{
	content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 30px;
background: linear-gradient(to right, rgba(255,255,255,0), rgba(248,249,250,0.7));
pointer-events: none;
/* ユーザー操作に影響しない */
                z-index: 5;
}
/* スクロールパントを表示（オプション） */
            .table-scroll-hint{
	display: block;
text-align: right;
font-size: 0.8rem;
color: #666;
margin-bottom: 5px;
}
}
/* ページトップボタン */
        .page-top-btn{
	position: fixed;
bottom: 30px;
right: 30px;
background-color: #3a86ff;
color: white;
border: none;
border-radius: 50px;
padding: 10px 15px;
font-size: 0.9rem;
font-weight: bold;
cursor: pointer;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
z-index: 900;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.page-top-btn:hover{
	background-color: #1a56db;
transform: translateY(-3px);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
.page-top-btn.visible{
	opacity: 1;
visibility: visible;
}
/* モバイル表示での調整 */
        @media (max-width: 767px) {
.page-top-btn{
	bottom: 20px;
right: 20px;
padding: 8px 12px;
font-size: 0.8rem;
}
}
.hero-with-background{
	position: relative;
width: 100%;
min-height: 300px;
background-image: url('https://www.esimnavi.jp/img/background-landmarks.jpg');
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
display: flex;
justify-content: center;
align-items: center;
padding: 100px 20px 80px;
text-align: center;
color: white;
z-index: 1;
}
.hero-with-background::before{
	content: "";
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.5);
/* 背景を少し暗くして文字を読みやすく */
            z-index: 0;
}
.hero-content{
	position: relative;
z-index: 1;
}
.hero-content h1{
	font-size: 2.5rem;
margin-bottom: 15px;
}
.hero-content p{
	font-size: 1.2rem;
margin-bottom: 25px;
}
.hero-content button{
	background-color: #ffffff;
color: #3a86ff;
border: none;
padding: 10px 20px;
border-radius: 30px;
font-weight: bold;
cursor: pointer;
transition: background 0.3s ease, transform 0.3s ease;
}
.hero-content button:hover{
	background-color: #e0ecff;
transform: translateY(-2px);
}
/* パンくずリスト（下層ページ向け） */
        .breadcrumb{
	background-color: #f8f9fa;
padding: 10px 0;
margin-bottom: 20px;
border-bottom: 1px solid #e0e0e0;
}
.breadcrumb-list{
	list-style: none;
display: flex;
flex-wrap: wrap;
padding: 0;
margin: 0;
}
.breadcrumb-item {
display: flex;
align-items: center;
}
.breadcrumb-item:not(:last-child)::after{
	content: "›";
margin: 0 8px;
color: #6c757d;
}
.breadcrumb-link{
	color: #3a86ff;
text-decoration: none;
}
.breadcrumb-link:hover{
	text-decoration: underline;
}
.breadcrumb-current{
	color: #6c757d;
}
/* モバイル対応 */
        @media (max-width: 768px) {
.hero-with-background{
	min-height: 240px;
padding: 80px 15px 60px;
}
.hero-content h1{
	font-size: 1.8rem;
}
.hero-content p{
	font-size: 1rem;
}
}
/* アクティブな要素のスタイル（下層ページでの現在位置表示用） */
        .nav-desktop .active a{
	color: #3a86ff;
font-weight: bold;
}
.nav-desktop .active a::after{
	width: 100%;
}
.mobile-nav .active a{
	color: #3a86ff;
background-color: #f0f7ff;
border-left: 3px solid #3a86ff;
padding-left: 17px;
}
/* 追加スタイル - ガイドセクション */
        .guide-section{
	background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
padding: 30px;
margin-bottom: 30px;
}
.guide-section h3{
	color: #1a56db;
margin-bottom: 20px;
font-size: 1.5rem;
border-bottom: 2px solid #e6f0ff;
padding-bottom: 10px;
}
.guide-section h4{
	color: #3a86ff;
margin: 25px 0 15px;
font-size: 1.2rem;
}
.guide-img{
	width: 100%;
max-width: 400px;
margin: 20px auto;
display: block;
border-radius: 8px;
}
.guide-steps{
	counter-reset: step;
margin: 0;
padding: 0;
list-style-type: none;
}
.guide-steps li{
	position: relative;
margin-bottom: 25px;
padding-left: 50px;
min-height: 40px;
}
.guide-steps li::before{
	content: counter(step);
counter-increment: step;
position: absolute;
left: 0;
top: 0;
width: 36px;
height: 36px;
background: #3a86ff;
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
.comparison-box{
	display: flex;
flex-wrap: wrap;
margin: 20px 0;
gap: 20px;
}
.comparison-item{
	flex: 1;
min-width: 280px;
background: #f8f9fa;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.comparison-item h5{
	color: #1a56db;
margin-bottom: 15px;
display: flex;
align-items: center;
}
.comparison-item h5 i{
	margin-right: 10px;
font-size: 20px;
}
.highlight-box{
	background-color: #e6f0ff;
border-left: 4px solid #3a86ff;
padding: 15px;
margin: 20px 0;
border-radius: 0 8px 8px 0;
}
.table-container{
	margin: 20px 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
position: relative;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.info-table{
	width: 100%;
min-width: 600px;
border-collapse: separate;
border-spacing: 0;
background: white;
}
.info-table th, .info-table td{
	border: 1px solid #e0e0e0;
padding: 12px 15px;
text-align: left;
white-space: nowrap;
vertical-align: top;
}
.info-table th{
	background-color: #f0f4f8;
font-weight: bold;
position: sticky;
top: 0;
z-index: 10;
}
.info-table th:first-child,
.info-table td:first-child{
	position: sticky;
left: 0;
z-index: 20;
background-color: #f8f9fa;
border-right: 2px solid #e0e0e0;
min-width: 120px;
white-space: normal;
}
.info-table tbody tr:hover td:first-child{
	background-color: #f0f7ff;
}
.info-table tr:nth-child(even){
	background-color: #f8f9fa;
}
.info-table tbody tr:hover{
	background-color: #f5f8ff;
}
.info-table td:nth-child(2),
.info-table td:nth-child(3){
	min-width: 200px;
white-space: normal;
line-height: 1.4;
}
.info-table td:nth-child(4){
	min-width: 180px;
white-space: normal;
line-height: 1.4;
}
.method-name{
	font-weight: bold;
color: #1a56db;
}
.info-table ul{
	margin: 0;
padding-left: 15px;
list-style-type: disc;
}
.info-table li{
	margin-bottom: 3px;
line-height: 1.3;
}
.table-container::-webkit-scrollbar {
	height: 6px;
}
.table-container::-webkit-scrollbar-thumb {
	background: #3a86ff;
border-radius: 3px;
}
.table-container::-webkit-scrollbar-track {
	background: #f0f4f8;
border-radius: 3px;
}
@media (max-width: 767px) {
.table-container::after{
	content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 30px;
background: linear-gradient(to right, rgba(255,255,255,0), rgba(248,249,250,0.8));
pointer-events: none;
z-index: 5;
}
.table-scroll-hint{
	display: block;
text-align: right;
font-size: 0.8rem;
color: #666;
margin-bottom: 5px;
}
}
@media (min-width: 768px) {
.table-scroll-hint{
	display: none;
}
}
/* 追加スタイル - チェックリスト */
        .check-list{
	list-style: none;
padding: 0;
margin: 20px 0;
}
.check-list li{
	position: relative;
padding-left: 35px;
margin-bottom: 15px;
line-height: 1.5;
}
.check-list li::before{
	content: "✓";
position: absolute;
left: 0;
top: 0;
width: 25px;
height: 25px;
background: #3a86ff;
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
/* 追加スタイル - 注意点ボックス */
        .caution-box{
	background-color: #fff3e0;
border-left: 4px solid #ff9800;
padding: 15px;
margin: 20px 0;
border-radius: 0 8px 8px 0;
}
.caution-box h5{
	color: #e65100;
margin-top: 0;
margin-bottom: 10px;
display: flex;
align-items: center;
}
.caution-box h5::before{
	content: "⚠️";
margin-right: 10px;
}
/* 追加スタイル - データタイプボックス */
        .data-type-box{
	background-color: #f5f5f5;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.data-type-title{
	color: #1a56db;
margin-top: 0;
margin-bottom: 15px;
font-size: 1.1rem;
font-weight: bold;
}
.data-type-box p{
	margin-bottom: 0;
}
/* 追加スタイル - メリット・デメリットリスト */
        .pros-cons-list{
	list-style: none;
padding: 0;
margin: 15px 0;
}
.pros-cons-list li{
	position: relative;
padding-left: 30px;
margin-bottom: 10px;
line-height: 1.5;
}
.pros-list li::before{
	content: "✓";
position: absolute;
left: 0;
top: 0;
color: #2ecc71;
font-weight: bold;
font-size: 1.2rem;
}
.cons-list li::before{
	content: "✗";
position: absolute;
left: 0;
top: 0;
color: #e74c3c;
font-weight: bold;
font-size: 1.2rem;
}
/* 追加スタイル - 目次 */
        .toc{
	background-color: #f8f9fa;
border-radius: 8px;
padding: 20px 30px;
margin: 30px 0;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.toc-title{
	font-size: 1.2rem;
color: #1a56db;
margin-bottom: 15px;
border-bottom: 1px solid #d1e3ff;
padding-bottom: 10px;
}
.toc-list{
	list-style: none;
padding: 0;
margin: 0;
}
.toc-list li{
	margin-bottom: 12px;
}
.toc-list a{
	text-decoration: none;
color: #3a86ff;
font-weight: 500;
transition: color 0.3s ease, padding-left 0.3s ease;
}
.toc-list a:hover{
	color: #1a56db;
padding-left: 5px;
}
.toc-list-nested{
	list-style: none;
padding-left: 20px;
margin-top: 8px;
}
/* 追加スタイル - 右サイドナビゲーション */
        .main-content-wrapper{
	display: flex;
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
.main-content{
	flex: 1;
min-width: 0;
/* flexboxの子要素がはみ出ないようにする */
            padding-right: 20px;
}
.side-nav{
	width: 280px;
margin-left: 20px;
margin-top: 50px;
flex-shrink: 0;
/* 幅を固定する */
        }
@media (max-width: 992px) {
.side-nav{
	display: none;
/* モバイルでは非表示にする */
            }
.main-content{
	padding-right: 0;
}
}
.side-nav-sticky{
	position: sticky;
top: 90px;
/* ヘッダー高さ + 余白 */
        }
.side-nav-box{
	background-color: white;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
margin-bottom: 20px;
overflow: hidden;
}
.side-nav-title{
	background-color: #3a86ff;
color: white;
padding: 10px 15px;
font-size: 0.95rem;
font-weight: bold;
margin: 0;
}
.side-nav-list{
	list-style: none;
padding: 0;
margin: 0;
}
.side-nav-list li{
	border-bottom: 1px solid #f0f0f0;
}
.side-nav-list li:last-child{
	border-bottom: none;
}
.side-nav-list a{
	display: block;
padding: 8px 15px;
color: #333;
text-decoration: none;
transition: all 0.3s ease;
font-size: 0.9rem;
}
.side-nav-list a:hover{
	background-color: #f5f8ff;
color: #3a86ff;
padding-left: 20px;
}
.side-nav-list a.active{
	background-color: #e6f0ff;
color: #3a86ff;
border-left: 3px solid #3a86ff;
padding-left: 17px;
}
.side-nav-subtitle{
	padding: 6px 15px;
background-color: #f8f9fa;
color: #333;
font-weight: bold;
font-size: 0.85rem;
margin: 0;
border-bottom: 1px solid #e0e0e0;
}
.side-nav-country {
display: flex;
align-items: center;
}
.side-nav-flag{
	width: 20px;
height: 13px;
margin-right: 10px;
vertical-align: middle;
object-fit: cover;
}
/* メインコンテンツの幅調整 */
        @media (min-width: 992px) {
.container-with-sidebar{
	max-width: 900px;
}
}
