/**
 * Japan IR Design System v2.0
 *
 * Based on: 00_デザイン仕様書.html
 * Created: 2025-12-29
 */

/* ========================================
   CSS Variables - Design Tokens
   Source: 00_デザイン仕様書.html (様書優先)
======================================== */
:root {
    /* ===== Primary Colors ===== */
    --primary-50: #EFF6FF;
    --primary-100: #DBEAFE;
    --primary-200: #BFDBFE;
    --primary-300: #A5B4FC;
    --primary-400: #818CF8;
    --primary-500: #6366F1;
    --primary-600: #4F46E5;
    --primary-700: #3730A3;
    --primary-800: #312E81;
    --primary-900: #1E3A8A;

    /* ===== Accent Color ===== */
    --accent: #06B6D4;
    --accent-light: #CFFAFE;

    /* ===== Semantic Colors ===== */
    --success: #10B981;
    --success-light: #D1FAE5;
    --danger: #EF4444;
    --danger-light: #FEE2E2;
    --warning: #F59E0B;
    --warning-light: #FEF3C7;
    --purple: #8B5CF6;
    --purple-light: #EDE9FE;

    /* ===== Gray Scale ===== */
    --gray-50: #F8FAFC;
    --gray-100: #F1F5F9;
    --gray-200: #E2E8F0;
    --gray-300: #CBD5E1;
    --gray-400: #94A3B8;
    --gray-500: #64748B;
    --gray-600: #475569;
    --gray-700: #334155;
    --gray-800: #1E293B;
    --gray-900: #0F172A;

    /* ===== Typography ===== */
    --font-primary: 'Outfit', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'JetBrains Mono', Consolas, monospace;

    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 3rem;

    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;

    --line-height-tight: 1.25;
    --line-height-snug: 1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.625;
    --line-height-loose: 1.8;

    --letter-spacing-tight: -0.02em;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.025em;

    /* ===== Spacing ===== */
    --spacing-0: 0;
    --spacing-1: 4px;
    --spacing-2: 8px;
    --spacing-3: 12px;
    --spacing-4: 16px;
    --spacing-5: 20px;
    --spacing-6: 24px;
    --spacing-8: 32px;
    --spacing-10: 40px;
    --spacing-12: 48px;
    --spacing-16: 64px;
    --spacing-20: 80px;
    --spacing-24: 96px;

    /* ===== Border Radius ===== */
    --radius-none: 0;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-2xl: 32px;
    --radius-full: 9999px;

    /* ===== Shadows ===== */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);

    /* ===== Transitions ===== */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 350ms ease;

    /* ===== Z-Index ===== */
    --z-dropdown: 100;
    --z-sticky: 500;
    --z-fixed: 700;
    --z-modal-backdrop: 900;
    --z-modal: 1000;
    --z-tooltip: 1100;

    /* ===== Layout ===== */
    --container-sm: 640px;
    --container-md: 768px;
    --container-lg: 1024px;
    --container-xl: 1200px;
    --container-2xl: 1400px;
    --header-height: 72px;
    --sidebar-width: 320px;
    --sidebar-width-lg: 340px;

    /* ===== Sector Colors ===== */
    /* 建設・不動産系 */
    --sector-建設業: #10B981;
    --sector-建設業-light: #D1FAE5;
    --sector-不動産業: #06B6D4;
    --sector-不動産業-light: #CFFAFE;

    /* 製造業系 */
    --sector-機械: #10B981;
    --sector-機械-light: #D1FAE5;
    --sector-電気機器: #3B82F6;
    --sector-電気機器-light: #DBEAFE;
    --sector-輸送用機器: #6366F1;
    --sector-輸送用機器-light: #E0E7FF;
    --sector-精密機器: #8B5CF6;
    --sector-精密機器-light: #EDE9FE;
    --sector-金属製品: #6B7280;
    --sector-金属製品-light: #F3F4F6;

    /* 素材系 */
    --sector-化学: #14B8A6;
    --sector-化学-light: #CCFBF1;
    --sector-鉄鋼: #78716C;
    --sector-鉄鋼-light: #F5F5F4;
    --sector-非鉄金属: #A8A29E;
    --sector-非鉄金属-light: #FAFAF9;
    --sector-ガラス土石製品: #92400E;
    --sector-ガラス土石製品-light: #FEF3C7;
    --sector-パルプ紙: #65A30D;
    --sector-パルプ紙-light: #ECFCCB;
    --sector-繊維製品: #EC4899;
    --sector-繊維製品-light: #FCE7F3;
    --sector-石油石炭製品: #44403C;
    --sector-石油石炭製品-light: #F5F5F4;
    --sector-ゴム製品: #78716C;
    --sector-ゴム製品-light: #F5F5F4;

    /* エネルギー・資源系 */
    --sector-鉱業: #57534E;
    --sector-鉱業-light: #F5F5F4;
    --sector-電気ガス業: #F59E0B;
    --sector-電気ガス業-light: #FEF3C7;
    --sector-水産農林業: #22C55E;
    --sector-水産農林業-light: #DCFCE7;

    /* 商業・サービス系 */
    --sector-小売業: #F97316;
    --sector-小売業-light: #FFEDD5;
    --sector-卸売業: #0EA5E9;
    --sector-卸売業-light: #E0F2FE;
    --sector-サービス業: #A855F7;
    --sector-サービス業-light: #F3E8FF;

    /* 食品・生活系 */
    --sector-食料品: #EF4444;
    --sector-食料品-light: #FEE2E2;
    --sector-医薬品: #EC4899;
    --sector-医薬品-light: #FCE7F3;

    /* 金融系 */
    --sector-銀行業: #1D4ED8;
    --sector-銀行業-light: #DBEAFE;
    --sector-証券商品先物取引業: #4F46E5;
    --sector-証券商品先物取引業-light: #E0E7FF;
    --sector-保険業: #7C3AED;
    --sector-保険業-light: #EDE9FE;
    --sector-その他金融業: #6366F1;
    --sector-その他金融業-light: #E0E7FF;

    /* 情報・通信系 */
    --sector-情報通信業: #2563EB;
    --sector-情報通信業-light: #DBEAFE;

    /* 運輸系 */
    --sector-陸運業: #059669;
    --sector-陸運業-light: #D1FAE5;
    --sector-海運業: #0284C7;
    --sector-海運業-light: #E0F2FE;
    --sector-空運業: #0EA5E9;
    --sector-空運業-light: #E0F2FE;
    --sector-倉庫運輸関連業: #14B8A6;
    --sector-倉庫運輸関連業-light: #CCFBF1;

    /* その他 */
    --sector-その他製品: #8B5CF6;
    --sector-その他製品-light: #EDE9FE;
    --sector-その他: #6B7280;
    --sector-その他-light: #F3F4F6;
}

/* ========================================
   Reset & Base Styles
======================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 20px);
}

body {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-loose);
    color: var(--gray-700);
    background: var(--gray-50);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: var(--primary-600);
    text-decoration: none;
    transition: color var(--transition-fast);
}

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

ul,
ol {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ========================================
   Container
======================================== */
.jir-container {
    width: 100%;
    max-width: var(--container-2xl);
    margin: 0 auto;
    padding: 0 var(--spacing-6);
}

/* ========================================
   Header
======================================== */
.jir-header {
    background: rgba(255, 255, 255, 0.80);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-bottom: 1px solid var(--gray-200);
    position: sticky;
    top: 0;
    z-index: var(--z-modal);
    height: var(--header-height);
}

/* WordPress admin bar adjustment */
.admin-bar .jir-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .jir-header {
        top: 46px;
    }
}

.jir-header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    max-width: var(--container-2xl);
    margin: 0 auto;
    padding: 0 var(--spacing-6);
}

/* Logo */
.jir-logo {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.jir-logo a {
    font-size: 1.5rem;
    font-weight: var(--font-weight-bold);
    color: var(--gray-900);
    text-decoration: none;
}

.jir-logo a:hover {
    color: var(--gray-900);
}

.jir-logo span {
    background: linear-gradient(135deg, var(--primary-500), var(--accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.jir-logo-catch {
    font-size: 0.75rem;
    font-weight: var(--font-weight-regular);
    color: var(--gray-500);
}

/* Navigation */
.jir-nav ul {
    display: flex;
    gap: var(--spacing-2);
}

.jir-nav ul a {
    display: block;
    padding: 10px 18px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-nav ul a:hover,
.jir-nav ul a.active {
    color: var(--primary-600);
    background: var(--primary-50);
}

/* Header Actions */
.jir-header-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

/* Language Switch */
.jir-lang-switch {
    position: relative;
}

.jir-lang-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    font-size: 0.8rem;
    color: var(--gray-500);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
    border: none;
    font-family: inherit;
}

.jir-lang-btn:hover {
    background: var(--gray-200);
}

.jir-lang-btn .fa-chevron-down {
    font-size: 0.6rem;
}

.jir-lang-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    min-width: 160px;
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    z-index: 1000;
    padding-top: 4px;
    margin-top: -4px;
}

.jir-lang-switch:hover .jir-lang-dropdown,
.jir-lang-switch:focus-within .jir-lang-dropdown {
    display: block;
    pointer-events: auto;
}

.jir-lang-option {
    display: block;
    padding: 10px 16px;
    color: var(--gray-700);
    text-decoration: none;
    font-size: 0.875rem;
    transition: background var(--transition-fast);
}

.jir-lang-option:hover {
    background: var(--gray-100);
}

.jir-lang-option.active {
    background: var(--primary-50);
    color: var(--primary-600);
    font-weight: 600;
}

/* Search Button - 削除（検索フィルターエリアと統一） */

/* Login Button */
.jir-login-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-medium);
    color: white;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-login-btn:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

/* ========================================
   Footer
======================================== */
.jir-footer {
    background: linear-gradient(135deg, var(--gray-800) 0%, var(--gray-900) 100%);
    color: var(--gray-400);
    padding: var(--spacing-16) 0 var(--spacing-8);
}

.jir-footer-container {
    max-width: var(--container-2xl);
    margin: 0 auto;
    padding: 0 var(--spacing-6);
}

.jir-footer-columns {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--spacing-12);
    margin-bottom: var(--spacing-12);
}

.jir-footer-column h4 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: white;
    margin-bottom: var(--spacing-5);
}

.jir-footer-about {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-relaxed);
    margin-bottom: var(--spacing-5);
}

/* Social Icons */
.jir-footer-social {
    display: flex;
    gap: var(--spacing-3);
}

.jir-social-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    color: var(--gray-400);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-social-icon:hover {
    background: var(--primary-600);
    color: white;
}

/* Footer Links */
.jir-footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.jir-footer-links a {
    font-size: var(--font-size-sm);
    color: var(--gray-400);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    transition: color var(--transition-fast);
}

.jir-footer-links a:hover {
    color: white;
}

.jir-footer-links i {
    font-size: 0.7rem;
    color: var(--primary-500);
}

/* Footer Bottom */
.jir-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: var(--spacing-8);
    border-top: 1px solid var(--gray-800);
    font-size: var(--font-size-sm);
}

.jir-footer-lang {
    display: flex;
    gap: var(--spacing-4);
}

.jir-footer-lang a {
    color: var(--gray-500);
}

.jir-footer-lang a:hover,
.jir-footer-lang a.active {
    color: white;
}

/* Hide WPML default language switcher */
.wpml-ls-legacy-list-horizontal,
.wpml-ls-statics-footer,
footer .wpml-ls-legacy-dropdown,
footer .wpml-ls-sidebars-footer {
    display: none !important;
}

/* ========================================
   Buttons - Component Specification
   Source: 00_コンポーネント.html
======================================== */

/* Base Button (.btn) - コンポーネント仕様書準拠 */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    font-size: 0.95rem;
    font-weight: 500;
    border-radius: var(--radius-md);
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
    font-family: var(--font-primary);
    line-height: 1;
}

/* Primary Button */
.btn-primary {
    background: var(--primary-500);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-600);
    color: white;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Secondary Button */
.btn-secondary {
    background: var(--gray-100);
    color: var(--gray-700);
}

.btn-secondary:hover {
    background: var(--gray-200);
}

/* Outline Button */
.btn-outline {
    background: transparent;
    color: var(--primary-600);
    border: 2px solid var(--primary-500);
}

.btn-outline:hover {
    background: var(--primary-50);
}

/* Success Button */
.btn-success {
    background: var(--success);
    color: white;
}

.btn-success:hover {
    background: #059669;
}

/* Danger Button */
.btn-danger {
    background: var(--danger);
    color: white;
}

.btn-danger:hover {
    background: #DC2626;
}

/* Ghost Button */
.btn-ghost {
    background: transparent;
    color: var(--gray-600);
}

.btn-ghost:hover {
    background: var(--gray-100);
}

/* Gradient Button */
.btn-gradient {
    background: linear-gradient(135deg, var(--primary-500), var(--accent));
    color: white;
}

.btn-gradient:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    color: white;
}

/* Button Sizes */
.btn-sm {
    padding: 8px 16px;
    font-size: 0.85rem;
}

.btn-lg {
    padding: 16px 32px;
    font-size: 1.1rem;
}

/* Icon Button */
.btn-icon {
    width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
    border-radius: var(--radius-md);
}

.btn-icon.rounded {
    border-radius: var(--radius-full);
}

/* ========================================
   JIR Buttons - 既存互換性維持
======================================== */
.jir-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: 12px 24px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-btn-primary {
    color: white;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
}

.jir-btn-primary:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.jir-btn-secondary {
    color: var(--gray-700);
    background: white;
    border: 1px solid var(--gray-200);
}

.jir-btn-secondary:hover {
    background: var(--gray-50);
    border-color: var(--gray-300);
}

/* ========================================
   Cards
======================================== */
.jir-card {
    background: white;
    border-radius: var(--radius-lg);
    border: 1px solid var(--gray-100);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--transition-base);
}

/* ========================================
   Utilities
======================================== */
.jir-text-center {
    text-align: center;
}

.jir-text-right {
    text-align: right;
}

.jir-hidden {
    display: none !important;
}

.jir-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;
}

/* ========================================
   Responsive
======================================== */
@media (max-width: 1200px) {
    .jir-footer-columns {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .jir-nav {
        display: none;
    }

    .jir-footer-columns {
        grid-template-columns: 1fr;
        gap: var(--spacing-8);
    }

    .jir-footer-bottom {
        flex-direction: column;
        gap: var(--spacing-4);
        text-align: center;
    }
}

@media (max-width: 640px) {
    .jir-header-container {
        padding: 0 var(--spacing-4);
    }

    .jir-logo a {
        font-size: var(--font-size-xl);
    }

    .jir-logo-catch {
        display: none;
    }

    .jir-container {
        padding: 0 var(--spacing-4);
    }
}

/* ========================================
   Breadcrumbs
======================================== */
.jir-breadcrumbs {
    background: var(--white);
}

.jir-breadcrumbs-container {
    max-width: var(--container-2xl);
    margin: 0 auto;
    padding: var(--spacing-3) var(--spacing-6);
}

.jir-breadcrumb-list {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: 0.85rem;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

.jir-breadcrumb-list li {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.jir-breadcrumb-list a {
    color: var(--gray-500);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.jir-breadcrumb-list a:hover {
    color: var(--primary-600);
}

.jir-breadcrumb-list i {
    font-size: 0.65rem;
    color: var(--gray-400);
}

.jir-breadcrumb-current {
    color: var(--gray-700);
    font-weight: 500;
}

/* Responsive: Breadcrumbs */
@media (max-width: 768px) {
    .jir-breadcrumb-list {
        font-size: 0.8rem;
        gap: var(--spacing-1);
    }

    .jir-breadcrumb-list li {
        gap: var(--spacing-1);
    }
}

@media (max-width: 640px) {
    .jir-breadcrumbs-container {
        padding: var(--spacing-3) var(--spacing-4);
    }
}

/* ========================================
   Company Profile (IR Detail Header)
======================================== */
.jir-company-profile {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-6);
    padding: var(--spacing-6) 28px;
    background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
    border-radius: var(--radius-xl);
    color: white;
    position: relative;
    overflow: hidden;
    margin-bottom: var(--spacing-6);
}

.jir-company-profile::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 60%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    pointer-events: none;
}

.jir-company-info {
    position: relative;
    z-index: 1;
}

/* Company Name */
.jir-company-profile .jir-company-name {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 0 2px 0;
    color: white;
    word-break: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

.jir-company-profile .jir-company-name-sub {
    font-size: 0.85rem;
    opacity: 0.8;
    margin-bottom: var(--spacing-3);
    color: white;
}

.jir-company-profile .jir-company-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

/* Stock Code Badge */
.jir-company-profile .jir-stock-code {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    font-weight: 500;
    color: white;
    cursor: default;
    text-decoration: none;
}

.jir-company-profile .jir-stock-code:hover {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    text-decoration: none;
}

.jir-company-profile .jir-stock-code i {
    font-size: 0.75rem;
    color: white;
}

/* Sector Tag */
.jir-company-profile .jir-sector-tag {
    padding: 5px 12px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: var(--radius-sm);
    font-size: 0.8rem;
    font-weight: 500;
    color: white;
}

/* Favorite Button in Company Profile */
.jir-company-profile .favorite-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: var(--radius-sm);
    color: white;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.jir-company-profile .favorite-btn:hover {
    background: rgba(255, 255, 255, 0.25);
    color: white;
}

.jir-company-profile .favorite-btn i {
    font-size: 0.85rem;
}

.jir-company-profile .favorite-btn.is-favorite {
    background: rgba(255, 255, 255, 0.25);
}

.jir-company-profile .favorite-btn.is-favorite i {
    color: #fbbf24;
}

/* Financial Data Area */
.jir-financial-data {
    text-align: right;
    position: relative;
    z-index: 1;
}

.jir-data-date {
    font-size: 0.75rem;
    opacity: 0.7;
    margin-bottom: 6px;
}

.jir-data-label {
    font-size: 0.8rem;
    opacity: 0.8;
    margin-right: 6px;
}

.jir-market-cap-value {
    font-size: 1.1rem;
    font-weight: 600;
}

.jir-stock-price-value {
    font-size: 1.75rem;
    font-weight: 700;
}

.jir-exchange-rate {
    font-size: 0.75rem;
    opacity: 0.7;
    margin-top: 6px;
}

/* Responsive: Company Profile */
@media (max-width: 900px) {
    .jir-company-profile {
        flex-direction: column;
    }

    .jir-financial-data {
        text-align: left;
    }
}

@media (max-width: 640px) {
    .jir-company-profile {
        padding: var(--spacing-5) var(--spacing-4);
        gap: var(--spacing-4);
    }

    .jir-company-name {
        font-size: 1.25rem;
    }

    .jir-stock-price-value {
        font-size: 1.5rem;
    }
}

/* ========================================
   Sector-Specific Gradients
======================================== */
.jir-company-profile.建設業 {
    background: linear-gradient(135deg, #10B981 0%, #059669 100%);
}

.jir-company-profile.不動産業 {
    background: linear-gradient(135deg, #06B6D4 0%, #0891B2 100%);
}

.jir-company-profile.機械 {
    background: linear-gradient(135deg, #10B981 0%, #059669 100%);
}

.jir-company-profile.電気機器 {
    background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
}

.jir-company-profile.輸送用機器 {
    background: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%);
}

.jir-company-profile.精密機器 {
    background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);
}

.jir-company-profile.金属製品 {
    background: linear-gradient(135deg, #6B7280 0%, #4B5563 100%);
}

.jir-company-profile.化学 {
    background: linear-gradient(135deg, #14B8A6 0%, #0D9488 100%);
}

.jir-company-profile.鉄鋼 {
    background: linear-gradient(135deg, #78716C 0%, #57534E 100%);
}

.jir-company-profile.非鉄金属 {
    background: linear-gradient(135deg, #A8A29E 0%, #78716C 100%);
}

.jir-company-profile.ガラス・土石製品 {
    background: linear-gradient(135deg, #D97706 0%, #B45309 100%);
}

.jir-company-profile.パルプ・紙 {
    background: linear-gradient(135deg, #65A30D 0%, #4D7C0F 100%);
}

.jir-company-profile.繊維製品 {
    background: linear-gradient(135deg, #EC4899 0%, #DB2777 100%);
}

.jir-company-profile.石油・石炭製品 {
    background: linear-gradient(135deg, #57534E 0%, #44403C 100%);
}

.jir-company-profile.鉱業 {
    background: linear-gradient(135deg, #78716C 0%, #57534E 100%);
}

.jir-company-profile.電気・ガス業 {
    background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
}

.jir-company-profile.小売業 {
    background: linear-gradient(135deg, #F97316 0%, #EA580C 100%);
}

.jir-company-profile.卸売業 {
    background: linear-gradient(135deg, #0EA5E9 0%, #0284C7 100%);
}

.jir-company-profile.サービス業 {
    background: linear-gradient(135deg, #A855F7 0%, #9333EA 100%);
}

.jir-company-profile.食料品 {
    background: linear-gradient(135deg, #EF4444 0%, #DC2626 100%);
}

.jir-company-profile.医薬品 {
    background: linear-gradient(135deg, #EC4899 0%, #DB2777 100%);
}

.jir-company-profile.銀行業 {
    background: linear-gradient(135deg, #1D4ED8 0%, #1E40AF 100%);
}

.jir-company-profile.証券・先物 {
    background: linear-gradient(135deg, #4F46E5 0%, #4338CA 100%);
}

.jir-company-profile.保険業 {
    background: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%);
}

.jir-company-profile.その他金融業 {
    background: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%);
}

.jir-company-profile.情報・通信業 {
    background: linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
}

.jir-company-profile.陸運業 {
    background: linear-gradient(135deg, #059669 0%, #047857 100%);
}

.jir-company-profile.海運業 {
    background: linear-gradient(135deg, #0284C7 0%, #0369A1 100%);
}

.jir-company-profile.空運業 {
    background: linear-gradient(135deg, #0EA5E9 0%, #0284C7 100%);
}

.jir-company-profile.倉庫・運輸関連 {
    background: linear-gradient(135deg, #14B8A6 0%, #0D9488 100%);
}

.jir-company-profile.その他製品 {
    background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);
}

.jir-company-profile.その他 {
    background: linear-gradient(135deg, #6B7280 0%, #4B5563 100%);
}

/* ========================================
   Floating Icons (Company Profile)
======================================== */
.jir-floating-icons {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 0;
}

.jir-floating-icon {
    position: absolute;
    font-size: 1.5rem;
    opacity: 0.15;
    color: white;
    animation: jir-float 4s ease-in-out infinite;
}

.jir-floating-icon:nth-child(1) {
    top: 7%;
    left: 4%;
    animation-delay: 0s;
}

.jir-floating-icon:nth-child(2) {
    top: 16%;
    right: 18%;
    animation-delay: 0.5s;
}

.jir-floating-icon:nth-child(3) {
    bottom: 5%;
    left: 10%;
    animation-delay: 1s;
}

.jir-floating-icon:nth-child(4) {
    bottom: 4%;
    right: 6%;
    animation-delay: 1.5s;
}

.jir-floating-icon:nth-child(5) {
    top: 30%;
    left: 20%;
    animation-delay: 2s;
}

.jir-floating-icon:nth-child(6) {
    top: 55%;
    right: 20%;
    animation-delay: 2.5s;
}

/* Dark Section用 (7-9) */
.jir-floating-icon:nth-child(7) {
    top: 15%;
    left: 25%;
    animation-delay: 0s;
}

.jir-floating-icon:nth-child(8) {
    top: 20%;
    right: 8%;
    animation-delay: 0.7s;
}

.jir-floating-icon:nth-child(9) {
    bottom: 9%;
    left: 10%;
    animation-delay: 1.4s;
}

@keyframes jir-float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

/* Ensure content is above floating icons */
.jir-company-profile .jir-company-info,
.jir-company-profile .jir-financial-data {
    position: relative;
    z-index: 1;
}

/* ========================================
   IR Charts Section
======================================== */
.ir-charts-section {
    margin-bottom: var(--spacing-8);
}

.ir-charts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-6);
}

.ir-chart-container {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--spacing-5);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.ir-chart-container:hover {
    box-shadow: var(--shadow-md);
}

.ir-chart-container[data-chart-type="table"] {
    grid-column: 1 / -1;
}

.ir-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid var(--gray-200);
}

.ir-chart-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--primary-700);
    margin: 0;
}

/* キャンバスサイズを固定（無限ループ防止） */
.ir-chart-canvas {
    width: 100% !important;
    height: 300px !important;
    max-height: 300px !important;
}

/* テーブルスタイル */
.ir-data-table-container {
    overflow-x: auto;
}

.ir-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.ir-data-table th,
.ir-data-table td {
    padding: var(--spacing-3) var(--spacing-4);
    text-align: left;
    border-bottom: 1px solid var(--gray-200);
}

.ir-data-table th {
    background: var(--gray-50);
    font-weight: 600;
    color: var(--gray-700);
}

.ir-data-table td.positive {
    color: var(--success-600);
}

.ir-data-table td.negative {
    color: var(--danger-600);
}

/* Responsive */
@media (max-width: 768px) {
    .ir-charts-grid {
        grid-template-columns: 1fr;
    }

    .ir-chart-canvas {
        height: 250px !important;
        max-height: 250px !important;
    }
}

/* ========================================
   IR Meta Info Section
======================================== */
.jir-ir-detail-meta {
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    padding: 12px 16px;
    margin-bottom: 20px;
}

.jir-ir-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-4);
    flex-wrap: wrap;
    gap: var(--spacing-4);
}

/* 重要度 */
.jir-ir-importance-container {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.jir-ir-importance-label {
    font-size: 0.875rem;
    color: var(--gray-600);
    font-weight: 500;
}

.jir-ir-importance-badge {
    display: flex;
    gap: 4px;
    padding: 6px 16px;
    background: var(--gray-200);
    border: none;
    border-radius: var(--radius-sm);
}

.jir-ir-importance-badge i {
    font-size: 0.75rem;
    color: var(--warning);
}

.jir-ir-importance-badge i.far {
    color: var(--gray-400);
}

/* 日付情報（縦並び・右揃え） */
.jir-ir-meta-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    text-align: right;
}

.jir-ir-detail-updated,
.jir-ir-detail-date {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    color: var(--gray-600);
}

.jir-ir-detail-updated i,
.jir-ir-detail-date i {
    color: var(--primary-500);
    font-size: 0.75rem;
}

/* カテゴリーバッジ */
.jir-ir-detail-categories-container {
    display: flex;
    gap: var(--spacing-2);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-4);
}

.jir-ir-detail-category {
    padding: 6px 12px;
    background: var(--primary-100);
    color: var(--primary-700);
    border-radius: var(--radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
}

/* タグ */
.jir-ir-detail-tags-container {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding-top: 0;
    border-top: none;
}

.jir-ir-detail-tag-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    color: var(--gray-600);
    font-weight: 500;
}

.jir-ir-detail-tag-label i {
    color: var(--gray-400);
}

.jir-ir-detail-tag {
    display: inline-block;
    padding: 6px 12px;
    background: var(--gray-100);
    color: var(--gray-700);
    border-radius: var(--radius-sm);
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 400;
    transition: var(--transition-fast);
}

.jir-ir-detail-tag:hover {
    background: var(--primary-50);
    color: var(--primary-600);
    text-decoration: none;
}

/* レスポンシブ */
@media (max-width: 640px) {
    .jir-ir-meta-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .jir-ir-meta-right {
        align-items: flex-start;
        text-align: left;
    }
}

/* ========================================
   Main Layout (Front Page)
======================================== */
.jir-main-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--spacing-8);
    padding-top: 0;
    padding-bottom: var(--spacing-12);
}

/* トップページのみ：ヘッダー下のスペース48px */
body.home .jir-main-layout {
    margin-top: 48px;
}

.jir-main-content {
    min-width: 0;
    /* Prevent grid blowout */
}

/* 1カラムレイアウト */
.jir-single-column {
    grid-template-columns: 1fr;
    max-width: 900px;
    margin: 0 auto;
}

/* Sidebar */
.jir-sidebar {
    /* スティッキー解除 - 通常スクロール */
}


/* Responsive: Main Layout */
@media (max-width: 1024px) {
    .jir-main-layout {
        grid-template-columns: 1fr 280px;
        gap: var(--spacing-6);
    }
}

@media (max-width: 900px) {
    .jir-main-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-8);
    }

    .jir-sidebar {
        position: static;
        max-height: none;
    }
}

/* ========================================
   Search & Filter Section
======================================== */
.jir-search-filter {
    background: white;
    border-radius: var(--radius-lg);
    border: 1px solid var(--gray-100);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-6);
    margin-bottom: var(--spacing-6);
}

/* Controls Header */
.jir-controls-header {
    margin-bottom: var(--spacing-5);
}

.jir-controls-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin: 0;
}

.jir-controls-title i {
    color: var(--primary-500);
}

/* Search Container（サイドバー検索用） */
.jir-search-container {
    position: relative;
    display: flex;
    margin-bottom: var(--spacing-5);
}

.jir-search-container .jir-search-input {
    flex: 1;
    padding: 10px 16px;
    font-size: var(--font-size-sm);
    font-family: var(--font-primary);
    color: var(--gray-700);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-right: none;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    outline: none;
    transition: all var(--transition-fast);
}

.jir-search-container .jir-search-input:focus {
    background: white;
    border-color: var(--primary-300);
    box-shadow: 0 0 0 3px var(--primary-50);
}

.jir-search-container .jir-search-input::placeholder {
    color: var(--gray-400);
}

/* 旧 .jir-search-btn 定義 - 削除（検索フィルターエリアと統一） */

/* Autocomplete Dropdown */
.jir-autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: var(--z-dropdown);
    display: none;
    max-height: 300px;
    overflow-y: auto;
}

/* Category Filter */
.jir-category-filter {
    margin-bottom: var(--spacing-5);
}

.jir-filter-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-600);
    margin-bottom: var(--spacing-3);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.jir-filter-title i {
    color: var(--gray-400);
}

.jir-category-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.jir-category-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-primary);
    color: var(--gray-600);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-category-btn:hover {
    background: var(--primary-50);
    border-color: var(--primary-200);
    color: var(--primary-600);
}

.jir-category-btn.active {
    background: var(--primary-500);
    border-color: var(--primary-500);
    color: white;
}

.jir-category-btn i {
    font-size: 0.7rem;
}

/* Sort Controls */
.jir-sort-controls {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-4);
    flex-wrap: wrap;
}

.jir-sort-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-600);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-right: var(--spacing-2);
}

.jir-sort-label i {
    color: var(--gray-400);
}

.jir-sort-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-primary);
    color: var(--gray-600);
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-sort-btn:hover {
    background: var(--gray-50);
    border-color: var(--gray-300);
}

.jir-sort-btn.active {
    background: var(--primary-50);
    border-color: var(--primary-300);
    color: var(--primary-600);
}

.jir-sort-btn i {
    font-size: 0.7rem;
}

/* Clear Filters */
.jir-clear-filters {
    display: flex;
    justify-content: flex-end;
}

.jir-clear-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-primary);
    color: var(--gray-500);
    background: transparent;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-clear-btn:hover {
    background: var(--danger-light);
    border-color: var(--danger);
    color: var(--danger);
}

