@charset "utf-8";

:root {
	
	/* --- Typography --------------- */
	--text:16px;
	
	--text-xs: calc(var(--text) * 0.75); /* 12px */
	--text-sm: calc(var(--text) * 0.875); /* 14px */
	--text-base: calc(var(--text) * 1);
	--text-lg: calc(var(--text) * 1.125); /* 18px--h4 */
	--text-xl: calc(var(--text) * 1.25); /* 20px--h3 */
	--text-2xl: calc(var(--text) * 1.5); /* 24px--h2 */
	--text-3xl: calc(var(--text) * 1.875); /* 30px--h1 */
	--text-4xl: calc(var(--text) * 2.25); /* 36px */
	--text-5xl: calc(var(--text) * 3); /* 48px */
	

	/* --- Space --------------- */
	--spacing: 1rem;
	
	--spacing-2xs: calc(var(--spacing) * 0.25); /*4px*/
	--spacing-xs: calc(var(--spacing) * 0.5); /*8px*/
	--spacing-sm: calc(var(--spacing) * 0.75); /*12px*/
	--spacing-base: calc(var(--spacing) * 1);
	--spacing-md: calc(var(--spacing) * 1.5); /*24px*/
	--spacing-lg: calc(var(--spacing) * 2); /*32px*/
	--spacing-xl: calc(var(--spacing) * 3); /*48px*/
	--spacing-2xl: calc(var(--spacing) * 4); /*64px*/
	--spacing-3xl: calc(var(--spacing) * 6); /*96px*/
	--spacing-4xl: calc(var(--spacing) * 8); /*128px*/


	--color-case-result:#F6781D; /*案件-成果*/
	--color-case-goon:#178CF7; /*案件-進行中*/
	--color-case-finish:#EF4124; /*案件-已完成*/
	
	--color-case-petition:#4d8a2a; /*案件-我要陳情*/
	
	--color-reserve:#e2630d; /*預約*/
	--color-meeting:#4FAE5C; /*會議*/
	
	--color-apply:#4FAE5C; /*立即申請*/
	--color-addcart:#D54545; /*立即購買*/
	
	/*icon*/
	--color-fb:#395693;
	--color-line:#38C702;
	--color-ig:#6946BC;
	--color-youtube:#FB0000;
	--color-twitter:#489AD4;
	--color-weibo:#DE2127;
	--color-wechat:#04CF66;
	--color-mail:#3785C4;
	--color-website:#4FAE5C;
	--color-home:#9D1C1F;
	
}



/*----------------------------------------------------------------------
	#reset
-------------------------------- */
*,
*::before,
*::after{
	-webkit-box-sizing:border-box;
	   -moz-box-sizing:border-box;
			box-sizing:border-box
}

html, body, div, ul, ol, li, 
form, input, button,textarea, blockquote,p{
	margin:0;
	padding:0;
}

ol, ul, li{list-style:none;}

h6, h5, h4, h3, h2, h1{
	margin-top:0;
	margin-bottom:var(--spacing-xs);
	font-weight:500;
	line-height:1.2;
}

p{
	margin-top:0;
	margin-bottom:var(--spacing-xs);
}

a{
    text-decoration:none;
}
a:hover{
	outline:none;
}


button{
	border-radius:0;
}

button:focus:not(:focus-visible){
	outline:0;
}

input, button, select, optgroup, textarea{
	margin:0;
	font-family:inherit;
	font-size:inherit;
	line-height:inherit;

	outline:none;
}

button, select{
	text-transform:none;
}

[role=button]{
	cursor:pointer;
}

select{
	word-wrap:normal;
}
select:disabled{
	opacity:1;
}

[list]::-webkit-calendar-picker-indicator{
	display:none;
}

button,
[type=button],
[type=reset],
[type=submit]{
	-webkit-appearance:button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled){
	cursor:pointer;
}

::-moz-focus-inner{
	padding:0;
	border-style:none;
}

textarea{
	resize:vertical;
}

fieldset{
	min-width:0;
	padding:0;
	margin:0;
	border:0;
}

legend{
	float:left;
	width:100%;
	font-size:var(--text-lg);
	line-height:inherit;
	padding:0;
	margin-bottom:var(--spacing-xs);
}
@media (min-width:1200px){
	legend{
		font-size:var(--text-xl);
	}
}
legend + *{
	clear:left;
}

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field{
	padding:0;
}

::-webkit-inner-spin-button{
	height:auto;
}

[type=search]{
  outline-offset:-2px;
  -webkit-appearance:textfield;
}

/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"]{
	direction:ltr;
}
*/
::-webkit-search-decoration{
	-webkit-appearance:none;
}

::-webkit-color-swatch-wrapper{
	padding:0;
}

::file-selector-button{
	font:inherit;
}

::-webkit-file-upload-button{
	font:inherit;
	-webkit-appearance:button;
}

iframe{
	border:0;
}


/* HTML5 display-role reset for older browsers */
article, aside, details,
figcaption, figure,
footer,
header,
hgroup,
menu, nav,
section,
main{ 
	display:block;
}



/*----------------------------------------------------------------------
	#base
-------------------------------- */
/* 修正粗體 (碧筵綰在粗體時會隔很遠) */
@font-face{
    font-family:'微軟正黑體修正';
    unicode-range:U+7db0, U+78A7, U+7B75; /* ASCII (碧筵綰) */
    font-style:normal;
    font-weight:bold;
    src:local(Yu Gothic), local(MS Gothic);
	
	font-display: block;
	/* Instructs browser to block rendering until loaded */
}
/* 一般粗細的時候改回微軟正黑 */
@font-face{
    font-family:'微軟正黑體修正';
    unicode-range:U+7db0, U+78A7, U+7B75; /* ASCII (碧筵綰) */
    font-style:normal;
    font-weight:normal;
    src:local(微軟正黑體);
	
	font-display: block;
}

body{
	background:#fff;
	font-family:"Microsoft JhengHei","微軟正黑體修正","微軟正黑體",sans-serif;
	color:#333;
	font-size:16px;
	line-height: 1.5;
}



/*----------------------------------------------------------------------
	#row:component
-------------------------------- */
.container,
.container-fluid{
	width: 100%;
	padding-right: var(--gutter-x, 0.75rem);
	padding-left: var(--gutter-x, 0.75rem);
	margin-right: auto;
	margin-left: auto;
}

@media (min-width:576px){
	.container,
	.container-fluid{
		padding:0 15px;
	}
}
@media (min-width:768px){
}
@media (min-width:992px){
}
@media (min-width:1200px){
    .container{ width:96%; }
}
@media (min-width:1400px){
    .container{ width:90%; }
}
@media (min-width:1920px){
    .container{ width:80%; }
}


/* ===== row 有邊距*/
.row {
	--gutter-x: 1.5rem;
	--gutter-y: 1.5rem;
	
	display: flex; flex-wrap: wrap;
	margin-top: calc(var(--gutter-y) * -1);
	margin-right: calc(var(--gutter-x) / -2);
	margin-left: calc(var(--gutter-x) / -2);
}
.row > * {
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--gutter-x) / 2);
	padding-left: calc(var(--gutter-x) / 2);
	margin-top: var(--gutter-y);
}

.g-0, .gx-0 { --gutter-x: 0; }
.g-0, .gy-0 { --gutter-y: 0; }

.g-1, .gx-1 { --gutter-x: 0.25rem; }
.g-1, .gy-1 { --gutter-y: 0.25rem; }

.g-2, .gx-2 { --gutter-x: 0.5rem; }
.g-2, .gy-2 { --gutter-y: 0.5rem; }

.g-3, .gx-3 { --gutter-x: 1rem; }
.g-3, .gy-3 { --gutter-y: 1rem; }

.g-4, .gx-4 { --gutter-x: 1.5rem; }
.g-4, .gy-4 { --gutter-y: 1.5rem; }

.g-5, .gx-5 { --gutter-x: 3rem; }
.g-5, .gy-5 { --gutter-y: 3rem; }


.row-cols-auto > * { flex: 0 0 auto; width: auto; }
.row-cols-1 > *{ flex:0 0 auto; width:100%; }
.row-cols-2 > *{ flex:0 0 auto; width:50%; }
.row-cols-3 > *{ flex:0 0 auto; width:33.3333333333%; }
.row-cols-4 > *{ flex:0 0 auto; width:25%; }
.row-cols-5 > *{ flex:0 0 auto; width:20%; }
.row-cols-6 > *{ flex:0 0 auto; width:16.6666666667%; }


.col {
	flex: 1 0 0%;
}
.col-full {
	flex:1 1 auto;
    width:1%; min-width:0;
}
.col-auto { flex: 0 0 auto; width: auto; }
.col-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-2 {flex: 0 0 auto; width: 16.66666667%; }
.col-3 {flex: 0 0 auto; width: 25%; }
.col-4 {flex: 0 0 auto; width: 33.33333333%; }
.col-5 {flex: 0 0 auto; width: 41.66666667%; }
.col-6 {flex: 0 0 auto; width: 50%; }
.col-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-9 { flex: 0 0 auto; width: 75%; }
.col-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }


