/* 葉依佛堂 yeyifotang.com — 依 design_handoff 的代幣與尺寸實作。
   390→1440 之間以 --d 線性內插；≥1024 切換為桌機版面。@font-face 在 fonts.css。 */
:root{
  --ink-900:#1a1512;--ink-800:#241d18;--ink-700:#2b241f;--ink-600:#4a3d33;
  --text-2:#5a524b;--text-3:#8f8377;
  --gold:#d4a25f;--gold-hover:#e2b675;--gold-ink:#8a6a35;
  --paper:#f5efe6;--paper-100:#f1e9dd;--paper-200:#d9cfc1;--paper-300:#bfb3a5;
  --line:#e3d9cb;--line-dark:rgba(241,233,221,.14);
  --serif:'Noto Serif TC',serif;--sans:'Noto Sans TC',system-ui,sans-serif;
  --warm:sepia(.55) saturate(.85) contrast(1.05) brightness(.82);
  --d:clamp(0px,100vw - 390px,1050px);
  --gutter:calc(24px + var(--d)*32/1050);
  --sy:calc(56px + var(--d)*40/1050);
  --sy-lg:calc(64px + var(--d)*40/1050);
  --col-side:calc(300px + var(--d)*120/1050);
  --gap-lg:calc(48px + var(--d)*32/1050);
  --gap-xl:calc(56px + var(--d)*40/1050);
  --h2:calc(30px + var(--d)*10/1050);
  --h2-sm:calc(28px + var(--d)*8/1050);
  --h3:calc(26px + var(--d)*6/1050);
  --body:calc(15px + var(--d)*2/1050);
  --label:calc(12px + var(--d)*1/1050);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink-700);font:400 15px/1.95 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p,dl,dd,ul,figure{margin:0}
h1,h2,h3,p{text-wrap:pretty}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.4}
[id]{scroll-margin-top:100px}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit}
address{font-style:normal}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.dark :focus-visible{outline-color:var(--paper-100)}
.wrap{max-width:1328px;margin-inline:auto}
.dark{background:var(--ink-900);color:var(--paper-100)}
.label{font-size:var(--label);letter-spacing:.3em;line-height:1.6;color:var(--gold-ink)}
.dark .label{color:var(--gold)}
.lead{font-size:var(--body);line-height:1.95;color:var(--text-2)}
.dark .lead{color:var(--paper-200)}
.section{padding:var(--sy) var(--gutter)}
.title-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--ink-700);padding-bottom:14px}
.title-row h2{font-size:var(--h2-sm);letter-spacing:.1em}
.d-only{display:none!important}
@media (min-width:1024px){
  .lead{line-height:2}
  .title-row{padding-bottom:20px}
  .title-row h2{letter-spacing:.08em}
  .m-only{display:none!important}
  .d-only{display:inline!important}
}

/* 按鈕與連結 */
.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;border:0;border-radius:3px;font-family:var(--sans);font-size:15px;letter-spacing:.1em;white-space:nowrap;cursor:pointer}
.btn-primary{background:var(--ink-700);color:var(--paper)}
.btn-primary:hover{background:var(--ink-600)}
.btn-gold{background:var(--gold);color:var(--ink-900)}
.btn-gold:hover{background:var(--gold-hover)}
.btn-outline{border:1px solid var(--ink-700);color:var(--ink-700)}
.btn-outline:hover{background:var(--ink-700);color:var(--paper)}
.btn-outline-dark{border:1px solid rgba(241,233,221,.4);color:var(--paper-100)}
.btn-outline-dark:hover{border-color:var(--paper-100)}
.btn-line{gap:10px}
.btn-line::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);flex:none}
.btn-block{display:flex;width:100%}
@media (max-width:1023px){.btn-block-m{display:flex;width:100%}}
.link-arrow{display:inline-flex;align-items:center;height:46px;padding:0 4px;border-bottom:1px solid var(--ink-700);font-size:15px;letter-spacing:.14em}
.link-arrow:hover{color:var(--gold-ink);border-color:var(--gold-ink)}
.dark .link-arrow{border-color:rgba(241,233,221,.6)}
.dark .link-arrow:hover{color:var(--gold);border-color:var(--gold)}
.link-more{display:inline-block;padding:10px 0;font-size:14px;letter-spacing:.1em;color:var(--gold-ink);white-space:nowrap}
.link-more:hover{color:var(--ink-700)}
@media (min-width:1024px){
  .btn{height:50px;padding:0 30px;font-size:16px}
  .btn-line{padding:0 28px}
  .btn-wide{padding:0 34px;letter-spacing:.14em}
  .btn-outline-dark{padding:0 24px}
  .link-more{padding:0;font-size:15px}
}

