/* ── 手寫的自訂樣式 ── */

/* ═════ 顏色與字 ═════ */
:root{
  color-scheme:dark;
  --bg:#0A0806; --surface:#15110A; --surface-2:#1E1910;
  --ink:#F6F1E3; --ink-2:#DBD1B8; --ink-3:#ABA088; --ink-4:#8E846B;
  --field-line:rgba(230,193,92,.30);
  --line:rgba(230,193,92,.15); --line-2:rgba(246,241,227,.06);
  --r:20px; --r-sm:13px;
  --gold:#E6C15C; --gold-soft:#F0D98A; --gold-deep:#C19A36;
  --gold-grad:linear-gradient(120deg,#FBEFB8,#E6C15C 42%,#C19A36 72%,#F3DC85);
  --gold-ring:conic-gradient(from 210deg,#C19A36,#F3DC85,#E6C15C,#FDF3CB,#BF962F,#C19A36);
  --dark-text:#1A1403; --focus:#F0D98A; --red:#FF8A80;
  --font:"Noto Sans TC",-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;
  --serif:"Noto Serif TC","Noto Sans TC",serif;
  /* 內建版型的橘色系全換成金色系（沒特別寫到的地方才會用到） */
  --o-50:rgba(230,193,92,.05); --o-100:rgba(230,193,92,.1); --o-200:#2C2616; --o-300:rgba(230,193,92,.32);
  --o-400:var(--gold-soft); --o-500:var(--gold); --o-600:var(--ink); --o-700:var(--gold-soft);
}
html{background:var(--bg)}
body{background:var(--bg);background-image:none;color:var(--ink);font-family:var(--font);
  padding-bottom:24px;-webkit-tap-highlight-color:transparent}
::selection{background:var(--gold-soft);color:var(--dark-text)}

/* ═════ 乾淨的黑金底：金暈＋雕刻同心圓，沉穩不雜亂（不放場景大圖）═════ */
.hg-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(130% 48% at 50% -8%,rgba(230,193,92,.2),rgba(230,193,92,.04) 42%,transparent 66%),
    radial-gradient(80% 42% at 50% 110%,rgba(193,154,54,.1),transparent 70%),
    linear-gradient(180deg,#120E07,#0B0906 44%,#0A0806)}
.hg-bg::before{content:"";position:absolute;left:-10%;right:-10%;top:-6%;height:70vh;opacity:.6;
  background:repeating-radial-gradient(circle at 50% -22%,rgba(230,193,92,.05) 0 1px,transparent 1px 10px);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
.sheet{position:relative;z-index:1}

/* ═════ 品牌區：整張海報 + 四特色 ═════ */
/* 海報裡已經有店名、毛筆標題、標語；必要的 id 留著給 simple.js 與無障礙用，視覺上藏起來 */
.hg-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
/* 頭貼：圓形徽章，細金環＋柔和金光，沉穩有質感 */
.brand{padding:clamp(40px,12vw,76px) 0 8px;text-align:center}
.hg-hero{display:flex;flex-direction:column;align-items:center}
.hg-av{width:clamp(152px,46vw,196px);height:clamp(152px,46vw,196px);margin:0 0 18px;padding:0;border:0;
  border-radius:50%;background:none;
  box-shadow:0 0 0 2px rgba(230,193,92,.65),0 0 0 7px rgba(230,193,92,.1),
    0 0 50px -4px rgba(230,193,92,.5),0 20px 54px -14px rgba(0,0,0,.92)}
.hg-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.hg-av > span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;
  background:var(--surface-2);font-size:62px}
.tagline{margin:0;font-size:14.5px;font-weight:600;letter-spacing:.09em;color:var(--ink);
  display:inline-block;padding:8px 20px;border-radius:999px;background:rgba(21,17,10,.6);
  box-shadow:inset 0 0 0 1px var(--line)}
.member-chip{margin:12px auto 0;background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}
.member-chip .ph{background:var(--surface-2);color:var(--gold-soft)}

/* 四個特色 */
.hg-feats{list-style:none;margin:4px 0 4px;padding:0;width:100%;
  display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.hg-feats li{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;
  padding:14px 6px 12px;border-radius:14px;background:rgba(21,17,10,.82);
  box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.hg-fi{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--dark-text);
  background:var(--gold-grad);box-shadow:0 6px 16px -6px rgba(230,193,92,.6)}
.hg-fi svg{width:21px;height:21px}
.hg-feats b{font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--ink)}
.hg-feats small{font-size:10px;line-height:1.4;color:var(--ink-3)}

/* ═════ 段落標題 ═════ */
.block{margin-bottom:34px}
.block-head{align-items:center;margin-bottom:14px;padding:0 2px}
.block-head h2{display:flex;align-items:baseline;gap:9px;font-size:19px;font-weight:900;
  letter-spacing:.05em;font-feature-settings:"palt";color:var(--ink)}
.block-head h2::before{content:"";width:4px;height:17px;border-radius:2px;background:var(--gold-grad);
  align-self:center}
.block-head h2 small{font-weight:700;font-size:10.5px;letter-spacing:.24em;color:var(--gold-deep)}
.more-link{color:var(--gold-soft)}
.more-link:hover{color:var(--gold)}

/* ═════ 方案：直式寬卡 ═════ */
.plans{display:grid;gap:12px}
.plan{position:relative;display:block;cursor:pointer;overflow:hidden;
  background:radial-gradient(85% 130% at 100% 0%,rgba(230,193,92,.12),transparent 56%),linear-gradient(180deg,rgba(230,193,92,.05),rgba(230,193,92,.012) 46%),var(--surface);
  border:0;border-radius:var(--r);padding:17px 50px 17px 18px;
  box-shadow:inset 0 0 0 1px var(--line),0 16px 34px -22px rgba(0,0,0,.9);
  transition:box-shadow .2s,transform .12s}
.plan::after{content:"";position:absolute;top:50%;right:17px;width:30px;height:30px;margin-top:-15px;
  border-radius:50%;background:rgba(230,193,92,.1);box-shadow:inset 0 0 0 1px var(--line);
  transition:background .2s,box-shadow .2s;
  -webkit-mask:none}
.plan::before{content:"";position:absolute;top:50%;right:28px;width:8px;height:8px;margin-top:-4px;z-index:2;
  border-right:2px solid var(--gold-soft);border-top:2px solid var(--gold-soft);transform:rotate(45deg);
  transition:border-color .2s}
.plan:hover{box-shadow:inset 0 0 0 1px rgba(230,193,92,.4),0 16px 34px -22px rgba(0,0,0,.9)}
.plan:active{transform:scale(.993)}
.plan input{position:absolute;opacity:0;pointer-events:none}
.plan.on{box-shadow:inset 0 0 0 1.5px var(--gold),0 18px 40px -18px rgba(230,193,92,.5)}
.plan.on::after{background:var(--gold-grad);box-shadow:0 6px 16px -6px rgba(230,193,92,.7)}
.plan.on::before{border-color:var(--dark-text)}
.plan.off{opacity:.45;cursor:not-allowed}
.plan.off::before,.plan.off::after{display:none}

.plan-top{display:flex;align-items:center;gap:13px}
.tick{display:none}
.plan-name{font-size:17px;font-weight:900;letter-spacing:.01em;color:var(--ink)}
.plan-sub{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.plan-price{margin-left:auto;text-align:right;flex:none;padding-right:4px}
.plan-price b{font-size:21px;font-weight:900;letter-spacing:-.01em;font-variant-numeric:tabular-nums;
  display:block;color:var(--gold)}
.plan-price b small{font-size:12px;font-weight:700;color:var(--gold-deep);margin-right:1px}
.plan-was{font-size:11.5px;color:var(--ink-4);text-decoration:line-through;font-variant-numeric:tabular-nums}
.plan-tag{position:absolute;top:-1px;left:16px;right:auto;transform:rotate(-3deg);
  background:var(--gold-grad);color:var(--dark-text);font-size:10.5px;font-weight:900;letter-spacing:.05em;
  padding:3px 10px;border-radius:0 0 8px 8px;box-shadow:0 6px 14px -5px rgba(0,0,0,.6)}

.plan-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s ease,opacity .2s;opacity:0}
.plan.on .plan-more{grid-template-rows:1fr;opacity:1}
.plan-more > div{overflow:hidden}
.plan-feats{list-style:none;padding:13px 0 2px;margin:13px 0 0;display:grid;gap:8px;
  border-top:1px dashed var(--line)}
.plan-feats li{display:flex;gap:9px;font-size:13.5px;color:var(--ink-2)}
.plan-feats li::before{content:"✦";color:var(--gold);font-weight:900;flex:none}
.plan-blocked{padding:11px 0 2px;margin-top:11px;border-top:1px dashed var(--line);
  font-size:12.5px;color:var(--gold-soft);font-weight:700}

/* ═════ 付款方式 ═════ */
.pays{gap:10px}
.pay{min-height:58px;padding:12px 15px;border:0;border-radius:var(--r-sm);background:var(--surface);
  box-shadow:inset 0 0 0 1.5px var(--line);transition:box-shadow .2s,background .2s}
.pay:hover{box-shadow:inset 0 0 0 1.5px rgba(230,193,92,.4)}
.pay.on{padding:10px 13px;border:2px solid transparent;box-shadow:none;
  background:linear-gradient(var(--surface-2),var(--surface-2)) padding-box,var(--gold-grad) border-box}
.pay b{color:var(--ink)}
.pay span{color:var(--ink-3)}
.pay .tick{display:grid;border-color:var(--ink-4)}
.pay.on .tick{border-color:var(--gold);background:var(--gold)}
.pay.on .tick::after{background:var(--dark-text)}
.pay.off{opacity:.45}
.pay.off:hover{box-shadow:inset 0 0 0 1.5px var(--line)}
.pay:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}

/* ═════ 聯絡資料 ═════ */
.row2{gap:12px}
.fld{margin-bottom:14px}
.fld > span{margin-bottom:7px;font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--ink-2)}
.fld i{color:var(--gold)}
.fld em{color:var(--ink-4)}
.fld input,.fld textarea,.fld select{min-height:50px;font-size:16px;color:var(--ink);background:#0E0B07;
  border:1.5px solid var(--field-line);border-radius:12px;
  transition:border-color .2s,box-shadow .2s,background .2s}
.fld textarea{min-height:88px}
.fld input::placeholder,.fld textarea::placeholder{color:var(--ink-4)}
/* 老闆不要範例提示字（王小明…）：姓名/手機已清空，Email/備註的也藏掉 */
#fEmail::placeholder,#fNote::placeholder{color:transparent}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;background:#12100A;
  border-color:var(--gold);box-shadow:0 0 0 4px rgba(230,193,92,.2)}
