@charset "UTF-8";
/* ==========================================================================
   user.css — マイページ（個人中心）共通スタイル
   読み込み順：normalize.css → bootstrap.min.css → common.css → user.css
   ・common.css の共通コンポーネント（.btn / .crumbs / .pager / .product-card 等）は再定義しない。
   ・左ナビ＋右コンテンツの2カラム共通レイアウトと、各機能固有のパーツのみを定義する。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. ページ枠・2カラムレイアウト
   -------------------------------------------------------------------------- */
.user-page{padding-block:16px 34px}
.user-layout{--bs-gutter-x:var(--gap);--bs-gutter-y:16px}

/* サイドバー：lg未満は Bootstrap offcanvas、lg以上は通常カラム */
.user-side{
  --bs-offcanvas-width:300px;
  --bs-offcanvas-padding-x:14px;
  --bs-offcanvas-padding-y:14px;
}
@media (min-width:992px){
  /* 追従ヘッダー（圧縮時 約60px）に隠れないよう下に余白を持たせる */
  .user-side{position:sticky;top:76px}
}
/* offcanvas-body は lg 以上で display:flex になるため、内側を全幅に広げる */
.user-side__inner{display:flex;flex-direction:column;gap:12px;width:100%}

/* --------------------------------------------------------------------------
   1b. ボタンの補助バリエーション（控えめな危険操作）
   ※ 枠線のみの .btn-line は common.css の共通コンポーネントを使う
   -------------------------------------------------------------------------- */
.btn-line--danger{
  --bs-btn-color:var(--red);
  --bs-btn-bg:var(--white);
  --bs-btn-border-color:#f0c6c4;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--red);
  --bs-btn-hover-border-color:var(--red);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--red);
  --bs-btn-active-border-color:var(--red);
}

/* モバイル用トリガー */
.user-sidebar-toggle{
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  margin-bottom:14px;
  padding:11px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  color:var(--navy);
  font-size:13px;
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.user-sidebar-toggle__icon{font-size:20px;color:var(--cta)}
.user-sidebar-toggle__name{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--muted)}
.user-sidebar-toggle__chev{font-size:14px;color:var(--muted)}

/* --------------------------------------------------------------------------
   2. サイドバー：プロフィールカード
   -------------------------------------------------------------------------- */
.user-profile{
  position:relative;
  overflow:hidden;
  padding:18px 16px 16px;
  border-radius:var(--radius);
  background:linear-gradient(150deg,#2e4a6b 0%,#3b6ba6 60%,#4b82c4 100%);
  color:#fff;
  text-align:center;
}
.user-profile::after{
  content:"";
  position:absolute;
  top:-46px;
  right:-30px;
  width:132px;
  height:132px;
  border-radius:50%;
  background:rgba(255,255,255,.10);
}
.user-profile__avatar{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:62px;
  height:62px;
  margin:0 auto 10px;
  border:2px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(255,255,255,.16);
  font-size:22px;
  font-weight:700;
}
.user-profile__avatar .bi{font-size:30px;color:#fff}
/* 設定した写真（未設定のときは頭文字を表示する） */
.user-profile__avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.user-profile__name{position:relative;font-size:14.5px;font-weight:700;line-height:1.45}
.user-profile__mail{
  position:relative;
  margin-top:3px;
  font-size:10.5px;
  line-height:1.5;
  color:rgba(255,255,255,.8);
  word-break:break-all;
}
.user-profile__points{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:12px;
  padding:9px 12px;
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.15);
}
.user-profile__points-label{font-size:10.5px;color:rgba(255,255,255,.85)}
.user-profile__points-value{font-size:15px;font-weight:700;letter-spacing:.01em}
.user-profile__points-value small{margin-left:2px;font-size:10px;font-weight:600}

/* --------------------------------------------------------------------------
   3. サイドバー：メニュー
   -------------------------------------------------------------------------- */
.user-nav{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
}
.user-nav__label{
  padding:11px 14px 4px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--muted);
}
.user-nav__list{padding:4px 8px 9px}
.user-nav__link{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-radius:var(--radius-sm);
  font-size:12.5px;
  font-weight:600;
  color:var(--ink);
  transition:background .16s var(--ease),color .16s var(--ease);
}
.user-nav__link .bi{flex:0 0 auto;font-size:17px;color:var(--muted);transition:color .16s var(--ease)}
.user-nav__link:hover{background:var(--blue);color:var(--navy)}
.user-nav__link:hover .bi{color:var(--cta)}
.user-nav__link.is-active{background:var(--blue);color:var(--cta)}
.user-nav__link.is-active .bi{color:var(--cta)}
.user-nav__badge{
  margin-left:auto;
  min-width:20px;
  padding:1px 7px;
  border-radius:999px;
  background:var(--cta);
  color:#fff;
  font-size:10px;
  font-weight:700;
  text-align:center;
}
.user-nav__link.is-active .user-nav__badge{background:var(--cta)}
.user-nav__foot{padding:0 14px 12px}
.user-nav__logout{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:9px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  transition:border-color .16s var(--ease),color .16s var(--ease);
}
.user-nav__logout:hover{border-color:var(--red);color:var(--red)}

