/* 会員ページ（Ultimate Member: ログイン・登録・マイページ・アカウント）をサイトのトンマナに合わせる
 * 色: 黄 #FABE00 / 黒 / 白。角は4px、ボタン・入力枠は黒の2px。 */
.ct-body .um,
.ct-body .um * {
    font-family: inherit !important;
    letter-spacing: .035em !important;
}

.ct-body .um {
    --um-key: #FABE00;
}

.ct-body .um-form {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ct-body .um,
.ct-body .um.um-login,
.ct-body .um.um-register,
.ct-body .um.um-password {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ラベル */
.ct-body .um .um-field-label label,
.ct-body .um .um-field-label .um-field-label-text {
    margin-bottom: 8px !important;
    color: #000 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
}

.ct-body .um .um-field-label {
    margin-bottom: 0 !important;
}

/* 入力欄 */
.ct-body .um .um-form input[type=text],
.ct-body .um .um-form input[type=tel],
.ct-body .um .um-form input[type=password],
.ct-body .um .um-form input[type=email],
.ct-body .um .um-form input[type=url],
.ct-body .um .um-form input[type=number],
.ct-body .um .um-form input[type=search],
.ct-body .um .um-form textarea,
.ct-body .um .um-form select {
    box-sizing: border-box !important;
    height: 48px !important;
    padding: 0 14px !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 16px !important;
    transition: box-shadow .15s !important;
}

.ct-body .um .um-form textarea {
    height: auto !important;
    padding: 12px 14px !important;
}

.ct-body .um .um-form input:focus,
.ct-body .um .um-form textarea:focus,
.ct-body .um .um-form select:focus {
    outline: none !important;
    border-color: #000 !important;
    box-shadow: 0 0 0 3px var(--um-key) !important;
}

.ct-body .um .um-form ::placeholder {
    color: #999 !important;
}

.ct-body .um .um-field {
    padding: 0 0 22px !important;
}

/* チェックボックス（ログイン状態を保存する など） */
.ct-body .um .um-field-checkbox-state,
.ct-body .um .um-field-radio-state {
    color: #000 !important;
}

.ct-body .um .um-field-checkbox.active .um-field-checkbox-state i,
.ct-body .um .um-field-radio.active .um-field-radio-state i {
    color: #000 !important;
}

.ct-body .um .um-field-checkbox-option,
.ct-body .um .um-field-radio-option {
    color: #333 !important;
    font-size: 14px !important;
}

/* ボタン */
.ct-body .um input[type=submit].um-button,
.ct-body .um a.um-button,
.ct-body .um .um-button {
    box-sizing: border-box !important;
    height: auto !important;
    min-height: 52px !important;
    padding: 14px 20px !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    background: #000 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    transition: opacity .2s !important;
}

.ct-body .um input[type=submit].um-button:hover,
.ct-body .um a.um-button:hover,
.ct-body .um .um-button:hover {
    background: #000 !important;
    color: #fff !important;
    opacity: .7 !important;
}

/* 主ボタン（ログイン / 登録する）は黄色。もう片方（um-alt）は白地に黒枠 */
.ct-body .um .um-button:not(.um-alt):not(.um-button-social) {
    border-color: var(--um-key) !important;
    background: var(--um-key) !important;
    color: #000 !important;
}

.ct-body .um .um-button:not(.um-alt):not(.um-button-social):hover {
    background: var(--um-key) !important;
    color: #000 !important;
}

.ct-body .um input[type=submit].um-button.um-alt,
.ct-body .um a.um-button.um-alt,
.ct-body .um .um-button.um-alt {
    border-color: #000 !important;
    background: #fff !important;
    color: #000 !important;
}

.ct-body .um .um-button.um-alt:hover {
    background: #fff !important;
    color: #000 !important;
}

.ct-body .um .um-col-alt {
    margin-top: 4px !important;
}

.ct-body .um .um-col-alt-b {
    margin-top: 18px !important;
    text-align: center !important;
}

.ct-body .um .um-col-alt-b a,
.ct-body .um .um-link-alt,
.ct-body .um a.um-link-alt {
    color: #000 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

.ct-body .um .um-col-alt-b a:hover {
    opacity: .6 !important;
}

/* エラー・お知らせ */
.ct-body .um .um-field-error {
    margin-top: 8px !important;
    padding: 8px 12px !important;
    border-radius: 4px !important;
    background: #fdecea !important;
    color: #b3261e !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.ct-body .um .um-field-error .um-field-arrow {
    display: none !important;
}

.ct-body .um .um-notice,
.ct-body .um .um-err,
.ct-body .um .um-postmessage {
    border-radius: 4px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

.ct-body .um .um-field-block {
    font-size: 14px !important;
}

/* マイページ（プロフィール） */
.ct-body .um-profile.um {
    max-width: 100% !important;
}

.ct-body .um .um-profile-body {
    font-size: 15px !important;
}

.ct-body .um .um-profile-nav {
    border-bottom: 2px solid #000 !important;
    background: #fff !important;
}

.ct-body .um .um-profile-nav-item a {
    color: #000 !important;
    font-weight: 800 !important;
}

.ct-body .um .um-profile-nav-item.active a,
.ct-body .um .um-profile-nav-item a:hover {
    background: var(--um-key) !important;
    color: #000 !important;
}

.ct-body .um .um-name a {
    color: #000 !important;
    font-weight: 800 !important;
}

.ct-body .um .um-profile-edit-a,
.ct-body .um .um-profile-save {
    border-radius: 4px !important;
}

/* アカウント設定 */
.ct-body .um-account.um {
    max-width: 100% !important;
}

.ct-body .um .um-account-side li a {
    color: #000 !important;
    font-weight: 800 !important;
}

.ct-body .um .um-account-side li a.current,
.ct-body .um .um-account-side li a.current:hover,
.ct-body .um .um-account-side li a:hover {
    background: var(--um-key) !important;
    color: #000 !important;
}

.ct-body .um .um-account-side li a span.um-account-icontip,
.ct-body .um .um-account-side li a span.um-account-arrow {
    color: inherit !important;
}

.ct-body .um .um-account-tab h2 {
    font-size: 20px !important;
    font-weight: 800 !important;
}

/* SP */
@media screen and (max-width: 639px) {
    .ct-body .um .um-form input[type=text],
    .ct-body .um .um-form input[type=tel],
    .ct-body .um .um-form input[type=password],
    .ct-body .um .um-form input[type=email],
    .ct-body .um .um-form input[type=url],
    .ct-body .um .um-form select {
        height: 46px !important;
    }
}

/* リンクや「＋」のブルーを、サイトの色（黒・黄）に */
.ct-body .um-profile-note a,
.ct-body .um-profile-body a:not(.um-button):not(.ct-card__link) {
    color: #000 !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

.ct-body .um-cover-add,
.ct-body .um-cover-add i {
    color: #000 !important;
}

/* 無料会員登録ページ: 会員のメリット */
.ct-body .ct-benefit {
    margin: 0 0 36px !important;
}

.ct-body .ct-benefit__lead {
    margin: 0 0 20px !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
}

.ct-body .ct-benefit__list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.ct-body .ct-benefit__item {
    display: grid !important;
    grid-template-columns: 48px 1fr !important;
    column-gap: 14px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 16px 18px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: var(--ct-shadow-sm) !important;
}

/* アイコン（黄色い丸）。左に1つ、タイトルと説明の2行ぶんの高さ */
.ct-body .ct-benefit__item::before {
    content: "" !important;
    display: block !important;
    grid-row: 1 / 3;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5l2.6 5.4 5.9.8-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.8z'/%3E%3C/svg%3E") center / 24px 24px no-repeat, #FFE08A;
}

.ct-body .ct-benefit__item:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6.5h11M9 12h11M9 17.5h11'/%3E%3Cpath d='M4 6.5l1 1 2-2M4 12l1 1 2-2M4 17.5l1 1 2-2'/%3E%3C/svg%3E"), none;
    background-color: #FFE08A;
}

.ct-body .ct-benefit__item:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"), none;
    background-color: #FFE08A;
}

.ct-body .ct-benefit__item:nth-child(4)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16.5V11a6 6 0 0112 0v5.5l1.5 1.5h-15z'/%3E%3Cpath d='M10 20.5a2.2 2.2 0 004 0'/%3E%3C/svg%3E"), none;
    background-color: #FFE08A;
}

.ct-body .ct-benefit__title {
    margin: 0 0 4px !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
}

.ct-body .ct-benefit__text {
    margin: 0 !important;
    color: #333 !important;
    font-size: 13px !important;
    line-height: 1.75 !important;
}

.ct-body .ct-benefit__note {
    margin: 14px 0 0 !important;
    color: #666 !important;
    font-size: 12px !important;
    line-height: 1.7 !important;
}

@media screen and (max-width: 639px) {
    .ct-body .ct-benefit__list {
        grid-template-columns: 1fr !important;
    }
}

/* カード右上の ☆（押すとお気に入りに追加。マイページに保存） */
.ct-star {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 3;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94) no-repeat center / 20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.7 6.1 20.8l1.2-6.5L2.5 9.7l6.6-.9z'/%3E%3C/svg%3E");
    box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
    cursor: pointer;
    transition: transform .15s;
}

.ct-star:hover {
    transform: scale(1.1);
}

.ct-star:focus-visible {
    outline: 3px solid #FABE00;
    outline-offset: 2px;
}

.ct-star.is-on {
    background-color: #fff;
    box-shadow: 0 0 0 2px #FABE00, 0 1px 4px rgba(0, 0, 0, .25);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FABE00' stroke='%23121212' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.7 6.1 20.8l1.2-6.5L2.5 9.7l6.6-.9z'/%3E%3C/svg%3E");
}

/* お気に入りボタン（記事・企業情報ページ） */
.ct-article__fav {
    margin: 14px 0 0;
}

.ct-fav {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border: 2px solid #000;
    border-radius: 4px;
    background: #fff;
    color: #000;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
}

.ct-fav:hover {
    opacity: .7;
}

.ct-fav__icon {
    width: 18px;
    height: 18px;
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.7 6.1 20.8l1.2-6.5L2.5 9.7l6.6-.9z'/%3E%3C/svg%3E");
}

.ct-fav.is-on {
    border-color: #121212;
    background: #fff;
}

.ct-fav.is-on .ct-fav__icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FABE00' stroke='%23121212' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.7 6.1 20.8l1.2-6.5L2.5 9.7l6.6-.9z'/%3E%3C/svg%3E");
}

