/**
 * 税務調査ナビ カスタムスタイル
 * モダン・シンプル・ブルー基調のUIデザイン
 */

/* ==========================================================================
   CSS Variables - カラーパレット
   ========================================================================== */
:root {
    /* Primary Colors */
    --color-primary: #2563EB;
    --color-primary-dark: #1E40AF;
    --color-primary-light: #DBEAFE;
    
    /* Secondary Colors */
    --color-secondary: #64748B;
    
    /* Background Colors */
    --color-background: #F8FAFC;
    --color-surface: #FFFFFF;
    
    /* Text Colors */
    --color-text-primary: #1E293B;
    --color-text-secondary: #64748B;
    
    /* Status Colors */
    --color-success: #10B981;
    --color-warning: #F59E0B;
    --color-error: #EF4444;
    
    /* Shadows */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 1px 3px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 10px 15px rgba(0, 0, 0, 0.1);
    
    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    
    /* Transitions */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.2s ease;
    --transition-slow: 0.3s ease;
}

/* ==========================================================================
   Base Styles - 基本スタイル
   ========================================================================== */
body {
    background-color: var(--color-background);
    color: var(--color-text-primary);
    font-feature-settings: "palt";
}

/* ==========================================================================
   Header - ヘッダー
   ========================================================================== */
.l-header {
    background-color: var(--color-surface) !important;
    box-shadow: var(--shadow-md) !important;
}

.l-header__inner {
    max-width: 1200px;
}

/* ナビゲーションリンク */
.c-gnav > li > a {
    color: var(--color-text-primary) !important;
    font-weight: 500;
    transition: color var(--transition-normal);
}

.c-gnav > li > a:hover {
    color: var(--color-primary) !important;
}

/* 固定ヘッダー */
.l-fixHeader {
    background-color: var(--color-surface) !important;
    box-shadow: var(--shadow-lg) !important;
}

/* ==========================================================================
   Footer - フッター
   ========================================================================== */
.l-footer {
    background-color: var(--color-text-primary) !important;
    color: var(--color-surface) !important;
}

.l-footer a {
    color: rgba(255, 255, 255, 0.8) !important;
    transition: color var(--transition-normal);
}

.l-footer a:hover {
    color: var(--color-surface) !important;
}

