.list {
    overflow: hidden
}

.list-item {
    float: left;
    width: 50%;
    box-sizing: border-box;
    margin-bottom: 10%
}

.list-item a {
    display: flex
}

.list-img {
    position: relative;
    width: 55%;
    box-sizing: border-box;
    background-size: cover;
    background-position: center center;
    margin: 30px 0
}

.list-img::before {
    content: "";
    padding-bottom: 100%;
    display: block
}

.list-box {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    border: hsla(0, 0%, 100%, .5) solid 50px;
    box-sizing: border-box;
    transition: border .3s
}

.list-item:hover .list-box {
    border-width: 0
}

.list-box:before {
    content: "";
    width: 100%;
    height: 100%;
    border: #fff solid 12px;
    box-sizing: border-box;
    display: block;
    transition: border .3s
}

.list-item:hover .list-box:before {
    border-width: 0
}

.list-info {
    position: relative;
    width: 45%;
    text-align: center;
    box-sizing: border-box;
    background: #f6f6f6
}

.list-info p {
    margin: 40px auto;
    color: #999;
    text-align: left
}

.list-text {
    max-height: 80%;
    width: 70%;
    position: absolute;
    top: 50%;
    left: 15%;
    transform: translateY(-50%)
}

.list-title {
    font-size: 12px;
    color: #999
}

.list-title h2 {
    font-size: 18px;
    color: #333;
    font-weight: normal;
    letter-spacing: 5px
}

.list-title-line {
    position: relative;
    width: 100%;
    height: 1px;
    background: #ccc;
    border-bottom: #fff solid 1px;
    margin: 5px auto
}

.list-title-line::before {
    content: "";
    width: 16px;
    height: 5px;
    background: #ccc;
    position: absolute;
    top: -2px;
    left: 50%;
    border-radius: 2px;
    margin-left: -8px
}

.list-more {
    color: #000
}

.list-more-img {
    background: #e61e19;
    color: #fff;
    border-radius: 50%;
    width: 16px;
    line-height: 16px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
    transition: background .3s
}

.list-item:hover .list-more-img {
    transform: rotate(90deg);
    background: #ccc
}

.list-item:hover .list-more {
    color: #999
}

.list-item:nth-child(4n+1) .list-info,
.list-item:nth-child(4n+4) .list-info {
    border-right: 30px solid #fff
}

.list-item:nth-child(4n+1) a,
.list-item:nth-child(4n+4) a {
    flex-direction: row-reverse
}

.list-item:nth-child(4n+2) .list-info,
.list-item:nth-child(4n+3) .list-info {
    border-left: 30px solid #fff
}

.list-item:nth-child(odd) {
    padding-right: 15px
}

.list-item:nth-child(even) {
    padding-left: 15px
}

@media screen and (max-width: 1280px)and (min-width: 1101px) {
    .list-box {
        border-width: 20px
    }

    .list-box::before {
        border-width: 5px
    }
}

@media screen and (max-width:1100px) {
    .list-item {
        width: 100%;
        margin: 0 auto 50px;
        max-width: 800px;
        float: none
    }

    .list-item:nth-child(odd) {
        padding-right: 0
    }

    .list-item:nth-child(odd) a {
        flex-direction: row-reverse
    }

    .list-item:nth-child(odd) .list-info {
        border-right: 30px solid #fff
    }

    .list-item:nth-child(even) {
        padding-left: 0
    }

    .list-item:nth-child(even) a {
        flex-direction: row
    }

    .list-item:nth-child(even) .list-info {
        border-left: 30px solid #fff
    }

    .list-info {
        background: #fff
    }
}

