/* ========================= Service Pages – Shared Styles ========================= */ /* Design tokens */ $brand: #ea5413; $brand-dark: #c43e00; $brand-light: #fff3ed; $gray-border: #e5e7eb; $text-dark: #0b1120; $text-secondary: #555; :root { --brand: #{$brand}; --brand-dark: #{$brand-dark}; --brand-light: #{$brand-light}; --gray-border: #{$gray-border}; --text-dark: #{$text-dark}; --text-secondary: #{$text-secondary}; } /* Base */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans TC", "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: $text-dark; background-color: #fff; } a { color: $brand; text-decoration: none; &:hover { color: $brand-dark; } } /* Utilities */ .text-primary { color: $brand !important; } .shadow-soft { box-shadow: 0 8px 30px rgba($brand, 0.15); } .kicker { letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: $brand-dark; } .hero { background: radial-gradient(1200px 520px at 15% -10%, rgba($brand, 0.18), transparent), radial-gradient(800px 420px at 100% 0%, rgba($brand, 0.1), transparent), linear-gradient(180deg, #fffdfc, #fff7f3); border-bottom: 1px solid $gray-border; } .line { border-bottom: 2px solid $brand-light; padding-bottom: 5rem; margin-bottom: 5rem; } .link-btn { display: inline-flex; align-items: center; gap: .5rem; background: $brand; color: #fff; padding: .9rem 1.2rem; border-radius: .8rem; text-decoration: none; transition: all .2s ease-in-out; font-weight: 600; box-shadow: 0 3px 8px rgba($brand, 0.2); &:hover { background: $brand-dark; color: #fff; transform: translateY(-1px); box-shadow: 0 6px 14px rgba($brand-dark, 0.25); } } .outline-btn { display: inline-flex; align-items: center; gap: .5rem; border: 2px solid $brand; color: $brand; padding: .8rem 1.2rem; border-radius: .8rem; font-weight: 600; background: transparent; text-decoration: none; transition: all .2s ease-in-out; &:hover { background: $brand; color: #fff; transform: translateY(-1px); } } .badge-soft { background: rgba($brand, 0.1); color: $brand; border: 1px solid rgba($brand, 0.2); font-weight: 600; } .feature-card { border: 1px solid $gray-border; border-radius: 16px; padding: 20px; background: #fff; height: 100%; transition: all .25s ease; overflow: hidden; /* 防止內容超出邊框 */ &:hover { border-color: $brand; box-shadow: 0 6px 20px rgba($brand, 0.15); } h5 { background: $brand-light; color: $brand-dark; text-align: center; padding: 0.75rem; border-radius: 10px; font-weight: 700; font-size: 1.1rem; margin-bottom: 1rem; line-height: 1.5; i { color: $brand; } } img.demo-img { max-width: 100%; height: auto; object-fit: contain; display: block; border-radius: 12px; } @media (min-width: 992px) { img.demo-img { max-width: 45%; } } } .media-card { img, video { border-radius: 14px; width: 100%; height: auto; } } .accordion-button { color: $brand-dark; background-color: #fff; font-weight: 600; &:not(.collapsed) { color: $brand; background-color: $brand-light; box-shadow: inset 0 -1px 0 rgba($brand, 0.1); &::after { /* 若要跟隨品牌色動態變更,可改成以 SCSS 產圖或使用 mask + background-color 技法。 這裡先沿用原本 data-uri(#ea5413)。*/ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ea5413'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } } &:focus { box-shadow: 0 0 0 .2rem rgba($brand, 0.25); } } .ratio { iframe { border: 1px solid $gray-border; border-radius: 12px; } } table { width: 100%; border-collapse: separate; border-spacing: 0; th, td { border: 1px solid $gray-border; padding: 1rem; vertical-align: top; } thead { th { background: $brand-light; color: $text-dark; font-weight: 700; text-align: center; border-bottom: none; } } tbody { td { p { margin-bottom: .5rem; } } ul { padding-left: 1.1rem; margin-bottom: 0; } } } .case-block { position: relative; padding-left: 0.25rem; @media (min-width: 992px) { padding-left: .75rem; &::before { content: ""; position: absolute; left: -2px; top: 8px; bottom: 8px; width: 4px; background: linear-gradient(180deg, $brand, $brand-dark); border-radius: 4px; opacity: .15; } } .media-card { border-radius: 14px; } .media-card img { display: block; width: 100%; height: auto; border-radius: 12px; } .outline-btn { margin-top: .25rem; } } .case-meta { .badge { background: $brand-light !important; color: $brand-dark !important; border: 1px solid rgba($brand, .25) !important; font-weight: 600; } } .title { border-bottom: 2px solid $brand-light; } .cta-band { background: linear-gradient(135deg, $brand, $brand-dark); color: #fff; border-radius: 20px; box-shadow: 0 8px 25px rgba($brand, 0.25); }