.ct-fav:disabled {
    opacity: .5;
    cursor: wait;
}

/* マイページ「お気に入り」タブ */
.ct-favlist {
    padding: 24px 0 8px;
}

.ct-favlist__empty {
    font-size: 14px;
    line-height: 1.9;
    color: #333;
}

.ct-favlist__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 14px;
}

.ct-favlist__links a {
    font-size: 14px;
    font-weight: 800;
    color: #000;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ct-grid--fav {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

@media screen and (min-width: 640px) {
    .ct-grid--fav {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* マイページ「お気に入り」の絞り込み */
.ct-body .ct-favlist [hidden] {
    display: none !important;
}

.ct-body .ct-favlist__chips {
    margin: 0 0 12px !important;
}

.ct-body .ct-favlist__chips .ct-chip {
    font-family: inherit;
    cursor: pointer;
}

.ct-body .ct-favlist__chips--term {
    padding-top: 12px !important;
    border-top: 1px dashed #ccc;
}

.ct-body .ct-favlist__chips--term .ct-chip.is-active::after {
    content: '×';
    display: inline-block;
    margin-left: 8px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #000;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    vertical-align: 1px;
}

.ct-body .ct-favlist__count {
    margin: 0 0 14px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

.ct-body .um .ct-card__link,
.ct-body .um .ct-card__title {
    color: #000 !important;
    text-decoration: none !important;
}

/* マイページ本体の幅（UMの設定は600px）をなくして、記事の幅いっぱいに使う */
.ct-body .um .um-profile-body,
.ct-body .um.um-profile .um-profile-body {
    max-width: none !important;
    width: 100% !important;
}

.ct-body .ct-favlist__search {
    margin: 0 0 14px !important;
}

.ct-body .ct-favlist__q {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 48px !important;
    padding: 0 16px !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    background: #fff !important;
    font-family: inherit !important;
    font-size: 16px !important;
}

.ct-body .ct-favlist__q:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px #FABE00 !important;
}

/* プルダウン（学校の種別・職種など）も、入力欄と同じ黒の枠に */
.ct-body .um .select2-container .select2-selection,
.ct-body .um .select2-container--default .select2-selection--single,
.ct-body .um .select2-container--default .select2-selection--multiple {
    min-height: 48px !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    background: #fff !important;
}

.ct-body .um .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 44px !important;
    padding-left: 14px !important;
    color: #000 !important;
}

.ct-body .um .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
}

.ct-body .um .select2-container--default .select2-selection--multiple .select2-selection__choice {
    border-radius: 4px !important;
    border: 1px solid #000 !important;
    background: #FABE00 !important;
    color: #000 !important;
}

.ct-body .um .um-form .select2.select2-container .select2-selection.select2-selection--single,
.ct-body .um .um-form .select2.select2-container .select2-selection.select2-selection--multiple {
    min-height: 48px !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    background: #fff !important;
}

.ct-body .um .um-form .select2.select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 44px !important;
    padding-left: 14px !important;
    color: #000 !important;
}