/* 頁首 */
.site-header{padding:0 16px;border-bottom:1px solid var(--line);background:var(--paper)}
.site-header .wrap{height:64px;display:flex;align-items:center;justify-content:space-between}
.site-header .logo img{height:40px;width:auto}
.site-nav{display:none}
.header-actions{display:flex;gap:8px;align-items:center}
.btn-header{height:44px;padding:0 16px;font-size:14px;letter-spacing:.06em;gap:8px}
.btn-header::before{width:7px;height:7px}
.menu-toggle{width:44px;height:44px;border:0;background:none;padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer}
.menu-toggle span{width:22px;height:1.5px;background:var(--ink-700)}
@media (min-width:1024px){
  .site-header{padding:0 var(--gutter)}
  .site-header .wrap{height:84px}
  .site-header .logo img{height:52px}
  .site-nav{display:flex;gap:36px;font-size:15px;letter-spacing:.08em}
  .site-nav a{padding:10px 0;border-bottom:1px solid transparent}
  .site-nav a:hover,.site-nav a[aria-current=page]{border-bottom-color:var(--gold)}
  .btn-header{height:46px;padding:0 22px;font-size:15px;letter-spacing:.08em;gap:10px}
  .btn-header::before{width:8px;height:8px}
  .menu-toggle{display:none}
}

/* 手機選單（全站唯一需要 JS 的元件） */
.mobile-menu{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;overflow-y:auto;background:var(--ink-900);color:var(--paper-100);transform:translateX(100%);visibility:hidden;transition:transform 240ms ease-out,visibility 0s 240ms}
.mobile-menu.is-open{transform:none;visibility:visible;transition:transform 240ms ease-out}
.mobile-menu-top{flex:none;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line-dark)}
.mobile-menu-top .name{font-family:var(--serif);font-size:18px;letter-spacing:.2em}
.menu-close{width:44px;height:44px;border:0;background:none;padding:0;font-size:26px;font-weight:300;line-height:1;cursor:pointer}
.mobile-menu nav{display:flex;flex-direction:column;padding:24px 24px 0}
.mobile-menu nav a{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 4px;border-bottom:1px solid var(--line-dark);font-family:var(--serif);font-size:22px;letter-spacing:.12em}
.mobile-menu nav a[aria-current=page]{color:var(--gold)}
.mobile-menu nav a::after{content:"→";font-family:var(--sans);font-size:14px;color:var(--text-3)}
.mobile-menu-bottom{margin-top:auto;display:flex;flex-direction:column;gap:20px;padding:32px 24px 40px}
.mobile-menu-bottom .btn{height:52px;font-size:16px;letter-spacing:.14em}
.mobile-menu-bottom address{font-size:14px;line-height:2;color:var(--paper-300)}
body.menu-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.mobile-menu{transition:none}}
@media (min-width:1024px){.mobile-menu{display:none}}

