﻿@charset "UTF-8";

/* -----------------------------------------------------------
Theme Name: Hokuto City Library
Theme URI: http://rb68.pt-web.link/
Discription: 北杜市立図書館
Version: 1.0
Author: System Inn Nakagomi co.,ltd
Author URI: http://www.sin.co.jp/
*/

/* -----------------------------------------------------------
Copyright (C) System Inn Nakagomi co.,ltd All rights reserved.
----------------------------------------------------------- */

/*Body*/
:root {
	--base-font-size: 85%;
	--font-scale: 1;
}

body {
	font-family:sans-serif,monospace,Osaka, "ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック";
	font-size:calc(var(--base-font-size) * var(--font-scale));
	color:#333;
	margin:0; padding:0;
}

/* トップ白いバー */
#top-white-bar {
	background: #fff;
	width: 100%;
	height: 2.5rem;
	border-bottom: 1px solid #ddd;
}

#top-bakground{
	background: url(../images/common/head_back.png) repeat-x;
    height: 8.75rem;
}

/* スマホメニュー */
.mobile-menu {
    display: none;
}

/* 古いjQueryボタンを非表示 */
#myDIV {
    display: none !important;
}

.mobile-menu-toggle {
    display: none;
    width: 100%;
    padding: 10px;
    background-color: #bfe1d4;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    color: #282828;
    cursor: pointer;
    margin-top: 10px;
}

.mobile-menu-content {
    display: none;
    background-color: #bfe1d4;
    border-radius: 5px;
    margin-top: 5px;
}

.mobile-menu-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-menu-content li {
    border-bottom: 1px solid #3a6b49;
}

.mobile-menu-content li:last-child {
    border-bottom: none;
}

.mobile-menu-content li a {
    display: block;
    padding: 15px 20px;
    text-decoration: none;
    color: #282828;
    font-weight: bold;
    font-size: 14px;
    transition: background-color 0.3s ease;
}

.mobile-menu-content li a:hover {
    background-color: #5a8c69;
    color: white;
}

.mobile-menu-content li a:active {
    background-color: #3a6b49;
    color: white;
}

/* スマホでのみ背景を消す */
@media screen and (max-width: 480px) {
    #top-bakground {
        display: none;
    }
    
    #top-white-bar,
    .white-bar-content {
        display: none;
    }
    
    .mobile-menu {
        display: block;
    }
    
    .mobile-menu-toggle {
        display: block;
    }
    
    #global_nav {
        display: none;
    }
    
    #kantan_top form[name="freeRef"] {
        margin: 0 !important;
    }
    
    #kantan_top .search-container {
        margin: 3.75rem 0 0.1rem 0rem !important;
    }
    
    #search_top {
        width: 95% !important;
    }
    
    /* スマホ用マイライブラリーレイアウト修正 */
    #mylibrary_top {
        width: 100%;
		margin: 0 0 20px 0px;
        padding: 0;
    }
    
    .mylibrary-main {
        flex-direction: column;
        align-items: stretch;
        margin-bottom: 15px;
    }
    
    .mylibrary-login-btn {
        flex-direction: column;
        text-align: center;
        padding: 15px;
        margin-bottom: 10px;
		width: 90% !important;
    }
    
    .mylibrary-arrow {
        margin-right: 0;
        margin-bottom: 10px;
        font-size: 2.5rem;
    }
    
    .mylibrary-text {
        width: 100%;
        padding: 10px;
        font-size: 0.9rem;
    }
    
    .mylibrary-links {
        align-items: center;
        gap: 10px;
    }
    
    .mylibrary-link {
        min-width: auto;
		width: 90% !important;
        padding: 12px;
        font-size: 0.8rem;
        text-align: center;
    }
    
    /* スマホ用検索ボタンの高さ調整 */
    #kantan_top .search-button-secondary {
        height: 1rem;
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
		text-align: center;
    }
    
    #kantan_top .search-bottom {
        margin: 0.5rem 0;
        padding: 0.5rem 0;
    }
    
    /* スマホ用検索エリア全体の高さ調整 */
    #search_top {
        padding: 1rem;
        min-height: auto;
		margin-bottom: 20px !important;
    }
    
    #kantan_top {
        min-height: auto;
		margin: 0 0 20px 0 !important;
    }
    
    /* スマホ用タブナビゲーション横並び */
    .tab-navigation {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 3px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .tab-button {
        flex: 0 0 auto;
        min-width: auto;
        white-space: nowrap;
        margin-bottom: 0;
        font-size: 0.6rem;
        padding: 6px 8px;
        border-radius: 4px;
    }
    
    /* スマホ用ニュースグリッド2列 */
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(5, 1fr);
        gap: 10px;
    }
    
    .news-card {
        min-height: 150px;
        padding: 10px;
    }
    
    /* スマホ用タブパネル内のニュースグリッド2列 */
    .tab-panel .news-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        grid-template-rows: repeat(5, 1fr) !important;
        gap: 10px !important;
    }
    
    .tab-panel .news-card {
        min-height: 150px !important;
        padding: 10px !important;
    }
    
    /* スマホ用タブ背景削除 */
    #recommended {
        background: none !important;
    }
    
    #event-info {
        background: none !important;
    }
    
    #storytime-info {
        background: none !important;
    }
    
    #news-info {
        background: none !important;
    }
    
    /* タブパネル内の背景も削除 */
    .tab-panel {
        background: none !important;
    }
    
    /* スマホ用メニューコンテナ2列 */
    .menu-container {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }
    
    .menu-item {
        flex: none !important;
        width: 100% !important;
        margin-bottom: 0 !important;
    }
    
    /* スマホ用サイドバーリンク幅調整 */
    ul#l_standard li a {
        width: 100% !important;
		font-size: 1.2em;
    }
    
    /* スマホ用body背景サイズ調整 */
    body {
        background-size: 140% !important;
    }
    
    /* スマホ用バナーパディング調整 */
    #banner {
        padding: 0 !important;
    }
    
    /* スマホ用サイドバー検索レイアウト修正 */
    #search {
        width: 94% !important;
        margin: 0 !important;
        padding: 10px !important;
		height: auto !important;
    }
    
    #search input[type="text"] {
        width: 94% !important;
        margin-bottom: 10px !important;
        padding: 8px !important;
        font-size: 14px !important;
    }
    
    #search input[type="submit"] {
        width: 100% !important;
        padding: 8px !important;
        font-size: 14px !important;
    }
    
    /* スマホ用サイドバーボタン幅調整 */
    .sidebar-search-button, .sidebar-link-button {
        width: 92% !important;
    }
    
    /* スマホ用サイドバー検索コンテナマージン調整 */
    .sidebar-search-container {
        margin-top: 100px !important;
    }
    
    /* スマホ用サイドバー検索ボタン横並び */
    .sidebar-search-buttons {
        flex-direction: row !important;
    }
    
    /* スマホ用サイドバーメニューコンテナ2列 */
    .sidebar-menu-container {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
        padding: 0 5px !important;
    }
    
    .sidebar-menu-item {
        flex: none !important;
        width: 100% !important;
        margin-bottom: 0 !important;
        box-sizing: border-box !important;
        position: relative !important;
        z-index: 1 !important;
    }
    
    .sidebar-menu-item a {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 15px !important;
        font-size: 0.8rem !important;
    }
    
    /* スマホ用サイドバーマイライブラリーコンテナ枠内レイアウト */
    .sidebar-mylibrary-container {
        width: 100% !important;
        margin: 0 !important;
        padding: 10px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    
    .sidebar-mylibrary-container .mylibrary-login-btn {
        flex-direction: row !important;
        text-align: left !important;
        padding: 10px !important;
        margin-bottom: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .sidebar-mylibrary-container .mylibrary-arrow {
        margin-right: 10px !important;
        margin-bottom: 0 !important;
        font-size: 2rem !important;
        flex-shrink: 0 !important;
    }
    
    .sidebar-mylibrary-container .mylibrary-text {
        width: auto !important;
        padding: 8px !important;
        font-size: 0.8rem !important;
        flex: 1 !important;
        overflow: hidden !important;
    }
    
    .sidebar-mylibrary-container .mylibrary-links {
        gap: 5px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .sidebar-mylibrary-container .mylibrary-link {
        min-width: auto !important;
        width: 100% !important;
        padding: 8px !important;
        font-size: 0.7rem !important;
        text-align: center !important;
        box-sizing: border-box !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

.white-bar-content {
	width: 960px;
	max-width: 100%;
	height: 2.5rem;
	margin: 0 auto;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0 1rem;
}

/* アクセシビリティコントロール */
#accessibility-controls {
	display: flex;
	align-items: center;
	gap: 20px;
}

#fontsize-control, #background-control {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 8px;
}

.control-label {
	font-size: 0.625rem;
	font-weight: bold;
	color: #333;
	margin-right: 0.25rem;
}

.font-btn, .bg-btn {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	border: 1px solid #ccc;
	background: #fff;
	color: #333;
	font-size: 0.625rem;
	font-weight: bold;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}

.font-btn:hover, .bg-btn:hover {
	border-color: #666;
	transform: scale(1.1);
}

.font-btn.active, .bg-btn.active {
	border-color: #0066cc;
	background: #0066cc;
	color: #fff;
}

/* 背景色ボタンの色設定 */
.bg-white {
	background: #fff !important;
	color: #000 !important;
}

.bg-blue {
	background: #0066cc !important;
	color: #fff !important;
}

.bg-yellow {
	background: #ffff00 !important;
	color: #000 !important;
}

.bg-black {
	background: #000 !important;
	color: #fff !important;
}
/*Header*/
#h_wrap {
	width:960px;
	max-width: 100%;
	margin:0 auto; 
	padding:0 10px;
	zoom:100%;
}
#h_wrap:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}

#header {
	width:960px; 
	max-width: 100%;
	height:3.125rem;
	zoom:100%;
	position:absolute;
	left:50%;
	top:3.25rem;
	margin-left:-480px;
	padding:0;
	z-index:1;
}