.ct-body .um .um-form .select2.select2-container .select2-selection--single .select2-selection__arrow,
.ct-body .um .um-form .select2.select2-container .select2-selection--single .select2-selection__clear {
    height: 44px !important;
}

/* 会員ページは幅を少し広げる（UM は枠が800px以下だとスマホ表示のレイアウトに切り替わり、タブが文字なしのアイコンだけになるため） */
.ct-wrap--narrow:has(.um) {
    max-width: 1040px;
}

/* アカウント設定ページ: 上のタブとの間隔。「プロフィールを表示」は使わない（プロフィールはタブから開く） */
.ct-body .ct-mynav {
    margin-bottom: 28px !important;
    padding-bottom: 28px !important;
}

.ct-body .um-account-meta .um-account-profile-link {
    display: none !important;
}

.ct-body .ct-mynav .um-profile-nav-item a {
    text-decoration: none !important;
}

/* ---- アカウント設定: サイトのトンマナ（黒・黄・太字・角ばった形）にそろえる ---- */
.ct-body .um .um-account-side li {
    margin-bottom: 8px !important;
    background: transparent !important;
}

.ct-body .um .um-account-side li a {
    background: #fff !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    font-style: normal !important;
}

.ct-body .um .um-account-side li a span.um-account-title,
.ct-body .um .um-account-side li a span.um-account-icon,
.ct-body .um .um-account-side li a span.um-account-icon i,
.ct-body .um .um-account-side li a:hover span.um-account-icon,
.ct-body .um .um-account-side li a.current span.um-account-icon,
.ct-body .um .um-account-side li a.current:hover span.um-account-icon {
    color: #000 !important;
    font-style: normal !important;
    border-color: #000 !important;
    background: transparent !important;
}