.jir-clear-btn i {
    font-size: 0.7rem;
}

/* トップページ: フィルタークリアボタンを右端に小さく */
body.home .jir-clear-filters {
    display: flex;
    justify-content: flex-end;
    padding: 0;
    background: transparent;
}

body.home .jir-clear-btn {
    width: auto;
    padding: 6px 12px;
    font-size: 0.8rem;
    color: var(--gray-500);
    background: transparent;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
}

body.home .jir-clear-btn:hover {
    background: var(--danger-light);
    border-color: var(--danger);
    color: var(--danger);
}

/* Responsive: Search Filter */
@media (max-width: 768px) {
    .jir-search-filter {
        padding: var(--spacing-4);
    }

    .jir-category-buttons {
        gap: var(--spacing-1);
    }

    .jir-category-btn {
        padding: 6px 10px;
        font-size: 0.7rem;
    }

    .jir-sort-controls {
        flex-wrap: wrap;
    }
}

/* ========================================
   IR List Section
======================================== */
.jir-ir-list {
    background: white;
    border-radius: var(--radius-lg);
    border: 1px solid var(--gray-100);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    margin-bottom: var(--spacing-6);
}

/* IR List Header */
.jir-ir-list-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-5) var(--spacing-6);
    border-bottom: 1px solid var(--gray-100);
    background: var(--gray-50);
}

.jir-ir-list-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin: 0;
}

.jir-ir-list-title i {
    color: var(--primary-500);
}

.jir-ir-count {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.jir-ir-count i {
    color: var(--gray-400);
}

/* IR Table */
.jir-ir-table {
    width: 100%;
    border-collapse: collapse;
}

.jir-ir-table thead {
    background: var(--gray-50);
}

.jir-ir-table th {
    padding: 14px 16px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-600);
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--gray-200);
}

.jir-ir-table tbody tr {
    transition: background var(--transition-fast);
}

.jir-ir-table tbody tr:nth-child(even) {
    background: var(--gray-50);
}

.jir-ir-table tbody tr:hover {
    background: var(--primary-50);
}

.jir-ir-table td {
    padding: 14px 16px;
    font-size: var(--font-size-sm);
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
    vertical-align: middle;
}

/* Stock Code */
.jir-stock-code {
    font-family: var(--font-mono);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--primary-600);
    text-decoration: none;
}

.jir-stock-code:hover {
    color: var(--primary-700);
    text-decoration: underline;
}

/* Company Cell */
.jir-company-cell {
    max-width: 200px;
}

.jir-company-name {
    font-weight: var(--font-weight-medium);
    color: var(--gray-800);
    text-decoration: none;
    display: block;
    margin-bottom: 4px;
}

a.jir-company-name:hover {
    color: var(--primary-600);
}

.jir-sector-tag {
    display: inline-block;
    font-size: 0.7rem;
    color: var(--gray-500);
    background: var(--gray-100);
    padding: 2px 8px;
    border-radius: var(--radius-full);
}

/* IR Type Tag */
.jir-ir-type-tag {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.7rem;
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-full);
    white-space: nowrap;
}

.jir-ir-type-tag.earnings {
    background: var(--primary-50);
    color: var(--primary-700);
}

.jir-ir-type-tag.dividend {
    background: var(--success-light);
    color: #047857;
}

.jir-ir-type-tag.buyback {
    background: var(--purple-light);
    color: var(--purple);
}

.jir-ir-type-tag.strategy {
    background: var(--accent-light);
    color: #0891B2;
}

.jir-ir-type-tag.ma {
    background: var(--warning-light);
    color: #B45309;
}

.jir-ir-type-tag.personnel {
    background: #FEE2E2;
    color: #B91C1C;
}

.jir-ir-type-tag.esg {
    background: #D1FAE5;
    color: #065F46;
}

.jir-ir-type-tag.other {
    background: var(--gray-100);
    color: var(--gray-600);
}

/* Title Cell */
.jir-title-cell {
    max-width: 300px;
}

.jir-ir-title {
    color: var(--gray-800);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-snug);
    display: block;
}

.jir-ir-title:hover {
    color: var(--primary-600);
}

/* IR Badges */
.jir-ir-badges {
    margin-top: 4px;
}

.jir-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.65rem;
    font-weight: var(--font-weight-bold);
    border-radius: var(--radius-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.jir-badge-new {
    background: linear-gradient(135deg, var(--primary-500), var(--accent));
    color: white;
}

/* Date Cell */
.jir-date-cell {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    white-space: nowrap;
}

.jir-date-cell i {
    margin-right: 6px;
    color: var(--gray-400);
}

/* Mobile Cards */
.jir-mobile-cards {
    display: none;
}

.jir-ir-card {
    background: white;
    border-bottom: 1px solid var(--gray-100);
    padding: var(--spacing-4);
}

.jir-ir-card:last-child {
    border-bottom: none;
}

.jir-ir-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-3);
}

.jir-ir-card-meta {
    text-align: right;
}

.jir-ir-card-title {
    margin-bottom: var(--spacing-3);
}

.jir-ir-card-title .jir-ir-title {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-normal);
}

.jir-ir-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Responsive: IR List */
@media (max-width: 768px) {
    .jir-ir-table {
        display: none;
    }

    .jir-mobile-cards {
        display: block;
    }

    .jir-ir-list-header {
        padding: var(--spacing-4);
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-2);
    }
}

/* ========================================
   Pagination
======================================== */
.jir-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    padding: var(--spacing-4) var(--spacing-6);
    margin-bottom: var(--spacing-6);
}

.jir-pagination-links {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
}

.jir-pagination-links a,
.jir-pagination-links span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 12px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-600);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.jir-pagination-links a:hover:not(.current) {
    background: var(--gray-100);
    color: var(--gray-800);
}

.jir-pagination-links .current,
.jir-pagination-links span.current {
    background: var(--primary-500);
    color: white;
}

.jir-pagination-links .current:hover {
    background: var(--primary-500);
    color: white;
}

.jir-pagination-links .prev,
.jir-pagination-links .next {
    gap: var(--spacing-2);
}

.jir-pagination-links .dots {
    border: none;
    background: transparent;
    color: var(--gray-400);
}

/* Per Page Selector */
.jir-per-page {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--font-size-sm);
    color: var(--gray-600);
}

.jir-per-page-select {
    padding: 8px 12px;
    font-size: var(--font-size-sm);
    font-family: var(--font-primary);
    color: var(--gray-700);
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-per-page-select:hover {
    border-color: var(--gray-300);
}

.jir-per-page-select:focus {
    outline: none;
    border-color: var(--primary-300);
    box-shadow: 0 0 0 3px var(--primary-50);
}

/* Responsive: Pagination */
@media (max-width: 768px) {
    .jir-pagination {
        flex-wrap: wrap;
        gap: var(--spacing-4);
        padding: var(--spacing-4);
    }

    .jir-pagination-links {
        flex-wrap: wrap;
        justify-content: center;
    }

    .jir-pagination-links a,
    .jir-pagination-links span {
        min-width: 32px;
        height: 32px;
        padding: 0 8px;
        font-size: var(--font-size-xs);
    }
}

/* ============================================
   Phase 5: Sidebar Styles
   ============================================ */

/* Sidebar Container */
.jir-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

/* Sidebar Section Card */
.jir-sidebar-section {
    background: #FFFFFF;
    border-radius: var(--radius-xl);
    padding: var(--spacing-5);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

/* Sidebar Title */
.jir-sidebar-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--gray-800);
    margin: 0 0 var(--spacing-4) 0;
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid var(--gray-100);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.jir-sidebar-title i {
    color: var(--primary-500);
    font-size: var(--font-size-sm);
}

/* Search Section */
.jir-sidebar-search {
    padding: var(--spacing-4);
}

.jir-search-wrapper input[type="text"] {
    width: 245px;
    padding: var(--spacing-3) var(--spacing-4);
    padding-right: 48px;
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    color: var(--gray-800);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    transition: all var(--transition-fast);
}

.jir-search-wrapper input[type="text"]:focus {
    outline: none;
    background: var(--white);
    border-color: var(--primary-300);
    box-shadow: 0 0 0 3px var(--primary-50);
}

.jir-search-wrapper input[type="text"]::placeholder {
    color: var(--gray-400);
}

.jir-search-wrapper button[type="submit"] {
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: #FFFFFF;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}

.jir-search-wrapper button[type="submit"] i {
    color: #FFFFFF;
}

.jir-search-wrapper button[type="submit"]:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
}

/* Autocomplete Dropdown */
.jir-search-wrapper .sidebar-autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: var(--spacing-1);
    background: var(--white);
    /* border: 1px solid var(--gray-200); */
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 100;
    max-height: 300px;
    overflow-y: auto;
}

.jir-search-wrapper .autocomplete-item {
    padding: var(--spacing-3) var(--spacing-4);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.jir-search-wrapper .autocomplete-item:hover,
.jir-search-wrapper .autocomplete-item.highlighted {
    background: var(--gray-50);
}

.jir-search-wrapper .autocomplete-item .company-name {
    font-weight: 500;
    color: var(--gray-800);
}

.jir-search-wrapper .autocomplete-item .company-code {
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    margin-left: var(--spacing-2);
}

/* Recent Viewed Section */
.jir-recent-viewed {
    /* Uses base .jir-sidebar-section styles */
}

.jir-recent-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.jir-recent-items .recent-viewed-item {
    display: block;
    padding: var(--spacing-3);
    background: var(--gray-50);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: all var(--transition-fast);
}

.jir-recent-items .recent-viewed-item:hover {
    background: var(--primary-50);
}

.jir-recent-items .recent-company-name {
    font-weight: 500;
    color: var(--gray-800);
    font-size: var(--font-size-sm);
}

.jir-recent-items .recent-company-code {
    font-size: var(--font-size-xs);
    color: var(--gray-500);
}

/* Recent Actions */
.jir-recent-actions {
    margin-top: var(--spacing-3);
    text-align: center;
}

.jir-clear-btn {
    font-family: var(--font-body);
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--spacing-2) var(--spacing-3);
    transition: color var(--transition-fast);
}

.jir-clear-btn:hover {
    color: var(--error);
}

/* Ranking Section */
.jir-ranking {
    /* Uses base .jir-sidebar-section styles */
}

.jir-ranking-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
}

.jir-ranking-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3);
    background: var(--gray-50);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-ranking-item:hover {
    background: var(--primary-50);
}

/* Ranking Number Badge */
.jir-ranking-number {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--font-size-sm);
    color: var(--gray-600);
    background: var(--gray-200);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

/* Top 3 Ranking Badges */
.jir-ranking-number.jir-top-1 {
    background: linear-gradient(135deg, #FFD700, #FFA500);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(255, 215, 0, 0.3);
}

.jir-ranking-number.jir-top-2 {
    background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(192, 192, 192, 0.3);
}

.jir-ranking-number.jir-top-3 {
    background: linear-gradient(135deg, #CD7F32, #B87333);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(205, 127, 50, 0.3);
}

/* Ranking Company Link */
.jir-ranking-company {
    flex: 1;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--gray-800);
    text-decoration: none;
    transition: color var(--transition-fast);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.jir-ranking-company:hover {
    color: var(--primary-600);
}

/* Ranking Count */
.jir-ranking-count {
    font-family: var(--font-mono);
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    background: var(--white);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
}

/* Ranking Updated Time */
.jir-ranking-updated {
    margin-top: var(--spacing-3);
    font-size: var(--font-size-xs);
    color: var(--gray-400);
    text-align: center;
}

/* No Ranking Message */
.jir-no-ranking {
    text-align: center;
    color: var(--gray-500);
    font-size: var(--font-size-sm);
    padding: var(--spacing-4);
}

/* Responsive: Sidebar */
@media (max-width: 1024px) {
    .jir-sidebar {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .jir-sidebar-section {
        padding: var(--spacing-4);
    }

    .jir-sidebar-title {
        font-size: var(--font-size-sm);
    }

    .jir-ranking-item {
        padding: var(--spacing-2);
        gap: var(--spacing-2);
    }

    .jir-ranking-number {
        width: 24px;
        height: 24px;
        font-size: var(--font-size-xs);
    }

    .jir-ranking-company {
        font-size: var(--font-size-xs);
    }
}

/* ============================================
   Phase 6: IR Article Page Styles
   ============================================ */

/* IR Detail Container */
.jir-ir-detail {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
}

/* IR Card - single-ir_release.php only */
.jir-ir-detail .jir-ir-card {
    background: #FFFFFF;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    border: 1px solid var(--gray-100);
}

/* IR Header */
.jir-ir-detail .jir-ir-header {
    padding: 32px 32px 24px;
    border-bottom: 1px solid var(--gray-100);
}

/* IR Title */
.jir-ir-detail .jir-ir-title {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.4;
    margin-bottom: var(--spacing-3);
    letter-spacing: -0.02em;
}

/* IR Subtitle */
.jir-ir-detail .jir-ir-subtitle {
    font-size: var(--font-size-base);
    color: var(--gray-600);
    line-height: 1.7;
    margin-bottom: var(--spacing-6);
}

/* Phase 6-2: Meta Information */
.jir-ir-detail .jir-ir-card .jir-ir-meta {
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4) var(--spacing-5);
    margin: 0 0 24px;
}

.jir-ir-detail .jir-ir-card .jir-ir-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-3);
}

/* Importance Badge */
.jir-ir-detail .jir-ir-card .jir-importance-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.jir-ir-detail .jir-ir-card .jir-importance-badge.high {
    background: linear-gradient(135deg, var(--danger), #dc2626);
    color: white;
}

.jir-ir-detail .jir-ir-card .jir-importance-badge.medium {
    background: linear-gradient(135deg, var(--warning), #d97706);
    color: white;
}

.jir-ir-detail .jir-ir-card .jir-importance-badge.low {
    background: var(--gray-200);
    color: var(--gray-600);
}

/* Categories */
.jir-ir-detail .jir-ir-card .jir-ir-categories {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
}

.jir-ir-detail .jir-ir-card .jir-ir-category {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-3);
    background: var(--primary-50);
    color: var(--primary-700);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 500;
    text-decoration: none;
    transition: all var(--transition-base);
}

.jir-ir-detail .jir-ir-card .jir-ir-category:hover {
    background: var(--primary-100);
    color: var(--primary-800);
}

.jir-ir-detail .jir-ir-card .jir-ir-category i {
    font-size: 0.65rem;
    opacity: 0.7;
}

/* Tags */
.jir-ir-detail .jir-ir-card .jir-ir-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2);
    margin-left: auto;
}

.jir-ir-detail .jir-ir-card .jir-ir-tag {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-1);
    padding: var(--spacing-1) var(--spacing-2);
    background: var(--white);
    color: var(--gray-600);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    text-decoration: none;
    transition: all var(--transition-base);
}

.jir-ir-detail .jir-ir-card .jir-ir-tag:hover {
    background: var(--gray-50);
    border-color: var(--gray-300);
    color: var(--gray-700);
}

.jir-ir-detail .jir-ir-card .jir-ir-tag i {
    font-size: 0.6rem;
    color: var(--gray-400);
}

/* Phase 6-3: IR Body & Key Figures */
.jir-ir-detail .jir-ir-body {
    padding: 32px;
}

.jir-ir-detail .jir-ir-section {
    margin-bottom: var(--spacing-6);
    padding: 20px;
    background: white;
    border-left: 4px solid var(--primary-500);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.jir-ir-detail .jir-ir-section:last-child {
    margin-bottom: 0;
}

.jir-ir-detail .jir-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--gray-900);
    margin-bottom: 16px;
}

.jir-ir-detail .jir-section-title i {
    color: var(--primary-500);
}

.jir-ir-detail .jir-section-content {
    color: var(--gray-700);
    line-height: 1.8;
}

/* Key Figures セクション：親のスタイルを無効化（内部にスタイルを移動） */
.jir-ir-detail .jir-ir-section:has(.jir-key-figures-data) {
    padding: 0;
    background: transparent;
    border-left: none;
    border-radius: 0;
    box-shadow: none;
}

/* Key Figures データエリア（箇条書き形式） */
.jir-key-figures-data {
    padding: 20px;
    background: linear-gradient(to right, var(--primary-50) 0%, rgba(239, 246, 255, 0.3) 100%);
    border-left: 4px solid var(--primary-500);
    border-radius: var(--radius-md);
    margin-top: 16px;
}

.jir-key-figures-list {
    list-style: none;
    padding: 0;
    margin: 8px 0 0 0;
}

.jir-key-figures-list li {
    padding: 4px 0;
    line-height: 1.5;
    color: var(--gray-600);
}

.jir-key-figures-list strong {
    color: var(--gray-700);
    font-weight: 600;
    margin-right: 8px;
}

/* Phase 6-4: Summary */
/* AI要約セクション：親のスタイルを無効化 */
.jir-ir-detail .jir-ir-section:has(.jir-ir-summary) {
    padding: 0;
    background: transparent;
    border-left: none;
    border-radius: 0;
    box-shadow: none;
}

/* AI要約の見出し（h3）を非表示 */
.jir-ir-detail .jir-ir-section:has(.jir-ir-summary)>.jir-section-title {
    display: none;
}

.jir-ir-detail .jir-ir-summary {
    /* 内部は装飾なし */
}

.jir-ir-detail .jir-summary-heading {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-top: 28px;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--primary-100);
}

.jir-ir-detail .jir-summary-heading:first-child {
    margin-top: 0;
}

.jir-ir-detail .jir-summary-paragraph {
    color: var(--gray-700);
    line-height: 1.8;
    margin-bottom: 16px;
}

.jir-ir-detail .jir-summary-paragraph:last-child {
    margin-bottom: 0;
}

/* Phase 6-5: Actions & Disclaimer */
.jir-ir-detail .jir-ir-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-3);
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--gray-100);
}

.jir-ir-detail .jir-action-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-5);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-sm);
    font-weight: 600;
    text-decoration: none;
    transition: all var(--duration-normal) var(--ease-out);
}

.jir-ir-detail .jir-action-btn.primary {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    box-shadow: var(--shadow-sm);
}

.jir-ir-detail .jir-action-btn.primary:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.jir-ir-detail .jir-action-btn.primary i {
    color: white;
}

.jir-ir-detail .jir-action-btn.secondary {
    background: var(--white);
    color: var(--gray-700);
    border: 1px solid var(--gray-200);
}

.jir-ir-detail .jir-action-btn.secondary:hover {
    background: var(--gray-50);
    border-color: var(--gray-300);
    color: var(--gray-800);
}

.jir-ir-detail .jir-action-btn.secondary i {
    color: var(--gray-500);
}

/* Disclaimer */
.jir-ir-detail .jir-ir-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 24px;
    padding: 16px 20px;
    background: #FEF3C7;
    border-radius: var(--radius-md);
    font-size: 0.85rem;
    color: #92400E;
    line-height: 1.6;
}

