/* ==========================================
   1. 全体共通・フォント・リセット
   ========================================== */
@import url('https://fonts.googleapis.com/css2?family=BIZ+UDMincho:wght@400;700&display=swap');

body, h1, h2, h3, h4, h5, h6, p, a, input,
button, select, textarea, 
.um, .um *, .um-input, .um-button {
    font-family: "BIZ UDMincho", "Hiragino Mincho ProN", "MS Mincho", serif !important;
}

html {
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    width: 100%;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body {
    overflow-x: hidden !important;
    overflow-y: visible !important;
    width: 100% !important;
    position: relative;
    margin: 0;
}

#page, .site {
    overflow: hidden !important;
    width: 100% !important;
}

/* リンク・ロゴ・見出しのアウトライン一括解除 */
#menu-main-menu li a,
#menu-main-menu li a:focus,
#menu-main-menu li a:active,
.custom-logo-link,
.custom-logo-link:focus,
.custom-logo-link:active,
.site-img-logo,
.site-img-logo:focus,
.site-img-logo:active,
.elementor-heading-title a,
.elementor-heading-title a:focus,
.elementor-heading-title a:active {
    outline: none !important;
    box-shadow: none !important;
}

/* ==========================================
   2. WordPress管理バー制御
   ========================================== */
#wpadminbar {
    display: none !important;
}

.admin-bar .boot-sticky-top,
.admin-bar .custom-header {
    top: 0 !important;
}

/* ==========================================
   3. ヘッダーエリア
   ========================================== */
.site-img-logo,
.header__branding .custom-logo-link img {
    width: 60px !important; 
    height: auto !important;
    object-fit: contain;
}

.header__branding .custom-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.header__branding .custom-logo-link::after {
    content: "Protect JP";
    margin-left: 10px;
    font-size: 1.2rem;
    font-weight: bold;
    color: #333;
    white-space: nowrap;
}

@media (min-width: 768px) {
    .header__search {
        display: none !important;
        flex: 0 0 0 !important;
        max-width: 0 !important;
    }
    .header__branding.boot-col-md-2 {
        flex: 0 0 25% !important;
        max-width: 25% !important;
    }
    .header__navigation.boot-col-md-5 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        display: flex !important;
        justify-content: center !important;
    }
    .header__user-account.boot-col-md-3 {
        flex: 0 0 25% !important;
        max-width: 25% !important;
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
    }
    #bs-navbar-primary {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }
}

@media (max-width: 1100px) {
    .header__user-account .um-header-avatar-name {
        display: none !important;
    }
}

@media (max-width: 767px) {
    #masthead.site-header {
        padding: 10px 0 0 0 !important;
    }

    .header__wrapper .boot-row {
        display: flex !important;
        align-items: center !important;
    }

    .header__navigation {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
        flex: 0 0 15% !important;
        max-width: 15% !important;
    }

    .navbar-toggler {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 auto !important;
        padding: 0 !important;
        border: none !important;
        outline: none !important;
        height: 50px !important;
        line-height: 1 !important;
    }

    .navbar-toggler-icon {
        vertical-align: middle !important;
        margin: 0 !important;
    }

    .header__branding {
        display: flex !important;
        align-items: center !important;
        padding-left: 0 !important;
    }

    .header__branding .custom-logo-link {
        display: flex !important;
        align-items: center !important;
    }

    .header__branding .custom-logo-link::after {
        line-height: 1 !important;
    }

    .site-img-logo,
    .header__branding .custom-logo-link img {
        width: 50px !important;
        height: 50px !important;
        object-fit: contain !important;
    }
}

/* ==========================================
   4. UM グループディレクトリ & 検索
   ========================================== */
.um-groups-directory .um-group-image-container {
    padding: 20px 0 10px 0 !important;
    text-align: center !important;
}

.um-groups-directory .um-group-image-container img.um-group-image {
    width: 130px !important;
    height: 130px !important;
    object-fit: cover !important;
    margin: 0 auto !important;
    border-radius: 8px !important;
}

.um-groups-directory .group-grid-inner {
    background-color: #ffffff !important;
    border-radius: 30px !important;
    padding: 24px 24px 24px 24px !important;
    padding-top: 10px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow: none !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.um-groups-directory .group-grid-inner:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.06) !important;
}

.um-groups-directory .group-grid {
    margin-bottom: 24px !important;
}

.um-groups-directory .um-group-image-container,
.um-groups-directory .um-group-image-container a,
.um-groups-directory .um-group-image-container img {
    border-radius: 16px !important;
    overflow: hidden !important;
}

.um-groups-directory .um-group-text-container {
    padding: 12px 0 !important;
}

.um-groups-directory .um-group-name {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #444444 !important;
    margin: 6px 0 !important;
}

.um-groups-directory .group-meta-info {
    color: #666666 !important;
    font-size: 13px !important;
}

/* グループ検索フォーム */
.um-groups-directory-header {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 20px 0 0 0 !important;
    margin-bottom: 30px !important;
}

.um-groups-directory-header .boot-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 15px !important;
    width: 100% !important;
    margin: 0 !important;
    padding-bottom: 8px !important; 
    border-bottom: 2px solid #000000 !important;
}

.um-groups-directory-header .boot-col-md-5 {
    width: auto !important;
    max-width: none !important;
    flex: 1 !important;
    display: flex !important;
    padding: 0 !important;
    margin: 0 !important;
}

