/* =========================================================
   SISHOOD — WooCommerce
   ========================================================= */

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	list-style: none; margin: 0 0 24px; padding: 16px 20px; border-radius: var(--radius); border: 1px solid var(--line-2);
	background: var(--ink-2); color: var(--text); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; font-size: 15px;
}
.woocommerce-message { border-color: rgba(108, 198, 208, .5); }
.woocommerce-error { border-color: rgba(255, 122, 89, .55); background: rgba(255, 122, 89, .08); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.sheet .woocommerce-message, .sheet .woocommerce-info, .sheet .woocommerce-error { background: #fff; color: var(--paper-ink); border-color: var(--paper-2); }
.sheet .woocommerce-error { background: #fff3ef; border-color: #f4b3a2; }
.woocommerce-error a, .sheet a { color: var(--aqua-d); }

/* Buttons */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	padding: .85em 1.6em; border-radius: 999px; border: 0; background: var(--aqua); color: var(--aqua-ink);
	font-weight: 700; font-size: 15px; letter-spacing: .06em; line-height: 1.2; cursor: pointer; transition: .2s; text-decoration: none;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: var(--aqua-2); color: var(--aqua-ink); }
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce #place_order { background: var(--paper-ink); color: var(--paper); }
.woocommerce .sheet .button.alt:hover, .woocommerce #place_order:hover { background: var(--aqua-d); color: #fff; }
.woocommerce .button:disabled, .woocommerce .button.disabled, .button.is-disabled { opacity: .5; cursor: not-allowed; }
.button.is-disabled { display: inline-flex; padding: .7em 1.3em; border-radius: 999px; background: var(--ink-4); color: var(--muted); font-size: 14px; }

/* Shop toolbar */
.woocommerce-result-count { color: var(--muted); font-size: 14px; margin: 0 0 24px; float: left; }
.woocommerce-ordering { float: right; margin: 0 0 24px; }
.woocommerce-ordering select { width: auto; padding: 8px 36px 8px 14px; border-radius: 999px; }
.woocommerce-products-header { display: none; }

/* Product grid */
.woocommerce ul.products { list-style: none; margin: 0; padding: 0; clear: both; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: auto !important; float: none !important; margin: 0 !important; position: relative;
	background: var(--ink-2); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column;
	transition: transform .25s var(--ease), border-color .25s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); border-color: rgba(108, 198, 208, .4); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { color: var(--text); display: block; position: relative; }
.woocommerce ul.products li.product img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--ink-3); margin: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 18px; padding: 18px 20px 4px; margin: 0; }
.woocommerce ul.products li.product .price { display: block; padding: 0 20px; color: var(--aqua); font-weight: 700; }
.woocommerce ul.products li.product .price del { color: var(--muted); font-weight: 400; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .is-disabled { margin: 16px 20px 20px; align-self: flex-start; }
.woocommerce ul.products li.product .added_to_cart { margin: 0 20px 18px; font-size: 14px; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 520px) {
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; padding: 12px 14px 2px; }
	.woocommerce ul.products li.product .price { padding: 0 14px; font-size: 14px; }
	.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .is-disabled { margin: 12px 14px 14px; padding: .6em 1em; font-size: 13px; }
}

.badge { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 4px 12px; border-radius: 999px; font-family: var(--display); font-size: 15px; letter-spacing: .14em; }
.badge--soon { background: var(--paper); color: var(--paper-ink); }
.badge--out { background: var(--ink-4); color: var(--muted); font-family: var(--font); font-size: 12px; letter-spacing: .05em; }
.badge--sale { background: var(--coral); color: #fff; }
.price-soon { font-family: var(--display); letter-spacing: .12em; color: var(--muted); }

/* Breadcrumb */
.crumbs { margin-bottom: 28px; font-size: 14px; color: var(--muted); }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--aqua); }
.section--product { padding-top: clamp(32px, 5vw, 56px); }