.jir-ir-detail .jir-ir-disclaimer i {
    color: #B45309;
    flex-shrink: 0;
    margin-top: 4px;
}

/* Responsive: IR Article */
@media (max-width: 768px) {
    .jir-ir-detail .jir-ir-header {
        padding: var(--spacing-6);
    }

    .jir-ir-detail .jir-ir-title {
        font-size: 1.35rem;
    }

    .jir-ir-detail .jir-ir-subtitle {
        font-size: var(--font-size-sm);
    }

    /* Phase 6-1: IR Card responsive */
    .jir-ir-detail .jir-ir-card {
        padding: 12px;
    }

    /* Phase 6-2: Meta responsive */
    .jir-ir-detail .jir-ir-card .jir-ir-meta {
        margin: 0 0 var(--spacing-4);
        padding: var(--spacing-3) var(--spacing-4);
    }

    .jir-ir-detail .jir-ir-card .jir-ir-meta-row {
        gap: var(--spacing-2);
    }

    .jir-ir-detail .jir-ir-card .jir-ir-tags {
        margin-left: 0;
        margin-top: var(--spacing-2);
        width: 100%;
    }

    /* Phase 6-3: Body & Key Figures responsive */
    .jir-ir-detail .jir-ir-body {
        padding: 12px;
    }

    .jir-ir-detail .jir-section-title {
        font-size: var(--font-size-base);
    }

    .jir-ir-detail .jir-key-figures {
        grid-template-columns: 1fr;
    }

    .jir-ir-detail .jir-key-figure-item {
        padding: var(--spacing-3);
    }

    /* Phase 6-4: Summary responsive */
    .jir-ir-detail .jir-ir-summary {
        padding: var(--spacing-4);
    }

    .jir-ir-detail .jir-summary-heading {
        font-size: var(--font-size-sm);
    }

    /* Phase 6-5: Actions & Disclaimer responsive */
    .jir-ir-detail .jir-ir-actions {
        flex-direction: column;
        gap: var(--spacing-2);
    }

    .jir-ir-detail .jir-action-btn {
        justify-content: center;
        width: 100%;
    }

    .jir-ir-detail .jir-ir-disclaimer {
        padding: var(--spacing-3);
    }
}

/* ========================================
   Company Detail Page Styles
   企業詳細ページ用スタイル
======================================== */

/* ----------------------------------------
   1. Tab Navigation
   タブナビゲーション
---------------------------------------- */
.jir-tab-navigation {
    display: flex;
    gap: 8px;
    margin-bottom: var(--spacing-6);
    flex-wrap: wrap;
}

.jir-tab-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-100);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-tab-item:hover {
    background: var(--gray-200);
    color: var(--gray-700);
    text-decoration: none;
}

.jir-tab-item.active {
    background: var(--primary-500);
    color: white;
}

.jir-tab-item.active:hover {
    background: var(--primary-600);
    color: white;
}

.jir-tab-item i {
    font-size: 0.85rem;
}

/* Tab Content */
.jir-tab-content {
    display: none;
}

.jir-tab-content.active {
    display: block;
}

/* ----------------------------------------
   2. Cards (Common)
   カード（共通）
---------------------------------------- */
.jir-card {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    border: 1px solid var(--gray-100);
    transition: box-shadow var(--transition-base);
    margin-bottom: var(--spacing-6);
}

.jir-card:last-child {
    margin-bottom: 0;
}

.jir-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--gray-100);
    background: linear-gradient(to right, var(--primary-50), transparent);
}

.jir-card-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.jir-card-title i {
    color: var(--primary-500);
    font-size: 1rem;
}

.jir-card-body {
    padding: 24px;
}

/* ----------------------------------------
   3. Section Header
   セクションヘッダー
---------------------------------------- */
.jir-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-5);
    padding-bottom: var(--spacing-4);
    border-bottom: 1px solid var(--gray-200);
    flex-wrap: wrap;
    gap: var(--spacing-4);
}

.jir-section-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.jir-section-title i {
    color: var(--primary-500);
}

.jir-section-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.jir-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-action-btn:hover {
    background: var(--gray-200);
    color: var(--gray-700);
}

.jir-action-btn i {
    font-size: 0.8rem;
}

/* ----------------------------------------
   4. Financial Ratios
   財務比率
---------------------------------------- */
.jir-financial-ratios {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: var(--spacing-5);
}

.jir-ratio-item {
    padding: 20px;
    background: var(--gray-50);
    border-radius: var(--radius-md);
    text-align: center;
    transition: all var(--transition-fast);
}

.jir-ratio-item:hover {
    background: var(--primary-50);
}

.jir-ratio-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--gray-800);
    margin-bottom: 4px;
}

.jir-ratio-label {
    font-size: 0.85rem;
    color: var(--gray-500);
    margin-bottom: 8px;
}

.jir-ratio-comparison {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--gray-500);
}

.jir-ratio-comparison.positive {
    color: var(--success);
}

.jir-ratio-comparison.negative {
    color: var(--danger);
}

/* ----------------------------------------
   5. IR List
   IR一覧
---------------------------------------- */
.jir-ir-list {
    display: flex;
    flex-direction: column;
    list-style: none;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

/* トップページ: IR情報一覧の背景カード */
body.home .jir-ir-list {
    background: var(--white);
    border-radius: var(--radius-xl);
    border: 1px solid var(--gray-100);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.jir-ir-item {
    padding: 20px 0;
    transition: all var(--transition-fast);
}

.jir-ir-item:hover {
    background: var(--gray-50);
    margin: 0 -24px;
    padding: 20px 24px;
}

.jir-ir-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.jir-ir-date {
    font-size: 0.85rem;
    color: var(--gray-500);
}

.jir-ir-date i {
    margin-right: 6px;
    color: var(--primary-400);
}

.jir-ir-tag {
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-sm);
    letter-spacing: 0.02em;
}

/* 17種類のIRカテゴリー色 */
.jir-ir-tag.financial_summary {
    background: #D1FAE5;
    color: #047857;
}

.jir-ir-tag.share_buyback {
    background: #CCFBF1;
    color: #0F766E;
}

.jir-ir-tag.share_cancellation {
    background: #CFFAFE;
    color: #0E7490;
}

.jir-ir-tag.dividend {
    background: #E0F2FE;
    color: #0369A1;
}

.jir-ir-tag.earnings_guidance {
    background: #EDE9FE;
    color: #6D28D9;
}

.jir-ir-tag.executive_change {
    background: #FCE7F3;
    color: #BE185D;
}

.jir-ir-tag.sales_update {
    background: #FFEDD5;
    color: #C2410C;
}

.jir-ir-tag.disclosure_update {
    background: #FEE2E2;
    color: #B91C1C;
}

.jir-ir-tag.capital_policy {
    background: #E0E7FF;
    color: #4338CA;
}

.jir-ir-tag.tender_offer {
    background: #FEF3C7;
    color: #B45309;
}

.jir-ir-tag.corporate_restructuring {
    background: #DBEAFE;
    color: #1D4ED8;
}

.jir-ir-tag.m_and_a_alliance {
    background: #FEF9C3;
    color: #A16207;
}

.jir-ir-tag.product_announcement {
    background: #ECFCCB;
    color: #4D7C0F;
}

.jir-ir-tag.business_update {
    background: #DBEAFE;
    color: #1E40AF;
}

.jir-ir-tag.stock_option {
    background: #F3E8FF;
    color: #7C3AED;
}

.jir-ir-tag.esg_sustainability {
    background: #D1FAE5;
    color: #047857;
}

.jir-ir-tag.general_ir {
    background: var(--gray-100);
    color: var(--gray-600);
}

.jir-ir-tag.new {
    background: var(--danger);
    color: white;
    animation: jir-pulse 2s infinite;
}

@keyframes jir-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }
}

.jir-ir-content {
    /* Container for IR content */
}

.jir-card .jir-ir-title {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--gray-900);
    margin-bottom: 12px;
    line-height: 1.4;
}

.jir-ir-summary {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.7;
    margin-bottom: 12px;
}

/* IR項目全体をクリッカブルに */
.jir-ir-item-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: var(--transition-fast);
}

.jir-ir-item-link:hover .jir-ir-title {
    color: var(--primary-600);
}

.jir-ir-item-link:hover .jir-ir-link {
    color: var(--primary-700);
}

.jir-ir-item-link:hover .jir-ir-link i {
    transform: translateX(4px);
}

.jir-ir-link {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--primary-600);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition-fast);
}

.jir-ir-link i {
    transition: transform var(--transition-fast);
}

/* ----------------------------------------
   6. Filter Controls
   フィルターコントロール
---------------------------------------- */
.jir-filter-controls {
    display: flex;
    gap: 12px;
}

.jir-ir-filter {
    padding: 8px 16px;
    font-size: 0.85rem;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    background: white;
    color: var(--gray-700);
    cursor: pointer;
    outline: none;
    transition: all var(--transition-fast);
    min-width: 140px;
    width: auto;
}

.jir-ir-filter:hover {
    border-color: var(--gray-300);
}

.jir-ir-filter:focus {
    border-color: var(--primary-500);
    box-shadow: 0 0 0 3px var(--primary-100);
}

/* ----------------------------------------
   7. View More / Other Elements
   もっと見る・その他の要素
---------------------------------------- */
.jir-view-more-container {
    text-align: center;
    padding-top: 16px;
}

.jir-view-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--primary-600);
    background: var(--primary-50);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-view-more-btn:hover {
    background: var(--primary-100);
    color: var(--primary-700);
    text-decoration: none;
}

/* TradingView Container */
.jir-tradingview-container {
    margin-bottom: var(--spacing-5);
    border-radius: var(--radius-md);
    overflow: hidden;
}

/* ----------------------------------------
   Responsive: Company Detail Page
   レスポンシブ対応
---------------------------------------- */
@media (max-width: 768px) {

    /* Tab Navigation */
    .jir-tab-navigation {
        gap: 6px;
    }

    .jir-tab-item {
        padding: 10px 16px;
        font-size: 0.85rem;
    }

    /* Cards */
    .jir-card-header {
        padding: 16px 20px;
    }

    .jir-card-body {
        padding: 20px;
    }

    .jir-card-title {
        width: 100%;
    }

    /* Section Header */
    .jir-section-header {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .jir-section-actions {
        width: auto;
    }

    .jir-action-btn {
        flex: 1;
        justify-content: center;
    }

    /* Financial Ratios */
    .jir-financial-ratios {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .jir-ratio-item {
        padding: 16px;
    }

    .jir-ratio-value {
        font-size: 1.5rem;
    }

    /* IR List */
    .jir-ir-item {
        padding: 16px 0;
    }

    .jir-ir-item:hover {
        margin: 0 -20px;
        padding: 16px 20px;
    }

    .jir-ir-title {
        font-size: 1rem;
    }

    /* Filter Controls */
    .jir-filter-controls {
        width: 100%;
    }

    .jir-ir-filter {
        flex: none;
        min-width: 140px;
        width: auto;
    }
}

@media (max-width: 480px) {
    .jir-tab-item {
        padding: 8px 12px;
        font-size: 0.8rem;
    }

    .jir-tab-item i {
        display: none;
    }

    .jir-section-title {
        font-size: 1.1rem;
    }

    .jir-ratio-value {
        font-size: 1.35rem;
    }
}

/* ========================================
   7. 企業一覧ページ (Company Archive)
   ======================================== */

/* ページタイトル（非表示） */
.jir-page-title {
    display: none;
}

/* フィルターセクション */
.jir-filter-section {
    background: var(--white);
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    margin-bottom: 24px;
}

.jir-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.jir-filter-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gray-700);
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-filter-title i {
    color: var(--primary-500);
}

/* 検索ボックス */
.jir-search-box {
    display: flex;
    flex-direction: row;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    border: 1px solid var(--gray-200);
    margin-bottom: 16px;
}

/* 検索ボックス内の入力フィールド（トップページ、企業一覧用） */
.jir-search-box .jir-search-input {
    flex: 1;
    border: none;
    outline: none;
    padding: 7px 16px;
    font-size: 1rem;
    color: var(--gray-700);
}

.jir-search-box .jir-search-input::placeholder {
    color: var(--gray-400);
}

.jir-search-btn,
.jir-search-button {
    padding: 0 14px;
    height: 56px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white !important;
    font-size: 1rem;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: all var(--transition-base);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.jir-search-btn:hover,
.jir-search-button:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    color: white !important;
}

/* クリアボタン */
.jir-filter-clear {
    text-align: right;
    margin-bottom: 16px;
}

/* ========================================
   企業一覧ページ: 検索エリアはトップページと統一
   ※ .jir-filter-section-top を使用（重複CSS削除済み）
======================================== */

/* 企業一覧ページ: パンくずリストとメインコンテンツの間隔を調整 */
/* ※ /company/ は front-page.php から include されるため body.home のまま */
/* ※ .jir-filter-section が存在する場合は企業一覧ページと判定 */
.jir-breadcrumbs + .jir-container .jir-main-layout {
    margin-top: 0;
}

/* 企業一覧ページ: テーブルエリアの白背景 */
.jir-company-list-card {
    background: #FFFFFF !important;
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    overflow: hidden;
}

.jir-company-list-card .jir-company-table {
    margin: 0;
    border: none;
    box-shadow: none;
    background: #FFFFFF !important;
}

.jir-clear-btn {
    font-size: 0.85rem;
    color: var(--gray-500);
    background: none;
    border: none;
    cursor: pointer;
    transition: color var(--transition-fast);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.jir-clear-btn:hover {
    color: var(--danger);
}

/* セクターフィルター */
.jir-sector-filter {
    margin-bottom: 24px;
}

.jir-filter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-end;
}

.jir-filter-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 200px;
}

.jir-filter-item label {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
}

.jir-filter-item input,
.jir-filter-item select {
    padding: 10px 14px;
    font-size: 0.95rem;
    font-family: inherit;
    color: var(--gray-700);
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast);
}

.jir-filter-item input:focus,
.jir-filter-item select:focus {
    outline: none;
    border-color: var(--primary-500);
}

.jir-sort-select {
    padding: 10px 36px 10px 14px;
    font-size: 0.9rem;
    font-family: inherit;
    color: var(--gray-700);
    background: var(--gray-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    appearance: none;
    cursor: pointer;
}

.jir-sort-select:focus {
    outline: none;
    border-color: var(--primary-500);
}

.jir-filter-button {
    display: flex;
    align-items: flex-end;
}

.jir-search-button {
    padding: 10px 20px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: var(--white);
    font-size: 0.95rem;
    font-weight: 600;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.jir-search-button:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    transform: translateY(-1px);
}

/* 企業一覧カード */
.jir-company-list-card {
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    overflow: hidden;
    margin-bottom: 24px;
}

/* 企業テーブル */
.jir-company-table {
    width: 100%;
    border-collapse: collapse;
}

.jir-company-table th {
    padding: 14px 20px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-500);
    text-align: left;
    background: var(--gray-50);
    border-bottom: 2px solid var(--gray-200);
    white-space: nowrap;
}

.jir-company-table td {
    padding: 16px 20px;
    font-size: 0.95rem;
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
    vertical-align: middle;
}

.jir-company-table tbody tr {
    transition: background var(--transition-fast);
}

.jir-company-table tbody tr:hover {
    background: var(--primary-50);
}

.jir-company-table tbody tr:last-child td {
    border-bottom: none;
}

/* 証券コード */
.jir-stock-code {
    font-family: 'Outfit', monospace;
    font-weight: 600;
    color: var(--primary-600);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.jir-stock-code:hover {
    color: var(--primary-700);
}

/* 企業名 */
.jir-company-name {
    font-weight: 500;
    color: var(--gray-800);
    text-decoration: none;
}

/* リンクの企業名のみhover効果 */
a.jir-company-name {
    transition: color var(--transition-fast);
}

a.jir-company-name:hover {
    color: var(--primary-600);
}

/* セクターバッジ */
.jir-sector-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-sm);
    white-space: nowrap;
    background: var(--gray-100);
    color: var(--gray-600);
}

/* セクター別カラー（Yahoo Finance APIのセクター名ベース） */
/* Energy / 鉱業 */
.jir-sector-badge.energy {
    background: #FEF3C7;
    color: #D97706;
}

/* Basic Materials / 化学・素材 */
.jir-sector-badge.basic-materials {
    background: #FEE2E2;
    color: #EF4444;
}

/* Industrials / 機械・製造 */
.jir-sector-badge.industrials {
    background: #CFFAFE;
    color: #06B6D4;
}

/* Consumer Cyclical / 小売業 */
.jir-sector-badge.consumer-cyclical {
    background: #FFEDD5;
    color: #F97316;
}

/* Consumer Defensive / 食料品 */
.jir-sector-badge.consumer-defensive {
    background: #FEF3C7;
    color: #92400E;
}

/* Healthcare / 医薬品 */
.jir-sector-badge.healthcare {
    background: #FCE7F3;
    color: #DB2777;
}

/* Financial Services / 銀行業・金融 */
.jir-sector-badge.financial-services {
    background: #DBEAFE;
    color: #1D4ED8;
}

/* Technology / 情報・通信業 */
.jir-sector-badge.technology {
    background: #EDE9FE;
    color: #7C3AED;
}

/* Communication Services / 情報・通信業 */
.jir-sector-badge.communication-services {
    background: #DBEAFE;
    color: #2563EB;
}

/* Utilities / 電気・ガス業 */
.jir-sector-badge.utilities {
    background: #FEF9C3;
    color: #CA8A04;
}

/* Real Estate / 不動産業 */
.jir-sector-badge.real-estate {
    background: #D1FAE5;
    color: #059669;
}

/* 日本語セクター名（フォールバック） */
.jir-sector-badge.construction {
    background: #D1FAE5;
    color: #10B981;
}

.jir-sector-badge.machinery {
    background: #CFFAFE;
    color: #06B6D4;
}

.jir-sector-badge.electric-appliances,
.jir-sector-badge.electrical-equipment {
    background: #DBEAFE;
    color: #3B82F6;
}

.jir-sector-badge.transportation-equipment {
    background: #D1FAE5;
    color: #10B981;
}

.jir-sector-badge.precision-instruments {
    background: #FEF3C7;
    color: #F59E0B;
}

.jir-sector-badge.metal-products {
    background: #E2E8F0;
    color: #64748B;
}

.jir-sector-badge.chemicals {
    background: #FEE2E2;
    color: #EF4444;
}

.jir-sector-badge.iron-steel,
.jir-sector-badge.iron-and-steel {
    background: #E2E8F0;
    color: #475569;
}

.jir-sector-badge.nonferrous-metals {
    background: #E0E7FF;
    color: #6366F1;
}

.jir-sector-badge.glass-ceramics {
    background: #D1FAE5;
    color: #10B981;
}

.jir-sector-badge.pulp-paper {
    background: #CFFAFE;
    color: #0891B2;
}

.jir-sector-badge.textiles-apparel,
.jir-sector-badge.textiles {
    background: #FCE7F3;
    color: #EC4899;
}

.jir-sector-badge.oil-coal,
.jir-sector-badge.oil-and-coal-products {
    background: #FEF3C7;
    color: #D97706;
}

.jir-sector-badge.mining {
    background: #E2E8F0;
    color: #57534E;
}

.jir-sector-badge.electric-power-gas {
    background: #FEF9C3;
    color: #CA8A04;
}

.jir-sector-badge.retail-trade,
.jir-sector-badge.retail {
    background: #FFEDD5;
    color: #F97316;
}

.jir-sector-badge.wholesale-trade,
.jir-sector-badge.wholesale {
    background: #D1FAE5;
    color: #0EA5E9;
}

.jir-sector-badge.services {
    background: #E0E7FF;
    color: #8B5CF6;
}

.jir-sector-badge.foods,
.jir-sector-badge.food {
    background: #FEE2E2;
    color: #EF4444;
}

.jir-sector-badge.pharmaceutical,
.jir-sector-badge.pharmaceuticals {
    background: #FCE7F3;
    color: #DB2777;
}

.jir-sector-badge.banks,
.jir-sector-badge.banking {
    background: #DBEAFE;
    color: #1D4ED8;
}

.jir-sector-badge.securities,
.jir-sector-badge.securities-and-commodity-futures {
    background: #D1FAE5;
    color: #059669;
}

.jir-sector-badge.insurance {
    background: #EDE9FE;
    color: #7C3AED;
}

.jir-sector-badge.other-financing-business,
.jir-sector-badge.other-financial-services {
    background: #E0E7FF;
    color: #4F46E5;
}

.jir-sector-badge.information-communication,
.jir-sector-badge.information-and-communication {
    background: #DBEAFE;
    color: #2563EB;
}

.jir-sector-badge.land-transportation {
    background: #FFEDD5;
    color: #EA580C;
}

.jir-sector-badge.marine-transportation {
    background: #CFFAFE;
    color: #0891B2;
}

.jir-sector-badge.air-transportation {
    background: #E0F2FE;
    color: #0284C7;
}

.jir-sector-badge.warehousing,
.jir-sector-badge.warehousing-and-harbor-transportation {
    background: #FEF3C7;
    color: #B45309;
}

.jir-sector-badge.other-products {
    background: #F1F5F9;
    color: #64748B;
}

.jir-sector-badge.fishery,
.jir-sector-badge.agriculture-and-forestry {
    background: #D1FAE5;
    color: #059669;
}

.jir-sector-badge.rubber-products {
    background: #E2E8F0;
    color: #475569;
}

/* お気に入り列 */
.jir-favorite-column {
    text-align: center;
}

/* お気に入りボタン */
.favorite-btn-icon {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.25rem;
    padding: 4px;
    transition: all var(--transition-fast);
}

.favorite-btn-icon i {
    color: var(--gray-300);
    transition: all var(--transition-fast);
}

.favorite-btn-icon:hover i {
    color: var(--warning);
    transform: scale(1.15);
}

.favorite-btn-icon.is-favorite i {
    color: var(--warning);
}

.favorite-btn-icon.is-favorite:hover i {
    color: var(--warning);
    opacity: 0.8;
}

/* 企業一覧ページ レスポンシブ */
@media (max-width: 768px) {
    .jir-page-title {
        font-size: 1.5rem;
    }

    .jir-filter-form {
        flex-direction: column;
    }

    .jir-filter-item {
        min-width: 100%;
    }

    /* 検索入力フィールド - 削除（.jir-filter-section-topに統一済み） */

    /* テーブルコンテナを横スクロール可能に */
    .jir-company-list-card,
    .jir-ir-list-card {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
    }

    .jir-company-table th,
    .jir-company-table td {
        padding: 10px 12px;
        font-size: 0.9rem;
        border-left: none;
        border-right: none;
    }

    /* 企業一覧テーブルの企業名（折り返しを防ぐ） */
    .jir-company-table .jir-company-name {
        font-size: 0.95rem;
        line-height: 1.4;
        white-space: nowrap;
    }

    /* 証券コード */
    .jir-stock-code {
        white-space: nowrap;
    }

    /* セクターバッジ */
    .jir-sector-badge {
        white-space: nowrap;
        font-size: 0.7rem;
        padding: 4px 8px;
    }

    /* 証券コード列 */
    .jir-company-table th:nth-child(1),
    .jir-company-table td:nth-child(1) {
        width: 65px;
        min-width: 65px;
        padding-right: 12px;
    }

    /* 企業名列（残りのスペースを使用） */
    .jir-company-table th:nth-child(2),
    .jir-company-table td:nth-child(2) {
        width: auto;
        min-width: 180px;
        padding-left: 12px;
    }

    /* セクター列 */
    .jir-company-table th:nth-child(3),
    .jir-company-table td:nth-child(3) {
        width: 80px;
        min-width: 80px;
    }

    /* スクロールバーのスタイル */
    .jir-company-list-card::-webkit-scrollbar,
    .jir-ir-list-card::-webkit-scrollbar {
        height: 6px;
    }

    .jir-company-list-card::-webkit-scrollbar-track,
    .jir-ir-list-card::-webkit-scrollbar-track {
        background: var(--gray-100);
        border-radius: 3px;
    }

    .jir-company-list-card::-webkit-scrollbar-thumb,
    .jir-ir-list-card::-webkit-scrollbar-thumb {
        background: var(--primary-300);
        border-radius: 3px;
    }

    .jir-company-list-card::-webkit-scrollbar-thumb:hover,
    .jir-ir-list-card::-webkit-scrollbar-thumb:hover {
        background: var(--primary-500);
    }
}

/* 企業一覧ページ レスポンシブ: スマホ */
@media (max-width: 480px) {
    .jir-company-name {
        font-size: 0.875rem;
    }

    .jir-company-table th,
    .jir-company-table td {
        padding: 10px 12px;
        font-size: 0.85rem;
    }

    .jir-sector-badge {
        font-size: 0.7rem;
        padding: 2px 6px;
    }
}

/* ============================================
   Section 8: お問い合わせページ
   ============================================ */