/* --------------------------------------------------------------------------
   4. コンテンツ見出し・共通カード
   -------------------------------------------------------------------------- */
.user-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.user-head__title{font-size:20px;font-weight:700;line-height:1.35;color:var(--navy)}
.user-head__count{font-size:12.5px;font-weight:600;color:var(--muted)}
.user-head__count b{color:var(--cta)}
.user-head__lead{margin-top:4px;font-size:11.5px;line-height:1.6;color:var(--muted)}
.user-head__more{
  flex:0 0 auto;
  font-size:11.5px;
  font-weight:600;
  color:var(--cta);
}
.user-head__more:hover{text-decoration:underline}

.u-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  overflow:hidden;
}
.u-card + .u-card{margin-top:14px}
.u-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 15px;
  border-bottom:1px solid var(--line);
}
.u-card__title{font-size:13.5px;font-weight:700;color:var(--navy)}
.u-card__sub{margin-top:2px;font-size:11px;color:var(--muted)}
.u-card__body{padding:15px}
.u-card__body--flush{padding:0}
.u-card__foot{
  padding:12px 15px;
  border-top:1px solid var(--line);
}
.u-card__foot--split{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* --------------------------------------------------------------------------
   5. ダッシュボード：歓迎・クイックリンク
   -------------------------------------------------------------------------- */
.u-hello{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  border-radius:var(--radius);
  background:linear-gradient(120deg,#2e4a6b 0%,#3b6ba6 58%,#4b82c4 100%);
  color:#fff;
}
.u-hello::after{
  content:"";
  position:absolute;
  right:-40px;
  bottom:-70px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:rgba(255,255,255,.09);
}
.u-hello__title{position:relative;font-size:19px;font-weight:700;line-height:1.45}
.u-hello__title b{color:#bcdcff}
.u-hello__text{position:relative;margin-top:5px;font-size:11.5px;line-height:1.7;color:rgba(255,255,255,.82)}
.u-hello__actions{position:relative;display:flex;flex-wrap:wrap;gap:9px}
.u-hello__btn{
  --bs-btn-color:var(--navy);
  --bs-btn-bg:#fff;
  --bs-btn-border-color:#fff;
  --bs-btn-hover-color:var(--navy);
  --bs-btn-hover-bg:#eaf3fb;
  --bs-btn-hover-border-color:#eaf3fb;
  --bs-btn-active-color:var(--navy);
  --bs-btn-active-bg:#eaf3fb;
  --bs-btn-active-border-color:#eaf3fb;
}
.u-hello__btn--ghost{
  --bs-btn-color:#fff;
  --bs-btn-bg:transparent;
  --bs-btn-border-color:rgba(255,255,255,.6);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:rgba(255,255,255,.14);
  --bs-btn-hover-border-color:#fff;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:rgba(255,255,255,.14);
  --bs-btn-active-border-color:#fff;
}

.u-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.u-stat{
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
}
.u-stat__label{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted)}
.u-stat__label .bi{font-size:14px;color:var(--cta)}
.u-stat__value{margin-top:6px;font-size:20px;font-weight:700;line-height:1.2;color:var(--navy)}
.u-stat__value small{margin-left:3px;font-size:11px;font-weight:600;color:var(--muted)}
.u-stat__link{display:inline-block;margin-top:7px;font-size:10.5px;font-weight:600;color:var(--cta)}
.u-stat__link:hover{text-decoration:underline}

/* クイックリンク */
.u-quick{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.u-quick__item{
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  transition:border-color .18s var(--ease);
}
.u-quick__item:hover{border-color:var(--line-strong)}
.u-quick__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:38px;
  height:38px;
  border-radius:10px;
  background:var(--blue);
}
.u-quick__icon .bi{font-size:19px;color:var(--cta)}
.u-quick__name{font-size:12.5px;font-weight:700;color:var(--navy)}
.u-quick__text{margin-top:2px;font-size:10.5px;line-height:1.5;color:var(--muted)}
.u-quick__chev{margin-left:auto;flex:0 0 auto;font-size:14px;color:var(--muted)}

/* --------------------------------------------------------------------------
   6. お知らせ（メール未確認の案内など）
   -------------------------------------------------------------------------- */
.u-notice{
  --bs-alert-padding-y:12px;
  --bs-alert-padding-x:14px;
  --bs-alert-margin-bottom:0;
  --bs-alert-border-radius:var(--radius-sm);
  --bs-alert-bg:#fffaf0;
  --bs-alert-border-color:var(--line-strong);
  --bs-alert-color:var(--ink);
  align-items:flex-start;
  gap:11px;
  border-left:3px solid var(--gold);
}
.u-notice + .u-notice{margin-top:10px}
.u-notice__icon{flex:0 0 auto;font-size:18px;margin-top:1px;color:var(--gold)}
.u-notice__body{min-width:0}
.u-notice__title{font-size:12.5px;font-weight:700;color:var(--navy)}
.u-notice__text{margin-top:3px;font-size:11.5px;line-height:1.65;color:var(--ink)}
.u-notice__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.u-notice.alert-info{--bs-alert-bg:var(--blue);border-left-color:var(--cta)}
.u-notice.alert-info .u-notice__icon{color:var(--cta)}

/* --------------------------------------------------------------------------
   7. タブ（注文ステータス絞り込みなど）
   -------------------------------------------------------------------------- */
.u-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  background:var(--white);
}
.u-tabs__item{
  padding:7px 14px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--white);
  color:var(--muted);
  font-size:11.5px;
  font-weight:600;
  cursor:pointer;
  transition:border-color .16s var(--ease),background .16s var(--ease),color .16s var(--ease);
}
.u-tabs__item:hover{border-color:var(--cta);color:var(--cta)}
.u-tabs__item.is-active{border-color:var(--cta);background:var(--cta);color:#fff}
.u-tabs__count{margin-left:5px;font-size:10px;opacity:.85}

/* 検索バー */
.u-search{padding:12px 15px;border-bottom:1px solid var(--line)}
.u-search__form{display:flex;gap:8px;flex-wrap:wrap}
.u-search__input{flex:1 1 220px;min-width:0;height:40px;font-size:12.5px}
.u-search__btn{flex:0 0 auto;padding-inline:20px}
.u-search__reset{flex:0 0 auto;align-self:center;font-size:11px;font-weight:600;color:var(--muted)}
.u-search__reset:hover{color:var(--cta);text-decoration:underline}

/* --------------------------------------------------------------------------
   8. 注文カード
   -------------------------------------------------------------------------- */
.u-orders{display:flex;flex-direction:column;gap:12px;padding:14px}
.u-order{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
}
.u-order[hidden]{display:none}
.u-order__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px 14px;
  padding:10px 14px;
  border-bottom:1px solid var(--line);
}
.u-order__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--muted)}
.u-order__meta b{color:var(--navy);font-weight:700}
/* 注文の商品リスト（複数商品は行を並べる） */
.u-order__items{padding:0}
.u-order__item{display:flex;align-items:flex-start;gap:12px;padding:13px 14px}
.u-order__item + .u-order__item{border-top:1px dashed var(--line)}
.u-order__thumb{
  display:block;
  flex:0 0 auto;
  width:66px;
  height:66px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
}
.u-order__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.u-order__info{min-width:0;flex:1 1 auto}
.u-order__brand{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.u-order__name{font-size:13px;font-weight:600;line-height:1.5;color:var(--ink)}
.u-order__name a:hover{color:var(--cta)}
.u-order__opt{margin-top:3px;font-size:11px;color:var(--muted)}
.u-order__nums{flex:0 0 auto;text-align:right;white-space:nowrap}
.u-order__qty{font-size:11px;color:var(--muted)}
.u-order__sum{margin-top:3px;font-size:13.5px;font-weight:700;color:var(--navy)}
.u-order__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  padding:12px 14px;
  border-top:1px solid var(--line);
}
.u-order__total{font-size:11.5px;color:var(--muted)}
.u-order__total b{margin-left:6px;font-size:16px;color:var(--navy)}
.u-order__actions{display:flex;flex-wrap:wrap;gap:8px}
body.woocommerce-account .user-account-content .woocommerce .u-order__actions a.btn-line{
  color:var(--navy);
  background-color:var(--white);
  border-color:var(--line-strong);
}
body.woocommerce-account .user-account-content .woocommerce .u-order__actions a.btn-cta{
  color:#fff;
  background-color:var(--cta);
  border-color:var(--cta);
}

