
.nhcm-list{display:grid;gap:24px;margin:24px 0}.nhcm-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.nhcm-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nhcm-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nhcm-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.nhcm-card-image{display:block;position:relative;aspect-ratio:4/5;background:#f5f5f5;overflow:hidden}.nhcm-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.nhcm-card-body{padding:16px}.nhcm-card-name{margin:0 0 10px;font-size:1.25rem;font-weight:800}
.nhcm-btn,.nhcm-action{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;padding:9px 14px;text-decoration:none!important;font-weight:700;box-sizing:border-box}.nhcm-btn-profile{border:1px solid #222;color:#222;background:#fff}
.nhcm-badges{position:absolute;left:12px;top:12px;display:flex;gap:6px}.nhcm-badge{font-size:.72rem;font-weight:800;padding:5px 8px;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12)}.nhcm-badge-new{background:#111;color:#fff}
.nhcm-no-image{width:100%;height:100%;min-height:280px;display:flex;align-items:center;justify-content:center;background:#eee;color:#999}
.nhcm-profile{max-width:1120px;margin:30px auto;padding:0 18px}.nhcm-profile-header h1{font-size:2rem;margin:0 0 22px}.nhcm-profile-main{display:grid;grid-template-columns:minmax(300px,44%) 1fr;gap:34px;align-items:start}

.nhcm-intro h2,.nhcm-sns h2{font-size:1.25rem;margin:0 0 10px}.nhcm-intro p{line-height:1.9;white-space:normal}.nhcm-profile-table{margin:22px 0}.nhcm-profile-table>div{display:grid;grid-template-columns:145px 1fr;border-bottom:1px solid #e8e8e8;padding:11px 0;gap:15px}.nhcm-profile-table dt{font-weight:700}.nhcm-profile-table dd{margin:0;line-height:1.75}
.nhcm-sns{margin-top:22px}.nhcm-sns a{display:inline-flex;margin:0 7px 7px 0;padding:7px 10px;border:1px solid #ddd;border-radius:7px;text-decoration:none}
.nhcm-profile-description{margin:34px 0;line-height:1.9}.nhcm-profile-actions{display:grid;gap:10px;max-width:520px;margin:36px auto}.nhcm-action{border:1px solid #222;color:#222;background:#fff}.nhcm-action-main{background:#111;color:#fff}.nhcm-empty{grid-column:1/-1;text-align:center;padding:30px}
@media(max-width:900px){.nhcm-cols-4,.nhcm-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.nhcm-list,.nhcm-cols-2,.nhcm-cols-3,.nhcm-cols-4{grid-template-columns:1fr}.nhcm-profile-main{grid-template-columns:1fr;gap:20px}.nhcm-profile-table>div{grid-template-columns:110px 1fr}.nhcm-profile-header h1{font-size:1.7rem}}

.nhcm-ranking{margin:32px 0}.nhcm-ranking-title-wrap{text-align:center;margin-bottom:20px}.nhcm-ranking-title{margin:0;font-size:1.7rem}.nhcm-ranking-period{margin-top:6px;color:#666;font-size:.9rem}
.nhcm-ranking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.nhcm-ranking-card{position:relative;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;overflow:hidden;box-shadow:0 7px 20px rgba(0,0,0,.06)}
.nhcm-rank-badge{position:absolute;z-index:2;left:10px;top:10px;min-width:46px;text-align:center;background:#111;color:#fff;border-radius:999px;padding:6px 9px;font-weight:800;font-size:.85rem}
.nhcm-ranking-image{display:block;aspect-ratio:4/5;background:#f5f5f5}.nhcm-ranking-image img{width:100%;height:100%;object-fit:cover;display:block}.nhcm-ranking-name{padding:13px;text-align:center;font-weight:800}.nhcm-ranking-name a{text-decoration:none;color:inherit}
@media(max-width:760px){.nhcm-ranking-grid{grid-template-columns:1fr}}

.nhcm-price-table-wrap{margin:40px 0}.nhcm-price-main-title{text-align:center;margin-bottom:24px}.nhcm-price-section{margin:24px 0}.nhcm-price-section h3{margin:0 0 10px;font-size:1.2rem}
.nhcm-price-table{border-top:1px solid #e5e5e5}.nhcm-price-row{display:grid;grid-template-columns:minmax(160px,1.4fr) minmax(130px,.8fr);gap:12px;border-bottom:1px solid #e5e5e5;padding:12px 4px;align-items:center}
.nhcm-price-value{text-align:right;font-weight:800}.nhcm-price-value small{display:block;font-weight:400;color:#666;margin-top:2px}.nhcm-price-note{grid-column:1/-1;font-size:.85rem;color:#666}
@media(max-width:560px){.nhcm-price-row{grid-template-columns:1fr auto}.nhcm-price-label{font-size:.92rem}.nhcm-price-value{font-size:.92rem}}

/* v1.5.2 料金表フロント表示 */
.nhcm-price-table-wrap{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:24px;margin:40px 0}
.nhcm-price-main-title{text-align:left;font-size:1.6rem;margin:0 0 22px;padding-bottom:12px;border-bottom:2px solid #111}
.nhcm-price-section{margin:0 0 28px}.nhcm-price-section:last-child{margin-bottom:0}
.nhcm-price-section h3{font-size:1.08rem;margin:0;padding:10px 12px;background:#f5f5f5;border-radius:8px 8px 0 0}
.nhcm-price-table{border:1px solid #ececec;border-top:0}
.nhcm-price-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(150px,.7fr);gap:10px;padding:12px;border-bottom:1px solid #ececec}
.nhcm-price-row:last-child{border-bottom:0}
.nhcm-price-label{font-weight:600}
.nhcm-price-value{font-size:1rem}
.nhcm-price-note{padding-top:2px;font-size:.82rem;color:#666}
@media(max-width:560px){
  .nhcm-price-table-wrap{padding:16px}
  .nhcm-price-row{grid-template-columns:1fr}
  .nhcm-price-value{text-align:left}
}

.nhcm-profile-contact-actions{display:flex;flex-direction:column;gap:24px;margin:42px 0 20px}
.nhcm-contact-block{border-top:1px solid #e8e8e8;padding-top:22px}
.nhcm-contact-block h2{margin:0 0 14px;font-size:1.35rem}
.nhcm-contact-button{display:flex;align-items:center;justify-content:center;min-height:52px;width:100%;max-width:520px;border-radius:10px;padding:10px 18px;text-decoration:none!important;font-weight:800;background:#111;color:#fff}
.nhcm-contact-line .nhcm-contact-button{background:#06c755}
.nhcm-contact-call .nhcm-contact-button{background:#fff;color:#111;border:1px solid #111}

.nhcm-contact-banner{display:block;width:100%;max-width:720px;text-decoration:none!important}
.nhcm-contact-banner img{display:block;width:100%;height:auto;border-radius:10px}



/* v1.5.30 実際のプロフィール下部バナー画像を直接指定 */
.nhcm-profile-contact-actions .nhcm-contact-block {
    text-align: center !important;
}

.nhcm-profile-contact-actions .nhcm-contact-banner {
    display: inline-block !important;
    width: 250px !important;
    max-width: 100% !important;
    margin: 10px auto !important;
    text-align: center !important;
}

.nhcm-profile-contact-actions .nhcm-contact-banner img {
    display: block !important;
    width: 250px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
}

/* バナー未設定時の通常ボタンも中央揃え */
.nhcm-profile-contact-actions .nhcm-contact-button {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* v1.5.31 予約・LINE・5分間通話エリアの外枠を削除 */
.nhcm-profile-contact-actions .nhcm-contact-block,
.nhcm-contact-block.nhcm-contact-reservation,
.nhcm-contact-block.nhcm-contact-line,
.nhcm-contact-block.nhcm-contact-call {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    outline: none !important;
}

/* 区切り線が疑似要素で設定されている場合も削除 */
.nhcm-profile-contact-actions .nhcm-contact-block::before,
.nhcm-profile-contact-actions .nhcm-contact-block::after {
    border: none !important;
    box-shadow: none !important;
    background: none !important;
}

/* v1.5.44 動的バッジ */
.nhcm-badges{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}
.nhcm-badges .nhcm-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:700;
    line-height:1.2;
}


/* v1.5.58 プロフィール画像スライドショー */
.nhcm-profile-media{
    width:100%;
    min-width:0;
}
.nhcm-profile-slider{
    position:relative;
    width:100%;
    aspect-ratio:4/5;
    background:#f3f3f3;
    border-radius:12px;
    overflow:hidden;
}
.nhcm-profile-slides{
    position:relative;
    width:100%;
    height:100%;
}
.nhcm-profile-slide{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    padding:0;
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease;
    background:#f3f3f3;
    box-sizing:border-box;
}
.nhcm-profile-slide.is-active{
    opacity:1;
    visibility:visible;
    z-index:1;
}
.nhcm-profile-slide .nhcm-profile-slide-image{
    display:block;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    margin:auto !important;
}
.nhcm-slider-arrow{
    position:absolute;
    top:50%;
    z-index:4;
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.88);
    color:#222;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    transform:translateY(-50%);
    box-shadow:0 2px 10px rgba(0,0,0,.16);
}
.nhcm-slider-prev{left:10px}
.nhcm-slider-next{right:10px}
.nhcm-slider-dots{
    position:absolute;
    left:50%;
    bottom:10px;
    z-index:4;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    transform:translateX(-50%);
}
.nhcm-slider-dot{
    width:8px;
    height:8px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#b8b8b8;
    cursor:pointer;
}
.nhcm-slider-dot.is-active{
    background:#222;
}
.nhcm-profile-slider-empty{
    display:flex;
    align-items:center;
    justify-content:center;
}
.nhcm-profile-slider-empty .nhcm-no-image{
    min-height:0;
    height:100%;
}
@media(max-width:680px){
    .nhcm-profile-slider{
        max-width:520px;
        margin:0 auto;
    }
    .nhcm-slider-arrow{
        width:34px;
        height:34px;
    }
}
@media(prefers-reduced-motion:reduce){
    .nhcm-profile-slide{
        transition:none;
    }
}


/* v1.5.60 プロフィール画像スライドショー背景 */
.nhcm-profile-slider,
.nhcm-profile-slides,
.nhcm-profile-slide,
.nhcm-profile-slider-empty{
    background:#fff !important;
}

/* v1.5.63 プロフィールページのバッジ位置修正 */
.nhcm-profile-header{
    position:relative;
}
.nhcm-profile-header h1{
    margin-bottom:8px !important;
}
.nhcm-profile-badges{
    position:static !important;
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:6px !important;
    margin:0 0 10px !important;
}
.nhcm-profile-badge{
    position:static !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:5px 9px !important;
    border-radius:999px !important;
    font-size:.72rem !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    box-shadow:none !important;
}

/* v1.5.65 キャスト一覧のメイン画像表示をプロフィールと統一 */
.nhcm-card-image{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    overflow:hidden !important;
}
.nhcm-card-image img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    margin:auto !important;
}
.nhcm-card-image .nhcm-no-image{
    background:#fff !important;
}


/* v1.5.67 キャスト一覧：画像・名前・職業 */
.nhcm-card-image{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#fff !important;
    overflow:hidden !important;
}
.nhcm-card-image > img.wp-post-image,
.nhcm-card-image > img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
    object-position:50% 50% !important;
    margin:auto !important;
    align-self:center !important;
}
.nhcm-card-name{
    width:100% !important;
    margin:10px 0 3px !important;
    text-align:center !important;
}
.nhcm-card-occupation{
    width:100% !important;
    margin:0 0 8px !important;
    text-align:center !important;
    font-size:.82rem !important;
    line-height:1.5 !important;
}


/* v1.5.68 キャスト一覧：人物の見た目位置を上下中央へ補正 */
.nhcm-card-image > img.wp-post-image,
.nhcm-card-image > img{
    transform:translateY(6%) !important;
    transform-origin:center center !important;
}

/* v1.5.69 キャスト一覧プロフィールボタン */
.nhcm-card .nhcm-btn-profile{
 display:flex!important;align-items:center!important;justify-content:center!important;
 width:100%!important;min-height:42px!important;padding:9px 14px!important;
 border-radius:8px!important;text-align:center!important;font-weight:700!important;
 text-decoration:none!important;box-sizing:border-box!important;
 transition:filter .18s ease,transform .18s ease!important;
}
.nhcm-card .nhcm-btn-profile:hover{filter:brightness(.96)!important;transform:translateY(-1px)}


/* v1.5.70 添付サイトCSSのCTA配色に統一
   通常: #ff6b9c / 白文字
   hover・focus・active: #ff4f8b / 白文字 */
.nhcm-card .nhcm-btn-profile,
.nhcm-card .nhcm-btn-profile:link,
.nhcm-card .nhcm-btn-profile:visited{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-height:42px !important;
    padding:10px 30px !important;
    background:#ff6b9c !important;
    color:#fff !important;
    border:0 !important;
    border-radius:30px !important;
    font-size:14px !important;
    font-weight:700 !important;
    line-height:1.4 !important;
    text-align:center !important;
    text-decoration:none !important;
    box-sizing:border-box !important;
    transition:background-color .18s ease, transform .12s ease !important;
}

.nhcm-card .nhcm-btn-profile:hover,
.nhcm-card .nhcm-btn-profile:focus{
    background:#ff4f8b !important;
    color:#fff !important;
    text-decoration:none !important;
}

.nhcm-card .nhcm-btn-profile:active{
    background:#ff4f8b !important;
    color:#fff !important;
    transform:translateY(1px) !important;
}


/* v1.5.77 キャストプロフィール SNS名 */
.nhcm-profile .nhcm-sns-name,
.nhcm-profile .nhcm-sns strong,
.nhcm-profile .nhcm-profile-sns strong{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:74px !important;
    padding:5px 10px !important;
    margin-right:8px !important;
    border-radius:6px !important;
    background:#f3f3f3 !important;
    color:#333 !important;
    font-weight:700 !important;
    line-height:1.3 !important;
    box-sizing:border-box !important;
}

/* v1.5.78 SNS名カラー設定を管理画面から反映 */
.nhcm-profile .nhcm-sns-name,
.nhcm-profile .nhcm-sns strong,
.nhcm-profile .nhcm-profile-sns strong{
    background:var(--nhcm-sns-name-bg,#f3f3f3) !important;
    color:var(--nhcm-sns-name-color,#333333) !important;
}

/* v1.5.79 SNSごとの個別カラー */
.nhcm-profile .nhcm-sns-name.nhcm-sns-instagram{background:var(--nhcm-sns-instagram-bg,#E4405F)!important;color:var(--nhcm-sns-instagram-color,#fff)!important}
.nhcm-profile .nhcm-sns-name.nhcm-sns-instagram_personal{background:var(--nhcm-sns-instagram_personal-bg,#E4405F)!important;color:var(--nhcm-sns-instagram_personal-color,#fff)!important}
.nhcm-profile .nhcm-sns-name.nhcm-sns-x{background:var(--nhcm-sns-x-bg,#000)!important;color:var(--nhcm-sns-x-color,#fff)!important}
.nhcm-profile .nhcm-sns-name.nhcm-sns-tiktok{background:var(--nhcm-sns-tiktok-bg,#000)!important;color:var(--nhcm-sns-tiktok-color,#fff)!important}

/* v1.5.80 LINE個別カラー + SNS表示 */
.nhcm-profile .nhcm-sns-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.nhcm-profile .nhcm-sns-item{
    display:flex;
    align-items:center;
    gap:10px;
}
.nhcm-profile .nhcm-sns-name{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:118px !important;
    padding:6px 10px !important;
    border-radius:6px !important;
    font-weight:700 !important;
    line-height:1.3 !important;
    box-sizing:border-box !important;
}
.nhcm-profile .nhcm-sns-name.nhcm-sns-line{
    background:var(--nhcm-sns-line-bg,#06C755) !important;
    color:var(--nhcm-sns-line-color,#fff) !important;
}

/* v1.5.81 SNS名ラベルをSNSアイコンへ変更 */
.nhcm-profile .nhcm-sns-list{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:10px !important;
}
.nhcm-profile .nhcm-sns-item{
    display:block !important;
}
.nhcm-profile .nhcm-sns-icon{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:42px !important;
    height:42px !important;
    padding:0 !important;
    border-radius:50% !important;
    text-decoration:none !important;
    transition:opacity .18s ease,transform .12s ease !important;
}
.nhcm-profile .nhcm-sns-icon svg{
    width:23px !important;
    height:23px !important;
    display:block !important;
}
.nhcm-profile .nhcm-sns-icon-instagram,
.nhcm-profile .nhcm-sns-icon-instagram_personal{
    background:#E4405F !important;
    color:#fff !important;
}
.nhcm-profile .nhcm-sns-icon-x{
    background:#000 !important;
    color:#fff !important;
}
.nhcm-profile .nhcm-sns-icon-tiktok{
    background:#000 !important;
    color:#fff !important;
}
.nhcm-profile .nhcm-sns-icon-line{
    background:#06C755 !important;
    color:#fff !important;
}
.nhcm-profile .nhcm-sns-icon:hover{
    opacity:.82 !important;
    transform:translateY(-1px) !important;
}
.nhcm-profile .nhcm-sns-icon:active{
    transform:translateY(1px) !important;
}

/* v1.5.82 SNSアイコン + SNS名 */
.nhcm-profile .nhcm-sns-icon{
    width:auto !important;
    min-width:92px !important;
    height:42px !important;
    padding:0 14px !important;
    border-radius:21px !important;
    gap:7px !important;
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1 !important;
    white-space:nowrap !important;
}
.nhcm-profile .nhcm-sns-icon-mark{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
}
.nhcm-profile .nhcm-sns-icon-mark svg{
    width:20px !important;
    height:20px !important;
}
.nhcm-profile .nhcm-sns-icon-text{
    display:inline-block !important;
    color:inherit !important;
}

/* v1.5.85 キャンセル料金 注意書き */
.nhcm-price-section-notice{margin-top:10px;padding:10px 12px;font-size:13px;line-height:1.7;background:#f7f7f7;border-radius:6px}


/* v1.5.86 料金表：各セル（料金行）の上枠を表示 */
.nhcm-price-table .nhcm-price-row{
    border-top:1px solid #ececec !important;
    border-bottom:0 !important;
}

/* 行同士の二重線を避けつつ、最初の行にも上枠を表示 */
.nhcm-price-table .nhcm-price-row + .nhcm-price-row{
    border-top:1px solid #ececec !important;
}

/* 最終行の下側だけ外枠に任せる */
.nhcm-price-table .nhcm-price-row:last-child{
    border-bottom:0 !important;
}




/* v1.5.90 料金プラン全体の外枠を削除 */
.nhcm-price-table-wrap{
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
}

/* wp-block-heading はテーマ側に st-dash-design の装飾を任せる */
.nhcm-price-table-wrap > .nhcm-price-main-title{
    border-left:0 !important;
    border-right:0 !important;
}





/* プロフィール親レイアウトの横幅・gridの影響を料金表へ持ち込まない */


@media(max-width:800px){
    
}


/* v1.5.96 プロフィール料金表を料金ページと同じ entry-content 文脈で表示 */
.nhcm-profile-price-entry-content{
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}


/* v1.5.97 料金プラン見出しを太字化 */
.nhcm-price-table-wrap > .nhcm-price-main-title,
.nhcm-price-table-wrap > .nhcm-price-main-title .st-dash-design{
    font-weight:700 !important;
}


/* v1.5.98 キャストプロフィールを通常ページと同等のコンテンツ幅へ */
.nhcm-profile-wrap{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}

/* プロフィール内部も親ページの幅をそのまま使用 */
.nhcm-profile-main,
.nhcm-profile-shell{
    max-width:none !important;
    box-sizing:border-box !important;
}


/* v1.5.99 [not_heaven_price_table] をプロフィール料金表デザインへ統一 */
.nhcm-profile-price-design{
    width:100% !important;
    max-width:none !important;
    margin:40px 0 !important;
    padding:24px !important;
    background:#fff !important;
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    box-sizing:border-box !important;
}

.nhcm-profile-price-design > .nhcm-price-main-title{
    display:block !important;
    width:100% !important;
    margin:0 0 22px !important;
    padding:0 0 12px !important;
    text-align:left !important;
    font-size:1.6rem !important;
    font-weight:700 !important;
    line-height:1.4 !important;
    box-sizing:border-box !important;
}

.nhcm-profile-price-design > .nhcm-price-main-title .st-dash-design{
    font-weight:700 !important;
}

.nhcm-profile-price-design .nhcm-price-section{
    width:100% !important;
    margin:0 0 28px !important;
    box-sizing:border-box !important;
}
.nhcm-profile-price-design .nhcm-price-section:last-child{
    margin-bottom:0 !important;
}

.nhcm-profile-price-design .nhcm-price-section > h3{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:10px 12px !important;
    background:#f5f5f5 !important;
    border-radius:8px 8px 0 0 !important;
    font-size:1.08rem !important;
    font-weight:700 !important;
    line-height:1.4 !important;
    box-sizing:border-box !important;
}

.nhcm-profile-price-design .nhcm-price-table{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid #ececec !important;
    border-top:0 !important;
    box-sizing:border-box !important;
}

.nhcm-profile-price-design .nhcm-price-row{
    display:grid !important;
    grid-template-columns:minmax(150px,1.3fr) minmax(150px,.7fr) !important;
    gap:10px !important;
    align-items:center !important;
    width:100% !important;
    margin:0 !important;
    padding:12px !important;
    border-top:1px solid #ececec !important;
    border-bottom:0 !important;
    box-sizing:border-box !important;
}

.nhcm-profile-price-design .nhcm-price-label{
    font-weight:600 !important;
}

.nhcm-profile-price-design .nhcm-price-value{
    text-align:right !important;
    font-size:1rem !important;
    font-weight:800 !important;
}

.nhcm-profile-price-design .nhcm-price-value small{
    display:block !important;
    margin-top:2px !important;
    color:#666 !important;
    font-weight:400 !important;
}

.nhcm-profile-price-design .nhcm-price-note{
    grid-column:1/-1 !important;
    padding-top:2px !important;
    color:#666 !important;
    font-size:.82rem !important;
    line-height:1.7 !important;
}

.nhcm-profile-price-design .nhcm-price-section-notice{
    margin-top:10px !important;
    padding:10px 12px !important;
    background:#f7f7f7 !important;
    border-radius:6px !important;
    font-size:13px !important;
    line-height:1.7 !important;
}

@media(max-width:560px){
    .nhcm-profile-price-design{
        padding:16px !important;
    }
    .nhcm-profile-price-design .nhcm-price-row{
        grid-template-columns:1fr !important;
    }
    .nhcm-profile-price-design .nhcm-price-value{
        text-align:left !important;
    }
}


/* v1.5.100 「料金プラン」見出しを中央揃え */
.nhcm-profile-price-design > .nhcm-price-main-title{
    text-align:center !important;
}
.nhcm-profile-price-design > .nhcm-price-main-title .st-dash-design{
    text-align:center !important;
}


/* v1.5.101 プロフィールページ独自の横幅制御を廃止
   横幅はWordPress/AFFINGER側の通常ページコンテンツ幅に完全に従う */
.nhcm-profile-wrap,
.nhcm-profile-shell,
.nhcm-profile-main,
.nhcm-profile{
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}

/* 親要素の通常コンテンツ幅いっぱいを使用 */
.entry-content > .nhcm-profile-wrap,
.entry-content > .nhcm-profile{
    width:100% !important;
    max-width:none !important;
}

/* 料金表を含むプロフィール内コンテンツにも独自最大幅を持たせない */
.nhcm-profile .nhcm-profile-price-entry-content,
.nhcm-profile .nhcm-price-table-wrap{
    max-width:none !important;
}




/* v1.5.103 ランキング画像はキャスト一覧 .nhcm-card-image の表示仕様をそのまま使用 */
.nhcm-ranking-card > .nhcm-card-image{
    background:#fff !important;
}
.nhcm-ranking-card > .nhcm-card-image img{
    object-position:center center !important;
}


/* v1.5.104 ランキングカードをキャスト一覧と完全に同じカードデザインへ */
.nhcm-ranking-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
    align-items:stretch !important;
}

.nhcm-ranking-card-wrap{
    position:relative !important;
    min-width:0 !important;
}

.nhcm-ranking-card-wrap > .nhcm-card{
    height:100% !important;
}

/* 順位だけランキング固有のオーバーレイとして残す */
.nhcm-ranking-card-wrap > .nhcm-rank-badge{
    position:absolute !important;
    z-index:20 !important;
    left:10px !important;
    top:10px !important;
    min-width:46px !important;
    text-align:center !important;
    background:#111 !important;
    color:#fff !important;
    border-radius:999px !important;
    padding:6px 9px !important;
    font-weight:800 !important;
    font-size:.85rem !important;
    line-height:1.2 !important;
}

/* 旧ランキング専用カードの見た目は新規出力では使用しない */
.nhcm-ranking-card{
    display:none !important;
}

@media(max-width:760px){
    .nhcm-ranking-grid{
        grid-template-columns:1fr !important;
    }
}


/* v1.5.105 ランキング順位とキャストバッジの重なりを解消 */
.nhcm-ranking-card-wrap > .nhcm-rank-badge{
    left:auto !important;
    right:10px !important;
    top:10px !important;
}

/* キャストバッジはキャスト一覧と同じ左上位置のまま */
.nhcm-ranking-card-wrap .nhcm-card .nhcm-badges{
    left:10px !important;
    right:auto !important;
}


/* v1.5.106 ランキングでは通常のキャストバッジを表示しない */
.nhcm-ranking-card-wrap .nhcm-card .nhcm-badges{
    display:none !important;
}


/* v1.5.107 ランキング順位を左上へ戻す（通常バッジは非表示のため重ならない） */
.nhcm-ranking-card-wrap > .nhcm-rank-badge{
    left:10px !important;
    right:auto !important;
    top:10px !important;
}

/* v1.5.108 プロフィール表示サイズを指定版 v1.5.103 に合わせる */
.nhcm-profile{
    max-width:1120px !important;
    margin:30px auto !important;
    padding:0 18px !important;
}


/* v1.5.109 プロフィール横幅をAFFINGERのパンくずと同じ親コンテンツ幅へ
   #breadcrumb と同じくプラグイン側では独自 max-width / 左右余白を持たせない */
.nhcm-profile{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}


/* v1.5.110 キャストプロフィールページ自体を1カラム（サイドバーなし）へ */
body.nhcm-cast-profile-one-column #side,
body.nhcm-cast-profile-one-column #side aside,
body.nhcm-cast-profile-one-column #st-side,
body.nhcm-cast-profile-one-column .st-side,
body.nhcm-cast-profile-one-column .sidebar,
body.nhcm-cast-profile-one-column #sidebar{
    display:none !important;
}

body.nhcm-cast-profile-one-column #contentInner,
body.nhcm-cast-profile-one-column #contentInner main,
body.nhcm-cast-profile-one-column #contentInner article,
body.nhcm-cast-profile-one-column .mainbox{
    width:100% !important;
    max-width:none !important;
    float:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}

/* AFFINGERでメインカラム側に残るサイドバー用余白を解除 */
body.nhcm-cast-profile-one-column #contentInner{
    padding-right:0 !important;
}

/* プロフィール内部の画像＋情報2カラムはそのまま維持 */
body.nhcm-cast-profile-one-column .nhcm-profile-main{
    display:grid !important;
    grid-template-columns:minmax(300px,44%) 1fr !important;
    gap:34px !important;
    align-items:start !important;
}

@media(max-width:680px){
    body.nhcm-cast-profile-one-column .nhcm-profile-main{
        grid-template-columns:1fr !important;
        gap:20px !important;
    }
}


/* v1.5.111 プロフィール表示幅を基準版(1120px)より若干小さく調整
   ページ自体は1カラムのまま、プロフィール本体のみ中央1060px */
body.nhcm-cast-profile-one-column .nhcm-profile{
    width:100% !important;
    max-width:1060px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:18px !important;
    padding-right:18px !important;
    box-sizing:border-box !important;
}


/* v1.5.124 プロフィール写真コピーガード */
.nhcm-card-image{
    position:relative !important;
}

/* プロフィールスライドはコピーガードの基準要素でもあるが、
   スライダー構造上 position:absolute を維持する必要がある */
.nhcm-profile-slide{
    position:absolute !important;
    inset:0 !important;
}

.nhcm-copy-guard{
    position:absolute !important;
    z-index:12 !important;
    display:block !important;
    max-width:86% !important;
    padding:5px 9px !important;
    color:rgba(255,255,255,var(--nhcm-copy-opacity,.22)) !important;
    background:rgba(0,0,0,.12) !important;
    border-radius:4px !important;
    font-size:var(--nhcm-copy-size,18px) !important;
    font-weight:700 !important;
    line-height:1.35 !important;
    letter-spacing:.04em !important;
    text-align:center !important;
    white-space:normal !important;
    pointer-events:none !important;
    user-select:none !important;
    text-shadow:0 1px 3px rgba(0,0,0,.32) !important;
    box-sizing:border-box !important;
}

.nhcm-copy-guard-center{
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) rotate(-10deg) !important;
}
.nhcm-copy-guard-top-left{left:12px !important;top:12px !important;}
.nhcm-copy-guard-top-right{right:12px !important;top:12px !important;}
.nhcm-copy-guard-bottom-left{left:12px !important;bottom:12px !important;}
.nhcm-copy-guard-bottom-right{right:12px !important;bottom:12px !important;}

.nhcm-card-image .nhcm-copy-guard{
    font-size:clamp(10px,1.35vw,var(--nhcm-copy-size,18px)) !important;
}


/* v1.5.125 彼女カード：現在地＋2時間料金 */
.nhcm-card-meta-line{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    gap:4px !important;
    margin:4px 0 10px !important;
    color:#666 !important;
    font-size:.9rem !important;
    line-height:1.5 !important;
    text-align:center !important;
}

.nhcm-card-current-location,
.nhcm-card-two-hour-price,
.nhcm-card-meta-separator{
    display:inline-block !important;
}

.nhcm-card-two-hour-price{
    font-weight:700 !important;
    color:#333 !important;
}


/* v1.5.134 スライドショー位置固定
   2枚目以降を同一領域へ重ねて表示するため absolute を強制 */
.nhcm-profile-slider .nhcm-profile-slides{
    position:relative !important;
    overflow:visible !important;
}
.nhcm-profile-slider .nhcm-profile-slide{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
}
.nhcm-profile-slider .nhcm-profile-slide:not(.is-active){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
}
.nhcm-profile-slider .nhcm-profile-slide.is-active{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:2 !important;
}


/* v1.5.140 検索・絞り込み付きキャスト一覧 */
.nhcm-cast-filter{
    margin:0 0 24px;
    padding:18px;
    border:1px solid #e2e2e2;
    border-radius:12px;
    background:#fff;
    box-sizing:border-box;
}
.nhcm-filter-title{
    margin:0 0 14px;
    font-size:1.05rem;
    font-weight:700;
}
.nhcm-filter-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    align-items:end;
}
.nhcm-filter-field{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}
.nhcm-filter-field span{
    font-size:.82rem;
    font-weight:700;
    color:#555;
}
.nhcm-filter-field input,
.nhcm-filter-field select{
    width:100%;
    min-height:42px;
    padding:8px 10px;
    border:1px solid #d5d5d5;
    border-radius:7px;
    background:#fff;
    box-sizing:border-box;
}
.nhcm-filter-keyword{
    grid-column:span 2;
}
.nhcm-filter-actions{
    display:flex;
    align-items:flex-end;
}
.nhcm-filter-reset{
    min-height:42px;
    padding:8px 14px;
    border:1px solid #c9c9c9;
    border-radius:7px;
    background:#fff;
    cursor:pointer;
}
.nhcm-filter-result-count{
    margin-top:12px;
    font-size:.88rem;
    color:#666;
    text-align:right;
}
.nhcm-filter-item{
    min-width:0;
}
.nhcm-filter-item[hidden]{
    display:none !important;
}
.nhcm-filter-empty{
    grid-column:1 / -1;
    text-align:center;
    padding:24px 12px;
}
@media(max-width:900px){
    .nhcm-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .nhcm-filter-keyword{
        grid-column:1 / -1;
    }
}
@media(max-width:560px){
    .nhcm-filter-grid{
        grid-template-columns:1fr;
    }
    .nhcm-filter-keyword{
        grid-column:auto;
    }
    .nhcm-filter-result-count{
        text-align:left;
    }
}


/* v1.5.143 キャストプロフィール画像の簡易保存抑止 */
.nhcm-profile-slider img,
.nhcm-profile-slide img,
.nhcm-card-image img,
.nhcm-card img,
.nhcm-ranking img,
.nhcm-rank-card img,
.nhcm-filter-item img{
    -webkit-user-drag:none;
    user-select:none;
    -webkit-user-select:none;
}


/* v1.5.174 一覧カード：未記載項目も空白行を残して縦位置を固定 */
.nhcm-card-body .nhcm-card-occupation-empty,
.nhcm-card-body .nhcm-card-meta-line-empty{
    visibility:hidden !important;
    pointer-events:none !important;
}

/* テーマ側のline-height変更があっても、未入力時に行が潰れないよう最低高を確保 */
.nhcm-card-body .nhcm-card-occupation{
    min-height:1.23rem !important;
}
.nhcm-card-body .nhcm-card-meta-line{
    min-height:1.35rem !important;
}


/* v1.5.179: theme/SEO additions must not display the auto-generated search snippet
   between the cast name and profile content. The self-introduction remains visible. */
.nhcm-profile .nhcm-profile-header > p,
.nhcm-profile > p.nhcm-profile-description,
.nhcm-profile > p.nhcm-profile-excerpt { display: none !important; }

/* v1.0.1 body size */
.nhcm-card-body-size{font-size:12px;font-weight:700;letter-spacing:.02em;color:#555;margin:4px 0 6px;white-space:nowrap}.nhcm-profile-body-size{font-weight:800;letter-spacing:.03em}.nhcm-profile-table .nhcm-profile-body-size{font-size:1.02em}


/* v1.0.6: reservation CTA visibility + watermark removal */
.nhcm-copy-guard{display:none!important;}
.nhcm-profile-primary-reserve{margin:0 0 22px!important;display:block!important;}
.nhcm-profile-primary-reserve-button{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:58px!important;padding:14px 20px!important;border-radius:12px!important;background:#c51f55!important;color:#fff!important;text-decoration:none!important;font-weight:900!important;font-size:16px!important;line-height:1.25!important;box-shadow:0 8px 20px rgba(197,31,85,.22)!important;}
.nhcm-profile-primary-reserve-button:hover,.nhcm-profile-primary-reserve-button:focus{background:#ad1948!important;color:#fff!important;transform:translateY(-1px);}
.nhcm-profile-contact-actions .nhcm-contact-reservation{display:block!important;visibility:visible!important;opacity:1!important;}
.nhcm-profile-contact-actions .nhcm-contact-reservation .nhcm-contact-button{display:flex!important;visibility:visible!important;opacity:1!important;background:#c51f55!important;color:#fff!important;max-width:620px!important;min-height:56px!important;font-size:15px!important;}
@media(max-width:680px){.nhcm-profile-primary-reserve-button{min-height:54px!important;font-size:15px!important;padding:13px 16px!important;}}