/* コンテンツ中央揃え（About Usと同じ幅） */
.jir-contact-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 48px 0 80px;
}

/* ページ固有のカードスタイル調整 */
.jir-contact-intro {
    margin-bottom: var(--spacing-5);
}

.jir-lead {
    font-size: 1.1rem;
    color: var(--gray-600);
    line-height: 1.8;
}

/* 注意事項ボックス */
.jir-contact-note {
    background: var(--warning-light, #FEF3C7);
    padding: var(--spacing-4) var(--spacing-5);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--warning);
}

.jir-note-title {
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.jir-note-title i {
    color: var(--warning);
}

.jir-contact-note p {
    color: var(--gray-700);
    font-size: var(--font-size-sm);
    line-height: 1.7;
    margin: 0;
}

/* フォームコンテナ */
.jir-contact-form-container {
    max-width: 100%;
}

.jir-contact-form-title {
    font-size: 1.25rem;
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    margin-bottom: var(--spacing-5);
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.jir-contact-form-title i {
    color: var(--primary-500);
}

/* Contact Form 7 スタイル */
.jir-form-wrapper .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.jir-form-wrapper .wpcf7-form p {
    margin: 0;
}

.jir-form-wrapper .wpcf7-form label {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-700);
    margin-bottom: var(--spacing-2);
}

/* 入力フィールド共通 */
.jir-form-wrapper .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    width: 100%;
    padding: 12px 16px;
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: var(--gray-700);
    background: white;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
    outline: none;
    transition: all var(--transition-fast);
}

.jir-form-wrapper .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance)::placeholder {
    color: var(--gray-400);
}

.jir-form-wrapper .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance):focus {
    border-color: var(--primary-500);
    box-shadow: 0 0 0 3px var(--primary-100);
}

/* テキストエリア */
.jir-form-wrapper textarea.wpcf7-form-control {
    min-height: 150px;
    resize: vertical;
    line-height: 1.7;
}

/* セレクトボックス */
.jir-form-wrapper select.wpcf7-form-control {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
    cursor: pointer;
}

/* 送信ボタン */
.jir-form-wrapper .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2);
    padding: 14px 32px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-form-wrapper .wpcf7-submit:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700));
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.jir-form-wrapper .wpcf7-submit:active {
    transform: translateY(0);
}

/* バリデーションエラー */
.jir-form-wrapper .wpcf7-not-valid {
    border-color: var(--danger) !important;
}

.jir-form-wrapper .wpcf7-not-valid-tip {
    color: var(--danger);
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-1);
}

/* 送信完了/エラーメッセージ */
.jir-form-wrapper .wpcf7-response-output {
    margin-top: var(--spacing-4);
    padding: var(--spacing-4);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
}

.jir-form-wrapper .wpcf7-mail-sent-ok {
    background: var(--success-light);
    border: 1px solid var(--success);
    color: var(--success);
}

.jir-form-wrapper .wpcf7-validation-errors,
.jir-form-wrapper .wpcf7-spam-blocked {
    background: var(--danger-light);
    border: 1px solid var(--danger);
    color: var(--danger);
}

/* 連絡先情報 */
.jir-contact-info {
    /* コンテナスタイル */
}

.jir-contact-info-title {
    font-size: 1.15rem;
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    margin-bottom: var(--spacing-5);
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.jir-contact-info-title i {
    color: var(--primary-500);
}

.jir-contact-info-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--gray-100);
    color: var(--gray-700);
}

.jir-contact-info-item:last-of-type {
    border-bottom: none;
}

.jir-contact-info-item i {
    color: var(--primary-500);
    width: 20px;
    text-align: center;
}

/* 営業時間 */
.jir-business-hours {
    margin-top: var(--spacing-5);
    padding: var(--spacing-4);
    background: var(--gray-50);
    border-radius: var(--radius-md);
}

.jir-hours-title {
    font-weight: var(--font-weight-medium);
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
}

.jir-hours-text {
    font-size: var(--font-size-sm);
    color: var(--gray-600);
    line-height: 1.7;
    margin: 0;
}

/* お問い合わせページ レスポンシブ */
@media (max-width: 768px) {
    .jir-lead {
        font-size: 1rem;
    }

    .jir-contact-form-title {
        font-size: 1.1rem;
    }

    .jir-form-wrapper .wpcf7-submit {
        width: 100%;
    }
}

/* ===============================
   Section 9: Aboutページ
   =============================== */

/* イントロ・リード文 */
.jir-about-intro {
    margin-bottom: var(--spacing-6);
}

.jir-about-lead {
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--gray-700);
    margin-bottom: var(--spacing-4);
}

/* ミッションステートメント */
.jir-about-mission-statement {
    background: linear-gradient(135deg, var(--primary-50), var(--primary-100));
    border-left: 4px solid var(--primary-500);
    padding: var(--spacing-5);
    border-radius: var(--radius-md);
    margin-top: var(--spacing-4);
    font-size: 1rem;
    line-height: 1.8;
    color: var(--gray-800);
}

/* 解決策グリッド */
.jir-solutions-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.jir-solution-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-4);
    padding: var(--spacing-5);
    background: var(--gray-50);
    border-radius: var(--radius-md);
    border: 1px solid var(--gray-200);
    transition: var(--transition-fast);
}

.jir-solution-item:hover {
    background: white;
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.jir-solution-check {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.jir-solution-content h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
}

.jir-solution-content p {
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.7;
    margin: 0;
}

/* 2カラムレイアウト */
.jir-two-column {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-6);
    margin: var(--spacing-6) 0;
}

/* 情報リスト */
.jir-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.jir-info-list li {
    padding: var(--spacing-3) 0;
    border-bottom: 1px solid var(--gray-100);
    font-size: 0.95rem;
    color: var(--gray-700);
    line-height: 1.6;
}

.jir-info-list li:last-child {
    border-bottom: none;
}

.jir-info-list li::before {
    content: "•";
    color: var(--primary-500);
    font-weight: bold;
    margin-right: var(--spacing-2);
}

/* 特徴グリッド */
.jir-features-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-5);
}

.jir-feature-item {
    padding: var(--spacing-5);
    border-radius: var(--radius-md);
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    transition: var(--transition-fast);
}

.jir-feature-item:hover {
    background: white;
    box-shadow: var(--shadow-md);
    border-color: var(--primary-200);
}

.jir-feature-item i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-size: 1.2rem;
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-3);
}

.jir-feature-item:nth-child(2) i {
    background: linear-gradient(135deg, #8B5CF6, #7C3AED);
}

.jir-feature-item:nth-child(3) i {
    background: linear-gradient(135deg, var(--success), #059669);
}

.jir-feature-item:nth-child(4) i {
    background: linear-gradient(135deg, var(--accent), #0891B2);
}

.jir-feature-item h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
}

.jir-feature-item p {
    font-size: 0.9rem;
    color: var(--gray-600);
    line-height: 1.7;
    margin: 0;
}

/* 利用シーン */
.jir-use-cases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-5);
}

.jir-use-case-item {
    text-align: center;
    padding: var(--spacing-5);
    border-radius: var(--radius-md);
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    transition: var(--transition-fast);
}

.jir-use-case-item:hover {
    background: white;
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.jir-use-case-item i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: var(--primary-50);
    color: var(--primary-600);
    font-size: 1.5rem;
    border-radius: 50%;
    margin-bottom: var(--spacing-3);
}

.jir-use-case-item:nth-child(2) i {
    background: #CFFAFE;
    color: #0891B2;
}

.jir-use-case-item:nth-child(3) i {
    background: #EDE9FE;
    color: #8B5CF6;
}

.jir-use-case-item h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
}

.jir-use-case-item p {
    font-size: 0.9rem;
    color: var(--gray-500);
    line-height: 1.6;
    margin: 0;
}

/* ミッションカード強調 */
.jir-mission-card {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
    color: white;
    border: none !important;
}

.jir-mission-card .jir-card-body {
    padding: var(--spacing-8);
}

.jir-mission-content {
    text-align: center;
}

.jir-mission-content h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: var(--spacing-4);
    color: white;
}

.jir-mission-text {
    font-size: 1.15rem;
    line-height: 1.8;
    opacity: 0.95;
    margin: 0;
}

/* Aboutページ レスポンシブ */
@media (max-width: 768px) {
    .jir-two-column {
        grid-template-columns: 1fr;
    }

    .jir-features-grid {
        grid-template-columns: 1fr;
    }

    .jir-use-cases {
        grid-template-columns: 1fr;
    }

    .jir-about-lead {
        font-size: 1rem;
    }

    .jir-mission-card .jir-card-body {
        padding: var(--spacing-6);
    }

    .jir-mission-content h2 {
        font-size: 1.25rem;
    }

    .jir-mission-text {
        font-size: 1rem;
    }
}

/* ===============================
   Section 10: 利用規約ページ
   =============================== */

/* ヒーローセクション（シアン系） */
.jir-page-hero {
    background: linear-gradient(135deg, #06B6D4 0%, #0891B2 100%);
    padding: 64px 0;
    color: white;
    position: relative;
    overflow: hidden;
}

.jir-page-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 50%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.05) 0%, transparent 60%);
    pointer-events: none;
}

.jir-page-hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
}

.jir-page-hero h1 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
}

.jir-page-hero-subtitle {
    font-size: 1.1rem;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto;
}

.jir-page-hero-meta {
    display: flex;
    justify-content: center;
    gap: 32px;
    margin-top: 24px;
    font-size: 0.9rem;
    opacity: 0.8;
}

.jir-page-hero-meta span {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Aboutページ用ヒーロー（青系） */
.jir-about-hero {
    background: linear-gradient(135deg, #2563EB 0%, #1E40AF 50%, #3B82F6 100%);
    background-size: 200% 200%;
    animation: jir-gradient-shift 15s ease-in-out infinite;
    padding: 60px 0;
}

/* グラデーション移動アニメーション */
@keyframes jir-gradient-shift {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* パルスアニメーション（呼吸のような明暗） - 弱め */
@keyframes jir-pulse {

    0%,
    100% {
        filter: brightness(1);
    }

    50% {
        filter: brightness(1.015);
    }
}

.jir-about-hero::before {
    top: -30%;
    right: -10%;
    width: 60%;
    height: 160%;
}

.jir-about-hero::after {
    content: '';
    position: absolute;
    bottom: -20%;
    left: -10%;
    width: 40%;
    height: 100%;
    background: radial-gradient(ellipse, rgba(6, 182, 212, 0.2) 0%, transparent 60%);
    pointer-events: none;
}

.jir-about-hero .jir-page-hero-content {
    max-width: 900px;
    margin: 0 auto;
}

/* ヒーローバッジ */
.jir-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 500;
    margin-bottom: 24px;
}

.jir-hero-badge i {
    font-size: 1rem;
}

/* ヒーロータイトル（About用） */
.jir-about-hero h1 {
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 24px;
    line-height: 1.2;
}

/* ヒーローサブタイトル（About用） */
.jir-about-hero .jir-page-hero-subtitle {
    font-size: 1.15rem;
    line-height: 1.9;
    opacity: 0.95;
    margin-bottom: 32px;
}

/* ヒーローミッション */
.jir-hero-mission {
    font-size: 1.05rem;
    padding: 20px 32px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    border-left: 4px solid var(--accent);
    text-align: left;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.8;
}

.jir-hero-mission i {
    color: var(--accent);
    margin-right: 10px;
}

/* ========================================
   About Page Sections
======================================== */

/* Section Base */
.jir-about-section {
    padding: 80px 0;
}

/* Section Header */
.jir-section-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 48px;
}

.jir-section-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-size: 1.5rem;
    border-radius: 16px;
    margin: 0 auto 20px;
    box-shadow: var(--shadow-lg);
}

.jir-section-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--gray-900);
    letter-spacing: -0.02em;
    margin-bottom: 12px;
}

.jir-section-subtitle {
    font-size: 1rem;
    color: var(--gray-500);
    max-width: 600px;
    margin: 0 auto;
}

/* Problems Section */
.jir-problems-section {
    background: linear-gradient(180deg, var(--primary-50) 0%, white 100%);
}

.jir-about-section .jir-container {
    max-width: 1200px;
}

.jir-problems-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.jir-problem-card {
    background: white;
    border-radius: 24px;
    padding: 36px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.jir-problem-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary-500), var(--accent));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.jir-problem-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
}

.jir-problem-card:hover::before {
    opacity: 1;
}

.jir-problem-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-size: 1.5rem;
    border-radius: 14px;
    margin-bottom: 20px;
}

.jir-problem-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
    line-height: 1.5;
}

.jir-problem-solution {
    display: flex;
    gap: 10px;
    padding: 16px;
    background: var(--success-light);
    border-radius: 12px;
}

.jir-problem-solution i {
    color: var(--success);
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.jir-problem-solution p {
    font-size: 0.9rem;
    color: var(--gray-700);
    line-height: 1.6;
    margin: 0;
}

/* Stats Section */
.jir-stats-section {
    background: linear-gradient(135deg, var(--gray-700) 0%, var(--gray-900) 100%);
    color: white;
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

/* Stats Section Floating Icons（共通CSSを使用、opacityのみ調整） */
.jir-stats-section .jir-floating-icon {
    opacity: 0.08;
}

.jir-stats-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 64px;
    position: relative;
    z-index: 1;
}

.jir-stats-text {
    flex: 1;
}

.jir-stats-text h2 {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 16px;
}

.jir-stats-text p {
    font-size: 1.05rem;
    line-height: 1.8;
    opacity: 0.9;
    margin-bottom: 20px;
}

.jir-stats-text .stats-link {
    color: var(--primary-400);
    text-decoration: underline;
}

.jir-stats-text .jir-arrow-link {
    color: var(--primary-400);
    font-weight: 500;
}

.jir-stats-numbers {
    display: flex;
    gap: 48px;
}

.jir-stat-item {
    text-align: center;
}

.jir-stat-number {
    font-size: 4rem;
    font-weight: 800;
    background: linear-gradient(135deg, var(--primary-400), var(--accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
    margin-bottom: 8px;
}

.jir-stat-label {
    font-size: 0.9rem;
    color: var(--gray-400);
}

.jir-stat-sublabel {
    font-size: 0.8rem;
    color: var(--gray-500);
}

/* Info Section */
.jir-info-section {
    background: linear-gradient(180deg, white 0%, var(--primary-50) 100%);
}

.jir-info-card {
    background: white;
    border-radius: 32px;
    padding: 48px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--gray-100);
}

.jir-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.jir-info-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: var(--gray-50);
    border-radius: 16px;
    transition: all 0.2s ease;
}

.jir-info-item:hover {
    background: var(--primary-50);
}

.jir-info-item i {
    font-size: 1.5rem;
    color: var(--primary-500);
    width: 32px;
    text-align: center;
}

.jir-info-item span {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--gray-700);
    line-height: 1.4;
}

.jir-info-item span small {
    color: var(--gray-400);
    font-weight: 400;
}

.jir-info-item.upcoming {
    opacity: 0.6;
    position: relative;
}

.jir-info-item.upcoming::after {
    content: 'Coming Soon';
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 0.65rem;
    padding: 2px 8px;
    background: var(--gray-200);
    color: var(--gray-500);
    border-radius: 10px;
}

.jir-info-note {
    margin-top: 24px;
    text-align: center;
    font-size: 0.9rem;
    color: var(--gray-500);
}

/* Features Section */
.jir-features-section {
    background: white;
}

.jir-features-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.jir-feature-card {
    display: flex;
    gap: 20px;
    padding: 28px;
    background: var(--gray-50);
    border-radius: 20px;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}

.jir-feature-card:hover {
    background: white;
    box-shadow: var(--shadow-lg);
    border-color: var(--primary-200);
}

.jir-feature-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-size: 1.3rem;
    border-radius: 12px;
    flex-shrink: 0;
}

.jir-feature-icon.purple {
    background: linear-gradient(135deg, #8B5CF6, #7C3AED);
}

.jir-feature-icon.green {
    background: linear-gradient(135deg, var(--success), #059669);
}

.jir-feature-icon.cyan {
    background: linear-gradient(135deg, var(--accent), #0891B2);
}

.jir-feature-content h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 8px;
}

.jir-feature-content p {
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.7;
    margin: 0;
}

.jir-feature-content .jir-arrow-link {
    font-size: 0.9rem;
}

/* Use Cases Section */
.jir-usecases-section {
    background: var(--gray-50);
}

.jir-usecases-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.jir-usecase-card {
    background: white;
    border-radius: 24px;
    padding: 36px;
    text-align: center;
    box-shadow: var(--shadow-md);
    transition: all 0.3s ease;
}

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

.jir-usecase-icon {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-100), var(--primary-200));
    color: var(--primary-600);
    font-size: 1.75rem;
    border-radius: 20px;
    margin: 0 auto 20px;
}

.jir-usecase-card h3 {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 12px;
}

.jir-usecase-card p {
    font-size: 0.95rem;
    color: var(--gray-600);
    line-height: 1.7;
    margin: 0;
}

/* CTA Section */
.jir-cta-section {
    background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
    padding: 100px 0;
    color: white;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.jir-cta-section::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 70%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
    pointer-events: none;
}

.jir-cta-content {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0 auto;
}

.jir-cta-section h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 20px;
    letter-spacing: -0.02em;
    line-height: 1.4;
}

.jir-cta-section p {
    font-size: 1.15rem;
    opacity: 0.9;
    margin-bottom: 40px;
    line-height: 1.8;
}

.jir-cta-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.jir-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.jir-cta-btn.primary {
    background: white;
    color: var(--primary-600);
}

.jir-cta-btn.primary:hover {
    background: var(--gray-100);
    transform: translateY(-2px);
}

.jir-cta-btn.secondary {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.jir-cta-btn.secondary:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
}

/* Arrow Link */
.jir-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--primary-600);
    font-weight: 500;
    text-decoration: none;
    transition: all 0.15s ease;
}

.jir-arrow-link::after {
    content: '→';
    transition: transform 0.15s ease;
}

.jir-arrow-link:hover {
    color: var(--primary-700);
}

.jir-arrow-link:hover::after {
    transform: translateX(4px);
}

/* Text Link */
.text-link {
    color: var(--primary-600);
    text-decoration: underline;
    text-decoration-color: var(--primary-300);
    text-underline-offset: 3px;
}

.text-link:hover {
    color: var(--primary-700);
    text-decoration-color: var(--primary-500);
}

/* About Page Responsive */
@media (max-width: 1024px) {

    .jir-problems-grid,
    .jir-usecases-grid {
        grid-template-columns: 1fr;
    }

    .jir-stats-content {
        flex-direction: column;
        text-align: center;
    }

    .jir-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .jir-about-section {
        padding: 60px 0;
    }

    .jir-section-title {
        font-size: 1.5rem;
    }

    .jir-stats-numbers {
        flex-direction: column;
        gap: 32px;
    }

    .jir-stat-number {
        font-size: 3rem;
    }

    .jir-info-grid {
        grid-template-columns: 1fr;
    }

    .jir-features-grid {
        grid-template-columns: 1fr;
    }

    .jir-cta-section {
        padding: 80px 0;
    }

    .jir-cta-section h2 {
        font-size: 1.75rem;
    }

    .jir-cta-buttons {
        flex-direction: column;
        align-items: center;
    }

    .jir-cta-btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }
}

/* メインレイアウト */
.jir-terms-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 48px;
    padding: 48px 24px 80px;
    max-width: 1200px;
    margin: 0 auto;
}

/* 左TOCサイドバー */
.jir-toc-sidebar {
    position: sticky;
    top: 96px;
    height: fit-content;
}

.jir-toc-card {
    background: white;
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-toc-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-toc-title i {
    color: var(--primary-500);
}

.jir-toc-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* TOCアイテム（<a>タグ直接） */
a.jir-toc-item {
    display: block;
    padding: 10px 12px;
    font-size: 0.85rem;
    color: var(--gray-600);
    text-decoration: none;
    border-radius: 6px;
    border-left: 3px solid transparent;
    transition: all 0.15s ease;
}

a.jir-toc-item:hover {
    background: var(--primary-50);
    color: var(--primary-600);
    border-left-color: var(--primary-300);
}

a.jir-toc-item.active {
    background: var(--primary-50);
    color: var(--primary-600);
    border-left-color: var(--primary-500);
    font-weight: 500;
}

/* TOC番号（青テキスト、背景なし） */
.jir-toc-number {
    display: inline-block;
    width: 24px;
    color: var(--primary-500);
    font-weight: 600;
}

/* メインコンテンツエリア */
.jir-terms-card {
    background: white;
    border-radius: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    overflow: hidden;
}

.jir-terms-content {
    padding: 48px;
}

/* セクション */
.jir-terms-section {
    margin-bottom: 48px;
    padding-bottom: 48px;
    border-bottom: 1px solid var(--gray-100);
    scroll-margin-top: 120px;
}

.jir-terms-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.jir-terms-section h2 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    letter-spacing: -0.01em;
}

.jir-terms-section h2 .section-number,
.jir-terms-section h2 .jir-section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    color: white;
    font-size: 0.9rem;
    font-weight: 700;
    border-radius: 6px;
    flex-shrink: 0;
}

.jir-terms-section p {
    font-size: 0.95rem;
    color: var(--gray-700);
    line-height: 1.9;
    margin-bottom: 16px;
}

.jir-terms-section p:last-child {
    margin-bottom: 0;
}

/* リスト */
.jir-terms-list {
    margin: 16px 0;
    padding-left: 0;
    list-style: none;
}

.jir-terms-list li {
    position: relative;
    padding: 12px 16px 12px 48px;
    font-size: 0.95rem;
    color: var(--gray-700);
    background: var(--gray-50);
    border-radius: 10px;
    margin-bottom: 8px;
    line-height: 1.6;
}

.jir-terms-list li:last-child {
    margin-bottom: 0;
}

.jir-terms-list li::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    background: var(--primary-500);
    border-radius: 50%;
}

/* 番号付きリスト */
.jir-terms-list.numbered {
    counter-reset: item;
}

.jir-terms-list.numbered li {
    padding-left: 52px;
    counter-increment: item;
}

.jir-terms-list.numbered li::before {
    content: counter(item);
    width: 24px;
    height: 24px;
    background: var(--primary-100);
    color: var(--primary-600);
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
}

/* アラートボックス */
.jir-terms-alert {
    padding: 20px 24px;
    border-radius: 16px;
    margin: 24px 0;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.jir-terms-alert i {
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.jir-terms-alert-content {
    flex: 1;
}

.jir-terms-alert-title {
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.jir-terms-alert-text {
    font-size: 0.9rem;
    line-height: 1.7;
}

/* アラートタイプ */
.jir-terms-alert.important {
    background: #FEE2E2;
    border-left: 4px solid #EF4444;
}

.jir-terms-alert.important i,
.jir-terms-alert.important .jir-terms-alert-title {
    color: #DC2626;
}

.jir-terms-alert.warning {
    background: #FEF3C7;
    border-left: 4px solid #F59E0B;
}

.jir-terms-alert.warning i,
.jir-terms-alert.warning .jir-terms-alert-title {
    color: #B45309;
}

.jir-terms-alert.info {
    background: var(--primary-50);
    border-left: 4px solid var(--primary-500);
}

.jir-terms-alert.info i,
.jir-terms-alert.info .jir-terms-alert-title {
    color: var(--primary-600);
}

.jir-terms-alert.tip {
    background: #D1FAE5;
    border-left: 4px solid #10B981;
}

.jir-terms-alert.tip i,
.jir-terms-alert.tip .jir-terms-alert-title {
    color: #047857;
}

/* アラートボックス内のリスト */
.jir-terms-alert .jir-terms-list {
    margin: 0;
    background: transparent;
}

.jir-terms-alert .jir-terms-list li {
    background: transparent;
    padding: 4px 0 4px 48px;
}

.jir-terms-alert .jir-terms-list li::before {
    left: 16px;
}

/* フッター情報 */
.jir-terms-footer {
    margin-top: 48px;
    padding: 32px;
    background: var(--gray-50);
    border-radius: 16px;
    text-align: center;
}

.jir-terms-footer-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px;
    font-size: 0.9rem;
    color: var(--gray-600);
}

.jir-terms-footer-info span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-terms-footer-info i {
    color: var(--primary-500);
}

/* 利用規約ページ レスポンシブ */
@media (max-width: 1024px) {
    .jir-terms-layout {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 32px 24px 48px;
    }

    .jir-toc-sidebar {
        position: relative;
        top: 0;
    }

    .jir-toc-card {
        padding: 20px;
    }

    .jir-toc-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .jir-terms-content {
        padding: 32px;
    }
}

@media (max-width: 768px) {
    .jir-page-hero {
        padding: 48px 0;
    }

    .jir-page-hero h1 {
        font-size: 1.75rem;
    }

    .jir-page-hero-meta {
        flex-direction: column;
        gap: 12px;
    }

    /* About用ヒーロー レスポンシブ */
    .jir-about-hero h1 {
        font-size: 2rem;
    }

    .jir-about-hero .jir-page-hero-subtitle {
        font-size: 1rem;
    }

    .jir-hero-mission {
        padding: 16px 20px;
        font-size: 0.95rem;
    }

    .jir-toc-list {
        grid-template-columns: 1fr;
    }

    .jir-terms-content {
        padding: 24px;
    }

    .jir-terms-section h2 {
        font-size: 1.2rem;
    }

    .jir-terms-section {
        margin-bottom: 32px;
        padding-bottom: 32px;
    }

    .jir-terms-footer-info {
        flex-direction: column;
        gap: 16px;
    }
}

/* ========================================
   Tags Index Page (page-tags.php)
   Source: 16_タグ一覧.html
======================================== */

/* Tags Hero Section */
.jir-tags-hero {
    background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
    padding: 48px 0;
    position: relative;
    overflow: hidden;
}

.jir-tags-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 60%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    pointer-events: none;
}

.jir-tags-hero .jir-page-hero-content {
    position: relative;
    z-index: 1;
    text-align: left;
}

.jir-tags-hero-title {
    font-size: 2rem;
    font-weight: 700;
    color: white;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.jir-tags-hero-title i {
    font-size: 1.5rem;
    opacity: 0.9;
}

.jir-tags-hero .jir-page-hero-subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.85);
    max-width: 600px;
    margin: 0;
}

