:root{
  --ink:#2b2118; --ink-soft:#5b4a38; --paper:#f4ecdc; --paper2:#efe5cf;
  --line:#d8c9a8; --seal:#b23a2e; --seal-dark:#8f2a20; --gold:#9a7b34; --gold-bright:#c79a3a;
}
*{box-sizing:border-box;}
body{
  font-family:"Noto Serif TC","Songti TC",serif;
  color:var(--ink); background:#e7dcc4; margin:0;
  padding:32px 16px; line-height:1.9; font-size:19px;
}
.wrap{
  max-width:700px; margin:0 auto; background:var(--paper);
  background-image:radial-gradient(circle at 20% 8%,rgba(255,255,255,.4),transparent 60%);
  border:1px solid var(--line); border-radius:6px;
  box-shadow:0 8px 40px rgba(60,40,20,.16);
  padding:44px 40px 52px;
}
.brand{letter-spacing:.5em; font-size:14px; color:var(--gold); text-align:center; margin-bottom:8px;}
h1{font-size:34px; font-weight:700; letter-spacing:.1em; text-align:center; margin:0 0 10px;}
.subtitle{text-align:center; color:var(--ink-soft); font-size:17px; margin-bottom:8px;}
.divider{border:none; border-top:2px double var(--line); margin:24px 0;}
p{font-size:19px;}
.center{text-align:center;}
.btn{
  display:inline-block; cursor:pointer; border:none;
  background:linear-gradient(180deg,#c5453a 0%,var(--seal) 55%,var(--seal-dark) 100%);
  color:#fff; font-family:inherit; font-weight:700;
  font-size:21px; letter-spacing:.12em; padding:17px 40px; min-height:56px; border-radius:6px;
  text-decoration:none; box-shadow:0 3px 0 rgba(0,0,0,.2), inset 0 0 0 2px rgba(255,225,150,.35);
}
.btn:hover{filter:brightness(1.06);}
.btn.ghost{background:transparent; color:var(--seal); border:2px solid var(--seal); box-shadow:none; font-weight:700;}
.seal{display:inline-block; color:#fff; background:var(--seal); font-size:14px;
      letter-spacing:.25em; padding:6px 15px; border-radius:3px;}
/* 測題 */
.q{border:1px solid var(--line); background:var(--paper2); border-radius:6px;
   padding:20px 22px; margin:16px 0;}
.q-title{font-weight:700; font-size:19px; margin-bottom:12px;}
.opt{display:block; margin:8px 0; padding:13px 16px; border:1px solid var(--line);
     border-radius:5px; background:#fbf6ea; cursor:pointer; font-size:18px;}
.opt:hover{border-color:var(--seal);}
.opt input{margin-right:10px; transform:scale(1.25);}
.opt.sel{border-color:var(--seal); background:#f7e9e4;}
.progress{position:sticky; top:0; background:var(--paper); padding:8px 0; text-align:center;
          font-size:15px; color:var(--ink-soft); border-bottom:1px solid var(--line); margin-bottom:8px;}
/* 結果 / 型卡 */
.chip{display:inline-block; font-size:15px; background:var(--paper2); border:1px solid var(--line);
      padding:6px 13px; border-radius:20px; margin:4px 4px 0;}
.chip b{color:var(--seal);}
.typecard{border:1px solid var(--seal); border-radius:10px; background:var(--paper2);
          padding:28px 24px; margin:22px 0; text-align:center;
          box-shadow:0 0 0 3px rgba(178,58,46,.10);}
.typecard .tname{font-size:34px; font-weight:700; color:var(--seal); letter-spacing:.1em;}
.typecard .tstuck{font-size:16px; color:var(--ink-soft); margin-top:8px;}
.diagnosis{font-size:19px; line-height:2.1; background:#fbf6ea; border-left:5px solid var(--seal);
           padding:18px 20px; margin:18px 0; border-radius:0 6px 6px 0;}
/* 原型一句 + 亮點/課題對稱卡 */
.archetype{text-align:center; font-size:21px; font-weight:700; color:var(--ink);
           letter-spacing:.04em; margin:2px 0 18px;}
.archetype:before{content:"「"; color:var(--gold);}
.archetype:after{content:"」"; color:var(--gold);}
.hlcards{display:flex; gap:12px; margin:16px 0;}
.hlcards .col{flex:1; border:1.5px solid var(--line); border-radius:9px; padding:14px 16px; background:#fbf6ea;}
.hlcards .col.good{border-color:#5b9160; background:#f3f7ef;}
.hlcards .col.task{border-color:var(--gold-bright); background:#faf4e6;}
.hlcards .col h4{margin:0 0 10px; font-size:17px; letter-spacing:.08em;}
.hlcards .col.good h4{color:#3f6b43;}
.hlcards .col.task h4{color:#9a6a1a;}
.hlcards .it{margin:9px 0; font-size:15.5px; line-height:1.6;}
.hlcards .it b{display:block; font-size:16px;}
.hlcards .it span{color:var(--ink-soft);}
@media (max-width:600px){ .hlcards{flex-direction:column; gap:10px;} .archetype{font-size:19px;} }
.locked{border:1px dashed var(--line); border-radius:8px; padding:22px; margin:20px 0; color:var(--ink-soft);}
.locked h3{margin-top:0; font-size:20px;}
.lock-item{padding:8px 0; border-bottom:1px dashed var(--line); font-size:17px;}
.lock-item:before{content:"🔒 "; }
.field{margin:12px 0;}
.field input{width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:5px;
             font-family:inherit; font-size:18px; background:#fbf6ea;}
.flash{background:#fff7e6; border:1px solid var(--gold); color:#7a5d12; padding:12px 16px;
       border-radius:5px; margin:14px 0; font-size:16px;}
.note{font-size:13px; color:#9a8a70; line-height:1.75; margin-top:26px;
      border-top:1px solid var(--line); padding-top:14px;}
a.plain{color:var(--seal); font-size:17px;}
table.admin{width:100%; border-collapse:collapse; font-size:13px;}
.admin th,.admin td{border:1px solid var(--line); padding:7px 9px; text-align:left;}
.admin th{background:var(--paper2);}

/* ===== 招牌方案卡（供免費／168／1688 三卡用）===== */
.banner-card{
  position:relative; border-radius:12px; padding:26px 24px 24px; margin:18px 0;
  background:linear-gradient(155deg,#fff6e6 0%,#f6e3c0 100%);
  border:2px solid var(--gold-bright);
  box-shadow:0 6px 24px rgba(120,80,20,.18);
  text-align:center;
}
.banner-card.is-premium{
  background:linear-gradient(155deg,#7a1f1a 0%,#9c2a22 60%,#b23a2e 100%);
  border-color:var(--gold-bright); color:#fff7e6;
}
.banner-card .bc-tag{
  display:inline-block; font-size:14px; letter-spacing:.25em;
  background:var(--seal); color:#fff; padding:4px 14px; border-radius:20px; margin-bottom:10px;
}
.banner-card.is-premium .bc-tag{background:var(--gold-bright); color:#5a2018;}
.banner-card .bc-title{font-size:28px; font-weight:700; letter-spacing:.08em; margin:4px 0 6px;}
.banner-card .bc-desc{font-size:17px; line-height:1.9; margin:6px 0 14px;}
.banner-card .bc-price{font-size:30px; font-weight:700; color:var(--seal); margin:8px 0;}
.banner-card.is-premium .bc-price{color:#ffe9b0;}
.banner-card .bc-price small{font-size:16px; font-weight:400;}
.banner-card .btn{margin-top:6px;}
.banner-card.is-premium .btn{
  background:linear-gradient(180deg,#e8c25f 0%,var(--gold-bright) 60%,#a87f28 100%);
  color:#5a2018; box-shadow:0 3px 0 rgba(0,0,0,.25), inset 0 0 0 2px rgba(255,245,210,.5);
}

/* ===== 命理速覽折疊（術語收起來，不擋長者）===== */
.minor-summary{margin:10px 0 16px; border:1px solid var(--line); border-radius:6px; background:#fbf6ea;}
.minor-summary summary{cursor:pointer; padding:13px 16px; font-size:16px; color:var(--ink-soft); list-style:none;}
.minor-summary summary::-webkit-details-marker{display:none;}
.minor-summary summary:before{content:"▸ "; color:var(--seal);}
.minor-summary[open] summary:before{content:"▾ ";}
.minor-summary .ms-body{padding:2px 18px 16px; font-size:17px; line-height:2.0;}

/* ===== 落款印章（取代老師照片，建立信任）===== */
.signoff{
  margin-top:30px; padding-top:18px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;
}
.signoff .so-name{font-size:20px; letter-spacing:.2em; color:var(--ink-soft);}
.signoff .so-seal{
  display:inline-flex; align-items:center; justify-content:center;
  width:62px; height:62px; border:2px solid var(--seal); border-radius:8px;
  color:var(--seal); font-size:17px; font-weight:700; line-height:1.25;
  letter-spacing:.04em; transform:rotate(-4deg); background:rgba(178,58,46,.05);
}

/* ===== 手機閱讀體驗（RWD）===== */
@media (max-width:600px){
  body{padding:14px 6px; font-size:18px;}
  .wrap{padding:26px 18px 34px; border-radius:4px;}
  h1{font-size:27px; letter-spacing:.06em;}
  .subtitle{font-size:15px;}
  p{font-size:18px;}
  /* 按鈕在手機整排、好按 */
  .btn{display:block; width:100%; font-size:20px; padding:16px 18px; letter-spacing:.08em;}
  .banner-card .btn, .field .btn, a.plain{width:auto;}
  a.plain{display:inline-block;}
  .btn.ghost{width:100%;}
  .banner-card{padding:22px 16px;}
  .banner-card .bc-title{font-size:24px;}
  .banner-card .bc-price{font-size:27px;}
  .banner-card .bc-desc{font-size:16px;}
  .typecard .tname{font-size:28px;}
  .diagnosis{font-size:18px; padding:16px 16px;}
  .opt{font-size:17px;}
  /* 八字四柱在小螢幕縮字距避免擠 */
  .brand{font-size:12px; letter-spacing:.35em;}
}