/* 主視覺 */
.hero-media{position:relative;height:300px;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,18,0) 40%,#1a1512 100%)}
.hero-body{padding:8px 24px 56px}
.hero h1{font-size:calc(40px + var(--d)*24/1050);line-height:1.2;letter-spacing:.1em;margin:14px 0 20px}
.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px}
.hero-home .hero-media img{object-position:50% 60%}
.hero-inner .hero-media{height:240px}
.hero-inner h1{font-size:calc(36px + var(--d)*20/1050);margin:14px 0 18px}
.hero-inner .btn{margin-top:28px;height:50px}
@media (min-width:1024px){
  .hero .wrap{max-width:1440px;display:grid;grid-template-columns:5fr 7fr;min-height:720px}
  .hero-media{height:auto;order:2}
  .hero-media img{position:absolute;inset:0}
  .hero-media::after{background:linear-gradient(90deg,#1a1512 0%,rgba(26,21,18,.55) 22%,rgba(26,21,18,0) 55%)}
  .hero-home .hero-media img{object-position:60% 50%}
  .hero-body{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:120px var(--gutter)}
  .hero h1{letter-spacing:.08em;margin:20px 0 32px}
  .hero-actions{display:flex;gap:16px;margin-top:44px}
  .hero-actions .btn{padding:0 30px}
  .hero-inner .wrap{grid-template-columns:4fr 5fr;min-height:560px}
  .hero-inner .hero-media{height:auto}
  .hero-inner .hero-media::after{background:linear-gradient(90deg,#1a1512 0%,rgba(26,21,18,.5) 25%,rgba(26,21,18,0) 60%)}
  .hero-inner .hero-body{padding:104px var(--gutter)}
  .hero-inner h1{letter-spacing:.1em;margin:18px 0 28px}
  .hero-inner .btn{margin-top:40px}
}

/* 首頁：關於 */
.about{padding:var(--sy-lg) var(--gutter)}
.about h2{font-size:var(--h2);letter-spacing:.08em;margin-top:12px}
.about .lead{margin-top:24px;max-width:30em}
.features{margin-top:36px;border-top:1px solid var(--ink-700)}
.feature{padding:16px 0;border-bottom:1px solid var(--line)}
.feature dt{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.08em}
.feature dd{margin-top:4px;font-size:15px;line-height:1.9;color:var(--text-2)}
.deities-label{margin-top:48px;padding-bottom:14px;border-bottom:1px solid var(--ink-700)}
.deity{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
.deity dt{font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:.1em}
.deity dd{font-size:14px;line-height:1.9;color:var(--text-2)}
@media (min-width:1024px){
  .about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-xl);align-items:start}
  .about h2{margin-top:16px}
  .about .lead{margin-top:32px}
  .features{margin-top:48px}
  .feature{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:20px 0}
  .feature dt{font-size:19px}
  .feature dd{margin:0}
  .deities-label{margin-top:0;padding-bottom:20px}
  .deity{grid-template-columns:160px 1fr;gap:24px;padding:20px 0}
  .deity dt{font-size:22px}
  .deity dd{font-size:15px}
}

/* 首頁：點燈入口（燈牆底） */
.lamp-entry{position:relative;overflow:hidden;padding:var(--sy-lg) var(--gutter)}
.lamp-entry .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22}
.lamp-entry::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,18,.75),rgba(26,21,18,.92))}
.lamp-entry .wrap{position:relative;display:grid;grid-template-areas:"text" "names" "actions"}
.lamp-entry .text{grid-area:text}
.lamp-entry h2{font-size:var(--h2);letter-spacing:.1em}
.lamp-entry .lead{margin-top:20px;max-width:30em}
.lamp-names{grid-area:names;display:flex;flex-wrap:wrap;gap:0 24px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(212,162,95,.4)}
.lamp-names a{display:inline-flex;align-items:center;height:44px;font-family:var(--serif);font-size:calc(17px + var(--d)*3/1050);letter-spacing:.1em;border-bottom:1px solid transparent}
.lamp-names a:hover{color:var(--gold);border-bottom-color:var(--gold)}
.lamp-entry .actions{grid-area:actions;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.lamp-entry .actions .btn{height:52px;padding:0 12px}
.lamp-entry .actions .btn-gold{font-size:16px;letter-spacing:.2em}
@media (min-width:1024px){
  .lamp-entry .wrap{grid-template-areas:"text actions" "names names";grid-template-columns:1fr 1fr;gap:0 var(--gap-lg);align-items:end}
  .lamp-entry h2{letter-spacing:.08em}
  .lamp-entry .lead{margin-top:24px}
  .lamp-names{gap:0 40px;margin-top:48px;padding-top:28px}
  .lamp-names a{height:48px;letter-spacing:.12em}
  .lamp-entry .actions{display:flex;justify-content:flex-end;gap:16px;margin-top:0}
  .lamp-entry .actions .btn{height:50px;padding:0 24px}
  .lamp-entry .actions .btn-gold{padding:0 34px;letter-spacing:.14em}
}

/* 首頁：相信 */
.believe-media{position:relative;height:240px;overflow:hidden}
.believe-media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.believe-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,18,0) 50%,#1a1512 100%)}
.believe-body{padding:8px 24px 64px}
.believe h3{font-size:calc(28px + var(--d)*8/1050);letter-spacing:.14em}
.believe p{margin-top:18px;font-size:calc(16px + var(--d)*3/1050);line-height:2.05;color:var(--paper-200)}
.believe figure{display:flex;justify-content:flex-end;margin-top:28px}
.believe figure img{height:170px;width:auto}
@media (min-width:1024px){
  .believe{padding:120px var(--gutter)}
  .believe .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg);align-items:center}
  .believe-media{height:460px}
  .believe-media::after{background:linear-gradient(90deg,rgba(26,21,18,0) 60%,#1a1512 100%)}
  .believe-body{padding:0;max-width:520px}
  .believe p{margin-top:28px;line-height:2.1}
  .believe figure{margin-top:40px}
  .believe figure img{height:220px}
}

/* 首頁：靜心課程卡 */
.course{padding:var(--sy) var(--gutter) 0}
.course-grid{margin-top:28px}
.course-grid img{width:100%;height:300px;object-fit:cover}
.course h3{font-size:var(--h3);letter-spacing:.1em;margin:24px 0 14px}
.course .btn{margin-top:28px;height:50px;letter-spacing:.2em}
@media (min-width:1024px){
  .course-grid{display:grid;grid-template-columns:calc(320px + var(--d)*100/1050) 1fr;gap:64px;margin-top:48px;align-items:center}
  .course-grid img{height:500px}
  .course h3{letter-spacing:.08em;margin:0 0 24px}
  .course .lead{max-width:640px}
  .course .btn{margin-top:36px;letter-spacing:.14em}
}

/* 首頁：團隊 */
.team{padding:0 var(--gutter) var(--sy)}
.team .title-row{margin-bottom:28px}
.team-grid{display:flex;flex-direction:column;gap:28px}
.member h3{font-size:calc(20px + var(--d)*2/1050);letter-spacing:.1em;color:var(--gold-ink)}
.member p{margin-top:10px;font-size:15px;line-height:1.95;color:var(--text-2)}
@media (min-width:1024px){
  .team{padding:var(--sy) var(--gutter)}
  .team .title-row{margin-bottom:48px}
  .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
  .member p{margin-top:16px}
}

/* 聯絡資訊列（首頁與聯絡頁） */
.info{margin-top:20px}
.info-row{padding:16px 0;border-bottom:1px solid var(--line)}
.info-row dt{font-size:12px;letter-spacing:.2em;color:var(--gold-ink)}
.info-row dd{font-size:17px;line-height:1.7;margin-top:4px}
.info-row dd a:not(.btn){display:block}
.info-row.email dd{word-break:break-all}
.info-row.email{border-bottom:0}
.info-row.line{padding:12px 0 0;border-bottom:0}
.info-row.line dt{display:none}
.info-row.line dd{margin:0}
.info-row.line .btn{height:52px;letter-spacing:.14em}
.contact-home{padding:0 var(--gutter) var(--sy)}
.contact-home .wrap{border-top:1px solid var(--ink-700);padding-top:32px}
.contact-home h2{font-size:var(--h2-sm);letter-spacing:.1em}
.contact-home .label{margin-top:8px}
@media (min-width:1024px){
  .info{margin-top:0}
  .info-row{display:grid;grid-template-columns:96px 1fr;column-gap:24px;align-items:baseline;padding:22px 0;font-size:19px}
  .info-row dt{font-size:13px}
  .info-row dd{font-size:inherit;margin:0}
  .info-row dd a:not(.btn){display:inline}
  .info-row.email{border-bottom:1px solid var(--line)}
  .info-row.line{padding:22px 0;align-items:center}
  .info-row.line dt{display:block}
  .info-row.line .btn{display:inline-flex;width:auto;height:50px;letter-spacing:.1em;justify-self:start}
  .contact-home .wrap{padding-top:48px;display:grid;grid-template-columns:var(--col-side) 1fr;gap:var(--gap-lg);align-items:start}
  .contact-home h2{letter-spacing:.08em}
  .contact-home .label{margin-top:12px}
}

/* 頁尾 */
.site-footer{padding:48px var(--gutter) 32px;font-size:14px;line-height:2;color:var(--paper-300)}
.site-footer .name{font-family:var(--serif);font-size:20px;letter-spacing:.2em;color:var(--paper-100)}
.site-footer .en{font-size:11px;letter-spacing:.3em;color:var(--text-3)}
.site-footer address{margin-top:16px}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}
.footer-cols .h{font-size:11px;letter-spacing:.3em;color:var(--text-3);margin-bottom:6px}
.footer-cols a{display:block}
.footer-cols a:hover{color:var(--gold)}
.footer-cols .email{word-break:break-all}
@media (min-width:1024px){
  .site-footer{padding:64px var(--gutter) 40px}
  .site-footer .wrap{display:grid;grid-template-columns:1fr auto auto;gap:80px}
  .site-footer .name{font-size:22px}
  .site-footer .en{font-size:12px}
  .site-footer address{margin-top:20px}
  .footer-cols{display:contents}
  .footer-cols .h{font-size:12px;margin-bottom:8px}
}

