/* Cgmap */
#Cgmap { position: relative; margin-bottom: -5%; z-index: -1; }
#Cgmap:before { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 2; content: ""; }
#Cgmap iframe { width: 100vw; height: 350px; }

/* contact_page */
#contact_page { background: white; box-shadow: 0 0 0.8em 0 rgba(2, 2, 2, .16); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: stretch; }

/* 1. 現代瀏覽器做法：保留捲軸間隙 */
html {
    scrollbar-gutter: stable;
}

/* 2. 針對 Fancybox 的補強：防止開啟時 body 強制偏移 */
.fancybox-enabled {
    overflow: auto !important;
}

/* 3. 如果你的導航列是 fixed 定位，可以加上這個防止偏移 */
.fancybox-is-open .your-navbar-class {
    padding-right: var(--scrollbar-width, 15px);
}

/* contact_information */
.contact_information { padding: 2em; }
.contact_information .title { margin-bottom: 1.5em; color: white; }
.contact_information a { margin-bottom: 1em; display: flex; align-items: center; }
.contact_information a font { position: relative; margin-right: 1em; width: 2.3em; aspect-ratio: 1/1; border: 1px var(--primary) solid; display: flex; justify-content: center; align-items: center; border-radius: 50%; }
.contact_information a font svg { width: 50%; height: 100%; fill: var(--primary); }
.contact_information a.map font svg { width: 45%; }
.contact_information a.line font svg { width: 65%; }
.contact_information a span { width: 1%; flex: 1 1 auto; font-size: .9em; color: white; }