.l-footer__nav {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

.copyright {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* ==========================================================================
   Buttons - ボタン
   ========================================================================== */

/* プライマリボタン */
.swell-block-button a,
.wp-block-button__link,
a.c-postThumb__cat,
.p-postList__item a.c-postThumb__cat {
    background-color: var(--color-primary) !important;
    color: var(--color-surface) !important;
    border-radius: var(--radius-md) !important;
    transition: all var(--transition-normal);
    border: none !important;
}

.swell-block-button a:hover,
.wp-block-button__link:hover {
    background-color: var(--color-primary-dark) !important;
    transform: translateY(-1px);
    box-shadow: var(--shadow-lg);
}

/* セカンダリボタン（アウトライン） */
.is-style-outline .wp-block-button__link,
.swell-block-button.-outline a {
    background-color: transparent !important;
    color: var(--color-primary) !important;
    border: 2px solid var(--color-primary) !important;
}

.is-style-outline .wp-block-button__link:hover,
.swell-block-button.-outline a:hover {
    background-color: var(--color-primary) !important;
    color: var(--color-surface) !important;
}

/* ==========================================================================
   Cards - カード
   ========================================================================== */
.p-postList__item,
.c-postThumb,
.-type-card .p-postList__item {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--transition-normal);
}

.p-postList__item:hover,
.-type-card .p-postList__item:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

/* カード内のサムネイル */
.p-postList__thumb {
    border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
    overflow: hidden;
}

/* カード内のテキストエリア */
.p-postList__body {
    padding: 1.25rem !important;
}

.p-postList__title {
    color: var(--color-text-primary);
    font-weight: 600;
    line-height: 1.5;
}

.p-postList__excerpt {
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    line-height: 1.6;
}

/* ==========================================================================
   Links - リンク
   ========================================================================== */
a {
    color: var(--color-primary);
    transition: color var(--transition-normal);
}

a:hover {
    color: var(--color-primary-dark);
}

/* コンテンツ内リンク */
.post_content a:not(.wp-block-button__link):not([class*="c-"]):not([class*="p-"]) {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.post_content a:not(.wp-block-button__link):not([class*="c-"]):not([class*="p-"]):hover {
    color: var(--color-primary-dark);
}

/* ==========================================================================
   Typography - タイポグラフィ
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
    color: var(--color-text-primary);
    font-weight: 700;
}

/* 見出しにブルーのアクセントライン */
.post_content h2 {
    border-left: 4px solid var(--color-primary) !important;
    border-bottom: none !important;
    padding-left: 1rem !important;
    background: transparent !important;
    color: var(--color-primary) !important;
}

.post_content h3 {
    padding-bottom: 0.5rem !important;
}

/* ==========================================================================
   Pagination - ページネーション
   ========================================================================== */
.c-pagination {
    gap: 0.5rem;
}

.c-pagination a,
.c-pagination span {
    border-radius: var(--radius-md) !important;
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-normal);
}

.c-pagination a {
    background-color: var(--color-surface);
    color: var(--color-text-primary);
    border: 1px solid var(--color-secondary);
}

.c-pagination a:hover {
    background-color: var(--color-primary);
    color: var(--color-surface);
    border-color: var(--color-primary);
}

.c-pagination .current {
    background-color: var(--color-primary) !important;
    color: var(--color-surface) !important;
    border-color: var(--color-primary) !important;
}

/* ==========================================================================
   Breadcrumb - パンくずリスト
   ========================================================================== */
.c-breadcrumb {
    background-color: transparent;
    padding: 1rem 0;
}

.c-breadcrumb a {
    color: var(--color-primary);
}

.c-breadcrumb__item::after {
    color: var(--color-secondary);
}

/* ==========================================================================
   Sidebar - サイドバー
   ========================================================================== */
.l-sidebar {
    background-color: transparent;
}

.widget {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.widget_title {
    color: var(--color-text-primary);
    font-weight: 700;
    border-bottom: 2px solid var(--color-primary);
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

/* ==========================================================================
   Tags - タグ
   ========================================================================== */
.c-postMetas__tag a,
.tagcloud a,
.c-tagList a {
    background-color: var(--color-primary-light) !important;
    color: var(--color-primary) !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.25rem 0.75rem !important;
    font-size: 0.75rem !important;
    font-weight: 500;
    transition: all var(--transition-normal);
    border: none !important;
}

.c-postMetas__tag a:hover,
.tagcloud a:hover,
.c-tagList a:hover {
    background-color: var(--color-primary) !important;
    color: var(--color-surface) !important;
}

/* ==========================================================================
   Forms - フォーム
   ========================================================================== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="password"],
textarea,
select {
    border: 1px solid #E2E8F0 !important;
    border-radius: var(--radius-md) !important;
    padding: 0.75rem 1rem !important;
    transition: all var(--transition-normal);
    background-color: var(--color-surface);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px var(--color-primary-light) !important;
    outline: none !important;
}

/* 検索フォーム */
.c-searchForm {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.c-searchForm__input {
    border: none !important;
}

.c-searchForm__btn {
    background-color: var(--color-primary) !important;
    color: var(--color-surface) !important;
}

/* ==========================================================================
   Zeirishi (税理士) - カスタム投稿タイプ専用スタイル
   ========================================================================== */

/* 税理士詳細ページ */
.single-zeirishi .l-mainContent {
    background-color: var(--color-background);
}

.single-zeirishi .l-article {
    background-color: var(--color-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: 2rem;
    margin-top: 1rem;
}

/* 事務所の特徴セクション */
.single-zeirishi ._feature {
    background-color: var(--color-primary-light);
    border-radius: var(--radius-lg);
    padding: 1rem;
    margin: 1rem 0;
}

.single-zeirishi ._feature .box {
    background-color: var(--color-surface);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}

/* 税理士一覧ページ */
.post-type-archive-zeirishi .p-postList {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

.post-type-archive-zeirishi .p-postList__item {
    margin: 0 !important;
}

/* 税理士カード */
.post-type-archive-zeirishi .p-postList__body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* タクソノミータグ（都道府県、業種、サービス） */
.zeirishi-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.zeirishi-tag {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 500;
}

.zeirishi-tag--location {
    background-color: #DCFCE7;
    color: #166534;
}

.zeirishi-tag--service {
    background-color: #FEF3C7;
    color: #92400E;
}

.zeirishi-tag--industry {
    background-color: #E0E7FF;
    color: #3730A3;
}

/* ==========================================================================
   Hero Section - ヒーローセクション（トップページ用）
   ========================================================================== */
.hero-section {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-surface);
    padding: 4rem 2rem;
    text-align: center;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}

.hero-section h1 {
    color: var(--color-surface);
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.hero-section p {
    font-size: 1.125rem;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto 2rem;
}

/* ヒーロー内検索フォーム */
.hero-search {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    max-width: 800px;
    margin: 0 auto;
    box-shadow: var(--shadow-xl);
}

.hero-search select,
.hero-search input {
    border: 1px solid #E2E8F0 !important;
}

/* ==========================================================================
   Filter UI - フィルターUI
   ========================================================================== */
.filter-section {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: var(--shadow-sm);
}

.filter-section__title {
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-primary-light);
}

.filter-group {
    margin-bottom: 1rem;
}

.filter-group__label {
    display: block;
    font-weight: 500;
    color: var(--color-text-secondary);
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
}

.filter-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.filter-checkbox label {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.5rem 1rem;
    background-color: var(--color-background);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-normal);
    font-size: 0.875rem;
}

.filter-checkbox label:hover {
    background-color: var(--color-primary-light);
}

.filter-checkbox input:checked + span {
    color: var(--color-primary);
    font-weight: 600;
}

/* ==========================================================================
   CTA Section - CTAセクション
   ========================================================================== */
.cta-section {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-surface);
    padding: 3rem 2rem;
    text-align: center;
    border-radius: var(--radius-xl);
    margin: 2rem 0;
}

.cta-section h2 {
    color: var(--color-surface);
    margin-bottom: 1rem;
}

.cta-section p {
    opacity: 0.9;
    margin-bottom: 1.5rem;
}

.cta-button {
    display: inline-block;
    background-color: var(--color-surface);
    color: var(--color-primary) !important;
    padding: 1rem 2rem;
    border-radius: var(--radius-md);
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
}

.cta-button:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    color: var(--color-primary-dark) !important;
}

/* ==========================================================================
   Feature Section - 特徴セクション
   ========================================================================== */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin: 2rem 0;
}

.feature-card {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: 2rem;
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-normal);
}

