/*
Theme Name: rentalcash-child
Template: rentalcash
*/
/* ==========================================
    0. 全体ベース＆はみ出し防止設定
   ========================================== */
html, body, #page, .site, #content, .site-content, #masthead, .site-header {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: #f8fafc;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

*, *::before, *::after {
    box-sizing: border-box !important;
}

body {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

input, textarea, select, label, button, .wpuf-form {
    -webkit-user-select: text !important;
    user-select: text !important;
}

header .site-title, #header .site-title, .header-bar .site-title,
header .logo-text, #header .logo-text, .site-branding,
body.home .entry-title, body.home h1.page-title {
    display: none !important;
}


/* ==========================================
    1. ヘッダー構造（PC/スマホ共通）
   ========================================== */
header.site-header-custom {
    width: 100% !important;
    background-color: #3b5999 !important;
    padding: 12px 0 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
}

header.site-header-custom > div {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 12px !important;
    display: flex !important;
    flex-direction: column !important;
}

header.site-header-custom div:first-child {
    width: 100% !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 6px !important;
}

header.site-header-custom div:first-child a {
    color: #ffffff !important;
    font-weight: bold !important;
    font-size: 1.05rem !important;
    text-decoration: none !important;
}

header.site-header-custom div:nth-child(2) {
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
    padding-top: 6px !important;
}


/* ==========================================
    2. メインレイアウト（PC用 2カラム: 幅1200px）
   ========================================== */
.rc-page-wrapper {
    width: 100% !important;
    padding: 20px 0 40px 0 !important;
}

.rc-main-2col-layout {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 12px !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 24px !important;
}

.rc-col-main {
    flex: 0 0 72% !important;
    width: 72% !important;
    max-width: 72% !important;
}

.rc-col-side {
    flex: 0 0 25% !important;
    width: 25% !important;
    max-width: 25% !important;
    min-width: 280px !important;
}

.widget-area a[href*="create-post"],
.sidebar a[href*="create-post"],
aside a[href*="create-post"] {
    font-size: 0 !important;
    background: linear-gradient(135deg, #f97316 0%, #ea580c 100%) !important;
    color: #ffffff !important;
    text-align: center !important;
    padding: 12px 20px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(249, 115, 22, 0.3) !important;
    display: block !important;
    margin-bottom: 20px !important;
    width: 100% !important;
}

.widget-area a[href*="create-post"]::before,
.sidebar a[href*="create-post"]::before,
aside a[href*="create-post"]::before {
    content: "＋投稿する" !important;
    font-size: 0.95rem !important;
    font-weight: bold !important;
    display: inline-block !important;
}

aside#secondary *, .widget-area * {
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    white-space: normal !important;
}


/* ==========================================
    3. スマホ表示（画面幅768px以下：1カラム化）
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-main-2col-layout {
        flex-direction: column !important;
        gap: 20px !important;
        padding: 0 10px !important;
    }

    .rc-col-main,
    .rc-col-side,
    .rc-tp-container {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    .rc-card-grid, div.rc-card-grid {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 10px !important;
        margin-bottom: 20px !important;
    }

    .rc-card-item, a.rc-card-item {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    .rc-card-item * {
        writing-mode: horizontal-tb !important;
        word-break: normal !important;
        white-space: normal !important;
    }
}


/* ==========================================
    4. ガイド・規約ページ用装飾
   ========================================== */
.rc-guide-container {
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    color: #1e293b;
    line-height: 1.9;
    max-width: 900px;
    margin: 0 auto;
    padding: 20px 10px;
}
.rc-rule-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 28px;
    margin-bottom: 35px;
}
.rc-ng-box {
    background: #fff5f5;
    border: 1px solid #fed7d7;
    border-radius: 12px;
    padding: 28px;
    margin-bottom: 40px;
}
.rc-warning-notice {
    background: #fef2f2;
    border-left: 4px solid #ef4444;
    padding: 18px;
    border-radius: 8px;
    margin-top: 24px;
}