/* form_box */
.form_box {display:grid;gap: 23px;}
.form_box .form_item {display:flex;flex-direction: column;gap: 8px;}
.form_box .form_item input::placeholder{color:#a5a5a5;}
.form_box.large_item { padding: 0; }
.form_box .form_item label {color: var(--g_charcoal);}
.form_box .flex_style { display: flex; flex-wrap: wrap; align-items: stretch; }
.form_box .flex_style label.large { margin-right: 1em; width: 7em; }
.form_box .flex_style >input , .form_box .flex_style >font { width: 100%; }
.form_box .flex_style >font .bind { margin-left: 1em; }
.form_box .flex_style >font .bind svg { margin: 0 .6em; width: 30px; height: 30px; fill: #fff; }
.form_box .flex_style >font .btn { padding: 0; border-radius: .37em; display: inline-flex; justify-content: space-between; align-items: center; }
.form_box .flex_style >font .btn font { padding: .2em 0; width: 150px; border-left: 1px rgb(0 0 0 / 10%) solid; display: flex; justify-content: center; align-items: center; flex: 1 1 auto; color: #fff; }
.form_box .flex_style >font .btn.line { background: #06C755; }
.form_box .flex_style >font .bind .isbind svg { fill: #06C755; }
.form_box .flex_style .groud { overflow: hidden; display: flex; align-items: center; background-color: white; background-clip: padding-box; border: 1px solid var(--g_200); border-radius: .2em; }
.form_box .flex_style .groud >input { width: 1%; flex: 1 1 auto; border: 0; }
.form_box .flex_style .groud >button { padding: .5em; width: 10em; background: var(--red); text-align: center; color: white; }
.form_box .flex_style .remarks span.words { width: 100%; display: flex; justify-content: flex-end; align-items: center; font-size: .9em; color: var(--g_600); }
.form_box .flex_style .remarks span.words b { margin: 0 .2em; font-size: 1em; }
.form_box .sex_box { padding: .3em 0; width: 100%; display: flex; align-items: center; }
.form_box .sex_box >span { margin-right: 1em; }
.form_box .sex_box >span input { margin-right: .2em; }
.form_box .address_box { width: 100%; display: grid; grid-template-columns: 8em 8em 1fr; grid-gap: .6em 1em; align-items: center; }
.form_box .calendar { position: absolute; width: 1em; height: 1em; top: 51%; right: 1em; fill: var(--g_500); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.form_box .note_txt span { font-size: .9em; color: var(--g_600); }
.form_box .check_box font { display: flex; align-items: center; }
.form_box .check_box font input { width: 1%; flex: 1 1 auto; }
.form_box .check_box font img {margin-left: .75em;cursor: pointer;}
.form_box .send_box {display: flex;justify-content: end;align-items: flex-end;}
.form_box .form_item.other_btns{margin-top: 40px;}
.form_box .large_item.send_box {flex-direction: column;display: flex;align-items: center;}
.form_box .send_btn {padding: .45em 0.5em;width: 13em;background: var(--primary);display: block;text-align: center;color: white;cursor: pointer;border: 1px solid #e0e0e0;border-radius: 5px;}
.form_box .send_btn:hover{background: var(--g_charcoal);}
.form_box .agree_box {margin-bottom: .2em;display: flex;align-items: center;width: 100%;}
.form_box .agree_box label[for="IsAgree"] {margin-left: .3em;width: 1%;flex: 1 1 auto;line-height: 1;font-size: 15px;}
.form_box .agree_box label[for="IsAgree"] a{font-size:15px;}
.form_box .agree_box label[for="IsAgree"] span{color: #a5a5a5;font-size: 15px;}
.form_box .quit_login { display: flex; flex-direction: column; justify-content: center; align-items: center; }
.form_box .quit_login .line_link { padding: 0; width: min(100%, 350px); border-radius: .37em; background: #06C755; display: inline-flex; justify-content: space-between; align-items: stretch; }
.form_box .quit_login .line_link svg { margin: .2em .6em; width: 40px; height: 40px; fill: #fff; }
.form_box .quit_login .line_link font { width: 1%; border-left: 1px rgb(0 0 0 / 10%) solid; display: flex; justify-content: center; align-items: center; flex: 1 1 auto; font-size: 1.2em; color: #fff; }



/* member_page */
#member_page {margin: 0 auto;}
#member_page .login_btns { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1em; border-bottom: 1px var(--g_200) solid; }
#member_page .login_btns a { margin-bottom: -1px; padding: .5em 1em; border-bottom: 2px transparent solid; text-align: center; font-size: 1.1em; }
#member_page .login_btns a.acion { border-color: var(--primary); }
#member_page .other_btns .join { margin: 1em 0 .5em; display: flex; justify-content: center; align-items: baseline; }
#member_page .other_btns .join * {font-weight: 400;font-size: 16px;color: #a5a5a5;}
#member_page .other_btns .join a {margin-left: .4em;padding: .2em;display: block;border-bottom: 1px var(--g_charcoal) solid;line-height: 1;color: var(--g_charcoal);}
#member_page .other_btns .askpass { text-align: center; }
#member_page .other_btns .askpass a {font-weight: 400;color: var(--g_charcoal);}

/* notice_box */
.notice_box h3 { margin-bottom: .5em; display: flex; align-items: baseline; font-weight: 300; font-size: 1.2em; color: var(--g_500); }
.notice_box h3 i { margin-right: .2em; color: var(--g_300); }
.notice_box ol { margin-left: 1.5em; list-style: decimal; }
.notice_box ol li { list-style: decimal; }

/* member_rule */
#member_rule { overflow: hidden; width: 0; max-height: 0; display: none; opacity: 0; }
#member_rule::-webkit-scrollbar { width: 13px; }
#member_rule::-webkit-scrollbar-track { background: none; }
#member_rule::-webkit-scrollbar-thumb { border-radius: 8px; border: 4px solid transparent; background-clip: content-box; background-color: var(--g_200); }
#member_rule::-webkit-scrollbar-thumb:hover { background-color: var(--g_300); }
#member_rule ol.rulelist { padding-left: 20px; list-style: decimal; }
#member_rule ol.rulelist li { padding: 0 0 10px 10px; }
.fancybox-slide--current #member_rule {overflow-y: scroll;width: min(95vw, 800px);max-height: 55vh;opacity: 1;position: relative;}

/* member_privacypolicy */
#member_privacypolicy { overflow: hidden; width: 0; max-height: 0; display: none; opacity: 0; }
#member_privacypolicy::-webkit-scrollbar { width: 13px; }
#member_privacypolicy::-webkit-scrollbar-track { background: none; }
#member_privacypolicy::-webkit-scrollbar-thumb { border-radius: 8px; border: 4px solid transparent; background-clip: content-box; background-color: var(--g_200); }
#member_privacypolicy::-webkit-scrollbar-thumb:hover { background-color: var(--g_300); }
#member_privacypolicy * { font-size: inherit; }
#member_privacypolicy ol.rulelist { padding-left: 20px; list-style: decimal; }
#member_privacypolicy ol.rulelist li { padding: 0 0 10px 10px; }
.fancybox-slide--current #member_privacypolicy {overflow-y: scroll;width: min(95vw, 720px);max-height: 55vh;opacity: 1;}

/* order_box */
.order_box { margin-top: 2em; padding: .8em 1em 1em; background: color-mix(in srgb, var(--g_100) 50%, white); }
.order_box h5 { margin: 0 .5em .2em; letter-spacing: .1em; font-weight: 500; font-size: 1.2em; }
.order_box h5 b { margin-right: .5em; color: var(--red); }
.order_box h5.order_title { display: flex; align-items: center; }
.order_box h5.order_title strong { margin: 0 .5em; font-weight: 400; font-size: 1em; }
.order_box h5 .icheck { margin-left: .5em; display: inline-flex; align-items: center; }
.order_box h5 .icheck label { margin-left: .2em; font-weight: 400; font-size: .75em; color: var(--g_800); }
.order_box>div { padding: 1.5em; background: white; border: 1px var(--g_100) solid; grid-gap: .8em }

/* order_list */
.order_list .row_item { padding: .5em 1em; border-bottom: 1px var(--g_200) solid; display: grid; grid-template-columns: 80px repeat(6, 1fr) 25px; grid-gap: 0 .5em; align-items: center; }
.order_list .row_item.title { padding: .8em 1em; border-bottom-color: var(--g_400); }
.order_list .row_item.list .img a { padding: .2em; border: 1px var(--g_100) solid; width: 70px; aspect-ratio: 1/1; display: block; }
.order_list .row_item.add_item .item.name a { display: flex; flex-direction: column; align-items: flex-start; }
.order_list .row_item.add_item .item.name .add_txt { padding: .3em .5em; background: var(--g_500); line-height: 1em; font-size: .8em; color: var(--g_100); }

/* q_control */
.q_control { border: 1px var(--g_200) solid; display: inline-flex; align-items: stretch; }
.q_control button { position: relative; width: 2em; cursor: pointer; }
.q_control button:before { position: absolute; width: 30%; height: 1px; background: var(--g_500); display: block; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); content: ""; }
.q_control button.plus:after { position: absolute; width: 30%; height: 1px; background: var(--g_500); display: block; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%) rotate(90deg); transform: translate(-50%, -50%) rotate(90deg); content: ""; }
.q_control input { padding: .3em 0; width: 3em; border: 0; border-radius: 0; text-align: center; }

/* other_box */
#order .other_box { margin-top: 2em; }
#order .other_box >* { margin-left: auto; width: 20em; }
#order .other_box p { margin-bottom: 1em; display: flex; justify-content: flex-end; align-items: center; gap: .3em 1em; }
#order .other_box p label { min-width: 5em; }
#order .other_box p font { width: 1%; flex: 1 1 auto; font-size: .9em; }
#order .other_box p font input { padding: .2em .5em; font-size: 1em; }
#order .other_box p.point_txt { margin-bottom: 0; }
#order .other_box p.point_txt font { text-align: right; }

/* btns */
#order .btns { margin: 2em 0 .5em; display: flex; justify-content: center; align-items: center; }
#order .btns .btn { margin: 0 .5em; padding: .3em .5em; width: 10em; border: 1px var(--g_200) solid; text-align: center; }
#order .btns #btnClean { background: var(--primary); border-color: var(--primary); color: white; }

/* order_bottom_txt */
.order_bottom_txt { position: absolute; width: 100%; bottom: 0; left: 0; opacity: 0; z-index: 1000; }
.order_bottom_txt .workframe_s { padding: 1em 0; display: flex; flex-wrap: wrap; justify-content: space-around; align-items: center; }
.order_bottom_txt.fixed { position: fixed; background: white; box-shadow: 0 0 .5em var(--g_200); opacity: 1; }
.order_bottom_txt.absolute-bt { opacity: 1; }
.order_bottom_txt.absolute-bt .workframe_s { padding-bottom: 2em; }
.order_bottom_txt .item_row { width: 45%; }
.order_bottom_txt .total_box , .order_bottom_txt p { display: flex; align-items: center; }
.order_bottom_txt .total_box label { min-width: 6em; }
.order_bottom_txt .total_box #totaltxt { margin-left: .5em; min-width: 6em; font-weight: 500; font-size: 1.3em; color: var(--g_700); }
.order_bottom_txt .send { display: flex; justify-content: flex-end; align-items: center; }
.order_bottom_txt .send #btnOK { padding: .5em; width: min(20em, 100%); text-align: center; background: var(--primary); color: white; }

/* bot_note */
#bot_note { position: relative; width: 1%; display: flex; flex-wrap: wrap; align-items: center; gap: .2em; flex: 1 1 auto; line-height: 1; color: var(--g_700); }
#bot_note span { line-height: 1.2; font-size: .9em; color: var(--g_700); }
#bot_note #opendis { margin: 0 .2em; line-height: 1; font-size: .9em; color: var(--red); cursor: pointer; }
#bot_note #opendis * { font-size: 1em; color: currentColor; }
#bot_note b { position: absolute; min-width: 7em; background: white; border: 1px var(--g_200) solid; border-radius: .2em; box-shadow: 0 0 .5em var(--g_200); right: 0; bottom: 120%; opacity: 0; }
#bot_note b span { overflow: hidden; height: 0; display: block; font-weight: 400; font-size: .9em; }
#bot_note b[data-type="2"] { padding: 5px 10px; opacity: 1; }
#bot_note b[data-type="2"]:before, #bot_note b[data-type="2"]:after { position: absolute; width: 0; height: 0; border-style: solid; border-width: 10px 8px 0 8px; border-color: #d6d6d6 transparent transparent transparent; display: inline-block; bottom: -10px; left: 20px; content: ""; }
#bot_note b[data-type="2"]:after { border-width: 10px 8px 0 8px; border-top-color: #fff; bottom: -9px; }
#bot_note b[data-type="2"] span { margin: .2em 0; height: 1.1em; }

/* OTP 按鈕排版（不破壞你原本 forms.css） */
.form_item .otp,.form_item .otp-verify{border:0;padding:10px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}
.form_item .otp[disabled],.form_item .otp-verify[disabled]{opacity:.6;cursor:not-allowed}
.form_item.otp_row{position: relative;}
.form_item.otp_row .otp, .form_item.otp_row .otp-verify{position:absolute;bottom: 5px;right: 6px;background: #262626;color: white;font-size: 14px;opacity: 1;padding: 4px 20px;border-radius: 3px;}
.otp_hint{font-size:12px;opacity:.8;margin-top:6px;color: var(--g_charcoal);}

/* 密碼強度區塊（自帶樣式，不依賴 bootstrap） */
#popover-password{margin-top: 0px;display: flex;flex-direction: column-reverse;gap: 5px;}
#popover-password p{font-size:15px;color:#a5a5a5}
#popover-password .progress{width:100%;height: 5px;border-radius:999px;background: #ededed;overflow:hidden;margin-top:6px}
#password-strength{height:100%;width:0%;transition:width .2s ease;background:#999;border-radius: 50px;}
.text-danger{color:#d32f2f}
#popover-password p span{color: #a5a5a5 !important;font-size: 15px;}
.text-success{color:#2e7d32}
.pw-rules{margin:10px 0 0;padding:0;list-style:none;font-size:12px;line-height:1.6}
.pw-rules li{opacity:.8}
.pw-rules li.ok{opacity:1}
.pw-rules li.ok::before{content:"✔ "}
.pw-rules li.no::before{content:"✘ "}

/* 讓 #member_rule 在 fancybox 裡可以正常捲動 */
#member_rule{max-width:720px;width:min(92vw,720px)}

/* fancybox 內容區通常是 .fancybox-content（v3） */
.fancybox-content #member_rule{position:relative;max-height:min(80vh,620px);overflow:auto;padding:18px 18px 90px;box-sizing:border-box}

/* 上方提示按鈕 */
.terms-top{position: fixed;bottom: 23%;z-index:5;padding:10px 0 12px;width: min(85%, 660px);}
.terms-jump{width:100%;border:1px solid rgba(0,0,0,.12);background: #ededed;border-radius:14px;padding:12px 14px;font-size:13px;cursor:pointer;box-shadow: 0 0 5px #dddddd;display: flex;align-items: center;justify-content: space-between;}
.terms-jump svg{width: 15px;height: 15px;fill: var(--green);}
.terms-jump.terms-bottom{  position: sticky;  bottom: 70px;}

/* 底部同意按鈕（固定在內容底部） */
.terms-bottom{position:sticky;bottom:0;z-index:6;padding: 40px 0 0;background:linear-gradient(rgba(255,255,255,0),#fff 55%)}
.terms-agree{width:100%;border:0;border-radius:14px;padding:14px 16px;font-size:14px;cursor:pointer;background: var(--primary);color:#fff;text-align: center;border: 1px solid #e0e0e0;}
.terms-agree[disabled]{cursor:not-allowed}

@media screen and (min-width: 1161px){
}
@media screen and (min-width: 981px){
	.form_box .large_item { grid-column: 1/3; }
	.order_list .row_item .item { text-align: center; }
	.order_list .row_item .item.img_name { grid-column: 1/4; text-align: left; }
	.order_list .row_item.list .item.name { grid-column: 2/4; text-align: left; }
	.order_list .row_item.add_item .item.name { grid-column: 2/5; }
	.order_list .row_item.add_item .item.price { grid-column-start: 7; }
	#order .btns { justify-content: flex-end; }
	#order .btns #btnClean { margin-right: 0; }
}
@media screen and (max-width: 980px) and (min-width: 641px){
	.contact_information { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1.5em 1em; align-items: center; }
	.contact_information .title { grid-column: 1/3; }
}
@media screen and (max-width: 980px) {
    .form_box .send_box{align-items: center;margin-top: 25px;}
	.order_list .row_item.title , .order_list .row_item.list .price { display: none; }
	.order_list .row_item.list { position: relative; padding: .5em; grid-template-columns: 80px 1fr 150px; grid-template-areas: "img name quantity" "img format quantity" "img amount quantity"; grid-gap: 0 .3em; align-items: end; }
	.order_list .row_item.list .img { grid-area: img; }
	.order_list .row_item.list .name { grid-area: name; }
	.order_list .row_item.list .format { grid-area: format; line-height: 1; font-size: .8em; color: var(--g_600); }
	.order_list .row_item.list .format:before { content: attr(data-tit)":"; }
	.order_list .row_item.list .quantity { grid-area: quantity; display: flex; justify-content: flex-end; }
	.order_list .row_item.list .amount { grid-area: amount; font-weight: 500; }
	.order_list .row_item.list .operate { position: absolute; top: .5em; right: .5em; }
}
@media screen and (max-width: 640px){
    .form_box .check_box font img{width: 80px;}
	.form_box { padding: 2em 3%; }
	.form_box .address_box { grid-template-columns: repeat(2, 1fr); grid-template-areas: "city area" "inp inp"; }
	.form_box .address_box .address_inp { grid-area: inp; }
	.order_box>div { padding: 1.5em 3%; }
	.terms-top { width: min(80%,660px); }
}
@media screen and (min-width: 551px){
	.form_box .flex_style label { margin-right: 3em; padding: .5em 0; width: 5em; text-align: justify; text-justify: distribute-all-lines; text-align-last: justify; }
	.form_box .flex_style >input , .form_box .flex_style >font { width: 1%; flex: 1 1 auto; }
}