.feature-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.feature-card__icon {
    width: 64px;
    height: 64px;
    background-color: var(--color-primary-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--color-primary);
    font-size: 1.5rem;
}

.feature-card__title {
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}

.feature-card__description {
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    line-height: 1.6;
}

/* ==========================================================================
   Responsive - レスポンシブ対応
   ========================================================================== */
@media (max-width: 768px) {
    .hero-section {
        padding: 3rem 1rem;
    }
    
    .hero-section h1 {
        font-size: 1.75rem;
    }
    
    .hero-search {
        padding: 1rem;
    }
    
    .post-type-archive-zeirishi .p-postList {
        grid-template-columns: 1fr;
    }
    
    .single-zeirishi .l-article {
        padding: 1rem;
        border-radius: var(--radius-lg);
    }
    
    .feature-grid {
        grid-template-columns: 1fr;
    }
    
    .filter-section {
        padding: 1rem;
    }
}

/* ==========================================================================
   Utility Classes - ユーティリティクラス
   ========================================================================== */
.text-primary { color: var(--color-primary) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.bg-primary { background-color: var(--color-primary) !important; }
.bg-primary-light { background-color: var(--color-primary-light) !important; }
.bg-surface { background-color: var(--color-surface) !important; }
.bg-background { background-color: var(--color-background) !important; }

.rounded-sm { border-radius: var(--radius-sm) !important; }
.rounded-md { border-radius: var(--radius-md) !important; }
.rounded-lg { border-radius: var(--radius-lg) !important; }
.rounded-xl { border-radius: var(--radius-xl) !important; }

.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-md { box-shadow: var(--shadow-md) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }
.shadow-xl { box-shadow: var(--shadow-xl) !important; }

/* ==========================================================================
   Archive Page - 一覧ページ専用スタイル
   ========================================================================== */
.archive-header {
    text-align: center;
    padding: 2rem 0 1.5rem;
}

.archive-header__title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}