@media (max-width: 960px) {
	#header {
		position: relative;
		left: 0;
		margin-left: 0;
		top: 0;
		width: 100%;
	}
}
#header:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
/*Logo*/
h1#logo a {
	display:block;
	background:url(../images/common/logo.png?v=1) no-repeat;
	width:16.25rem; 
	height:3.75rem;
	text-indent:-99999px;
	overflow:hidden;
	margin:0; padding:0;
	float:left;
	background-size:100%;
}
/*Font Size*/
#fontsize {
	width:12.5rem; height:3.125rem;
	margin:0; padding:0;
	float:right;
}

/* Search Form Styles */
#search_top {
	background-color: #e8d5f2;
	padding: 1.25rem;
	margin: 0px 0 10px 0 !important;
	border-radius: 0.5rem;
}

#kantan_top {
	position: relative;
}

#kantan_top .search-container {
	display: flex;
	align-items: center;
	margin: 2.75rem 0 0.9375rem 100px;
}

#kantan_top .search-right {
	display: flex;
	align-items: center;
}

#kantan_top .search-right form {
	display: flex;
	align-items: center;
	gap: 8px;
}

#kantan_top .search-input {
	width: 15.625rem;
	height: 2rem;
	padding: 0.375rem 0.75rem;
	border: 1px solid #ccc;
	background-color: #ffd;
	font-size: 0.875rem;
	border-radius: 0.25rem;
	ime-mode: active;
}

#kantan_top .search-input:focus {
	outline: none;
	border-color: #0066cc;
	box-shadow: 0 0 5px rgba(0, 102, 204, 0.3);
}

#kantan_top .search-button {
	padding: 0.5rem 1rem;
	border: 1px solid #888;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	font-weight: normal;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: all 0.3s ease;
	white-space: nowrap;
}

#kantan_top .search-button-primary {
    background-color: #e3fcff;
    color: #000000;
    height: 2rem;
    line-height: 1;
	font-weight: bold;
}

#kantan_top .search-button-primary:hover {
	background-color: #d0f0f0;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 102, 204, 0.3);
}

#kantan_top .search-bottom {
	margin: 0.9375rem 0 0 0rem;
}

#kantan_top .search-button-secondary {
	background-color: #e3fcff;
	color: #000000;
	line-height: 1;
	border: 1px solid #888;
	text-decoration: none;
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: 0.25rem;
	font-size: 0.875rem;
	font-weight: bold;
	margin: 0 0 0 29px;
}

#kantan_top .search-button-secondary:hover {
	background-color: #d0f0f0;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(78, 205, 196, 0.3);
	text-decoration: none;
	color: #333;
}

/* My Library Styles */
#mylibrary_top {
	text-align: left;
}