@media (min-width:576px){
	.g-sm-0, .gx-sm-0 { --gutter-x: 0; }
	.g-sm-0, .gy-sm-0 { --gutter-y: 0; }
	
	.g-sm-1, .gx-sm-1 { --gutter-x: 0.25rem; }
	.g-sm-1, .gy-sm-1 { --gutter-y: 0.25rem; }
	
	.g-sm-2, .gx-sm-2 { --gutter-x: 0.5rem; }
	.g-sm-2, .gy-sm-2 { --gutter-y: 0.5rem; }
	
	.g-sm-3, .gx-sm-3 { --gutter-x: 1rem; }
	.g-sm-3, .gy-sm-3 { --gutter-y: 1rem; }
	
	.g-sm-4, .gx-sm-4 { --gutter-x: 1.5rem; }
	.g-sm-4, .gy-sm-4 { --gutter-y: 1.5rem; }
	
	.g-sm-5, .gx-sm-5 { --gutter-x: 3rem; }
	.g-sm-5, .gy-sm-5 { --gutter-y: 3rem; }

	.col-sm { flex: 1 0 0%; }
	
	.row-cols-sm-auto > * { flex: 0 0 auto; width: auto; }
    .row-cols-sm-1 > *{ flex: 0 0 auto; width:100%; }
    .row-cols-sm-2 > *{ flex: 0 0 auto; width:50%; }
    .row-cols-sm-3 > *{ flex: 0 0 auto; width:33.3333333333%; }
    .row-cols-sm-4 > *{ flex: 0 0 auto; width:25%; }
    .row-cols-sm-5 > *{ flex: 0 0 auto; width:20%; }
    .row-cols-sm-6 > *{ flex: 0 0 auto; width:16.6666666667%; } 
	
	.col-sm-auto { flex: 0 0 auto; width: auto; }
	.col-sm-1 { flex: 0 0 auto; width: 8.33333333%; }
	.col-sm-2 { flex: 0 0 auto; width: 16.66666667%; }
	.col-sm-3 { flex: 0 0 auto; width: 25%; }
	.col-sm-4 { flex: 0 0 auto; width: 33.33333333%; }
	.col-sm-5 { flex: 0 0 auto; width: 41.66666667%; }
	.col-sm-6 { flex: 0 0 auto; width: 50%; }
	.col-sm-7 { flex: 0 0 auto; width: 58.33333333%; }
	.col-sm-8 { flex: 0 0 auto; width: 66.66666667%; }
	.col-sm-9 { flex: 0 0 auto; width: 75%; }
	.col-sm-10 { flex: 0 0 auto; width: 83.33333333%; }
	.col-sm-11 { flex: 0 0 auto; width: 91.66666667%; }
	.col-sm-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width:768px){
	.g-md-0, .gx-md-0 { --gutter-x: 0; }
	.g-md-0, .gy-md-0 { --gutter-y: 0; }
	
	.g-md-1, .gx-md-1 { --gutter-x: 0.25rem; }
	.g-md-1, .gy-md-1 { --gutter-y: 0.25rem; }
	
	.g-md-2, .gx-md-2 { --gutter-x: 0.5rem; }
	.g-md-2, .gy-md-2 { --gutter-y: 0.5rem; }
	
	.g-md-3, .gx-md-3 { --gutter-x: 1rem; }
	.g-md-3, .gy-md-3 { --gutter-y: 1rem; }
	
	.g-md-4, .gx-md-4 { --gutter-x: 1.5rem; }
	.g-md-4, .gy-md-4 { --gutter-y: 1.5rem; }
	
	.g-md-5, .gx-md-5 { --gutter-x: 3rem; }
	.g-md-5, .gy-md-5 { --gutter-y: 3rem; }
	
	.col-md { flex: 1 0 0%; }
	
	.row-cols-md-auto > * { flex: 0 0 auto; width: auto; }
    .row-cols-md-1 > *{ flex: 0 0 auto; width:100%; }
    .row-cols-md-2 > *{ flex: 0 0 auto; width:50%; }
    .row-cols-md-3 > *{ flex: 0 0 auto; width:33.3333333333%; }
    .row-cols-md-4 > *{ flex: 0 0 auto; width:25%; }
    .row-cols-md-5 > *{ flex: 0 0 auto; width:20%; }
    .row-cols-md-6 > *{ flex: 0 0 auto; width:16.6666666667%; } 
	
	
	.col-md-auto { flex: 0 0 auto; width: auto; }
	.col-md-1 { flex: 0 0 auto; width: 8.33333333%; }
	.col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
	.col-md-3 { flex: 0 0 auto; width: 25%; }
	.col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
	.col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
	.col-md-6 { flex: 0 0 auto; width: 50%; }
	.col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
	.col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
	.col-md-9 { flex: 0 0 auto; width: 75%; }
	.col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
	.col-md-11 { flex: 0 0 auto; width: 91.66666667%; }
	.col-md-12 { flex: 0 0 auto; width: 100%; } 
}
@media (min-width:992px){
	.g-lg-0, .gx-lg-0 { --gutter-x: 0; }
	.g-lg-0, .gy-lg-0 { --gutter-y: 0; }
	
	.g-lg-1, .gx-lg-1 { --gutter-x: 0.25rem; }
	.g-lg-1, .gy-lg-1 { --gutter-y: 0.25rem; }
	
	.g-lg-2, .gx-lg-2 { --gutter-x: 0.5rem; }
	.g-lg-2, .gy-lg-2 { --gutter-y: 0.5rem; }
	
	.g-lg-3, .gx-lg-3 { --gutter-x: 1rem; }
	.g-lg-3, .gy-lg-3 { --gutter-y: 1rem; }
	
	.g-lg-4, .gx-lg-4 { --gutter-x: 1.5rem; }
	.g-lg-4, .gy-lg-4 { --gutter-y: 1.5rem; }
	
	.g-lg-5, .gx-lg-5 { --gutter-x: 3rem; }
	.g-lg-5, .gy-lg-5 { --gutter-y: 3rem; }
	
	.col-lg { flex: 1 0 0%; }
	
	.row-cols-lg-auto > * { flex: 0 0 auto; width: auto; }    
	.row-cols-lg-1 > *{ flex: 0 0 auto; width:100%; }
    .row-cols-lg-2 > *{ flex: 0 0 auto; width:50%; }
    .row-cols-lg-3 > *{ flex: 0 0 auto; width:33.3333333333%; }
    .row-cols-lg-4 > *{ flex: 0 0 auto; width:25%; }
    .row-cols-lg-5 > *{ flex: 0 0 auto; width:20%; }
    .row-cols-lg-6 > *{ flex: 0 0 auto; width:16.6666666667%; } 
	
	
	.col-lg-auto { flex: 0 0 auto; width: auto; }
	.col-lg-1 { flex: 0 0 auto; width: 8.33333333%; }
	.col-lg-2 { flex: 0 0 auto; width: 16.66666667%; }
	.col-lg-3 { flex: 0 0 auto; width: 25%; }
	.col-lg-4 { flex: 0 0 auto; width: 33.33333333%; }
	.col-lg-5 { flex: 0 0 auto; width: 41.66666667%; }
	.col-lg-6 { flex: 0 0 auto; width: 50%; }
	.col-lg-7 { flex: 0 0 auto; width: 58.33333333%; }
	.col-lg-8 { flex: 0 0 auto; width: 66.66666667%; }
	.col-lg-9 { flex: 0 0 auto; width: 75%; }
	.col-lg-10 { flex: 0 0 auto; width: 83.33333333%; }
	.col-lg-11 { flex: 0 0 auto; width: 91.66666667%; }
	.col-lg-12 { flex: 0 0 auto; width: 100%; } 
}
@media (min-width:1200px){
	.g-xl-0, .gx-xl-0 { --gutter-x: 0; }
	.g-xl-0, .gy-xl-0 { --gutter-y: 0; }
	
	.g-xl-1, .gx-xl-1 { --gutter-x: 0.25rem; }
	.g-xl-1, .gy-xl-1 { --gutter-y: 0.25rem; }
	
	.g-xl-2, .gx-xl-2 { --gutter-x: 0.5rem; }
	.g-xl-2, .gy-xl-2 { --gutter-y: 0.5rem; }
	
	.g-xl-3, .gx-xl-3 { --gutter-x: 1rem; }
	.g-xl-3, .gy-xl-3 { --gutter-y: 1rem; }
	
	.g-xl-4, .gx-xl-4 { --gutter-x: 1.5rem; }
	.g-xl-4, .gy-xl-4 { --gutter-y: 1.5rem; }
	
	.g-xl-5, .gx-xl-5 { --gutter-x: 3rem; }
	.g-xl-5, .gy-xl-5 { --gutter-y: 3rem; }
	
	.col-xl { flex: 1 0 0%; }
	
	.row-cols-xl-auto > * { flex: 0 0 auto; width: auto; }    
    .row-cols-xl-1 > *{ flex: 0 0 auto; width:100%; }
    .row-cols-xl-2 > *{ flex: 0 0 auto; width:50%; }
    .row-cols-xl-3 > *{ flex: 0 0 auto; width:33.3333333333%; }
    .row-cols-xl-4 > *{ flex: 0 0 auto; width:25%; }
    .row-cols-xl-5 > *{ flex: 0 0 auto; width:20%; }
    .row-cols-xl-6 > *{ flex: 0 0 auto; width:16.6666666667%; } 


	.col-xl-auto { flex: 0 0 auto; width: auto; }
	.col-xl-1 { flex: 0 0 auto; width: 8.33333333%; }
	.col-xl-2 { flex: 0 0 auto; width: 16.66666667%; }
	.col-xl-3 { flex: 0 0 auto; width: 25%; }
	.col-xl-4 { flex: 0 0 auto; width: 33.33333333%; }
	.col-xl-5 { flex: 0 0 auto; width: 41.66666667%; }
	.col-xl-6 { flex: 0 0 auto; width: 50%; }
	.col-xl-7 { flex: 0 0 auto; width: 58.33333333%; }
	.col-xl-8 { flex: 0 0 auto; width: 66.66666667%; }
	.col-xl-9 { flex: 0 0 auto; width: 75%; }
	.col-xl-10 { flex: 0 0 auto; width: 83.33333333%; }
	.col-xl-11 { flex: 0 0 auto; width: 91.66666667%; }
	.col-xl-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width:1600px){
	.g-xxl-0, .gx-xxl-0 { --gutter-x: 0; }
	.g-xxl-0, .gy-xxl-0 { --gutter-y: 0; }
	
	.g-xxl-1, .gx-xxl-1 { --gutter-x: 0.25rem; }
	.g-xxl-1, .gy-xxl-1 { --gutter-y: 0.25rem; }
	
	.g-xxl-2, .gx-xxl-2 { --gutter-x: 0.5rem; }
	.g-xxl-2, .gy-xxl-2 { --gutter-y: 0.5rem; }
	
	.g-xxl-3, .gx-xxl-3 { --gutter-x: 1rem; }
	.g-xxl-3, .gy-xxl-3 { --gutter-y: 1rem; }
	
	.g-xxl-4, .gx-xxl-4 { --gutter-x: 1.5rem; }
	.g-xxl-4, .gy-xxl-4 { --gutter-y: 1.5rem; }
	
	.g-xxl-5, .gx-xxl-5 { --gutter-x: 3rem; }
	.g-xxl-5, .gy-xxl-5 { --gutter-y: 3rem; }
	
	.col-xxl { flex: 1 0 0%; }
	
	.row-cols-xxl-auto > * { flex: 0 0 auto; width: auto; }    
    .row-cols-xxl-1 > *{ flex: 0 0 auto; width:100%; }
    .row-cols-xxl-2 > *{ flex: 0 0 auto; width:50%; }
    .row-cols-xxl-3 > *{ flex: 0 0 auto; width:33.3333333333%; }
    .row-cols-xxl-4 > *{ flex: 0 0 auto; width:25%; }
    .row-cols-xxl-5 > *{ flex: 0 0 auto; width:20%; }
    .row-cols-xxl-6 > *{ flex: 0 0 auto; width:16.6666666667%; } 

	
	.col-xxl-auto { flex: 0 0 auto; width: auto; }
	.col-xxl-1 { flex: 0 0 auto; width: 8.33333333%; }
	.col-xxl-2 { flex: 0 0 auto; width: 16.66666667%; }
	.col-xxl-3 { flex: 0 0 auto; width: 25%; }
	.col-xxl-4 { flex: 0 0 auto; width: 33.33333333%; }
	.col-xxl-5 { flex: 0 0 auto; width: 41.66666667%; }
	.col-xxl-6 { flex: 0 0 auto; width: 50%; }
	.col-xxl-7 { flex: 0 0 auto; width: 58.33333333%; }
	.col-xxl-8 { flex: 0 0 auto; width: 66.66666667%; }
	.col-xxl-9 { flex: 0 0 auto; width: 75%; }
	.col-xxl-10 { flex: 0 0 auto; width: 83.33333333%; }
	.col-xxl-11 { flex: 0 0 auto; width: 91.66666667%; }
	.col-xxl-12 { flex: 0 0 auto; width: 100%; }
}



/*----------------------------------------------------------------------
	#heading:component
-------------------------------- */
.heading{}

/*呈一列*/
.heading_group{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	gap:var(--spacing-sm);
}
.heading_group .heading-icon, 
.heading_group .heading-text, 
.heading_group .heading-subtext{
	display:block;
}
.heading-icon img{
	display:block; max-width:100%; height:auto;
}

h1, .font--xxl { font-size: var(--text-3xl); }

h2, .font--xl { font-size: var(--text-2xl); }

h3, .font--lg { font-size: var(--text-xl); }

h4, .font--md { font-size: var(--text-lg); }

small, .font--sm { font-size: var(--text-sm); }

h1, h2, h3, h4, form legend {
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: var(--spacing-xs);
}
p{
	margin-top:var(--spacing-xs);
	margin-bottom:var(--spacing-xs);
}



/*----------------------------------------------------------------------
	#editor:component [後台編輯器]
-------------------------------- */
.editor{
	line-height:1.8;
	overflow-wrap: break-word; /*文字太長，允許文字在任意位置斷行*/
	word-break: break-all; /*英文過長，強制換行*/
}

.editor h1 { margin-bottom: var(--spacing-md); }

.editor h2,
.editor h3,
.editor h4 {
	margin-top: var(--spacing-md);
	margin-bottom: var(--spacing-sm);
}

.editor ul,
.editor ol,
.editor p {
	margin-bottom: var(--spacing-sm);
}

.editor ul,
.editor ol {
	list-style-position: outside;
	padding-left: var(--spacing-lg);
}

.editor ul { list-style-type: disc; }
.editor ol { list-style-type: decimal; }
.editor ul li,
.editor ol li {
	display:list-item;
	list-style:inherit;
	line-height: var(--line-height-body);
}