/* 點燈頁：燈種清單 */
.lamps{padding:var(--sy) var(--gutter) 0}
.lamps .title-row h2{font-size:calc(26px + var(--d)*6/1050);letter-spacing:.1em}
.lamps .count{font-size:var(--label);letter-spacing:.2em;color:var(--gold-ink);white-space:nowrap}
.lamp{padding:26px 0;border-bottom:1px solid var(--line)}
.lamp-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.lamp-name{display:flex;gap:12px;align-items:baseline}
.lamp-name .no{font-family:var(--serif);font-size:13px;letter-spacing:.1em;color:var(--gold-ink)}
.lamp-name h3{font-size:calc(22px + var(--d)*4/1050);letter-spacing:.1em}
.lamp-price{font-size:14px;letter-spacing:.04em;color:var(--gold-ink);white-space:nowrap}
.lamp-price.ask{color:var(--text-3)}
.lamp p{margin-top:10px;font-size:15px;line-height:1.9;color:var(--text-2)}
.lamp .btn{height:44px;padding:0 28px;margin-top:16px;font-size:14px;letter-spacing:.2em}
@media (min-width:1024px){
  .lamp{display:grid;grid-template-columns:calc(160px + var(--d)*60/1050) 1fr calc(140px + var(--d)*40/1050) calc(120px + var(--d)*20/1050);gap:calc(24px + var(--d)*16/1050);align-items:start;padding:36px 0}
  .lamp-head{display:contents}
  .lamp-name{gap:16px;order:1}
  .lamp-name .no{font-size:14px}
  .lamp p{order:2;margin:0;padding-top:6px;font-size:16px;line-height:1.95}
  .lamp-price{order:3;padding-top:8px;font-size:16px}
  .lamp .btn{order:4;height:46px;padding:0;margin:0;font-size:15px}
}

