	/* Astraのコンテナ幅制限をElementorページで強制解除　バグFix */
	.ast-page-builder-template .site-content > .ast-container {
		max-width: 100% !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	/* Astraのブロックレイアウトの最大幅制限を解除 　バグFix　*/
	.entry-content[data-ast-blocks-layout] > * {
		max-width: 100% !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

    /* テーブルHTML一括設定・スクロールコンテナ */
    .comparison-table, .tbl_my1 { width:100%; border-collapse:collapse; margin:20px 0; }
    .comparison-table th, .comparison-table td, .tbl_my1 th, .tbl_my1 td { padding:12px; border:1px solid #ddd; text-align:center; }
    .comparison-table th { background:#333; color:#fff; }
    .tbl_my1 thead th { background-color: #f0f0f0; }
    .tbl_my1 tbody th { background-color: #f5fbff; }
    .tbl_my1 td .swpm-payment-button { display: block; margin-top: 8px; }
    
    .table-container { overflow-x:auto; width:100%; max-width:100%; -webkit-overflow-scrolling:touch; }
    
    @media (max-width: 768px){
        .comparison-table { font-size:14px; }
        .comparison-table th, .comparison-table td { padding:8px; }
    }
    @media (max-width: 600px) {
        .tbl_my1, .tbl_my1 thead, .tbl_my1 tbody, .tbl_my1 th, .tbl_my1 td, .tbl_my1 tr { display: block; }
        .tbl_my1 thead { display: none; }
        .tbl_my1 tbody tr { margin-bottom: 15px; border: 1px solid #ccc; }
    }

    /* Elementorウィジェット・タブUI */
    @media (max-width:767px){
        .e-n-tabs-mobile > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading { display:flex; flex-wrap:wrap !important; }
        .elementor-widget-n-tabs .e-n-tabs-content .e-collapse.e-active { display:none; }
        .elementor-widget-n-tabs .e-n-tabs-content .e-collapse:not(:first-child) { display:none; }
        div.e-collapse:nth-child(1) { display:none !important; }
        #tabs-services { display:flex; flex-wrap:nowrap; overflow-x:auto; width:auto; }
        #tabs-services .tab-title { width:auto; flex:0 0 auto; }
        .e-n-tab-title { flex-shrink:0; max-width:120px; flex-basis:auto; }
    }
    #olb-members-menu .widget-title, #categories-1 .widget-title, #archives-1 .widget-title, .widget-title {
        font-size:24px !important; line-height:1.4 !important; margin-bottom:10px !important; padding:8px 0 !important;
    }
    #search-1 .widget-title { font-size:inherit !important; }
    .sp-pcp-title a { font-family: 'Inherit', 'Sans-serif', serif; font-weight: Bold; }
    .sp-pcp-post-content p { font-size: 13px; }

    /* フォーム・SWPM会員プラグインUI */
    input.btnup { font-size:12px !important; border-radius:5px; }
    .ue-instructions h2.ue-heading { display:none; }
    .swpm-registration-firstname-row label[for='first_name'], .swpm-registration-lastname-row label[for='last_name'] {
        visibility:hidden !important; position:relative !important; display:inline-block !important; width:100% !important;
    }
    .swpm-registration-firstname-row label[for='first_name']::after {
        content:'姓'; visibility:visible !important; position:absolute !important; left:0 !important; top:0 !important; color:inherit !important;
    }
    .swpm-registration-lastname-row label[for='last_name']::after {
        content:'名'; visibility:visible !important; position:absolute !important; left:0 !important; top:0 !important; color:inherit !important;
    }
    .swpm-registration-firstname-row .swpm-required, .swpm-registration-lastname-row .swpm-required {
        visibility:visible !important; position:absolute !important; right:5px !important; top:0 !important; color:red !important;
    }

    /* チケット更新履歴 */
    .olb-ticket-logs-container { max-width: 800px; margin: 0 auto; font-family: Arial, sans-serif; }
    .olb-logs-grid { display: grid; grid-template-columns: 20% 25% 25% 30%; gap: 0; border: 0.5px solid #ccc; border-radius: 5px; font-size: 10pt; }
    .olb-grid-header, .olb-grid-row { display: contents; }
    .olb-grid-header span, .olb-grid-row span { background-color: #ffffff; padding: 8px; border: 0.5px solid #ccc; }
    .olb-grid-header span { font-weight: bold; background: #f4f4f4; }
    .olb-error, .olb-no-logs { color: #d9534f; text-align: center; font-size: 10pt; }
    @media (max-width: 600px) {
        .olb-grid-header { display: none; }
        .olb-grid-row span { display: block; border: none; padding: 5px; border-bottom: 0.5px solid #ccc; }
        .olb-grid-row span:before { content: attr(data-label); font-weight: bold; display: inline-block; width: 120px; }
    }
	
	/* 未ログイン時のボタンを無効化・見た目調整 */
	body:not(.logged-in) .swpm-payment-button {
		opacity: 0.5;
		pointer-events: none;
		cursor: not-allowed;
		filter: grayscale(1);
	}

	/* ログインを促すメッセージのスタイル */
	.login-prompt-msg {
		color: #d63638;
		font-weight: bold;
		font-size: 0.9em;
		margin-bottom: 5px;
	}
	
	/* フッターウィジェットエリアの上下パディング設定 */
	.hfe-nav-menu .menu-item a.hfe-menu-item {
		padding-top: 3px !important;
		padding-bottom: 3px !important;
		line-height: 1.1 !important;
		font-size: 0.9em;
	}
	.hfe-nav-menu {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}
	