/* ===================== 浩德堂 網站樣式（對齊 PDF 調色盤） ===================== */
:root{
  --bg: #F7F5F0;          /* PDF 主背景 暖米白 */
  --bg-soft: #F1ECE3;     /* PDF 區塊底 略深米白 */
  --card: #FCFAF6;        /* 卡片 近米白（非純白） */
  --card-warm: #F6F1E9;   /* 暖白卡片 */
  --ink: #322F2A;         /* PDF 深色文字 */
  --ink-soft: #6B635A;    /* PDF 次要文字 */
  --gold: #7A5C38;        /* PDF 金棕主強調（按鈕/橫幅） */
  --gold-light: #9C7B46;  /* PDF 淺金（hover/線條） */
  --gold-line: #D8CEBE;   /* PDF 金線 */
  --wine: #53272D;        /* PDF 深酒紅點綴 */
  --banner-a: #6E5236;
  --banner-b: #8C6E45;
  --radius: 14px;
  --maxw: 1080px;
  --shadow: 0 8px 30px rgba(60,40,20,.10);
  --shadow-sm: 0 3px 14px rgba(60,40,20,.07);
  --serif: "Noto Serif TC", "Songti TC", "STSong", serif;
  --sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.5;color:var(--ink);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* ---------- 頂部導覽（PDF：米白底＋深字） ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,245,240,.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--gold-line);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:.7rem 1.1rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.brand{display:flex;align-items:center;gap:.5rem;font-family:var(--serif);}
.brand-mark{color:var(--wine);font-size:1.4rem;line-height:1;}      /* 酒紅點綴 */
.brand-name{font-size:1.25rem;font-weight:700;letter-spacing:.12em;color:var(--ink);}
.site-nav{display:flex;gap:.2rem;flex-wrap:wrap;}
.site-nav a{
  padding:.45rem .8rem;border-radius:999px;font-size:.95rem;color:var(--ink-soft);
  transition:.2s;
}
.site-nav a:hover{color:var(--gold);background:var(--card-warm);}
.site-nav a.active{color:#fff;background:var(--gold);font-weight:500;}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.4rem;flex-direction:column;gap:5px;}
.nav-toggle span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.25s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- 通用區塊 ---------- */
.page{padding-bottom:3rem;}
.section{max-width:var(--maxw);margin:0 auto;padding:2.6rem 1.1rem;}
.section-soft{background:var(--bg-soft);}
.section-head{text-align:center;margin-bottom:2rem;}
.section-title{font-size:1.7rem;margin:.2rem 0 .6rem;position:relative;display:inline-block;}
.section-title::after{content:"";display:block;width:48px;height:2px;background:var(--gold-line);margin:.6rem auto 0;}
.section-desc{color:var(--ink-soft);max-width:680px;margin:.4rem auto 0;}
.section-desc.center{text-align:center;}
.text-center{text-align:center;}
.center{text-align:center;}

/* ---------- 按鈕（PDF：實心金棕方角） ---------- */
.btn{
  display:inline-block;padding:.8rem 1.7rem;border-radius:10px;font-size:1rem;
  font-family:var(--sans);font-weight:500;cursor:pointer;border:1px solid transparent;
  transition:.22s;letter-spacing:.04em;text-align:center;
}
.btn-primary{background:var(--gold);color:#F8F4EC;box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--gold-light);transform:translateY(-1px);}
.btn-ghost{background:transparent;border-color:var(--gold);color:var(--gold);}
.btn-ghost:hover{background:var(--card-warm);}
.btn-line{background:transparent;border:1px solid var(--gold-line);color:var(--gold);padding:.6rem 1.3rem;font-size:.95rem;}
.btn-line:hover{background:var(--card-warm);border-color:var(--gold);}
.btn.full{width:100%;}

/* ---------- 首頁 Hero（PDF：米白底居中，金棕元素） ---------- */
.hero{position:relative;overflow:hidden;padding:5rem 1.1rem 4rem;text-align:center;min-height:520px;display:flex;align-items:center;justify-content:center;}
.hero-bg{
  position:absolute;inset:0;
  background:
    linear-gradient(135deg, rgba(247,245,240,.88) 0%, rgba(251,246,236,.70) 50%, rgba(247,245,240,.85) 100%),
    url('../assets/images/hero.jpg') center 40% / cover no-repeat;
}
.hero-bg::after{
  content:"";position:absolute;left:50%;bottom:-60px;transform:translateX(-50%);
  width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle, rgba(154,123,79,.16), transparent 70%);
}
.hero-inner{position:relative;max-width:760px;margin:0 auto;z-index:1;}
.hero-eyebrow{color:var(--gold);letter-spacing:.2em;font-size:.85rem;margin:0 0 1rem;}
.hero-title{font-size:clamp(2rem,6vw,3.1rem);margin:0 0 1.2rem;letter-spacing:.06em;color:var(--ink);}
.hero-sub{color:var(--ink-soft);font-size:1.05rem;margin:0 auto 2rem;max-width:620px;}
.hero-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;}
.hero-lotus{position:relative;display:block;margin:2.4rem auto 0;width:200px;color:var(--gold-light);opacity:.85;}