/* ==========================================
    5. WPUF 投稿フォーム【完全固定グリッド配置版】
   ========================================== */

/* 1. フォーム全体の白カード枠 */
.wpuf-form-add form,
.wpuf-form-edit form,
form.wpuf-form-add,
form.wpuf-form-edit,
.wpuf-form {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 14px !important;
    padding: 24px 28px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 !important;
}

/* 2. Gridレイアウト（削除用パスワードエリア追加対応版） */
.wpuf-form-add form ul.wpuf-form,
.wpuf-form-edit form ul.wpuf-form,
ul.wpuf-form {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
        "title title"
        "name email"
        "line line"
        "gender age"
        "address job"
        "amount amount"
        "income debt"
        "idcard debtrule"
        "message message"
        "pass pass"
        "submit submit" !important;
    gap: 15px 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    border: none !important;
}

.wpuf-form-add form ul.wpuf-form > li,
.wpuf-form-edit form ul.wpuf-form > li,
.wpuf-form .wpuf-el,
ul.wpuf-form > li {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    display: flex !important;
    flex-direction: column !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* 3. 各項目のエリア割り当て（削除用パスワード含む） */
ul.wpuf-form > li:nth-child(1)  { grid-area: title; }
ul.wpuf-form > li:nth-child(2)  { grid-area: name; }
ul.wpuf-form > li:nth-child(3)  { grid-area: email; }
ul.wpuf-form > li:nth-child(4)  { grid-area: line; }
ul.wpuf-form > li:nth-child(5)  { grid-area: gender; }
ul.wpuf-form > li:nth-child(6)  { grid-area: age; }
ul.wpuf-form > li:nth-child(7)  { grid-area: address; }
ul.wpuf-form > li:nth-child(8)  { grid-area: job; }
ul.wpuf-form > li:nth-child(9)  { grid-area: amount; }
ul.wpuf-form > li:nth-child(10) { grid-area: income; }
ul.wpuf-form > li:nth-child(11) { grid-area: debt; }
ul.wpuf-form > li:nth-child(12) { grid-area: idcard; }
ul.wpuf-form > li:nth-child(13) { grid-area: debtrule; }
ul.wpuf-form > li:nth-child(14) { grid-area: message; }
ul.wpuf-form > li:nth-child(15) { grid-area: pass; }
ul.wpuf-form > li:nth-child(16),
ul.wpuf-form > li.wpuf-submit,
.wpuf-form .wpuf-submit-button-container { grid-area: submit; }

/* 4. ラベル（項目名） */
.wpuf-form .wpuf-label,
.wpuf-form label {
    display: block !important;
    font-size: 0.9rem !important;
    font-weight: bold !important;
    color: #3b5999 !important;
    margin-bottom: 6px !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    border: none !important;
}

.wpuf-form .wpuf-fields {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    border: none !important;
    background: transparent !important;
}

/* 5. 入力枠・選択メニュー */
.wpuf-form input[type="text"],
.wpuf-form input[type="email"],
.wpuf-form input[type="password"],
.wpuf-form select {
    width: 100% !important;
    height: 40px !important;
    padding: 8px 12px !important;
    font-size: 0.9rem !important;
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
    color: #1e293b !important;
}

/* 6. 年齢入力欄（2桁分の幅に固定） */
.wpuf-form li[class*="age"] input,
.wpuf-form li[class*="nenrei"] input,
.wpuf-form .wpuf-el[class*="age"] input,
.wpuf-form .wpuf-el[class*="nenrei"] input {
    width: 65px !important;
    min-width: 65px !important;
    max-width: 65px !important;
    text-align: center !important;
    height: 40px !important;
}


/* ==========================================
    7-1. 性別（ラジオボタン）の完全横並び化
   ========================================== */
.wpuf-form .wpuf-el.gender .wpuf-fields,
.wpuf-form .wpuf-el.sex .wpuf-fields,
.wpuf-form .wpuf-radio-list,
.wpuf-form ul.wpuf-radio-list,
.wpuf-form .wpuf-fields:has(input[type="radio"]) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0 20px !important;
    align-items: center !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.wpuf-form .wpuf-el.gender .wpuf-fields label,
.wpuf-form .wpuf-el.sex .wpuf-fields label,
.wpuf-form .wpuf-radio-list li,
.wpuf-form ul.wpuf-radio-list li,
.wpuf-form .wpuf-fields:has(input[type="radio"]) label {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    width: auto !important;
    margin-right: 16px !important;
    margin-bottom: 0 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
}


/* ==========================================
    7-2. 身分証明書・債務整理歴（チェックボックス）の縦並び＆クリック有効化
   ========================================== */
.wpuf-form ul.wpuf-checkbox-list,
.wpuf-form .wpuf-checkbox-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

.wpuf-form ul.wpuf-checkbox-list li,
.wpuf-form .wpuf-checkbox-list li {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 2px 0 !important;
    pointer-events: auto !important;
}

.wpuf-form ul.wpuf-checkbox-list label,
.wpuf-form .wpuf-checkbox-list label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 10 !important;
}