/* 點燈頁：寵物點燈 */
.pet{margin-top:var(--sy);padding:64px var(--gutter)}
.pet-top{display:flex;gap:28px;align-items:stretch}
.pet .vertical{writing-mode:vertical-rl;flex:none;font-family:var(--serif);font-weight:600;font-size:calc(30px + var(--d)*14/1050);letter-spacing:.3em;line-height:1}
.pet-media{position:relative;flex:1;height:300px;overflow:hidden}
.pet-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 55%;filter:var(--warm)}
.pet-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,21,18,.15),rgba(26,21,18,0) 35%,rgba(26,21,18,.55) 100%)}
.pet-head{display:flex;align-items:baseline;gap:14px;margin-top:32px}
.pet h2{font-size:calc(26px + var(--d)*4/1050);letter-spacing:.1em}
.pet .price{font-size:13px;letter-spacing:.04em;color:var(--gold);white-space:nowrap}
.pet p{margin-top:14px;font-size:15px;line-height:2;color:var(--paper-200)}
.pet-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:16px}
.pet-links .link-arrow{height:44px;padding:0}
.pet-links .more{display:inline-flex;align-items:center;height:44px;font-size:14px;color:var(--paper-300)}
@media (min-width:1024px){
  .pet{padding:104px var(--gutter)}
  .pet .wrap{display:grid;grid-template-columns:auto 1fr calc(300px + var(--d)*140/1050);gap:calc(40px + var(--d)*32/1050);align-items:stretch}
  .pet-top{display:contents}
  .pet .vertical{order:1;letter-spacing:.32em;padding-top:4px}
  .pet-body{order:2;display:flex;flex-direction:column;justify-content:flex-end;max-width:520px}
  .pet-media{order:3;height:480px}
  .pet-head{gap:20px;margin-top:0}
  .pet .price{font-size:14px}
  .pet p{margin-top:24px;font-size:16px;line-height:2.1}
  .pet-links{flex-direction:row;gap:32px;margin-top:28px}
  .pet-links .link-arrow{height:46px;padding:0 4px}
  .pet-links .more{height:46px;padding:0 4px;border-bottom:1px solid rgba(241,233,221,.25);font-size:15px;letter-spacing:.08em}
  .pet-links .more:hover{color:var(--paper-100);border-color:var(--paper-100)}
}