/* Tags Hero Stats */
.jir-tags-hero-stats {
    display: flex;
    gap: 32px;
    margin-top: 24px;
}

.jir-tags-hero-stat {
    display: flex;
    align-items: center;
    gap: 10px;
}

.jir-tags-hero-stat-icon {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.jir-tags-hero-stat-content {
    display: flex;
    flex-direction: column;
}

.jir-tags-hero-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: white;
    line-height: 1.2;
}

.jir-tags-hero-stat-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.7);
}

/* Tags Hero Search */
.jir-tags-hero-search {
    margin-top: 24px;
    max-width: 400px;
}

.jir-tags-search-wrapper {
    position: relative;
}

.jir-tags-search-wrapper i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray-400);
}

.jir-tags-search-input {
    width: 100%;
    padding: 14px 16px 14px 44px;
    font-size: 0.95rem;
    font-family: inherit;
    border: none;
    border-radius: var(--radius-lg);
    background: white;
    box-shadow: var(--shadow-lg);
}

.jir-tags-search-input:focus {
    outline: none;
    box-shadow: var(--shadow-lg), 0 0 0 3px rgba(255, 255, 255, 0.3);
}

.jir-tags-search-input::placeholder {
    color: var(--gray-400);
}

/* Tags Section */
.jir-tags-section {
    margin-bottom: 40px;
}

.jir-tags-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.jir-tags-section-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.jir-tags-section-title i {
    color: var(--primary-500);
}

/* Popular Tags Grid */
.jir-popular-tags-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.jir-popular-tag-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-base);
    position: relative;
    overflow: hidden;
    display: block;
    text-decoration: none;
}

.jir-popular-tag-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
    border-color: var(--primary-200);
}

.jir-popular-tag-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.jir-popular-tag-card:nth-child(1)::before {
    background: linear-gradient(90deg, var(--primary-500), var(--accent));
}

.jir-popular-tag-card:nth-child(2)::before {
    background: linear-gradient(90deg, var(--success), #34D399);
}

.jir-popular-tag-card:nth-child(3)::before {
    background: linear-gradient(90deg, var(--warning), #FBBF24);
}

.jir-popular-tag-card:nth-child(4)::before {
    background: linear-gradient(90deg, var(--purple), #A78BFA);
}

.jir-popular-tag-rank {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 28px;
    height: 28px;
    background: var(--gray-100);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--gray-500);
}

.jir-popular-tag-card:nth-child(1) .jir-popular-tag-rank {
    background: linear-gradient(135deg, #FEF3C7, #FDE68A);
    color: #B45309;
}

.jir-popular-tag-card:nth-child(2) .jir-popular-tag-rank {
    background: linear-gradient(135deg, #E5E7EB, #D1D5DB);
    color: #4B5563;
}

.jir-popular-tag-card:nth-child(3) .jir-popular-tag-rank {
    background: linear-gradient(135deg, #FED7AA, #FDBA74);
    color: #C2410C;
}

.jir-popular-tag-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 8px;
    word-break: break-word;
    overflow-wrap: break-word;
}

.jir-popular-tag-name span {
    color: var(--primary-500);
}

.jir-popular-tag-count {
    font-size: 0.85rem;
    color: var(--gray-500);
}

.jir-popular-tag-count strong {
    color: var(--primary-600);
    font-weight: 600;
}

/* Alphabet Filter */
.jir-tags-alphabet-filter {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    padding: 16px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-100);
    flex-wrap: wrap;
}

.jir-tags-alphabet-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gray-500);
    margin-right: 8px;
}

.jir-tags-alphabet-btn {
    min-width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-tags-alphabet-btn:hover {
    background: var(--primary-50);
    border-color: var(--primary-300);
    color: var(--primary-600);
}

.jir-tags-alphabet-btn.active {
    background: var(--primary-600);
    color: white;
    border-color: var(--primary-600);
}

/* Tags Group */
.jir-tags-group {
    margin-bottom: 32px;
}

.jir-tags-group-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-700);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--gray-200);
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-tags-group-title span {
    width: 32px;
    height: 32px;
    background: var(--primary-100);
    color: var(--primary-600);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

/* Tags Grid */
.jir-tags-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

.jir-tag-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-tag-card:hover {
    background: var(--primary-50);
    border-color: var(--primary-200);
    transform: translateX(4px);
}

.jir-tag-card-left {
    display: flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    min-width: 0;
    flex: 1;
}

.jir-tag-card-icon {
    width: 32px;
    height: 32px;
    background: var(--gray-100);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
    color: var(--gray-500);
    transition: all var(--transition-fast);
}

.jir-tag-card:hover .jir-tag-card-icon {
    background: var(--primary-100);
    color: var(--primary-600);
}

.jir-tag-card-name {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-700);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jir-tag-card-name span {
    color: var(--primary-500);
}

.jir-tag-card-count {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-400);
    background: var(--gray-100);
    padding: 4px 10px;
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
    flex-shrink: 0;
}

.jir-tag-card:hover .jir-tag-card-count {
    background: var(--primary-100);
    color: var(--primary-600);
}

/* Tags Empty State */
.jir-tags-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--gray-400);
}

.jir-tags-empty i {
    font-size: 48px;
    margin-bottom: 16px;
}

.jir-tags-empty p {
    font-size: 1rem;
}

/* Tags Page Responsive */
@media (max-width: 1024px) {
    .jir-popular-tags-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .jir-tags-hero {
        padding: 32px 0;
    }

    .jir-tags-hero-title {
        font-size: 1.5rem;
    }

    .jir-tags-hero-stats {
        flex-wrap: wrap;
        gap: 16px;
    }

    .jir-popular-tags-grid {
        grid-template-columns: 1fr;
    }

    .jir-tags-alphabet-filter {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 12px;
    }

    .jir-tags-alphabet-btn {
        flex-shrink: 0;
    }

    .jir-tags-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   Tag Detail Page (tag.php)
   Source: 14_タグ.html
======================================== */

/* Tag Hero Section */
.jir-tag-hero {
    background: linear-gradient(135deg, var(--gray-700) 0%, var(--gray-900) 100%);
    padding: 48px 0;
    color: white;
    position: relative;
    overflow: hidden;
}

.jir-tag-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 50%;
    height: 200%;
    background: radial-gradient(ellipse, rgba(59, 130, 246, 0.15) 0%, transparent 60%);
    pointer-events: none;
}

.jir-tag-hero-content {
    position: relative;
    z-index: 1;
}

/* Tag Display */
.jir-tag-display {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.jir-tag-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--primary-400);
}

.jir-tag-name {
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
}

.jir-tag-name span {
    color: var(--primary-400);
}

.jir-tag-description {
    font-size: 1rem;
    opacity: 0.8;
    max-width: 600px;
    margin: 0;
}

/* Tag Stats */
.jir-tag-stats {
    display: flex;
    gap: 32px;
    margin-top: 24px;
}

.jir-tag-stat {
    display: flex;
    align-items: center;
    gap: 10px;
}

.jir-tag-stat-icon {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-400);
}

.jir-tag-stat-content {
    display: flex;
    flex-direction: column;
}

.jir-tag-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: white;
    line-height: 1.2;
}

.jir-tag-stat-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Tag Main Content */
.jir-tag-main-content {
    padding: 32px 0 80px;
}

.jir-tag-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 32px;
}

/* Tag Filter Section */
.jir-tag-filter-section {
    background: white;
    border-radius: var(--radius-xl);
    padding: 20px 24px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-tag-filter-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.jir-tag-filter-heading h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-700);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-tag-filter-heading h3 i {
    color: var(--primary-500);
}

.jir-tag-filter-reset {
    font-size: 0.85rem;
    color: var(--gray-500);
    display: flex;
    align-items: center;
    gap: 6px;
}

.jir-tag-filter-reset:hover {
    color: var(--primary-600);
}

.jir-tag-filter-controls {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 12px;
}

.jir-tag-filter-controls:last-child {
    margin-bottom: 0;
}

.jir-tag-filter-label {
    font-size: 0.85rem;
    color: var(--gray-500);
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 80px;
}

.jir-tag-filter-group {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.jir-tag-filter-btn {
    padding: 8px 14px;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.jir-tag-filter-btn:hover {
    background: var(--primary-50);
    border-color: var(--primary-300);
    color: var(--primary-600);
}

.jir-tag-filter-btn.active {
    background: var(--primary-600);
    color: white;
    border-color: var(--primary-600);
}

/* Tag Filter Bar */
.jir-tag-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding: 16px 20px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-100);
}

.jir-tag-filter-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.jir-tag-result-count {
    font-size: 0.9rem;
    color: var(--gray-600);
}

.jir-tag-result-count strong {
    color: var(--primary-600);
    font-weight: 700;
}

.jir-tag-filter-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jir-tag-sort-select {
    padding: 8px 36px 8px 12px;
    font-size: 0.85rem;
    font-family: inherit;
    color: var(--gray-700);
    background: var(--gray-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    appearance: none;
    cursor: pointer;
}

.jir-tag-sort-select:focus {
    outline: none;
    border-color: var(--primary-500);
}

/* IR List */
.jir-tag-ir-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* IR Card */
.jir-tag-ir-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-base);
}

.jir-tag-ir-card:hover {
    border-color: var(--primary-200);
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.jir-tag-ir-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 12px;
}

.jir-tag-ir-company-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jir-tag-ir-company-code {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 0.8rem;
    font-weight: 600;
    color: white;
    background: var(--primary-600);
    border-radius: var(--radius-md);
}

.jir-tag-ir-company-name {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
}

.jir-tag-ir-date {
    font-size: 0.8rem;
    color: var(--gray-400);
    display: flex;
    align-items: center;
    gap: 6px;
}

.jir-tag-ir-title {
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 12px;
    line-height: 1.5;
    transition: color var(--transition-fast);
}

.jir-tag-ir-title:hover {
    color: var(--primary-600);
}

.jir-tag-ir-summary {
    font-size: 0.9rem;
    color: var(--gray-500);
    line-height: 1.7;
    margin: 0 0 16px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jir-tag-ir-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid var(--gray-100);
}

.jir-tag-ir-meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.jir-tag-ir-category {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--primary-700);
    background: var(--primary-50);
    border: 1px solid var(--primary-100);
    border-radius: var(--radius-full);
}

.jir-tag-ir-importance {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 0.8rem;
    color: var(--warning);
}

.jir-tag-ir-tags {
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-tag-ir-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--gray-500);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.jir-tag-ir-tag:hover {
    background: var(--gray-200);
    color: var(--gray-700);
}

.jir-tag-ir-tag.current {
    background: var(--primary-100);
    color: var(--primary-700);
}

/* No Results */
.jir-tag-no-results {
    text-align: center;
    padding: 60px 20px;
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

.jir-tag-no-results i {
    font-size: 48px;
    color: var(--gray-300);
    margin-bottom: 16px;
}

.jir-tag-no-results h3 {
    font-size: 1.1rem;
    color: var(--gray-600);
    margin-bottom: 8px;
}

.jir-tag-no-results p {
    font-size: 0.9rem;
    color: var(--gray-400);
    margin-bottom: 20px;
}

.jir-tag-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    font-size: 0.9rem;
    font-weight: 500;
    color: white;
    background: var(--primary-600);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-tag-back-btn:hover {
    background: var(--primary-700);
    color: white;
}

/* Pagination */
.jir-tag-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 40px;
    gap: 8px;
}

.jir-tag-pagination a,
.jir-tag-pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-tag-pagination a:hover:not(.current) {
    background: var(--gray-100);
    color: var(--gray-700);
}

.jir-tag-pagination .current {
    background: var(--primary-600);
    color: white;
}

.jir-tag-pagination .current:hover {
    background: var(--primary-600);
    color: white;
}

.jir-tag-pagination .prev,
.jir-tag-pagination .next {
    padding: 0;
}

/* Tag Sidebar */
.jir-tag-sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.jir-tag-sidebar-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-tag-sidebar-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-tag-sidebar-title i {
    color: var(--primary-500);
}

/* Related Tags */
.jir-tag-related-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.jir-tag-related-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.jir-tag-related-tag:hover {
    background: var(--primary-50);
    border-color: var(--primary-200);
    color: var(--primary-600);
}

.jir-tag-count {
    font-size: 0.7rem;
    color: var(--gray-400);
    background: var(--gray-200);
    padding: 2px 6px;
    border-radius: var(--radius-full);
}

.jir-tag-related-tag:hover .jir-tag-count {
    background: var(--primary-100);
    color: var(--primary-600);
}

/* Company List */
.jir-tag-company-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.jir-tag-company-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: var(--gray-50);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-tag-company-item:hover {
    background: var(--primary-50);
}

.jir-tag-company-code {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--primary-600);
    background: var(--primary-100);
    padding: 4px 8px;
    border-radius: var(--radius-sm);
}

.jir-tag-company-info {
    flex: 1;
    min-width: 0;
}

.jir-tag-company-name {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.jir-tag-company-count {
    font-size: 0.75rem;
    color: var(--gray-400);
}

/* Category List */
.jir-tag-category-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jir-tag-category-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    font-size: 0.9rem;
    color: var(--gray-600);
    background: var(--gray-50);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.jir-tag-category-item:hover {
    background: var(--primary-50);
    color: var(--primary-600);
}

.jir-tag-category-item.active {
    background: var(--primary-100);
    color: var(--primary-700);
    font-weight: 500;
}

.jir-tag-category-count {
    font-size: 0.8rem;
    color: var(--gray-400);
}

/* Tag Detail Page Responsive */
@media (max-width: 1024px) {
    .jir-tag-layout {
        grid-template-columns: 1fr;
    }

    .jir-tag-sidebar {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .jir-tag-sidebar-card {
        flex: 1;
        min-width: 280px;
    }
}

@media (max-width: 768px) {
    .jir-tag-hero {
        padding: 32px 0;
    }

    .jir-tag-display {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .jir-tag-name {
        font-size: 1.5rem;
    }

    .jir-tag-stats {
        flex-wrap: wrap;
        gap: 16px;
    }

    .jir-tag-filter-section {
        padding: 16px;
    }

    .jir-tag-filter-controls {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .jir-tag-filter-bar {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }

    .jir-tag-ir-card-header {
        flex-direction: column;
        gap: 8px;
    }

    .jir-tag-ir-card-footer {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }

    .jir-tag-sidebar {
        flex-direction: column;
    }

    .jir-tag-sidebar-card {
        min-width: 100%;
    }
}

/* ========================================
   404 Error Page
======================================== */
.jir-error-page {
    min-height: calc(100vh - 200px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-6);
    background: linear-gradient(180deg, var(--gray-50) 0%, white 100%);
    position: relative;
    overflow: hidden;
}

/* Background decoration */
.jir-error-page::before {
    content: '';
    position: absolute;
    top: -30%;
    left: -15%;
    width: 50%;
    height: 100%;
    background: radial-gradient(ellipse, rgba(59, 130, 246, 0.04) 0%, transparent 60%);
    pointer-events: none;
}

.jir-error-page::after {
    content: '';
    position: absolute;
    bottom: -30%;
    right: -15%;
    width: 50%;
    height: 100%;
    background: radial-gradient(ellipse, rgba(6, 182, 212, 0.04) 0%, transparent 60%);
    pointer-events: none;
}

.jir-error-content {
    text-align: center;
    max-width: 520px;
    position: relative;
    z-index: 1;
}

/* Error Number */
.jir-error-number {
    font-size: 7rem;
    font-weight: var(--font-weight-extrabold);
    line-height: 1;
    margin-bottom: var(--spacing-2);
    position: relative;
    display: inline-block;
}

.jir-error-number span {
    background: linear-gradient(135deg, var(--primary-400), var(--primary-600), var(--accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: jir-gradient-move 3s ease infinite;
    background-size: 200% 200%;
}

@keyframes jir-gradient-move {

    0%,
    100% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }
}

/* Error Icon */
.jir-error-icon {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, var(--primary-100), var(--primary-50));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--spacing-4);
    font-size: 1.5rem;
    color: var(--primary-500);
}

.jir-error-title {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--gray-800);
    margin-bottom: var(--spacing-2);
}

.jir-error-description {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    margin-bottom: var(--spacing-6);
    line-height: var(--line-height-relaxed);
}

/* Action Buttons */
.jir-error-actions {
    display: flex;
    gap: var(--spacing-3);
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: var(--spacing-8);
}

.jir-error-actions .jir-btn {
    padding: 12px 24px;
}

.jir-error-actions .jir-btn-primary {
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.3);
}

.jir-error-actions .jir-btn-primary:hover {
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4);
}

/* Quick Links */
.jir-quick-links {
    background: white;
    border-radius: var(--radius-xl);
    padding: var(--spacing-5) var(--spacing-6);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-quick-links-title {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-400);
    margin-bottom: var(--spacing-4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.jir-quick-links-grid {
    display: flex;
    gap: var(--spacing-3);
    justify-content: center;
}

.jir-quick-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-2);
    padding: 14px 20px;
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    transition: all var(--transition-fast);
    color: var(--gray-600);
    min-width: 100px;
    text-decoration: none;
}

.jir-quick-link:hover {
    background: var(--primary-50);
    color: var(--primary-600);
    transform: translateY(-2px);
}

.jir-quick-link-icon {
    width: 40px;
    height: 40px;
    background: white;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-fast);
}

.jir-quick-link:hover .jir-quick-link-icon {
    background: var(--primary-100);
    color: var(--primary-600);
}

.jir-quick-link-text {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
}

/* 404 Page Responsive */
@media (max-width: 768px) {
    .jir-error-page {
        min-height: calc(100vh - 150px);
        padding: var(--spacing-4);
    }

    .jir-error-number {
        font-size: 5rem;
    }

    .jir-error-title {
        font-size: var(--font-size-xl);
    }

    .jir-error-description {
        font-size: var(--font-size-sm);
    }

    .jir-error-actions {
        flex-direction: column;
        gap: 10px;
    }

    .jir-error-actions .jir-btn {
        width: 100%;
        justify-content: center;
        padding: 14px 24px;
    }

    .jir-quick-links {
        padding: var(--spacing-4) var(--spacing-5);
    }

    .jir-quick-links-grid {
        flex-direction: column;
        gap: var(--spacing-2);
    }

    .jir-quick-link {
        flex-direction: row;
        justify-content: flex-start;
        padding: 12px 16px;
        min-width: auto;
    }

    .jir-quick-link-icon {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }
}

@media (max-width: 380px) {
    .jir-error-number {
        font-size: 4rem;
    }

    .jir-quick-link-text {
        font-size: 0.75rem;
    }
}

/* Tall screens - more breathing room */
@media (min-height: 800px) {
    .jir-error-number {
        font-size: 8rem;
        margin-bottom: var(--spacing-4);
    }

    .jir-error-icon {
        width: 64px;
        height: 64px;
        font-size: 1.75rem;
        margin-bottom: var(--spacing-5);
    }

    .jir-error-title {
        font-size: 1.75rem;
        margin-bottom: var(--spacing-3);
    }

    .jir-error-description {
        margin-bottom: var(--spacing-8);
    }

    .jir-error-actions {
        margin-bottom: var(--spacing-10);
    }
}

/* ========================================
   Auth Pages (Login / Register / Reset Password)
======================================== */
.jir-auth-page {
    padding: 48px 24px 80px;
    background: var(--gray-50);
    min-height: calc(100vh - var(--header-height, 72px) - 200px);
}

.jir-auth-wrapper {
    max-width: 480px;
    margin: 0 auto;
}

/* Auth Card */
.jir-auth-card {
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--gray-100);
    overflow: hidden;
}

.jir-auth-header {
    padding: 32px 40px 24px;
    border-bottom: 1px solid var(--gray-100);
}

.jir-auth-title {
    font-size: 1.5rem;
    font-weight: var(--font-weight-bold);
    color: var(--primary-700);
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.jir-auth-title i {
    font-size: 1.25rem;
}

.jir-auth-subtitle {
    font-size: 0.95rem;
    color: var(--gray-500);
    text-align: center;
    padding-top: var(--spacing-4);
    line-height: 1.6;
}

/* Logout Page Icon */
.jir-logout-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: white;
}

.jir-logout-icon+.jir-auth-title {
    justify-content: center;
}

.jir-auth-body {
    padding: 32px 40px 40px;
}

/* Form Elements */
.jir-form-group {
    margin-bottom: 20px;
}

.jir-form-label {
    display: block;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-700);
    margin-bottom: 8px;
}

.jir-form-label .required {
    color: var(--danger);
    margin-left: 4px;
}

.jir-form-input {
    width: 100%;
    padding: 14px 16px;
    font-size: 1rem;
    font-family: inherit;
    color: var(--gray-700);
    background: var(--primary-50);
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    outline: none;
    transition: all var(--transition-fast);
}

.jir-form-input::placeholder {
    color: var(--gray-400);
}

.jir-form-input:focus {
    background: white;
    border-color: var(--primary-500);
    box-shadow: 0 0 0 3px var(--primary-100);
}

.jir-form-input.error {
    border-color: var(--danger);
    background: var(--danger-light);
}

.jir-form-hint {
    font-size: 0.8rem;
    color: var(--gray-500);
    margin-top: 6px;
}

.jir-form-error {
    font-size: 0.8rem;
    color: var(--danger);
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Error Message Box */
.jir-auth-error {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 20px;
    background: var(--danger-light);
    border: 1px solid var(--danger);
    border-radius: var(--radius-lg);
    margin-bottom: 20px;
}

.jir-auth-error i {
    color: var(--danger);
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.jir-auth-error-content {
    flex: 1;
}

.jir-auth-error-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-800);
    margin-bottom: 4px;
}

.jir-auth-error-text {
    font-size: 0.85rem;
    color: var(--gray-600);
    line-height: 1.6;
}

/* Success Message Box */
.jir-auth-success {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 20px;
    background: var(--success-light);
    border: 1px solid var(--success);
    border-radius: var(--radius-lg);
    margin-bottom: 20px;
}

.jir-auth-success i {
    color: var(--success);
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.jir-auth-success-content {
    flex: 1;
}

.jir-auth-success-text {
    font-size: 0.85rem;
    color: var(--gray-700);
    line-height: 1.6;
}

/* Settings Saved Message */
.jir-settings-saved {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #F0FDF4;
    border: 1px solid #86EFAC;
    color: #16A34A;
    border-radius: var(--radius-md);
    margin-bottom: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

.jir-settings-saved i {
    font-size: 1.125rem;
}

/* Checkbox */
.jir-form-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.jir-form-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: var(--primary-600);
    cursor: pointer;
}

.jir-form-checkbox span {
    font-size: var(--font-size-sm);
    color: var(--gray-600);
}

.jir-form-checkbox a {
    font-weight: var(--font-weight-medium);
}

/* Submit Button */
.jir-btn-submit {
    width: 100%;
    padding: 16px;
    font-size: 1rem;
    font-weight: var(--font-weight-semibold);
    font-family: inherit;
    color: white;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-base);
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.jir-btn-submit:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    color: white;
}

.jir-btn-submit:active {
    transform: translateY(0);
}

/* Auth Footer */
.jir-auth-footer {
    text-align: center;
    margin-top: var(--spacing-6);
    padding-top: var(--spacing-6);
    border-top: 1px solid var(--gray-100);
}

.jir-auth-footer a {
    font-weight: var(--font-weight-medium);
}

.jir-auth-footer p {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    margin-top: 12px;
}

/* Social Login */
.jir-social-divider {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 28px 0;
}

.jir-social-divider::before,
.jir-social-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--gray-200);
}

.jir-social-divider span {
    font-size: 0.8rem;
    color: var(--gray-400);
}

.jir-social-buttons {
    display: flex;
    gap: 12px;
}

