/*
Theme Name: NT Via Theme - Accessible
Description: 視覚に障害を持った方とその家族向けのアクセシブルなWordPressテーマです。高コントラスト、大きなフォント、シンプルなHTMLを提供します。
Author: KITT
Version: 1.1.0
Text Domain: ntvia-theme
*/

/* Reset & Base Styles - Accessibility First */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    font-size: 20px;
    line-height: 1.8;
    color: #ffffff;
    background-color: #000000;
    font-weight: normal;
}

/* Lists - リストスタイル */
ul, ol {
    margin-bottom: 20px;
    padding-left: 30px;
}

ul {
    list-style-type: disc;
}

ol {
    list-style-type: decimal;
}

li {
    margin-bottom: 10px;
    line-height: 1.6;
}

/* ネストしたリスト */
ul ul, ol ol, ul ol, ol ul {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 30px;
}

ul ul {
    list-style-type: circle;
}

ul ul ul {
    list-style-type: square;
}

ol ol {
    list-style-type: lower-alpha;
}

ol ol ol {
    list-style-type: lower-roman;
}

/* Container */
.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 30px;
}

/* Base link styles - 基本リンクスタイル */
a {
    color: #87CEEB;
    text-decoration: underline;
    font-style: italic;
}

a:hover,
a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

/* Header */
.site-header {
    background-color: #000000;
    border-bottom: 3px solid #ffffff;
    padding: 20px 0;
}

.site-header .container {
    display: block;
    text-align: center;
}

.site-title {
    font-size: 2.5rem;
    font-weight: bold;
    color: #ffffff;
    text-decoration: none;
    font-style: normal;
    display: block;
    /* margin-bottom: 20px; */
}

.site-title:hover,
.site-title:focus {
    color: #87CEEB;
    text-decoration: underline;
    outline: 2px solid #87CEEB;
}

.site-description {
    font-size: 1.2rem;
    color: #ffffff;
    margin-bottom: 20px;
}

/* Navigation */
.main-navigation {
    margin: 20px 0;
}

.main-navigation ul {
    list-style: none;
    display: block;
    /* text-align: center; */
}

.main-navigation li {
    display: block;
    margin: 10px 0;
}

.main-navigation a {
    display: block;
    text-decoration: none;
    color: #000000;
    font-size: 1.3rem;
    font-weight: bold;
    font-style: normal;
    padding: 15px 20px;
    border: 2px solid #000000;
    background-color: #87CEEB;
    transition: all 0.3s ease;
}

.main-navigation a:hover,
.main-navigation a:focus {
    color: #ffffff;
    background-color: #000000;
    border-color: #000000;
    outline: 2px solid #87CEEB;
}

/* Main Content */
.site-main {
    padding: 20px 0;
}

.content-area {
    display: block;
    max-width: 800px;
    margin: 0 auto;
}

/* Posts */
.post {
    background: #000000;
    padding: 40px;
    margin-bottom: 40px;
}

.entry-title {
    font-size: 2.2rem;
    margin-bottom: 20px;
    color: #ffffff;
    font-weight: bold;
    line-height: 1.4;
}

.entry-title a {
    color: #ffffff;
    text-decoration: none;
    font-style: normal;
}

.entry-title a:hover,
.entry-title a:focus {
    color: #87CEEB;
    text-decoration: underline;
    outline: 2px solid #87CEEB;
}

.entry-meta {
    color: #ffffff;
    font-size: 1.1rem;
    margin-bottom: 20px;
    font-weight: bold;
}

.entry-content {
    line-height: 1.8;
    font-size: 1.1rem;
	border: none !important;
}

.entry-content p {
    margin-bottom: 20px;
}

.entry-content ul,
.entry-content ol {
    margin-bottom: 20px;
    padding-left: 30px;
    list-style-position: outside;
}

.entry-content ul {
    list-style-type: disc;
}

.entry-content ol {
    list-style-type: decimal;
}

.entry-content li {
    margin-bottom: 10px;
    line-height: 1.6;
    margin-left: 0;
}

/* ネストしたリスト - エントリーコンテンツ */
.entry-content ul ul,
.entry-content ol ol,
.entry-content ul ol,
.entry-content ol ul {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 30px;
}

