/* --- 基本設定 --- */
body {
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", Arial, sans-serif;
    background-color: #f5f5f5;
    display: flex;
    justify-content: center;
}
.app-container {
    width: 100%;
    max-width: 430px;
    background-color: #ffffff;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding-bottom: 80px;
    position: relative;
}
/* --- ① 最上部固定ヘッダー --- */
.screen-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: #ffffff;
    padding: 10px 0;
    text-align: center;
    border-bottom: 1px solid #f0f0f0;
}
.header-title {
    font-size: 18px;
    font-weight: bold;
    color: #ff4a6e;
}
/* --- タブナビゲーション --- */
.top-tabs {
    display: flex;
    background: #f8f8f8;
    border-radius: 30px;
    padding: 5px;
    margin-bottom: 25px;
}
.tab {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 14px;
    font-weight: bold;
    color: #999;
    border-radius: 25px;
}
.tab.active {
    background-color: #ff4a6e;
    color: #fff;
}
/* --- メインコンテンツ --- */
.content-area {
    padding: 20px 15px;
}
.section-title {
    font-size: 17px;
    margin-bottom: 15px;
}
.user-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 25px;
}
.user-card {
    background: #fdfaf5;
    border-radius: 12px;
    overflow: hidden;
}
.image-wrapper {
    width: 100%;
    aspect-ratio: 1/1;
    border-bottom-left-radius: 50% 12px;
    border-bottom-right-radius: 50% 12px;
    overflow: hidden;
}
.image-wrapper img { width: 100%; height: 100%; object-fit: cover; }
.image-wrapper.blurred img { filter: blur(10px); }
.user-info { padding: 10px; }
.user-name { font-weight: bold; margin: 0 0 4px; }
.user-meta { font-size: 12px; color: #666; margin: 0; }
.check-icon { color: #ff847f; font-size: 10px; }
.badge-top {
    font-size: 9px;
    color: #fff;
    background: linear-gradient(90deg, #ff847f, #ff847f);
    padding: 2px 5px;
    border-radius: 4px;
}
/* --- ② 下部ナビゲーション --- */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 430px;
    height: 70px;
    background-color: #ffffff;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
}
.nav-item {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #bbb; /* 未選択時の色 */
    font-size: 9px;
    flex: 1;
}
.nav-item i {
    font-size: 22px;
    margin-bottom: 5px;
}
.nav-item.active {
    color: #ff847f; /* 選択時の色（アクセントカラー） */
}
/* --- タブナビゲーション --- */
.top-tabs {
    display: flex;
    background: #f8f8f8;
    border-radius: 30px;
    padding: 5px;
    margin-bottom: 25px;
}
.tab {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 14px;
    font-weight: bold;
    color: #999;
    border-radius: 25px;
}
.tab.active {
    background-color: #ff4a6e;
    color: #fff;
}
/* コンテンツ */
.content-area { padding: 20px 15px; }
.section-title {
    font-size: 19px;
    font-weight: bold;
    margin-bottom: 10px;
    text-align: center;
}
.instruction-text {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 25px;
}
/* フォーム */
.form-group { margin-bottom: 25px; }
.form-label {
    display: block;
    font-weight: bold;
    font-size: 14px;
    margin-bottom: 8px;
    color: #333;
}
.form-select {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 16px;
    background-color: #f9f9f9;
}
/* カレンダー */
.calendar-container {
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 10px;
    background: #fff;
}
.calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.calendar-header span { font-weight: bold; font-size: 16px; }
.cal-btn {
    background: none;
    border: 1px solid #ddd;
    padding: 5px 10px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 12px;
}
.calendar-table {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
}
.calendar-table th {
    padding: 8px 0;
    font-size: 12px;
    color: #999;
}
.calendar-table td {
    padding: 10px 0;
    cursor: pointer;
    border-radius: 50%;
    font-size: 14px;
    width: 14.28%;
}
/* 土日色付け */
.sat { color: #4a90e2; } /* 青系 */
.sun { color: #e94e77; } /* 赤系 */
.calendar-table td:hover { background-color: #f0f0f0; }
.calendar-table td.selected {
    background-color: #ff847f !important;
    color: #fff !important;
    font-weight: bold;
}
/* 申込ボタン */
.submit-button {
    width: 100%;
    padding: 15px;
    background: linear-gradient(to right, #ff847f, #ff847f);
    color: white;
    border: none;
    border-radius: 30px;
    font-size: 18px;
    font-weight: bold;
    box-shadow: 0 4px 10px rgba(181, 141, 77, 0.3);
}
/* ボトムナビ（前回の踏襲） */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 430px;
    height: 70px;
    background: #fff;
    border-top: 1px solid #eee;
    display: flex;
    z-index: 100;
}
.nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #bbb;
    font-size: 9px;
}
.nav-item i { font-size: 22px; margin-bottom: 4px; }
.nav-item.active { color: #ff847f; }
/* メインコンテンツ */
.main-content {
    padding: 0px 15px 100px; /* 上下固定要素分の余白 */
}
/* タブ切り替え */
.tab-container {
    display: flex;
    background: #fff;
    border-radius: 30px;
    padding: 5px;
    margin-bottom: 20px;
}
.tab-item {
    flex: 1;
    text-align: center;
    padding: 12px 0;
    font-size: 14px;
    font-weight: bold;
    color: #999;
    border-radius: 25px;
    cursor: pointer;
}
.tab-item.active {
    background-color: #ff4a6e;
    color: #fff;
}
/* セクション見出し */
.section-heading {
    font-size: 16px;
    margin-bottom: 15px;
    padding-left: 5px;
    border-left: 4px solid #ff4a6e;
}
/* ライブグリッド (2列) */
.live-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}
.live-card {
    background: #fff;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.thumbnail-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
}
.thumbnail-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* ライブバッジ */
.live-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #ff4a6e;
    color: #fff;
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: bold;
}
.viewer-count {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(0,0,0,0.5);
    color: #fff;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
}
/* ライブタイトル等 */
.live-info {
    padding: 10px;
}
.live-title {
    font-size: 13px;
    font-weight: bold;
    margin: 0 0 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.user-name {
    font-size: 11px;
    color: #888;
    margin: 0;
}
/* --- ② 下部ナビゲーション --- */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 430px;
    height: 70px;
    background-color: #ffffff;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
}
.nav-item {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #bbb; /* 未選択時の色 */
    font-size: 9px;
    flex: 1;
}
.nav-item i {
    font-size: 22px;
    margin-bottom: 5px;
}
.nav-item.active {
    color: #ff847f; /* 選択時の色（アクセントカラー） */
}
/* リストアイテム (マッチングカード) */
.matching-card {
    background-color: #fff;
    border-radius: 15px;
    margin-bottom: 15px;
    padding: 15px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}
.card-main {
    display: flex;
    align-items: center;
    gap: 15px;
}
.user-avatar img {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #fceef2;
}
.user-info {
    flex: 1;
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.user-name {
    font-size: 16px;
    font-weight: bold;
    color: #333;
}
.user-age {
    font-size: 13px;
    color: #888;
}
/* Messageボタン */
.message-btn {
    background-color: #ff4a6e;
    color: #fff;
    border: none;
    padding: 8px 15px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.2s;
}
.message-btn:active {
    opacity: 0.7;
}
/* 日付エリア */
.card-footer {
    margin-top: 10px;
/*    padding-top: 10px; */
    border-top: 1px solid #f9f9f9;
}
.match-date {
    font-size: 11px;
    color: #bbb;
}
/* --- ② 下部ナビゲーション --- */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 430px;
    height: 70px;
    background-color: #ffffff;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
}
.nav-item {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #bbb; /* 未選択時の色 */
    font-size: 9px;
    flex: 1;
}
.nav-item i {
    font-size: 22px;
    margin-bottom: 5px;
}
.nav-item.active {
    color: #ff847f; /* 選択時の色（アクセントカラー） */
}
/* メニューリスト */
.menu-list {
    border-top: 1px solid #eee;
}
.menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 5px;
    border-bottom: 1px solid #eee;
    text-decoration: none;
    color: #333;
    transition: background 0.2s;
}
.menu-item:active {
    background-color: #f9f9f9;
}
.menu-left {
    display: flex;
    align-items: center;
    gap: 15px;
}
.menu-left i {
    width: 24px;
    font-size: 18px;
    color: #ff4a6e; /* アイコンをアクセントカラーに */
    text-align: center;
}
.menu-left span {
    font-size: 15px;
    font-weight: 500;
}
.arrow {
    font-size: 12px;
    color: #ccc;
}
/* 特定のメニュー装飾 */
.menu-item.highlight span {
    color: #ff4a6e;
    font-weight: bold;
}
.menu-item.withdraw span {
    color: #999;
}
/* --- ② 下部ナビゲーション --- */
.bottom-nav {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: 430px;
    height: 70px;
    background-color: #ffffff;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
}
.nav-item {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #bbb; /* 未選択時の色 */
    font-size: 9px;
    flex: 1;
}
.nav-item i {
    font-size: 22px;
    margin-bottom: 5px;
}
.nav-item.active {
    color: #ff847f; /* 選択時の色（アクセントカラー） */
}
/* ヘッダー・フッター固定 */
.fixed-header {
    position: fixed; top: 0; width: 100%; height: 50px;
    background: #fff; display: flex; align-items: center; justify-content: center;
    border-bottom: 1px solid #eee; z-index: 1000;
}
.header-title { font-size: 16px; font-weight: bold; color: #ff4a6e; }
/* タブ */
.tab-container {
    display: flex; background: #fff; border-radius: 25px;
    padding: 3px; margin-bottom: 10px;
}
.tab-item {
    flex: 1; text-align: center; padding: 8px 0;
    font-size: 13px; font-weight: bold; color: #ccc; border-radius: 20px;
}
.tab-item.active { background: #ff4a6e; color: #fff; }
/* 8分割グリッド */
.conpa_live-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px;
    margin-bottom: 10px;
}
.video-cell {
    position: relative; aspect-ratio: 3/4; background: #333;
    border-radius: 8px; overflow: hidden; border: 2px solid transparent;
}
.video-cell:active { border-color: #ff4a6e; }
.video-placeholder { width: 100%; height: 100%; background: #555; }
/* サンプル用の色分け */
.p1 { background: #db7093; } .p2 { background: #ff69b4; } .p3 { background: #ff1493; } .p4 { background: #c71585; }
.p5 { background: #4682b4; } .p6 { background: #5f9ea0; } .p7 { background: #6495ed; } .p8 { background: #4169e1; }
.user-label {
    position: absolute; bottom: 3px; left: 3px;
    background: rgba(0,0,0,0.5); color: #fff; font-size: 9px;
    padding: 2px 4px; border-radius: 4px;
}
/* 大画面表示エリア */
.large-view-container {
    background: #fff; border-radius: 12px; padding: 10px;
    margin-bottom: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.large-video-wrapper { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; border-radius: 8px; overflow: hidden;}
.large-screen { width: 100%; height: 100%; }
.large-info {
    position: absolute; top: 0; width: 100%; background: rgba(0,0,0,0.4);
    display: flex; justify-content: space-between; align-items: center; padding: 5px 10px; box-sizing: border-box;
}
.large-info span { color: #fff; font-size: 12px; font-weight: bold; }
.close-btn { background: none; border: none; color: #fff; font-size: 20px; cursor: pointer; }
/* コントロール・お題・リアクション */
.interaction-area { display: flex; flex-direction: column; gap: 15px; }
.self-controls { display: flex; justify-content: center; gap: 20px; }
.control-btn {
    border: none; background: #fff; width: 60px; height: 60px;
    border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    color: #ff4a6e; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.control-btn i { font-size: 18px; margin-bottom: 2px; }
.control-btn span { font-size: 9px; }
.control-btn.off { color: #ccc; }
.topic-card {
    background: #fff; border-radius: 15px; padding: 15px; text-align: center;
    border: 2px dashed #ff4a6e;
}
.topic-label { font-size: 10px; color: #ff4a6e; font-weight: bold; margin-bottom: 5px; }
#topic-text { font-size: 14px; font-weight: bold; margin: 10px 0; }
.next-topic { background: #ff4a6e; color: #fff; border: none; padding: 5px 15px; border-radius: 15px; font-size: 11px; }
.reaction-buttons { display: flex; justify-content: space-around; flex-wrap: wrap; gap: 10px; }
.react-btn {
    background: #fff; border: 1px solid #ff4a6e; color: #ff4a6e;
    padding: 8px 12px; border-radius: 20px; font-size: 12px; font-weight: bold; flex: 1; min-width: 80px;
}
/* エフェクトアニメーション */
#effect-layer { pointer-events: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 2000; }
.floating-effect {
    position: absolute; bottom: 100px; font-size: 30px;
    animation: floatUp 2s ease-out forwards;
}
@keyframes floatUp {
    0% { transform: translateY(0) scale(1); opacity: 1; }
    100% { transform: translateY(-400px) scale(1.5); opacity: 0; }
}
.atab_active {
	text-decoration: none;
	color:#fff;
}
.atab_nonactive {
	text-decoration: none;
	color:#999;
}
/* コメントエリア全体のコンテナ */
.comment-area {
    margin-top: 20px;
    background: rgba(255, 255, 255, 0.8); /* 少し透け感を出してLoveny風に */
    border-radius: 15px;
    padding: 10px;
    border: 1px solid #f0f0f0;
}
/* コメントが流れるリスト部分 */
.comment-list {
    height: 150px; /* 高さを固定してスクロールさせる */
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-right: 5px;
    margin-bottom: 10px;
}
/* 個別のコメント行 */
.comment-item {
    font-size: 13px;
    line-height: 1.4;
    padding: 5px 8px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 8px;
}
.comment-user {
    font-weight: bold;
    color: #ff4a6e; /* ユーザー名はテーマカラーのピンク */
    margin-right: 5px;
}
.comment-text {
    color: #333;
}
/* 入力フォーム部分 */
.comment-input-group {
    display: flex;
    gap: 5px;
    border-top: 1px solid #eee;
    padding-top: 10px;
}
.comment-input {
    flex: 1;
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 8px 15px;
    font-size: 13px;
    outline: none;
}
.comment-input:focus {
    border-color: #ff4a6e;
}
.comment-send-btn {
    background: #ff4a6e;
    color: #fff;
    border: none;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
/* スクロールバーのカスタマイズ（ブラウザ対応） */
.comment-list::-webkit-scrollbar {
    width: 4px;
}
.comment-list::-webkit-scrollbar-thumb {
    background: #ffc0cb;
    border-radius: 10px;
}
/* ----------------------------------------------------- */
/* 登録コンテンツ */
/* ----------------------------------------------------- */
.register-main-content {
    text-align: center;
    padding-top: 10px;
}
.register-title {
    font-size: 28px;
    font-weight: bold;
    color: #333;
    margin-bottom: 5px;
}
.register-subtitle {
    font-size: 16px;
    color: #888;
    margin-bottom: 40px;
}
/* --- フォームと入力欄 --- */
.profile-form {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    text-align: left; /* フォームのラベルを左寄せにする */
}
.input-group {
    margin-bottom: 30px;
}
.input-group label {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    margin-bottom: 8px;
}
/* 全ての入力フィールド(input, select)の共通スタイル */
.profile-form input[type="text"],
.profile-form input[type="number"],
.profile-form input[type="date"],
.profile-form select {
    width: 100%;
    padding: 15px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.3s;
    appearance: none; /* selectのデフォルトのスタイルをリセット */
    -webkit-appearance: none;
    background-color: #fff;
}
.profile-form input:focus,
.profile-form select:focus {
    border-color: #ff8c7e; /* フォーカス時にアクセントカラー */
}
/* select要素にカスタム矢印を追加 (select要素のデザインを改善) */
.input-group select {
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23ff6b81%22%20d%3D%22M287%20196.8c-3%203-7.6%204.8-12.4%204.8H17.8c-4.8%200-9.4-1.8-12.4-4.8s-4.8-7.6-4.8-12.4c0-4.8%201.8-9.4%204.8-12.4L146.2%2036.8c3-3%207.6-4.8%2012.4-4.8s9.4%201.8%2012.4%204.8l128.6%20135.2c3%203%204.8%207.6%204.8%2012.4%200%204.8-1.8%209.4-4.8%2012.4z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 10px;
    padding-right: 40px; /* 矢印のためのスペース */
}
/* --- 登録確認ボタン --- */
.submit-button {
    width: 100%;
    padding: 15px 0;
    margin-top: 30px;
    font-size: 18px;
    font-weight: bold;
    color: white;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    /* ログイン画面と同じグラデーションボタンを再現 */
    background: linear-gradient(90deg, #ff6b81 0%, #ff8c7e 100%);
    box-shadow: 0 4px 10px rgba(255, 107, 129, 0.4);
    transition: opacity 0.3s;
}
.submit-button:hover {
    opacity: 0.9;
}
/* --- テキストエリアのスタイルを追加 --- */
.profile-form textarea {
    width: 100%;
    padding: 15px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.3s;
    resize: vertical; /* 垂直方向のみリサイズ可能 */
}
.profile-form textarea:focus {
    border-color: #ff8c7e;
}
/* --- グループ小見出しのスタイル (h3) --- */
.form-group-heading {
    text-align: left;
    font-size: 18px;
    font-weight: bold;
    color: #ff6b81; /* Lovenyのアクセントカラーを使用 */
    border-left: 5px solid #ff6b81;
    padding-left: 10px;
    margin-top: 40px;
    margin-bottom: 25px;
}
/* フォーム全体の最大幅を維持しつつ、テキストを左寄せにする調整 */
.profile-form {
    text-align: left; /* フォームのラベルを左寄せにする */
}
/* 既存の入力フィールドのスタイルはそのまま使用されます */
/* input[type="text"], input[type="date"], select のスタイルは既に定義されています。 */
/* 検索フォーム */
.search-form-container {
    background: #fff; border-radius: 15px; padding: 20px;
	padding: 20px 10px;
    /*box-shadow: 0 4px 15px rgba(0,0,0,0.05);*/
}
.search-group { margin-bottom: 18px; }
.search-group label {
    display: block; font-size: 13px; font-weight: bold;
    color: #555; margin-bottom: 8px;
}
.search-group label i { color: #ff4a6e; margin-right: 5px; width: 18px; text-align: center; }
.search-group select {
    width: 100%; padding: 12px; border: 1px solid #eee;
    border-radius: 8px; background-color: #f9f9f9;
    font-size: 15px; color: #333; outline: none;
    -webkit-appearance: none; appearance: none; /* デフォルト矢印を消す（カスタム用） */
}
/* セレクトボックスの右側に矢印アイコン風の背景を追加 */
.search-group { position: relative; }
.search-group::after {
    content: '\f107'; font-family: 'Font Awesome 5 Free'; font-weight: 900;
    position: absolute; right: 15px; bottom: 12px; color: #ccc; pointer-events: none;
}
/* 検索ボタン */
.search-submit { margin-top: 30px; }
.search-btn {
    width: 100%; background: #ff4a6e; color: #fff; border: none;
    padding: 15px; border-radius: 30px; font-size: 16px; font-weight: bold;
    box-shadow: 0 4px 10px rgba(255, 74, 110, 0.3); transition: 0.3s;
}
.search-btn:active { transform: scale(0.98); background: #e63d5d; }
.conversation-list {
    margin-top: 10px;
}
.conversation-item {
    display: flex;
    align-items: center;
    padding: 15px;
    background: #fff;
    border-bottom: 1px solid #f5f5f5;
    text-decoration: none;
    color: inherit;
    transition: background 0.2s;
}
.conversation-item:active {
    background: #fff0f3;
}
.user-thumb-wrapper {
    position: relative;
    margin-right: 15px;
}
.user-thumb {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    background: #eee;
}
/* オンライン状態のインジケーター */
.online-status {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 12px;
    height: 12px;
    background: #4caf50;
    border: 2px solid #fff;
    border-radius: 50%;
}
.msg-content {
    flex: 1;
    min-width: 0; /* テキスト省略用 */
}
.msg-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 4px;
}
.user-name {
    font-size: 15px;
    font-weight: bold;
    color: #333;
}
.user-age {
    font-size: 12px;
    color: #888;
    margin-left: 5px;
    font-weight: normal;
}
.msg-date {
    font-size: 11px;
    color: #bbb;
}
.msg-preview {
    font-size: 13px;
    color: #666;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 2行で省略 */
    overflow: hidden;
}
/* 未読バッジがある場合 */
.unread-dot {
    width: 8px;
    height: 8px;
    background: #ff4a6e;
    border-radius: 50%;
    margin-left: 10px;
}
/* コイン購入画面スタイル */
.coin-purchase-container {
    padding: 10px 0;
}
/* 現在の残高表示 */
.current-balance {
    background: #fff;
    border-radius: 12px;
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.balance-label { font-size: 14px; color: #666; }
.balance-amount { font-size: 20px; font-weight: bold; color: #ffab00; }
.balance-amount i { margin-right: 5px; }
/* プラン選択 */
.coin-plans {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}
.plan-item { cursor: pointer; position: relative; }
.plan-item input[type="radio"] { display: none; }
.plan-content {
    background: #fff;
    border: 2px solid #eee;
    border-radius: 15px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: 0.3s;
}
.plan-item.highlight .plan-content { border-color: #ffc1cc; background: #fff9fa; }
.plan-badge {
    position: absolute;
    top: -8px; left: 15px;
    background: #ff4a6e;
    color: #fff;
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: bold;
}
.plan-coins { display: block; font-size: 16px; font-weight: bold; color: #333; }
.plan-price { font-size: 14px; color: #ff4a6e; font-weight: bold; }
.plan-check { color: #ddd; font-size: 20px; }
/* 選択時の挙動 */
.plan-item input[type="radio"]:checked + .plan-content {
    border-color: #ff4a6e;
    background: #fff0f3;
}
.plan-item input[type="radio"]:checked + .plan-content .plan-check {
    color: #ff4a6e;
}
/* 決済セクション */
.payment-section {
    background: #fff;
    border-radius: 15px;
    padding: 20px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.payment-title {
    font-size: 15px;
    margin-bottom: 15px;
    color: #444;
}
.payment-title i { color: #ff4a6e; margin-right: 5px; }
/* Stripe要素の枠 */
#card-element-container {
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fcfcfc;
    margin-bottom: 15px;
}
#card-errors {
    color: #fa755a;
    font-size: 12px;
    margin-top: 8px;
}
.payment-note {
    font-size: 11px;
    color: #999;
    line-height: 1.5;
    margin-bottom: 20px;
}
/* 購入ボタン */
.purchase-btn {
    width: 100%;
    background: #ff4a6e;
    color: #fff;
    border: none;
    padding: 16px;
    border-radius: 30px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(255, 74, 110, 0.3);
}
.purchase-btn:active { transform: scale(0.98); }
    /* 設定画面専用のスタイル調整 */
    .settings-form {
        padding: 10px 0;
    }
    .settings-item {
        background: #fff;
        border-radius: 12px;
        padding: 18px 15px;
        margin-bottom: 15px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.03);
    }
    .settings-label {
        font-size: 14px;
        font-weight: bold;
        color: #444;
        margin-bottom: 12px;
        display: block;
    }
    .settings-label i {
        color: #ff4a6e;
        margin-right: 8px;
        width: 20px;
        text-align: center;
    }
    /* ラジオボタンをボタン風にデザイン */
    .radio-group {
        display: flex;
        gap: 10px;
    }
    .radio-group label {
        flex: 1;
        text-align: center;
        background: #f9f9f9;
        border: 1px solid #eee;
        padding: 12px 0;
        border-radius: 8px;
        font-size: 13px;
        color: #888;
        cursor: pointer;
        transition: 0.3s;
    }
    .radio-group input[type="radio"] {
        display: none;
    }
    .radio-group input[type="radio"]:checked + span {
        font-weight: bold;
    }
    /* 選択時の色変化（受け取る＝ピンク系） */
    .radio-group input[type="radio"]:checked + .btn-accept {
        background: #ff4a6e;
        color: #fff;
        border-color: #ff4a6e;
    }
    /* 選択時の色変化（受け取らない＝グレー系） */
    .radio-group input[type="radio"]:checked + .btn-deny {
        background: #666;
        color: #fff;
        border-color: #666;
    }
    .submit-container {
        margin-top: 30px;
        padding: 0 10px;
    }
    .btn-submit {
        width: 100%;
        background: #ff4a6e;
        color: #fff;
        border: none;
        padding: 16px;
        border-radius: 30px;
        font-size: 16px;
        font-weight: bold;
        box-shadow: 0 4px 10px rgba(255, 74, 110, 0.3);
        cursor: pointer;
    }
    .btn-submit:active {
        transform: scale(0.98);
    }
    /* FAQ・お問合せ専用スタイル */
    .faq-section {
        margin-bottom: 30px;
    }
    
    .faq-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .faq-item {
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        border: 1px solid #f0f0f0;
    }
    .faq-question {
        padding: 15px;
        font-size: 14px;
        font-weight: bold;
        color: #333;
        display: flex;
        align-items: flex-start;
        cursor: pointer;
    }
    .faq-question i.q-icon {
        color: #ff4a6e;
        margin-right: 10px;
        font-size: 16px;
    }
    .faq-answer {
        padding: 0 15px 15px 41px;
        font-size: 13px;
        color: #666;
        line-height: 1.6;
        border-top: 1px solid #fafafa;
        padding-top: 10px;
    }
    /* お問合せフォーム */
    .contact-form-wrapper {
        background: #fff;
        border-radius: 15px;
        padding: 20px 15px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    }
    .form-group {
        margin-bottom: 20px;
    }
    .form-label {
        display: block;
        font-size: 13px;
        font-weight: bold;
        color: #444;
        margin-bottom: 8px;
    }
    .form-select, .form-textarea {
        width: 100%;
        border: 1px solid #eee;
        border-radius: 8px;
        background-color: #f9f9f9;
        font-size: 14px;
        padding: 12px;
        box-sizing: border-box;
        outline: none;
        font-family: inherit;
    }
    .form-select:focus, .form-textarea:focus {
        border-color: #ff4a6e;
    }
    .form-textarea {
        resize: none;
        min-height: 120px;
    }
    .btn-submit {
        width: 100%;
        background: #ff4a6e;
        color: #fff;
        border: none;
        padding: 16px;
        border-radius: 30px;
        font-size: 16px;
        font-weight: bold;
        box-shadow: 0 4px 10px rgba(255, 74, 110, 0.3);
        cursor: pointer;
        transition: 0.3s;
    }
    .btn-submit:active {
        transform: scale(0.98);
    }
    .section-subheading {
        font-size: 15px;
        font-weight: bold;
        color: #ff4a6e;
        margin: 25px 0 15px;
        display: flex;
        align-items: center;
    }
    .section-subheading i { margin-right: 8px; }
    /* 退会画面専用スタイル */
    .withdrawal-info {
        background: #fff;
        border-radius: 12px;
        padding: 20px 15px;
        margin-bottom: 25px;
        border: 1px solid #ffe5e5;
    }
    .withdrawal-info h3 {
        color: #ff4a6e;
        font-size: 15px;
        margin-bottom: 12px;
        display: flex;
        align-items: center;
    }
    .withdrawal-info h3 i { margin-right: 8px; }
    .withdrawal-info ul {
        margin: 0;
        padding-left: 20px;
        font-size: 13px;
        color: #666;
        line-height: 1.8;
    }
    .withdrawal-form-wrapper {
        background: #fff;
        border-radius: 15px;
        padding: 20px 15px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    }
    .form-group {
        margin-bottom: 25px;
    }
    .form-label {
        display: block;
        font-size: 14px;
        font-weight: bold;
        color: #444;
        margin-bottom: 10px;
    }
    .form-textarea {
        width: 100%;
        border: 1px solid #eee;
        border-radius: 8px;
        background-color: #f9f9f9;
        font-size: 14px;
        padding: 12px;
        box-sizing: border-box;
        outline: none;
        font-family: inherit;
        resize: none;
        min-height: 150px;
    }
    .form-textarea:focus {
        border-color: #ff4a6e;
    }
    .btn-withdrawal-container {
        margin-top: 30px;
        text-align: center;
    }
    .btn-withdrawal {
        width: 100%;
        background: #bbb; /* 削除は少し落ち着いた色に */
        color: #fff;
        border: none;
        padding: 16px;
        border-radius: 30px;
        font-size: 16px;
        font-weight: bold;
        cursor: pointer;
        transition: 0.3s;
    }
    /* チェックを入れたらボタンの色を変える想定のクラス */
    .btn-withdrawal.active {
        background: #666;
    }
    .back-to-mypage {
        display: block;
        text-align: center;
        margin-top: 20px;
        font-size: 14px;
        color: #ff4a6e;
        text-decoration: none;
        font-weight: bold;
    }
    .confirmation-check {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        font-size: 13px;
        color: #333;
        line-height: 1.4;
        margin-bottom: 20px;
        cursor: pointer;
    }
    .confirmation-check input {
        margin-top: 2px;
        accent-color: #ff4a6e;
    }
/* 認証画面専用スタイル */
.verify-page {
    background-color: #fff;
}
.auth-container {
    padding: 40px 20px;
    text-align: center;
}
.verify-icon-wrapper {
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
}
.circle-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #ff4a6e 0%, #ff4a6e 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 24px;
    box-shadow: 0 4px 10px rgba(43, 177, 177, 0.2);
}
.auth-title {
    font-size: 22px;
    font-weight: bold;
    color: #333;
    line-height: 1.4;
    margin-bottom: 15px;
}
.auth-description {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 30px;
}
/* 6桁入力エリア */
.code-input-group {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 40px;
}
.code-box {
    width: 15%;
    height: 60px;
    background-color: #f2f5f7;
    border: 2px solid transparent;
    border-radius: 12px;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    color: #333;
    outline: none;
    transition: 0.2s;
    -moz-appearance: textfield;
}
/* Chrome, Safari, Edge の矢印消し */
.code-box::-webkit-outer-spin-button,
.code-box::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.code-box:focus {
    background-color: #fff;
    border-color: #ff4a6e; /* Lovenyのピンク */
    box-shadow: 0 0 10px rgba(255, 74, 110, 0.1);
}
.link-resend {
    display: inline-block;
    margin-top: 20px;
    font-size: 14px;
    color: #2bb1b1;
    font-weight: bold;
    text-decoration: none;
}
.link-resend:hover {
    text-decoration: underline;
}
.header-back {
    position: absolute;
    left: 15px;
    color: #ff4a6e;
    font-size: 18px;
    text-decoration: none;
}
/* チャット画面専用スタイル */
body { background-color: #f7f7f7; }
/* ヘッダーに戻るボタンを追加 */
.header-back { position: absolute; left: 15px; color: #ff4a6e; font-size: 18px; text-decoration: none; }
.chat-container {
    padding: 70px 15px 100px; /* 上下余白 */
    display: flex;
    flex-direction: column;
    gap: 20px;
}
/* 日付ラベル */
.chat-date {
    text-align: center;
    font-size: 11px;
    color: #aaa;
    margin: 10px 0;
}
/* メッセージの基本構造 */
.message-row { display: flex; align-items: flex-end; width: 100%; }
.message-row.left { justify-content: flex-start; }
.message-row.right { justify-content: flex-end; flex-direction: row-reverse; }
/* アイコン */
.chat-icon {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background-size: cover;
    margin: 0 8px;
    flex-shrink: 0;
}
/* 吹き出し */
.bubble {
    max-width: 70%;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.5;
    position: relative;
    border-radius: 18px;
}
.left .bubble {
    background: #fff;
    color: #333;
    border-bottom-left-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.right .bubble {
    background: #ff4a6e;
    color: #fff;
    border-bottom-right-radius: 4px;
}
/* 時間と既読 */
.chat-info {
    font-size: 10px;
    color: #aaa;
    margin: 0 5px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.right .chat-info { text-align: right; }
.read-text { color: #ff4a6e; font-weight: bold; }
/* 下部入力エリア */
.chat-input-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 95%;
    background: #fff;
    padding: 10px 15px calc(10px + env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    gap: 10px;
    border-top: 1px solid #eee;
    z-index: 1000;
}
.chat-input {
    flex: 1;
    background: #f0f0f0;
    border: none;
    border-radius: 20px;
    padding: 10px 15px;
    font-size: 14px;
    outline: none;
}
.send-btn {
    color: #ff4a6e;
    font-size: 20px;
    background: none;
    border: none;
    cursor: pointer;
}
/* =====================================================
   AIフォロー画面
===================================================== */
:root {
    --ai-primary: #ff5f79;
    --ai-primary-dark: #ee4968;
    --ai-primary-soft: #fff0f3;
    --ai-purple: #8f72e8;
    --ai-blue: #58a8ed;
    --ai-green: #55bd8a;
    --ai-text: #333333;
    --ai-sub-text: #777777;
    --ai-border: #eeeeee;
    --ai-bg: #f7f7f9;
}
body.ai-follow-page {
    margin: 0;
    padding: 0;
    background: var(--ai-bg);
    color: var(--ai-text);
    display: flex;
    justify-content: center;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        "Yu Gothic",
        "Meiryo",
        Arial,
        sans-serif;
}
.ai-follow-page * {
    box-sizing: border-box;
}
.ai-app {
    width: 100%;
    max-width: 430px;
    min-height: 100vh;
    background: var(--ai-bg);
    position: relative;
}
/* -----------------------
   ヘッダー
----------------------- */
.ai-header {
    position: sticky;
    top: 0;
    z-index: 500;
    height: 56px;
    padding: 0 16px;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--ai-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.ai-header-title {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--ai-primary);
    font-size: 17px;
    font-weight: 700;
}
.ai-header-title i {
    font-size: 20px;
}
.ai-header-menu {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #999;
    font-size: 18px;
    cursor: pointer;
}
/* -----------------------
   メインコンテンツ
----------------------- */
.ai-main {
    padding: 14px 14px 190px;
}
/* -----------------------
   アドバイザーカード
----------------------- */
.ai-advisor-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 16px;
    margin-bottom: 15px;
    background:
        radial-gradient(
            circle at top right,
            rgba(255, 255, 255, 0.9) 0,
            rgba(255, 255, 255, 0) 40%
        ),
        linear-gradient(135deg, #fff4f6 0%, #f8f3ff 55%, #eef8ff 100%);
    border: 1px solid #f5e6ed;
    border-radius: 20px;
    box-shadow: 0 5px 20px rgba(73, 47, 62, 0.06);
}
.ai-advisor-card::after {
    content: "";
    position: absolute;
    top: -30px;
    right: -22px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(255, 129, 152, 0.08);
}
.ai-advisor-avatar {
    position: relative;
    flex-shrink: 0;
    width: 76px;
    height: 76px;
}
.ai-advisor-avatar img {
    display: block;
    width: 76px;
    height: 76px;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #fff;
    box-shadow: 0 4px 14px rgba(106, 76, 91, 0.15);
}
.ai-online-mark {
    position: absolute;
    right: 3px;
    bottom: 4px;
    width: 15px;
    height: 15px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #50c982;
}
.ai-advisor-profile {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
}
.ai-advisor-name-row {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 6px;
}
.ai-advisor-name-row h1 {
    margin: 0;
    font-size: 16px;
    line-height: 1.4;
    color: #38323a;
}
.ai-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 27px;
    height: 18px;
    padding: 0 6px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--ai-purple), var(--ai-blue));
    color: #fff;
    font-size: 9px;
    font-weight: 700;
}
.ai-advisor-profile p {
    margin: 0 0 8px;
    color: #6f6870;
    font-size: 12px;
    line-height: 1.65;
}
.ai-online-text {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #55946e;
    font-size: 10px;
    font-weight: 600;
}
.ai-online-text > span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #50c982;
}
/* -----------------------
   共通セクション見出し
----------------------- */
.ai-section-heading,
.ai-chat-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 12px;
}
.ai-section-label {
    display: block;
    margin-bottom: 2px;
    color: var(--ai-primary);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
}
.ai-section-heading h2,
.ai-chat-heading h2 {
    margin: 0;
    color: #333;
    font-size: 16px;
}
.ai-detail-link {
    color: #aaa;
    font-size: 11px;
    text-decoration: none;
}
.ai-detail-link i {
    margin-left: 4px;
    font-size: 9px;
}
/* -----------------------
   活動状況
----------------------- */
.ai-status-section {
    margin-bottom: 15px;
    padding: 16px 14px;
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 18px;
}
.ai-status-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.ai-status-card {
    min-width: 0;
    padding: 13px 5px 11px;
    border-radius: 14px;
    background: #fafafa;
    color: inherit;
    text-align: center;
    text-decoration: none;
    transition:
        transform 0.2s,
        box-shadow 0.2s;
}
.ai-status-card:active {
    transform: scale(0.97);
}
.ai-status-icon {
    width: 34px;
    height: 34px;
    margin: 0 auto 7px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
.ai-status-icon-approach {
    color: #518fd8;
    background: #eaf4ff;
}
.ai-status-icon-match {
    color: #ed5774;
    background: #ffedf1;
}
.ai-status-icon-message {
    color: #7d65cf;
    background: #f0ecff;
}
.ai-status-card strong {
    display: block;
    margin-bottom: 2px;
    color: #333;
    font-size: 21px;
    line-height: 1.2;
}
.ai-status-card > span {
    display: block;
    color: #676767;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}
.ai-status-card small {
    display: block;
    margin-top: 5px;
    color: #aaa;
    font-size: 8px;
}
/* -----------------------
   AIからのヒント
----------------------- */
.ai-tip-card {
    display: flex;
    gap: 11px;
    padding: 14px;
    margin-bottom: 20px;
    border: 1px solid #ffe6a9;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf6, #fff8e7);
}
.ai-tip-icon {
    flex-shrink: 0;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: #fff0b8;
    color: #e5a820;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ai-tip-body {
    flex: 1;
}
.ai-tip-body > span {
    display: block;
    margin-bottom: 4px;
    color: #a77d1c;
    font-size: 11px;
    font-weight: 700;
}
.ai-tip-body p {
    margin: 0;
    color: #6e6249;
    font-size: 12px;
    line-height: 1.65;
}
/* -----------------------
   チャットエリア
----------------------- */
.ai-chat-section {
    padding: 16px 12px 18px;
    margin-bottom: 18px;
    background: #f1f2f5;
    border-radius: 20px;
}
.ai-chat-reset {
    padding: 6px 9px;
    border: 1px solid #e5e5e5;
    border-radius: 14px;
    background: #fff;
    color: #888;
    font-size: 9px;
    cursor: pointer;
}
.ai-chat-reset i {
    margin-right: 4px;
}
.ai-chat-date {
    width: fit-content;
    margin: 8px auto 16px;
    padding: 4px 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.8);
    color: #aaa;
    font-size: 9px;
}
.ai-message-row {
    display: flex;
    width: 100%;
    margin-bottom: 17px;
}
.ai-message-left {
    align-items: flex-start;
    justify-content: flex-start;
}
.ai-message-right {
    align-items: flex-end;
    justify-content: flex-end;
}
.ai-message-avatar {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    margin-right: 7px;
}
.ai-message-avatar img {
    width: 34px;
    height: 34px;
    object-fit: cover;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #fff;
}
.ai-message-content {
    max-width: calc(100% - 45px);
}
.ai-message-right .ai-message-content {
    max-width: 80%;
}
.ai-message-name {
    margin: 0 0 4px 4px;
    color: #8b7b86;
    font-size: 9px;
    font-weight: 600;
}
.ai-bubble {
    padding: 11px 13px;
    font-size: 13px;
    line-height: 1.65;
    word-break: break-word;
}
.ai-bubble-advisor {
    color: #3e3a3d;
    background: #fff;
    border-radius: 5px 17px 17px 17px;
    box-shadow: 0 2px 6px rgba(38, 31, 35, 0.05);
}
.ai-bubble-user {
    color: #fff;
    background: linear-gradient(135deg, #ff7189, var(--ai-primary));
    border-radius: 17px 5px 17px 17px;
}
.ai-message-content time {
    display: block;
    margin-top: 4px;
    color: #aaa;
    font-size: 8px;
}
.ai-message-right .ai-message-content time {
    text-align: right;
}
/* AIが提案する返信文 */
.ai-suggestion-box {
    margin-top: 8px;
    padding: 12px;
    background: #fff9fb;
    border: 1px solid #ffd8df;
    border-radius: 14px;
}
.ai-suggestion-label {
    margin-bottom: 7px;
    color: var(--ai-primary);
    font-size: 10px;
    font-weight: 700;
}
.ai-suggestion-label i {
    margin-right: 4px;
}
.ai-suggestion-box p {
    margin: 0 0 10px;
    color: #4f474b;
    font-size: 12px;
    line-height: 1.7;
}
.ai-copy-button {
    display: block;
    margin-left: auto;
    padding: 6px 10px;
    border: 1px solid #ffd1d9;
    border-radius: 14px;
    background: #fff;
    color: var(--ai-primary);
    font-size: 9px;
    font-weight: 600;
    cursor: pointer;
}
/* -----------------------
   よくある相談
----------------------- */
.ai-quick-section {
    padding: 0 2px;
}
.ai-quick-section h2 {
    margin: 0 0 10px;
    font-size: 14px;
}
.ai-quick-scroll {
    display: flex;
    gap: 8px;
    padding-bottom: 4px;
    overflow-x: auto;
    scrollbar-width: none;
}
.ai-quick-scroll::-webkit-scrollbar {
    display: none;
}
.ai-quick-button {
    flex-shrink: 0;
    padding: 9px 12px;
    border: 1px solid #f0dbe0;
    border-radius: 18px;
    background: #fff;
    color: #685e63;
    font-size: 11px;
    white-space: nowrap;
    cursor: pointer;
}
.ai-quick-button i {
    margin-right: 5px;
    color: var(--ai-primary);
}
/* -----------------------
   入力エリア
----------------------- */
.ai-input-area {
    position: fixed;
    left: 50%;
    bottom: 70px;
    z-index: 600;
    width: 100%;
    max-width: 430px;
    min-height: 64px;
    padding: 9px 12px;
    transform: translateX(-50%);
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid #eee;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.ai-input-plus {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    margin-bottom: 1px;
    border: 0;
    border-radius: 50%;
    background: #f1f1f3;
    color: #999;
    cursor: pointer;
}
.ai-chat-input {
    flex: 1;
    min-width: 0;
    min-height: 38px;
    max-height: 100px;
    padding: 10px 13px;
    border: 1px solid #e7e7e7;
    border-radius: 20px;
    background: #f6f6f7;
    color: #333;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.4;
    resize: none;
    outline: none;
}
.ai-chat-input:focus {
    border-color: #ffc0cb;
    background: #fff;
}
.ai-send-button {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    margin-bottom: 1px;
    border: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff7189, var(--ai-primary));
    color: #fff;
    font-size: 14px;
    box-shadow: 0 4px 10px rgba(255, 95, 121, 0.25);
    cursor: pointer;
}
/* -----------------------
   AI画面のフッターナビ調整
----------------------- */
.ai-follow-page .bottom-nav {
    left: 50%;
    transform: translateX(-50%);
    max-width: 430px;
    height: 70px;
    padding-bottom: env(safe-area-inset-bottom);
}
.ai-follow-page .nav-item {
    justify-content: center;
}
.ai-follow-page .nav-item i {
    font-size: 20px;
}
.ai-follow-page .nav-item.active {
    color: var(--ai-primary);
}
/* -----------------------
   小さい画面への調整
----------------------- */
@media screen and (max-width: 370px) {
    .ai-main {
        padding-left: 10px;
        padding-right: 10px;
    }
    .ai-advisor-card {
        padding: 15px 12px;
    }
    .ai-advisor-avatar,
    .ai-advisor-avatar img {
        width: 66px;
        height: 66px;
    }
    .ai-advisor-name-row h1 {
        font-size: 14px;
    }
    .ai-status-card strong {
        font-size: 18px;
    }
    .ai-status-card > span {
        font-size: 9px;
    }
}
/* =========================================================
   Board 掲示板画面
========================================================= */
.board-page {
    margin: 0;
    color: #32363a;
    font-family: "Noto Sans JP", sans-serif;
    background: #f8f8f8;
}
.board-page.is-modal-open {
    overflow: hidden;
}
.board-page button,
.board-page input,
.board-page textarea,
.board-page select {
    font: inherit;
}
.board-page button {
    -webkit-tap-highlight-color: transparent;
}
.board-page .app-container {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 95% 4%,
            rgba(255, 237, 225, 0.7) 0,
            transparent 25%
        ),
        #fffaf7;
    box-shadow: 0 0 24px rgba(52, 38, 28, 0.08);
}
/* ヘッダー
--------------------------------------------------------- */
.board-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    padding:
        calc(10px + env(safe-area-inset-top))
        18px
        10px;
    background: rgba(255, 250, 247, 0.94);
    border-bottom: 1px solid rgba(238, 226, 218, 0.86);
    backdrop-filter: blur(14px);
}
.board-header__title {
    margin: 0;
    color: #282d31;
    font-family: "Nunito", sans-serif;
    font-size: 27px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.01em;
}
.board-header__subtitle {
    margin: 3px 0 0;
    color: #8b8581;
    font-size: 10px;
    font-weight: 500;
}
.board-header__actions {
    display: flex;
    gap: 8px;
}
.board-header-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    padding: 0;
    color: #555b5f;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eee5df;
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(65, 43, 28, 0.05);
}
.board-header-button i {
    font-size: 16px;
}
.board-header-button__badge {
    position: absolute;
    top: -3px;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    color: #fff;
    font-family: "Nunito", sans-serif;
    font-size: 9px;
    font-weight: 800;
    background: #ff6417;
    border: 2px solid #fffaf7;
    border-radius: 999px;
    box-sizing: border-box;
}
/* カテゴリ
--------------------------------------------------------- */
.board-categories {
    position: sticky;
    top: 72px;
    z-index: 18;
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    overflow-x: auto;
    background: rgba(255, 250, 247, 0.96);
    border-bottom: 1px solid #f0e7e1;
    scrollbar-width: none;
}
.board-categories::-webkit-scrollbar {
    display: none;
}
.board-category {
    flex: 0 0 auto;
    min-height: 33px;
    padding: 7px 14px;
    color: #77726f;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eee4de;
    border-radius: 999px;
    white-space: nowrap;
}
.board-category.is-active {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            #ff5900 0%,
            #ff7615 100%
        );
    border-color: transparent;
    box-shadow: 0 5px 12px rgba(255, 99, 15, 0.18);
}
/* メイン
--------------------------------------------------------- */
.board-main {
    padding: 14px 12px 32px;
}
/* 投稿を促すカード
--------------------------------------------------------- */
.board-compose-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 32px;
    gap: 11px;
    align-items: center;
    width: 100%;
    min-height: 68px;
    margin-bottom: 12px;
    padding: 11px 13px;
    text-align: left;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eee6e1;
    border-radius: 13px;
    box-shadow: 0 4px 15px rgba(67, 45, 30, 0.045);
}
.board-compose-card__avatar {
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 50%;
}
.board-compose-card__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.board-compose-card__placeholder {
    color: #a19b97;
    font-size: 11px;
    font-weight: 500;
}
.board-compose-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    color: #ff6a20;
    background: #fff0e7;
    border-radius: 50%;
}
/* 案内カード
--------------------------------------------------------- */
.board-guide-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 23px;
    gap: 10px;
    align-items: center;
    margin-bottom: 20px;
    padding: 12px;
    background:
        linear-gradient(
            110deg,
            #fff0e5 0%,
            #fff8f3 100%
        );
    border: 1px solid #ffe2cf;
    border-radius: 11px;
}
.board-guide-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color: #ff7126;
    background: #fff;
    border-radius: 50%;
}
.board-guide-card__title {
    display: block;
    margin-bottom: 3px;
    color: #544b46;
    font-size: 10px;
    font-weight: 700;
}
.board-guide-card__text {
    margin: 0;
    color: #89817c;
    font-size: 8px;
    line-height: 1.65;
}
.board-guide-card__close {
    padding: 5px;
    color: #b5aaa3;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* 見出し
--------------------------------------------------------- */
.board-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 3px 10px;
}
.board-section-heading__title {
    margin: 0;
    color: #34383b;
    font-size: 14px;
    font-weight: 700;
}
.board-sort-button {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 5px 4px;
    color: #8a8582;
    font-size: 9px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* 投稿カード
--------------------------------------------------------- */
.board-post {
    margin-bottom: 12px;
    padding: 14px;
    background: #fff;
    border: 1px solid #eee7e2;
    border-radius: 14px;
    box-shadow: 0 4px 17px rgba(71, 48, 32, 0.045);
}
.board-post[hidden] {
    display: none;
}
.board-post__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 11px;
}
.board-post__profile {
    display: flex;
    gap: 10px;
    align-items: center;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}
.board-post__avatar {
    position: relative;
    flex: 0 0 auto;
    width: 43px;
    height: 43px;
}
.board-post__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.board-post__online {
    position: absolute;
    right: 0;
    bottom: 1px;
    width: 10px;
    height: 10px;
    background: #35c77b;
    border: 2px solid #fff;
    border-radius: 50%;
}
.board-post__user {
    display: block;
    min-width: 0;
}
.board-post__name {
    display: block;
    margin-bottom: 2px;
    color: #363a3d;
    font-size: 12px;
    font-weight: 700;
}
.board-post__meta {
    display: block;
    color: #99938f;
    font-size: 8px;
    font-weight: 500;
}
.board-post__menu {
    width: 34px;
    height: 34px;
    color: #a39d99;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-radius: 50%;
}
.board-post__category {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    margin-bottom: 8px;
    padding: 5px 9px;
    color: #e97b2e;
    font-size: 8px;
    font-weight: 700;
    background: #fff3e9;
    border-radius: 999px;
}
.board-post__category--love {
    color: #e8717c;
    background: #fff0f2;
}
.board-post__category--tweet {
    color: #7783d9;
    background: #f1f2ff;
}
.board-post__text {
    margin: 0;
    color: #4a4d50;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
.board-post__image {
    margin-top: 11px;
    overflow: hidden;
    border-radius: 10px;
}
.board-post__image img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.board-post__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 13px;
    padding-top: 11px;
    border-top: 1px solid #f2ece8;
}
.board-post__reactions {
    display: flex;
    gap: 17px;
    align-items: center;
}
.board-reaction-button,
.board-save-button {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 4px;
    color: #83817f;
    font-size: 10px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.board-reaction-button i,
.board-save-button i {
    font-size: 15px;
}
.board-reaction-button.is-liked {
    color: #ff5f6d;
}
.board-post__time {
    margin: 8px 0 0;
    color: #aaa4a0;
    font-size: 8px;
    text-align: right;
}
/* 投稿ボタン
--------------------------------------------------------- */
.board-floating-button {
    position: fixed;
    right: max(
        20px,
        calc((100vw - 430px) / 2 + 20px)
    );
    bottom: calc(84px + env(safe-area-inset-bottom));
    z-index: 25;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            140deg,
            #ff5600 0%,
            #ff7c16 100%
        );
    border: 0;
    border-radius: 50%;
    box-shadow: 0 9px 22px rgba(255, 91, 0, 0.3);
}
.board-floating-button i {
    font-size: 18px;
}
/* モーダル
--------------------------------------------------------- */
.board-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        visibility 0.25s ease,
        opacity 0.25s ease;
}
.board-modal.is-open {
    visibility: visible;
    opacity: 1;
}
.board-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(38, 30, 25, 0.42);
}
.board-modal__content {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: min(100%, 430px);
    min-height: 53svh;
    max-height: 90svh;
    margin: 0 auto;
    overflow-y: auto;
    background: #fffaf7;
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -10px 35px rgba(42, 29, 21, 0.18);
    transform: translateY(100%);
    transition: transform 0.28s ease;
}
.board-modal.is-open .board-modal__content {
    transform: translateY(0);
}
.board-modal__header {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) 50px;
    align-items: center;
    min-height: 62px;
    padding: 5px 12px;
    border-bottom: 1px solid #eee5df;
}
.board-modal__title {
    margin: 0;
    color: #303438;
    font-size: 14px;
    text-align: center;
}
.board-modal__close,
.board-modal__submit {
    min-height: 38px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.board-modal__close {
    color: #555b5f;
    font-size: 18px;
}
.board-modal__submit {
    color: #ff661a;
    font-size: 12px;
    font-weight: 700;
}
.board-modal__submit:disabled {
    color: #c5bfbb;
    cursor: not-allowed;
}
.board-post-form {
    padding: 18px;
}
.board-post-form__category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.board-post-form__label {
    color: #4b4f52;
    font-size: 11px;
    font-weight: 700;
}
.board-post-form__select {
    min-width: 132px;
    height: 36px;
    padding: 0 28px 0 12px;
    color: #e96b22;
    font-size: 10px;
    font-weight: 700;
    background: #fff0e6;
    border: 0;
    border-radius: 999px;
}
.board-post-form__textarea {
    display: block;
    width: 100%;
    min-height: 170px;
    padding: 15px;
    color: #373b3e;
    font-size: 13px;
    line-height: 1.8;
    resize: vertical;
    background: #fff;
    border: 1px solid #eadfd8;
    border-radius: 10px;
    outline: none;
    box-sizing: border-box;
}
.board-post-form__textarea:focus {
    border-color: #ef8a4d;
    box-shadow: 0 0 0 3px rgba(239, 106, 32, 0.1);
}
.board-post-form__textarea::placeholder {
    color: #bbb4af;
}
.board-post-form__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
}
.board-post-form__image-button {
    display: flex;
    gap: 6px;
    align-items: center;
    padding: 7px 0;
    color: #ed742a;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.board-post-form__count {
    color: #99938f;
    font-family: "Nunito", sans-serif;
    font-size: 10px;
}
/* アクセシビリティ
--------------------------------------------------------- */
.board-page .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
/* PC表示
--------------------------------------------------------- */
@media (min-width: 431px) {
    .board-page {
        background: #f1efed;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .board-header {
        padding-inline: 14px;
    }
    .board-main {
        padding-inline: 9px;
    }
    .board-post {
        padding: 12px;
    }
    .board-post__text {
        font-size: 10px;
    }
    .board-categories {
        padding-inline: 11px;
    }
}
/* =========================================================
   Board：Loveny ピンクテーマ上書き
========================================================= */
.board-page {
    --board-primary: #f45f8f;
    --board-primary-dark: #e94c7f;
    --board-primary-light: #fff0f5;
    --board-primary-pale: #fff7fa;
    --board-primary-border: #f7cfdd;
    --board-primary-shadow: rgba(244, 95, 143, 0.22);
    --board-text: #3f3439;
    --board-subtext: #8f7f86;
    --board-border: #f0e2e7;
    --board-background: #fff8fb;
    --board-card: #ffffff;
    color: var(--board-text);
    background: #f7f0f3;
}
.board-page .app-container {
    background:
        radial-gradient(
            circle at 95% 4%,
            rgba(255, 220, 232, 0.72) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 5% 42%,
            rgba(255, 238, 245, 0.8) 0,
            transparent 28%
        ),
        var(--board-background);
    box-shadow: 0 0 24px rgba(107, 64, 80, 0.08);
}
/* ヘッダー */
.board-header {
    background: rgba(255, 248, 251, 0.95);
    border-bottom-color: var(--board-border);
}
.board-header__title {
    color: #49383f;
}
.board-header__subtitle {
    color: var(--board-subtext);
}
.board-header-button {
    color: #6c5861;
    border-color: var(--board-border);
    box-shadow: 0 3px 10px rgba(107, 64, 80, 0.06);
}
.board-header-button__badge {
    background: var(--board-primary);
    border-color: var(--board-background);
}
/* カテゴリ */
.board-categories {
    background: rgba(255, 248, 251, 0.97);
    border-bottom-color: var(--board-border);
}
.board-category {
    color: #89747d;
    background: #fff;
    border-color: var(--board-border);
}
.board-category.is-active {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--board-primary-dark) 0%,
            var(--board-primary) 55%,
            #f783aa 100%
        );
    border-color: transparent;
    box-shadow: 0 5px 14px var(--board-primary-shadow);
}
/* 投稿入力カード */
.board-compose-card {
    background: var(--board-card);
    border-color: var(--board-border);
    box-shadow: 0 4px 15px rgba(107, 64, 80, 0.05);
}
.board-compose-card__placeholder {
    color: #aa98a0;
}
.board-compose-card__icon {
    color: var(--board-primary);
    background: var(--board-primary-light);
}
/* 案内カード */
.board-guide-card {
    background:
        linear-gradient(
            110deg,
            #ffeaf1 0%,
            #fff7fa 100%
        );
    border-color: var(--board-primary-border);
}
.board-guide-card__icon {
    color: var(--board-primary);
    background: #fff;
}
.board-guide-card__title {
    color: #665057;
}
.board-guide-card__text {
    color: #948188;
}
.board-guide-card__close {
    color: #bbaab0;
}
/* 投稿カード */
.board-post {
    background: var(--board-card);
    border-color: var(--board-border);
    box-shadow: 0 4px 17px rgba(107, 64, 80, 0.05);
}
.board-post__name {
    color: #4b3c42;
}
.board-post__meta {
    color: #a18e96;
}
/* カテゴリラベル */
.board-post__category {
    color: #dc5d88;
    background: #fff0f5;
}
.board-post__category--love {
    color: #e95081;
    background: #ffeaf1;
}
.board-post__category--tweet {
    color: #b85c88;
    background: #fceef5;
}
.board-post__text {
    color: #5c4b52;
}
.board-post__footer {
    border-top-color: #f4e8ec;
}
.board-reaction-button,
.board-save-button {
    color: #95858b;
}
.board-reaction-button.is-liked {
    color: var(--board-primary);
}
/* 投稿作成ボタン */
.board-floating-button {
    background:
        linear-gradient(
            140deg,
            var(--board-primary-dark) 0%,
            var(--board-primary) 56%,
            #f783aa 100%
        );
    box-shadow: 0 9px 22px rgba(244, 95, 143, 0.32);
}
/* 投稿モーダル */
.board-modal__content {
    background: var(--board-background);
    box-shadow: 0 -10px 35px rgba(82, 48, 61, 0.2);
}
.board-modal__header {
    border-bottom-color: var(--board-border);
}
.board-modal__title {
    color: #4b3d42;
}
.board-modal__submit {
    color: var(--board-primary);
}
.board-modal__submit:disabled {
    color: #c7b8be;
}
.board-post-form__select {
    color: var(--board-primary-dark);
    background: var(--board-primary-light);
}
.board-post-form__textarea {
    color: #4d4045;
    border-color: var(--board-border);
}
.board-post-form__textarea:focus {
    border-color: var(--board-primary);
    box-shadow: 0 0 0 3px rgba(244, 95, 143, 0.12);
}
.board-post-form__image-button {
    color: var(--board-primary-dark);
}
/* フッターの選択中表示にも適用する場合 */
.bottom-nav .nav-item.active {
    color: var(--board-primary);
}
.bottom-nav .nav-item.active i {
    color: var(--board-primary);
}
/* =========================================================
   Loveny お相手検索画面
========================================================= */
.partner-search-page {
    --search-primary: #f45f8f;
    --search-primary-dark: #e84c7e;
    --search-primary-light: #fff0f5;
    --search-primary-pale: #fff8fb;
    --search-primary-border: #f5d4df;
    --search-text: #44373d;
    --search-subtext: #95848b;
    --search-border: #f0e2e7;
    --search-card: #fff;
    margin: 0;
    color: var(--search-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f5eff2;
}
.partner-search-page.partner-filter-open {
    overflow: hidden;
}
.partner-search-page button,
.partner-search-page select,
.partner-search-page input {
    font: inherit;
}
.partner-search-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255, 220, 232, 0.75) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 2% 38%,
            rgba(255, 239, 245, 0.9) 0,
            transparent 25%
        ),
        var(--search-primary-pale);
    box-shadow: 0 0 25px rgba(90, 55, 68, 0.08);
}
/* ヘッダー
--------------------------------------------------------- */
.partner-search-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    padding:
        calc(10px + env(safe-area-inset-top))
        18px
        10px;
    background: rgba(255, 248, 251, 0.95);
    border-bottom: 1px solid var(--search-border);
    backdrop-filter: blur(14px);
}
.partner-search-header__title {
    margin: 0;
    color: #493941;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
}
.partner-search-header__subtitle {
    margin: 3px 0 0;
    color: var(--search-subtext);
    font-size: 10px;
    font-weight: 500;
}
.partner-search-header__notification {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    padding: 0;
    color: #715f67;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(99, 60, 76, 0.06);
}
.partner-search-header__notification i {
    font-size: 17px;
}
.partner-search-header__badge {
    position: absolute;
    top: -3px;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    background: var(--search-primary);
    border: 2px solid var(--search-primary-pale);
    border-radius: 999px;
    box-sizing: border-box;
}
/* メイン
--------------------------------------------------------- */
.partner-search-main {
    padding: 14px 12px 32px;
}
/* 検索ツールバー
--------------------------------------------------------- */
.partner-search-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 49px;
    gap: 9px;
    margin-bottom: 11px;
}
.partner-search-input-button {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 7px 13px;
    color: #a08d95;
    text-align: left;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 13px;
    box-shadow: 0 4px 14px rgba(99, 60, 76, 0.045);
}
.partner-search-input-button__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--search-primary);
}
.partner-search-input-button__text {
    font-size: 11px;
    font-weight: 500;
}
.partner-filter-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0;
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            135deg,
            var(--search-primary-dark),
            #f77fa6
        );
    border: 0;
    border-radius: 13px;
    box-shadow: 0 5px 14px rgba(244, 95, 143, 0.22);
}
.partner-filter-button i {
    font-size: 17px;
}
.partner-filter-button__count {
    position: absolute;
    top: -4px;
    right: -4px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    color: var(--search-primary-dark);
    font-size: 9px;
    font-weight: 700;
    background: #fff;
    border: 1px solid var(--search-primary-border);
    border-radius: 999px;
}
/* 検索条件チップ
--------------------------------------------------------- */
.partner-search-conditions {
    display: flex;
    gap: 7px;
    margin-bottom: 22px;
    padding-bottom: 2px;
    overflow-x: auto;
    scrollbar-width: none;
}
.partner-search-conditions::-webkit-scrollbar {
    display: none;
}
.partner-condition-chip {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    color: #8b7880;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 999px;
}
.partner-condition-chip.is-active {
    color: var(--search-primary-dark);
    background: var(--search-primary-light);
    border-color: var(--search-primary-border);
}
.partner-condition-chip .fa-circle {
    color: #31c67b;
    font-size: 7px;
}
/* セクションヘッダー
--------------------------------------------------------- */
.partner-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 0 3px 11px;
}
.partner-section-header__label {
    display: block;
    margin-bottom: 2px;
    color: var(--search-primary);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
.partner-section-header__title {
    margin: 0;
    color: #493a41;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}
.partner-section-header__reload,
.partner-section-header__more {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 5px 0;
    color: #98868e;
    font-size: 9px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* ピックアップカード
--------------------------------------------------------- */
.partner-pickup {
    margin-bottom: 27px;
}
.partner-feature-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 17px;
    box-shadow: 0 7px 24px rgba(91, 56, 69, 0.09);
}
.partner-feature-card__image-link {
    position: relative;
    display: block;
    min-height: 420px;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
}
.partner-feature-card__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.partner-feature-card__gradient {
    position: absolute;
    inset: 35% 0 0;
    background:
        linear-gradient(
            180deg,
            rgba(32, 21, 26, 0) 0%,
            rgba(32, 21, 26, 0.18) 30%,
            rgba(32, 21, 26, 0.86) 100%
        );
}
.partner-feature-card__online {
    position: absolute;
    top: 13px;
    left: 13px;
    display: inline-flex;
    gap: 5px;
    align-items: center;
    padding: 6px 9px;
    font-size: 8px;
    font-weight: 700;
    background: rgba(35, 35, 35, 0.58);
    border-radius: 999px;
    backdrop-filter: blur(8px);
}
.partner-feature-card__online span {
    width: 7px;
    height: 7px;
    background: #3bd183;
    border-radius: 50%;
}
.partner-feature-card__match {
    position: absolute;
    top: 13px;
    right: 13px;
    padding: 6px 10px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    background:
        linear-gradient(
            100deg,
            var(--search-primary-dark),
            var(--search-primary)
        );
    border-radius: 999px;
    box-shadow: 0 4px 10px rgba(232, 76, 126, 0.25);
}
.partner-feature-card__profile {
    position: absolute;
    right: 18px;
    bottom: 18px;
    left: 18px;
    z-index: 2;
}
.partner-feature-card__name-row {
    display: flex;
    gap: 7px;
    align-items: center;
}
.partner-feature-card__name {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
}
.partner-feature-card__verified,
.partner-mini-card__verified,
.partner-row-card__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    color: #fff;
    font-size: 8px;
    background: #48a8f2;
    border-radius: 50%;
}
.partner-feature-card__meta {
    margin: 3px 0 8px;
    font-size: 10px;
    font-weight: 500;
    opacity: 0.92;
}
.partner-feature-card__message {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.7;
    opacity: 0.9;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.partner-feature-card__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 83px;
    padding: 11px;
}
.partner-card-action {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    border: 0;
    border-radius: 50%;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}
.partner-card-action:hover {
    transform: translateY(-2px);
}
.partner-card-action--sub {
    width: 45px;
    height: 45px;
    color: #a8989f;
    background: #f7f1f3;
}
.partner-card-action--message {
    width: 51px;
    height: 51px;
    color: var(--search-primary);
    background: var(--search-primary-light);
    border: 1px solid var(--search-primary-border);
}
.partner-card-action--like {
    width: 59px;
    height: 59px;
    color: #fff;
    background:
        linear-gradient(
            140deg,
            var(--search-primary-dark),
            #f77fa6
        );
    box-shadow: 0 8px 18px rgba(244, 95, 143, 0.28);
}
.partner-card-action--like i {
    font-size: 21px;
}
/* ミニカード
--------------------------------------------------------- */
.partner-list-section {
    margin-bottom: 27px;
}
.partner-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.partner-mini-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 14px;
    box-shadow: 0 4px 15px rgba(91, 56, 69, 0.05);
}
.partner-mini-card__link {
    color: inherit;
    text-decoration: none;
}
.partner-mini-card__image-wrapper {
    position: relative;
    aspect-ratio: 1 / 1.12;
    overflow: hidden;
}
.partner-mini-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.partner-mini-card__new {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 4px 7px;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    background: var(--search-primary);
    border-radius: 999px;
}
.partner-mini-card__online,
.partner-row-card__online {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 11px;
    height: 11px;
    background: #35c77c;
    border: 2px solid #fff;
    border-radius: 50%;
}
.partner-mini-card__favorite {
    position: absolute;
    top: 7px;
    right: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    color: #fff;
    cursor: pointer;
    background: rgba(44, 32, 37, 0.38);
    border: 0;
    border-radius: 50%;
    backdrop-filter: blur(7px);
}
.partner-mini-card__favorite.is-active {
    color: #fff;
    background: var(--search-primary);
}
.partner-mini-card__body {
    padding: 10px;
}
.partner-mini-card__name-row {
    display: flex;
    gap: 5px;
    align-items: center;
}
.partner-mini-card__name {
    margin: 0;
    color: #493a40;
    font-size: 12px;
    font-weight: 700;
}
.partner-mini-card__verified {
    width: 14px;
    height: 14px;
    font-size: 7px;
}
.partner-mini-card__meta {
    margin: 3px 0 7px;
    color: #93828a;
    font-size: 8px;
}
.partner-mini-card__tags {
    display: flex;
    gap: 4px;
    overflow: hidden;
}
.partner-mini-card__tags span {
    flex: 0 0 auto;
    padding: 4px 6px;
    color: #a05f78;
    font-size: 7px;
    font-weight: 600;
    background: var(--search-primary-light);
    border-radius: 999px;
}
/* 横長カード
--------------------------------------------------------- */
.partner-horizontal-list {
    display: grid;
    gap: 9px;
}
.partner-row-card {
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 14px;
    box-shadow: 0 4px 15px rgba(91, 56, 69, 0.045);
}
.partner-row-card__link {
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr);
    gap: 11px;
    padding: 10px;
    color: inherit;
    text-decoration: none;
}
.partner-row-card__image-wrapper {
    position: relative;
    width: 94px;
    height: 112px;
    overflow: hidden;
    border-radius: 10px;
}
.partner-row-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.partner-row-card__body {
    min-width: 0;
    padding: 2px 0;
}
.partner-row-card__top {
    display: flex;
    justify-content: space-between;
    gap: 6px;
}
.partner-row-card__name {
    margin: 0;
    color: #493a40;
    font-size: 12px;
    font-weight: 700;
}
.partner-row-card__verified {
    width: 14px;
    height: 14px;
    font-size: 7px;
}
.partner-row-card__meta {
    margin: 3px 0 0;
    color: #95848b;
    font-size: 7px;
}
.partner-row-card__compatibility {
    flex: 0 0 auto;
    color: var(--search-primary-dark);
    font-size: 10px;
    font-weight: 700;
}
.partner-row-card__message {
    display: -webkit-box;
    margin: 10px 0;
    overflow: hidden;
    color: #695860;
    font-size: 8px;
    line-height: 1.7;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.partner-row-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.partner-row-card__footer span {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 4px 6px;
    color: #91727f;
    font-size: 7px;
    background: #faf3f6;
    border-radius: 999px;
}
/* 検索モーダル
--------------------------------------------------------- */
.partner-filter-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        visibility 0.25s ease,
        opacity 0.25s ease;
}
.partner-filter-modal.is-open {
    visibility: visible;
    opacity: 1;
}
.partner-filter-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(55, 39, 46, 0.48);
}
.partner-filter-modal__panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: min(100%, 430px);
    max-height: 92svh;
    margin: 0 auto;
    overflow-y: auto;
    background: var(--search-primary-pale);
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -12px 36px rgba(70, 44, 54, 0.2);
    transform: translateY(100%);
    transition: transform 0.28s ease;
}
.partner-filter-modal.is-open
.partner-filter-modal__panel {
    transform: translateY(0);
}
.partner-filter-modal__header {
    position: sticky;
    top: 0;
    z-index: 4;
    display: grid;
    grid-template-columns: 65px minmax(0, 1fr) 65px;
    align-items: center;
    min-height: 61px;
    padding: 4px 11px;
    background: rgba(255, 248, 251, 0.97);
    border-bottom: 1px solid var(--search-border);
    backdrop-filter: blur(12px);
}
.partner-filter-modal__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
    text-align: center;
}
.partner-filter-modal__close,
.partner-filter-modal__reset {
    min-height: 38px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.partner-filter-modal__close {
    color: #66555d;
    font-size: 17px;
    text-align: left;
}
.partner-filter-modal__reset {
    color: var(--search-primary-dark);
    font-size: 9px;
    font-weight: 700;
}
.partner-filter-form {
    padding-bottom: 90px;
}
.partner-filter-section {
    margin: 12px;
    padding: 15px;
    background: #fff;
    border: 1px solid var(--search-border);
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(91, 56, 69, 0.04);
}
.partner-filter-section__title {
    margin: 0 0 14px;
    color: #493941;
    font-size: 12px;
    font-weight: 700;
}
.partner-filter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 10px;
}
.partner-filter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 17px minmax(0, 1fr);
    gap: 5px;
    align-items: end;
    margin-bottom: 14px;
}
.partner-filter-row__separator {
    padding-bottom: 12px;
    color: #9f8d95;
    font-size: 10px;
    text-align: center;
}
.partner-filter-field {
    display: block;
    min-width: 0;
    margin-bottom: 13px;
}
.partner-filter-grid .partner-filter-field {
    margin-bottom: 0;
}
.partner-filter-field__label {
    display: flex;
    gap: 6px;
    align-items: center;
    min-height: 18px;
    margin-bottom: 6px;
    color: #79656e;
    font-size: 9px;
    font-weight: 700;
}
.partner-filter-field__label i {
    width: 13px;
    color: var(--search-primary);
    text-align: center;
}
.partner-filter-field__label--empty {
    visibility: hidden;
}
.partner-filter-field select {
    display: block;
    width: 100%;
    height: 43px;
    padding: 0 30px 0 11px;
    color: #55464d;
    font-size: 10px;
    background: #fffafd;
    border: 1px solid var(--search-border);
    border-radius: 8px;
    outline: none;
    box-sizing: border-box;
}
.partner-filter-field select:focus {
    border-color: var(--search-primary);
    box-shadow: 0 0 0 3px rgba(244, 95, 143, 0.1);
}
/* スイッチ
--------------------------------------------------------- */
.partner-filter-switches {
    display: grid;
    gap: 2px;
}
.partner-filter-switch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 49px;
    color: #5e4d54;
    font-size: 10px;
    font-weight: 600;
    border-bottom: 1px solid #f4e8ec;
}
.partner-filter-switch:last-child {
    border-bottom: 0;
}
.partner-filter-switch input {
    position: absolute;
    opacity: 0;
}
.partner-filter-switch__design {
    position: relative;
    width: 42px;
    height: 24px;
    background: #ded4d8;
    border-radius: 999px;
    transition: background-color 0.2s ease;
}
.partner-filter-switch__design::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(68, 44, 53, 0.18);
    transition: transform 0.2s ease;
}
.partner-filter-switch input:checked
+ .partner-filter-switch__design {
    background: var(--search-primary);
}
.partner-filter-switch input:checked
+ .partner-filter-switch__design::after {
    transform: translateX(18px);
}
/* 検索ボタン
--------------------------------------------------------- */
.partner-filter-footer {
    position: sticky;
    bottom: 0;
    z-index: 4;
    padding:
        14px
        14px
        calc(18px + env(safe-area-inset-bottom));
    background:
        linear-gradient(
            180deg,
            rgba(255, 248, 251, 0) 0%,
            rgba(255, 248, 251, 0.96) 30%,
            #fff8fb 60%
        );
}
.partner-filter-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 55px;
    padding: 13px 20px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--search-primary-dark),
            var(--search-primary),
            #f781a8
        );
    border: 0;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(244, 95, 143, 0.25);
}
/* フッターのアクティブ色
--------------------------------------------------------- */
.partner-search-page .bottom-nav .nav-item.active {
    color: var(--search-primary);
}
.partner-search-page .bottom-nav .nav-item.active i {
    color: var(--search-primary);
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .partner-search-page {
        background: #f3edef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .partner-search-main {
        padding-inline: 9px;
    }
    .partner-feature-card__image-link {
        min-height: 385px;
    }
    .partner-feature-card__profile {
        right: 15px;
        bottom: 15px;
        left: 15px;
    }
    .partner-feature-card__name {
        font-size: 22px;
    }
    .partner-row-card__link {
        grid-template-columns: 84px minmax(0, 1fr);
        gap: 9px;
        padding: 8px;
    }
    .partner-row-card__image-wrapper {
        width: 84px;
        height: 105px;
    }
    .partner-filter-section {
        margin-inline: 9px;
        padding: 13px;
    }
}
/* =========================================================
   Loveny やりとり画面
========================================================= */
.message-page {
    --message-primary: #f45f8f;
    --message-primary-dark: #e84c7e;
    --message-primary-light: #fff0f5;
    --message-primary-pale: #fff8fb;
    --message-primary-border: #f5d4df;
    --message-text: #46383e;
    --message-subtext: #95858c;
    --message-border: #f0e2e7;
    --message-card: #ffffff;
    margin: 0;
    color: var(--message-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f4eef1;
}
.message-page.message-modal-open {
    overflow: hidden;
}
.message-page button,
.message-page input {
    font: inherit;
}
.message-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 219, 232, 0.75) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 43%,
            rgba(255, 239, 245, 0.9) 0,
            transparent 24%
        ),
        var(--message-primary-pale);
    box-shadow: 0 0 25px rgba(91, 56, 70, 0.08);
}
/* ヘッダー
--------------------------------------------------------- */
.message-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    padding:
        calc(10px + env(safe-area-inset-top))
        18px
        10px;
    background: rgba(255, 248, 251, 0.95);
    border-bottom: 1px solid var(--message-border);
    backdrop-filter: blur(14px);
}
.message-header__title {
    margin: 0;
    color: #493941;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
}
.message-header__subtitle {
    margin: 3px 0 0;
    color: var(--message-subtext);
    font-size: 10px;
    font-weight: 500;
}
.message-header__actions {
    display: flex;
    gap: 8px;
}
.message-header-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: #705e66;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(99, 60, 76, 0.06);
}
.message-header-button i {
    font-size: 16px;
}
.message-header-button__badge {
    position: absolute;
    top: -3px;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    background: var(--message-primary);
    border: 2px solid var(--message-primary-pale);
    border-radius: 999px;
    box-sizing: border-box;
}
/* メイン
--------------------------------------------------------- */
.message-main {
    padding: 14px 12px 32px;
}
/* 安全利用案内
--------------------------------------------------------- */
.message-safety-card {
    display: grid;
    grid-template-columns: 39px minmax(0, 1fr) 20px;
    gap: 10px;
    align-items: center;
    margin-bottom: 22px;
    padding: 12px;
    background:
        linear-gradient(
            110deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border: 1px solid var(--message-primary-border);
    border-radius: 12px;
}
.message-safety-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: var(--message-primary);
    background: #fff;
    border-radius: 50%;
}
.message-safety-card__body {
    min-width: 0;
}
.message-safety-card__title {
    display: block;
    margin-bottom: 3px;
    color: #654f58;
    font-size: 10px;
    font-weight: 700;
}
.message-safety-card__text {
    margin: 0;
    color: #948189;
    font-size: 8px;
    line-height: 1.65;
}
.message-safety-card__link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    color: #b49ca6;
    text-decoration: none;
}
/* セクション見出し
--------------------------------------------------------- */
.message-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 0 3px 11px;
}
.message-section-header__label {
    display: block;
    margin-bottom: 2px;
    color: var(--message-primary);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
.message-section-header__title {
    margin: 0;
    color: #493a41;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}
.message-section-header__more {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 5px 0;
    color: #98868e;
    font-size: 9px;
    font-weight: 600;
    text-decoration: none;
}
/* 新しいマッチング
--------------------------------------------------------- */
.new-match-section {
    margin-bottom: 28px;
}
.new-match-list {
    display: flex;
    gap: 11px;
    padding: 2px 2px 7px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}
.new-match-list::-webkit-scrollbar {
    display: none;
}
.new-match-item {
    flex: 0 0 94px;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 156px;
    padding: 11px 7px;
    color: inherit;
    text-align: center;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 15px;
    box-shadow: 0 4px 14px rgba(91, 56, 69, 0.05);
    scroll-snap-align: start;
    box-sizing: border-box;
}
.new-match-item__avatar {
    position: relative;
    display: block;
    width: 68px;
    height: 68px;
    margin-bottom: 7px;
}
.new-match-item__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow:
        0 0 0 2px var(--message-primary-border),
        0 4px 10px rgba(91, 56, 69, 0.1);
}
.new-match-item__online {
    position: absolute;
    right: 1px;
    bottom: 3px;
    width: 11px;
    height: 11px;
    background: #35c77c;
    border: 2px solid #fff;
    border-radius: 50%;
}
.new-match-item__new {
    position: absolute;
    top: -4px;
    left: -3px;
    padding: 3px 6px;
    color: #fff;
    font-size: 6px;
    font-weight: 700;
    background: var(--message-primary);
    border: 2px solid #fff;
    border-radius: 999px;
}
.new-match-item__name {
    display: block;
    color: #493a40;
    font-size: 11px;
    font-weight: 700;
}
.new-match-item__meta {
    display: block;
    margin-top: 1px;
    color: #98868d;
    font-size: 8px;
}
.new-match-item__message {
    display: block;
    margin-top: 7px;
    padding: 5px 8px;
    color: var(--message-primary-dark);
    font-size: 7px;
    font-weight: 700;
    background: var(--message-primary-light);
    border-radius: 999px;
}
/* 未読フィルター
--------------------------------------------------------- */
.message-unread-filter {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding: 6px 10px;
    color: #927f87;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 999px;
}
.message-unread-filter.is-active {
    color: var(--message-primary-dark);
    background: var(--message-primary-light);
    border-color: var(--message-primary-border);
}
/* 会話一覧
--------------------------------------------------------- */
.message-conversation-list {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 15px;
    box-shadow: 0 5px 18px rgba(91, 56, 69, 0.05);
}
.message-conversation {
    position: relative;
    display: grid;
    grid-template-columns: 57px minmax(0, 1fr) 28px;
    gap: 11px;
    align-items: center;
    min-height: 92px;
    padding: 13px 12px;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid #f4e9ed;
    transition: background-color 0.2s ease;
    box-sizing: border-box;
}
.message-conversation:last-child {
    border-bottom: 0;
}
.message-conversation:hover {
    background: #fffafd;
}
.message-conversation[hidden] {
    display: none;
}
.message-conversation.is-unread {
    background:
        linear-gradient(
            100deg,
            #fff5f8 0%,
            #ffffff 72%
        );
}
.message-conversation.is-unread::before {
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    left: 0;
    width: 3px;
    background:
        linear-gradient(
            180deg,
            var(--message-primary-dark),
            var(--message-primary)
        );
    border-radius: 0 999px 999px 0;
}
.message-conversation__avatar {
    position: relative;
    display: block;
    width: 57px;
    height: 57px;
}
.message-conversation__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.message-conversation__online {
    position: absolute;
    right: 1px;
    bottom: 2px;
    width: 11px;
    height: 11px;
    background: #35c77c;
    border: 2px solid #fff;
    border-radius: 50%;
}
.message-conversation__content {
    display: block;
    min-width: 0;
}
.message-conversation__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
}
.message-conversation__name {
    display: flex;
    gap: 5px;
    align-items: center;
    min-width: 0;
    color: #493a40;
    font-size: 12px;
    font-weight: 700;
}
.message-conversation__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: #fff;
    font-size: 6px;
    background: #48a8f2;
    border-radius: 50%;
}
.message-conversation__time {
    flex: 0 0 auto;
    color: #a18f96;
    font-size: 8px;
    font-weight: 500;
}
.message-conversation__meta {
    display: block;
    margin: 2px 0 6px;
    color: #a08d94;
    font-size: 7px;
}
.message-conversation__preview {
    display: block;
    overflow: hidden;
    color: #736168;
    font-size: 9px;
    line-height: 1.55;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.message-conversation.is-unread
.message-conversation__preview {
    color: #59464e;
    font-weight: 700;
}
.message-conversation__self {
    color: var(--message-primary-dark);
    font-weight: 700;
}
.message-conversation__status {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
    justify-content: center;
    color: #c0afb6;
}
.message-conversation__unread-count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 21px;
    height: 21px;
    padding: 0 5px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    background:
        linear-gradient(
            135deg,
            var(--message-primary-dark),
            var(--message-primary)
        );
    border-radius: 999px;
    box-sizing: border-box;
}
.message-conversation__status i {
    font-size: 10px;
}
/* 空表示
--------------------------------------------------------- */
.message-empty {
    padding: 45px 20px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 15px;
}
.message-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 12px;
    color: var(--message-primary);
    font-size: 23px;
    background: var(--message-primary-light);
    border-radius: 50%;
}
.message-empty__title {
    display: block;
    color: #55464d;
    font-size: 12px;
}
.message-empty__text {
    margin: 7px 0 0;
    color: #a08f96;
    font-size: 9px;
}
/* 検索モーダル
--------------------------------------------------------- */
.message-search-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        visibility 0.25s ease,
        opacity 0.25s ease;
}
.message-search-modal.is-open {
    visibility: visible;
    opacity: 1;
}
.message-search-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(55, 39, 46, 0.46);
}
.message-search-modal__panel {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    width: min(100%, 430px);
    margin: 0 auto;
    padding-top: env(safe-area-inset-top);
    background: var(--message-primary-pale);
    border-radius: 0 0 20px 20px;
    box-shadow: 0 12px 30px rgba(70, 44, 54, 0.19);
    transform: translateY(-100%);
    transition: transform 0.27s ease;
}
.message-search-modal.is-open
.message-search-modal__panel {
    transform: translateY(0);
}
.message-search-modal__header {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    align-items: center;
    min-height: 58px;
    padding: 4px 10px;
    border-bottom: 1px solid var(--message-border);
}
.message-search-modal__close {
    width: 40px;
    height: 40px;
    color: #6b5961;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.message-search-modal__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
    text-align: center;
}
.message-search-modal__body {
    padding: 15px 15px 21px;
}
.message-search-field {
    display: grid;
    grid-template-columns: 27px minmax(0, 1fr) 28px;
    align-items: center;
    min-height: 49px;
    padding: 0 12px;
    background: #fff;
    border: 1px solid var(--message-border);
    border-radius: 13px;
    box-shadow: 0 4px 13px rgba(91, 56, 69, 0.05);
}
.message-search-field:focus-within {
    border-color: var(--message-primary);
    box-shadow: 0 0 0 3px rgba(244, 95, 143, 0.1);
}
.message-search-field__icon {
    color: var(--message-primary);
}
.message-search-field__input {
    width: 100%;
    height: 47px;
    padding: 0 5px;
    color: #55464d;
    font-size: 11px;
    background: transparent;
    border: 0;
    outline: none;
    box-sizing: border-box;
}
.message-search-field__input::placeholder {
    color: #b3a4aa;
}
.message-search-field__clear {
    padding: 5px;
    color: #c0afb6;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* フッターの選択色
--------------------------------------------------------- */
.message-page .bottom-nav .nav-item.active {
    color: var(--message-primary);
}
.message-page .bottom-nav .nav-item.active i {
    color: var(--message-primary);
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .message-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .message-main {
        padding-inline: 9px;
    }
    .new-match-item {
        flex-basis: 88px;
    }
    .message-conversation {
        grid-template-columns: 52px minmax(0, 1fr) 26px;
        gap: 9px;
        padding-inline: 10px;
    }
    .message-conversation__avatar {
        width: 52px;
        height: 52px;
    }
}
/* =========================================================
   Loveny マイページ・ダッシュボード
========================================================= */
.mypage-dashboard-page {
    --mypage-primary: #f45f8f;
    --mypage-primary-dark: #e84c7e;
    --mypage-primary-light: #fff0f5;
    --mypage-primary-pale: #fff8fb;
    --mypage-primary-border: #f5d4df;
    --mypage-text: #46383e;
    --mypage-subtext: #95858c;
    --mypage-border: #f0e2e7;
    --mypage-card: #fff;
    margin: 0;
    color: var(--mypage-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f4eef1;
}
.mypage-dashboard-page button,
.mypage-dashboard-page input {
    font: inherit;
}
.mypage-dashboard-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 219, 232, 0.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 39%,
            rgba(255, 239, 245, 0.92) 0,
            transparent 26%
        ),
        var(--mypage-primary-pale);
    box-shadow: 0 0 25px rgba(91, 56, 70, 0.08);
}
/* ヘッダー
--------------------------------------------------------- */
.mypage-dashboard-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    padding:
        calc(10px + env(safe-area-inset-top))
        18px
        10px;
    background: rgba(255, 248, 251, 0.95);
    border-bottom: 1px solid var(--mypage-border);
    backdrop-filter: blur(14px);
}
.mypage-dashboard-header__title {
    margin: 0;
    color: #493941;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
}
.mypage-dashboard-header__subtitle {
    margin: 3px 0 0;
    color: var(--mypage-subtext);
    font-size: 10px;
    font-weight: 500;
}
.mypage-dashboard-header__actions {
    display: flex;
    gap: 8px;
}
.mypage-dashboard-header__button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: #705e66;
    text-decoration: none;
    cursor: pointer;
    background: #fff;
    border: 1px solid var(--mypage-border);
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(99, 60, 76, 0.06);
    box-sizing: border-box;
}
.mypage-dashboard-header__badge {
    position: absolute;
    top: -3px;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    background: var(--mypage-primary);
    border: 2px solid var(--mypage-primary-pale);
    border-radius: 999px;
    box-sizing: border-box;
}
/* メイン
--------------------------------------------------------- */
.mypage-dashboard-main {
    padding: 14px 12px 32px;
}
/* プロフィールカード
--------------------------------------------------------- */
.mypage-profile-card {
    margin-bottom: 14px;
    padding: 15px;
    background:
        linear-gradient(
            145deg,
            #fff 0%,
            #fff9fb 100%
        );
    border: 1px solid var(--mypage-border);
    border-radius: 18px;
    box-shadow: 0 7px 24px rgba(91, 56, 69, 0.08);
}
.mypage-profile-card__top {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) 45px;
    gap: 12px;
    align-items: center;
}
.mypage-profile-card__avatar {
    position: relative;
    display: block;
    width: 76px;
    height: 76px;
}
.mypage-profile-card__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow:
        0 0 0 2px var(--mypage-primary-border),
        0 5px 13px rgba(91, 56, 69, 0.12);
}
.mypage-profile-card__online {
    position: absolute;
    right: 2px;
    bottom: 4px;
    width: 12px;
    height: 12px;
    background: #35c77c;
    border: 2px solid #fff;
    border-radius: 50%;
}
.mypage-profile-card__edit-icon {
    position: absolute;
    right: -2px;
    bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    color: #fff;
    font-size: 9px;
    background: var(--mypage-primary);
    border: 2px solid #fff;
    border-radius: 50%;
}
.mypage-profile-card__body {
    min-width: 0;
}
.mypage-profile-card__name-row {
    display: flex;
    gap: 6px;
    align-items: center;
}
.mypage-profile-card__name {
    margin: 0;
    color: #493a40;
    font-size: 19px;
    font-weight: 700;
}
.mypage-profile-card__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    color: #fff;
    font-size: 8px;
    background: #48a8f2;
    border-radius: 50%;
}
.mypage-profile-card__meta {
    margin: 4px 0;
    color: #88757e;
    font-size: 9px;
}
.mypage-profile-card__id {
    margin: 0;
    color: #b09fa6;
    font-size: 7px;
}
.mypage-profile-card__edit {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    color: var(--mypage-primary-dark);
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
    background: var(--mypage-primary-light);
    border-radius: 999px;
}
/* プロフィール完成度 */
.mypage-profile-progress {
    margin-top: 17px;
    padding-top: 14px;
    border-top: 1px solid #f3e7eb;
}
.mypage-profile-progress__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 8px;
}
.mypage-profile-progress__label {
    display: block;
    margin-bottom: 2px;
    color: #8d7a82;
    font-size: 8px;
    font-weight: 600;
}
.mypage-profile-progress__value {
    color: #493a40;
    font-size: 17px;
}
.mypage-profile-progress__remaining {
    color: var(--mypage-primary-dark);
    font-size: 8px;
    font-weight: 700;
}
.mypage-profile-progress__bar {
    width: 100%;
    height: 8px;
    overflow: hidden;
    background: #f1e5e9;
    border-radius: 999px;
}
.mypage-profile-progress__bar span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--mypage-primary-dark),
            var(--mypage-primary),
            #f783a9
        );
    border-radius: 999px;
    box-shadow: 0 2px 6px rgba(244, 95, 143, 0.18);
}
.mypage-profile-progress__note {
    margin: 8px 0 0;
    color: #a08d95;
    font-size: 7px;
    line-height: 1.6;
}
.mypage-profile-card__button {
    display: flex;
    gap: 7px;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    margin-top: 14px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            var(--mypage-primary-dark),
            var(--mypage-primary),
            #f781a8
        );
    border-radius: 999px;
    box-shadow: 0 7px 16px rgba(244, 95, 143, 0.21);
}
/* 活動カード
--------------------------------------------------------- */
.mypage-activity-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}
.mypage-activity-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 104px;
    padding: 12px 5px 9px;
    color: inherit;
    text-align: center;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--mypage-border);
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(91, 56, 69, 0.045);
    box-sizing: border-box;
}
.mypage-activity-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    margin-bottom: 5px;
    color: var(--mypage-primary);
    font-size: 13px;
    background: var(--mypage-primary-light);
    border-radius: 50%;
}
.mypage-activity-card__number {
    color: #493a40;
    font-size: 18px;
    line-height: 1.2;
}
.mypage-activity-card__label {
    margin-top: 3px;
    color: #938189;
    font-size: 7px;
    font-weight: 600;
}
.mypage-activity-card__new {
    position: absolute;
    top: 7px;
    right: 7px;
    padding: 2px 5px;
    color: #fff;
    font-size: 6px;
    font-weight: 700;
    background: var(--mypage-primary);
    border-radius: 999px;
}
/* 本人確認
--------------------------------------------------------- */
.mypage-verification-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 25px;
    gap: 10px;
    align-items: center;
    margin-bottom: 14px;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--mypage-border);
    border-radius: 13px;
}
.mypage-verification-card.is-completed {
    background:
        linear-gradient(
            110deg,
            #f3fbff 0%,
            #fff 100%
        );
    border-color: #d9ecf7;
}
.mypage-verification-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color: #49a5dd;
    background: #eaf7ff;
    border-radius: 50%;
}
.mypage-verification-card__label {
    display: block;
    margin-bottom: 2px;
    color: #8ba0ac;
    font-size: 7px;
}
.mypage-verification-card__title {
    display: block;
    color: #4d626d;
    font-size: 10px;
}
.mypage-verification-card__text {
    margin: 3px 0 0;
    color: #95a8b1;
    font-size: 7px;
}
.mypage-verification-card__status {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    color: #fff;
    font-size: 8px;
    background: #48a8f2;
    border-radius: 50%;
}
/* AIアドバイス
--------------------------------------------------------- */
.mypage-advice-card {
    margin-bottom: 14px;
    padding: 14px;
    background:
        linear-gradient(
            125deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border: 1px solid var(--mypage-primary-border);
    border-radius: 15px;
}
.mypage-advice-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
}
.mypage-advice-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: var(--mypage-primary);
    background: #fff;
    border-radius: 50%;
}
.mypage-advice-card__label {
    display: block;
    color: var(--mypage-primary);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
.mypage-advice-card__title {
    margin: 2px 0 0;
    color: #624e56;
    font-size: 11px;
}
.mypage-advice-card__text {
    margin: 12px 0;
    color: #76626a;
    font-size: 9px;
    line-height: 1.75;
}
.mypage-advice-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.mypage-advice-card__effect {
    display: flex;
    gap: 4px;
    align-items: center;
    color: #b16a84;
    font-size: 7px;
    font-weight: 600;
}
.mypage-advice-card__link {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 6px 10px;
    color: var(--mypage-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background: #fff;
    border-radius: 999px;
}
/* コイン
--------------------------------------------------------- */
.mypage-coin-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 25px;
    padding: 14px;
    background:
        linear-gradient(
            120deg,
            #fff8e9 0%,
            #fffdf8 100%
        );
    border: 1px solid #f4e3ba;
    border-radius: 15px;
    box-shadow: 0 4px 14px rgba(117, 83, 32, 0.05);
}
.mypage-coin-card__left {
    display: flex;
    gap: 11px;
    align-items: center;
}
.mypage-coin-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    color: #e6a72f;
    font-size: 18px;
    background: #fff;
    border-radius: 50%;
}
.mypage-coin-card__label {
    display: block;
    color: #9e895f;
    font-size: 7px;
}
.mypage-coin-card__amount {
    display: flex;
    gap: 4px;
    align-items: baseline;
}
.mypage-coin-card__amount strong {
    color: #6f5a32;
    font-size: 20px;
}
.mypage-coin-card__amount span {
    color: #a68c5a;
    font-size: 8px;
}
.mypage-coin-card__button {
    padding: 8px 13px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            #e6a72f,
            #f2bd4d
        );
    border-radius: 999px;
    box-shadow: 0 5px 12px rgba(230, 167, 47, 0.2);
}
/* メニューセクション
--------------------------------------------------------- */
.mypage-menu-section {
    margin-bottom: 23px;
}
.mypage-section-heading {
    margin: 0 3px 9px;
}
.mypage-section-heading__label {
    display: block;
    margin-bottom: 2px;
    color: var(--mypage-primary);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
.mypage-section-heading__title {
    margin: 0;
    color: #493a41;
    font-size: 14px;
}
.mypage-menu-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mypage-border);
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(91, 56, 69, 0.045);
}
.mypage-menu-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto 14px;
    gap: 10px;
    align-items: center;
    min-height: 67px;
    padding: 10px 13px;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid #f4e9ed;
    box-sizing: border-box;
}
.mypage-menu-item:last-child {
    border-bottom: 0;
}
.mypage-menu-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color: var(--mypage-primary);
    background: var(--mypage-primary-light);
    border-radius: 50%;
}
.mypage-menu-item__body {
    display: block;
    min-width: 0;
}
.mypage-menu-item__body strong {
    display: block;
    margin-bottom: 3px;
    color: #54444b;
    font-size: 10px;
}
.mypage-menu-item__body small {
    display: block;
    overflow: hidden;
    color: #a08e95;
    font-size: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mypage-menu-item > .fa-chevron-right {
    color: #c1b1b7;
    font-size: 10px;
}
.mypage-menu-item__count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 23px;
    height: 23px;
    padding: 0 6px;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    background: var(--mypage-primary);
    border-radius: 999px;
    box-sizing: border-box;
}
.mypage-menu-item__completed {
    padding: 4px 7px;
    color: #4b9ccb;
    font-size: 7px;
    font-weight: 700;
    background: #ebf8ff;
    border-radius: 999px;
}
/* アカウント操作
--------------------------------------------------------- */
.mypage-account-actions {
    display: grid;
    gap: 10px;
    margin-top: 28px;
}
.mypage-account-action {
    display: flex;
    gap: 7px;
    align-items: center;
    justify-content: center;
    min-height: 45px;
    color: #806d75;
    font-size: 9px;
    font-weight: 600;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--mypage-border);
    border-radius: 999px;
}
.mypage-account-action--withdraw {
    color: #b09fa6;
    background: transparent;
    border-color: transparent;
}
.mypage-app-version {
    margin: 18px 0 0;
    color: #c0b2b8;
    font-size: 7px;
    text-align: center;
}
/* フッター選択色
--------------------------------------------------------- */
.mypage-dashboard-page .bottom-nav .nav-item.active {
    color: var(--mypage-primary);
}
.mypage-dashboard-page .bottom-nav .nav-item.active i {
    color: var(--mypage-primary);
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .mypage-dashboard-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .mypage-dashboard-main {
        padding-inline: 9px;
    }
    .mypage-profile-card__top {
        grid-template-columns: 68px minmax(0, 1fr) 42px;
        gap: 9px;
    }
    .mypage-profile-card__avatar {
        width: 68px;
        height: 68px;
    }
    .mypage-activity-card {
        min-height: 98px;
    }
    .mypage-menu-item {
        grid-template-columns: 35px minmax(0, 1fr) auto 12px;
        gap: 8px;
        padding-inline: 10px;
    }
    .mypage-menu-item__icon {
        width: 34px;
        height: 34px;
    }
}
/* =========================================================
   Loveny TOP
========================================================= */
.loveny-top-page {
    --top-primary: #f45f8f;
    --top-primary-dark: #e84c7e;
    --top-primary-light: #fff0f5;
    --top-primary-pale: #fff8fb;
    --top-primary-border: #f5d4df;
    --top-text: #493941;
    --top-subtext: #93828a;
    --top-border: #f0e2e7;
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
    color: var(--top-text);
    background: #f3edf0;
}
.loveny-top-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 216, 230, .88) 0,
            transparent 28%
        ),
        radial-gradient(
            circle at 0 35%,
            rgba(255, 238, 244, .9) 0,
            transparent 28%
        ),
        var(--top-primary-pale);
    box-shadow: 0 0 25px rgba(91, 56, 70, .08);
}
.loveny-top-main {
    padding:
        calc(21px + env(safe-area-inset-top))
        14px
        calc(30px + env(safe-area-inset-bottom));
}
/* ロゴ
--------------------------------------------------------- */
.loveny-top-header {
    text-align: center;
}
.loveny-top-logo {
    display: block;
    width: 200px;
    max-width: 50%;
    height: auto;
    margin: 0 auto;
}
.loveny-top-header__message {
    margin: 5px 0 0;
    color: #9c8991;
    font-size: 9px;
    font-weight: 500;
}
/* HERO
--------------------------------------------------------- */
.loveny-hero {
    padding: 30px 0 33px;
}
.loveny-hero__visual {
    position: relative;
    height: 245px;
    margin-bottom: 22px;
}
.loveny-hero__photo {
    position: absolute;
    overflow: hidden;
    background: #fff;
    border: 4px solid #fff;
    border-radius: 50%;
    box-shadow:
        0 10px 28px rgba(108, 67, 83, .15),
        0 0 0 1px rgba(244, 95, 143, .08);
}
.loveny-hero__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.loveny-hero__photo--main {
    top: 17px;
    left: 50%;
    z-index: 3;
    width: 160px;
    height: 160px;
    transform: translateX(-50%);
}
.loveny-hero__photo--left {
    top: 92px;
    left: 23px;
    z-index: 2;
    width: 102px;
    height: 102px;
}
.loveny-hero__photo--right {
    top: 89px;
    right: 23px;
    z-index: 2;
    width: 106px;
    height: 106px;
}
.loveny-hero__heart {
    position: absolute;
    z-index: 5;
    color: var(--top-primary);
    filter: drop-shadow(
        0 4px 6px rgba(244, 95, 143, .2)
    );
}
.loveny-hero__heart--1 {
    top: 7px;
    right: 53px;
    font-size: 18px;
    transform: rotate(13deg);
}
.loveny-hero__heart--2 {
    bottom: 25px;
    left: 105px;
    font-size: 12px;
    opacity: .65;
}
.loveny-hero__copy {
    text-align: center;
}
.loveny-hero__label {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--top-primary);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .16em;
}
.loveny-hero__title {
    margin: 0;
    color: #493941;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.52;
    letter-spacing: .01em;
}
.loveny-hero__title strong {
    color: var(--top-primary-dark);
    font-weight: 700;
}
.loveny-hero__description {
    margin: 12px 0 0;
    color: #88767e;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.85;
}
/* 共通見出し
--------------------------------------------------------- */
.loveny-section-heading {
    margin: 0 4px 12px;
}
.loveny-section-heading__label {
    display: block;
    margin-bottom: 3px;
    color: var(--top-primary);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .13em;
}
.loveny-section-heading__title {
    margin: 0;
    color: #4b3b42;
    font-size: 15px;
    line-height: 1.5;
}
/* 特徴
--------------------------------------------------------- */
.loveny-feature-section {
    margin-bottom: 26px;
}
.loveny-feature-list {
    display: grid;
    gap: 9px;
}
.loveny-feature-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-height: 82px;
    padding: 13px;
    background: #fff;
    border: 1px solid var(--top-border);
    border-radius: 15px;
    box-shadow: 0 4px 16px rgba(91, 56, 69, .045);
}
.loveny-feature-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    color: var(--top-primary);
    font-size: 18px;
    background:
        linear-gradient(
            135deg,
            #ffe7ef,
            #fff4f8
        );
    border-radius: 50%;
}
.loveny-feature-card__title {
    display: block;
    margin-bottom: 4px;
    color: #59464e;
    font-size: 11px;
}
.loveny-feature-card__text {
    margin: 0;
    color: #99878e;
    font-size: 8px;
    line-height: 1.7;
}
/* 安心
--------------------------------------------------------- */
.loveny-security-card {
    margin-bottom: 25px;
    padding: 15px;
    background:
        linear-gradient(
            120deg,
            #fff0f5,
            #fff9fb
        );
    border: 1px solid var(--top-primary-border);
    border-radius: 16px;
}
.loveny-security-card__header {
    display: flex;
    gap: 10px;
    align-items: center;
}
.loveny-security-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--top-primary);
    font-size: 16px;
    background: #fff;
    border-radius: 50%;
}
.loveny-security-card__label {
    display: block;
    color: var(--top-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.loveny-security-card__title {
    margin: 2px 0 0;
    color: #604d55;
    font-size: 11px;
}
.loveny-security-card__items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-top: 13px;
}
.loveny-security-card__items span {
    display: flex;
    gap: 4px;
    align-items: center;
    justify-content: center;
    min-height: 31px;
    color: #896c77;
    font-size: 7px;
    font-weight: 700;
    background: #fff;
    border-radius: 999px;
}
.loveny-security-card__items i {
    color: var(--top-primary);
}
/* 開始カード
--------------------------------------------------------- */
.loveny-start-card {
    padding: 20px 15px;
    background: #fff;
    border: 1px solid var(--top-border);
    border-radius: 19px;
    box-shadow: 0 8px 28px rgba(91, 56, 69, .075);
}
.loveny-start-card__heading {
    text-align: center;
}
.loveny-start-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin: 0 auto 10px;
    color: #fff;
    font-size: 17px;
    background:
        linear-gradient(
            135deg,
            var(--top-primary-dark),
            #f781a8
        );
    border-radius: 50%;
    box-shadow: 0 7px 17px rgba(244, 95, 143, .25);
}
.loveny-start-card__title {
    margin: 0;
    color: #493941;
    font-size: 18px;
    line-height: 1.55;
}
.loveny-start-card__text {
    margin: 8px 0 0;
    color: #9a878f;
    font-size: 8px;
    line-height: 1.7;
}
/* 同意
--------------------------------------------------------- */
.loveny-agreement {
    display: grid;
    gap: 9px;
    margin: 20px 0;
}
.loveny-agreement__item {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    color: #74636a;
    font-size: 8px;
    line-height: 1.6;
    cursor: pointer;
}
.loveny-agreement__item input {
    position: absolute;
    opacity: 0;
}
.loveny-agreement__checkbox {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    color: transparent;
    font-size: 9px;
    background: #fff;
    border: 1px solid #dccfd4;
    border-radius: 5px;
    box-sizing: border-box;
}
.loveny-agreement__item input:checked
+ .loveny-agreement__checkbox {
    color: #fff;
    background: var(--top-primary);
    border-color: var(--top-primary);
}
.loveny-agreement__item a {
    color: var(--top-primary-dark);
    font-weight: 700;
    text-decoration: none;
}
/* 開始ボタン
--------------------------------------------------------- */
.loveny-start-button {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--top-primary-dark),
            var(--top-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(244, 95, 143, .25);
}
.loveny-start-button:disabled {
    color: #b7aeb2;
    cursor: not-allowed;
    background: #eee8ea;
    box-shadow: none;
}
.loveny-start-card__login {
    margin: 14px 0 0;
    color: #9a898f;
    font-size: 8px;
    text-align: center;
}
.loveny-start-card__login a {
    color: var(--top-primary-dark);
    font-weight: 700;
    text-decoration: none;
}
/* フッター
--------------------------------------------------------- */
.loveny-top-footer {
    padding: 28px 5px 5px;
    text-align: center;
}
.loveny-top-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 13px;
    justify-content: center;
}
.loveny-top-footer__links a {
    color: #a18f96;
    font-size: 7px;
    text-decoration: none;
}
.loveny-top-footer__copyright {
    margin: 13px 0 0;
    color: #c2b3b9;
    font-size: 7px;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .loveny-top-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .loveny-top-main {
        padding-inline: 10px;
    }
    .loveny-hero__visual {
        height: 220px;
    }
    .loveny-hero__photo--main {
        width: 145px;
        height: 145px;
    }
    .loveny-hero__photo--left,
    .loveny-hero__photo--right {
        width: 92px;
        height: 92px;
    }
    .loveny-hero__title {
        font-size: 22px;
    }
}
/* =========================================================
   Loveny プロフィール登録
========================================================= */
.regist-profile-page {
    --reg-primary: #f45f8f;
    --reg-primary-dark: #e84c7e;
    --reg-primary-light: #fff0f5;
    --reg-primary-pale: #fff8fb;
    --reg-primary-border: #f5d4df;
    --reg-text: #493941;
    --reg-subtext: #95848b;
    --reg-border: #f0e2e7;
    --reg-card: #fff;
    margin: 0;
    color: var(--reg-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f3edf0;
}
.regist-profile-page *,
.regist-profile-page *::before,
.regist-profile-page *::after {
    box-sizing: border-box;
}
.regist-profile-page input,
.regist-profile-page select,
.regist-profile-page textarea,
.regist-profile-page button {
    font: inherit;
}
.regist-profile-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255, 218, 232, .8) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 38%,
            rgba(255, 239, 245, .9) 0,
            transparent 26%
        ),
        var(--reg-primary-pale);
    box-shadow:
        0 0 25px rgba(91, 56, 70, .08);
}
/* ヘッダー
--------------------------------------------------------- */
.regist-profile-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--reg-border);
    backdrop-filter: blur(14px);
}
.regist-profile-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    font-size: 14px;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--reg-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px rgba(99, 60, 76, .05);
}
.regist-profile-header__heading {
    text-align: center;
}
.regist-profile-header__step {
    display: block;
    margin-bottom: 1px;
    color: var(--reg-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-profile-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
    font-weight: 700;
}
.regist-profile-header__step-count {
    color: var(--reg-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* 進捗
--------------------------------------------------------- */
.regist-profile-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    overflow: hidden;
    background: #f2e5ea;
}
.regist-profile-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--reg-primary-dark),
            var(--reg-primary),
            #f784aa
        );
    border-radius: 0 999px 999px 0;
}
/* メイン
--------------------------------------------------------- */
.regist-profile-main {
    padding:
        24px
        12px
        calc(35px + env(safe-area-inset-bottom));
}
/* 導入
--------------------------------------------------------- */
.regist-profile-intro {
    padding: 9px 10px 28px;
    text-align: center;
}
.regist-profile-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    margin: 0 auto 11px;
    color: #fff;
    font-size: 17px;
    background:
        linear-gradient(
            135deg,
            var(--reg-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 18px rgba(244, 95, 143, .24);
}
.regist-profile-intro__label {
    display: block;
    margin-bottom: 5px;
    color: var(--reg-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-profile-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.55;
}
.regist-profile-intro__text {
    margin: 9px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* フォームカード
--------------------------------------------------------- */
.regist-form-card {
    margin-bottom: 13px;
    padding: 15px;
    background: var(--reg-card);
    border:
        1px solid var(--reg-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px rgba(91, 56, 69, .05);
}
.regist-form-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 17px;
}
.regist-form-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: var(--reg-primary);
    font-size: 14px;
    background:
        var(--reg-primary-light);
    border-radius: 50%;
}
.regist-form-card__label {
    display: block;
    color: var(--reg-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-form-card__title {
    margin: 2px 0 0;
    color: #58464e;
    font-size: 12px;
}
/* 各フィールド
--------------------------------------------------------- */
.regist-form-field {
    padding: 17px 0;
    border-top:
        1px solid #f5eaee;
}
.regist-form-field:first-of-type {
    padding-top: 4px;
    border-top: 0;
}
.regist-form-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.regist-form-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
.regist-form-field__required,
.regist-form-field__optional {
    padding: 3px 6px;
    font-size: 7px;
    font-weight: 700;
    border-radius: 999px;
}
.regist-form-field__required {
    color: #fff;
    background: var(--reg-primary);
}
.regist-form-field__optional {
    color: #9d8b92;
    background: #f4eef0;
}
.regist-form-field__note {
    margin: 6px 0 0;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.6;
}
.regist-form-field__bottom {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}
/* 性別
--------------------------------------------------------- */
.regist-gender-options {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.regist-gender-option {
    position: relative;
}
.regist-gender-option input {
    position: absolute;
    opacity: 0;
}
.regist-gender-option__card {
    position: relative;
    display: flex;
    gap: 7px;
    align-items: center;
    min-height: 51px;
    padding: 8px 10px;
    color: #69565e;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--reg-border);
    border-radius: 10px;
    transition:
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}
.regist-gender-option__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    color: var(--reg-primary);
    background: var(--reg-primary-light);
    border-radius: 50%;
}
.regist-gender-option__card
> .fa-check {
    position: absolute;
    top: 50%;
    right: 10px;
    color: var(--reg-primary);
    opacity: 0;
    transform: translateY(-50%);
}
.regist-gender-option input:checked
+ .regist-gender-option__card {
    color: var(--reg-primary-dark);
    background: var(--reg-primary-light);
    border-color:
        var(--reg-primary);
    box-shadow:
        0 0 0 2px rgba(244, 95, 143, .08);
}
.regist-gender-option input:checked
+ .regist-gender-option__card
> .fa-check {
    opacity: 1;
}
/* 生年月日
--------------------------------------------------------- */
.regist-birthday {
    display: grid;
    grid-template-columns:
        1.2fr .9fr .9fr;
    gap: 6px;
}
.regist-birthday__field {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 17px;
    gap: 3px;
    align-items: center;
}
.regist-birthday__field input {
    display: block;
    width: 100%;
    height: 44px;
    min-width: 0;
    padding: 0 5px;
    color: #54434a;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    background: #fffafd;
    border:
        1px solid var(--reg-border);
    border-radius: 8px;
    outline: none;
}
.regist-birthday__field input:focus {
    border-color:
        var(--reg-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-birthday__field span {
    color: #79656e;
    font-size: 8px;
    font-weight: 600;
}
/* SELECT
--------------------------------------------------------- */
.regist-select-wrap {
    position: relative;
}
.regist-select-wrap__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color: var(--reg-primary);
    font-size: 13px;
    transform: translateY(-50%);
    pointer-events: none;
}
.regist-select-wrap select {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 36px 0 37px;
    color: #58484f;
    font-size: 10px;
    appearance: none;
    background: #fffafd;
    border:
        1px solid var(--reg-border);
    border-radius: 9px;
    outline: none;
}
.regist-select-wrap select:focus {
    border-color:
        var(--reg-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-select-wrap > .fa-chevron-down {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #b39fa7;
    font-size: 9px;
    transform: translateY(-50%);
    pointer-events: none;
}
/* テキスト
--------------------------------------------------------- */
.regist-text-input input {
    display: block;
    width: 100%;
    height: 48px;
    padding: 0 13px;
    color: #55454c;
    font-size: 11px;
    background: #fffafd;
    border:
        1px solid var(--reg-border);
    border-radius: 9px;
    outline: none;
}
.regist-text-input input::placeholder {
    color: #b7a7ad;
}
.regist-text-input input:focus {
    border-color:
        var(--reg-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-character-count {
    flex: 0 0 auto;
    margin-top: 6px;
    color: #a7979d;
    font-size: 7px;
}
/* 自己紹介
--------------------------------------------------------- */
.regist-introduction {
    overflow: hidden;
    background: #fffafd;
    border:
        1px solid var(--reg-border);
    border-radius: 10px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}
.regist-introduction:focus-within {
    border-color:
        var(--reg-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-introduction textarea {
    display: block;
    width: 100%;
    min-height: 120px;
    padding: 12px;
    color: #55454c;
    font-size: 10px;
    line-height: 1.75;
    resize: vertical;
    background: transparent;
    border: 0;
    outline: none;
}
.regist-introduction textarea::placeholder {
    color: #b7a7ad;
}
.regist-introduction__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding:
        8px 10px;
    background:
        #fff4f8;
    border-top:
        1px solid #f4e5ea;
}
.regist-introduction__hint {
    display: flex;
    gap: 5px;
    align-items: center;
    color: #a06d80;
    font-size: 6.5px;
}
.regist-introduction__hint i {
    color: var(--reg-primary);
}
/* AI Advice
--------------------------------------------------------- */
.regist-profile-advice {
    display: grid;
    grid-template-columns:
        41px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 16px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid var(--reg-primary-border);
    border-radius: 14px;
}
.regist-profile-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--reg-primary);
    font-size: 15px;
    background: #fff;
    border-radius: 50%;
}
.regist-profile-advice__label {
    display: block;
    color: var(--reg-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-profile-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 9px;
    line-height: 1.5;
}
.regist-profile-advice__text {
    margin: 5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}
/* 送信
--------------------------------------------------------- */
.regist-profile-submit {
    padding-top: 5px;
}
.regist-profile-submit__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding: 13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--reg-primary-dark),
            var(--reg-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px rgba(244, 95, 143, .25);
}
.regist-profile-submit__button:disabled {
    color: #b7adb2;
    cursor: not-allowed;
    background: #eee8ea;
    box-shadow: none;
}
.regist-profile-submit__note {
    margin: 9px 0 0;
    color: #ab9aa1;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-profile-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-profile-main {
        padding-inline: 9px;
    }
    .regist-profile-intro__title {
        font-size: 19px;
    }
    .regist-form-card {
        padding-inline: 12px;
    }
    .regist-gender-option__card {
        padding-inline: 8px;
    }
    .regist-birthday {
        gap: 4px;
    }
}
/* =========================================================
   Loveny 会員登録 STEP2
========================================================= */
.regist-step2-page {
    --step2-primary: #f45f8f;
    --step2-primary-dark: #e84c7e;
    --step2-primary-light: #fff0f5;
    --step2-primary-pale: #fff8fb;
    --step2-primary-border: #f5d4df;
    --step2-text: #493941;
    --step2-subtext: #95848b;
    --step2-border: #f0e2e7;
    --step2-card: #fff;
    margin: 0;
    color: var(--step2-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f3edf0;
}
.regist-step2-page *,
.regist-step2-page *::before,
.regist-step2-page *::after {
    box-sizing: border-box;
}
.regist-step2-page input,
.regist-step2-page select,
.regist-step2-page button {
    font: inherit;
}
.regist-step2-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 218, 232, .8) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 37%,
            rgba(255, 239, 245, .92) 0,
            transparent 26%
        ),
        var(--step2-primary-pale);
    box-shadow:
        0 0 25px rgba(91, 56, 70, .08);
}
/* ヘッダー
--------------------------------------------------------- */
.regist-step2-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--step2-border);
    backdrop-filter: blur(14px);
}
.regist-step2-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--step2-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px rgba(99, 60, 76, .05);
}
.regist-step2-header__heading {
    text-align: center;
}
.regist-step2-header__step {
    display: block;
    margin-bottom: 1px;
    color: var(--step2-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-step2-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
.regist-step2-header__step-count {
    color: var(--step2-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* 進捗
--------------------------------------------------------- */
.regist-step2-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    background: #f2e5ea;
}
.regist-step2-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--step2-primary-dark),
            var(--step2-primary),
            #f783a9
        );
    border-radius: 0 999px 999px 0;
}
/* メイン
--------------------------------------------------------- */
.regist-step2-main {
    padding:
        24px
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* 導入
--------------------------------------------------------- */
.regist-step2-intro {
    padding: 8px 10px 28px;
    text-align: center;
}
.regist-step2-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    margin: 0 auto 11px;
    color: #fff;
    font-size: 17px;
    background:
        linear-gradient(
            135deg,
            var(--step2-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 18px rgba(244, 95, 143, .24);
}
.regist-step2-intro__label {
    display: block;
    margin-bottom: 5px;
    color: var(--step2-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-step2-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    line-height: 1.55;
}
.regist-step2-intro__text {
    margin: 9px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* カード
--------------------------------------------------------- */
.regist-step2-card {
    margin-bottom: 13px;
    padding: 15px;
    background: var(--step2-card);
    border:
        1px solid var(--step2-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px rgba(91, 56, 69, .05);
}
.regist-step2-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 16px;
}
.regist-step2-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: var(--step2-primary);
    font-size: 14px;
    background: var(--step2-primary-light);
    border-radius: 50%;
}
.regist-step2-card__label {
    display: block;
    color: var(--step2-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step2-card__title {
    margin: 2px 0 0;
    color: #58464e;
    font-size: 12px;
}
/* フィールド
--------------------------------------------------------- */
.regist-step2-field {
    padding: 16px 0;
    border-top:
        1px solid #f5eaee;
}
.regist-step2-field:first-of-type {
    padding-top: 4px;
    border-top: 0;
}
.regist-step2-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.regist-step2-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
.regist-step2-field__optional {
    padding: 3px 6px;
    color: #9d8b92;
    font-size: 7px;
    font-weight: 700;
    background: #f4eef0;
    border-radius: 999px;
}
.regist-step2-field__note {
    margin: 6px 0 0;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.6;
}
/* 通常入力
--------------------------------------------------------- */
.regist-step2-text-input input,
.regist-step2-input-unit input {
    display: block;
    width: 100%;
    height: 48px;
    padding: 0 13px;
    color: #55454c;
    font-size: 10px;
    background: #fffafd;
    border:
        1px solid var(--step2-border);
    border-radius: 9px;
    outline: none;
}
.regist-step2-text-input input:focus,
.regist-step2-input-unit input:focus {
    border-color:
        var(--step2-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-step2-text-input input::placeholder,
.regist-step2-input-unit input::placeholder {
    color: #b7a7ad;
}
/* 単位付き入力
--------------------------------------------------------- */
.regist-step2-input-unit {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 35px;
    gap: 6px;
    align-items: center;
}
.regist-step2-input-unit span {
    color: #77646c;
    font-size: 9px;
    font-weight: 700;
}
/* 選択肢
--------------------------------------------------------- */
.regist-step2-choice-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 7px;
}
.regist-step2-choice-grid--3 {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}
.regist-step2-choice {
    position: relative;
}
.regist-step2-choice input {
    position: absolute;
    opacity: 0;
}
.regist-step2-choice span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 7px;
    color: #725f67;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--step2-border);
    border-radius: 9px;
    transition:
        border-color .2s ease,
        color .2s ease,
        background .2s ease;
}
.regist-step2-choice input:checked
+ span {
    color: var(--step2-primary-dark);
    background:
        var(--step2-primary-light);
    border-color:
        var(--step2-primary);
    box-shadow:
        0 0 0 2px rgba(244, 95, 143, .07);
}
/* SELECT
--------------------------------------------------------- */
.regist-step2-select-wrap {
    position: relative;
}
.regist-step2-select-wrap__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color: var(--step2-primary);
    font-size: 12px;
    transform: translateY(-50%);
    pointer-events: none;
}
.regist-step2-select-wrap select {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 35px 0 37px;
    color: #58484f;
    font-size: 10px;
    appearance: none;
    background: #fffafd;
    border:
        1px solid var(--step2-border);
    border-radius: 9px;
    outline: none;
}
.regist-step2-select-wrap select:focus {
    border-color:
        var(--step2-primary);
    box-shadow:
        0 0 0 3px rgba(244, 95, 143, .1);
}
.regist-step2-select-wrap > .fa-chevron-down {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #b39fa7;
    font-size: 9px;
    transform: translateY(-50%);
    pointer-events: none;
}
/* AIアドバイス
--------------------------------------------------------- */
.regist-step2-advice {
    display: grid;
    grid-template-columns:
        41px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 15px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid var(--step2-primary-border);
    border-radius: 14px;
}
.regist-step2-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--step2-primary);
    font-size: 15px;
    background: #fff;
    border-radius: 50%;
}
.regist-step2-advice__label {
    display: block;
    color: var(--step2-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step2-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step2-advice__text {
    margin: 5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}
/* ボタン
--------------------------------------------------------- */
.regist-step2-submit {
    padding-top: 5px;
}
.regist-step2-submit__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding: 13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--step2-primary-dark),
            var(--step2-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px rgba(244, 95, 143, .25);
}
.regist-step2-submit__skip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
    color: #9b848e;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.regist-step2-submit__note {
    margin: 2px 0 0;
    color: #ac9ba2;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-step2-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-step2-main {
        padding-inline: 9px;
    }
    .regist-step2-card {
        padding-inline: 12px;
    }
    .regist-step2-intro__title {
        font-size: 19px;
    }
    .regist-step2-choice-grid--3 {
        gap: 5px;
    }
    .regist-step2-choice span {
        font-size: 8px;
    }
}
/* =========================================================
   Loveny 会員登録 STEP3
========================================================= */
.regist-step3-page {
    --step3-primary: #f45f8f;
    --step3-primary-dark: #e84c7e;
    --step3-primary-light: #fff0f5;
    --step3-primary-pale: #fff8fb;
    --step3-primary-border: #f5d4df;
    --step3-text: #493941;
    --step3-subtext: #95848b;
    --step3-border: #f0e2e7;
    --step3-card: #fff;
    margin: 0;
    color: var(--step3-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.regist-step3-page *,
.regist-step3-page *::before,
.regist-step3-page *::after {
    box-sizing: border-box;
}
.regist-step3-page input,
.regist-step3-page select,
.regist-step3-page textarea,
.regist-step3-page button {
    font: inherit;
}
.regist-step3-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 218, 232, .8) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 38%,
            rgba(255, 239, 245, .92) 0,
            transparent 26%
        ),
        var(--step3-primary-pale);
    box-shadow:
        0 0 25px rgba(91, 56, 70, .08);
}
/* Header
--------------------------------------------------------- */
.regist-step3-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--step3-border);
    backdrop-filter: blur(14px);
}
.regist-step3-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--step3-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px rgba(99, 60, 76, .05);
}
.regist-step3-header__heading {
    text-align: center;
}
.regist-step3-header__step {
    display: block;
    margin-bottom: 1px;
    color: var(--step3-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-step3-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
.regist-step3-header__step-count {
    color:
        var(--step3-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* Progress
--------------------------------------------------------- */
.regist-step3-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    background: #f2e5ea;
}
.regist-step3-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--step3-primary-dark),
            var(--step3-primary),
            #f783a9
        );
}
/* Main
--------------------------------------------------------- */
.regist-step3-main {
    padding:
        24px
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* Intro
--------------------------------------------------------- */
.regist-step3-intro {
    padding:
        8px
        10px
        28px;
    text-align: center;
}
.regist-step3-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    margin:
        0 auto 11px;
    color: #fff;
    font-size: 16px;
    background:
        linear-gradient(
            135deg,
            var(--step3-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 18px
        rgba(244, 95, 143, .24);
}
.regist-step3-intro__label {
    display: block;
    margin-bottom: 5px;
    color: var(--step3-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-step3-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    line-height: 1.55;
}
.regist-step3-intro__text {
    margin:
        9px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* Card
--------------------------------------------------------- */
.regist-step3-card {
    margin-bottom: 13px;
    padding: 15px;
    background:
        var(--step3-card);
    border:
        1px solid var(--step3-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91, 56, 69, .05);
}
.regist-step3-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 16px;
}
.regist-step3-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color:
        var(--step3-primary);
    font-size: 14px;
    background:
        var(--step3-primary-light);
    border-radius: 50%;
}
.regist-step3-card__label {
    display: block;
    color:
        var(--step3-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step3-card__title {
    margin:
        2px 0 0;
    color: #58464e;
    font-size: 12px;
}
/* Field
--------------------------------------------------------- */
.regist-step3-field {
    padding:
        16px 0;
    border-top:
        1px solid #f5eaee;
}
.regist-step3-field:first-of-type {
    padding-top: 4px;
    border-top: 0;
}
.regist-step3-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.regist-step3-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
.regist-step3-field__optional {
    padding:
        3px 6px;
    color: #9d8b92;
    font-size: 7px;
    font-weight: 700;
    background: #f4eef0;
    border-radius: 999px;
}
.regist-step3-field__note {
    margin:
        6px 0 0;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.6;
}
/* Text input
--------------------------------------------------------- */
.regist-step3-text-input {
    position: relative;
}
.regist-step3-text-input__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    color:
        var(--step3-primary);
    font-size: 12px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.regist-step3-text-input input {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 13px;
    color: #55454c;
    font-size: 10px;
    background: #fffafd;
    border:
        1px solid var(--step3-border);
    border-radius: 9px;
    outline: none;
}
.regist-step3-text-input--icon input {
    padding-left: 38px;
}
.regist-step3-text-input input::placeholder {
    color: #b7a7ad;
}
.regist-step3-text-input input:focus {
    border-color:
        var(--step3-primary);
    box-shadow:
        0 0 0 3px
        rgba(244, 95, 143, .1);
}
/* Select
--------------------------------------------------------- */
.regist-step3-select-wrap {
    position: relative;
}
.regist-step3-select-wrap__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color:
        var(--step3-primary);
    font-size: 12px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.regist-step3-select-wrap select {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 35px 0 37px;
    color: #58484f;
    font-size: 10px;
    appearance: none;
    background: #fffafd;
    border:
        1px solid var(--step3-border);
    border-radius: 9px;
    outline: none;
}
.regist-step3-select-wrap select:focus {
    border-color:
        var(--step3-primary);
    box-shadow:
        0 0 0 3px
        rgba(244, 95, 143, .1);
}
.regist-step3-select-wrap
> .fa-chevron-down {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #b39fa7;
    font-size: 9px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
/* Textarea
--------------------------------------------------------- */
.regist-step3-textarea {
    overflow: hidden;
    background: #fffafd;
    border:
        1px solid var(--step3-border);
    border-radius: 10px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}
.regist-step3-textarea:focus-within {
    border-color:
        var(--step3-primary);
    box-shadow:
        0 0 0 3px
        rgba(244, 95, 143, .1);
}
.regist-step3-textarea textarea {
    display: block;
    width: 100%;
    min-height: 105px;
    padding: 12px;
    color: #55454c;
    font-size: 10px;
    line-height: 1.75;
    resize: vertical;
    background: transparent;
    border: 0;
    outline: none;
}
.regist-step3-textarea textarea::placeholder {
    color: #b7a7ad;
}
.regist-step3-textarea__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding:
        8px 10px;
    background: #fff4f8;
    border-top:
        1px solid #f4e5ea;
}
.regist-step3-textarea__hint {
    display: flex;
    gap: 5px;
    align-items: center;
    color: #a06d80;
    font-size: 6.5px;
}
.regist-step3-textarea__hint i {
    color:
        var(--step3-primary);
}
.regist-step3-character-count {
    flex: 0 0 auto;
    color: #a7979d;
    font-size: 7px;
}
/* Advice
--------------------------------------------------------- */
.regist-step3-advice {
    display: grid;
    grid-template-columns:
        41px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 13px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid
        var(--step3-primary-border);
    border-radius: 14px;
}
.regist-step3-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color:
        var(--step3-primary);
    font-size: 15px;
    background: #fff;
    border-radius: 50%;
}
.regist-step3-advice__label {
    display: block;
    color:
        var(--step3-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step3-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step3-advice__text {
    margin:
        5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}
/* Almost done
--------------------------------------------------------- */
.regist-step3-complete {
    display: grid;
    grid-template-columns:
        43px minmax(0, 1fr);
    gap: 11px;
    margin-bottom: 16px;
    padding: 14px;
    background:
        linear-gradient(
            115deg,
            #f7f3ff 0%,
            #fff 100%
        );
    border:
        1px solid #e8ddf3;
    border-radius: 14px;
}
.regist-step3-complete__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: #a66fc4;
    font-size: 17px;
    background: #fff;
    border-radius: 50%;
}
.regist-step3-complete__label {
    display: block;
    color: #a66fc4;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step3-complete__title {
    display: block;
    margin-top: 2px;
    color: #65546d;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step3-complete__text {
    margin:
        5px 0 0;
    color: #94879a;
    font-size: 7px;
    line-height: 1.6;
}
/* Submit
--------------------------------------------------------- */
.regist-step3-submit {
    padding-top: 4px;
}
.regist-step3-submit__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding:
        13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--step3-primary-dark),
            var(--step3-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244, 95, 143, .25);
}
.regist-step3-submit__skip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
    color: #9b848e;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.regist-step3-submit__note {
    margin:
        2px 0 0;
    color: #ac9ba2;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-step3-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-step3-main {
        padding-inline: 9px;
    }
    .regist-step3-card {
        padding-inline: 12px;
    }
    .regist-step3-intro__title {
        font-size: 19px;
    }
}
/* =========================================================
   STEP3 次のステップ案内
========================================================= */
.regist-step3-next-guide {
    display: grid;
    grid-template-columns: 43px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    margin-bottom: 16px;
    padding: 14px;
    background:
        linear-gradient(
            115deg,
            #fff0f5 0%,
            #fffafd 100%
        );
    border:
        1px solid var(--step3-primary-border);
    border-radius: 14px;
}
.regist-step3-next-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--step3-primary);
    font-size: 15px;
    background: #fff;
    border-radius: 50%;
}
.regist-step3-next-guide__label {
    display: block;
    color: var(--step3-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step3-next-guide__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step3-next-guide__text {
    margin: 5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}
/* =========================================================
   Loveny 会員登録 STEP4
========================================================= */
.regist-step4-page {
    --step4-primary: #f45f8f;
    --step4-primary-dark: #e84c7e;
    --step4-primary-light: #fff0f5;
    --step4-primary-pale: #fff8fb;
    --step4-primary-border: #f5d4df;
    --step4-text: #493941;
    --step4-subtext: #95848b;
    --step4-border: #f0e2e7;
    --step4-card: #fff;
    margin: 0;
    color: var(--step4-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.regist-step4-page *,
.regist-step4-page *::before,
.regist-step4-page *::after {
    box-sizing: border-box;
}
.regist-step4-page select,
.regist-step4-page button,
.regist-step4-page input {
    font: inherit;
}
.regist-step4-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 218, 232, .82) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 39%,
            rgba(255, 239, 245, .92) 0,
            transparent 26%
        ),
        var(--step4-primary-pale);
    box-shadow:
        0 0 25px rgba(91, 56, 70, .08);
}
/* Header
--------------------------------------------------------- */
.regist-step4-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--step4-border);
    backdrop-filter: blur(14px);
}
.regist-step4-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--step4-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px rgba(99, 60, 76, .05);
}
.regist-step4-header__heading {
    text-align: center;
}
.regist-step4-header__step {
    display: block;
    margin-bottom: 1px;
    color:
        var(--step4-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-step4-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
.regist-step4-header__step-count {
    color:
        var(--step4-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* Progress
--------------------------------------------------------- */
.regist-step4-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    background: #f2e5ea;
}
.regist-step4-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--step4-primary-dark),
            var(--step4-primary),
            #f783a9
        );
}
/* Main
--------------------------------------------------------- */
.regist-step4-main {
    padding:
        24px
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* Intro
--------------------------------------------------------- */
.regist-step4-intro {
    padding:
        8px 10px 28px;
    text-align: center;
}
.regist-step4-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin:
        0 auto 11px;
    color: #fff;
    font-size: 17px;
    background:
        linear-gradient(
            135deg,
            var(--step4-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 18px
        rgba(244, 95, 143, .24);
}
.regist-step4-intro__label {
    display: block;
    margin-bottom: 5px;
    color:
        var(--step4-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-step4-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    line-height: 1.55;
}
.regist-step4-intro__text {
    margin:
        9px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* Card
--------------------------------------------------------- */
.regist-step4-card {
    margin-bottom: 13px;
    padding: 15px;
    background:
        var(--step4-card);
    border:
        1px solid var(--step4-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91, 56, 69, .05);
}
.regist-step4-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 16px;
}
.regist-step4-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color:
        var(--step4-primary);
    font-size: 15px;
    background:
        var(--step4-primary-light);
    border-radius: 50%;
}
.regist-step4-card__label {
    display: block;
    color:
        var(--step4-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step4-card__title {
    margin:
        2px 0 0;
    color: #58464e;
    font-size: 12px;
}
/* Field
--------------------------------------------------------- */
.regist-step4-field {
    padding:
        16px 0;
    border-top:
        1px solid #f5eaee;
}
.regist-step4-field:first-of-type {
    padding-top: 4px;
    border-top: 0;
}
.regist-step4-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.regist-step4-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
.regist-step4-field__optional {
    padding:
        3px 6px;
    color: #9d8b92;
    font-size: 7px;
    font-weight: 700;
    background: #f4eef0;
    border-radius: 999px;
}
/* Select
--------------------------------------------------------- */
.regist-step4-select-wrap {
    position: relative;
}
.regist-step4-select-wrap__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color:
        var(--step4-primary);
    font-size: 12px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.regist-step4-select-wrap select {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 36px 0 38px;
    color: #58484f;
    font-size: 10px;
    appearance: none;
    background: #fffafd;
    border:
        1px solid var(--step4-border);
    border-radius: 9px;
    outline: none;
}
.regist-step4-select-wrap select:focus {
    border-color:
        var(--step4-primary);
    box-shadow:
        0 0 0 3px
        rgba(244, 95, 143, .1);
}
.regist-step4-select-wrap
> .fa-chevron-down {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #b39fa7;
    font-size: 9px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
/* 結婚への意思
--------------------------------------------------------- */
.regist-step4-choice-list {
    display: grid;
    gap: 7px;
}
.regist-step4-choice {
    position: relative;
}
.regist-step4-choice input {
    position: absolute;
    opacity: 0;
}
.regist-step4-choice span {
    display: flex;
    gap: 9px;
    align-items: center;
    min-height: 46px;
    padding:
        9px 12px;
    color: #715e66;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--step4-border);
    border-radius: 10px;
    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}
.regist-step4-choice span i {
    width: 17px;
    color:
        var(--step4-primary);
    font-size: 13px;
    text-align: center;
}
.regist-step4-choice input:checked
+ span {
    color:
        var(--step4-primary-dark);
    background:
        var(--step4-primary-light);
    border-color:
        var(--step4-primary);
    box-shadow:
        0 0 0 2px
        rgba(244, 95, 143, .07);
}
/* Advice
--------------------------------------------------------- */
.regist-step4-advice,
.regist-step4-next-guide {
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 13px;
    padding: 13px;
    border-radius: 14px;
}
.regist-step4-advice {
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid
        var(--step4-primary-border);
}
.regist-step4-advice__icon,
.regist-step4-next-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    border-radius: 50%;
}
.regist-step4-advice__icon {
    color:
        var(--step4-primary);
    background: #fff;
}
.regist-step4-advice__label,
.regist-step4-next-guide__label {
    display: block;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step4-advice__label {
    color:
        var(--step4-primary);
}
.regist-step4-advice__title,
.regist-step4-next-guide__title {
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step4-advice__title {
    color: #624e56;
}
.regist-step4-advice__text,
.regist-step4-next-guide__text {
    margin:
        5px 0 0;
    font-size: 7px;
    line-height: 1.65;
}
.regist-step4-advice__text {
    color: #948188;
}
/* Next
--------------------------------------------------------- */
.regist-step4-next-guide {
    background:
        linear-gradient(
            115deg,
            #f5f2ff 0%,
            #fff 100%
        );
    border:
        1px solid #e8dff4;
}
.regist-step4-next-guide__icon {
    color: #9a73bf;
    background: #fff;
}
.regist-step4-next-guide__label {
    color: #9a73bf;
}
.regist-step4-next-guide__title {
    color: #66556e;
}
.regist-step4-next-guide__text {
    color: #95899a;
}
/* Submit
--------------------------------------------------------- */
.regist-step4-submit {
    padding-top: 4px;
}
.regist-step4-submit__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding:
        13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--step4-primary-dark),
            var(--step4-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244, 95, 143, .25);
}
.regist-step4-submit__skip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
    color: #9b848e;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.regist-step4-submit__note {
    margin:
        2px 0 0;
    color: #ac9ba2;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-step4-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-step4-main {
        padding-inline: 9px;
    }
    .regist-step4-card {
        padding-inline: 12px;
    }
    .regist-step4-intro__title {
        font-size: 19px;
    }
}
/* =========================================================
   Loveny 会員登録 STEP5
========================================================= */
.regist-step5-page {
    --step5-primary: #f45f8f;
    --step5-primary-dark: #e84c7e;
    --step5-primary-light: #fff0f5;
    --step5-primary-pale: #fff8fb;
    --step5-primary-border: #f5d4df;
    --step5-text: #493941;
    --step5-subtext: #95848b;
    --step5-border: #f0e2e7;
    --step5-card: #fff;
    margin: 0;
    color: var(--step5-text);
    font-family: "Noto Sans JP", sans-serif;
    background: #f3edf0;
}
.regist-step5-page *,
.regist-step5-page *::before,
.regist-step5-page *::after {
    box-sizing: border-box;
}
.regist-step5-page input,
.regist-step5-page button {
    font: inherit;
}
.regist-step5-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 218, 232, .82) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 39%,
            rgba(255, 239, 245, .92) 0,
            transparent 26%
        ),
        var(--step5-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91, 56, 70, .08);
}
/* Header
--------------------------------------------------------- */
.regist-step5-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--step5-border);
    backdrop-filter: blur(14px);
}
.regist-step5-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--step5-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99, 60, 76, .05);
}
.regist-step5-header__heading {
    text-align: center;
}
.regist-step5-header__step {
    display: block;
    margin-bottom: 1px;
    color: var(--step5-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-step5-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
.regist-step5-header__step-count {
    color:
        var(--step5-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* Progress
--------------------------------------------------------- */
.regist-step5-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    background: #f2e5ea;
}
.regist-step5-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--step5-primary-dark),
            var(--step5-primary),
            #f783a9
        );
}
/* Main
--------------------------------------------------------- */
.regist-step5-main {
    padding:
        24px
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* Intro
--------------------------------------------------------- */
.regist-step5-intro {
    padding:
        8px 10px 28px;
    text-align: center;
}
.regist-step5-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin:
        0 auto 11px;
    color: #fff;
    font-size: 18px;
    background:
        linear-gradient(
            135deg,
            var(--step5-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 18px
        rgba(244, 95, 143, .24);
}
.regist-step5-intro__label {
    display: block;
    margin-bottom: 5px;
    color:
        var(--step5-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-step5-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    line-height: 1.55;
}
.regist-step5-intro__text {
    margin: 9px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* Card
--------------------------------------------------------- */
.regist-step5-card {
    margin-bottom: 13px;
    padding: 15px;
    background:
        var(--step5-card);
    border:
        1px solid var(--step5-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91, 56, 69, .05);
}
.regist-step5-card--healing {
    background:
        linear-gradient(
            145deg,
            #fff 0%,
            #fffafd 100%
        );
}
.regist-step5-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 14px;
}
.regist-step5-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--step5-primary);
    font-size: 15px;
    background:
        var(--step5-primary-light);
    border-radius: 50%;
}
.regist-step5-card__label {
    display: block;
    color:
        var(--step5-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step5-card__title {
    margin: 2px 0 0;
    color: #58464e;
    font-size: 12px;
}
/* Field
--------------------------------------------------------- */
.regist-step5-field {
    padding-top: 3px;
}
.regist-step5-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.regist-step5-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
.regist-step5-field__optional {
    padding: 3px 6px;
    color: #9d8b92;
    font-size: 7px;
    font-weight: 700;
    background: #f4eef0;
    border-radius: 999px;
}
.regist-step5-field__hint {
    margin: 7px 1px 0;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.65;
}
/* Input
--------------------------------------------------------- */
.regist-step5-input {
    position: relative;
}
.regist-step5-input__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    color: var(--step5-primary);
    font-size: 12px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.regist-step5-input input {
    display: block;
    width: 100%;
    height: 49px;
    padding: 0 13px;
    color: #55454c;
    font-size: 10px;
    background: #fffafd;
    border:
        1px solid var(--step5-border);
    border-radius: 9px;
    outline: none;
}
.regist-step5-input--icon input {
    padding-left: 39px;
}
.regist-step5-input input::placeholder {
    color: #b7a7ad;
}
.regist-step5-input input:focus {
    border-color:
        var(--step5-primary);
    box-shadow:
        0 0 0 3px
        rgba(244, 95, 143, .1);
}
/* Suggestion chips
--------------------------------------------------------- */
.regist-step5-topic-suggestions {
    display: flex;
    gap: 6px;
    margin-top: 9px;
    overflow-x: auto;
    scrollbar-width: none;
}
.regist-step5-topic-suggestions::-webkit-scrollbar {
    display: none;
}
.regist-step5-topic-chip {
    flex: 0 0 auto;
    min-height: 29px;
    padding: 5px 10px;
    color: #a15e77;
    font-size: 7px;
    font-weight: 700;
    cursor: pointer;
    background:
        var(--step5-primary-light);
    border:
        1px solid
        var(--step5-primary-border);
    border-radius: 999px;
}
/* Advice / Next
--------------------------------------------------------- */
.regist-step5-advice,
.regist-step5-next-guide {
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 13px;
    padding: 13px;
    border-radius: 14px;
}
.regist-step5-advice {
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid
        var(--step5-primary-border);
}
.regist-step5-advice__icon,
.regist-step5-next-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    background: #fff;
    border-radius: 50%;
}
.regist-step5-advice__icon {
    color:
        var(--step5-primary);
}
.regist-step5-advice__label,
.regist-step5-next-guide__label {
    display: block;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step5-advice__label {
    color:
        var(--step5-primary);
}
.regist-step5-advice__title,
.regist-step5-next-guide__title {
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step5-advice__title {
    color: #624e56;
}
.regist-step5-advice__text,
.regist-step5-next-guide__text {
    margin: 5px 0 0;
    font-size: 7px;
    line-height: 1.65;
}
.regist-step5-advice__text {
    color: #948188;
}
/* Final step guide
--------------------------------------------------------- */
.regist-step5-next-guide {
    background:
        linear-gradient(
            115deg,
            #f3f5ff 0%,
            #fff 100%
        );
    border:
        1px solid #e0e5f6;
}
.regist-step5-next-guide__icon {
    color: #7b82c8;
}
.regist-step5-next-guide__label {
    color: #7b82c8;
}
.regist-step5-next-guide__title {
    color: #565c80;
}
.regist-step5-next-guide__text {
    color: #8d8fa3;
}
/* Submit
--------------------------------------------------------- */
.regist-step5-submit {
    padding-top: 4px;
}
.regist-step5-submit__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding: 13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--step5-primary-dark),
            var(--step5-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244, 95, 143, .25);
}
.regist-step5-submit__skip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
    color: #9b848e;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.regist-step5-submit__note {
    margin: 2px 0 0;
    color: #ac9ba2;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-step5-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-step5-main {
        padding-inline: 9px;
    }
    .regist-step5-card {
        padding-inline: 12px;
    }
    .regist-step5-intro__title {
        font-size: 19px;
    }
}
/* =========================================================
   Loveny 会員登録 STEP6 - PHOTO
========================================================= */
.regist-step6-page {
    --step6-primary: #f45f8f;
    --step6-primary-dark: #e84c7e;
    --step6-primary-light: #fff0f5;
    --step6-primary-pale: #fff8fb;
    --step6-primary-border: #f5d4df;
    --step6-text: #493941;
    --step6-subtext: #95848b;
    --step6-border: #f0e2e7;
    --step6-card: #fff;
    margin: 0;
    color: var(--step6-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.regist-step6-page *,
.regist-step6-page *::before,
.regist-step6-page *::after {
    box-sizing: border-box;
}
.regist-step6-page button,
.regist-step6-page input {
    font: inherit;
}
.regist-step6-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 3%,
            rgba(255, 218, 232, .84) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 40%,
            rgba(255, 239, 245, .94) 0,
            transparent 27%
        ),
        var(--step6-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91, 56, 70, .08);
}
/* Header
--------------------------------------------------------- */
.regist-step6-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 67px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255, 248, 251, .95);
    border-bottom:
        1px solid var(--step6-border);
    backdrop-filter: blur(14px);
}
.regist-step6-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--step6-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99, 60, 76, .05);
}
.regist-step6-header__heading {
    text-align: center;
}
.regist-step6-header__step {
    display: block;
    margin-bottom: 1px;
    color: var(--step6-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-step6-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
.regist-step6-header__step-count {
    color:
        var(--step6-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-align: right;
}
/* Progress
--------------------------------------------------------- */
.regist-step6-progress {
    position: sticky;
    top: 67px;
    z-index: 19;
    width: 100%;
    height: 3px;
    background: #f2e5ea;
}
.regist-step6-progress span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--step6-primary-dark),
            var(--step6-primary),
            #f783a9
        );
}
/* Main
--------------------------------------------------------- */
.regist-step6-main {
    padding:
        24px
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* Intro
--------------------------------------------------------- */
.regist-step6-intro {
    padding:
        8px 10px 28px;
    text-align: center;
}
.regist-step6-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin:
        0 auto 12px;
    color: #fff;
    font-size: 19px;
    background:
        linear-gradient(
            135deg,
            var(--step6-primary-dark),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 20px
        rgba(244, 95, 143, .27);
}
.regist-step6-intro__label {
    display: block;
    margin-bottom: 5px;
    color:
        var(--step6-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-step6-intro__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    line-height: 1.55;
}
.regist-step6-intro__text {
    margin:
        10px 0 0;
    color: #95848b;
    font-size: 9px;
    line-height: 1.8;
}
/* Photo card
--------------------------------------------------------- */
.regist-step6-photo-card {
    margin-bottom: 14px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--step6-border);
    border-radius: 18px;
    box-shadow:
        0 6px 20px
        rgba(91, 56, 69, .06);
}
.regist-step6-photo-card__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 17px;
}
.regist-step6-photo-card__label {
    display: block;
    margin-bottom: 2px;
    color:
        var(--step6-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step6-photo-card__title {
    margin: 0;
    color: #58464e;
    font-size: 13px;
}
.regist-step6-photo-card__count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 27px;
    color:
        var(--step6-primary-dark);
    font-size: 8px;
    font-weight: 700;
    background:
        var(--step6-primary-light);
    border-radius: 999px;
}
/* Photo labels
--------------------------------------------------------- */
.regist-step6-photo-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}
.regist-step6-photo-label {
    color: #59484f;
    font-size: 10px;
}
.regist-step6-required,
.regist-step6-optional {
    display: inline-flex;
    margin-left: 5px;
    padding:
        3px 6px;
    font-size: 6px;
    font-weight: 700;
    border-radius: 999px;
}
.regist-step6-required {
    color: #fff;
    background:
        var(--step6-primary);
}
.regist-step6-optional {
    color: #9d8b92;
    background: #f4eef0;
}
.regist-step6-main-photo__note {
    color: #a18e96;
    font-size: 7px;
}
/* Hide file
--------------------------------------------------------- */
.regist-step6-file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
/* Main photo
--------------------------------------------------------- */
.regist-step6-main-photo {
    padding-bottom: 19px;
    border-bottom:
        1px solid #f4e9ed;
}
.regist-step6-main-upload {
    position: relative;
    display: block;
    width: min(100%, 285px);
    aspect-ratio: 4 / 5;
    margin: 0 auto;
    overflow: hidden;
    cursor: pointer;
    background:
        linear-gradient(
            145deg,
            #fff5f8 0%,
            #fffafd 100%
        );
    border:
        2px dashed
        #efb9cb;
    border-radius: 18px;
    box-shadow:
        inset 0 0 0 1px
        rgba(255,255,255,.8);
}
.regist-step6-main-upload__empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    text-align: center;
}
.regist-step6-main-upload__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 11px;
    color:
        var(--step6-primary);
    font-size: 20px;
    background: #fff;
    border-radius: 50%;
    box-shadow:
        0 5px 14px
        rgba(244, 95, 143, .13);
}
.regist-step6-main-upload__empty strong {
    color: #644f58;
    font-size: 11px;
}
.regist-step6-main-upload__empty > span:last-child {
    margin-top: 4px;
    color: #aa969e;
    font-size: 7px;
}
.regist-step6-main-upload__preview {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.regist-step6-main-upload__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding:
        5px 9px;
    color: #fff;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .08em;
    background:
        linear-gradient(
            100deg,
            var(--step6-primary-dark),
            var(--step6-primary)
        );
    border-radius: 999px;
    box-shadow:
        0 4px 10px
        rgba(244,95,143,.22);
}
.regist-step6-photo-change {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding:
        6px 9px;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    background:
        rgba(57, 42, 48, .65);
    border-radius: 999px;
    backdrop-filter:
        blur(8px);
}
.regist-step6-main-photo__help {
    margin:
        8px 0 0;
    color: #a18f96;
    font-size: 7px;
    line-height: 1.6;
    text-align: center;
}
/* Remove
--------------------------------------------------------- */
.regist-step6-photo-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    padding: 0;
    color: #fff;
    font-size: 11px;
    cursor: pointer;
    background:
        rgba(47, 35, 40, .65);
    border: 0;
    border-radius: 50%;
    backdrop-filter:
        blur(8px);
}
/* Sub photos
--------------------------------------------------------- */
.regist-step6-sub-photos {
    padding-top: 18px;
}
.regist-step6-sub-photo-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.regist-step6-sub-upload {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1.18;
    overflow: hidden;
    cursor: pointer;
    background:
        #fff8fb;
    border:
        1.5px dashed
        #edc1d0;
    border-radius: 12px;
}
.regist-step6-sub-upload__empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    justify-content: center;
    color:
        var(--step6-primary);
    text-align: center;
}
.regist-step6-sub-upload__empty i {
    font-size: 18px;
}
.regist-step6-sub-upload__empty span {
    color: #a98592;
    font-size: 6.5px;
    font-weight: 700;
}
.regist-step6-sub-upload__preview {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Error
--------------------------------------------------------- */
.regist-step6-error {
    min-height: 19px;
    margin:
        10px 2px 0;
    color: #d84f69;
    font-size: 8px;
    font-weight: 600;
    line-height: 1.5;
}
/* Tips
--------------------------------------------------------- */
.regist-step6-tips {
    margin-bottom: 14px;
    padding: 14px;
    background:
        linear-gradient(
            130deg,
            #fff6f0 0%,
            #fff 100%
        );
    border:
        1px solid #f4e3d8;
    border-radius: 15px;
}
.regist-step6-tips__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 13px;
}
.regist-step6-tips__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #e6a049;
    background: #fff;
    border-radius: 50%;
}
.regist-step6-tips__label {
    display: block;
    color: #d9984b;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step6-tips__title {
    margin: 2px 0 0;
    color: #655349;
    font-size: 11px;
}
.regist-step6-tips__list {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.regist-step6-tip {
    display: grid;
    grid-template-columns:
        31px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    min-height: 55px;
    padding: 8px;
    background: rgba(255,255,255,.82);
    border-radius: 10px;
}
.regist-step6-tip__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #df9a49;
    font-size: 12px;
    background: #fff7ed;
    border-radius: 50%;
}
.regist-step6-tip strong {
    display: block;
    color: #6c5b52;
    font-size: 7.5px;
}
.regist-step6-tip small {
    display: block;
    margin-top: 2px;
    color: #a6968e;
    font-size: 6px;
    line-height: 1.45;
}
/* Advice / Complete
--------------------------------------------------------- */
.regist-step6-advice,
.regist-step6-complete-guide {
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 13px;
    padding: 13px;
    border-radius: 14px;
}
.regist-step6-advice {
    background:
        linear-gradient(
            115deg,
            #ffeaf2 0%,
            #fff8fb 100%
        );
    border:
        1px solid
        var(--step6-primary-border);
}
.regist-step6-advice__icon,
.regist-step6-complete-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    background: #fff;
    border-radius: 50%;
}
.regist-step6-advice__icon {
    color:
        var(--step6-primary);
}
.regist-step6-advice__label,
.regist-step6-complete-guide__label {
    display: block;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-step6-advice__label {
    color:
        var(--step6-primary);
}
.regist-step6-advice__title,
.regist-step6-complete-guide__title {
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.5;
}
.regist-step6-advice__title {
    color: #624e56;
}
.regist-step6-advice__text,
.regist-step6-complete-guide__text {
    margin:
        5px 0 0;
    font-size: 7px;
    line-height: 1.65;
}
.regist-step6-advice__text {
    color: #948188;
}
/* Complete
--------------------------------------------------------- */
.regist-step6-complete-guide {
    background:
        linear-gradient(
            120deg,
            #f4f2ff 0%,
            #fff 100%
        );
    border:
        1px solid #e5def4;
}
.regist-step6-complete-guide__icon {
    color: #9872bd;
}
.regist-step6-complete-guide__label {
    color: #9872bd;
}
.regist-step6-complete-guide__title {
    color: #64556c;
}
.regist-step6-complete-guide__text {
    color: #94889a;
}
/* Submit
--------------------------------------------------------- */
.regist-step6-submit {
    padding-top: 5px;
}
.regist-step6-submit__button {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 58px;
    padding:
        14px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--step6-primary-dark),
            var(--step6-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 9px 22px
        rgba(244,95,143,.27);
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}
.regist-step6-submit__button:not(:disabled):hover {
    transform:
        translateY(-1px);
    box-shadow:
        0 11px 25px
        rgba(244,95,143,.31);
}
.regist-step6-submit__button:disabled {
    color: #b7adb2;
    cursor: not-allowed;
    background: #eee8ea;
    box-shadow: none;
}
.regist-step6-submit__note {
    margin:
        9px 0 0;
    color: #ac9ba2;
    font-size: 7px;
    line-height: 1.65;
    text-align: center;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-step6-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-step6-main {
        padding-inline: 9px;
    }
    .regist-step6-photo-card {
        padding-inline: 12px;
    }
    .regist-step6-intro__title {
        font-size: 19px;
    }
    .regist-step6-main-upload {
        width: min(100%, 260px);
    }
    .regist-step6-sub-photo-grid {
        gap: 6px;
    }
    .regist-step6-tips__list {
        gap: 6px;
    }
}
.regist-step6-page [hidden] {
    display: none !important;
}
/* =========================================================
   Loveny 会員登録完了
========================================================= */
.regist-complete-page {
    --complete-primary: #f45f8f;
    --complete-primary-dark: #e84c7e;
    --complete-primary-light: #fff0f5;
    --complete-primary-pale: #fff8fb;
    --complete-primary-border: #f5d4df;
    --complete-text: #493941;
    --complete-subtext: #95848b;
    --complete-border: #f0e2e7;
    margin: 0;
    color: var(--complete-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.regist-complete-page *,
.regist-complete-page *::before,
.regist-complete-page *::after {
    box-sizing: border-box;
}
.regist-complete-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 216, 231, .9) 0,
            transparent 29%
        ),
        radial-gradient(
            circle at 0 37%,
            rgba(255, 238, 245, .95) 0,
            transparent 28%
        ),
        var(--complete-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91, 56, 70, .08);
}
/* Main
--------------------------------------------------------- */
.regist-complete-main {
    padding:
        calc(38px + env(safe-area-inset-top))
        12px
        calc(36px + env(safe-area-inset-bottom));
}
/* Hero
--------------------------------------------------------- */
.regist-complete-hero {
    position: relative;
    padding:
        18px 10px 31px;
    text-align: center;
}
.regist-complete-hero__icon {
    position: relative;
    width: 102px;
    height: 102px;
    margin:
        0 auto 18px;
}
.regist-complete-hero__heart {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 102px;
    height: 102px;
    color: #fff;
    font-size: 40px;
    background:
        linear-gradient(
            145deg,
            var(--complete-primary-dark),
            var(--complete-primary),
            #f88bad
        );
    border-radius: 50%;
    box-shadow:
        0 14px 30px
        rgba(244, 95, 143, .28);
}
.regist-complete-hero__check {
    position: absolute;
    right: -2px;
    bottom: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    color: var(--complete-primary);
    font-size: 11px;
    background: #fff;
    border:
        3px solid
        var(--complete-primary-light);
    border-radius: 50%;
    box-shadow:
        0 4px 12px
        rgba(91, 56, 69, .13);
}
.regist-complete-hero__label {
    display: block;
    margin-bottom: 6px;
    color:
        var(--complete-primary);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .15em;
}
.regist-complete-hero__title {
    margin: 0;
    color: #493941;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
}
.regist-complete-hero__message {
    margin:
        12px 0 0;
    color: #8e7b83;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.9;
}
/* decoration
--------------------------------------------------------- */
.regist-complete-hero__spark {
    position: absolute;
    color:
        var(--complete-primary);
    opacity: .65;
}
.regist-complete-hero__spark--1 {
    top: 17px;
    left: 55px;
    font-size: 11px;
    transform:
        rotate(-14deg);
}
.regist-complete-hero__spark--2 {
    top: 3px;
    right: 64px;
    font-size: 13px;
    transform:
        rotate(11deg);
}
.regist-complete-hero__spark--3 {
    top: 90px;
    right: 47px;
    font-size: 8px;
}
/* Profile status
--------------------------------------------------------- */
.regist-complete-status {
    margin-bottom: 14px;
    padding: 15px;
    background: #fff;
    border:
        1px solid
        var(--complete-border);
    border-radius: 17px;
    box-shadow:
        0 6px 20px
        rgba(91, 56, 69, .055);
}
.regist-complete-status__header {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 13px;
}
.regist-complete-status__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color: #4fb189;
    font-size: 17px;
    background: #edf9f4;
    border-radius: 50%;
}
.regist-complete-status__label {
    display: block;
    color: #4fa985;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-complete-status__title {
    margin:
        2px 0 0;
    color: #53675f;
    font-size: 11px;
}
.regist-complete-status__items {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 6px;
}
.regist-complete-status__item {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
    min-height: 59px;
    padding: 7px;
    text-align: center;
    background: #f7fbf9;
    border-radius: 10px;
}
.regist-complete-status__item span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #fff;
    font-size: 7px;
    background: #54b38d;
    border-radius: 50%;
}
.regist-complete-status__item p {
    margin: 0;
    color: #76887f;
    font-size: 7px;
    font-weight: 600;
}
/* Start
--------------------------------------------------------- */
.regist-complete-start {
    margin-bottom: 25px;
    padding: 22px 16px;
    text-align: center;
    background:
        linear-gradient(
            140deg,
            #ffeaf2 0%,
            #fff9fb 100%
        );
    border:
        1px solid
        var(--complete-primary-border);
    border-radius: 18px;
}
.regist-complete-start__label {
    display: block;
    margin-bottom: 5px;
    color:
        var(--complete-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.regist-complete-start__title {
    margin: 0;
    color: #5a4650;
    font-size: 18px;
    line-height: 1.6;
}
.regist-complete-start__text {
    margin:
        9px 0 18px;
    color: #96828a;
    font-size: 8px;
    line-height: 1.7;
}
.regist-complete-start__button {
    display: flex;
    gap: 17px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 57px;
    padding:
        13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            var(--complete-primary-dark),
            var(--complete-primary),
            #f783a9
        );
    border-radius: 999px;
    box-shadow:
        0 9px 22px
        rgba(244,95,143,.27);
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}
.regist-complete-start__button:hover {
    transform:
        translateY(-1px);
    box-shadow:
        0 11px 25px
        rgba(244,95,143,.31);
}
/* Features
--------------------------------------------------------- */
.regist-complete-features {
    margin-bottom: 24px;
}
.regist-complete-section-heading {
    margin:
        0 3px 10px;
}
.regist-complete-section-heading__label {
    display: block;
    margin-bottom: 2px;
    color:
        var(--complete-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.regist-complete-section-heading__title {
    margin: 0;
    color: #4d3d44;
    font-size: 14px;
}
.regist-complete-feature-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.regist-complete-feature-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 111px;
    padding:
        13px 7px 10px;
    color: inherit;
    text-align: center;
    text-decoration: none;
    background: #fff;
    border:
        1px solid
        var(--complete-border);
    border-radius: 14px;
    box-shadow:
        0 4px 14px
        rgba(91,56,69,.045);
}
.regist-complete-feature-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    margin-bottom: 7px;
    color:
        var(--complete-primary);
    font-size: 15px;
    background:
        var(--complete-primary-light);
    border-radius: 50%;
}
.regist-complete-feature-card strong {
    color: #58464e;
    font-size: 9px;
}
.regist-complete-feature-card small {
    display: block;
    margin-top: 4px;
    color: #a08d95;
    font-size: 6.5px;
    line-height: 1.5;
}
/* Safety
--------------------------------------------------------- */
.regist-complete-guide {
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) 17px;
    gap: 10px;
    align-items: center;
    margin-bottom: 23px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #f2f8ff 0%,
            #fff 100%
        );
    border:
        1px solid #dfeaf5;
    border-radius: 14px;
}
.regist-complete-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color: #5b9dd1;
    background: #fff;
    border-radius: 50%;
}
.regist-complete-guide__label {
    display: block;
    color: #5b9dd1;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.regist-complete-guide__title {
    display: block;
    margin-top: 2px;
    color: #556979;
    font-size: 9px;
    line-height: 1.5;
}
.regist-complete-guide__text {
    margin:
        4px 0 0;
    color: #8799a6;
    font-size: 7px;
    line-height: 1.6;
}
.regist-complete-guide__link {
    color: #9aabba;
    text-decoration: none;
}
/* Footer
--------------------------------------------------------- */
.regist-complete-footer {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    padding:
        5px 5px 10px;
    color: #c0afb6;
    font-size: 7px;
}
.regist-complete-footer a {
    color: #9e8992;
    font-weight: 600;
    text-decoration: none;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .regist-complete-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .regist-complete-main {
        padding-inline: 9px;
    }
    .regist-complete-hero__title {
        font-size: 23px;
    }
    .regist-complete-feature-grid {
        gap: 6px;
    }
    .regist-complete-feature-card {
        padding-inline: 5px;
    }
}
/* =========================================================
   Loveny LOGIN
========================================================= */
.login-renew-page {
    --login-primary: #f45f8f;
    --login-primary-dark: #e84c7e;
    --login-primary-light: #fff0f5;
    --login-primary-pale: #fff8fb;
    --login-primary-border: #f5d4df;
    --login-text: #493941;
    --login-subtext: #95848b;
    --login-border: #f0e2e7;
    margin: 0;
    color: var(--login-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.login-renew-page *,
.login-renew-page *::before,
.login-renew-page *::after {
    box-sizing: border-box;
}
.login-renew-page input,
.login-renew-page button {
    font: inherit;
}
.login-renew-page [hidden] {
    display: none !important;
}
.login-renew-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 216, 231, .88) 0,
            transparent 29%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255, 238, 245, .94) 0,
            transparent 28%
        ),
        var(--login-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91, 56, 70, .08);
}
/* Main
--------------------------------------------------------- */
.login-renew-main {
    padding:
        calc(30px + env(safe-area-inset-top))
        14px
        calc(28px + env(safe-area-inset-bottom));
}
/* Logo
--------------------------------------------------------- */
.login-renew-header {
    padding:
        6px 0 24px;
    text-align: center;
}
.login-renew-logo {
    display: inline-block;
}
.login-renew-logo img {
    display: block;
    width: 115px;
    max-width: 42vw;
    height: auto;
    margin: 0 auto;
}
.login-renew-header__message {
    margin:
        6px 0 0;
    color: #9b8890;
    font-size: 8px;
    font-weight: 500;
}
/* Login Card
--------------------------------------------------------- */
.login-renew-card {
    padding:
        23px 16px 18px;
    background:
        rgba(255,255,255,.96);
    border:
        1px solid var(--login-border);
    border-radius: 20px;
    box-shadow:
        0 9px 30px
        rgba(91,56,69,.075);
}
/* Visual
--------------------------------------------------------- */
.login-renew-card__visual {
    position: relative;
    width: 76px;
    height: 76px;
    margin:
        0 auto 13px;
}
.login-renew-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    color: #fff;
    font-size: 27px;
    background:
        linear-gradient(
            140deg,
            var(--login-primary-dark),
            var(--login-primary),
            #f786aa
        );
    border-radius: 50%;
    box-shadow:
        0 10px 22px
        rgba(244,95,143,.24);
}
.login-renew-card__spark {
    position: absolute;
    color:
        var(--login-primary);
}
.login-renew-card__spark--1 {
    top: -3px;
    right: -13px;
    font-size: 10px;
    transform:
        rotate(13deg);
}
.login-renew-card__spark--2 {
    bottom: 7px;
    left: -12px;
    font-size: 8px;
    opacity: .65;
}
/* Heading
--------------------------------------------------------- */
.login-renew-card__heading {
    margin-bottom: 23px;
    text-align: center;
}
.login-renew-card__label {
    display: block;
    margin-bottom: 4px;
    color:
        var(--login-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.login-renew-card__title {
    margin: 0;
    color: #493941;
    font-size: 22px;
    font-weight: 700;
}
.login-renew-card__description {
    margin:
        9px 0 0;
    color: #95848b;
    font-size: 8.5px;
    line-height: 1.8;
}
/* Field
--------------------------------------------------------- */
.login-renew-field {
    margin-bottom: 12px;
}
.login-renew-field__heading {
    margin-bottom: 7px;
}
.login-renew-field__label {
    color: #59484f;
    font-size: 10px;
    font-weight: 700;
}
/* Input
--------------------------------------------------------- */
.login-renew-input {
    position: relative;
}
.login-renew-input__icon {
    position: absolute;
    top: 50%;
    left: 14px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    color:
        var(--login-primary);
    font-size: 13px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.login-renew-input input {
    display: block;
    width: 100%;
    height: 52px;
    padding:
        0 43px 0 40px;
    color: #534249;
    font-size: 11px;
    background: #fffafd;
    border:
        1px solid var(--login-border);
    border-radius: 10px;
    outline: none;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}
.login-renew-input input::placeholder {
    color: #b8a8ae;
}
.login-renew-input input:focus {
    background: #fff;
    border-color:
        var(--login-primary);
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.1);
}
.login-renew-input input.is-valid {
    border-color: #e8afc1;
}
.login-renew-input input.is-error {
    background: #fffafa;
    border-color: #dc6078;
    box-shadow:
        0 0 0 3px
        rgba(220,96,120,.08);
}
.login-renew-input__valid {
    position: absolute;
    top: 50%;
    right: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    color: #fff;
    font-size: 8px;
    background: #55b88c;
    border-radius: 50%;
    transform:
        translateY(-50%);
}
.login-renew-field__error {
    min-height: 17px;
    margin:
        5px 2px 0;
    color: #d64f69;
    font-size: 7px;
    line-height: 1.5;
}
/* Code Guide
--------------------------------------------------------- */
.login-renew-code-guide {
    display: grid;
    grid-template-columns:
        38px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    margin:
        4px 0 17px;
    padding: 11px;
    background:
        linear-gradient(
            115deg,
            #fff0f5 0%,
            #fff9fb 100%
        );
    border:
        1px solid
        var(--login-primary-border);
    border-radius: 12px;
}
.login-renew-code-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color:
        var(--login-primary);
    font-size: 14px;
    background: #fff;
    border-radius: 50%;
}
.login-renew-code-guide__title {
    display: block;
    color: #655058;
    font-size: 8px;
}
.login-renew-code-guide__text {
    margin:
        3px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.55;
}
/* Submit
--------------------------------------------------------- */
.login-renew-submit {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding:
        13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--login-primary-dark),
            var(--login-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.25);
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}
.login-renew-submit:not(:disabled):hover {
    transform:
        translateY(-1px);
    box-shadow:
        0 10px 24px
        rgba(244,95,143,.3);
}
.login-renew-submit:disabled {
    color: #b7adb2;
    cursor: not-allowed;
    background: #eee8ea;
    box-shadow: none;
}
/* Divider
--------------------------------------------------------- */
.login-renew-divider {
    position: relative;
    margin:
        23px 0 18px;
    text-align: center;
}
.login-renew-divider::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 1px;
    background: #f0e5e9;
}
.login-renew-divider span {
    position: relative;
    z-index: 2;
    display: inline-block;
    padding:
        0 10px;
    color: #b2a1a8;
    font-size: 7px;
    background: #fff;
}
/* Register
--------------------------------------------------------- */
.login-renew-register {
    text-align: center;
}
.login-renew-register__text {
    margin:
        0 0 9px;
    color: #9c8990;
    font-size: 8px;
}
.login-renew-register__button {
    display: grid;
    grid-template-columns:
        28px minmax(0, 1fr) 15px;
    gap: 7px;
    align-items: center;
    min-height: 49px;
    padding:
        8px 13px;
    color:
        var(--login-primary-dark);
    font-size: 10px;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
    background:
        var(--login-primary-light);
    border:
        1px solid
        var(--login-primary-border);
    border-radius: 12px;
}
.login-renew-register__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: #fff;
    font-size: 10px;
    background:
        var(--login-primary);
    border-radius: 50%;
}
.login-renew-register__button
> .fa-chevron-right {
    color: #ca90a5;
    font-size: 9px;
}
/* Security
--------------------------------------------------------- */
.login-renew-security {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    margin-top: 16px;
    padding: 11px;
    color: #96848b;
    text-align: center;
}
.login-renew-security__icon {
    color:
        var(--login-primary);
    font-size: 10px;
}
.login-renew-security__text {
    margin: 0;
    font-size: 7px;
    line-height: 1.6;
}
/* Footer
--------------------------------------------------------- */
.login-renew-footer {
    padding:
        20px 5px 4px;
    text-align: center;
}
.login-renew-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 13px;
    justify-content: center;
}
.login-renew-footer__links a {
    color: #a18f96;
    font-size: 7px;
    text-decoration: none;
}
.login-renew-footer__copyright {
    margin:
        13px 0 0;
    color: #c2b3b9;
    font-size: 7px;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .login-renew-page {
        background: #f2ecef;
    }
}
/* Small
--------------------------------------------------------- */
@media (max-width: 360px) {
    .login-renew-main {
        padding-inline: 10px;
    }
    .login-renew-card {
        padding-inline: 13px;
    }
    .login-renew-card__title {
        font-size: 20px;
    }
}
/* =========================================================
   Loveny LOGIN - VERIFY CODE
========================================================= */
.login-code-page {
    --code-primary: #f45f8f;
    --code-primary-dark: #e84c7e;
    --code-primary-light: #fff0f5;
    --code-primary-pale: #fff8fb;
    --code-primary-border: #f5d4df;
    --code-text: #493941;
    --code-subtext: #95848b;
    --code-border: #f0e2e7;
    margin: 0;
    color: var(--code-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.login-code-page *,
.login-code-page *::before,
.login-code-page *::after {
    box-sizing: border-box;
}
.login-code-page button,
.login-code-page input {
    font: inherit;
}
.login-code-page [hidden] {
    display: none !important;
}
/* App
--------------------------------------------------------- */
.login-code-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 216, 231, .88) 0,
            transparent 29%
        ),
        radial-gradient(
            circle at 0 46%,
            rgba(255, 238, 245, .94) 0,
            transparent 28%
        ),
        var(--code-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}
/* Main
--------------------------------------------------------- */
.login-code-main {
    padding:
        calc(18px + env(safe-area-inset-top))
        14px
        calc(28px + env(safe-area-inset-bottom));
}
/* Header
--------------------------------------------------------- */
.login-code-header {
    display: grid;
    grid-template-columns:
        43px minmax(0, 1fr) 43px;
    align-items: center;
    min-height: 48px;
    margin-bottom: 16px;
}
.login-code-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #705e66;
    text-decoration: none;
    background: rgba(255,255,255,.9);
    border:
        1px solid var(--code-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.login-code-header__logo {
    display: flex;
    justify-content: center;
}
.login-code-header__logo img {
    display: block;
    width: 99px;
    height: auto;
}
/* Card
--------------------------------------------------------- */
.login-code-card {
    padding:
        24px 16px 19px;
    background:
        rgba(255,255,255,.96);
    border:
        1px solid var(--code-border);
    border-radius: 20px;
    box-shadow:
        0 9px 30px
        rgba(91,56,69,.075);
}
/* Visual
--------------------------------------------------------- */
.login-code-card__visual {
    position: relative;
    width: 77px;
    height: 77px;
    margin:
        0 auto 13px;
}
.login-code-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 77px;
    height: 77px;
    color: #fff;
    font-size: 28px;
    background:
        linear-gradient(
            140deg,
            var(--code-primary-dark),
            var(--code-primary),
            #f786aa
        );
    border-radius: 50%;
    box-shadow:
        0 10px 22px
        rgba(244,95,143,.24);
}
.login-code-card__spark {
    position: absolute;
    color:
        var(--code-primary);
}
.login-code-card__spark--1 {
    top: -4px;
    right: -13px;
    font-size: 10px;
    transform:
        rotate(13deg);
}
.login-code-card__spark--2 {
    bottom: 6px;
    left: -12px;
    font-size: 8px;
    opacity: .65;
}
/* Heading
--------------------------------------------------------- */
.login-code-card__heading {
    margin-bottom: 18px;
    text-align: center;
}
.login-code-card__label {
    display: block;
    margin-bottom: 4px;
    color:
        var(--code-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .14em;
}
.login-code-card__title {
    margin: 0;
    color: #493941;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
}
.login-code-card__description {
    margin:
        9px 0 0;
    color: #95848b;
    font-size: 8.5px;
    line-height: 1.8;
}
/* Email
--------------------------------------------------------- */
.login-code-email {
    display: grid;
    grid-template-columns:
        35px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    margin-bottom: 21px;
    padding:
        9px 11px;
    background:
        #fff8fb;
    border:
        1px solid var(--code-border);
    border-radius: 11px;
}
.login-code-email__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color:
        var(--code-primary);
    background:
        var(--code-primary-light);
    border-radius: 50%;
}
.login-code-email__body {
    min-width: 0;
}
.login-code-email__label {
    display: block;
    color: #ae9ba3;
    font-size: 6.5px;
}
.login-code-email__address {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: #69555e;
    font-size: 8.5px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.login-code-email__change {
    padding:
        5px 7px;
    color:
        var(--code-primary-dark);
    font-size: 7px;
    font-weight: 700;
    text-decoration: none;
}
/* Code
--------------------------------------------------------- */
.login-code-fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.login-code-fieldset__legend {
    width: 100%;
    margin-bottom: 9px;
    color: #59484f;
    font-size: 9px;
    font-weight: 700;
    text-align: center;
}
.login-code-inputs {
    display: grid;
    grid-template-columns:
        repeat(6, minmax(0, 1fr));
    gap: 7px;
}
.login-code-input {
    display: block;
    width: 100%;
    min-width: 0;
    aspect-ratio: 1 / 1.13;
    padding: 0;
    color: #57434b;
    font-family:
        "Nunito",
        "Noto Sans JP",
        sans-serif;
    font-size: 20px;
    font-weight: 800;
    text-align: center;
    caret-color:
        var(--code-primary);
    background: #fffafd;
    border:
        1.5px solid var(--code-border);
    border-radius: 10px;
    outline: none;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease,
        transform .18s ease;
}
.login-code-input:focus {
    background: #fff;
    border-color:
        var(--code-primary);
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.1);
    transform:
        translateY(-1px);
}
.login-code-input.is-filled {
    color:
        var(--code-primary-dark);
    background:
        var(--code-primary-light);
    border-color:
        #edaec2;
}
/* Error
--------------------------------------------------------- */
.login-code-error {
    min-height: 20px;
    margin:
        7px 2px 2px;
    color: #d64f69;
    font-size: 7px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
}
/* Guide
--------------------------------------------------------- */
.login-code-guide {
    display: grid;
    grid-template-columns:
        37px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    margin:
        6px 0 17px;
    padding: 10px;
    background:
        linear-gradient(
            115deg,
            #fff1f6 0%,
            #fff9fb 100%
        );
    border:
        1px solid
        var(--code-primary-border);
    border-radius: 11px;
}
.login-code-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--code-primary);
    font-size: 13px;
    background: #fff;
    border-radius: 50%;
}
.login-code-guide__title {
    display: block;
    color: #655058;
    font-size: 8px;
}
.login-code-guide__text {
    margin:
        3px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.55;
}
/* Submit
--------------------------------------------------------- */
.login-code-submit {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding:
        13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--code-primary-dark),
            var(--code-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.25);
    transition:
        transform .2s ease,
        box-shadow .2s ease;
}
.login-code-submit:not(:disabled):hover {
    transform:
        translateY(-1px);
    box-shadow:
        0 10px 24px
        rgba(244,95,143,.30);
}
.login-code-submit:disabled {
    color: #b7adb2;
    cursor: not-allowed;
    background: #eee8ea;
    box-shadow: none;
}
/* Resend
--------------------------------------------------------- */
.login-code-resend {
    padding:
        20px 0 2px;
    text-align: center;
}
.login-code-resend__text {
    margin:
        0 0 7px;
    color: #a08d95;
    font-size: 8px;
}
.login-code-resend__button {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    min-height: 33px;
    padding:
        6px 11px;
    color:
        var(--code-primary-dark);
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background:
        var(--code-primary-light);
    border:
        1px solid
        var(--code-primary-border);
    border-radius: 999px;
}
.login-code-resend__button:disabled {
    color: #a9969e;
    cursor: default;
    background: #f8f3f5;
    border-color: #eee4e8;
}
/* Security
--------------------------------------------------------- */
.login-code-security {
    display: grid;
    grid-template-columns:
        39px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    margin-top: 15px;
    padding: 11px 12px;
    background:
        rgba(255,255,255,.55);
    border-radius: 12px;
}
.login-code-security__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #679bc2;
    background: #eef7fd;
    border-radius: 50%;
}
.login-code-security__title {
    display: block;
    color: #5f707c;
    font-size: 8px;
}
.login-code-security__text {
    margin:
        3px 0 0;
    color: #91a0a9;
    font-size: 6.5px;
    line-height: 1.6;
}
/* Footer
--------------------------------------------------------- */
.login-code-footer {
    padding:
        21px 5px 3px;
    text-align: center;
}
.login-code-footer a {
    color:
        var(--code-primary-dark);
    font-size: 7px;
    font-weight: 600;
    text-decoration: none;
}
.login-code-footer p {
    margin:
        12px 0 0;
    color: #c2b3b9;
    font-size: 7px;
}
/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .login-code-page {
        background: #f2ecef;
    }
}
/* 小さいスマホ
--------------------------------------------------------- */
@media (max-width: 360px) {
    .login-code-main {
        padding-inline: 10px;
    }
    .login-code-card {
        padding-inline: 13px;
    }
    .login-code-inputs {
        gap: 5px;
    }
    .login-code-input {
        font-size: 18px;
        border-radius: 8px;
    }
    .login-code-card__title {
        font-size: 19px;
    }
}
/* =========================================================
   Loveny Partner Chat
========================================================= */
.partner-chat-page {
    --chat-primary: #f45f8f;
    --chat-primary-dark: #e84c7e;
    --chat-primary-light: #fff0f5;
    --chat-primary-pale: #fff8fb;
    --chat-primary-border: #f5d4df;
    --chat-text: #493941;
    --chat-subtext: #95848b;
    --chat-border: #f0e2e7;
    --chat-card: #ffffff;
    margin: 0;
    color: var(--chat-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f2ecef;
}
.partner-chat-page *,
.partner-chat-page *::before,
.partner-chat-page *::after {
    box-sizing: border-box;
}
.partner-chat-page button,
.partner-chat-page textarea,
.partner-chat-page input {
    font: inherit;
}
.partner-chat-page [hidden] {
    display: none !important;
}
/* =========================================================
   APP
========================================================= */
.partner-chat-app {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 430px;
    height: 100svh;
    margin: 0 auto;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 218, 232, .70) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 60%,
            rgba(255, 241, 246, .90) 0,
            transparent 27%
        ),
        #fffafd;
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}
/* =========================================================
   HEADER
========================================================= */
.partner-chat-header {
    position: relative;
    z-index: 30;
    flex: 0 0 auto;
    display: grid;
    grid-template-columns:
        40px minmax(0, 1fr) 40px;
    gap: 7px;
    align-items: center;
    min-height: 69px;
    padding:
        calc(7px + env(safe-area-inset-top))
        11px
        7px;
    background:
        rgba(255, 250, 252, .94);
    border-bottom:
        1px solid var(--chat-border);
    backdrop-filter: blur(16px);
}
.partner-chat-header__back,
.partner-chat-header__menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    color: #725f67;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--chat-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(91,56,69,.05);
}
.partner-chat-header__menu {
    cursor: pointer;
}
.partner-chat-header__profile {
    display: flex;
    gap: 9px;
    align-items: center;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}
.partner-chat-header__avatar {
    position: relative;
    flex: 0 0 auto;
    width: 43px;
    height: 43px;
}
.partner-chat-header__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.partner-chat-header__online-dot {
    position: absolute;
    right: 0;
    bottom: 1px;
    width: 11px;
    height: 11px;
    background: #35c77c;
    border: 2px solid #fff;
    border-radius: 50%;
}
.partner-chat-header__user {
    min-width: 0;
}
.partner-chat-header__name {
    display: flex;
    gap: 5px;
    align-items: center;
    color: #493a40;
    font-size: 12px;
    font-weight: 700;
}
.partner-chat-header__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: #fff;
    font-size: 6px;
    background: #49a7ee;
    border-radius: 50%;
}
.partner-chat-header__meta {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: #9b8990;
    font-size: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.partner-chat-header__online-text {
    color: #42af7b;
}
/* =========================================================
   MAIN
========================================================= */
.partner-chat-main {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    padding:
        17px
        12px
        0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
}
.partner-chat-main::-webkit-scrollbar {
    display: none;
}
/* =========================================================
   MATCH CARD
========================================================= */
.partner-chat-match-card {
    margin:
        0 5px 22px;
    padding:
        16px 14px;
    text-align: center;
    background:
        linear-gradient(
            135deg,
            #ffeaf2 0%,
            #fff9fb 100%
        );
    border:
        1px solid
        var(--chat-primary-border);
    border-radius: 16px;
}
.partner-chat-match-card__avatars {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}
.partner-chat-match-card__avatar {
    width: 47px;
    height: 47px;
    overflow: hidden;
    border:
        3px solid #fff;
    border-radius: 50%;
    box-shadow:
        0 4px 11px
        rgba(91,56,69,.1);
}
.partner-chat-match-card__avatar + 
.partner-chat-match-card__heart +
.partner-chat-match-card__avatar {
    margin-left: -5px;
}
.partner-chat-match-card__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.partner-chat-match-card__heart {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    margin:
        0 -5px;
    color: #fff;
    font-size: 10px;
    background:
        var(--chat-primary);
    border:
        3px solid #fff;
    border-radius: 50%;
}
.partner-chat-match-card__label {
    display: block;
    color:
        var(--chat-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.partner-chat-match-card__title {
    display: block;
    margin-top: 3px;
    color: #604c55;
    font-size: 10px;
}
.partner-chat-match-card__text {
    margin:
        5px 0 0;
    color: #9b858e;
    font-size: 7px;
    line-height: 1.65;
}
/* =========================================================
   DATE
========================================================= */
.partner-chat-date {
    display: flex;
    align-items: center;
    justify-content: center;
    margin:
        3px 0 17px;
}
.partner-chat-date span {
    padding:
        5px 10px;
    color: #a18e96;
    font-size: 7px;
    font-weight: 600;
    background:
        rgba(255,255,255,.80);
    border:
        1px solid #f0e4e8;
    border-radius: 999px;
}
/* =========================================================
   CHAT ROW
========================================================= */
.partner-chat-row {
    display: flex;
    width: 100%;
    margin-bottom: 16px;
}
.partner-chat-row--partner {
    align-items: flex-end;
    justify-content: flex-start;
}
.partner-chat-row--mine {
    justify-content: flex-end;
    padding-left: 55px;
}
.partner-chat-row__avatar {
    flex: 0 0 auto;
    width: 37px;
    height: 37px;
    margin:
        0 8px 18px 0;
}
.partner-chat-row__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    box-shadow:
        0 3px 9px
        rgba(91,56,69,.09);
}
.partner-chat-message-group {
    max-width: 78%;
}
.partner-chat-row--mine
.partner-chat-message-group {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    max-width: 86%;
}
.partner-chat-message-group__name {
    display: block;
    margin:
        0 0 4px 4px;
    color: #8f7b83;
    font-size: 7px;
    font-weight: 600;
}
/* =========================================================
   BUBBLE
========================================================= */
.partner-chat-bubble {
    position: relative;
    padding:
        11px 13px;
    font-size: 10px;
    line-height: 1.75;
    box-shadow:
        0 4px 14px
        rgba(91,56,69,.055);
}
.partner-chat-bubble p {
    margin: 0;
    overflow-wrap: anywhere;
}
/* 相手 */
.partner-chat-bubble--partner {
    color: #59494f;
    background: #fff;
    border:
        1px solid #efe4e8;
    border-radius:
        5px 15px 15px 15px;
}
/* 自分 */
.partner-chat-bubble--mine {
    color: #fff;
    background:
        linear-gradient(
            135deg,
            var(--chat-primary-dark),
            var(--chat-primary),
            #f783a9
        );
    border-radius:
        15px 5px 15px 15px;
    box-shadow:
        0 5px 16px
        rgba(244,95,143,.19);
}
/* Time
--------------------------------------------------------- */
.partner-chat-message-time {
    display: block;
    margin:
        5px 3px 0;
    color: #aa989f;
    font-size: 6.5px;
}
.partner-chat-message-time--mine {
    text-align: right;
}
/* =========================================================
   TALK HINT
========================================================= */
.partner-chat-hint {
    display: grid;
    grid-template-columns:
        37px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: center;
    margin:
        22px 2px 18px;
    padding: 11px;
    background:
        linear-gradient(
            115deg,
            #fff0f5 0%,
            #fff9fb 100%
        );
    border:
        1px solid
        var(--chat-primary-border);
    border-radius: 13px;
}
.partner-chat-hint__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--chat-primary);
    font-size: 13px;
    background: #fff;
    border-radius: 50%;
}
.partner-chat-hint__body {
    min-width: 0;
}
.partner-chat-hint__label {
    display: block;
    color:
        var(--chat-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.partner-chat-hint__text {
    margin:
        3px 0 0;
    color: #886f79;
    font-size: 7px;
    line-height: 1.55;
}
.partner-chat-hint__link {
    display: flex;
    gap: 3px;
    align-items: center;
    color:
        var(--chat-primary-dark);
    font-size: 7px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
/* =========================================================
   COMPOSER
========================================================= */
.partner-chat-compose {
    position: relative;
    z-index: 25;
    flex: 0 0 auto;
    padding:
        8px
        10px
        calc(9px + env(safe-area-inset-bottom));
    background:
        rgba(255,250,252,.96);
    border-top:
        1px solid var(--chat-border);
    backdrop-filter: blur(16px);
    box-shadow:
        0 -5px 18px
        rgba(91,56,69,.04);
}
.partner-chat-compose__form {
    display: grid;
    grid-template-columns:
        38px minmax(0, 1fr) 42px;
    gap: 7px;
    align-items: flex-end;
}
/* Photo
--------------------------------------------------------- */
.partner-chat-compose__photo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 1px;
    color:
        var(--chat-primary);
    font-size: 17px;
    cursor: pointer;
    background:
        var(--chat-primary-light);
    border-radius: 50%;
}
/* Input
--------------------------------------------------------- */
.partner-chat-compose__input-wrap {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 41px;
    padding:
        3px 39px 3px 4px;
    background: #fff;
    border:
        1px solid var(--chat-border);
    border-radius: 21px;
}
.partner-chat-compose__input-wrap:focus-within {
    border-color:
        #efb2c6;
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.08);
}
.partner-chat-compose__input {
    display: block;
    width: 100%;
    min-height: 34px;
    max-height: 120px;
    padding:
        8px 9px;
    overflow-y: auto;
    color: #56464c;
    font-size: 10px;
    line-height: 1.55;
    resize: none;
    background: transparent;
    border: 0;
    outline: none;
}
.partner-chat-compose__input::placeholder {
    color: #baa9af;
}
.partner-chat-compose__emoji {
    position: absolute;
    right: 7px;
    bottom: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    padding: 0;
    color: #b59fa8;
    font-size: 16px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* Send
--------------------------------------------------------- */
.partner-chat-compose__send {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    background:
        linear-gradient(
            140deg,
            var(--chat-primary-dark),
            var(--chat-primary),
            #f783a9
        );
    border: 0;
    border-radius: 50%;
    box-shadow:
        0 5px 14px
        rgba(244,95,143,.24);
    transition:
        transform .18s ease,
        opacity .18s ease;
}
.partner-chat-compose__send:not(:disabled):active {
    transform: scale(.94);
}
.partner-chat-compose__send:disabled {
    color: #b9afb3;
    cursor: default;
    background: #eee8ea;
    box-shadow: none;
}
/* Spacer */
.partner-chat-bottom-space {
    height: 18px;
}
/* =========================================================
   CHAT MENU
========================================================= */
.partner-chat-menu {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}
.partner-chat-menu.is-open {
    visibility: visible;
    opacity: 1;
}
.partner-chat-menu__overlay {
    position: absolute;
    inset: 0;
    background:
        rgba(52,38,44,.44);
}
.partner-chat-menu__panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: min(100%, 430px);
    margin: 0 auto;
    padding:
        8px 12px
        calc(15px + env(safe-area-inset-bottom));
    background: #fffafd;
    border-radius:
        20px 20px 0 0;
    box-shadow:
        0 -10px 30px
        rgba(61,42,50,.18);
    transform:
        translateY(100%);
    transition:
        transform .26s ease;
}
.partner-chat-menu.is-open
.partner-chat-menu__panel {
    transform:
        translateY(0);
}
.partner-chat-menu__handle {
    width: 36px;
    height: 4px;
    margin:
        2px auto 9px;
    background: #ddd1d6;
    border-radius: 999px;
}
.partner-chat-menu__item {
    display: grid;
    grid-template-columns:
        37px minmax(0, 1fr) 14px;
    gap: 9px;
    align-items: center;
    width: 100%;
    min-height: 56px;
    padding:
        8px 10px;
    color: #65535b;
    font-size: 9px;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-bottom:
        1px solid #f2e7eb;
}
.partner-chat-menu__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--chat-primary);
    background:
        var(--chat-primary-light);
    border-radius: 50%;
}
.partner-chat-menu__item > .fa-chevron-right {
    color: #c2b0b7;
    font-size: 9px;
}
.partner-chat-menu__item--danger {
    color: #c45b6d;
}
/* =========================================================
   REPLY PREVIEW
========================================================= */
.partner-chat-reply-preview {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 30px;
    align-items: center;
    margin-bottom: 7px;
    padding:
        7px 10px;
    background:
        var(--chat-primary-light);
    border-left:
        3px solid
        var(--chat-primary);
    border-radius: 8px;
}
.partner-chat-reply-preview__label {
    display: block;
    color:
        var(--chat-primary);
    font-size: 6px;
    font-weight: 700;
}
.partner-chat-reply-preview p {
    margin:
        2px 0 0;
    overflow: hidden;
    color: #785f69;
    font-size: 7px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.partner-chat-reply-preview button {
    width: 28px;
    height: 28px;
    color: #9e8992;
    background: transparent;
    border: 0;
}
/* =========================================================
   PC
========================================================= */
@media (min-width: 431px) {
    .partner-chat-page {
        background: #f2ecef;
    }
}
/* =========================================================
   SMALL
========================================================= */
@media (max-width: 360px) {
    .partner-chat-header {
        padding-inline: 8px;
    }
    .partner-chat-main {
        padding-inline: 9px;
    }
    .partner-chat-bubble {
        font-size: 9.5px;
    }
    .partner-chat-message-group {
        max-width: 80%;
    }
    .partner-chat-row--mine
    .partner-chat-message-group {
        max-width: 88%;
    }
}
/* =========================================================
   Loveny PROFILE EDIT
========================================================= */
.profile-edit-page {
    --pe-primary: #f45f8f;
    --pe-primary-dark: #e84c7e;
    --pe-primary-light: #fff0f5;
    --pe-primary-pale: #fff8fb;
    --pe-primary-border: #f5d4df;
    --pe-text: #493941;
    --pe-subtext: #95848b;
    --pe-border: #f0e2e7;
    margin: 0;
    color: var(--pe-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f2ecef;
}
.profile-edit-page *,
.profile-edit-page *::before,
.profile-edit-page *::after {
    box-sizing: border-box;
}
.profile-edit-page input,
.profile-edit-page select,
.profile-edit-page textarea,
.profile-edit-page button {
    font: inherit;
}
.profile-edit-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 1%,
            rgba(255,218,232,.80) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 43%,
            rgba(255,239,245,.92) 0,
            transparent 26%
        ),
        var(--pe-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}
/* =========================================================
   HEADER
========================================================= */
.profile-edit-header {
    position: sticky;
    top: 0;
    z-index: 30;
    display: grid;
    grid-template-columns:
        43px minmax(0, 1fr) 47px;
    align-items: center;
    min-height: 69px;
    padding:
        calc(8px + env(safe-area-inset-top))
        11px
        8px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--pe-border);
    backdrop-filter: blur(15px);
}
.profile-edit-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #725f67;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--pe-border);
    border-radius: 50%;
}
.profile-edit-header__heading {
    text-align: center;
}
.profile-edit-header__label {
    display: block;
    color: var(--pe-primary);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: .13em;
}
.profile-edit-header__title {
    margin: 2px 0 0;
    color: #493941;
    font-size: 14px;
}
.profile-edit-header__save {
    padding: 6px 7px;
    color:
        var(--pe-primary-dark);
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background: transparent;
    border: 0;
}
/* =========================================================
   MAIN
========================================================= */
.profile-edit-main {
    padding:
        14px
        12px
        calc(40px + env(safe-area-inset-bottom));
}
/* =========================================================
   SUMMARY
========================================================= */
.profile-edit-summary {
    margin-bottom: 12px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--pe-border);
    border-radius: 18px;
    box-shadow:
        0 6px 20px
        rgba(91,56,69,.06);
}
.profile-edit-summary__top {
    display: grid;
    grid-template-columns:
        76px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}
.profile-edit-summary__avatar {
    position: relative;
    display: block;
    width: 76px;
    height: 76px;
}
.profile-edit-summary__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border:
        3px solid #fff;
    border-radius: 50%;
    box-shadow:
        0 0 0 2px
        var(--pe-primary-border);
}
.profile-edit-summary__camera {
    position: absolute;
    right: -1px;
    bottom: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: #fff;
    font-size: 9px;
    background:
        var(--pe-primary);
    border:
        2px solid #fff;
    border-radius: 50%;
}
.profile-edit-summary__name-row {
    display: flex;
    gap: 6px;
    align-items: center;
}
.profile-edit-summary__name-row h2 {
    margin: 0;
    color: #493a40;
    font-size: 18px;
}
.profile-edit-summary__verified {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: #fff;
    font-size: 7px;
    background: #48a8f2;
    border-radius: 50%;
}
.profile-edit-summary__body p {
    margin: 3px 0 7px;
    color: #927f87;
    font-size: 8px;
}
.profile-edit-summary__body a {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    color:
        var(--pe-primary-dark);
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
}
/* Progress
--------------------------------------------------------- */
.profile-edit-progress {
    margin-top: 15px;
    padding-top: 13px;
    border-top:
        1px solid #f3e7eb;
}
.profile-edit-progress__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}
.profile-edit-progress__heading span {
    color: #8d7a82;
    font-size: 8px;
}
.profile-edit-progress__heading strong {
    color:
        var(--pe-primary-dark);
    font-size: 13px;
}
.profile-edit-progress__bar {
    height: 7px;
    overflow: hidden;
    background: #f1e5e9;
    border-radius: 999px;
}
.profile-edit-progress__bar span {
    display: block;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            var(--pe-primary-dark),
            var(--pe-primary),
            #f783a9
        );
    border-radius: 999px;
}
.profile-edit-progress p {
    margin: 7px 0 0;
    color: #a08d95;
    font-size: 7px;
}
/* =========================================================
   SECTION NAV
========================================================= */
.profile-edit-nav {
    position: sticky;
    top: 69px;
    z-index: 20;
    display: flex;
    gap: 6px;
    margin:
        0 -12px 13px;
    padding:
        9px 12px;
    overflow-x: auto;
    background:
        rgba(255,248,251,.96);
    border-bottom:
        1px solid #f0e4e8;
    scrollbar-width: none;
    backdrop-filter: blur(14px);
}
.profile-edit-nav::-webkit-scrollbar {
    display: none;
}
.profile-edit-nav a {
    flex: 0 0 auto;
    display: flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding:
        6px 10px;
    color: #927f87;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--pe-border);
    border-radius: 999px;
}
.profile-edit-nav a.is-active {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--pe-primary-dark),
            var(--pe-primary)
        );
    border-color: transparent;
}
/* =========================================================
   CARD
========================================================= */
.profile-edit-card {
    scroll-margin-top: 125px;
    margin-bottom: 13px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--pe-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91,56,69,.045);
}
.profile-edit-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 15px;
}
.profile-edit-card__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color:
        var(--pe-primary);
    background:
        var(--pe-primary-light);
    border-radius: 50%;
}
.profile-edit-card__label {
    display: block;
    color:
        var(--pe-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.profile-edit-card__title {
    margin: 2px 0 0;
    color: #59474f;
    font-size: 12px;
}
.profile-edit-card__description {
    margin: 3px 0 0;
    color: #a08e95;
    font-size: 7px;
}
/* =========================================================
   FIELD
========================================================= */
.profile-edit-field {
    padding:
        15px 0;
    border-top:
        1px solid #f4e9ed;
}
.profile-edit-field:first-of-type {
    padding-top: 3px;
    border-top: 0;
}
.profile-edit-field__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}
.profile-edit-field__label {
    display: block;
    margin-bottom: 7px;
    color: #5b4951;
    font-size: 9px;
    font-weight: 700;
}
.profile-edit-field__heading
.profile-edit-field__label {
    margin-bottom: 0;
}
.profile-edit-character-count {
    color: #aa989f;
    font-size: 7px;
}
.profile-edit-field__locked {
    padding:
        3px 6px;
    color: #9f8d94;
    font-size: 6px;
    font-weight: 700;
    background: #f2edef;
    border-radius: 999px;
}
/* =========================================================
   READONLY
========================================================= */
.profile-edit-readonly {
    display: grid;
    grid-template-columns:
        31px minmax(0,1fr) 18px;
    gap: 8px;
    align-items: center;
    min-height: 47px;
    padding:
        7px 11px;
    color: #88767d;
    font-size: 9px;
    background: #f8f4f6;
    border:
        1px solid #eee5e8;
    border-radius: 9px;
}
.profile-edit-readonly__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #b49fa7;
    background: #fff;
    border-radius: 50%;
}
.profile-edit-readonly
> .fa-lock {
    color: #beafb5;
    font-size: 8px;
}
/* =========================================================
   INPUT
========================================================= */
.profile-edit-input {
    position: relative;
}
.profile-edit-input__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color:
        var(--pe-primary);
    font-size: 11px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.profile-edit-input input {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 13px 0 38px;
    color: #55454c;
    font-size: 10px;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 9px;
    outline: none;
}
.profile-edit-input input:focus {
    border-color:
        var(--pe-primary);
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.09);
}
/* Unit
--------------------------------------------------------- */
.profile-edit-unit-input {
    display: grid;
    grid-template-columns:
        minmax(0,1fr) 35px;
    gap: 7px;
    align-items: center;
}
.profile-edit-unit-input input {
    height: 48px;
    padding: 0 12px;
    color: #55454c;
    font-size: 10px;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 9px;
    outline: none;
}
.profile-edit-unit-input span {
    color: #817078;
    font-size: 8px;
}
/* =========================================================
   SELECT
========================================================= */
.profile-edit-select {
    position: relative;
}
.profile-edit-select__icon {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color:
        var(--pe-primary);
    font-size: 11px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
.profile-edit-select select {
    display: block;
    width: 100%;
    height: 48px;
    padding:
        0 35px 0 38px;
    color: #58484f;
    font-size: 10px;
    appearance: none;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 9px;
    outline: none;
}
.profile-edit-select
> .fa-chevron-down {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #b39fa7;
    font-size: 8px;
    transform:
        translateY(-50%);
    pointer-events: none;
}
/* =========================================================
   CHOICE
========================================================= */
.profile-edit-choice-grid {
    display: grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap: 7px;
}
.profile-edit-choice-grid--3 {
    grid-template-columns:
        repeat(3,minmax(0,1fr));
}
.profile-edit-choice-grid label,
.profile-edit-choice-list label {
    position: relative;
}
.profile-edit-choice-grid input,
.profile-edit-choice-list input {
    position: absolute;
    opacity: 0;
}
.profile-edit-choice-grid span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 7px;
    color: #725f67;
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 9px;
}
.profile-edit-choice-grid input:checked + span,
.profile-edit-choice-list input:checked + span {
    color:
        var(--pe-primary-dark);
    background:
        var(--pe-primary-light);
    border-color:
        var(--pe-primary);
}
.profile-edit-choice-list {
    display: grid;
    gap: 7px;
}
.profile-edit-choice-list span {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding:
        8px 11px;
    color: #725f67;
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 9px;
}
/* =========================================================
   TEXTAREA
========================================================= */
.profile-edit-textarea {
    overflow: hidden;
    background: #fffafd;
    border:
        1px solid var(--pe-border);
    border-radius: 10px;
}
.profile-edit-textarea:focus-within {
    border-color:
        var(--pe-primary);
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.09);
}
.profile-edit-textarea textarea {
    display: block;
    width: 100%;
    min-height: 130px;
    padding: 12px;
    color: #55454c;
    font-size: 10px;
    line-height: 1.75;
    resize: vertical;
    background: transparent;
    border: 0;
    outline: none;
}
.profile-edit-textarea__footer {
    padding:
        8px 10px;
    color: #9c7181;
    font-size: 6.5px;
    background: #fff3f7;
    border-top:
        1px solid #f3e4e9;
}
.profile-edit-textarea__footer i {
    margin-right: 4px;
    color:
        var(--pe-primary);
}
/* =========================================================
   VERIFICATION
========================================================= */
.profile-edit-verification {
    background:
        linear-gradient(
            135deg,
            #f5fbff,
            #fff
        );
    border-color: #dcecf5;
}
.profile-edit-verification__status {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    padding:
        11px;
    background: #edf9f4;
    border-radius: 11px;
}
.profile-edit-verification__status-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #fff;
    background: #52b48d;
    border-radius: 50%;
}
.profile-edit-verification__status strong {
    display: block;
    color: #527264;
    font-size: 9px;
}
.profile-edit-verification__status p {
    margin: 3px 0 0;
    color: #839a90;
    font-size: 7px;
}
.profile-edit-verification__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 9px;
    padding:
        11px;
    color: #597587;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background: #fff;
    border:
        1px solid #e2edf3;
    border-radius: 10px;
}
.profile-edit-verification__link span {
    display: flex;
    gap: 7px;
    align-items: center;
}
/* =========================================================
   AI ADVICE
========================================================= */
.profile-edit-advice {
    display: grid;
    grid-template-columns:
        41px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 14px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff8fb
        );
    border:
        1px solid var(--pe-primary-border);
    border-radius: 14px;
}
.profile-edit-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color:
        var(--pe-primary);
    background: #fff;
    border-radius: 50%;
}
.profile-edit-advice__label {
    display: block;
    color:
        var(--pe-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.profile-edit-advice__title {
    display: block;
    margin-top: 2px;
    color: #65515a;
    font-size: 8px;
    line-height: 1.6;
}
.profile-edit-advice a {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    margin-top: 6px;
    color:
        var(--pe-primary-dark);
    font-size: 7px;
    font-weight: 700;
    text-decoration: none;
}
/* =========================================================
   SUBMIT
========================================================= */
.profile-edit-submit {
    padding:
        4px 0 5px;
}
.profile-edit-submit__button {
    display: flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--pe-primary-dark),
            var(--pe-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.24);
}
.profile-edit-submit p {
    margin:
        8px 0 0;
    color: #aa989f;
    font-size: 7px;
    text-align: center;
}
/* =========================================================
   PC
========================================================= */
@media (min-width:431px) {
    .profile-edit-page {
        background: #f2ecef;
    }
}
/* =========================================================
   SMALL
========================================================= */
@media (max-width:360px) {
    .profile-edit-main {
        padding-inline: 9px;
    }
    .profile-edit-card {
        padding-inline: 12px;
    }
    .profile-edit-choice-grid--3 {
        gap: 5px;
    }
}
/* =========================================================
   Loveny MEMBER PROFILE
========================================================= */
.member-profile-page {
    --mp-primary: #f45f8f;
    --mp-primary-dark: #e84c7e;
    --mp-primary-light: #fff0f5;
    --mp-primary-pale: #fff8fb;
    --mp-primary-border: #f5d4df;
    --mp-text: #493941;
    --mp-subtext: #95848b;
    --mp-border: #f0e2e7;
    margin: 0;
    color: var(--mp-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f2ecef;
}
.member-profile-page *,
.member-profile-page *::before,
.member-profile-page *::after {
    box-sizing: border-box;
}
.member-profile-page button {
    font: inherit;
}
/* APP
--------------------------------------------------------- */
.member-profile-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 1%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 45%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--mp-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}
/* HEADER
--------------------------------------------------------- */
.member-profile-header {
    position: sticky;
    top: 0;
    z-index: 30;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 64px;
    padding:
        calc(7px + env(safe-area-inset-top))
        11px
        7px;
    background:
        rgba(255,248,251,.94);
    border-bottom:
        1px solid var(--mp-border);
    backdrop-filter:
        blur(15px);
}
.member-profile-header__back,
.member-profile-header__menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    color: #725f67;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--mp-border);
    border-radius: 50%;
}
.member-profile-header__title {
    color: #4c3b43;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
/* MAIN
--------------------------------------------------------- */
.member-profile-main {
    padding:
        12px
        12px
        0;
}
/* PHOTO
--------------------------------------------------------- */
.member-profile-photo__main {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #f1e8ec;
    border-radius: 21px;
    box-shadow:
        0 8px 25px
        rgba(91,56,69,.10);
}
.member-profile-photo__main > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.member-profile-photo__badges {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.member-profile-badge {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 27px;
    padding:
        5px 9px;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    border-radius: 999px;
    backdrop-filter: blur(9px);
}
.member-profile-badge--online {
    background:
        rgba(53,172,112,.88);
}
.member-profile-badge--online span {
    width: 7px;
    height: 7px;
    background: #fff;
    border-radius: 50%;
}
.member-profile-badge--match {
    background:
        rgba(232,76,126,.88);
}
.member-profile-photo__counter {
    position: absolute;
    right: 11px;
    bottom: 11px;
    display: flex;
    gap: 5px;
    align-items: center;
    padding:
        5px 8px;
    color: #fff;
    font-size: 7px;
    background:
        rgba(49,37,42,.57);
    border-radius: 999px;
    backdrop-filter:
        blur(8px);
}
/* Thumbs
--------------------------------------------------------- */
.member-profile-photo__thumbs {
    display: grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    gap: 7px;
    margin-top: 8px;
}
.member-profile-photo__thumb {
    aspect-ratio: 1/1;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    background: #eee;
    border:
        2px solid transparent;
    border-radius: 10px;
}
.member-profile-photo__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.member-profile-photo__thumb.is-active {
    border-color:
        var(--mp-primary);
}
/* SUMMARY
--------------------------------------------------------- */
.member-profile-summary {
    padding:
        17px 5px 15px;
}
.member-profile-summary__name-row {
    display: flex;
    gap: 7px;
    align-items: center;
}
.member-profile-summary__name {
    margin: 0;
    color: #493941;
    font-size: 23px;
}
.member-profile-summary__verified {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: #fff;
    font-size: 7px;
    background: #48a8f2;
    border-radius: 50%;
}
.member-profile-summary__meta {
    margin:
        4px 0 10px;
    color: #917e86;
    font-size: 9px;
}
.member-profile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.member-profile-tags span {
    padding:
        5px 9px;
    color:
        var(--mp-primary-dark);
    font-size: 7px;
    font-weight: 700;
    background:
        var(--mp-primary-light);
    border:
        1px solid
        var(--mp-primary-border);
    border-radius: 999px;
}
/* MATCH CARD
--------------------------------------------------------- */
.member-profile-match-card {
    display: grid;
    grid-template-columns:
        68px minmax(0,1fr);
    gap: 11px;
    align-items: center;
    margin-bottom: 13px;
    padding: 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--mp-primary-border);
    border-radius: 16px;
}
.member-profile-match-card__score {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 67px;
    height: 67px;
    background: #fff;
    border-radius: 50%;
    box-shadow:
        0 5px 14px
        rgba(244,95,143,.12);
}
.member-profile-match-card__heart {
    color:
        var(--mp-primary);
    font-size: 10px;
}
.member-profile-match-card__score strong {
    margin-top: 1px;
    color:
        var(--mp-primary-dark);
    font-size: 17px;
}
.member-profile-match-card__score small {
    color: #b38696;
    font-size: 5px;
    font-weight: 800;
}
.member-profile-match-card__label {
    color:
        var(--mp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.member-profile-match-card__title {
    display: block;
    margin-top: 2px;
    color: #604d55;
    font-size: 10px;
}
.member-profile-match-card__body p {
    margin:
        5px 0 0;
    color: #947f88;
    font-size: 7px;
    line-height: 1.6;
}
/* CARD
--------------------------------------------------------- */
.member-profile-card {
    margin-bottom: 13px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--mp-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91,56,69,.045);
}
.member-profile-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 14px;
}
.member-profile-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 39px;
    height: 39px;
    color:
        var(--mp-primary);
    background:
        var(--mp-primary-light);
    border-radius: 50%;
}
.member-profile-card__label {
    display: block;
    color:
        var(--mp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.member-profile-card__title {
    margin:
        2px 0 0;
    color: #59474f;
    font-size: 12px;
}
/* INTRO
--------------------------------------------------------- */
.member-profile-introduction {
    margin: 0;
    color: #65545b;
    font-size: 9px;
    line-height: 1.9;
}
/* INFO GRID
--------------------------------------------------------- */
.member-profile-info-grid {
    display: grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap: 8px;
}
.member-profile-info {
    display: grid;
    grid-template-columns:
        33px minmax(0,1fr);
    gap: 8px;
    align-items: center;
    min-height: 57px;
    padding:
        8px;
    background: #fffafd;
    border:
        1px solid #f2e7eb;
    border-radius: 10px;
}
.member-profile-info__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color:
        var(--mp-primary);
    font-size: 11px;
    background:
        var(--mp-primary-light);
    border-radius: 50%;
}
.member-profile-info__body small {
    display: block;
    color: #a08d95;
    font-size: 6px;
}
.member-profile-info__body strong {
    display: block;
    margin-top: 2px;
    color: #635159;
    font-size: 8px;
}
/* DETAIL
--------------------------------------------------------- */
.member-profile-detail-list {
    display: grid;
}
.member-profile-detail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 43px;
    border-bottom:
        1px solid #f4eaed;
}
.member-profile-detail:last-child {
    border-bottom: 0;
}
.member-profile-detail > span {
    display: flex;
    gap: 7px;
    align-items: center;
    color: #8c7981;
    font-size: 8px;
}
.member-profile-detail > span i {
    width: 15px;
    color:
        var(--mp-primary);
    text-align: center;
}
.member-profile-detail strong {
    color: #5c4a52;
    font-size: 8px;
}
/* LOVE
--------------------------------------------------------- */
.member-profile-love-list {
    display: grid;
    gap: 8px;
}
.member-profile-love-item {
    display: grid;
    grid-template-columns:
        38px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    min-height: 58px;
    padding: 9px;
    background:
        linear-gradient(
            120deg,
            #fff5f8,
            #fff
        );
    border-radius: 11px;
}
.member-profile-love-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color:
        var(--mp-primary);
    background: #fff;
    border-radius: 50%;
}
.member-profile-love-item small,
.member-profile-recent__item small {
    display: block;
    color: #a08e95;
    font-size: 6px;
}
.member-profile-love-item strong,
.member-profile-recent__item strong {
    display: block;
    margin-top: 2px;
    color: #604e56;
    font-size: 8px;
}
/* RECENT
--------------------------------------------------------- */
.member-profile-recent {
    display: grid;
    gap: 8px;
}
.member-profile-recent__item {
    display: grid;
    grid-template-columns:
        38px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    min-height: 57px;
    padding: 9px;
    background: #fffafd;
    border:
        1px solid #f3e8ec;
    border-radius: 10px;
}
.member-profile-recent__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color:
        var(--mp-primary);
    background:
        var(--mp-primary-light);
    border-radius: 50%;
}
/* SAFETY
--------------------------------------------------------- */
.member-profile-safety {
    display: grid;
    grid-template-columns:
        43px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-bottom: 15px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #eef9ff,
            #fff
        );
    border:
        1px solid #d9ebf6;
    border-radius: 14px;
}
.member-profile-safety__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: #4d9ed4;
    background: #fff;
    border-radius: 50%;
}
.member-profile-safety__label {
    display: block;
    color: #4d9ed4;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.member-profile-safety strong {
    display: block;
    margin-top: 2px;
    color: #576d7c;
    font-size: 9px;
}
.member-profile-safety p {
    margin:
        4px 0 0;
    color: #8da0ab;
    font-size: 7px;
}
/* BOTTOM
--------------------------------------------------------- */
.member-profile-bottom-space {
    height:
        calc(90px + env(safe-area-inset-bottom));
}
/* CTA
--------------------------------------------------------- */
.member-profile-actions {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 40;
    display: grid;
    grid-template-columns:
        48px minmax(0,1fr);
    gap: 9px;
    width: min(100%,430px);
    margin: 0 auto;
    padding:
        10px
        12px
        calc(10px + env(safe-area-inset-bottom));
    background:
        rgba(255,250,252,.95);
    border-top:
        1px solid var(--mp-border);
    backdrop-filter:
        blur(15px);
    box-shadow:
        0 -6px 20px
        rgba(91,56,69,.06);
}
.member-profile-action {
    border: 0;
    cursor: pointer;
}
.member-profile-action--sub {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color:
        var(--mp-primary);
    font-size: 17px;
    background: #fff;
    border:
        1px solid
        var(--mp-primary-border);
    border-radius: 50%;
}
.member-profile-action--sub.is-active {
    color: #fff;
    background:
        var(--mp-primary);
}
.member-profile-action--like {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    background:
        linear-gradient(
            100deg,
            var(--mp-primary-dark),
            var(--mp-primary),
            #f783a9
        );
    border-radius: 999px;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.24);
}
.member-profile-action__heart {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    color:
        var(--mp-primary);
    background: #fff;
    border-radius: 50%;
}
.member-profile-action--like.is-liked {
    background:
        linear-gradient(
            100deg,
            #d99bab,
            #e6afbd
        );
    box-shadow: none;
}
/* MENU
--------------------------------------------------------- */
.member-profile-menu {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}
.member-profile-menu.is-open {
    visibility: visible;
    opacity: 1;
}
.member-profile-menu__overlay {
    position: absolute;
    inset: 0;
    background:
        rgba(52,38,44,.44);
}
.member-profile-menu__panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: min(100%,430px);
    margin: 0 auto;
    padding:
        8px
        12px
        calc(15px + env(safe-area-inset-bottom));
    background: #fffafd;
    border-radius:
        20px 20px 0 0;
    transform:
        translateY(100%);
    transition:
        transform .25s ease;
}
.member-profile-menu.is-open
.member-profile-menu__panel {
    transform:
        translateY(0);
}
.member-profile-menu__handle {
    width: 36px;
    height: 4px;
    margin:
        2px auto 8px;
    background: #ddd1d6;
    border-radius: 999px;
}
.member-profile-menu__item {
    display: grid;
    grid-template-columns:
        36px minmax(0,1fr) 14px;
    gap: 9px;
    align-items: center;
    width: 100%;
    min-height: 56px;
    padding:
        8px 10px;
    color: #65535b;
    font-size: 9px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-bottom:
        1px solid #f2e7eb;
}
.member-profile-menu__item > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--mp-primary);
    background:
        var(--mp-primary-light);
    border-radius: 50%;
}
.member-profile-menu__item--danger {
    color: #c45b6d;
}
/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .member-profile-page {
        background: #f2ecef;
    }
}
/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .member-profile-main {
        padding-inline: 9px;
    }
    .member-profile-summary__name {
        font-size: 21px;
    }
    .member-profile-card {
        padding-inline: 12px;
    }
}
/* =========================================================
   Loveny MY PAGE - PHOTO EDIT
========================================================= */
.mypage-photo-page {
    --photo-primary: #f45f8f;
    --photo-primary-dark: #e84c7e;
    --photo-primary-light: #fff0f5;
    --photo-primary-pale: #fff8fb;
    --photo-primary-border: #f5d4df;
    --photo-text: #493941;
    --photo-subtext: #95848b;
    --photo-border: #f0e2e7;
    margin: 0;
    color: var(--photo-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.mypage-photo-page *,
.mypage-photo-page *::before,
.mypage-photo-page *::after {
    box-sizing: border-box;
}
.mypage-photo-page button,
.mypage-photo-page input {
    font: inherit;
}
.mypage-photo-page [hidden] {
    display: none !important;
}
/* =========================================================
   APP
========================================================= */
.mypage-photo-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 90px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 42%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--photo-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}
/* =========================================================
   HEADER
========================================================= */
.mypage-photo-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--photo-border);
    backdrop-filter: blur(14px);
}
.mypage-photo-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--photo-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.mypage-photo-header__heading {
    text-align: center;
}
.mypage-photo-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--photo-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.mypage-photo-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}
/* =========================================================
   MAIN
========================================================= */
.mypage-photo-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}
/* =========================================================
   INTRO
========================================================= */
.mypage-photo-intro {
    display: grid;
    grid-template-columns:
        53px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--photo-primary-border);
    border-radius: 16px;
}
.mypage-photo-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    color: #fff;
    font-size: 19px;
    background:
        linear-gradient(
            140deg,
            var(--photo-primary-dark),
            var(--photo-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 7px 17px
        rgba(244,95,143,.22);
}
.mypage-photo-intro__label {
    display: block;
    color: var(--photo-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.mypage-photo-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 15px;
    line-height: 1.55;
}
.mypage-photo-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}
/* =========================================================
   PHOTO CARD
========================================================= */
.mypage-photo-card {
    margin-bottom: 14px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--photo-border);
    border-radius: 18px;
    box-shadow:
        0 6px 20px
        rgba(91,56,69,.055);
}
.mypage-photo-card__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 17px;
}
.mypage-photo-card__label {
    display: block;
    color: var(--photo-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.mypage-photo-card__title {
    margin:
        2px 0 0;
    color: #58464e;
    font-size: 13px;
}
.mypage-photo-card__count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 47px;
    height: 28px;
    color:
        var(--photo-primary-dark);
    font-size: 8px;
    font-weight: 700;
    background:
        var(--photo-primary-light);
    border-radius: 999px;
}
/* =========================================================
   SECTION HEADING
========================================================= */
.mypage-photo-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
}
.mypage-photo-section-heading strong {
    color: #59484f;
    font-size: 10px;
}
.mypage-photo-section-heading small {
    color: #a18f96;
    font-size: 6.5px;
}
.mypage-photo-required,
.mypage-photo-optional {
    display: inline-flex;
    margin-left: 5px;
    padding:
        3px 6px;
    font-size: 6px;
    font-weight: 700;
    border-radius: 999px;
}
.mypage-photo-required {
    color: #fff;
    background:
        var(--photo-primary);
}
.mypage-photo-optional {
    color: #9d8b92;
    background: #f4eef0;
}
/* =========================================================
   FILE INPUT
========================================================= */
.mypage-photo-file {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
/* =========================================================
   MAIN PHOTO
========================================================= */
.mypage-photo-main-section {
    padding-bottom: 20px;
    border-bottom:
        1px solid #f4e9ed;
}
.mypage-photo-main-upload {
    position: relative;
    width:
        min(100%, 285px);
    aspect-ratio: 4 / 5;
    margin: 0 auto;
    overflow: hidden;
    background: #fff8fb;
    border:
        2px dashed #efb9cb;
    border-radius: 18px;
}
.mypage-photo-main-upload.has-photo {
    border:
        1px solid #eadce2;
}
.mypage-photo-main-upload__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mypage-photo-main-upload__empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.mypage-photo-main-upload__empty > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    margin-bottom: 9px;
    color:
        var(--photo-primary);
    font-size: 20px;
    background: #fff;
    border-radius: 50%;
}
.mypage-photo-main-upload__empty strong {
    color: #65515a;
    font-size: 10px;
}
.mypage-photo-main-upload__empty small {
    margin-top: 4px;
    color: #aa979f;
    font-size: 7px;
}
.mypage-photo-main-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding:
        5px 9px;
    color: #fff;
    font-size: 7px;
    font-weight: 800;
    background:
        linear-gradient(
            100deg,
            var(--photo-primary-dark),
            var(--photo-primary)
        );
    border-radius: 999px;
}
.mypage-photo-main-actions {
    position: absolute;
    right: 10px;
    bottom: 10px;
}
.mypage-photo-action-button {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    padding:
        7px 11px;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    cursor: pointer;
    background:
        rgba(50,38,43,.66);
    border-radius: 999px;
    backdrop-filter: blur(8px);
}
.mypage-photo-main-help {
    margin:
        8px 0 0;
    color: #a08e95;
    font-size: 7px;
    text-align: center;
}
/* =========================================================
   SUB PHOTOS
========================================================= */
.mypage-photo-sub-section {
    padding-top: 18px;
}
.mypage-photo-sub-grid {
    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap: 8px;
}
.mypage-photo-sub-item {
    position: relative;
    aspect-ratio: 1 / 1.2;
    overflow: hidden;
    background: #fff8fb;
    border:
        1.5px dashed #edc1d0;
    border-radius: 12px;
}
.mypage-photo-sub-item.has-photo {
    border:
        1px solid #eadce2;
}
.mypage-photo-sub-item__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mypage-photo-sub-item__empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    justify-content: center;
    color: #a77d8d;
    font-size: 6.5px;
    font-weight: 700;
    cursor: pointer;
}
.mypage-photo-sub-item__plus {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color:
        var(--photo-primary);
    font-size: 13px;
    background:
        var(--photo-primary-light);
    border-radius: 50%;
}
.mypage-photo-sub-item__actions {
    position: absolute;
    top: 6px;
    right: 6px;
}
.mypage-photo-sub-menu-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    padding: 0;
    color: #fff;
    font-size: 11px;
    cursor: pointer;
    background:
        rgba(45,34,39,.64);
    border: 0;
    border-radius: 50%;
    backdrop-filter: blur(7px);
}
/* =========================================================
   ERROR
========================================================= */
.mypage-photo-error {
    min-height: 17px;
    margin:
        10px 2px 0;
    color: #d84f69;
    font-size: 7px;
}
/* =========================================================
   AI ADVICE
========================================================= */
.mypage-photo-advice {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 14px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--photo-primary-border);
    border-radius: 14px;
}
.mypage-photo-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color:
        var(--photo-primary);
    background: #fff;
    border-radius: 50%;
}
.mypage-photo-advice__label {
    display: block;
    color:
        var(--photo-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.mypage-photo-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 9px;
    line-height: 1.5;
}
.mypage-photo-advice__text {
    margin:
        5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}
/* =========================================================
   TIPS
========================================================= */
.mypage-photo-tips {
    margin-bottom: 17px;
    padding: 14px;
    background: #fff;
    border:
        1px solid var(--photo-border);
    border-radius: 15px;
}
.mypage-photo-tips__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 12px;
}
.mypage-photo-tips__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #e1a049;
    background: #fff7ed;
    border-radius: 50%;
}
.mypage-photo-tips__label {
    display: block;
    color: #da9b4a;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.mypage-photo-tips__title {
    margin:
        2px 0 0;
    color: #655349;
    font-size: 11px;
}
.mypage-photo-tips__grid {
    display: grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap: 7px;
}
.mypage-photo-tip {
    display: grid;
    grid-template-columns:
        31px minmax(0,1fr);
    gap: 7px;
    align-items: center;
    min-height: 52px;
    padding: 7px;
    background: #fff9f5;
    border-radius: 9px;
}
.mypage-photo-tip > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #dd9d4f;
    background: #fff;
    border-radius: 50%;
}
.mypage-photo-tip strong {
    display: block;
    color: #6d5a50;
    font-size: 7px;
}
.mypage-photo-tip small {
    display: block;
    margin-top: 2px;
    color: #a6968e;
    font-size: 6px;
}
/* =========================================================
   SAVE
========================================================= */
.mypage-photo-submit {
    padding-top: 4px;
    text-align: center;
}
.mypage-photo-submit__button {
    display: flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--photo-primary-dark),
            var(--photo-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.25);
}
.mypage-photo-submit p {
    margin:
        8px 0 0;
    color: #a7969d;
    font-size: 7px;
}
/* =========================================================
   PHOTO ACTION MENU
========================================================= */
.mypage-photo-menu {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        visibility .22s ease,
        opacity .22s ease;
}
.mypage-photo-menu.is-open {
    visibility: visible;
    opacity: 1;
}
.mypage-photo-menu__overlay {
    position: absolute;
    inset: 0;
    background:
        rgba(51,37,43,.45);
}
.mypage-photo-menu__panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: min(100%,430px);
    margin: 0 auto;
    padding:
        8px
        12px
        calc(16px + env(safe-area-inset-bottom));
    background: #fffafd;
    border-radius:
        20px 20px 0 0;
    box-shadow:
        0 -10px 30px
        rgba(61,42,50,.18);
    transform:
        translateY(100%);
    transition:
        transform .25s ease;
}
.mypage-photo-menu.is-open
.mypage-photo-menu__panel {
    transform:
        translateY(0);
}
.mypage-photo-menu__handle {
    width: 37px;
    height: 4px;
    margin:
        2px auto 12px;
    background: #ded2d6;
    border-radius: 999px;
}
.mypage-photo-menu__preview {
    display: flex;
    gap: 11px;
    align-items: center;
    padding:
        4px 5px 12px;
    border-bottom:
        1px solid #f0e5e9;
}
.mypage-photo-menu__preview img {
    width: 52px;
    height: 52px;
    object-fit: cover;
    border-radius: 10px;
}
.mypage-photo-menu__preview span {
    display: block;
    color:
        var(--photo-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
}
.mypage-photo-menu__preview strong {
    display: block;
    margin-top: 2px;
    color: #59474f;
    font-size: 10px;
}
.mypage-photo-menu__item {
    display: grid;
    grid-template-columns:
        38px minmax(0,1fr) 14px;
    gap: 9px;
    align-items: center;
    width: 100%;
    min-height: 61px;
    padding:
        9px 8px;
    color: #605059;
    text-align: left;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-bottom:
        1px solid #f1e7ea;
}
.mypage-photo-menu__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color:
        var(--photo-primary);
    background:
        var(--photo-primary-light);
    border-radius: 50%;
}
.mypage-photo-menu__item strong {
    display: block;
    font-size: 9px;
}
.mypage-photo-menu__item small {
    display: block;
    margin-top: 2px;
    color: #9e8d94;
    font-size: 6.5px;
}
.mypage-photo-menu__item >
.fa-chevron-right {
    color: #c2b2b8;
    font-size: 9px;
}
.mypage-photo-menu__item--danger {
    color: #c65970;
}
.mypage-photo-menu__item--danger
.mypage-photo-menu__icon {
    color: #cf5b72;
    background: #fff0f2;
}
/* =========================================================
   FOOTER ACTIVE
========================================================= */
.mypage-photo-page
.bottom-nav
.nav-item.active {
    color:
        var(--photo-primary);
}
/* =========================================================
   PC
========================================================= */
@media (min-width:431px) {
    .mypage-photo-page {
        background: #f2ecef;
    }
}
/* =========================================================
   SMALL
========================================================= */
@media (max-width:360px) {
    .mypage-photo-main {
        padding-inline: 9px;
    }
    .mypage-photo-main-upload {
        width:
            min(100%,260px);
    }
    .mypage-photo-sub-grid {
        gap: 6px;
    }
}
/* =========================================================
   Loveny 本人確認
========================================================= */
.verification-page {
    --verify-primary: #f45f8f;
    --verify-primary-dark: #e84c7e;
    --verify-primary-light: #fff0f5;
    --verify-primary-pale: #fff8fb;
    --verify-primary-border: #f5d4df;
    --verify-text: #493941;
    --verify-subtext: #95848b;
    --verify-border: #f0e2e7;
    margin: 0;
    color: var(--verify-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.verification-page *,
.verification-page *::before,
.verification-page *::after {
    box-sizing: border-box;
}
.verification-page button,
.verification-page input {
    font: inherit;
}
.verification-page [hidden] {
    display: none !important;
}

/* APP
--------------------------------------------------------- */
.verification-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 90px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.76) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 45%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--verify-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.verification-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--verify-border);
    backdrop-filter:
        blur(14px);
}
.verification-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--verify-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.verification-header__heading {
    text-align: center;
}
.verification-header__label {
    display: block;
    margin-bottom: 1px;
    color:
        var(--verify-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.verification-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.verification-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.verification-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
    padding: 16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--verify-primary-border);
    border-radius: 17px;
}
.verification-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--verify-primary-dark),
            var(--verify-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.23);
}
.verification-intro__label {
    display: block;
    color:
        var(--verify-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.verification-intro__title {
    margin: 2px 0 0;
    color: #58454e;
    font-size: 16px;
    line-height: 1.55;
}
.verification-intro__text {
    margin: 5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* PURPOSE
--------------------------------------------------------- */
.verification-purpose {
    margin-bottom: 14px;
    padding: 14px;
    background: #fff;
    border:
        1px solid var(--verify-border);
    border-radius: 15px;
    box-shadow:
        0 4px 15px
        rgba(91,56,69,.04);
}
.verification-purpose__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 12px;
}
.verification-purpose__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color:
        var(--verify-primary);
    background:
        var(--verify-primary-light);
    border-radius: 50%;
}
.verification-purpose__label {
    display: block;
    color:
        var(--verify-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .11em;
}
.verification-purpose__title {
    margin: 2px 0 0;
    color: #59464e;
    font-size: 11px;
}
.verification-purpose__grid {
    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap: 7px;
}
.verification-purpose__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 81px;
    padding: 9px 5px;
    text-align: center;
    background: #fff8fb;
    border-radius: 10px;
}
.verification-purpose__item > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    margin-bottom: 5px;
    color:
        var(--verify-primary);
    background:
        var(--verify-primary-light);
    border-radius: 50%;
}
.verification-purpose__item strong {
    color: #645159;
    font-size: 7.5px;
}
.verification-purpose__item small {
    margin-top: 3px;
    color: #a29097;
    font-size: 6px;
}

/* CARD
--------------------------------------------------------- */
.verification-card {
    margin-bottom: 14px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--verify-border);
    border-radius: 17px;
    box-shadow:
        0 5px 18px
        rgba(91,56,69,.05);
}
.verification-card__header {
    display: grid;
    grid-template-columns:
        34px minmax(0,1fr);
    gap: 9px;
    align-items: center;
}
.verification-card__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    background:
        linear-gradient(
            135deg,
            var(--verify-primary-dark),
            var(--verify-primary)
        );
    border-radius: 50%;
}
.verification-card__label {
    display: block;
    color:
        var(--verify-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .11em;
}
.verification-card__title {
    margin: 2px 0 0;
    color: #59464e;
    font-size: 12px;
}
.verification-card__description {
    margin: 11px 0 13px;
    color: #99878e;
    font-size: 7px;
    line-height: 1.65;
}

/* DOCUMENT
--------------------------------------------------------- */
.verification-document-list {
    display: grid;
    gap: 8px;
}
.verification-document {
    position: relative;
}
.verification-document input {
    position: absolute;
    opacity: 0;
}
.verification-document__card {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr) 25px;
    gap: 10px;
    align-items: center;
    min-height: 61px;
    padding: 9px 11px;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--verify-border);
    border-radius: 11px;
    transition:
        background .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}
.verification-document__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color:
        var(--verify-primary);
    font-size: 14px;
    background:
        var(--verify-primary-light);
    border-radius: 50%;
}
.verification-document__body strong {
    display: block;
    color: #5d4a52;
    font-size: 9px;
}
.verification-document__body small {
    display: block;
    margin-top: 3px;
    color: #a08d95;
    font-size: 6.5px;
}
.verification-document__check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    color: transparent;
    font-size: 8px;
    border:
        1px solid #dfd3d8;
    border-radius: 50%;
}
.verification-document input:checked
+ .verification-document__card {
    background:
        var(--verify-primary-light);
    border-color:
        var(--verify-primary);
    box-shadow:
        0 0 0 2px
        rgba(244,95,143,.07);
}
.verification-document input:checked
+ .verification-document__card
.verification-document__check {
    color: #fff;
    background:
        var(--verify-primary);
    border-color:
        var(--verify-primary);
}

/* MY NUMBER WARNING
--------------------------------------------------------- */
.verification-mynumber-warning {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-bottom: 14px;
    padding: 12px;
    background: #fff8eb;
    border:
        1px solid #f0dfb6;
    border-radius: 13px;
}
.verification-mynumber-warning__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #de9b37;
    background: #fff;
    border-radius: 50%;
}
.verification-mynumber-warning__body strong {
    display: block;
    color: #705c38;
    font-size: 8px;
}
.verification-mynumber-warning__body p {
    margin: 4px 0 0;
    color: #9b8257;
    font-size: 7px;
    line-height: 1.6;
}

/* UPLOAD
--------------------------------------------------------- */
.verification-upload {
    position: relative;
    display: block;
    width: 100%;
    min-height: 240px;
    overflow: hidden;
    cursor: pointer;
    background:
        linear-gradient(
            145deg,
            #fff5f8,
            #fffafd
        );
    border:
        2px dashed #efb9cb;
    border-radius: 15px;
}
.verification-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
.verification-upload__empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    text-align: center;
}
.verification-upload__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 10px;
    color:
        var(--verify-primary);
    font-size: 20px;
    background: #fff;
    border-radius: 50%;
    box-shadow:
        0 5px 14px
        rgba(244,95,143,.13);
}
.verification-upload__empty strong {
    color: #654f58;
    font-size: 10px;
}
.verification-upload__empty > span {
    margin-top: 4px;
    color: #a48f97;
    font-size: 7px;
}
.verification-upload__empty small {
    margin-top: 7px;
    color: #b4a3aa;
    font-size: 6px;
}
.verification-upload__preview {
    display: block;
    width: 100%;
    min-height: 240px;
    max-height: 420px;
    object-fit: contain;
    background: #f7f4f5;
}
.verification-upload__change {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: inline-flex;
    gap: 5px;
    align-items: center;
    padding: 7px 10px;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    background:
        rgba(50,38,43,.68);
    border-radius: 999px;
    backdrop-filter: blur(8px);
}
.verification-upload__remove {
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
    margin: 9px auto 0;
    color: #a97686;
    font-size: 7px;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.verification-error {
    min-height: 18px;
    margin: 8px 0 0;
    color: #d75168;
    font-size: 7px;
}

/* PHOTO TIPS
--------------------------------------------------------- */
.verification-photo-tips {
    margin-bottom: 14px;
    padding: 14px;
    background:
        linear-gradient(
            130deg,
            #fff8ee,
            #fff
        );
    border:
        1px solid #f1e2c9;
    border-radius: 14px;
}
.verification-photo-tips__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 11px;
}
.verification-photo-tips__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #dda14f;
    background: #fff;
    border-radius: 50%;
}
.verification-photo-tips__label {
    display: block;
    color: #d89b4e;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .11em;
}
.verification-photo-tips__title {
    margin: 2px 0 0;
    color: #655449;
    font-size: 10px;
}
.verification-photo-tips__list {
    display: grid;
    gap: 6px;
}
.verification-photo-tip {
    display: grid;
    grid-template-columns:
        24px minmax(0,1fr);
    gap: 7px;
    align-items: center;
    min-height: 37px;
    padding: 5px 7px;
    background:
        rgba(255,255,255,.8);
    border-radius: 8px;
}
.verification-photo-tip > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: #fff;
    font-size: 7px;
    background: #63b88b;
    border-radius: 50%;
}
.verification-photo-tip p {
    margin: 0;
    color: #76665f;
    font-size: 7px;
}

/* SECURITY
--------------------------------------------------------- */
.verification-security {
    display: grid;
    grid-template-columns:
        43px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 14px;
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #eef8ff,
            #fff
        );
    border:
        1px solid #dbeaf4;
    border-radius: 14px;
}
.verification-security__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: #599ecf;
    background: #fff;
    border-radius: 50%;
}
.verification-security__label {
    display: block;
    color: #599ecf;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .11em;
}
.verification-security__title {
    display: block;
    margin-top: 2px;
    color: #526875;
    font-size: 8.5px;
}
.verification-security__text {
    margin: 5px 0 0;
    color: #8799a4;
    font-size: 7px;
    line-height: 1.6;
}
.verification-security a {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    margin-top: 7px;
    color: #5d95bb;
    font-size: 7px;
    font-weight: 700;
    text-decoration: none;
}

/* CONSENT
--------------------------------------------------------- */
.verification-consent {
    display: grid;
    grid-template-columns:
        24px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-bottom: 15px;
    padding: 11px;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--verify-border);
    border-radius: 11px;
}
.verification-consent input {
    position: absolute;
    opacity: 0;
}
.verification-consent__check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    color: transparent;
    font-size: 8px;
    border:
        1px solid #ddcfd5;
    border-radius: 6px;
}
.verification-consent input:checked
+ .verification-consent__check {
    color: #fff;
    background:
        var(--verify-primary);
    border-color:
        var(--verify-primary);
}
.verification-consent__text {
    color: #746269;
    font-size: 7.5px;
    line-height: 1.6;
}

/* SUBMIT
--------------------------------------------------------- */
.verification-submit {
    text-align: center;
}
.verification-submit__button {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    padding: 13px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--verify-primary-dark),
            var(--verify-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.25);
}
.verification-submit__button:disabled {
    color: #b7adb2;
    cursor: default;
    background: #eee8ea;
    box-shadow: none;
}
.verification-submit p {
    margin: 8px 0 0;
    color: #a6959c;
    font-size: 7px;
}

/* STATUS
--------------------------------------------------------- */
.verification-status {
    margin-top: 30px;
    padding: 31px 19px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--verify-border);
    border-radius: 19px;
    box-shadow:
        0 8px 26px
        rgba(91,56,69,.07);
}
.verification-status__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 78px;
    height: 78px;
    margin: 0 auto 14px;
    font-size: 27px;
    border-radius: 50%;
}
.verification-status--reviewing
.verification-status__icon {
    color: #d99b40;
    background: #fff8e8;
}
.verification-status--approved
.verification-status__icon {
    color: #4cae83;
    background: #eef9f4;
}
.verification-status__label {
    display: block;
    margin-bottom: 5px;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .13em;
}
.verification-status--reviewing
.verification-status__label {
    color: #d99b40;
}
.verification-status--approved
.verification-status__label {
    color: #4cae83;
}
.verification-status__title {
    margin: 0;
    color: #56464d;
    font-size: 17px;
}
.verification-status__text {
    margin: 9px 0 14px;
    color: #96848b;
    font-size: 8px;
    line-height: 1.75;
}
.verification-status__badge {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    padding: 7px 11px;
    font-size: 8px;
    font-weight: 700;
    border-radius: 999px;
}
.verification-status--reviewing
.verification-status__badge {
    color: #b77c25;
    background: #fff5df;
}
.verification-status--approved
.verification-status__badge {
    color: #398d69;
    background: #eaf8f1;
}
.verification-status__button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 20px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            var(--verify-primary-dark),
            var(--verify-primary)
        );
    border-radius: 999px;
}

/* FOOTER
--------------------------------------------------------- */
.verification-page
.bottom-nav
.nav-item.active {
    color:
        var(--verify-primary);
}

/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .verification-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width: 360px) {
    .verification-main {
        padding-inline: 9px;
    }
    .verification-intro {
        grid-template-columns:
            52px minmax(0,1fr);
    }
    .verification-intro__icon {
        width: 51px;
        height: 51px;
    }
    .verification-purpose__grid {
        gap: 5px;
    }
}
/* =========================================================
   Loveny 足あと
========================================================= */
.footprints-page {
    --fp-primary: #f45f8f;
    --fp-primary-dark: #e84c7e;
    --fp-primary-light: #fff0f5;
    --fp-primary-pale: #fff8fb;
    --fp-primary-border: #f5d4df;
    --fp-text: #493941;
    --fp-subtext: #95848b;
    --fp-border: #f0e2e7;
    margin: 0;
    color: var(--fp-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.footprints-page *,
.footprints-page *::before,
.footprints-page *::after {
    box-sizing: border-box;
}
.footprints-page button {
    font: inherit;
}
.footprints-page [hidden] {
    display: none !important;
}

/* APP
--------------------------------------------------------- */
.footprints-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--fp-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.footprints-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--fp-border);
    backdrop-filter: blur(14px);
}
.footprints-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--fp-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.footprints-header__heading {
    text-align: center;
}
.footprints-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--fp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.footprints-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.footprints-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.footprints-intro {
    display: grid;
    grid-template-columns:
        57px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
    padding: 16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--fp-primary-border);
    border-radius: 17px;
}
.footprints-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    color: #fff;
    font-size: 20px;
    background:
        linear-gradient(
            140deg,
            var(--fp-primary-dark),
            var(--fp-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.23);
}
.footprints-intro__label {
    display: block;
    color: var(--fp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.footprints-intro__title {
    margin: 2px 0 0;
    color: #58454e;
    font-size: 16px;
    line-height: 1.55;
}
.footprints-intro__text {
    margin: 5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* SUMMARY
--------------------------------------------------------- */
.footprints-summary {
    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap: 7px;
    margin-bottom: 12px;
}
.footprints-summary__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 88px;
    padding: 10px 6px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--fp-border);
    border-radius: 13px;
    box-shadow:
        0 4px 13px
        rgba(91,56,69,.04);
}
.footprints-summary__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-bottom: 5px;
    color: var(--fp-primary);
    font-size: 11px;
    background:
        var(--fp-primary-light);
    border-radius: 50%;
}
.footprints-summary__item strong {
    color: #55434b;
    font-size: 16px;
    line-height: 1.15;
}
.footprints-summary__item small {
    margin-top: 3px;
    color: #9e8c93;
    font-size: 6.5px;
}

/* AI ADVICE
--------------------------------------------------------- */
.footprints-advice {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 22px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--fp-primary-border);
    border-radius: 14px;
}
.footprints-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color: var(--fp-primary);
    font-size: 14px;
    background: #fff;
    border-radius: 50%;
}
.footprints-advice__label {
    display: block;
    color: var(--fp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.footprints-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 8.5px;
    line-height: 1.55;
}
.footprints-advice__text {
    margin: 5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}

/* SECTION HEADING
--------------------------------------------------------- */
.footprints-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin:
        0 3px 10px;
}
.footprints-section-heading__label {
    display: block;
    color: var(--fp-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.footprints-section-heading__title {
    margin: 2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}

/* FILTER
--------------------------------------------------------- */
.footprints-filter {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding:
        6px 10px;
    color: #927f87;
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--fp-border);
    border-radius: 999px;
}
.footprints-filter.is-active {
    color:
        var(--fp-primary-dark);
    background:
        var(--fp-primary-light);
    border-color:
        var(--fp-primary-border);
}

/* FOOTPRINT LIST
--------------------------------------------------------- */
.footprints-list {
    display: grid;
    gap: 10px;
}

/* CARD
--------------------------------------------------------- */
.footprint-card {
    position: relative;
    display: grid;
    grid-template-columns:
        116px minmax(0,1fr);
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--fp-border);
    border-radius: 15px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.05);
}
.footprint-card.is-new {
    border-color:
        #f2ccd8;
    box-shadow:
        0 5px 18px
        rgba(244,95,143,.075);
}

/* PHOTO
--------------------------------------------------------- */
.footprint-card__photo {
    position: relative;
    display: block;
    min-height: 157px;
    overflow: hidden;
    background: #f4edef;
}
.footprint-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 157px;
    object-fit: cover;
}
.footprint-card__new {
    position: absolute;
    top: 8px;
    left: 8px;
    padding:
        4px 7px;
    color: #fff;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .08em;
    background:
        var(--fp-primary);
    border-radius: 999px;
    box-shadow:
        0 3px 8px
        rgba(244,95,143,.22);
}
.footprint-card__online {
    position: absolute;
    top: 8px;
    right: 7px;
    padding:
        4px 6px;
    color: #fff;
    font-size: 5.5px;
    font-weight: 700;
    background:
        rgba(44,173,112,.90);
    border-radius: 999px;
}
.footprint-card__rate {
    position: absolute;
    right: 7px;
    bottom: 7px;
    display: inline-flex;
    gap: 3px;
    align-items: center;
    padding:
        4px 7px;
    color: #fff;
    font-size: 6.5px;
    font-weight: 800;
    background:
        rgba(58,39,47,.58);
    border-radius: 999px;
    backdrop-filter: blur(7px);
}
.footprint-card__rate i {
    color: #ff8eb1;
}

/* CARD BODY
--------------------------------------------------------- */
.footprint-card__body {
    min-width: 0;
    padding:
        11px 10px 10px;
}
.footprint-card__top {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    justify-content: space-between;
}
.footprint-card__name {
    display: flex;
    gap: 5px;
    align-items: center;
    margin: 0;
    color: #4f3f46;
    font-size: 12px;
}
.footprint-card__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: #fff;
    font-size: 6px;
    background: #48a8f2;
    border-radius: 50%;
}
.footprint-card__meta {
    margin:
        3px 0 0;
    color: #9e8b93;
    font-size: 6.8px;
    line-height: 1.45;
}
.footprint-card__date {
    display: flex;
    gap: 3px;
    align-items: center;
    flex: 0 0 auto;
    color: #ad9ba2;
    font-size: 6px;
    white-space: nowrap;
}
.footprint-card__message {
    display: -webkit-box;
    margin:
        10px 0 9px;
    overflow: hidden;
    color: #746169;
    font-size: 7.5px;
    line-height: 1.65;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ACTIONS
--------------------------------------------------------- */
.footprint-card__actions {
    display: grid;
    grid-template-columns:
        minmax(0,1fr) 35px;
    gap: 6px;
    align-items: center;
}
.footprint-card__profile-button {
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    padding:
        6px 8px;
    color:
        var(--fp-primary-dark);
    font-size: 7.5px;
    font-weight: 700;
    text-decoration: none;
    background:
        var(--fp-primary-light);
    border:
        1px solid var(--fp-primary-border);
    border-radius: 999px;
}
.footprint-card__profile-button i {
    font-size: 6px;
}
.footprint-card__like-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    padding: 0;
    color:
        var(--fp-primary);
    font-size: 14px;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--fp-primary-border);
    border-radius: 50%;
    transition:
        color .18s ease,
        background .18s ease,
        transform .18s ease;
}
.footprint-card__like-button.is-liked {
    color: #fff;
    background:
        var(--fp-primary);
    border-color:
        var(--fp-primary);
}
.footprint-card__like-button:active {
    transform: scale(.92);
}

/* EMPTY
--------------------------------------------------------- */
.footprints-empty {
    padding:
        38px 20px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--fp-border);
    border-radius: 15px;
}
.footprints-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin:
        0 auto 11px;
    color: var(--fp-primary);
    font-size: 21px;
    background:
        var(--fp-primary-light);
    border-radius: 50%;
}
.footprints-empty strong {
    display: block;
    color: #5b4951;
    font-size: 10px;
}
.footprints-empty p {
    margin:
        7px 0 13px;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.65;
}
.footprints-empty a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding:
        7px 15px;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            var(--fp-primary-dark),
            var(--fp-primary)
        );
    border-radius: 999px;
}

/* GUIDE
--------------------------------------------------------- */
.footprints-guide {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 16px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #fff8ee,
            #fff
        );
    border:
        1px solid #f0e1c8;
    border-radius: 13px;
}
.footprints-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #dda04f;
    background: #fff;
    border-radius: 50%;
}
.footprints-guide__body strong {
    display: block;
    color: #665448;
    font-size: 8px;
}
.footprints-guide__body p {
    margin:
        4px 0 0;
    color: #9a8b82;
    font-size: 6.5px;
    line-height: 1.6;
}

/* FOOTER ACTIVE
--------------------------------------------------------- */
.footprints-page
.bottom-nav
.nav-item.active {
    color:
        var(--fp-primary);
}

/* PC
--------------------------------------------------------- */
@media (min-width: 431px) {
    .footprints-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width: 360px) {
    .footprints-main {
        padding-inline: 9px;
    }
    .footprint-card {
        grid-template-columns:
            105px minmax(0,1fr);
    }
    .footprint-card__photo,
    .footprint-card__photo img {
        min-height: 150px;
    }
}
/* =========================================================
   Loveny いいねされた履歴
========================================================= */
.liked-history-page {
    --liked-primary: #f45f8f;
    --liked-primary-dark: #e84c7e;
    --liked-primary-light: #fff0f5;
    --liked-primary-pale: #fff8fb;
    --liked-primary-border: #f5d4df;
    --liked-text: #493941;
    --liked-subtext: #95848b;
    --liked-border: #f0e2e7;
    margin: 0;
    color: var(--liked-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.liked-history-page *,
.liked-history-page *::before,
.liked-history-page *::after {
    box-sizing: border-box;
}
.liked-history-page button {
    font: inherit;
}
.liked-history-page [hidden] {
    display: none !important;
}

/* APP
--------------------------------------------------------- */
.liked-history-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.80) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--liked-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.liked-history-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--liked-border);
    backdrop-filter: blur(14px);
}
.liked-history-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--liked-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.liked-history-header__heading {
    text-align: center;
}
.liked-history-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--liked-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.liked-history-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.liked-history-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.liked-history-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
    padding: 16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffe6ef,
            #fff9fb
        );
    border:
        1px solid var(--liked-primary-border);
    border-radius: 17px;
}
.liked-history-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--liked-primary-dark),
            var(--liked-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.25);
}
.liked-history-intro__label {
    display: block;
    color:
        var(--liked-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.liked-history-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 16px;
    line-height: 1.55;
}
.liked-history-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* SUMMARY
--------------------------------------------------------- */
.liked-history-summary {
    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap: 7px;
    margin-bottom: 12px;
}
.liked-history-summary__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 88px;
    padding: 10px 6px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--liked-border);
    border-radius: 13px;
    box-shadow:
        0 4px 13px
        rgba(91,56,69,.04);
}
.liked-history-summary__item > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-bottom: 5px;
    color:
        var(--liked-primary);
    background:
        var(--liked-primary-light);
    border-radius: 50%;
}
.liked-history-summary__item strong {
    color: #55434b;
    font-size: 16px;
    line-height: 1.15;
}
.liked-history-summary__item small {
    margin-top: 3px;
    color: #9e8c93;
    font-size: 6.5px;
}

/* AI
--------------------------------------------------------- */
.liked-history-advice {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 22px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--liked-primary-border);
    border-radius: 14px;
}
.liked-history-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color:
        var(--liked-primary);
    background: #fff;
    border-radius: 50%;
}
.liked-history-advice__label {
    display: block;
    color:
        var(--liked-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.liked-history-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 8.5px;
    line-height: 1.55;
}
.liked-history-advice__text {
    margin:
        5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}

/* HEADING
--------------------------------------------------------- */
.liked-history-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin:
        0 3px 10px;
}
.liked-history-section-heading__label {
    display: block;
    color:
        var(--liked-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.liked-history-section-heading__title {
    margin:
        2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}
.liked-history-filter {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding:
        6px 10px;
    color: #927f87;
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--liked-border);
    border-radius: 999px;
}
.liked-history-filter.is-active {
    color:
        var(--liked-primary-dark);
    background:
        var(--liked-primary-light);
    border-color:
        var(--liked-primary-border);
}

/* LIST
--------------------------------------------------------- */
.liked-history-list {
    display: grid;
    gap: 10px;
}

/* CARD
--------------------------------------------------------- */
.liked-user-card {
    display: grid;
    grid-template-columns:
        116px minmax(0,1fr);
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--liked-border);
    border-radius: 15px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.05);
}
.liked-user-card.is-new {
    border-color: #efc5d4;
    box-shadow:
        0 5px 19px
        rgba(244,95,143,.09);
}

/* PHOTO
--------------------------------------------------------- */
.liked-user-card__photo {
    position: relative;
    display: block;
    min-height: 180px;
    overflow: hidden;
    background: #f4edef;
}
.liked-user-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 180px;
    object-fit: cover;
}
.liked-user-card__new {
    position: absolute;
    top: 8px;
    left: 8px;
    padding:
        4px 7px;
    color: #fff;
    font-size: 6px;
    font-weight: 800;
    background:
        var(--liked-primary);
    border-radius: 999px;
}
.liked-user-card__online {
    position: absolute;
    top: 8px;
    right: 7px;
    padding:
        4px 6px;
    color: #fff;
    font-size: 5.5px;
    font-weight: 700;
    background:
        rgba(44,173,112,.90);
    border-radius: 999px;
}
.liked-user-card__rate {
    position: absolute;
    right: 7px;
    bottom: 7px;
    display: inline-flex;
    gap: 3px;
    align-items: center;
    padding:
        4px 7px;
    color: #fff;
    font-size: 6.5px;
    font-weight: 800;
    background:
        rgba(58,39,47,.58);
    border-radius: 999px;
    backdrop-filter:
        blur(7px);
}
.liked-user-card__rate i {
    color: #ff8eb1;
}

/* BODY
--------------------------------------------------------- */
.liked-user-card__body {
    min-width: 0;
    padding:
        11px 10px;
}
.liked-user-card__top {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    justify-content: space-between;
}
.liked-user-card__name {
    display: flex;
    gap: 5px;
    align-items: center;
    margin: 0;
    color: #4f3f46;
    font-size: 12px;
}
.liked-user-card__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: #fff;
    font-size: 6px;
    background: #48a8f2;
    border-radius: 50%;
}
.liked-user-card__meta {
    margin:
        3px 0 0;
    color: #9e8b93;
    font-size: 6.8px;
}
.liked-user-card__date {
    display: flex;
    gap: 3px;
    align-items: center;
    flex: 0 0 auto;
    color: #ad9ba2;
    font-size: 6px;
    white-space: nowrap;
}

/* LIKE LABEL
--------------------------------------------------------- */
.liked-user-card__liked-label {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    margin-top: 9px;
    padding:
        4px 7px;
    color:
        var(--liked-primary-dark);
    font-size: 6.5px;
    font-weight: 700;
    background:
        var(--liked-primary-light);
    border-radius: 999px;
}
.liked-user-card__message {
    display: -webkit-box;
    margin:
        8px 0 9px;
    overflow: hidden;
    color: #746169;
    font-size: 7.5px;
    line-height: 1.6;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ACTION
--------------------------------------------------------- */
.liked-user-card__actions {
    display: grid;
    grid-template-columns:
        .85fr 1.25fr;
    gap: 6px;
}
.liked-user-card__profile,
.liked-user-card__return-like {
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding:
        6px 8px;
    font-size: 7px;
    font-weight: 700;
    border-radius: 999px;
}
.liked-user-card__profile {
    color: #967b85;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--liked-border);
}
.liked-user-card__return-like {
    color: #fff;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--liked-primary-dark),
            var(--liked-primary)
        );
    border: 0;
    box-shadow:
        0 5px 12px
        rgba(244,95,143,.19);
}
.liked-user-card__return-like.is-matched {
    background: #62b58e;
    box-shadow: none;
}

/* GUIDE
--------------------------------------------------------- */
.liked-history-guide {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 16px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid #d9eee4;
    border-radius: 13px;
}
.liked-history-guide > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #4da981;
    background: #fff;
    border-radius: 50%;
}
.liked-history-guide strong {
    display: block;
    color: #536c60;
    font-size: 8px;
}
.liked-history-guide p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* EMPTY
--------------------------------------------------------- */
.liked-history-empty {
    padding:
        38px 20px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--liked-border);
    border-radius: 15px;
}
.liked-history-empty > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin:
        0 auto 11px;
    color:
        var(--liked-primary);
    font-size: 21px;
    background:
        var(--liked-primary-light);
    border-radius: 50%;
}
.liked-history-empty strong {
    color: #5b4951;
    font-size: 10px;
}
.liked-history-empty p {
    color: #a08e95;
    font-size: 7px;
    line-height: 1.65;
}
.liked-history-empty a {
    display: inline-flex;
    padding:
        8px 16px;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background:
        var(--liked-primary);
    border-radius: 999px;
}

/* MATCH MODAL
--------------------------------------------------------- */
.liked-match-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        opacity .2s ease,
        visibility .2s ease;
}
.liked-match-modal.is-open {
    visibility: visible;
    opacity: 1;
}
.liked-match-modal__overlay {
    position: absolute;
    inset: 0;
    background:
        rgba(57,39,47,.52);
    backdrop-filter:
        blur(3px);
}
.liked-match-modal__panel {
    position: absolute;
    top: 50%;
    left: 50%;
    width:
        min(calc(100% - 36px), 390px);
    padding:
        29px 20px 20px;
    text-align: center;
    background:
        linear-gradient(
            145deg,
            #fff,
            #fff7fa
        );
    border-radius: 22px;
    box-shadow:
        0 20px 50px
        rgba(55,35,43,.22);
    transform:
        translate(-50%,-50%);
}
.liked-match-modal__close {
    position: absolute;
    top: 11px;
    right: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    color: #9d8991;
    cursor: pointer;
    background: #f6eff2;
    border: 0;
    border-radius: 50%;
}
.liked-match-modal__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    margin:
        0 auto 13px;
    color: #fff;
    font-size: 28px;
    background:
        linear-gradient(
            140deg,
            var(--liked-primary-dark),
            var(--liked-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 9px 22px
        rgba(244,95,143,.26);
}
.liked-match-modal__label {
    display: block;
    color:
        var(--liked-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .15em;
}
.liked-match-modal__title {
    margin:
        4px 0 0;
    color: #523f48;
    font-size: 20px;
}
.liked-match-modal__text {
    margin:
        9px 0 17px;
    color: #907d85;
    font-size: 8px;
    line-height: 1.7;
}
.liked-match-modal__message {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: center;
    min-height: 51px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            var(--liked-primary-dark),
            var(--liked-primary)
        );
    border-radius: 999px;
    box-shadow:
        0 7px 17px
        rgba(244,95,143,.22);
}
.liked-match-modal__later {
    margin-top: 8px;
    color: #a18e96;
    font-size: 8px;
    font-weight: 600;
    cursor: pointer;
    background: transparent;
    border: 0;
}

/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .liked-history-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .liked-history-main {
        padding-inline: 9px;
    }
    .liked-user-card {
        grid-template-columns:
            105px minmax(0,1fr);
    }
    .liked-user-card__photo,
    .liked-user-card__photo img {
        min-height: 175px;
    }
}
/* =========================================================
   Loveny いいねした履歴
========================================================= */
.nice-history-page {
    --nice-primary: #f45f8f;
    --nice-primary-dark: #e84c7e;
    --nice-primary-light: #fff0f5;
    --nice-primary-pale: #fff8fb;
    --nice-primary-border: #f5d4df;
    --nice-text: #493941;
    --nice-subtext: #95848b;
    --nice-border: #f0e2e7;
    margin: 0;
    color: var(--nice-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.nice-history-page *,
.nice-history-page *::before,
.nice-history-page *::after {
    box-sizing: border-box;
}
.nice-history-page button {
    font: inherit;
}
.nice-history-page [hidden] {
    display: none !important;
}

/* =========================================================
   APP
========================================================= */
.nice-history-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--nice-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* =========================================================
   HEADER
========================================================= */
.nice-history-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--nice-border);
    backdrop-filter:
        blur(14px);
}
.nice-history-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--nice-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.nice-history-header__heading {
    text-align: center;
}
.nice-history-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--nice-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.nice-history-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* =========================================================
   MAIN
========================================================= */
.nice-history-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* =========================================================
   INTRO
========================================================= */
.nice-history-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--nice-primary-border);
    border-radius: 17px;
}
.nice-history-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--nice-primary-dark),
            var(--nice-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.24);
}
.nice-history-intro__label {
    display: block;
    color:
        var(--nice-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.nice-history-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 16px;
    line-height: 1.55;
}
.nice-history-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* =========================================================
   SUMMARY
========================================================= */
.nice-history-summary {
    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap: 7px;
    margin-bottom: 12px;
}
.nice-history-summary__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 88px;
    padding:
        10px 6px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--nice-border);
    border-radius: 13px;
    box-shadow:
        0 4px 13px
        rgba(91,56,69,.04);
}
.nice-history-summary__item > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-bottom: 5px;
    color:
        var(--nice-primary);
    font-size: 11px;
    background:
        var(--nice-primary-light);
    border-radius: 50%;
}
.nice-history-summary__item strong {
    color: #55434b;
    font-size: 16px;
    line-height: 1.15;
}
.nice-history-summary__item small {
    margin-top: 3px;
    color: #9e8c93;
    font-size: 6.5px;
}

/* =========================================================
   AI
========================================================= */
.nice-history-advice {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 22px;
    padding: 13px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--nice-primary-border);
    border-radius: 14px;
}
.nice-history-advice__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color:
        var(--nice-primary);
    background: #fff;
    border-radius: 50%;
}
.nice-history-advice__label {
    display: block;
    color:
        var(--nice-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.nice-history-advice__title {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 8.5px;
    line-height: 1.55;
}
.nice-history-advice__text {
    margin:
        5px 0 0;
    color: #948188;
    font-size: 7px;
    line-height: 1.65;
}

/* =========================================================
   SECTION HEADING
========================================================= */
.nice-history-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin:
        0 3px 10px;
}
.nice-history-section-heading__label {
    display: block;
    color:
        var(--nice-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.nice-history-section-heading__title {
    margin:
        2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}

/* =========================================================
   FILTER
========================================================= */
.nice-history-filter {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 31px;
    padding:
        6px 10px;
    color: #927f87;
    font-size: 8px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--nice-border);
    border-radius: 999px;
}
.nice-history-filter.is-active {
    color:
        var(--nice-primary-dark);
    background:
        var(--nice-primary-light);
    border-color:
        var(--nice-primary-border);
}

/* =========================================================
   LIST
========================================================= */
.nice-history-list {
    display: grid;
    gap: 10px;
}

/* =========================================================
   CARD
========================================================= */
.nice-user-card {
    display: grid;
    grid-template-columns:
        116px minmax(0,1fr);
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--nice-border);
    border-radius: 15px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.05);
}
.nice-user-card.is-matched {
    border-color: #d7ede3;
}

/* =========================================================
   PHOTO
========================================================= */
.nice-user-card__photo {
    position: relative;
    display: block;
    min-height: 180px;
    overflow: hidden;
    background: #f4edef;
}
.nice-user-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 180px;
    object-fit: cover;
}
.nice-user-card__online {
    position: absolute;
    top: 8px;
    right: 7px;
    padding:
        4px 6px;
    color: #fff;
    font-size: 5.5px;
    font-weight: 700;
    background:
        rgba(44,173,112,.9);
    border-radius: 999px;
}
.nice-user-card__rate {
    position: absolute;
    right: 7px;
    bottom: 7px;
    display: inline-flex;
    gap: 3px;
    align-items: center;
    padding:
        4px 7px;
    color: #fff;
    font-size: 6.5px;
    font-weight: 800;
    background:
        rgba(58,39,47,.58);
    border-radius: 999px;
    backdrop-filter:
        blur(7px);
}
.nice-user-card__rate i {
    color: #ff8eb1;
}

/* =========================================================
   BODY
========================================================= */
.nice-user-card__body {
    min-width: 0;
    padding:
        11px 10px;
}
.nice-user-card__top {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    justify-content: space-between;
}
.nice-user-card__name {
    display: flex;
    gap: 5px;
    align-items: center;
    margin: 0;
    color: #4f3f46;
    font-size: 12px;
}
.nice-user-card__verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    color: #fff;
    font-size: 6px;
    background: #48a8f2;
    border-radius: 50%;
}
.nice-user-card__meta {
    margin:
        3px 0 0;
    color: #9e8b93;
    font-size: 6.8px;
}
.nice-user-card__date {
    display: flex;
    gap: 3px;
    align-items: center;
    flex: 0 0 auto;
    color: #ad9ba2;
    font-size: 6px;
    white-space: nowrap;
}

/* =========================================================
   STATUS
========================================================= */
.nice-user-card__status {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    margin-top: 9px;
    padding:
        4px 7px;
    font-size: 6.5px;
    font-weight: 700;
    border-radius: 999px;
}
.nice-user-card__status--waiting {
    color:
        var(--nice-primary-dark);
    background:
        var(--nice-primary-light);
}
.nice-user-card__status--matched {
    color: #378966;
    background: #eaf8f1;
}

/* =========================================================
   DESCRIPTION
========================================================= */
.nice-user-card__message {
    display: -webkit-box;
    margin:
        8px 0 9px;
    overflow: hidden;
    color: #746169;
    font-size: 7.5px;
    line-height: 1.6;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* =========================================================
   ACTION
========================================================= */
.nice-user-card__actions {
    display: grid;
    grid-template-columns:
        .9fr 1.1fr;
    gap: 6px;
}
.nice-user-card__profile,
.nice-user-card__message-button,
.nice-user-card__waiting {
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding:
        6px 7px;
    font-size: 7px;
    font-weight: 700;
    border-radius: 999px;
}
.nice-user-card__profile {
    color: #967b85;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--nice-border);
}
.nice-user-card__message-button {
    color: #fff;
    text-decoration: none;
    background:
        linear-gradient(
            100deg,
            #4eaf86,
            #65bd97
        );
    box-shadow:
        0 5px 12px
        rgba(76,174,130,.16);
}
.nice-user-card__waiting {
    color: #a28f96;
    background: #f7f2f4;
    border:
        1px solid #eee4e8;
}

/* =========================================================
   GUIDE
========================================================= */
.nice-history-guide {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 16px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid #d9eee4;
    border-radius: 13px;
}
.nice-history-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #4da981;
    background: #fff;
    border-radius: 50%;
}
.nice-history-guide strong {
    display: block;
    color: #536c60;
    font-size: 8px;
}
.nice-history-guide p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* =========================================================
   SEARCH CTA
========================================================= */
.nice-history-search {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr) auto;
    gap: 9px;
    align-items: center;
    margin-top: 11px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #fff0f5,
            #fff
        );
    border:
        1px solid
        var(--nice-primary-border);
    border-radius: 13px;
}
.nice-history-search__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color:
        var(--nice-primary);
    background: #fff;
    border-radius: 50%;
}
.nice-history-search__label {
    display: block;
    color:
        var(--nice-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
}
.nice-history-search__body strong {
    display: block;
    margin-top: 1px;
    color: #624e56;
    font-size: 8px;
}
.nice-history-search__body p {
    margin:
        3px 0 0;
    color: #9b8890;
    font-size: 6.5px;
}
.nice-history-search > a {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    color:
        var(--nice-primary-dark);
    font-size: 7px;
    font-weight: 700;
    text-decoration: none;
}

/* =========================================================
   EMPTY
========================================================= */
.nice-history-empty {
    padding:
        38px 20px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--nice-border);
    border-radius: 15px;
}
.nice-history-empty > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin:
        0 auto 11px;
    color:
        var(--nice-primary);
    font-size: 21px;
    background:
        var(--nice-primary-light);
    border-radius: 50%;
}
.nice-history-empty strong {
    display: block;
    color: #5b4951;
    font-size: 10px;
}
.nice-history-empty p {
    margin:
        7px 0 13px;
    color: #a08e95;
    font-size: 7px;
    line-height: 1.65;
}
.nice-history-empty a {
    display: inline-flex;
    padding:
        8px 16px;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    background:
        var(--nice-primary);
    border-radius: 999px;
}

/* =========================================================
   FOOTER ACTIVE
========================================================= */
.nice-history-page
.bottom-nav
.nav-item.active {
    color:
        var(--nice-primary);
}

/* =========================================================
   PC
========================================================= */
@media (min-width:431px) {
    .nice-history-page {
        background: #f2ecef;
    }
}

/* =========================================================
   SMALL
========================================================= */
@media (max-width:360px) {
    .nice-history-main {
        padding-inline: 9px;
    }
    .nice-user-card {
        grid-template-columns:
            105px minmax(0,1fr);
    }
    .nice-user-card__photo,
    .nice-user-card__photo img {
        min-height: 175px;
    }
}
/* =========================================================
   Loveny 各種設定
========================================================= */
.setting-page {
    --setting-primary: #f45f8f;
    --setting-primary-dark: #e84c7e;
    --setting-primary-light: #fff0f5;
    --setting-primary-pale: #fff8fb;
    --setting-primary-border: #f5d4df;
    --setting-text: #493941;
    --setting-subtext: #95848b;
    --setting-border: #f0e2e7;
    margin: 0;
    color: var(--setting-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.setting-page *,
.setting-page *::before,
.setting-page *::after {
    box-sizing: border-box;
}
.setting-page button,
.setting-page input {
    font: inherit;
}
.setting-page [hidden] {
    display: none !important;
}

/* =========================================================
   APP
========================================================= */
.setting-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--setting-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* =========================================================
   HEADER
========================================================= */
.setting-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--setting-border);
    backdrop-filter:
        blur(14px);
}
.setting-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--setting-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.setting-header__heading {
    text-align: center;
}
.setting-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--setting-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.setting-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* =========================================================
   MAIN
========================================================= */
.setting-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* =========================================================
   INTRO
========================================================= */
.setting-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 22px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--setting-primary-border);
    border-radius: 17px;
}
.setting-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 20px;
    background:
        linear-gradient(
            140deg,
            var(--setting-primary-dark),
            var(--setting-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.23);
}
.setting-intro__label {
    display: block;
    color:
        var(--setting-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.setting-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 15px;
}
.setting-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* =========================================================
   SECTION HEADING
========================================================= */
.setting-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin:
        0 3px 9px;
}
.setting-section-heading--second {
    margin-top: 24px;
}
.setting-section-heading__label {
    display: block;
    color:
        var(--setting-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.setting-section-heading__title {
    margin:
        2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}
.setting-section-heading__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color:
        var(--setting-primary);
    font-size: 11px;
    background:
        var(--setting-primary-light);
    border-radius: 50%;
}

/* =========================================================
   NOTIFICATION CARD
========================================================= */
.setting-card,
.setting-menu-card {
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--setting-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.05);
}

/* =========================================================
   TOGGLE ROW
========================================================= */
.setting-toggle-row {
    position: relative;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 44px;
    gap: 10px;
    align-items: center;
    min-height: 70px;
    padding:
        10px 12px;
    cursor: pointer;
}
.setting-toggle-row +
.setting-toggle-row::before {
    content: "";
    position: absolute;
    top: 0;
    right: 12px;
    left: 64px;
    height: 1px;
    background:
        #f3eaed;
}

/* ICON
--------------------------------------------------------- */
.setting-toggle-row__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    font-size: 13px;
    border-radius: 50%;
}
.setting-toggle-row__icon--news {
    color: #f29c57;
    background: #fff4e9;
}
.setting-toggle-row__icon--like {
    color: #f05f8e;
    background: #fff0f5;
}
.setting-toggle-row__icon--message {
    color: #669dd8;
    background: #eef6ff;
}
.setting-toggle-row__icon--gift {
    color: #a57ad7;
    background: #f6efff;
}
.setting-toggle-row__icon--footprint {
    color: #58ad8a;
    background: #edf9f4;
}

/* TEXT
--------------------------------------------------------- */
.setting-toggle-row__body {
    min-width: 0;
}
.setting-toggle-row__body strong {
    display: block;
    color: #5b4850;
    font-size: 9px;
}
.setting-toggle-row__body small {
    display: block;
    margin-top: 3px;
    color: #a08e95;
    font-size: 6.5px;
    line-height: 1.5;
}

/* =========================================================
   SWITCH
========================================================= */
.setting-switch {
    position: relative;
    display: block;
    width: 42px;
    height: 24px;
}
.setting-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.setting-switch__slider {
    position: absolute;
    inset: 0;
    cursor: pointer;
    background: #ded5d9;
    border-radius: 999px;
    transition:
        background .2s ease;
}
.setting-switch__slider::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    box-shadow:
        0 2px 5px
        rgba(67,45,54,.18);
    transition:
        transform .2s ease;
}
.setting-switch input:checked +
.setting-switch__slider {
    background:
        linear-gradient(
            90deg,
            var(--setting-primary-dark),
            var(--setting-primary)
        );
}
.setting-switch input:checked +
.setting-switch__slider::before {
    transform:
        translateX(18px);
}

/* =========================================================
   TIP
========================================================= */
.setting-tip {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 10px;
    padding: 11px;
    background:
        linear-gradient(
            120deg,
            #fff8ee,
            #fff
        );
    border:
        1px solid #f0e1c8;
    border-radius: 12px;
}
.setting-tip__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #dda04f;
    background: #fff;
    border-radius: 50%;
}
.setting-tip strong {
    display: block;
    color: #665448;
    font-size: 8px;
}
.setting-tip p {
    margin:
        3px 0 0;
    color: #9a8b82;
    font-size: 6.5px;
    line-height: 1.55;
}

/* =========================================================
   MENU ROW
========================================================= */
.setting-menu-row {
    position: relative;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 20px;
    gap: 10px;
    align-items: center;
    min-height: 70px;
    padding:
        10px 12px;
    color: inherit;
    text-decoration: none;
}
.setting-menu-row +
.setting-menu-row::before {
    content: "";
    position: absolute;
    top: 0;
    right: 12px;
    left: 64px;
    height: 1px;
    background:
        #f3eaed;
}
.setting-menu-row__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    font-size: 13px;
    border-radius: 50%;
}
.setting-menu-row__icon--block {
    color: #e27a83;
    background: #fff0f1;
}
.setting-menu-row__icon--visibility {
    color: #7a93cc;
    background: #f0f4ff;
}
.setting-menu-row__icon--account {
    color: #5da68c;
    background: #eef9f5;
}
.setting-menu-row__icon--help {
    color: #d49a55;
    background: #fff6eb;
}
.setting-menu-row__body strong {
    display: block;
    color: #5b4850;
    font-size: 9px;
}
.setting-menu-row__body small {
    display: block;
    margin-top: 3px;
    color: #a08e95;
    font-size: 6.5px;
}
.setting-menu-row__arrow {
    color: #c8bac0;
    font-size: 8px;
}

/* =========================================================
   SAVE
========================================================= */
.setting-save {
    margin-top: 24px;
    text-align: center;
}
.setting-save__button {
    display: flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    padding:
        12px 20px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--setting-primary-dark),
            var(--setting-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.24);
    transition:
        transform .15s ease,
        background .2s ease;
}
.setting-save__button:active {
    transform:
        scale(.98);
}
.setting-save__button.is-saved {
    background:
        linear-gradient(
            100deg,
            #4ba47d,
            #66bd98
        );
    box-shadow:
        0 8px 20px
        rgba(76,174,130,.18);
}
.setting-save__message {
    margin-top: 8px;
    color: #4ca47d;
    font-size: 7px;
    font-weight: 700;
}

/* =========================================================
   LOGOUT
========================================================= */
.setting-other {
    margin-top: 25px;
    padding-top: 18px;
    border-top:
        1px solid #eee3e7;
}
.setting-logout {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    color: #806d75;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--setting-border);
    border-radius: 999px;
}

/* =========================================================
   WITHDRAW
========================================================= */
.setting-withdraw {
    margin-top: 16px;
    text-align: center;
}
.setting-withdraw a {
    color: #b5a5ab;
    font-size: 7px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* =========================================================
   FOOTER
========================================================= */
.setting-page
.bottom-nav
.nav-item.active {
    color:
        var(--setting-primary);
}

/* =========================================================
   PC
========================================================= */
@media (min-width:431px) {
    .setting-page {
        background: #f2ecef;
    }
}

/* =========================================================
   SMALL
========================================================= */
@media (max-width:360px) {
    .setting-main {
        padding-inline: 9px;
    }
}
/* =========================================================
   Loveny FAQ / CONTACT
========================================================= */
.support-page {
    --support-primary: #f45f8f;
    --support-primary-dark: #e84c7e;
    --support-primary-light: #fff0f5;
    --support-primary-pale: #fff8fb;
    --support-primary-border: #f5d4df;
    --support-text: #493941;
    --support-subtext: #95848b;
    --support-border: #f0e2e7;
    margin: 0;
    color: var(--support-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.support-page *,
.support-page *::before,
.support-page *::after {
    box-sizing: border-box;
}
.support-page button,
.support-page input,
.support-page textarea,
.support-page select {
    font: inherit;
}
.support-page [hidden] {
    display: none !important;
}

/* =========================================================
   APP
========================================================= */
.support-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--support-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* =========================================================
   HEADER
========================================================= */
.support-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--support-border);
    backdrop-filter:
        blur(14px);
}
.support-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.support-header__heading {
    text-align: center;
}
.support-header__label {
    display: block;
    margin-bottom: 1px;
    color: var(--support-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.support-header__title {
    margin: 0;
    color: #493941;
    font-size: 14px;
}

/* =========================================================
   MAIN
========================================================= */
.support-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* =========================================================
   HERO
========================================================= */
.support-hero {
    display: grid;
    grid-template-columns:
        68px minmax(0,1fr);
    gap: 13px;
    align-items: center;
    padding:
        17px 14px;
    background:
        linear-gradient(
            125deg,
            #ffe7f0 0%,
            #fff5f8 55%,
            #fff 100%
        );
    border:
        1px solid
        var(--support-primary-border);
    border-radius: 18px;
    box-shadow:
        0 6px 18px
        rgba(99,60,76,.04);
}

/* HERO ICON
--------------------------------------------------------- */
.support-hero__icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
}
.support-hero__main-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 59px;
    height: 59px;
    color: #fff;
    font-size: 23px;
    background:
        linear-gradient(
            140deg,
            var(--support-primary-dark),
            var(--support-primary),
            #f88aae
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.24);
}
.support-hero__heart {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    color:
        var(--support-primary);
    background: #fff;
    border-radius: 50%;
    box-shadow:
        0 3px 8px
        rgba(99,60,76,.10);
}
.support-hero__heart--1 {
    top: -2px;
    right: -2px;
    width: 22px;
    height: 22px;
    font-size: 8px;
}
.support-hero__heart--2 {
    bottom: 0;
    left: -1px;
    width: 18px;
    height: 18px;
    font-size: 6px;
}

/* HERO TEXT
--------------------------------------------------------- */
.support-hero__label {
    display: block;
    color:
        var(--support-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.support-hero__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 17px;
}
.support-hero__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.7;
}

/* =========================================================
   SEARCH
========================================================= */
.support-search {
    position: relative;
    display: flex;
    align-items: center;
    margin-top: 13px;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 999px;
    box-shadow:
        0 4px 14px
        rgba(91,56,69,.05);
}
.support-search > i {
    position: absolute;
    left: 16px;
    color: #c2aeb6;
    font-size: 11px;
    pointer-events: none;
}
.support-search input {
    width: 100%;
    height: 46px;
    padding:
        0 42px 0 39px;
    color: #5d4a52;
    font-size: 9px;
    outline: none;
    background: transparent;
    border: 0;
}
.support-search input::placeholder {
    color: #baaab0;
}
.support-search:focus-within {
    border-color:
        #f1b6ca;
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.07);
}
.support-search button {
    position: absolute;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #a9949c;
    cursor: pointer;
    background: #f8f1f4;
    border: 0;
    border-radius: 50%;
}

/* =========================================================
   CATEGORIES
========================================================= */
.support-categories {
    display: flex;
    gap: 6px;
    margin-top: 10px;
    padding-bottom: 3px;
    overflow-x: auto;
    scrollbar-width: none;
}
.support-categories::-webkit-scrollbar {
    display: none;
}
.support-category {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 5px;
    align-items: center;
    min-height: 30px;
    padding:
        5px 10px;
    color: #927f87;
    font-size: 7px;
    font-weight: 700;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 999px;
    transition:
        color .15s ease,
        background .15s ease,
        border .15s ease;
}
.support-category.is-active {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--support-primary-dark),
            var(--support-primary)
        );
    border-color:
        var(--support-primary);
    box-shadow:
        0 4px 10px
        rgba(244,95,143,.18);
}

/* =========================================================
   SECTION
========================================================= */
.support-faq-section {
    margin-top: 22px;
}
.support-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin:
        0 3px 9px;
}
.support-section-heading__label {
    display: block;
    color:
        var(--support-primary);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: .10em;
}
.support-section-heading__title {
    margin:
        2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}
.support-section-heading__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color:
        var(--support-primary);
    background:
        var(--support-primary-light);
    border-radius: 50%;
}

/* =========================================================
   FAQ
========================================================= */
.support-faq-list {
    display: grid;
    gap: 7px;
}
.support-faq {
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 13px;
    box-shadow:
        0 4px 13px
        rgba(91,56,69,.04);
    transition:
        border .2s ease,
        box-shadow .2s ease;
}
.support-faq.is-open {
    border-color:
        #f1c5d5;
    box-shadow:
        0 5px 16px
        rgba(244,95,143,.08);
}

/* QUESTION
--------------------------------------------------------- */
.support-faq__question {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr) 27px;
    gap: 9px;
    align-items: center;
    width: 100%;
    min-height: 64px;
    padding:
        9px 10px;
    text-align: left;
    cursor: pointer;
    background: transparent;
    border: 0;
}
.support-faq__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color:
        var(--support-primary);
    font-size: 11px;
    background:
        var(--support-primary-light);
    border-radius: 50%;
}
.support-faq__question-text small {
    display: block;
    margin-bottom: 2px;
    color:
        var(--support-primary);
    font-size: 5.5px;
    font-weight: 800;
    letter-spacing: .1em;
}
.support-faq__question-text strong {
    display: block;
    color: #604d55;
    font-size: 8.5px;
    line-height: 1.5;
}
.support-faq__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: #a9949c;
    font-size: 7px;
    background: #faf5f7;
    border-radius: 50%;
}
.support-faq.is-open
.support-faq__toggle {
    color: #fff;
    background:
        var(--support-primary);
}

/* ANSWER
--------------------------------------------------------- */
.support-faq__answer {
    display: grid;
    grid-template-rows: 0fr;
    transition:
        grid-template-rows .25s ease;
}
.support-faq.is-open
.support-faq__answer {
    grid-template-rows: 1fr;
}
.support-faq__answer-inner {
    display: grid;
    grid-template-columns:
        25px minmax(0,1fr);
    gap: 8px;
    min-height: 0;
    overflow: hidden;
}
.support-faq__answer-inner::before {
    content: "";
    position: absolute;
}
.support-faq.is-open
.support-faq__answer-inner {
    padding:
        0 12px 13px 57px;
}
.support-faq__answer-label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    color: #fff;
    font-size: 8px;
    font-weight: 800;
    background:
        var(--support-primary);
    border-radius: 50%;
}
.support-faq__answer p {
    margin: 0;
    color: #85727a;
    font-size: 7px;
    line-height: 1.75;
}

/* =========================================================
   FAQ EMPTY
========================================================= */
.support-faq-empty {
    padding:
        30px 15px;
    text-align: center;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 14px;
}
.support-faq-empty > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin:
        0 auto 10px;
    color:
        var(--support-primary);
    background:
        var(--support-primary-light);
    border-radius: 50%;
}
.support-faq-empty strong {
    display: block;
    color: #604d55;
    font-size: 9px;
}
.support-faq-empty p {
    margin:
        6px 0 0;
    color: #9e8b93;
    font-size: 7px;
    line-height: 1.7;
}

/* =========================================================
   CONTACT INTRO
========================================================= */
.support-contact-intro {
    display: grid;
    grid-template-columns:
        45px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-top: 27px;
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #fff0f5,
            #fff
        );
    border:
        1px solid
        var(--support-primary-border);
    border-radius: 14px;
}
.support-contact-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: #fff;
    background:
        linear-gradient(
            140deg,
            var(--support-primary-dark),
            var(--support-primary)
        );
    border-radius: 50%;
}
.support-contact-intro__label {
    display: block;
    color:
        var(--support-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .12em;
}
.support-contact-intro strong {
    display: block;
    margin-top: 2px;
    color: #604d55;
    font-size: 9px;
}
.support-contact-intro p {
    margin:
        4px 0 0;
    color: #97848c;
    font-size: 6.5px;
    line-height: 1.6;
}

/* =========================================================
   CONTACT SECTION
========================================================= */
.support-contact-section {
    margin-top: 22px;
}
.support-contact-form {
    padding: 15px 13px;
    background: #fff;
    border:
        1px solid var(--support-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.05);
}

/* =========================================================
   FORM
========================================================= */
.support-form-group +
.support-form-group {
    margin-top: 16px;
}
.support-form-group label {
    color: #604d55;
    font-size: 8px;
    font-weight: 700;
}
.support-form-group label > span {
    display: inline-flex;
    margin-left: 4px;
    padding:
        2px 5px;
    color:
        var(--support-primary-dark);
    font-size: 5.5px;
    background:
        var(--support-primary-light);
    border-radius: 999px;
}
.support-form-group__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}
.support-form-group__heading small {
    color: #b3a2a9;
    font-size: 6px;
}

/* SELECT
--------------------------------------------------------- */
.support-select {
    position: relative;
    margin-top: 7px;
}
.support-select select {
    width: 100%;
    height: 46px;
    padding:
        0 39px 0 13px;
    color: #68545d;
    font-size: 8px;
    outline: none;
    appearance: none;
    background: #fffafb;
    border:
        1px solid #eee0e5;
    border-radius: 11px;
}
.support-select > i {
    position: absolute;
    top: 50%;
    right: 14px;
    color:
        var(--support-primary);
    font-size: 8px;
    pointer-events: none;
    transform:
        translateY(-50%);
}

/* TEXTAREA
--------------------------------------------------------- */
.support-form-group textarea {
    display: block;
    width: 100%;
    min-height: 145px;
    padding: 12px;
    color: #68545d;
    font-size: 8px;
    line-height: 1.7;
    resize: vertical;
    outline: none;
    background: #fffafb;
    border:
        1px solid #eee0e5;
    border-radius: 11px;
}
.support-form-group textarea::placeholder {
    color: #bbaab1;
}
.support-select select:focus,
.support-form-group textarea:focus {
    border-color:
        #efb5c9;
    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.07);
}

/* =========================================================
   CONTACT NOTE
========================================================= */
.support-contact-note {
    display: grid;
    grid-template-columns:
        30px minmax(0,1fr);
    gap: 8px;
    align-items: center;
    margin-top: 12px;
    padding: 9px;
    background: #f8f6fb;
    border-radius: 9px;
}
.support-contact-note > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    color: #8179ad;
    background: #fff;
    border-radius: 50%;
}
.support-contact-note p {
    margin: 0;
    color: #918a9c;
    font-size: 6px;
    line-height: 1.6;
}

/* =========================================================
   SUBMIT
========================================================= */
.support-contact-submit {
    display: grid;
    grid-template-columns:
        34px minmax(0,1fr) 20px;
    gap: 9px;
    align-items: center;
    width: 100%;
    min-height: 56px;
    margin-top: 16px;
    padding:
        7px 14px 7px 8px;
    color: #fff;
    text-align: left;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--support-primary-dark),
            var(--support-primary),
            #f783a9
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 8px 20px
        rgba(244,95,143,.23);
}
.support-contact-submit__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color:
        var(--support-primary);
    background: #fff;
    border-radius: 50%;
}
.support-contact-submit small {
    display: block;
    margin-bottom: 1px;
    font-size: 5px;
    font-weight: 700;
    opacity: .8;
    letter-spacing: .1em;
}
.support-contact-submit strong {
    display: block;
    font-size: 9px;
}
.support-contact-submit > i {
    font-size: 8px;
}

/* =========================================================
   RESPONSE GUIDE
========================================================= */
.support-response-guide {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 11px;
    padding: 11px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid #d9eee4;
    border-radius: 12px;
}
.support-response-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #4da981;
    background: #fff;
    border-radius: 50%;
}
.support-response-guide strong {
    display: block;
    color: #536c60;
    font-size: 8px;
}
.support-response-guide p {
    margin:
        3px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* =========================================================
   PC
========================================================= */
@media (min-width:431px) {
    .support-page {
        background: #f2ecef;
    }
}

/* =========================================================
   SMALL
========================================================= */
@media (max-width:360px) {
    .support-main {
        padding-inline: 9px;
    }
    .support-hero {
        grid-template-columns:
            60px minmax(0,1fr);
    }
    .support-hero__icon {
        width: 58px;
        height: 58px;
    }
    .support-hero__main-icon {
        width: 53px;
        height: 53px;
    }
}
/* =========================================================
   Loveny 退会
========================================================= */
.withdrawal-page {
    --withdraw-primary: #f45f8f;
    --withdraw-primary-dark: #e84c7e;
    --withdraw-primary-light: #fff0f5;
    --withdraw-primary-pale: #fff8fb;
    --withdraw-primary-border: #f5d4df;
    --withdraw-danger: #d85c70;
    --withdraw-danger-dark: #c94b61;
    --withdraw-danger-light: #fff0f2;
    --withdraw-danger-border: #f0cbd2;
    --withdraw-text: #493941;
    --withdraw-subtext: #95848b;
    --withdraw-border: #f0e2e7;
    margin: 0;
    color: var(--withdraw-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.withdrawal-page *,
.withdrawal-page *::before,
.withdrawal-page *::after {
    box-sizing: border-box;
}
.withdrawal-page button,
.withdrawal-page input,
.withdrawal-page textarea {
    font: inherit;
}
.withdrawal-page [hidden] {
    display: none !important;
}

/* APP
--------------------------------------------------------- */
.withdrawal-app {
    position: relative;
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    padding-bottom: 92px;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.75) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 44%,
            rgba(255,239,245,.92) 0,
            transparent 27%
        ),
        var(--withdraw-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.withdrawal-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--withdraw-border);
    backdrop-filter: blur(14px);
}
.withdrawal-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--withdraw-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px rgba(99,60,76,.05);
}
.withdrawal-header__heading {
    text-align: center;
}
.withdrawal-header__label {
    display: block;
    color: var(--withdraw-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.withdrawal-header__title {
    margin: 1px 0 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.withdrawal-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.withdrawal-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
    padding: 16px 14px;
    background:
        linear-gradient(
            120deg,
            #fff0f4,
            #fff9fb
        );
    border:
        1px solid var(--withdraw-primary-border);
    border-radius: 17px;
}
.withdrawal-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--withdraw-primary-dark),
            var(--withdraw-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px rgba(244,95,143,.23);
}
.withdrawal-intro__label {
    display: block;
    color: var(--withdraw-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.withdrawal-intro__title {
    margin: 2px 0 0;
    color: #58454e;
    font-size: 15px;
}
.withdrawal-intro__text {
    margin: 5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* WARNING
--------------------------------------------------------- */
.withdrawal-warning {
    margin-bottom: 13px;
    padding: 14px;
    background:
        linear-gradient(
            135deg,
            #fff6f6,
            #fff
        );
    border:
        1px solid var(--withdraw-danger-border);
    border-radius: 16px;
}
.withdrawal-warning__header {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 12px;
}
.withdrawal-warning__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--withdraw-danger);
    background: var(--withdraw-danger-light);
    border-radius: 50%;
}
.withdrawal-warning__label {
    display: block;
    color: var(--withdraw-danger);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.withdrawal-warning__title {
    margin: 2px 0 0;
    color: #684b52;
    font-size: 11px;
}
.withdrawal-warning__list {
    display: grid;
    gap: 7px;
}
.withdrawal-warning-item {
    display: grid;
    grid-template-columns:
        34px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    padding: 9px;
    background: rgba(255,255,255,.85);
    border-radius: 10px;
}
.withdrawal-warning-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    color: var(--withdraw-danger);
    font-size: 11px;
    background: #fff1f3;
    border-radius: 50%;
}
.withdrawal-warning-item strong {
    display: block;
    color: #71555c;
    font-size: 8px;
}
.withdrawal-warning-item p {
    margin: 3px 0 0;
    color: #a08087;
    font-size: 6.5px;
    line-height: 1.55;
}

/* HELP
--------------------------------------------------------- */
.withdrawal-help {
    display: grid;
    grid-template-columns:
        41px minmax(0,1fr);
    gap: 10px;
    margin-bottom: 8px;
    padding: 12px;
    background:
        linear-gradient(
            115deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid var(--withdraw-primary-border);
    border-radius: 13px;
}
.withdrawal-help__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--withdraw-primary);
    background: #fff;
    border-radius: 50%;
}
.withdrawal-help__label {
    display: block;
    color: var(--withdraw-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.withdrawal-help strong {
    display: block;
    margin-top: 2px;
    color: #624e56;
    font-size: 8.5px;
}
.withdrawal-help p {
    margin: 4px 0 0;
    color: #948188;
    font-size: 6.5px;
    line-height: 1.6;
}

/* HELP LINKS
--------------------------------------------------------- */
.withdrawal-help-links {
    display: grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap: 7px;
    margin-bottom: 22px;
}
.withdrawal-help-links a {
    display: grid;
    grid-template-columns:
        32px minmax(0,1fr) 10px;
    gap: 7px;
    align-items: center;
    min-height: 62px;
    padding: 8px;
    color: inherit;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--withdraw-border);
    border-radius: 11px;
}
.withdrawal-help-links a > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    color: var(--withdraw-primary);
    background: var(--withdraw-primary-light);
    border-radius: 50%;
}
.withdrawal-help-links strong {
    display: block;
    color: #655159;
    font-size: 7px;
}
.withdrawal-help-links small {
    display: block;
    margin-top: 2px;
    color: #a18e95;
    font-size: 5.8px;
}
.withdrawal-help-links a > i {
    color: #c4b3ba;
    font-size: 7px;
}

/* FORM CARD
--------------------------------------------------------- */
.withdrawal-form-card {
    margin-bottom: 13px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--withdraw-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px rgba(91,56,69,.05);
}
.withdrawal-form-card__header {
    display: grid;
    grid-template-columns:
        34px minmax(0,1fr);
    gap: 9px;
    align-items: center;
}
.withdrawal-form-card__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    background:
        linear-gradient(
            135deg,
            var(--withdraw-primary-dark),
            var(--withdraw-primary)
        );
    border-radius: 50%;
}
.withdrawal-form-card__label {
    display: block;
    color: var(--withdraw-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .11em;
}
.withdrawal-form-card__title {
    margin: 2px 0 0;
    color: #59464e;
    font-size: 11px;
}
.withdrawal-form-card__description {
    margin: 11px 0 10px;
    color: #99878e;
    font-size: 7px;
}

/* REASON
--------------------------------------------------------- */
.withdrawal-reasons {
    display: grid;
    gap: 7px;
}
.withdrawal-reason {
    position: relative;
}
.withdrawal-reason input {
    position: absolute;
    opacity: 0;
}
.withdrawal-reason span {
    display: flex;
    gap: 9px;
    align-items: center;
    min-height: 45px;
    padding: 9px 11px;
    color: #715e66;
    font-size: 7.5px;
    font-weight: 600;
    cursor: pointer;
    background: #fffafd;
    border:
        1px solid var(--withdraw-border);
    border-radius: 10px;
}
.withdrawal-reason span i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    color: var(--withdraw-primary);
    font-size: 11px;
}
.withdrawal-reason input:checked + span {
    color: var(--withdraw-primary-dark);
    background: var(--withdraw-primary-light);
    border-color: var(--withdraw-primary);
}

/* OTHER
--------------------------------------------------------- */
.withdrawal-other-reason {
    position: relative;
    margin-top: 11px;
}
.withdrawal-other-reason label {
    display: block;
    margin-bottom: 6px;
    color: #6b575f;
    font-size: 7px;
    font-weight: 700;
}
.withdrawal-other-reason textarea {
    width: 100%;
    min-height: 100px;
    padding: 10px;
    color: #68555d;
    font-size: 8px;
    resize: vertical;
    outline: none;
    background: #fffafb;
    border:
        1px solid var(--withdraw-border);
    border-radius: 10px;
}
.withdrawal-other-reason > span {
    display: block;
    margin-top: 4px;
    color: #af9fa5;
    font-size: 6px;
    text-align: right;
}

/* FINAL WARNING
--------------------------------------------------------- */
.withdrawal-final-warning {
    display: grid;
    grid-template-columns:
        31px minmax(0,1fr);
    gap: 8px;
    align-items: center;
    margin-top: 13px;
    padding: 9px;
    background: #fff4f5;
    border-radius: 9px;
}
.withdrawal-final-warning > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: var(--withdraw-danger);
    background: #fff;
    border-radius: 50%;
}
.withdrawal-final-warning p {
    margin: 0;
    color: #a06c77;
    font-size: 6.5px;
    line-height: 1.55;
}

/* CONSENT
--------------------------------------------------------- */
.withdrawal-consent {
    display: grid;
    grid-template-columns:
        24px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-top: 11px;
    padding: 11px;
    cursor: pointer;
    background: #fff;
    border:
        1px solid var(--withdraw-danger-border);
    border-radius: 10px;
}
.withdrawal-consent input {
    position: absolute;
    opacity: 0;
}
.withdrawal-consent__check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    color: transparent;
    font-size: 8px;
    border:
        1px solid #d9c3c8;
    border-radius: 6px;
}
.withdrawal-consent input:checked
+ .withdrawal-consent__check {
    color: #fff;
    background: var(--withdraw-danger);
    border-color: var(--withdraw-danger);
}
.withdrawal-consent__text {
    color: #765e65;
    font-size: 7px;
    line-height: 1.6;
}

/* SUBMIT
--------------------------------------------------------- */
.withdrawal-submit {
    margin-top: 17px;
    text-align: center;
}
.withdrawal-submit__cancel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    margin-bottom: 9px;
    color: var(--withdraw-primary-dark);
    font-size: 8.5px;
    font-weight: 700;
    cursor: pointer;
    background: var(--withdraw-primary-light);
    border:
        1px solid var(--withdraw-primary-border);
    border-radius: 999px;
}
.withdrawal-submit__button {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 51px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
    background:
        linear-gradient(
            100deg,
            var(--withdraw-danger-dark),
            var(--withdraw-danger)
        );
    border: 0;
    border-radius: 999px;
    box-shadow:
        0 7px 17px
        rgba(216,92,112,.20);
}
.withdrawal-submit__button:disabled {
    color: #b9aeb2;
    cursor: not-allowed;
    background: #ece7e9;
    box-shadow: none;
}
.withdrawal-submit p {
    margin: 7px 0 0;
    color: #b1a0a6;
    font-size: 6px;
}

/* MODAL
--------------------------------------------------------- */
.withdrawal-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    visibility: hidden;
    opacity: 0;
    transition:
        opacity .2s ease,
        visibility .2s ease;
}
.withdrawal-modal.is-open {
    visibility: visible;
    opacity: 1;
}
.withdrawal-modal__overlay {
    position: absolute;
    inset: 0;
    background:
        rgba(52,37,43,.55);
    backdrop-filter: blur(3px);
}
.withdrawal-modal__panel {
    position: absolute;
    top: 50%;
    left: 50%;
    width:
        min(calc(100% - 36px), 390px);
    padding: 27px 20px 19px;
    text-align: center;
    background: #fff;
    border-radius: 20px;
    box-shadow:
        0 20px 50px rgba(55,35,43,.22);
    transform:
        translate(-50%,-50%);
}
.withdrawal-modal__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    margin: 0 auto 12px;
    color: var(--withdraw-danger);
    font-size: 24px;
    background: var(--withdraw-danger-light);
    border-radius: 50%;
}
.withdrawal-modal__label {
    display: block;
    color: var(--withdraw-danger);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .13em;
}
.withdrawal-modal h2 {
    margin: 4px 0 0;
    color: #59434b;
    font-size: 18px;
}
.withdrawal-modal p {
    margin: 8px 0 18px;
    color: #927e85;
    font-size: 7px;
    line-height: 1.7;
}
.withdrawal-modal__cancel,
.withdrawal-modal__confirm {
    width: 100%;
    min-height: 46px;
    font-size: 8.5px;
    font-weight: 700;
    cursor: pointer;
    border-radius: 999px;
}
.withdrawal-modal__cancel {
    margin-bottom: 7px;
    color: #765f67;
    background: #f7f2f4;
    border:
        1px solid var(--withdraw-border);
}
.withdrawal-modal__confirm {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--withdraw-danger-dark),
            var(--withdraw-danger)
        );
    border: 0;
}

/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .withdrawal-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .withdrawal-main {
        padding-inline: 9px;
    }
}
/* =========================================================
   TOP - LOGIN
========================================================= */
.top-login-guide {
    margin: 22px 0 28px;
    text-align: center;
}
.top-login-guide__text {
    margin: 0 0 8px;
    color: #9b858e;
    font-size: 11px;
    font-weight: 500;
}

/* LOGIN BUTTON
--------------------------------------------------------- */
.top-login-guide__button {
    display: grid;
	box-sizing: border-box;
    grid-template-columns:
        42px minmax(0, 1fr) 24px;
    gap: 10px;
    align-items: center;
    width: 100%;
    min-height: 60px;
    padding: 8px 15px 8px 9px;
    color: #e84c7e;
    text-align: left;
    text-decoration: none;
    background:
        linear-gradient(
            120deg,
            #ffffff,
            #fff7fa
        );
    border: 1.5px solid #f3b4ca;
    border-radius: 999px;
    box-shadow:
        0 6px 18px
        rgba(244, 95, 143, .10);
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        border-color .15s ease;
}

/* ICON */
.top-login-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: #fff;
    font-size: 14px;
    background:
        linear-gradient(
            135deg,
            #e84c7e,
            #f45f8f
        );
    border-radius: 50%;
    box-shadow:
        0 4px 10px
        rgba(244, 95, 143, .22);
}

/* TEXT */
.top-login-guide {
    margin: 22px 0 28px;
    padding: 0 12px;
    text-align: center;
}
.top-login-guide__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.top-login-guide__body small {
    margin-bottom: 1px;
    color: #d98ba5;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.top-login-guide__body strong {
    color: #e84c7e;
    font-size: 13px;
    font-weight: 700;
}

/* ARROW */
.top-login-guide__arrow {
    color: #e997b2;
    font-size: 10px;
    text-align: right;
}

/* HOVER */
@media (hover: hover) {
    .top-login-guide__button:hover {
        border-color: #f45f8f;
        box-shadow:
            0 8px 22px
            rgba(244, 95, 143, .16);
        transform: translateY(-1px);
    }
}

/* TAP */
.top-login-guide__button:active {
    transform: scale(.985);
}

/* =========================================================
   Loveny 利用規約
========================================================= */
.terms-page {
    --terms-primary: #f45f8f;
    --terms-primary-dark: #e84c7e;
    --terms-primary-light: #fff0f5;
    --terms-primary-pale: #fff8fb;
    --terms-primary-border: #f5d4df;
    --terms-text: #493941;
    --terms-subtext: #95848b;
    --terms-border: #f0e2e7;
    margin: 0;
    color: var(--terms-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.terms-page *,
.terms-page *::before,
.terms-page *::after {
    box-sizing: border-box;
}
.terms-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 46%,
            rgba(255,239,245,.92) 0,
            transparent 28%
        ),
        var(--terms-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.terms-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--terms-border);
    backdrop-filter:
        blur(14px);
}
.terms-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--terms-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.terms-header__heading {
    text-align: center;
}
.terms-header__label {
    display: block;
    color:
        var(--terms-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.terms-header__title {
    margin: 1px 0 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.terms-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.terms-intro {
    display: grid;
    grid-template-columns:
        58px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 10px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--terms-primary-border);
    border-radius: 17px;
}
.terms-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--terms-primary-dark),
            var(--terms-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.23);
}
.terms-intro__label {
    display: block;
    color:
        var(--terms-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.terms-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 15px;
}
.terms-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* UPDATE
--------------------------------------------------------- */
.terms-updated {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
    margin:
        0 3px 15px;
    color: #aa969e;
    font-size: 6.5px;
}
.terms-updated i {
    color:
        var(--terms-primary);
}
.terms-updated strong {
    color: #89757e;
    font-weight: 700;
}

/* CARD
--------------------------------------------------------- */
.terms-card {
    margin-bottom: 11px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--terms-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.045);
}
.terms-card--intro {
    background:
        linear-gradient(
            135deg,
            #fff,
            #fffafd
        );
}
.terms-card--warning {
    border-color: #f0d3da;
}

/* CARD HEADER
--------------------------------------------------------- */
.terms-card__header {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-bottom: 12px;
}
.terms-card__number,
.terms-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    background:
        linear-gradient(
            140deg,
            var(--terms-primary-dark),
            var(--terms-primary)
        );
    border-radius: 50%;
}
.terms-card__icon {
    font-size: 13px;
}
.terms-card__label {
    display: block;
    color:
        var(--terms-primary);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: .11em;
}
.terms-card__title {
    margin:
        2px 0 0;
    color: #58464e;
    font-size: 11px;
}

/* PARAGRAPH
--------------------------------------------------------- */
.terms-card__paragraph {
    margin: 0;
    color: #746169;
    font-size: 7.5px;
    line-height: 1.9;
}

/* LIST
--------------------------------------------------------- */
.terms-list {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.terms-list li {
    display: grid;
    grid-template-columns:
        28px minmax(0,1fr);
    gap: 8px;
    align-items: flex-start;
    padding:
        9px;
    background: #fffafd;
    border-radius: 9px;
}
.terms-list li > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    color:
        var(--terms-primary);
    font-size: 8px;
    background:
        var(--terms-primary-light);
    border-radius: 50%;
}
.terms-list li p {
    margin: 2px 0 0;
    color: #746169;
    font-size: 7px;
    line-height: 1.75;
}

/* DANGER
--------------------------------------------------------- */
.terms-list--danger li {
    background: #fff8f8;
}
.terms-list--danger li > span {
    color: #d96578;
    background: #fff0f2;
}

/* ALERT
--------------------------------------------------------- */
.terms-alert {
    display: grid;
    grid-template-columns:
        34px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-bottom: 10px;
    padding: 10px;
    background: #fff6f1;
    border:
        1px solid #f2ddcd;
    border-radius: 10px;
}
.terms-alert > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    color: #d99048;
    font-size: 12px;
    background: #fff;
    border-radius: 50%;
}
.terms-alert p {
    margin: 0;
    color: #896e59;
    font-size: 6.5px;
    line-height: 1.65;
}

/* GUIDE
--------------------------------------------------------- */
.terms-guide {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-top: 17px;
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid #d9eee4;
    border-radius: 13px;
}
.terms-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color: #4da981;
    font-size: 14px;
    background: #fff;
    border-radius: 50%;
}
.terms-guide__label {
    display: block;
    color: #4da981;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.terms-guide strong {
    display: block;
    margin-top: 2px;
    color: #536c60;
    font-size: 8px;
}
.terms-guide p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* ACTIONS
--------------------------------------------------------- */
.terms-actions {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}
.terms-actions__support,
.terms-actions__home {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 47px;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 999px;
}
.terms-actions__support {
    color:
        var(--terms-primary-dark);
    background:
        var(--terms-primary-light);
    border:
        1px solid
        var(--terms-primary-border);
}
.terms-actions__home {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--terms-primary-dark),
            var(--terms-primary),
            #f783aa
        );
    box-shadow:
        0 7px 17px
        rgba(244,95,143,.20);
}

/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .terms-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .terms-main {
        padding-inline: 9px;
    }
}
/* =========================================================
   Loveny PRIVACY POLICY
========================================================= */
.privacy-page {
    --privacy-primary: #f45f8f;
    --privacy-primary-dark: #e84c7e;
    --privacy-primary-light: #fff0f5;
    --privacy-primary-pale: #fff8fb;
    --privacy-primary-border: #f5d4df;
    --privacy-safe: #58a890;
    --privacy-safe-light: #edf9f5;
    --privacy-safe-border: #d7ede5;
    --privacy-blue: #6299c8;
    --privacy-blue-light: #eef7fd;
    --privacy-text: #493941;
    --privacy-subtext: #95848b;
    --privacy-border: #f0e2e7;
    margin: 0;
    color: var(--privacy-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.privacy-page *,
.privacy-page *::before,
.privacy-page *::after {
    box-sizing: border-box;
}

/* APP
--------------------------------------------------------- */
.privacy-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.75) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 48%,
            rgba(231,248,244,.6) 0,
            transparent 28%
        ),
        var(--privacy-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.privacy-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--privacy-border);
    backdrop-filter:
        blur(14px);
}
.privacy-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--privacy-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.privacy-header__heading {
    text-align: center;
}
.privacy-header__label {
    display: block;
    color:
        var(--privacy-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.privacy-header__title {
    margin:
        1px 0 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.privacy-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.privacy-intro {
    display: grid;
    grid-template-columns:
        59px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 10px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #eaf8f4 0%,
            #fff5f8 55%,
            #fff 100%
        );
    border:
        1px solid
        var(--privacy-safe-border);
    border-radius: 17px;
}
.privacy-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            #4d9d85,
            #6ab69e
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(74,158,132,.20);
}
.privacy-intro__label {
    display: block;
    color:
        var(--privacy-safe);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.privacy-intro__title {
    margin:
        2px 0 0;
    color: #4f5550;
    font-size: 15px;
    line-height: 1.5;
}
.privacy-intro__text {
    margin:
        5px 0 0;
    color: #88968e;
    font-size: 7px;
    line-height: 1.65;
}

/* UPDATED
--------------------------------------------------------- */
.privacy-updated {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
    margin:
        0 3px 14px;
    color: #aa969e;
    font-size: 6.5px;
}
.privacy-updated i {
    color:
        var(--privacy-primary);
}
.privacy-updated strong {
    color: #89757e;
}

/* PROMISE
--------------------------------------------------------- */
.privacy-message {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-bottom: 12px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #eef9f5,
            #fff
        );
    border:
        1px solid
        var(--privacy-safe-border);
    border-radius: 13px;
}
.privacy-message__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: var(--privacy-safe);
    background: #fff;
    border-radius: 50%;
}
.privacy-message__label {
    display: block;
    color:
        var(--privacy-safe);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.privacy-message strong {
    display: block;
    margin-top: 2px;
    color: #526860;
    font-size: 8.5px;
}
.privacy-message p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* CARD
--------------------------------------------------------- */
.privacy-card {
    margin-bottom: 11px;
    padding: 15px;
    background: #fff;
    border:
        1px solid var(--privacy-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.045);
}
.privacy-card__header {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-bottom: 12px;
}
.privacy-card__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    background:
        linear-gradient(
            140deg,
            var(--privacy-primary-dark),
            var(--privacy-primary)
        );
    border-radius: 50%;
}
.privacy-card__label {
    display: block;
    color:
        var(--privacy-primary);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: .11em;
}
.privacy-card__title {
    margin:
        2px 0 0;
    color: #58464e;
    font-size: 11px;
}
.privacy-card__lead {
    margin:
        0 0 10px;
    color: #88747c;
    font-size: 7px;
    line-height: 1.7;
}

/* INFO LIST
--------------------------------------------------------- */
.privacy-info-list {
    display: grid;
    gap: 7px;
}
.privacy-info-item {
    display: grid;
    grid-template-columns:
        36px minmax(0,1fr);
    gap: 9px;
    align-items: flex-start;
    padding: 9px;
    background: #fffafd;
    border-radius: 10px;
}
.privacy-info-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    color:
        var(--privacy-primary);
    font-size: 11px;
    background:
        var(--privacy-primary-light);
    border-radius: 50%;
}
.privacy-info-item strong {
    display: block;
    margin-top: 1px;
    color: #66535b;
    font-size: 7.5px;
}
.privacy-info-item p {
    margin:
        3px 0 0;
    color: #86737b;
    font-size: 6.5px;
    line-height: 1.7;
}

/* PURPOSE
--------------------------------------------------------- */
.privacy-purpose-list {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.privacy-purpose-list li {
    display: grid;
    grid-template-columns:
        31px minmax(0,1fr);
    gap: 8px;
    align-items: center;
    min-height: 46px;
    padding: 8px;
    background: #fffafd;
    border-radius: 9px;
}
.privacy-purpose-list li > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color:
        var(--privacy-primary);
    font-size: 9px;
    background:
        var(--privacy-primary-light);
    border-radius: 50%;
}
.privacy-purpose-list p {
    margin: 0;
    color: #76636b;
    font-size: 7px;
    line-height: 1.65;
}

/* SHARING
--------------------------------------------------------- */
.privacy-sharing-item {
    display: grid;
    grid-template-columns:
        38px minmax(0,1fr);
    gap: 9px;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom:
        1px solid #f2e8eb;
}
.privacy-sharing-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.privacy-sharing-item:first-of-type {
    padding-top: 0;
}
.privacy-sharing-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    color:
        var(--privacy-blue);
    font-size: 12px;
    background:
        var(--privacy-blue-light);
    border-radius: 50%;
}
.privacy-sharing-item strong {
    display: block;
    color: #5d5864;
    font-size: 7.5px;
}
.privacy-sharing-item p {
    margin:
        4px 0 0;
    color: #85818b;
    font-size: 6.5px;
    line-height: 1.7;
}

/* CHAT
--------------------------------------------------------- */
.privacy-chat-guide {
    display: grid;
    grid-template-columns:
        41px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-bottom: 11px;
    padding: 12px;
    background:
        linear-gradient(
            120deg,
            #eef7fd,
            #fff
        );
    border:
        1px solid #dceaf5;
    border-radius: 13px;
}
.privacy-chat-guide__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color:
        var(--privacy-blue);
    background: #fff;
    border-radius: 50%;
}
.privacy-chat-guide__label {
    display: block;
    color:
        var(--privacy-blue);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.privacy-chat-guide strong {
    display: block;
    margin-top: 2px;
    color: #586b79;
    font-size: 8px;
}
.privacy-chat-guide p {
    margin:
        4px 0 0;
    color: #899aa7;
    font-size: 6.5px;
    line-height: 1.6;
}

/* RIGHTS
--------------------------------------------------------- */
.privacy-rights {
    display: grid;
    gap: 7px;
}
.privacy-right {
    display: grid;
    grid-template-columns:
        37px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    padding: 9px;
    background: #f5fbf8;
    border-radius: 10px;
}
.privacy-right > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--privacy-safe);
    background: #fff;
    border-radius: 50%;
}
.privacy-right strong {
    display: block;
    color: #566b61;
    font-size: 7.5px;
}
.privacy-right p {
    margin:
        3px 0 0;
    color: #85958d;
    font-size: 6.5px;
    line-height: 1.65;
}

/* COMPANY
--------------------------------------------------------- */
.privacy-company {
    overflow: hidden;
    background: #fffafd;
    border:
        1px solid #f2e6ea;
    border-radius: 11px;
}
.privacy-company__row {
    display: grid;
    grid-template-columns:
        37px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    min-height: 62px;
    padding:
        9px 11px;
    border-bottom:
        1px solid #f1e7ea;
}
.privacy-company__row:last-child {
    border-bottom: 0;
}
.privacy-company__row > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color:
        var(--privacy-primary);
    background:
        var(--privacy-primary-light);
    border-radius: 50%;
}
.privacy-company__row small {
    display: block;
    color: #a08d95;
    font-size: 6px;
}
.privacy-company__row strong,
.privacy-company__row a {
    display: block;
    margin-top: 2px;
    color: #68545c;
    font-size: 7.5px;
    font-weight: 700;
    line-height: 1.55;
    text-decoration: none;
}

/* SECURITY
--------------------------------------------------------- */
.privacy-security {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-top: 17px;
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid
        var(--privacy-safe-border);
    border-radius: 13px;
}
.privacy-security__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color:
        var(--privacy-safe);
    font-size: 14px;
    background: #fff;
    border-radius: 50%;
}
.privacy-security__label {
    display: block;
    color:
        var(--privacy-safe);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.privacy-security strong {
    display: block;
    margin-top: 2px;
    color: #536c60;
    font-size: 8px;
}
.privacy-security p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* ACTIONS
--------------------------------------------------------- */
.privacy-actions {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}
.privacy-actions__contact,
.privacy-actions__home {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 47px;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 999px;
}
.privacy-actions__contact {
    color:
        var(--privacy-safe);
    background:
        var(--privacy-safe-light);
    border:
        1px solid
        var(--privacy-safe-border);
}
.privacy-actions__home {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--privacy-primary-dark),
            var(--privacy-primary),
            #f783aa
        );
    box-shadow:
        0 7px 17px
        rgba(244,95,143,.20);
}

/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .privacy-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .privacy-main {
        padding-inline: 9px;
    }
}
/* =========================================================
   Loveny 特定商取引法
========================================================= */
.law-page {
    --law-primary: #f45f8f;
    --law-primary-dark: #e84c7e;
    --law-primary-light: #fff0f5;
    --law-primary-pale: #fff8fb;
    --law-primary-border: #f5d4df;
    --law-safe: #59aa8c;
    --law-safe-light: #edf9f4;
    --law-safe-border: #d8eee4;
    --law-warning: #d79245;
    --law-warning-light: #fff7eb;
    --law-warning-border: #f1dfc5;
    --law-text: #493941;
    --law-subtext: #95848b;
    --law-border: #f0e2e7;
    margin: 0;
    color: var(--law-text);
    font-family:
        "Noto Sans JP",
        sans-serif;
    background: #f3edf0;
}
.law-page *,
.law-page *::before,
.law-page *::after {
    box-sizing: border-box;
}

/* APP
--------------------------------------------------------- */
.law-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;
    margin: 0 auto;
    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.77) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 48%,
            rgba(255,239,245,.92) 0,
            transparent 28%
        ),
        var(--law-primary-pale);
    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}

/* HEADER
--------------------------------------------------------- */
.law-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr) 42px;
    align-items: center;
    min-height: 68px;
    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;
    background:
        rgba(255,248,251,.95);
    border-bottom:
        1px solid var(--law-border);
    backdrop-filter:
        blur(14px);
}
.law-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #705e66;
    text-decoration: none;
    background: #fff;
    border:
        1px solid var(--law-border);
    border-radius: 50%;
    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}
.law-header__heading {
    text-align: center;
}
.law-header__label {
    display: block;
    color:
        var(--law-primary);
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}
.law-header__title {
    margin:
        1px 0 0;
    color: #493941;
    font-size: 14px;
}

/* MAIN
--------------------------------------------------------- */
.law-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}

/* INTRO
--------------------------------------------------------- */
.law-intro {
    display: grid;
    grid-template-columns:
        59px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 22px;
    padding:
        16px 14px;
    background:
        linear-gradient(
            120deg,
            #ffeaf2,
            #fff9fb
        );
    border:
        1px solid
        var(--law-primary-border);
    border-radius: 17px;
}
.law-intro__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    color: #fff;
    font-size: 21px;
    background:
        linear-gradient(
            140deg,
            var(--law-primary-dark),
            var(--law-primary),
            #f783aa
        );
    border-radius: 50%;
    box-shadow:
        0 8px 18px
        rgba(244,95,143,.23);
}
.law-intro__label {
    display: block;
    color:
        var(--law-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
}
.law-intro__title {
    margin:
        2px 0 0;
    color: #58454e;
    font-size: 14px;
}
.law-intro__text {
    margin:
        5px 0 0;
    color: #95828a;
    font-size: 7px;
    line-height: 1.65;
}

/* SECTION HEADING
--------------------------------------------------------- */
.law-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin:
        0 3px 9px;
}
.law-section-heading--second {
    margin-top: 23px;
}
.law-section-heading__label {
    display: block;
    color:
        var(--law-primary);
    font-size: 6.5px;
    font-weight: 800;
    letter-spacing: .11em;
}
.law-section-heading__title {
    margin:
        2px 0 0;
    color: #4f3f46;
    font-size: 14px;
}
.law-section-heading__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color:
        var(--law-primary);
    font-size: 11px;
    background:
        var(--law-primary-light);
    border-radius: 50%;
}
.law-section-heading__icon--warning {
    color: var(--law-warning);
    background:
        var(--law-warning-light);
}

/* CARD
--------------------------------------------------------- */
.law-card {
    overflow: hidden;
    background: #fff;
    border:
        1px solid var(--law-border);
    border-radius: 16px;
    box-shadow:
        0 5px 17px
        rgba(91,56,69,.045);
}

/* COMPANY ROW
--------------------------------------------------------- */
.law-info-row {
    position: relative;
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    min-height: 65px;
    padding:
        10px 12px;
}
.law-info-row +
.law-info-row::before {
    content: "";
    position: absolute;
    top: 0;
    right: 12px;
    left: 62px;
    height: 1px;
    background:
        #f2e8eb;
}
.law-info-row__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color:
        var(--law-primary);
    font-size: 12px;
    background:
        var(--law-primary-light);
    border-radius: 50%;
}
.law-info-row__label {
    display: block;
    margin-bottom: 2px;
    color: #a08d95;
    font-size: 6px;
}
.law-info-row__body strong,
.law-info-row__body a {
    display: block;
    color: #624e56;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.55;
    text-decoration: none;
}

/* PRICE
--------------------------------------------------------- */
.law-price-card {
    margin-bottom: 9px;
    padding:
        15px;
    background:
        linear-gradient(
            125deg,
            #ffeaf2,
            #fff
        );
    border:
        1px solid
        var(--law-primary-border);
    border-radius: 16px;
}
.law-price-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
}
.law-price-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #fff;
    font-size: 13px;
    background:
        linear-gradient(
            140deg,
            var(--law-primary-dark),
            var(--law-primary)
        );
    border-radius: 50%;
}
.law-price-card__label {
    display: block;
    color:
        var(--law-primary);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.law-price-card__header strong {
    display: block;
    margin-top: 2px;
    color: #674f59;
    font-size: 9px;
}
.law-price-card__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    margin:
        13px 0 7px;
    color:
        var(--law-primary-dark);
}
.law-price-card__price strong {
    font-size: 31px;
    line-height: 1;
}
.law-price-card__price span {
    margin-left: 4px;
    font-size: 10px;
    font-weight: 700;
}
.law-price-card__note {
    margin: 0;
    color: #a18790;
    font-size: 6px;
    line-height: 1.6;
    text-align: center;
}

/* SIMPLE CARD
--------------------------------------------------------- */
.law-simple-card {
    display: grid;
    grid-template-columns:
        40px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    margin-bottom: 9px;
    padding: 12px;
    background: #fff;
    border:
        1px solid var(--law-border);
    border-radius: 13px;
}
.law-simple-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #d89b48;
    background: #fff7ea;
    border-radius: 50%;
}
.law-simple-card__label {
    display: block;
    color: #d4994e;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
}
.law-simple-card strong {
    display: block;
    margin-top: 2px;
    color: #62534b;
    font-size: 8px;
}
.law-simple-card p {
    margin:
        3px 0 0;
    color: #94877f;
    font-size: 6.5px;
}

/* POINT
--------------------------------------------------------- */
.law-point-card {
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #fff8ed,
            #fff
        );
    border:
        1px solid var(--law-warning-border);
    border-radius: 13px;
}
.law-point-card__header {
    display: flex;
    gap: 9px;
    align-items: center;
}
.law-point-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 39px;
    height: 39px;
    color: #d69a48;
    background: #fff;
    border-radius: 50%;
}
.law-point-card__label {
    display: block;
    color: #d09546;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .1em;
}
.law-point-card__header strong {
    display: block;
    margin-top: 2px;
    color: #655449;
    font-size: 8px;
}
.law-point-card__value {
    display: flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    margin:
        11px 0 5px;
    color: #ad742e;
    font-size: 10px;
}
.law-point-card__value strong {
    font-size: 15px;
}
.law-point-card > p {
    margin: 0;
    color: #98826c;
    font-size: 6.5px;
    text-align: center;
}

/* PAYMENT
--------------------------------------------------------- */
.law-payment-block {
    padding:
        13px;
}
.law-payment-block +
.law-payment-block {
    border-top:
        1px solid #f2e8eb;
}
.law-payment-block__title {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
}
.law-payment-block__title > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color:
        var(--law-primary);
    background:
        var(--law-primary-light);
    border-radius: 50%;
}
.law-payment-block__title strong {
    color: #624e56;
    font-size: 8px;
}
.law-payment-detail {
    margin-top: 7px;
    padding: 9px;
    background: #fffafd;
    border-radius: 9px;
}
.law-payment-detail__badge {
    display: inline-flex;
    padding:
        3px 7px;
    color:
        var(--law-primary-dark);
    font-size: 6px;
    font-weight: 700;
    background:
        var(--law-primary-light);
    border-radius: 999px;
}
.law-payment-detail p {
    margin:
        5px 0 0;
    color: #77656d;
    font-size: 7px;
    line-height: 1.6;
}

/* PAYMENT METHOD
--------------------------------------------------------- */
.law-payment-methods {
    display: grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap: 7px;
}
.law-payment-methods > div {
    display: flex;
    gap: 7px;
    align-items: center;
    min-height: 47px;
    padding: 8px;
    background: #fffafd;
    border-radius: 9px;
}
.law-payment-methods span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    color:
        var(--law-primary);
    background:
        var(--law-primary-light);
    border-radius: 50%;
}
.law-payment-methods p {
    margin: 0;
    color: #746169;
    font-size: 6.5px;
}

/* CANCEL
--------------------------------------------------------- */
.law-cancel-card {
    padding: 13px;
    background:
        linear-gradient(
            135deg,
            #fff9f4,
            #fff
        );
    border:
        1px solid
        var(--law-warning-border);
    border-radius: 15px;
}
.law-cancel-item {
    display: grid;
    grid-template-columns:
        39px minmax(0,1fr);
    gap: 9px;
    align-items: flex-start;
    padding: 9px;
    background: rgba(255,255,255,.85);
    border-radius: 10px;
}
.law-cancel-item +
.law-cancel-item {
    margin-top: 7px;
}
.law-cancel-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color:
        var(--law-warning);
    background:
        var(--law-warning-light);
    border-radius: 50%;
}
.law-cancel-item__label {
    display: block;
    color:
        var(--law-warning);
    font-size: 6px;
    font-weight: 800;
}
.law-cancel-item strong {
    display: block;
    margin-top: 2px;
    color: #685648;
    font-size: 7.5px;
    line-height: 1.55;
}
.law-cancel-item p {
    margin:
        3px 0 0;
    color: #988675;
    font-size: 6.5px;
}

/* CANCEL WARNING
--------------------------------------------------------- */
.law-cancel-warning {
    display: grid;
    grid-template-columns:
        33px minmax(0,1fr);
    gap: 8px;
    align-items: center;
    margin-top: 9px;
    padding: 9px;
    background: #fff1f2;
    border-radius: 9px;
}
.law-cancel-warning > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #d05e70;
    background: #fff;
    border-radius: 50%;
}
.law-cancel-warning p {
    margin: 0;
    color: #9a6974;
    font-size: 6.5px;
    line-height: 1.6;
}
.law-cancel-warning strong {
    color: #cb5368;
}

/* SUPPORT
--------------------------------------------------------- */
.law-support {
    display: grid;
    grid-template-columns:
        42px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    margin-top: 18px;
    padding: 13px;
    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );
    border:
        1px solid
        var(--law-safe-border);
    border-radius: 13px;
}
.law-support__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    color:
        var(--law-safe);
    background: #fff;
    border-radius: 50%;
}
.law-support__label {
    display: block;
    color:
        var(--law-safe);
    font-size: 6px;
    font-weight: 800;
    letter-spacing: .11em;
}
.law-support strong {
    display: block;
    margin-top: 2px;
    color: #536c60;
    font-size: 8px;
    line-height: 1.5;
}
.law-support p {
    margin:
        4px 0 0;
    color: #89998f;
    font-size: 6.5px;
    line-height: 1.6;
}

/* ACTIONS
--------------------------------------------------------- */
.law-actions {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}
.law-actions__support,
.law-actions__home {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 47px;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 999px;
}
.law-actions__support {
    color:
        var(--law-safe);
    background:
        var(--law-safe-light);
    border:
        1px solid
        var(--law-safe-border);
}
.law-actions__home {
    color: #fff;
    background:
        linear-gradient(
            100deg,
            var(--law-primary-dark),
            var(--law-primary),
            #f783aa
        );
    box-shadow:
        0 7px 17px
        rgba(244,95,143,.20);
}

/* PC
--------------------------------------------------------- */
@media (min-width:431px) {
    .law-page {
        background: #f2ecef;
    }
}

/* SMALL
--------------------------------------------------------- */
@media (max-width:360px) {
    .law-main {
        padding-inline: 9px;
    }
}

/* =========================================================
   Loveny PUBLIC FAQ
========================================================= */

.public-faq-page {
    --pf-primary: #f45f8f;
    --pf-primary-dark: #e84c7e;
    --pf-primary-light: #fff0f5;
    --pf-primary-pale: #fff8fb;
    --pf-primary-border: #f5d4df;

    --pf-safe: #58aa8c;
    --pf-safe-light: #edf9f4;
    --pf-safe-border: #d8eee4;

    --pf-text: #493941;
    --pf-subtext: #95848b;
    --pf-border: #f0e2e7;

    margin: 0;

    color: var(--pf-text);

    font-family:
        "Noto Sans JP",
        sans-serif;

    background: #f3edf0;
}

.public-faq-page *,
.public-faq-page *::before,
.public-faq-page *::after {
    box-sizing: border-box;
}

.public-faq-page button,
.public-faq-page input {
    font: inherit;
}

.public-faq-page [hidden] {
    display: none !important;
}


/* =========================================================
   APP
========================================================= */

.public-faq-app {
    width: 100%;
    max-width: 430px;
    min-height: 100svh;

    margin: 0 auto;

    background:
        radial-gradient(
            circle at 100% 2%,
            rgba(255,218,232,.78) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 0 48%,
            rgba(255,239,245,.92) 0,
            transparent 28%
        ),
        var(--pf-primary-pale);

    box-shadow:
        0 0 25px
        rgba(91,56,70,.08);
}


/* =========================================================
   HEADER
========================================================= */

.public-faq-header {
    position: sticky;

    top: 0;
    z-index: 20;

    display: grid;

    grid-template-columns:
        42px minmax(0,1fr) 42px;

    align-items: center;

    min-height: 68px;

    padding:
        calc(8px + env(safe-area-inset-top))
        12px
        7px;

    background:
        rgba(255,248,251,.95);

    border-bottom:
        1px solid var(--pf-border);

    backdrop-filter:
        blur(14px);
}

.public-faq-header__back {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    color: #705e66;

    text-decoration: none;

    background: #fff;

    border:
        1px solid var(--pf-border);

    border-radius: 50%;

    box-shadow:
        0 3px 10px
        rgba(99,60,76,.05);
}

.public-faq-header__heading {
    text-align: center;
}

.public-faq-header__label {
    display: block;

    color: var(--pf-primary);

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .12em;
}

.public-faq-header__title {
    margin:
        1px 0 0;

    color: #493941;

    font-size: 14px;
}


/* =========================================================
   MAIN
========================================================= */

.public-faq-main {
    padding:
        18px
        12px
        calc(35px + env(safe-area-inset-bottom));
}


/* =========================================================
   HERO
========================================================= */

.public-faq-hero {
    display: grid;

    grid-template-columns:
        68px minmax(0,1fr);

    gap: 13px;

    align-items: center;

    padding:
        17px 14px;

    background:
        linear-gradient(
            125deg,
            #ffe7f0 0%,
            #fff5f8 58%,
            #fff 100%
        );

    border:
        1px solid
        var(--pf-primary-border);

    border-radius: 18px;

    box-shadow:
        0 6px 18px
        rgba(99,60,76,.04);
}

.public-faq-hero__visual {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 66px;
    height: 66px;
}

.public-faq-hero__main-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 59px;
    height: 59px;

    color: #fff;

    font-size: 23px;

    background:
        linear-gradient(
            140deg,
            var(--pf-primary-dark),
            var(--pf-primary),
            #f88aae
        );

    border-radius: 50%;

    box-shadow:
        0 8px 18px
        rgba(244,95,143,.24);
}

.public-faq-hero__heart {
    position: absolute;

    display: flex;

    align-items: center;
    justify-content: center;

    color:
        var(--pf-primary);

    background: #fff;

    border-radius: 50%;

    box-shadow:
        0 3px 8px
        rgba(99,60,76,.1);
}

.public-faq-hero__heart--1 {
    top: -2px;
    right: -2px;

    width: 22px;
    height: 22px;

    font-size: 8px;
}

.public-faq-hero__heart--2 {
    bottom: 0;
    left: -1px;

    width: 18px;
    height: 18px;

    font-size: 6px;
}

.public-faq-hero__label {
    display: block;

    color: var(--pf-primary);

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .12em;
}

.public-faq-hero__title {
    margin:
        2px 0 0;

    color: #58454e;

    font-size: 16px;

    line-height: 1.5;
}

.public-faq-hero__text {
    margin:
        5px 0 0;

    color: #95828a;

    font-size: 7px;

    line-height: 1.65;
}


/* =========================================================
   SEARCH
========================================================= */

.public-faq-search {
    position: relative;

    display: flex;

    align-items: center;

    margin-top: 13px;

    background: #fff;

    border:
        1px solid var(--pf-border);

    border-radius: 999px;

    box-shadow:
        0 4px 14px
        rgba(91,56,69,.05);
}

.public-faq-search > i {
    position: absolute;

    left: 16px;

    color: #c2aeb6;

    font-size: 11px;

    pointer-events: none;
}

.public-faq-search input {
    width: 100%;
    height: 46px;

    padding:
        0 42px 0 39px;

    color: #5d4a52;

    font-size: 9px;

    outline: none;

    background: transparent;

    border: 0;
}

.public-faq-search input::placeholder {
    color: #baaab0;
}

.public-faq-search:focus-within {
    border-color: #f1b6ca;

    box-shadow:
        0 0 0 3px
        rgba(244,95,143,.07);
}

.public-faq-search button {
    position: absolute;

    right: 8px;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    color: #a9949c;

    cursor: pointer;

    background: #f8f1f4;

    border: 0;

    border-radius: 50%;
}


/* =========================================================
   CATEGORY
========================================================= */

.public-faq-categories {
    display: flex;

    gap: 6px;

    margin-top: 10px;
    padding-bottom: 3px;

    overflow-x: auto;

    scrollbar-width: none;
}

.public-faq-categories::-webkit-scrollbar {
    display: none;
}

.public-faq-category {
    display: inline-flex;

    flex: 0 0 auto;

    gap: 5px;

    align-items: center;

    min-height: 30px;

    padding:
        5px 10px;

    color: #927f87;

    font-size: 7px;
    font-weight: 700;

    cursor: pointer;

    background: #fff;

    border:
        1px solid var(--pf-border);

    border-radius: 999px;
}

.public-faq-category.is-active {
    color: #fff;

    background:
        linear-gradient(
            100deg,
            var(--pf-primary-dark),
            var(--pf-primary)
        );

    border-color:
        var(--pf-primary);

    box-shadow:
        0 4px 10px
        rgba(244,95,143,.18);
}


/* =========================================================
   SECTION
========================================================= */

.public-faq-section {
    margin-top: 22px;
}

.public-faq-section-heading {
    display: flex;

    align-items: center;
    justify-content: space-between;

    margin:
        0 3px 9px;
}

.public-faq-section-heading__label {
    display: block;

    color:
        var(--pf-primary);

    font-size: 6.5px;
    font-weight: 800;

    letter-spacing: .1em;
}

.public-faq-section-heading__title {
    margin:
        2px 0 0;

    color: #4f3f46;

    font-size: 14px;
}

.public-faq-section-heading__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    color:
        var(--pf-primary);

    background:
        var(--pf-primary-light);

    border-radius: 50%;
}


/* =========================================================
   FAQ
========================================================= */

.public-faq-list {
    display: grid;

    gap: 7px;
}

.public-faq-item {
    overflow: hidden;

    background: #fff;

    border:
        1px solid var(--pf-border);

    border-radius: 13px;

    box-shadow:
        0 4px 13px
        rgba(91,56,69,.04);
}

.public-faq-item.is-open {
    border-color: #f1c5d5;

    box-shadow:
        0 5px 16px
        rgba(244,95,143,.08);
}

.public-faq-item__question {
    display: grid;

    grid-template-columns:
        39px minmax(0,1fr) 27px;

    gap: 9px;

    align-items: center;

    width: 100%;
    min-height: 64px;

    padding:
        9px 10px;

    text-align: left;

    cursor: pointer;

    background: transparent;

    border: 0;
}

.public-faq-item__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    color:
        var(--pf-primary);

    font-size: 11px;

    background:
        var(--pf-primary-light);

    border-radius: 50%;
}

.public-faq-item__question-body small {
    display: block;

    margin-bottom: 2px;

    color:
        var(--pf-primary);

    font-size: 5.5px;
    font-weight: 800;

    letter-spacing: .1em;
}

.public-faq-item__question-body strong {
    display: block;

    color: #604d55;

    font-size: 8.5px;

    line-height: 1.5;
}

.public-faq-item__toggle {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 26px;
    height: 26px;

    color: #a9949c;

    font-size: 7px;

    background: #faf5f7;

    border-radius: 50%;
}

.public-faq-item.is-open
.public-faq-item__toggle {
    color: #fff;

    background:
        var(--pf-primary);
}


/* ANSWER
--------------------------------------------------------- */

.public-faq-item__answer {
    display: grid;

    grid-template-rows: 0fr;

    transition:
        grid-template-rows .25s ease;
}

.public-faq-item.is-open
.public-faq-item__answer {
    grid-template-rows: 1fr;
}

.public-faq-item__answer-inner {
    display: grid;

    grid-template-columns:
        25px minmax(0,1fr);

    gap: 8px;

    min-height: 0;

    overflow: hidden;
}

.public-faq-item.is-open
.public-faq-item__answer-inner {
    padding:
        0 12px 13px 57px;
}

.public-faq-item__answer-label {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 23px;
    height: 23px;

    color: #fff;

    font-size: 8px;
    font-weight: 800;

    background:
        var(--pf-primary);

    border-radius: 50%;
}

.public-faq-item__answer p {
    margin: 0;

    color: #85727a;

    font-size: 7px;

    line-height: 1.75;
}

.public-faq-item__answer-link {
    grid-column: 2;

    display: inline-flex;

    gap: 4px;

    align-items: center;

    margin-top: 6px;

    color:
        var(--pf-primary-dark);

    font-size: 7px;
    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   EMPTY
========================================================= */

.public-faq-empty {
    padding:
        30px 15px;

    text-align: center;

    background: #fff;

    border:
        1px solid var(--pf-border);

    border-radius: 14px;
}

.public-faq-empty > span {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin:
        0 auto 10px;

    color:
        var(--pf-primary);

    background:
        var(--pf-primary-light);

    border-radius: 50%;
}

.public-faq-empty strong {
    display: block;

    color: #604d55;

    font-size: 9px;
}

.public-faq-empty p {
    margin:
        6px 0 0;

    color: #9e8b93;

    font-size: 7px;

    line-height: 1.7;
}


/* =========================================================
   CONTACT
========================================================= */

.public-faq-contact {
    margin-top: 27px;

    padding: 14px;

    background:
        linear-gradient(
            125deg,
            #fff0f5,
            #fff
        );

    border:
        1px solid
        var(--pf-primary-border);

    border-radius: 16px;
}

.public-faq-contact__heading {
    display: grid;

    grid-template-columns:
        44px minmax(0,1fr);

    gap: 10px;

    align-items: center;

    margin-bottom: 11px;
}

.public-faq-contact__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 43px;
    height: 43px;

    color: #fff;

    font-size: 14px;

    background:
        linear-gradient(
            140deg,
            var(--pf-primary-dark),
            var(--pf-primary)
        );

    border-radius: 50%;
}

.public-faq-contact__label {
    display: block;

    color:
        var(--pf-primary);

    font-size: 6px;
    font-weight: 800;

    letter-spacing: .11em;
}

.public-faq-contact__heading h2 {
    margin:
        2px 0 0;

    color: #604d55;

    font-size: 10px;
}

.public-faq-contact__heading p {
    margin:
        3px 0 0;

    color: #97848c;

    font-size: 6.5px;
}


/* CONTACT BUTTONS
--------------------------------------------------------- */

.public-faq-contact__buttons {
    display: grid;

    gap: 7px;
}

.public-faq-contact__member,
.public-faq-contact__general {
    display: grid;

    grid-template-columns:
        39px minmax(0,1fr) 15px;

    gap: 9px;

    align-items: center;

    min-height: 64px;

    padding:
        9px 11px;

    color: inherit;

    text-decoration: none;

    background: #fff;

    border-radius: 12px;
}

.public-faq-contact__member {
    border:
        1px solid
        var(--pf-primary-border);
}

.public-faq-contact__general {
    border:
        1px solid #dcebe5;
}

.public-faq-contact__button-icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;
}

.public-faq-contact__member
.public-faq-contact__button-icon {
    color:
        var(--pf-primary);

    background:
        var(--pf-primary-light);
}

.public-faq-contact__general
.public-faq-contact__button-icon {
    color:
        var(--pf-safe);

    background:
        var(--pf-safe-light);
}

.public-faq-contact__button-body small {
    display: block;

    font-size: 5.5px;
    font-weight: 800;

    letter-spacing: .09em;
}

.public-faq-contact__member
.public-faq-contact__button-body small {
    color:
        var(--pf-primary);
}

.public-faq-contact__general
.public-faq-contact__button-body small {
    color:
        var(--pf-safe);
}

.public-faq-contact__button-body strong {
    display: block;

    margin-top: 1px;

    color: #604d55;

    font-size: 8.5px;
}

.public-faq-contact__button-body > span {
    display: block;

    margin-top: 2px;

    color: #a08d95;

    font-size: 6px;
}

.public-faq-contact__member > .fa-chevron-right,
.public-faq-contact__general > .fa-chevron-right {
    color: #c5b5bb;

    font-size: 8px;
}


/* =========================================================
   SAFETY
========================================================= */

.public-faq-safety {
    display: grid;

    grid-template-columns:
        42px minmax(0,1fr);

    gap: 10px;

    align-items: center;

    margin-top: 11px;

    padding: 13px;

    background:
        linear-gradient(
            120deg,
            #edf9f4,
            #fff
        );

    border:
        1px solid
        var(--pf-safe-border);

    border-radius: 13px;
}

.public-faq-safety__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 41px;
    height: 41px;

    color:
        var(--pf-safe);

    font-size: 14px;

    background: #fff;

    border-radius: 50%;
}

.public-faq-safety__label {
    display: block;

    color:
        var(--pf-safe);

    font-size: 6px;
    font-weight: 800;

    letter-spacing: .11em;
}

.public-faq-safety strong {
    display: block;

    margin-top: 2px;

    color: #536c60;

    font-size: 8px;
}

.public-faq-safety p {
    margin:
        4px 0 0;

    color: #89998f;

    font-size: 6.5px;
}

.public-faq-safety__links {
    display: flex;

    flex-wrap: wrap;

    gap: 4px;

    margin-top: 6px;

    color: #a1b1a9;

    font-size: 6px;
}

.public-faq-safety__links a {
    color:
        var(--pf-safe);

    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   HOME
========================================================= */

.public-faq-home {
    margin-top: 15px;

    text-align: center;
}

.public-faq-home a {
    display: inline-flex;

    gap: 6px;

    align-items: center;

    color: #9a878f;

    font-size: 7px;
    font-weight: 600;

    text-decoration: none;
}


/* =========================================================
   PC
========================================================= */

@media (min-width:431px) {

    .public-faq-page {
        background: #f2ecef;
    }

}


/* =========================================================
   SMALL
========================================================= */

@media (max-width:360px) {

    .public-faq-main {
        padding-inline: 9px;
    }

    .public-faq-hero {
        grid-template-columns:
            60px minmax(0,1fr);
    }

    .public-faq-hero__visual {
        width: 58px;
        height: 58px;
    }

    .public-faq-hero__main-icon {
        width: 53px;
        height: 53px;
    }

}