.jir-btn-social {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-700);
    background: white;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-btn-social:hover {
    background: var(--gray-50);
    border-color: var(--gray-300);
}

.jir-btn-social i {
    font-size: 1.1rem;
}

.jir-btn-social.google i {
    color: #DB4437;
}

.jir-btn-social.twitter i {
    color: #1DA1F2;
}

/* Auth Pages Responsive */
@media (max-width: 768px) {
    .jir-auth-page {
        padding: 24px 16px 60px;
    }

    .jir-auth-header,
    .jir-auth-body {
        padding-left: 24px;
        padding-right: 24px;
    }

    .jir-auth-header {
        padding-top: 24px;
        padding-bottom: 20px;
    }

    .jir-auth-body {
        padding-top: 24px;
        padding-bottom: 32px;
    }

    .jir-auth-title {
        font-size: 1.25rem;
    }

    .jir-auth-subtitle {
        font-size: var(--font-size-sm);
    }

    .jir-social-buttons {
        flex-direction: column;
    }
}

@media (max-width: 480px) {

    .jir-auth-header,
    .jir-auth-body {
        padding-left: 20px;
        padding-right: 20px;
    }

    .jir-form-input {
        padding: 12px 14px;
    }

    .jir-btn-submit {
        padding: 14px;
    }
}


/* ========================================
   WordPress Standard Login Page (/wp-login.php)
   既存のカスタムログインCSSを再利用し、WordPress標準にも適用
======================================== */

/* ページ全体の背景 */
body.login {
    background: var(--gray-50) !important;
    font-family: 'Noto Sans JP', sans-serif !important;
}

/* ログインコンテナ */
body.login #login {
    width: 100% !important;
    max-width: 480px !important;
    padding: 48px 24px 80px !important;
    margin: 0 auto !important;
}

/* ロゴエリア */
body.login h1 {
    margin-bottom: 24px !important;
    text-align: center !important;
}

body.login h1 a {
    font-size: 1.5rem !important;
    font-weight: var(--font-weight-bold) !important;
    color: var(--primary-700) !important;
    text-decoration: none !important;
    background: none !important;
    width: auto !important;
    height: auto !important;
    text-indent: 0 !important;
}

/* ログインフォームカード */
body.login form {
    background: white !important;
    border-radius: var(--radius-xl) !important;
    box-shadow: var(--shadow-lg) !important;
    border: 1px solid var(--gray-100) !important;
    padding: 32px 40px 40px !important;
    margin-top: 0 !important;
}

/* ラベル */
body.login label {
    display: block !important;
    font-size: var(--font-size-sm) !important;
    font-weight: var(--font-weight-medium) !important;
    color: var(--gray-700) !important;
    margin-bottom: 8px !important;
}

/* テキスト入力フィールド */
/* テキスト入力フィールド - 統合スタイルは下部で定義 */

/* フォームグループ */
body.login .user-pass-wrap,
body.login .input {
    margin-bottom: 20px !important;
}

/* チェックボックス（ログイン状態保持） */
body.login .forgetmenot {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 20px !important;
}

body.login .forgetmenot input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: var(--primary-600) !important;
    margin: 0 !important;
}

body.login .forgetmenot label {
    font-size: var(--font-size-sm) !important;
    color: var(--gray-600) !important;
    margin: 0 !important;
    display: inline !important;
}

/* ログインボタン */
body.login .wp-core-ui .button-primary {
    width: 100% !important;
    padding: 16px !important;
    font-size: 1rem !important;
    font-weight: var(--font-weight-semibold) !important;
    font-family: inherit !important;
    color: white !important;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600)) !important;
    border: none !important;
    border-radius: var(--radius-md) !important;
    cursor: pointer !important;
    transition: all var(--transition-base) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    height: auto !important;
    line-height: 1 !important;
}

body.login .wp-core-ui .button-primary:hover,
body.login .wp-core-ui .button-primary:focus {
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-lg) !important;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700)) !important;
}

body.login .wp-core-ui .button-primary:active {
    transform: translateY(0) !important;
}

/* エラーメッセージ - 統合スタイルは下部で定義 */

/* 成功メッセージ */
body.login .message {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 16px 20px !important;
    background: var(--success-light) !important;
    border: 1px solid var(--success) !important;
    border-left-width: 1px !important;
    border-radius: var(--radius-lg) !important;
    margin-bottom: 20px !important;
    color: var(--gray-700) !important;
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    box-shadow: none !important;
}

/* ナビゲーションリンク（パスワード忘れ等） */
body.login #nav,
body.login #backtoblog {
    text-align: center !important;
    margin-top: 16px !important;
    padding: 0 !important;
}

body.login #nav a,
body.login #backtoblog a {
    color: var(--gray-500) !important;
    font-size: var(--font-size-sm) !important;
    text-decoration: none !important;
    transition: color var(--transition-fast) !important;
}

body.login #nav a:hover,
body.login #backtoblog a:hover {
    color: var(--primary-600) !important;
}

/* WordPress.org へのリンクを非表示 */
body.login .privacy-policy-page-link {
    display: none !important;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    body.login #login {
        padding: 24px 16px 60px !important;
    }

    body.login form {
        padding: 24px !important;
    }
}

@media (max-width: 480px) {
    body.login form {
        padding: 20px !important;
    }

    body.login input[type="text"],
    body.login input[type="password"] {
        padding: 12px 14px !important;
    }

    body.login .wp-core-ui .button-primary {
        padding: 14px !important;
    }
}


/* ==========================================
   Sector Tag (淡い背景 + 濃いテキスト)
   マイアカウント、企業一覧ページ用
========================================== */
.sector-tag {
    display: inline-block;
    padding: 3px 8px;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 10px;
    white-space: nowrap;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    cursor: default;
}

.sector-tag i {
    font-size: 0.75rem;
}

/* Pill variant */
.sector-tag.pill {
    border-radius: 20px;
    padding: 6px 14px;
}

/* Icon only variant */
.sector-tag.icon-only {
    width: 32px;
    height: 32px;
    padding: 0;
    justify-content: center;
    border-radius: 8px;
}

.sector-tag.icon-only i {
    font-size: 0.9rem;
}

/* Sector Icon (40x40 box) */
.sector-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* 建設・不動産系 */
.sector-tag.建設業,
.sector-icon.建設業 {
    background: var(--sector-建設業-light);
    color: var(--sector-建設業);
}

.sector-tag.不動産業,
.sector-icon.不動産業 {
    background: var(--sector-不動産業-light);
    color: var(--sector-不動産業);
}

/* 製造業系 */
.sector-tag.機械,
.sector-icon.機械 {
    background: var(--sector-機械-light);
    color: var(--sector-機械);
}

.sector-tag.電気機器,
.sector-icon.電気機器 {
    background: var(--sector-電気機器-light);
    color: var(--sector-電気機器);
}

.sector-tag.輸送用機器,
.sector-icon.輸送用機器 {
    background: var(--sector-輸送用機器-light);
    color: var(--sector-輸送用機器);
}

.sector-tag.精密機器,
.sector-icon.精密機器 {
    background: var(--sector-精密機器-light);
    color: var(--sector-精密機器);
}

.sector-tag.金属製品,
.sector-icon.金属製品 {
    background: var(--sector-金属製品-light);
    color: var(--sector-金属製品);
}

/* 素材系 */
.sector-tag.化学,
.sector-icon.化学 {
    background: var(--sector-化学-light);
    color: var(--sector-化学);
}

.sector-tag.鉄鋼,
.sector-icon.鉄鋼 {
    background: var(--sector-鉄鋼-light);
    color: var(--sector-鉄鋼);
}

.sector-tag.非鉄金属,
.sector-icon.非鉄金属 {
    background: var(--sector-非鉄金属-light);
    color: var(--sector-非鉄金属);
}

.sector-tag.ガラス・土石製品,
.sector-icon.ガラス・土石製品 {
    background: var(--sector-ガラス土石製品-light);
    color: var(--sector-ガラス土石製品);
}

.sector-tag.パルプ・紙,
.sector-icon.パルプ・紙 {
    background: var(--sector-パルプ紙-light);
    color: var(--sector-パルプ紙);
}

.sector-tag.繊維製品,
.sector-icon.繊維製品 {
    background: var(--sector-繊維製品-light);
    color: var(--sector-繊維製品);
}

.sector-tag.石油・石炭製品,
.sector-icon.石油・石炭製品 {
    background: var(--sector-石油石炭製品-light);
    color: var(--sector-石油石炭製品);
}

.sector-tag.ゴム製品,
.sector-icon.ゴム製品 {
    background: var(--sector-ゴム製品-light);
    color: var(--sector-ゴム製品);
}

/* エネルギー・資源系 */
.sector-tag.鉱業,
.sector-icon.鉱業 {
    background: var(--sector-鉱業-light);
    color: var(--sector-鉱業);
}

.sector-tag.電気・ガス業,
.sector-icon.電気・ガス業 {
    background: var(--sector-電気ガス業-light);
    color: var(--sector-電気ガス業);
}

.sector-tag.水産・農林業,
.sector-icon.水産・農林業 {
    background: var(--sector-水産農林業-light);
    color: var(--sector-水産農林業);
}

/* 商業・サービス系 */
.sector-tag.小売業,
.sector-icon.小売業 {
    background: var(--sector-小売業-light);
    color: var(--sector-小売業);
}

.sector-tag.卸売業,
.sector-icon.卸売業 {
    background: var(--sector-卸売業-light);
    color: var(--sector-卸売業);
}

.sector-tag.サービス業,
.sector-icon.サービス業 {
    background: var(--sector-サービス業-light);
    color: var(--sector-サービス業);
}

/* 食品・生活系 */
.sector-tag.食料品,
.sector-icon.食料品 {
    background: var(--sector-食料品-light);
    color: var(--sector-食料品);
}

.sector-tag.医薬品,
.sector-icon.医薬品 {
    background: var(--sector-医薬品-light);
    color: var(--sector-医薬品);
}

/* 金融系 */
.sector-tag.銀行業,
.sector-icon.銀行業 {
    background: var(--sector-銀行業-light);
    color: var(--sector-銀行業);
}

.sector-tag.証券、商品先物取引業,
.sector-tag.証券,
.sector-icon.証券、商品先物取引業,
.sector-icon.証券 {
    background: var(--sector-証券商品先物取引業-light);
    color: var(--sector-証券商品先物取引業);
}

.sector-tag.保険業,
.sector-icon.保険業 {
    background: var(--sector-保険業-light);
    color: var(--sector-保険業);
}

.sector-tag.その他金融業,
.sector-icon.その他金融業 {
    background: var(--sector-その他金融業-light);
    color: var(--sector-その他金融業);
}

/* 情報・通信系 */
.sector-tag.情報・通信業,
.sector-icon.情報・通信業 {
    background: var(--sector-情報通信業-light);
    color: var(--sector-情報通信業);
}

/* 運輸系 */
.sector-tag.陸運業,
.sector-icon.陸運業 {
    background: var(--sector-陸運業-light);
    color: var(--sector-陸運業);
}

.sector-tag.海運業,
.sector-icon.海運業 {
    background: var(--sector-海運業-light);
    color: var(--sector-海運業);
}

.sector-tag.空運業,
.sector-icon.空運業 {
    background: var(--sector-空運業-light);
    color: var(--sector-空運業);
}

.sector-tag.倉庫・運輸関連業,
.sector-icon.倉庫・運輸関連業 {
    background: var(--sector-倉庫運輸関連業-light);
    color: var(--sector-倉庫運輸関連業);
}

/* その他 */
.sector-tag.その他製品,
.sector-icon.その他製品 {
    background: var(--sector-その他製品-light);
    color: var(--sector-その他製品);
}

.sector-tag.その他,
.sector-icon.その他 {
    background: var(--sector-その他-light);
    color: var(--sector-その他);
}

/* ==========================================
   MyPage Redesign - Full-width table layout
   Source: mypage-redesign.css
========================================== */

/* MyPage Container */
.mypage-container-new {
    max-width: 1400px;
    margin: 0 auto;
    padding: 24px 20px;
}

/* MyPage Header */
.mypage-header-new {
    background: white;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    margin-bottom: 20px;
    overflow: hidden;
}

.mypage-profile-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid #E2E8F0;
}

.mypage-avatar {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #3B82F6, #1D4ED8);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
    flex-shrink: 0;
}

.mypage-user-info {
    flex: 1;
}

.mypage-user-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1E293B;
}

.mypage-user-email {
    font-size: 0.85rem;
    color: #64748B;
}

.mypage-logout-btn {
    padding: 8px 16px;
    background: white;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    font-size: 0.85rem;
    color: #64748B;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    text-decoration: none;
}

.mypage-logout-btn:hover {
    border-color: #EF4444;
    color: #EF4444;
    text-decoration: none;
}

/* Inline Settings */
.mypage-inline-settings {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    margin-right: 16px;
    gap: 24px;
}

.mypage-settings-form {
    display: flex;
    align-items: center;
    gap: 16px;
}

.settings-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: #64748B;
}

.settings-item i {
    color: #94A3B8;
}

.mypage-lang-select {
    padding: 6px 10px;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    font-size: 0.8rem;
    color: #475569;
    background: white;
    cursor: pointer;
}

.mypage-lang-select:focus {
    outline: none;
    border-color: #3B82F6;
}

.mypage-save-btn-small {
    padding: 6px 12px;
    background: #3B82F6;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: background 0.15s;
}

.mypage-save-btn-small:hover {
    background: #2563EB;
}

/* Tabs / Title */
.mypage-tabs-new {
    display: flex;
    padding: 0 24px;
    background: #F8FAFC;
}

.mypage-tab-title {
    padding: 14px 20px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #3B82F6;
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
}

.mypage-tab-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #3B82F6;
    border-radius: 3px 3px 0 0;
}

.mypage-tab-new {
    padding: 14px 20px;
    background: transparent;
    border: none;
    font-size: 0.9rem;
    font-weight: 500;
    color: #64748B;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.15s;
}

.mypage-tab-new:hover {
    color: #3B82F6;
}

.mypage-tab-new.active {
    color: #3B82F6;
}

.mypage-tab-new.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #3B82F6;
    border-radius: 3px 3px 0 0;
}

.mypage-tab-badge {
    background: #3B82F6;
    color: white;
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
}

/* Info Box */
.mypage-info-box {
    background: #EFF6FF;
    border: 1px solid #DBEAFE;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.85rem;
    color: #1E40AF;
}

.mypage-info-box i {
    font-size: 1.1rem;
}

.mypage-info-box strong {
    font-weight: 600;
}

/* Table Enhancements for MyPage */
.mypage-table-wrapper .screener-table {
    min-width: auto;
    width: 100%;
    table-layout: auto;
}

/* Star Button */
.star-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    color: #F59E0B;
    transition: transform 0.15s, color 0.15s;
    padding: 4px;
}

.star-btn:hover {
    transform: scale(1.2);
}

.star-btn.active {
    color: #F59E0B;
}

.star-btn:not(.active) {
    color: #CBD5E1;
}

/* Stock Price */
.stock-price {
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    color: #1E293B;
    white-space: nowrap;
}

/* Sparkline */
.sparkline-cell {
    padding: 6px 8px !important;
}

.sparkline {
    display: block;
}

.sparkline-up {
    stroke: #10B981;
}

.sparkline-down {
    stroke: #EF4444;
}

/* Notification Toggle */
.notification-toggle {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
    vertical-align: middle;
}

.notification-cell {
    text-align: center;
}

.notification-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}

.notification-toggle .toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #CBD5E1;
    transition: 0.3s;
    border-radius: 24px;
}

.notification-toggle .toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.3s;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.notification-toggle input:checked + .toggle-slider {
    background-color: #3B82F6;
}

.notification-toggle input:checked + .toggle-slider:before {
    transform: translateX(20px);
}

.notification-toggle input:disabled + .toggle-slider {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Desktop: No horizontal scroll */
.mypage-table-wrapper .screener-table-scroll {
    overflow-x: visible;
}

/* Notification Settings Panel */
.notification-settings-panel {
    background: white;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    padding: 24px;
    display: none;
}

.notification-settings-panel.active {
    display: block;
}

.settings-section {
    margin-bottom: 24px;
}

.settings-section:last-child {
    margin-bottom: 0;
}

.settings-label {
    font-weight: 600;
    margin-bottom: 8px;
    color: #1E293B;
}

.settings-description {
    font-size: 0.85rem;
    color: #64748B;
    margin-bottom: 12px;
}

.settings-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    background: #FEF3C7;
    border-radius: 8px;
    border: 1px solid #FDE68A;
}

.mypage-save-btn {
    background: #3B82F6;
    color: white;
    border: none;
    padding: 12px 32px;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.mypage-save-btn:hover {
    background: #2563EB;
}

/* Empty State */
.mypage-empty-state {
    text-align: center;
    padding: 60px 20px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.mypage-empty-state i {
    font-size: 3rem;
    color: #CBD5E1;
    margin-bottom: 16px;
}

.mypage-empty-state-title {
    font-size: 1.2rem;
    font-weight: 600;
    color: #1E293B;
    margin-bottom: 8px;
}

.mypage-empty-state-text {
    color: #64748B;
    margin-bottom: 20px;
}

.mypage-empty-state .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: #3B82F6;
    color: white;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 500;
    transition: background 0.15s;
}

.mypage-empty-state .btn:hover {
    background: #2563EB;
    text-decoration: none;
    color: white;
}

/* Success Messages */
.mypage-success-message {
    background: #D1FAE5;
    border: 1px solid #A7F3D0;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #047857;
}

.mypage-success-message i {
    font-size: 1.2rem;
}

/* MyPage Responsive */
@media (max-width: 900px) {
    .mypage-container-new {
        padding: 16px;
    }

    .mypage-profile-row {
        flex-wrap: wrap;
    }

    .mypage-inline-settings {
        order: 3;
        flex-basis: 100%;
        justify-content: flex-start;
        margin-right: 0;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid #E2E8F0;
    }

    .mypage-logout-btn {
        margin-left: auto;
    }
}

@media (max-width: 768px) {
    .mypage-profile-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .mypage-inline-settings {
        width: 100%;
    }

    .mypage-settings-form {
        flex-wrap: wrap;
        gap: 12px;
    }

    .settings-item span {
        display: none;
    }

    .mypage-logout-btn {
        margin-left: 0;
        width: 100%;
        justify-content: center;
    }

    .mypage-tabs-new {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .mypage-tab-new,
    .mypage-tab-title {
        white-space: nowrap;
        padding: 12px 16px;
    }

    /* Enable horizontal scroll on mobile */
    .mypage-table-wrapper .screener-table-scroll {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .mypage-table-wrapper .screener-table {
        min-width: 700px;
    }

    /* Hide less important columns on mobile */
    /* Hide: PER(7), PBR(8), 配当(9), ROE(10), 出来高(11) */
    .mypage-table-wrapper .screener-table th:nth-child(7),
    .mypage-table-wrapper .screener-table td:nth-child(7),
    .mypage-table-wrapper .screener-table th:nth-child(8),
    .mypage-table-wrapper .screener-table td:nth-child(8),
    .mypage-table-wrapper .screener-table th:nth-child(9),
    .mypage-table-wrapper .screener-table td:nth-child(9),
    .mypage-table-wrapper .screener-table th:nth-child(10),
    .mypage-table-wrapper .screener-table td:nth-child(10),
    .mypage-table-wrapper .screener-table th:nth-child(11),
    .mypage-table-wrapper .screener-table td:nth-child(11) {
        display: none;
    }
}

/* ========================================
   Section: WordPress Login Page
   ======================================== */

/* Login page body */
body.login {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Login page header - 通常ヘッダーと同じスタイルを使用 */
/* 追加スタイルは不要（共通スタイルが適用される） */

/* Login wrapper positioning */
body.login #login {
    margin-top: 40px;
    margin-bottom: 40px;
    padding: 20px;
}

/* Hide default WordPress logo */
body.login #login h1 {
    display: none;
}

/* Login form card */
body.login #loginform {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    padding: 32px;
    border: none;
}

body.login #loginform label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--gray-700);
}

/* テキスト入力フィールド - 統合スタイルは下部で定義 */

body.login #loginform .button-primary {
    width: 100%;
    padding: 12px 24px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    color: #ffffff;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

body.login #loginform .button-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

/* Remember me checkbox */
body.login .forgetmenot {
    margin-top: 16px;
}

body.login .forgetmenot label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.875rem;
    color: var(--gray-600);
}

/* Nav links */
body.login #nav,
body.login #backtoblog {
    text-align: center;
    margin-top: 16px;
}

body.login #nav a,
body.login #backtoblog a {
    color: var(--primary-500);
    text-decoration: none;
    font-size: 0.875rem;
}

body.login #nav a:hover,
body.login #backtoblog a:hover {
    text-decoration: underline;
}

/* Login page footer - 通常フッターと同じスタイルを使用 */
body.login .jir-footer {
    margin-top: auto;
}

/* Error messages - 統合スタイルは下部で定義 */

body.login .message {
    border-left: 4px solid var(--primary-500);
    background: #eff6ff;
    color: var(--primary-700);
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

/* Responsive */
@media (max-width: 768px) {
    body.login #login {
        margin-top: 24px;
        margin-bottom: 24px;
        width: 100%;
        padding: 16px;
    }

    body.login #loginform {
        padding: 24px;
    }
}

/* ========================================
   WordPress Login Page - カスタムログインデザイン完全版
   design-assets/00_ログイン＆マイページ.html と同じデザイン
======================================== */

/* ページ全体のレイアウト */
body.login {
    background: var(--gray-50) !important;
    font-family: 'Outfit', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif !important;
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
}

/* ヘッダーのpadding-bottom調整 */
body.login .jir-header {
    padding-bottom: 20px !important;
    height: auto !important;
    min-height: var(--header-height) !important;
}

/* メインコンテンツエリア */
body.login #login {
    width: 100% !important;
    max-width: 480px !important;
    margin: 0 auto !important;
    padding: 0 24px 80px !important;
    flex: 1 !important;
}

/* ログインページのパンくず（共通コンポーネントと同じ位置） */
body.login .jir-breadcrumbs {
    display: block !important;
    background: var(--white) !important;
    width: 100% !important;
}

body.login .jir-breadcrumbs-container {
    max-width: var(--container-2xl) !important;
    margin: 0 auto !important;
    padding: var(--spacing-3) var(--spacing-6) !important;
}

body.login .jir-breadcrumb-list {
    display: flex !important;
    align-items: center !important;
    gap: var(--spacing-2) !important;
    font-size: 0.85rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.login .jir-breadcrumb-list li {
    display: flex !important;
    align-items: center !important;
    color: var(--gray-400) !important;
}

body.login .jir-breadcrumb-list li a {
    color: var(--gray-500) !important;
    text-decoration: none !important;
}

body.login .jir-breadcrumb-list li a:hover {
    color: var(--primary-600) !important;
}

body.login .jir-breadcrumb-current {
    color: var(--gray-700) !important;
    font-weight: 500 !important;
}

/* デフォルトのWordPressロゴを非表示（カスタムタイトルは表示） */
body.login #login>h1 {
    display: none !important;
}

/* #login 全体を1つのカードとして統合 */
body.login #login {
    background: white !important;
    border-radius: var(--radius-xl) !important;
    box-shadow: var(--shadow-lg) !important;
    border: 1px solid var(--gray-100) !important;
    padding: 32px 40px 40px !important;
    max-width: 480px !important;
    margin: 0 auto !important;
}

/* カスタムログインヘッダー（カード内に統合） */
body.login .auth-header-custom {
    display: block !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 0 24px 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

body.login .auth-header-custom .auth-title {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--primary-700) !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 8px 0 !important;
}

body.login .auth-header-custom .auth-title i {
    font-size: 1.25rem !important;
    color: var(--primary-600) !important;
}

body.login .auth-header-custom .auth-subtitle {
    font-size: 0.95rem !important;
    color: var(--gray-500) !important;
    text-align: center !important;
    padding-top: 16px !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* WordPress通知メッセージを非表示 */
body.login .notice.notice-info,
body.login .message {
    display: none !important;
}

/* ログインエラーメッセージ（カード内に統合） */
body.login #login_error {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
}

body.login #login_error .login-error-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.login #login_error .login-error-list li {
    color: var(--danger) !important;
    font-size: 0.875rem !important;
    margin-bottom: 4px !important;
}

body.login #login_error .login-error-list li:last-child {
    margin-bottom: 0 !important;
}

/* ログインフォーム（カード内に統合） */
body.login form#loginform,
body.login form#lostpasswordform,
body.login form#registerform {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* WordPress デフォルトの登録メッセージを非表示 */
body.login #reg_passmail,
body.login .message.register {
    display: none !important;
}

/* ラベル */
body.login form label {
    display: block !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    color: var(--gray-700) !important;
    margin-bottom: 8px !important;
}