.entry-content ul ul {
    list-style-type: circle;
}

.entry-content ul ul ul {
    list-style-type: square;
}

.entry-content ol ol {
    list-style-type: lower-alpha;
}

.entry-content ol ol ol {
    list-style-type: lower-roman;
}

.entry-content a {
    color: #87CEEB;
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}

.entry-content a:hover,
.entry-content a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

/* Sidebar - Simplified for accessibility */
.sidebar {
    background: #000000;
    padding: 30px;
    margin-top: 40px;
}

.widget {
    margin-bottom: 40px;
}

.widget:last-child {
    margin-bottom: 0;
}

.widget-title {
    font-size: 1.5rem;
    margin-bottom: 20px;
    color: #ffffff;
    font-weight: bold;
    border-bottom: 2px solid #cccccc;
    padding-bottom: 10px;
}

.widget ul {
    list-style: none;
}

.widget li {
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid #ffffff;
}

.widget a {
    color: #87CEEB;
    text-decoration: underline;
    font-size: 1.1rem;
    font-weight: bold;
    font-style: italic;
}

.widget a:hover,
.widget a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

/* Footer */
.site-footer {
    background-color: #000000;
    color: #ffffff;
    text-align: center;
    padding: 40px 0;
    /* margin-top: 60px; */
    font-size: 1.1rem;
}

.site-footer a {
    color: #87CEEB;
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}

.site-footer a:hover,
.site-footer a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

/* Back to Home Button */
.back-to-top-section {
	text-align: center;
    /* margin-bottom: 30px; */
    padding: 12px 0;
}

.back-to-home-btn {
    display: inline-block;
    padding: 15px 30px;
    background-color: #333333;
    color: #ffffff;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: bold;
    border: 2px solid #ffffff;
    border-radius: 5px;
    transition: all 0.3s ease;
    cursor: pointer;
    font-family: inherit;
}

.back-to-home-btn:hover,
.back-to-home-btn:focus {
    background-color: #87CEEB;
    color: #000000;
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

/* Fallback for no JavaScript */
noscript .back-to-home-btn {
    display: inline-block;
}

/* Responsive Design - Simplified */
@media (max-width: 768px) {
    body {
        font-size: 18px;
    }
    
    .container {
        padding: 0 20px;
    }
    
    .site-title {
        font-size: 2rem;
    }
    
    .entry-title {
        font-size: 1.8rem;
    }
    
    .post {
        padding: 30px;
    }
    
    .main-navigation a {
        font-size: 1.2rem;
        padding: 12px 15px;
    }

	#primary-menu {
		padding-left: 0 !important;
	}	
    
    wp-block-search__inside-wrapper button {
        display: inline-block;
		padding: 15px 30px;
		background-color: #333333;
		color: #ffffff;
		text-decoration: none;
		font-size: 1.2rem;
		font-weight: bold;
		border: 2px solid #ffffff;
		border-radius: 5px;
		transition: all 0.3s ease;
		cursor: pointer;
		font-family: inherit;
    }
    
    .search-form .search-field {
        max-width: 300px;
    }
}

/* Utility Classes - Accessibility Focused */
.text-center {
    text-align: center;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 999999;
    padding: 8px 16px;
    background: #87CEEB;
    color: #000000;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.2rem;
}

.skip-link:focus {
    left: 6px;
    top: 7px;
    outline: 2px solid #ffffff;
}

.btn {
    text-decoration: none;
    color: #000000;
    font-size: 1.3rem;
    font-weight: bold;
    font-style: normal;
    padding: 15px 20px;
    border: 2px solid #000000;
    background-color: #87CEEB;
    transition: all 0.3s ease;
}

.btn:hover,
.btn:focus {
    color: #ffffff;
    background-color: #000000 !important;
    border-color: #000000;
    outline: 2px solid #87CEEB;
}

/* Search Form - High Contrast */
.search-form {
    display: block;
    margin: 20px 0;
    text-align: center;
}