.wpuf-form input[type="checkbox"],
.wpuf-form input[type="radio"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative !important;
    z-index: 15 !important;
}


/* ==========================================
    8. メッセージ入力欄（高さ130px）
   ========================================== */
.wpuf-form .mce-toolbar-grp,
.wpuf-form .mce-top-part,
.wpuf-form .mce-statusbar,
.wpuf-form .tox-editor-header,
.wpuf-form .tox-statusbar,
.wpuf-form .mce-menubar,
.wpuf-form div[role="menubar"] {
    display: none !important;
}

.wpuf-form textarea {
    width: 100% !important;
    height: 130px !important;
    min-height: 130px !important;
    padding: 12px !important;
    font-size: 0.9rem !important;
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}


/* ==========================================
    9. 送信ボタン（メッセージ欄の下に全幅で確実に表示）
   ========================================== */
.wpuf-form li.wpuf-submit,
.wpuf-form .wpuf-submit,
.wpuf-form .wpuf-submit-button-container,
li:has(input[type="submit"]),
li:has(button[type="submit"]) {
    grid-area: submit !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin-top: 15px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

.wpuf-form input[type="submit"],
.wpuf-form .wpuf-submit-button,
.wpuf-form button[type="submit"] {
    font-size: 1rem !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #f97316 0%, #ea580c 100%) !important;
    padding: 12px 48px !important;
    border-radius: 6px !important;
    border: none !important;
    font-weight: bold !important;
    box-shadow: 0 4px 12px rgba(249, 115, 22, 0.25) !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    cursor: pointer !important;
}


/* ==========================================
    10. スマホ表示対応
   ========================================== */
@media screen and (max-width: 768px) {
    .wpuf-form-add form,
    .wpuf-form-edit form {
        padding: 16px 14px !important;
    }

    .wpuf-form-add form ul.wpuf-form,
    .wpuf-form-edit form ul.wpuf-form,
    ul.wpuf-form {
        grid-template-columns: 1fr !important;
        grid-template-areas: none !important;
    }
}

/* ==========================================
   「投稿する」ボタンの背景色・デザインの超強力強制上書き
   ========================================== */
form.wpuf-form-add input[type="submit"].wpuf-submit-button,
form.wpuf-form-edit input[type="submit"].wpuf-submit-button,
.wpuf-form input[type="submit"].wpuf-submit-button,
.wpuf-form input[name="submit"],
.wpuf-submit input[type="submit"],
input[type="submit"].wpuf-submit-button {
    background: #f97316 !important;
    background-color: #f97316 !important;
    background-image: linear-gradient(135deg, #f97316 0%, #ea580c 100%) !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: bold !important;
    padding: 12px 48px !important;
    border-radius: 6px !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(249, 115, 22, 0.25) !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    cursor: pointer !important;
    text-indent: 0 !important;
}

/* ==========================================
   送信確認モーダルが反応しない不具合の解消
   ========================================== */
#rc-post-confirm-modal {
    display: none;
}
#rc-post-confirm-modal[style*="flex"] {
    display: flex !important;
}


