/* ユーザーページ */
.userpage-wrap .userpage-head {
  position: relative;
  color: #000;
}
.userpage-wrap .userpage-edit-btn {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: #222;
  color: #fff;
  font-size: 1.1em;
}
.userpage-wrap .userpage-head .userpage-head-top {
  display: flex;
  align-items: center;
}
.userpage-wrap {
  box-shadow: 1px 1px 6px -1px rgba(0, 0, 0, .3);
}
.userpage-wrap.userpage-wrap--custom-bg {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
/* ランクごとのフレーム配色（アイコン枠・カスタム背景時のヘッダー枠に使用） */
/* ランク別グラデーション（--rank-frame 等）は crstyle.css の .rank-standard〜.rank-black で共通定義 */
.userpage-wrap.userpage-wrap--custom-bg .inner {
  background: linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.15)) !important;
}
/* 背景（壁紙）未設定のユーザーは濃いグレーで統一する */
.userpage-wrap.userpage-wrap--no-bg .inner,
.userpage-body.userpage-body--no-bg {
  background: linear-gradient(90deg,rgba(55,55,55,.9),rgba(30,30,30,.95)) !important;
  border: 1px solid rgba(160,160,160,.3) !important;
}
.userpage-body.userpage-body--custom-bg {
  position: relative;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  border: none !important;
}
.userpage-body.userpage-body--custom-bg::before {
  content: '';
  position: absolute;
  inset: -20px;
  background: inherit;
  filter: blur(8px);
  z-index: 0;
}
.userpage-body.userpage-body--custom-bg > * {
  position: relative;
  z-index: 1;
}
.userpage-wrap .inner {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.userpage-wrap .userpage-head {
}
.userpage-wrap .userpage-head .inner {
  padding: 15px 15px 35px;
}
.userrank-banner {
  position: relative;
  display: inline-block;
  max-width: 500px;
  text-align: left;
}
.userrank-banner img {
  max-width: 550px;
  width: 100%;
  height: auto;
  display: block;
}
.userrank-banner-pointlink {
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  padding: 6px 14px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: max(12px, .78em);
  font-weight: bold;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 4px;
  text-decoration: none;
  line-height: 1.4;
  white-space: nowrap;
  transition: background .15s;
}
.userrank-banner-pointlink:hover {
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  text-decoration: none;
}
.userpage-body {
  padding: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.userpage-wrap .userpage-head .userpage-title {
  padding-bottom: .4em;
  margin-bottom: .4em;
  border-bottom: 1px solid rgba(0, 0, 0, .2);
}
.userpage-wrap .userpage-head h3 {
  font-size: 1.3em;
  margin-bottom: .3em;
}
.userpage-wrap .userpage-head hr {
  border-top: 1px solid rgba(0, 0, 0, .2);
  margin: .5em 0;
}
.userpage-wrap .userpage-head .user-icon-frame {
  flex-shrink: 0;
  padding: 4px;
  background: var(--rank-frame, linear-gradient(135deg, #5c3d00, #ffd700, #f5c842, #ffd700, #5c3d00));
  box-shadow:
    0 0 0 1px var(--rank-glow, rgba(212, 175, 55, 0.5)),
    0 3px 12px var(--rank-glow-soft, rgba(160, 110, 0, 0.45));
}
.userpage-wrap .userpage-head .user-icon {
  width: 100px;
  height: 100px;
  overflow: hidden;
  display: block;
}
.userpage-wrap .userpage-head .user-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.userpage-wrap .userpage-head .user-info {
  flex: 1;
  min-width: 0;
  padding-left: 20px;
  color: #fff;
}
.userpage-wrap .userpage-head .user-info h3 { color: #fff; }
.userpage-wrap .userpage-head .user-info h3,
.userpage-wrap .userpage-head .user-info p:not(.userpage-title) {
  text-shadow: 0 1px 3px rgba(0,0,0,.7), 0 0 6px rgba(0,0,0,.5);
}

/* マイページリンク（自分のページ閲覧時のみ） */

/* メッセージ */
.userpage-wrap .userpage-message {
  position: relative;
  margin-top: 14px;
  padding: 6px 36px 6px 16px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 8px;
  line-height: 1.7;
}
.userpage-wrap .userpage-message-edit {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: max(12px, .85em);
  color: rgba(0,0,0,.35);
}
.userpage-wrap .userpage-message-edit:hover {
  color: rgba(0,0,0,.7);
}

/* ボディ */
.userpage-body {
  background: #fff url(https://mantube.manzoku.me/manzokustaticfile/manzoku-2024/1779785575390.png) center / cover no-repeat;
}
.userpage-body h3.userpage-section-title {
  font-size: 1.1em;
  padding: .6em 20px;
  background: #222;
  color: #fff;
}
.userpage-body h3.userpage-section-title i {
  margin-right: .5em;
}
.userpage-body .userpage-section {
  padding: 16px 20px;
}
.userpage-body table {
  border-collapse: collapse;
  width: 100%;
}
.userpage-body table tr {
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.userpage-body table tr:last-child {
  border-bottom: none;
}
.userpage-body table th,
.userpage-body table td {
  padding: .65em 1em;
  text-align: left;
  vertical-align: middle;
}
.userpage-body table th {
  width: 8em;
  color: #fff;
  font-size: .9em;
  font-weight: normal;
  letter-spacing: .05em;
  white-space: nowrap;
}
.userpage-body table td {
  color: #fff;
  font-size: .92em;
}
.userpage-body .userpage-comment {
  padding: 10px;
  margin-bottom: 4em;
  background: #f4f4f4;
  border-radius: 6px;
}

/* Myガール・Myショップ */
.userpage-fe {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.userpage-fe-item {
  text-align: center;
  width: calc(33% - 1.1em);
  margin: .5em 0 1em 1em;
  padding: 1em;
  background: rgba(255, 255, 255, .5);
  box-shadow: 1px 1px 6px -1px rgba(0, 0, 0, .3);
}
.userpage-fe-item img {
  display: block;
  width: 100%;
}
.userpage-fe-thumb {
  overflow: hidden;
  height: 280px;
  display: block;
  position: relative;
  margin-bottom: 5px;
  border: 1px solid #EDCBE7;
}
.userpage-fe-thumb.shop {
  height: auto;
}
.userpage-fe-thumb span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  color: #444;
  font-weight: bold;
  padding: .3em .5em;
  background: rgba(255, 255, 255, .8);
}
.userpage-fe-shop {
  display: block;
  color: #666;
  padding: 5px;
  border: 1px solid #aaa;
  border-radius: 3px;
  background: #fff;
}
.userpage-fe-shop p {
  font-size: .8em;
}

/* クチコミ一覧ページ */
.userpage-reviews-header {
  margin-bottom: 1em;
}
.userpage-reviews-header h2 {
  font-size: 1.1em;
  font-weight: bold;
  margin-top: .5em;
}
.userpage-back-btn {
  display: inline-block;
  font-size: .85em;
  color: #666;
  padding: .3em 0;
}
.userpage-back-btn:hover { color: #222; }

/* タブ */
.userpage-tabs {
  display: flex;
  border-bottom: 2px solid #222;
  margin: 1em 0 1px;
  gap: 10px;
}
.userpage-tab-btn {
  flex: 1;
  padding: .9em 1em;
  background: #fff;
  border: none;
  border-right: 1px solid #e0e0e0;
  border-radius: 8px 8px 0 0;
  cursor: pointer;
  font-size: .85em;
  font-weight: bold;
  color: #999;
  text-align: center;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .25em;
  transition: background .15s, color .15s;
  line-height: 1.3;
}
.userpage-tab-btn:last-child { border-right: none; }
.userpage-tab-btn i {
  font-size: 1.15em;
}
.userpage-tab-btn:hover:not(.active) {
  background: #f5f5f5;
  color: #555;
  text-decoration: none;
}
.userpage-tab-btn.active {
  background: #000;
  color: #fff;
}
.userpage-tab-panel { display: none; }
.userpage-tab-panel.active { display: block; }

/* レスポンシブ */
@media screen and (max-width: 767px) {
  .userpage-fe {
    flex-wrap: nowrap;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
  }
  .userpage-fe-item {
    margin: .5em 1em 1em 0;
    min-width: 40%;
    padding: .5em;
  }
  main .cr_memberbasicinfochange {
    padding: 0;
  }
  .userpage-fe-thumb {
    height: 45vw;
  }
}
@media screen and (max-width: 850px) {
  .userpage-wrap {
    border-radius: 0;
  }
  .userrank-banner {
    text-align: center;
  }
  .userpage-wrap .userpage-edit-btn {
    display: none;
  }
  .userpage-wrap .userpage-head .user-icon {
    width: 85px;
    height: 85px;
  }
  .userpage-body .userpage-section {
    padding: 10px 8px;
  }
}
@media screen and (max-width: 500px) {
  .userpage-wrap .userpage-head .inner {
    padding: 5px 5px 35px;
  }
}

/* 実績カード RPG風 */
.ph-stats { display: flex; gap: 10px; margin: 16px 0; }
.ph-stat-card {
  flex: 1;
  position: relative;
  padding: 18px 8px 14px;
  text-align: center;
  border-radius: 4px;
  background: linear-gradient(160deg, #1a1030 0%, #0d0820 100%);
  border: 1px solid #6b4f00;
  box-shadow:
    0 0 0 1px #2a1a00,
    inset 0 0 20px rgba(0,0,0,.6),
    0 4px 16px rgba(0,0,0,.5);
  color: #f0d080;
  overflow: hidden;
}
.ph-stat-card::after {
  content: '';
  position: absolute; inset: 2px;
  border: 1px solid rgba(180,130,20,.25);
  border-radius: 3px;
  pointer-events: none;
}
a.ph-stat-card,
a.ph-stat-card:hover,
a.ph-stat-card:visited {
  display: block;
  text-decoration: none;
  color: #f0d080;
}
.ph-stat-card--link { cursor: pointer; }
.ph-stat-card--link:hover {
  box-shadow:
    0 0 0 1px #2a1a00,
    inset 0 0 20px rgba(0,0,0,.6),
    0 4px 16px rgba(0,0,0,.5),
    0 0 16px rgba(160,100,255,.35);
}
@media screen and (max-width: 767px) {
  .ph-stats {
    gap: 5px;
  }
  .ph-stat-card {
    padding: 10px 8px 10px;
  }
}
.ph-stat-corner {
  position: absolute; width: 8px; height: 8px;
  border-color: #d4a017; border-style: solid;
}
.ph-stat-corner--tl { top: 4px; left: 4px;  border-width: 2px 0 0 2px; }
.ph-stat-corner--tr { top: 4px; right: 4px; border-width: 2px 2px 0 0; }
.ph-stat-corner--bl { bottom: 4px; left: 4px;  border-width: 0 0 2px 2px; }
.ph-stat-corner--br { bottom: 4px; right: 4px; border-width: 0 2px 2px 0; }
.ph-stat-stamp  { border-color: #4a6fa0; box-shadow: 0 0 0 1px #0a1a30, inset 0 0 20px rgba(0,0,0,.6), 0 4px 16px rgba(0,0,0,.5), 0 0 12px rgba(80,130,220,.2); }
.ph-stat-stamp  .ph-stat-corner { border-color: #6899d4; }
.ph-stat-stamp  .ph-stat-icon { color: #7ab4f0; text-shadow: 0 0 10px rgba(100,160,255,.8); }
.ph-stat-review { border-color: #5a3a80; box-shadow: 0 0 0 1px #1a0830, inset 0 0 20px rgba(0,0,0,.6), 0 4px 16px rgba(0,0,0,.5), 0 0 12px rgba(140,80,220,.2); }
.ph-stat-review .ph-stat-corner { border-color: #a070e0; }
.ph-stat-review .ph-stat-icon { color: #c090ff; text-shadow: 0 0 10px rgba(160,100,255,.8); }
.ph-stat-like   { border-color: #802040; box-shadow: 0 0 0 1px #300010, inset 0 0 20px rgba(0,0,0,.6), 0 4px 16px rgba(0,0,0,.5), 0 0 12px rgba(220,60,80,.2); }
.ph-stat-like   .ph-stat-corner { border-color: #e05070; }
.ph-stat-like   .ph-stat-icon { color: #ff7090; text-shadow: 0 0 10px rgba(255,80,100,.8); }
.ph-stat-title  { border-color: #806010; box-shadow: 0 0 0 1px #201000, inset 0 0 20px rgba(0,0,0,.6), 0 4px 16px rgba(0,0,0,.5), 0 0 12px rgba(220,170,30,.2); }
.ph-stat-title  .ph-stat-corner { border-color: #d4a020; }
.ph-stat-title  .ph-stat-icon { color: #ffd060; text-shadow: 0 0 10px rgba(255,200,50,.8); }
.ph-stat-icon { font-size: 1.5em; margin-bottom: 8px; }
.ph-stat-num {
  font-size: 2em; font-weight: bold; line-height: 1;
  color: #ffe080;
  text-shadow: 0 0 8px rgba(255,200,50,.6), 0 1px 0 #000;
  margin-bottom: 6px;
  letter-spacing: .03em;
}
.ph-stat-label {
  color: #c0a050;
  letter-spacing: .05em;
  text-shadow: 0 1px 2px #000;
}
.ph-title-collection {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin: -6px 0 14px;
}
.ph-title-badge {
  display: inline-block; padding: 4px 12px; border-radius: 20px;
  border: 1px solid #555; background: rgba(255,255,255,.06);
  font-size: max(12px, .82em); color: #bbb;
}
.ph-title-badge--active {
  border-color: #d4a020; background: rgba(40,30,0,.7);
  color: #ffd060; font-weight: bold;
}
.ph-title-badge--nocond {
  border-color: #2080d4; background: rgba(0,20,50,.7);
  color: #60b0ff; font-weight: bold;
}
.ph-title-badge--custom {
  font-weight: bold;
}
.ph-title-badge-conds {
  display: block;
  margin-top: 4px;
}
.ph-title-badge-cond {
  display: block;
  font-size: max(12px, .72em);
  font-weight: normal;
  color: rgba(192,160,80,.7);
}
.ph-title-badge-cond i {
  font-size: .85em;
  margin-right: 2px;
  opacity: .7;
}
/* ポイント数表示 */
.ph-rank-point span { font-size: 1.2em; font-weight: bold; color: #ff5297; }
.ph-rank-point--box { display: inline-block; margin-top: 8px; padding: 6px 18px; background: #fff; border-radius: 6px; box-shadow: 1px 1px 4px rgba(0,0,0,.15); text-shadow: none; }

/* 進捗バー */
.ph-progress-bar { position: relative; background: rgba(0,0,0,.35); border: 1px solid #c9a35a; border-radius: 999px; height: 12px; overflow: hidden; }
.ph-progress-bar div { height: 100%; border-radius: 999px; background: repeating-linear-gradient(135deg, #ff8fb8 0 8px, #ff5297 8px 16px); box-shadow: 0 0 6px rgba(255,82,151,.7); }

/* ランク情報カード（ゲーム風） */
.ph-rankinfo {
  position: relative;
  margin-top: 1.6em;
  margin-bottom: 1em;
  padding: 12px;
  background: repeating-linear-gradient(45deg, #fdf6e3 0 12px, #faedc9 12px 24px);
  border: 3px solid #f3cd6b;
  border-radius: 12px;
  box-shadow: 0 0 0 1px #fff inset, 1px 1px 8px rgba(0,0,0,.2);
}
/* セクション見出しタブ */
.ph-rankinfo-section { margin-bottom: 1em; }
.ph-rankinfo-section:last-of-type { margin-bottom: 0; }
@media screen and (min-width: 851px) {
  .ph-rankinfo { display: flex; gap: 16px; margin-left: 20px; margin-right: 20px; }
  .ph-rankinfo-section { flex: 1; margin-bottom: 0; }
}
.ph-rankinfo-tab {
  display: inline-block;
  padding: .35em 1.2em;
  font-size: .85em;
  font-weight: bold;
  color: #fff;
  background: linear-gradient(180deg, #ff6fa5, #e3007f);
  border: 1px solid #ffd966;
  border-bottom: none;
  border-radius: 6px 6px 0 0;
}
.ph-rankinfo-tab i { color: #ffd966; font-size: .85em; }
/* ボックス共通 */
.ph-rankinfo-box {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  background: #fffdf5;
  border: 2px solid #f3cd6b;
  border-radius: 0 8px 8px 8px;
  box-shadow: inset 0 0 0 1px #fff;
}
.ph-rankinfo-box--next { padding: 12px; background: linear-gradient(135deg, #3a2e22, #1f1810); border-color: #c9a35a; }
/* ランクバッジ画像 */
.ph-rankinfo-badge { flex-shrink: 0; width: 52px; height: 52px; object-fit: contain; }
.ph-rankinfo-badge--next { width: 44px; height: 44px; }
/* 現在のランク */
.ph-rankinfo-ranktext { flex: 1; min-width: 0; }
.ph-rankinfo-rankname { font-size: 1.2em; font-weight: bold; color: #5a4326; line-height: 1.2; }
.ph-rankinfo-rankcode { margin-top: .2em; font-size: .75em; font-weight: bold; letter-spacing: .25em; color: #c9a35a; }
.ph-rankinfo-deco { flex-shrink: 0; display: none; gap: 4px; color: #f3cd6b; }
@media screen and (min-width: 480px) {
  .ph-rankinfo-deco { display: flex; }
}
/* 次のランクまで */
.ph-rankinfo-chest {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 1.4em;
  color: #ffd966;
  background: rgba(255,217,102,.12);
  border: 2px solid #ffd966;
  border-radius: 50%;
}
.ph-rankinfo-progresswrap { flex: 1; min-width: 0; }
.ph-rankinfo-box--next .ph-rankinfo-next { color: #fff; margin-bottom: 6px; font-size: .9em; }
.ph-rankinfo-box--next .ph-rankinfo-next b { font-size: 1.25em; color: #ff5297; text-shadow: 0 0 6px rgba(255,82,151,.6); }
.ph-rankinfo-box--max { justify-content: center; }
.ph-rankinfo-box--max .ph-rankinfo-next { margin: 0; font-size: 1.05em; font-weight: bold; color: #ffd966; }
.ph-rankinfo-box--max .ph-rankinfo-next i { color: #ffd966; }

/* シェアボックス */
.cr_sharebox { padding: 1.2em 1em; text-align: center; }
.cr_sharebox .cr_shareboxcap { color: #999; font-weight: normal; font-size: max(12px, .9em); margin-bottom: .8em; }
.cr_sharebox .cr_shareboxcap b { color: #ff5297; }
.cr_sharebox ul { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.cr_sharebox li a { position: relative; display: block; padding: .55em 1.2em .55em 2.8em; border-radius: 6px; font-size: max(12px, .85em); font-weight: bold; text-decoration: none; transition: opacity .15s, box-shadow .15s; }
.cr_sharebox li a:hover { opacity: .85; text-decoration: none; }
.cr_sharebox li a i, .cr_sharebox li a img { position: absolute; top: 50%; left: .7em; width: .9em; font-size: 1.3em; margin-top: -.5em; display: inline-block; }
.cr_shareline { color: #fff; background: #06C755; }
.cr_sharetwit { color: #fff; background: #000; }
.cr_sharefabk { color: #fff; background: #1877F2; }
.cr_shareline:hover { color: #fff; box-shadow: 0 2px 8px rgba(6,199,85,.4); }
.cr_sharetwit:hover { color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.cr_sharefabk:hover { color: #fff; box-shadow: 0 2px 8px rgba(24,119,242,.4); }

/* 好きなお酒・好きな女の子のタイプ タグ */
.userpage-tags{display:flex;flex-wrap:wrap;gap:.3em .4em;}
.userpage-tag{display:inline-block;padding:.2em .65em;border:1px solid rgba(255,255,255,.4);border-radius:2em;font-size:max(12px,.82em);color:#eee;}

/* ── basicinfo フォーム新デザイン（cr_basicinfo） ── */
.cr_basicinfo{padding:0 0 2em;margin-bottom:0;overflow-x:hidden;}
.cr_basicinfo .flex{align-items:flex-start;border:none;border-bottom:1px solid #f0e6f6;padding:1.1em 0;gap:1.5em;position:relative;}
.cr_basicinfo form .flexfirst{border-top:1px solid #f0e6f6;}
.cr_basicinfo .cr_rgfxtit{width:170px;flex-shrink:0;padding:.4em 0;background:none;}
.cr_basicinfo .cr_rgfxtit h3{font-size:max(12px,.88em);font-weight:bold;padding:0;margin:0;}
.cr_basicinfo .cr_rgfxtit h3 label{padding:0;width:auto;height:auto;font-size:1em;font-weight:bold;color:#fff;}
.cr_basicinfo .cr_rgfxinp{flex:1;min-width:0;padding:.2em 0;font-size:1em;position:relative;}
.cr_basicinfo .cr_rgfxinp p{position:static;top:auto;right:auto;}

/* テキスト・セレクト */
.cr_basicinfo input[type="text"],
.cr_basicinfo input[type="email"],
.cr_basicinfo select{width:100%;max-width:420px;padding:.6em .9em;border:1px solid #ddd;border-radius:.5em;background:#fff;color:#333;font-size:max(12px,1em);outline:none;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s;}
.cr_basicinfo input[type="text"]:focus,
.cr_basicinfo input[type="email"]:focus,
.cr_basicinfo select:focus{border-color:#8200d8;box-shadow:0 0 0 3px rgba(130,0,216,.1);}

/* ラジオ */
.cr_basicinfo input[type="radio"]{width:auto;transform:scale(1.15);}
.cr_basicinfo input[type="radio"] + label{margin:0 1.4em 0 .4em;font-size:max(12px,1em);}
.cr_basicinfo input[type="radio"]:checked + label{font-weight:bold;color:#ff5297;}

/* サブテキスト */
.cr_basicinfo .cr_grytxt{display:block;font-size:max(12px,.83em);color:#aaa;margin-top:.35em;}
.cr_basicinfo .cr_redtxt{font-size:max(12px,.78em);}

/* 送信ボタン */
.cr_basicinfo .cr_rgsubmit{text-align:center;padding:1.8em 0 .5em;}
.cr_basicinfo .cr_rgsubmitbtn button{padding:.7em 3.5em;font-size:max(12px,1em);font-weight:bold;background:linear-gradient(135deg,#ff6fbf,#ff5297);color:#fff;border:none;border-radius:2em;cursor:pointer;box-shadow:0 3px 14px rgba(255,82,151,.28);transition:opacity .2s,box-shadow .2s;}
.cr_basicinfo .cr_rgsubmitbtn button:hover{opacity:.88;box-shadow:0 5px 18px rgba(255,82,151,.38);}

/* セクション区切り説明文 */
.cr_basicinfo>p{padding:.9em 0;color:#888;font-size:max(12px,.88em);border-bottom:2px solid #f0e6f6;margin:0;}

@media screen and (max-width:767px){
.cr_basicinfo{padding:0 1em;}
.cr_basicinfo .flex{flex-direction:column;gap:.3em;padding:.85em 0;}
.cr_basicinfo .cr_rgfxtit{width:100%;padding:.2em 0;}
.cr_basicinfo .cr_rgfxinp{width:100%;box-sizing:border-box;}
.cr_basicinfo input[type="text"],
.cr_basicinfo input[type="email"],
.cr_basicinfo select,
.cr_basicinfo textarea{max-width:100%;width:100%;box-sizing:border-box;}
.cr_basicinfo .cr_check_wrap{gap:.35em .5em;}
.cr_basicinfo .cr_rgfxinp p{white-space:normal;}
}

.userpage-wrap .userpage-head .user-icon-frame.user-icon-frame--editable{position:relative;overflow:visible;}
.userpage-wrap .userpage-head .user-icon-edit-overlay{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:27px;height:27px;background:#eee;color:#666;font-size:.75em;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.45),0 2px 4px rgba(0,0,0,.3);}

/* ユーザーいいねボタン（rank-frame右下） */
.userpage-wrap .userpage-head .user_like_btn{position:absolute;bottom:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:.35em;background:rgba(255,255,255,.9);border:1.5px solid #ccc;border-radius:999px;padding:.35em .9em;font-size:.85em;color:#aaa;cursor:pointer;transition:color .15s,border-color .15s,background .15s;line-height:1;}
.userpage-wrap .userpage-head .user_like_btn:hover{border-color:#E3007F;color:#E3007F;}
.userpage-wrap .userpage-head .user_like_btn.cr_likeon{border-color:#E3007F;color:#E3007F;background:#fff;}
.userpage-wrap .userpage-head .user_like_count{font-size:1em;}
.userpage-wrap .userpage-head .user_like_btn.user_like_btn--disabled{cursor:default;opacity:1;}
.userpage-wrap .userpage-head .user_like_btn.user_like_btn--disabled:hover{border-color:#ccc;color:#aaa;}

/* ユーザーいいね一覧（推しガールの下） */
.userpage-likers{display:flex;flex-wrap:wrap;gap:.8em;}
.userpage-likers-item{display:flex;flex-direction:column;align-items:center;width:82px;text-align:center;}
.userpage-likers-item .user-icon{display:block;width:62px;height:62px;border-radius:50%;overflow:hidden;border:1px solid #eee;background:#f4f4f4;}
.userpage-likers-item .user-icon img{width:100%;height:100%;object-fit:cover;}
.userpage-likers-item .userpage-likers-name{display:block;margin-top:.35em;max-width:100%;padding:.15em .5em;background:rgba(255,255,255,.85);border-radius:10px;font-size:max(12px,.75em);line-height:1.4;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.userpage-likers-more{margin-top:.8em;font-size:max(12px,.85em);color:#666;background:rgba(255,255,255,.85);display:inline-block;padding:.3em .8em;border-radius:10px;}