/* トップページ用マイライブラリースタイル */
.mylibrary-main {
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.mylibrary-login-btn {
	display: flex;
	align-items: center;
	background-color: #20b2aa;
	color: white;
	padding: 0.6rem 1.25rem;
	border-radius: 0.5rem;
	text-decoration: none;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	flex-direction: row;
	width: 100%;
}

.mylibrary-login-btn:hover {
	background-color: #1a9b94;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	text-decoration: none;
	color: white;
}

.mylibrary-arrow {
	font-size: 3.125rem;
	margin-right: 0.9375rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: white;
	width: auto;
}

.mylibrary-text {
	font-size: 1rem;
	font-weight: bold;
	flex: 1;
	background-color: white;
	color: #333;
	text-align: center;
	padding: 0.5rem 0.75rem;
	border-radius: 0.25rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.mylibrary-links {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: flex-end;
}

.mylibrary-link {
	display: inline-block;
	background-color: #e3fcff;
	color: #000000;
	padding: 0.48rem 0.9375rem;
	border: 1px solid #888;
	border-radius: 0.25rem;
	text-decoration: none;
	text-align: center;
	transition: all 0.3s ease;
	font-size: 0.875rem;
	min-width: 18.75rem;
	font-weight: bold;
}

.mylibrary-link:hover {
	background-color: #d0f0f0;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	text-decoration: none;
	color: #333;
}

/* Sidebar Search Styles */
.sidebar-search-container {
	margin-bottom: 15px;
}

.sidebar-search-buttons {
	display: flex;
	gap: 8px;
}

.sidebar-search-input {
	width: 94%;
	height: 1.5625rem;
	padding: 0.25rem 0.5rem;
	border: 2px solid #bbb;
	background-color: #ffd;
	font-size: calc(0.75rem * var(--font-scale));
	border-radius: 0.25rem;
	ime-mode: active;
	margin-bottom: 0.5rem;
}

.sidebar-search-input:focus {
	outline: none;
	border-color: #0066cc;
	box-shadow: 0 0 3px rgba(0, 102, 204, 0.3);
}

.sidebar-search-button {
	width: 45%;
    background-color: #e3fcff;
    color: #333333;
    border: 1px solid;
    border-radius: 0.25rem;
    font-size: calc(0.75rem * var(--font-scale));
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
}

.sidebar-search-button:hover {
	background-color: #0052a3;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 102, 204, 0.3);
}

.sidebar-search-links {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.sidebar-link-button {
    display: block;
    padding: 0.375rem 0.75rem;
    background-color: #e3fcff;
    color: #333333;
    text-decoration: none;
    border-radius: 0.25rem;
    font-size: calc(0.75rem * var(--font-scale));
    font-weight: bold;
    text-align: center;
    transition: all 0.3s ease;
    border: 1px solid;
}

.sidebar-link-button:hover {
	background-color: #3bb5ac;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(78, 205, 196, 0.3);
}

/* Responsive Design for Search Forms */
@media (max-width: 768px) {
	.search-main-row {
		flex-direction: column;
		align-items: flex-start;
	}
	
	.search-left-section {
		margin-bottom: 15px;
		width: 100%;
	}
	
	.search-right-section {
		margin-left: 0;
		width: 100%;
	}
	
	.search-form-container {
		width: 100%;
	}
	
	.search-input {
		width: 100%;
		height: 35px;
		font-size: calc(16px * var(--font-scale));
	}
	
	.search-button {
		width: 100%;
		height: 35px;
		font-size: calc(16px * var(--font-scale));
	}
	
	.sidebar-search-input {
		height: 30px;
		font-size: calc(14px * var(--font-scale));
	}
	
	.sidebar-search-button {
        padding: 8px 12px;
		font-size: calc(14px * var(--font-scale));
	}
	
	.sidebar-link-button {
		padding: 8px 12px;
		font-size: calc(14px * var(--font-scale));
	}
}

@media (max-width: 480px) {
	.search-form-container {
		margin: 10px 0;
	}
	
	.search-input {
		height: 40px;
		font-size: calc(18px * var(--font-scale));
	}
	
	.search-button {
		height: 40px;
		font-size: calc(18px * var(--font-scale));
		width: 70px !important;
	}

	#kantan_top .search-bottom{
		margin: 0px;
	}
}
#fontsize ul {
	margin:0; padding:0;
}
#fontsize li {
	display:inline;
	list-style-type:none;
	text-decoration:none;
	float:left;
}
#standard a {
	display:block;
	background:url(../images/common/font_n.png?v=1) no-repeat;
	width:26px; height:26px;
	text-indent:-99999px;
	overflow:hidden;
	margin:15px 0 0 0; padding:0;
	background-size: 100%;
}
#large a {
	display:block;
	background:url(../images/common/font_l.png?v=1) no-repeat;
	width:170px; height:50px;
	text-indent:-99999px;
	overflow:hidden;
	margin:0 4px 0 0; padding:0;
	background-size: 100%;
}

#head_catch {
	display: block;
    background: url(../images/common/head_catch.png?v=1) no-repeat;
    width: 250px;
    height: 65px;
    overflow: hidden;
    text-indent: -9999999px;
    position: absolute;
    left: 50%;
    top: 50px;
    margin-left: -194px;
    padding: 0;
    z-index: 10;
    background-size: 100%;
}
#head_catch p {margin:0; padding:0;}

/*Color-Change*/
.color_change{
	margin:-2px auto 0 auto; padding:0;
}
.inverse-normal {
		background-color: none !important;
}
.inverse-black {
		background-color: #000 !important;
		color: #fff !important;
}
.inverse-yellow {
		background-color: #FFFF00 !important;
		color: #0000FF !important;
}
.inverse-blue {
		background-color: #00008B !important;
		color: #FFFF00 !important;
}

.inverse-black a:link { color: #FFFF00 !important; } 
.inverse-yellow a:link { color: #000 !important; } 
.inverse-blue a:link { color: #fff !important; } 
.inverse-black a:visited { color: #FFFF00 !important; }
.inverse-yellow a:visited { color: #000!important; }
.inverse-blue a:visited { color: #fff !important; } 
#inverse{
	display:block;
	width:210px; height:39px;
	margin:0 0px 0 0; padding:0px;
	float:right;
	z-index:2;
	position:relative;
	
}
.inverse-content{
	margin:14px 0 0 0px;
	
}
.inverse-default {
	background-color: #000 !important;
	color: #fff !important;
}
.accessible-button-name {
	display:block;
	cursor: pointer;
	background: url(../images/common/a-b.png?v=1) no-repeat;
	width:50px;
	height:30px;
	margin-right:6px;
	padding: 0;
	
	float:left;
	-moz-background-size:90% auto;
	background-size:90% auto;
}
.accessible-button-1 {
	display:block;
	cursor: pointer;
	background: url(/images/common/a-b-1.png?v=1) no-repeat;
	width:30px;
	height:30px;
	margin-right:6px;
	padding: 0;
	
	float:left;
	-moz-background-size:90% auto;
	background-size:90% auto;
}
.accessible-button-2 {
	display:block;
	cursor: pointer;
	background: url(/images/common/a-b-2.png?v=1) no-repeat;
	width:30px;
	height:30px;
	margin-right:6px;
	padding: 0;
	
	float:left;
	-moz-background-size:90% auto;
	background-size:90% auto;
}
.accessible-button-3 {
	display:block;
	cursor: pointer;
	background: url(/images/common/a-b-3.png?v=1) no-repeat;
	width:30px;
	height:30px;
	margin-right:6px;
	padding: 0;
	
	float:left;
	-moz-background-size:90% auto;
	background-size:90% auto;
}
.accessible-button-4 {
	display:block;
	cursor: pointer;
	background: url(/images/common/a-b-4.png?v=1) no-repeat;
	width:30px;
	height:30px;
	margin-right:6px;
	padding: 0;
	
	float:left;
	-moz-background-size:90% auto;
	background-size:90% auto;
}

.accessible-button-1:hover{
	opacity: 0.7 ;
	filter: alpha(opacity=70) ;	/* Ie用 */
	-webkit-transition: 0.3s ;
	transition: 0.3s ;
}
.accessible-button-2:hover{
	opacity: 0.7 ;
	filter: alpha(opacity=70) ;	/* Ie用 */
	-webkit-transition: 0.3s ;
	transition: 0.3s ;
}
.accessible-button-3:hover{
	opacity: 0.7 ;
	filter: alpha(opacity=70) ;	/* Ie用 */
	-webkit-transition: 0.3s ;
	transition: 0.3s ;
}
.accessible-button-4:hover{
	opacity: 0.7 ;
	filter: alpha(opacity=70) ;	/* Ie用 */
	-webkit-transition: 0.3s ;
	transition: 0.3s ;
}





/*Gloval_Nav*/
#global_nav {
	display:block;
	width:960px; 
	max-width: 100%;
	height:2.5rem;
	zoom:100%;
	position:absolute;
	top:7.875rem;
	left:50%;
	margin-left:-480px;
	padding:0;
	z-index:11;
	border-radius: 0.3125rem;
	background: #bfe1d4;
}

@media (max-width: 960px) {
	#global_nav {
		position: relative;
		left: 0;
		margin-left: 0;
		top: 0;
		width: 100%;
		margin-top: 10px;
	}
}
#global_nav:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
#global_nav ul {
	margin:0; padding:0;
}
#global_nav li {
	display:inline;
	list-style-type:none;
}
#global_nav li a {
	display: block;
    width: 8.5625rem;
    height: 2.5rem;
    text-decoration: none;
    text-align: center;
    line-height: 2.5rem;
    color: #282828;
    font-weight: bold;
    font-size: 0.875rem;
    float: left;
    border-right: 1px solid #3a6b49;
    transition: background-color 0.3s ease;
    box-sizing: border-box;
}

