/* ====== 自行託管中文字型 ====== */
/* Iansui 一點明體（Regular / Bold）*/
@font-face {
  font-family: 'Iansui';
  src: url('/assets/fonts/Iansui-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Iansui';
  src: url('/assets/fonts/Iansui-Bold.ttf') format('truetype');
  font-weight: 700; font-style: normal; font-display: swap;
}

/* LXGW 霞鶩文楷（Regular / Bold）*/
@font-face {
  font-family: 'LXGWWenKaiTC';
  src: url('/assets/fonts/LXGWWenKaiTC-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'LXGWWenKaiTC';
  src: url('/assets/fonts/LXGWWenKaiTC-Bold.ttf') format('truetype');
  font-weight: 700; font-style: normal; font-display: swap;
}

/* JF Open 粉圓（Regular）*/
@font-face {
  font-family: 'JFOpenHuninn';
  src: url('/assets/fonts/jf-openhuninn-1.1.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}

/* ====== 基礎字體族 ====== */
:root{
  --brand:#1abc9c;      /* 蒂芬妮綠 */
  --brand-dark:#0e9e84; /* 深一階 */
  --pink:#fdecef;       /* 淺粉 */
  --ink:#222;           /* 文字深色 */
  --muted:#666;
}

/* 英文字：展示＋副標 */
.en-impact { font-family:"Bebas Neue",system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
.en-sans   { font-family:"Montserrat Alternates",system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }

/* 中文：三組風格（擇一或混搭） */
.zh-clean  { font-family:"Iansui","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif; }        /* 日系小清新 */
.zh-hand   { font-family:"LXGWWenKaiTC","Noto Serif TC","Songti TC","PMingLiU",serif; }                   /* 文青手寫 */
.zh-round  { font-family:"JFOpenHuninn","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif; }   /* 可愛圓潤 */

/* ====== 標題階層（RWD） ====== */
h1,h2,h3,h4,.h1,.h2,.h3{ color:var(--ink); margin:0 0 .4em; }
.title--impact{ font-family:"Bebas Neue",sans-serif; letter-spacing:.5px; line-height:1.05; color:var(--brand); }
.title--jp{ font-family:"Iansui","Noto Sans TC",sans-serif; font-weight:700; line-height:1.15; }

h1,.h1{ font-size:clamp(40px,6vw,72px); }
h2,.h2{ font-size:clamp(28px,4vw,48px); }
h3,.h3{ font-size:clamp(22px,3vw,32px); }

/* 副標與導語 */
.subtitle{ font-family:"Montserrat Alternates",sans-serif; font-weight:700; color:var(--ink); opacity:.9; }
.lead{ font-size:1.125rem; line-height:1.6; color:var(--muted); }

/* 內文字距／行高建議 */
.body-clean{ font-family:"Iansui","Noto Sans TC",sans-serif; line-height:1.7; }
.body-hand { font-family:"LXGWWenKaiTC","Noto Serif TC",serif; line-height:1.8; letter-spacing:.3px; }
.body-round{ font-family:"JFOpenHuninn","Noto Sans TC",sans-serif; line-height:1.7; letter-spacing:.2px; }

/* ====== Hero 區塊快速套用 ====== */
.hero{
  background:linear-gradient(180deg, var(--pink) 0%, #fff 100%);
  padding: clamp(32px, 6vw, 72px) 20px;
  text-align:center;
}
.hero .kicker{ 
  font: 700 14px/1 "Montserrat Alternates",sans-serif; 
  letter-spacing:.15em; text-transform:uppercase; color:var(--brand-dark); 
  margin-bottom:.8rem;
}
.hero .cta{
  display:inline-block; margin-top:1rem; padding:.85rem 1.25rem;
  border-radius:999px; background:var(--brand); color:#fff; text-decoration:none;
  font:700 16px/1 "Montserrat Alternates",sans-serif;
}
.hero .cta:hover{ background:var(--brand-dark); }

/* ====== 區塊標題預設：中文主標＋英文副標 ====== */
.section-title .zh{ display:block; }
.section-title .en{ display:block; opacity:.8; margin-top:.25rem; }
.section-title.jp .zh{ font-family:"Iansui","Noto Sans TC",sans-serif; font-weight:700; }
.section-title.jp .en{ font-family:"Montserrat Alternates",sans-serif; }

/* ====== 卡片與小元件 ====== */
.card{
  background:#fff; border:1px solid #eee; border-radius:16px;
  padding:20px; box-shadow:0 6px 20px rgba(0,0,0,.06);
}
.badge{
  display:inline-block; padding:.35rem .6rem; border-radius:999px;
  background:var(--pink); color:var(--brand-dark); 
  font:700 12px/1 "Montserrat Alternates",sans-serif;
}

/* ====== 印刷導出建議（可選） ====== */
@media print{
  body{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