@media screen and (max-width:640px) {
    .list-item {
        max-width: 400px;
        margin: 0 auto 20px
    }

    .list-item a {
        display: block
    }

    .list-item:nth-child(odd) .list-info,
    .list-item:nth-child(even) .list-info {
        border-width: 0
    }

    .list-img {
        width: 100%;
        margin: 0
    }

    .list-box {
        border-width: 20px
    }

    .list-box::before {
        border-width: 5px
    }

    .list-info {
        overflow: hidden;
        width: 100%
    }

    .list-text {
        position: static;
        transform: none;
        margin: 10%;
        width: 80%
    }
}

.top-images {
    overflow: hidden
}

.top-images-img {
    transform: scale(1) perspective(500px) translateZ(80px);
    transition: transform 0s cubic-bezier(0.25, 0.25, 0.75, 0.75)
}

.top-images-show {
    transform: scale(1) perspective(500px) translateZ(0px);
    transition-duration: 1s
}

.top-text {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    background-image: linear-gradient(rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0.5));
	pointer-events: none;
}

.slogan {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 100px;
    width: 94%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    text-shadow: 0 0 10px rgba(0, 0, 0, .5);
    line-height: 1;
    transition: opacity 1s
}

.slogan-text {
    font-size: 4em;
    font-weight: 300
}

.slogan-line {
    position: relative;
    width: 300px;
    height: 1px;
    background: #fff;
    margin: 15px auto;
    box-shadow: 0 0 10px rgba(0, 0, 0, .5)
}

.slogan-line::before {
    content: "";
    width: 16px;
    height: 5px;
    background: #fff;
    position: absolute;
    top: -2px;
    left: 50%;
    border-radius: 2px;
    margin-left: -8px
}

.slogan-text,
.slogan-line,
.slogan-text2 {
    margin-top: 40px;
    opacity: 0;
    transition: margin 1s, opacity 1s
}

.slogan-show .slogan-text {
    margin-top: 0;
    opacity: 1;
    transition-delay: 1s, 1s
}

.slogan-show .slogan-text2 {
    margin-top: 0;
    opacity: 1;
    transition-delay: 1.8s, 1.8s
}

.slogan-show .slogan-line {
    margin-top: 15px;
    opacity: 1;
    transition-delay: 1.4s, 1.4s
}

.nav-open .slogan,
.header-top .slogan {
    opacity: 0;
    transition-delay: 0s
}

.cont-title {
    margin: 5% 0
}

.viewall {
    display: block;
    margin: 0 auto 5%;
    border: #e61e19 solid 2px;
    width: 120px;
    line-height: 30px;
    text-align: center;
    color: #000;
    background: #fff
}

.viewall:hover {
    background: #e61e19;
    color: #fff
}

.work .viewall {
    margin-top: -5%
}

.service {
    position: relative;
    background: url("../images/index/service-bg.jpg") no-repeat center/cover;
    background-attachment: fixed;
    overflow: hidden;
    color: #fff;
    padding: 0 30px
}

.service>* {
    position: relative
}

.service::before {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .7)
}

.service-list {
    margin-top: -50px;
    margin-bottom: 5%
}

.service-item {
    padding: 50px 0;
    border-bottom: #666 dotted 1px;
    overflow: hidden
}

.service-item:nth-child(odd) .service-step {
    border-right: #999 solid 1px
}

.service-item:nth-child(even) .service-step {
    float: right;
    border-left: #999 solid 1px
}

.service-step {
    position: relative;
    width: 150px;
    text-align: center;
    padding: 25px;
    float: left
}

.service-num {
    font-size: 120px;
    line-height: 1;
    opacity: .1;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    font-weight: bold
}

.service-title {
    position: relative;
    font-size: 18px
}

.service-img {
    position: relative;
    width: 50px;
    margin: auto
}

.service-text {
    padding: 0 40px;
    font-size: 16px;
    overflow: hidden
}

.service-text::before {
    content: "";
    height: 140px;
    display: inline-block;
    vertical-align: middle
}

.service-text p {
    display: inline-block;
    vertical-align: middle;
    max-width: 98%
}