#global_nav li:last-child a {
	border-right:none;
}

#global_nav li a:hover {
	background:#5a8c69;
}

#global_nav li a:active {
	background:#3a6b49;
}
/* アクティブ状態のスタイル */
#nav_home_on a,
#nav_library-guide_on a,
#nav_lib-list_on a {
	background:#3a6b49 !important;
	color:#fff !important;
}

/* HOMEメニュー選択時の左角丸 */
#nav_home_on a {
	border-radius: 5px 0 0 5px;
}

/* サイトマップメニュー選択時の右角丸 */
#nav_sitemap_on a {
	border-radius: 0 5px 5px 0;
}


/*Contents Area*/
#wrapper {
	width:960px;
	max-width: 100%;
	zoom:100%;
	position:relative;
	margin:10px auto 50px auto;
	padding:0 10px;
	box-sizing: border-box;
}

@media (max-width: 960px) {
	#wrapper {
		position: relative;
		left: 0;
		margin-left: 0;
		width: 100%;
		padding: 0 10px;
	}
}
#wrapper:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
#contents {
	width:710px;
	max-width: 100%;
	margin:0; 
	padding:0;
	float:right;
	margin-left: 20px;
	box-sizing: border-box;
}
#side {
	width:210px;
	max-width: 100%;
	margin:0; 
	padding:0;
	float:left;
	box-sizing: border-box;
}

@media (max-width: 960px) {
	#contents {
		width: 100%;
		float: none;
		margin-left: 0;
		margin-bottom: 20px;
	}
	
	#side {
		width: 100%;
		float: none;
	}
}

/*BreadBrumb*/
#bread_crumb {
	width:960px;
	margin:0 0 20px 0; padding:0;
}

/*Link Banner*/
#banner {
	width:960px; height:47px;
	zoom:100%;
position:relative;
left:50%;
margin-top:10px;
margin-left:-480px;
margin-bottom:30px;
padding:0;
}
#banner:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
#banner ul {
	margin:0; padding:0;
}
#banner li {
	display:inline;
	list-style-type:none;
}
#banner li a {
	display:block;
	width:150px; height:47px;
	text-decoration:none;
	margin:0 10px 0 0; padding:0;
	float:left;
}
#b_end{margin:0; padding:0;}

/*Policys*/
#policys {
	width:960px;
	zoom:100%;
position:relative;
left:50%;
margin-top:0px;
margin-left:-480px;
margin-bottom:20px;
padding:0;
}
#policys:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
#policys ul {
	float:right;
	margin:0; padding:0;
}
#policys li {
	display:inline;
	list-style-type:none;
}
#policys li a {
	font-weight:bold;
	text-decoration:none;
	color:#333;
	margin:0 10px 0 0; padding:0;
	float:left;
}

/*Footer*/
#footer {
	width:960px;
	max-width: 100%;
	zoom:100%;
position:relative;
left:50%;
margin-top:0px;
margin-left:-480px;
margin-bottom:0px;
padding:0 0 20px 0;
}

@media (max-width: 960px) {
	#footer {
		position: relative;
		left: 0;
		margin-left: 0;
		width: 100%;
		padding: 0 10px 20px 10px;
	}
}
footer:after {
	content:"";
	clear:both;
	height:0;
	display:block;
	visibility:hidden;
}
#foot_logo a {
	display:block;
	background:url(../images/common/foot_logo.png?v=1) no-repeat;
	width:310px;
	text-indent:-99999px;
	overflow:hidden;
	margin:0; padding:0;
	float:left;
    background-size: 100%;
	height: 50px;
}
#copyright {
	margin:15px 0 0 0; padding:0;
	float:right;
}

/* Sub_Menu スタイル */
.Sub_Menu {
	margin: 10px 0;
	padding: 0;
}

.menu-container {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	justify-content: space-between;
	margin: 0 auto;
	width: 100%;
}

.menu-item {
	flex: 1;
	min-width: 0;
}

.menu-item a {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #333;
	padding: 0.75rem 0.5rem;
	border: 2px solid #ff8738;
	border-radius: 0.5rem;
	background-color: #ffe3e3;
	transition: all 0.3s ease;
	text-align: center;
	height: 2.5rem;
}

.menu-item a:hover {
	background-color: #e8f4f8;
	border-color: #0066cc;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.menu-item img {
	width: 1.875rem;
	height: 1.875rem;
	margin-right: 0.5rem;
	object-fit: contain;
	flex-shrink: 0;
}

.menu-item i {
	font-size: calc(1.25rem * var(--font-scale));
	margin-right: 0.5rem;
	color: #333333;
	flex-shrink: 0;
}

.menu-item span {
	font-size: calc(14px * var(--font-scale));
	font-weight: bold;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: left;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.menu-container {
		flex-wrap: wrap;
		gap: 8px;
	}
	
	.menu-item {
		flex: 1 1 calc(50% - 4px);
	}
	
	.menu-item a {
		padding: 10px 6px;
		height: 50px;
	}
	
	.menu-item img {
		width: 25px;
		height: 25px;
		margin-right: 6px;
	}
	
	.menu-item i {
		font-size: calc(16px * var(--font-scale));
		margin-right: 6px;
	}
	
	.menu-item span {
		font-size: calc(12px * var(--font-scale));
	}
}