/* ステータスバッジ */
.u-status{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 10px;
  border-radius:999px;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
}
.u-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.u-status--pending{background:#fdf3e3;color:#b0740f}
.u-status--paid{background:var(--blue);color:var(--cta)}
.u-status--completed{background:#e8f5ec;color:#2f7d4f}
.u-status--closed{background:#eef1f5;color:var(--muted)}

/* --------------------------------------------------------------------------
   9. 空の状態
   -------------------------------------------------------------------------- */
.u-empty{
  padding:36px 20px;
  border:1px dashed var(--line-strong);
  border-radius:var(--radius);
  background:var(--bg);
  text-align:center;
}
.u-empty[hidden]{display:none}
.u-empty__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  margin:0 auto 12px;
  border-radius:50%;
  background:var(--white);
}
.u-empty__icon .bi{font-size:26px;color:var(--line-strong)}
.u-empty__title{font-size:14.5px;font-weight:700;color:var(--navy)}
.u-empty__text{margin-top:6px;font-size:11.5px;line-height:1.7;color:var(--muted)}
.u-empty .btn{margin-top:14px;padding-inline:22px}

/* --------------------------------------------------------------------------
   10. おすすめ商品（リスト下・シンプル表示：カート追加なし）
   -------------------------------------------------------------------------- */
/* レビュー一覧の下のおすすめ商品（一覧のカードと同じ 14px の間隔に合わせる） */
.u-recommend{margin-top:24px}
.u-recommend__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.u-recommend__title{font-size:14px;font-weight:700;color:var(--navy)}
.u-recommend__sub{margin-top:2px;font-size:10.5px;color:var(--muted)}
.u-recommend__more{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--cta)}
.u-recommend__more:hover{text-decoration:underline}

.u-mini{
  display:flex;
  flex-direction:column;
  height:100%;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  overflow:hidden;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease);
}
/* 商品カード系はホバー時にブランド色まで濃くする（common.css の .product-card と揃える） */
.u-mini:hover{border-color:var(--brand)}
.u-mini__media{display:block;overflow:hidden;background:var(--bg)}
.u-mini__media img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .35s var(--ease)}
.u-mini__body{display:flex;flex-direction:column;flex:1 1 auto;gap:3px;padding:9px 10px 11px}
.u-mini__brand{font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.u-mini__name{font-size:11.5px;font-weight:600;line-height:1.45;color:var(--ink)}
.u-mini__name a:hover{color:var(--cta)}
.u-mini__price{margin-top:auto;padding-top:5px;font-size:13.5px;font-weight:700;color:var(--navy)}
.u-mini__price del{margin-right:5px;font-size:11px;font-weight:400;color:var(--muted)}

.user-account-content--custom > form > .u-card + .u-card,
.user-account-content--custom > .u-card + .u-card,
.user-account-content--custom > .u-card + .u-recommend{
  margin-top:14px;
}

/* --------------------------------------------------------------------------
   11. お気に入り一覧
   -------------------------------------------------------------------------- */
.u-fav-list{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.u-fav{position:relative;display:flex;flex-direction:column;height:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden;transition:border-color .2s var(--ease)}
.u-fav:hover{border-color:var(--brand)}
.u-fav__media{position:relative;display:block;overflow:hidden;background:var(--bg)}
.u-fav__media img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .35s var(--ease)}
.u-fav__remove{
  position:absolute;
  top:8px;
  right:8px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  cursor:pointer;
  transition:transform .18s var(--ease);
}
.u-fav__remove .bi{font-size:14px;color:var(--red)}
.u-fav__body{display:flex;flex-direction:column;flex:1 1 auto;gap:4px;padding:10px 11px 12px}
.u-fav__brand{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.u-fav__name{font-size:12px;font-weight:600;line-height:1.45;color:var(--ink)}
.u-fav__name a:hover{color:var(--cta)}
.u-fav__stock{font-size:10.5px;color:#3f8f66}
.u-fav__stock--out{color:var(--red)}
.u-fav__price{margin-top:auto;padding-top:5px;font-size:14px;font-weight:700;color:var(--navy)}
.u-fav__price del{margin-right:6px;font-size:11px;font-weight:400;color:var(--muted)}
.u-fav__actions{display:flex;gap:7px;margin-top:8px}
.u-fav__actions .btn{flex:1 1 0;padding-inline:6px;font-size:11px}

/* --------------------------------------------------------------------------
   12. 住所
   -------------------------------------------------------------------------- */
.u-addr-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.u-addr{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.u-addr:hover{border-color:var(--line-strong)}
.u-addr.is-default{border-color:var(--cta);box-shadow:0 0 0 2px rgba(30,123,239,.10)}
.u-addr__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.u-addr__name{font-size:13.5px;font-weight:700;color:var(--navy)}
.u-addr__badge{
  padding:1px 8px;
  border-radius:999px;
  background:var(--blue);
  color:var(--cta);
  font-size:10px;
  font-weight:700;
}
.u-addr__lines{font-size:12px;line-height:1.75;color:var(--ink)}
.u-addr__lines span{display:block;color:var(--muted);font-size:11.5px}
.u-addr__actions{display:flex;gap:8px;margin-top:auto;padding-top:6px}
.u-addr__actions form{display:contents}
.u-addr__actions .btn{padding-inline:14px}
.u-addr--add{
  align-items:center;
  justify-content:center;
  min-height:150px;
  width:100%;
  border-style:dashed;
  color:var(--muted);
  text-align:center;
  font:inherit;
  cursor:pointer;
}
.u-addr--add:hover{border-color:var(--cta);color:var(--cta)}
.u-addr__addicon{font-size:26px;color:currentColor}
.u-addr__addtext{margin-top:7px;font-size:12.5px;font-weight:600}

/* --------------------------------------------------------------------------
   13. ポイント・レビュー
   -------------------------------------------------------------------------- */
.u-points{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}
.u-point{
  position:relative;
  overflow:hidden;
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
}
.u-point__label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--muted)}
.u-point__label .bi{font-size:14px}
.u-point__value{margin-top:8px;font-size:24px;font-weight:700;line-height:1.15;color:var(--navy)}
.u-point__value small{margin-left:3px;font-size:11.5px;font-weight:600;color:var(--muted)}
.u-point__note{margin-top:6px;font-size:10.5px;line-height:1.55;color:var(--muted)}
.u-point--balance{border-color:transparent;background:linear-gradient(150deg,#2e4a6b,#3b6ba6 62%,#4b82c4);color:#fff}
.u-point--balance .u-point__label,.u-point--balance .u-point__note{color:rgba(255,255,255,.82)}
.u-point--balance .u-point__value{color:#fff}
.u-point--balance .u-point__value small{color:rgba(255,255,255,.8)}
.u-point--earn .u-point__label .bi{color:#3f8f66}
.u-point--use .u-point__label .bi{color:var(--red)}
.u-point--earn{border-top:3px solid #7bc39a}
.u-point--use{border-top:3px solid #f0a9a5}

/* ポイント明細 */
.u-history{padding:2px 0}
.u-history__row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 15px;
  border-bottom:1px solid var(--line);
}
.u-history__row:last-child{border-bottom:0}
.u-history__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--blue);
}
.u-history__icon .bi{font-size:17px;color:var(--cta)}
.u-history__row--use .u-history__icon{background:#fdeceb}
.u-history__row--use .u-history__icon .bi{color:var(--red)}
.u-history__info{min-width:0;flex:1 1 auto}
.u-history__title{font-size:12.5px;font-weight:600;color:var(--ink)}
.u-history__date{margin-top:2px;font-size:10.5px;color:var(--muted)}
.u-history__value{flex:0 0 auto;font-size:14px;font-weight:700;color:#3f8f66}
.u-history__row--use .u-history__value{color:var(--red)}
/* その時点の残高（ポイントの流水で使用） */
.u-history__balance{
  flex:0 0 auto;
  min-width:74px;
  margin-left:6px;
  text-align:right;
  font-size:11.5px;
  color:var(--muted);
}

@media (max-width:575.98px){
  .u-history__row{gap:9px;padding:11px 12px}
  .u-history__balance{min-width:0;font-size:11px}
}

/* レビュー */
/* 投稿したレビュー：外側に枠を重ねず、各レビューのカードだけを見せる */
.u-review-list{display:grid;gap:14px}
.u-review{
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
}
.u-review__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px 12px;
}
.u-review__title{font-size:13px;font-weight:700;color:var(--navy)}
.u-review__stars{display:flex;align-items:center;gap:8px}
.u-review__stars .rating{font-size:14px;letter-spacing:2px}
.u-review__score{font-size:11.5px;font-weight:700;color:var(--navy)}
.u-review__date{font-size:10.5px;color:var(--muted)}
.u-review__text{margin-top:9px;font-size:12px;line-height:1.75;color:var(--ink)}
.u-review__product{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:11px;
  padding-top:11px;
  border-top:1px solid var(--line);
}
.u-review__thumb{flex:0 0 auto;width:46px;height:46px;border:1px solid var(--line);border-radius:var(--radius-sm);object-fit:cover;background:var(--bg)}
.u-review__pname{font-size:11.5px;line-height:1.5;color:var(--ink)}
.u-review__pname a:hover{color:var(--cta)}
.u-review__pmeta{font-size:10.5px;color:var(--muted)}
.u-review__foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px}
.u-review__pts{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 10px;
  border-radius:999px;
  background:#e8f5ec;
  color:#2f7d4f;
  font-size:10.5px;
  font-weight:700;
}
/* 投稿した写真（1件のレビューに複数枚） */
.u-review__photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.u-review__photo{
  display:block;
  width:78px;
  height:78px;
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
  cursor:pointer;
}
.u-review__photo img{width:100%;height:100%;object-fit:cover}
.u-review__photo:hover{border-color:var(--cta)}
.u-review__photo:focus-visible{outline:2px solid var(--cta);outline-offset:2px}

/* --------------------------------------------------------------------------
   15. レビューを書く（review-write.html）
   -------------------------------------------------------------------------- */
.u-rw{display:block}

/* 対象商品（注文履歴から引き継ぐ） */
.u-rw__product{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--blue);
}
.u-rw__thumb{
  flex:0 0 auto;
  width:72px;
  height:72px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--white);
  object-fit:cover;
}
.u-rw__brand{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.u-rw__name{font-size:13px;font-weight:600;line-height:1.5;color:var(--ink)}
.u-rw__meta{margin-top:3px;font-size:11px;color:var(--muted)}

/* フィールド */
.u-rw__field{margin-top:18px}
.u-rw__label{display:flex;align-items:center;gap:7px;margin-bottom:8px;font-size:12.5px;font-weight:700;color:var(--navy)}
.u-rw__req{padding:1px 6px;border-radius:3px;background:#fdeceb;color:var(--red);font-size:10px;font-weight:700}
.u-rw__opt{padding:1px 6px;border-radius:3px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:600}
.u-rw__input{border-color:var(--line-strong);font-size:13px}
.u-rw__input:focus{border-color:var(--cta);box-shadow:0 0 0 3px rgba(30,123,239,.14)}
.u-rw__input[aria-invalid="true"]{border-color:var(--red);background:#fffafa}
.u-rw__textarea{min-height:150px;line-height:1.8;resize:vertical}
.u-rw__hint{margin-top:6px;font-size:10.5px;color:var(--muted)}
.u-rw__error{margin-top:6px;font-size:11px;color:var(--red)}

/* 総合評価（星の入力） */
.u-rw__stars{display:flex;align-items:center;gap:4px}
.u-rw__star-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.u-rw__star{font-size:28px;line-height:1;color:#dbe4ee;cursor:pointer}
.u-rw__star.is-on{color:var(--gold)}
.u-rw__star-input:focus-visible + .u-rw__star{outline:2px solid var(--cta);outline-offset:3px;border-radius:5px}

/* 写真（複数） */
.u-rw__photos{display:flex;flex-wrap:wrap;gap:9px}
.u-rw__photos:not(:empty){margin-bottom:10px}
.u-rw__photo{
  position:relative;
  width:86px;
  height:86px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
}
.u-rw__photo img{width:100%;height:100%;object-fit:cover}
.u-rw__photo-del{
  position:absolute;
  top:3px;
  right:3px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(46,74,107,.8);
  color:#fff;
  font-size:11px;
  line-height:1;
  cursor:pointer;
}
.u-rw__photo-del:hover{background:var(--red)}

/* ファイル選択（label + 非表示の input） */
.u-rw__picker{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.u-rw__picker-btn{margin:0}
.u-rw__file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* 添付ファイルの一覧 */
.u-rw__files{display:flex;flex-direction:column;gap:6px}
.u-rw__files:not(:empty){margin-bottom:10px}
.u-rw__file-row{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--white);
  font-size:11.5px;
}
.u-rw__file-row .bi{flex:0 0 auto;color:var(--muted)}
.u-rw__file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-rw__file-size{flex:0 0 auto;color:var(--muted)}
.u-rw__file-del{
  margin-left:auto;
  flex:0 0 auto;
  padding:2px 8px;
  border:0;
  background:none;
  color:var(--muted);
  font-size:11px;
  cursor:pointer;
}
.u-rw__file-del:hover{color:var(--red)}

/* 投稿完了（デモ） */
.u-rw__actions{display:flex;flex-wrap:wrap;gap:9px}
.u-rw-done{padding:34px 20px;text-align:center}
.u-rw-done__icon{font-size:40px;color:#3f8f66}
.u-rw-done__title{margin-top:12px;font-size:16px;font-weight:700;color:var(--navy)}
.u-rw-done__text{margin-top:8px;font-size:12.5px;line-height:1.8;color:var(--muted)}
.u-rw-done__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:18px}

@media (max-width:575.98px){
  .u-rw__star{font-size:24px}
  .u-rw__photo{width:72px;height:72px}
  .u-rw__picker-btn{width:100%;justify-content:center}
  .u-rw-done__actions .btn{width:100%}
}

/* --------------------------------------------------------------------------
   14. メール配信設定（スイッチ）
   -------------------------------------------------------------------------- */
.u-switch-list{padding:2px 15px}
.u-switch{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.u-switch:last-child{border-bottom:0}
.u-switch__info{min-width:0}
.u-switch__title{display:block;font-size:12.5px;font-weight:700;color:var(--navy);cursor:pointer}
.u-switch__text{margin-top:3px;font-size:11px;line-height:1.6;color:var(--muted)}
.u-switch__ctrl{flex:0 0 auto}
.u-switch__ctrl .form-check{margin:0;min-height:auto}
.u-switch__ctrl .form-check-input{
  width:44px;
  height:24px;
  margin:0;
  border-color:var(--line-strong);
  background-color:var(--white);
  cursor:pointer;
  transition:background-color .2s var(--ease),border-color .2s var(--ease);
}
.u-switch__ctrl .form-check-input:checked{background-color:var(--cta);border-color:var(--cta)}
.u-switch__ctrl .form-check-input:focus{border-color:var(--cta);box-shadow:0 0 0 3px rgba(30,123,239,.16)}
.u-switch__ctrl .form-check-input:disabled{opacity:.5;cursor:not-allowed}
.u-switch__tag{
  margin-left:7px;
  padding:1px 7px;
  border-radius:3px;
  background:var(--blue);
  color:var(--cta);
  font-size:9.5px;
  font-weight:700;
  vertical-align:middle;
}

/* --------------------------------------------------------------------------
   14b. 配送状況（タイムライン）・キーと値の一覧
   -------------------------------------------------------------------------- */
.u-track{padding:2px 0 0}
.u-track__step{position:relative;display:flex;gap:13px;padding-bottom:18px}
.u-track__step:last-child{padding-bottom:0}
.u-track__step:not(:last-child)::before{
  content:"";
  position:absolute;
  left:12px;
  top:27px;
  bottom:0;
  width:2px;
  background:var(--line);
}
.u-track__step.is-done:not(:last-child)::before{background:var(--cta)}
.u-track__dot{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:26px;
  height:26px;
  border:2px solid var(--line-strong);
  border-radius:50%;
  background:var(--white);
}
.u-track__dot .bi{font-size:13px;color:var(--line-strong)}
.u-track__step.is-done .u-track__dot{border-color:var(--cta);background:var(--cta)}
.u-track__step.is-done .u-track__dot .bi{color:#fff}
.u-track__step.is-current .u-track__dot{border-color:var(--cta)}
.u-track__step.is-current .u-track__dot .bi{color:var(--cta)}
.u-track__body{min-width:0;padding-top:2px}
.u-track__title{font-size:12.5px;font-weight:700;color:var(--navy)}
.u-track__step:not(.is-done):not(.is-current) .u-track__title{color:var(--muted);font-weight:600}
.u-track__time{margin-top:2px;font-size:10.5px;color:var(--muted)}
.u-track__text{margin-top:4px;font-size:11px;line-height:1.65;color:var(--muted)}

.u-kv{display:grid;grid-template-columns:118px 1fr;gap:9px 14px;font-size:12px}
.u-kv dt{color:var(--muted)}
.u-kv dd{margin:0;color:var(--ink);word-break:break-all}
.u-kv dd b{color:var(--navy)}
.u-copy{
  margin-left:7px;
  padding:2px 9px;
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  background:var(--white);
  color:var(--cta);
  font-size:10px;
  font-weight:700;
  vertical-align:middle;
  cursor:pointer;
}
.u-copy:hover{background:var(--blue);border-color:var(--cta)}

/* サブ見出し（カード内のセクション分け） */
.u-modal-title{font-size:15px;font-weight:700;color:var(--navy)}
.u-modal .modal-content{border:0;border-radius:var(--radius)}
.u-modal .modal-header{padding:14px 16px}
.u-modal .modal-body{padding:16px}
.u-modal .modal-footer{padding:12px 16px;background:var(--bg)}
.u-modal__text{margin:0;font-size:12.5px;line-height:1.8;color:var(--ink)}

/* --------------------------------------------------------------------------
   16. プロフィール写真（アカウント詳細）
   ・未設定のときは、お名前の頭文字を表示する
   -------------------------------------------------------------------------- */
.u-avatar{display:flex;align-items:center;gap:18px}
.u-avatar__preview{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:88px;
  height:88px;
  overflow:hidden;
  border:2px solid var(--line);
  border-radius:50%;
  background:linear-gradient(150deg,#2e4a6b 0%,#3b6ba6 60%,#4b82c4 100%);
  color:#fff;
  font-size:32px;
  font-weight:700;
  line-height:1;
}
.u-avatar__preview img{width:100%;height:100%;object-fit:cover}
.u-avatar__side{min-width:0}
.u-avatar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.u-avatar__actions .btn .bi{font-size:15px}
.u-avatar__file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.u-avatar__hint{margin-top:10px;font-size:11px;line-height:1.7;color:var(--muted)}
.u-avatar__error{margin-top:8px;font-size:11px;color:var(--red)}

@media (max-width:767.98px){
  .u-avatar{flex-direction:column;align-items:flex-start;gap:14px}
  .u-avatar__actions{width:100%}
  .u-avatar__actions .btn{flex:1 1 auto;justify-content:center}
}

.u-sub{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.u-sub__title{font-size:13px;font-weight:700;color:var(--navy)}
.u-sub__note{font-size:10.5px;color:var(--muted)}

/* フォームの2カラム配置 */
.u-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.u-form-grid--full{grid-column:1 / -1}
.addr-modal .modal-content{border:0;border-radius:var(--radius)}
.addr-modal .modal-body{padding:18px}
.addr-modal .modal-footer{padding:14px 18px}
@media (max-width:575.98px){
  .u-form-grid{grid-template-columns:1fr}
  .u-kv{grid-template-columns:96px 1fr}
}

/* --------------------------------------------------------------------------
   15. ブログ（トップページの .post-card と同じ見た目の共通カード）
   -------------------------------------------------------------------------- */
.u-rail__wrap{position:relative}
.u-rail{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - var(--gap) * 4) / 5);
  gap:var(--gap);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding-bottom:2px;
}
.u-rail::-webkit-scrollbar{display:none}
.u-rail > *{scroll-snap-align:start}
.u-rail__nav{
  position:absolute;
  top:38%;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--white);
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:background .18s var(--ease),opacity .18s var(--ease);
}
.u-rail__nav:hover{background:var(--blue)}
.u-rail__nav .bi{font-size:15px;color:var(--navy)}
.u-rail__nav--prev{left:-14px}
.u-rail__nav--next{right:-14px}
.u-rail__nav[disabled]{opacity:.3;cursor:default}

.u-post{
  display:block;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  transition:border-color .2s var(--ease);
}
.u-post:hover{border-color:var(--line-strong)}
.u-post__media{display:block;overflow:hidden}
.u-post__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .35s var(--ease)}
.u-post__body{display:block;padding:10px 12px 12px}
.u-post__meta{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}
.u-post__tag{padding:1px 7px;border-radius:3px;background:var(--blue);color:var(--navy);font-weight:600}
.u-post__title{display:block;margin-top:6px;font-size:12px;font-weight:700;line-height:1.5;color:var(--ink)}

/* --------------------------------------------------------------------------
   16. レスポンシブ
   -------------------------------------------------------------------------- */
@media (max-width:1199.98px){
  .u-fav-list{grid-template-columns:repeat(3,1fr)}
  .u-rail{grid-auto-columns:calc((100% - var(--gap) * 3) / 4)}
}

@media (max-width:991.98px){
  /* position は Bootstrap の .offcanvas-lg（lg未満で fixed）に任せる。
     ここで static を指定するとドロワーが本文に押し出されてしまう。 */
  .user-side__inner{padding-top:2px}
  .u-stats{grid-template-columns:repeat(3,1fr)}
  .u-fav-list{grid-template-columns:repeat(3,1fr)}
  .u-rail{grid-auto-columns:calc((100% - var(--gap) * 2) / 3)}
  .u-rail__nav{display:none}
  .u-points{grid-template-columns:1fr 1fr}
  .u-point--balance{grid-column:1 / -1}
}

@media (max-width:767.98px){
  .u-hello{flex-direction:column;align-items:flex-start}
  .u-quick{grid-template-columns:1fr}
  .u-addr-list{grid-template-columns:1fr}
  .u-rail{grid-auto-columns:calc((100% - var(--gap)) / 2)}
}

@media (max-width:575.98px){
  .user-head__title{font-size:18px}
  .u-hello{padding:17px}
  .u-hello__title{font-size:17px}
  .u-stats{grid-template-columns:1fr}
  .u-fav-list{grid-template-columns:repeat(2,1fr)}
  .u-points{grid-template-columns:1fr}
  .u-orders{padding:11px}
  .u-rail{grid-auto-columns:85%}
  .u-order__item{gap:10px;padding:12px}
  .u-order__thumb{width:56px;height:56px}
  .u-order__sum{font-size:12.5px}
}