.comment-img path,
.comment-img rect,
.comment-img polyline,
.construction-img path,
.construction-img rect,
.construction-img polyline,
.design-img path,
.design-img rect,
.design-img polyline {
    fill: #e61e19
}

.news-list {
    margin: 5% 0
}

.show-item {
    opacity: 0;
    transition: all 1s
}

.show-item.list-item {
    transform: scale(0.9)
}

.show-now {
    opacity: 1
}

.show-now.list-item {
    transform: scale(1)
}

/* ==========================================================================
   【新設計】輪播圖左右箭頭 (極簡清透版)
   ========================================================================== */
.slider-arrows {
    position: absolute;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
    z-index: 10;
    display: flex;
    justify-content: space-between;
    padding: 0 3%; /* 縮小邊距，讓箭頭靠近邊緣一點 */
    box-sizing: border-box;
    pointer-events: none; /* 讓中間空出來的地方可以點擊到底下的圖片 */
}

.slider-prev, .slider-next {
    pointer-events: auto; /* 讓箭頭本身可以被點擊 */
    color: rgba(255, 255, 255, 0.7); /* 初始設定為半透明白色，更清透 */
    text-align: center;
    font-size: 60px; /* 把箭頭放大，更有設計感 */
    font-weight: 100; /* 使用細線條 */
    cursor: pointer;
    transition: color 0.3s, transform 0.3s; /* 加入轉場動畫 */
    
    /* 拿掉原本的圓圈、背景色、固定寬高與行高 */
    width: auto;
    height: auto;
    background: none;
    line-height: normal;
    border-radius: 0;
    
    /* 增加一點文字陰影，確保在白底圖片上也能看見 */
    text-shadow: 0 0 10px rgba(0,0,0,0.3);
}

/* 滑鼠滑過時的特效 */
.slider-prev:hover, .slider-next:hover {
    color: #e61e19; /* 變成網站的主題紅 */
    background: none; /* 確保滑過時不會出現背景色 */
}

/* 微調：左箭頭滑過時輕微向左浮動，右箭頭向右浮動，增加互動感 */
.slider-prev:hover {
    transform: translateX(-5px);
}
.slider-next:hover {
    transform: translateX(5px);
}

/* ==========================================================================
   【新設計】Banner 懸停浮現特效 (Hover Overlay)
   ========================================================================== */
.banner-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 150px; /* 底部漸層的高度 */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
    display: flex;
    justify-content: flex-end; /* 靠右對齊 */
    align-items: flex-end;     /* 靠下對齊 */
    padding: 40px 5%;
    box-sizing: border-box;
    
    /* 電腦版預設隱藏，準備做 Hover 動畫 */
    opacity: 0;
    transition: opacity 0.5s ease;
}