/* ---------- 卡片網格 ---------- */
.card-grid{display:grid;gap:1.1rem;}
.card-grid.two{grid-template-columns:repeat(2,1fr);}
.card-grid.four{grid-template-columns:repeat(4,1fr);}
.entry-card{
  background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);
  padding:1.5rem 1.3rem;box-shadow:var(--shadow-sm);transition:.22s;position:relative;overflow:hidden;
}
.entry-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--gold-light);}
.entry-no{font-family:var(--serif);color:var(--gold-line);font-size:1.4rem;font-weight:700;}
.entry-card h3{margin:.4rem 0 .5rem;font-size:1.2rem;color:var(--ink);}
.entry-card p{margin:0;color:var(--ink-soft);font-size:.95rem;}

.practice-card{
  background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);
  padding:1.4rem 1.2rem;box-shadow:var(--shadow-sm);text-align:center;
}
.practice-card.wide{text-align:left;}
.practice-card h3{margin:0 0 .5rem;color:var(--gold);font-size:1.15rem;}
.practice-card p{margin:0;color:var(--ink-soft);font-size:.95rem;}

/* ---------- 分欄 ---------- */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;}
.split-text h2{margin-top:0;color:var(--ink);}
.split-text p{color:var(--ink-soft);}
.split-media{
  border:1px solid var(--gold-line);border-radius:var(--radius);
  background:var(--card-warm);min-height:240px;display:flex;align-items:center;justify-content:center;
  color:var(--gold-light);position:relative;overflow:hidden;
}
.split-media.tall{min-height:340px;}
.split-media svg{width:45%;opacity:.7;}
.split-media-img{
  width:100%;height:100%;object-fit:cover;border-radius:var(--radius);
}
.placeholder-img::before{
  content:attr(data-label);position:absolute;bottom:14px;left:0;right:0;text-align:center;
  font-size:.82rem;color:var(--ink-soft);letter-spacing:.05em;
}

/* ---------- 資訊格 ---------- */
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:760px;margin:1.4rem auto;}
.info-item{background:var(--card);border:1px solid var(--gold-line);border-radius:12px;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;}
.info-k{font-size:.8rem;color:var(--gold);letter-spacing:.1em;}
.info-v{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}