.editor em { font-style: italic; }
.editor u { text-decoration: underline; }

.editor img{ max-width:100%; height:auto; }
.editor iframe{ max-width:100%; }


/* ===== a連結 */
.editor{
	color:#333;
}
.editor a{
	color:rgba(0,0,238,1); /*預設藍*/
}
.editor a:hover{
	color:var(--color-accent);
}



/*----------------------------------------------------------------------
	#text-limit:component [文字限制行數]
-------------------------------- */
.text-limit{
	display:-webkit-box; 
	text-overflow:ellipsis; overflow:hidden;
	-webkit-box-orient:vertical; white-space:normal;
}
.limit-line-1{ -webkit-line-clamp:1; }
.limit-line-2{ -webkit-line-clamp:2; }
.limit-line-3{ -webkit-line-clamp:3; }
.limit-line-4{ -webkit-line-clamp:4; }

@media (min-width: 576px) {
	.sm-text-limit{
		display:-webkit-box; 
		text-overflow:ellipsis; overflow:hidden;
		-webkit-box-orient:vertical; white-space:normal;
	}
}
@media (min-width: 768px) {
	.md-text-limit{
		display:-webkit-box; 
		text-overflow:ellipsis; overflow:hidden;
		-webkit-box-orient:vertical; white-space:normal;
	}
}
@media (min-width: 992px) {
	.lg-text-limit{
		display:-webkit-box; 
		text-overflow:ellipsis; overflow:hidden;
		-webkit-box-orient:vertical; white-space:normal;
	}
}
@media (min-width: 1200px) {
	.xl-text-limit{
		display:-webkit-box; 
		text-overflow:ellipsis; overflow:hidden;
		-webkit-box-orient:vertical; white-space:normal;
	}
}
@media (min-width: 1400px) {
	.xxl-text-limit{
		display:-webkit-box; 
		text-overflow:ellipsis; overflow:hidden;
		-webkit-box-orient:vertical; white-space:normal;
	}
}





/*----------------------------------------------------------------------
	#btn:component
-------------------------------- */
.btnbar,
.card-btnbar,
.form-btnbar{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	gap:var(--spacing-base);
	
	position:relative; 
	text-align:center;
}
.btnbar{ margin:var(--spacing-lg) 0; }
.card-btnbar{ z-index:10; }
.form-btnbar{ margin-top:var(--spacing-sm); }

.btn, 
.card-btn, 
.formbtn{
	display: inline-flex;
	align-items:center; justify-content:center;
	gap:var(--spacing-2xs);
	
	position: relative;
	background-color:transparent;
	border:1px solid transparent;
	color:#333;
	font-size:var(--text-base); font-weight:600; line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	cursor:pointer;
	
	-webkit-user-select:none;
	   -moz-user-select:none;
			user-select:none;
}
@media (prefers-reduced-motion:reduce){
	.btn, .card-btn{ transition:none; }
}
.btn:active, .card-btn:active { transition: none; }

.btn .iconsvg, .btn-text,
.card-btn .iconsvg, .card-btn-text{
	position:relative; z-index:2;
	line-height:1;
}

.btn .iconsvg,
.card-btn .iconsvg{
	width:20px; height:20px;
}
.btn .iconsvg:before,
.card-btn .iconsvg:before{
	background-color:#333;
}

.btn-check:focus + .btn, .btn:focus{
	outline:0;
	box-shadow:0 0 0 0.15rem rgba(13, 110, 253, 0.15);
}



/*----------------------------------------------------------------------
	#btn:base [use #btn:component]
-------------------------------- */
.btn{
	border:1px solid var(--color-one);
	border-radius:3px;
	color:var(--color-one);
	padding: var(--spacing-sm);
	
	box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
	transition:box-shadow 0.3s ease;
}
.btn .iconsvg{
	width:20px; height:20px;
}
.btn .iconsvg:before{
	background-color:var(--color-one);
}

.btn:hover{
	border-color:#fff;
	background:var(--color-accent);
	color:#fff;
	box-shadow:1px 1px 5px rgb(0 0 0 / 30%);
}
.btn:hover .iconsvg:before{
	background-color:#fff;
}


/*----------------------------------------------------------------------
	#card-btn:base [use #btn:component]
-------------------------------- */
.card-btn{
	background:#fff;
	border:1px solid var(--color-one);
	border-radius:3px;
	color:var(--color-one);
	padding: var(--spacing-sm);
	
	font-size:var(--btn-sm);
	padding:var(--spacing-xs) var(--spacing-md);
}
.card-btn .iconsvg{
	width:16px; height:16px;
}
.card-btn .iconsvg:before{
	background-color:var(--color-one);
}

.card-btn:hover{
	border-color:var(--color-accent);
	background:var(--color-accent);
	color:#fff;
}
.card-btn:hover .iconsvg:before{
	background-color:#fff;
}



/*----------------------------------------------------------------------
	#formbtn:base [use #btn:component]
-------------------------------- */
.formbtn{
	background:var(--color-one);
	border:1px solid var(--color-one);
	border-radius:3px;
	color:#fff;
	font-size:var(--text-base);
	padding:var(--spacing-sm) var(--spacing-lg);
}
.formbtn:hover{
	background:var(--color-accent);
	border:1px solid var(--color-accent);
	color:#fff;
}





/*----------------------------------------------------------------------
	#card:component
-------------------------------- */
.card{
	display:flex;
	flex-direction:column;
	word-wrap:break-word;
	gap:var(--spacing-sm);
	
	position:relative; z-index:2;
}

.card-photo, 
.card-iframe{
	position:relative;
}
.card-photo a{ display:block; }
.card-mask{ display:none; }

.card-photo{ min-height:10px; }
.card-photo img{ display:block; max-width:100%; height:auto; }


/* ===== #item-fitimg：方形圖(限定大小)設定 */
.item-fitimg{
	position: relative;
	text-align:left;
}
.item-fitimg:before{
	content: "";
    display:block;
    padding-bottom: 100%;
}

.fitimg{
	position: absolute; top:0; left:0;
	width: 100%; height: 100%;

	-webkit-object-fit: contain;
	   -moz-object-fit: contain;
		    object-fit: contain;
}
.card-photo .fitimg{
	max-width:auto; height: 100%;
}


/* ===== #card-iframe：影片/地圖 */
.card-iframe{
	position:relative;
    width:100%; height:0;
    padding-bottom:100%;
}
.card-iframe iframe{
	position:absolute; z-index:2; top:0; left:0;
	width:100%; height:100%;
}
.card-iframe_map{
	position:relative;
	min-height:50px;
	background:#F1F3F4;
}
.card-iframe_map:before{
	display:block;
	position:absolute; z-index:1; top:50%; left:50%; content:"MAP";
	font-family:Helvetica, sans-serif;
	font-weight:600; line-height:1;
	color:#BDD4F8;
	
	transform:translate(-50%, -50%);
}


/* ===== #card-name */
.card-name{
	font-size: var(--text-lg); font-weight:600; line-height: 1.4;
	margin-top:var(--spacing-sm);
}
.card-name a{ display:block; }

/*將連結擴展至整個card*/
.card-name a:before{
	position:absolute; z-index:2; top:0; left:0; content:"";
	width:100%; height:100%;
	background:transparent;
}
.card-body .card-name{ margin:0; }


/* ===== #card-text */
.card-text{
	color:#666;
	margin-top:var(--spacing-sm);
}
.img-hidden img{
	display:none; /*在列表裡的說明文字，若有圖片則隱藏*/
}


/* ===== #card-info */
.card-infolist{
	display:flex; flex-wrap:wrap;
	gap:var(--spacing-xs);
	
	margin-top:var(--spacing-sm);
}
.card-infolist > li{ width:100%; }

.card-info{
    position:relative;
    display:flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-2xs);
}

.card-info .iconsvg,
.card-info .card-info-icon,
.card-info .card-info-title,
.card-info .card-info-text{
    display:block;
}

.card-info .iconsvg{ width:16px; height:16px; }
.card-info .iconsvg:before{ background-color:#777; }

.card-info .card-info-icon{ width:20px; height:20px; }
.card-info .card-info-icon img{
	display:block;
	max-width:100%; height:auto;
}

.card-info .card-info-text{
	word-break:break-all;
	word-wrap:break-word;
}


/* ===== #card-icon */
.card-iconlist{
	display:flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-xs);
	
	margin-top:var(--spacing-sm);
}
.card-icon{
	display:block;
	border-radius:4px;
	border:1px solid #fff;
	overflow:hidden;
	/* padding:var(--spacing-xs); */
}
.card-icon .iconsvg:before{
	background-color:#fff;
	-webkit-mask-size:65% 65%;
			mask-size:65% 65%;
}
.card-icon.website{ background:var(--color-website); border-color:var(--color-website); }
.card-icon.line{ background:var(--color-line); border-color:var(--color-line);  }
.card-icon.mail{ background:var(--color-mail); border-color:var(--color-mail);  }





/*----------------------------------------------------------------------
	#infolist:component [資訊]		
-------------------------------- */
.infolist{
	display:flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-base);
}
.infolist > li{ width:100%; }

.info{
	display:flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-2xs);
}

/*資訊內容呈一列*/
.info-icon,
.info-title,
.info-text{
	position:relative;
	display:block;
}
.info-text{
	overflow-wrap: break-word;
}





/*----------------------------------------------------------------------
	#badge:component [標籤]		
-------------------------------- */
.badge{
	display:inline-flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-2xs);
}
.badge .iconsvg,
.badge-text{
	position:relative;
	display:block;
}
.badge .iconsvg{
	width:16px; height:16px;
}





/*----------------------------------------------------------------------
	#page-overlay:component [隱藏區塊顯現時，內容區覆蓋變暗]
-------------------------------- */
.page-overlay{ 
	position:fixed; z-index:1000; top:0; left:0; 
	width:100%; height:100vh;
	overflow:hidden;

	opacity:0;
	pointer-events:none;
	visibility:hidden;
}
.page-overlay.is-open{
	display:block;
	background:rgba(0,0,0,0.85);
    
    opacity:1;
    pointer-events:auto;
    visibility:visible;
}

/* ===== 跳出隱藏區塊時，內容區的卷軸隱藏*/
body.overflow-hidden{ overflow:hidden; }

@media (min-width:992px){
	.page-overlay.is-open{
        opacity:0;
        pointer-events:auto;
        visibility:hidden;
    }
    
    body.overflow-hidden{
        overflow:auto;
    }
}





/*----------------------------------------------------------------------
	#Sidelink:component [右側/底部固定列]
-------------------------------- */
.scrolltop{
	cursor:pointer;
}


/* ===== [in 大螢幕時-右側固定列] */
.sidefixed_right{
	display:none;
	position:fixed; z-index:90; right:5px; bottom:100px;
	
	opacity:0;
	pointer-events:none;
	visibility:hidden;
}
@media (min-width:992px){
	.sidefixed_right{ display:block; }
}
.sidefixed_right.is-show{
	opacity:1;
	pointer-events:auto;
	visibility:visible;
}

.sidefixed_right_list > li{
	margin:var(--spacing-2xs);
}


/* ===== [in 小螢幕時-底部固定列] */
.sidefixed_btm{
	position:fixed; z-index:990; bottom:0; left:0;
	width:100%; height:auto;
	background:#fff;
	box-shadow:0 -3px 4px 0 rgb(0,0,0,0.2);
}
@media (min-width:992px){
	.sidefixed_btm{ display:none; }
}

.sidefixed_btm_list{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
}
.sidefixed_btm_list > li{
	width:calc(100% / 7);
	border-left:1px solid rgba(0,0,0,0.1);
}
.sidefixed_btm_list > li.sideline_fillup{
    flex:1 1 auto;
    width:1%; min-width:0;
}


/* ===== sidelink */
.sidelink{ 
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	
	font-size:var(--text-sm); font-weight:600; letter-spacing:0px;
	text-align:center;
}
.sidelink span{ display:block; }