@media (max-width: 480px) {
	.menu-item {
		flex: 1 1 100%;
	}
	
	.menu-item a {
		padding: 8px 6px;
		min-height: 30px !important;
	}
	
	.menu-item img {
		width: 20px;
		height: 20px;
		margin-right: 5px;
	}
	
	.menu-item i {
		font-size: calc(14px * var(--font-scale));
		margin-right: 5px;
	}
	
	.menu-item span {
		font-size: calc(11px * var(--font-scale));
	}
	#contents {
		width: 100% !important;
	}
}

/* タブコンテナ */
.tab-container {
	margin: 20px 0;
}

.tab-navigation {
	display: flex;
	margin-bottom: 20px;
	border-bottom: 10px solid #008852;
}

.tab-button {
    background-color: #ffffff;
    color: #333;
	border: none;
	padding: 12px 20px;
	cursor: pointer;
	font-size: calc(14px * var(--font-scale));
	font-weight: bold;
	border-radius: 8px 8px 0 0;
	margin-right: 5px;
	transition: all 0.3s ease;
	border: solid 2px #008852;
    border-bottom: none;
}

.tab-button:hover {
	background-color: 	#00a563;
}

.tab-button.active {
    background-color: #008852;
	color: white;
}

.tab-content {
	position: relative;
}

.tab-panel {
	display: none;
}

.tab-panel.active {
	display: block;
}

/* 図書館からのお知らせ 3x3グリッドレイアウト */
.news-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(3, 1fr);
	gap: 15px;
	margin: 20px 0;
}

.news-card {
	background-color: #fffacd;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 15px;
	display: flex;
	flex-direction: column;
	min-height: 200px;
	position: relative;
}

.news-card.empty-card {
	display: none;
}

.news-card.emergency-card {
	background-color: #ffebee;
	border: 2px solid #f44336;
	box-shadow: 0 2px 8px rgba(244, 67, 54, 0.3);
	animation: emergency-pulse 2s infinite;
}

.news-card.emergency-card .tag-emergency {
	background-color: #f44336;
	color: white;
	font-weight: bold;
	padding: 4px 8px;
	border-radius: 4px;
}

.news-card.emergency-card .news-title a {
	color: #d32f2f;
	font-weight: bold;
}

.news-card.emergency-card .news-content {
	color: #424242;
}

@keyframes emergency-pulse {
	0% { box-shadow: 0 2px 8px rgba(244, 67, 54, 0.3); }
	50% { box-shadow: 0 4px 16px rgba(244, 67, 54, 0.5); }
	100% { box-shadow: 0 2px 8px rgba(244, 67, 54, 0.3); }
}

.empty-text {
	color: #ff0000;
	font-size: calc(12px * var(--font-scale));
	text-align: center;
	line-height: 1.4;
}