.ct-body .um .um-account-side li a.current,
.ct-body .um .um-account-side li a.current:hover {
    background: var(--um-key) !important;
}

.ct-body .um .um-account-name a,
.ct-body .um .um-account-name {
    color: #000 !important;
    font-weight: 800 !important;
}

.ct-body .um .um-account-main div.um-account-heading {
    color: #000 !important;
    font-weight: 800 !important;
    font-size: 20px !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 10px !important;
    margin-bottom: 20px !important;
}

.ct-body .um .um-account-main div.um-account-heading i {
    color: #000 !important;
}

.ct-body .um .um-account-main p,
.ct-body .um .um-account-main .um-field-radio-option,
.ct-body .um .um-account-main .um-field-checkbox-option,
.ct-body .um .um-account-main .um-field-radio-state i {
    color: #000 !important;
}

.ct-body .um .um-account-main .um-field-label label {
    font-weight: 800 !important;
}

/* データのリクエストボタン（既定の青をやめる） */
.ct-body .um .um-request-button {
    display: inline-block !important;
    background: #fff !important;
    color: #000 !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    padding: 10px 18px !important;
}

.ct-body .um .um-request-button:hover {
    background: var(--um-key) !important;
}

.ct-body .um .ct-account-note {
    margin: 10px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
}

.ct-body .um .ct-account-note a {
    color: #000 !important;
    font-weight: 800 !important;
    text-decoration: underline !important;
}

/* =====================================================================
 * フォームの見やすさ改善（参考: suke-dachi.jp/contact/）
 * 入力枠は細い灰色の線、選ぶものはボタン形式、説明は入力欄の下に出す。
 * ===================================================================== */
.ct-body .um .um-form input[type=text],
.ct-body .um .um-form input[type=tel],
.ct-body .um .um-form input[type=password],
.ct-body .um .um-form input[type=email],
.ct-body .um .um-form input[type=url],
.ct-body .um .um-form input[type=number],
.ct-body .um .um-form input[type=search],
.ct-body .um .um-form textarea,
.ct-body .um .um-form select,
.ct-body .um-profile .um-profile-meta textarea {
    height: 52px !important;
    border: 1px solid #c8c8c8 !important;
    background: #fff !important;
}

.ct-body .um .um-form textarea {
    height: auto !important;
    min-height: 110px !important;
}

.ct-body .um .um-form input:hover,
.ct-body .um .um-form textarea:hover {
    border-color: #888 !important;
}

.ct-body .um .um-form input:focus,
.ct-body .um .um-form textarea:focus {
    border-color: #000 !important;
    box-shadow: 0 0 0 3px rgba(250, 190, 0, .55) !important;
}

/* 選択肢（ラジオ・チェックボックス）: 1つずつ枠のあるボタンにして、選んだものは黄色 */
.ct-body .um .um-field-area .um-clear {
    display: none !important;
}

.ct-body .um .um-field-area {
    display: block;
}

.ct-body .um label.um-field-radio,
.ct-body .um label.um-field-checkbox {
    display: inline-flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    float: none !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 10px 10px 0 !important;
    padding: 12px 18px !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 4px !important;
    background: #fff !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
    transition: background .15s, border-color .15s !important;
}

.ct-body .um label.um-field-radio:hover,
.ct-body .um label.um-field-checkbox:hover {
    border-color: #000 !important;
}

.ct-body .um label.um-field-radio.active,
.ct-body .um label.um-field-checkbox.active {
    border-color: #000 !important;
    background: var(--um-key) !important;
}