iframe.line-it-button {
	min-width:30px;
	min-height:30px;
}


/* ===== [in sidefixed_right]：大螢幕時-右側固定列 */
.sidefixed_right .sidelink{
	width:40px; height:40px;
	background:#fff;
	border:1px solid #fff;
	border-radius:3px;
	color:#333;
	box-shadow:1px 1px 2px rgba(0,0,0,0.3);
	overflow:hidden;
}
.sidefixed_right .sidelink a{
	position:relative;
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	width:100%; height:100%;
}
.sidefixed_right .sidelink .iconsvg{ z-index:2; width:22px; height:22px; }
.sidefixed_right .sidelink .iconsvg:before{
	background-color:#848484;
}
.sidefixed_right .sidelink-text{ display:none; }


.sidefixed_right .sidelink.scrolltop .iconsvg{
	width:25px; height:25px;
}

.sidefixed_right .sidelink_wechat:hover .sidelink-icon:before{
	background-color:var(--color-wechat);
}
.sidefixed_right .sidelink_fb:hover .sidelink-icon:before{
	background-color:var(--color-fb);
}
.sidefixed_right .sidelink_ig:hover .sidelink-icon:before{
	background-color:var(--color-ig);
}
.sidefixed_right .sidelink_reserve:hover .sidelink-icon:before{
	background-color:var(--color-reserve);
}

.sidefixed_right .sidelink_scroll:hover{
	background-color:var(--color-accent);
}
.sidefixed_right .sidelink_scroll:hover .sidelink-icon:before{
	background-color:#fff;
}


/* ===== sidelink [in sidefixed_btm]：小螢幕時-底部固定列 */
.sidefixed_btm .sidelink a{
	width:100%;
	padding:var(--spacing-xs) 0;
	color:#fff;
	text-align:center;
}
.sidefixed_btm .sidelink .sidelink-icon{
	width:20px; height:20px;
	margin:0 auto 1px auto;
}
.sidefixed_btm .sidelink .sidelink-icon:before{
	background-color:#666;
}
.sidefixed_btm .sidelink-text{
	color:#666;
	font-size: var(--text-sm); font-weight:600; line-height:1;
}

.sidefixed_btm .sidelink.navbar_toggler .sidelink-icon:before{
	background-color:#333;
}
.sidefixed_btm .sidelink.navbar_toggler .sidelink-text{
	color:#333;
}






/*----------------------------------------------------------------------
	#dropdown:component [下拉式選單]
-------------------------------- */

/* ===== 觸發鈕*/
.dropdown{
	position:relative;
	display:inline-block; vertical-align:middle;
}
.dropdown_trigger{
	display:block;
	background:#fff;
	border:1px solid #fff;
	border-radius:3px;
	color:var(--color-one);

	padding: var(--spacing-xs) var(--spacing-base);
	text-align:center;
}
.dropdown_trigger-text{
	position:relative;
	display:inline-block;
	font-size: var(--text-lg); font-weight:600; line-height:1;
	padding-right:var(--spacing-md);
}
.dropdown_trigger-text:before{
	position:absolute; top:50%; right:0; content:"";
	width:0; height:0;
	
	border-width:6px 6px 0 6px;
	border-style:solid;
	border-color:transparent;
	border-top-color:var(--color-dark);
	
	transform:translate(0, -50%);
}
.dropdown_trigger:hover{ border-color:var(--color-one); }

@media (min-width:992px){
	.dropdown_trigger{
		padding: var(--spacing-xs) var(--spacing-sm);
	}
	.dropdown_trigger-text{
		font-size: var(--text-sm);
		padding-right:12px;
	}
	.dropdown_trigger-text:before{
		border-width:4px 4px 0 4px;
	}
}


/* ===== 觸發鈕-啟動*/
.dropdown_trigger.is-open{
	background:var(--color-accent);
	border-color:#fff;
	color:#fff;
}
.dropdown_trigger.is-open .dropdown_trigger-text:before{
	border-width:0 4px 4px 4px;
	border-top-color:transprent;
	
	border-bottom-color:#fff;
}


/* ===== 觸發區塊*/
.dropdown_content{
	display:none;
	position:absolute; z-index:2; left:0; top:100%;
	width:100%;
	background:#fff;
	border-radius:5px;
	box-shadow:1px 1px 4px rgba(0, 0, 0, 0.3);
}
.dropdown_content.is-open{
	display:block;
}


/* ===== 下拉項目*/
.dropdown_menu li{}
.dropdown_menu li a{
	display:block;
	width:100%;
	border-bottom:1px solid #ccc;
	font-size: var(--text-lg); font-weight:600; line-height:1;
	color:#333;
	padding:var(--spacing-md) var(--spacing-2xs);
	text-align:center;
}
.dropdown_menu > li:last-child a{
	border-bottom-width:0;
}
.dropdown_menu li a:hover{
	color:var(--color-accent);
}
.dropdown_menu li a.active{
	color:var(--color-one);
}
@media (min-width:992px){
	.dropdown_menu li a{
		font-size: var(--text-sm);
		padding:var(--spacing-base) var(--spacing-2xs);
	}
}





/*----------------------------------------------------------------------
	#language:component [語系-列表式]
-------------------------------- */
.language_box{ display:none; }
@media (min-width:992px){
	.language_box{ display:block; }
}

.language_list{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:flex-end;
	gap:var(--spacing-2xs);
	
	margin:var(--spacing-sm) 0;
}

.language{ 
	background:rgba(255,255,255,0.05);
	border:1px solid transparent;
	border-radius:3px;
    font-size:var(--text-sm); font-weight:600; font-weight:600;
	color:#333;
	padding:var(--spacing-xs) var(--spacing-sm);
}
.language:hover{
	background:#fff;
	border-color:var(--color-one);
    color:var(--color-one);
}
.language.active{
	background:#fff;
	border-color:rgba(0,0,0,0.1);
    color:#333;
	cursor:default;
}



/*----------------------------------------------------------------------
	#language_member:component [會員管理(語系條列式與下拉式裡的css命名皆同)]
-------------------------------- */
.language_member{
	display:block;
	position:relative;
	width:44px; height:44px; min-width:auto;
	background:#fff;
	border:1px solid #ccc;
	border-radius:50%;
	font-size:0;
	margin-left:var(--spacing-md);
}
@media (min-width:992px){
	.language_member{
		width:42px; height:42px;
		background:rgba(0,0,0,0.03);
	}
}
.language_member:before{
	position:absolute; z-index:1; top:0; left:0; content:"";
	width:100%; height:100%;
	
	background-color:var(--color-dark);
	
	-webkit-mask-position:center;
			mask-position:center;
	
	-webkit-mask-repeat:no-repeat;
			mask-repeat:no-repeat;
	
	-webkit-mask-size:50% 50%;
			mask-size:50% 50%;
	
	-webkit-mask-image:url(../images/icon/icon_person.svg);
			mask-image:url(../images/icon/icon_person.svg);
}

.language_member:hover{
	background:#fff;
	border-color:var(--color-accent);
}
.language_member:hover:before{
	background-color:var(--color-accent);
}


/* ===== language_dropbox ：語系下拉模式 */
.language_dropbox{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
				
	text-align:center;
}





/*----------------------------------------------------------------------
	#sign_close:component [X關閉圖樣]
-------------------------------- */
.sign_close{
	position:relative;
	display:block;
	width:30px; height:30px;
}
.sign_close:before , .sign_close:after{
	position:absolute; left:50%; top:0; content:"";
	width:3px; height:100%;
	background:#fff;
	border-radius:2px;
}
.sign_close:before{ transform:rotate(45deg); }
.sign_close:after{ transform:rotate(-45deg); }





/*----------------------------------------------------------------------
	#sign_hamburger:component [三選單圖樣]
-------------------------------- */
.sign_hamburger{
	position:relative;
	display:block;
	width:100%; height:100%;
}
.sign_hamburger:before,
.sign_hamburger:after,
.sign_hamburger-line{
	position:absolute; left:0; top:0; content:"";
	width:100%; height:2px;
	margin-top:-1px;
	background:#333;
	border-radius:2px;
	transition:top 0.3s ease-in-out , transform 0.3s ease-in-out;
}
.sign_hamburger:before{ top:20%; }
.sign_hamburger:after{ top:80%; }
.sign_hamburger-line{ top:50%; }

.sign_hamburger.is-open:before{
	top:50%;
	-webkit-transform:rotate(45deg);
    transform:rotate(45deg);
}
.sign_hamburger.is-open:after{
	top:50%;
	-webkit-transform:rotate(-45deg);
    transform:rotate(-45deg);
}
.sign_hamburger.is-open .sign_hamburger-line{
	opacity:0;
}





/*----------------------------------------------------------------------
	#navbar_toggler [側邊隱藏區塊-觸發鈕]
-------------------------------- */
.navbar_toggler{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:flex-end;
	
	width: 80px;
	margin: 0 0 0 auto;
	
	/*取消連結的醒目點選標示*/
	-webkit-tap-highlight-color: transparent;
}
.navbar_toggler .navbar_toggler-icon,
.navbar_toggler .navbar_toggler-text{
	display:block;
	line-height:1;
}
.navbar_toggler .navbar_toggler-icon{
	width:32px; height:36px;
}
.navbar_toggler .sign_hamburger:before, 
.navbar_toggler .sign_hamburger:after, 
.navbar_toggler .sign_hamburger-line{
	height:4px;
	background:var(--color-one);
}
.navbar_toggler .navbar_toggler-text{
	font-size:var(--text-md); font-weight:600;
	color:var(--color-one);
}





/*----------------------------------------------------------------------
	#offside
-------------------------------- */
.offside{
	position:fixed; z-index:1000; top:0; left:0;
	width:100%; height:100vh;
	overflow:hidden;
	
	opacity:0;
	pointer-events:none;
	visibility:hidden;

	transition: opacity 0s, visibility 0s, transform 0s;
}
.offside.is-open{ 
	opacity:1;
	pointer-events:auto;
	visibility:visible;

	transition: opacity 0.7s, visibility 0.7s, transform 0.7s;
}
@media (min-width:992px){
	.offside{ display:none; }
}

.offside_inner{
	width:calc( 100% - 90px ); height:100vh;

	background: var(--color-offside);
	border-left:1px solid rgba(255,255,255,0.05);
	
	margin-left:auto;
	padding-bottom:var(--spacing-4xl);
	
	overflow-y:auto;
	overflow-x:hidden;
	
	box-shadow:-5px 0 5px rgba(0,0,0,0.3);
}

@media (min-width:992px){
	.offside{ display:block; }
	.offside_inner{
		width: 420px;
	}
}


.offside_header{
	padding: var(--spacing-lg) 0;
}



/*----------------------------------------------------------------------
	#menu_offside [側邊區塊選單]
-------------------------------- */
.menu_offside{}

.menu_offside li{
	border-width:0 0 1px 0;
	border-style:solid;
	border-color:rgba(0,0,0,0.2);
}
.menu_offside li a{
	position:relative;
	display:block;
	color: var(--color-dark);
	font-size:var(--text-base); font-weight:600;
	padding:1rem 3rem 1rem 2rem;
	text-decoration:none;
}
.menu_offside .menu-subtext{
	display:none;
}


/* ===== 第一層文字 */
.menu_offside > li{
	border-color:rgba(255,255,255,0.2);
}
.menu_offside > li:first-child{
	border-top-width:1px;
}
.menu_offside > li > a{
	color:#fff;
}


/* ===== 文字前端 is 打開下層選單之提醒 */
.menu_offside li a:before{
	position:absolute; top:50%; left:10px; content:"";
	width:8px; height:8px;
	margin-top:-4px;
	background: var(--color-accent);
	border-radius:2px;
	transform:rotate(45deg);
	opacity:0;
}
.menu_offside li a.is-current{
	background:#fff;
	color: var(--color-accent);
}
.menu_offside li a.is-current:before{
	opacity:1;
}