.um-groups-directory-header .boot-col-md-7.group-search-filter {
    width: auto !important;
    max-width: none !important;
    flex: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 20px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.um-groups-directory-header input[type="text"],
.um-groups-directory-header select,
.um-groups-directory-header input[type="submit"],
.um-groups-directory-header .primary-button {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    font-size: 16px !important;
    color: #444444 !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    height: 40px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
}

.um-groups-directory-header select {
    appearance: select !important;
    -webkit-appearance: menulist !important;
    -moz-appearance: menulist !important;
    min-width: 170px !important;
    cursor: pointer !important;
    line-height: 40px !important;
    padding-right: 20px !important;
}

.um-groups-directory-header input[type="text"] {
    width: 100% !important;
    display: inline-block !important;
    line-height: 40px !important;
    -webkit-text-security: none !important;
}

.um-groups-directory-header input[type="text"]::placeholder {
    color: #444444 !important;
    font-weight: 600 !important;
    opacity: 1 !important;
}

.um-groups-directory-header input[type="submit"],
.um-groups-directory-header .primary-button {
    width: auto !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    text-decoration: none !important;
    justify-content: center !important;
}

.um-groups-directory-header select:hover,
.um-groups-directory-header input[type="submit"]:hover,
.um-groups-directory-header .primary-button:hover {
    color: #888888 !important;
}

@media (max-width: 991px) {
    .um-groups-directory-header .boot-row {
        flex-wrap: wrap !important;
        border-bottom: none !important;
        gap: 15px !important;
    }
    .um-groups-directory-header .boot-col-md-5,
    .um-groups-directory-header .boot-col-md-7.group-search-filter {
        width: 100% !important;
        flex: none !important;
        flex-wrap: wrap !important;
        border-bottom: 1px solid #000000 !important;
        padding-bottom: 5px !important;
        justify-content: space-between !important;
    }
    .um-groups-directory-header select,
    .um-groups-directory-header input[type="text"] {
        width: 100% !important;
    }
}

/* グリッド整列ロジック */
@media (min-width: 992px) {
    .um-groups-directory.boot-row {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        gap: 24px 2% !important; 
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }
    .um-groups-directory .group-grid {
        width: 23.5% !important; 
        max-width: 23.5% !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .um-groups-directory.boot-row {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        gap: 24px 4% !important; 
        width: 100% !important;
        margin: 0 auto !important;
    }
    .um-groups-directory .group-grid {
        width: 48% !important;
        max-width: 48% !important;
        flex: none !important;
        padding: 0 !important;
    }
}

@media (max-width: 767px) {
    .um-groups-directory.boot-row {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 20px 0 !important;
    }
    .um-groups-directory .group-grid {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        padding: 0 !important;
    }
    .page-id-5409 .um-groups-directory.boot-row {
        flex-direction: column;
        align-items: center;
        margin: 0 !important;
    }
    .page-id-5409 .um-groups-directory .group-grid {
        max-width: 340px;
        margin: 0 auto !important;
        float: none !important;
    }
}

#um-groups-filters.um-groups-found-posts {
    display: none !important;
}

.pjp-no-groups-found {
    display: block !important;
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #444444 !important;
    font-family: inherit !important;
    margin-top: 35px !important;
    margin-bottom: 20px !important;
    line-height: 1.6 !important;
}

.um-groups-found-own-posts {
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
}

.um-groups-found-own-posts > span {
    display: block !important;
    font-size: 14px !important;
    line-height: normal !important;
    color: #444444 !important;
}

.um-groups-found-own-posts .group-meta-info {
    font-size: 13px !important;
    color: #666666 !important;
    line-height: 1.6 !important;
}

/* ==========================================
   5. プロフィール＆アカウント設定
   ========================================== */
.um-profile-body.groups_list .um-groups-search-form input[type="text"][name="groups_search"] {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 10px 14px !important;
    border-radius: 6px !important;
}

.um-30.um, .um-profile {
    border-radius: 30px !important;
    overflow: hidden !important;
    background-color: #fff !important;
    border: 1px solid #e0e0e0 !important;
}

@media screen and (max-width: 800px) {
    .um-30.um, .um-profile {
        margin-left: 10px !important;
        margin-right: 10px !important;
        width: auto !important;
    }
}

.um-profile-content-container,
.um-profile-body,
.um-theme-profile-single-content,
.um-theme-profile-single-content-container,
.um-form, .um-header, .um-profile-body .clear {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

.um-profile-body .clear { height: 0 !important; }
.um-profile-nav-main.active ~ .um-profile-content-container { display: none !important; }
.um-account-main .um-field-export_data { display: none !important; }
.um-profile-body.groups_list .um-groups-directory-header { display: none !important; }

@media screen and (max-width: 1024px) {
    div[data-key="hide_in_members"] .um-field-label .um-tip-e,
    div[data-key="hide_in_members"] .um-field-label span[title],
    div[data-key="hide_in_members"] .um-field-label .um-tip-text,
    div[data-key="um_show_last_login"] .um-field-label .um-tip-e,
    div[data-key="um_show_last_login"] .um-field-label span[title],
    div[data-key="um_show_last_login"] .um-field-label .um-tip-text,
    .button-toggle-appbar, 
    .sticky-vertical-tabs {
        display: none !important;
    }
}

.um .um-profile-subnav,
.um .um-profile-subnav a,
.um .um-profile-subnav a.active {
    background-color: #ffffff !important;
}

.um .um-followers-links a,
.um .um-followers-links a span,
.um .um-followers-rc a span.um-ajax-count-followers,
.um .um-followers-rc a span.um-ajax-count-following {
    color: #444444 !important;
}

/* 歯車メニュー */
.um .um-header .um-profile-edit {
    position: absolute !important;
    top: 20px !important;
    right: 20px !important;
    left: auto !important;
    bottom: auto !important;
    display: block !important;
    z-index: 99999 !important;
}

.um .um-header .um-profile-edit .um-dropdown {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    transform: none !important;
    margin-top: 10px !important;
    width: 180px !important;
    max-width: 85vw !important;
    background: #ffffff !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
    border-radius: 6px !important;
    z-index: 999999 !important;
}

.um .um-header .um-profile-edit .um-dropdown .um-dropdown-b {
    position: relative !important;
    width: 100% !important;
}

.um .um-header .um-profile-edit .um-dropdown .um-dropdown-arr {
    position: absolute !important;
    top: -8px !important;
    right: 12px !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
}

.um .um-header .um-profile-edit .um-dropdown .um-dropdown-arr i:before {
    content: "\e21a" !important;
    color: #ffffff !important;
}

.um .um-header .um-profile-edit a.um-profile-edit-a i,
.um .um-header .um-profile-edit a.um-profile-edit-a i:before {
    color: #444444 !important;
}

.um .um-header .um-profile-edit .um-dropdown ul li a {
    color: #444444 !important;
    font-weight: 500 !important;
}

.um .um-header .um-profile-edit .um-dropdown ul li a:hover {
    background-color: #f7f7f7 !important;
    color: #222222 !important;
}

/* SNS（アクティビティ）非表示 */
.um-profile-nav-item.um-profile-nav-activity,
.um-profile-body.activity,
.um-profile-body.activity-default,
.um-activity-wall,
.um-activity-widget,
.um-activity-new-post {
    display: none !important;
}

/* フレンドタブ設定 */
.um-profile-subnav a span.um-profile-friends,
.um-profile-subnav a span.um-profile-friends-requests,
.um-profile-subnav a span.um-profile-friends-requests-sent {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 0 0 5px !important;
    font-size: inherit !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    color: inherit !important;
    line-height: inherit !important;
    border-radius: 0 !important;
}

.um-profile-body.friends a.um-unfriend-btn,
.um-profile-body.friends a.um-unfriend-btn:hover {
    color: #444444 !important;
    font-weight: 500 !important;
}

.um-profile-body.friends a.um-unfriend-btn i,
.um-profile-body.friends a.um-unfriend-btn:before {
    display: none !important;
}

div.um-profile-body.friends div.um-profile-note,
.um-profile-body.friends-sentreqs .um-profile-note,
.um-profile-body.friends-friendreqs .um-profile-note {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 15px 0 20px 0 !important;
}

div.um-profile-body.friends div.um-profile-note,
div.um-profile-body.friends div.um-profile-note span,
.um-profile-body.friends-friendreqs .um-profile-note span,
.um-profile-body.friends-sentreqs .um-profile-note span {
    font-family: "BIZ UDMincho", "Hiragino Mincho ProN", "MS Mincho", serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #444444 !important;
    line-height: 1.6 !important;
    letter-spacing: normal !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.um-profile-body.friends,
.um-theme-profile-single-content-container:has(.um-profile-body.friends) {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.um-profile-body.friends {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.um-profile-body.friends .clear {
    display: none !important;
    height: 0 !important;
}

/* アカウント設定：プライバシー項目の整理 */
#um_field_0_profile_noindex,
#um_field_0_hide_in_members,
#um_field_0_wall_privacy,
#um_field_0__pm_who_can,
#um_field_0_profile_privacy .um-tip-text,
#um_field_0_profile_noindex .um-tip-text,
#um_field_0_hide_in_members .um-tip-text,
#um_field_0_um_show_last_login .um-tip-text {
    display: none !important;
}

#um_field_0_profile_privacy .um-field-label label {
    white-space: nowrap !important;
    display: inline-block !important;
}

/* Page ID 47 固有余白制御 */
.page-id-47 .um-30.um,
.page-id-47 .um-profile {
    padding-bottom: 0 !important;
}

.page-id-47:has(.um-profile-nav-item.um-profile-nav-main.active) .um-profile-content-container,
.um-profile-content-container:has(.um-profile-body.main) {
    display: none !important;
}

.page-id-47:has(.um-profile-nav-item.um-profile-nav-main.active) .um-profile-nav {
    padding-bottom: 40px !important;
    margin-bottom: 0 !important;
}

.page-id-47 .um-profile-subnav ~ .um-profile-content-container,
.um-profile-content-container:has(.um-profile-body.friends) {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.page-id-47:has(.um-profile-body.friends) .um-profile-content-container,
.page-id-47:has(.um-profile-body.friends) .um-theme-profile-single-content-container,
.page-id-47:has(.um-profile-body.groups_list) .um-profile-content-container,
.page-id-47:has(.um-profile-body.groups_list) .um-theme-profile-single-content,
.page-id-47:has(.um-profile-body.groups_list) .um-theme-profile-single-content-container,
.um-profile-body.groups_list,
.um-profile-body.groups_list-default {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.um-profile-body.groups_list .um-groups-directory,
.um-profile-body.groups_list .um-groups-directory:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.um-profile-body.groups_list .um-groups-directory:last-child .group-grid {
    margin-bottom: 10px !important;
}

.um-profile-body.groups_list .clear,
.um-profile-body.groups_list .um-clear,
.um-profile-body.groups_list > .clear {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================
   6. メッセージ画面
   ========================================== */
.um-message-header-right a i,
.um-message-header-right a i:before,
.um-message-emoji a.um-message-emo i,
.um-message-emoji a.um-message-emo i:before {
    color: #444444 !important;
}

.um-profile-body.messages > a.um-gdpr-donwload-link,
a.um-link.um-gdpr-donwload-link {
    display: none !important;
}

.um-message-item-metadata span.um-message-item-time,
.um-message-buttons .um-message-limit {
    color: #555555 !important;
    font-weight: 500 !important;
    opacity: 1 !important;
}

#um_message_text::placeholder,
#um_message_text::-webkit-input-placeholder,
#um_message_text:-ms-input-placeholder {
    color: #555555 !important;
    font-weight: 500 !important;
    opacity: 1 !important;
}

.um-message-header-left a,
.um-message-conv-item .um-message-conv-name {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #333333 !important;
}

.um-message-buttons a.um-message-send,
.um-message-buttons a.um-message-send.disabled {
    opacity: 1 !important;
    color: #ffffff !important;
    background-color: #3ba1da !important;
    border: none !important;
    cursor: pointer !important;
}

.um-message-buttons a.um-message-send i,
.um-message-buttons a.um-message-send.disabled i {
    color: #ffffff !important;
}

.um-message-buttons a.um-message-send:hover {
    background-color: #2b8ec5 !important;
}

.um-message-header-right a.um-message-blocku,
.um-message-header-right a.um-message-delconv,
.um-message-header-right a.um-message-blocku i,
.um-message-header-right a.um-message-delconv i,
.um-message-header-right a.um-message-blocku i:before,
.um-message-header-right a.um-message-delconv i:before {
    color: #444444 !important;
    opacity: 1 !important;
}

.um-message-header-right a.um-message-blocku:hover i,
.um-message-header-right a.um-message-delconv:hover i {
    color: #222222 !important;
}

.um-profile-body.messages,
.um-profile-body.messages.messages-default,
.page-id-47 .um-profile-body.messages,
.um-profile-content-container:has(.um-profile-body.messages),
.um-message-conv-view,
.um-message-modal,
.um-message-conv-view .um-message-modal,
.page-id-47:has(.um-profile-body.messages) .um-profile-content-container,
.page-id-47:has(.um-profile-body.messages) .um-theme-profile-single-content,
.page-id-47:has(.um-profile-body.messages) .um-theme-profile-single-content-container,
.page-id-47:has(.um-profile-body.messages) .um-profile-body.messages {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.um-message-footer.um-popup-footer {
    padding-bottom: 12px !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
}

.um-profile-body.messages .clear,
.um-profile-body.messages .um-clear,
.um-profile-body.messages > div.clear {
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 0 !important;
    display: none !important;
}

/* ==========================================
   7. グループ個別ページ・チャット・地図
   ========================================== */
header.entry-header.s-post__header,
figure.featured-image,
figure.featured.image,
.um-groups-bodyinner-txt #jp-relatedposts,
.um-groups-bodyinner-txt .jp-relatedposts,
.um-groups-bodyinner-txt .jp-relatedposts-headline,
.s-post__content-inner #jp-relatedposts,
.s-post__content-inner .jp-relatedposts,
.um-groups-bodyinner-txt > br,
.jp-relatedposts > br {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
}

main[id="primary"].content-area {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#content.site-content .website-canvas,
#content.site-content .website-canvas > .boot-row {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 変更後：PCサイズ（1025px以上）のときだけ180%に拡張 */
@media screen and (min-width: 1025px) {
    .single-um_groups .um-groups-single {
        width: 180% !important;
        max-width: 180% !important;
        position: relative !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        box-sizing: border-box !important;
        background-color: #ffffff !important;
        padding: 20px !important;
        border-radius: 16px !important;
        box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
    }
}

/* タブレット・スマホ（1024px以下）では通常の幅（100%）に戻す */
@media screen and (max-width: 1024px) {
    .single-um_groups .um-groups-single {
        width: 100% !important;
        max-width: 100% !important;
        position: static !important;
        left: auto !important;
        transform: none !important;
        box-sizing: border-box !important;
        background-color: #ffffff !important;
        padding: 20px !important;
        border-radius: 16px !important;
        box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
    }
}

.um-group-single-header,
.um-groups-directory, 
.um-group-item,
.um-group-tabs-wrap,
.um-group-tab-content-wrap, 
.um-groups-wall, 
.um-groups-widget {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.um-groups-head, 
.um-groups-bodyinner,
.um-groups-comments {
    padding-left: 15px !important;
    padding-right: 15px !important;
    box-sizing: border-box !important;
}

.um-group-tab-content-wrap { background: transparent !important; }

.um-group-tab-content__group_map[style*="display: none"] {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

.um-group-tab-content__group_map .um-groups-widget {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

#map-iframe { width: 100% !important; }

.um-group-tab-content__members .um-group-image-wrap a img.avatar {
    border-radius: 30px !important;
    object-fit: cover !important;
}
/* ==========================================
   グループヘッダー（スマホ専用）：メタ情報余白バランス調整版
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. 外枠・全体の上下パディングとマージン */
    .single-um_groups .um-group-single-header,
    .single-um_groups .um-group-single-header .um-groups-directory,
    .single-um_groups .um-groups-head {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        margin-top: 0 !important;
        margin-bottom: 5px !important;
    }

    .single-um_groups .um-group-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* 2. 【1番目】グループアイコン画像 */
    .single-um_groups .um-group-item > a:has(.um-group-image) {
        order: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        margin-bottom: 4px !important;
        float: none !important;
    }

    .single-um_groups .um-group-item img.um-group-image {
        width: 100px !important;
        height: 100px !important;
        min-width: 100px !important;
        min-height: 100px !important;
        object-fit: cover !important;
        border-radius: 10px !important;
        margin: 0 auto !important;
    }

    /* 3. 【2番目】グループ名 */
    .single-um_groups .um-group-item .um-group-name {
        order: 2 !important;
        margin: 2px 0 4px 0 !important;
        font-size: 17px !important;
        font-weight: bold !important;
        line-height: 1.3 !important;
        text-align: center !important;
    }

    /* 4. 【3番目】公開状況・作成者・説明文（項目の間隔を中間サイズに調整） */
    .single-um_groups .um-group-item .um-group-meta {
        order: 3 !important;
        width: 100% !important;
        margin-bottom: 12px !important; /* 退会ボタンとの間隔 */
        text-align: center !important;
    }

    .single-um_groups .um-group-item .um-group-meta ul {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 5px !important; /* 各項目の上下間隔（2pxと6pxの中間） */
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }

    .single-um_groups .um-group-item .um-group-meta ul li {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 12.5px !important;
        line-height: 1.4 !important;
        margin: 0 !important;
    }

    /* 5. 【4番目・5番目】アクションブロック（退会ボタン ＆ 改行メタ情報） */
    .single-um_groups .um-group-item .actions {
        order: 4 !important;
        width: 100% !important;
        float: none !important;
        margin: 0 auto !important;
    }

    .single-um_groups .um-group-item .actions ul {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }

    /* グループ退会ボタン */
    .single-um_groups .um-group-item .actions ul li:has(.um-groups-single-button) {
        order: 1 !important;
        width: 100% !important;
        max-width: 240px !important;
        margin-bottom: 8px !important;
    }

    .single-um_groups .um-group-item .um-groups-single-button {
        margin: 0 !important;
    }

    .single-um_groups .um-group-item .um-groups-single-button a.um-button {
        display: block !important;
        width: 100% !important;
        padding: 8px 0 !important;
        font-size: 13px !important;
        line-height: 1.3 !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    /* 最終アクティブ・メンバー数・投稿数 */
    .single-um_groups .um-group-item .actions ul li.last-active {
        order: 2 !important;
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        font-size: 11px !important;
        color: #666666 !important;
        line-height: 1.3 !important;
        margin: 1px 0 !important;
    }

    .single-um_groups .um-group-item .actions ul li.count-members {
        order: 3 !important;
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        font-size: 11px !important;
        color: #666666 !important;
        line-height: 1.3 !important;
        margin: 1px 0 !important;
    }

    .single-um_groups .um-group-item .actions ul li.count-posts {
        order: 4 !important;
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        font-size: 11px !important;
        color: #666666 !important;
        line-height: 1.3 !important;
        margin: 1px 0 !important;
    }
}


/* ==========================================
   グループ個別ページ（スマホ専用）：ヘッダーと枠の間の余白を短縮
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. コンテンツエリア全体の上下余白を最小化 */
    body.single-um_groups #content,
    body.single-um_groups #content.site-content,
    body.single-um_groups .website-canvas,
    body.single-um_groups main#primary,
    body.single-um_groups .site-main,
    body.single-um_groups article.um_groups,
    body.single-um_groups .entry-content,
    body.single-um_groups .s-post__content-inner {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    /* 2. グループ本体（白枠）の上部マージン・パディングを調整 */
    body.single-um_groups .um-groups-single {
        margin-top: 10px !important; /* ヘッダーとの間隔（好みに応じて 5px〜15px に微調整可） */
        padding-top: 20px !important;
    }
}

/* ==========================================
   グループ個別ページ：下部の薄い線・区切り線を一括削除
   ========================================== */
.single-um_groups #jp-relatedposts,
.single-um_groups .jp-relatedposts,
.single-um_groups .jp-relatedposts:before,
.single-um_groups .jp-relatedposts:after,
.single-um_groups .s-post__content,
.single-um_groups .s-post__content-inner,
.single-um_groups .s-post__comment,
.single-um_groups .s-post__related,
.single-um_groups article.um_groups,
.single-um_groups .entry-content {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Jetpack関連投稿ブロック自体の完全非表示と余白クリア */
.single-um_groups div#jp-relatedposts {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* 空のコメント・関連エリアを非表示化 */
.single-um_groups .s-post__comment,
.single-um_groups .s-post__related {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================
   8. チャットタイムライン・コメント・アクション制御
   ========================================== */
.um-groups-comments {
    display: none !important;
}

.um-groups-widget.open-comments .um-groups-comments {
    display: flex !important;
    flex-direction: column !important;
}

.um-groups-comments .um-groups-comments-loop {
    display: block !important;
    order: 1 !important;
}

.um-groups-comments .um-groups-comment-area {
    display: block !important;
    order: 2 !important;
    margin-top: 15px !important;
}

/* チャット本文・コメント */
.um-groups-widget .um-groups-bodyinner-txt,
.um-groups-comments-loop .um-groups-comment-text {
    font-size: 15px !important;
    line-height: 1.5 !important;
    color: #444444 !important;
    display: block !important;
    margin-top: 6px !important;
    font-weight: normal !important;
}

div.um-activity div.um-form {
    display: flex !important;
    flex-direction: column !important;
}

div.um-form div.um-groups-new-post {
    order: 3 !important;
    margin: 25px 0 0 0 !important;
}

div.um-form div.um-groups-wall {
    order: 2 !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    height: 300px !important;
    overflow-y: auto !important;
    border: 1px solid #ddd !important;
    padding: 15px !important;
    background-color: #fff !important;
}

div.um-form div.um-groups-clone { display: none !important; }
div.um-form div.um-groups-load { order: 1 !important; }

div.um-groups-wall::-webkit-scrollbar { width: 6px; }
div.um-groups-wall::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

.um-groups-comments-loop .um-groups-comment-author-link a {
    font-weight: 600 !important;
    color: #0085ba !important;
    text-decoration: none !important;
    font-size: inherit !important;
}

.um-groups-comments-loop .um-groups-comment-author-link a:hover {
    color: #006799 !important;
    text-decoration: underline !important;
}

.um-groups-head .um-groups-author-url a.um-link {
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #333333 !important;
}

.um-groups-modal-name a {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #333333 !important;
}

/* アクション・いいね */
.um-groups-disp .um-groups-left,
.um-groups-comment-meta .um-groups-comment-likes {
    display: none !important;
}

.um-groups-disp {
    margin: 4px 0 8px 0 !important;
    padding: 0 !important;
    border: none !important;
}

.um-groups-disp .um-groups-faces {
    display: flex !important;
    align-items: center !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.um-groups-disp .um-groups-faces a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.um-groups-disp .um-groups-faces img {
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    vertical-align: middle !important;
}

.um-groups-left.um-groups-actions,
.um-groups-foot .um-groups-actions {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

.um-groups-like,
.um-groups-comment,
.um-groups-like a,
.um-groups-comment a,
.um-groups-foot .um-groups-like,
.um-groups-foot .um-groups-comment {
    display: inline-flex !important;
    align-items: center !important;
    float: none !important;
    text-decoration: none !important;
}

.um-groups-actions .um-groups-like a,
.um-groups-actions .um-groups-comment a,
.um-groups-actions .um-groups-like a span,
.um-groups-actions .um-groups-comment a span,
.um-groups-comment-meta span a.um-groups-comment-like,
.um-groups-comment-meta span a.um-groups-comment-reply,
.um-groups-actions .um-groups-like a i,
.um-groups-actions .um-groups-comment a i,
.um-groups-comment-meta .um-groups-comment-likes i {
    opacity: 1 !important;
    color: #444444 !important;
}

.um-groups-like.active a i.um-active-color,
.um-groups-comment-meta a.um-groups-comment-like.active i {
    color: #3ba1da !important;
    opacity: 1 !important;
}

.um-groups-like a .custom-inline-faces {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px;
    margin-left: 8px !important;
    float: none !important;
}

.um-groups-like a .custom-inline-faces img {
    width: 20px !important;
    height: 20px !important;
    border-radius: 50% !important;
    border: 1px solid #ddd !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
}

.um-groups-publish .um-groups-foot .um-groups-post,
.um-groups-publish .um-groups-foot a.um-groups-post {
    opacity: 1 !important;
    color: #ffffff !important;
    background-color: #3ba1da !important;
    border: none !important;
    cursor: pointer !important;
}

.um-groups-publish .um-groups-foot a.um-groups-post:hover {
    background-color: #2b8ec5 !important;
}

.um-groups-comment-meta a.um-groups-comment-like {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: #444444 !important;
    text-decoration: none !important;
    font-size: 13px !important;
}

.um-groups-comment-meta a.um-groups-comment-like i {
    font-size: 14px !important;
}

.um-groups-comment-meta a.um-groups-comment-reply {
    color: #444444 !important;
    font-size: 13px !important;
}

.um-groups-comment-meta span::after,
.um-groups-comment-meta span::before,
.um-activity-comment-meta span::after,
.um-activity-comment-meta span::before {
    display: none !important;
    content: "" !important;
}

.um-groups-comment-meta,
.um-activity-comment-meta {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 1em !important;
}

.um-groups-comment-meta > span,
.um-activity-comment-meta > span {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
}

.um-groups-bodyinner-photo {
    margin-top: 10px !important;
    max-width: 100% !important;
}

.um-groups-bodyinner-photo a.um-photo-modal {
    display: inline-block !important;
    max-width: 280px !important;
    max-height: 280px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    border: 1px solid #e0e0e0 !important;
    background-color: #f8f9fa !important;
    line-height: 0 !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.um-groups-bodyinner-photo a.um-photo-modal:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

.um-groups-bodyinner-photo img {
    width: auto !important;
    height: auto !important;
    max-width: 280px !important;
    max-height: 280px !important;
    object-fit: cover !important;
    display: block !important;
}

/* ==========================================
   9. ビラ掲示板（Search & Filter）
   ========================================== */
.elementor-element-c4fe6a7 .elementor-shortcode {
    padding: 20px 0 0 0 !important;
    margin-bottom: 35px !important;
}

form.searchandfilter > div > ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 15px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 8px 0 !important; 
    list-style: none !important;
    border-bottom: 2px solid #000000 !important;
}

form.searchandfilter > div > ul > li {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

form.searchandfilter > div > ul > li:nth-child(1) {
    flex: 0 0 auto !important;
    gap: 15px !important;
}

form.searchandfilter > div > ul > li:nth-child(2) {
    flex: 1 1 auto !important;
}

form.searchandfilter > div > ul > li:nth-child(3) {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

form.searchandfilter h4 {
    font-size: 16px !important;
    color: #444444 !important;
    font-weight: 600 !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

form.searchandfilter select,
form.searchandfilter input[type="submit"] {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    color: #444444 !important; 
    font-weight: 600 !important;
}

form.searchandfilter > div > ul > li:first-child > h4 {
    display: none !important;
}

form.searchandfilter > div > ul > li:first-child > select option {
    color: #444444 !important;
}

form.searchandfilter > div > ul > li:last-child > input[type="submit"] {
    font-size: inherit !important;
    cursor: pointer !important;
}

@media (max-width: 767px) {
    form.searchandfilter > div > ul {
        flex-wrap: wrap !important;
    }
    form.searchandfilter > div > ul > li {
        width: 100% !important;
    }
}

/* ==========================================
   10. WP Grid Builder（共通 & ビラカード）
   ========================================== */
.wp-grid-builder .wpgb-block-3 {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}

.wp-grid-builder .um-group-text-container,
.wp-grid-builder .um-group-button-container {
    line-height: 1.2 !important;
}

.wpgb-card .wpgb-card-inner {
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.wpgb-card:hover .wpgb-card-inner {
    transform: translateY(-4px) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06) !important;
}

.wpgb-card ul,
.wpgb-card li,
.wpgb-card .um-group-meta ul,
.wpgb-card .um-group-button-container ul,
.wpgb-card .actions ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.wpgb-card li::before,
.wpgb-card li::after {
    content: none !important;
    display: none !important;
}

.wpgb-card .um-group-text-container,
.wpgb-card .um-group-button-container,
.wpgb-card .um-group-meta,
.wpgb-card .actions {
    text-align: left !important;
    width: 100% !important;
}

.wpgb-card .um-group-text-container {
    padding: 6px 0 8px 0 !important;
    margin: 0 !important;
}

.wpgb-card .um-group-meta li,
.wpgb-card .um-group-button-container .actions li {
    text-align: left !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.6 !important;
}

.wpgb-card .um-group-button-container .actions ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
}

.wpgb-card .group-meta-info {
    font-size: 13px !important;
    color: #666666 !important;
    line-height: 1.6 !important;
    text-align: left !important;
    display: block !important;
}

.wpgb-card .group-meta-info span {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #444444 !important;
}

.wpgb-card .group-meta-info i {
    margin-right: 6px !important;
}

.wpgb-card .um-groups-single-button,
.custom-wpgb-meta-box .um-groups-single-button {
    width: 100% !important;
    margin-top: 16px !important;
}

.wpgb-card .um-groups-single-button .um-button,
.wpgb-card .um-groups-single-button a.um-button,
.custom-wpgb-meta-box .um-groups-single-button .um-button {
    display: block !important;
    width: 100% !important;
    padding: 10px 0 !important;
    background-color: #3ba1da !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    text-align: center !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    line-height: 1.4 !important;
    transition: background-color 0.2s ease, opacity 0.2s ease !important;
}

.wpgb-card .um-groups-single-button .um-button:hover,
.wpgb-card .um-groups-single-button a.um-button:hover,
.custom-wpgb-meta-box .um-groups-single-button .um-button:hover {
    background-color: #2b8ec5 !important;
    color: #ffffff !important;
    opacity: 0.9 !important;
}

.wpgb-card .um-groups-single-button .um-button.um-disabled {
    background-color: #cccccc !important;
    color: #ffffff !important;
    cursor: default !important;
}

.wpgb-grid-6 .wpgb-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.wpgb-grid-6 .wpgb-card-wrapper {
    background: transparent !important;
    height: 100% !important;
    padding: 0 !important;
}

.wpgb-grid-6 .wpgb-card-inner {
    background-color: #ffffff !important;
    border-radius: 30px !important;
    padding: 24px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow: none !important;
    border: none !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

.wpgb-grid-6 .wpgb-card-media {
    position: relative !important;
    width: 130px !important;
    height: 130px !important;
    min-width: 130px !important;
    min-height: 130px !important;
    margin: 0 auto 10px auto !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

.wpgb-grid-6 .wpgb-card-media svg {
    display: none !important;
}

.wpgb-grid-6 .wpgb-card-media-thumbnail {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 16px !important;
    overflow: hidden !important;
}

.wpgb-grid-6 .wpgb-card-media-thumbnail a,
.wpgb-grid-6 .wpgb-card-media-thumbnail div {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 16px !important;
    background-size: cover !important;
    background-position: center !important;
}

.wpgb-grid-6 .wpgb-card-content,
.wpgb-grid-6 .wpgb-card-body {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    text-align: left !important;
}

.wpgb-grid-6 .wpgb-block-1 {
    margin: 6px 0 !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 1.4 !important;
}

.wpgb-grid-6 .wpgb-block-1 a {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #444444 !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.wpgb-grid-6 .wpgb-block-1 a:hover {
    color: #000000 !important;
}

.custom-wpgb-meta-box {
    text-align: center !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.custom-wpgb-meta-box .group-meta-info {
    font-size: 13px !important;
    color: #666666 !important;
    display: block !important;
    text-align: center !important;
}

.custom-wpgb-meta-box .group-meta-info .num {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #444444 !important;
}

/* ==========================================
   11. フルスクリーン背景・レイアウト統合
   ========================================== */
body::before {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100lvh !important;
    z-index: -9999 !important;
    background-image: 
        linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), 
        url('https://protect-jp.com/wp-content/uploads/2026/03/AdobeStock_491003345.jpeg') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
}

html,
body,
#page,
.site,
#content,
.site-content,
main#primary,
.website-canvas,
.s-post__wrapper,
article.um_groups,
.s-post__content,
.s-post__content-inner,
.entry-content,
.site-main,
.single-um_groups main,
.single-um_groups #content,
.single-um_groups .site-content {
    background: transparent !important;
}

.single-um_groups .um-group-single-header,
.single-um_groups .um-group-tabs-wrap,
.single-um_groups .um-group-tab-content-wrap,
.single-um_groups .um-group-tab-content-wrap .um-form,
.single-um_groups .um-group-tab-content__settings {
    background-color: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    margin-bottom: 0 !important;
}

.single-um_groups .um-groups-widget {
    background-color: #ffffff !important;
    margin-bottom: 10px !important;
}

#colophon,
footer.site-footer {
    position: relative !important;
    z-index: 10 !important;
}

/* 除外ページ */
body.home::before,
body.page-id-32::before,
body.um-page-login::before,
body.um-page-register::before,
body.um-page-password-reset::before,
body.um-page-account::before {
    display: none !important;
}

body.home,
body.page-id-32,
body.um-page-login,
body.um-page-register,
body.um-page-password-reset,
body.um-page-account {
    background-color: #ffffff !important;
}

/* ==========================================
   パスワードリセット画面：グレー背景の完全削除
   ========================================== */
body.um-page-password-reset,
.um-page-password-reset #page,
.um-page-password-reset #content,
.um-page-password-reset .site-content,
.um-page-password-reset .elementor-page,
.um-page-password-reset .elementor-element-405dd029,
.um-password,
.um-password .um-form,
.um-password .um-field-block,
.um-password .um-field-area {
    background-color: transparent !important;
    background: transparent !important;
}

/* フォーム入力枠（input）の背景を白に保持 */
.um-password input[type="text"],
.um-password .um-form-field {
    background-color: #ffffff !important;
}

/* ==========================================
   12. アルバム & カスタムフィルター
   ========================================== */
.um-group-tab-content__album {
    padding: 20px;
    background: #fff;
    border: 1px solid #ddd;
    border-top: none;
}

#um-custom-filters-wrap select {
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    padding: 0 10px !important;
    height: 36px !important;
    line-height: 36px !important;
    background: #fff !important;
    font-size: 14px !important;
    color: #444444 !important;
    cursor: pointer;
}

#um-custom-filters-wrap select:focus {
    border-color: #000000 !important;
}

#um-custom-filters-wrap .tag2-group label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: #444444;
    transition: color 0.2s ease;
}

#um-custom-filters-wrap .tag2-group label:hover {
    color: #888888;
}

#um-custom-filters-wrap .tag2-group input[type="checkbox"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
    margin: 0;
}

@media (max-width: 991px) {
    #um-custom-filters-wrap {
        margin-left: 0 !important;
        width: 100% !important;
        gap: 10px !important;
    }
    #um-custom-filters-wrap .location-group,
    #um-custom-filters-wrap .tag2-group {
        width: 100% !important;
        margin-left: 0 !important;
        border-left: none !important;
        padding-left: 0 !important;
        flex-wrap: wrap;
    }
}

/* ==========================================
   13. ビラ掲示板 カスタム検索バー
   ========================================== */
.pjp-custom-filter-container {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 20px 0 0 0 !important;
    margin-bottom: 30px !important;
    width: 100% !important;
}

.pjp-filter-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 15px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 8px 0 !important;
    list-style: none !important;
    border-bottom: 2px solid #000000 !important;
}

.pjp-filter-row > li {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.pjp-filter-item-search {
    flex: 1 !important;
    width: auto !important;
}

.pjp-filter-item-select {
    flex: 0 0 auto !important;
    margin-left: auto !important;
}

.pjp-filter-item-actions {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    white-space: nowrap !important;
}

.pjp-custom-select,
.pjp-custom-input,
.pjp-custom-btn {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    font-size: 16px !important;
    color: #444444 !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    height: 40px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
}

.pjp-custom-select {
    appearance: select !important;
    -webkit-appearance: menulist !important;
    -moz-appearance: menulist !important;
    min-width: 170px !important;
    cursor: pointer !important;
    line-height: 40px !important;
    padding-right: 20px !important;
}

.pjp-custom-select option {
    color: #444444 !important;
}

.pjp-custom-input {
    width: 100% !important;
    display: inline-block !important;
    line-height: 40px !important;
    -webkit-text-security: none !important;
}

.pjp-custom-input::placeholder {
    color: #444444 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    opacity: 1 !important;
}

.pjp-custom-btn {
    width: auto !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    text-decoration: none !important;
    justify-content: center !important;
    transition: color 0.2s ease !important;
}

.pjp-custom-select:hover,
.pjp-custom-btn:hover {
    color: #888888 !important;
}

@media (max-width: 991px) {
    .pjp-filter-row {
        flex-wrap: wrap !important;
        border-bottom: 1px solid #000000 !important;
        padding-bottom: 5px !important;
        gap: 15px !important;
    }

    .pjp-filter-item-search {
        width: 100% !important;
        flex: none !important;
        border-bottom: 1px solid #000000 !important;
        padding-bottom: 5px !important;
    }

    .pjp-filter-item-select {
        flex: 1 !important;
        margin-left: 0 !important;
    }

    .pjp-filter-item-actions {
        flex: 0 0 auto !important;
        justify-content: flex-end !important;
    }
}

.no-villas-found {
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #444444 !important;
    font-family: inherit !important;
    margin-top: 35px !important;
    margin-bottom: 20px !important;
    line-height: 1.6 !important;
}

/* ==========================================
   14. ビラ一覧（グリッド配置）
   ========================================== */
.custom-villas-grid.boot-row {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

@media (min-width: 992px) {
    .custom-villas-grid.boot-row {
        gap: 24px 2% !important;
    }
    .custom-villas-grid .custom-villa-card {
        width: 23.5% !important;
        max-width: 23.5% !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .custom-villas-grid.boot-row {
        gap: 24px 4% !important;
    }
    .custom-villas-grid .custom-villa-card {
        width: 48% !important;
        max-width: 48% !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (max-width: 767px) {
    .custom-villas-grid.boot-row {
        justify-content: center !important;
        gap: 20px 0 !important;
    }

    .custom-villas-grid .custom-villa-card {
        width: 100% !important;
        max-width: 340px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        float: none !important;
    }

    .custom-villas-grid .custom-villa-card .group-grid-inner {
        margin: 0 auto !important;
        width: 100% !important;
    }
}

/* ==========================================
   15. ゲスト固定枠 ＆ フッター自動吸着 (PC)
   ========================================== */
@media screen and (min-width: 768px) {
    #page,
    .site,
    body.page-id-32,
    body.page-id-32 #page {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100vh !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        margin: 0 !important;
    }

    #page > .boot-row,
    body.page-id-32 > #page > .boot-row {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    #page > .boot-row > .boot-col-md-12,
    body.page-id-32 .boot-col-md-12 {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    #content,
    #content.site-content {
        flex: 1 0 auto !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    body.page-id-32 #content {
        padding: 20px 0 40px 0 !important;
    }

    #colophon,
    footer.site-footer,
    body.page-id-32 #colophon {
        flex-shrink: 0 !important;
        margin-top: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    body.admin-bar #page,
    body.admin-bar .site {
        min-height: calc(100vh - 32px) !important;
    }
}

@media screen and (max-width: 767px) {
    body.page-id-32 .elementor-32 .elementor-element-e6ae2c2,
    body.page-id-32 .elementor-shortcode,
    body.page-id-32 .um-login.um {
        max-width: 93% !important;
        width: 93% !important;
        margin: 0 auto !important;
    }
    body.page-id-32 .um-29.um {
        width: 100% !important;
    }
}

/* ==========================================
   ログイン画面（page-id-32）：フッター位置制御（フォーム配置維持）
   ========================================== */

/* 1. タブレット（768px〜1024px）：フッターの下端を画面下端に固定 */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    body.page-id-32,
    body.page-id-32 #page,
    body.page-id-32 .site {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100vh !important;
        min-height: 100lvh !important;
        box-sizing: border-box !important;
    }

    body.page-id-32 #content,
    body.page-id-32 #content.site-content {
        flex: 1 0 auto !important;
    }

    body.page-id-32 #colophon,
    body.page-id-32 footer.site-footer {
        flex-shrink: 0 !important;
        margin-top: auto !important;
        width: 100% !important;
    }
}

/* 2. スマホ（〜767px）：フッターの上端を画面下端に配置（初期表示で画面外直下） */
@media screen and (max-width: 767px) {
    body.page-id-32,
    body.page-id-32 #page {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100vh !important;
        min-height: 100lvh !important;
    }

    body.page-id-32 #content,
    body.page-id-32 #content.site-content {
        flex: 1 0 auto !important;
        min-height: calc(100vh - 70px) !important;
        min-height: calc(100lvh - 70px) !important;
        box-sizing: border-box !important;
    }

    body.page-id-32 #colophon,
    body.page-id-32 footer.site-footer {
        flex-shrink: 0 !important;
        width: 100% !important;
        margin-top: 0 !important;
    }
}

/* ==========================================
   通知画面：背景色・フィルターボタンの調整
   ========================================== */

/* 1. 既読の通知の背景を白色に統一 */
.um-notification,
.um-notification.read,
.um-notification.unread {
    background-color: #ffffff !important;
}

/* 2. 「すべて」「未読」タブボタン（選択・未選択ともに背景白、文字の太さを均一化） */
.um-notification-header .um-notifications-filters .um-notifications-filter {
    background-color: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    color: #666666 !important;
    font-weight: normal !important; /* 基本の太さ */
}

/* アクティブ（選択中）のボタンスタイル：太字にせず枠線と文字色のみで区別 */
.um-notification-header .um-notifications-filters .um-notifications-filter.active {
    background-color: #ffffff !important;
    color: #000000 !important;
    font-weight: normal !important; /* 太字化を解除 */
    border-color: #3ba1da !important;
}


/* ==========================================
   登録画面（page-id-33）：上部余白の削除（スマホ）
   ========================================== */
@media screen and (max-width: 767px) {
    body.page-id-33 #content,
    body.page-id-33 #content.site-content {
        justify-content: flex-start !important;
        padding-top: 20px !important;
    }

    body.page-id-33 .um-register.um,
    body.page-id-33 .um-28.um {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    body.page-id-33 .um-form {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    body.page-id-33 .um-row._um_row_1 {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* ==========================================
   登録画面（page-id-33）：スマホ隙間完全ゼロリセット＆フッター下端吸着
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. ページ全体の高さ管理 */
    body.page-id-33,
    body.page-id-33 #page,
    body.page-id-33 .site {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 2. ラッパー・コンテナの余白を完全リセット */
    body.page-id-33 #page > .boot-row,
    body.page-id-33 .boot-col-md-12 {
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        flex: 1 0 auto !important;
    }

    /* 3. コンテンツエリア：ヘッダー高さを引いた画面1杯分に設定 */
    body.page-id-33 #content,
    body.page-id-33 #content.site-content {
        flex: 1 0 auto !important;
        min-height: calc(100vh - 60px) !important;
        min-height: calc(100dvh - 60px) !important;
        padding: 10px 0 0 0 !important; /* 上端の最小限の微余白のみ */
        margin: 0 !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    /* 4. 登録フォーム：横幅93%＆不要なマージンをすべて排除 */
    body.page-id-33 .um-register.um,
    body.page-id-33 .um-28.um,
    body.page-id-33 div.um-register {
        width: 93% !important;
        max-width: 93% !important;
        margin: 0 auto !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    body.page-id-33 .um-form,
    body.page-id-33 .um-row._um_row_1,
    body.page-id-33 .um-col-1,
    body.page-id-33 #um_field_28_user_login {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* 5. フッター：1画面分の直下に配置（隙間ゼロ） */
    body.page-id-33 #colophon,
    body.page-id-33 footer.site-footer {
        flex-shrink: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* ==========================================
   パスワード再設定画面（page-id-34）：レイアウト・背景色調整
   ========================================== */

/* 1. 全デバイス共通：灰色背景を純白に統一 */
body.page-id-34,
body.um-page-password-reset,
body.page-id-34 #page,
body.page-id-34 #content,
body.page-id-34 .site-content,
body.page-id-34 .elementor-34,
body.page-id-34 .elementor-element-70f3f1d,
body.page-id-34 .elementor-element-70f3f1d .e-con-inner,
body.page-id-34 .elementor-shortcode,
body.page-id-34 .um-password,
body.page-id-34 .um-password .um-form,
body.page-id-34 .um-password .um-field-block {
    background: #ffffff !important;
    background-color: #ffffff !important;
    background-image: none !important;
}

/* 2. スマホ専用（〜767px）：横幅93%＆フッター画面外直下吸着 */
@media screen and (max-width: 767px) {
    /* ページ全体の高さ管理 */
    body.page-id-34,
    body.page-id-34 #page,
    body.page-id-34 .site {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.page-id-34 #page > .boot-row,
    body.page-id-34 .boot-col-md-12 {
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        flex: 1 0 auto !important;
    }

    /* コンテンツエリア：ヘッダー高さを引いた1画面分を確保 */
    body.page-id-34 #content,
    body.page-id-34 #content.site-content {
        flex: 1 0 auto !important;
        min-height: calc(100vh - 60px) !important;
        min-height: calc(100dvh - 60px) !important;
        padding: 10px 0 0 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    body.page-id-34 .elementor-34,
    body.page-id-34 .elementor-element-70f3f1d {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* パスワード再設定フォーム：横幅93%で中央揃え */
    body.page-id-34 .um-password.um,
    body.page-id-34 .um-um_password_id.um,
    body.page-id-34 div.um-password {
        width: 93% !important;
        max-width: 93% !important;
        margin: 0 auto !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* フッター：1画面分の直下に配置 */
    body.page-id-34 #colophon,
    body.page-id-34 footer.site-footer {
        flex-shrink: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* ==========================================
   フレンド一覧（スマホ）：順序並び替え＆ボタン配色
   ========================================== */

/* 1. ボタン配色（水色背景・白文字） */
.um-friends-user .um-friends-user-btn .um-unfriend-btn,
.um-friends-user .um-friends-user-btn a.um-button {
    background-color: #3ba1da !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    font-weight: 500 !important;
    transition: background-color 0.2s ease !important;
}

.um-friends-user .um-friends-user-btn .um-unfriend-btn:hover,
.um-friends-user .um-friends-user-btn a.um-button:hover {
    background-color: #2b8ec5 !important;
    color: #ffffff !important;
}

/* 2. スマホ専用（〜767px）：表示順序の制御 */
@media screen and (max-width: 767px) {
    .um-friends-user {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }

    /* アイコン画像（最上部） */
    .um-friends-user .um-friends-user-photo {
        order: 1 !important;
        margin-bottom: 8px !important;
        float: none !important;
    }

    /* ユーザー名（1番目） */
    .um-friends-user .um-friends-user-name {
        order: 2 !important;
        margin: 4px 0 !important;
        float: none !important;
        width: 100% !important;
    }

    /* プロフィール自己紹介文（2番目） */
    .um-friends-user .um-friends-user-bio {
        order: 3 !important;
        margin: 4px 0 12px 0 !important;
        float: none !important;
        width: 100% !important;
    }

    /* フレンドボタン（3番目） */
    .um-friends-user .um-friends-user-btn {
        order: 4 !important;
        float: none !important;
        margin: 0 auto !important;
        width: 100% !important;
    }

    .um-friends-user .um-friends-user-btn a {
        display: inline-block !important;
        min-width: 140px !important;
    }
}

/* ==========================================
   プロフィール内グループ一覧（スマホ）：グリッド中央揃え
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. 行全体の左右マージン・パディングをリセットして中央寄せ */
    .um-profile-body.groups_list .um-groups-directory.boot-row {
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        justify-content: center !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* 2. グループカード（外枠）の余白リセット＆中央配置 */
    .um-profile-body.groups_list .um-groups-directory .group-grid {
        width: 100% !important;
        max-width: 340px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        float: none !important;
    }

    /* 3. カード内部ボックスの中央均等配置 */
    .um-profile-body.groups_list .group-grid-inner {
        margin-left: auto !important;
        margin-right: auto !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* ==========================================
   スマホヘッダー（767px以下）：全幅ドロップダウンメニュー
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. ヘッダー自体の基準位置を設定 */
    #masthead.site-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 99999 !important;
        padding: 0 !important;
    }

    #masthead .header-container,
    #masthead .header__wrapper {
        padding: 0 !important;
        height: 56px !important;
        position: relative !important;
    }

    /* 2. ヘッダーバー内の横並び配置 */
    #masthead .header__wrapper .boot-row {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        height: 100% !important;
        margin: 0 !important;
        padding: 0 12px !important;
    }

    /* 【左端】ロゴ＋サイト名 */
    .header__branding {
        order: 1 !important;
        flex: 0 0 auto !important;
        max-width: none !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .header__branding .custom-logo-link {
        display: inline-flex !important;
        align-items: center !important;
        line-height: 1 !important;
    }

    .site-img-logo,
    .header__branding .custom-logo-link img {
        vertical-align: middle !important;
        margin: 0 !important;
    }

    /* 【右側】通知・メッセージ・プロフィールアイコン群 */
    .header__user-account {
        order: 2 !important;
        flex: 0 0 auto !important;
        max-width: none !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        padding: 0 !important;
        margin-left: auto !important;
        gap: 6px !important;
    }

    .header__user-account .header-friend-requests,
    .header__user-account .header-messenger-box,
    .header__user-account .header-notification-box,
    .header__user-account .header-profile-section,
    .header__user-account .header-profile-section .label-container,
    .header__user-account .header-profile-section .label-container > span {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .header__user-account i.dropdown-togglu,
    .header__user-account .um-header-avatar {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .header__user-account .um-header-avatar img {
        vertical-align: middle !important;
        display: block !important;
    }

    /* 【最右端】ハンバーガーボタン */
    .header__navigation {
        order: 3 !important;
        flex: 0 0 auto !important;
        max-width: none !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin-left: 8px !important;
    }

    .header__navigation .navbar,
    .header__navigation .boot-container {
        display: flex !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .header__navigation .navbar-toggler {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        background: transparent !important;
        height: auto !important;
        line-height: 1 !important;
    }

    .header__navigation .navbar-toggler-icon {
        display: inline-block !important;
        vertical-align: middle !important;
        margin: 0 !important;
    }

    /* 3. 【開いたメニュー本体】画面横幅いっぱい・ヘッダー直下に展開 */
    .header__navigation #bs-navbar-primary {
        position: fixed !important;
        top: 56px !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        max-height: calc(100vh - 56px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        background-color: #ffffff !important;
        border-top: 1px solid #eeeeee !important;
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15) !important;
        z-index: 999999 !important;
        padding: 10px 0 20px 0 !important;
        margin: 0 !important;
    }

    /* メニュー内の各リンク行のデザイン（押しやすいリスト形式） */
    .header__navigation #bs-navbar-primary ul#menu-main-menu {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }

    .header__navigation #bs-navbar-primary ul#menu-main-menu li {
        width: 100% !important;
        border-bottom: 1px solid #f2f2f2 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .header__navigation #bs-navbar-primary ul#menu-main-menu li a {
        display: block !important;
        padding: 14px 20px !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        color: #333333 !important;
        text-decoration: none !important;
        text-align: left !important;
    }

    .header__navigation #bs-navbar-primary ul#menu-main-menu li a:hover,
    .header__navigation #bs-navbar-primary ul#menu-main-menu li a:active {
        background-color: #f7f7f7 !important;
        color: #0073aa !important;
    }

    /* 4. 検索エリアの非表示 */
    .header__search {
        display: none !important;
    }
}

/* ==========================================
   スマホ用ハンバーガーメニュー：上下の余白を完全削除
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. ドロップダウン全体の上下余白をゼロ化 */
    .header__navigation #bs-navbar-primary,
    .header__navigation .navbar-collapse {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* 2. リスト本体（ul）の上下余白をゼロ化 */
    .header__navigation #bs-navbar-primary ul#menu-main-menu,
    .header__navigation #bs-navbar-primary ul.navbar-nav {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* 3. 最初と最後のメニュー項目の境界線を整える */
    .header__navigation #bs-navbar-primary ul#menu-main-menu li:first-child {
        margin-top: 0 !important;
    }

    .header__navigation #bs-navbar-primary ul#menu-main-menu li:last-child {
        margin-bottom: 0 !important;
        border-bottom: none !important; /* 一番下の不要な下線を消す場合 */
    }
}

/* ==========================================
   スマホヘッダー：縦幅を少し拡大＆ドロップダウン位置同期
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. ヘッダー全体の高さを 56px → 62px に拡大 */
    #masthead.site-header {
        height: 62px !important;
        min-height: 62px !important;
    }

    #masthead .header-container,
    #masthead .header__wrapper {
        height: 62px !important;
        min-height: 62px !important;
    }

    #masthead .header__wrapper .boot-row {
        min-height: 62px !important;
        height: 100% !important;
    }

    /* 2. ハンバーガーメニュー展開位置をヘッダーの高さ（62px）に合わせる */
    .header__navigation #bs-navbar-primary {
        top: 62px !important;
        max-height: calc(100vh - 62px) !important;
    }
}

/* ==========================================
   スマホ：アカウントメニューの表示位置補正（見た目は維持）
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. プロフィールエリアを基準点に設定 */
    .header__user-account .header-profile-section {
        position: relative !important;
    }

    /* 2. 展開位置のみをアイコン直下の右端揃えに補正 */
    .header__user-account .profile-menu-wrapper {
        position: absolute !important;
        top: 100% !important;
        right: 0 !important;
        left: auto !important;
        margin-top: 5px !important;
        z-index: 999999 !important;
    }
}
/* ==========================================
   通知ヘッダー：「通知」見出し・フィルターボタン縮小（スマホ専用）
   ========================================== */
@media screen and (max-width: 767px) {
    /* 1. 「通知」見出しを少し小さく */
    .um-notification-header h4 {
        font-size: 15px !important;
        line-height: 1.3 !important;
        margin: 0 !important;
    }

    /* 2. 「すべて」「未読」ボタンの文字サイズと余白を縮小 */
    .um-notification-header .um-notifications-filters .um-notifications-filter {
        font-size: 12px !important;
        padding: 3px 8px !important;
        line-height: 1.2 !important;
    }
}

