:root {
  --brand-50:#FFF9E8; --brand-100:#FFF1C2; --brand-200:#FFE38A; --brand-300:#FFD04F;
  --brand-400:#FBBF24; --brand-500:#F5B51B; --brand-600:#DA9810; --brand-700:#A96F09;
  --brand-800:#F5B51B; --brand-900:#4B2D08;
  --text-primary:#1E1E1E; --text-secondary:#525252; --text-muted:#737373;
  --surface:#FFFFFF; --surface-muted:#FAFAF8; --surface-brand:#FFF9E8;
  --sage-50:#F3F7F3; --sage-100:#E3EEE4; --sage-300:#ACC8AF; --sage-500:#6F9875; --sage-700:#47694C;
  --success:#4F8460; --warning:#D99B20; --error:#C95C54; --info:#547D9B;
  --border:rgba(30,30,30,.10); --border-hover:rgba(30,30,30,.18);
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:24px; --radius-2xl:32px;
  --shadow-card:0 4px 24px rgba(0,0,0,.06); --shadow-hover:0 12px 32px rgba(0,0,0,.10);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--surface-muted);color:var(--text-primary);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%}
.site-logo{height:44px;width:auto}
.safe{width:100%;max-width:1280px;margin-inline:auto;padding-inline:20px}
@media(min-width:640px){.safe{padding-inline:24px}} @media(min-width:1024px){.safe{padding-inline:32px}} @media(min-width:1280px){.safe{padding-inline:40px}}
.brand-focus:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(245,181,27,.30);border-color:var(--brand-500)!important}
.site-shadow{box-shadow:0 1px 12px rgba(0,0,0,.05)} .card-shadow{box-shadow:var(--shadow-card)}
.card-hover{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease}.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:rgba(30,30,30,.18)}
.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.zh-keep{word-break:keep-all;overflow-wrap:anywhere}
.editorial-kicker{letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;font-weight:700;color:var(--brand-800)}.editorial-number{font-family:Inter,Arial,sans-serif;font-size:.8rem;letter-spacing:.14em;color:var(--brand-800);font-weight:700}
.section-space{padding-block:64px}@media(min-width:768px){.section-space{padding-block:80px}}@media(min-width:1024px){.section-space{padding-block:112px}}
.organic{position:absolute;border-radius:999px;pointer-events:none}.dot-grid{background-image:radial-gradient(rgba(245,181,27,.16) 1px,transparent 1px);background-size:18px 18px}
.page-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#FFF9E8 100%);border-bottom:1px solid rgba(30,30,30,.08)}
.page-hero:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(245,181,27,.10);right:-140px;top:-190px}.page-hero:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;border:1px solid rgba(111,152,117,.24);right:18%;bottom:-120px}
.reading{max-width:896px}.reading p{line-height:1.85;margin:0 0 24px;color:var(--text-secondary)} .reading h2{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.28;margin:48px 0 20px;font-weight:700}
.surface{background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-card)}
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .5s cubic-bezier(.2,.8,.2,1),transform .5s cubic-bezier(.2,.8,.2,1)} [data-reveal].is-visible{opacity:1;transform:none}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.doc-row:hover{background:rgba(245,181,27,.08)}
.skip-link{position:fixed;left:16px;top:10px;z-index:100;background:#292929;color:#fff;padding:10px 14px;border-radius:10px;transform:translateY(-160%);transition:.15s}.skip-link:focus{transform:none}
.mobile-drawer{transition:transform .25s cubic-bezier(.2,.8,.2,1)} .mobile-drawer.is-closed{transform:translateX(100%)}
/* Homepage Hero — framed editorial / Irep-inspired */
.hero-shell{position:relative;background:#fff;border-bottom:1px solid rgba(30,30,30,.10);padding-top:24px}
.hero-stage{position:relative;width:calc(100% - 40px);max-width:1280px;min-height:clamp(620px,76vh,780px);margin:0 auto;overflow:hidden;border-radius:var(--radius-xl);background:#eee}
.hero-visual{position:absolute;z-index:1;inset:0;margin:0;overflow:hidden;border-radius:inherit;background:#eee}
.hero-visual picture,.hero-visual img{width:100%;height:100%}
.hero-visual img{object-fit:cover;object-position:center}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.86) 34%,rgba(255,255,255,.34) 64%,rgba(255,255,255,.06) 100%);pointer-events:none}
.hero-display{position:relative;z-index:3;padding-top:54px;margin-left:max(20px,calc((100% - 1280px)/2 + 40px));max-width:min(1120px,calc(100% - 80px));pointer-events:none}
.hero-display-title{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(66px,7.2vw,110px);font-weight:700;line-height:.94;letter-spacing:-.025em;color:#171717;text-transform:none;text-shadow:0 1px 12px rgba(255,255,255,.28);font-kerning:normal}
.hero-display-title span{display:block;width:max-content;max-width:100%}
.hero-copy{position:absolute;z-index:4;left:max(20px,calc((100% - 1280px)/2 + 40px));bottom:58px;width:min(520px,46%)}
.hero-zh-title{margin:0;color:var(--text-primary);font-size:clamp(18px,1.45vw,21px);font-weight:700;line-height:1.6;letter-spacing:.01em}
.hero-description{max-width:480px;margin:10px 0 0;color:var(--text-secondary);font-size:14px;line-height:1.85}
.hero-actions{display:flex;flex-wrap:wrap;gap:24px;margin-top:20px}
.hero-link{display:inline-flex;min-height:38px;align-items:center;gap:18px;border-bottom:1px solid rgba(30,30,30,.28);border-radius:0;color:var(--text-primary);font-size:13px;font-weight:600;transition:border-color .2s ease,gap .2s ease,color .2s ease}
.hero-link:hover{gap:24px;border-color:var(--brand-500)}
.hero-link-primary:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand-500);flex:0 0 auto}
.hero-scroll{position:absolute;z-index:4;right:26px;bottom:42px;display:flex;align-items:center;gap:12px;transform:rotate(90deg) translateX(100%);transform-origin:right bottom;color:var(--text-muted);font-family:Arial,sans-serif;font-size:9px;font-weight:600;letter-spacing:.14em}
.hero-scroll-line{display:block;width:58px;height:1px;background:rgba(30,30,30,.35)}
.hero-summary{background:#fff}
.hero-summary-inner{min-height:72px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
.hero-summary-item{min-height:28px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 18px;color:var(--text-secondary);font-size:13px;line-height:1.5;text-align:center}
.hero-summary-item+ .hero-summary-item{border-left:1px solid rgba(30,30,30,.12)}
.hero-summary-item strong{color:var(--text-primary);font-weight:700}
@media(min-width:640px){.hero-stage{width:calc(100% - 48px)}}
@media(min-width:1024px){.hero-shell{padding-top:24px}.hero-stage{width:calc(100% - 64px);height:clamp(520px,calc(100svh - 180px),720px);min-height:0}.hero-summary-inner{min-height:64px}}
@media(max-width:1023px){
  .hero-stage{min-height:720px}
  .hero-display{padding-top:46px;margin-left:24px;max-width:calc(100% - 48px)}
  .hero-display-title{font-size:clamp(58px,9.4vw,88px);letter-spacing:-.02em}
  .hero-copy{left:24px;bottom:52px;width:min(500px,60%)}
  .hero-scroll{display:none}
  .hero-visual:after{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 42%,rgba(255,255,255,.30) 78%,rgba(255,255,255,.05) 100%)}
}
@media(max-width:767px){
  .hero-shell{padding-top:16px}
  .hero-stage{width:calc(100% - 32px);min-height:680px;border-radius:var(--radius-lg)}
  .hero-display{padding-top:34px;margin-left:20px;max-width:calc(100% - 40px)}
  .hero-display-title{font-size:clamp(44px,13vw,64px);line-height:.96;letter-spacing:-.015em}
  .hero-copy{left:20px;right:20px;bottom:34px;width:auto}
  .hero-zh-title{font-size:18px}
  .hero-description{max-width:430px;margin-top:8px;font-size:14px;line-height:1.8}
  .hero-actions{gap:20px;margin-top:18px}
  .hero-visual img{object-position:center}
  .hero-visual:after{background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.66) 42%,rgba(255,255,255,.76) 72%,rgba(255,255,255,.92) 100%)}
  .hero-summary-inner{min-height:76px;padding-inline:16px}
  .hero-summary-item{padding:0 10px;font-size:11px;gap:4px}
}
@media(max-width:479px){
  .hero-stage{min-height:650px}
  .hero-display-title{font-size:clamp(40px,12.2vw,56px)}
  .hero-summary-inner{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-summary-item{padding:0 6px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}.card-hover:hover,.arch-card:hover{transform:none}[data-reveal]{opacity:1;transform:none}}

/* Investor Relations */
.investor-section{padding:88px 0;background:#FAFAF8}
.investor-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:start}
.investor-heading{padding-top:8px}
.investor-heading h2{margin:12px 0 0;font-size:clamp(32px,3vw,44px);line-height:1.2;font-weight:700;color:#292929}
.investor-description{max-width:440px;margin:22px 0 0;font-size:16px;line-height:1.9;color:#525252}
.investor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.investor-card{min-height:82px;padding:24px 22px 24px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid rgba(30,30,30,.06);border-radius:16px;box-shadow:0 3px 16px rgba(30,30,30,.035);color:#292929;font-size:17px;font-weight:600;line-height:1.5;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.investor-arrow {
  flex: 0 0 auto;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: auto;
  height: auto;

  background: transparent;
  color: #292929;
  border-radius: 0;

  font-size: 20px;
  font-weight: 600;
  line-height: 1;

  transition: transform .25s ease;
}
.investor-card:hover {
  transform: translateY(-3px);
  border-color: rgba(30, 30, 30, .18);
  box-shadow: 0 10px 28px rgba(30, 30, 30, .07);
}

.investor-card:hover .investor-arrow {
  transform: translateX(4px);
}
.investor-card:focus-visible{outline:3px solid rgba(245,181,27,.30);outline-offset:3px}
@media(max-width:1023px){.investor-section{padding:72px 0}.investor-layout{grid-template-columns:1fr;gap:36px}.investor-description{margin-top:16px}}
@media(max-width:767px){.investor-section{padding:56px 0 64px}.investor-layout{gap:28px}.investor-heading h2{font-size:30px}.investor-description{font-size:15px;line-height:1.8}.investor-grid{grid-template-columns:1fr;gap:12px}.investor-card{min-height:92px;padding:20px 20px 20px 22px;border-radius:14px;font-size:17px}.investor-arrow {
  font-size: 20px;
}

}

/* =========================================================
   Footer
   ========================================================= */

.site-footer {
  background: #FFFFFF;
  color: var(--text-primary);
  border-top: 1px solid rgba(30, 30, 30, .08);
}

.site-footer-inner {
  padding-top: 64px;
  padding-bottom: 28px;
}

/* 與 Investor Relations 使用相同的 1.08 / .92 網格 */
.site-footer-main {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 24px;
  align-items: start;
}

.site-footer-brand {
  padding-top: 2px;
}

.footer-logo {
  display: block;
  width: auto;
  height: 68px;
  margin-bottom: 24px;
}

.site-footer-contact {
  margin-top: 0;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.9;
  font-weight: 400;
}

.site-footer-contact p { margin: 0; }
.site-footer-contact p + p { margin-top: 2px; }

/* 右側導覽完整佔用 .92fr，左緣與 Investor cards 對齊 */
.site-footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}

.site-footer-column { min-width: 0; }

.site-footer-title {
  margin: 0 0 18px;
  color: var(--text-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.site-footer-links {
  display: grid;
  gap: 4px;
}

.site-footer-links a {
  display: flex;
  align-items: center;
  width: fit-content;
  min-height: 38px;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.6;
  border-radius: 8px;
  transition: color .18s ease, transform .18s ease;
}

.site-footer-links a:hover {
  color: var(--text-primary);
  transform: translateX(2px);
}

/* 第二列：品牌理念 / 法定資訊 */
.site-footer-bottom {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 24px;
  align-items: end;
  margin-top: 52px;
  padding-top: 24px;
  border-top: 1px solid rgba(30, 30, 30, .08);
}

.site-footer-slogan {
  text-align: left;
}

.site-footer-slogan-primary {
  margin: 0;
  color: var(--text-primary);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: .01em;
}

.site-footer-slogan-secondary {
  margin: 3px 0 0;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
}

.site-footer-legal {
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.75;
  text-align: right;
}

.site-footer-legal p { margin: 0; }
.site-footer-legal p + p { margin-top: 2px; }

/* =========================================================
   Footer RWD
   ========================================================= */

@media (max-width: 1023px) {
  .site-footer-inner { padding-top: 56px; }

  .site-footer-main {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .site-footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
  }

  .site-footer-bottom {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
    margin-top: 44px;
  }

  .site-footer-legal { text-align: left; }
}

@media (max-width: 767px) {
  .site-footer-inner {
    padding-top: 48px;
    padding-bottom: 24px;
  }

  .footer-logo {
    height: 60px;
    margin-bottom: 20px;
  }

  .site-footer-main { gap: 36px; }

  .site-footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 24px;
  }

  .site-footer-bottom {
    margin-top: 36px;
    padding-top: 22px;
    gap: 18px;
  }
}

@media (max-width: 479px) {
  .site-footer-nav {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* Homepage refinements: hero alignment + Latest & Media */
@media (min-width:1280px){
  .hero-stage{width:calc(100% - 80px);max-width:1200px}
  .hero-display{margin-left:max(40px,calc((100% - 1200px)/2 + 40px));max-width:min(1080px,calc(100% - 160px))}
  .hero-copy{left:max(40px,calc((100% - 1200px)/2 + 40px))}
}
.latest-panel{background:transparent;border:0;border-radius:0;box-shadow:none}


/* Homepage refinements: tighter hero copy + editorial Latest & Media */
.hero-description{margin-top:6px}
.latest-section{background:#fff}
.latest-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:start}
.latest-panel{background:transparent;border:0;border-radius:0;box-shadow:none}
.latest-feature>div{padding-left:0!important;padding-right:48px!important}
.latest-list{overflow:visible}
.latest-list>a{padding-left:0;padding-right:14px}
@media(max-width:1023px){
  .latest-layout{grid-template-columns:1fr;gap:28px}
  .latest-feature>div{padding-right:0!important}
}
@media(max-width:767px){
  .hero-description{margin-top:6px;line-height:1.7}
  .latest-list>a{padding-right:4px}
}

/* Hero refinement: English tagline matches Chinese headline scale */
.hero-display{
  position:absolute;
  z-index:3;
  top:0;
  left:0;
  margin:0;
  padding:48px 0 0 48px;
  max-width:none;
  pointer-events:none;
}
.hero-display-title{
  margin:0;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:clamp(18px,1.45vw,21px);
  font-weight:700;
  line-height:1.45;
  letter-spacing:.01em;
  color:var(--text-primary);
  text-shadow:none;
}
.hero-display-title span{
  display:block;
  width:auto;
  max-width:none;
}
@media(max-width:1023px){
  .hero-display{
    top:0;
    left:0;
    margin:0;
    padding:40px 0 0 40px;
    max-width:none;
  }
  .hero-display-title{
    font-size:clamp(18px,2.2vw,21px);
    line-height:1.45;
    letter-spacing:.01em;
  }
}
@media(max-width:767px){
  .hero-display{
    padding:28px 0 0 24px;
  }
  .hero-display-title{
    font-size:18px;
    line-height:1.45;
  }
}


/* 後台編輯器（TinyMCE）輸出的內文：sanitizeHtml() 過濾後放進 .rich-text */
.rich-text{line-height:2;color:#3d3d3d;overflow-wrap:anywhere}
.rich-text>*+*{margin-top:1rem}
.rich-text h2,.rich-text h3,.rich-text h4,.rich-text h5,.rich-text h6{margin-top:2rem;font-weight:700;line-height:1.4;color:#1e1e1e}
.rich-text h2{font-size:1.5rem}.rich-text h3{font-size:1.25rem}.rich-text h4,.rich-text h5,.rich-text h6{font-size:1.125rem}
.rich-text ul,.rich-text ol{padding-left:1.5rem}
.rich-text ul{list-style:disc}.rich-text ol{list-style:decimal}
.rich-text a{color:#1e1e1e;text-decoration:underline;text-underline-offset:4px}
.rich-text a:hover{color:#774a08}
.rich-text img{max-width:100%;height:auto;border-radius:1rem}
.rich-text blockquote{border-left:4px solid var(--brand-500);padding-left:1rem;color:#525252}
.rich-text pre{overflow-x:auto;border-radius:.75rem;background:#f4f4f3;padding:1rem;font-size:.875rem;line-height:1.7}
.rich-text table{display:block;width:100%;overflow-x:auto;border-collapse:collapse}
.rich-text th,.rich-text td{border:1px solid rgba(30,30,30,.12);padding:.5rem .75rem;text-align:left;vertical-align:top}
.rich-text th{background:#faf9f8;font-weight:700}

/* PHP 版新頁面用到、但 assets/css/tailwind.css 尚未編譯進去的工具類別。
   重新執行 npm run build:css（現在會掃描 .php）後這些就由 Tailwind 產生，可以刪除這一段。 */
.underline{text-decoration-line:underline}
.underline-offset-4{text-underline-offset:4px}
.hover\:underline:hover{text-decoration-line:underline}
.hover\:text-neutral-900:hover{color:var(--color-neutral-900,#292929)}
.items-end{align-items:flex-end}
.gap-x-5{column-gap:1.25rem}
.pb-6{padding-bottom:1.5rem}
.text-center{text-align:center}