.ct-body .um label.um-field-radio .um-field-radio-state,
.ct-body .um label.um-field-checkbox .um-field-checkbox-state {
    display: none !important;
}

.ct-body .um label.um-field-radio .um-field-radio-option,
.ct-body .um label.um-field-checkbox .um-field-checkbox-option {
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

/* 説明文（js/member.js が「?」の中身をここに出す） */
.ct-body .um .ct-help {
    margin: 6px 0 0 !important;
    color: #666 !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
}

/* 見出し（学校のこと など）: 左に黄色の線 */
.ct-body .um .um-field-divider {
    margin: 34px 0 22px !important;
    padding: 0 !important;
    border-bottom: 0 !important;
}

.ct-body .um .um-field-divider .um-field-divider-text {
    position: static !important;
    top: auto !important;
    text-align: left !important;
    line-height: 1.3 !important;
}

.ct-body .um .um-field-divider .um-field-divider-text span {
    display: inline-block !important;
    padding: 2px 0 2px 12px !important;
    border-left: 5px solid var(--um-key) !important;
    background: transparent !important;
    color: #000 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

.ct-body .um label.um-field-radio input,
.ct-body .um label.um-field-checkbox input {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    opacity: 0 !important;
}

/* select2（興味のある業種など） */
.ct-body .um .um-form .select2.select2-container .select2-selection.select2-selection--single,
.ct-body .um .um-form .select2.select2-container .select2-selection.select2-selection--multiple {
    min-height: 52px !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 4px !important;
    padding: 6px 10px !important;
}

.ct-body .um .um-form .select2-container--open .select2-selection,
.ct-body .um .um-form .select2-container--focus .select2-selection {
    border-color: #000 !important;
    box-shadow: 0 0 0 3px rgba(250, 190, 0, .55) !important;
}

.ct-body .um .select2-selection--multiple .select2-selection__choice {
    margin: 4px 6px 4px 0 !important;
    padding: 6px 12px !important;
    border: 1px solid #000 !important;
    border-radius: 4px !important;
    background: var(--um-key) !important;
    color: #000 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

.ct-body .um .select2-selection--multiple .select2-selection__choice__remove {
    margin-right: 6px !important;
    color: #000 !important;
    font-weight: 800 !important;
}

.ct-body .um .select2-selection--multiple .select2-search__field {
    margin-top: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

body .select2-dropdown {
    border: 1px solid #000 !important;
    border-radius: 4px !important;
    overflow: hidden;
}

body .select2-results__option {
    padding: 11px 14px !important;
    color: #000 !important;
    font-size: 15px !important;
}

body .select2-results__option--highlighted,
body .select2-results__option--highlighted[aria-selected] {
    background: #FFF3C4 !important;
    color: #000 !important;
}

body .select2-results__option[aria-selected=true] {
    background: var(--um-key, #FABE00) !important;
    font-weight: 800 !important;
}

body .select2-search--dropdown .select2-search__field {
    height: 44px !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 4px !important;
}

/* マイページ（プロフィール編集）: 項目名を左・入力欄を右に並べる（PC） */
@media screen and (min-width: 861px) {
    .ct-body .um-profile.um .um-field:not(.um-field-divider):not(.um-field-block):not(.um-field-group):not([style*="display: none"]):not([style*="display:none"]) {
        display: grid !important;
        grid-template-columns: 200px minmax(0, 1fr);
        column-gap: 24px;
        align-items: start;
        padding-bottom: 26px !important;
    }

    .ct-body .um-profile.um .um-field:not(.um-field-divider) > .um-field-label {
        grid-column: 1;
        padding-top: 15px;
    }

    .ct-body .um-profile.um .um-field:not(.um-field-divider) > .um-field-area,
    .ct-body .um-profile.um .um-field:not(.um-field-divider) > .um-field-error {
        grid-column: 2;
    }
}

/* 任意の目印（マイページの項目はすべて任意） */
.ct-body .um-profile.um .um-field:not(.um-field-divider) .um-field-label label::after {
    content: "任意";
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 3px;
    background: #eee;
    color: #555;
    font-size: 11px;
    font-weight: 700;
    vertical-align: 1px;
}

/* 選択肢が多い項目（興味のある業種）は少し小さめのボタンにする */
.ct-body .um .um-field-ct_interest label.um-field-checkbox {
    margin: 0 8px 8px 0 !important;
    padding: 8px 14px !important;
}

.ct-body .um .um-field-ct_interest label.um-field-checkbox .um-field-checkbox-option {
    font-size: 14px !important;
}

/* 登録フォーム: メールアドレス・パスワード・同意だけが必須。ニックネームと今の状況は任意 */
.ct-body .um-register.um .um-field-user_email .um-field-label label::after,
.ct-body .um-register.um .um-field-user_password .um-field-label label::after,
.ct-body .um-register.um .um-field-first_name .um-field-label label::after,
.ct-body .um-register.um .um-field-ct_status .um-field-label label::after {
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    vertical-align: 1px;
}

.ct-body .um-register.um .um-field-user_email .um-field-label label::after,
.ct-body .um-register.um .um-field-user_password .um-field-label label::after {
    content: "必須";
    background: #fdecea;
    color: #c62828;
}

.ct-body .um-register.um .um-field-first_name .um-field-label label::after,
.ct-body .um-register.um .um-field-ct_status .um-field-label label::after {
    content: "任意";
    background: #eee;
    color: #555;
}

.ct-body .um-register.um .um-field-ct_agree .um-field-label {
    display: none !important;
}

/* カバー写真なし: ⚙メニューはタブと重複するので出さず、写真まわりの余白を詰める */
.ct-body .um-profile .um-profile-edit {
    display: none !important;
}

.ct-body .um-profile .um-header.no-cover {
    padding-top: 0 !important;
    padding-bottom: 8px !important;
}

.ct-body .um-profile .um-header.no-cover .um-profile-meta {
    padding-top: 8px !important;
}

/* スマホ: カードのサムネイルが小さいので、☆も小さくする */
@media screen and (max-width: 639px) {
    .ct-star {
        top: 5px;
        right: 5px;
        width: 26px;
        height: 26px;
        background-size: 14px;
    }
}

/* マイページ「閲覧履歴」 */
.ct-histlist__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 18px;
}

.ct-histlist__note {
    font-size: 13px;
    line-height: 1.8;
    color: #555;
}

.ct-histlist__clear {
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    color: #000;
    background: #fff;
    border: 2px solid #000;
    border-radius: 999px;
    padding: 7px 18px;
    cursor: pointer;
}

.ct-histlist__clear:hover {
    background: #000;
    color: #fff;
}

.ct-histitem__when {
    margin-top: 6px;
    font-size: 12px;
    color: #666;
}

/* 登録フォームの「プライバシーポリシーに同意する」: ボタンではなく、ふつうのチェックボックス */
.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox,
.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox:hover,
.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox.active {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox .um-field-checkbox-option {
    display: inline-flex !important;
    align-items: center !important;
    color: #000 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox .um-field-checkbox-option::before {
    content: "";
    display: inline-block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    margin-right: 10px;
    border: 2px solid #121212;
    border-radius: 4px;
    background: #fff center / 16px 16px no-repeat;
    box-sizing: border-box;
}

.ct-body .um-register.um .um-field-ct_agree label.um-field-checkbox.active .um-field-checkbox-option::before {
    background-color: var(--um-key, #FABE00);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23121212' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8'/%3E%3C/svg%3E");
}

/* ホワイト企業一覧（/white-kigyo-ichiran/）: 各社の右上の ☆（js/favorites.js が足す）。社名に重ならないよう、右に余白をあける */
.kt-wc li { position: relative; }
.kt-wc li > a,
.kt-wc li > .kt-wc__co { padding-right: 44px; }
.ct-star.ct-star--sm {
    top: 50%;
    right: 6px;
    width: 28px;
    height: 28px;
    background-size: 16px;
    box-shadow: none;
    border: 1px solid #e2e2dc;
    transform: translateY(-50%);
}
.ct-star.ct-star--sm:hover { transform: translateY(-50%) scale(1.12); }
.ct-star.ct-star--sm.is-on { border-color: #FABE00; }

/* マイページ「お気に入り」の、ホワイト企業のカード */
.ct-wfav {
    position: relative;
    box-sizing: border-box;
    height: 100%;
    padding: 16px 56px 14px 16px;
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--ct-shadow, 0 2px 14px rgba(0, 0, 0, .12));
}
.ct-wfav .ct-star { top: 12px; right: 12px; }
.ct-wfav__tag {
    display: inline-block;
    margin-bottom: 6px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #FABE00;
    color: #121212;
    font-size: 11px;
    font-weight: 800;
}
.ct-wfav__name { display: block; color: #121212; font-size: 17px; font-weight: 900; line-height: 1.4; }
.ct-wfav__meta { display: block; margin-top: 4px; color: #666; font-size: 13px; }
.ct-wfav__links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; }
.ct-wfav__links a { color: #121212; font-size: 13px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

/* 企業情報ページ: 「お気に入り企業に追加」と「ホワイト企業リストに追加」の2つのボタンを並べる */
.ct-article__fav--multi {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

/* スマホ: 企業情報ページの2つのボタン（お気に入り企業に追加／ホワイト企業リストに追加）を、1列に収める。文字を小さくし、星の絵も小さく出す */
@media screen and (max-width: 639px) {
    .ct-article__fav--multi { flex-wrap: nowrap; gap: 6px; }
    .ct-article__fav--multi .ct-fav {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: center;
        gap: 0;
        padding: 8px 4px;
        font-size: clamp(9.5px, 2.7vw, 12px);
        white-space: nowrap;
        text-align: center;
    }
    .ct-article__fav--multi .ct-fav:only-child { flex: 0 0 auto; padding: 8px 14px; }
    .ct-article__fav--multi .ct-fav__icon { flex: 0 0 auto; width: 12px; height: 12px; margin-right: 3px; }
}

/* ログインしていない人が ☆ やお気に入りボタンを押したときの、会員登録の案内ポップアップ（js/favorites.js） */
.ct-gate-lock { overflow: hidden; }
.ct-gate {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, .55);
    opacity: 0;
    transition: opacity .2s;
}
.ct-gate.is-open { opacity: 1; }
.ct-gate__box {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    max-width: 420px;
    padding: 30px 24px 22px;
    border: 3px solid #121212;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 0 #121212;
    text-align: center;
    transform: translateY(14px) scale(.98);
    transition: transform .25s cubic-bezier(.22, .8, .3, 1);
}
.ct-gate.is-open .ct-gate__box { transform: none; }
.ct-gate__x {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 34px;
    height: 34px;
    border: 0;
    background: none;
    color: #121212;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.ct-gate__star {
    width: 54px;
    height: 54px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: #FABE00 no-repeat center / 28px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2.2' stroke-linejoin='round'%3E%3Cpath d='M12 2.8l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.7 6.1 20.8l1.2-6.5L2.5 9.7l6.6-.9z'/%3E%3C/svg%3E");
}
.ct-gate__title { margin: 0 0 10px; color: #121212; font-size: 18px; font-weight: 900; line-height: 1.5; }
.ct-gate__text { margin: 0 0 20px; color: #444; font-size: 14px; line-height: 1.8; }
.ct-gate__btn {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 13px 10px;
    border: 2px solid #121212;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.3;
    text-decoration: none;
}
.ct-gate__btn--main { background: #FABE00; color: #121212; box-shadow: 0 3px 0 #121212; }
.ct-gate__btn--sub { margin-top: 10px; background: #fff; color: #121212; font-size: 14px; }
.ct-gate__btn:hover { opacity: .8; }
.ct-gate__later {
    margin-top: 12px;
    padding: 6px 12px;
    border: 0;
    background: none;
    color: #666;
    font-family: inherit;
    font-size: 13px;
    text-decoration: underline;
    cursor: pointer;
}
@media (prefers-reduced-motion: reduce) {
    .ct-gate, .ct-gate__box { transition: none; }
}

/* マイページ: 上のアイコン（写真）と名前を、一旦非表示にする（2026-10-15 指示）。戻すときは、この1ブロックを消す */
.ct-body .um-profile .um-header {
    display: none !important;
}

/* マイページ各タブの上のタイトル（お気に入り記事・お気に入り企業・マイホワイト企業リスト・閲覧履歴）。件数は小さく */
.ct-body .ct-favlist .ct-mytitle {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 18px;
    padding: 4px 0 4px 12px;
    border: 0;
    border-left: 6px solid #FABE00;
    background: none;
    color: #121212;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.4;
}
.ct-body .ct-favlist .ct-mytitle small {
    color: #666;
    font-size: 13px;
    font-weight: 700;
}
@media screen and (max-width: 639px) {
    .ct-body .ct-favlist .ct-mytitle { margin-bottom: 14px; font-size: 19px; }
}

/* マイホワイト企業リスト: 一覧へのリンクはカードの外に1つだけ */
.ct-favlist__more { margin: 24px 0 0; text-align: center; }

/* お気に入りに追加した瞬間のアニメーション（js/favorites.js が .ct-pop を一瞬つける）。星がぽんっと弾み、光の輪と火花が広がる */
.ct-star::before, .ct-star::after,
.ct-fav__icon::before, .ct-fav__icon::after { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none; opacity: 0; }
.ct-fav__icon { position: relative; }
.ct-star.ct-pop::before, .ct-fav.ct-pop .ct-fav__icon::before {
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px #FABE00, 0 0 10px rgba(0, 0, 0, .35);
    animation: ct-pop-ring .6s ease-out;
}
.ct-star.ct-pop::after, .ct-fav.ct-pop .ct-fav__icon::after {
    background:
        radial-gradient(circle, #FABE00 0 2.5px, #fff 3px 4px, transparent 4.5px) 50% 0 / 9px 9px no-repeat,
        radial-gradient(circle, #FABE00 0 2.5px, #fff 3px 4px, transparent 4.5px) 100% 35% / 9px 9px no-repeat,
        radial-gradient(circle, #FABE00 0 2.5px, #fff 3px 4px, transparent 4.5px) 82% 100% / 9px 9px no-repeat,
        radial-gradient(circle, #FABE00 0 2.5px, #fff 3px 4px, transparent 4.5px) 18% 100% / 9px 9px no-repeat,
        radial-gradient(circle, #FABE00 0 2.5px, #fff 3px 4px, transparent 4.5px) 0 35% / 9px 9px no-repeat;
    animation: ct-pop-spark .7s ease-out;
}
.ct-star.ct-pop { animation: ct-pop-star .55s cubic-bezier(.3, 1.6, .5, 1); }
.ct-star.ct-star--sm.ct-pop { animation-name: ct-pop-star-sm; }
.ct-fav.ct-pop { animation: ct-pop-btn .5s cubic-bezier(.3, 1.6, .5, 1); }
.ct-fav.ct-pop .ct-fav__icon { animation: ct-pop-icon .6s cubic-bezier(.3, 1.8, .5, 1); }
@keyframes ct-pop-star { 0% { transform: scale(1); } 30% { transform: scale(.7) rotate(-18deg); } 65% { transform: scale(1.35) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes ct-pop-star-sm { 0% { transform: translateY(-50%) scale(1); } 30% { transform: translateY(-50%) scale(.7) rotate(-18deg); } 65% { transform: translateY(-50%) scale(1.35) rotate(10deg); } 100% { transform: translateY(-50%) scale(1) rotate(0); } }
@keyframes ct-pop-btn { 0% { transform: scale(1); } 35% { transform: scale(.94); } 70% { transform: scale(1.06); } 100% { transform: scale(1); } }
@keyframes ct-pop-icon { 0% { transform: scale(1) rotate(0); } 35% { transform: scale(.6) rotate(-25deg); } 70% { transform: scale(1.5) rotate(15deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes ct-pop-ring { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.3); opacity: 0; } }
@keyframes ct-pop-spark { 0% { transform: scale(.5) rotate(0); opacity: 1; } 100% { transform: scale(2.1) rotate(40deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .ct-star.ct-pop, .ct-fav.ct-pop, .ct-fav.ct-pop .ct-fav__icon, .ct-pop::before, .ct-pop::after,
    .ct-fav.ct-pop .ct-fav__icon::before, .ct-fav.ct-pop .ct-fav__icon::after { animation: none; }
}

/* ホワイト企業一覧: 「企業研究ありだけ表示」と「マイホワイト企業リストだけ表示」のボタンの間をあける（折り返したときも縦にあく） */
.kt-wc .kt-wc__only { margin: 0 10px 8px 0; }
.kt-wc .kt-wc__only--fav { margin-right: 0; }

/* マイページ: お気に入りの並べ替え（検索欄の右） */
.ct-body .ct-favlist__search { display: flex; gap: 8px; }
.ct-body .ct-favlist__search .ct-favlist__q { flex: 1 1 auto; min-width: 0; width: auto !important; }
.ct-body .ct-favlist__sort {
    flex: 0 0 auto;
    box-sizing: border-box;
    height: 48px;
    padding: 0 10px;
    border: 2px solid #000;
    border-radius: 4px;
    background: #fff;
    color: #121212;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}
@media screen and (max-width: 639px) {
    .ct-body .ct-favlist__sort { max-width: 42%; padding: 0 6px; font-size: 12px; }
}

/* 鉄人スコア（/tools/tetsujin-score/）のカード: ☆ は、点数の丸の左どなりに置く */
.tsc__card { position: relative; }
.tsc__card .ct-star.ct-star--score {
    position: absolute;
    top: 16px;
    right: 88px;
    width: 32px;
    height: 32px;
    background-size: 18px;
    transform: none;
    box-shadow: none;
    border: 1px solid #e2e2dc;
}
.tsc__card .ct-star.ct-star--score:hover { transform: scale(1.1); }
.tsc__card .ct-star.ct-star--score.is-on { border-color: #FABE00; }
.tsc__card .tsc__name, .tsc__card .tsc__meta { padding-right: 44px; }

/* 鉄人スコア（企業検索）: 「勤続年数が長い順」「平均年収が高い順」のときに、各社のカードに出す、並べた数字（js/score-sortval.js） */
.tsc__card .tsc__sv {
    display: inline-block;
    margin: 6px 0 0;
    padding: 2px 12px;
    border: 2px solid #1B7FBE;
    border-radius: 999px;
    background: #fff;
    color: #121212;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.6;
}
.tsc__card .tsc__sv b { margin-right: 4px; color: #1B7FBE; font-size: 12px; font-weight: 800; }

.ct-wfav__name a { color: inherit; text-decoration: none; }
.ct-wfav__name a:hover { text-decoration: underline; }
