
:root{
  --ink:#22211d;
  --text:#3e3d37;
  --muted:#6c6961;
  --paper:#fffefa;
  --soft:#f5f3ed;
  --soft2:#eeece5;
  --line:#dedbd2;
  --yellow:#f1e31a;
  --yellow-soft:#fff9c7;
  --max:1240px;
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",Arial,sans-serif;
  font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.wrap{width:min(var(--max),calc(100% - 56px));margin-inline:auto}

/* Header */
.announce{display:none}
header{position:sticky;top:0;z-index:50;background:rgba(255,254,250,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.nav{height:78px;display:flex;align-items:center;gap:26px}
.brand{margin-right:auto;display:flex;align-items:center}.brand-logo{width:168px;height:auto}
.navlinks{display:flex;align-items:center;gap:22px;font-size:16px;font-weight:600;white-space:nowrap}
.navlinks a{padding:27px 0 23px;position:relative}
.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:17px;height:2px;background:var(--yellow);transition:right .18s ease}
.navlinks a:hover::after,.navlinks a.active::after{right:0}
.navcta{background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:15px;font-weight:700}
.menu{display:none;border:0;background:transparent;color:var(--ink);font-size:27px;cursor:pointer}

/* Type */
.kicker,.eyebrow{font-size:14px;font-weight:700;color:#756f1b;letter-spacing:.01em}
h1,h2,h3{margin-top:0;color:var(--ink);font-weight:700;line-break:strict;word-break:normal;overflow-wrap:normal;text-wrap:pretty}
h1{font-size:clamp(40px,4vw,56px);line-height:1.22;letter-spacing:-.025em;margin-bottom:20px}
h2{font-size:clamp(29px,2.7vw,38px);line-height:1.34;letter-spacing:-.018em;margin-bottom:15px}
h3{font-size:21px;line-height:1.45;margin-bottom:8px}
p{margin-top:0}.lead{font-size:18px;line-height:1.8;color:var(--muted);max-width:820px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border:1px solid #c9c5bb;border-radius:999px;background:#fff;color:var(--ink);font-size:15px;font-weight:700}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn:hover{background:var(--yellow-soft)}
.text-link,.link{font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.section-link{margin:22px 0 0}

/* Main section system */
.section{padding:76px 0}.section.soft{background:var(--soft)}.section.dark{background:#292823;color:#fff}
.section.dark h1,.section.dark h2,.section.dark h3{color:#fff}.section.dark .lead,.section.dark p{color:#c9c6bd}
.section.dark .kicker{color:#efe524}.section.dark .btn{background:transparent;border-color:#b7b2a8;color:#fff}.section.dark .btn:hover{background:#fff;color:var(--ink)}
.section-intro,.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:52px;align-items:end;margin-bottom:32px}
.section-intro>* , .section-head>*{min-width:0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:58px;align-items:start}.split>*{min-width:0}
.detail-hero{padding:62px 0 54px;background:var(--soft);border-bottom:1px solid var(--line)}
.detail-hero h1{max-width:920px}.detail-hero p{font-size:18px;line-height:1.8;color:var(--muted);max-width:880px}

/* Home */
.home-hero{padding:68px 0 72px;border-bottom:1px solid var(--line)}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:64px;align-items:start}.home-hero-grid>*{min-width:0}
.home-hero-copy{padding-top:6px}.home-hero .brand-statement{font-size:18px;line-height:1.82;color:var(--muted);max-width:720px}
.home-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.company-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:34px}
.fact{padding:16px;background:var(--soft);border-radius:var(--radius)}.fact strong{display:block;font-size:24px;color:var(--ink);line-height:1.2;margin-bottom:5px}.fact span{font-size:14px;color:var(--muted)}
.hero-side{padding:24px 26px;background:var(--soft);border-radius:var(--radius)}.hero-side-title{font-size:15px;font-weight:700;color:var(--muted);margin-bottom:3px}
.hero-product{padding:17px 0;border-top:1px solid var(--line)}.hero-product:first-of-type{border-top:0}.hero-product b{display:block;font-size:18px;color:var(--ink);margin:4px 0}.hero-product span{font-size:15px;color:var(--muted)}.hero-product em{font-style:normal;font-size:14px;color:#756f1b}

/* Product rows */
.product-index{border-top:1px solid var(--ink)}
.product-row{display:grid;grid-template-columns:140px 250px minmax(0,1fr) 28px;gap:22px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}.product-row>*{min-width:0}
.product-row .group{font-size:14px;color:var(--muted);font-weight:700}.product-row h3{font-size:21px;margin:0}.product-row p{font-size:16px;color:var(--muted);margin:0}.product-row .arrow{font-size:21px;text-align:right}.product-row:hover h3{text-decoration:underline;text-underline-offset:4px}

/* Feature products */
.feature-list{border-top:1px solid var(--line)}.feature-product{display:grid;grid-template-columns:160px minmax(0,1fr) 280px;gap:30px;padding:27px 0;border-bottom:1px solid var(--line)}.feature-product>*{min-width:0}
.feature-product .label{font-size:14px;font-weight:700;color:#756f1b}.feature-product h3{font-size:23px;margin:0 0 7px}.feature-product p{font-size:16px;color:var(--muted)}.feature-product ul{font-size:15px;color:#555249;margin:0;padding-left:20px}

/* Deep plan */
.deep-story{display:grid;grid-template-columns:250px minmax(0,1fr);gap:44px}.deep-story>*{min-width:0}.deep-aside{font-size:15px;color:var(--muted)}.deep-aside strong{display:block;font-size:18px;color:var(--ink);margin-bottom:6px}
.deep-steps{border-top:1px solid var(--line)}.deep-step{display:grid;grid-template-columns:115px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.deep-step>*{min-width:0}.deep-step b{font-size:16px;color:var(--ink)}.deep-step h3{font-size:20px;margin:0 0 4px}.deep-step p{font-size:16px;color:var(--muted);margin:0}
.section.dark .deep-step b{color:#efe524}.section.dark .deep-step h3{color:#fff}.section.dark .deep-step p{color:#c9c6bd}

/* Four domains */
.domain-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.domain-category{padding:26px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);min-width:0}.domain-category-head{margin-bottom:14px}.domain-no{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--yellow-soft);font-size:14px;font-weight:700;color:#716a13}.domain-category-head h3{font-size:22px;margin:9px 0 0}
.domain-category-body>p{font-size:16px;line-height:1.75;color:var(--muted);margin-bottom:16px}.domain-items{display:flex;flex-wrap:wrap;gap:8px}.domain-items span{font-size:15px;line-height:1.5;padding:6px 9px;border-radius:7px;background:var(--soft);color:#56534c}

/* Tables */
.domain-table,.feature-table{width:100%;border-collapse:collapse;margin-top:20px;table-layout:fixed}.domain-table th,.domain-table td,.feature-table th,.feature-table td{padding:15px 14px;border-bottom:1px solid var(--line);font-size:16px;line-height:1.7;text-align:left;vertical-align:top;overflow-wrap:anywhere}.domain-table th,.feature-table th{width:28%;font-weight:700;color:var(--ink);background:#f7f5ef}

/* Case / history / capabilities */
.case-feature{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;padding:23px 0;border-top:1px solid var(--line)}.case-feature:last-child{border-bottom:1px solid var(--line)}.case-feature .case-type{font-size:14px;font-weight:700;color:#756f1b}.case-feature h3{margin:0 0 6px}.case-feature p{font-size:16px;color:var(--muted);margin:0}
.client-name-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.client-name{min-height:68px;display:flex;align-items:center;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:16px;font-weight:600;color:var(--ink);min-width:0}
.history{border-top:1px solid var(--line)}.history-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}.history-row strong{font-size:18px;color:var(--ink)}.history-row p{font-size:16px;color:var(--muted);margin:0}
.capability-list{border-top:1px solid var(--line)}.capability-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:26px;padding:16px 0;border-bottom:1px solid var(--line)}.capability-row b{font-size:17px;color:var(--ink)}.capability-row p{font-size:16px;color:var(--muted);margin:0}
.section.dark .capability-list{border-color:#57544d}.section.dark .capability-row{border-color:#57544d}.section.dark .capability-row b{color:#fff}.section.dark .capability-row p{color:#c9c6bd}

/* Detailed pages */
.content-grid,.two-col{display:grid;grid-template-columns:220px minmax(0,1fr);gap:50px}.content-grid>* , .two-col>*{min-width:0}
.side-index{position:sticky;top:100px;background:var(--soft);border-radius:8px;padding:6px 13px;align-self:start}.side-index a{display:block;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted)}.side-index a:last-child{border-bottom:0}
.content-block{padding-bottom:52px}.content-block p{font-size:17px;color:var(--muted)}
.product-groups{display:grid;gap:28px}.group{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;padding-top:20px;border-top:1px solid var(--line)}.group>*{min-width:0}.group-label small{display:block;font-size:14px;color:var(--muted)}.group-label b{font-size:19px;color:var(--ink)}.module-grid,.module-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}.module,.module-list span{padding:9px 0;border-bottom:1px dotted var(--line);font-size:16px;min-width:0}
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.quick{padding:20px;background:#fff;border:1px solid var(--line);border-radius:8px;min-width:0}.quick small{font-size:14px;color:var(--muted)}.quick h3{font-size:20px;margin:9px 0 6px}.quick p{font-size:15px;color:var(--muted)}
.detail-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.detail-card{padding:21px;background:#fff;border:1px solid var(--line);border-radius:8px;min-width:0}.detail-card .overline{font-size:14px;color:#756f1b;font-weight:700}.detail-card h3{font-size:20px;margin:8px 0 6px}.detail-card p{font-size:16px;color:var(--muted)}
.check-list{display:grid;gap:8px;margin-top:18px}.check-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.check-row i{font-style:normal;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--yellow-soft);font-size:14px}.check-row b{font-size:16px;color:var(--ink)}.check-row span{display:block;font-size:15px;color:var(--muted)}
.product-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.product-nav a{font-size:14px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff}.old-product-box{margin-top:22px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:8px}.old-product-box p{font-size:16px;color:var(--muted)}.mini-bullets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 20px}.mini-bullets span{font-size:15px;padding-top:8px;border-top:1px solid var(--line)}
.note,.callout,.service-emphasis{margin-top:18px;padding:15px 18px;background:var(--yellow-soft);border-left:4px solid var(--yellow);border-radius:0 8px 8px 0;font-size:15px}.note b,.callout b,.service-emphasis b{color:var(--ink)}
.service-flow,.service-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:26px}.flow-step,.service-step{padding:18px;background:#fff;border:1px solid var(--line);border-radius:8px;min-width:0}.flow-step small,.service-step small{font-size:14px;color:#756f1b}.flow-step b,.service-step b{display:block;font-size:17px;color:var(--ink);margin:11px 0 4px}.flow-step span,.service-step p{font-size:15px;color:var(--muted);margin:0}
.value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.value{padding-top:14px;border-top:2px solid var(--ink)}.value b{font-size:18px;color:var(--ink)}.value p{font-size:15px;color:var(--muted)}
.visual-panel{padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px}.visual-caption{display:flex;justify-content:space-between;gap:12px;padding-top:9px;font-size:14px;color:var(--muted)}

/* News/contact */
.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:105px 135px minmax(0,1fr);gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.news-item time,.news-item .type{font-size:14px;color:var(--muted)}.news-item b{font-size:16px;color:var(--ink)}.news-item p{font-size:15px;color:var(--muted);margin:3px 0 0}
.contact-card,.contact-list{border-top:1px solid var(--line)}.contact-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.contact-row b{font-size:15px;color:var(--ink)}.contact-row span{font-size:16px;overflow-wrap:anywhere}

/* CTA/Footer */
.cta{padding:0 0 62px}.ctabox{background:#292823;color:#fff;padding:34px 38px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;border-radius:10px}.ctabox h2{font-size:28px;color:#fff;margin:0 0 5px}.ctabox p{font-size:16px;color:#c9c6bd;margin:0}.ctabox .btn{background:transparent;color:#fff;border-color:#aaa69b}
footer{padding:28px 0 38px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:end}.footer-brand img{width:165px;margin-bottom:9px}.footer-nav{display:flex;justify-content:flex-end;gap:16px;flex-wrap:wrap}

/* Responsive */
@media(max-width:1120px){
  .navlinks{gap:15px;font-size:15px}.brand-logo{width:155px}
  .section-intro,.section-head{grid-template-columns:1fr;gap:12px;align-items:start}
  .home-hero-grid{grid-template-columns:1fr;gap:34px}.hero-side{max-width:none}
  .product-row{grid-template-columns:120px 220px minmax(0,1fr) 24px;gap:18px}
  .feature-product{grid-template-columns:140px minmax(0,1fr);gap:22px}.feature-product ul{grid-column:2}
  .split{grid-template-columns:1fr;gap:34px}
  .service-flow,.service-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:980px){
  .navlinks,.navcta{display:none}.menu{display:block}
  .navlinks{position:fixed;top:78px;left:0;right:0;background:var(--paper);padding:14px 24px 22px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.06)}
  body.nav-open .navlinks{display:flex}.navlinks a{width:100%;padding:11px 0}.navlinks a::after{display:none}
  .deep-story,.content-grid,.two-col{grid-template-columns:1fr;gap:28px}.side-index{position:static}
  .product-row{grid-template-columns:120px minmax(0,1fr);gap:6px 18px}.product-row p{grid-column:2}.product-row .arrow{display:none}
  .case-feature{grid-template-columns:180px minmax(0,1fr)}
  .domain-categories{grid-template-columns:1fr}
  .client-name-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .group{grid-template-columns:1fr;gap:10px}.module-grid,.module-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-flow,.service-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .wrap{width:min(var(--max),calc(100% - 28px))}.nav{height:70px}.navlinks{top:70px}.brand-logo{width:148px}
  body{font-size:16px}.section{padding:56px 0}.home-hero{padding:52px 0 58px}.detail-hero{padding:48px 0 42px}
  h1{font-size:34px;line-height:1.28}h2{font-size:27px;line-height:1.38}h3{font-size:20px}.lead,.detail-hero p,.home-hero .brand-statement{font-size:17px}
  .company-facts{grid-template-columns:1fr}.fact{padding:14px}
  .product-row{grid-template-columns:1fr;gap:4px;padding:18px 0}.product-row p{grid-column:1}.product-row .group{margin-bottom:2px}
  .feature-product{grid-template-columns:1fr;gap:7px;padding:21px 0}.feature-product ul{grid-column:1;margin-top:4px}
  .deep-step,.case-feature,.history-row,.capability-row,.news-item,.contact-row{grid-template-columns:1fr;gap:6px}
  .domain-category{padding:20px}.client-name-list{grid-template-columns:1fr}.client-name{min-height:58px}
  .module-grid,.module-list,.quick-grid,.detail-cards,.service-flow,.service-rail,.value-grid{grid-template-columns:1fr}.mini-bullets{grid-template-columns:1fr}
  .domain-table,.feature-table{table-layout:auto}.domain-table th,.domain-table td,.feature-table th,.feature-table td{display:block;width:100%}.domain-table th,.feature-table th{padding-bottom:6px;border-bottom:0}.domain-table td,.feature-table td{padding-top:6px}
  .ctabox{grid-template-columns:1fr;padding:28px}.footer{grid-template-columns:1fr}.footer-nav{justify-content:flex-start}
}

/* Architecture content block: replaces decorative generated illustration */
.architecture-box{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:22px 24px}
.architecture-title{font-size:18px;font-weight:700;color:var(--ink);padding-bottom:12px;border-bottom:1px solid var(--line)}
.architecture-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.architecture-row:last-child{border-bottom:0}
.architecture-row b{font-size:15px;color:#756f1b}.architecture-row span{font-size:15px;color:var(--muted)}
@media(max-width:700px){.architecture-row{grid-template-columns:1fr;gap:3px}}


/* V5.1 targeted polish */

/* Products > 技術與整合服務 */
.service-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:28px;
}
.service-summary{
  padding:22px;
  background:#f7f5ee;
  border:1px solid #e5e1d6;
  border-radius:12px;
}
.service-summary h3{
  margin:0 0 7px;
  font-size:18px;
  line-height:1.45;
}
.service-summary p{
  margin:0;
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
}
.content-action{
  margin-top:24px;
}

/* Replace the black full-width banner with a natural closing panel */
.cta{
  padding:34px 0 54px;
}
.contact-cta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:40px;
  align-items:center;
  padding:32px 38px;
  background:#f4f2eb;
  border:1px solid #e3dfd4;
  border-radius:18px;
}
.contact-cta .kicker{
  margin-bottom:5px;
}
.contact-cta h2{
  margin:0 0 7px;
  font-size:26px;
  line-height:1.35;
}
.contact-cta p{
  margin:0;
  max-width:760px;
  font-size:16px;
  line-height:1.7;
  color:var(--muted);
}
.contact-cta .btn{
  white-space:nowrap;
}

/* prevent old CTA rules from affecting the new panel */
.contact-cta .btn.primary{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}

@media(max-width:900px){
  .service-summary-grid{
    grid-template-columns:1fr;
  }
  .contact-cta{
    grid-template-columns:1fr;
    gap:20px;
  }
  .contact-cta .btn{
    width:max-content;
  }
}

@media(max-width:600px){
  .contact-cta{
    padding:25px 22px;
    border-radius:14px;
  }
  .contact-cta h2{
    font-size:23px;
  }
  .contact-cta .btn{
    width:100%;
  }
}


/* =========================================================
   V5.2 Micro Motion
   克制型微互動，不改版面結構
   ========================================================= */

:root{
  --motion-fast:180ms;
  --motion-normal:240ms;
  --motion-slow:420ms;
  --motion-ease:cubic-bezier(.22,.61,.36,1);
}

/* 卡片 / 資訊塊：只做 2px 上移，不做明顯放大 */
.product-row,
.service-summary,
.client-name,
.domain-category,
.detail-card,
.quick,
.card,
.case-feature,
.capability-row,
.history-row,
.news-item,
.contact-row{
  transition:
    transform var(--motion-normal) var(--motion-ease),
    box-shadow var(--motion-normal) var(--motion-ease),
    border-color var(--motion-normal) var(--motion-ease),
    background-color var(--motion-normal) var(--motion-ease);
  will-change:transform;
}

@media (hover:hover) and (pointer:fine){
  .product-row:hover,
  .service-summary:hover,
  .client-name:hover,
  .domain-category:hover,
  .detail-card:hover,
  .quick:hover,
  .card:hover,
  .case-feature:hover,
  .capability-row:hover,
  .history-row:hover,
  .news-item:hover,
  .contact-row:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(35,33,28,.055);
    border-color:#d2cdc1;
  }

  /* 特別重要的內容區可再多一點點層次 */
  .feature-product{
    transition:
      transform var(--motion-normal) var(--motion-ease),
      box-shadow var(--motion-normal) var(--motion-ease),
      border-color var(--motion-normal) var(--motion-ease);
  }
  .feature-product:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(35,33,28,.065);
    border-color:#cec8ba;
  }

  /* 圖片只在框內縮放，不動外框 */
  .visual-panel,
  .screen-stage{
    overflow:hidden;
  }
  .visual-panel img,
  .screen-stage img{
    transition:transform var(--motion-slow) var(--motion-ease);
    transform-origin:center center;
  }
  .visual-panel:hover img,
  .screen-stage:hover img{
    transform:scale(1.035);
  }

  /* 按鈕不做明顯放大，只輕微上移 */
  .btn,
  .navcta{
    transition:
      transform var(--motion-fast) var(--motion-ease),
      background-color var(--motion-fast) var(--motion-ease),
      border-color var(--motion-fast) var(--motion-ease),
      color var(--motion-fast) var(--motion-ease),
      box-shadow var(--motion-fast) var(--motion-ease);
  }
  .btn:hover,
  .navcta:hover{
    transform:translateY(-1px);
  }

  /* 文字連結做細微右移 */
  .text-link,
  .link{
    display:inline-block;
    transition:
      transform var(--motion-fast) var(--motion-ease),
      text-decoration-color var(--motion-fast) ease;
  }
  .text-link:hover,
  .link:hover{
    transform:translateX(3px);
  }

  /* 導覽底線維持自然滑入 */
  .navlinks a:after{
    transition:right var(--motion-normal) var(--motion-ease);
  }
}

/* 進場動畫：很淡，只做 opacity + 8px */
.reveal-ready{
  opacity:0;
  transform:translateY(8px);
}
.reveal-ready.is-visible{
  opacity:1;
  transform:none;
  transition:
    opacity 520ms var(--motion-ease),
    transform 520ms var(--motion-ease);
}

/* 避免 Hero 一打開整塊空白，首屏不套 reveal */
.home-hero,
.detail-hero,
header,
footer{
  opacity:1 !important;
  transform:none !important;
}

/* 鍵盤操作保留清楚焦點 */
a:focus-visible,
button:focus-visible{
  outline:3px solid rgba(239,226,29,.72);
  outline-offset:3px;
}

/* 尊重系統減少動態效果設定 */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
  .reveal-ready{
    opacity:1 !important;
    transform:none !important;
  }
}

/* 手機與觸控裝置不做 hover 位移，避免點擊跳動 */
@media (hover:none), (pointer:coarse){
  .product-row,
  .service-summary,
  .client-name,
  .domain-category,
  .detail-card,
  .quick,
  .card,
  .case-feature,
  .capability-row,
  .history-row,
  .news-item,
  .contact-row,
  .feature-product,
  .btn,
  .navcta,
  .text-link,
  .link{
    transform:none !important;
  }
}

/* =========================================================
   V5.2.1 QA fixes
   全站版型與微互動驗收後的局部修正
   ========================================================= */

/* 次世代 HIS：深色 section 裡的 service-step 是白卡，
   內文不應繼承 dark section 的淺色文字。 */
.section.dark .service-step,
.section.dark .flow-step{
  background:#fff;
  color:var(--text);
}
.section.dark .service-step b,
.section.dark .flow-step b{
  color:var(--ink);
}
.section.dark .service-step p,
.section.dark .flow-step span{
  color:var(--muted);
}
.section.dark .service-step small,
.section.dark .flow-step small{
  color:#756f1b;
}

/* reveal 完成後，保留 V5.2 原本設計的 hover 位移。
   原本 .reveal-ready.is-visible 的 transform:none 會蓋掉 hover transform。 */
@media (hover:hover) and (pointer:fine){
  .feature-product.reveal-ready.is-visible:hover{
    transform:translateY(-3px);
    transition:
      transform var(--motion-normal) var(--motion-ease),
      box-shadow var(--motion-normal) var(--motion-ease),
      border-color var(--motion-normal) var(--motion-ease);
  }
  .domain-category.reveal-ready.is-visible:hover,
  .case-feature.reveal-ready.is-visible:hover{
    transform:translateY(-2px);
    transition:
      transform var(--motion-normal) var(--motion-ease),
      box-shadow var(--motion-normal) var(--motion-ease),
      border-color var(--motion-normal) var(--motion-ease),
      background-color var(--motion-normal) var(--motion-ease);
  }
}


/* =========================================================
   V5.3 客戶實績：原官網完整院所資料 + Logo + 官網連結
   ========================================================= */
.client-group-section{
  margin-bottom:54px;
}
.client-group-section:last-child{
  margin-bottom:0;
}
.client-group-title{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding-bottom:13px;
  margin-bottom:18px;
  border-bottom:1px solid var(--line);
}
.client-group-title h2{
  margin:0;
  font-size:25px;
  line-height:1.4;
}
.client-group-title span{
  font-size:14px;
  color:var(--muted);
  white-space:nowrap;
}
.client-card-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.client-card{
  min-width:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  transition:
    transform var(--motion-normal,240ms) var(--motion-ease,ease),
    box-shadow var(--motion-normal,240ms) var(--motion-ease,ease),
    border-color var(--motion-normal,240ms) var(--motion-ease,ease);
}
.client-logo-frame{
  height:126px;
  padding:20px 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
}
.client-logo-frame img{
  display:block;
  max-width:100%;
  max-height:72px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.client-logo-frame img.client-logo-error{
  font-size:0;
}
.client-card-bottom{
  min-height:78px;
  border-top:1px solid var(--line);
  padding:13px 15px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:6px;
}
.client-name-label{
  font-size:16px;
  line-height:1.45;
  font-weight:700;
  color:var(--ink);
}
.client-site-link{
  font-size:14px;
  color:var(--muted);
}
.client-home-action{
  margin-top:22px;
}
@media (hover:hover) and (pointer:fine){
  .client-card:hover{
    transform:translateY(-3px);
    border-color:#cbc5b8;
    box-shadow:0 12px 28px rgba(35,33,28,.065);
  }
  .client-card:hover .client-site-link{
    color:var(--ink);
  }
}
@media(max-width:1050px){
  .client-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .client-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .client-logo-frame{
    height:112px;
    padding:16px;
  }
}
@media(max-width:480px){
  .client-card-grid{
    grid-template-columns:1fr;
  }
  .client-logo-frame{
    height:116px;
  }
  .client-card-bottom{
    min-height:auto;
  }
}


/* 健保資訊異動：僅展示及下載既有發布檔案 */
.nhi-notices-section {padding-top:64px}
.nhi-toolbar {margin:0 0 20px;max-width:560px}
.nhi-search-label {display:block;margin-bottom:8px;font-size:15px;font-weight:700;color:var(--ink)}
.nhi-search {display:block;width:100%;font:inherit;font-size:16px;line-height:1.5;border:1px solid var(--line);background:#fff;color:var(--ink);padding:12px 14px;border-radius:9px;outline-offset:3px}
.nhi-search:focus-visible {outline:2px solid #c9ba11}
.nhi-notices {border-top:1px solid var(--line)}
.nhi-item {display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:28px;align-items:center;padding:22px 8px;border-bottom:1px solid var(--line)}
.nhi-item-date {font-size:15px;color:var(--muted);white-space:nowrap}
.nhi-item-title {min-width:0;font-size:17px;color:var(--ink);font-weight:650;line-height:1.66;overflow-wrap:anywhere}
.nhi-download {display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;border:1px solid #bfbab0;background:#fff;padding:9px 14px;font-size:15px;font-weight:700;border-radius:8px;color:var(--ink);transition:background-color 180ms ease,border-color 180ms ease,transform 180ms ease}
.nhi-download:hover {background:#fff9c9;border-color:#b8ab20;transform:translateY(-1px)}
.nhi-download:focus-visible {outline:2px solid #bbac0e;outline-offset:3px}
.nhi-message {padding:25px 8px;color:var(--muted);font-size:16px;line-height:1.7}
.nhi-message a {text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.nhi-pagination {padding-top:22px;text-align:center}
.nhi-pagination .btn {cursor:pointer}
[hidden] {display:none!important}
@media(max-width:820px){.nhi-item {grid-template-columns:1fr auto;gap:8px 18px}.nhi-item-date{grid-column:1/-1}.nhi-item-title{grid-column:1}.nhi-download{grid-column:2}}
@media(max-width:540px){.nhi-item{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:21px 4px}.nhi-item-title{font-size:16px}.nhi-download{align-self:flex-start}}
@media(prefers-reduced-motion:reduce){.nhi-download{transition:none!important}.nhi-download:hover{transform:none}}

/* 客戶實績完整名單 */
.client-browse-tools{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:20px 22px;margin-bottom:14px;background:#f6f4ee;border:1px solid var(--line);border-radius:14px}
.client-browse-tools label{font-size:16px;font-weight:700;white-space:nowrap}
.client-browse-tools input{min-width:210px;width:min(420px,100%);height:46px;padding:10px 15px;font:inherit;font-size:16px;background:white;border:1px solid #d7d1c4;border-radius:8px;color:var(--ink)}
.client-browse-tools input:focus-visible{outline:3px solid #f1e95c;outline-offset:2px}
.client-result-count{font-size:14px;color:var(--muted);margin-left:auto}
.client-category-links{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:42px}
.client-category-links a{display:inline-block;padding:8px 12px;border-radius:24px;border:1px solid #dedacf;background:#fff;font-size:14px}
.client-category-links a:hover{background:#fffbd1}
.client-card--plain{cursor:default}
.client-logo-frame{position:relative}
.client-fallback-label{display:none;font-size:18px;font-weight:700;color:var(--ink);text-align:center}
.client-logo-frame.show-client-label .client-fallback-label{display:block}
.client-text-logo{display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%;font-size:19px;font-weight:750;color:#37352f;line-height:1.4;text-align:center}
.client-card--plain .client-name-label{color:#3c3b36}
.client-card--plain .client-card-bottom{min-height:62px;justify-content:center}
.client-no-results{font-size:16px;padding:25px;background:#f5f3ec;border-radius:12px}
.client-group-section[hidden],.client-card[hidden]{display:none!important}
@media(max-width:760px){.client-browse-tools{display:grid;grid-template-columns:1fr;gap:9px}.client-browse-tools input{width:100%;min-width:0}.client-result-count{margin-left:0}}
@media(prefers-reduced-motion:reduce){.client-card{transition:none!important}}

/* V5.7 local logos, text fallback and no hospital totals */
.client-logo-frame img[hidden]{display:none!important}
.client-logo-frame .client-fallback-label{display:none}
.client-logo-frame.show-client-label .client-fallback-label{display:block;font-size:16px;font-weight:700;text-align:center;color:var(--ink);line-height:1.55;padding:8px}
