/* CMS 新增元件；不覆蓋原有頁面設計規則。 */
.ec-credit { display:block; margin-top:.35rem; font-size:.72rem; opacity:.72; }
.ec-credit a { color:inherit; text-decoration:none; transition:color .2s; }
.ec-credit a:hover,.ec-credit a:focus-visible { color:var(--color-accent); }
.home-banners { background:var(--color-ink); }
.banner-carousel { position:relative; min-height:26rem; overflow:hidden; }
.banner-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .65s var(--ease); }
.banner-slide.is-active { position:relative; opacity:1; visibility:visible; }
.banner-slide picture,.banner-slide img { width:100%; height:clamp(26rem,48vw,40rem); object-fit:cover; }
.banner-overlay { position:absolute; inset:0; display:flex; align-items:flex-end; padding:var(--space-xl) var(--space-md); color:#fff; background:linear-gradient(90deg,rgba(26,42,110,.9),rgba(26,26,26,.18)); }
.banner-overlay h2 { margin:0 0 .5rem; font-family:var(--font-display); font-size:clamp(2rem,5vw,3.5rem); }
.banner-overlay p { max-width:38rem; }
.banner-nav { position:absolute; top:50%; z-index:3; width:3rem; height:3rem; border:1px solid rgba(255,255,255,.6); background:rgba(0,0,0,.28); color:#fff; font-size:2rem; }
.banner-prev { left:1rem; }.banner-next { right:1rem; }
.banner-dots { position:absolute; z-index:3; bottom:1rem; left:50%; transform:translateX(-50%); display:flex; gap:.5rem; }
.banner-dots button { width:.7rem; height:.7rem; padding:0; border-radius:50%; background:rgba(255,255,255,.5); }
.banner-dots button.is-active { background:var(--color-accent); }
.pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:.45rem; margin-top:var(--space-lg); }
.pagination a { min-width:2.6rem; height:2.6rem; display:grid; place-items:center; border:1px solid rgba(37,57,147,.24); background:#fff; color:var(--color-primary); font-weight:700; }
.pagination a:hover,.pagination a.is-current { background:var(--color-primary); color:#fff; }
.empty-state { padding:var(--space-lg); background:#fff; border-left:4px solid var(--color-accent); text-align:center; }
.enquiry-layout,.calculator-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:var(--space-lg); align-items:start; }
.enquiry-form,.calculator-form { background:#fff; padding:var(--space-lg); box-shadow:var(--shadow-soft); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.form-grid label { display:flex; flex-direction:column; gap:.35rem; font-weight:700; color:var(--color-primary-deep); }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; padding:.8rem .9rem; border:1px solid rgba(37,57,147,.22); background:#fff; color:var(--color-ink); font:inherit; border-radius:0; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { outline:2px solid var(--color-accent); border-color:var(--color-primary); }
.form-wide { grid-column:1/-1; }.consent { display:flex; gap:.6rem; align-items:flex-start; margin:1rem 0; font-size:.9rem; }.consent input { margin-top:.35rem; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.alert { padding:.9rem 1rem; margin-bottom:1rem; border-left:4px solid; }.alert-success { background:#e7f7ec; border-color:#238636; }.alert-error { background:#fff0f0; border-color:#c62828; }
.case-open { width:100%; padding:0; text-align:left; border:0; color:inherit; }.case-open:focus-visible { outline:3px solid var(--color-accent); outline-offset:2px; }
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-md); }
.blog-card { background:#fff; border-bottom:4px solid var(--color-primary); box-shadow:0 8px 28px rgba(26,26,26,.08); }
.blog-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }.blog-card-body { padding:var(--space-md); }.blog-card h2 { margin:.5rem 0; font-family:var(--font-display); line-height:1.2; }.blog-card time { color:var(--color-muted); font-size:.85rem; }.blog-category { display:inline-block; color:var(--color-primary); font-weight:700; font-size:.8rem; letter-spacing:.08em; }.blog-read-more { color:var(--color-primary); font-weight:700; }
.blog-article-header { padding:var(--space-xl) var(--space-md); }.blog-article-header h1 { max-width:54rem; font-family:var(--font-display); font-size:clamp(2.2rem,5vw,4rem); line-height:1.12; }.breadcrumbs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:var(--space-md); color:var(--color-muted); }.article-dates { display:flex; gap:1rem; color:var(--color-muted); }.article-cover { margin-top:var(--space-lg); }.article-cover img { width:100%; max-height:40rem; object-fit:cover; }.article-content { max-width:52rem; padding-top:var(--space-lg); padding-bottom:var(--space-xl); font-size:1.08rem; }.article-content h2,.article-content h3 { font-family:var(--font-display); color:var(--color-primary-deep); }
.valuation-result { margin-top:1.25rem; padding:var(--space-md); border-left:4px solid var(--color-primary); background:var(--color-mist); }.valuation-result span,.valuation-result strong { display:block; }.valuation-result strong { margin:.35rem 0; font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.8rem); color:var(--color-primary-deep); }.valuation-result.is-success { border-color:#238636; }.valuation-result.is-empty { border-color:var(--color-accent); }
@media(max-width:900px){.enquiry-layout,.calculator-layout{grid-template-columns:1fr}.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.form-grid,.blog-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.enquiry-form,.calculator-form{padding:var(--space-md)}.banner-nav{display:none}}
@media(prefers-reduced-motion:reduce){.banner-slide{transition:none}}