/* テキスト入力フィールド */
body.login form input[type="text"],
body.login form input[type="password"],
body.login form input[type="email"] {
    width: 100% !important;
    padding: 14px 18px !important;
    font-size: 1rem !important;
    font-family: inherit !important;
    color: var(--gray-800) !important;
    background: white !important;
    border: 2px solid var(--gray-200) !important;
    border-radius: var(--radius-md) !important;
    outline: none !important;
    transition: all 0.15s ease !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

body.login form input[type="text"]::placeholder,
body.login form input[type="password"]::placeholder,
body.login form input[type="email"]::placeholder {
    color: var(--gray-400) !important;
}

body.login form input[type="text"]:focus,
body.login form input[type="password"]:focus,
body.login form input[type="email"]:focus {
    border-color: var(--primary-500) !important;
    box-shadow: 0 0 0 4px var(--primary-100) !important;
}

/* フォームグループの間隔 */
body.login form .user-pass-wrap,
body.login form .input,
body.login form p:has(label) {
    margin-bottom: 20px !important;
}

/* チェックボックス（ログイン状態保持） */
body.login form .forgetmenot {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 20px !important;
}

body.login form .forgetmenot input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: var(--primary-600) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

body.login form .forgetmenot label {
    font-size: 0.9rem !important;
    color: var(--gray-600) !important;
    margin: 0 !important;
    cursor: pointer !important;
}

/* ログインボタン */
body.login form .button-primary,
body.login form #wp-submit {
    width: 100% !important;
    padding: 16px !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    color: white !important;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-800)) !important;
    border: none !important;
    border-radius: var(--radius-md) !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    margin-top: 8px !important;
    line-height: 1 !important;
    text-shadow: none !important;
    box-shadow: none !important;
}

body.login form .button-primary:hover,
body.login form #wp-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-lg) !important;
}

body.login form .button-primary:active,
body.login form #wp-submit:active {
    transform: translateY(0) !important;
}

/* submitボタンの親要素 */
body.login form .submit {
    margin-top: 8px !important;
}

/* 成功メッセージ */
body.login .message {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 16px 20px !important;
    background: var(--primary-50) !important;
    border: 1px solid var(--primary-200) !important;
    border-left: 4px solid var(--primary-500) !important;
    border-radius: var(--radius-lg) !important;
    color: var(--primary-700) !important;
    font-size: 0.9rem !important;
    margin-bottom: 20px !important;
}

/* デフォルトのナビゲーションリンクを非表示 */
body.login #nav,
body.login #backtoblog {
    display: none !important;
}

/* WordPress.org へのリンクを非表示 */
body.login .privacy-policy-page-link {
    display: none !important;
}

/* Language Switcher を非表示 */
body.login .language-switcher {
    display: none !important;
}

/* カスタム auth-footer（フォーム内に配置） */
body.login .auth-footer-custom {
    text-align: center;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--gray-100);
}

body.login .auth-footer-custom a {
    color: var(--primary-600);
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.15s ease;
}

body.login .auth-footer-custom a:hover {
    color: var(--primary-700);
    text-decoration: underline;
}

body.login .auth-footer-custom p {
    font-size: 0.9rem;
    color: var(--gray-500);
    margin-top: 12px;
    margin-bottom: 0;
}

body.login .auth-footer-custom p a {
    color: var(--primary-600);
}

body.login .auth-footer-custom p a strong {
    font-weight: 600;
}

/* ========================================
   パスワードリセット画面 (lostpassword)
======================================== */

/* デフォルトのWordPressメッセージボックスを非表示 */
body.login.login-action-lostpassword .message {
    display: none !important;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    body.login #login {
        padding: 0 16px 60px !important;
    }

    body.login .login-page-header {
        padding: 32px 16px 0 !important;
    }

    body.login .auth-header-custom {
        padding: 24px !important;
    }

    body.login form#loginform,
    body.login form#lostpasswordform {
        padding: 24px !important;
    }
}

@media (max-width: 480px) {
    body.login .login-page-header {
        padding: 24px 16px 0 !important;
    }

    body.login .auth-header-custom {
        padding: 20px !important;
    }

    body.login form#loginform,
    body.login form#lostpasswordform {
        padding: 20px !important;
    }

    body.login form input[type="text"],
    body.login form input[type="password"] {
        padding: 12px 14px !important;
    }

    body.login form .button-primary,
    body.login form #wp-submit {
        padding: 14px !important;
    }

    body.login .auth-title {
        font-size: 1.1rem !important;
    }

    body.login .auth-subtitle {
        font-size: 0.8rem !important;
    }
}

/* ========================================
   Astra親テーマ カスタマイズ
   ======================================== */

/* Astra Scroll to Top ボタンを非表示 */
#ast-scroll-top {
    display: none !important;
}

/* ========================================
   Site Map Page
   ======================================== */

/* Main Content */
.jir-sitemap-content {
    max-width: 900px;
    margin: 0 auto;
    padding: 48px 0 80px;
}

/* Search Section */
.jir-sitemap-search-section {
    margin-bottom: 40px;
}

.jir-sitemap-search-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px 32px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-sitemap-search-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-sitemap-search-title i {
    color: var(--primary-500);
}

.jir-sitemap-search-wrapper {
    display: flex;
    gap: 12px;
    position: relative;
}

.jir-sitemap-search-input {
    flex: 1;
    padding: 12px 16px;
    font-size: 0.95rem;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    outline: none;
    transition: all var(--transition-fast);
    font-family: inherit;
}

.jir-sitemap-search-input:focus {
    border-color: var(--primary-500);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.jir-sitemap-search-btn {
    padding: 12px 24px;
    background: var(--primary-600);
    color: white;
    border: none;
    border-radius: var(--radius-md);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: inherit;
}

.jir-sitemap-search-btn:hover {
    background: var(--primary-700);
}

/* Sections */
.jir-sitemap-section {
    margin-bottom: 40px;
}

.jir-sitemap-section-header {
    margin-bottom: 20px;
}

.jir-sitemap-section-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 10px;
}

.jir-sitemap-section-title i {
    color: var(--primary-500);
}

/* Main Sections Grid */
.jir-sitemap-main-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.jir-sitemap-main-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 28px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-base);
    display: flex;
    gap: 20px;
    text-decoration: none;
}

.jir-sitemap-main-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary-200);
}

.jir-sitemap-main-icon {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.jir-sitemap-main-icon-accent {
    background: linear-gradient(135deg, var(--accent), #0891B2);
}

.jir-sitemap-main-icon-login {
    background: linear-gradient(135deg, #10B981, #059669);
}

.jir-sitemap-main-content {
    flex: 1;
}

.jir-sitemap-main-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--gray-800);
    margin-bottom: 6px;
}

.jir-sitemap-main-desc {
    font-size: 0.9rem;
    color: var(--gray-500);
    line-height: 1.6;
    margin: 0;
}

/* Page List */
.jir-sitemap-page-list-card {
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    overflow: hidden;
}

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

.jir-sitemap-page-item {
    border-bottom: 1px solid var(--gray-100);
}

.jir-sitemap-page-item:last-child {
    border-bottom: none;
}

.jir-sitemap-page-item a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 28px;
    text-decoration: none;
    transition: background var(--transition-fast);
}

.jir-sitemap-page-item a:hover {
    background: var(--gray-50);
}

.jir-sitemap-page-info {
    display: flex;
    align-items: center;
    gap: 14px;
}

.jir-sitemap-page-icon {
    width: 40px;
    height: 40px;
    background: var(--gray-100);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gray-500);
    font-size: 1rem;
    transition: all var(--transition-fast);
}

.jir-sitemap-page-item a:hover .jir-sitemap-page-icon {
    background: var(--primary-100);
    color: var(--primary-600);
}

.jir-sitemap-page-name {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--gray-700);
}

.jir-sitemap-page-meta {
    font-size: 0.8rem;
    color: var(--gray-400);
    margin-top: 2px;
}

.jir-sitemap-page-arrow {
    color: var(--gray-300);
    transition: all var(--transition-fast);
}

.jir-sitemap-page-item a:hover .jir-sitemap-page-arrow {
    color: var(--primary-500);
    transform: translateX(4px);
}

/* Auto Update Notice */
.jir-sitemap-auto-update {
    background: linear-gradient(135deg, var(--primary-50), var(--gray-50));
    border-radius: var(--radius-xl);
    padding: 24px 28px;
    border: 1px solid var(--primary-100);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.jir-sitemap-auto-update-icon {
    width: 44px;
    height: 44px;
    background: white;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-500);
    font-size: 1.25rem;
    box-shadow: var(--shadow-sm);
    flex-shrink: 0;
}

.jir-sitemap-auto-update-content h4 {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-sitemap-auto-update-content p {
    font-size: 0.85rem;
    color: var(--gray-500);
    line-height: 1.6;
    margin: 0;
}

.jir-sitemap-last-checked {
    margin-top: 8px;
    font-size: 0.8rem;
    color: var(--gray-400);
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Responsive */
@media (max-width: 768px) {
    .jir-sitemap-content {
        padding: 32px var(--spacing-4) 60px;
    }

    .jir-sitemap-main-grid {
        grid-template-columns: 1fr;
    }

    .jir-sitemap-main-card {
        flex-direction: column;
        text-align: center;
    }

    .jir-sitemap-main-icon {
        margin: 0 auto;
    }

    .jir-sitemap-search-wrapper {
        flex-direction: column;
    }

    .jir-sitemap-search-btn {
        justify-content: center;
    }

    .jir-sitemap-page-item a {
        padding: 14px 16px;
    }

    .jir-sitemap-auto-update {
        flex-direction: column;
        text-align: center;
    }

    .jir-sitemap-auto-update-icon {
        margin: 0 auto;
    }
}

/* ============================================
   Section 15: 検索結果ページ
   ============================================ */

/* 検索ハイライト */
.jir-search-highlight {
    background-color: #fef08a;
    color: inherit;
    padding: 0 2px;
    border-radius: 2px;
    font-weight: inherit;
}

/* 検索ヘッダー */
.jir-search-header {
    background: white;
    border-bottom: 1px solid var(--gray-200);
    padding: 24px 0;
}

.jir-search-form {
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 800px;
}

/* 検索結果ページ専用：.jir-search-input-wrapper, .jir-search-field, .jir-search-submit */
.jir-search-header .jir-search-input-wrapper {
    flex: 1;
    position: relative;
    background: transparent;
    border: none;
    box-shadow: none;
    margin-bottom: 0;
    overflow: visible;
    display: block;
}

.jir-search-header .jir-search-input-wrapper > i {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray-400);
    font-size: 1.1rem;
    z-index: 1;
}

.jir-search-header .jir-search-field {
    width: 100%;
    padding: 16px 20px 16px 52px;
    font-size: 1.1rem;
    font-family: inherit;
    color: var(--gray-800);
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: var(--radius-xl);
    transition: all var(--transition-fast);
}

.jir-search-header .jir-search-field:focus {
    outline: none;
    border-color: var(--primary-500);
    background: white;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}

.jir-search-header .jir-search-submit {
    width: 116.25px;
    height: 51px;
    font-size: 1rem;
    font-weight: 600;
    color: white;
    background: var(--primary-600);
    border: none;
    border-radius: var(--radius-xl);
    cursor: pointer;
    transition: all var(--transition-fast);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

.jir-search-header .jir-search-submit:hover {
    background: var(--primary-700);
}

.jir-search-meta {
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.jir-search-query {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gray-800);
}

.jir-search-query span {
    color: var(--primary-600);
}

.jir-search-count {
    font-size: 0.9rem;
    color: var(--gray-500);
}

.jir-search-count strong {
    color: var(--gray-700);
    font-weight: 600;
}

.jir-search-time {
    font-size: 0.85rem;
    color: var(--gray-400);
}

/* メインレイアウト */
.jir-search-main {
    padding: 32px 0 80px;
}

.jir-search-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 32px;
}

/* サイドバー（フィルター） */
.jir-search-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.jir-filter-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 20px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-filter-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-filter-title i {
    color: var(--primary-500);
    font-size: 0.85rem;
}

/* フィルタータブ */
.jir-filter-tabs {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.jir-filter-tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    font-size: 0.9rem;
    color: var(--gray-600);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-filter-tab:hover {
    background: var(--gray-50);
    color: var(--gray-700);
}

.jir-filter-tab.active {
    background: var(--primary-50);
    color: var(--primary-700);
    font-weight: 600;
}

.jir-filter-tab i {
    width: 20px;
}

.jir-filter-count {
    font-size: 0.75rem;
    padding: 2px 8px;
    background: var(--gray-100);
    color: var(--gray-500);
    border-radius: var(--radius-full);
}

.jir-filter-tab.active .jir-filter-count {
    background: var(--primary-100);
    color: var(--primary-600);
}

/* フィルターオプション */
.jir-filter-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jir-filter-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 0.85rem;
    color: var(--gray-600);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.jir-filter-option:hover {
    color: var(--gray-800);
}

.jir-filter-option input[type="checkbox"] {
    display: none;
}

.jir-filter-checkbox {
    width: 18px;
    height: 18px;
    border: 2px solid var(--gray-300);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
    flex-shrink: 0;
}

.jir-filter-option.checked .jir-filter-checkbox {
    background: var(--primary-600);
    border-color: var(--primary-600);
}

.jir-filter-checkbox i {
    font-size: 0.65rem;
    color: white;
    opacity: 0;
}

.jir-filter-option.checked .jir-filter-checkbox i {
    opacity: 1;
}

.jir-filter-option-count {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--gray-400);
}

/* フィルタークリア */
.jir-clear-filters {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px;
    font-size: 0.85rem;
    color: var(--gray-500);
    background: var(--gray-100);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-clear-filters:hover {
    background: var(--gray-200);
    color: var(--gray-700);
}

/* 結果エリア */
.jir-search-results {
    min-width: 0;
}

/* ソートバー */
.jir-sort-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--gray-200);
}

.jir-active-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.jir-active-filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 0.8rem;
    color: var(--primary-700);
    background: var(--primary-50);
    border-radius: var(--radius-full);
}

.jir-active-filter-tag a {
    color: var(--primary-400);
    padding: 0;
    font-size: 0.7rem;
}

.jir-active-filter-tag a:hover {
    color: var(--primary-700);
}

.jir-sort-options {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jir-sort-label {
    font-size: 0.85rem;
    color: var(--gray-500);
}

.jir-sort-select {
    padding: 8px 32px 8px 12px;
    font-size: 0.85rem;
    font-family: inherit;
    color: var(--gray-700);
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") no-repeat right 10px center;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    appearance: none;
    cursor: pointer;
}

/* 結果セクション */
.jir-result-section {
    margin-bottom: 32px;
}

.jir-result-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.jir-result-section-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-result-section-title i {
    color: var(--primary-500);
}

.jir-result-section-count {
    font-size: 0.85rem;
    color: var(--gray-400);
}

.jir-result-section-more {
    font-size: 0.85rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 16px;
}

/* 結果リスト */
.jir-results-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* 企業カード */
.jir-company-result {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-base);
}

.jir-company-result:hover {
    border-color: var(--primary-200);
    box-shadow: var(--shadow-lg);
}

.jir-company-result-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.jir-company-logo {
    width: 56px;
    height: 56px;
    background: var(--gray-100);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--gray-400);
    flex-shrink: 0;
}

.jir-company-info {
    flex: 1;
}

.jir-company-name-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 4px;
}

.jir-company-code {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--primary-700);
    background: var(--primary-50);
    border-radius: var(--radius-sm);
}

/* 検索結果ページ: 企業カードの企業名 */
.jir-company-result .jir-company-name {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--gray-800);
}

.jir-company-result .jir-company-name:hover {
    color: var(--primary-600);
}

/* 企業詳細ページ: 企業名のホバーエフェクト無効化 */
body.single-company .jir-company-name:hover {
    color: inherit;
}

.jir-company-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 0.85rem;
    color: var(--gray-500);
}

.jir-company-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.jir-company-meta-item i {
    font-size: 0.75rem;
}

/* 株価・時価総額・IR数 */
.jir-company-stats {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 16px;
    padding: 16px;
    background: var(--gray-50);
    border-radius: var(--radius-lg);
}

.jir-company-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.jir-company-stat-value {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gray-800);
}

.jir-company-stat-label {
    font-size: 0.7rem;
    color: var(--gray-500);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* 最新IR */
.jir-company-recent-ir {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--gray-100);
}

.jir-company-recent-ir-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-600);
}

.jir-recent-ir-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: var(--gray-50);
    border-radius: var(--radius-md);
    font-size: 0.85rem;
    transition: background var(--transition-fast);
}

.jir-recent-ir-item:hover {
    background: var(--gray-100);
}

.jir-recent-ir-date {
    font-size: 0.75rem;
    color: var(--gray-400);
    white-space: nowrap;
}

.jir-recent-ir-title {
    flex: 1;
    color: var(--gray-700);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* IRカード */
.jir-ir-result {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    transition: all var(--transition-base);
}

.jir-ir-result:hover {
    border-color: var(--primary-200);
    box-shadow: var(--shadow-lg);
}

.jir-ir-result-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 12px;
}

.jir-ir-result-company {
    display: flex;
    align-items: center;
    gap: 10px;
}

.jir-ir-company-code {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    color: white;
    background: var(--primary-600);
    border-radius: var(--radius-sm);
}

.jir-ir-company-name {
    font-size: 0.9rem;
    color: var(--gray-600);
}

.jir-ir-result-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.jir-ir-date {
    font-size: 0.8rem;
    color: var(--gray-400);
}

/* IR重要度の星 */
.jir-ir-importance {
    display: flex;
    gap: 2px;
    font-size: 0.7rem;
    color: var(--warning);
}

.jir-ir-importance i.far {
    color: var(--gray-300);
}

.jir-ir-result-title {
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 10px;
    line-height: 1.5;
}

.jir-ir-result-title:hover {
    color: var(--primary-600);
}

.jir-ir-result-summary {
    font-size: 0.9rem;
    color: var(--gray-500);
    line-height: 1.7;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.jir-ir-result-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid var(--gray-100);
}

.jir-ir-result-tags {
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-ir-category-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-full);
    background: var(--gray-100);
    color: var(--gray-600);
}

.jir-ir-category-badge.financial-summary,
.jir-ir-category-badge.financial {
    background: #D1FAE5;
    color: #059669;
}

.jir-ir-category-badge.dividend {
    background: #CFFAFE;
    color: #0891B2;
}

.jir-ir-category-badge.ma,
.jir-ir-category-badge.m-and-a {
    background: #FEF3C7;
    color: #D97706;
}

.jir-ir-category-badge.guidance,
.jir-ir-category-badge.earnings-guidance {
    background: #EDE9FE;
    color: #7C3AED;
}

/* IRタグ */
.jir-ir-tag {
    display: inline-flex;
    padding: 4px 10px;
    font-size: 0.75rem;
    color: var(--gray-500);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.jir-ir-tag:hover {
    background: var(--gray-200);
    color: var(--gray-700);
}

/* ページネーション */
.jir-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 40px;
    gap: 8px;
}

.jir-pagination-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-pagination-btn:hover:not(.active) {
    background: var(--gray-100);
}

.jir-pagination-btn.active {
    background: var(--primary-600);
    color: white;
}

.jir-pagination-btn.active:hover {
    background: var(--primary-600);
    color: white;
}

.jir-pagination-ellipsis {
    color: var(--gray-400);
    padding: 0 8px;
}

/* 関連検索 */
.jir-related-searches {
    margin-top: 40px;
    padding: 24px;
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-related-searches-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-related-searches-title i {
    color: var(--primary-500);
}

.jir-related-searches-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.jir-related-search-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 0.85rem;
    color: var(--gray-600);
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.jir-related-search-item:hover {
    background: var(--primary-50);
    border-color: var(--primary-200);
    color: var(--primary-700);
}

.jir-related-search-item i {
    font-size: 0.75rem;
    color: var(--gray-400);
}

/* 結果なし */
.jir-no-results {
    text-align: center;
    padding: 80px 40px;
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

.jir-no-results-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    background: var(--gray-100);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--gray-400);
}

.jir-no-results-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 8px;
}

.jir-no-results-desc {
    font-size: 0.95rem;
    color: var(--gray-500);
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .jir-search-layout {
        grid-template-columns: 1fr;
    }

    .jir-search-sidebar {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .jir-filter-card {
        flex: 1;
        min-width: 200px;
    }
}

@media (max-width: 768px) {
    .jir-search-form {
        flex-direction: column;
    }

    .jir-search-header .jir-search-btn {
        width: 100%;
        justify-content: center;
    }

    .jir-search-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .jir-search-query {
        font-size: 1.2rem;
    }

    .jir-search-sidebar {
        flex-direction: column;
    }

    .jir-filter-card {
        min-width: 100%;
    }

    .jir-sort-bar {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }

    .jir-company-result-header {
        flex-direction: column;
    }

    .jir-ir-result-header {
        flex-direction: column;
        gap: 12px;
    }

    .jir-ir-result-footer {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }

    .jir-pagination {
        flex-wrap: wrap;
        gap: 8px;
        justify-content: center;
    }
}

/* ========================================
   トップページ: フィルターセクション (09_トップ.html準拠)
======================================== */
.jir-filter-section-top {
    background: white;
    border-radius: var(--radius-xl);
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
}

.jir-filter-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.jir-filter-title-top {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gray-700);
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-filter-title-top i {
    color: var(--primary-500);
}

/* トップページ: 検索ボックス（企業一覧と同じデザイン） */
.jir-filter-section-top .jir-search-box {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    background: white !important;
    border: 1px solid var(--gray-300) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    overflow: hidden !important;
    transition: all var(--transition-fast) !important;
    margin-bottom: 20px !important;
}

.jir-filter-section-top .jir-search-box:focus-within {
    border-color: var(--primary-500) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
}

.jir-filter-section-top .jir-search-input {
    height: 56px !important;
    padding: 0 16px !important;
    font-size: 1rem !important;
    line-height: 56px !important;
    background: white !important;
    border: none !important;
    box-sizing: border-box !important;
    flex: 1 !important;
    outline: none !important;
    font-family: inherit !important;
}

.jir-filter-section-top .jir-search-btn {
    height: 56px !important;
    padding: 0 32px !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 56px !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-600)) !important;
    color: white !important;
    border: none !important;
    cursor: pointer !important;
    transition: all var(--transition-fast) !important;
    flex-shrink: 0 !important;
}

.jir-filter-section-top .jir-search-btn:hover {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700)) !important;
}

.jir-filter-section-top .jir-search-btn i {
    font-size: 1rem;
    color: white;
}

/* フィルターフッター（右下にクリアボタン） */
.jir-filter-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--gray-100);
}

.jir-filter-clear-btn {
    font-size: 0.8rem;
    color: var(--gray-500);
    cursor: pointer;
    transition: all var(--transition-fast);
    background: transparent;
    border: 1px solid var(--gray-300);
    padding: 8px 16px;
    border-radius: var(--radius-md);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.jir-filter-clear-btn:hover {
    color: var(--danger);
    border-color: var(--danger);
    background: var(--danger-light);
}

/* 投資視点カテゴリセクション */
.jir-categories-section {
    margin-top: 0;
}

.jir-categories-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gray-600);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jir-categories-title i {
    color: var(--primary-500);
    font-size: 0.8rem;
}

/* カテゴリタグ */
.jir-category-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.jir-category-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 9px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-100);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
    border: 2px solid transparent;
}

.jir-category-tag:hover {
    background: var(--primary-50);
    color: var(--primary-600);
}

.jir-category-tag.active {
    background: var(--primary-100);
    color: var(--primary-700);
    border-color: var(--primary-300);
}

.jir-category-tag i {
    font-size: 0.7rem;
}

/* ソート行 */
.jir-sort-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-100);
}

.jir-sort-options {
    display: flex;
    align-items: center;
    gap: 16px;
}

body.home .jir-sort-label {
    font-size: 0.85rem;
    color: var(--gray-500);
}

body.home .jir-sort-select {
    padding: 8px 32px 8px 12px;
    font-size: 0.85rem;
    font-family: inherit;
    color: var(--gray-700);
    background: var(--gray-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    appearance: none;
    cursor: pointer;
}

.jir-result-count {
    font-size: 0.9rem;
    color: var(--gray-600);
}

.jir-result-count strong {
    color: var(--primary-600);
    font-weight: 700;
}

/* ========================================
   トップページ: IR情報一覧テーブル (09_トップ.html準拠)
======================================== */
.jir-ir-list-card {
    background: white;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-100);
    overflow: hidden;
}

.jir-ir-list-card .jir-ir-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--gray-100);
    background: var(--gray-50);
}

.jir-ir-list-card .jir-ir-list-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gray-800);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.jir-ir-list-card .jir-ir-list-title i {
    color: var(--primary-500);
}

.jir-ir-list-card .ir-list-count {
    font-size: 0.9rem;
    color: var(--gray-600);
}

.jir-ir-list-card .ir-list-count strong {
    font-size: 1.1rem;
    color: var(--primary-600);
    font-weight: 600;
}

