html, body {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    }

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* Description area at the very top */
    .description_area {
        background: #f8f9fa;
        border-bottom: 1px solid #e9ecef;
        padding: 8px 0;
        font-size: 12px;
        color: #666;
        text-align: center;
        margin: 0;
    }

    .description_area .container {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 20px;
    }

    #header01 {
        background: #fff;
        border-bottom: 1px solid #ddd;
        position: relative;
        z-index: 1000;
        margin: 0;
        padding: 0;
    }

    .hd_cntnr {
        max-width: 1200px;
        margin: 0 auto;
        padding: 15px 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .hd_main {
        display: flex;
        align-items: center;
        flex: 1;
        justify-content: space-between;
    }

    .hd_logo {
        flex-shrink: 0;
    }

    .hd_logo .logo {
        display: block;
        text-decoration: none;
    }

    .hd_logo .logo img {
        height: 40px;
        width: auto;
    }

    .hd_logo .logo span {
        display: none;
    }

    /* 検索エリア */
    .search_area {
        margin-left: auto;
    }

    /* デスクトップ表示 */
    .desktop_search {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .desktop_search input[type="text"] {
        width: 250px;
        padding: 10px;
        border: 1px solid #ddd;
        border-radius: 4px;
        font-size: 14px;
    }

    .desktop_search button {
        background: #007bff;
        color: white;
        border: none;
        padding: 10px 15px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 14px;
        transition: background 0.3s;
    }

    .desktop_search button:hover {
        background: #0056b3;
    }

    /* モバイル表示 */
    .mobile_search {
        display: none;
        position: relative;
    }

    .mobile_search .dropInput {
        display: none;
    }

    .mobile_search .dropLabel {
        background: #007bff;
        color: white;
        padding: 10px 20px;
        border-radius: 5px;
        cursor: pointer;
        display: inline-block;
        transition: background 0.3s;
    }

    .mobile_search .dropLabel:hover {
        background: #0056b3;
    }

    .mobile_search .menu {
        position: absolute;
        top: 100%;
        right: 0;
        background: white;
        border: 1px solid #ddd;
        border-radius: 5px;
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        min-width: 280px;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: all 0.3s ease;
        z-index: 100;
    }

    .mobile_search .dropInput:checked + .dropLabel + .menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .mobile_search .srch_box {
        padding: 20px;
    }

    .mobile_search .srch_box dt {
        margin-bottom: 15px;
    }

    .mobile_search .srch_box input[type="text"] {
        width: 100%;
        padding: 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        font-size: 14px;
    }

    .mobile_search .srch_box dd {
        text-align: center;
    }

    .mobile_search .srch_box button {
        background: #007bff;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 14px;
        transition: background 0.3s;
    }

    .mobile_search .srch_box button:hover {
        background: #0056b3;
    }

    /* メインコンテンツエリア */
    main {
        max-width: 1200px;
        margin: 0 auto;
        padding: 20px;
    }

    /* 共通レイアウト・コンポーネント */
    body { margin: 0; padding: 0; }
    .container { max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
    .card { background: white; border-radius: 0.5rem; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); border: 1px solid #e5e7eb; }
    .price-card { padding: 1.5rem; }
    .btn-primary { background-color: #dbeafe; color: #1d4ed8; border-radius: 0.375rem; padding: 0.5rem 0.75rem; text-decoration: none; font-size: 0.875rem; transition: background-color 0.15s; }
    .btn-primary:hover { background-color: #bfdbfe; }
    .positive { color: #16a34a; }
    .negative { color: #dc2626; }
    .green { color: #16a34a; }
    .red { color: #dc2626; }

    /* レスポンシブデザイン */
    @media (max-width: 768px) {
        /* スマホの時はdescriptionを非表示 */
        .description_area {
            display: none;
        }

        .hd_cntnr {
            padding: 10px 15px;
        }

        .hd_main {
            width: 100%;
        }

        .hd_logo .logo img {
            height: 35px;
        }

        /* デスクトップ検索を非表示 */
        .desktop_search {
            display: none;
        }

        /* モバイル検索を表示 */
        .mobile_search {
            display: block;
        }

        /* スマホ用：検索メニューを画面幅フィットに変更 */
        .mobile_search .menu {
            position: fixed;
            top: auto;
            left: 10px;
            right: 10px;
            width: calc(100vw - 20px);
            min-width: auto;
            max-width: none;
            margin-top: 10px;
        }

        .mobile_search .srch_box {
            padding: 20px;
        }

        .mobile_search .srch_box input[type="text"] {
            width: 100%;
            padding: 15px;
            font-size: 16px; /* iOSでのズーム防止 */
            border: 2px solid #007bff;
            border-radius: 8px;
            box-sizing: border-box;
        }

        .mobile_search .srch_box input[type="text"]:focus {
            outline: none;
            border-color: #0056b3;
            box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
        }

        .mobile_search .srch_box button {
            width: 100%;
            padding: 15px;
            font-size: 16px;
            border-radius: 8px;
            margin-top: 10px;
        }

        main {
            padding: 15px;
        }

        /* 共通モバイル対応 */
        body {
            padding: 0 0.75rem !important;
        }
        
        .container {
            padding: 0 0.5rem;
        }
        
        h1 {
            font-size: 1.4rem !important;
        }
        
        h2 {
            font-size: 1.1rem !important;
        }
        
        .btn-primary {
            padding: 0.375rem 0.5rem;
            font-size: 0.75rem;
        }
        
        nav {
            gap: 0.75rem !important;
            margin-bottom: 0.75rem !important;
        }
    }

    @media (max-width: 480px) {
        .description_area .container {
            padding: 0 10px;
        }

        .hd_cntnr {
            padding: 8px 10px;
        }

        .hd_logo .logo img {
            height: 30px;
        }

        .mobile_search .dropLabel {
            padding: 8px 16px;
            font-size: 14px;
        }

        /* 最小画面でもフィット幅を維持 */
        .mobile_search .menu {
            left: 5px;
            right: 5px;
            width: calc(100vw - 10px);
        }

        .mobile_search .srch_box {
            padding: 15px;
        }

        .mobile_search .srch_box input[type="text"] {
            padding: 14px;
            font-size: 16px; /* iOSでのズーム防止 */
        }

        .mobile_search .srch_box button {
            padding: 14px;
            font-size: 16px;
        }

        main {
            padding: 10px;
        }
    }

    /* 特に小さい画面（320px以下）での調整 */
    @media (max-width: 320px) {
        .mobile_search .menu {
            left: 2px;
            right: 2px;
            width: calc(100vw - 4px);
        }

        .mobile_search .srch_box {
            padding: 12px;
        }
    }

    /* 検索メニューが開いているときのオーバーレイ効果（オプション） */
    @media (max-width: 768px) {
        .mobile_search .dropInput:checked + .dropLabel + .menu::before {
            content: '';
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: rgba(0, 0, 0, 0.2);
            z-index: -1;
            pointer-events: none;
        }
    }

    /* 市場指数のレスポンシブ制御 */
    .pc-indices {
        display: block !important;
    }

    .mobile-indices {
        display: none !important;
    }

    @media (max-width: 768px) {
        .pc-indices {
            display: none !important;
        }

        .mobile-indices {
            display: block !important;
        }
    }

    /* フィルターフォーム用の追加スタイル */
    .filter-form select {
        appearance: none;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
        background-position: right 0.5rem center;
        background-repeat: no-repeat;
        background-size: 1.5em 1.5em;
        padding-right: 2.5rem;
    }

    /* レスポンシブデザイン - フィルターフォーム */
    @media (max-width: 768px) {
        .filter-form select {
            font-size: 14px;
            padding: 8px 2rem 8px 8px;
            background-size: 1.2em 1.2em;
            background-position: right 0.3rem center;
        }
        
        .filter-form button, .filter-form a {
            font-size: 14px;
            padding: 8px 12px;
        }
    }

    /* 市場指数セクション */
    .market_indices {
        background: #003366;
        color: white;
        padding: 8px 0;
        font-size: 13px;
        border-bottom: 1px solid #004d80;
    }

    .indices_container {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .indices_list {
        display: flex;
        gap: 30px;
        flex-wrap: wrap;
    }

    .index_item {
        display: flex;
        align-items: center;
        gap: 8px;
        white-space: nowrap;
    }

    .index_name {
        color: #ccc;
        font-weight: normal;
    }

    .index_value {
        color: white;
        font-weight: bold;
        font-size: 14px;
    }

    .index_change {
        font-weight: bold;
        font-size: 12px;
    }

    .index_change.positive {
        color: #ff6b6b;
    }

    .index_change.negative {
        color: #4ecdc4;
    }

    .indices_more {
        flex-shrink: 0;
    }

    .indices_link {
        color: #ccc;
        text-decoration: none;
        font-size: 12px;
        transition: color 0.3s;
    }

    .indices_link:hover {
        color: white;
    }

    /* モバイル版フィルターの微調整 */
    @media (max-width: 768px) {
        /* モバイル版市場指数の調整 */
        .market_indices {
            padding: 6px 0;
            font-size: 11px;
        }

        .indices_container {
            padding: 0 15px;
        }

        .indices_list {
            gap: 15px;
            flex-wrap: wrap;
        }

        .index_item {
            gap: 4px;
        }

        .index_value {
            font-size: 12px;
        }

        .index_change {
            font-size: 10px;
        }

        .indices_link {
            font-size: 11px;
        }
    }

    @media (max-width: 480px) {
        .market_indices {
            padding: 4px 0;
            font-size: 10px;
        }

        .indices_container {
            padding: 0 10px;
            flex-direction: column;
            gap: 4px;
        }

        .indices_list {
            gap: 10px;
            justify-content: center;
        }

        .index_value {
            font-size: 11px;
        }

        .index_change {
            font-size: 9px;
        }
    }

    /* ヘッダー関連スタイル */
    /* グローバルメニューのスタイル */
    .global_menu_wrapper {
        background-color: #e3f2fd;
        border-bottom: 1px solid #bbdefb;
        margin-bottom: 4px;
    }

    .desktop_global_menu {
        display: block;
    }

    .menu_container {
        display: flex;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0;
    }

    .menu_item {
        flex: 1;
        text-align: center;
        padding: 12px 16px;
        text-decoration: none;
        color: #1565c0;
        font-weight: 500;
        border-right: 1px solid #bbdefb;
        transition: background-color 0.2s ease;
    }

    .menu_item:last-child {
        border-right: none;
    }

    .menu_item:hover {
        background-color: #bbdefb;
        color: #0d47a1;
    }

    /* モバイル用検索とハンバーガーメニューの配置 */
    .mobile_search_menu {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    /* モバイル検索アイコンのスタイル */
    .mobile_search .search_icon {
        background-color: white;
        color: #1565c0;
        border: 1px solid #bbdefb;
        border-radius: 6px;
        padding: 8px 10px;
        font-size: 16px;
        cursor: pointer;
        transition: background-color 0.2s ease;
    }

    .mobile_search .search_icon:hover {
        background-color: #f8f9fa;
    }

    /* ハンバーガーメニューのスタイル */
    .mobile_hamburger {
        position: relative;
    }

    .hamburger_input {
        display: none;
    }

    .hamburger_label {
        display: flex;
        flex-direction: column;
        cursor: pointer;
        padding: 8px;
    }

    .hamburger_label span {
        width: 25px;
        height: 3px;
        background-color: #333;
        margin: 2px 0;
        transition: 0.3s;
        border-radius: 2px;
    }

    .hamburger_input:checked + .hamburger_label span:nth-child(1) {
        transform: rotate(-45deg) translate(-5px, 6px);
    }

    .hamburger_input:checked + .hamburger_label span:nth-child(2) {
        opacity: 0;
    }

    .hamburger_input:checked + .hamburger_label span:nth-child(3) {
        transform: rotate(45deg) translate(-5px, -6px);
    }

    .hamburger_menu {
        position: absolute;
        top: 100%;
        right: 0;
        left: -150px;
        background-color: white;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: all 0.3s ease;
        z-index: 1000;
    }

    .hamburger_input:checked ~ .hamburger_menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

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

    .hamburger_menu ul li {
        border-bottom: 1px solid #eee;
    }

    .hamburger_menu ul li:last-child {
        border-bottom: none;
    }

    .hamburger_menu ul li a {
        display: block;
        padding: 12px 16px;
        text-decoration: none;
        color: #333;
        font-weight: 500;
        transition: background-color 0.2s ease;
    }

    .hamburger_menu ul li a:hover {
        background-color: #f8f9fa;
    }

    /* 指数表示エリアの調整 */
    .index_display_wrapper {
        padding: 10px 0;
        background-color: #fff;
    }

    /* ヘッダー関連のレスポンシブ対応 */
    @media (max-width: 767px) {
        .desktop_index { display: none !important; }
        .mobile_index { display: block !important; }
        .desktop_global_menu { display: none !important; }
        .mobile_hamburger { display: block; }
        .mobile_search_menu { display: flex; }
        .mobile_search { display: block; }
        
        .hamburger_menu {
            left: -200px;
            right: -20px;
        }
    }

    @media (min-width: 768px) {
        .desktop_index { display: block !important; }
        .mobile_index { display: none !important; }
        .desktop_global_menu { display: block !important; }
        .mobile_hamburger { display: none; }
        .mobile_search_menu { display: none; }
        .mobile_search { display: none; }
    }

    /* 広告関連スタイル */
    .adspace {
        text-align: center;
        margin: 0.25rem auto;
        max-width: 100%;
        padding: 0.25rem 0;
        height: auto; /* 広告サイズに自動調整 */
    }
    
    .my_adslot { 
        width: auto; /* 広告の自然なサイズ */
        height: auto; /* 広告の自然なサイズ */
        margin: 0 auto; /* 中央配置 */
    }