.banner-overlay span {
    color: #fff;
    font-size: 13px;
    letter-spacing: 3px;
    font-weight: 300;
    display: flex;
    align-items: center;
    gap: 12px; /* 文字跟箭頭的距離 */
    
    /* 讓文字稍微偏右，hover 時滑進來 */
    transform: translateX(20px);
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.banner-overlay span i {
    font-size: 16px;
    transition: transform 0.3s ease;
}

/* --- 電腦版 Hover 觸發條件 --- */
.top-images-img:hover .banner-overlay {
    opacity: 1; /* 漸層浮現 */
}

.top-images-img:hover .banner-overlay span {
    transform: translateX(0); /* 文字滑入定位 */
}

.top-images-img:hover .banner-overlay span:hover i {
    transform: translateX(6px); /* 滑鼠碰到字時，箭頭會生動地往前刺一下 */
    color: #e61e19; /* 箭頭變為主題紅，增加點擊慾望 */
}

/* --- 手機版與平板：優雅降級 (局部常駐) --- */
@media screen and (max-width: 1100px) {

}

@media screen and (max-width:1100px) {
	    .banner-overlay {
        opacity: 1; /* 手機上永遠顯示 */
        height: 100px;
        padding: 20px 5%;
    }
    .banner-overlay span {
        transform: translateX(0); /* 關閉位移動畫 */
        font-size: 12px;
    }
    .slogan-text {
        font-size: 3em
    }

    .cont-title {
        margin: 50px 0
    }

    .viewall,
    .work .viewall {
        margin: 0 auto 50px
    }

    .service-text {
        font-size: 14px
    }
}

@media screen and (max-width:640px) {
    .slogan-text {
        font-size: 30px
    }

    .slogan-line {
        width: 200px
    }

    .slogan-text2 {
        transform: scale(0.8)
    }

    .profile {
        padding: 80px 1%
    }

    .profile-text {
        font-size: 16px;
        display: inline
    }

    .profile-text span {
        font-size: 12px
    }

    .service {
        padding: 0 10px
    }

    .service-item:nth-child(odd) .service-step {
        border-right: none
    }

    .service-item:nth-child(even) .service-step {
        float: none;
        border-left: none
    }

    .service-step {
        float: none;
        margin: 0 auto
    }

    .service-text {
        padding: 0
    }

    .service-text::before {
        content: none
    }

    .service-text p {
        max-width: none
    }
}

/* ==========================================================================
   【設計模式】首頁互動手風琴區塊 (退休宅 / 無障礙設計 / 智慧家庭 / 綠裝修)
   ========================================================================== */
.design-mode {
    margin-bottom: 8%;
}

.design-mode .cont-sub {
    text-align: center;
    color: #999;
    font-size: 14px;
    letter-spacing: 3px;
    margin: -3% 0 40px;
}

.dm-accordion {
    display: flex;
    gap: 10px;
    height: 540px;
}

.dm-panel {
    position: relative;
    flex: 1;
    display: block;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    transition: flex .7s cubic-bezier(0.4, 0, 0.2, 1);
}

/* hover 時其餘面板收窄、目標面板展開 */
.dm-accordion:hover .dm-panel { flex: 0.72; }
.dm-accordion .dm-panel:hover { flex: 2.6; }

.dm-shade {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .15) 55%, rgba(0, 0, 0, .25) 100%);
    transition: background .5s;
}

/* hover 不再變色,維持與預設相同的深色遮罩(移除漸層變色效果) */

/* 左上角幽靈編號 */
.dm-num {
    position: absolute;
    top: 22px;
    left: 24px;
    font-size: 54px;
    line-height: 1;
    font-weight: bold;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, .55);
    transition: color .5s, -webkit-text-stroke .5s;
}

.dm-panel:hover .dm-num {
    color: rgba(255, 255, 255, .9);
    -webkit-text-stroke: 1px transparent;
}

/* 右上角箭頭圓鈕 */
.dm-arrow {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 42px;
    height: 42px;
    line-height: 40px;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 50%;
    color: #fff;
    font-size: 16px;
    opacity: 0;
    transform: rotate(-45deg) scale(.6);
    transition: opacity .45s, transform .45s, background .3s;
}

.dm-panel:hover .dm-arrow {
    opacity: 1;
    transform: rotate(0deg) scale(1);
}

.dm-panel:hover .dm-arrow:hover { background: rgba(255, 255, 255, .18); }

/* 底部資訊 */
.dm-info {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 26px 28px;
    color: #fff;
}

.dm-title {
    font-size: 22px;
    letter-spacing: 6px;
    white-space: nowrap;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}

.dm-title::after {
    content: "";
    display: block;
    width: 28px;
    height: 2px;
    background: #e61e19;
    margin-top: 12px;
    transition: width .5s, background .5s;
}

