.elementor-9 .elementor-element.elementor-element-3d91c84{--display:flex;--position:fixed;--min-height:100vh;--justify-content:space-around;top:0px;}.elementor-9 .elementor-element.elementor-element-3d91c84:not(.elementor-motion-effects-element-type-background), .elementor-9 .elementor-element.elementor-element-3d91c84 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#133D1B;}.elementor-9 .elementor-element.elementor-element-3d91c84.e-con{--order:99999 /* order end hack */;}body:not(.rtl) .elementor-9 .elementor-element.elementor-element-3d91c84{left:0px;}body.rtl .elementor-9 .elementor-element.elementor-element-3d91c84{right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-9 .elementor-element.elementor-element-32cfd87{text-align:center;}.elementor-9 .elementor-element.elementor-element-32cfd87 img{width:100%;height:40vh;object-fit:contain;object-position:top center;}.elementor-9 .elementor-element.elementor-element-12526b0{--display:grid;--min-height:100vh;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0vw 0vw;--row-gap:0vw;--column-gap:0vw;--grid-auto-flow:column;--justify-items:center;--align-items:stretch;--overlay-opacity:1;--margin-top:0vw;--margin-bottom:0vw;--margin-left:0vw;--margin-right:0vw;--padding-top:0vw;--padding-bottom:0vw;--padding-left:0vw;--padding-right:0vw;}.elementor-9 .elementor-element.elementor-element-12526b0::before, .elementor-9 .elementor-element.elementor-element-12526b0 > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-12526b0 > .e-con-inner > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-12526b0 > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-12526b0 > .e-con-inner > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-12526b0 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-9 .elementor-element.elementor-element-7232cb2{--display:flex;--min-height:100vh;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0vw 0vw;--row-gap:0vw;--column-gap:0vw;--overlay-opacity:1;}.elementor-9 .elementor-element.elementor-element-7232cb2::before, .elementor-9 .elementor-element.elementor-element-7232cb2 > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-7232cb2 > .e-con-inner > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-7232cb2 > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-7232cb2 > .e-con-inner > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-7232cb2 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#9DCF3D;--background-overlay:'';}.elementor-9 .elementor-element.elementor-element-9d07d73{--display:flex;--min-height:60vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--background-transition:1.3s;--overlay-opacity:0.5;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9 .elementor-element.elementor-element-9d07d73 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-9d07d73::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .e-con-inner > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .e-con-inner > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-9 .elementor-element.elementor-element-9d07d73:hover::before, .elementor-9 .elementor-element.elementor-element-9d07d73:hover > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-9d07d73:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .elementor-background-slideshow:hover::before, .elementor-9 .elementor-element.elementor-element-9d07d73 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-9 .elementor-element.elementor-element-9d07d73:hover{--overlay-opacity:0.5;}.elementor-9 .elementor-element.elementor-element-9d07d73, .elementor-9 .elementor-element.elementor-element-9d07d73::before{--overlay-transition:0.5s;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-9 .elementor-element.elementor-element-7a7c734{text-align:center;font-family:"Roboto", Sans-serif;font-size:1vw;font-weight:600;color:#000000;}.elementor-9 .elementor-element.elementor-element-7a7c734 a{color:#FFF9F9;}.elementor-9 .elementor-element.elementor-element-2b90c51{margin:4% 4% calc(var(--kit-widget-spacing, 0px) + 4%) 4%;top:0px;column-gap:0px;text-align:start;font-family:"Stoke", Sans-serif;font-size:2.5vw;font-weight:600;color:#FFFFFF;}body:not(.rtl) .elementor-9 .elementor-element.elementor-element-2b90c51{left:0px;}body.rtl .elementor-9 .elementor-element.elementor-element-2b90c51{right:0px;}.elementor-9 .elementor-element.elementor-element-2b90c51 p{margin-block-end:0px;}.elementor-9 .elementor-element.elementor-element-4f5ac34{--display:flex;--min-height:100vh;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0vw 0vw;--row-gap:0vw;--column-gap:0vw;--overlay-opacity:1;}.elementor-9 .elementor-element.elementor-element-4f5ac34::before, .elementor-9 .elementor-element.elementor-element-4f5ac34 > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-4f5ac34 > .e-con-inner > .elementor-background-video-container::before, .elementor-9 .elementor-element.elementor-element-4f5ac34 > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-4f5ac34 > .e-con-inner > .elementor-background-slideshow::before, .elementor-9 .elementor-element.elementor-element-4f5ac34 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#50B7E8;--background-overlay:'';}.elementor-9 .elementor-element.elementor-element-6b24b16{--display:flex;--min-height:60vh;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9 .elementor-element.elementor-element-6b24b16 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-0a2f4f2{text-align:center;font-family:"Roboto", Sans-serif;font-size:1vw;font-weight:600;color:#FFFFFF;}.elementor-9 .elementor-element.elementor-element-51faf5e{margin:4% 4% calc(var(--kit-widget-spacing, 0px) + 4%) 4%;top:0px;column-gap:0px;text-align:start;font-family:"Stoke", Sans-serif;font-size:2.5vw;font-weight:600;color:#FFFFFF;}body:not(.rtl) .elementor-9 .elementor-element.elementor-element-51faf5e{left:0px;}body.rtl .elementor-9 .elementor-element.elementor-element-51faf5e{right:0px;}.elementor-9 .elementor-element.elementor-element-51faf5e p{margin-block-end:0px;}.elementor-9 .elementor-element.elementor-element-246f3eb{--display:flex;}html{height:100vh;margin:0;overflow:hidden;}body{height:100vh;overflow:auto;scroll-snap-type:y mandatory;}.elementor-section:not(.elementor-inner-section), .elementor-location-header, .elementor-location-footer, .page-header, .site-header, .elementor-add-section, .e-con:not(.e-child){scroll-snap-align:start;scroll-snap-stop:normal;}@media(min-width:768px){.elementor-9 .elementor-element.elementor-element-9d07d73{--width:70%;}.elementor-9 .elementor-element.elementor-element-6b24b16{--width:70%;}}@media(max-width:1024px){.elementor-9 .elementor-element.elementor-element-12526b0{--min-height:100vh;--e-con-grid-template-columns:repeat(1, 1fr);--e-con-grid-template-rows:repeat(2, 1fr);--grid-auto-flow:column;}.elementor-9 .elementor-element.elementor-element-7232cb2{--min-height:0vh;}.elementor-9 .elementor-element.elementor-element-9d07d73{--min-height:25vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9 .elementor-element.elementor-element-9d07d73 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-7a7c734{font-size:3vw;}.elementor-9 .elementor-element.elementor-element-2b90c51{font-size:3vw;}.elementor-9 .elementor-element.elementor-element-4f5ac34{--min-height:0vh;}.elementor-9 .elementor-element.elementor-element-6b24b16{--min-height:25vh;}.elementor-9 .elementor-element.elementor-element-6b24b16 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-0a2f4f2{font-size:3vw;}.elementor-9 .elementor-element.elementor-element-51faf5e{font-size:3vw;}.elementor-section:not(.elementor-inner-section), .elementor-location-header, .elementor-location-footer, .page-header, .site-header, .elementor-add-section, .e-con:not(.e-child){scroll-snap-align:start;scroll-snap-stop:normal;}}@media(max-width:767px){.elementor-9 .elementor-element.elementor-element-12526b0{--min-height:100vh;--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:column;}.elementor-9 .elementor-element.elementor-element-9d07d73{--width:60%;--min-height:20vh;--margin-top:10vw;--margin-bottom:0vw;--margin-left:0vw;--margin-right:0vw;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9 .elementor-element.elementor-element-9d07d73 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-7a7c734{font-size:5vw;}.elementor-9 .elementor-element.elementor-element-2b90c51{font-size:5vw;}.elementor-9 .elementor-element.elementor-element-6b24b16{--width:60%;--min-height:20vh;--margin-top:0vw;--margin-bottom:10vw;--margin-left:0vw;--margin-right:0vw;}.elementor-9 .elementor-element.elementor-element-6b24b16 .elementor-background-slideshow__slide__image{background-size:cover;background-position:center center;}.elementor-9 .elementor-element.elementor-element-0a2f4f2{font-size:5vw;}.elementor-9 .elementor-element.elementor-element-51faf5e{font-size:5vw;}.elementor-section:not(.elementor-inner-section), .elementor-location-header, .elementor-location-footer, .page-header, .site-header, .elementor-add-section, .e-con:not(.e-child){scroll-snap-align:start;scroll-snap-stop:normal;}}@media(max-width:1024px) and (min-width:768px){.elementor-9 .elementor-element.elementor-element-12526b0{--width:100%;}.elementor-9 .elementor-element.elementor-element-7232cb2{--width:100%;}.elementor-9 .elementor-element.elementor-element-9d07d73{--width:60%;}.elementor-9 .elementor-element.elementor-element-4f5ac34{--width:100%;}.elementor-9 .elementor-element.elementor-element-6b24b16{--width:60%;}}/* Start custom CSS for container, class: .elementor-element-3d91c84 *//* 初始狀態：完全隱藏 */
.intro-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0; /* 初始隱藏 */
    background-color: #000; /* 可選：全黑背景 */
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none; /* 防止點擊穿透 */
}