.archive-header__description {
    color: var(--color-text-secondary);
    font-size: 1rem;
}

/* フィルターフォーム */
.filter-form__row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.filter-select {
    width: 100%;
    padding: 0.75rem 1rem !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: var(--radius-md) !important;
    background-color: var(--color-surface);
    font-size: 0.9375rem;
    cursor: pointer;
}

.filter-select:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px var(--color-primary-light) !important;
    outline: none;
}

.filter-form__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.filter-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: all var(--transition-normal);
    text-decoration: none;
    border: none;
}

.filter-btn--primary {
    background-color: var(--color-primary);
    color: var(--color-surface);
}

.filter-btn--primary:hover {
    background-color: var(--color-primary-dark);
    color: var(--color-surface);
}

.filter-btn--secondary {
    background-color: transparent;
    color: var(--color-text-secondary);
    border: 1px solid #E2E8F0;
}

.filter-btn--secondary:hover {
    background-color: var(--color-background);
    color: var(--color-text-primary);
}

/* 税理士一覧グリッド */
.zeirishi-archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

/* 税理士カード */
.zeirishi-card {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--transition-normal);
}

.zeirishi-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.zeirishi-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.zeirishi-card__thumb {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: var(--color-background);
}

.zeirishi-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.zeirishi-card:hover .zeirishi-card__thumb img {
    transform: scale(1.05);
}

.zeirishi-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary-light);
    color: var(--color-primary);
}

.zeirishi-card__body {
    padding: 1.25rem;
}

.zeirishi-card__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
    line-height: 1.4;
}

.zeirishi-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.zeirishi-card__excerpt {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* ページネーション */
.zeirishi-pagination {
    margin-top: 2rem;
}

.zeirishi-pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.zeirishi-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 0.75rem;
    border-radius: var(--radius-md);
    font-weight: 500;
    text-decoration: none;
    transition: all var(--transition-normal);
    background-color: var(--color-surface);
    color: var(--color-text-primary);
    border: 1px solid #E2E8F0;
}

.zeirishi-pagination .page-numbers:hover {
    background-color: var(--color-primary);
    color: var(--color-surface);
    border-color: var(--color-primary);
}

.zeirishi-pagination .page-numbers.current {
    background-color: var(--color-primary);
    color: var(--color-surface);
    border-color: var(--color-primary);
}

/* 検索結果なし */
.zeirishi-no-results {
    text-align: center;
    padding: 4rem 2rem;
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
}

.zeirishi-no-results p {
    color: var(--color-text-secondary);
    margin-bottom: 1.5rem;
}

/* ==========================================================================
   Single Page - 詳細ページ専用スタイル
   ========================================================================== */
.zeirishi-single {
}

.zeirishi-header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #E2E8F0;
}

.zeirishi-header__title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--color-text-primary);
    margin-bottom: 1rem;
    line-height: 1.3;
}

.zeirishi-thumbnail {
    margin-bottom: 2rem;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.zeirishi-thumbnail__img {
    width: 100%;
    height: auto;
    display: block;
}

.zeirishi-content {
    margin-bottom: 2rem;
}

/* 会社概要セクション */
.zeirishi-overview {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #E2E8F0;
}

.zeirishi-overview__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    padding-left: 1rem;
    border-left: 4px solid var(--color-primary);
}