/* 點燈頁：常見問題連結 */
.faq-links .title-row h2{font-size:calc(26px + var(--d)*6/1050);letter-spacing:.1em}
.faq-links li a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:calc(17px + var(--d)*3/1050);letter-spacing:.04em}
.faq-links li a::after{content:"→";flex:none;font-family:var(--sans);font-size:14px;color:var(--gold-ink)}
.faq-links li a:hover{color:var(--gold-ink)}
@media (min-width:1024px){
  .faq-links .wrap{display:grid;grid-template-columns:var(--col-side) 1fr;gap:var(--gap-lg);align-items:start}
  .faq-links .title-row{display:block;border:0;padding:0}
  .faq-links .faq-all{display:inline-flex;align-items:center;height:46px;margin-top:20px;padding:0 4px;border-bottom:1px solid var(--ink-700);font-size:15px;letter-spacing:.14em;color:inherit}
  .faq-links .faq-all:hover{color:var(--gold-ink);border-color:var(--gold-ink)}
  .faq-links ul{border-top:1px solid var(--ink-700)}
  .faq-links li a{min-height:64px;padding:18px 0;gap:24px;letter-spacing:.06em}
  .faq-links li a::after{font-size:15px}
}

/* 共修頁：共修項目與場次 */
.practices{margin-top:20px;border-top:1px solid var(--ink-700)}
.practice{display:flex;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.practice .no{font-family:var(--serif);font-size:13px;letter-spacing:.1em;color:var(--gold-ink)}
.practice h3{font-size:calc(22px + var(--d)*4/1050);letter-spacing:.12em}
.sessions-label{margin-top:48px}
.empty{display:flex;flex-direction:column;align-items:center;gap:24px;margin-top:20px;padding:48px 24px;border:1px solid var(--gold);text-align:center}
.empty::before{content:"";width:1px;height:32px;background:var(--gold)}
.empty p{font-family:var(--serif);font-size:calc(19px + var(--d)*5/1050);letter-spacing:.08em;line-height:1.8}
.empty .btn{height:48px;padding:0 28px}
@media (min-width:1024px){
  .practice-section .wrap{display:grid;grid-template-columns:var(--col-side) 1fr;gap:var(--gap-lg);align-items:start}
  .practices{margin-top:28px}
  .practice{gap:20px;padding:22px 0}
  .practice .no{font-size:14px}
  .sessions-label{margin-top:0}
  .empty{gap:28px;margin-top:28px;padding:72px 48px}
  .empty::before{height:40px}
  .empty p{letter-spacing:.1em}
  .empty .btn{height:50px;padding:0 30px}
}

/* 共修頁：靜心課程 */
.course-full{padding:0 var(--gutter)}
.course-full .wrap{border-top:1px solid var(--ink-700);padding:56px 0}
.course-full h2{font-size:var(--h2);letter-spacing:.1em}
.course-full .intro{margin-top:14px;max-width:36em}
.course-full img{width:100%;height:320px;object-fit:cover;margin-top:32px}
.course-full h3{font-size:calc(26px + var(--d)*10/1050);letter-spacing:.1em;margin:28px 0 14px}
.course-full .lead{line-height:2}
.course-full .actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.course-full .actions .btn{height:50px;padding:0 12px}
.course-full .actions .btn-primary{letter-spacing:.2em}
@media (min-width:1024px){
  .course-full .wrap{padding:80px 0 var(--sy)}
  .course-full .intro{margin-top:20px;font-size:16px;line-height:1.95}
  .course-grid2{display:grid;grid-template-columns:calc(360px + var(--d)*120/1050) 1fr;gap:72px;margin-top:56px;align-items:center}
  .course-full img{height:560px;margin:0}
  .course-text{max-width:600px}
  .course-full h3{margin:0 0 28px}
  .course-full .lead{line-height:2.05}
  .course-full .actions{display:flex;gap:16px;margin-top:40px}
  .course-full .actions .btn{padding:0 28px}
  .course-full .actions .btn-primary{padding:0 34px;letter-spacing:.14em}
}

/* 佛法知識 */
.knowledge{padding:48px var(--gutter) 72px}
.knowledge .wrap{display:flex;flex-direction:column}
.knowledge aside{display:contents}
.knowledge h1{font-size:calc(34px + var(--d)*6/1050);letter-spacing:.1em;margin-top:12px}
.toc{margin-top:28px;border-top:1px solid var(--ink-700)}
.toc a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 0;border-bottom:1px solid var(--line)}
.toc .date{display:none}
.toc .t{font-family:var(--serif);font-weight:600;font-size:17px;letter-spacing:.04em;line-height:1.6}
.toc a::after{content:"↓";flex:none;font-size:14px;color:var(--gold-ink)}
.knowledge .btn-lamp{order:1;margin-top:56px;height:50px;letter-spacing:.2em}
.article{margin-top:64px;scroll-margin-top:40px}
.article .date{font-size:12px;letter-spacing:.1em;color:var(--text-3)}
.article h2{font-size:var(--h2);letter-spacing:.1em;margin:10px 0 28px}
.article-body{border-top:1px solid var(--ink-700);padding-top:28px}
.article-body p{font-family:var(--serif);font-size:calc(17px + var(--d)*1/1050);line-height:2.05;margin-bottom:1.5em}
.article-body p:last-of-type{margin-bottom:0}
.article-media{height:220px;overflow:hidden;margin-top:32px}
.article-media img{width:100%;height:100%;object-fit:cover;object-position:38% 55%;filter:var(--warm)}
.article .link-arrow{margin-top:20px;height:44px;padding:0}
@media (min-width:1024px){
  .knowledge{padding:80px var(--gutter) 120px}
  .knowledge .wrap{display:grid;grid-template-columns:minmax(0,300fr) minmax(0,680fr);gap:var(--gap-xl);max-width:1076px;align-items:start}
  .knowledge aside{display:flex;flex-direction:column;gap:24px;position:sticky;top:40px}
  .knowledge h1{margin:0}
  .toc{margin-top:8px}
  .toc a{display:block;min-height:0;padding:18px 0}
  .toc a::after{content:none}
  .toc a:hover{color:var(--gold-ink)}
  .toc .date{display:block;font-size:12px;letter-spacing:.1em;color:var(--text-3)}
  .toc .t{font-size:18px;letter-spacing:.06em;margin-top:4px}
  .knowledge .btn-lamp{order:0;margin:0;height:46px;padding:0 22px;font-size:15px;letter-spacing:.14em;align-self:flex-start}
  .articles{display:flex;flex-direction:column;gap:96px}
  .article{margin:0}
  .article .date{font-size:13px}
  .article h2{margin:12px 0 40px}
  .article-body{padding-top:40px}
  .article-body p{line-height:2.1;margin-bottom:1.6em}
  .article-media{height:340px;margin-top:56px}
  .article .link-arrow{margin-top:32px;height:46px;padding:0 4px}
}