.news-tags {
	margin-bottom: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.tag-announcement {
	background-color: #c01b1b;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: calc(10px * var(--font-scale));
	font-weight: bold;
}

.tag-library {
	background-color: #4ecdc4;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: calc(10px * var(--font-scale));
	font-weight: bold;
}

/* 館ごとの色分け */
.library-tag.tag-library-all {
	background-color: #77bb33 !important; /* ティール */
}

.library-tag.tag-library-kindaichi {
	background-color: #dd8a0f !important; /* オレンジ */
}

.library-tag.tag-library-nagasaka {
	background-color: #dd8a0f !important; /* グリーン */
}

.library-tag.tag-library-hakushu {
	background-color: #dd8a0f !important; /* パープル */
}

.library-tag.tag-library-takane {
	background-color: #fd7dd8a0f9a8 !important; /* ピンク */
}

.library-tag.tag-library-sutama {
	background-color: #dd8a0f !important; /* イエロー */
}

.library-tag.tag-library-mukawa {
	background-color: #dd8a0f !important; /* ブルー */
}

.library-tag.tag-library-akeno {
	background-color: #dd8a0f !important; /* ライトパープル */
}

.library-tag.tag-library-kobuchisawa {
	background-color: #dd8a0f !important; /* ピンク */
}

/* トップページ用の館ごとの色分け */
.tag-library.tag-library-all {
	background-color: #77bb33 !important; /* ティール */
}

.tag-library.tag-library-kindaichi {
	background-color: #dd8a0f !important; /* オレンジ */
}

.tag-library.tag-library-nagasaka {
	background-color: #dd8a0f !important; /* グリーン */
}

.tag-library.tag-library-hakushu {
	background-color: #dd8a0f !important; /* パープル */
}

.tag-library.tag-library-takane {
	background-color: #dd8a0f !important; /* ピンク */
}

.tag-library.tag-library-sutama {
	background-color: #dd8a0f !important; /* イエロー */
}

.tag-library.tag-library-mukawa {
	background-color: #dd8a0f !important; /* ブルー */
}

.tag-library.tag-library-akeno {
	background-color: #dd8a0f !important; /* ライトパープル */
}

.tag-library.tag-library-kobuchisawa {
	background-color: #dd8a0f !important; /* ピンク */
}

.tag-event {
	background-color: #01cbe1;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: calc(10px * var(--font-scale));
	font-weight: bold;
}

.tag-storytime {
	background-color: #01cbe1;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: calc(10px * var(--font-scale));
	font-weight: bold;
}

.tag-recommended {
	background-color: #ff9f43;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: calc(10px * var(--font-scale));
	font-weight: bold;
}

.news-title {
	margin-bottom: 10px;
	flex-grow: 1;
}

.news-title a {
	color: #333;
	text-decoration: none;
	font-weight: bold;
	font-size: calc(14px * var(--font-scale));
	line-height: 1.4;
}

.news-title a:hover {
	color: #0066cc;
	text-decoration: underline;
}

.new-icon {
	margin-left: 5px;
	vertical-align: middle;
}

.news-content {
	font-size: calc(12px * var(--font-scale));
	line-height: 1.4;
	color: #666;
	margin-bottom: 10px;
	flex-grow: 1;
}

.news-date {
	font-size: calc(11px * var(--font-scale));
	color: #888;
	text-align: right;
	margin-top: auto;
}

.news-footer {
	text-align: right;
	margin-top: 20px;
}

.tab-footer {
	text-align: right;
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid #ddd;
	display: flex;
	justify-content: flex-end;
}

.view-all-link {
	color: #0066cc;
	text-decoration: none;
	font-weight: bold;
}

.view-all-link:hover {
	text-decoration: underline;
}

/* おすすめ情報一覧ページ */
.tbl_recommended {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	background-color: white;
}

.tbl_recommended thead {
	background-color: #008852;
	color: white;
}

.tbl_recommended th {
	padding: 12px 8px;
	text-align: left;
	font-weight: bold;
	border: 1px solid #ddd;
}

.tbl_recommended td {
	padding: 12px 8px;
	border: 1px solid #ddd;
	vertical-align: top;
}

.tbl_recommended tr:nth-child(even) {
	background-color: #f9f9f9;
}


.date-cell {
	width: 15%;
	font-size: calc(12px * var(--font-scale));
	color: #666;
}

.type-cell {
	width: 12%;
	text-align: center;
}

.library-cell {
	width: 12%;
	text-align: center;
}

.title-cell {
	width: 61%;
}

.type-tag {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: calc(11px * var(--font-scale));
	font-weight: bold;
	color: white;
	min-width: 60px;
	max-width: 80px;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.library-tag {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: calc(11px * var(--font-scale));
	font-weight: bold;
	color: white;
	background-color: #4ecdc4;
	min-width: 50px;
	max-width: 70px;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* 一覧ページのタグ表示用スタイル */
.type-cell {
	vertical-align: top;
	line-height: 1.2;
}

.type-cell .type-tag {
	margin-bottom: 2px;
	display: block;
}

.type-cell .type-tag:last-child {
	margin-bottom: 0;
}

.title-cell a {
	color: #333;
	text-decoration: none;
	font-weight: bold;
}

.title-cell a:hover {
	color: #0066cc;
	text-decoration: underline;
}

.new-icon {
	margin-left: 5px;
	vertical-align: middle;
}

/* イベント情報一覧ページ */
.tbl_event {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	background-color: white;
}

.tbl_event thead {
	background-color: #008852;
	color: white;
}

.tbl_event th {
	padding: 12px 8px;
	text-align: left;
	font-weight: bold;
	border: 1px solid #ddd;
}

.tbl_event td {
	padding: 12px 8px;
	border: 1px solid #ddd;
	vertical-align: top;
}

.tbl_event tr:nth-child(even) {
	background-color: #f9f9f9;
}


/* おはなし会情報一覧ページ */
.tbl_storytime {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	background-color: white;
}

.tbl_storytime thead {
	background-color: #008852;
	color: white;
}

.tbl_storytime th {
	padding: 12px 8px;
	text-align: left;
	font-weight: bold;
	border: 1px solid #ddd;
}

.tbl_storytime td {
	padding: 12px 8px;
	border: 1px solid #ddd;
	vertical-align: top;
}

.tbl_storytime tr:nth-child(even) {
	background-color: #f9f9f9;
}


/* お知らせ情報一覧ページ */
.tbl_news {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	background-color: white;
}

.tbl_news thead {
	background-color: #008852;
	color: white;
}

.tbl_news th {
	padding: 12px 8px;
	text-align: left;
	font-weight: bold;
	border: 1px solid #ddd;
}

.tbl_news td {
	padding: 12px 8px;
	border: 1px solid #ddd;
	vertical-align: top;
}

.tbl_news tr:nth-child(even) {
	background-color: #f9f9f9;
}


/* ページタイトル */
.page-title {
	font-size: calc(28px * var(--font-scale));
	font-weight: bold;
	color: #333;
	margin: 20px 0 10px 0;
	padding: 0;
	border-bottom: 3px solid #008852;
	padding-bottom: 10px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.tab-navigation {
		flex-wrap: wrap;
	}
	
	.tab-button {
		flex: 1;
		min-width: calc(25% - 3.75px);
		margin-bottom: 5px;
		font-size: calc(12px * var(--font-scale));
		padding: 10px 15px;
	}
	
	.page-title {
		font-size: calc(24px * var(--font-scale));
		margin: 15px 0 8px 0;
	}
	
	.news-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(5, 1fr);
		gap: 10px;
	}
	
	.news-card {
		min-height: 180px;
		padding: 12px;
	}
}

@media (max-width: 480px) {
	.tab-button {
		min-width: 20%;
		margin-bottom: 0px;
		font-size: calc(11px * var(--font-scale));
		padding: 8px 12px;
	}
	
	.news-grid {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(9, 1fr);
		gap: 8px;
	}
	
	.news-card {
		min-height: 150px;
		padding: 10px;
	}
	
	.news-title a {
		font-size: calc(13px * var(--font-scale));
	}
	
	.news-content {
		font-size: calc(11px * var(--font-scale));
	}
}

/* 個別記事ページ */
.news-detail {
	margin: 20px 0;
	padding: 20px;
	background-color: #fff;
	border: 1px solid #ddd;
	border-radius: 5px;
}

.news-meta {
	margin-bottom: 20px;
	padding-bottom: 15px;
	border-bottom: 1px solid #eee;
}

.news-meta .news-date {
	font-weight: bold;
	color: #666;
	margin-right: 20px;
}

.news-meta .news-source {
	color: #008852;
	font-weight: bold;
}

.news-content {
	line-height: 1.8;
	font-size: calc(14px * var(--font-scale));
}

.news-content h1,
.news-content h2,
.news-content h3,
.news-content h4,
.news-content h5,
.news-content h6 {
	margin: 20px 0 10px 0;
	color: #333;
}

.news-content p {
	margin: 15px 0;
}

.news-content ul,
.news-content ol {
	margin: 15px 0;
	padding-left: 30px;
}

.news-content li {
	margin: 5px 0;
}

/* 行事案内ページのh2タグを非表示 */
#title_event-info {
	display: none;
}

/* 記事ページのh2タグを非表示 */
.news-detail h2,
.news-content h2 {
	display: none;
}

/* イベント記事ページのh2タグを非表示 */
#contents h2 {
	display: none;
}

/* サイドバー用スタイル */
.sidebar-menu-section {
	margin: 20px 0;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

.sidebar-section-title {
	font-size: calc(16px * var(--font-scale));
	font-weight: bold;
	color: #333;
	margin: 0 0 10px 0;
	padding: 8px 12px;
	background-color: #f0f0f0;
	border-left: 4px solid #0066cc;
	border-radius: 4px;
}

.sidebar-menu-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 6px;
}

.sidebar-menu-item {
	width: 100%;
	margin-bottom: 4px;
}

.sidebar-menu-item a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #333;
	padding: 6px 4px;
	border: 2px solid #ff8738;
	border-radius: 8px;
	background-color: #ffe3e3;
	transition: all 0.3s ease;
	text-align: center;
	min-height: 50px;
	height: auto;
	font-size: calc(12px * var(--font-scale));
	box-sizing: border-box;
}

.sidebar-menu-item a:hover {
	background-color: #e8f4f8;
	border-color: #0066cc;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.sidebar-menu-item i {
	font-size: calc(16px * var(--font-scale));
	margin-bottom: 4px;
	color: #333333;
	flex-shrink: 0;
}

.sidebar-menu-item span {
	font-size: calc(11px * var(--font-scale));
	font-weight: bold;
	line-height: 1.3;
	white-space: normal;
	word-wrap: break-word;
	text-align: center;
	display: block;
	max-width: 100%;
}

/* サイドバー用マイライブラリースタイルは css/side.css に移動済み */