.zeirishi-overview__title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.zeirishi-overview__table {
    width: 100%;
    border-collapse: collapse;
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.zeirishi-overview__table th,
.zeirishi-overview__table td {
    padding: 1rem 1.25rem;
    text-align: left;
    border-bottom: 1px solid #E2E8F0;
    font-size: 0.9375rem;
    line-height: 1.6;
}

.zeirishi-overview__table tr:last-child th,
.zeirishi-overview__table tr:last-child td {
    border-bottom: none;
}

.zeirishi-overview__table th {
    width: 140px;
    background-color: var(--color-background);
    color: var(--color-text-secondary);
    font-weight: 600;
    white-space: nowrap;
}

.zeirishi-overview__table td {
    color: var(--color-text-primary);
}

.zeirishi-overview__table td a {
    color: var(--color-primary);
    text-decoration: none;
    word-break: break-all;
}

.zeirishi-overview__table td a:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

/* お問合せCTAセクション */
.zeirishi-contact-cta {
    margin-top: 2.5rem;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    border-radius: var(--radius-xl);
    padding: 3rem 2rem;
    text-align: center;
}

.zeirishi-contact-cta__inner {
    max-width: 600px;
    margin: 0 auto;
}

.zeirishi-contact-cta__title {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--color-surface);
    margin-bottom: 0.75rem;
}

.zeirishi-contact-cta__description {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 2rem;
}

.zeirishi-contact-cta__actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.zeirishi-contact-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 2rem;
    border-radius: var(--radius-md);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
    min-width: 220px;
    justify-content: center;
}

.zeirishi-contact-cta__btn--phone {
    background-color: var(--color-surface);
    color: var(--color-primary) !important;
}

.zeirishi-contact-cta__btn--phone:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-xl);
    color: var(--color-primary-dark) !important;
}

.zeirishi-contact-cta__btn--web {
    background-color: rgba(255, 255, 255, 0.15);
    color: var(--color-surface) !important;
    border: 2px solid rgba(255, 255, 255, 0.5);
}

.zeirishi-contact-cta__btn--web:hover {
    background-color: rgba(255, 255, 255, 0.25);
    border-color: var(--color-surface);
    transform: translateY(-2px);
    box-shadow: var(--shadow-xl);
    color: var(--color-surface) !important;
}

.zeirishi-contact-cta__btn svg {
    flex-shrink: 0;
}

/* 関連する税理士セクション */
.zeirishi-related {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #E2E8F0;
}

.zeirishi-related__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    padding-left: 1rem;
    border-left: 4px solid var(--color-primary);
}

.zeirishi-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
}

.zeirishi-related__card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-background);
    border-radius: var(--radius-md);
    overflow: hidden;
    text-decoration: none;
    transition: all var(--transition-normal);
}

.zeirishi-related__card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.zeirishi-related__thumb {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.zeirishi-related__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zeirishi-related__body {
    padding: 1rem;
}

.zeirishi-related__name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    line-height: 1.4;
}

/* レスポンシブ対応追加 */
@media (max-width: 768px) {
    .filter-form__row {
        grid-template-columns: 1fr;
    }
    
    .filter-form__actions {
        flex-direction: column;
    }
    
    .filter-btn {
        width: 100%;
    }
    
    .zeirishi-archive-grid {
        grid-template-columns: 1fr;
    }
    
    .zeirishi-single {
    }
    
    .zeirishi-header__title {
        font-size: 1.375rem;
    }
    
    .zeirishi-overview__table th,
    .zeirishi-overview__table td {
        display: block;
        width: 100%;
        padding: 0.75rem 1rem;
    }
    
    .zeirishi-overview__table th {
        border-bottom: none;
        padding-bottom: 0.25rem;
    }
    
    .zeirishi-overview__table td {
        padding-top: 0;
    }
    
    .zeirishi-contact-cta {
        padding: 2rem 1.25rem;
    }
    
    .zeirishi-contact-cta__title {
        font-size: 1.25rem;
    }
    
    .zeirishi-contact-cta__actions {
        flex-direction: column;
    }
    
    .zeirishi-contact-cta__btn {
        min-width: unset;
        width: 100%;
    }
    
    .zeirishi-related__grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   トップページ：検索フォーム
   ========================================================================== */
.zeirishi-search {
    background-color: var(--color-surface);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-lg);
    margin-bottom: 2rem;
}