/* Single product */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: start; position: relative; }
.woocommerce div.product .woocommerce-product-gallery { width: auto !important; float: none !important; margin: 0; position: relative; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--radius-lg); background: var(--ink-3); }
.woocommerce div.product .woocommerce-product-gallery__trigger { position: absolute; top: 14px; right: 14px; z-index: 5; width: 40px; height: 40px; border-radius: 50%; background: rgba(0, 0, 0, .5); color: #fff; display: grid; place-items: center; font-size: 0; }
.woocommerce div.product .woocommerce-product-gallery__trigger::before { content: "⤢"; font-size: 18px; }
.woocommerce div.product .flex-control-thumbs { list-style: none; padding: 0; margin: 12px 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.woocommerce div.product .flex-control-thumbs img { border-radius: 10px; cursor: pointer; opacity: .6; }
.woocommerce div.product .flex-control-thumbs img.flex-active { opacity: 1; }
.woocommerce div.product .summary { width: auto !important; float: none !important; margin: 0; position: sticky; top: calc(var(--header-h) + 24px); }
.woocommerce div.product .product_title { font-size: clamp(30px, 4vw, 48px); margin-bottom: 12px; }
.woocommerce div.product p.price { font-size: 22px; color: var(--aqua); font-weight: 700; margin-bottom: 20px; }
.woocommerce div.product p.price del { color: var(--muted); font-weight: 400; font-size: .8em; margin-right: 8px; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { color: rgba(238, 236, 231, .85); margin-bottom: 24px; }
.woocommerce div.product form.cart { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 24px; }
.woocommerce div.product form.cart .single_add_to_cart_button { padding: 1em 2.2em; font-size: 16px; }
.woocommerce .quantity .qty { width: 84px; text-align: center; border-radius: 999px; }
.woocommerce div.product .stock { font-size: 14px; color: var(--aqua-2); }
.woocommerce div.product .stock.out-of-stock, .woocommerce div.product .stock.soon { color: var(--muted); font-family: var(--display); letter-spacing: .1em; font-size: 18px; }
.product_meta { font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 16px; }
.product_meta > span { display: block; }
.product_meta a { color: var(--muted); }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce-tabs ul.tabs { list-style: none; padding: 0; margin: 24px 0 0; display: flex; gap: 8px; border-bottom: 1px solid var(--line); }
.woocommerce-tabs ul.tabs li a { display: block; padding: 12px 18px; color: var(--muted); font-weight: 700; }
.woocommerce-tabs ul.tabs li.active a { color: var(--aqua); box-shadow: inset 0 -2px var(--aqua); }
.woocommerce-tabs .panel { padding: 28px 0; }
.woocommerce-tabs .panel > h2:first-child { display: none; }
.related > h2, .upsells > h2 { font-size: 28px; margin: 48px 0 24px; }
@media (max-width: 860px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product .summary { position: static; }
}

/* Session info on product page */
.shc-single-info { margin: 0 0 24px; padding: 6px 22px 10px; border-radius: var(--radius); background: var(--ink-2); border: 1px solid var(--line); }
.shc-single-info dl { margin: 0; }
.shc-single-info dl > div:last-child { border-bottom: 0; }
.shc-single-info dd small { color: var(--muted); }
.shc-login-hint { margin: 10px 0 8px; padding: 12px 14px; border-radius: 10px; background: rgba(108, 198, 208, .1); color: var(--aqua-2); font-size: 15px; }
.shc-login-hint.is-month, .shc-login-hint.is-full, .shc-login-hint.is-closed { background: rgba(255, 122, 89, .1); color: #ffb39f; }
.shc-login-hint.is-booked { background: rgba(80, 200, 130, .12); color: #9fe3b9; }

/* ---------- Light sheet: cart / checkout / account ---------- */
.sheet { --text: var(--paper-ink); --muted: #677073; --line: rgba(0, 0, 0, .1); --line-2: rgba(0, 0, 0, .16); }
.sheet h2, .sheet h3 { color: var(--paper-ink); }
.sheet input[type="text"], .sheet input[type="email"], .sheet input[type="tel"], .sheet input[type="password"], .sheet input[type="number"], .sheet select, .sheet textarea,
.sheet .select2-container .select2-selection {
	background: #fff; color: var(--paper-ink); border: 1.5px solid #d9d5cc;
}
.sheet .select2-container .select2-selection--single { height: 48px; border-radius: 10px; }
.sheet .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 14px; }
.sheet .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.sheet label { font-weight: 500; font-size: 14px; margin-bottom: 6px; display: block; }
.sheet .required { color: var(--coral); text-decoration: none; }
.sheet .form-row { margin: 0 0 16px; }
.sheet .form-row-first, .sheet .form-row-last { width: 49%; float: left; }
.sheet .form-row-last { float: right; }
.sheet .form-row-wide { clear: both; }
.sheet .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.sheet input[type="checkbox"], .sheet input[type="radio"] { width: 18px; height: 18px; accent-color: var(--aqua-d); }
@media (max-width: 600px) { .sheet .form-row-first, .sheet .form-row-last { width: 100%; float: none; } }

.sheet table.shop_table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; font-size: 15px; }
.sheet table.shop_table th, .sheet table.shop_table td { padding: 14px 16px; border-bottom: 1px solid var(--paper-2); text-align: left; vertical-align: middle; }
.sheet table.shop_table thead th { font-size: 13px; letter-spacing: .08em; color: #677073; background: #faf9f6; }
.sheet table.shop_table img { width: 64px; border-radius: 10px; }
.sheet .product-remove a { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--paper-2); color: var(--paper-ink); font-size: 18px; }
.sheet .product-remove a:hover { background: var(--coral); color: #fff; }
.shc-cart-meta { color: #677073; }
.sheet .actions .coupon { display: inline-flex; gap: 8px; align-items: center; }
.sheet .actions .coupon input { width: 180px; }
.sheet .actions { text-align: right; }
.sheet .actions .coupon { float: left; }
.sheet .cart-collaterals { margin-top: 32px; display: flex; justify-content: flex-end; }
.sheet .cart_totals { width: 100%; max-width: 440px; }
.sheet .wc-proceed-to-checkout .checkout-button { width: 100%; margin-top: 16px; padding: 1.1em; font-size: 17px; background: var(--paper-ink); color: var(--paper); }
@media (max-width: 760px) {
	.sheet table.shop_table_responsive thead { display: none; }
	.sheet table.shop_table_responsive tr td { display: flex; justify-content: space-between; gap: 12px; text-align: right; }
	.sheet table.shop_table_responsive tr td::before { content: attr(data-title); font-weight: 700; color: #677073; text-align: left; }
	.sheet table.shop_table_responsive tr td.product-remove::before, .sheet table.shop_table_responsive tr td.product-thumbnail::before, .sheet table.shop_table_responsive tr td.actions::before { display: none; }
	.sheet .actions .coupon { float: none; display: flex; margin-bottom: 10px; }
}

/* Checkout */
.sheet .woocommerce-checkout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 0 40px; }
.sheet .woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.sheet .woocommerce-checkout { grid-template-rows: auto 1fr; align-items: start; }
.sheet .woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.sheet .woocommerce-checkout #order_review_heading, .sheet .woocommerce-checkout #order_review { grid-column: 2; }
.sheet .woocommerce-checkout #order_review_heading { grid-row: 1; margin-top: 0; }
.sheet .woocommerce-checkout #order_review { grid-row: 2; }
body:not(.sishood-woomp) .sheet .woocommerce-checkout #order_review { position: sticky; top: calc(var(--header-h) + 20px); }
/* 好用版擴充（woomp）有自己的結帳排版：改成單欄、照它的順序，不套用上面的雙欄與 sticky */
.sishood-woomp .sheet form.woocommerce-checkout { display: flex !important; flex-direction: column; gap: 0; }
.sishood-woomp .sheet form.woocommerce-checkout > * { width: 100% !important; max-width: none; position: static !important; grid-row: auto; grid-column: auto; }
.sheet .col2-set .col-1, .sheet .col2-set .col-2 { width: 100%; float: none; }
.sheet #payment { background: #fff; border-radius: var(--radius); padding: 18px; margin-top: 18px; }
.sheet #payment ul.payment_methods { list-style: none; margin: 0 0 16px; padding: 0; }
.sheet #payment .payment_box { background: var(--paper); border-radius: 10px; padding: 12px 14px; font-size: 14px; margin: 8px 0; }
.sheet #place_order { width: 100%; padding: 1.1em; font-size: 17px; }
.sheet .woocommerce-privacy-policy-text { font-size: 13px; color: #677073; }
.sheet .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 16px; }
@media (max-width: 900px) {
	.sheet .woocommerce-checkout { grid-template-columns: 1fr; }
	.sheet .woocommerce-checkout #customer_details, .sheet .woocommerce-checkout #order_review_heading, .sheet .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}

/* My account */
.sheet.woocommerce-account .woocommerce, .woocommerce-account .sheet .woocommerce { display: grid; grid-template-columns: 220px 1fr; gap: 40px; align-items: start; }
.woocommerce-account .sheet .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; background: #fff; border-radius: var(--radius); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 11px 14px; border-radius: 10px; color: var(--paper-ink); font-weight: 500; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--paper-ink); color: var(--paper); }
.woocommerce-MyAccount-navigation li a:hover { background: var(--paper-2); }
.woocommerce-MyAccount-navigation li.is-active a:hover { background: var(--paper-ink); }
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content .shc-quota { background: #fff; border-color: var(--paper-2); color: var(--paper-ink); }
.woocommerce-MyAccount-content .shc-quota span[class^="shc-quota__m"] { background: var(--paper); }
.woocommerce-MyAccount-content .shc-quota .is-full { background: #fde6df !important; color: #b14a2d; }
.woocommerce-MyAccount-content .shc-quota__label { color: var(--aqua-d); }
.shc-acc-title { font-size: 20px; margin: 28px 0 12px; }
.shc-cancel-btn { padding: .5em 1em !important; font-size: 13px !important; background: transparent !important; color: #b14a2d !important; box-shadow: inset 0 0 0 1.5px #f0b4a3; }
.shc-cancel-btn:hover { background: #fde6df !important; }
.shc-acc-note { font-size: 14px; color: #677073; margin-top: 16px; }
.sheet .shc-empty { border-color: #d9d5cc; color: #677073; }
@media (max-width: 860px) {
	.woocommerce-account .sheet .woocommerce { grid-template-columns: 1fr; gap: 20px; }
	.woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; gap: 4px; }
	.woocommerce-MyAccount-navigation li a { white-space: nowrap; }
}

/* Login / register */
.account-intro { margin-bottom: 28px; }
.account-intro h2 { font-size: 28px; margin-bottom: 6px; }
.account-intro p { color: #677073; margin: 0; }
.sheet .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.sheet .u-columns .u-column1, .sheet .u-columns .u-column2 { width: auto; float: none; background: #fff; padding: 28px; border-radius: var(--radius); }
.sheet .woocommerce-form-login .button, .sheet .woocommerce-form-register .button { width: 100%; margin-top: 8px; }
.sheet .lost_password { font-size: 14px; margin-top: 12px; }
.sheet form.woocommerce-form-login:not(.u-column1 form) { background: #fff; padding: 28px; border-radius: var(--radius); max-width: 480px; }
@media (max-width: 760px) { .sheet .u-columns.col2-set { grid-template-columns: 1fr; } }

/* Order received */
.sheet .woocommerce-order-overview { list-style: none; padding: 18px; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; background: #fff; border-radius: var(--radius); }
.sheet .woocommerce-order-overview li { font-size: 13px; color: #677073; }
.sheet .woocommerce-order-overview strong { display: block; font-size: 16px; color: var(--paper-ink); }
.sheet .woocommerce-thankyou-order-received { font-size: 22px; font-weight: 900; color: var(--aqua-d); }

/* Empty cart */
.sheet .cart-empty { font-size: 18px; }
.sheet .return-to-shop .button { background: var(--paper-ink); color: var(--paper); }

.clear, .woocommerce .clear { clear: both; }
.woocommerce div.product form.cart .single_add_to_cart_button { background: var(--aqua); color: var(--aqua-ink); }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--aqua-2); }

/* 我的帳號：取消 WooCommerce 預設的 30% / 68% 浮動寬度（放在格線裡會被擠成直排） */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: auto !important; min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
.woocommerce-account .sheet .woocommerce { grid-template-columns: minmax(180px, 220px) minmax(0, 1fr); }
@media (max-width: 860px) { .woocommerce-account .sheet .woocommerce { grid-template-columns: minmax(0, 1fr); } }

/* 真實姓名提醒 */
.shc-realname-note { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 20px; padding: 12px 16px; border-radius: 10px; background: #fff4e5; border: 1px solid #f3cf9a; color: #8a4b08; font-size: 15px; font-weight: 500; line-height: 1.6; clear: both; }
.shc-realname-note::before { content: "!"; flex: none; display: grid; place-items: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: #e8902a; color: #fff; font-weight: 900; font-size: 14px; }
/* 欄位標籤與輸入框間距 */
.sheet .form-row label { margin-bottom: 6px; line-height: 1.4; }
.sheet .form-row .woocommerce-input-wrapper { display: block; }

/* 好用版擴充（woomp）把付款方式放進表格：不加白框；免費訂單沒有付款方式時整列隱藏 */
.sheet td #payment, .sheet th #payment { background: none; padding: 0; margin: 0; border-radius: 0; }
.sheet tr:has(#payment):not(:has(.wc_payment_method)) { display: none; }
/* woomp 的付款表格有負邊距，整列隱藏後會把上方「總計」擠出來重疊 → 免費訂單時整個表格隱藏 */
.sheet #order_review table:has(#payment):not(:has(.wc_payment_method)) { display: none !important; }
/* woomp 一頁式結帳的購物車表格原本是深色底（配舊主題），改回淺色 */
body.woocommerce-checkout .sheet .woocommerce-cart-form .shop_table tbody,
body.woocommerce-checkout .sheet .woocommerce-cart-form .shop_table { background-color: #fff !important; }
.sheet #payment:not(:has(.wc_payment_method)) { background: none; padding: 0; margin: 0; }
.sheet fieldset { border: 1px solid #e2ded5; border-radius: var(--radius); padding: 18px 20px 6px; margin: 24px 0; background: #fff; }
.sheet fieldset legend { padding: 0 8px; font-weight: 700; }
.sishood-woomp .sheet form.woocommerce-checkout #order_review { margin-bottom: 28px !important; }

/* Sishood LINE Auth：會員不能自行解除 LINE 綁定 */
.sla-btn-unbind { display: none !important; }