/* ==========================================
    アイコンフォントを破壊しない安全な文字フォント設定
   ========================================== */
body, input, textarea, select, button, p, h1, h2, h3, h4, h5, h6, th, td {
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Segoe UI", Roboto, "Meiryo", sans-serif;
}


/* ==========================================
    スマホ表示時：下段サイドバーの独立カード化 ＆ 上下間隔（隙間）の確保
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-col-main,
    .main-content,
    .rc-col-side .rc-side-widget-card,
    .sidebar .widget,
    .widget-area .widget {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        background: #ffffff !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 12px !important;
        padding: 16px !important;
        margin-bottom: 20px !important;
        box-sizing: border-box !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02) !important;
    }

    .rc-col-side,
    .sidebar,
    .widget-area {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }

    .rc-side-post-btn,
    .sidebar a.btn-post,
    .sidebar a[href*="create"] {
        display: block !important;
        width: 100% !important;
        margin-bottom: 16px !important;
        box-sizing: border-box !important;
    }
}


/* ==========================================
    スマホ表示時（768px以下）：個別ページのプロフィールテーブル
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-col-main table,
    .rc-single-section table {
        width: 100% !important;
        table-layout: fixed !important;
    }

    .rc-col-main tr th:nth-child(1),
    .rc-single-section tr th:nth-child(1) {
        width: 22% !important;
        font-size: 0.7rem !important;
        padding: 6px 4px !important;
        word-break: keep-all !important;
    }
    .rc-col-main tr td:nth-child(2),
    .rc-single-section tr td:nth-child(2) {
        width: 28% !important;
        font-size: 0.75rem !important;
        padding: 6px 4px !important;
        word-break: break-all !important;
    }
    .rc-col-main tr th:nth-child(3),
    .rc-single-section tr th:nth-child(3) {
        width: 22% !important;
        font-size: 0.7rem !important;
        padding: 6px 4px !important;
        word-break: keep-all !important;
    }
    .rc-col-main tr td:nth-child(4),
    .rc-single-section tr td:nth-child(4) {
        width: 28% !important;
        font-size: 0.75rem !important;
        padding: 6px 4px !important;
        word-break: break-all !important;
    }
}


/* ==========================================
    WPUF 投稿フォーム：未入力・未選択時の警告メッセージ赤字化
   ========================================== */
.wpuf-form .wpuf-error,
.wpuf-form span.wpuf-error,
.wpuf-form div.wpuf-error,
.wpuf-error,
.wpuf-form label.error,
.wpuf-errors,
div.wpuf-errors,
.wpuf-form .wpuf-form-error,
.wpuf-form-error,
.wpuf-form .wpuf-label.error,
.wpuf-form .wpuf-field-error,
.wpuf-field-error {
    color: #ef4444 !important;
    font-weight: bold !important;
}