.zeirishi-search--hero {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-surface);
    padding: 3rem 2rem;
    text-align: center;
}

.zeirishi-search__title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.zeirishi-search--hero .zeirishi-search__title {
    color: var(--color-surface);
}

.zeirishi-search__title svg {
    flex-shrink: 0;
}

.zeirishi-search__form {
    max-width: 900px;
    margin: 0 auto;
}

.zeirishi-search--hero .zeirishi-search__form {
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
}

.zeirishi-search__fields {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.zeirishi-search__field label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    margin-bottom: 0.5rem;
}

.zeirishi-search__field select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-md);
    font-size: 1rem;
    background-color: var(--color-surface);
    cursor: pointer;
    transition: all var(--transition-normal);
}

.zeirishi-search__field select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-light);
    outline: none;
}

.zeirishi-search__btn {
    display: block;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    padding: 1rem 2rem;
    background-color: var(--color-primary);
    color: var(--color-surface);
    border: none;
    border-radius: var(--radius-md);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-normal);
}

.zeirishi-search__btn:hover {
    background-color: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

/* ==========================================================================
   トップページ：ランキング
   ========================================================================== */
.zeirishi-ranking {
    margin: 3rem 0;
}

.zeirishi-ranking__title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 2rem;
    text-align: center;
}

.zeirishi-ranking__title svg {
    color: var(--color-primary);
}

/* ランキングリスト（縦並び） */
.zeirishi-ranking__list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* ランキングアイテム（1件分のラッパー） */
.zeirishi-ranking__item {
    position: relative;
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--transition-normal);
}

.zeirishi-ranking__item:hover {
    box-shadow: var(--shadow-lg);
}

/* バッジ */
.zeirishi-ranking__badge {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-surface);
    border-radius: 50%;
    font-size: 1.125rem;
    font-weight: 700;
    box-shadow: var(--shadow-md);
    z-index: 2;
}

.zeirishi-ranking__badge.gold {
    background: linear-gradient(135deg, #FFD700, #FFA500);
    color: #fff;
}

.zeirishi-ranking__badge.silver {
    background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
    color: #fff;
}

.zeirishi-ranking__badge.bronze {
    background: linear-gradient(135deg, #CD7F32, #B87333);
    color: #fff;
}

/* カード（リンク部分） */
.zeirishi-ranking__card {
    display: flex;
    flex-direction: row;
    text-decoration: none;
    color: inherit;
}

.zeirishi-ranking__card:hover {
    color: inherit;
}

/* サムネイル */
.zeirishi-ranking__thumb {
    flex-shrink: 0;
    width: 200px;
    min-height: 160px;
    overflow: hidden;
    background-color: var(--color-background);
}

.zeirishi-ranking__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.zeirishi-ranking__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary-light);
    color: var(--color-primary);
}

/* ボディ */
.zeirishi-ranking__body {
    flex: 1;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.zeirishi-ranking__name {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.4;
}

.zeirishi-ranking__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

/* 特徴テキスト */
.zeirishi-ranking__features {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* メタ情報（住所・電話） */
.zeirishi-ranking__meta {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.zeirishi-ranking__meta-row {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.zeirishi-ranking__meta-row dt {
    flex-shrink: 0;
    color: var(--color-text-secondary);
    line-height: 1;
    padding-top: 2px;
}

.zeirishi-ranking__meta-row dd {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
}

/* アクションボタン */
.zeirishi-ranking__actions {
    display: flex;
    gap: 0.75rem;
    padding: 0 1.5rem 1.25rem;
    padding-left: calc(200px + 1.5rem);
}

.zeirishi-ranking__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    border-radius: var(--radius-md);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
}

.zeirishi-ranking__btn--detail {
    background-color: var(--color-primary);
    color: var(--color-surface) !important;
}

.zeirishi-ranking__btn--detail:hover {
    background-color: var(--color-primary-dark);
    color: var(--color-surface) !important;
}

.zeirishi-ranking__btn--hp {
    background-color: transparent;
    color: var(--color-primary) !important;
    border: 1px solid var(--color-primary);
}

.zeirishi-ranking__btn--hp:hover {
    background-color: var(--color-primary);
    color: var(--color-surface) !important;
}

/* ==========================================================================
   トップページ：都道府県ナビ
   ========================================================================== */
.zeirishi-prefnav {
    background-color: var(--color-surface);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    margin: 3rem 0;
}

.zeirishi-prefnav__title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    text-align: center;
}

.zeirishi-prefnav__title svg {
    color: var(--color-primary);
}

.zeirishi-prefnav__tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid var(--color-background);
    padding-bottom: 1rem;
}

.zeirishi-prefnav__tab {
    padding: 0.5rem 1rem;
    background-color: var(--color-background);
    border: none;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--transition-normal);
}