/* サイドバーボタンスタイル */
.sidebar-button {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 12px 15px;
	margin-bottom: 8px;
	background: linear-gradient(to bottom, #f8f8f8, #ffffff);
	border: 1px solid #ddd;
	border-radius: 4px;
	text-decoration: none;
	color: #333;
	font-size: calc(13px * var(--font-scale));
	font-weight: bold;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	flex-direction: row;
}

.sidebar-button:hover {
	background: linear-gradient(to bottom, #e8f4f8, #f0f8ff);
	border-color: #0066cc;
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
	color: #0066cc;
}

.sidebar-button i {
	margin-right: 15px;
	font-size: calc(14px * var(--font-scale));
	color: #d32f2f;
	flex-shrink: 0;
	margin-left: 10px;
}

.sidebar-button.social-button i {
	color: #0066cc;
}

/* Facebookボタンの専用スタイル */
.sidebar-button.facebook-button {
	background: linear-gradient(to bottom, #3b5998, #2d4373);
	border-color: #2d4373;
	color: white;
}

.sidebar-button.facebook-button:hover {
	background: linear-gradient(to bottom, #4c70ba, #3b5998);
	border-color: #4c70ba;
	color: white;
}

.sidebar-button.facebook-button i {
	color: white;
}

/* Xボタンの専用スタイル */
.sidebar-button.x-button {
	background: linear-gradient(to bottom, #000000, #333333);
	border-color: #333333;
	color: white;
}

.sidebar-button.x-button:hover {
	background: linear-gradient(to bottom, #1a1a1a, #000000);
	border-color: #1a1a1a;
	color: white;
}

.sidebar-button.x-button i {
	color: white;
}

/* Instagramボタンの専用スタイル */
.sidebar-button.instagram-button {
	background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
	border-color: #bc1888;
	color: white;
}

.sidebar-button.instagram-button:hover {
	background: linear-gradient(45deg, #ffa94d 0%, #f0785c 25%, #e63946 50%, #d63384 75%, #c2185b 100%);
	border-color: #c2185b;
	color: white;
}

.sidebar-button.instagram-button i {
	color: white;
}

/* アイコンが読み込まれない場合のフォールバック */
.sidebar-button:not(.has-icon):before {
	content: "▶";
	margin-right: 15px;
	font-size: calc(12px * var(--font-scale));
	color: #d32f2f;
	flex-shrink: 0;
}

.sidebar-button.social-button:not(.has-icon):before {
	content: "🔗";
	color: #0066cc;
}

/* Font Awesomeが読み込まれている場合は疑似要素を非表示 */
.sidebar-button i {
	display: inline-block;
}

.sidebar-button span {
	flex: 1;
	line-height: 1.3;
}

.sidebar-button:last-child {
	margin-bottom: 0;
}

/* サイドバーリストのマージン調整 */
#l_standard {
	margin: 15px 0;
}

#l_standard li {
	margin: 0;
	padding: 0;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
	.white-bar-content {
		width: 100%;
		padding: 0px;
	}
	
	#accessibility-controls {
		flex-wrap: wrap;
		gap: 10px;
	}
	
	#bread_crumb {
		width: 100%;
		left: 0;
		margin-left: 0;
		position: relative;
		padding: 0 10px;
	}
	
	#banner {
		width: 100%;
		left: 0;
		margin-left: 0;
		position: relative;
		padding: 0 10px;
	}
	
	#policys {
		width: 100%;
		left: 0;
		margin-left: 0;
		position: relative;
		padding: 0 10px;
	}
}

@media (max-width: 768px) {
	#h_wrap {
		padding: 0 5px;
	}
	
	#wrapper {
		padding: 0 5px;
	}
	
	.sidebar-button {
		padding: 10px 12px;
		font-size: calc(12px * var(--font-scale));
		margin-bottom: 6px;
	}
	
	.sidebar-button i {
		font-size: calc(12px * var(--font-scale));
		margin-right: 12px;
	}
	
	#l_standard {
		margin: 12px 0;
	}
	
	#global_nav ul {
		display: flex;
		flex-wrap: wrap;
	}
	
	#global_nav li {
		flex: 1;
		min-width: calc(50% - 1px);
	}
	
	#global_nav li a {
		width: 100%;
		font-size: 12px;
		padding: 8px 4px;
		line-height: 1.2;
	}
	
	.menu-container {
		flex-direction: column;
	}
	
	.menu-item {
		flex: none;
		width: 100%;
		margin-bottom: 10px;
	}
	
	.menu-item a {
		justify-content: flex-start;
		padding: 15px;
		height: auto;
	}
	
	.search-container {
		flex-direction: column;
		align-items: stretch;
		margin: 20px 0;
	}
	
	.search-right {
		width: 100%;
	}
	
	.search-input {
		width: 100%;
		margin-bottom: 10px;
	}
	
	.search-button {
		width: 100%;
	}
	
	.mylibrary-main {
		flex-direction: column;
	}
	
	.mylibrary-login-btn {
		flex-direction: column;
		text-align: center;
	}
	
	.mylibrary-arrow {
		margin-right: 0;
		margin-bottom: 10px;
		font-size: 40px;
	}
	
	.mylibrary-text {
		width: 100%;
	}
	
	.mylibrary-links {
		align-items: center;
	}
	
	.mylibrary-link {
		min-width: auto;
		width: 100%;
	}
}

@media (max-width: 480px) {
	#h_wrap {
		padding: 0 5px;
	}
	
	#wrapper {
		padding: 0 5px;
		width: 99% !important;
	}
	
	#global_nav li {
		min-width: 100%;
	}
	
	#global_nav li a {
		font-size: 11px;
		padding: 6px 2px;
	}
	
	.control-label {
		font-size: 9px;
	}
	
	.font-btn, .bg-btn {
		width: 20px;
		height: 20px;
		font-size: 9px;
	}
	
	#accessibility-controls {
		gap: 5px;
	}
	
	#fontsize-control, #background-control {
		gap: 4px;
	}
	
	#footer {
		width: 100%;
		left: 0;
		margin-left: 0;
		position: relative;
		padding: 0 5px 20px 5px;
	}
	
	#foot_logo a {
		width: 100%;
		max-width: 310px;
		background-size: contain;
		background-repeat: no-repeat;
	}
	
	#copyright {
		float: none;
		text-align: center;
		margin-top: 10px;
	}
	
	/* 図書館一覧ページのレスポンシブ対応 */
	#lib_map {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 auto !important;
		text-align: center !important;
		height: 320px !important;
	}
	
	#lib_map img {
		width: 100% !important;
		height: auto !important;
		max-width: 640px !important;
	}
	
	#lib_list {
		width: 100% !important;
		margin: 20px 0 !important;
		padding: 0 10px !important;
	}
	
	#lib_list dl {
		width: 100% !important;
		margin: 0 0 20px 0 !important;
		padding: 15px !important;
		box-sizing: border-box !important;
		border: 1px solid #ddd !important;
		border-radius: 8px !important;
		background: #f9f9f9 !important;
	}
	
	#lib_list .lib_left,
	#lib_list .lib_right {
		width: 95% !important;
		float: none !important;
		margin: 0 0 15px 0 !important;
	}
	
	#lib_list dt {
		font-size: 1.1rem !important;
		font-weight: bold !important;
		margin-bottom: 10px !important;
		padding: 10px !important;
		color: white !important;
		border-radius: 5px !important;
		width: 50%;
	}
	
	#lib_list dt a {
		color: white !important;
		text-decoration: none !important;
		height: 10px !important;
	}
	
	#lib_list dd {
		font-size: 0.9rem !important;
		line-height: 1.6 !important;
		margin: 0 !important;
		padding: 10px !important;
	}
	
	.c-both {
		display: none !important;
	}
	
	/* サイドバーのspot_notifyを非表示 */
	#spot_notify {
		display: none !important;
	}
}