/* サイト全体のあらゆる場所にある虫眼鏡・検索アイコン・検索ボタンを物理的に非表示化 */
.search-toggle,
.search-icon,
.header-search,
.site-search,
.nav-search,
button.search-toggle,
a.search-toggle,
div.search-toggle,
form[role="search"],
.fa-search,
.fa-magnifying-glass,
nav svg.search-icon,
header svg.search-icon {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
    z-index: -9999 !important;
}
/* ==========================================
    スマホ表示時：性別・年齢行と下の「現住所」の間隔を15pxに強制固定
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-gender-age-row {
        margin-bottom: 15px !important;
    }
    .rc-gender-age-row .wpuf-fields,
    .rc-gender-age-row li {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
    .rc-gender-age-row + li.wpuf-el,
    .rc-gender-age-row + .wpuf-el {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* ==========================================
    スマホ表示時：性別・年齢行およびすべてのフォーム項目の上下間隔を15pxに強制統一
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-gender-age-row,
    .wpuf-form li.wpuf-el,
    .wpuf-form .wpuf-el {
        margin-bottom: 15px !important;
        padding-bottom: 0 !important;
    }
    .rc-gender-age-row .wpuf-fields,
    .wpuf-form .wpuf-fields {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* ==========================================
    スマホ表示時：性別・年齢の横並びブロックの余分な高さを削り、間隔を15pxに固定
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-gender-age-row {
        display: flex !important;
        gap: 12px !important;
        align-items: flex-start !important;
        margin-bottom: 15px !important;
        padding: 0 !important;
    }
    .rc-gender-age-row > li,
    .rc-gender-age-row > .wpuf-el {
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: none !important;
    }
    .rc-gender-age-row .wpuf-label {
        margin-bottom: 4px !important;
    }
    .rc-gender-age-row .wpuf-fields {
        margin: 0 !important;
        padding: 0 !important;
    }
    .rc-gender-age-row .wpuf-radio-list,
    .rc-gender-age-row input[type="text"] {
        margin-bottom: 0 !important;
    }
}

/* ==========================================
    スマホ表示時：性別・年齢の横並び行と「現住所」の間隔を15pxに強制固定
   ========================================== */