.zeirishi-prefnav__tab:hover {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
}

.zeirishi-prefnav__tab.is-active {
    background-color: var(--color-primary);
    color: var(--color-surface);
}

.zeirishi-prefnav__panel {
    display: none;
}

.zeirishi-prefnav__panel.is-active {
    display: block;
}

.zeirishi-prefnav__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 0.75rem;
}

.zeirishi-prefnav__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.75rem 0.5rem;
    background-color: var(--color-background);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: all var(--transition-normal);
}

.zeirishi-prefnav__item:hover {
    background-color: var(--color-primary-light);
}

.zeirishi-prefnav__item.is-empty {
    opacity: 0.5;
    pointer-events: none;
}

.zeirishi-prefnav__name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-primary);
}

.zeirishi-prefnav__count {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

/* ==========================================================================
   トップページ：CTA
   ========================================================================== */
.zeirishi-cta {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    border-radius: var(--radius-xl);
    padding: 4rem 2rem;
    margin: 3rem 0;
    text-align: center;
}

.zeirishi-cta__inner {
    max-width: 600px;
    margin: 0 auto;
}

.zeirishi-cta__title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--color-surface);
    margin-bottom: 1rem;
}

.zeirishi-cta__description {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 2rem;
}

.zeirishi-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2.5rem;
    background-color: var(--color-surface);
    color: var(--color-primary) !important;
    border-radius: var(--radius-md);
    font-size: 1.125rem;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
}

.zeirishi-cta__btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-xl);
    color: var(--color-primary-dark) !important;
}

.zeirishi-cta__btn svg {
    transition: transform var(--transition-normal);
}

.zeirishi-cta__btn:hover svg {
    transform: translateX(4px);
}

/* ==========================================================================
   トップページ：レスポンシブ
   ========================================================================== */
@media (max-width: 768px) {
    .zeirishi-search--hero {
        padding: 2rem 1rem;
    }
    
    .zeirishi-search__title {
        font-size: 1.25rem;
    }
    
    .zeirishi-search__fields {
        grid-template-columns: 1fr;
    }
    
    .zeirishi-search--hero .zeirishi-search__form {
        padding: 1rem;
    }
    
    .zeirishi-ranking__card {
        flex-direction: column;
    }
    
    .zeirishi-ranking__thumb {
        width: 100%;
        min-height: 180px;
    }
    
    .zeirishi-ranking__body {
        padding: 1rem;
    }
    
    .zeirishi-ranking__name {
        font-size: 1rem;
    }
    
    .zeirishi-ranking__actions {
        padding-left: 1rem;
        padding-right: 1rem;
        padding-bottom: 1rem;
    }
    
    .zeirishi-ranking__btn {
        flex: 1;
        text-align: center;
    }
    
    .zeirishi-prefnav {
        padding: 1.5rem 1rem;
    }
    
    .zeirishi-prefnav__tabs {
        gap: 0.375rem;
    }
    
    .zeirishi-prefnav__tab {
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
    }
    
    .zeirishi-prefnav__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
    }
    
    .zeirishi-prefnav__item {
        padding: 0.5rem 0.25rem;
    }
    
    .zeirishi-prefnav__name {
        font-size: 0.75rem;
    }
    
    .zeirishi-cta {
        padding: 3rem 1.5rem;
    }
    
    .zeirishi-cta__title {
        font-size: 1.375rem;
    }
    
    .zeirishi-cta__description {
        font-size: 1rem;
    }
}