/* ===== 右側 is 有下層之提示圖樣(+號) */
.menu-subbtn{
	display:block;
	position:absolute; z-index:1; top:0; right:0;
	width:70px; height:100%;
	background:rgba(255,255,255,0.05);
	cursor:pointer;
}
.menu-subbtn:before,
.menu-subbtn:after{
    position:absolute; z-index:2; right:50%; top:50%; content:"";
	width:2px; height:10px;
    margin-right:-1px; margin-top:-5px;
	background:#333;
	border-radius:2px;
	outline:0;
	transform-origin:center;
	transition:transform 0.4s ease-in-out;
}
.menu-subbtn:before{ transform:rotate(90deg); }


/* ===== 有下層之提示圖樣-第1層 */
.menu_offside > li > a .menu-subbtn{
	border-left-color:rgba(255,255,255,0.2);
}
.menu_offside > li > a .menu-subbtn:before,
.menu_offside > li > a .menu-subbtn:after{
	background:#fff;
}
.menu_offside > li > a .menu-subbtn.is-open:before,
.menu_offside > li > a .menu-subbtn.is-open:after,
.menu-subbtn.is-open:before,
.menu-subbtn.is-open:after{
	background: var(--color-accent);
}
.menu-subbtn.is-open:before{ transform:rotate(45deg); }
.menu-subbtn.is-open:after{ transform:rotate(-45deg); }	


/* ===== 第二層之後的層級收縮 */
.menu_offside ul{
	display:none;
	position:relative; top:0; left:0;
	width:100%;
	border-top:1px solid rgba(0,0,0,0.2);
	padding-left:var(--spacing-base);
	background:#fff;
}
.menu_offside ul.is-visible{ display:block; }

.menu_offside ul li:last-child{
	border-bottom-width:0;
}



/*----------------------------------------------------------------------
	#offside_close [側邊隱藏區塊-關閉鈕]
-------------------------------- */
.offside_close{
	position:fixed; z-index:1102; top:0; left:0;
	
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	
	width:90px; height:100%;
}
@media (min-width: 992px){
	.offside_close{
		width: calc( 100% - 420px );
		justify-content: flex-end;
		padding-right: 30px;
	}
}

.offside_close .sign_close{
	margin:0 auto var(--spacing-2xs) auto;
}
.offside_close .sign_close:before ,
.offside_close .sign_close:after{
	background:#fff;
}
.offside_close-text{
	width:100%;
	color:#fff;
	font-size:var(--text-sm); font-weight:600;
	letter-spacing:3px;
	margin-left:var(--spacing-2xs);
	text-align:center;
}









/*----------------------------------------------------------------------
	#header 、 #footer 、 #main
-------------------------------- */
.header,.header_inner,
.main,.main_inner,
.footer,.footer_inner{
	position:relative;
}

.main{ overflow:hidden; }

.header{ z-index:10; }
.header_inner{ z-index:11; }

.main_inner , .footer_inner{ z-index:3; }


.header_row,
.footer_row{
	display:flex; flex-wrap:wrap;
}
.header-left,.header-center,.header-right,
.header-one,.header-two,.header-three,.header-four,
.footer-left,.footer-center,.footer-right{
	width:100%;
}





/*----------------------------------------------------------------------
	#logo:component
-------------------------------- */
.logo a{
	display:block;
}

/* =====圖片式*/
.logo-photo{
	max-width:250px;
}
.logo-photo img{
	display:block; max-width:100%; height:auto;
}

/* =====文字式*/
.logo-text{
	display:inline-block;
	color:var(--color-one);
	font-size:var(--text-lg); font-weight:600; line-height:1.3;
}





/*----------------------------------------------------------------------
	#Slickbase:component [輪播基礎]
-------------------------------- */

/* 為解決因圖片過多，load時會出現圖片爆框問題 */
.slickbase{
	opacity:0;
	visibility:hidden;
	-webkit-transition:opacity 1s ease , visibility 1s ease;
			transition:opacity 1s ease , visibility 1s ease;
}

.slickbase.slick-initialized{
	visibility:visible;
	opacity:1;
}

.slickbase > li,
.slickbase .slick-slide{
	display:none;
}

.slickbase > li:first-child,
.slickbase .slick-slide:first-child{
	display:block;
	visibility:hidden;
} 

.slickbase.slick-initialized .slick-slide{
	display:block;
	visibility:visible!important;
}


/* ===== slick 基礎設定-項目 */
.slickbase{ overflow:hidden; }
.slickbase .slick-slide{
	position:relative;
	overflow:hidden;
}


/* ===== slick 基礎設定-左右按鈕 */
.slickarrow .slick-prev, 
.slickarrow .slick-next{
	position:absolute; z-index:11; top:0;
	display:block;
	width:50px; height:100%;
	background:rgba(255,255,255,0.1);
	border:none;
	color:transparent;
	font-size:0;
	cursor:pointer;
	transition:opacity 0.7s ease , transform 0.7s ease;
}
.slickarrow .slick-prev{ left:0; transform:translateX(-70px); }
.slickarrow .slick-next{ right:0; transform:translateX(70px); }

.slickarrow .slick-prev:before, 
.slickarrow .slick-next:before{
	position:absolute; top:50%; left:50%; content:"";
	width:10px; height:10px;
	border:4px solid #fff;
	transform:translate(-50%, -50%) rotate(45deg);
}
.slickarrow .slick-prev:before{ border-top-width:0; border-right-width:0; }
.slickarrow .slick-next:before{ border-left-width:0; border-bottom-width:0; }

.slickarrow .slick-prev:hover:before, 
.slickarrow .slick-next:hover:before{
	border-color:var(--color-accent);
}
.slickarrow:hover .slick-prev, 
.slickarrow:hover .slick-next{
	transform:translateX(0);
}


/* ===== slick 基礎設定-底下圓圈 */
.slickdots .slick-dots{
	position:relative; z-index:12;
	display:flex; flex-wrap:wrap; 
	justify-content:center;
	gap:var(--spacing-xs);
	
	width:100%;
	background:transparent;
	padding:0 var(--spacing-2xs);
}
.slickdots .slick-dots li{
	font-size:0;
}
.slickdots .slick-dots li button{
	width:20px; height:4px;
	background:#ccc;
	border:1px solid #fff;
	font-size:0;
	cursor:pointer;
}
.slickdots .slick-dots li button:hover{
	background:var(--color-accent);
}
.slickdots .slick-dots li.slick-active button{
	background:var(--color-one);
	
	opacity:1;
}
@media (min-width:992px){
	.slickdots .slick-dots li button{
		width:30px; height:8px;
	}
}





/*----------------------------------------------------------------------
	#marquee:component [跑馬燈]
-------------------------------- */
.marqueebar{
	position:relative; z-index:3;
	margin:var(--spacing-lg) 0;
}
.marquee_inner{
	position:relative;
	border:1px solid rgba(var(--color-one-rgb), 0.2);
	border-radius:3px;
	padding:var(--spacing-xs) 0;
}

.marquee_main{
	margin-left:50px;
}

.marquee-tag{
	position:absolute; top:50%; left:10px;
	transform:translate(0, -50%);
}
.marquee-tag_desktop{ display:none; }
.marquee-tag_mobile{ display:block; }
@media (min-width:992px){
	.marquee_main{
		margin-left:75px;
	}

	.marquee-tag_desktop{ display:block; }
	.marquee-tag_mobile{ display:none; }
}


/* ===== 跑馬燈圖標-桌面端 */
.marquee-tag_desktop{
	background:#E94847;
	border-radius:3px;
	
	font-size:var(--text-sm); font-weight:600;
	color:#fff;
	text-align:center;
	
	padding:var(--spacing-2xs) var(--spacing-xs);
}
.marquee-tag_desktop:before{
	position:absolute; top:50%; right:-6px; content:"";
	width:0; height:0;
	margin-top:-6px;
	
	border-width:6px 0 6px 6px;
	border-style:solid;
	border-color:transparent;
	
	border-left-color:#E94847;
}

/* ===== 跑馬燈圖標-移動端 */
.marquee-tag_mobile{
	width:34px; height:34px;
	background:#E94847;
	border:2px solid #fff;
	border-radius:50%;
}
.marquee-tag_mobile .iconsvg:before{
	background-color:#fff;
	
	-webkit-mask-size: 80% 80%;
    mask-size: 80% 80%;
}


/* ===== 跑馬燈-文字 */
.marquee-slide{
	height: 34px;
	overflow: hidden;
}

.marquee-slide li{}

.marquee{}