/* ---------- 內頁金色標題橫幅（對齊 PDF） ---------- */
.page-hero{
  background:linear-gradient(135deg,var(--banner-a),var(--banner-b));
  color:#F8F4EC;
  padding:3.2rem 1.1rem 2.6rem;text-align:center;
  border-bottom:3px solid #5C4327;
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg, rgba(62,46,30,.78), rgba(90,70,45,.72));
  z-index:0;
}
.page-hero.taisu-hero::before{
  background:linear-gradient(135deg, rgba(62,46,30,.70), rgba(70,54,34,.78)), url('../assets/images/taisu.jpg') center / cover no-repeat;
}
.page-hero > *{position:relative;z-index:1;}
.page-hero .eyebrow{color:#E9DCC2;letter-spacing:.18em;font-size:.82rem;margin:0 0 .8rem;}
.page-hero h1{font-size:clamp(1.8rem,5vw,2.6rem);margin:0 0 .9rem;color:#F8F4EC;}
.page-hero .lead{max-width:720px;margin:0 auto;color:#EDE3D2;}

/* ---------- 標題塊 ---------- */
.block-title{font-size:1.5rem;margin:0 0 1.2rem;text-align:center;color:var(--ink);}
.block-title::after{content:"";display:block;width:44px;height:2px;background:var(--gold-line);margin:.6rem auto 0;}
.block-note{color:var(--ink-soft);text-align:center;max-width:680px;margin:-.4rem auto 1.6rem;font-size:.95rem;}
.sub-block-title{font-size:1.2rem;margin:2rem 0 .8rem;color:var(--gold);}
.prose{max-width:760px;margin:0 auto;}
.prose p{color:var(--ink-soft);margin:0 0 1.1rem;}

.quote-line{
  max-width:760px;margin:2rem auto 0;padding:1.2rem 1.6rem;text-align:center;
  border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);
  color:var(--gold);font-family:var(--serif);font-size:1.05rem;
}
.closing{max-width:760px;margin:2rem auto 0;text-align:center;color:var(--ink-soft);font-family:var(--serif);}

/* ---------- 狀態 / 備註盒 ---------- */
.status-box,.note-box,.contact-box{
  max-width:760px;margin:0 auto;background:var(--card-warm);border:1px solid var(--gold-line);
  border-radius:var(--radius);padding:1.6rem 1.8rem;box-shadow:var(--shadow-sm);
}
.status-box h3,.note-box h4,.contact-box h4{margin:0 0 .6rem;color:var(--gold);text-align:center;}
.status-box,.note-box,.contact-box{text-align:center;}
.status-box p,.note-box p{margin:0;color:var(--ink-soft);}
.status-box.success{border-color:#22c55e;background:#f0fdf4;}
.status-box.pending{border-color:#f59e0b;background:#fffbeb;}
.status-box.error{border-color:#ef4444;background:#fef2f2;}
.status-box.success h3{color:#15803d;}
.status-box.pending h3{color:#b45309;}
.status-box.error h3{color:#b91c1c;}
.stage-list{margin:.8rem 0 0;padding-left:1.2rem;color:var(--ink-soft);}
.stage-list li{margin:.3rem 0;}

/* ---------- 付款結果頁：繳費資訊 ---------- */
.pay-extra{max-width:760px;margin:2rem auto 0;text-align:center;}
.pay-extra .sub-block-title{margin:0 0 1rem;}
.pay-extra .info-grid{text-align:left;margin-top:0;}
.pay-extra .info-v{font-family:ui-monospace,monospace;word-break:break-all;}
.pay-extra .block-note{margin-top:.8rem;font-size:.9rem;color:var(--ink-soft);}

.contact-info{display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center;}
.contact-qr{width:220px;height:220px;object-fit:contain;border:1px solid var(--gold-line);border-radius:var(--radius);background:#fff;padding:.5rem;box-shadow:var(--shadow-sm);}
.contact-line-msg{margin:0;color:var(--ink);font-size:1.05rem;}

/* ---------- 進度卡 ---------- */
.progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.progress-card{background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);padding:1.3rem;box-shadow:var(--shadow-sm);}
.progress-card .tag{display:inline-block;font-size:.78rem;color:#fff;background:var(--gold);padding:.2rem .7rem;border-radius:999px;margin-bottom:.6rem;letter-spacing:.08em;}
.progress-card.now .tag{background:var(--gold-light);}
.progress-card.next .tag{background:#8a8a8a;}
.progress-card p{margin:0;color:var(--ink-soft);font-size:.95rem;}

/* ---------- 方向卡 ---------- */
.dir-card{background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);}
.dir-card h3{margin:0 0 .6rem;color:var(--gold);}
.dir-card p{margin:0;color:var(--ink-soft);}

/* ---------- Tabs（PDF：金棕圓角標籤） ---------- */
.tabs{max-width:var(--maxw);margin:1.8rem auto 0;padding:0 1.1rem;display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;}
.tab{
  background:var(--card);border:1px solid var(--gold-line);color:var(--ink-soft);
  padding:.6rem 1.3rem;border-radius:999px;cursor:pointer;font-family:var(--sans);font-size:.95rem;transition:.2s;
}
.tab:hover{border-color:var(--gold-light);color:var(--gold);}
.tab.active{background:var(--gold);color:#F8F4EC;border-color:transparent;}
.tab-panel{max-width:var(--maxw);margin:0 auto;padding:2rem 1.1rem;}

/* ---------- 步驟 / 列表 ---------- */
.step-list{list-style:none;counter-reset:s;padding:0;max-width:760px;margin:0 auto;}
.step-list li{counter-increment:s;position:relative;padding:1.1rem 1.2rem 1.1rem 3.4rem;background:var(--card);border:1px solid var(--gold-line);border-radius:12px;margin-bottom:.9rem;}
.step-list li::before{content:counter(s);position:absolute;left:1rem;top:1.1rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--gold);color:#F8F4EC;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.95rem;}
.step-list b{display:block;color:var(--ink);margin-bottom:.2rem;}
.step-list span{color:var(--ink-soft);font-size:.95rem;}

/* ---------- 表單 ---------- */
.form-layout{display:grid;grid-template-columns:1.3fr .9fr;gap:1.6rem;max-width:920px;margin:0 auto;align-items:start;}
.donate-form{background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow-sm);}
.field{margin-bottom:1.1rem;display:flex;flex-direction:column;gap:.4rem;}
.field label,.field-label{font-size:.9rem;color:var(--gold);font-weight:500;}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:1rem;padding:.7rem .9rem;border:1px solid var(--gold-line);
  border-radius:10px;background:var(--card-warm);color:var(--ink);transition:.2s;width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-light);background:#fff;box-shadow:0 0 0 3px rgba(154,123,79,.15);}
.field input[readonly]{background:#efe9df;color:var(--ink-soft);}
.inline-note{margin:0;color:var(--ink-soft);font-size:.92rem;}
.form-hint{margin:.8rem 0 0;font-size:.88rem;color:var(--gold);min-height:1.1em;}
.form-hint.error{color:#a23b27;}

.form-summary{background:var(--card-warm);border:1px solid var(--gold-line);border-radius:var(--radius);padding:1.6rem;position:sticky;top:90px;}
.form-summary h3{margin:0 0 1rem;color:var(--gold);font-size:1.15rem;}
.summary-list{list-style:none;margin:0;padding:0;}
.summary-list li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px dashed var(--gold-line);font-size:.95rem;}
.summary-list li span{color:var(--ink-soft);}
.summary-list li b{color:var(--ink);text-align:right;font-family:var(--serif);}
.summary-note{margin:1rem 0 0;font-size:.85rem;color:var(--ink-soft);}

/* ---------- 最新消息 ---------- */
.news-list{display:grid;gap:1rem;max-width:820px;margin:0 auto;}
.news-item{background:var(--card);border:1px solid var(--gold-line);border-radius:var(--radius);padding:1.3rem 1.5rem;box-shadow:var(--shadow-sm);}
.news-item .tag{display:inline-block;font-size:.75rem;color:#F8F4EC;background:var(--gold-light);padding:.18rem .7rem;border-radius:999px;letter-spacing:.06em;margin-bottom:.6rem;}
.news-item h3{margin:0 0 .4rem;font-size:1.15rem;color:var(--ink);}
.news-item p{margin:0;color:var(--ink-soft);font-size:.95rem;}
.news-empty{text-align:center;color:var(--ink-soft);padding:2rem;}

/* ---------- 頁尾 CTA ---------- */
.page-cta{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin:2.4rem auto 0;max-width:var(--maxw);padding:0 1.1rem;}

/* ---------- Footer ---------- */
.site-footer{background:#2E2A26;color:#e8e0d2;margin-top:2rem;}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:2.4rem 1.1rem;text-align:center;}
.footer-brand{font-family:var(--serif);font-size:1.4rem;letter-spacing:.2em;margin:0 0 .4rem;color:#F8F4EC;}
.footer-slogan{margin:0 0 1.4rem;color:#c9bfae;font-size:.95rem;}
.footer-nav{display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.4rem;}
.footer-nav a{color:#d9cfbe;font-size:.92rem;transition:.2s;}
.footer-nav a:hover{color:var(--gold-light);}
.footer-copy{margin:0;font-size:.82rem;color:#9a9082;}

/* ---------- 供養項目（可複選卡片） ---------- */
.item-list{display:grid;gap:.75rem;}
.item-group-title{
  font-size:.85rem;color:var(--gold);letter-spacing:.1em;font-weight:500;
  margin:.5rem 0 -.15rem;padding-left:.2rem;
}
.item-card{
  display:flex;gap:.85rem;align-items:flex-start;
  background:var(--card-warm);border:1px solid var(--gold-line);border-radius:12px;
  padding:.9rem 1rem;cursor:pointer;transition:.2s;
}
.item-card:hover{border-color:var(--gold-light);background:#fff;}
.item-card.checked{border-color:var(--gold);background:#fff;box-shadow:0 0 0 2px rgba(154,123,79,.16);}
.item-card input[type="checkbox"]{
  flex:0 0 auto;width:20px;height:20px;margin-top:.18rem;accent-color:var(--gold);cursor:pointer;
}
.item-body{flex:1;min-width:0;}
.item-top{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap;}
.item-name{font-family:var(--serif);font-size:1.05rem;color:var(--ink);font-weight:600;}
.item-price{font-size:.88rem;color:var(--gold);white-space:nowrap;}
.item-desc{margin:.15rem 0 0;font-size:.86rem;color:var(--ink-soft);}
.item-extra{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--gold-line);
}
.item-card:not(.checked) .item-extra{display:none;}
.item-extra label{font-size:.85rem;color:var(--gold);white-space:nowrap;}
.item-extra input{
  width:92px;font-family:var(--sans);font-size:.95rem;padding:.42rem .6rem;
  border:1px solid var(--gold-line);border-radius:8px;background:#fff;color:var(--ink);
}
.item-extra input:focus{outline:none;border-color:var(--gold-light);box-shadow:0 0 0 3px rgba(154,123,79,.15);}
.item-hintline{margin:.3rem 0 0;font-size:.84rem;color:var(--ink-soft);}
.item-hintline b{color:var(--gold);font-family:var(--serif);}
.summary-list .summary-empty{color:var(--ink-soft);justify-content:center;font-size:.9rem;}
.summary-total{margin-top:.6rem;border-top:1px solid var(--gold-line);padding-top:.4rem;}
.summary-total li:last-child{border-bottom:none;}
.summary-total #sumAmount{color:var(--gold);font-size:1.15rem;}

/* ---------- 付款方式選擇 ---------- */
.payment-list{display:grid;gap:.6rem;}
.pay-card{
  display:flex;gap:.8rem;align-items:flex-start;cursor:pointer;
  background:var(--card-warm);border:1px solid var(--gold-line);border-radius:12px;
  padding:.85rem 1rem;transition:.2s;
}
.pay-card:hover{border-color:var(--gold-light);background:#fff;}
.pay-card.checked{border-color:var(--gold);background:#fff;box-shadow:0 0 0 2px rgba(154,123,79,.16);}
.pay-card input[type="radio"]{flex:0 0 auto;width:19px;height:19px;margin-top:.2rem;accent-color:var(--gold);cursor:pointer;}
.pay-body{display:flex;flex-direction:column;gap:.15rem;}
.pay-name{font-family:var(--serif);font-size:1.02rem;color:var(--ink);font-weight:600;}
.pay-desc{font-size:.84rem;color:var(--ink-soft);}
.pay-secure{
  display:flex;align-items:center;gap:.4rem;margin:.2rem 0 0;
  font-size:.8rem;color:var(--ink-soft);
}
.pay-secure svg{width:14px;height:14px;flex:0 0 auto;}

/* ---------- 前往綠界的過場動畫 ---------- */
.loading-dots{display:flex;gap:.4rem;justify-content:center;margin:1rem 0;}
.loading-dots span{
  width:9px;height:9px;border-radius:50%;background:var(--gold);
  animation:dot-bounce 1.2s infinite ease-in-out both;
}
.loading-dots span:nth-child(2){animation-delay:.16s;}
.loading-dots span:nth-child(3){animation-delay:.32s;}
@keyframes dot-bounce{
  0%,80%,100%{transform:scale(.6);opacity:.4;}
  40%{transform:scale(1);opacity:1;}
}

/* ---------- 綠界支付 CTA ---------- */
.pay-cta{
  margin-top:1.1rem;padding:1.2rem 1.3rem;text-align:center;
  background:var(--card-warm);border:1px solid var(--gold-line);border-radius:12px;
}
.pay-cta-msg{margin:0 0 .8rem;color:var(--ink);font-size:.98rem;}
.pay-cta-note{margin:.8rem 0 0;font-size:.83rem;color:var(--ink-soft);}

/* ---------- 聯絡頁：網站 QR Code 主據點 ---------- */
.site-qr-block{text-align:center;max-width:480px;margin:0 auto;}
.site-qr-figure{
  display:inline-block;background:#fff;border:1px solid var(--gold-line);border-radius:var(--radius);
  padding:.8rem;box-shadow:var(--shadow-sm);cursor:pointer;transition:.22s;margin-bottom:1rem;
}
.site-qr-figure:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.site-qr-figure > span{display:block;}
.site-qr-figure img:not([hidden]),.site-qr-figure canvas:not([hidden]){width:220px;height:220px;display:block;}
.site-qr-figure img[hidden],.site-qr-figure canvas[hidden]{display:none;}
.site-qr-url{margin:0 0 1.2rem;font-family:var(--serif);color:var(--gold);font-size:1rem;word-break:break-all;}
.site-qr-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:.9rem;}
.site-qr-hint{margin:0;font-size:.82rem;color:var(--ink-soft);}

/* ---------- 分享區（全站共用） ---------- */
.share-bar{background:var(--bg-soft);border-top:1px solid var(--gold-line);padding:2.2rem 1.1rem;}
.share-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
}
.share-head{flex:1 1 260px;min-width:220px;}
.share-title{font-family:var(--serif);font-size:1.25rem;color:var(--ink);margin:0 0 .3rem;}
.share-desc{margin:0;color:var(--ink-soft);font-size:.92rem;}
.share-actions{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center;}
.share-btn{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  background:none;border:0;cursor:pointer;padding:.2rem;font-family:var(--sans);
  transition:.2s;min-width:64px;
}
.share-btn svg{width:42px;height:42px;border-radius:50%;transition:.2s;}
.share-btn span{font-size:.8rem;color:var(--ink-soft);transition:.2s;}
.share-btn:hover svg{transform:translateY(-3px);filter:brightness(1.08);}
.share-btn:hover span{color:var(--gold);}
.share-btn.facebook svg circle{fill:#1877F2;}
.share-btn.line svg circle{fill:#06C755;}
.share-btn.copy svg circle,.share-btn.more svg circle{fill:var(--gold);}

.share-qr{display:flex;align-items:center;gap:.9rem;flex:0 0 auto;}
.qr-figure{
  display:inline-flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--gold-line);border-radius:12px;padding:.45rem;
  cursor:pointer;box-shadow:var(--shadow-sm);transition:.2s;line-height:0;
}
.qr-figure:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.qr-figure > span,.qr-modal-figure > span{display:block;}
.qr-figure img:not([hidden]),.qr-figure canvas:not([hidden]){width:92px;height:92px;display:block;}
.qr-figure img[hidden],.qr-figure canvas[hidden]{display:none;}
.share-qr-text{margin:0;font-size:.85rem;color:var(--ink-soft);line-height:1.6;}

/* QR Code 放大 */
.qr-modal{
  position:fixed;inset:0;z-index:120;background:rgba(46,42,38,.72);
  display:flex;align-items:center;justify-content:center;padding:1.2rem;
  opacity:0;transition:opacity .25s;
  pointer-events:none;          /* 未開啟時不攔截點擊（雙重保險） */
}
.qr-modal.show{opacity:1;pointer-events:auto;}
/* 修正：作者樣式的 display:flex 會壓過瀏覽器預設的 [hidden]{display:none}，
   導致彈窗在 hidden 狀態下仍全螢幕覆蓋（opacity:0 看不見）並吃掉所有點擊。
   此規則特異性 (0,2,0) 高於 .qr-modal (0,1,0)，可正確隱藏。 */
.qr-modal[hidden]{display:none;pointer-events:none;}
.qr-modal-inner{
  background:var(--card);border-radius:var(--radius);padding:1.8rem;text-align:center;
  box-shadow:var(--shadow);max-width:92vw;
}
.qr-modal-figure{background:#fff;border-radius:10px;padding:.6rem;display:inline-block;}
.qr-modal-figure img:not([hidden]),.qr-modal-figure canvas:not([hidden]){width:min(300px,70vw);height:auto;display:block;margin:0 auto;border-radius:6px;}
.qr-modal-figure img[hidden],.qr-modal-figure canvas[hidden]{display:none;}
.qr-modal-text{margin:1rem 0 .3rem;color:var(--ink);font-family:var(--serif);}
.qr-modal-url{margin:0 0 1.1rem;font-size:.82rem;color:var(--ink-soft);word-break:break-all;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;padding:.9rem 1.6rem;border-radius:999px;font-size:.95rem;
  box-shadow:var(--shadow);opacity:0;transition:.3s;z-index:99;max-width:90vw;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.ok{background:#3f6f4a;}
.toast.err{background:#9a4030;}

/* ---------- 響應式 ---------- */
@media (max-width:860px){
  .card-grid.four{grid-template-columns:repeat(2,1fr);}
  .progress-grid{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;}
  .form-layout{grid-template-columns:1fr;}
  .form-summary{position:static;}
}
@media (max-width:680px){
  .nav-toggle{display:flex;}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;background:var(--bg);flex-direction:column;
    padding:0 1.1rem;gap:0;max-height:0;overflow:hidden;transition:max-height .3s ease;
    border-bottom:1px solid var(--gold-line);
  }
  .site-nav.open{max-height:420px;padding:.6rem 1.1rem 1rem;}
  .site-nav a{padding:.8rem .4rem;border-bottom:1px solid var(--bg-soft);}
  .card-grid.two,.card-grid.four,.info-grid{grid-template-columns:1fr;}
  .section{padding:2rem 1.1rem;}
  .donate-form{padding:1.3rem;}

  /* --- 行動裝置圖片顯示優化：避免主體被裁掉 --- */
  /* 首頁 hero：降低高度、對準千手觀音主體 */
  .hero{min-height:440px;padding:3rem 1.1rem 2.6rem;}
  .hero-bg{background-position:center 32%;}

  /* 太素觀 hero：超寬屋頂圖完整顯示兩個屋簷（底部留白放圖） */
  .page-hero.taisu-hero{padding:2.4rem 1.1rem 8.5rem;}
  .page-hero.taisu-hero::before{
    background-size:100% auto;
    background-position:center bottom;
  }

  /* 緣起 / 白衣觀音：手機單欄改為自然比例，不再用固定高度裁切 */
  .split-media,.split-media.tall{min-height:0;aspect-ratio:4/3;}
  .split-media-img{height:100%;}

  /* LINE QR Code 手機尺寸 */
  .contact-qr{width:180px;height:180px;}

  /* 供養項目卡 */
  .item-card{padding:.8rem .85rem;gap:.7rem;}
  .item-top{gap:.4rem;}
  .item-name{font-size:1rem;}
  .item-extra input{width:78px;}

  /* 分享區：改為直式堆疊 */
  .share-inner{flex-direction:column;text-align:center;gap:1.4rem;}
  .share-head{flex:0 0 auto;}
  .share-actions{gap:1rem;}
  .share-btn svg{width:38px;height:38px;}
  .share-qr{flex-direction:column;gap:.5rem;text-align:center;}
  .qr-figure img,.qr-figure canvas{width:104px;height:104px;}
  .share-qr-text br{display:none;}

  /* 聯絡頁 QR Code：按鈕改為滿寬，手指好按 */
  .site-qr-figure img,.site-qr-figure canvas{width:200px;height:200px;}
  .site-qr-actions .btn{flex:1 1 100%;}
}

/* ---------- 平板／較小螢幕圖片微調 ---------- */
@media (min-width:681px) and (max-width:860px){
  .page-hero.taisu-hero{padding:2.8rem 1.1rem 7rem;}
  .page-hero.taisu-hero::before{
    background-size:100% auto;
    background-position:center bottom;
  }
  .hero-bg{background-position:center 36%;}
}

/* =========================================================
   太素觀：暫時收起（2026-09）
   ---------------------------------------------------------
   標了 class="taisu-only" 的元素一律不顯示。
   ⚠️ 刻意用 !important：V1 曾發生作者樣式 display:flex 壓過
      瀏覽器 [hidden]{display:none}，造成隱形元素吃掉全站點擊。
      加 !important 才能確保無論原 display 是什麼都確實隱藏。

   恢復方式：js/config.js 的 FEATURES.taisu 改回 true，
   再把各處 class="taisu-only" 移除即可（本段可留著不用動）。
   ========================================================= */
.taisu-only{ display:none !important; }

/* =========================================================
   卡片網格後接續按鈕區時的間距（2026-09 回報修正）
   ---------------------------------------------------------
   原版「開始登記共參」按鈕緊貼卡片底部（gap=0），
   用相鄰選擇器只影響「緊跟在 .card-grid 後面」的 .text-center，
   不會動到其他獨立的 .text-center。
   ========================================================= */
.card-grid + .text-center{ margin-top: 2rem; }