/* 聯絡我們 */
.contact h1{font-size:calc(34px + var(--d)*14/1050);letter-spacing:.1em;margin-top:12px}
.contact .sub{font-family:var(--serif);font-weight:400;font-size:calc(18px + var(--d)*4/1050);letter-spacing:.1em;color:var(--text-2);margin-top:12px}
.contact-media{display:none}
.info-lg{margin-top:32px;border-top:1px solid var(--ink-700)}
.info-lg .info-row{padding:18px 0}
.info-lg .info-row dd{font-family:var(--serif);font-size:19px;margin-top:6px}
.info-lg .info-row.email{border-bottom:1px solid var(--line)}
.info-lg .info-row.line{padding:20px 0 0}
.info-lg .info-row.line dd{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.info-lg .info-row.line .btn{height:52px;letter-spacing:.1em;padding:0 12px}
.info-lg .info-row.map{padding:20px 0 0;border-bottom:0}
.info-lg .info-row.map dt{display:none}
.info-lg .info-row.map dd{margin:0}
.map-embed{display:block;width:100%;height:200px;border:0;background:var(--line)}
@media (min-width:1024px){
  .contact .wrap{display:grid;grid-template-columns:calc(360px + var(--d)*120/1050) 1fr;gap:var(--gap-xl);align-items:start}
  .contact h1{margin-top:16px}
  .contact .sub{margin-top:20px}
  .contact-media{display:block;height:320px;margin-top:48px;overflow:hidden;background:var(--ink-900)}
  .contact-media img{width:100%;height:100%;object-fit:cover;object-position:60% 60%}
  .info-lg{margin-top:12px}
  .info-lg .info-row{grid-template-columns:120px 1fr;padding:26px 0;font-size:22px}
  .info-lg .info-row dd{font-size:inherit;margin:0}
  .info-lg .info-row.line{padding:26px 0;border-bottom:1px solid var(--line)}
  .info-lg .info-row.line dd{display:block}
  .info-lg .info-row.line .btn{padding:0 30px}
  .info-lg .info-row.map{display:grid;padding:26px 0;align-items:start}
  .info-lg .info-row.map dt{display:block;padding-top:4px}
  .map-embed{height:180px}
}

/* 聯絡我們：常見問題 */
.faq{padding:0 var(--gutter)}
.faq .wrap{border-top:1px solid var(--ink-700);padding:56px 0 72px}
.faq h2{font-size:var(--h2);letter-spacing:.1em;margin-top:12px}
.faq .intro{margin:20px 0 32px;font-size:15px;line-height:1.95;color:var(--text-2)}
.faq-list{border-top:1px solid var(--ink-700)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:grid;grid-template-columns:1fr 28px;gap:12px;align-items:center;min-height:60px;padding:16px 0;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .no{display:none}
.faq-list summary .q{font-family:var(--serif);font-weight:600;font-size:calc(17px + var(--d)*4/1050);letter-spacing:.04em;line-height:1.6}
.faq-list summary .mark{font-size:22px;font-weight:300;line-height:1;text-align:center;color:var(--gold-ink)}
.faq-list summary .mark::before{content:"+"}
.faq-list details[open] summary .mark::before{content:"−"}
.faq-list summary:hover .q{color:var(--gold-ink)}
.faq-list details p{padding:0 40px 22px 0;font-size:15px;line-height:1.95;color:var(--text-2)}
@media (min-width:1024px){
  .faq .wrap{padding:80px 0 120px;display:grid;grid-template-columns:var(--col-side) 1fr;gap:var(--gap-lg);align-items:start}
  .faq aside{position:sticky;top:40px}
  .faq h2{margin-top:16px}
  .faq .intro{margin:28px 0 0}
  .faq-list summary{grid-template-columns:40px 1fr 32px;gap:20px;min-height:72px;padding:22px 0}
  .faq-list summary .no{display:block;font-family:var(--serif);font-size:15px;letter-spacing:.1em;color:var(--gold-ink)}
  .faq-list summary .q{letter-spacing:.06em}
  .faq-list details p{padding:0 52px 30px 60px;font-size:16px;line-height:2}
}

/* 404 */
body.page-404{min-height:100vh;display:flex;flex-direction:column}
.notfound{flex:1;padding:64px 24px 80px}
.notfound .wrap{display:flex;flex-direction:column;align-items:center;text-align:center}
.notfound .wrap>div{width:100%}
.notfound img{order:-1;height:220px;width:auto;opacity:.9}
.notfound .code{font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--gold);margin-top:40px}
.notfound h1{font-size:calc(30px + var(--d)*14/1050);letter-spacing:.12em;margin-top:14px}
.notfound p{margin-top:16px;font-size:15px;line-height:2;color:var(--paper-300)}
.notfound .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px;width:100%}
.notfound .btn{height:48px;font-size:15px;padding:0 12px}
@media (min-width:1024px){
  .notfound{padding:0 var(--gutter);display:flex}
  .notfound .wrap{flex:1;max-width:1328px;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:640px;text-align:left}
  .notfound img{order:2;height:360px;justify-self:center}
  .notfound .code{font-size:14px;margin:0}
  .notfound h1{margin-top:20px}
  .notfound p{margin-top:24px;font-size:16px}
  .notfound .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
  .notfound .btn-gold{padding:0 26px}
  .notfound .btn-outline-dark{padding:0 22px}
}