/* t_event-baseのCSS再現 */
.t_event-base {
	background: #ffffff;
	border: 1px solid #cccccc;
	border-left: 4px solid #008852;
	border-radius: 4px;
	padding: 15px 20px;
	margin: 10px 0;
	position: relative;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	color: #333;
	font-weight: normal;
	text-align: left;
	display: flex;
	align-items: center;
	font-size: 1rem;
	line-height: 1.4;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 50px;
}

.t_event-base:before {
	content: "\f073";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 1.2rem;
	color: #008852;
	margin-right: 12px;
	flex-shrink: 0;
}

/* ホバー効果 */
.t_event-base:hover {
	background: linear-gradient(135deg, #e8f5e8 0%, #d4f0d4 100%);
	transform: translateY(-2px);
	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
	transition: all 0.3s ease;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
	.t_event-base {
		font-size: 1rem;
		padding: 12px 15px;
		margin: 8px 0;
		width: 100%;
	}
}

@media screen and (max-width: 480px) {
	.t_event-base {
		font-size: 0.9rem;
		padding: 10px 12px;
		margin: 6px 0;
		width: 100%;
	}
}

/* サイトマップ用スタイル */
.sitemap {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
}

.sitemap-content {
	max-width: 100%;
}

.sitemap-section {
	margin-bottom: 30px;
	padding: 20px;
	background: #f9f9f9;
	border-radius: 8px;
	border-left: 4px solid #008852;
}

.section-title {
	font-size: 1.4rem;
	font-weight: bold;
	color: #008852;
	margin-bottom: 15px;
	padding-bottom: 8px;
	border-bottom: 2px solid #008852;
}

.sitemap-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sitemap-list li {
	margin-bottom: 8px;
	padding: 5px 0;
}

.sitemap-list li a {
	color: #333;
	text-decoration: none;
	padding: 8px 12px;
	display: block;
	border-radius: 4px;
	transition: all 0.3s ease;
	background: #fff;
	border: 1px solid #ddd;
}

.sitemap-list li a:hover {
	background: #008852;
	color: #fff;
	transform: translateX(5px);
	box-shadow: 0 2px 5px rgba(0, 136, 82, 0.3);
}

.library-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	margin-top: 20px;
}

.library-item {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	border: 1px solid #ddd;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease;
}

.library-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.library-name {
	font-size: 1.2rem;
	font-weight: bold;
	color: #008852;
	margin-bottom: 15px;
	padding-bottom: 8px;
	border-bottom: 2px solid #008852;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
	.sitemap {
		padding: 15px;
	}
	
	.sitemap-section {
		padding: 15px;
		margin-bottom: 20px;
	}
	
	.section-title {
		font-size: 1.2rem;
	}
	
	.library-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}
	
	.library-item {
		padding: 15px;
	}
}

@media screen and (max-width: 480px) {
	.sitemap {
		padding: 10px;
	}
	
	.sitemap-section {
		padding: 10px;
		margin-bottom: 15px;
	}
	
	.section-title {
		font-size: 1.1rem;
	}
	
	.sitemap-list li a {
		padding: 6px 10px;
		font-size: 0.9rem;
	}
}

/* 緊急メッセージ表示用スタイル */
#emergency_alert {
	background: #ffff00;
	margin: 20px 0;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3);
	animation: pulse 2s infinite;
	border: 10px solid #FF0000;
}

@keyframes pulse {
	0% { box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3); }
	50% { box-shadow: 0 4px 20px rgba(255, 107, 107, 0.5); }
	100% { box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3); }
}

.alert-container {
	padding: 20px;
	color: rgb(0, 0, 0);
}

.alert-header {
	display: flex;
	align-items: center;
	margin-bottom: 15px;
	font-weight: bold;
	font-size: 1.2rem;
}

.alert-header i {
	margin-right: 10px;
	font-size: 1.5rem;
	animation: blink 1.5s infinite;
}

@keyframes blink {
	0%, 50% { opacity: 1; }
	51%, 100% { opacity: 0.3; }
}

.alert-title {
	font-size: 1.3rem;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.alert-content {
	background: rgba(255, 255, 255, 0.1);
	padding: 15px;
	border-radius: 6px;
	backdrop-filter: blur(10px);
}

.alert-post-title {
	margin: 0 0 10px 0;
	font-size: 1.1rem;
	line-height: 1.4;
}

.alert-post-title a {
	color: rgb(0, 0, 0);
	text-decoration: none;
	transition: color 0.3s ease;
}

.alert-post-title i {
	animation: blink 1.5s infinite;
	margin-right: 8px;
	color: #FF0000;
}

.alert-post-title a:hover {
	color: #ffeb3b;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.alert-post-excerpt {
	margin-bottom: 15px;
	line-height: 1.6;
	opacity: 0.95;
}

.alert-post-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.9rem;
	opacity: 0.9;
}

.alert-date {
	font-weight: 500;
}

.alert-read-more {
	color: #ffeb3b;
	text-decoration: none;
	padding: 5px 12px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 4px;
	transition: all 0.3s ease;
	font-weight: 500;
}

.alert-read-more:hover {
	background: rgba(255, 255, 255, 0.3);
	color: white;
	transform: translateY(-1px);
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
	#emergency_alert {
		margin: 15px 0;
		border-radius: 6px;
	}
	
	.alert-container {
		padding: 15px;
	}
	
	.alert-header {
		font-size: 1.1rem;
		margin-bottom: 12px;
	}
	
	.alert-title {
		font-size: 1.2rem;
	}
	
	.alert-content {
		padding: 12px;
	}
	
	.alert-post-title {
		font-size: 1rem;
	}
	
	.alert-post-meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
}

@media screen and (max-width: 480px) {
	.alert-container {
		padding: 12px;
	}
	
	.alert-header {
		font-size: 1rem;
	}
	
	.alert-title {
		font-size: 1.1rem;
	}
	
	.alert-content {
		padding: 10px;
	}
	
	.alert-post-title {
		font-size: 0.95rem;
	}
	
	.alert-post-excerpt {
		font-size: 0.9rem;
	}
}