.dm-panel:hover .dm-title::after { width: 70px; background: #fff; }

.dm-en {
    font-size: 11px;
    letter-spacing: 3px;
    opacity: .75;
    margin-top: 10px;
    white-space: nowrap;
}

/* 展開後浮現的描述與 CTA */
.dm-desc {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.9;
    letter-spacing: 1px;
    margin: 0;
    max-width: 360px;
    transform: translateY(14px);
    transition: max-height .55s, opacity .55s .12s, transform .55s .12s;
}

.dm-panel:hover .dm-desc {
    max-height: 120px;
    opacity: 1;
    transform: translateY(0);
    margin-top: 14px;
}

.dm-more {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 3px;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .7);
    padding-bottom: 4px;
    margin-top: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .5s, opacity .5s .22s, margin .5s;
}

.dm-panel:hover .dm-more {
    max-height: 30px;
    opacity: 1;
    margin-top: 16px;
}

.dm-more i { margin-left: 8px; transition: margin .3s; }
.dm-more:hover i { margin-left: 14px; }

/* ---------- 平板:2x2 卡片 ---------- */
@media screen and (max-width: 1100px) {
    .dm-accordion {
        flex-wrap: wrap;
        height: auto;
        gap: 12px;
    }

    .dm-panel,
    .dm-accordion:hover .dm-panel,
    .dm-accordion .dm-panel:hover {
        flex: 0 0 calc(50% - 6px);
        height: 320px;
    }

    .dm-num { font-size: 42px; }

    /* 觸控裝置直接顯示完整資訊 */
    .dm-desc {
        max-height: 120px;
        opacity: 1;
        transform: none;
        margin-top: 12px;
    }

    .dm-more {
        max-height: 30px;
        opacity: 1;
        margin-top: 14px;
    }

    .dm-arrow { opacity: 1; transform: none; }
    .design-mode { margin-bottom: 50px; }
}

/* ---------- 手機:單欄 ---------- */
@media screen and (max-width: 640px) {
    .dm-panel,
    .dm-accordion:hover .dm-panel,
    .dm-accordion .dm-panel:hover {
        flex: 0 0 100%;
        height: 240px;
    }

    .dm-title { font-size: 19px; letter-spacing: 4px; }
    .dm-desc { font-size: 12px; max-width: none; }
    .dm-info { padding: 20px; }
}

/* 桌機版 banner 滿版:抵消 .main 的 30px 內距,讓首圖四邊貼齊螢幕邊 */
@media screen and (min-width: 1101px) {
    .top {
        margin: -30px -30px 0;
    }

    .top-images {
        height: 100vh;
    }
}

/* CONTACT 區「填寫評估表單」CTA:米色卡片 + 實心紅按鈕,提升質感與點擊率 */
.cta-assess {
    max-width: 560px;
    margin: 0 auto 5%;
    padding: 38px 28px 32px;
    text-align: center;
    background: linear-gradient(180deg, #faf7f4, #f3efe9);
    border: 1px solid #efe7dc;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(176, 141, 87, .12);
}

.cta-assess-sub {
    font-size: 16px;
    color: #5b5b5b;
    letter-spacing: 1px;
    line-height: 1.6;
    margin-bottom: 22px;
}

.cta-assess-sub b {
    color: #e61e19;
    font-weight: 700;
}

.cta-assess-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 16px 48px;
    border-radius: 8px;
    background: #e61e19;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 3px;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(230, 30, 25, .3);
    transition: transform .25s, box-shadow .25s, background .25s;
}

.cta-assess-btn:hover {
    background: #c9160f;
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(230, 30, 25, .42);
}

.cta-assess-btn .cta-arrow {
    transition: transform .25s;
}

.cta-assess-btn:hover .cta-arrow {
    transform: translateX(5px);
}

.cta-assess-note {
    font-size: 13px;
    color: #b3a48f;
    letter-spacing: 1px;
    margin-top: 16px;
}

@media screen and (max-width: 640px) {
    .cta-assess {
        padding: 30px 18px 26px;
    }

    .cta-assess-btn {
        padding: 15px 36px;
        letter-spacing: 2px;
    }
}