/* IRテーブル */
.jir-ir-list-card .jir-ir-table {
    width: 100%;
    border-collapse: collapse;
}

.jir-ir-list-card .jir-ir-table th {
    padding: 14px 16px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gray-500);
    text-align: left;
    background: var(--gray-50);
    border-bottom: 1px solid var(--gray-200);
    white-space: nowrap;
}

.jir-ir-list-card .jir-ir-table td {
    padding: 16px;
    font-size: 0.9rem;
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
    vertical-align: top;
}

.jir-ir-list-card .jir-ir-table tbody tr {
    transition: background var(--transition-fast);
}

.jir-ir-list-card .jir-ir-table tbody tr:hover {
    background: var(--primary-50);
}

.jir-ir-list-card .jir-ir-table tbody tr:last-child td {
    border-bottom: none;
}

/* 証券コード */
.jir-ir-list-card .jir-stock-code {
    font-family: 'Outfit', monospace;
    font-weight: 600;
    color: var(--gray-800);
}

/* 会社名セル */
.jir-ir-list-card .jir-company-cell {
    min-width: 200px;
}

.jir-ir-list-card .jir-company-name {
    font-weight: 600;
    color: var(--gray-900);
    display: block;
    margin-bottom: 4px;
    transition: color var(--transition-fast);
}

.jir-ir-list-card .jir-company-name:hover {
    color: var(--primary-600);
}

.jir-ir-list-card .jir-company-sector {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: var(--gray-500);
    background: var(--gray-100);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
}

/* IR種別バッジ */
.jir-ir-list-card .jir-ir-category {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

.jir-ir-list-card .jir-ir-category.other {
    background: var(--gray-100);
    color: var(--gray-600);
}

.jir-ir-list-card .jir-ir-category.personnel {
    background: var(--purple-light);
    color: var(--purple);
}

.jir-ir-list-card .jir-ir-category.ma {
    background: var(--accent-light);
    color: #0891B2;
}

.jir-ir-list-card .jir-ir-category.earnings {
    background: var(--success-light);
    color: #047857;
}

.jir-ir-list-card .jir-ir-category.dividend {
    background: var(--warning-light);
    color: #B45309;
}

.jir-ir-list-card .jir-ir-category.buyback {
    background: var(--primary-100);
    color: var(--primary-700);
}

.jir-ir-list-card .jir-ir-category.strategy {
    background: #DBEAFE;
    color: #1D4ED8;
}

.jir-ir-list-card .jir-ir-category.esg {
    background: #D1FAE5;
    color: #047857;
}

/* IRタイトルセル */
.jir-ir-list-card .jir-ir-title-cell {
    max-width: 400px;
}

.jir-ir-list-card .jir-ir-title {
    font-size: 0.95rem;
    color: var(--gray-800);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--transition-fast);
}

.jir-ir-list-card .jir-ir-title:hover {
    color: var(--primary-600);
}

/* 日付セル */
.jir-ir-list-card .jir-ir-date-cell {
    white-space: nowrap;
    text-align: right;
}

.jir-ir-list-card .jir-ir-date {
    font-size: 0.85rem;
    color: var(--gray-500);
    display: block;
}

.jir-ir-list-card .jir-new-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.65rem;
    font-weight: 700;
    color: white;
    background: var(--danger);
    border-radius: var(--radius-sm);
    margin-left: 8px;
    animation: jir-pulse 2s infinite;
}

@keyframes jir-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

/* ページネーション (IR List Card内) */
.jir-ir-list-card .jir-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    background: transparent;
    margin-top: 0;
}

.jir-ir-list-card .jir-pagination-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.jir-ir-list-card a.jir-pagination-btn.disabled {
    pointer-events: none;
    opacity: 0.5;
    cursor: not-allowed;
}

.jir-ir-list-card .jir-pagination-btn:hover:not(.disabled):not(.active) {
    background: var(--gray-100);
}

.jir-ir-list-card .jir-pagination-btn.active {
    background: var(--primary-600);
    color: white;
}

.jir-ir-list-card .jir-pagination-btn.active:hover {
    background: var(--primary-600);
    color: white;
}

.jir-ir-list-card .jir-pagination-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.jir-ir-list-card .jir-pagination-ellipsis {
    color: var(--gray-400);
    padding: 0 8px;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
    .jir-ir-list-card .jir-ir-table th:nth-child(1),
    .jir-ir-list-card .jir-ir-table td:nth-child(1) {
        display: none;
    }
}

@media (max-width: 768px) {
    .jir-filter-section-top {
        padding: 16px;
    }

    /* 検索ボックスのレスポンシブ */
    .jir-filter-section-top .jir-search-box {
        flex-direction: row !important;
        margin-bottom: 16px !important;
    }

    .jir-filter-section-top .jir-search-input {
        height: 48px !important;
        line-height: 48px !important;
        font-size: 0.9rem !important;
        padding: 0 12px !important;
    }

    .jir-filter-section-top .jir-search-btn {
        height: 48px !important;
        padding: 0 20px !important;
        font-size: 0.9rem !important;
    }

    .jir-filter-footer {
        margin-top: 12px;
        padding-top: 12px;
    }

    .jir-category-tags {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .jir-category-tag {
        flex-shrink: 0;
    }

    .jir-sort-row {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }

    .jir-ir-list-card .jir-ir-table {
        font-size: 0.85rem;
    }

    .jir-ir-list-card .jir-ir-table th,
    .jir-ir-list-card .jir-ir-table td {
        padding: 12px 10px;
    }

    .jir-ir-list-card .jir-ir-table {
        display: block;
        min-width: 600px;
        width: 100%;
    }

    /* IRタイトル - スマホ表示でフォントサイズを調整 */
    .jir-ir-list-card .jir-ir-title {
        font-size: 0.875rem;
    }

    /* 企業名も調整 */
    .jir-ir-list-card .jir-company-name {
        font-size: 0.9rem;
    }

    /* カードコンテナの背景をグレーに変更 */
    .jir-ir-list-card {
        background: var(--gray-50) !important;
    }

    /* 偶数行の背景を濃いグレーに（交互背景を維持） */
    .jir-ir-list-card .jir-ir-table tbody tr:nth-child(even) {
        background: var(--gray-100);
    }
}
/* ============================================
   IR記事ページ: パンくずリストとコンテンツの間隔調整
   ============================================ */
body.single-ir_release .breadcrumbs,
body.single-ir_release .jir-breadcrumbs {
    padding-bottom: 0 !important;
}

body.single-ir_release .jir-container.jir-main-layout {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ============================================
   スマホ用下部タブバー（Bottom Tab Bar）
   ============================================ */

/* PC版では非表示 */
.jir-mobile-tab-bar {
    display: none;
}

/* スマホ版（768px以下）でのみ表示 */
@media (max-width: 768px) {
    .jir-mobile-tab-bar {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: rgba(255, 255, 255, 0.80);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        border-top: 1px solid var(--gray-200);
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
        z-index: 1000;
        justify-content: space-around;
        padding: 8px 0 12px;
        padding-bottom: calc(12px + env(safe-area-inset-bottom));
    }

    .jir-mobile-tab-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        color: var(--gray-400);
        font-size: 0.7rem;
        font-weight: 500;
        text-decoration: none;
        padding: 4px 16px;
        transition: all var(--transition-fast);
        flex: 1;
        max-width: 100px;
    }

    .jir-mobile-tab-item i {
        font-size: 1.2rem;
        transition: all var(--transition-fast);
    }

    .jir-mobile-tab-item:hover {
        color: var(--primary-600);
    }

    .jir-mobile-tab-item.active {
        color: var(--primary-600);
    }

    .jir-mobile-tab-item.active i {
        transform: scale(1.1);
    }

    /* タブバーで隠れないようにコンテンツ下部にpaddingを追加 */
    body {
        padding-bottom: 70px;
    }

    .jir-footer {
        margin-bottom: 0;
    }

    /* ========================================
       IR Table - Mobile Responsive (重要度カラム対応)
       ======================================== */
    /* テーブルをスマホ対応 - 横スクロール可能に */
    .ir-table {
        font-size: 11px;
        min-width: 640px; /* 最小幅を設定 */
    }

    .ir-table th,
    .ir-table td {
        padding: 8px 4px;
        white-space: nowrap; /* テキストを折り返さない */
    }

    /* カラム幅の調整 */
    .ir-table th:nth-child(1),
    .ir-table td:nth-child(1) {
        width: 55px; /* 証券コード */
    }

    .ir-table th:nth-child(2),
    .ir-table td:nth-child(2) {
        width: 110px; /* 会社名 */
        white-space: normal; /* 会社名は折り返し可 */
    }

    .ir-table th:nth-child(3),
    .ir-table td:nth-child(3) {
        width: 70px; /* 情報種別 */
        white-space: normal; /* 種別は折り返し可 */
    }

    .ir-table th:nth-child(4),
    .ir-table td:nth-child(4) {
        width: 85px; /* 重要度 */
        text-align: center;
    }

    .ir-table th:nth-child(5),
    .ir-table td:nth-child(5) {
        width: 230px; /* タイトル */
        white-space: normal; /* タイトルは折り返し可 */
    }

    .ir-table th:nth-child(6),
    .ir-table td:nth-child(6) {
        width: 90px; /* 開示日時 */
    }

    /* 重要度の星をさらに小さく */
    .ir-importance-stars {
        font-size: 0.7em !important;
        display: inline-block;
    }

    /* 情報種別バッジのフォントサイズ調整 */
    .ir-category {
        font-size: 10px;
        padding: 3px 6px;
    }
}

/* ============================================
   Stock Chart Styles (Chart.js)
   株価チャート用スタイル
============================================ */

/* 期間セレクター */
.jir-period-selector {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.jir-period-btn {
    padding: 8px 16px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600, #475569);
    background: var(--gray-100, #F1F5F9);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: all 150ms ease;
}

.jir-period-btn:hover {
    background: var(--gray-200, #E2E8F0);
}

.jir-period-btn.active {
    background: var(--primary-500, #3B82F6);
    color: white;
}

/* チャートコンテナ */
.jir-chart-container {
    background: linear-gradient(to bottom, var(--gray-50, #F8FAFC), white);
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 24px;
}

/* ローディングスピナー */
.chart-loader {
    z-index: 10;
}

.chart-loader .spinner {
    width: 40px;
    height: 40px;
    margin: 0 auto 12px;
    border: 4px solid var(--gray-200, #E2E8F0);
    border-top: 4px solid var(--primary-500, #3B82F6);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* エラー表示 */
.chart-error {
    max-width: 400px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .jir-period-selector {
        justify-content: center;
    }

    .jir-period-btn {
        padding: 6px 12px;
        font-size: 0.8rem;
    }

    .jir-chart-container {
        padding: 12px;
    }
}

/* ============================================================
   Financial Performance - Charts & Table
   ============================================================ */

/* Financial Chart Container - height override */
.jir-financial-performance .jir-chart-container {
    height: 300px;
    margin-bottom: var(--spacing-6);
}

/* Financial Table */
.jir-financial-table-wrapper {
    overflow-x: auto;
    margin-top: var(--spacing-4);
}

.jir-financial-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}

.jir-financial-table th,
.jir-financial-table td {
    padding: var(--spacing-2) var(--spacing-3);
    text-align: right;
    border-bottom: 1px solid var(--gray-200);
    white-space: nowrap;
}

.jir-financial-table th:first-child,
.jir-financial-table td:first-child {
    text-align: left;
    font-weight: var(--font-weight-medium);
    position: sticky;
    left: 0;
    background: white;
    z-index: 1;
}

.jir-financial-table thead th {
    background: var(--gray-50);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-700);
}

.jir-financial-table thead th:first-child {
    background: var(--gray-50);
}

.jir-financial-table tbody tr:hover {
    background: var(--gray-50);
}

.jir-financial-table tbody tr:hover td:first-child {
    background: var(--gray-50);
}

/* Best value highlight */
.jir-financial-table tbody td.best-value {
    background: var(--success-light);
    font-weight: var(--font-weight-semibold);
    color: var(--success);
}

.jir-financial-table tbody tr:hover td.best-value {
    background: #A7F3D0;
}

.financial-section-title {
    background: var(--gray-100) !important;
    font-weight: var(--font-weight-semibold) !important;
    text-align: left !important;
    color: var(--gray-600);
    padding: var(--spacing-3) var(--spacing-3) !important;
}

/* Financial Charts Grid - 4チャート縦並び表示 */
.financial-charts-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6);
    margin-bottom: var(--spacing-6);
}

.financial-chart-section {
    background: var(--gray-50);
    border-radius: var(--radius-md);
    padding: var(--spacing-4);
}

.chart-section-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--gray-700);
    margin: 0 0 var(--spacing-3) 0;
    padding-bottom: var(--spacing-2);
    border-bottom: 1px solid var(--gray-200);
}

.financial-chart-section .jir-chart-container {
    height: 380px;
    background: white;
    border-radius: var(--radius-sm);
    padding: var(--spacing-3);
    margin-bottom: 0;
}

/* Responsive: Financial Performance */
@media (max-width: 768px) {
    .jir-financial-tabs {
        gap: var(--spacing-1);
    }

    .financial-tab {
        padding: var(--spacing-1) var(--spacing-2);
        font-size: 0.75rem;
    }

    .jir-financial-performance .jir-chart-container {
        height: 250px;
    }

    .financial-chart-section .jir-chart-container {
        height: 300px;
    }

    .jir-financial-table {
        font-size: 0.75rem;
    }

    .jir-financial-table th,
    .jir-financial-table td {
        padding: var(--spacing-1) var(--spacing-2);
    }
}

/* =====================================================
   Analyst Recommendations Section
   ===================================================== */

.analyst-card .card-badge {
    padding: 4px 12px;
    background: var(--primary-100);
    color: var(--primary-700);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 20px;
}

.analyst-count {
    padding: 4px 12px;
    background: var(--primary-100);
    color: var(--primary-700);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 20px;
    margin-left: 8px;
}

/* 連続増配バッジ */
.dividend-streak {
    padding: 4px 12px;
    background: var(--success-light);
    color: var(--success);
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 20px;
    margin-left: 12px;
}

/* 更新日バッジ（控えめなスタイル） */
.card-badge-date {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--gray-400);
}

.analyst-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-6);
}

@media (max-width: 768px) {
    .analyst-grid {
        grid-template-columns: 1fr;
    }
}

/* Recommendation Bars */
.recommendation-bars {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.rec-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
}

.rec-label {
    width: 90px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gray-600);
    flex-shrink: 0;
}

.rec-bar-container {
    flex: 1;
    height: 24px;
    background: var(--gray-100);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.rec-bar {
    height: 100%;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    padding-left: 8px;
    min-width: 0;
    transition: width 0.5s ease;
}

.rec-bar-count {
    font-size: 0.75rem;
    font-weight: 600;
    color: white;
}

.rec-bar.strong-buy { background: var(--success); }
.rec-bar.buy { background: #34D399; }
.rec-bar.hold { background: var(--gray-400); }
.rec-bar.sell { background: #F87171; }
.rec-bar.strong-sell { background: var(--danger); }

.rec-count {
    width: 30px;
    text-align: right;
    font-weight: 600;
    color: var(--gray-800);
    flex-shrink: 0;
}

/* Target Price Box */
.target-price-box {
    background: var(--gray-50);
    border-radius: var(--radius-md);
    padding: var(--spacing-5);
    text-align: center;
}

.target-label {
    font-size: 0.85rem;
    color: var(--gray-500);
    margin-bottom: var(--spacing-2);
}

.target-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--gray-800);
}

.consensus-badge {
    display: inline-block;
    padding: 6px 16px;
    font-weight: 600;
    border-radius: 20px;
    margin-top: var(--spacing-3);
}

.consensus-badge.strong-buy,
.consensus-badge.buy {
    background: var(--success-light);
    color: var(--success);
}

.consensus-badge.hold {
    background: var(--gray-100);
    color: var(--gray-600);
}

.consensus-badge.sell,
.consensus-badge.strong-sell {
    background: var(--danger-light);
    color: var(--danger);
}

.target-range {
    display: flex;
    justify-content: space-between;
    margin-top: var(--spacing-4);
    padding-top: var(--spacing-4);
    border-top: 1px solid var(--gray-200);
}

.target-range-item {
    text-align: center;
}

.target-range-label {
    font-size: 0.75rem;
    color: var(--gray-500);
}

.target-range-value {
    font-size: 1rem;
    font-weight: 600;
}

.target-range-value.high { color: var(--success); }
.target-range-value.median { color: var(--gray-600); }
.target-range-value.low { color: var(--danger); }

.upside-potential {
    margin-top: var(--spacing-3);
    font-size: 0.9rem;
    font-weight: 600;
}

.upside-potential.positive { color: var(--success); }
.upside-potential.negative { color: var(--danger); }

/* Analyst Disclaimer */
.analyst-disclaimer {
    margin-top: var(--spacing-5);
    padding: var(--spacing-3);
    background: var(--gray-50);
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    color: var(--gray-500);
    text-align: center;
}

/* Fallback styles */
.analyst-summary-fallback {
    display: flex;
    justify-content: center;
}

.analyst-summary-fallback .analyst-box {
    text-align: center;
    padding: var(--spacing-4);
}

.analyst-summary-fallback .analyst-rating {
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary-600);
}

.analyst-summary-fallback .analyst-label {
    font-size: 0.9rem;
    color: var(--gray-600);
    margin-top: var(--spacing-2);
}

.analyst-summary-fallback .analyst-note {
    font-size: 0.75rem;
    color: var(--gray-400);
}

/* =====================================================
   Earnings Calendar Section
   ===================================================== */

.earnings-card .card-body {
    padding: var(--spacing-5);
}

/* Next Earnings Highlight */
.next-earnings {
    display: flex;
    align-items: center;
    gap: var(--spacing-5);
    padding: var(--spacing-5);
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
    border-radius: var(--radius-md);
    color: white;
    margin-bottom: var(--spacing-5);
}

.earnings-date-box {
    text-align: center;
    padding: var(--spacing-4) var(--spacing-5);
    background: rgba(255,255,255,0.15);
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.earnings-month {
    font-size: 0.85rem;
    font-weight: 500;
    opacity: 0.9;
}

.earnings-day {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
}

.earnings-year {
    font-size: 0.8rem;
    opacity: 0.8;
}

.earnings-info {
    flex: 1;
}

.earnings-label {
    font-size: 0.85rem;
    opacity: 0.9;
    margin-bottom: var(--spacing-1);
}

.earnings-quarter {
    font-size: 1.25rem;
    font-weight: 600;
}

.earnings-eps {
    margin-top: var(--spacing-2);
    font-size: 0.9rem;
}

.eps-label {
    opacity: 0.8;
}

.eps-value {
    font-weight: 600;
}

.earnings-countdown {
    text-align: center;
    padding: var(--spacing-3);
    background: rgba(255,255,255,0.1);
    border-radius: var(--radius-sm);
}

.countdown-number {
    display: block;
    font-size: 1.75rem;
    font-weight: 700;
}

.countdown-label {
    font-size: 0.75rem;
    opacity: 0.8;
}

.countdown-today {
    font-size: 1rem;
    font-weight: 600;
    color: var(--warning);
}

@media (max-width: 640px) {
    .next-earnings {
        flex-direction: column;
        text-align: center;
    }

    .earnings-countdown {
        width: 100%;
    }
}

/* Earnings History Table */
.earnings-history {
    margin-top: var(--spacing-4);
}

.earnings-history-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--gray-700);
    margin-bottom: var(--spacing-3);
}

.earnings-table {
    width: 100%;
    border-collapse: collapse;
}

.earnings-table th,
.earnings-table td {
    padding: var(--spacing-3);
    text-align: left;
    border-bottom: 1px solid var(--gray-100);
}

.earnings-table th {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gray-500);
    text-transform: uppercase;
    background: var(--gray-50);
}

.earnings-table td {
    font-size: 0.9rem;
    color: var(--gray-700);
}

.earnings-table td.positive {
    color: var(--success);
    font-weight: 600;
}

.earnings-table td.negative {
    color: var(--danger);
    font-weight: 600;
}

@media (max-width: 640px) {
    .earnings-table {
        font-size: 0.8rem;
    }

    .earnings-table th,
    .earnings-table td {
        padding: var(--spacing-2);
    }
}

/* ========================================
   Shareholders Section
======================================== */
.shareholders-card {
    margin-bottom: var(--spacing-5);
}

/* Stats Grid */
.sh-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.sh-stat-box {
    padding: 20px;
    background: var(--gray-50);
    border-radius: var(--radius-md);
    text-align: center;
}

.sh-stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--gray-800);
}

.sh-stat-value.insider { color: #F59E0B; }
.sh-stat-value.institutional { color: var(--primary-500); }
.sh-stat-value.public { color: var(--gray-500); }

.sh-stat-label {
    font-size: 0.85rem;
    color: var(--gray-500);
    margin-top: 4px;
}

/* Chart Row */
.sh-chart-row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 32px;
    align-items: center;
}

.sh-chart-container {
    position: relative;
    height: 220px;
}

.sh-bar-chart-container {
    position: relative;
    height: 320px;
}

.sh-chart-legend {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sh-legend-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sh-legend-color {
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.sh-legend-label {
    font-size: 0.9rem;
    color: var(--gray-600);
}

.sh-legend-value {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gray-800);
    margin-left: auto;
}

/* Tabs */
.sh-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.sh-tab-btn {
    padding: 8px 16px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gray-600);
    background: var(--gray-100);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    font-family: inherit;
}

.sh-tab-btn:hover {
    background: var(--gray-200);
}

.sh-tab-btn.active {
    background: var(--primary-500);
    color: white;
}

.sh-tab-content {
    display: none;
}

.sh-tab-content.active {
    display: block;
}

/* Holders Table */
.sh-holders-table {
    width: 100%;
    border-collapse: collapse;
}

.sh-holders-table thead th {
    padding: 14px 16px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gray-600);
    background: var(--gray-100);
    text-align: left;
}

.sh-holders-table thead th:first-child {
    border-radius: var(--radius-md) 0 0 0;
}

.sh-holders-table thead th:last-child {
    border-radius: 0 var(--radius-md) 0 0;
}

.sh-holders-table tbody td {
    padding: 16px;
    border-bottom: 1px solid var(--gray-100);
}

.sh-holders-table tbody tr:hover {
    background: var(--gray-50);
}

.sh-holder-name {
    font-weight: 500;
    color: var(--gray-800);
}

/* Percentage Bar */
.sh-pct-bar {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sh-mini-bar {
    width: 80px;
    min-width: 80px;
    height: 8px;
    background: var(--gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.sh-mini-bar-fill {
    height: 100%;
    border-radius: 4px;
    background: var(--primary-500);
}

.sh-pct-value {
    font-weight: 600;
    color: var(--primary-700);
    min-width: 55px;
}

/* Responsive */
@media (max-width: 768px) {
    .sh-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sh-chart-row {
        grid-template-columns: 1fr;
    }

    .sh-chart-container {
        height: 180px;
        max-width: 200px;
        margin: 0 auto;
    }

    .sh-chart-legend {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px;
    }

    .sh-holders-table {
        display: block;
        overflow-x: auto;
    }

    .sh-bar-chart-container {
        height: 280px;
    }
}

/* ========================================
   Dividend History Section
======================================== */
.dividend-card {
    margin-bottom: var(--spacing-5);
}

.card-badge.success {
    background: var(--success-light);
    color: var(--success);
}

/* 複数バッジコンテナ */
.card-badges {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* Stats Grid */
.div-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.div-stat-box {
    padding: 20px;
    background: var(--gray-50);
    border-radius: var(--radius-md);
    text-align: center;
}

.div-stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--gray-800);
}

.div-stat-value.yield {
    color: var(--success);
}

.div-stat-value.positive {
    color: var(--success);
}

.div-stat-value.negative {
    color: var(--danger);
}

.div-stat-label {
    font-size: 0.85rem;
    color: var(--gray-500);
    margin-top: 4px;
}

/* Chart Container */
.div-chart-container {
    position: relative;
    height: 220px;
    margin-bottom: 24px;
}

/* History Table */
.div-history-table {
    margin-top: 16px;
}

.div-table {
    width: 100%;
    border-collapse: collapse;
}

.div-table thead th {
    padding: 12px 16px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gray-600);
    background: var(--gray-100);
    text-align: left;
}

.div-table thead th:first-child {
    border-radius: var(--radius-md) 0 0 0;
}

.div-table thead th:last-child {
    border-radius: 0 var(--radius-md) 0 0;
}

.div-table tbody td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--gray-100);
    font-size: 0.9rem;
}

.div-table tbody tr:hover {
    background: var(--gray-50);
}

.div-table .positive {
    color: var(--success);
    font-weight: 600;
}

.div-table .negative {
    color: var(--danger);
    font-weight: 600;
}

/* Responsive */
@media (max-width: 768px) {
    .div-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .div-chart-container {
        height: 180px;
    }

    .div-table {
        font-size: 0.85rem;
    }
}