.marquee a{
	display:block;
	color:var(--color-one);
}
.marquee-text{
	display:block;
	font-size:var(--text-lg); font-weight:600;
	line-height:32px;
	
	overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.marquee a:hover{
	color:var(--color-accent);
}
@media (min-width:992px){
	.marquee-text{
		font-size:var(--text-xl);
	}
}





/*----------------------------------------------------------------------
	#breadcrumb-nav:component [導覽路徑]
-------------------------------- */
.breadcrumb-nav{
	position:relative;
	text-align:center;
}

.breadcrumb li{ display:inline-block; }
.breadcrumb li:after{
	content:"/";
	color:#333;
	font-size:var(--text-xs);
	margin-left:var(--spacing-2xs);
}
.breadcrumb li:last-child:after{ display:none; }

.breadcrumb-item{
	display:inline-block; vertical-align:middle;
	font-size:var(--text-sm); line-height:1.5; letter-spacing:0;
}

.breadcrumb-item,
.breadcrumb-item a{
	color:#666;
}
.breadcrumb-item a:hover{
	color:var(--color-accent);
}

.breadcrumb-item.active{
	color:var(--color-one);
}



/* ===== in product & agent_pd*/
/* .breadcrumb_pro{
	position:relative;
	margin-bottom:var(--spacing-md);
	padding:var(--spacing-xs); padding-left:var(--spacing-md);
}
.breadcrumb_pro:before{
	position:absolute; top:50%; left:0; content:"";
	width:10px; height:10px;
	border-radius:50%;
	background:var(--color-one);
	transform:translate(0, -50%);
}
.breadcrumb_pro .breadcrumb-nav {
	text-align: left;
}
.breadcrumb_pro .breadcrumb-item{
	font-size:var(--text-base); font-weight:600;
}
.breadcrumb_pro  .breadcrumb-item,
.breadcrumb_pro  .breadcrumb-item a{
	color:#333;
}
.breadcrumb_pro  .breadcrumb-item a:hover{
	color:var(--color-accent);
}
@media (min-width: 992px){
	.breadcrumb_pro .breadcrumb-nav {
		text-align: left;
	}
} */





/*----------------------------------------------------------------------
	#mtree:component [側邊多層選單]
-------------------------------- */
.mtree{}

.mtree li{ position:relative; }

.mtree li a{
	position:relative;
	display:block;
	
	border-width: 1px 0 0 0;
	border-style: solid;
	border-color: rgba(var(--color-one-rgb), 0.1);
	
	font-size:var(--text-base); font-weight:600;
	color:#333;
	padding:var(--spacing-sm);
	padding-right:var(--spacing-md);
}
.mtree li a:hover{ color: var(--color-accent); }

.mtree > li:last-child > a{ border-bottom-width:1px ; }

.mtree li ul{
	padding-left:var(--spacing-sm);
}


/*===== 有下一層選項的項目設定(+號)[ before-直線，after-橫線 ] */
.mtree li.mtree-node > a:before, 
.mtree li.mtree-node > a:after{
	position:absolute; z-index:4; top:50%; right:12px; content:"";
	width:2px; height:12px;
	background:#333;
	margin-top:-6px;
	transition:transform 0.3s ease-in-out;
}
.mtree  li.mtree-node > a:after{transform:rotate(90deg);  }


/*===== 打開有次選單項目時之文字設定*/
.mtree li.mtree-open > a{
	color:var(--color-accent);
}
.mtree li.mtree-open > a:before, 
.mtree li.mtree-open > a:after{
	background:var(--color-accent);
}
.mtree li.mtree-open > a:before{ transform:rotate(45deg); }
.mtree li.mtree-open > a:after{ transform:rotate(125deg); }

/*因active 項目開關是相反的*/
.mtree li.active.mtree-closed > a:before{ transform:rotate(45deg); }
.mtree li.active.mtree-closed > a:after{ transform:rotate(125deg); }
.mtree li.active.mtree-open > a:before{ transform:rotate(0); }
.mtree li.active.mtree-open > a:after{ transform:rotate(90deg); }

.mtree li.active > a{
	color:var(--color-accent);
}
.mtree li.active > a:before,
.mtree li.active > a:after{
	background: var(--color-one);
}


/*====== 選中的項目有標記(圓圈)之設定 */
.mtree li:after{
	position:absolute; top:24px; left:-8px; content:"";
	width:8px; height:8px;
	margin-top:-4px;
	background:var(--color-accent);
	border-radius:50%;
	opacity:0;
}
.mtree li.active:after{
	opacity:1;
}





/*----------------------------------------------------------------------
	#itembox:component [分隔區塊]
-------------------------------- */
.itembox{
	position:relative;
	margin:var(--spacing-sm) 0;
}
/* .itembox_row{
	display:flex; flex-wrap:wrap;
}
.itembox-left,
.itembox-center,
.itembox-right{
	width:100%;
} */





/*----------------------------------------------------------------------
	#searchbar:component [搜尋]
-------------------------------- */
.searchbar{
	margin-top:var(--spacing-xs);
	margin-bottom:var(--spacing-lg);
}
.search{
	border:1px solid #ccc;
}

.search-input{
	display:block;
	width:100%;
	background-color:#fff;
	background-clip:padding-box;
	border-width:0px;
	border-radius:0;
	color:#212529;
	padding:0.5rem 0.25rem 0.5rem 0.5rem;

	-webkit-appearance:none;
	   -moz-appearance:none;
			appearance:none;

	transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.search-btn{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	
	position:relative; z-index:2;
	width:35px;
	background:#fff;
	border-width:0px;
	border-radius:0;
}
.search-btn img{
	display:block;
	width:22px;
}
.search-btn:hover{
	background:var(--color-one);
}
.search-btn:hover img{
	filter:brightness(0) invert(1);
}

.search form{
	position:relative;
    display:flex;
    flex-wrap:wrap;
    align-items:stretch;
    width:100%;
}
.search .search-input{
    position:relative;
    flex:1 1 auto;
    width:1%;
    min-width:0;
}





/*----------------------------------------------------------------------
	#result-box:component [搜尋結果]
-------------------------------- */
.search_result_bar{
	margin:0 0 var(--spacing-2xl) 0;
}

.search_result{
	position:relative;
	
	display:flex; flex-wrap:wrap;
	align-items:center;
	
	background:rgba(0,0,0,0.05);
	border-radius:18px;
	padding:0.1rem 1rem;
}
.search_result .iconsvg{
	width:25px; height:25px;
	margin-right:var(--spacing-sm);
}
.search_result .iconsvg:before{
	background-color:#999;
}
.search_result-text{
	flex:1 1 auto;
    width:1%; min-width:0;
	
	font-size:var(--text-xl); font-weight:600;
}





/*----------------------------------------------------------------------
	#pricebar:component [價錢組]
-------------------------------- */
.pricebar{}

.price{
	display:inline-block;
	font-weight:600; line-height:1;
	font-family:'Notosans2', 'Open-Sans', Roboto, 'Noto Sans TC', sans-serif;
	color:#666;
	margin:var(--spacing-xs) var(--spacing-2xs);
	text-align:center;
}

.price_unit,
.price_period,
.price_original{
	font-size:var(--text-lg);
}
.price_sale{
	font-size:var(--text-4xl); font-weight:600;
	color:#cc3333;
}
.price_original{
	text-decoration:line-through;
}


/*----------------------------------------------------------------------
	#購買按鈕:立即申請 & 立即購買 [use #btn:component]
-------------------------------- */
.btn_apply,
.btn_addcart{
	border:3px solid #fff;
	color:#fff;
	border-radius:30px;
	padding:var(--spacing-sm)var(--spacing-md);
	box-shadow:2px 2px 3px rgba(0,0,0,0.5);
	
	transition:box-shadow 0.1s ease;
}
.btn_apply .iconsvg:before,
.btn_addcart .iconsvg:before{
	background-color:#fff;
}
.btn_apply{ background:var(--color-apply); }
.btn_addcart{ background:var(--color-addcart) }

.btn_apply:hover,
.btn_addcart:hover{
	color:#fff;
	box-shadow:1px 1px 3px rgba(0,0,0,0.3);
	
	-webkit-animation:goto 2s linear infinite;
	   -moz-animation:goto 2s linear infinite;
		 -o-animation:goto 2s linear infinite;
			animation:goto 2s linear infinite;
}



/*----------------------------------------------------------------------
	#價錢與購物組 [use #pricebar:component / #btn:component]
-------------------------------- */
.addcartbox{
	position:relative;
    display:flex; flex-wrap:wrap;
	align-items:center;
	gap:1rem;
	
    width:100%;
	border-top:1px solid rgba(var(--color-one-rgb), 0.2);
	border-bottom:1px solid rgba(var(--color-one-rgb), 0.2);
	padding:var(--spacing-sm);
}
.addcartbox .pricebar{
	position:relative;
    flex:1 1 auto;
    width:1%; min-width:0;
}
.addcartbox .btnbar{
	margin:0;
}
.addcartbox .btnbar .btn{
	width:100%;
	margin:0;
}


/*----------------------------------------------------------------------
	#價錢與購物組 [於內容尾購買] [use #pricebar:component / #btn:component]
-------------------------------- */
.itembox_view_addcart{
	max-width:500px;
	background:var(--color-one);
	border:1px solid var(--color-one);
	border-radius:0.75rem;
	overflow:hidden;
	margin:var(--spacing-xl) auto;
}
.itembox_view_addcart .heading_pageview{
	padding:var(--spacing-md) var(--spacing-base);
	margin:0;
}
.itembox_view_addcart .heading_pageview .heading-text{
	color:#fff;
}

.itembox_view_addcart .addcartbox{
	background:#fff;
	border-width:0;
	border-radius:0.5rem 0.5rem 0 0;
	padding:var(--spacing-md) var(--spacing-base);
}
.itembox_view_addcart .price{
	color:#333;
}
.itembox_view_addcart .price.price_sale{
	color:#cc3333;
}





/*----------------------------------------------------------------------
	#iconcate:component [圖標分類]
-------------------------------- */
.iconcate_box{ display:none; }
@media (min-width:992px){
	.iconcate_box{ display:block; }
}

.iconcate_list{
	display:flex; flex-wrap:wrap;
	gap:var(--spacing-md);
}
.iconcate_list li{ width:100%; }

.iconcate{}
.iconcate_row{
	display:flex; flex-wrap:wrap;
	align-items:center;
}
.iconcate_row .iconsvg,
.iconcate_row .iconcate-text{
	position:relative; z-index:2;
	display:block;
	margin:0 1px;
}
.iconcate .iconsvg{
	width:22px; height:22px;
}
.iconcate .iconsvg:before{
	background-color:#333;
}
.iconcate_row .iconcate-text{
	font-size:1rem; font-weight:600;
	color:#333;
}





/*----------------------------------------------------------------------
	#popup:component [彈跳視窗─用於設計師視訊列表、首頁app下載]
-------------------------------- */
.popupbox{
	position:fixed; z-index:-2; top:0; left:0;
	width:100%; height:100vh;
	background:rgba(0,0,0,0.85);
	overflow:hidden;
	padding:0 10px;
	
	opacity:0;
	pointer-events:none;
	visibility:hidden;
	
	transform:scale(0.95);
	transition: opacity 0.5s, 
				visibility 0.5s,
				transform 0.5s;
}
.popupbox.is-open{
	z-index:1100;
	opacity:1;
	pointer-events:auto;
	visibility:visible;
	
	transform:scale(1);
}

body.popup-hidden{ overflow:hidden; }


/* ===== 關閉 */
.popup_close{
	position:absolute; top:20px; right:20px;
	width:50px; height:50px;
	border-radius:5px;
	padding:15px;
	background:rgba(255,255,255,0.2);
}
.popup_close .sign_close{
	width:100%; height:100%;
}


/* ===== 置中 */
.popup_row{
	display:flex; flex-wrap:wrap;
	align-items:center; justify-content:center;
	width:100%; height:100vh;
}
.popup_limit{
	width:100%; height:calc( 100% - 80px );
	overflow:hidden;
	margin-top:80px;
}
.popup_main{
	width:100%; height:100%;
	overflow-y:scroll;
}


/* ===== 標題 */
.heading_popup{
	text-align:center;
	margin-bottom:var(--spacing-lg);
}
.heading_popup .heading-icon,
.heading_popup .heading-text{
	display:inline-block; vertical-align:middle;
}
.heading_popup .heading-icon + .heading_popup .heading-text{
	margin:0 5px;
}



/*----------------------------------------------------------------------
	#設計師視訊列表 [use #popup:component] [in designer meeting]
-------------------------------- */
.popupbox_meeting .popup_limit{
	background:#fff;
	border-radius:10px;
}
.popupbox_meeting .popup_main{
	width:100%; height:100%;
	padding:var(--spacing-lg);
}
@media (min-width:992px){
	.popupbox_meeting .popup_limit{
		width:80%; height:70%;
	}
}


/*----------------------------------------------------------------------
	#首頁app下載 [use #popup:component] [in appdownload]
-------------------------------- */
@media (min-width:992px){
	.popupbox_appdownload .popup_limit{
		height:auto;
		margin-top:0;
	}
	.popupbox_appdownload .popup_main{
		height:auto;
		overflow-y:auto;
	}
}
.heading_popup_appdownload .heading-icon{
	width:60px;
}
.heading_popup_appdownload .heading-text{
	font-size:var(--text-2xl);
	color:#fff;
}





/*----------------------------------------------------------------------
	#accordion:component [手風琴效果]
-------------------------------- */
.accordion{
}
.accordion-trigger{
    cursor:pointer;
}

.accordion-collapse{
	display:none;
	margin-bottom:var(--spacing-lg);
}
.accordion-collapse.is-visible{ display:block; }

.accordionPart > li{
	position:relative; z-index:1;
	border-top: 1px solid #e5e5e5;
}
.accordionPart > li:last-child {
    border-bottom: 1px solid #e5e5e5;
}





/*----------------------------------------------------------------------
	#page:component [頁碼]
-------------------------------- */
.page{
	font-size:var(--text-sm); font-weight:600;
	text-align:center;
	color:#666;
	margin-top:var(--spacing-2xl);
}
.page br:nth-of-type(1){
	display:none;
}
.page a ,
.page span{
	display:inline-block;
	min-width:38px;
	background:#fff;
	border:1px solid #ccc;
	border-radius:2px;
	color:var(--color-one);
	font-size:var(--text-base);
	padding:var(--spacing-xs) var(--spacing-base);
	text-align:center;
	margin:var(--spacing-sm) var(--spacing-2xs);
}
.page span{
	background: var(--color-one);
	border-color: var(--color-one);
	color: #fff;
}
.page a:hover{
	border-color: var(--color-accent);
	color:var(--color-accent);
}






/*----------------------------------------------------------------------
	#form:component [表單-欄位]
-------------------------------- */
.form-label{
	margin-bottom:var(--spacing-xs);
}

.form-text{
	margin-top:var(--spacing-2xs);
	font-size:var(--text-sm);
	color:#6c757d;
}


/* ===== 輸入欄位 */
.form-control{
	display:block;
	width:100%;
	
	background-color:#fff;
	background-clip:padding-box;
	
	border:1px solid #ced4da;
	border-radius:0.25rem;
	
	font-size:var(--text-base); font-weight:400; line-height:1.5;
	color:#212529;
	
	padding:var(--spacing-xs) var(--spacing-sm);

	-webkit-appearance:none;
	   -moz-appearance:none;
			appearance:none;

	transition: border-color 0.15s ease-in-out, 
				box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion:reduce){
	.form-control{
		transition:none;
	}
}

.form-control[type=file]{
	overflow:hidden;
}
.form-control[type=file]:not(:disabled):not([readonly]){
	cursor:pointer;
}

.form-control:focus{
	color:#212529;
	background-color:#fff;
	border-color:#86b7fe;
	outline:0;
	box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.form-control::-webkit-date-and-time-value{
	height:1.5em;
}

.form-control::-moz-placeholder{
	color:#6c757d;
	font-size:var(--text-sm);
	opacity:1;
}
.form-control::placeholder{
	color:#6c757d;
	font-size:var(--text-sm);
	opacity:1;
}

.form-control:disabled,
.form-control[readonly]{
	background-color:#e9ecef;
	opacity:1;
}
.form-control::file-selector-button{
	padding:0.375rem 0.75rem;
	margin:-0.375rem -0.75rem;
	
	-webkit-margin-end:0.75rem;
	margin-inline-end:0.75rem;
	
	color:#212529;
	background-color:#e9ecef;
	pointer-events:none;
	
	border-color:inherit;
	border-style:solid;
	border-width:0;
	border-inline-end-width:1px;
	
	border-radius:0;
	transition: color 0.15s ease-in-out,
				background-color 0.15s ease-in-out,
				border-color 0.15s ease-in-out,
				box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion:reduce){
	.form-control::file-selector-button{
		transition:none;
	}
}
.form-control:hover:not(:disabled):not([readonly])::file-selector-button{
	background-color:#dde0e3;
}
.form-control::-webkit-file-upload-button{
	padding:0.375rem 0.75rem;
	margin:-0.375rem -0.75rem;
	
	-webkit-margin-end:0.75rem;
	margin-inline-end:0.75rem;
	
	color:#212529;
	background-color:#e9ecef;
	pointer-events:none;
	border-color:inherit;
	border-style:solid;
	border-width:0;
	border-inline-end-width:1px;
	
	border-radius:0;

	transition: color 0.15s ease-in-out,
				background-color 0.15s ease-in-out,
				border-color 0.15s ease-in-out,
				box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion:reduce){
	.form-control::-webkit-file-upload-button{
		-webkit-transition:none;
		transition:none;
	}
}
.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{
	background-color:#dde0e3;
}

.form-control-plaintext{
	display:block;
	width:100%;
	padding:var(--spacing-xs) 0;
	margin-bottom:0;
	line-height:1.5;
	color:#212529;
	background-color:transparent;
	border:solid transparent;
	border-width:1px 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg{
	padding-right:0;
	padding-left:0;
}

textarea.form-control{
	min-height:calc(1.5em + 0.75rem + 2px);
}



/* ===== 下拉選單 */
.form-select{
	display:block;
	width:100%;
	
	background-color:#fff;
	background-image:url(../images/icon/icon_select.svg);
	background-repeat:no-repeat;
	background-position:right 0.75rem center;
	background-size:16px 12px;
	
	padding:var(--spacing-xs) var(--spacing-sm);
	padding-right:var(--spacing-lg);
	-moz-padding-start:calc(0.75rem - 3px);
	
	border:1px solid #ced4da;
	border-radius:0.25rem;
	font-size:var(--text-base);
	font-weight:400; line-height:1.5;
	color:#212529;
	cursor:pointer;
	
	transition: border-color 0.15s ease-in-out,
				box-shadow 0.15s ease-in-out;
				
	-webkit-appearance:none;
	   -moz-appearance:none;
			appearance:none;
}
@media (prefers-reduced-motion:reduce){
	.form-select{
		transition:none;
	}
}
.form-select:focus{
	border-color:#86b7fe;
	outline:0;
	box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.form-select[multiple],
.form-select[size]:not([size="1"]){
	padding-right:0.75rem;
	background-image:none;
}
.form-select:disabled{
	background-color:#e9ecef;
}
.form-select:-moz-focusring{
	color:transparent;
	text-shadow:0 0 0 #212529;
}


/* ===== 核取方塊&選項按鈕 */
.form-check{
	display:block;
	min-height:1.5rem;
	padding-left:var(--spacing-md);
	margin:var(--spacing-2xs) 0;
}
.form-check .form-check-input{
	float:left;
	margin-left:-1.5em;
}

.form-check-input{
	width:1em; height:1em;
	
	margin-top:var(--spacing-2xs);
	vertical-align:top;
	
	background-color:#fff;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;
	
	border:1px solid rgba(0, 0, 0, 0.25);
	
	-webkit-appearance:none;
	   -moz-appearance:none;
			appearance:none;
			
	-webkit-print-color-adjust:exact;
				  color-adjust:exact;
}
.form-check-input[type=checkbox]{
	border-radius:0.25em;
}
.form-check-input[type=radio]{
	border-radius:50%;
}
.form-check-input:active{
	filter:brightness(90%);
}
.form-check-input:focus{
	border-color:#86b7fe;
	outline:0;
	box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.form-check-input:checked{
	background-color:#0d6efd;
	border-color:#0d6efd;
}
.form-check-input:checked[type=checkbox]{
	background-image:url(../images/icon/icon_tick.svg);
}
.form-check-input:checked[type=radio]{
	background-image:url(../images/icon/icon_circle.svg);
}
.form-check-input[type=checkbox]:indeterminate{
	background-color:#0d6efd;
	border-color:#0d6efd;
	background-image:url(../images/icon/icon_null.svg);
}
.form-check-input:disabled{
	pointer-events:none;
	filter:none;
	opacity:0.5;
}
.form-check-input[disabled] ~ .form-check-label,
.form-check-input:disabled ~ .form-check-label{
	opacity:0.5;
}

.form-check-inline{
	display:inline-block;
	margin-right:1rem;
}





/*----------------------------------------------------------------------
	#formbox:component [表單]
-------------------------------- */
.formbox{
	position:relative; z-index:5;
}

.formlist {
	--form-gutter-x: 1.5rem;
	--form-gutter-y: 1.5rem;
	
	display: flex; flex-wrap: wrap;
	margin-top: calc(var(--form-gutter-y) * -1);
	margin-right: calc(var(--form-gutter-x) / -2);
	margin-left: calc(var(--form-gutter-x) / -2);
}
.formlist > li {
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--form-gutter-x) / 2);
	padding-left: calc(var(--form-gutter-x) / 2);
	margin-top: var(--form-gutter-y);
}


/* ===== 表單說明 */
.form-describe{
	color:#333;
	font-size:var(--text-lg); font-weight:600;
	text-align:center;
	margin-bottom:var(--spacing-lg);
}

/* ===== 必填 */
.data_required{
	vertical-align:text-top;
	font-size:var(--text-sm);
	color:red;
	
	/*text-shadow: black 0.1em 0.1em 0.2em;*/
}


/*===== #input_group */
.input_group{
	display:flex; flex-wrap:wrap;
	align-items:center;
	gap:var(--spacing-sm);
}
@media (min-width:992px){
	.input_group-right{
		position:relative;
		
		flex:1 1 auto;
		width:1%; min-width:0;
	}
}


/* ===== 標題 */
.input_group-left .form-label{
	display:flex; flex-wrap:wrap;
	align-items:center;
	margin:0;
}
.form-icon,
.form-require,
.form-title{
	display:block;
}
.form-require{
	width:7px;
	margin-right:var(--spacing-2xs);
}

.form-title{
	position:relative;
	font-size:var(--text-lg); font-weight:600;
	color:#333;
	padding-right:var(--spacing-base);
	
	/*text-shadow: black 0.1em 0.1em 0.2em;*/
}
@media (min-width:992px){
	.form-title{
		width:120px;
		
		/*文字左右對齊*/
		text-align: justify;
		text-align-last: justify;
	}
}
.form-title:after{
	position:absolute; top:-2px; right:0; content:"：";
	color:#333;
}


/*===== #內容-純文字 */
.input_group-text{
	background:rgba(0,0,0,0.01);
	border-radius:3px;
	color:#333;
	font-size:var(--text-base); 
	font-weight:600; line-height:1.5;
	padding:var(--spacing-xs) var(--spacing-sm);
}


/*===== #form-remind：欄位說明文字*/
.form-remind{
	width:100%;
	color:#666;
	font-size:var(--text-sm);
	margin-top:var(--spacing-xs);
}


.formbox .form-control,
.formbox .form-select{
	background-color:#fff;
	border:1px solid #999;
	border-radius:0;
}
.formbox textarea.form-control{
	border-radius:0;
}


/* ===== #單選按鈕 */
.form-checklist{
	display:flex; flex-wrap:wrap;
	gap:var(--spacing-md);
}
.form-check{
	font-weight:600;
}


/* ===== 驗證碼列 */
.form-verifybox{
	display:inline-block;
	background:rgba(255,255,255,0.5);
}
.form-verifybox a{
	font-size:var(--text-sm); font-weight:600;
}
.form-verifybox input{
	background-color: #F9F9F9;
    border: 1px solid #999;
	padding:var(--spacing-2xs);
}







/*----------------------------------------------------------------------
	#flex & text-align:component
-------------------------------- */
.flexbar{
	display:flex; flex-wrap:wrap;
	align-items:center;
}

.gap-0 { gap: 0; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 1rem; }
.gap-4 { gap: 1.5rem; }
.gap-5 { gap: 3rem; }

.flex-nowrap{ flex-wrap: nowrap; }
.flex-wrap{ flex-wrap: wrap; }
.flex-wrap-reverse{ flex-wrap: wrap-reverse; }

.flex{ display:flex; }
.hidden{ display:none; }
.block{ display:block; }

.align-start { align-items: flex-start; }
.align-center { align-items: center; }
.align-end { align-items: flex-end; }
.align-stretch { align-items:stretch; }

.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.justify-between{ justify-content: space-between; }

.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

@media (min-width:576px){
	.gap-sm-0 { gap: 0; }
	.gap-sm-1 { gap: 0.25rem; }
	.gap-sm-2 { gap: 0.5rem; }
	.gap-sm-3 { gap: 1rem; }
	.gap-sm-4 { gap: 1.5rem; }
	.gap-sm-5 { gap: 3rem; }

	.sm-hidden{ display:none; }
	.sm-block{ display:block; }
	
	.align-sm-start { align-items: flex-start; }
	.align-sm-center { align-items: center; }
	.align-sm-end { align-items: flex-end; }
	.align-sm-stretch { align-items:stretch; }
	
	.justify-sm-start { justify-content: flex-start; }
	.justify-sm-end { justify-content: flex-end; }
	.justify-sm-center { justify-content: center; }
	.justify-sm-between{ justify-content: space-between; }

	.text-sm-left { text-align: left; }
	.text-sm-center { text-align: center; }
	.text-sm-right { text-align: right; }
}
@media (min-width:768px){
	.gap-md-0 { gap: 0; }
	.gap-md-1 { gap: 0.25rem; }
	.gap-md-2 { gap: 0.5rem; }
	.gap-md-3 { gap: 1rem; }
	.gap-md-4 { gap: 1.5rem; }
	.gap-md-5 { gap: 3rem; }

	.md-hidden{ display:none; }
	.md-block{ display:block; }
		
	.align-md-start { align-items: flex-start; }
	.align-md-center { align-items: center; }
	.align-md-end { align-items: flex-end; }
	.align-md-stretch { align-items:stretch; }
	
	.justify-md-start { justify-content: flex-start; }
	.justify-md-end { justify-content: flex-end; }
	.justify-md-center { justify-content: center; }
	.justify-md-between{ justify-content: space-between; }
	
	.text-md-left { text-align: left; }
	.text-md-center { text-align: center; }
	.text-md-right { text-align: right; }
}
@media (min-width:992px){
	.gap-lg-0 { gap: 0; }
	.gap-lg-1 { gap: 0.25rem; }
	.gap-lg-2 { gap: 0.5rem; }
	.gap-lg-3 { gap: 1rem; }
	.gap-lg-4 { gap: 1.5rem; }
	.gap-lg-5 { gap: 3rem; }
	
	.lg-hidden{ display:none; }
	.lg-block{ display:block; }
	
	.align-lg-start { align-items: flex-start; }
	.align-lg-center { align-items: center; }
	.align-lg-end { align-items: flex-end; }
	.align-lg-stretch { align-items:stretch; }
	
	.justify-lg-start { justify-content: flex-start; }
	.justify-lg-end { justify-content: flex-end; }
	.justify-lg-center { justify-content: center; }
	.justify-lg-between{ justify-content: space-between; }
	
	.text-lg-left { text-align: left; }
	.text-lg-center { text-align: center; }
	.text-lg-right { text-align: right; }
}
@media (min-width:1200px){
	.gap-xl-0 { gap: 0; }
	.gap-xl-1 { gap: 0.25rem; }
	.gap-xl-2 { gap: 0.5rem; }
	.gap-xl-3 { gap: 1rem; }
	.gap-xl-4 { gap: 1.5rem; }
	.gap-xl-5 { gap: 3rem; }
	
	.xl-hidden{ display:none; }
	.xl-block{ display:block; }
	
	.align-xl-start { align-items: flex-start; }
	.align-xl-center { align-items: center; }
	.align-xl-end { align-items: flex-end; }
	.align-xl-stretch { align-items:stretch; }
	
	.justify-xl-start { justify-content: flex-start; }
	.justify-xl-end { justify-content: flex-end; }
	.justify-xl-center { justify-content: center; }
	.justify-xl-between{ justify-content: space-between; }
	
	.text-xl-left { text-align: left; }
	.text-xl-center { text-align: center; }
	.text-xl-right { text-align: right; }
}
@media (min-width:1600px){
	.gap-xxl-0 { gap: 0; }
	.gap-xxl-1 { gap: 0.25rem; }
	.gap-xxl-2 { gap: 0.5rem; }
	.gap-xxl-3 { gap: 1rem; }
	.gap-xxl-4 { gap: 1.5rem; }
	.gap-xxl-5 { gap: 3rem; }
	
	.xxl-hidden{ display:none; }
	.xxl-block{ display:block; }
	
	.align-xxl-start { align-items: flex-start; }
	.align-xxl-center { align-items: center; }
	.align-xxl-end { align-items: flex-end; }
	.align-xxl-stretch { align-items:stretch; }
	
	.justify-xxl-start { justify-content: flex-start; }
	.justify-xxl-end { justify-content: flex-end; }
	.justify-xxl-center { justify-content: center; }
	.justify-xxl-between{ justify-content: space-between; }
	
	.text-xxl-left { text-align: left; }
	.text-xxl-center { text-align: center; }
	.text-xxl-right { text-align: right; }
}





/*----------------------------------------------------------------------
	#iconsvg:component
-------------------------------- */
.iconsvg {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;

} 
.iconsvg:before {
	position: absolute; top: 0; left: 0; content: "";
	width:100%; height:100%;
    background-color: #333;

    -webkit-mask-position: center;
			mask-position: center;
    
    -webkit-mask-repeat: no-repeat;
			mask-repeat: no-repeat;
    
    -webkit-mask-size: 100% 100%;
			mask-size: 100% 100%;
	
	/*-webkit-mask-size: 50% 50%;
			mask-size: 50% 50%;*/
}


/*===== #scrolltop*/
.icon-scrolltop:before {
    -webkit-mask-image: url(../images/icon/icon_scrolltop.svg);
    mask-image: url(../images/icon/icon_scrolltop.svg);
}
.icon-scrolltop-mobile:before {
    -webkit-mask-image: url(../images/icon/icon_scrolltop_mobile.svg);
    mask-image: url(../images/icon/icon_scrolltop_mobile.svg);
}


/*===== #marquee - 20230519 add*/
.icon_marquee:before {
    -webkit-mask-image: url(../images/icon/icon_marquee.svg);
    mask-image: url(../images/icon/icon_marquee.svg);
}


/*===== #social*/
.icon-fb:before {
    -webkit-mask-image: url(../images/icon/icon_fb.svg);
    mask-image: url(../images/icon/icon_fb.svg);
}
.icon-line:before {
    -webkit-mask-image: url(../images/icon/icon_line.svg);
    mask-image: url(../images/icon/icon_line.svg);
}
.icon-ig:before {
    -webkit-mask-image: url(../images/icon/icon_ig.svg);
    mask-image: url(../images/icon/icon_ig.svg);
}
.icon-youtube:before {
    -webkit-mask-image: url(../images/icon/icon_youtube.svg);
    mask-image: url(../images/icon/icon_youtube.svg);
}
.icon-twitter:before {
    -webkit-mask-image: url(../images/icon/icon_twitter.svg);
    mask-image: url(../images/icon/icon_twitter.svg);
}
.icon-weibo:before {
    -webkit-mask-image: url(../images/icon/icon_weibo.svg);
    mask-image: url(../images/icon/icon_weibo.svg);
}
.icon-wechat:before {
    -webkit-mask-image: url(../images/icon/icon_wechat.svg);
    mask-image: url(../images/icon/icon_wechat.svg);
}
.icon-skype:before {
    -webkit-mask-image: url(../images/icon/icon_skype.svg);
    mask-image: url(../images/icon/icon_skype.svg);
}
.icon-home:before {
    -webkit-mask-image: url(../images/icon/icon_home.svg);
    mask-image: url(../images/icon/icon_home.svg);
}


/*===== #contact info 、 form */
.icon-person:before {
    -webkit-mask-image: url(../images/icon/icon_person.svg);
    mask-image: url(../images/icon/icon_person.svg);
}
.icon-phone:before {
    -webkit-mask-image: url(../images/icon/icon_phone.svg);
    mask-image: url(../images/icon/icon_phone.svg);
}
.icon-fax:before {
    -webkit-mask-image: url(../images/icon/icon_fax.svg);
    mask-image: url(../images/icon/icon_fax.svg);
}
.icon-mail:before {
    -webkit-mask-image: url(../images/icon/icon_mail.svg);
    mask-image: url(../images/icon/icon_mail.svg);
}
.icon-address:before {
    -webkit-mask-image: url(../images/icon/icon_address.svg);
    mask-image: url(../images/icon/icon_address.svg);
}
.icon-company:before {
    -webkit-mask-image: url(../images/icon/icon_company.svg);
    mask-image: url(../images/icon/icon_company.svg);
}
.icon-working:before {
    -webkit-mask-image: url(../images/icon/icon_working.svg);
    mask-image: url(../images/icon/icon_working.svg);
}
.icon-global:before {
    -webkit-mask-image: url(../images/icon/icon_global.svg);
    mask-image: url(../images/icon/icon_global.svg);
}
.icon-verify:before {
    -webkit-mask-image: url(../images/icon/icon_verify.svg);
    mask-image: url(../images/icon/icon_verify.svg);
}


/*===== #go to page */
.icon-pageback:before {
    -webkit-mask-image: url(../images/icon/icon_pageback.svg);
    mask-image: url(../images/icon/icon_pageback.svg);
}
.icon-question:before {
    -webkit-mask-image: url(../images/icon/icon_question.svg);
    mask-image: url(../images/icon/icon_question.svg);
}
.icon-read-more:before {
    -webkit-mask-image: url(../images/icon/icon_read_more.svg);
    mask-image: url(../images/icon/icon_read_more.svg);
}
.icon-triangle-right:before {
    -webkit-mask-image: url(../images/icon/icon_triangle_right.svg);
    mask-image: url(../images/icon/icon_triangle_right.svg);
}
.icon-view-more:before {
    -webkit-mask-image: url(../images/icon/icon_double_right.svg);
    mask-image: url(../images/icon/icon_double_right.svg);
}
.icon-go:before,
.icon-apply:before,
.icon-outlink:before{
    -webkit-mask-image: url(../images/icon/icon_go.svg);
    mask-image: url(../images/icon/icon_go.svg);
}


/*===== #meeting */
.icon-reserve:before {
    -webkit-mask-image: url(../images/icon/icon_calendar.svg);
    mask-image: url(../images/icon/icon_calendar.svg);
}
.icon-meeting:before {
    -webkit-mask-image: url(../images/icon/icon_meeting.svg);
    mask-image: url(../images/icon/icon_meeting.svg);
}
.icon-no-allow:before {
    -webkit-mask-image: url(../images/icon/icon_no_allow.svg);
    mask-image: url(../images/icon/icon_no_allow.svg);
}


/*===== #case */
.icon-case-result:before {
    -webkit-mask-image: url(../images/icon/icon_case_result.svg);
    mask-image: url(../images/icon/icon_case_result.svg);
}
.icon-case-goon:before {
    -webkit-mask-image: url(../images/icon/icon_case_goon.svg);
    mask-image: url(../images/icon/icon_case_goon.svg);
}
.icon-case-finish:before {
    -webkit-mask-image: url(../images/icon/icon_case_finish.svg);
    mask-image: url(../images/icon/icon_case_finish.svg);
}
.icon-petition:before {
    -webkit-mask-image: url(../images/icon/icon_petition.svg);
    mask-image: url(../images/icon/icon_petition.svg);
}



.icon-hamburger:before {
    -webkit-mask-image: url(../images/icon/icon_hamburger.svg);
    mask-image: url(../images/icon/icon_hamburger.svg);
}
.icon-search:before {
    -webkit-mask-image: url(../images/icon/icon_search.svg);
    mask-image: url(../images/icon/icon_search.svg);
}
.icon-tag:before {
    -webkit-mask-image: url(../images/icon/icon_tag.svg);
    mask-image: url(../images/icon/icon_tag.svg);
}
.icon-download:before {
    -webkit-mask-image: url(../images/icon/icon_download.svg);
    mask-image: url(../images/icon/icon_download.svg);
}
.icon-message:before {
    -webkit-mask-image: url(../images/icon/icon_message.svg);
    mask-image: url(../images/icon/icon_message.svg);
}
.icon-date:before {
    -webkit-mask-image: url(../images/icon/icon_date.svg);
    mask-image: url(../images/icon/icon_date.svg);
}
.icon-addcart:before {
    -webkit-mask-image: url(../images/icon/icon_addcart.svg);
    mask-image: url(../images/icon/icon_addcart.svg);
}
.icon-scan:before {
    -webkit-mask-image: url(../images/icon/icon_scan.svg);
    mask-image: url(../images/icon/icon_scan.svg);
}
.icon-bulb:before {
    -webkit-mask-image: url(../images/icon/icon_bulb.svg);
    mask-image: url(../images/icon/icon_bulb.svg);
}





/*----------------------------------------------------------------------
	#animattion
-------------------------------- */
@keyframes goto {
	0% {
		transform:translateX(0px);
	}
	5% {
		transform:translateX(3px);
	}
	10% {
		transform:translateX(0px);
	}
	15% {
		transform:translateX(-3px);
	}
	20% {
		transform:translateX(0px);
	}
	25% {
		transform:translateX(3px);
	}
	30% {
		transform:translateX(0px);
	}
	100% {
		transform:translateX(0px);
	}
}


@keyframes BigShow {
	0% {
		transform:scale(1);		
	}
	50% {
		transform:scale(1.6);		
	}
	100% {
		transform:scale(1);		
	}
}


@keyframes SmallShow {
	0% {
		transform:scale(1);		
	}
	50% {
		transform:scale(0.5);		
	}
	100% {
		transform:scale(1);		
	}
}


/* 左右搖擺 */
@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
            transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
            transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
            transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
            transform: rotate3d(0, 0, 1, -5deg);
  }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
            transform: rotate3d(0, 0, 1, 0deg);
  }
}