.line-box{background:rgba(6,199,85,.08);border-color:rgba(6,199,85,.3)}
.line-box p{color:#9BE7B5}
.shop-hagi .coupon-row button{min-height:50px;padding:0 18px;border-radius:12px;
  background:var(--gold-grad);color:var(--dark-text);font-weight:800}
.shop-hagi .coupon-row button:disabled{opacity:.5}
.shop-hagi .coupon-msg.ok{color:#8BE28E}
.shop-hagi .coupon-msg.err{color:#FF9E94}

/* 點了方案，付款與聯絡資料浮上來 */
#paySection:not([hidden]),#formSection:not([hidden]){animation:hg-rise .45s cubic-bezier(.2,.8,.2,1) backwards}
#formSection:not([hidden]){animation-delay:.06s}
@keyframes hg-rise{from{opacity:0;transform:translateY(16px)}}

/* ═════ 為什麼選擇哈基隊長 ═════ */
.hg-why-list{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.hg-why-list li{display:flex;align-items:center;gap:15px;padding:15px 18px;border-radius:var(--r-sm);
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.hg-wi{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;
  color:var(--dark-text);background:var(--gold-grad);box-shadow:0 6px 16px -6px rgba(230,193,92,.6)}
.hg-wi svg{width:23px;height:23px}
.hg-why-list b{display:block;font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--gold-soft)}
.hg-why-list p{margin:3px 0 0;font-size:13px;line-height:1.5;color:var(--ink-2)}

/* ═════ 底部信任標章（安全付款／專業客服／隱私名額／隱私保障）═════ */
.hg-trust{margin-top:-14px}
.hg-trust-list{list-style:none;margin:0;padding:15px 8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
  border-radius:var(--r-sm);background:rgba(21,17,10,.74);box-shadow:inset 0 0 0 1px var(--line);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.hg-trust-list li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  font-size:11.5px;font-weight:700;color:var(--ink-2)}
.hg-ti{display:grid;place-items:center;width:30px;height:30px;color:var(--gold)}
.hg-ti svg{width:22px;height:22px}

/* ═════ 結帳列 ═════ */
.checkout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:14px;row-gap:8px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));overflow:hidden;border-top:0;
  background:rgba(10,8,6,.9);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 -16px 36px -10px rgba(0,0,0,.7)}
.checkout::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold-grad)}
.checkout:not([hidden]){animation:hg-up .5s cubic-bezier(.2,.8,.2,1) backwards}
@keyframes hg-up{from{opacity:0;transform:translateY(40px)}}
.checkout .total{display:grid;margin:0;min-width:0}
.total span{font-size:12.5px;font-weight:600;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.total b{font-size:clamp(19px,6vw,23px);font-weight:900;line-height:1.2;letter-spacing:-.01em;
  white-space:nowrap;color:var(--gold);font-variant-numeric:tabular-nums}
.checkout .fineprint{grid-column:1 / -1;margin:0;text-align:left;font-size:11.5px;line-height:1.55;color:var(--ink-3)}
html:has(#checkout:not([hidden])){scroll-padding-bottom:calc(150px + env(safe-area-inset-bottom))}
@media (max-height:560px){.checkout{position:static}}
.pay-btn{width:auto;min-height:52px;padding:0 26px;border-radius:999px;color:var(--dark-text);
  font-size:16px;font-weight:900;letter-spacing:.08em;background:var(--gold-grad);background-size:200% 100%;
  box-shadow:0 12px 30px -10px rgba(230,193,92,.7),inset 0 1px 0 rgba(255,255,255,.55)}
.pay-btn:hover:not(:disabled){filter:saturate(1.1) brightness(1.04)}
.pay-btn:disabled{background:#2A2516;color:#8E846B;box-shadow:none}
.pay-btn:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.pay-btn .spin{border-color:rgba(26,20,3,.25);border-top-color:var(--dark-text)}

/* ═════ 其他 ═════ */
.alert-error{background:rgba(228,72,62,.12);border:1.5px solid rgba(228,72,62,.45);color:#FFB4AB}
.alert-warn{background:rgba(230,193,92,.1);border:1.5px solid rgba(230,193,92,.4);color:var(--gold-soft)}
.alert-info{background:rgba(230,193,92,.05);border:1.5px solid var(--line);color:var(--ink-2)}
.sk{background:linear-gradient(90deg,#15110A 25%,#211B10 50%,#15110A 75%);background-size:200% 100%;
  border-radius:var(--r)}
.disclaimer{margin-top:30px;border:0;border-radius:var(--r-sm);font-size:12px;color:var(--ink-3);
  background:rgba(230,193,92,.03);box-shadow:inset 0 0 0 1px var(--line)}
.copyright{color:var(--ink-4)}
.toast{background:var(--gold-grad);color:var(--dark-text);font-weight:800}

/* ═════ 平板／桌機 ═════ */
@media (min-width:760px){
  .sheet{max-width:1040px;padding:0 32px}
  .brand{padding:72px 0 24px}
  .hg-av{width:212px;height:212px}
  .hg-feats{max-width:720px;margin-left:auto;margin-right:auto}
  .block:not(.plans-block),#alert,.checkout,.disclaimer,.copyright,.hg-feats{max-width:680px;margin-left:auto;margin-right:auto}
  .plans{max-width:680px;margin:0 auto;grid-template-columns:1fr 1fr;gap:14px}
  .hg-why-list{max-width:680px;margin:0 auto;grid-template-columns:1fr 1fr;gap:12px}
}

/* 不要動畫的人：全部停掉 */
@media (prefers-reduced-motion:reduce){
  .sk,.spin,#paySection,#formSection,.checkout{animation:none !important}
}