@media screen and (max-width: 768px) {
    div.rc-gender-age-row {
        display: flex !important;
        gap: 12px !important;
        margin-bottom: 15px !important;
        margin-top: 0 !important;
        padding: 0 !important;
    }
    div.rc-gender-age-row > li,
    div.rc-gender-age-row > .wpuf-el {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
        background: transparent !important;
        border: none !important;
        flex: 1 !important;
    }
    div.rc-gender-age-row + li,
    div.rc-gender-age-row + .wpuf-el {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* ==========================================
    スマホ版（768px以下）：個別投稿ページの特定項目を1段（全幅）に変更
   ========================================== */
@media screen and (max-width: 768px) {
    .rc-col-main tr,
    .rc-single-section tr,
    .rc-profile-table tr {
        display: flex !important;
        flex-direction: column !important;
    }
    .rc-col-main th,
    .rc-col-main td,
    .rc-single-section th,
    .rc-single-section td {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
    }
}

/* プロフィール項目の内側罫線・二重枠線の強制削除 */
.rc-col-main article div[style*="background: #f8fafc"] *,
.rc-col-main article div[style*="background:#f8fafc"] *,
.rc-col-main article table,
.rc-col-main article th,
.rc-col-main article td {
    border: none !important;
    box-shadow: none !important;
}

/* FAQ全体コンテナ */
.rc-faq-container {
    max-width: 100% !important;
    margin: 40px 0 20px 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: inherit !important;
    color: #334155 !important;
}

.rc-faq-main-title {
    font-size: 1.4rem !important;
    font-weight: bold !important;
    color: #1e293b !important;
    margin-bottom: 8px !important;
    display: flex !important;
    align-items: center !important;
    border-bottom: none !important;
}

.rc-faq-lead {
    font-size: 0.92rem !important;
    color: #64748b !important;
    margin-bottom: 24px !important;
}

/* カード型アイテム（影と立体感） */
.rc-faq-card {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    margin-bottom: 20px !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.04), 0 2px 4px -1px rgba(0, 0, 0, 0.02) !important;
    overflow: hidden !important;
}

/* 質問（Q）部分：左側に青いアクセント帯 */
.rc-faq-q-box {
    display: flex !important;
    align-items: center !important;
    background: #f8fafc !important;
    padding: 16px 20px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-left: 6px solid #3b5999 !important;
}

/* 回答（A）部分：左側にオレンジのアクセント帯 */
.rc-faq-a-box {
    display: flex !important;
    align-items: flex-start !important;
    padding: 20px !important;
    background: #ffffff !important;
    border-left: 6px solid #f97316 !important;
}

/* 「Q」「A」文字バッジ（確実に色を適用） */
.rc-faq-badge {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    font-weight: bold !important;
    font-size: 1rem !important;
    border-radius: 6px !important;
    margin-right: 14px !important;
    flex-shrink: 0 !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.rc-faq-badge.q {
    background-color: #3b5999 !important;
    color: #ffffff !important;
}

.rc-faq-badge.a {
    background-color: #f97316 !important;
    color: #ffffff !important;
}

.rc-faq-q-text {
    font-size: 1rem !important;
    font-weight: bold !important;
    color: #1e293b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

.rc-faq-a-text {
    font-size: 0.92rem !important;
    line-height: 1.7 !important;
    color: #334155 !important;
    flex-grow: 1 !important;
    margin: 0 !important;
}

/* スマホ対応（768px以下） */
@media screen and (max-width: 768px) {
    .rc-faq-q-box, .rc-faq-a-box {
        padding: 14px 16px !important;
    }
    .rc-faq-q-text {
        font-size: 0.95rem !important;
    }
    .rc-faq-a-text {
        font-size: 0.88rem !important;
    }
    .rc-faq-badge {
        width: 28px !important;
        height: 28px !important;
        font-size: 0.9rem !important;
        margin-right: 10px !important;
    }
}

/* メッセージ入力エリアコンテナ */
.rc-textarea-container {
    position: relative !important;
    margin-bottom: 20px !important;
}

/* 文字数カウンター（右下配置） */
.rc-char-counter {
    text-align: right !important;
    font-size: 0.82rem !important;
    color: #64748b !important;
    margin-top: 6px !important;
    font-weight: normal !important;
}

#rc-char-num {
    font-weight: bold !important;
    color: #3b5999 !important;
}

/* 1300文字に達した際の警告カラー */
.rc-char-counter.is-limit #rc-char-num {
    color: #ef4444 !important;
}
/* ==========================================
   V15: 投稿フォーム スマホ崩れ修正
   - PCの2カラム配置は維持
   - 768px以下ではWPUF Gridを完全解除し1カラム化
   - 各フィールドのgrid-areaをリセット
   - 入力欄の横はみ出しを防止
   ========================================== */
@media screen and (max-width: 768px) {
    body .wpuf-form-add,
    body .wpuf-form-edit,
    body form.wpuf-form-add,
    body form.wpuf-form-edit,
    body .wp-user-frontend {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    body .wpuf-form-add form,
    body .wpuf-form-edit form,
    body form.wpuf-form-add,
    body form.wpuf-form-edit {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 14px 10px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    body .wpuf-form-add form ul.wpuf-form,
    body .wpuf-form-edit form ul.wpuf-form,
    body ul.wpuf-form {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        grid-template-columns: none !important;
        grid-template-areas: none !important;
        gap: 0 !important;
    }

    body ul.wpuf-form > li,
    body .wpuf-form .wpuf-el,
    body .wpuf-form li.wpuf-el,
    body .wpuf-form li.wpuf-submit,
    body .wpuf-form .wpuf-submit-button-container {
        grid-area: auto !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 14px 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        float: none !important;
        clear: both !important;
    }

    body .wpuf-form .wpuf-fields,
    body .wpuf-form .wpuf-label,
    body .wpuf-form .wpuf-fields > div,
    body .wpuf-form .wpuf-fields > span,
    body .wpuf-form ul.wpuf-radio-list,
    body .wpuf-form ul.wpuf-checkbox-list,
    body .wpuf-form .wpuf-radio-list,
    body .wpuf-form .wpuf-checkbox-list {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    body .wpuf-form input[type="text"],
    body .wpuf-form input[type="email"],
    body .wpuf-form input[type="password"],
    body .wpuf-form input[type="url"],
    body .wpuf-form input[type="number"],
    body .wpuf-form select,
    body .wpuf-form textarea {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        float: none !important;
    }

    /* 年齢だけは短い入力欄を維持 */
    body .wpuf-form li[class*="age"] input,
    body .wpuf-form li[class*="nenrei"] input,
    body .wpuf-form .wpuf-el[class*="age"] input,
    body .wpuf-form .wpuf-el[class*="nenrei"] input {
        width: 70px !important;
        min-width: 70px !important;
        max-width: 70px !important;
        display: inline-block !important;
    }

    /* 性別ラジオは項目内だけ横並び。フォーム列自体は1列。 */
    body .wpuf-form .wpuf-fields:has(input[type="radio"]),
    body .wpuf-form ul.wpuf-radio-list,
    body .wpuf-form .wpuf-radio-list {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px 18px !important;
    }

    body .wpuf-form input[type="submit"],
    body .wpuf-form button[type="submit"],
    body .wpuf-form .wpuf-submit-button {
        width: auto !important;
        max-width: 100% !important;
        min-width: 150px !important;
        margin: 4px auto 0 !important;
        display: block !important;
        padding-left: 28px !important;
        padding-right: 28px !important;
    }

    /* create-postの本文カード内で二重余白を作らない */
    body .rc-page-content,
    body .rc-page-content .wp-user-frontend,
    body .rc-page-content .wpuf-form-add {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow-x: hidden !important;
    }
}

/* ==========================================
   V16: スマホ投稿フォーム 性別・年齢を2列で横並び
   - 各項目は「ラベル / 入力」の2段構成
   - 年齢入力の右隣に「歳」を表示
   ========================================== */
@media screen and (max-width: 768px) {
    body .wpuf-form-add form ul.wpuf-form,
    body .wpuf-form-edit form ul.wpuf-form,
    body ul.wpuf-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        grid-template-areas: none !important;
        column-gap: 12px !important;
        row-gap: 0 !important;
    }

    /* 基本は全幅1段。性別と年齢だけ左右2列にする */
    body ul.wpuf-form > li,
    body .wpuf-form .wpuf-el,
    body .wpuf-form li.wpuf-el,
    body .wpuf-form li.wpuf-submit,
    body .wpuf-form .wpuf-submit-button-container {
        grid-column: 1 / -1 !important;
    }

    body ul.wpuf-form > li:nth-child(5) {
        grid-column: 1 !important;
        grid-row: auto !important;
        clear: none !important;
    }

    body ul.wpuf-form > li:nth-child(6) {
        grid-column: 2 !important;
        grid-row: auto !important;
        clear: none !important;
    }

    /* 性別は「男・女」を項目内で横並び */
    body ul.wpuf-form > li:nth-child(5) .wpuf-fields,
    body ul.wpuf-form > li:nth-child(5) ul.wpuf-radio-list,
    body ul.wpuf-form > li:nth-child(5) .wpuf-radio-list {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 6px 12px !important;
        width: 100% !important;
    }

    body ul.wpuf-form > li:nth-child(5) .wpuf-radio-list li,
    body ul.wpuf-form > li:nth-child(5) .wpuf-fields label {
        width: auto !important;
        max-width: none !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        white-space: nowrap !important;
    }

    /* 年齢は入力欄 + 「歳」を同じ行に固定 */
    body ul.wpuf-form > li:nth-child(6) .wpuf-fields {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 0 !important;
        width: 100% !important;
    }

    body ul.wpuf-form > li:nth-child(6) input[type="text"],
    body ul.wpuf-form > li:nth-child(6) input[type="number"] {
        flex: 0 0 70px !important;
        width: 70px !important;
        min-width: 70px !important;
        max-width: 70px !important;
        display: inline-block !important;
    }

    body ul.wpuf-form > li:nth-child(6) .rc-age-suffix {
        flex: 0 0 auto !important;
        display: inline-block !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 0 0 7px !important;
        padding: 0 !important;
        line-height: 40px !important;
        white-space: nowrap !important;
    }

    /* 年齢エラーだけは入力行の次の段へ */
    body ul.wpuf-form > li:nth-child(6) .rc-age-underage-err {
        flex: 0 0 100% !important;
        width: 100% !important;
        margin-top: 4px !important;
    }
}

/* ==========================================
   V30: 右カラム「最新ニュース」ウィジェット（コンパクト表示）
   ========================================== */
.rc-latest-news-widget {
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 0 20px !important;
    background: #ffffff !important;
    border: 1px solid #fecaca !important;
    border-top: 4px solid #dc2626 !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.07) !important;
}

.rc-latest-news-widget__head {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    padding: 13px 14px 11px !important;
    background: linear-gradient(180deg, #fff7f7 0%, #ffffff 100%) !important;
    border-bottom: 1px solid #fee2e2 !important;
}

.rc-latest-news-widget__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 28px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: #dc2626 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    font-weight: 800 !important;
}

.rc-latest-news-widget__title {
    margin: 0 !important;
    padding: 0 !important;
    color: #991b1b !important;
    font-size: 1.05rem !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
}

.rc-latest-news-widget__article {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 12px 14px 13px !important;
    color: inherit !important;
    text-decoration: none !important;
    background: #ffffff !important;
    transition: background-color .18s ease !important;
}

.rc-latest-news-widget__article:hover {
    background: #fffafa !important;
}

.rc-latest-news-widget__thumb,
.rc-latest-news-widget__visual {
    display: block !important;
    flex: 0 0 92px !important;
    width: 92px !important;
    height: 62px !important;
    margin: 0 !important;
    border-radius: 7px !important;
    object-fit: cover !important;
    overflow: hidden !important;
}

.rc-latest-news-widget__visual {
    position: relative !important;
    background: linear-gradient(135deg, #fff1f2 0%, #fee2e2 100%) !important;
    border: 1px solid #fecaca !important;
}

.rc-latest-news-widget__visual::before,
.rc-latest-news-widget__visual::after {
    content: "" !important;
    position: absolute !important;
    border-radius: 50% !important;
    background: rgba(220, 38, 38, 0.08) !important;
}

.rc-latest-news-widget__visual::before {
    width: 48px !important;
    height: 48px !important;
    right: -12px !important;
    top: -15px !important;
}

.rc-latest-news-widget__visual::after {
    width: 36px !important;
    height: 36px !important;
    left: -8px !important;
    bottom: -14px !important;
}

.rc-latest-news-widget__visual-mark {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    background: #dc2626 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
}

.rc-latest-news-widget__body {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.rc-latest-news-widget__meta {
    display: block !important;
    margin: 0 0 4px !important;
    color: #64748b !important;
    font-size: .74rem !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}

.rc-latest-news-widget__article-title {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    margin: 0 !important;
    color: #1e293b !important;
    font-size: .84rem !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
}

.rc-latest-news-widget__more {
    display: block !important;
    margin-top: 5px !important;
    color: #b91c1c !important;
    font-size: .72rem !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
    text-align: right !important;
}

.rc-latest-news-widget__archive {
    display: block !important;
    padding: 9px 14px !important;
    border-top: 1px solid #fee2e2 !important;
    background: #fff7f7 !important;
    color: #991b1b !important;
    font-size: .76rem !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    text-align: center !important;
}

.rc-latest-news-widget__archive:hover {
    background: #fee2e2 !important;
}

@media screen and (max-width: 768px) {
    .rc-latest-news-widget {
        padding: 0 !important;
        margin-bottom: 20px !important;
    }

    .rc-latest-news-widget__thumb,
    .rc-latest-news-widget__visual {
        flex-basis: 88px !important;
        width: 88px !important;
        height: 60px !important;
    }

    .rc-latest-news-widget__article-title {
        font-size: .86rem !important;
    }
}