/* 照片初始隱藏 */
.intro-container .intro-image img {
    opacity: 0;
}

/* 動畫序列 */
@keyframes introAnimation {
    0% {
        opacity: 0; /* 開始時隱藏 */
    }
    10% {
        opacity: 1; /* 快速淡入（500ms 內） */
    }
    40% {
        opacity: 1; /* 維持顯示，讓照片有時間淡入 */
    }
    50% {
        /* 照片在此時開始淡入（從 50% 開始） */
    }
    90% {
        opacity: 1;
    }
    100% {
        opacity: 0; /* 最後淡出 */
    }
}

/* 應用動畫到 Container */
.intro-container {
    animation: introAnimation 10s ease-in-out forwards; /* 總時間 6 秒，可調整 */
}

/* 照片在 Container 動畫的 50% 時開始淡入 */
.intro-container .intro-image img {
    animation: fadeInPhoto 1s ease-in forwards;
    animation-delay: 2.5s; /* 延遲 1.5 秒後開始（Container 淡入後） */
}

@keyframes fadeInPhoto {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-9d07d73 */.elementor-9 .elementor-element.elementor-element-9d07d73 {
    position: relative; /* 確保疊加層能定位 */
    overflow: hidden;   /* 防止疊加層溢出 */
}

.elementor-9 .elementor-element.elementor-element-9d07d73::before {
    content: ""; /* 空內容，當作疊加層 */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 50% 黑色疊加 */
    opacity: 0; /* 初始隱藏 */
    transition: opacity 0.6s ease; /* 平滑淡入 */
    pointer-events: none; /* 讓滑鼠穿透疊加層 */
    z-index: 1; /* 在背景圖之上，但文字之下 */
}

.elementor-9 .elementor-element.elementor-element-9d07d73:hover::before {
    opacity: 1; /* hover 時顯示 */
}

.left-outer-box:hover .elementor-9 .elementor-element.elementor-element-9d07d73::before {
    opacity: 1;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7232cb2 */.elementor-9 .elementor-element.elementor-element-7232cb2 {
    position: relative; /* 確保文字能絕對定位 */
}

.elementor-9 .elementor-element.elementor-element-7232cb2 .left-text-editor {
    position: absolute; /* 讓文字浮在圖片上 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;                    /* 初始透明 */
    transition: opacity 0.6s ease; /* 淡入效果 */
    color: transparent;            /* 文字初始隱藏 */
    z-index: 2;                    /* 確保文字在上層 */
    white-space: nowrap;
    text-align: center;
}

.elementor-9 .elementor-element.elementor-element-7232cb2:hover .left-text-editor {
    opacity: 1;                    /* hover 時顯示 */
    color: #FFFFFF;                /* 變成白色 */
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-6b24b16 */.elementor-9 .elementor-element.elementor-element-6b24b16 {
    position: relative; /* 確保疊加層能定位 */
    overflow: hidden;   /* 防止疊加層溢出 */
}

.elementor-9 .elementor-element.elementor-element-6b24b16::before {
    content: ""; /* 空內容，當作疊加層 */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 50% 黑色疊加 */
    opacity: 0; /* 初始隱藏 */
    transition: opacity 0.6s ease; /* 平滑淡入 */
    pointer-events: none; /* 讓滑鼠穿透疊加層 */
    z-index: 1; /* 在背景圖之上，但文字之下 */
}

.elementor-9 .elementor-element.elementor-element-6b24b16:hover::before {
    opacity: 1; /* hover 時顯示 */
}

.right-outer-box:hover .elementor-9 .elementor-element.elementor-element-6b24b16::before {
    opacity: 1;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4f5ac34 */.elementor-9 .elementor-element.elementor-element-4f5ac34 {
    position: relative; /* 確保文字能絕對定位 */
}

.elementor-9 .elementor-element.elementor-element-4f5ac34 .right-text-editor {
    position: absolute; /* 讓文字浮在圖片上 */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;                    /* 初始透明 */
    transition: opacity 0.6s ease; /* 淡入效果 */
    color: transparent;            /* 文字初始隱藏 */
    z-index: 2;                    /* 確保文字在上層 */
    white-space: nowrap;
    text-align: center;
}

.elementor-9 .elementor-element.elementor-element-4f5ac34:hover .right-text-editor {
    opacity: 1;                    /* hover 時顯示 */
    color: #FFFFFF;                /* 變成白色 */
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-12526b0 */@media (max-width: 1024px) {
    
    /* 最外層 Grid Container（包含兩個大 block） */
    .service-grid {
        height: 100svh !important;              /* 改用 svh，忽略工具列 */
        display: flex !important;
        flex-direction: column !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }
    
    /* 兩個外層 Container（上 + 下） */
    .left-outer-box, .right-outer-box {
        flex: 1 !important;
        height: 50svh !important;               /* 改用 50svh */
        min-height: 50svh !important;
        max-height: 50svh !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: relative;
    }
    
}


/* ======================================================
   手機版完美填滿螢幕（忽略地址列 + 底部導航列 + 無白底）
   ====================================================== */

/* 根元素設定環境變數（最穩定的方式） */
html {
    --vh: 1vh; /* fallback */
}

/* 動態計算真正可視高度（忽略工具列） */
@supports (height: 100dvh) {
    html {
        --vh: 1dvh; /* dynamic viewport height，最準確 */
    }
}

@supports (height: 100svh) {
    html {
        --vh: 1svh; /* small viewport height，次佳 */
    }
}

/* 最外層 Grid Container */
.service-grid {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* 手機模式（寬度 ≤ 767px） */
@media (max-width: 767px) {
    
    /* 強制填滿真正可視高度 */
    .service-grid {
        height: 100dvh !important;              /* 首選：動態視窗高度 */
        height: calc(var(--vh, 1vh) * 100) !important; /* fallback */
        min-height: 100dvh !important;
        min-height: calc(var(--vh, 1vh) * 100) !important;
        display: flex !important;
        flex-direction: column !important;
        background: transparent !important;     /* 避免白底 */
        overflow: hidden !important;
    }
    
    /* 兩個外層 Container 平均分配 */
    .left-outer-box, .right-outer-box {
        flex: 1 !important;
        height: 50dvh !important;               /* 首選 */
        height: calc(var(--vh, 1vh) * 50) !important; /* fallback */
        min-height: 50dvh !important;
        min-height: calc(var(--vh, 1vh) * 50) !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: relative;
    }
    

    /* 防止 body 或 html 有預設 margin/padding 造成白邊 */
    body, html {
        margin: 0 !important;
        padding: 0 !important;
        height: 100% !important;
    }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-246f3eb *//* ======================================================
   middleLogo 延遲 5 秒後淡入
   ====================================================== */

/* 初始狀態：完全透明 + 隱藏 */
.middleLogo {
    opacity: 0;                                   /* 初始透明 */
    transition: opacity 1.2s ease-out;            /* 淡入持續 1.2 秒（可自行調整） */
    animation: fadeInLogo 1.2s ease-out forwards;
    animation-delay: 5s;                          /* 關鍵：延遲 5 秒後開始淡入 */
}

/* 淡入動畫 */
@keyframes fadeInLogo {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* 確保內部的 Tlogo 圖片也跟著淡入（保險用） */
.middleLogo .Tlogo {
    opacity: 0;
    animation: fadeInLogo 1.2s ease-out forwards;
    animation-delay: 5s;
}/* End custom CSS */
/* Start custom CSS */.left-outer-box, .right-outer-box {
    transition: transform 0.6s ease;
    transform: scale(1);
    position: relative; /* 確保 z-index 生效，如果需要 */
}

.left-outer-box:hover {
    transform: scale(1.05);
    /* 移除或註解 z-index */
    /* z-index: 10; */
}

.right-outer-box:hover {
    transform: scale(1.05);
    /* z-index: 10; */
}



/* ======================================================
   Logo 永遠置中在螢幕中央（跨兩個 block 的中線）
   適用桌面（左右中線） + 手機/平板（上下中線）
   ====================================================== */

/* 包含 logo 的 Container（你已設 class: middleLogo） */
.middleLogo {
    position: fixed;              /* 固定定位，不隨滾動移動 */
    top: 50dvh;                   /* 從頂部 50% 動態視窗高度 */
    top: calc(var(--vh, 1vh) * 50); /* fallback 支援 */
    left: 50%;                    /* 水平置中 */
    transform: translate(-50%, -50%); /* 精準向左上各移自身寬高的一半 */
    z-index: 30;                  /* 確保在兩個大 block 之上 */
    pointer-events: none;         /* 讓滑鼠可以穿透點擊下方元素（可依需求改 auto） */
    width: auto;
    height: auto;
}

/* 圖片本身（你已設 class: Tlogo） */
.Tlogo {
    display: block;
    max-width: 50%;             /* 桌面最大寬度，可自行調整 */
    width: 18vw;                  /* 手機版用視窗寬度比例，自動縮小 */
    height: auto;
    object-fit: contain;          /* 保持圖片比例不變形 */
}

/* ======================================================
   手機版微調（確保不被地址列影響）
   ====================================================== */
@media (max-width: 767px) {
    .middleLogo {
        top: 50dvh !important;
        top: calc(var(--vh, 1vh) * 50) !important;
        transform: translate(-50%, -50%) !important;
    }
    
    .Tlogo {
        max-width: 30%;         /* 手機版稍小一點 */
        width: 30vw;
    }
}

/* ======================================================
   根元素 dvh fallback（保險用，放在最上面）
   ====================================================== */
html {
    --vh: 1vh;
}
@supports (height: 100dvh) {
    html { --vh: 1dvh; }/* End custom CSS */