/* =====================================================================
   命式戦略鑑定 ── Premium 内部ページ用スタイル
   （premium.css と併用。料金 / 紹介 / ログイン / マイページ）
   ===================================================================== */

/* ページ上部の夜空バンド */
.page-head{position:relative;overflow:hidden;color:var(--on-dark);padding:8.5rem 0 3.5rem;text-align:center;
  background:radial-gradient(900px 500px at 70% 0%,rgba(40,71,126,.5),transparent 60%),linear-gradient(160deg,var(--navy-900),var(--navy-800) 60%,var(--navy-700))}
.page-head .starfield{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(1.3px 1.3px at 20% 30%,rgba(255,255,255,.85),transparent),radial-gradient(1.1px 1.1px at 70% 24%,rgba(235,217,166,.85),transparent),radial-gradient(1.4px 1.4px at 45% 64%,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 88% 56%,rgba(255,255,255,.55),transparent);animation:twinkle 7s ease-in-out infinite alternate}
.page-head .eyebrow{font-family:var(--latin);font-size:.8rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-2);display:inline-flex;align-items:center;gap:.8rem;position:relative;z-index:2}
.page-head .eyebrow::before,.page-head .eyebrow::after{content:"";width:30px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.page-head .eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent)}
.page-head h1{position:relative;z-index:2;font-family:var(--mincho);font-size:clamp(1.8rem,4vw,2.7rem);letter-spacing:.12em;margin:1.1rem 0 .8rem;color:var(--on-dark)}
.page-head p{position:relative;z-index:2;color:var(--on-dark-muted);max-width:38rem;margin:0 auto;font-size:.96rem;
  padding:0 1.25rem}  /* スマホで文章が画面の端に貼りつかないよう左右に余白 */

.lead-c{color:var(--ink-soft);text-align:center;max-width:40rem;margin:1rem auto 0;line-height:2}

/* =====================================================================
   料金（鑑定オプション一覧）
   ===================================================================== */
.opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.opt-card{position:relative;background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:2rem 1.7rem;box-shadow:var(--shadow-soft);transition:transform .4s,box-shadow .4s;display:flex;flex-direction:column}
.opt-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card)}
.opt-card .emb{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;margin-bottom:1.1rem}
.opt-card .emb svg{width:24px;height:24px}
.emb.e-navy{background:linear-gradient(150deg,#27406e,#13284c)}
.emb.e-rose{background:linear-gradient(150deg,#9a566c,#5e2c3c)}
.emb.e-green{background:linear-gradient(150deg,#456a52,#21382a)}
.emb.e-gold{background:linear-gradient(150deg,#c4a052,#7e6326)}
.emb.e-purple{background:linear-gradient(150deg,#6a588f,#36285a)}
.emb.e-dark{background:linear-gradient(150deg,#3a3f54,#1c1f2c)}
.opt-card h3{font-size:1.2rem;letter-spacing:.05em;margin-bottom:.2rem}
.opt-card .en{font-family:var(--latin);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.9rem}
.opt-card p{font-size:.84rem;color:var(--ink-soft);line-height:1.85;flex:1;margin-bottom:1rem}
.opt-card .meta{font-size:.74rem;color:var(--muted);margin-bottom:1rem;display:flex;gap:1rem;flex-wrap:wrap}
.opt-card .price{font-family:var(--mincho);font-size:1.6rem;color:var(--ink);margin-bottom:1.1rem}
.opt-card .price small{font-size:.6rem;color:var(--muted)}

.price-note{font-size:.84rem;color:var(--ink-soft);margin-top:1.6rem;line-height:2;max-width:48rem}
.price-note strong{color:var(--gold-deep)}

/* 料金表（補助） */
.price-table{width:100%;border-collapse:collapse;margin-top:2.4rem;border:1px solid var(--card-line);border-radius:10px;overflow:hidden;background:var(--card)}
.price-table th,.price-table td{padding:1.05rem 1.2rem;text-align:left;border-bottom:1px solid var(--card-line);font-size:.9rem}
.price-table thead th{background:linear-gradient(160deg,var(--navy-700),var(--navy-900));color:var(--on-dark);font-family:var(--mincho);font-weight:500;letter-spacing:.08em}
.price-table tbody tr:hover{background:rgba(196,160,82,.06)}
.price-table td.m{font-family:var(--mincho);font-size:1rem}
.price-table td.m small{display:block;color:var(--muted);font-size:.72rem;font-family:var(--gothic);margin-top:.2rem}
.price-table td.p{font-family:var(--mincho);color:var(--gold-deep);font-size:1.05rem;white-space:nowrap;text-align:right}

/* FAQ */
.faq{max-width:780px;margin:3rem auto 0;border-top:1px solid var(--card-line)}
.faq-item{border-bottom:1px solid var(--card-line)}
.faq-q{width:100%;text-align:left;padding:1.4rem .4rem;font-family:var(--mincho);font-size:1.04rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--ink)}
.faq-q .pm{color:var(--gold-deep);font-size:1.3rem;transition:transform .3s;flex:none}
.faq-item.open .faq-q .pm{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{padding:0 .4rem 1.4rem;color:var(--ink-soft);font-size:.9rem;line-height:2}

/* =====================================================================
   ログイン画面 v2（リファレンス準拠：左イントロ＋右カード）
   ===================================================================== */
.login-page{min-height:100vh;display:flex;flex-direction:column;color:var(--on-dark);position:relative;overflow-x:hidden;background-color:var(--navy-900);
  background-image:linear-gradient(110deg, rgba(4,10,36,.82) 0%, rgba(4,10,36,.5) 34%, rgba(4,10,36,.2) 60%, rgba(4,10,36,.05) 100%), url('../img/login-bg.png');
  background-size:cover,cover;background-position:left bottom,left bottom;background-repeat:no-repeat}
.login-main{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.4rem);align-items:start;width:min(100% - 3rem,1180px);margin:0 auto;padding:clamp(6.5rem,11vh,9rem) 0 4rem;position:relative;z-index:2}
.login-intro h1{font-family:var(--mincho);font-size:clamp(2rem,3.8vw,2.9rem);line-height:1.45;letter-spacing:.04em;margin-bottom:1.4rem}
.login-intro h1 .gold{color:var(--gold-2)}
.login-intro .lead{color:var(--on-dark-muted);font-size:.98rem;line-height:2.05;max-width:30rem;margin-bottom:2.4rem;word-break:auto-phrase}
.login-features{display:grid;gap:1.5rem}
.lf-item{display:flex;gap:1.1rem;align-items:center}
.lf-ico{width:56px;height:56px;flex:none;border-radius:50%;border:1px solid rgba(196,160,82,.5);display:grid;place-items:center;color:var(--gold-2);background:rgba(196,160,82,.05)}
.lf-ico svg{width:26px;height:26px}
.lf-item h5{font-family:var(--mincho);font-size:1.04rem;color:var(--on-dark);margin-bottom:.2rem;letter-spacing:.03em}
.lf-item p{font-size:.8rem;color:var(--on-dark-muted);line-height:1.7;word-break:auto-phrase}

.login-card-col{display:flex;flex-direction:column;gap:1.2rem}
.login-card{background:linear-gradient(180deg,#fff,var(--cream-2));border-radius:18px;box-shadow:0 34px 76px -30px rgba(0,0,0,.65);padding:clamp(1.6rem,3vw,2.4rem);color:var(--ink)}
.login-card .card-head{text-align:center;margin-bottom:1.8rem}
.login-card .card-head h2{font-family:var(--mincho);font-size:1.6rem;letter-spacing:.08em}
.login-card .card-head p{font-family:var(--mono,inherit);font-size:.82rem;color:var(--ink-soft);margin-top:.5rem;letter-spacing:.04em}
.login-card .card-head::after{content:"";display:block;width:46px;height:2px;background:linear-gradient(90deg,var(--gold-3),var(--gold-deep));margin:1rem auto 0;border-radius:2px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--cream);border-radius:11px;padding:5px;margin-bottom:1.8rem}
.auth-tabs button{padding:.9rem;font-family:var(--mincho);font-size:1rem;color:var(--ink-soft);border-radius:8px;transition:all .35s;letter-spacing:.04em}
.auth-tabs button.active{background:linear-gradient(160deg,var(--navy-700),var(--navy-900));color:#fff;box-shadow:0 10px 22px -10px rgba(10,18,40,.6)}
.lfield{margin-bottom:1.3rem}
.lfield label{display:block;font-family:var(--mincho);font-size:.88rem;margin-bottom:.5rem;color:var(--ink);letter-spacing:.03em}
.lfield .inp{position:relative;display:flex;align-items:center}
.lfield input{width:100%;padding:.95rem 1rem;border:1px solid var(--card-line);border-radius:9px;font-family:var(--gothic);font-size:.95rem;background:#fff;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.lfield input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,160,82,.18)}
.lfield .eye{position:absolute;right:1rem;color:var(--muted);background:none;display:grid;place-items:center}
.lrow{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.84rem;margin-bottom:1.5rem;flex-wrap:wrap}
.lrow .keep{display:flex;gap:.5rem;align-items:center;color:var(--ink-soft);font-family:var(--gothic);cursor:pointer}
.lrow .keep input{width:18px;height:18px;accent-color:var(--gold-deep)}
.lrow a{color:#6a5fa0;display:inline-flex;align-items:center;gap:.2rem}
.login-error{margin:0 0 1rem;padding:.8rem 1rem;border-radius:8px;background:rgba(176,58,58,.08);border:1px solid rgba(176,58,58,.4);color:#9c2a2a;font-size:.86rem;line-height:1.7}
.btn-login{width:100%;justify-content:center;gap:.6rem;padding:1.15rem;font-size:1.08rem}
.signup-link{display:flex;align-items:center;gap:.3rem;justify-content:center;color:#6a5fa0;font-size:.92rem;margin:1.3rem auto 0;width:fit-content;border-bottom:1px solid rgba(106,95,160,.35);padding-bottom:3px}
.login-divider{display:flex;align-items:center;gap:1rem;margin:1.8rem 0 1.1rem;color:var(--gold-deep);font-family:var(--mincho);font-size:.86rem;letter-spacing:.06em}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--card-line)}
.firsttime-note{text-align:center;color:var(--ink-soft);font-size:.88rem;line-height:1.95;margin-bottom:1.3rem}
.btn-signup{width:100%;justify-content:center;gap:.6rem;padding:1rem;font-size:1rem;border:1px solid var(--gold);color:var(--gold-deep);background:transparent}
.btn-signup:hover{background:var(--gold);color:#fff}
.security-note{position:relative;background:rgba(255,255,255,.05);border:1px solid rgba(196,160,82,.22);border-radius:14px;padding:1.3rem 1.5rem;display:flex;gap:1.1rem;align-items:center;color:var(--on-dark-muted);font-size:.84rem;line-height:1.7;backdrop-filter:blur(4px);overflow:hidden}
.security-note .sec-ico{width:38px;height:38px;color:var(--gold-2);flex:none}
.login-foot{position:relative;z-index:2;border-top:1px solid rgba(196,160,82,.18);padding:1.6rem 0}
.login-foot .wrap{width:min(100% - 3rem,1180px);margin:0 auto;text-align:center}
.login-foot .links{display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap;font-size:.82rem;color:var(--on-dark-muted)}
.login-foot .links a:hover{color:var(--gold-2)}
.login-foot .brand-c{margin-top:1.2rem;font-family:var(--mincho);letter-spacing:.2em;color:var(--on-dark)}
.login-foot .copy{font-family:var(--latin);font-size:.66rem;color:var(--on-dark-muted);letter-spacing:.06em;margin-top:.3rem}
@media (max-width:900px){
  .login-main{grid-template-columns:1fr;gap:2rem;padding-top:6.5rem}
  .login-intro{text-align:center}
  .login-intro .lead{margin-inline:auto}
  .login-features{max-width:30rem;margin:0 auto}
  .lf-item{text-align:left}
}

/* =====================================================================
   ログイン（認証）旧
   ===================================================================== */
.auth-page{min-height:100svh;display:grid;place-items:center;padding:7rem 1.25rem 4rem;position:relative;overflow:hidden;
  background:radial-gradient(900px 600px at 50% 20%,rgba(40,71,126,.5),transparent 60%),linear-gradient(160deg,var(--navy-900),var(--navy-800) 60%,var(--navy-700))}
.auth-page .starfield{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1.3px 1.3px at 22% 26%,rgba(255,255,255,.8),transparent),radial-gradient(1.2px 1.2px at 72% 22%,rgba(235,217,166,.85),transparent),radial-gradient(1.3px 1.3px at 48% 70%,rgba(255,255,255,.6),transparent);animation:twinkle 7s ease-in-out infinite alternate}
.auth-card{position:relative;z-index:2;width:min(100%,440px);background:var(--card);border-radius:14px;box-shadow:0 30px 70px -30px rgba(0,0,0,.6);padding:clamp(2rem,5vw,3rem);border:1px solid rgba(196,160,82,.3)}
.auth-card .topbar{height:3px;border-radius:3px;background:var(--grad-gold);margin:-.4rem 0 1.4rem}
.auth-card .a-mark{width:48px;height:48px;margin:0 auto 1rem;color:var(--gold-deep)}
.auth-card h1{text-align:center;font-size:1.5rem;letter-spacing:.08em}
.auth-card .sub{text-align:center;color:var(--ink-soft);font-size:.84rem;margin:.5rem 0 1.8rem}
.field{margin-bottom:1.2rem}
.field label{display:block;font-family:var(--mincho);font-size:.84rem;letter-spacing:.06em;color:var(--ink);margin-bottom:.5rem}
.field input{width:100%;padding:.9rem 1rem;font-family:var(--gothic);font-size:.95rem;border:1px solid var(--card-line);border-radius:6px;background:#fff;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,160,82,.18)}
.field-row{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;margin-bottom:1.5rem;color:var(--ink-soft)}
.field-row a{color:var(--gold-deep)}
.field-row label{display:flex;gap:.4rem;align-items:center;font-family:var(--gothic);margin:0}
.auth-note{text-align:center;margin-top:1.6rem;font-size:.83rem;color:var(--ink-soft);line-height:1.9}
.auth-note a{color:var(--gold-deep);border-bottom:1px solid rgba(196,160,82,.35)}
.auth-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem 0;color:var(--muted);font-size:.78rem}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--card-line)}

/* =====================================================================
   マイページ
   ===================================================================== */
.member-greet{position:relative;z-index:2}
.member-greet .who{font-family:var(--mincho);font-size:clamp(1.5rem,3vw,2rem);color:var(--on-dark)}
.member-greet .who b{color:var(--gold-2);font-weight:600}
.member-greet p{color:var(--on-dark-muted);margin-top:.4rem;font-size:.92rem}
.member-body{background:var(--cream);padding:clamp(2.5rem,5vw,4rem) 0 6rem;min-height:50vh}
.member-tabs{display:flex;gap:0;border-bottom:1px solid var(--card-line);margin-bottom:2.4rem;flex-wrap:wrap}
.member-tabs button{padding:.95rem 1.4rem;font-family:var(--mincho);font-size:.94rem;letter-spacing:.04em;color:var(--ink-soft);position:relative}
.member-tabs button.active{color:var(--ink)}
.member-tabs button.active::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--gold)}

.report-list{display:grid;gap:1rem}
.report-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.4rem;align-items:center;background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:1.5rem 1.7rem;box-shadow:var(--shadow-soft);transition:transform .35s,box-shadow .35s}
.report-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}
.report-card .seal{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(150deg,var(--navy-700),var(--navy-900));flex:none}
.report-card .seal svg{width:24px;height:24px}
.report-card h4{font-size:1.1rem;margin-bottom:.25rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.report-card .meta{font-size:.76rem;color:var(--muted)}
.report-card .actions{display:flex;gap:.5rem;flex-wrap:wrap}
.report-card .actions .btn{padding:.6rem 1.1rem;font-size:.82rem}
.badge{font-size:.66rem;padding:.2rem .65rem;border-radius:99px;letter-spacing:.06em;border:1px solid currentColor}
.badge-ready{color:#3f7a4c}.badge-soon{color:var(--gold-deep)}

.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.shop-card{background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:1.8rem 1.6rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.shop-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card)}
.shop-card .tag{font-family:var(--latin);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep)}
.shop-card h4{font-size:1.15rem;margin:.5rem 0 .6rem}
.shop-card p{font-size:.82rem;color:var(--ink-soft);line-height:1.8;flex:1}
.shop-card .price{font-family:var(--mincho);font-size:1.4rem;margin:1rem 0}

/* =====================================================================
   紹介
   ===================================================================== */
.ref-benefit{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;margin-top:3rem}
.ref-cell{background:var(--card);border:1px solid var(--card-line);border-radius:14px;padding:2.6rem 2rem;text-align:center;box-shadow:var(--shadow-soft)}
.ref-cell .k{font-family:var(--latin);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.ref-cell .amt{font-family:var(--mincho);font-size:2.8rem;color:var(--gold-deep);margin:.6rem 0}
.ref-cell h4{font-size:1.15rem}
.ref-cell p{font-size:.85rem;color:var(--ink-soft);margin-top:.6rem}
.ref-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3rem}
.ref-step{background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:2rem 1.5rem;text-align:center;box-shadow:var(--shadow-soft)}
.ref-step .n{font-family:var(--latin);font-size:2.4rem;color:var(--gold-deep);line-height:1}
.ref-step h4{font-size:1.05rem;margin:.6rem 0 .5rem}
.ref-step p{font-size:.82rem;color:var(--ink-soft);line-height:1.8}
.share-box{max-width:560px;margin:3rem auto 0;background:var(--card);border:1px solid rgba(196,160,82,.3);border-radius:14px;padding:2.4rem;text-align:center;box-shadow:var(--shadow-card)}
.share-link{display:flex;gap:0;margin-top:1.3rem;border:1px solid var(--card-line);border-radius:6px;overflow:hidden}
.share-link input{flex:1;padding:.85rem 1rem;border:none;font-size:.84rem;color:var(--ink-soft);background:#fff}
.share-link .btn{border-radius:0}
.share-social{display:flex;gap:.8rem;justify-content:center;margin-top:1.6rem}
.share-social a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--card-line);border-radius:50%;color:var(--gold-deep);transition:all .3s}
.share-social a:hover{background:var(--gold);color:#fff;transform:translateY(-3px)}

/* =====================================================================
   管理画面（運営用）
   ===================================================================== */
.admin-badge{font-family:var(--latin);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);border:1px solid var(--gold);padding:.2rem .55rem;border-radius:3px;margin-left:.7rem}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.2rem}
.stat{background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:1.3rem 1.4rem;box-shadow:var(--shadow-soft)}
.stat .k{font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em}
.stat .v{font-family:var(--mincho);font-size:1.9rem;margin-top:.3rem;line-height:1}
.stat .v small{font-size:.58rem;color:var(--muted)}
.stat.accent .v{color:var(--gold-deep)}
.admin-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.4rem;align-items:start}
.panel{background:var(--card);border:1px solid var(--card-line);border-radius:14px;padding:1.6rem;box-shadow:var(--shadow-soft)}
.panel h3{font-family:var(--mincho);font-size:1.12rem;margin-bottom:1.1rem;display:flex;align-items:center;gap:.5rem}
.panel h3 .ic{width:20px;height:20px;color:var(--gold-deep)}
.admin-table{width:100%;border-collapse:collapse;font-size:.84rem}
.admin-table th{text-align:left;font-family:var(--mincho);font-weight:500;color:var(--ink-soft);font-size:.76rem;letter-spacing:.04em;padding:.6rem .7rem;border-bottom:1px solid var(--card-line)}
.admin-table td{padding:.85rem .7rem;border-bottom:1px solid var(--card-line);vertical-align:middle}
.admin-table tr:hover td{background:rgba(196,160,82,.05)}
.admin-table .mname{font-family:var(--mincho);font-size:.92rem}
.status-pill{font-size:.64rem;padding:.2rem .55rem;border-radius:99px;border:1px solid currentColor;letter-spacing:.04em;white-space:nowrap}
.st-new{color:#b06a2e}.st-wip{color:var(--gold-deep)}.st-pub{color:#3f7a4c}
.row-act{font-family:var(--mincho);font-size:.8rem;color:var(--gold-deep);white-space:nowrap}
.row-act:hover{text-decoration:underline}
.upload-box{border:1.5px dashed rgba(196,160,82,.55);border-radius:10px;padding:1.7rem 1rem;text-align:center;color:var(--ink-soft);background:rgba(196,160,82,.05);cursor:pointer;transition:background .3s;font-size:.84rem}
.upload-box:hover{background:rgba(196,160,82,.11)}
.upload-box .ic{width:34px;height:34px;margin:0 auto .6rem;color:var(--gold-deep)}
.upload-box b{color:var(--gold-deep);font-weight:500}
.admin-field{margin-bottom:1rem}
.admin-field label{display:block;font-family:var(--mincho);font-size:.8rem;color:var(--ink);margin-bottom:.4rem}
.admin-field select,.admin-field input{width:100%;padding:.75rem .9rem;border:1px solid var(--card-line);border-radius:6px;font-family:var(--gothic);font-size:.88rem;background:#fff;color:var(--ink)}
.admin-note{font-size:.76rem;color:var(--ink-soft);line-height:1.7;background:rgba(196,160,82,.07);border-radius:8px;padding:.8rem 1rem;margin-top:1rem}

@media (max-width:1000px){
  .admin-stats{grid-template-columns:1fr 1fr}
  .admin-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .admin-stats{grid-template-columns:1fr 1fr}
  .admin-table{font-size:.78rem}
}

/* footer links 中央寄せ調整（内部ページ） */
@media (max-width:1000px){
  .opt-grid,.shop-grid,.ref-steps{grid-template-columns:1fr 1fr}
  .ref-benefit{grid-template-columns:1fr}
}
@media (max-width:680px){
  .opt-grid,.shop-grid,.ref-steps{grid-template-columns:1fr}
  .report-card{grid-template-columns:1fr;text-align:center}
  .report-card .actions{justify-content:center}
  .report-card .seal{margin:0 auto}
}

/* =====================================================================
   マイページ 2.0（今日の占い／個別深掘りチャット／鑑定オプション4分類）
   ===================================================================== */
/* --- 今日の占い --- */
.daily-fortune{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1rem}
.daily-card{position:relative;background:linear-gradient(165deg,#fff,var(--cream-2));border:1px solid rgba(196,160,82,.4);border-radius:14px;padding:1.6rem 1.8rem 1.6rem 2rem;box-shadow:var(--shadow-soft);overflow:hidden}
.daily-card::before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:linear-gradient(180deg,var(--gold-3),var(--gold-deep))}
.daily-card .dc-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.daily-card .dc-title{font-family:var(--mincho);font-size:1.05rem;letter-spacing:.06em;color:var(--ink);display:flex;align-items:center;gap:.55rem}
.daily-card .dc-title svg{width:20px;height:20px;color:var(--gold-deep);flex:none}
.daily-card .dc-date{font-family:var(--latin);font-size:.74rem;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
.daily-card .dc-body{font-family:var(--mincho);font-size:1.02rem;line-height:1.95;color:var(--ink);letter-spacing:.02em}
.daily-card .dc-meta{display:flex;gap:1.6rem;margin-top:1.1rem;font-size:.8rem;color:var(--ink-soft)}
.daily-card .dc-meta b{color:var(--gold-deep);font-family:var(--mincho);margin-left:.3rem}
.daily-note{font-size:.76rem;color:var(--muted);margin:0 0 2.4rem}

/* --- 鑑定オプション 4分類 --- */
.opt-group{margin-bottom:2.6rem}
.opt-group:last-child{margin-bottom:0}
.opt-group-head{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem}
.opt-group-head .num{font-family:var(--latin);font-size:.82rem;letter-spacing:.04em;color:#fff;background:linear-gradient(150deg,var(--navy-700),var(--navy-900));width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none}
.opt-group-head h3{font-family:var(--mincho);font-size:1.18rem;letter-spacing:.05em;color:var(--ink)}
.opt-group-head .line{flex:1;height:1px;background:var(--card-line)}
.opt-item .price.tbd{color:var(--muted);font-size:1.15rem;display:flex;flex-direction:column}
.opt-item .price.tbd small{font-size:.68rem;color:var(--muted);margin-top:.2rem;letter-spacing:.04em}

/* --- 個別深掘りチャット --- */
.consult-intro{margin-bottom:1.6rem}
.consult-intro h3{font-family:var(--mincho);font-size:1.3rem;margin-bottom:.5rem}
.consult-intro p{color:var(--ink-soft);font-size:.9rem;line-height:1.9;max-width:46rem}
.consult-price{display:inline-flex;align-items:baseline;gap:.5rem;margin-top:1.1rem;font-family:var(--mincho);color:var(--ink);background:rgba(196,160,82,.1);border:1px solid rgba(196,160,82,.35);border-radius:99px;padding:.5rem 1.3rem}
/* ===== マイページ：残り回数バッジ・これまでのご相談・わたしの命式 ===== */
.ai-quota{display:inline-block;vertical-align:middle;margin-left:.7rem;font-family:var(--gothic);font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--gold-deep);background:rgba(196,160,82,.12);border:1px solid rgba(196,160,82,.4);border-radius:99px;padding:.3rem .9rem;white-space:nowrap}
.ai-quota.quota-low{color:#a04545;border-color:rgba(160,69,69,.45);background:rgba(160,69,69,.08)}

.chat-recent{max-width:720px;margin:0 0 1.2rem;background:rgba(255,255,255,.65);border:1px solid var(--card-line);border-radius:12px;padding:1rem 1.2rem}
.chat-recent .cr-head{font-family:var(--mincho);font-size:.9rem;letter-spacing:.06em;color:var(--gold-deep);margin-bottom:.6rem}
.cr-item{appearance:none;cursor:pointer;display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--card-line);padding:.65rem .2rem;font-family:var(--gothic);transition:background .25s}
.cr-item:first-child{border-top:none}
.cr-item:hover{background:rgba(196,160,82,.07)}
.cr-item .room{flex:none;font-size:.72rem;color:var(--gold-deep);border:1px solid rgba(196,160,82,.4);border-radius:99px;padding:.15rem .6rem}
.cr-item .q{flex:1;font-size:.8rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-item .n{flex:none;font-size:.7rem;color:var(--ink-soft)}

/* 命式カード（夜空×金） */
.mk-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:1.4rem;align-items:stretch;margin-bottom:2rem}
.mk-card{position:relative;background:linear-gradient(160deg,#141d3f,#0b1230);border:1px solid rgba(196,160,82,.55);border-radius:14px;padding:1.8rem 1.6rem;color:#EDE9DF;text-align:center;box-shadow:0 18px 40px -18px rgba(10,16,44,.55)}
.mk-card::before{content:"";position:absolute;inset:7px;border:1px solid rgba(196,160,82,.25);border-radius:9px;pointer-events:none}
.mk-eyebrow{font-family:var(--latin);font-size:.7rem;letter-spacing:.3em;color:var(--gold-2);text-transform:uppercase}
.mk-pillars{display:flex;justify-content:center;gap:.9rem;margin:1.3rem 0 1.1rem}
.mk-pillar{background:rgba(196,160,82,.08);border:1px solid rgba(196,160,82,.4);border-radius:8px;padding:.6rem .8rem .7rem;min-width:64px}
.mk-pillar .lbl{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--gold-2);margin-bottom:.35rem}
.mk-pillar .gz{font-family:var(--mincho);font-size:1.35rem;line-height:1.35;letter-spacing:.05em}
.mk-master{font-family:var(--mincho);font-size:.9rem;letter-spacing:.04em;line-height:1.9}
.mk-master b{color:var(--gold-2);font-size:1.15rem}
.mk-yojin{margin-top:.6rem;font-size:.76rem;color:rgba(237,233,223,.75);letter-spacing:.03em}
.mk-yojin b{color:var(--gold-2)}
.mk-side{background:rgba(255,255,255,.65);border:1px solid var(--card-line);border-radius:14px;padding:1.5rem 1.5rem;box-shadow:var(--shadow-soft)}
.mk-side h4{font-family:var(--mincho);font-size:1rem;letter-spacing:.06em;margin-bottom:.8rem}
.mk-go{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem}
.mk-go .k{flex:none;width:1.2em;font-family:var(--mincho);font-size:.88rem}
.mk-go .bar{flex:1;height:9px;background:rgba(31,37,66,.08);border-radius:99px;overflow:hidden}
.mk-go .bar i{display:block;height:100%;border-radius:99px}
.mk-go .v{flex:none;width:3em;text-align:right;font-size:.72rem;color:var(--ink-soft)}
.e-木{background:#5c9a6b}.e-火{background:#c96a52}.e-土{background:#c4a052}.e-金{background:#b8b3a6}.e-水{background:#4a6d9c}
.mk-lines{margin-top:1.1rem;border-top:1px solid var(--card-line);padding-top:1rem}
.mk-lines p{font-size:.74rem;color:var(--ink-soft);line-height:1.8;margin-bottom:.6rem}
.mk-lines b{color:var(--ink);font-size:.76rem}

/* 運気タイムライン */
.mk-h{font-family:var(--mincho);font-size:1.1rem;letter-spacing:.06em;margin:1.8rem 0 .4rem}
.mk-note{font-size:.74rem;color:var(--ink-soft);margin-bottom:.9rem}
.mk-timeline{display:flex;gap:.45rem;align-items:flex-end;max-width:640px}
.mk-tl{flex:1;text-align:center;cursor:default}
.mk-tl i{display:block;border-radius:6px 6px 3px 3px;transition:transform .25s}
.mk-tl:hover i{transform:translateY(-3px)}
.mk-tl.up i{height:64px;background:linear-gradient(180deg,#e8cf8e,var(--gold-deep))}
.mk-tl.flat i{height:36px;background:rgba(31,37,66,.16)}
.mk-tl.down i{height:22px;background:#3a4a74}
.mk-tl span{display:block;margin-top:.35rem;font-size:.66rem;color:var(--ink-soft);letter-spacing:.02em}
.mk-tl.now span{color:var(--gold-deep);font-weight:700}
.mk-tl.now i{outline:2px solid var(--gold-deep);outline-offset:2px}

/* 大運・ダシャーのチップ */
.mk-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.mk-chip{font-family:var(--gothic);font-size:.68rem;line-height:1.5;text-align:center;color:var(--ink-soft);background:rgba(255,255,255,.6);border:1px solid var(--card-line);border-radius:10px;padding:.45rem .7rem}
.mk-chip b{color:var(--ink);font-family:var(--mincho);font-size:.85rem}
.mk-chip small{font-size:.62rem}
.mk-chip.cur{border-color:var(--gold-deep);background:rgba(196,160,82,.12);color:var(--ink)}
.mk-chip.cur b{color:var(--gold-deep)}

@media (max-width:760px){
  .mk-grid{grid-template-columns:1fr}
  .mk-pillars{gap:.5rem}
  .mk-pillar{min-width:56px;padding:.5rem .55rem .6rem}
  .mk-timeline{gap:.3rem}
  .ai-quota{display:block;margin:.6rem 0 0;width:fit-content}
}

/* チャット相談：質問チップ（クリックで入力欄に挿入） */
.ai-suggest{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.1rem 0 .2rem}
.ai-chip{appearance:none;cursor:pointer;font-family:var(--mincho);font-size:.82rem;letter-spacing:.03em;color:var(--ink);background:#fff;border:1px solid rgba(196,160,82,.45);border-radius:99px;padding:.55rem 1.1rem;transition:background .3s,transform .3s,border-color .3s}
.ai-chip:hover{background:rgba(196,160,82,.12);border-color:var(--gold-deep);transform:translateY(-2px)}
.consult-price strong{font-size:1.4rem;color:var(--gold-deep)}
.consult-price small{font-size:.74rem;color:var(--ink-soft);font-family:var(--gothic)}
.chat-box{background:var(--card);border:1px solid var(--card-line);border-radius:14px;box-shadow:var(--shadow-soft);overflow:hidden;max-width:720px}
.chat-thread{padding:1.6rem;display:flex;flex-direction:column;gap:1rem;background:linear-gradient(180deg,var(--cream-2),#fff)}
.chat-msg{display:flex;gap:.8rem;align-items:flex-start;max-width:85%}
.chat-msg.from-me{margin-left:auto;flex-direction:row-reverse}
.chat-ava{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--mincho);font-size:.85rem;color:#fff;background:linear-gradient(150deg,var(--navy-700),var(--navy-900))}
.chat-msg.from-me .chat-ava{background:linear-gradient(150deg,var(--gold-3),var(--gold-deep))}
.chat-bubble{background:#fff;border:1px solid var(--card-line);border-radius:12px;padding:.9rem 1.1rem;font-size:.9rem;line-height:1.85;color:var(--ink)}
.chat-msg.from-me .chat-bubble{background:var(--navy-900);color:var(--on-dark);border-color:transparent}
.chat-form{border-top:1px solid var(--card-line);padding:1.2rem 1.4rem;background:#fff}
.chat-form textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--card-line);border-radius:8px;padding:.9rem 1rem;font-family:var(--gothic);font-size:.92rem;color:var(--ink);line-height:1.8}
.chat-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,160,82,.18)}
.chat-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.9rem;flex-wrap:wrap}
.chat-note{font-size:.74rem;color:var(--muted)}
.chat-clear{background:none;border:none;padding:0;font-size:.74rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.chat-clear:hover{color:#a2543c}
.chat-clear:disabled{opacity:.5;cursor:default}
.chat-done{padding:1.4rem 1.6rem;background:rgba(63,122,76,.08);border-top:1px solid var(--card-line);color:#2f6b3d;font-size:.9rem;line-height:1.8}

@media (max-width:680px){
  .daily-fortune{grid-template-columns:1fr}
  .chat-msg{max-width:100%}
}

/* =====================================================================
   公開ページ仕上げ（新規導線CTA／申込・問い合わせ／法務ページ）
   ===================================================================== */
/* 新規のお客様 CTAバンド */
.start-cta{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--cream-2),var(--cream));color:var(--ink);text-align:center;padding:clamp(3rem,6vw,5rem) 1.25rem;border-top:1px solid rgba(196,160,82,.35)}
.start-cta .eyebrow{font-family:var(--latin);font-size:.78rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-deep)}
.start-cta h2{font-family:var(--mincho);font-size:clamp(1.5rem,3.4vw,2.2rem);letter-spacing:.08em;margin:1rem 0 .9rem;color:var(--ink)}
.start-cta p{color:var(--ink-soft);max-width:38rem;margin:0 auto 1.9rem;line-height:2;font-size:.95rem}
.start-cta .actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* 申し込み・お問い合わせフォーム */
.apply-sec{background:var(--cream);padding:clamp(2.5rem,5vw,4rem) 0 6rem}
.apply-sec .wrap{max-width:680px}
.apply-card{background:var(--card);border:1px solid var(--card-line);border-radius:14px;box-shadow:var(--shadow-soft);padding:clamp(1.6rem,3vw,2.4rem)}
.apply-lead{color:var(--ink-soft);font-size:.92rem;line-height:1.95;margin-bottom:1.8rem}
.apply-card .field textarea{width:100%;min-height:120px;resize:vertical;padding:.9rem 1rem;font-family:var(--gothic);font-size:.95rem;border:1px solid var(--card-line);border-radius:6px;background:#fff;color:var(--ink);line-height:1.8}
.apply-card .field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,160,82,.18)}
.apply-card .req{color:#b4452f;font-size:.78rem;margin-left:.25rem}
.apply-note{font-size:.78rem;color:var(--muted);margin-top:1.1rem;line-height:1.8}
.apply-done{display:none;text-align:center;padding:2rem 1rem}
.apply-done .ad-ico{width:64px;height:64px;margin:0 auto 1.1rem;border-radius:50%;display:grid;place-items:center;background:rgba(63,122,76,.1);color:#3f7a4c}
.apply-done h3{font-family:var(--mincho);font-size:1.3rem;margin-bottom:.6rem;color:var(--ink)}
.apply-done p{color:var(--ink-soft);font-size:.9rem;line-height:1.9}

/* =====================================================================
   ファースト鑑定（5,000円の入口商品バンド）── トップページ
   ===================================================================== */
.first-band{background:linear-gradient(160deg,var(--lav-2),var(--lav));padding:clamp(3.5rem,7vw,5.5rem) 0}
.first-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4.5vw,3.4rem);align-items:center}
.first-copy .eyebrow{font-family:var(--latin);font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep);display:inline-flex;align-items:center;gap:.8rem}
.first-copy .eyebrow::before{content:"";width:30px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.first-copy h2{font-family:var(--mincho);font-size:clamp(1.5rem,3.2vw,2.05rem);letter-spacing:.08em;line-height:1.6;margin:1rem 0 .9rem}
.first-copy h2 .accent{color:var(--gold-deep)}
.first-copy p{color:var(--ink-soft);font-size:.94rem;line-height:2;word-break:auto-phrase;line-break:strict}
.first-points{display:grid;gap:.65rem;margin-top:1.4rem}
.first-points li{display:flex;gap:.65rem;align-items:baseline;font-size:.9rem;color:var(--ink-2);line-height:1.85}
.first-points li::before{content:"✦";color:var(--gold-deep);font-size:.72em;flex:none}
.first-card{position:relative;background:linear-gradient(170deg,#fff,var(--cream-2));border:1px solid rgba(196,160,82,.5);border-radius:18px;padding:2.6rem 2.2rem 2.4rem;text-align:center;box-shadow:var(--shadow-card)}
.first-card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(196,160,82,.25);border-radius:12px;pointer-events:none}
.first-card .k{font-family:var(--latin);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep)}
.first-card h3{font-family:var(--mincho);font-size:1.35rem;letter-spacing:.1em;margin:.7rem 0 .3rem}
.first-card .sub{font-size:.8rem;color:var(--ink-soft);margin-bottom:1.1rem}
.first-card .price{font-family:var(--mincho);font-size:2.7rem;color:var(--ink);line-height:1.2}
.first-card .price small{font-size:.85rem;color:var(--ink-soft);margin-left:.2rem}
.first-card .btn{margin-top:1.4rem;width:100%;justify-content:center}
.first-card .note{font-size:.72rem;color:var(--muted);margin-top:1rem;line-height:1.8;word-break:auto-phrase;line-break:strict}
@media (max-width:1000px){
  .first-inner{grid-template-columns:1fr}
  .first-card{max-width:420px;margin:0 auto}
}

/* =====================================================================
   お客様の声 ── トップページ
   ===================================================================== */
.voices{background:linear-gradient(180deg,var(--cream-2),var(--cream))}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.8rem}
.voice-card{position:relative;background:var(--card);border:1px solid var(--card-line);border-radius:14px;padding:2.5rem 1.8rem 1.8rem;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.voice-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.voice-card .q{position:absolute;top:.9rem;left:1.5rem;font-family:var(--latin);font-size:3.2rem;line-height:1;color:var(--gold-2);opacity:.9}
.voice-card .vtag{align-self:flex-start;font-family:var(--mincho);font-size:.68rem;letter-spacing:.08em;color:var(--gold-deep);border:1px solid rgba(196,160,82,.4);border-radius:99px;padding:.22rem .8rem;margin-bottom:1rem}
.voice-card p{font-size:.88rem;color:var(--ink-2);line-height:2;flex:1;word-break:auto-phrase;line-break:strict}
.voice-meta{display:flex;align-items:center;gap:.9rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--card-line)}
.voice-meta .vc{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--mincho);font-size:1rem;color:#fff;background:linear-gradient(150deg,var(--navy-700),var(--navy-900))}
.voice-meta .vn{font-family:var(--mincho);font-size:.88rem;color:var(--ink);letter-spacing:.04em}
.voice-meta .vd{font-size:.7rem;color:var(--muted);margin-top:.1rem}
.voices-note{text-align:center;font-size:.74rem;color:var(--muted);margin-top:2rem;letter-spacing:.04em}
@media (max-width:1000px){.voice-grid{grid-template-columns:1fr;max-width:560px;margin:2.4rem auto 0}}

/* 法務・記事レイアウト */
.legal{background:var(--cream);padding:clamp(2.5rem,5vw,4rem) 0 6rem}
.legal .wrap{max-width:820px}
.legal h2{font-family:var(--mincho);font-size:1.25rem;color:var(--ink);margin:2.6rem 0 .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--card-line);letter-spacing:.04em}
.legal h2:first-of-type{margin-top:0}
.legal h3{font-family:var(--mincho);font-size:1.02rem;color:var(--ink);margin:1.6rem 0 .5rem}
.legal p,.legal li{font-size:.92rem;line-height:2;color:var(--ink-soft)}
.legal ul,.legal ol{margin:.6rem 0 .6rem 1.4rem}
.legal li{margin-bottom:.35rem}
.legal-table{width:100%;border-collapse:collapse;margin:1rem 0;border:1px solid var(--card-line);background:var(--card)}
.legal-table th,.legal-table td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--card-line);font-size:.9rem;vertical-align:top;line-height:1.85}
.legal-table th{width:34%;background:rgba(196,160,82,.06);font-family:var(--mincho);font-weight:500;color:var(--ink)}
.legal .todo{color:#b06a2c;background:rgba(176,106,44,.1);padding:.08rem .45rem;border-radius:4px;font-size:.85rem}
.legal .updated{color:var(--muted);font-size:.82rem;margin-top:2.6rem}
@media (max-width:680px){
  .legal-table th{width:40%}
}

/* =====================================================================
   マイページ v2 ── アプリシェル（サイドバー＋フルハイトチャット）
   Co-Star/The Pattern/Cantian 研究後の刷新。すべて .mypage-app 配下。
   ===================================================================== */
.mypage-app{background:var(--cream);min-height:100dvh}

/* ---- サイドバー（デスクトップ） ---- */
.mp-side{position:fixed;left:0;top:0;bottom:0;width:236px;z-index:50;display:flex;flex-direction:column;
  background:linear-gradient(170deg,#10193b,#0a1230 70%);border-right:1px solid rgba(196,160,82,.25);padding:1.9rem 1.3rem 1.4rem}
.mp-brand{display:block;text-align:center;margin-bottom:1.8rem}
.mp-brand .bn{display:block;font-family:var(--mincho);font-size:1.06rem;letter-spacing:.3em;color:#EDE9DF}
.mp-brand .bl{display:block;margin-top:.4rem;font-family:var(--latin);font-size:.56rem;letter-spacing:.34em;color:var(--gold-2)}
.mp-member{display:flex;align-items:center;gap:.7rem;padding:.8rem .6rem;border-top:1px solid rgba(196,160,82,.22);border-bottom:1px solid rgba(196,160,82,.22);margin-bottom:1.2rem}
.mp-member .ava{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--mincho);font-size:1.15rem;color:var(--gold-2);border:1px solid rgba(196,160,82,.55);background:rgba(196,160,82,.08)}
.mp-member .who{font-family:var(--mincho);font-size:.82rem;color:rgba(237,233,223,.85);letter-spacing:.04em}
.mp-member .who b{color:#EDE9DF;font-size:.92rem}

.mypage-app .mp-nav{display:flex;flex-direction:column;gap:.15rem;border-bottom:none;margin-bottom:0;flex:1}
.mypage-app .mp-nav button{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;width:100%;text-align:left;
  padding:.78rem .8rem;border-radius:8px;font-family:var(--mincho);font-size:.9rem;letter-spacing:.06em;color:rgba(237,233,223,.62);transition:background .3s,color .3s}
.mypage-app .mp-nav button small{font-family:var(--latin);font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(196,160,82,.45)}
.mypage-app .mp-nav button:hover{color:#EDE9DF;background:rgba(196,160,82,.07)}
.mypage-app .mp-nav button.active{color:#F3EEDF;background:linear-gradient(90deg,rgba(196,160,82,.18),rgba(196,160,82,.05))}
.mypage-app .mp-nav button.active::after{content:none}
.mypage-app .mp-nav button.active small{color:var(--gold-2)}
.mp-side-logout{display:block;text-align:center;font-size:.74rem;letter-spacing:.14em;color:rgba(237,233,223,.45);padding:.8rem 0 0;border-top:1px solid rgba(196,160,82,.18)}
.mp-side-logout:hover{color:var(--gold-2)}

/* ---- トップバー／下部タブバー（モバイル） ---- */
.mp-topbar{display:none}
.mypage-app .mp-tabbar{display:none}

/* ---- メイン ---- */
.mp-main{margin-left:236px;min-height:100dvh;padding:2.6rem clamp(1.6rem,4vw,3.4rem) 2.2rem;display:flex;flex-direction:column}
.mp-main>[data-panel]{width:100%;max-width:900px;margin:0 auto}
.mp-viewhead{margin-bottom:1.9rem}
.mp-viewhead .vh-latin{display:block;font-family:var(--latin);font-size:.66rem;letter-spacing:.38em;color:var(--gold-deep);margin-bottom:.55rem}
.mp-viewhead h2{font-family:var(--mincho);font-size:clamp(1.35rem,2.6vw,1.7rem);letter-spacing:.1em;color:var(--ink);font-weight:600}
.mp-viewhead h2 b{color:var(--gold-deep);font-weight:600}
.mp-copy{margin:auto auto 0;padding-top:3rem;max-width:900px;width:100%;font-size:.68rem;color:var(--muted);letter-spacing:.06em}
.mp-copy a{color:var(--muted)}
.mp-copy a:hover{color:var(--gold-deep)}

/* ---- ホーム：今日の運勢 ---- */
.today-hero{display:flex;gap:0;background:linear-gradient(150deg,#141d3f,#0b1230);border:1px solid rgba(196,160,82,.5);border-radius:14px;overflow:hidden;color:#EDE9DF;box-shadow:0 22px 46px -22px rgba(10,16,44,.55);margin-bottom:1.1rem}
.th-seal{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:2rem 1.7rem;border-right:1px solid rgba(196,160,82,.3);background:radial-gradient(120px 120px at 50% 40%,rgba(196,160,82,.13),transparent 70%)}
.th-seal .lbl{font-size:.62rem;letter-spacing:.3em;color:var(--gold-2);writing-mode:vertical-rl}
.th-seal .gz{writing-mode:vertical-rl;font-family:var(--mincho);font-size:2.5rem;letter-spacing:.18em;color:#F0E6C8;text-shadow:0 0 22px rgba(196,160,82,.35)}
.th-body{flex:1;padding:1.7rem 1.9rem 1.5rem;display:flex;flex-direction:column;gap:.7rem}
.th-date{font-family:var(--latin);font-size:.72rem;letter-spacing:.22em;color:var(--gold-2)}
.th-msg{font-family:var(--mincho);font-size:1.02rem;line-height:2.05;letter-spacing:.03em;color:#F0EDE4;word-break:auto-phrase}
.th-meta{display:flex;gap:1.6rem;flex-wrap:wrap;font-size:.74rem;color:rgba(237,233,223,.6);letter-spacing:.05em;margin-top:auto}
.th-meta b{color:var(--gold-2);margin-left:.5em;font-family:var(--mincho);font-size:.9rem}

.week-card{background:rgba(255,255,255,.62);border:1px solid var(--card-line);border-radius:14px;padding:1.4rem 1.7rem;box-shadow:var(--shadow-soft)}
.week-card .wk-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.week-card h3{font-family:var(--mincho);font-size:1rem;letter-spacing:.08em}
.week-card .wk-range{font-family:var(--latin);font-size:.68rem;letter-spacing:.14em;color:var(--muted)}
.week-card p{font-size:.86rem;color:var(--ink-soft);line-height:1.95;margin-bottom:.7rem;word-break:auto-phrase}
.week-card .th-meta{color:var(--ink-soft)}
.week-card .th-meta b{color:var(--gold-deep)}
.mypage-app .daily-note{font-size:.7rem;color:var(--muted);margin:.8rem 0 0;letter-spacing:.03em}

.home-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.8rem 0 1.6rem}
.hact{appearance:none;cursor:pointer;font-family:var(--mincho);font-size:.9rem;letter-spacing:.08em;border-radius:99px;padding:.85rem 1.7rem;transition:transform .3s,box-shadow .3s}
.hact:hover{transform:translateY(-2px)}
.hact.gold{color:var(--navy-900);background:linear-gradient(135deg,var(--gold-3),var(--gold) 55%,var(--gold-deep));box-shadow:0 12px 26px -12px rgba(196,160,82,.65);border:none}
.hact:not(.gold){color:var(--ink);background:none;border:1px solid rgba(31,37,66,.35)}
.hact:not(.gold):hover{border-color:var(--gold-deep);color:var(--gold-deep)}
.home-links{margin-top:1.6rem;display:flex;gap:1.6rem;flex-wrap:wrap}
.home-links button{appearance:none;background:none;border:none;cursor:pointer;font-size:.78rem;color:var(--ink-soft);letter-spacing:.05em;padding:0;border-bottom:1px solid transparent}
.home-links button:hover{color:var(--gold-deep);border-bottom-color:var(--gold-deep)}
.mypage-app .chat-recent{max-width:none;margin-top:.4rem}

/* ---- チャット相談：フルハイトビュー ---- */
.mypage-app [data-panel="ai"]{display:flex;flex-direction:column}
.mypage-app [data-panel="ai"][hidden]{display:none}
.chatview{display:flex;flex-direction:column;min-height:0;height:calc(100dvh - 4.9rem)}
.cv-head{display:flex;align-items:center;gap:1rem;margin-bottom:.9rem}
.cv-head h2{font-family:var(--mincho);font-size:1.25rem;letter-spacing:.12em}
.cv-head .ai-quota{margin-left:auto}
.mypage-app .ai-rooms{margin:0 0 .8rem;display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.3rem;scrollbar-width:none}
.mypage-app .ai-rooms::-webkit-scrollbar{display:none}
.mypage-app .ai-rooms .ai-room{flex:none;white-space:nowrap}
.mypage-app .chat-box.ai-chat{flex:1;min-height:0;max-width:none;display:flex;flex-direction:column;border-radius:14px}
.mypage-app .ai-chat .chat-thread{flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth}
.mypage-app .ai-chat .chat-form{flex:none}
.mypage-app .ai-suggest{margin:0 0 .7rem;display:flex;gap:.5rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.mypage-app .ai-suggest::-webkit-scrollbar{display:none}
.mypage-app .ai-chip{flex:none;white-space:nowrap;font-size:.76rem;padding:.45rem .95rem}

/* ---- わたしの命式：右カラムの命名変更（mk-side→mk-side-card） ---- */
.mk-side-card{background:rgba(255,255,255,.65);border:1px solid var(--card-line);border-radius:14px;padding:1.5rem 1.5rem;box-shadow:var(--shadow-soft)}
.mk-side-card h4{font-family:var(--mincho);font-size:1rem;letter-spacing:.06em;margin-bottom:.8rem}

/* ---- モバイル（アプリ型：下部タブバー） ---- */
@media (max-width:900px){
  .mp-side{display:none}
  .mp-topbar{display:flex;position:fixed;top:0;left:0;right:0;z-index:60;align-items:center;justify-content:space-between;
    height:52px;padding:0 1.1rem;background:linear-gradient(160deg,#10193b,#0a1230);border-bottom:1px solid rgba(196,160,82,.28)}
  .mp-topbar .tb-brand{font-family:var(--mincho);font-size:.92rem;letter-spacing:.22em;color:#EDE9DF}
  .mp-topbar .tb-logout{font-size:.68rem;letter-spacing:.1em;color:rgba(237,233,223,.55);border:1px solid rgba(237,233,223,.25);border-radius:99px;padding:.35rem .8rem}
  .mp-main{margin-left:0;padding:calc(52px + 1.3rem) 1.15rem calc(66px + 1.6rem)}
  .mypage-app .mp-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:linear-gradient(0deg,#0a1230,#10193b);border-top:1px solid rgba(196,160,82,.3);border-bottom:none;margin:0;
    padding:.45rem .3rem calc(.45rem + env(safe-area-inset-bottom))}
  .mypage-app .mp-tabbar button{display:flex;flex-direction:column;align-items:center;gap:.22rem;padding:.3rem 0;
    font-family:var(--gothic);font-size:.6rem;letter-spacing:.06em;color:rgba(237,233,223,.55)}
  .mypage-app .mp-tabbar button svg{width:21px;height:21px}
  .mypage-app .mp-tabbar button.active{color:var(--gold-2)}
  .mypage-app .mp-tabbar button.active::after{content:none}
  .chatview{height:calc(100dvh - 52px - 66px - 2.2rem)}
  .today-hero{flex-direction:row}
  .th-seal{padding:1.5rem 1.1rem}
  .th-seal .gz{font-size:2rem}
  .th-body{padding:1.3rem 1.2rem 1.2rem}
  .th-msg{font-size:.94rem;line-height:1.95}
  .mp-viewhead{margin-bottom:1.3rem}
  .mp-copy{padding-top:2rem}
}

/* マイページv2：チャットの圧縮調整 */
.mypage-app .ai-rooms{flex-wrap:nowrap}
@media (max-width:900px){
  .mypage-app .cv-head{margin-bottom:.6rem}
  .mypage-app .cv-head h2{font-size:1.05rem}
  .mypage-app .ai-chat .chat-form{padding:.8rem .9rem .7rem}
  .mypage-app .ai-chat .chat-form textarea{min-height:2.6rem;font-size:.9rem}
  .mypage-app .ai-chat .chat-actions{margin-top:.5rem;align-items:center}
  .mypage-app .ai-chat .chat-actions .btn{padding:.6rem 1.5rem;font-size:.82rem}
  .mypage-app .ai-chat .chat-note{font-size:.62rem}
  .mypage-app .ai-chat .chat-counter{font-size:.6rem}
  .mypage-app .ai-suggest{margin-bottom:.5rem}
}

/* =====================================================================
   マイページ v3 ── 参考デザイン準拠（上部ナビ＋夜空ヒーロー＋アイボリー基調）
   トーン：ネイビー×アイボリー×ゴールド／高級会員制・人生戦略ダッシュボード
   ===================================================================== */
.mypage-v3{background:var(--cream);min-height:100dvh;display:flex;flex-direction:column}

/* ---- 上部ナビゲーション ---- */
.mp-head{position:fixed;top:0;left:0;right:0;z-index:80;height:64px;display:flex;align-items:center;gap:2rem;
  padding:0 clamp(1.2rem,3vw,2.6rem);background:linear-gradient(160deg,#10193b,#0a1230);border-bottom:1px solid rgba(196,160,82,.35)}
.mh-brand .bn{display:block;font-family:var(--mincho);font-size:1.05rem;letter-spacing:.22em;color:#EDE9DF}
.mh-brand .bl{display:block;font-size:.5rem;letter-spacing:.24em;color:rgba(196,160,82,.75);margin-top:.15rem}
.mypage-v3 .mh-nav{display:flex;gap:.2rem;border-bottom:none;margin:0 auto 0 1rem;flex-wrap:nowrap}
.mypage-v3 .mh-nav button{padding:.5rem 1.05rem;font-family:var(--mincho);font-size:.88rem;letter-spacing:.08em;color:rgba(237,233,223,.6);position:relative;white-space:nowrap}
.mypage-v3 .mh-nav button:hover{color:#EDE9DF}
.mypage-v3 .mh-nav button.active{color:#F3EEDF}
.mypage-v3 .mh-nav button.active::after{content:"";position:absolute;left:1rem;right:1rem;bottom:-4px;height:2px;width:auto;background:var(--gold)}
.mh-right{display:flex;align-items:center;gap:1rem}
.mh-member{display:flex;align-items:center;gap:.5rem;font-family:var(--mincho);font-size:.8rem;letter-spacing:.06em;color:#EDE9DF;
  border:1px solid rgba(196,160,82,.55);border-radius:99px;padding:.42rem 1rem;background:rgba(196,160,82,.08);cursor:pointer;transition:background .3s}
.mh-member:hover{background:rgba(196,160,82,.16)}
.mh-member svg{width:15px;height:15px;color:var(--gold-2)}
.mh-logout{display:flex;align-items:center;gap:.4rem;font-size:.74rem;letter-spacing:.08em;color:rgba(237,233,223,.55)}
.mh-logout:hover{color:var(--gold-2)}
.mh-logout svg{width:14px;height:14px}

.mypage-v3 .mp-main{flex:1;margin:0;padding:64px 0 0}
.mp-body{max-width:1080px;margin:0 auto;padding:2.4rem clamp(1.3rem,4vw,3rem) 3.6rem}

/* ---- ヒーローバンド（夜空×命盤アート） ---- */
.mp-hero{position:relative;color:var(--on-dark);overflow:hidden;
  background:linear-gradient(100deg,rgba(6,12,38,.94) 22%,rgba(6,12,38,.55) 55%,rgba(6,12,38,.25)),url('../img/hero-visual.png');
  background-size:cover;background-position:right center;border-bottom:1px solid rgba(196,160,82,.4)}
.mp-hero .hero-inner{max-width:1080px;margin:0 auto;padding:3.6rem clamp(1.3rem,4vw,3rem) 3.2rem}
.mp-hero h1{font-family:var(--mincho);font-size:clamp(1.9rem,3.6vw,2.5rem);letter-spacing:.3em;color:#F3EEDF;margin-bottom:.9rem}
.mp-hero .hg{font-family:var(--mincho);font-size:1.02rem;letter-spacing:.14em;color:#EDE9DF;margin-bottom:1rem}
.mp-hero .hg b{color:var(--gold-2)}
.mp-hero .hs{font-size:.88rem;line-height:2.05;color:rgba(237,233,223,.72);letter-spacing:.05em}

/* ---- 飾り罫つきセクションタイトル ─✦ ◯◯ ✦─ ---- */
.sec-orn{display:flex;align-items:center;justify-content:center;gap:0;margin:3.2rem 0 1.9rem;font-weight:600}
.sec-orn::before,.sec-orn::after{content:"";height:1px;flex:0 1 190px;background:linear-gradient(90deg,transparent,rgba(196,160,82,.75))}
.sec-orn::after{background:linear-gradient(90deg,rgba(196,160,82,.75),transparent)}
.sec-orn span{position:relative;padding:0 2.5rem;font-family:var(--mincho);font-size:clamp(1.2rem,2.4vw,1.5rem);letter-spacing:.16em;color:var(--ink);white-space:nowrap}
.sec-orn span::before,.sec-orn span::after{content:"✦";position:absolute;top:50%;transform:translateY(-52%);font-size:.7rem;color:var(--gold-deep)}
.sec-orn span::before{left:.9rem}
.sec-orn span::after{right:.9rem}
.sec-orn span small{font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft);font-family:var(--gothic);margin-left:.3rem}

/* ---- クイックアクセス（4分割ストリップ） ---- */
.qk-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#FCF8EE;border:1px solid rgba(196,160,82,.45);
  border-radius:14px;box-shadow:0 16px 34px -20px rgba(31,37,66,.35);margin-top:-2.6rem;position:relative;z-index:2;overflow:hidden}
.qk-strip button{appearance:none;background:none;border:none;cursor:pointer;text-align:center;padding:1.7rem 1rem 1.5rem;transition:background .3s}
.qk-strip button+button{border-left:1px solid rgba(196,160,82,.3)}
.qk-strip button:hover{background:rgba(196,160,82,.07)}
.qk-strip .qi{display:grid;place-items:center;width:56px;height:56px;margin:0 auto .8rem;border-radius:50%;
  border:1px solid rgba(196,160,82,.55);color:var(--gold-deep);background:rgba(196,160,82,.05)}
.qk-strip .qi svg{width:30px;height:30px}
.qk-strip b{display:block;font-family:var(--mincho);font-size:.95rem;letter-spacing:.08em;color:var(--ink);margin-bottom:.45rem}
.qk-strip small{display:block;font-size:.7rem;line-height:1.7;color:var(--ink-soft);letter-spacing:.03em}

/* ---- 今日の運勢（アイボリーカード＋ネイビー印章） ---- */
.today-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.3rem;align-items:stretch}
.mypage-v3 .today-hero{display:flex;background:#FBF7EC;border:1px solid rgba(196,160,82,.5);border-radius:14px;overflow:hidden;
  color:var(--ink);box-shadow:0 14px 30px -18px rgba(31,37,66,.3);margin-bottom:0}
.mypage-v3 .th-seal{background:linear-gradient(160deg,#1a2650,#0c1434);border-right:1px solid rgba(196,160,82,.45);padding:1.8rem 1.5rem}
.mypage-v3 .th-date{color:var(--gold-deep)}
.mypage-v3 .th-msg{color:var(--ink);font-size:.98rem}
.mypage-v3 .th-meta{color:var(--ink-soft)}
.mypage-v3 .th-meta b{color:var(--gold-deep)}
.mypage-v3 .week-card{background:#FBF7EC;border-color:rgba(196,160,82,.5)}
.mypage-v3 .daily-note{color:var(--muted)}

/* ---- 深掘りメニュー（宝石色×星空カード） ---- */
.jw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.jw-card{position:relative;border-radius:13px;padding:2rem 1.3rem 1.8rem;text-align:center;color:#F0EDE4;overflow:hidden;
  border:1px solid rgba(196,160,82,.45);box-shadow:0 18px 36px -20px rgba(10,16,44,.5)}
.jw-card::before{content:"";position:absolute;inset:7px;border:1px solid rgba(237,233,223,.18);border-radius:8px;pointer-events:none}
.jw-navy{background:radial-gradient(1.2px 1.2px at 22% 24%,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 74% 16%,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 60% 74%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 34% 58%,rgba(255,255,255,.35),transparent),linear-gradient(155deg,#2a4271,#132549)}
.jw-green{background:radial-gradient(1.2px 1.2px at 26% 22%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 70% 18%,rgba(255,255,255,.4),transparent),radial-gradient(1.3px 1.3px at 58% 76%,rgba(255,255,255,.35),transparent),linear-gradient(155deg,#476b53,#20372a)}
.jw-wine{background:radial-gradient(1.2px 1.2px at 24% 20%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 72% 20%,rgba(255,255,255,.4),transparent),radial-gradient(1.3px 1.3px at 62% 78%,rgba(255,255,255,.35),transparent),linear-gradient(155deg,#94566b,#5a2b3b)}
.jw-purple{background:radial-gradient(1.2px 1.2px at 22% 26%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 76% 18%,rgba(255,255,255,.4),transparent),radial-gradient(1.3px 1.3px at 56% 74%,rgba(255,255,255,.35),transparent),linear-gradient(155deg,#69578e,#352759)}
.jw-card .ji{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 1.1rem;border-radius:50%;
  border:1px solid rgba(237,233,223,.5);color:#F0E6C8;background:rgba(255,255,255,.04)}
.jw-card .ji svg{width:34px;height:34px}
.jw-card h4{font-family:var(--mincho);font-size:1.02rem;letter-spacing:.06em;line-height:1.6;margin-bottom:.7rem;min-height:2.6em;display:flex;align-items:center;justify-content:center}
.jw-card p{font-size:.74rem;line-height:1.9;color:rgba(240,237,228,.78);letter-spacing:.02em;min-height:4.2em}
.jw-btn{appearance:none;cursor:pointer;margin-top:1.1rem;width:100%;padding:.72rem 0;border-radius:8px;background:transparent;
  border:1px solid rgba(196,160,82,.75);color:#F0E6C8;font-family:var(--mincho);font-size:.86rem;letter-spacing:.14em;transition:background .3s}
.jw-btn:hover{background:rgba(196,160,82,.18)}
.jw-btn i{font-style:normal;margin-left:.5rem}

/* ---- 個別の質問（チケット制バンド） ---- */
.tk-band{display:grid;grid-template-columns:1.05fr 1.2fr .95fr;background:#FCF8EE;border:1px solid rgba(196,160,82,.45);
  border-radius:14px;overflow:hidden;box-shadow:0 16px 34px -20px rgba(31,37,66,.3);margin-top:2.6rem}
.tk-intro{background:radial-gradient(1.2px 1.2px at 24% 22%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.4),transparent),linear-gradient(160deg,#1a2650,#0c1434);
  color:#EDE9DF;padding:2.2rem 1.9rem;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}
.tk-intro svg{width:46px;height:46px;color:var(--gold-2);margin-bottom:1.1rem}
.tk-intro h3{font-family:var(--mincho);font-size:1.12rem;line-height:1.95;letter-spacing:.1em;font-weight:500;margin-bottom:1rem}
.tk-intro h3 b{color:var(--gold-2)}
.tk-intro p{font-size:.76rem;line-height:1.95;color:rgba(237,233,223,.7);text-align:left}
.tk-price{padding:2rem 1.9rem;display:flex;flex-direction:column;border-right:1px solid rgba(196,160,82,.3)}
.tp-chip{display:block;text-align:center;background:#EFE5CE;color:var(--navy-800,#13284c);font-size:.74rem;letter-spacing:.12em;
  border-radius:6px;padding:.5rem;margin-bottom:1.1rem;font-family:var(--mincho)}
.tp-main{text-align:center;font-family:var(--mincho);font-size:1.05rem;color:var(--ink);letter-spacing:.06em;margin-bottom:1.3rem}
.tp-main b{font-size:2.3rem;letter-spacing:.02em}
.tp-main small{font-size:.72rem;color:var(--ink-soft)}
.tp-minis{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:1.4rem}
.tp-minis div{text-align:center;font-size:.62rem;line-height:1.65;color:var(--ink-soft);padding:0 .55rem}
.tp-minis div+div{border-left:1px solid rgba(196,160,82,.3)}
.tp-minis svg{display:block;width:26px;height:26px;margin:0 auto .45rem;color:var(--gold-deep)}
.tk-btn{appearance:none;cursor:pointer;margin-top:auto;width:100%;padding:.95rem 0;border:none;border-radius:8px;
  background:linear-gradient(135deg,#d9bd7d,var(--gold) 50%,var(--gold-deep));color:#1a2547;font-family:var(--mincho);
  font-size:.95rem;letter-spacing:.12em;box-shadow:0 12px 24px -12px rgba(196,160,82,.7);transition:transform .3s}
.tk-btn:hover{transform:translateY(-2px)}
.tk-btn i{font-style:normal;margin-left:.5rem}
.tk-flow{padding:2rem 1.7rem}
.tk-flow h4{font-family:var(--mincho);font-size:.98rem;letter-spacing:.12em;margin-bottom:1.2rem;color:var(--ink)}
.tk-flow ol{list-style:none;counter-reset:tk}
.tk-flow li{counter-increment:tk;position:relative;padding:0 0 1.35rem 2.5rem;font-size:.8rem;color:var(--ink)}
.tk-flow li::before{content:counter(tk);position:absolute;left:0;top:-.1rem;width:1.72rem;height:1.72rem;border-radius:50%;
  background:linear-gradient(160deg,#1a2650,#0c1434);color:var(--gold-2);display:grid;place-items:center;font-family:var(--latin);font-size:.8rem}
.tk-flow li:not(:last-child)::after{content:"";position:absolute;left:.83rem;top:1.85rem;bottom:.25rem;width:1px;background:rgba(196,160,82,.4)}
.tk-flow li b{font-family:var(--mincho);letter-spacing:.05em;font-weight:600}
.tk-flow li small{display:block;font-size:.68rem;color:var(--ink-soft);margin-top:.2rem}

/* ---- 安心バンド ---- */
.trust-band{display:flex;align-items:center;background:#FCF8EE;border:1px solid rgba(196,160,82,.45);border-radius:12px;
  margin-top:1.6rem;padding:1.1rem 1.4rem;gap:0;flex-wrap:wrap}
.trust-band>div{display:flex;align-items:center;gap:.6rem;font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em;padding:.4rem 1.3rem}
.trust-band>div+div{border-left:1px solid rgba(196,160,82,.3)}
.trust-band svg{width:19px;height:19px;color:var(--gold-deep);flex:none}
.trust-band .tb-lead{font-family:var(--mincho);font-size:.9rem;color:var(--ink);letter-spacing:.08em}
.trust-band .tb-lead svg{width:26px;height:26px}

/* ---- チャット（v3：アイボリー・フルハイト維持） ---- */
/* 会話は枠内スクロールにせず、ページ全体で全文を表示する */
.mypage-v3 .chatview{height:auto}
.mypage-v3 [data-panel="ai"] .mp-body{padding-top:1.2rem;padding-bottom:1.6rem;display:flex;flex-direction:column}
.mypage-v3 [data-panel="ai"]{height:auto;min-height:calc(100dvh - 64px)}
.mypage-v3 [data-panel="ai"][hidden]{display:none}
.mypage-v3 .cv-head{display:flex;align-items:center;gap:1rem;margin-bottom:.7rem}
.mypage-v3 .cv-head .sec-orn{margin:0;justify-content:flex-start}
.mypage-v3 .cv-head .sec-orn::before,.mypage-v3 .cv-head .sec-orn::after{flex:0 0 30px}
.mypage-v3 .cv-head .sec-orn span{font-size:1.15rem;padding:0 2rem}
.mypage-v3 .cv-head .ai-quota{margin-left:auto}
.mypage-v3 .ai-rooms{margin:0 0 .7rem;display:flex;gap:.45rem;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.3rem;scrollbar-width:none}
.mypage-v3 .ai-rooms::-webkit-scrollbar{display:none}
.mypage-v3 .ai-rooms .ai-room{flex:none;white-space:nowrap}
.mypage-v3 .chat-box.ai-chat{flex:1;max-width:none;display:flex;flex-direction:column;border-radius:14px;
  background:#FCF9F1;border:1px solid rgba(196,160,82,.45)}
/* サイドバーはページスクロール中も左に追従（デスクトップのみ） */
@media (min-width:761px){
  .mypage-v3 .ai-side{position:sticky;top:80px;align-self:flex-start;max-height:calc(100dvh - 100px)}
}
.mypage-v3 .ai-chat .chat-thread{flex:none;min-height:220px;max-height:none;overflow:visible}
.mypage-v3 .ai-suggest{margin:0 0 .7rem;display:flex;gap:.5rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.mypage-v3 .ai-suggest::-webkit-scrollbar{display:none}
.mypage-v3 .ai-chip{flex:none;white-space:nowrap;font-size:.76rem;padding:.45rem .95rem}
.mypage-v3 .chat-recent{max-width:none;margin-top:2.2rem;background:#FCF8EE;border-color:rgba(196,160,82,.45)}

/* ---- わたしの命式：四術統合カード ---- */
.mkx-card{position:relative;background:#FBF7EC;border:1px solid rgba(196,160,82,.55);border-radius:14px;
  box-shadow:0 16px 36px -20px rgba(31,37,66,.35);padding:2.2rem clamp(1.2rem,3vw,2.4rem) 1.6rem}
.mkx-card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(196,160,82,.25);border-radius:9px;pointer-events:none}
.mkx-head{text-align:center;margin-bottom:1.6rem}
.mkx-latin{font-family:var(--latin);font-size:.6rem;letter-spacing:.34em;color:var(--gold-deep)}
.mkx-head h3{font-family:var(--mincho);font-size:1.28rem;letter-spacing:.14em;color:var(--ink);margin-top:.55rem}
.mkx-grid{display:grid;grid-template-columns:1fr 1fr}
.mkx-sec{padding:1.35rem 1.5rem;border-top:1px solid rgba(196,160,82,.3)}
.mkx-sec:nth-child(-n+2){border-top:none}
.mkx-sec:nth-child(even){border-left:1px solid rgba(196,160,82,.3)}
.mkx-sec h4{display:flex;align-items:center;gap:.55rem;font-family:var(--mincho);font-size:1rem;letter-spacing:.1em;color:var(--ink);margin-bottom:.9rem}
.mkx-sec h4 svg{width:20px;height:20px;stroke:var(--gold-deep);fill:none;stroke-width:1.4;flex:none}
.mkx-sec h4 small{margin-left:auto;font-family:var(--latin);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(196,160,82,.85)}
.mkx-pillars{display:flex;gap:.45rem;margin-bottom:.9rem}
.mkx-pillar{flex:1;text-align:center;border:1px solid rgba(196,160,82,.45);border-radius:8px;padding:.5rem .15rem .55rem;background:rgba(196,160,82,.05)}
.mkx-pillar .lbl{display:block;font-size:.56rem;color:var(--gold-deep);letter-spacing:.16em;margin-bottom:.3rem}
.mkx-pillar .gz{font-family:var(--mincho);font-size:1.1rem;letter-spacing:.24em;color:var(--ink)}
.mkx-dl div{display:flex;gap:.9rem;padding:.48rem 0;border-top:1px dashed rgba(196,160,82,.35);font-size:.8rem;align-items:baseline}
.mkx-dl div:first-child{border-top:none}
.mkx-dl dt{flex:0 0 7.6em;font-size:.7rem;letter-spacing:.05em;color:var(--gold-deep)}
.mkx-dl dd{flex:1;font-family:var(--mincho);font-size:.86rem;color:var(--ink);letter-spacing:.02em;line-height:1.7}
.mkx-gogyo{margin-top:.9rem;padding-top:.8rem;border-top:1px dashed rgba(196,160,82,.35)}

/* ---- フッター ---- */
.mp-foot{background:linear-gradient(160deg,#10193b,#0a1230);border-top:1px solid rgba(196,160,82,.35);color:rgba(237,233,223,.6);
  display:flex;align-items:center;justify-content:space-between;gap:1.4rem;padding:1.7rem clamp(1.3rem,4vw,3rem);flex-wrap:wrap}
.mf-brand{font-family:var(--mincho);font-size:1rem;letter-spacing:.24em;color:#EDE9DF}
.mf-brand small{display:block;font-family:var(--latin);font-size:.6rem;letter-spacing:.08em;color:rgba(237,233,223,.4);margin-top:.35rem}
.mf-links{display:flex;gap:1.6rem;flex-wrap:wrap}
.mf-links a{font-size:.74rem;letter-spacing:.05em;color:rgba(237,233,223,.6)}
.mf-links a:hover{color:var(--gold-2)}

/* ---- 下部タブバー（モバイル用・v3） ---- */
.mypage-v3 .mp-tabbar{display:none}

/* ---- モバイル ---- */
@media (max-width:960px){
  .mp-head{height:54px;gap:.8rem}
  .mh-brand .bl{display:none}
  .mypage-v3 .mh-nav{display:none}
  .mh-member{display:none}
  .mh-right{margin-left:auto}
  .mypage-v3 .mp-main{padding-top:54px}
  .mp-hero .hero-inner{padding:2.4rem 1.2rem 2.6rem}
  .mp-body{padding:1.8rem 1.15rem calc(66px + 2.4rem)}
  .qk-strip{grid-template-columns:1fr 1fr;margin-top:-2rem}
  .qk-strip button:nth-child(n+3){border-top:1px solid rgba(196,160,82,.3)}
  .qk-strip button:nth-child(3){border-left:none}
  .today-grid{grid-template-columns:1fr}
  .jw-grid{grid-template-columns:1fr}
  .jw-card p{min-height:0}
  .jw-card h4{min-height:0}
  .tk-band{grid-template-columns:1fr}
  .tk-price{border-right:none;border-top:1px solid rgba(196,160,82,.3);border-bottom:1px solid rgba(196,160,82,.3)}
  .trust-band{flex-direction:column;align-items:flex-start}
  .trust-band>div+div{border-left:none;border-top:1px solid rgba(196,160,82,.25);width:100%}
  .sec-orn::before,.sec-orn::after{flex-basis:34px}
  .sec-orn span{padding:0 1.9rem;white-space:normal;text-align:center}
  .mkx-grid{grid-template-columns:1fr}
  .mkx-sec{border-left:none!important;padding:1.2rem .3rem}
  .mkx-sec:nth-child(2){border-top:1px solid rgba(196,160,82,.3)}
  .mypage-v3 [data-panel="ai"]{height:auto;min-height:calc(100dvh - 54px - 64px)}
  .mypage-v3 .chatview{height:auto}
  .mypage-v3 .cv-head .sec-orn span{font-size:1.02rem}
  .mypage-v3 .ai-chat .chat-form{padding:.8rem .9rem .7rem}
  .mypage-v3 .ai-chat .chat-actions .btn{padding:.6rem 1.5rem;font-size:.82rem}
  .mypage-v3 .ai-chat .chat-note{font-size:.62rem}
  .mp-foot{flex-direction:column;align-items:flex-start;padding-bottom:calc(66px + 1.4rem)}
  .mypage-v3 .mp-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:linear-gradient(0deg,#0a1230,#10193b);border-top:1px solid rgba(196,160,82,.3);border-bottom:none;margin:0;
    padding:.45rem .3rem calc(.45rem + env(safe-area-inset-bottom))}
  .mypage-v3 .mp-tabbar button{display:flex;flex-direction:column;align-items:center;gap:.22rem;padding:.3rem 0;
    font-family:var(--gothic);font-size:.6rem;letter-spacing:.06em;color:rgba(237,233,223,.55)}
  .mypage-v3 .mp-tabbar button svg{width:21px;height:21px}
  .mypage-v3 .mp-tabbar button.active{color:var(--gold-2)}
  .mypage-v3 .mp-tabbar button.active::after{content:none}
}

/* =====================================================================
   マイページ v4 ── 第2モック準拠の調整（干支カード廃止・チャット誘導バンド等）
   ===================================================================== */
/* ヒーロー：タイトルなし・星空全幅 */
.mypage-v3 .mp-hero .hero-inner{padding:3.4rem clamp(1.3rem,4vw,3rem) 4.6rem}
.mypage-v3 .mp-hero .hg{font-size:1.45rem;letter-spacing:.18em;margin-bottom:1.2rem}
.mypage-v3 .mp-hero .hs{font-size:.92rem}

/* クイックアクセス：独立4カード */
.qk-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:-3.2rem;position:relative;z-index:2}
.qk-cards button{appearance:none;cursor:pointer;text-align:center;padding:1.8rem .9rem 1.6rem;background:#FCF8EE;
  border:1px solid rgba(196,160,82,.45);border-radius:12px;box-shadow:0 14px 30px -18px rgba(31,37,66,.35);transition:transform .3s,box-shadow .3s}
.qk-cards button:hover{transform:translateY(-3px);box-shadow:0 20px 38px -18px rgba(31,37,66,.4)}
.qk-cards .qi{display:grid;place-items:center;width:58px;height:58px;margin:0 auto .85rem;border-radius:50%;
  border:1px solid rgba(196,160,82,.55);color:var(--gold-deep);background:rgba(196,160,82,.05)}
.qk-cards .qi svg{width:30px;height:30px}
.qk-cards b{display:block;font-family:var(--mincho);font-size:.98rem;letter-spacing:.1em;color:var(--ink);margin-bottom:.45rem}
.qk-cards small{display:block;font-size:.7rem;line-height:1.7;color:var(--ink-soft)}

/* 今日の運勢：テーマ＋導きの2カード */
.tg2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.td-card{background:#FCF8EE;border:1px solid rgba(196,160,82,.5);border-radius:12px;padding:1.6rem 1.8rem;box-shadow:0 12px 26px -18px rgba(31,37,66,.3)}
.td-title{text-align:center;font-family:var(--mincho);font-size:.92rem;letter-spacing:.22em;color:var(--gold-deep);margin-bottom:1rem}
.td-title small{font-family:var(--latin);font-size:.62rem;letter-spacing:.12em;color:var(--muted);margin-left:.5em}
#dc-week-range{display:block;margin:.3rem 0 0;font-family:var(--latin);font-size:.66rem;letter-spacing:.1em;color:var(--muted)}
#dc-week-range:empty{display:none}
.td-head{text-align:center;font-family:var(--mincho);font-size:1.12rem;letter-spacing:.1em;color:var(--ink);margin-bottom:.7rem;font-weight:600}
.td-body{font-size:.85rem;line-height:2;color:var(--ink-soft);text-align:center;word-break:auto-phrase;margin-bottom:1rem}
.td-meta{display:flex;justify-content:center;gap:1.8rem;flex-wrap:wrap;font-size:.76rem;color:var(--gold-deep);letter-spacing:.06em}
.td-meta b{color:var(--ink);font-family:var(--mincho);margin-left:.2em}
.td-meta .dot{display:inline-block;width:.72em;height:.72em;border-radius:50%;background:var(--gold-deep);margin-right:.35em;vertical-align:-.06em;border:1px solid rgba(31,37,66,.2)}
.td-kw{text-align:center;font-size:.78rem;color:var(--gold-deep);letter-spacing:.08em;border:1px solid rgba(196,160,82,.5);border-radius:99px;padding:.55rem 1.2rem;width:fit-content;margin:0 auto}
.td-kw b{color:var(--ink);font-family:var(--mincho)}
/* 「キーワード：〜」「気をつけたい日：〜」を、それぞれ塊のまま折り返す */
.td-kw{white-space:normal}
.td-kw .kw,.td-kw .cau{white-space:nowrap;display:inline-block}
.td-kw .kw{margin-right:.9em}
.td-kw .cau b{color:#a04545}

/* チャット誘導バンド（ネイビー×入力欄） */
.cb-band{display:grid;grid-template-columns:1.05fr 1fr;gap:0;margin-top:2.4rem;border-radius:14px;overflow:hidden;
  border:1px solid rgba(196,160,82,.5);box-shadow:0 20px 42px -22px rgba(10,16,44,.55);
  background:radial-gradient(1.2px 1.2px at 20% 25%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 72% 60%,rgba(255,255,255,.4),transparent),radial-gradient(1.4px 1.4px at 55% 20%,rgba(255,255,255,.35),transparent),linear-gradient(155deg,#16214a,#0b1330)}
.cb-band::before{content:"";position:absolute}
.cb-left{padding:2.4rem 2.4rem 2.2rem;color:#EDE9DF}
.cb-emblem{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;border:1px solid rgba(196,160,82,.6);color:var(--gold-2);margin-bottom:1.1rem;background:rgba(196,160,82,.06)}
.cb-emblem svg{width:38px;height:38px}
.cb-left h3{font-family:var(--mincho);font-size:1.5rem;letter-spacing:.16em;margin-bottom:.9rem;color:#F3EEDF}
.cb-left>p{font-size:.84rem;line-height:2;color:rgba(237,233,223,.75);margin-bottom:1.5rem}
.cb-feats{display:grid;grid-template-columns:repeat(3,auto);gap:1.6rem;justify-content:start;margin-bottom:1.7rem}
.cb-feats div{text-align:center;font-size:.66rem;line-height:1.7;color:rgba(237,233,223,.7);letter-spacing:.03em}
.cb-feats svg{display:block;width:30px;height:30px;margin:0 auto .5rem;color:var(--gold-2)}
.cb-more{appearance:none;cursor:pointer;background:transparent;border:1px solid rgba(196,160,82,.65);color:#F0E6C8;
  font-family:var(--mincho);font-size:.84rem;letter-spacing:.12em;border-radius:99px;padding:.7rem 1.6rem;transition:background .3s}
.cb-more:hover{background:rgba(196,160,82,.16)}
.cb-more i{font-style:normal;margin-left:.5rem}
.cb-panel{margin:1.6rem;background:#FBF7EC;border:1px solid rgba(196,160,82,.45);border-radius:12px;padding:1.5rem 1.6rem;display:flex;flex-direction:column}
.cb-note{display:flex;align-items:center;gap:.6rem;font-size:.78rem;color:var(--ink);margin-bottom:1rem;letter-spacing:.02em}
.cb-note .ava{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-family:var(--mincho);font-size:.85rem;
  color:#fff;background:linear-gradient(150deg,#c4a052,#8d7233)}
.cb-label{font-size:.72rem;color:var(--ink-soft);letter-spacing:.05em;margin-bottom:.5rem}
.cb-inputwrap{position:relative}
.cb-inputwrap textarea{width:100%;resize:none;border:1px solid rgba(196,160,82,.5);border-radius:10px;background:#fff;
  padding:.9rem 3.2rem .9rem 1rem;font-size:.86rem;font-family:var(--gothic);color:var(--ink);line-height:1.8}
.cb-inputwrap textarea:focus{outline:none;border-color:var(--gold-deep)}
.cb-inputwrap textarea::placeholder{color:#b8b0a0}
.cb-send{appearance:none;cursor:pointer;position:absolute;right:.7rem;bottom:.7rem;width:38px;height:38px;border:none;border-radius:50%;
  display:grid;place-items:center;color:#F0E6C8;background:linear-gradient(150deg,#25335f,#101c40);transition:transform .25s}
.cb-send:hover{transform:scale(1.07)}
.cb-send svg{width:19px;height:19px}
.cb-caption{font-size:.66rem;color:var(--muted);margin-top:.7rem}

/* 深掘りメニュー v4：左寄せ・箇条書き */
.sec-sub{text-align:center;font-size:.78rem;color:var(--ink-soft);margin:-1.2rem 0 1.6rem;letter-spacing:.06em}
.jw-card{text-align:left;padding:1.6rem 1.5rem 1.4rem}
.jw-card h4{display:flex;align-items:center;gap:.7rem;min-height:0;justify-content:flex-start;font-size:.98rem;margin-bottom:.9rem}
.jw-card .ji{width:40px;height:40px;margin:0;flex:none}
.jw-card .ji svg{width:22px;height:22px}
.jw-card ul{list-style:none;margin-bottom:1.1rem;min-height:4.6em}
.jw-card ul li{position:relative;padding-left:1em;font-size:.76rem;line-height:2;color:rgba(240,237,228,.82);letter-spacing:.02em}
.jw-card ul li::before{content:"・";position:absolute;left:0;color:rgba(196,160,82,.9)}
.jw-btn{width:auto;border:none;padding:.3rem 0;font-size:.8rem;letter-spacing:.14em;color:#F0E6C8;background:none;border-bottom:1px solid rgba(196,160,82,.6);border-radius:0}
.jw-btn:hover{background:none;color:var(--gold-2);border-bottom-color:var(--gold-2)}

/* チケットバンド v4 */
.tp-lab{display:block;font-family:var(--mincho);font-size:.9rem;letter-spacing:.14em;color:var(--ink);margin-bottom:.4rem}
.tk-flow{margin:1.6rem;border:1px solid rgba(196,160,82,.55);border-radius:10px;padding:1.5rem 1.5rem;background:rgba(196,160,82,.04)}

/* ユーティリティストリップ */
.util-strip{display:flex;align-items:stretch;background:#FCF8EE;border:1px solid rgba(196,160,82,.45);border-radius:10px;
  margin-top:1.6rem;overflow:hidden;flex-wrap:wrap}
.util-strip>*{appearance:none;background:none;border:none;cursor:pointer;flex:1;display:flex;align-items:center;justify-content:center;gap:.55rem;
  padding:1rem .8rem;font-size:.72rem;letter-spacing:.05em;color:var(--ink-soft);white-space:nowrap;text-decoration:none;transition:background .3s}
.util-strip>span{cursor:default;font-family:var(--mincho);color:var(--ink);letter-spacing:.08em}
.util-strip>*+*{border-left:1px solid rgba(196,160,82,.3)}
.util-strip a:hover,.util-strip button:hover{background:rgba(196,160,82,.07);color:var(--ink)}
.util-strip svg{width:17px;height:17px;color:var(--gold-deep);flex:none}

/* モバイル（v4） */
@media (max-width:960px){
  .qk-cards{grid-template-columns:1fr 1fr;gap:.8rem;margin-top:-2.4rem}
  .tg2{grid-template-columns:1fr}
  .cb-band{grid-template-columns:1fr}
  .cb-left{padding:1.9rem 1.4rem 1.6rem}
  .cb-feats{grid-template-columns:repeat(3,1fr);gap:.8rem}
  .cb-panel{margin:0 1rem 1.2rem}
  .jw-card ul{min-height:0}
  .util-strip{flex-direction:column;align-items:stretch}
  .util-strip>*{justify-content:flex-start}
  .util-strip>*+*{border-left:none;border-top:1px solid rgba(196,160,82,.25)}
}
/* v4 微調整 */
.jw-card h4{font-size:.9rem;letter-spacing:.06em;line-height:1.7;word-break:auto-phrase}
.tk-btn{white-space:nowrap;font-size:.86rem;padding:.9rem 1.5rem}
@media (min-width:961px){
  .util-strip{flex-wrap:nowrap}
  .util-strip>*{font-size:.67rem;padding:1rem .35rem;gap:.4rem;letter-spacing:.02em}
  .tk-flow li b{font-size:.85rem;letter-spacing:.04em}
}
@media (max-width:960px){ .cb-left h3{font-size:1.2rem;letter-spacing:.12em} }

/* =====================================================================
   マイページ v5 ── モック完全準拠（星空ヒーロー・一体型運勢カード・紺フッター）
   ===================================================================== */
/* ヘッダー：紋章ロゴ＋Latin */
.mh-brand{display:flex;align-items:center;gap:.65rem}
.mh-brand .be{display:grid;place-items:center;width:38px;height:38px;color:var(--gold-2);flex:none}
.mh-brand .be svg{width:38px;height:38px}
.mh-brand .bt{display:flex;flex-direction:column;gap:.15rem}
.mh-brand .bn{font-family:var(--mincho);font-size:1.05rem;letter-spacing:.22em;color:#F3EEDF}
.mh-brand .bl{font-family:var(--latin);font-size:.52rem;letter-spacing:.42em;color:rgba(196,160,82,.85);border:none;padding:0}
.mh-nav .mh-guide{appearance:none;background:none;border:none;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;
  font-size:.8rem;letter-spacing:.14em;color:rgba(237,233,223,.68);padding:.5rem .2rem;font-family:var(--gothic)}
.mh-nav .mh-guide:hover{color:#F0E6C8}

/* ヒーロー：深い星空＋星図（画像不使用） */
.mypage-v3 .mp-hero{position:relative;overflow:hidden;background:
  radial-gradient(1.1px 1.1px at 12% 30%,rgba(255,255,255,.7),transparent),
  radial-gradient(1.4px 1.4px at 26% 68%,rgba(255,255,255,.5),transparent),
  radial-gradient(1px 1px at 44% 22%,rgba(255,255,255,.6),transparent),
  radial-gradient(1.2px 1.2px at 58% 74%,rgba(255,255,255,.45),transparent),
  radial-gradient(1px 1px at 72% 38%,rgba(255,255,255,.6),transparent),
  radial-gradient(1.5px 1.5px at 86% 62%,rgba(255,255,255,.5),transparent),
  radial-gradient(1px 1px at 93% 18%,rgba(255,255,255,.55),transparent),
  radial-gradient(140% 120% at 82% 10%,rgba(88,74,158,.32),transparent 55%),
  linear-gradient(168deg,#0a1029 0%,#111a3e 46%,#1a2450 100%)}
.mypage-v3 .mp-hero .hero-chart{position:absolute;right:-1%;top:50%;transform:translateY(-50%);width:min(46%,560px);opacity:.9;pointer-events:none}
.mypage-v3 .mp-hero .hero-chart svg{width:100%;height:auto;display:block}
.mypage-v3 .mp-hero .hero-inner{position:relative;z-index:1;padding:3rem clamp(1.3rem,4vw,3rem) 4.4rem}
.mypage-v3 .mp-hero .hg{font-size:1.35rem;letter-spacing:.2em}
.mypage-v3 .mp-hero .hs{font-size:.88rem;line-height:2.2}

/* 今日の運勢：一体型カード（内部を金の細罫で分割） */
.tg2{grid-template-columns:1fr 1fr;gap:0;background:#FCF8EE;border:1px solid rgba(196,160,82,.5);border-radius:12px;
  box-shadow:0 12px 26px -18px rgba(31,37,66,.3);overflow:hidden}
.td-half{padding:1.7rem 1.9rem 1.5rem}
.td-half+.td-half{border-left:1px solid rgba(196,160,82,.35)}
.dot-g{background:var(--gold-deep)!important}

/* チャット誘導バンド：内側に飾り罫（二重枠） */
.cb-band{position:relative;border-radius:12px}
.cb-band::before{content:"";position:absolute;inset:9px;border:1px solid rgba(196,160,82,.4);border-radius:8px;pointer-events:none;z-index:0}
.cb-left,.cb-panel{position:relative;z-index:1}
.cb-panel{margin:1.7rem 1.7rem 1.7rem .4rem}

/* 深掘りメニュー：フラットな無地カード（モック準拠） */
.jw-card{border-radius:10px;box-shadow:0 10px 24px -16px rgba(20,26,55,.45);padding:1.5rem 1.5rem 1.3rem}
.jw-card::before{display:none}
.jw-card.jw-navy{background:#232f5c}
.jw-card.jw-green{background:#31503d}
.jw-card.jw-wine{background:#75303f}
.jw-card.jw-purple{background:#4a3a68}
.jw-card .ji{width:36px;height:36px;border-color:rgba(233,220,183,.55)}
.jw-card .ji svg{width:20px;height:20px}
.jw-card h4{font-size:.92rem}
.jw-card ul{min-height:0;margin-bottom:1.2rem}
.jw-btn{border-bottom:none;letter-spacing:.16em}
.jw-grid{align-items:stretch}

/* チケットバンド：左パネルはテキストのみ */
.tk-intro{display:flex;flex-direction:column;justify-content:center}
.tk-intro h3{margin-top:0}

/* フッター：紺・紋章＋リンク＋コピーライト */
.mp-foot{background:linear-gradient(170deg,#0d142f,#111a3e);border-top:1px solid rgba(196,160,82,.35);color:#EDE9DF;
  display:flex;align-items:center;gap:2.2rem;flex-wrap:wrap;padding:1.7rem clamp(1.2rem,4vw,3rem);margin-top:3.4rem}
.mp-foot .mf-brand{display:flex;align-items:center;gap:.6rem}
.mp-foot .mf-brand .be{color:var(--gold-2)}
.mp-foot .mf-brand .be svg{width:34px;height:34px;display:block}
.mp-foot .mf-brand .bt{display:flex;flex-direction:column;gap:.15rem}
.mp-foot .mf-brand .bn{font-family:var(--mincho);font-size:.95rem;letter-spacing:.2em;color:#F3EEDF}
.mp-foot .mf-brand .bl{font-family:var(--latin);font-size:.5rem;letter-spacing:.4em;color:rgba(196,160,82,.85)}
.mp-foot .mf-links{display:flex;gap:1.6rem;flex-wrap:wrap;margin:0 auto}
.mp-foot .mf-links a{color:rgba(237,233,223,.66);text-decoration:none;font-size:.72rem;letter-spacing:.06em}
.mp-foot .mf-links a:hover{color:#F0E6C8}
.mp-foot .mf-copy{font-family:var(--latin);font-size:.62rem;letter-spacing:.1em;color:rgba(237,233,223,.45)}

@media (max-width:960px){
  .mypage-v3 .mp-hero .hero-chart{width:78%;right:-22%;opacity:.5}
  .tg2{grid-template-columns:1fr}
  .td-half+.td-half{border-left:none;border-top:1px solid rgba(196,160,82,.35)}
  .mp-foot{flex-direction:column;gap:1.1rem;text-align:center}
  .mp-foot .mf-links{margin:0;justify-content:center}
}
/* v5: パネル幅制限の解除（ヒーロー全幅化。コンテンツ幅は .mp-body が管理） */
.mypage-v3 .mp-main>[data-panel]{max-width:none}

/* v6: 今日の運勢＝三分割一体型（左：干支の紺パネル・イラスト不使用） */
.tg3{display:grid;grid-template-columns:.92fr 1.14fr 1fr;gap:0;background:#FCF8EE;border:1px solid rgba(196,160,82,.5);
  border-radius:12px;box-shadow:0 12px 26px -18px rgba(31,37,66,.3);overflow:hidden}
.th-gz{position:relative;display:flex;align-items:center;justify-content:center;padding:1.7rem 1.4rem;color:#EDE9DF;overflow:hidden;
  background:radial-gradient(1px 1px at 22% 30%,rgba(255,255,255,.5),transparent),radial-gradient(1.2px 1.2px at 74% 64%,rgba(255,255,255,.4),transparent),linear-gradient(160deg,#1d2951,#0e1737)}
.th-gz .gz-orn{position:absolute;left:-34px;top:50%;transform:translateY(-50%);width:150px;height:150px;color:rgba(201,174,106,.5);pointer-events:none}
.th-gz .gz-orn svg{width:100%;height:100%}
.th-gz .gz-body{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;margin-left:2.4rem}
.th-gz .gz-lbl{font-size:.68rem;letter-spacing:.3em;color:var(--gold-2);border-bottom:1px solid rgba(196,160,82,.5);padding-bottom:.4rem}
.th-gz .gz-main{font-family:var(--mincho);font-size:2.15rem;letter-spacing:.24em;color:#F3EEDF;font-weight:600;margin-left:.24em}
.th-gz .gz-kana{font-size:.72rem;letter-spacing:.3em;color:rgba(237,233,223,.7)}
.th-gz .gz-note{font-size:.68rem;line-height:1.9;letter-spacing:.05em;color:rgba(237,233,223,.75);white-space:pre-line;
  border-top:1px solid rgba(196,160,82,.35);padding-top:.55rem;margin-top:.2rem}
.tg3 .td-half{padding:1.7rem 1.9rem 1.5rem}
.tg3 .td-half+.td-half{border-left:1px solid rgba(196,160,82,.35)}
@media (max-width:960px){
  .tg3{grid-template-columns:1fr}
  .tg3 .td-half+.td-half{border-left:none;border-top:1px solid rgba(196,160,82,.35)}
  .th-gz{padding:1.5rem}
  .th-gz .gz-orn{left:-40px;opacity:.7}
}

/* v7: ヒーロー＝支給画像 hero-sky.webp（左に文字用の紺グラデを重ねる） */
.mypage-v3 .mp-hero{background:
  linear-gradient(92deg,rgba(8,13,36,.88) 0%,rgba(8,13,36,.55) 38%,rgba(8,13,36,.08) 62%,rgba(8,13,36,0) 75%),
  url('../img/hero-sky.webp') right center / cover no-repeat #0a1029}
.mypage-v3 .mp-hero .hero-chart{display:none}
@media (max-width:960px){
  .mypage-v3 .mp-hero{background:
    linear-gradient(180deg,rgba(8,13,36,.82) 0%,rgba(8,13,36,.5) 60%,rgba(8,13,36,.2) 100%),
    url('../img/hero-sky.webp') 72% center / cover no-repeat #0a1029}
}

/* v8: 鑑定士アバター画像（チャット吹き出し・ホーム誘導バンド） */
.chat-ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:1px solid rgba(196,160,82,.55)}
.cb-note img.ava{flex:none;width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid rgba(196,160,82,.55);display:block}

/* =====================================================================
   v9 ── 質感の磨き込み（紙の風合い・柔影・金の飾り・艶）
   ===================================================================== */
/* 背景：フラット単色→上質紙の風合い（中央がほんのり明るく、金がにじむ） */
.mypage-v3{background:
  radial-gradient(1400px 700px at 50% -8%, rgba(255,253,246,.9), transparent 68%),
  radial-gradient(1100px 620px at 108% 104%, rgba(196,160,82,.09), transparent 58%),
  radial-gradient(900px 520px at -8% 82%, rgba(31,42,82,.05), transparent 55%),
  #F0EBDF}

/* 影：くっきり2段→紙が浮く柔らかい多層影 */
.qk-cards button,.tg3,.cb-band,.tk-band,.chat-recent,.util-strip{
  box-shadow:0 1px 2px rgba(31,37,66,.05),0 22px 46px -28px rgba(31,37,66,.4)}
.jw-card{box-shadow:0 1px 2px rgba(20,26,55,.14),0 20px 40px -24px rgba(20,26,55,.5)}

/* クイックカード：内側に細い金の飾り框 */
.qk-cards button{position:relative}
.qk-cards button::after{content:"";position:absolute;inset:7px;border:1px solid rgba(196,160,82,.22);border-radius:8px;pointer-events:none}

/* 今日の運勢：四隅に金の飾り角（鑑定書の框飾り） */
.tg3{position:relative;overflow:visible}
.tg3>*:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px;overflow:hidden}
.tg3>*:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}
.tg3::before,.tg3::after{content:"";position:absolute;width:22px;height:22px;pointer-events:none;z-index:2}
.tg3::before{top:-4px;left:-4px;border-top:1.5px solid rgba(176,140,64,.8);border-left:1.5px solid rgba(176,140,64,.8);border-top-left-radius:3px}
.tg3::after{bottom:-4px;right:-4px;border-bottom:1.5px solid rgba(176,140,64,.8);border-right:1.5px solid rgba(176,140,64,.8);border-bottom-right-radius:3px}

/* 深掘りカード：内側の飾り細枠を復活（無地のまま額装感） */
.jw-card::before{content:"";display:block;position:absolute;inset:7px;border:1px solid rgba(233,220,183,.26);border-radius:6px;pointer-events:none;background:none}
.jw-card{position:relative;transition:transform .35s,box-shadow .35s}
.jw-card:hover{transform:translateY(-3px);box-shadow:0 2px 3px rgba(20,26,55,.16),0 26px 50px -26px rgba(20,26,55,.6)}

/* 金ボタン：フラット→艶のある金 */
.tk-btn{background:linear-gradient(165deg,#DCC078 0%,#C1A054 42%,#A98A42 100%);
  border:1px solid rgba(255,251,238,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 24px -12px rgba(150,116,50,.6);
  text-shadow:0 1px 1px rgba(120,90,30,.35)}
.tk-btn:hover{filter:brightness(1.05)}
.chat-form button[type="submit"]{background:linear-gradient(165deg,#DCC078,#C1A054 50%,#A98A42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 20px -10px rgba(150,116,50,.55)}

/* ヒーロー文字：星空に沈まないよう淡い光暈 */
.mypage-v3 .mp-hero .hg{text-shadow:0 1px 18px rgba(4,8,24,.75)}
.mypage-v3 .mp-hero .hs{text-shadow:0 1px 14px rgba(4,8,24,.7)}

/* 干支：文字に上品な艶 */
.th-gz .gz-main{text-shadow:0 0 22px rgba(232,217,174,.35)}

/* セクション見出し：字間を広げ、風格を出す */
.sec-orn span{letter-spacing:.34em;padding-left:.34em}

/* 入力欄：真っ白→温かみのある生成り白 */
.cb-inputwrap textarea{background:#FFFEF9}
.chat-form textarea{background:#FFFEF9}
/* v9.1: 運勢カードの飾り角を四隅そろえて框飾りに */
.tg3 .cor{position:absolute;width:20px;height:20px;pointer-events:none;z-index:2}
.tg3::before{top:-5px;left:-5px;width:24px;height:24px;border-top:1.5px solid #B08C40;border-left:1.5px solid #B08C40;border-radius:0}
.tg3::after{bottom:-5px;right:-5px;width:24px;height:24px;border-bottom:1.5px solid #B08C40;border-right:1.5px solid #B08C40;border-radius:0}
.tg3 .cor-tr{top:-5px;right:-5px;border-top:1.5px solid #B08C40;border-right:1.5px solid #B08C40}
.tg3 .cor-bl{bottom:-5px;left:-5px;border-bottom:1.5px solid #B08C40;border-left:1.5px solid #B08C40}

/* =====================================================================
   v10 ── プロポーション総詰め（間延び＝テンプレ感の根絶・文字組みの精緻化）
   ===================================================================== */
/* 文字のレンダリング品質 */
.mypage-v3{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.mypage-v3 h1,.mypage-v3 h2,.mypage-v3 h3,.mypage-v3 h4,.mypage-v3 .gz-main,.mypage-v3 .td-head{font-feature-settings:"palt"}
.mypage-v3 ::selection{background:rgba(196,160,82,.25)}

/* ヒーロー：文字をやや絞って気品を出す */
.mypage-v3 .mp-hero .hero-inner{padding:2.7rem clamp(1.3rem,4vw,3rem) 4rem}
.mypage-v3 .mp-hero .hg{font-size:1.24rem}
.mypage-v3 .mp-hero .hs{font-size:.84rem;line-height:2.15}

/* クイックアクセス：モックの密度に合わせて凝縮 */
.qk-cards{gap:1rem;margin-top:-2.9rem}
.qk-cards button{padding:1.35rem .8rem 1.25rem;border-radius:10px}
.qk-cards button::after{border-radius:6px}
.qk-cards .qi{width:46px;height:46px;margin-bottom:.7rem}
.qk-cards .qi svg{width:24px;height:24px}
.qk-cards b{font-size:.92rem;margin-bottom:.35rem}
.qk-cards small{font-size:.67rem;line-height:1.65}

/* セクション見出し：ひかえめな大きさに */
.sec-orn{font-size:1.14rem;margin:2.6rem 0 1.5rem}

/* 今日の運勢：詰める */
.tg3{border-radius:10px}
.tg3 .td-half{padding:1.45rem 1.6rem 1.3rem}
.th-gz{padding:1.45rem 1.2rem}
.th-gz .gz-main{font-size:1.9rem}
.th-gz .gz-lbl{font-size:.64rem}
.th-gz .gz-note{font-size:.66rem;line-height:1.85}
.td-title{font-size:.86rem;margin-bottom:.85rem}
.td-head{font-size:1.02rem;margin-bottom:.6rem}
.td-body{font-size:.8rem;line-height:1.95;margin-bottom:.85rem}
.td-meta{font-size:.73rem;gap:1.4rem}
.td-kw{font-size:.74rem;padding:.5rem 1.1rem}
.daily-note{font-size:.68rem}

/* チャット誘導バンド：凝縮 */
.cb-band{border-radius:10px}
.cb-left{padding:2rem 2rem 1.8rem}
.cb-emblem{width:54px;height:54px;margin-bottom:.9rem}
.cb-emblem svg{width:32px;height:32px}
.cb-left h3{font-size:1.3rem;margin-bottom:.75rem}
.cb-left>p{font-size:.8rem;line-height:1.95;margin-bottom:1.2rem}
.cb-feats{gap:1.3rem;margin-bottom:1.4rem}
.cb-feats div{font-size:.63rem;line-height:1.65}
.cb-feats svg{width:24px;height:24px;margin-bottom:.45rem}
.cb-more{font-size:.8rem;padding:.6rem 1.4rem}
.cb-panel{padding:1.3rem 1.4rem;border-radius:10px;margin:1.4rem 1.4rem 1.4rem .3rem}
.cb-note{font-size:.75rem;margin-bottom:.85rem}
.cb-label{font-size:.69rem}
.cb-inputwrap textarea{font-size:.82rem;padding:.8rem 3rem .8rem .95rem}
.cb-send{width:34px;height:34px}
.cb-send svg{width:17px;height:17px}
.cb-caption{font-size:.63rem;margin-top:.6rem}

/* 深掘りメニュー：凝縮 */
.sec-sub{font-size:.74rem;margin:-1rem 0 1.4rem}
.jw-grid{gap:1rem}
.jw-card{border-radius:9px;padding:1.3rem 1.3rem 1.15rem}
.jw-card::before{border-radius:5px}
.jw-card h4{font-size:.87rem;margin-bottom:.75rem;gap:.6rem}
.jw-card .ji{width:34px;height:34px}
.jw-card .ji svg{width:19px;height:19px}
.jw-card ul{margin-bottom:1rem}
.jw-card ul li{font-size:.73rem;line-height:1.95}
.jw-btn{font-size:.76rem}

/* チケットバンド：凝縮 */
.tk-band{border-radius:10px}
.tk-intro h3{font-size:1.06rem;line-height:2}
.tk-intro p{font-size:.76rem;line-height:1.95}
.tp-lab{font-size:.84rem}
.tp-main b{font-size:2.05rem}
.tp-minis{font-size:.66rem}
.tp-minis svg{width:23px;height:23px}
.tk-btn{font-size:.82rem;padding:.85rem 1.4rem}
.tk-flow{margin:1.4rem;padding:1.3rem 1.35rem;border-radius:8px}
.tk-flow h4{font-size:.92rem}
.tk-flow li b{font-size:.82rem}
.tk-flow li small{font-size:.7rem;line-height:1.8}

/* ユーティリティ・フッター：凝縮 */
.util-strip{border-radius:8px}
.util-strip>*{padding:.85rem .35rem;font-size:.66rem}
.util-strip svg{width:15px;height:15px}
.mp-foot{padding:1.4rem clamp(1.2rem,4vw,3rem);margin-top:2.8rem}
.mp-foot .mf-brand .bn{font-size:.88rem}
.mp-foot .mf-links a{font-size:.68rem}

/* これまでのご相談 */
.chat-recent{border-radius:10px}

/* 影をさらに繊細に（線＞影が高級の作法） */
.qk-cards button,.tg3,.tk-band,.chat-recent,.util-strip{
  box-shadow:0 1px 2px rgba(31,37,66,.04),0 16px 34px -24px rgba(31,37,66,.3)}
@media (max-width:960px){ .qk-cards b{font-size:.86rem;letter-spacing:.05em;word-break:auto-phrase} }

/* =====================================================================
   v11 ── モック完全模写への追い込み（独自装飾の撤去・比率合わせ）
   ===================================================================== */
/* ヒーロー：モックの浅い比率に（カードが深く重なる構図） */
.mypage-v3 .mp-hero .hero-inner{padding:2.1rem clamp(1.3rem,4vw,3rem) 3.9rem}
.mypage-v3 .mp-hero .hg{font-size:1.16rem;letter-spacing:.22em;margin-bottom:.85rem}
.mypage-v3 .mp-hero .hs{font-size:.8rem;line-height:2.05}
.qk-cards{margin-top:-4.3rem}

/* 運勢カードの四隅飾りはモックに無いため撤去 */
.tg3::before,.tg3::after,.tg3 .cor{display:none!important;content:none}

/* チャットバンドの紋章バッジ：円の中に紋＋「専用チャット」（モックの璃砂AIバッジ構図） */
.cb-emblem{width:76px;height:76px;flex-direction:column;display:flex;align-items:center;justify-content:center;gap:.2rem;margin-bottom:1rem}
.cb-emblem svg{width:26px;height:26px}
.cb-emblem b{font-family:var(--mincho);font-size:.6rem;letter-spacing:.14em;color:var(--gold-2);font-weight:500;white-space:nowrap}
@media (max-width:960px){
  .qk-cards{margin-top:-3rem}
}

/* =====================================================================
   v12 ── モック反映（干支メダリオン・今日の導き・璃砂AIバッジ）
   ===================================================================== */
/* 干支パネル：左端で切れる飾り円 → 完全な円形メダリオン（十二支の文字入り） */
.th-gz{justify-content:flex-start;gap:1.15rem;padding:1.45rem 1.35rem}
.th-gz .gz-orn{display:none}
.gz-medal{position:relative;flex:none;width:94px;height:94px;color:rgba(206,178,112,.85)}
.gz-medal svg{position:absolute;inset:0;width:100%;height:100%}
.gz-medal b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mincho);font-size:2.7rem;font-weight:600;
  color:#EBDCB0;letter-spacing:0;text-shadow:0 0 20px rgba(232,217,174,.45);font-feature-settings:"palt"}
.th-gz .gz-body{margin-left:0;flex:1;min-width:0}
@media (max-width:960px){
  .th-gz{justify-content:center;gap:1.3rem}
  .gz-medal{width:86px;height:86px}
  .gz-medal b{font-size:2.4rem}
}

/* =====================================================================
   v13 ── 立体感の底上げ＋深掘りメニューに鑑定書ブック（TOPデザイン継承）
   ===================================================================== */
/* 深掘りカード：鑑定書の本を主役に（TOP book-grid の質感を継承） */
.jw-card{display:flex;flex-direction:column}
.jw-book{position:relative;height:148px;margin:.2rem 0 1.05rem}
.jw-book::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:62%;height:12px;
  background:radial-gradient(50% 100% at 50% 50%,rgba(0,0,0,.5),transparent 72%);filter:blur(2px)}
.jw-book img{position:absolute;inset:0 12% 5px;width:76%;height:calc(100% - 5px);object-fit:contain;z-index:1;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.5)) drop-shadow(0 2px 12px rgba(196,160,82,.25));
  transition:transform .45s ease}
.jw-card:hover .jw-book img{transform:translateY(-6px) rotate(-1.2deg)}
.jw-btn{margin-top:auto}

/* 宝石色カード：フラット単色 → 光源を感じるグラデ＋多層影 */
.jw-card.jw-navy{background:linear-gradient(168deg,#2d3c72 0%,#232f5c 45%,#192245 100%)}
.jw-card.jw-green{background:linear-gradient(168deg,#3e614c 0%,#31503d 45%,#253e30 100%)}
.jw-card.jw-wine{background:linear-gradient(168deg,#873b4d 0%,#75303f 45%,#5c2532 100%)}
.jw-card.jw-purple{background:linear-gradient(168deg,#584570 0%,#4a3a68 45%,#392c53 100%)}
.jw-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 4px rgba(20,26,55,.18),0 26px 48px -24px rgba(20,26,55,.65)}
.jw-card:hover{transform:translateY(-5px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 3px 6px rgba(20,26,55,.2),0 34px 60px -26px rgba(20,26,55,.75)}

/* アイボリーカード群：紙の縁の光＋二層影で「浮く」 */
.qk-cards button,.tg3,.tk-band,.util-strip,.chat-recent{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(31,37,66,.07),
  0 12px 24px -14px rgba(31,37,66,.28),0 34px 64px -36px rgba(31,37,66,.42)}
.qk-cards button:hover{transform:translateY(-4px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 3px rgba(31,37,66,.08),
  0 18px 32px -16px rgba(31,37,66,.34),0 44px 76px -38px rgba(31,37,66,.5)}

/* クイックカードの円アイコン：彫金のような凹凸 */
.qk-cards .qi{background:linear-gradient(160deg,#FFFDF6,#F1E7CF);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.9),inset 0 -2px 4px rgba(176,140,64,.18),0 4px 10px -4px rgba(31,37,66,.28)}

/* チャット誘導バンド：内パネルを一段浮かせる */
.cb-band{box-shadow:0 2px 4px rgba(10,16,44,.25),0 30px 60px -28px rgba(10,16,44,.75)}
.cb-panel{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 14px 30px -16px rgba(5,9,26,.55)}

/* 紺パネル（干支・チケット導入）：内側の陰影で奥行き */
.th-gz{box-shadow:inset 0 0 60px rgba(8,13,36,.55)}
.tk-intro{box-shadow:inset 0 0 70px rgba(5,9,28,.5)}

@media (max-width:960px){
  .jw-book{height:128px}
}

/* =====================================================================
   v14 ── チャットまわりの崩れ修正
   ===================================================================== */
/* 残り回数バッジ：hidden属性がdisplay指定に負けて空のピルが出るのを防ぐ */
.ai-quota[hidden]{display:none!important}

/* チャット誘導バンド（モバイル）：入力パネルが左に寄り内枠線と交差するのを修正 */
@media (max-width:960px){
  .cb-panel{margin:0 1.1rem 1.2rem}
}

/* =====================================================================
   v15（撤回）── エンブレム横並びはモックと異なったため削除。
   モックどおり「エンブレム→見出し→説明→特徴→ボタン」の縦積みに戻す。
   ===================================================================== */

/* =====================================================================
   v16 ── モック忠実化（占いチャット帯・個別の質問帯の間延び解消）
   ===================================================================== */
/* 占いチャット帯：説明文はモックと同じ位置で折り返す */
.cb-left>p{word-break:auto-phrase;line-break:strict;max-width:30em}

/* 個別の質問帯：中央カラムを詰め、ボタンをアイコン直下に（モックは空白なし） */
.tk-price{justify-content:center}
.tk-btn{margin-top:1.3rem}
.tp-main{margin-bottom:1.1rem}
.tp-minis{margin-bottom:0}

/* ご利用の流れ：行間を締めて帯全体の高さをモックに近づける */
.tk-flow{margin:1.3rem;padding:1.2rem 1.3rem}
.tk-flow h4{margin-bottom:1rem}
.tk-flow li{padding-bottom:1.05rem}
.tk-flow li small{line-height:1.7;margin-top:.15rem}
.tk-flow li:not(:last-child)::after{top:1.7rem;bottom:.2rem}

/* 左の紺イントロ：モックの密度に */
.tk-intro{padding:1.9rem 1.8rem}
.tk-intro h3{line-height:1.9;margin-bottom:.85rem}
.tk-intro p{line-height:1.9}

/* v16.1 ── ご利用の流れ：カラムを広げて折り返しを減らし、帯の高さをモックへ */
.tk-band{grid-template-columns:1fr 1.18fr 1.08fr}
.tk-flow{margin:1.1rem;padding:1.1rem 1.2rem}
.tk-flow li{padding-left:2.3rem;padding-bottom:.9rem}
.tk-flow li small{font-size:.68rem}
.tk-flow li:not(:last-child)::after{top:1.6rem}
@media (max-width:960px){
  .tk-band{grid-template-columns:1fr}
}

/* v16.2 ── 占いチャット帯：左カラムをモックの密度に（縦の間延び解消） */
.cb-left{padding:1.7rem 2rem 1.6rem}
.cb-emblem{width:62px;height:62px;margin-bottom:.7rem}
.cb-emblem svg{width:20px;height:20px}
.cb-emblem b{font-size:.56rem}
.cb-left h3{font-size:1.22rem;margin-bottom:.6rem}
.cb-left>p{margin-bottom:1rem;line-height:1.9}
.cb-feats{gap:1.2rem;margin-bottom:1.15rem}
.cb-more{padding:.55rem 1.35rem;font-size:.78rem}
.cb-panel{margin:1.2rem 1.2rem 1.2rem .3rem;padding:1.2rem 1.3rem}
@media (max-width:960px){
  .cb-panel{margin:0 1.1rem 1.1rem}
}

/* =====================================================================
   v17 ── 占いチャット帯の立体感（光源・金の光暈・彫金エンブレム）
   ===================================================================== */
/* 帯：左上からの金の光暈＋右下の周辺減光で「照らされた夜空」に */
.cb-band{background:
  radial-gradient(1.2px 1.2px at 20% 25%,rgba(255,255,255,.5),transparent),
  radial-gradient(1px 1px at 72% 60%,rgba(255,255,255,.4),transparent),
  radial-gradient(1.4px 1.4px at 55% 20%,rgba(255,255,255,.35),transparent),
  radial-gradient(1px 1px at 38% 78%,rgba(255,255,255,.3),transparent),
  radial-gradient(1.1px 1.1px at 88% 30%,rgba(255,255,255,.35),transparent),
  radial-gradient(90% 130% at 6% -10%,rgba(196,160,82,.2),transparent 52%),
  radial-gradient(120% 150% at 108% 118%,rgba(3,6,18,.85),transparent 58%),
  linear-gradient(155deg,#1c2957,#0d1637 62%,#0a1029);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 4px rgba(10,16,44,.3),0 30px 60px -28px rgba(10,16,44,.8)}

/* エンブレム：フラットな線の円 → 彫金メダリオン（艶・内影・発光） */
.cb-emblem{border:none;background:
  radial-gradient(circle at 30% 26%,rgba(255,244,214,.2),transparent 58%),
  linear-gradient(160deg,rgba(196,160,82,.18),rgba(8,13,36,.25));
  box-shadow:0 0 0 1px rgba(196,160,82,.7),0 0 0 4px rgba(196,160,82,.12),
    inset 0 1px 5px rgba(255,240,200,.25),inset 0 -7px 14px rgba(4,8,24,.55),
    0 7px 16px -6px rgba(0,0,0,.65),0 0 26px rgba(196,160,82,.2)}

/* 見出し：ほのかな光暈で夜空から浮かせる */
.cb-left h3{text-shadow:0 1px 2px rgba(4,8,24,.65),0 0 28px rgba(196,160,82,.3)}

/* 特徴アイコン：裸の線アイコン → 小さな金の円章 */
.cb-feats svg{width:42px;height:42px;padding:10px;border-radius:50%;
  background:radial-gradient(circle at 30% 26%,rgba(255,244,214,.16),transparent 60%),rgba(196,160,82,.08);
  box-shadow:0 0 0 1px rgba(196,160,82,.55),inset 0 -4px 9px rgba(4,8,24,.5),
    inset 0 1px 3px rgba(255,240,200,.18),0 5px 12px -5px rgba(0,0,0,.55);
  margin-bottom:.6rem}

/* 詳しく見るボタン：うっすら金を張って浮かせる */
.cb-more{background:linear-gradient(160deg,rgba(196,160,82,.14),rgba(196,160,82,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 8px 18px -9px rgba(0,0,0,.6)}
.cb-more:hover{background:rgba(196,160,82,.2)}

/* 入力パネル：紙の厚み＋金の照り返しで一段浮かせる */
.cb-panel{border-color:rgba(196,160,82,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 2px rgba(4,8,24,.4),
    0 20px 42px -18px rgba(3,6,20,.8),0 0 30px -8px rgba(196,160,82,.18)}

/* 入力欄：彫り込みの内影／送信ボタン：艶 */
.cb-inputwrap textarea{box-shadow:inset 0 2px 5px rgba(31,37,66,.09)}
.cb-send{background:linear-gradient(150deg,#2d3d70,#101c40);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 7px 15px -6px rgba(0,0,0,.6)}

/* v18 ── 璃砂AI表記の削除に伴い、エンブレムは紋章のみ（アイコンを拡大） */
.cb-emblem svg{width:30px;height:30px}

/* v19 ── エンブレム円を削除し、左カラムは中央揃えで空白を均等に */
.cb-left{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.3rem 2rem}
.cb-left h3{margin-bottom:.7rem}
.cb-left>p{max-width:32em}
.cb-feats{justify-content:center;margin-bottom:1.3rem}

/* v20 ── 特徴アイコンを支給画像3種に差し替え（CSS円章は廃止） */
.cb-feats img.fi{display:block;width:68px;height:68px;object-fit:contain;margin:0 auto .65rem;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.5)) drop-shadow(0 0 16px rgba(196,160,82,.22))}

/* v21 ── ヘッダー/フッターのブランドをTOPページ準拠（紋章なし・名前＋タグライン） */
.mh-brand .bn{font-size:1.16rem;letter-spacing:.26em}
.mh-brand .bl{font-family:var(--gothic);font-size:.56rem;letter-spacing:.16em;color:rgba(237,233,223,.55)}
.mh-brand .bl::before,.mh-brand .bl::after{content:"—";margin:0 .4rem;color:var(--gold)}
.mp-foot .mf-brand .bl{font-family:var(--gothic);font-size:.56rem;letter-spacing:.14em;color:rgba(237,233,223,.5)}
.mp-foot .mf-brand .bl::before,.mp-foot .mf-brand .bl::after{content:"—";margin:0 .35rem;color:var(--gold)}

/* v22 ── チャット帯：左の余白解消（アイコンを全幅に分散＋入力パネル拡大） */
@media (min-width:961px){
  .cb-band{grid-template-columns:1fr 1.18fr}
}
.cb-feats{width:100%;grid-template-columns:repeat(3,1fr);gap:0;justify-content:stretch}
.cb-inputwrap textarea{min-height:122px}

/* v22.1 ── 入力欄がパネルの余り高さを埋めて伸びるように */
.cb-inputwrap{flex:1;display:flex}
.cb-inputwrap textarea{height:auto;min-height:122px}

/* v23 ── 財運カード：紫 → 深い金（お金・起業鑑定の装丁と調和） */
.jw-card.jw-gold{background:linear-gradient(168deg,#8d6d35 0%,#785a2b 45%,#5e4621 100%)}

/* =====================================================================
   v24 ── 鑑定オプション：5分類（可変枚数）・モック準拠デザイン
   ===================================================================== */
.og-head{display:flex;align-items:center;gap:.9rem;margin:2.6rem 0 1.2rem}
.og-head:first-of-type{margin-top:1.4rem}
.og-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none;
  box-shadow:0 6px 14px -6px rgba(20,26,55,.5),inset 0 1px 2px rgba(255,255,255,.2)}
.og-ico svg{width:20px;height:20px}
.og-navy{background:linear-gradient(150deg,#2a4271,#132549)}
.og-green{background:linear-gradient(150deg,#476b53,#20372a)}
.og-gold{background:linear-gradient(150deg,#c9a758,#8a6c2c)}
.og-wine{background:linear-gradient(150deg,#94566b,#5a2b3b)}
.og-purple{background:linear-gradient(150deg,#69578e,#352759)}
.og-num{font-family:var(--latin);font-size:1.55rem;line-height:1;color:var(--gold-deep);font-weight:500}
.og-head h3{font-family:var(--mincho);font-size:1.2rem;letter-spacing:.1em;color:var(--ink)}
.og-head .line{flex:1;height:1px;background:linear-gradient(90deg,rgba(196,160,82,.55),rgba(196,160,82,.08))}

.og-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.og-card{position:relative;display:flex;flex-direction:column;background:#FCF8EE;border:1px solid rgba(196,160,82,.4);
  border-radius:12px;padding:1.5rem 1.6rem 1.4rem;
  box-shadow:0 1px 2px rgba(31,37,66,.04),0 16px 34px -24px rgba(31,37,66,.3);transition:transform .35s,box-shadow .35s}
.og-card:hover{transform:translateY(-3px);box-shadow:0 2px 3px rgba(31,37,66,.06),0 24px 44px -22px rgba(31,37,66,.42)}
.og-card h4{font-family:var(--mincho);font-size:1.06rem;letter-spacing:.04em;color:var(--ink);margin-bottom:.6rem;padding-right:3.6rem}
.og-card p{font-size:.79rem;line-height:1.9;color:var(--ink-soft);margin-bottom:1.15rem;padding-right:2.6rem;
  min-height:4.5em;word-break:auto-phrase}
.og-art{position:absolute;top:1.35rem;right:1.4rem;color:var(--gold-deep);opacity:.92;pointer-events:none}
.og-art svg{width:50px;height:50px;filter:drop-shadow(0 3px 5px rgba(150,116,50,.18))}
.og-btn{margin-top:auto;align-self:stretch;text-align:center;padding:.72rem;border-radius:7px;
  font-family:var(--mincho);font-size:.86rem;letter-spacing:.16em;color:#4a3a1a;
  background:linear-gradient(165deg,#e6cf8f,#c9a758 46%,#a98a42);border:1px solid rgba(255,251,238,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 18px -10px rgba(150,116,50,.55);
  text-shadow:0 1px 1px rgba(255,248,225,.4);transition:filter .3s,transform .3s}
.og-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}

@media (max-width:960px){
  .og-grid{grid-template-columns:1fr}
  .og-card p{min-height:0;padding-right:2.2rem}
  .og-head{margin:2.2rem 0 1rem}
}

/* v25 ── 鑑定オプション：分類アイコンを支給画像（色円章）に差し替え */
.og-ico{width:48px;height:48px;background:none;box-shadow:none;overflow:visible}
.og-ico img{width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 4px 9px rgba(20,26,55,.3))}

/* v26 ── 鑑定オプション：価格欄 */
.og-price{display:flex;align-items:baseline;gap:.5rem;margin:.15rem 0 1rem;padding-top:.85rem;
  border-top:1px dashed rgba(196,160,82,.45)}
.og-price .lbl{font-size:.72rem;letter-spacing:.08em;color:var(--ink-soft)}
.og-price b{font-family:var(--mincho);font-size:1.4rem;letter-spacing:.02em;color:var(--gold-deep);margin-left:auto;line-height:1}
.og-price small{font-size:.62rem;color:var(--muted)}

/* =====================================================================
   v27 ── 鑑定オプション：詳細モーダル
   ===================================================================== */
.og-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem}
.og-modal[hidden]{display:none}
.ogm-overlay{position:absolute;inset:0;background:rgba(6,12,38,.62);backdrop-filter:blur(3px)}
.ogm-dialog{position:relative;z-index:1;width:min(100%,540px);max-height:88vh;overflow-y:auto;
  background:linear-gradient(180deg,#FDFAF2,#F7F1E4);border:1px solid rgba(196,160,82,.5);border-radius:16px;
  box-shadow:0 40px 80px -30px rgba(6,12,38,.7);padding:2.2rem 2.2rem 1.8rem;animation:ogmIn .3s ease}
@keyframes ogmIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ogm-x{position:absolute;top:1rem;right:1.1rem;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  color:var(--ink-soft);background:rgba(196,160,82,.1);border:1px solid rgba(196,160,82,.3);cursor:pointer;transition:background .3s}
.ogm-x:hover{background:rgba(196,160,82,.2)}
.ogm-x svg{width:16px;height:16px}
.ogm-cat{display:inline-block;font-size:.68rem;letter-spacing:.1em;color:#fff;padding:.3rem .85rem;border-radius:99px;margin-bottom:.85rem}
.og-c-navy{background:linear-gradient(150deg,#2a4271,#132549)}
.og-c-green{background:linear-gradient(150deg,#476b53,#20372a)}
.og-c-gold{background:linear-gradient(150deg,#c9a758,#8a6c2c)}
.og-c-wine{background:linear-gradient(150deg,#94566b,#5a2b3b)}
.og-c-purple{background:linear-gradient(150deg,#69578e,#352759)}
.ogm-dialog h3{font-family:var(--mincho);font-size:1.5rem;letter-spacing:.06em;color:var(--ink);margin-bottom:.7rem;padding-right:2rem}
.ogm-price{display:flex;align-items:baseline;gap:.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(196,160,82,.35);margin-bottom:1.2rem}
.ogm-price span{font-size:.74rem;color:var(--ink-soft)}
.ogm-price b{font-family:var(--mincho);font-size:1.5rem;color:var(--gold-deep);margin-left:.2rem}
.ogm-price small{font-size:.64rem;color:var(--muted)}
.ogm-lead{font-size:.9rem;line-height:2;color:var(--ink);margin-bottom:1.5rem;word-break:auto-phrase}
.ogm-sec h4{font-family:var(--mincho);font-size:1.02rem;letter-spacing:.06em;color:var(--gold-deep);margin-bottom:.85rem}
.ogm-sec ul{list-style:none;margin-bottom:1.4rem}
.ogm-sec li{position:relative;padding-left:1.7rem;font-size:.87rem;line-height:1.9;color:var(--ink);margin-bottom:.55rem;word-break:auto-phrase}
.ogm-sec li::before{content:"✦";position:absolute;left:.1rem;top:.05em;color:var(--gold-deep);font-size:.82em}
.ogm-who{font-size:.82rem;line-height:1.9;color:var(--ink-soft);background:rgba(196,160,82,.08);border:1px solid rgba(196,160,82,.28);
  border-radius:10px;padding:.9rem 1.1rem;margin-bottom:1rem;word-break:auto-phrase}
.ogm-who b{display:block;font-family:var(--mincho);font-size:.78rem;letter-spacing:.08em;color:var(--gold-deep);margin-bottom:.3rem}
.ogm-note{font-size:.74rem;color:var(--muted);margin-bottom:1.2rem;line-height:1.7}
.ogm-foot{display:flex;gap:.8rem;justify-content:flex-end;align-items:center;border-top:1px solid rgba(196,160,82,.3);padding-top:1.3rem}
.ogm-close{cursor:pointer;font-family:var(--mincho);font-size:.86rem;color:var(--ink-soft);padding:.7rem 1.4rem;
  border:1px solid rgba(31,37,66,.25);border-radius:8px;background:none;transition:border-color .3s,color .3s}
.ogm-close:hover{border-color:var(--gold-deep);color:var(--gold-deep)}
.ogm-apply{font-family:var(--mincho);font-size:.86rem;letter-spacing:.08em;color:#4a3a1a;padding:.72rem 1.6rem;border-radius:8px;
  text-decoration:none;background:linear-gradient(165deg,#e6cf8f,#c9a758 46%,#a98a42);border:1px solid rgba(255,251,238,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 18px -10px rgba(150,116,50,.55);transition:filter .3s}
.ogm-apply:hover{filter:brightness(1.05)}
@media (max-width:600px){
  .og-modal{padding:1rem}
  .ogm-dialog{padding:1.9rem 1.4rem 1.4rem}
  .ogm-dialog h3{font-size:1.32rem}
  .ogm-foot{flex-direction:column-reverse;align-items:stretch}
  .ogm-close,.ogm-apply{text-align:center}
}

/* ============ 統合メソッド（4術の光が中央のクリスタルへ収束） ============ */
/* 統合分析カードを廃したので4カラムに。カード間の接続ダッシュも解除（下の光で繋ぐ） */
.about .flow{grid-template-columns:repeat(4,minmax(0,1fr))}
.about .flow-card:not(:last-child)::after{display:none}
.about .flow-card h4 .no{font-family:var(--latin);font-size:.82em;letter-spacing:.14em;color:var(--gold-deep);margin-right:.5em}
/* 説明文の長さが違っても英字ラベルがカード下端で揃うように */
.about .flow-card{display:flex;flex-direction:column}
.about .flow-card .pillno{margin-top:auto;padding-top:.6rem}
/* 説明文：左揃え＋文節単位の改行（単語の途中で切れる不自然な折り返しを防ぐ）
   text-wrap:pretty で「す。」のような極端に短い最終行（ウィドウ）を回避 */
.about .flow-card p{text-align:left;word-break:auto-phrase;line-break:strict;text-wrap:pretty}

/* 光画像は上部に約9%の透明余白がある。%マージン（＝幅基準）で打ち消し、
   4枚のカードの下端から光が立ち上がって見えるように密着させる */
.integ{margin-top:-4%}
.integ-stage{position:relative;max-width:1100px;margin:0 auto}
.integ-flow{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.integ-bottom{display:grid;grid-template-columns:1.12fr auto .88fr;align-items:center;
  gap:clamp(1rem,3vw,2.4rem);margin-top:-7%}
.integ-lead{justify-self:end;text-align:center;width:100%;max-width:27rem}
.integ-lead h3{font-family:var(--mincho);font-size:clamp(1.15rem,2.2vw,1.5rem);letter-spacing:.2em;
  color:var(--gold-deep);display:flex;align-items:center;justify-content:center;gap:.8rem;margin-bottom:.9rem}
.integ-lead h3 .orn{font-size:.66em;color:var(--gold)}
.integ-lead p{font-size:clamp(.8rem,1.2vw,.9rem);line-height:2.1;color:var(--ink-soft);letter-spacing:.03em}
.integ-crystal{display:block;width:clamp(220px,30vw,380px);height:auto;
  filter:drop-shadow(0 16px 38px rgba(196,160,82,.26))}

@media (max-width:820px){
  .about .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .integ-bottom{grid-template-columns:1fr;margin-top:-3%;gap:.6rem}
  .integ-crystal{order:1;margin:0 auto;width:min(60vw,290px)}
  .integ-lead{order:2;justify-self:center;max-width:26rem}
}

/* 三点セット：右の「本質を知ることで〜」パネルを廃止したため1カラム中央寄せに */
.essence .essence-grid{grid-template-columns:1fr;justify-items:center}
.essence .essence-grid > div{width:100%;max-width:940px}

/* ============ ご利用者の声：流れるカルーセル＋男女アイコン ============ */
.voice-marquee{overflow:hidden;margin-top:2.6rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.vm-track{display:flex;width:max-content;animation:vm-scroll 32s linear infinite}
/* マウスのある端末だけ hover で一時停止。スマホは1度タップすると hover が残り続け、
   カルーセルが止まったままになるため、タッチ端末では hover 停止を効かせない */
@media (hover:hover) and (pointer:fine){
  .voice-marquee:hover .vm-track{animation-play-state:paused}
}
.vm-set{display:flex;gap:1.3rem;padding:.6rem .65rem .9rem;align-items:stretch}
@keyframes vm-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.vm-set .voice-card{width:min(340px,78vw);flex:none;animation:vm-float 5.4s ease-in-out infinite}
.vm-set .voice-card:nth-child(2n){animation-delay:-1.8s}
.vm-set .voice-card:nth-child(3n){animation-delay:-3.2s}
.vm-set .voice-card:nth-child(5n){animation-delay:-2.5s}
.vm-set .voice-card:nth-child(7n){animation-delay:-4.3s}
@keyframes vm-float{0%,100%{transform:translateY(4px)}50%{transform:translateY(-7px)}}
.voices .voices-note{padding:0 1rem}
/* 男女アイコン（男性＝紺／女性＝ワイン） */
.voice-meta .vc svg{width:22px;height:22px}
.voice-meta .vc-m{background:linear-gradient(150deg,var(--navy-700),var(--navy-900));color:#DCE4F5}
.voice-meta .vc-f{background:linear-gradient(150deg,#8a4152,#5d2733);color:#F7DEE4}
/* 動きを抑える設定の方には静止＋横スクロールで提供 */
@media (prefers-reduced-motion: reduce){
  .vm-track{animation:none;overflow-x:auto}
  .vm-set .voice-card{animation:none}
  .voice-marquee{-webkit-mask-image:none;mask-image:none}
}
@media (max-width:720px){
  .vm-track{animation-duration:40s}   /* スマホは読める速さに（タッチで一時停止も可） */
  .vm-set{gap:.9rem;padding:.5rem .45rem .8rem}
}

/* スマホは1列に（2列だとカード幅が狭すぎて説明文が細切れに折り返されるため） */
@media (max-width:600px){
  .about .flow{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto;gap:1rem}
  .about .flow-card{padding:1.4rem 1.2rem}
  .about .flow-card p{font-size:.82rem;line-height:1.95}
}

/* ============ スマホUI改善（タップ領域・iOS自動ズーム対策） ============ */
@media (max-width:820px){
  /* ハンバーガー：線の見た目（28x18）はそのまま、タップ領域だけ44pxへ拡大 */
  .nav-toggle{position:relative}
  .nav-toggle::after{content:"";position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);width:44px;height:44px}
  /* フッターのリンク：行間を広げて指で押しやすく */
  .site-footer .footer-links a{display:inline-block;padding:.55rem .2rem;line-height:1.5}
  /* 入力欄は16px以上に（iOS Safariでフォーカス時に画面が拡大するのを防ぐ） */
  .field input,.field textarea,.field select,
  .lfield input,.lfield textarea,.lfield .inp input,
  .chat-form textarea,.cb-inputwrap textarea,
  .apply-card input,.apply-card textarea,
  .apply-card .field input,.apply-card .field textarea{font-size:16px}
  /* 小さすぎる補助文字の底上げ */
  .site-header .brand .tag,.mh-brand .bl{font-size:.68rem}
  .flow-card .pillno{font-size:.68rem}
}

/* 準備中のため非リンク化した項目（利用規約・プライバシー・特定商取引法） */
.link-off{cursor:default;opacity:.55}
.site-footer .footer-links .link-off{color:inherit}
.mp-foot .link-off,.util-strip .link-off{color:inherit}

/* ============ 命式戦略とは v2（4つの占術が重なり、命式戦略へ） ============ */
.about-v2{position:relative;overflow:hidden}
.ab2-bg{position:absolute;inset:0;pointer-events:none}
.ab2-bg svg{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:min(1240px,150vw);height:auto}

/* ① タイトル ② 説明文 */
.ab2-head{text-align:center;margin-bottom:clamp(2.6rem,5vw,4rem);position:relative}
.ab2-title{font-family:var(--mincho);font-size:clamp(1.5rem,3vw,2.05rem);letter-spacing:.3em;padding-left:.3em;color:var(--ink);font-weight:600}
.ab2-title::after{content:"";display:block;width:54px;height:1px;margin:1.2rem auto 0;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.ab2-lead{margin-top:1.5rem;font-size:clamp(.87rem,1.4vw,.96rem);line-height:2.25;color:var(--ink-2);font-weight:300;letter-spacing:.07em}

/* ③ 四つの占術カード（半透明・細金枠・ガラス質） */
.ab2-cards{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.ab2-card{position:relative;text-align:center;padding:1.9rem 1.25rem 1.65rem;border-radius:9px;
  background:linear-gradient(168deg,rgba(255,255,255,.74),rgba(252,249,242,.46));
  border:1px solid rgba(196,160,82,.34);
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
  box-shadow:0 12px 30px -20px rgba(27,37,66,.22);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),border-color .5s,box-shadow .5s}
.ab2-card:hover{transform:translateY(-3px);border-color:rgba(196,160,82,.62);
  box-shadow:0 18px 38px -20px rgba(27,37,66,.3)}
.ab2-ico{display:grid;place-items:center;width:50px;height:50px;margin:0 auto .95rem;color:var(--gold-deep);transition:color .5s}
.ab2-card:hover .ab2-ico{color:var(--gold)}
.ab2-ico svg{width:100%;height:100%}
.ab2-card h3{font-family:var(--mincho);font-size:1.03rem;letter-spacing:.16em;color:var(--ink);font-weight:600}
.ab2-en{display:block;font-family:var(--latin);font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);margin:.4rem 0 .85rem}
.ab2-card p{font-size:.78rem;line-height:1.95;color:var(--ink-soft);text-align:left;word-break:auto-phrase;line-break:strict;text-wrap:pretty}

/* ④ メインビジュアル */
.ab2-stage{position:relative;height:clamp(360px,44vw,520px);margin-top:clamp(1.4rem,3.5vw,2.6rem)}
.ab2-aura{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(820px,110vw);height:96%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(167,143,210,.16),rgba(196,160,82,.09) 52%,transparent 76%);
  animation:ab2-breathe 4.4s ease-in-out infinite}
@keyframes ab2-breathe{0%,100%{opacity:.6}50%{opacity:1}}

/* 円環（薄い金・ゆっくり回転。scaleYで天球儀のような楕円に） */
.ab2-ring{position:absolute;left:50%;top:50%;color:var(--gold);pointer-events:none}
.rg1{width:min(560px,88vw);animation:ab2-spin1 24s linear infinite}
.rg2{width:min(680px,102vw);animation:ab2-spin2 32s linear infinite}
@keyframes ab2-spin1{from{transform:translate(-50%,-50%) scaleY(.34) rotate(0deg)}to{transform:translate(-50%,-50%) scaleY(.34) rotate(360deg)}}
@keyframes ab2-spin2{from{transform:translate(-50%,-50%) scaleY(.34) rotate(360deg)}to{transform:translate(-50%,-50%) scaleY(.34) rotate(0deg)}}

/* 中央の光柱（上→下へ流れ、ゆっくり脈動） */
.ab2-beam{position:absolute;left:50%;top:3%;bottom:9%;width:2px;transform:translateX(-50%);z-index:6;
  background:linear-gradient(180deg,transparent,rgba(255,252,240,.9) 10%,rgba(220,192,126,.85) 55%,rgba(196,160,82,.9) 88%,transparent);
  overflow:hidden;border-radius:2px}
.ab2-beam::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,transparent 0 8px,rgba(255,255,255,.95) 20px,transparent 34px 96px);
  background-size:100% 96px;animation:ab2-flow 3.9s linear infinite}
@keyframes ab2-flow{from{background-position:0 -96px}to{background-position:0 96px}}
.ab2-beamglow{position:absolute;left:50%;top:3%;bottom:9%;width:16px;transform:translateX(-50%);z-index:5;filter:blur(6px);
  background:linear-gradient(180deg,transparent,rgba(220,192,126,.34) 18%,rgba(196,160,82,.3) 80%,transparent);
  animation:ab2-pulse 4.2s ease-in-out infinite}
@keyframes ab2-pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* 4枚のレイヤー（ガラス質の菱形・縁のみ金） */
.ab2-lw{position:absolute;left:calc(50% - 150px);width:300px;transition-property:opacity,transform}
.lw1{top:1%;z-index:2}.lw2{top:20%;z-index:3;transition-delay:.18s}
.lw3{top:39%;z-index:4;transition-delay:.36s}.lw4{top:58%;z-index:5;transition-delay:.54s}
.ab2-layer{aspect-ratio:1;border:1px solid rgba(220,192,126,.55);border-radius:6px;
  box-shadow:0 26px 44px -24px rgba(10,18,40,.4),inset 0 0 34px rgba(255,255,255,.05)}
.ab2-layer svg{width:100%;height:100%;display:block}
.ab2-layer.l1{background:linear-gradient(135deg,rgba(34,58,110,.92),rgba(12,23,66,.88));animation:ab2-lay1 8s ease-in-out infinite}
.ab2-layer.l2{background:linear-gradient(135deg,rgba(66,50,112,.9),rgba(38,28,74,.88));animation:ab2-lay2 9.2s ease-in-out infinite}
.ab2-layer.l3{background:linear-gradient(135deg,rgba(48,76,142,.9),rgba(20,36,84,.88));animation:ab2-lay3 8.6s ease-in-out infinite}
.ab2-layer.l4{background:linear-gradient(135deg,rgba(16,27,68,.94),rgba(4,10,36,.9));animation:ab2-lay4 9.8s ease-in-out infinite}
@keyframes ab2-lay1{0%,100%{transform:perspective(950px) translateY(0) rotateX(64deg) rotateZ(45deg)}50%{transform:perspective(950px) translateY(-9px) rotateX(64deg) rotateZ(46.4deg)}}
@keyframes ab2-lay2{0%,100%{transform:perspective(950px) translateY(0) rotateX(64deg) rotateZ(45deg)}50%{transform:perspective(950px) translateY(-8px) rotateX(64deg) rotateZ(43.8deg)}}
@keyframes ab2-lay3{0%,100%{transform:perspective(950px) translateY(0) rotateX(64deg) rotateZ(45deg)}50%{transform:perspective(950px) translateY(-10px) rotateX(64deg) rotateZ(46.2deg)}}
@keyframes ab2-lay4{0%,100%{transform:perspective(950px) translateY(0) rotateX(64deg) rotateZ(45deg)}50%{transform:perspective(950px) translateY(-7px) rotateX(64deg) rotateZ(44deg)}}

/* レイヤー通過点の発光（光が上から順に灯る） */
.ab2-node{position:absolute;left:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;z-index:7;pointer-events:none;
  background:radial-gradient(circle,rgba(255,252,240,.95),rgba(220,192,126,.55) 45%,transparent 72%);
  animation:ab2-node 3.9s ease-in-out infinite;opacity:.25}
.nd1{top:12%}.nd2{top:31%;animation-delay:.95s}.nd3{top:50%;animation-delay:1.9s}.nd4{top:69%;animation-delay:2.85s}
@keyframes ab2-node{0%,100%{opacity:.22;box-shadow:0 0 6px 2px rgba(196,160,82,.16)}10%{opacity:1;box-shadow:0 0 16px 6px rgba(196,160,82,.42)}30%{opacity:.3}}

/* 収束点のきらめき */
.ab2-spark{position:absolute;left:50%;top:88%;width:18px;height:18px;transform:translate(-50%,-50%);z-index:7;pointer-events:none;
  background:radial-gradient(circle,#FFFDF6,rgba(235,217,166,.85) 34%,rgba(196,160,82,.4) 58%,transparent 75%);
  border-radius:50%;animation:ab2-spark 3.9s ease-in-out infinite}
@keyframes ab2-spark{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.85)}82%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}}

/* 光粒子（白・金・淡ラベンダーのみ／ゆっくり漂う） */
.ab2-p{position:absolute;border-radius:50%;pointer-events:none;z-index:6;opacity:0}
.p1{left:38%;top:22%;width:4px;height:4px;background:rgba(235,217,166,.9);animation:ab2-drift1 11s ease-in-out infinite}
.p2{left:62%;top:34%;width:3px;height:3px;background:rgba(255,255,255,.9);animation:ab2-drift2 13s ease-in-out 1.2s infinite}
.p3{left:44%;top:58%;width:3px;height:3px;background:rgba(196,160,82,.8);animation:ab2-drift1 12s ease-in-out 2.4s infinite}
.p4{left:57%;top:70%;width:4px;height:4px;background:rgba(213,197,238,.85);animation:ab2-drift2 10s ease-in-out .6s infinite}
.p5{left:31%;top:44%;width:3px;height:3px;background:rgba(235,217,166,.75);animation:ab2-drift2 14s ease-in-out 3.1s infinite}
.p6{left:68%;top:52%;width:3px;height:3px;background:rgba(213,197,238,.8);animation:ab2-drift1 12.5s ease-in-out 1.8s infinite}
.p7{left:49%;top:12%;width:3px;height:3px;background:rgba(255,255,255,.8);animation:ab2-drift2 9.5s ease-in-out 4s infinite}
.p8{left:41%;top:80%;width:3px;height:3px;background:rgba(196,160,82,.7);animation:ab2-drift1 13.5s ease-in-out 2.1s infinite}
@keyframes ab2-drift1{0%,100%{opacity:0;transform:translate(0,0)}25%{opacity:.85}50%{opacity:.4;transform:translate(10px,-16px)}75%{opacity:.7}}
@keyframes ab2-drift2{0%,100%{opacity:0;transform:translate(0,0)}30%{opacity:.75}55%{opacity:.35;transform:translate(-12px,-12px)}80%{opacity:.6}}

/* ⑤ 命式戦略への収束 */
.ab2-final{text-align:center;margin-top:.2rem;position:relative}
.ab2-finmark{display:block;color:var(--gold);font-size:.78rem;margin-bottom:1rem;animation:ab2-pulse 4.2s ease-in-out infinite}
.ab2-finname{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,3vw,1.9rem);
  font-family:var(--mincho);font-weight:600;color:var(--ink);
  font-size:clamp(1.85rem,4.6vw,2.85rem);letter-spacing:.3em}
.ab2-finname span{padding-left:.3em}
.ab2-finname::before,.ab2-finname::after{content:"";height:1px;width:clamp(38px,10vw,120px);flex:none}
.ab2-finname::before{background:linear-gradient(90deg,transparent,var(--gold-2))}
.ab2-finname::after{background:linear-gradient(90deg,var(--gold-2),transparent)}
.ab2-fintext{margin-top:1.35rem;font-size:clamp(.85rem,1.3vw,.94rem);line-height:2.15;color:var(--ink-2);letter-spacing:.06em;font-weight:300}

/* 動きを抑える設定の方には静止で提供 */
@media (prefers-reduced-motion:reduce){
  .about-v2 .ab2-stage *,.about-v2 .ab2-aura,.about-v2 .ab2-finmark{animation:none!important}
}

/* レスポンシブ */
@media (max-width:960px){
  .ab2-cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .ab2-cards{grid-template-columns:1fr;max-width:400px;margin-inline:auto}
  .ab2-stage{height:320px}
  .ab2-lw{left:calc(50% - 100px);width:200px}
  .lw1{top:3%}.lw2{top:21%}.lw3{top:39%}.lw4{top:57%}
  .nd1{top:12%}.nd2{top:30%}.nd3{top:48%}.nd4{top:66%}
  .ab2-spark{top:85%}
  .ab2-beam{bottom:12%}.ab2-beamglow{bottom:12%;width:12px}
  .p5,.p6,.p7,.p8{display:none}   /* スマホは粒子を減らして負荷を抑える */
  .ab2-card p{font-size:.82rem}
}

/* ── 「命式戦略とは」質感調整（フラットなAI感を消す職人ディテール） ── */
/* カード：真っ白→温かい紙調、内側に細い飾り框、影は多層の柔影に */
.ab2-card{background:linear-gradient(172deg,#FDFBF4,#F6F0E2);
  box-shadow:0 1px 2px rgba(27,37,66,.05),0 20px 44px -26px rgba(27,37,66,.34)}
.ab2-card::before{content:"";position:absolute;inset:7px;border:1px solid rgba(196,160,82,.16);border-radius:6px;pointer-events:none;transition:border-color .5s}
.ab2-card:hover::before{border-color:rgba(196,160,82,.32)}
/* 絵画調アートのメダリオン（金の艶リング＋外周の細環） */
.ab2-medal{position:relative;display:block;width:88px;height:88px;margin:0 auto 1.1rem;border-radius:50%;padding:4px;
  background:linear-gradient(155deg,rgba(235,217,166,.9),rgba(196,160,82,.75) 45%,rgba(156,124,51,.9));
  box-shadow:0 12px 24px -12px rgba(27,37,66,.45)}
.ab2-medal img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.ab2-medal::after{content:"";position:absolute;inset:-6px;border:1px solid rgba(196,160,82,.3);border-radius:50%;transition:border-color .5s,box-shadow .5s;pointer-events:none}
.ab2-card:hover .ab2-medal::after{border-color:rgba(196,160,82,.6);box-shadow:0 0 16px rgba(196,160,82,.28)}
/* レイヤー：星屑・柔らかな艶・縁の金のにじみを足してベクター感を消す */
.ab2-layer{position:relative;
  box-shadow:0 26px 44px -24px rgba(10,18,40,.46),0 0 28px -6px rgba(196,160,82,.2),inset 0 0 34px rgba(255,255,255,.05)}
.ab2-layer::after{content:"";position:absolute;inset:0;border-radius:6px;pointer-events:none;
  background:
    radial-gradient(130% 100% at 28% 16%,rgba(255,255,255,.13),transparent 52%),
    radial-gradient(1.3px 1.3px at 22% 30%,rgba(255,255,255,.8),transparent),
    radial-gradient(1px 1px at 68% 22%,rgba(235,217,166,.75),transparent),
    radial-gradient(1.2px 1.2px at 78% 62%,rgba(255,255,255,.6),transparent),
    radial-gradient(1px 1px at 34% 72%,rgba(235,217,166,.65),transparent),
    radial-gradient(1px 1px at 55% 44%,rgba(255,255,255,.5),transparent),
    radial-gradient(1px 1px at 88% 40%,rgba(255,255,255,.45),transparent)}
/* 文字の艶（詰め＋なめらか描画） */
.ab2-title,.ab2-finname,.ab2-card h3{font-feature-settings:"palt";-webkit-font-smoothing:antialiased}

/* ── 組み合わせ版：メインビジュアルを支給アート（ガラス層）に差し替え ── */
.ab2-stage{height:auto;padding:0}
.ab2-glass{position:relative;z-index:3;display:block;width:min(900px,96vw);height:auto;margin:0 auto}
/* 画像は透過PNG（白背景はアセット側で除去済み） */
/* 光の位置を画像の交点に合わせる（実測値） */
.ab2-beam,.ab2-beamglow{top:1%;bottom:1%}
.ab2-node.nd1{top:15.7%}.ab2-node.nd2{top:43.8%}.ab2-node.nd3{top:65.8%}.ab2-node.nd4{top:78.5%}
.ab2-spark{top:97%}
.ab2-aura{height:118%}
.ab2-ring.rg1{width:min(760px,96vw)}
.ab2-ring.rg2{width:min(920px,110vw)}
@media (max-width:600px){
  .ab2-stage{height:auto}
  .ab2-beam,.ab2-beamglow{top:1%;bottom:1%}
  .ab2-node.nd1{top:15.7%}.ab2-node.nd2{top:43.8%}.ab2-node.nd3{top:65.8%}.ab2-node.nd4{top:78.5%}
  .ab2-spark{top:97%}
}

/* ── 金のオーラの場：ガラス層アートの光が四術カードを包み込む ── */
.ab2-field{position:relative}
.ab2-field .flow{position:relative;z-index:2}
.ab2-fieldaura{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  width:min(1240px,128vw);height:114%;pointer-events:none;z-index:0;
  background:
    radial-gradient(46% 52% at 50% 68%,rgba(202,168,92,.42),rgba(235,217,166,.22) 45%,rgba(235,217,166,.08) 62%,transparent 76%),
    radial-gradient(58% 36% at 50% 26%,rgba(235,217,166,.28),rgba(196,160,82,.11) 55%,transparent 78%),
    radial-gradient(52% 56% at 50% 60%,transparent 55%,rgba(196,160,82,.16) 64%,transparent 73%);
  animation:ab2-aurapulse 5.2s ease-in-out infinite}
@keyframes ab2-aurapulse{0%,100%{opacity:.75}50%{opacity:1}}
/* 立ちのぼる金のきらめき（アートからカードへ） */
.ab2-fsp{position:absolute;z-index:2;color:var(--gold);pointer-events:none;opacity:0;
  text-shadow:0 0 12px rgba(196,160,82,.9),0 0 26px rgba(235,217,166,.5);
  animation:ab2-rise var(--d,10s) ease-in-out var(--dl,0s) infinite}
.f1{left:5%;top:8%;font-size:1rem;--d:11s}
.f2{right:6%;top:14%;font-size:1.15rem;--d:9.5s;--dl:1.6s}
.f3{left:12%;top:58%;font-size:1.05rem;--d:12s;--dl:3.2s}
.f4{right:11%;top:64%;font-size:.92rem;--d:10.5s;--dl:2.2s}
.f5{left:30%;top:35%;font-size:.8rem;--d:13s;--dl:4.4s}
.f6{right:29%;top:40%;font-size:.9rem;--d:11.5s;--dl:5.6s}
.f7{left:49%;top:74%;font-size:1.05rem;--d:9s;--dl:1s}
@keyframes ab2-rise{
  0%,100%{opacity:0;transform:translateY(14px) scale(.8)}
  25%{opacity:.9;transform:translateY(2px) scale(1)}
  55%{opacity:.4;transform:translateY(-12px) scale(.92)}
  80%{opacity:.65;transform:translateY(-20px) scale(.85)}
  95%{opacity:0}}
/* 動きを抑える設定・スマホ負荷 */
@media (prefers-reduced-motion:reduce){.ab2-fieldaura,.ab2-fsp{animation:none!important}.ab2-fsp{opacity:.5}}
@media (max-width:600px){.f5,.f6,.f7{display:none}.ab2-fieldaura{width:150vw}}

/* ── きらめき増量（f8〜f14）＋4段落リード ── */
.ab2-lead-multi{max-width:44rem;margin:1.6rem auto 0}
.ab2-lead-multi p{font-size:clamp(.87rem,1.4vw,.96rem);line-height:2.2;color:var(--ink-2);font-weight:300;letter-spacing:.06em;text-wrap:pretty}
.ab2-lead-multi p+p{margin-top:1.05em}
.f8{right:4%;top:34%;font-size:.9rem;--d:10s;--dl:.8s}
.f9{left:7%;top:30%;font-size:.72rem;--d:12.5s;--dl:2.8s}
.f10{right:16%;top:6%;font-size:.68rem;--d:11s;--dl:4.1s}
.f11{left:20%;top:12%;font-size:.6rem;--d:9.8s;--dl:5.3s}
.f12{right:24%;top:78%;font-size:.95rem;--d:10.6s;--dl:3.7s}
.f13{left:27%;top:84%;font-size:.7rem;--d:12s;--dl:1.4s}
.f14{right:41%;top:22%;font-size:.58rem;--d:13.5s;--dl:6.2s}
@media (max-width:600px){.f7,.f8,.f9,.f10,.f11,.f12,.f13,.f14{display:none}}
@media (max-width:600px){.f8,.f9{display:block}}  /* スマホは6個表示 */

/* ── キラキラ増量：✦ f15〜f24 ＋ 微細な光の粒（グリッター） ── */
.f15{left:3%;top:48%;font-size:.85rem;--d:8.5s;--dl:.4s}
.f16{right:8%;top:50%;font-size:.7rem;--d:9.2s;--dl:2s}
.f17{left:24%;top:26%;font-size:.6rem;--d:10s;--dl:3.4s}
.f18{right:26%;top:18%;font-size:.72rem;--d:8.8s;--dl:4.6s}
.f19{left:50%;top:4%;font-size:.66rem;--d:9.6s;--dl:1.1s}
.f20{left:38%;top:64%;font-size:.8rem;--d:8.2s;--dl:2.7s}
.f21{right:37%;top:70%;font-size:.62rem;--d:10.4s;--dl:5s}
.f22{left:16%;top:90%;font-size:.74rem;--d:9s;--dl:3s}
.f23{right:14%;top:88%;font-size:.85rem;--d:8.6s;--dl:1.8s}
.f24{left:64%;top:33%;font-size:.58rem;--d:11s;--dl:6s}
/* 光の粒：小さな丸い輝き（速めの瞬きでキラキラ感を出す） */
.ab2-gd{position:absolute;z-index:2;width:5px;height:5px;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#FFFDF4 0 28%,rgba(235,217,166,.9) 45%,rgba(196,160,82,.35) 70%,transparent 100%);
  box-shadow:0 0 8px 2px rgba(235,217,166,.55);
  animation:ab2-glint var(--d,3.4s) ease-in-out var(--dl,0s) infinite}
@keyframes ab2-glint{0%,100%{opacity:0;transform:scale(.5)}45%{opacity:1;transform:scale(1.15)}70%{opacity:.35;transform:scale(.8)}}
.g1{left:9%;top:16%;--d:3.2s}
.g2{right:9%;top:24%;--d:4.1s;--dl:.9s}
.g3{left:26%;top:44%;--d:3.6s;--dl:1.7s}
.g4{right:25%;top:38%;--d:3s;--dl:2.4s}
.g5{left:48%;top:14%;width:4px;height:4px;--d:4.4s;--dl:.5s}
.g6{right:44%;top:56%;--d:3.8s;--dl:3.1s}
.g7{left:12%;top:70%;--d:3.3s;--dl:1.2s}
.g8{right:12%;top:74%;width:6px;height:6px;--d:4.6s;--dl:2s}
.g9{left:33%;top:80%;--d:3.5s;--dl:.2s}
.g10{right:31%;top:86%;--d:4s;--dl:2.8s}
.g11{left:55%;top:92%;width:4px;height:4px;--d:3.4s;--dl:1.5s}
.g12{right:52%;top:8%;--d:4.2s;--dl:3.6s}
.g13{left:70%;top:60%;--d:3.1s;--dl:.7s}
.g14{right:68%;top:28%;width:4px;height:4px;--d:4.8s;--dl:4.2s}
/* きらめきの光をさらに強く */
.ab2-fsp{text-shadow:0 0 12px rgba(196,160,82,.95),0 0 30px rgba(235,217,166,.6)}
/* 動きを抑える設定 */
@media (prefers-reduced-motion:reduce){.ab2-gd{animation:none!important;opacity:.4}}
/* スマホは間引いて負荷を抑える */
@media (max-width:600px){
  .f15,.f16,.f17,.f18,.f19,.f20,.f21,.f22,.f23,.f24{display:none}
  .f15,.f20{display:block}
  .g7,.g8,.g9,.g10,.g11,.g12,.g13,.g14{display:none}
}

/* ── オーラ自体のキラキラ：微細な星屑2層が交互に瞬く ── */
.ab2-fieldaura::before,.ab2-fieldaura::after{content:"";position:absolute;inset:4% 8%;pointer-events:none;
  animation:ab2-dust 4.6s ease-in-out infinite}
.ab2-fieldaura::before{
  background-image:
    radial-gradient(2.2px 2.2px at 16% 30%,rgba(255,253,244,.95),transparent),
    radial-gradient(1.6px 1.6px at 30% 62%,rgba(235,217,166,.9),transparent),
    radial-gradient(2px 2px at 44% 22%,rgba(255,253,244,.85),transparent),
    radial-gradient(1.5px 1.5px at 57% 48%,rgba(235,217,166,.85),transparent),
    radial-gradient(2.4px 2.4px at 68% 70%,rgba(255,253,244,.9),transparent),
    radial-gradient(1.6px 1.6px at 80% 34%,rgba(235,217,166,.85),transparent),
    radial-gradient(2px 2px at 88% 58%,rgba(255,253,244,.8),transparent),
    radial-gradient(1.4px 1.4px at 24% 84%,rgba(235,217,166,.8),transparent),
    radial-gradient(1.8px 1.8px at 50% 90%,rgba(255,253,244,.85),transparent),
    radial-gradient(1.5px 1.5px at 8% 52%,rgba(235,217,166,.8),transparent)}
.ab2-fieldaura::after{animation-delay:-2.3s;
  background-image:
    radial-gradient(1.8px 1.8px at 22% 18%,rgba(235,217,166,.9),transparent),
    radial-gradient(2.2px 2.2px at 38% 44%,rgba(255,253,244,.9),transparent),
    radial-gradient(1.5px 1.5px at 52% 12%,rgba(235,217,166,.85),transparent),
    radial-gradient(2px 2px at 63% 58%,rgba(255,253,244,.85),transparent),
    radial-gradient(1.5px 1.5px at 74% 26%,rgba(235,217,166,.85),transparent),
    radial-gradient(2.4px 2.4px at 84% 76%,rgba(255,253,244,.9),transparent),
    radial-gradient(1.6px 1.6px at 12% 72%,rgba(235,217,166,.85),transparent),
    radial-gradient(2px 2px at 34% 92%,rgba(255,253,244,.8),transparent),
    radial-gradient(1.4px 1.4px at 66% 88%,rgba(235,217,166,.8),transparent),
    radial-gradient(1.8px 1.8px at 92% 42%,rgba(255,253,244,.85),transparent)}
@keyframes ab2-dust{0%,100%{opacity:.12}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ab2-fieldaura::before,.ab2-fieldaura::after{animation:none!important;opacity:.35}}

/* ── 煌めき強化：鋭い閃光カーブ＋十字の光芒 ── */
/* ✦：浮遊の途中でパッと強く光る */
@keyframes ab2-rise{
  0%{opacity:0;transform:translateY(14px) scale(.7)}
  8%{opacity:1;transform:translateY(10px) scale(1.18)}
  15%{opacity:.5;transform:translateY(7px) scale(.95)}
  42%{opacity:.9;transform:translateY(-2px) scale(1.05)}
  50%{opacity:.4}
  72%{opacity:.75;transform:translateY(-14px) scale(.9)}
  100%{opacity:0;transform:translateY(-24px) scale(.7)}}
/* 光の粒：一瞬の閃光→すっと消える（宝石の瞬き） */
@keyframes ab2-glint{
  0%,100%{opacity:0;transform:scale(.3)}
  5%{opacity:1;transform:scale(1.4)}
  11%{opacity:.8;transform:scale(1)}
  22%{opacity:.12;transform:scale(.55)}
  60%{opacity:0}}
/* オーラの星屑：明滅を鋭く・速く */
@keyframes ab2-dust{0%,100%{opacity:.08}36%{opacity:1}58%{opacity:.18}}
.ab2-fieldaura::before,.ab2-fieldaura::after{animation-duration:3.1s}
.ab2-fieldaura::after{animation-delay:-1.55s}
/* 光の粒に十字の光芒（キラッと走る線） */
.ab2-gd::before,.ab2-gd::after{content:"";position:absolute;left:50%;top:50%;
  width:18px;height:1.3px;border-radius:1px;
  background:linear-gradient(90deg,transparent,rgba(255,253,244,.95),transparent);
  transform:translate(-50%,-50%)}
.ab2-gd::after{transform:translate(-50%,-50%) rotate(90deg)}
/* 粒の瞬きテンポを速く（頻度アップ） */
.g1{--d:2.6s}.g2{--d:3.2s}.g3{--d:2.9s}.g4{--d:2.5s}.g5{--d:3.5s}.g6{--d:3s}.g7{--d:2.7s}
.g8{--d:3.6s}.g9{--d:2.8s}.g10{--d:3.3s}.g11{--d:2.6s}.g12{--d:3.4s}.g13{--d:2.5s}.g14{--d:3.7s}

/* ── スマホのバランス調整（命式戦略とは） ── */
@media (max-width:600px){
  /* 説明文：左揃え＋文節改行で読みやすく */
  .ab2-lead-multi{text-align:left}
  .ab2-lead-multi p{font-size:.86rem;line-height:2.05;word-break:auto-phrase;line-break:strict}
  /* メインビジュアル：画面幅を超えて大きく見せる（セクションでクリップ） */
  .ab2-stage{margin-top:2.2rem}
  .ab2-glass{width:150vw;max-width:none;margin-left:calc(50% - 75vw)}
  /* オーラ：縦長全域ではなくアート周辺に凝縮 */
  .ab2-fieldaura{top:auto;bottom:-70px;left:50%;transform:translateX(-50%);
    width:190vw;height:380px}
  /* きらめき・光の粒：アートのまわりへ再配置（下端基準） */
  .ab2-fsp,.ab2-gd{top:auto!important}
  .f1{bottom:230px;left:6%}.f2{bottom:180px;right:7%}
  .f3{bottom:95px;left:11%}.f4{bottom:38px;right:12%}
  .f8{bottom:245px;right:28%}.f9{bottom:120px;left:30%}
  .f15{bottom:18px;left:22%}.f20{bottom:265px;left:48%}
  .g1{bottom:200px;left:16%}.g2{bottom:150px;right:19%}
  .g3{bottom:60px;left:36%}.g4{bottom:105px;right:34%}
  .g5{bottom:22px;right:26%}.g6{bottom:250px;left:60%}
}

/* ── スマホ：会員サポート見出しの階段状の折り返しを解消（斜め見え対策） ── */
@media (max-width:600px){
  .aichat h2{text-wrap:balance}
  .aichat h2 .nb{white-space:normal;word-break:auto-phrase;line-break:strict}
}

/* ── トップページ：説明文フォントサイズの統一（0.9rem / 行間2.05） ── */
.hero-sub,
.ab2-lead-multi p,
.about .flow-card p,
.ab2-fintext,
.tri-card .desc,
.aichat-sub,
.ac-step p,
.voice-card p,
.mb-item p,
.opt-cat p,
.book-card p,
.start-cta p{font-size:.9rem;line-height:2.05}

/* ── 三点セットの右ズレ修正（スマホ）：ピルの改行禁止が幅を押し広げていた ── */
.essence-grid > div{min-width:0}
@media (max-width:600px){
  /* 600px以下は1列。3列のままだとカード幅が文節（最長12文字）より狭くなり、
     説明文がカードからはみ出す（431〜600pxの帯で発生していた） */
  .triset{grid-template-columns:1fr;gap:1.4rem;max-width:100%}
  .tri-foot .tri-pill{display:inline-block;max-width:100%;white-space:normal;line-height:2;text-align:center;padding:.65rem 1.4rem}
}

/* ── スマホ：三点セットの文字も中央揃え＋サブタイトルの折り返し調整 ── */
@media (max-width:600px){
  .tri-card{text-align:center}
  .ehead .opt-sub{font-size:.8rem;word-break:auto-phrase;line-break:strict;text-wrap:balance}
}

/* ── 説明文の中央揃え統一（各占術カード・命式戦略とは本文） ── */
.about .flow-card p{text-align:center}
@media (max-width:600px){
  .ab2-lead-multi{text-align:center}
}

/* =====================================================================
   v10 ── マイページ：スマホ表示の改善（改行の乱れ・文字サイズ・余白）
   ===================================================================== */
/* PC専用／スマホ専用の強制改行（同じ<br>が両方で綺麗になることはない） */
br.pc-br{display:inline}
br.sp-br{display:none}
@media (max-width:960px){
  br.pc-br{display:none}
  br.sp-br{display:inline}
}

/* 日本語の文節改行：「お答え」「お間違い」などが語の途中で割れないように */
.mypage-v3 .mp-hero .hs,
.mypage-v3 .lead-c,
.mypage-v3 .sec-sub,
.mypage-v3 .cb-left > p,
.mypage-v3 .cb-note,
.mypage-v3 .cb-caption,
.mypage-v3 .cb-feats div,
.mypage-v3 .qk-cards small,
.mypage-v3 .td-head,
.mypage-v3 .td-body,
.mypage-v3 .daily-note,
.mypage-v3 .jw-card h4,
.mypage-v3 .jw-card ul li,
.mypage-v3 .tk-intro h3,
.mypage-v3 .tk-intro p,
.mypage-v3 .tp-minis div,
.mypage-v3 .tk-flow li b,
.mypage-v3 .tk-flow li small,
.mypage-v3 .mk-ready p,
.mypage-v3 .chat-bubble,
.mypage-v3 .chat-note,
.mypage-v3 .pf-hint,
.mypage-v3 .pf-msg,
.mypage-v3 .report-card .meta,
.mypage-v3 .og-card p,
.mypage-v3 .consult-intro p,
.mypage-v3 .ogm-lead{word-break:auto-phrase;line-break:strict}

/* 下部タブバー：「命式」タブ廃止で4項目 */
.mypage-v3 .mp-tabbar{grid-template-columns:repeat(4,1fr)}

/* フッターのリンク：<span class="link-off"> が未指定で大きく出ていたのを揃える */
.mp-foot .mf-links > *{font-size:.72rem;letter-spacing:.06em;color:rgba(237,233,223,.66);text-decoration:none}
.mp-foot .mf-links .link-off{color:rgba(237,233,223,.4);cursor:default}

@media (max-width:960px){
  /* 見出しが「オプ／ション」のように途中で割れないように */
  .mypage-v3 .sec-orn span{font-size:1.12rem;letter-spacing:.12em;padding:0 1.5rem;word-break:auto-phrase;text-wrap:balance}
  .mypage-v3 .sec-orn span::before{left:.35rem}
  .mypage-v3 .sec-orn span::after{right:.35rem}
  .mypage-v3 .sec-orn::before,.mypage-v3 .sec-orn::after{flex-basis:18px}

  /* ヒーロー：行間と文字を詰めて3行に収める */
  .mypage-v3 .mp-hero .hero-inner{padding:2.6rem 1.3rem 3.6rem}
  .mypage-v3 .mp-hero .hg{font-size:1.2rem;letter-spacing:.14em;margin-bottom:.9rem}
  .mypage-v3 .mp-hero .hs{font-size:.83rem;line-height:2.05;letter-spacing:.01em}

  /* クイックアクセス4カード：高さを詰める */
  .qk-cards button{padding:1.3rem .6rem 1.2rem}
  .qk-cards .qi{width:48px;height:48px;margin-bottom:.6rem}
  .qk-cards .qi svg{width:25px;height:25px}
  .qk-cards small{font-size:.66rem;line-height:1.65}

  /* 今日の運勢 */
  .tg3 .td-half{padding:1.4rem 1.2rem 1.3rem}
  .td-meta{gap:1.1rem;font-size:.72rem}
  .td-kw{font-size:.72rem;padding:.5rem .9rem;line-height:1.9}

  /* チャット誘導バンド */
  .cb-left > p{font-size:.8rem;line-height:1.95;margin-bottom:1.2rem}
  .cb-feats{gap:.5rem}
  .cb-feats div{font-size:.62rem;line-height:1.6}
  .cb-note{align-items:flex-start;font-size:.75rem;line-height:1.85}
  .cb-note img.ava{margin-top:.1rem}

  /* 深掘りメニュー：書影を小さくして1枚あたりの高さを抑える */
  .jw-card .jw-book img{max-height:150px}
  .jw-card{padding:1.2rem 1.2rem 1.1rem}

  /* チケットバンド */
  .tk-intro{padding:1.6rem 1.3rem}
  .tk-intro h3{font-size:1.02rem;line-height:1.85}
  .tp-minis div{font-size:.6rem;padding:0 .3rem}
  .tk-btn{white-space:normal;font-size:.82rem;line-height:1.7;padding:.85rem 1.1rem}
  .tk-flow{margin:1.2rem;padding:1.3rem 1.1rem}

  /* ご登録情報 */
  .pf-hint{font-size:.76rem;line-height:1.95}

  /* 本文下の余白：タブバー分の逃げはフッターが持つので本文側は通常量に */
  .mypage-v3 .mp-body{padding-bottom:2.6rem}
  .mypage-v3 .mp-foot{margin-top:2.4rem}

  /* フッター：リンクを縦積みにして中央で揃える
     （v5 の padding ショートハンドで下余白が消え、著作権表記がタブバーに隠れていた） */
  .mp-foot{padding:1.7rem 1.2rem calc(66px + 1.6rem)}
  .mp-foot .mf-links{flex-direction:column;gap:.75rem;align-items:center}
  .mp-foot .mf-links > *{font-size:.74rem}

  /* チャット：鑑定士側の吹き出しは幅いっぱいに
     （文節改行だと吹き出しが最長文節の幅まで縮み、右端が大きく余っていた） */
  .mypage-v3 .chat-thread{padding:1.2rem 1rem}
  .mypage-v3 .chat-bubble{font-size:.86rem;padding:.85rem .95rem}
  .mypage-v3 .chat-msg{gap:.6rem}
  .mypage-v3 .chat-msg.from-reader .chat-bubble{flex:1 1 auto;min-width:0}
  /* 送信ボタン：折り返して左に取り残されていたので全幅のタップ領域に */
  .mypage-v3 .chat-form .chat-actions{flex-direction:column;align-items:stretch;gap:.6rem}
  .mypage-v3 .chat-form .chat-actions .btn{width:100%;text-align:center}

  /* チャット相談：連携完了メッセージ */
  .mypage-v3 .mk-ready{align-items:flex-start}
  .mypage-v3 .mk-ready .mkr-ico{margin-top:.1rem}
  .mypage-v3 .mk-ready p{line-height:1.95}
  .mypage-v3 .mk-ready p b{display:block;margin-bottom:.35rem;font-size:.92rem;line-height:1.7}
}