.search-form .search-field {
    width: 100%;
    max-width: 400px;
    padding: 15px;
    border: 2px solid #ffffff;
    background-color: #000000;
    color: #ffffff;
    font-size: 1.2rem;
    margin-bottom: 15px;
    border-radius: 5px;
}

.search-form .search-field:focus {
    outline: 3px solid #87CEEB;
    background-color: #333333;
}

.search-form .search-submit {
    display: inline-block;
    padding: 15px 30px;
    background-color: #333333;
    color: #ffffff;
    border: 2px solid #ffffff;
    border-radius: 5px;
    font-size: 1.2rem;
    font-weight: bold;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.3s ease;
    width: auto;
    min-width: 200px;
}

.search-form .search-submit:hover,
.search-form .search-submit:focus {
    background-color: #87CEEB;
    color: #000000;
    border-color: #87CEEB;
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

/* Front Page Content - 固定ページコンテンツ */
.page-content {
    margin-bottom: 60px;
}

.page-content .entry-content {
    background: #000000;
    /* border: 2px solid #ffffff; */
    padding: 40px;
    line-height: 1.8;
    font-size: 1.1rem;
    color: #ffffff;
}

.page-content .entry-content p {
    margin-bottom: 20px;
}

.page-content .entry-content h1,
.page-content .entry-content h2,
.page-content .entry-content h3,
.page-content .entry-content h4,
.page-content .entry-content h5,
.page-content .entry-content h6 {
    color: #ffffff;
    font-weight: bold;
    margin-bottom: 20px;
    margin-top: 30px;
}

.page-content .entry-content h1 {
    font-size: 2.2rem;
    border-bottom: 3px solid #ffffff;
    padding-bottom: 10px;
}

.page-content .entry-content h2 {
    font-size: 1.8rem;
    border-bottom: 2px solid #ffffff;
    padding-bottom: 8px;
}

.page-content .entry-content h3 {
    font-size: 1.5rem;
}

.page-content .entry-content h4 {
    font-size: 1.3rem;
}

.page-content .entry-content a {
    color: #87CEEB;
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}

.page-content .entry-content a:hover,
.page-content .entry-content a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

.page-content .entry-content ul,
.page-content .entry-content ol {
    margin-bottom: 20px;
    padding-left: 30px;
    list-style-position: outside;
}

.page-content .entry-content ul {
    list-style-type: disc;
}

.page-content .entry-content ol {
    list-style-type: decimal;
}

.page-content .entry-content li {
    margin-bottom: 10px;
    line-height: 1.6;
    margin-left: 0;
}

/* ネストしたリスト - 固定ページコンテンツ */
.page-content .entry-content ul ul,
.page-content .entry-content ol ol,
.page-content .entry-content ul ol,
.page-content .entry-content ol ul {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 30px;
}

.page-content .entry-content ul ul {
    list-style-type: circle;
}

.page-content .entry-content ul ul ul {
    list-style-type: square;
}

.page-content .entry-content ol ol {
    list-style-type: lower-alpha;
}

.page-content .entry-content ol ol ol {
    list-style-type: lower-roman;
}

/* Front Page Images - トップページ画像 */
.frontpage-image-container {
    margin: 40px 0;
    text-align: center;
}

.frontpage-main-image,
.frontpage-sub-image {
    max-width: 100%;
    height: auto;
    border-radius: 5px;
}

.frontpage-main-image-container {
    margin: 40px 0;
}

.frontpage-sub-image-container {
    margin: 30px 0;
}

.frontpage-main-image {
    /* max-height: 400px; */
    object-fit: cover;
}

.frontpage-sub-image {
    max-height: 250px;
    object-fit: cover;
}

/* Front Page Image Text - 画像下テキスト */
.frontpage-image-text {
    background: #000000;
    /* border: 2px solid #ffffff; */
    padding: 30px;
    margin-top: 20px;
    line-height: 1.8;
    font-size: 1.1rem;
    color: #ffffff;
    border-radius: 5px;
    text-align: left;
}

.frontpage-main-image-text {
    margin-top: 20px;
}

.frontpage-sub-image-text {
    margin-top: 15px;
}

.frontpage-image-text p {
    margin-bottom: 20px;
}

.frontpage-image-text p:last-child {
    margin-bottom: 0;
}

.frontpage-image-text h1,
.frontpage-image-text h2,
.frontpage-image-text h3,
.frontpage-image-text h4,
.frontpage-image-text h5,
.frontpage-image-text h6 {
    color: #ffffff;
    font-weight: bold;
    margin-bottom: 15px;
    margin-top: 25px;
}

.frontpage-image-text h1:first-child,
.frontpage-image-text h2:first-child,
.frontpage-image-text h3:first-child,
.frontpage-image-text h4:first-child,
.frontpage-image-text h5:first-child,
.frontpage-image-text h6:first-child {
    margin-top: 0;
}

.frontpage-image-text h1 {
    font-size: 2rem;
    border-bottom: 2px solid #ffffff;
    padding-bottom: 8px;
}

.frontpage-image-text h2 {
    font-size: 1.6rem;
    border-bottom: 1px solid #ffffff;
    padding-bottom: 5px;
}

.frontpage-image-text h3 {
    font-size: 1.4rem;
}

.frontpage-image-text h4 {
    font-size: 1.2rem;
}

.frontpage-image-text a {
    color: #87CEEB;
    text-decoration: underline;
    font-weight: bold;
    font-style: italic;
}

.frontpage-image-text a:hover,
.frontpage-image-text a:focus {
    color: #000000;
    background-color: #87CEEB;
    outline: 2px solid #ffffff;
}

.frontpage-image-text ul,
.frontpage-image-text ol {
    margin-bottom: 20px;
    padding-left: 30px;
    list-style-position: outside;
}

.frontpage-image-text ul {
    list-style-type: disc;
}

.frontpage-image-text ol {
    list-style-type: decimal;
}

.frontpage-image-text li {
    margin-bottom: 10px;
    line-height: 1.6;
    margin-left: 0;
}

/* ネストしたリスト - 画像テキスト */
.frontpage-image-text ul ul,
.frontpage-image-text ol ol,
.frontpage-image-text ul ol,
.frontpage-image-text ol ul {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 30px;
}

.frontpage-image-text ul ul {
    list-style-type: circle;
}

.frontpage-image-text ul ul ul {
    list-style-type: square;
}

.frontpage-image-text ol ol {
    list-style-type: lower-alpha;
}

.frontpage-image-text ol ol ol {
    list-style-type: lower-roman;
}

/* News Section - お知らせ一覧 */
.news-section {
    margin-bottom: 40px;
}

.news-title {
    font-size: 2.5rem;
    color: #ffffff;
    text-align: center;
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 3px solid #ffffff;
    font-weight: bold;
}

.news-list {
    margin-bottom: 40px;
}

.news-item {
    background: #000000;
    border: 2px solid #ffffff;
    padding: 30px;
    margin-bottom: 30px;
}

.news-header {
    margin-bottom: 20px;
}

.news-item-title {
    font-size: 1.8rem;
    margin-bottom: 15px;
    color: #ffffff;
    font-weight: bold;
    line-height: 1.4;
}

.news-item-title a {
    color: #ffffff;
    text-decoration: none;
    font-style: normal;
}

.news-item-title a:hover,
.news-item-title a:focus {
    color: #87CEEB;
    text-decoration: underline;
    outline: 2px solid #87CEEB;
}

.news-meta {
    color: #ffffff;
    font-size: 1rem;
    margin-bottom: 15px;
    font-weight: bold;
}

.news-content {
    line-height: 1.8;
    font-size: 1.1rem;
    color: #ffffff;
}

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

.read-more-btn {
    display: inline-block;
    padding: 10px 20px;
    background-color: #333333;
    color: #ffffff;
    text-decoration: none;
    font-weight: bold;
    font-style: normal;
    font-size: 1rem;
    border: 2px solid #ffffff;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.read-more-btn:hover,
.read-more-btn:focus {
    background-color: #87CEEB;
    color: #000000;
    border-color: #87CEEB;
    outline: 2px solid #ffffff;
}

/* News Pagination */
.news-pagination {
    text-align: center;
    margin: 40px 0;
}

.news-pagination .page-numbers {
    display: inline-block;
    padding: 10px 15px;
    margin: 0 5px;
    background-color: #333333;
    color: #ffffff;
    text-decoration: none;
    font-weight: bold;
    font-style: normal;
    border: 2px solid #ffffff;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.news-pagination .page-numbers:hover,
.news-pagination .page-numbers:focus {
    background-color: #87CEEB;
    color: #000000;
    border-color: #87CEEB;
    outline: 2px solid #ffffff;
}

.news-pagination .page-numbers.current {
    background-color: #87CEEB;
    color: #000000;
    border-color: #87CEEB;
}

.news-pagination .page-numbers.prev,
.news-pagination .page-numbers.next {
    font-size: 1.1rem;
    padding: 12px 20px;
}

.no-news {
    background: #000000;
    border: 2px solid #ffffff;
    padding: 40px;
    text-align: center;
    color: #ffffff;
    font-size: 1.2rem;
}

/* Responsive adjustments for news */
@media (max-width: 768px) {
    .page-content .entry-content {
        padding: 20px;
    }
    
    .page-content .entry-content h1 {
        font-size: 1.8rem;
    }
    
    .page-content .entry-content h2 {
        font-size: 1.5rem;
    }
    
    .frontpage-image-container {
        margin: 20px 0;
    }
    
    .frontpage-main-image {
        max-height: 250px;
    }
    
    .frontpage-sub-image {
        max-height: 150px;
    }
    
    .frontpage-image-text {
        padding: 20px;
        margin-top: 15px;
        font-size: 1rem;
    }
    
    .frontpage-image-text h1 {
        font-size: 1.6rem;
    }
    
    .frontpage-image-text h2 {
        font-size: 1.4rem;
    }
    
    .frontpage-image-text h3 {
        font-size: 1.2rem;
    }
    
    /* モバイルでのリスト調整 */
    ul, ol,
    .entry-content ul, .entry-content ol,
    .page-content .entry-content ul, .page-content .entry-content ol,
    .frontpage-image-text ul, .frontpage-image-text ol {
        padding-left: 20px;
    }
    
    ul ul, ol ol, ul ol, ol ul,
    .entry-content ul ul, .entry-content ol ol, .entry-content ul ol, .entry-content ol ul,
    .page-content .entry-content ul ul, .page-content .entry-content ol ol, 
    .page-content .entry-content ul ol, .page-content .entry-content ol ul,
    .frontpage-image-text ul ul, .frontpage-image-text ol ol,
    .frontpage-image-text ul ol, .frontpage-image-text ol ul {
        padding-left: 20px;
    }
    
    .news-title {
        font-size: 2rem;
    }
    
    .news-item-title {
        font-size: 1.5rem;
    }
    
    .news-item {
        padding: 20px;
    }
    
    .news-pagination .page-numbers {
        padding: 8px 12px;
        font-size: 0.9rem;
    }
}

/* Remove decorative elements for simplicity */
.post {
    border-radius: 0;
    box-shadow: none;
}

.sidebar {
    border-radius: 0;
    box-shadow: none;
}

/* High contrast focus indicators */
*:focus {
    outline: 3px solid #87CEEB;
    outline-offset: 2px;
}

/* Ensure sufficient contrast for all text */
h1, h2, h3, h4, h5, h6 {
    color: #ffffff;
    font-weight: bold;
}

/* Pagination - Accessible */
.pagination {
    text-align: center;
    margin: 40px 0;
}

.pagination a,
.pagination span {
    display: inline-block;
    padding: 15px 20px;
    margin: 5px;
    background-color: #000000;
    color: #ffffff;
    border: 2px solid #ffffff;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: bold;
    font-style: normal;
}

.pagination a:hover,
.pagination a:focus {
    background-color: #87CEEB;
    color: #000000;
    border-color: #87CEEB;
    outline: 2px solid #ffffff;
}

.pagination .current {
    background-color: #ffffff;
    color: #000000;
}

/* File Block Font Size Adjustment */

.wp-block-file {
	margin: 12px;
	text-align: center;
	font-size: 1.2em !important;
}

.wp-block-file__button {
	padding: 0px 20px !important;
}

/* ===================================
   情報ほっとライン スタイル
   =================================== */

/* 情報ほっとライン アーカイブページ */
.hotline-archive-section {
    margin-bottom: 60px;
}

.hotline-list {
    margin-bottom: 40px;
}

.hotline-item {
    background: #000000;
    padding: 40px;
    margin-bottom: 40px;
    border-top: 3px solid #87CEEB;
}

.hotline-item-title {
    font-size: 2rem;
    margin-bottom: 20px;
    color: #ffffff;
    font-weight: bold;
    line-height: 1.4;
}

.hotline-meta {
    color: #ffffff;
    font-size: 1.1rem;
    margin-bottom: 25px;
    font-weight: bold;
}

.hotline-meta p {
    margin-bottom: 10px;
}

.hotline-text-content {
    margin-bottom: 30px;
    line-height: 1.8;
    font-size: 1.1rem;
    color: #ffffff;
}

.hotline-text-content p {
    margin-bottom: 20px;
}

/* ファイルセクション */
.hotline-files {
    background: #333333;
    padding: 30px;
    margin-top: 20px;
    border-radius: 5px;
}

.hotline-audio,
.hotline-pdf {
    margin-bottom: 30px;
}

.hotline-audio:last-child,
.hotline-pdf:last-child {
    margin-bottom: 0;
}

.hotline-files h3 {
    font-size: 1.4rem;
    color: #87CEEB;
    margin-bottom: 15px;
    font-weight: bold;
}

/* 音声プレーヤー */
.hotline-audio audio {
    width: 100%;
    height: 60px;
    margin-bottom: 15px;
    background-color: #ffffff;
    border: 2px solid #87CEEB;
    border-radius: 5px;
    outline: none;
}

.hotline-audio audio:focus {
    outline: 3px solid #87CEEB;
    outline-offset: 2px;
}

/* WebKit系ブラウザ（Chrome, Safari, Edge）の音声プレーヤースタイル */
.hotline-audio audio::-webkit-media-controls-panel {
    background-color: #ffffff;
    border-radius: 3px;
}

.hotline-audio audio::-webkit-media-controls-play-button,
.hotline-audio audio::-webkit-media-controls-pause-button {
    background-color: #87CEEB;
    border-radius: 50%;
    width: 32px;
    height: 32px;
}

.hotline-audio audio::-webkit-media-controls-play-button:hover,
.hotline-audio audio::-webkit-media-controls-pause-button:hover {
    background-color: #ffffff;
    border: 2px solid #87CEEB;
}

.hotline-audio audio::-webkit-media-controls-timeline {
    background-color: #cccccc;
    border-radius: 3px;
    margin: 0 10px;
}

.hotline-audio audio::-webkit-media-controls-current-time-display,
.hotline-audio audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
    font-size: 14px;
    font-weight: bold;
    text-shadow: none;
    font-family: Arial, sans-serif;
}

.hotline-audio audio::-webkit-media-controls-volume-slider {
    background-color: #333333;
    border-radius: 3px;
}

.hotline-audio audio::-webkit-media-controls-mute-button {
    background-color: #87CEEB;
    border-radius: 3px;
}

.hotline-audio audio::-webkit-media-controls-mute-button:hover {
    background-color: #ffffff;
    border: 2px solid #87CEEB;
}

/* Firefox用の音声プレーヤースタイル（ブラウザ判定なし） */
.hotline-audio audio {
    /* Firefox用プロパティも含む汎用スタイル */
    -moz-appearance: none;
    appearance: none;
}

/* Firefoxでのフォールバック（特定のセレクタなし） */
.hotline-audio audio:not(:focus) {
    background: #ffffff;
    color: #000000;
    border: 2px solid #87CEEB;
}

/* カスタム音声プレーヤー情報表示 */
.hotline-audio .hotline-audio-player {
    background-color: #ffffff;
    color: #000000;
    padding: 10px;
    border: 2px solid #87CEEB;
    border-radius: 5px;
    margin-bottom: 10px;
    font-size: 1.1rem;
    font-weight: bold;
}

.hotline-audio .duration {
    color: #333333;
    font-size: 0.9rem;
}

/* ダウンロードリンク */
.download-link,
.pdf-link,
.txt-view-link {
    display: inline-block;
    padding: 12px 25px;
    background-color: #87CEEB;
    color: #000000;
    text-decoration: none;
    font-weight: bold;
    font-style: normal;
    font-size: 1.1rem;
    border-radius: 3px;
    transition: all 0.3s ease;
    margin-right: 10px;
    margin-bottom: 10px;
}

.download-link:hover,
.download-link:focus,
.pdf-link:hover,
.pdf-link:focus,
.txt-view-link:hover,
.txt-view-link:focus {
    background-color: #ffffff;
    color: #000000;
    outline: 2px solid #87CEEB;
    text-decoration: none;
}

/* テキストファイル表示 */
.hotline-txt {
    background-color: #f9f9f9;
    border: 3px solid #87CEEB;
    border-radius: 8px;
    padding: 20px;
    margin: 20px 0;
}

.hotline-txt h3 {
    color: #000;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 15px;
    text-align: left;
}

.hotline-txt .txt-info {
    background-color: #e6f7ff;
    border: 2px solid #87CEEB;
    padding: 15px;
    margin-bottom: 15px;
    border-radius: 5px;
}

.hotline-txt .txt-info p {
    margin: 8px 0;
    font-size: 18px;
    color: #000;
    line-height: 1.4;
}

.hotline-txt .txt-info strong {
    color: #000;
    font-weight: bold;
}

.hotline-txt .txt-actions {
    text-align: left;
    margin-top: 15px;
}

/* TXTビューリンク特別スタイル */
.txt-view-link {
    background-color: #4682b4;
    color: #ffffff;
}

.txt-view-link:hover,
.txt-view-link:focus {
    background-color: #000;
    color: #ffffff;
    outline: 2px solid #87CEEB;
}

/* 資料準備中メッセージ */
.hotline-no-files {
    background-color: #fff8e1;
    border: 3px solid #ffb347;
    border-radius: 8px;
    padding: 25px;
    margin: 20px 0;
    text-align: left;
}

.hotline-no-files h3 {
    color: #000;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 15px;
}

.hotline-no-files .no-files-message {
    background-color: #fff3cd;
    border: 2px solid #ffb347;
    padding: 20px;
    border-radius: 5px;
}

.hotline-no-files .no-files-message p {
    margin: 12px 0;
    font-size: 18px;
    color: #000;
    line-height: 1.5;
}

.hotline-no-files .no-files-message p:first-child {
    font-size: 20px;
}

.hotline-no-files .no-files-message strong {
    color: #000;
    font-weight: bold;
}

/* 情報ほっとライン ページネーション */
.hotline-pagination {
    text-align: center;
    margin: 40px 0;
}

.hotline-pagination .page-numbers {
    display: inline-block;
    padding: 10px 15px;
    margin: 0 5px;
    background-color: #333333;
    color: #ffffff;
    text-decoration: none;
    font-weight: bold;
    font-style: normal;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.hotline-pagination .page-numbers:hover,
.hotline-pagination .page-numbers:focus {
    background-color: #87CEEB;
    color: #000000;
    outline: 2px solid #ffffff;
}

.hotline-pagination .page-numbers.current {
    background-color: #87CEEB;
    color: #000000;
}

.hotline-pagination .page-numbers.prev,
.hotline-pagination .page-numbers.next {
    font-size: 1.1rem;
    padding: 12px 20px;
}

/* 情報ほっとラインなしの状態 */
.no-hotline {
    background: #000000;
    padding: 40px;
    text-align: center;
    color: #ffffff;
    font-size: 1.2rem;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .hotline-item {
        padding: 20px;
    }
    
    .hotline-item-title {
        font-size: 1.6rem;
    }
    
    .hotline-files {
        padding: 20px;
    }
    
    .download-link,
    .pdf-link {
        display: block;
        text-align: center;
        margin-right: 0;
        margin-bottom: 15px;
    }
}

@media (max-width: 480px) {
    .hotline-item-title {
        font-size: 1.4rem;
    }
    
    .hotline-audio audio {
        height: 40px;
    }
}

.back2top {
	margin-top: 20px;
}