/*
Theme Name: Elaine's Healing Theme v1
Theme URI: https://elaineshealing.com/theme-v1
Author: Elaine's Healing
Description: Elaine's Healing Theme v1 — a warm, milk-tea toned WordPress + WooCommerce theme for healing services, courses, booking, journal content, and multi-gateway checkout.
Version: 1.0.95
Text Domain: elaines-healing-theme-v1
Requires at least: 6.2
Requires PHP: 8.0
*/

:root { --cream:#fffbf6; --sand:#f3e5d8; --blush:#ead8ca; --clay:#a8785e; --brown:#6f4e3b; --ink:#513a2c; --muted:#766153; --line:#e8d9cc; --serif: Georgia, "Noto Serif TC", "Songti TC", serif; --sans: "Noto Sans TC", system-ui, sans-serif; --brand-script: "Lucida Handwriting", "Apple Chancery", "Segoe Print", "Bradley Hand", "Brush Script MT", cursive; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:var(--sans); line-height:1.7; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
.eh-container { width:min(1160px, calc(100% - 40px)); margin:auto; }
.eh-site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid rgba(232,217,204,.85); background:rgba(255,251,246,.92); backdrop-filter:blur(13px); }
.eh-header-row { min-height:78px; display:flex; gap:18px; align-items:center; justify-content:space-between; }
.eh-brand { font-family:var(--brand-script); font-size:1.72rem; font-weight:400; letter-spacing:.01em; line-height:1.15; white-space:nowrap; }
.eh-brand em { color:var(--clay); font-style:normal; }
.eh-main-menu { flex:1; min-width:0; }
.eh-main-menu > ul { display:flex; justify-content:center; gap:15px; padding:0; margin:0; list-style:none; font-size:.82rem; color:var(--muted); }
.eh-main-menu li { position:relative; }
.eh-main-menu a { display:block; white-space:nowrap; }
.eh-main-menu a:hover { color:var(--ink); }
.eh-main-menu .menu-item-has-children > a::after { content:'⌄'; display:inline-block; margin-left:5px; color:var(--clay); font-size:.78em; transform:translateY(-1px); }
.eh-main-menu .sub-menu { position:absolute; top:calc(100% + 12px); left:50%; z-index:60; display:grid; width:max-content; min-width:184px; gap:3px; margin:0; padding:11px; list-style:none; border:1px solid var(--line); border-radius:15px; background:var(--cream); box-shadow:0 16px 34px rgba(83,57,42,.14); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-5px); transition:opacity .18s ease, transform .18s ease, visibility .18s ease; }
.eh-main-menu .sub-menu a { padding:8px 10px; border-radius:9px; }
.eh-main-menu .sub-menu a:hover { background:#f5eadf; }
.eh-main-menu .menu-item-has-children:hover > .sub-menu,.eh-main-menu .menu-item-has-children:focus-within > .sub-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.eh-header-actions { display:flex; gap:10px; align-items:center; }
.eh-mobile-menu { display:none; }
.eh-cart-trigger { position:relative; display:inline-grid; width:40px; height:40px; place-items:center; border:1px solid #dcc7b5; border-radius:999px; background:transparent; cursor:pointer; color:var(--brown); }
.eh-cart-trigger svg { display:block; width:19px; height:19px; }
.eh-cart-count { position:absolute; top:-5px; right:-4px; min-width:18px; height:18px; display:grid; place-items:center; border-radius:99px; padding:0 4px; color:white; background:var(--clay); font-size:10px; }
.eh-button { display:inline-flex; min-height:44px; max-width:100%; align-items:center; justify-content:center; border:0; border-radius:999px; padding:12px 21px; background:var(--clay); color:#fff; font:600 .92rem var(--sans); text-align:center; white-space:normal; cursor:pointer; transition:transform .18s ease, background .18s ease, box-shadow .18s ease; }
.eh-button:hover { transform:translateY(-1px); background:#875b47; }
.eh-button:active { transform:scale(.98); }
.eh-button:focus-visible,.eh-cart-trigger:focus-visible,.eh-main-menu a:focus-visible,.eh-mobile-menu summary:focus-visible,.eh-read-link:focus-visible,.eh-duration:focus-visible,.woocommerce a.button:focus-visible,.woocommerce button.button:focus-visible { outline:3px solid rgba(168,120,94,.42); outline-offset:3px; }
.eh-button--outline { background:transparent; color:var(--brown); border:1px solid #cfad96; }
.eh-button--small { padding:8px 14px; font-size:.82rem; }
.eh-section { padding:88px 0; }
.eh-eyebrow { color:var(--clay); letter-spacing:.19em; font-size:.72rem; font-weight:700; }
.eh-brand-label { font-family:var(--brand-script); font-size:.98rem; font-weight:400; letter-spacing:.01em; text-transform:none; }
.eh-display { margin:13px 0 0; font:400 clamp(1.76rem, 3.6vw, 3.64rem)/1.22 var(--serif); letter-spacing:-.05em; }
.eh-lead { color:var(--muted); font-size:1.05rem; line-height:2; }
.eh-hero { position:relative; overflow:hidden; min-height:650px; display:grid; align-items:center; background:linear-gradient(116deg, rgba(255,251,246,.98) 0 48%, rgba(244,226,210,.4) 100%); }
.eh-hero:before { content:""; position:absolute; inset:0; opacity:.35; background-image:linear-gradient(rgba(168,120,94,.13) 1px, transparent 1px),linear-gradient(90deg, rgba(168,120,94,.13) 1px, transparent 1px); background-size:28px 28px; }
.eh-hero__grid { position:relative; display:grid; grid-template-columns:.9fr 1fr; gap:64px; align-items:center; }
.eh-hero__copy { padding:56px 0; }
.eh-hero__welcome { display:inline-flex; align-items:center; gap:9px; min-height:39px; padding:8px 17px; border:1px solid #d5bdab; border-radius:999px; background:rgba(255,251,246,.72); box-shadow:0 5px 16px rgba(83,57,42,.04); color:var(--brown); font-size:.72rem; font-weight:700; letter-spacing:.18em; line-height:1; }
.eh-hero__welcome-mark { color:var(--clay); font-size:1.18em; line-height:1; }
.eh-hero__title { margin-top:27px; }
.eh-hero__title-primary,.eh-hero__title-secondary { display:block; }
.eh-hero__title-primary { color:var(--ink); }
.eh-hero__title-secondary { color:#ae8064; }
.eh-hero__copy .eh-lead { max-width:560px; margin:25px 0 30px; }
.eh-hero__actions { display:flex; gap:12px; flex-wrap:wrap; }
.eh-hero__image { min-height:480px; overflow:hidden; border-radius:44px; background:linear-gradient(135deg, #d6bba4, #f5e8dc 50%, #b17a59); box-shadow:0 30px 70px rgba(77,53,39,.18); background-size:cover; background-position:center; }
.eh-hero__note { position:absolute; right:-8px; bottom:38px; padding:15px 20px; border-radius:16px; background:var(--cream); box-shadow:0 10px 24px rgba(77,53,39,.16); font:1rem var(--serif); }
.eh-intention { background:var(--sand); }
/* 縮小首頁理念區塊標題約 25% */
.eh-intention .eh-display { font-size: clamp(1.32rem, 2.7vw, 2.73rem) !important; line-height: 1.3; }
.eh-intention-grid { display:grid; gap:56px; grid-template-columns:.85fr 1.15fr; align-items:center; }
.eh-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.eh-value-card, .eh-service-card, .eh-journal-card { border-radius:26px; background:var(--cream); box-shadow:0 14px 36px rgba(83,57,42,.07); }
.eh-value-card { padding:25px; }
.eh-value-icon { display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; color:var(--clay); }
.eh-value-icon svg { display:block; width:26px; height:26px; }
.eh-value-card h3 { font:1.25rem var(--serif); margin:20px 0 8px; }
.eh-value-card p { margin:0; color:var(--muted); font-size:.86rem; }
.eh-section-header { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; }
.eh-section-header .eh-lead { max-width:380px; font-size:.9rem; margin:0; }
.eh-service-grid { display:block; margin-top:46px; } /* 首頁商品列表已改用 WooCommerce 預設的 ul.products 結構，故移除此處的網格設定 */
.eh-service-card { overflow:hidden; display:flex; flex-direction:column; }
.eh-service-visual { min-height:177px; background:linear-gradient(150deg,#dec7b7,#f7eee6 52%,#ba896b); background-size:cover; background-position:center; }
.eh-service-content { display:flex; flex:1; flex-direction:column; padding:22px; }
.eh-service-card h3 { font:1.2rem var(--serif); margin:6px 0 9px; }
.eh-service-card p { margin:0; color:var(--muted); font-size:.86rem; line-height:1.75; }
.eh-duration-row { display:flex; gap:7px; margin:20px 0; }
.eh-duration { min-height:38px; border:1px solid #dbc5b4; border-radius:99px; padding:7px 11px; color:var(--muted); background:transparent; font:inherit; font-size:.8rem; cursor:pointer; }
.eh-duration.is-selected { border-color:var(--clay); color:#fff; background:var(--clay); }
.eh-service-bottom { display:flex; justify-content:space-between; align-items:end; gap:12px; margin-top:auto; }
.eh-price { font:1.55rem var(--serif); }
.eh-ritual { margin-top:16px!important; padding:12px; background:#fff9f4; border-radius:13px; font-size:.8rem!important; }
.eh-booking { background:var(--brown); color:#fff9f3; }
.eh-booking-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:70px; align-items:center; }
.eh-booking .eh-eyebrow { color:#e6c5aa; }
.eh-booking .eh-lead { color:#efe0d3; }
.eh-booking-panel { border-radius:32px; padding:32px; background:#fffaf5; color:var(--ink); overflow: visible; }
.eh-booking-panel .calendly-inline-widget iframe { min-height: 750px !important; } /* 確保 Calendly iframe 有足夠高度避免內層捲軸 */
.eh-booking-panel h3 { margin:0; font:1.75rem var(--serif); }
.eh-booking-plugin-notice { margin-top:20px; padding:20px; border:1px dashed #d2b6a0; border-radius:15px; color:var(--muted); font-size:.9rem; }
.eh-journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
.eh-journal-card { padding:29px; transition:transform .2s ease, box-shadow .2s ease; }
.eh-journal-card:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(83,57,42,.12); }
.eh-journal-card h3 { margin:16px 0 10px; font:1.6rem/1.4 var(--serif); }
.eh-journal-card p { color:var(--muted); font-size:.9rem; }
.eh-read-link { display:inline-block; margin-top:20px; color:var(--clay); font-size:.9rem; }
.eh-read-link:hover { color:var(--brown); text-decoration:underline; text-underline-offset:4px; }
.eh-page-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.eh-page-actions--center { justify-content:center; }
.eh-empty-state { padding:30px; border:1px dashed var(--line); border-radius:20px; text-align:center; }
.eh-site-footer { margin-top:0; background:#f0e3d8; border-top:1px solid var(--line); color:var(--muted); }
.eh-footer-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:42px 0; font-size:.86rem; }
.eh-footer-brand { color:var(--ink); font:400 1.58rem/1.2 var(--brand-script); letter-spacing:.01em; }
.eh-site-footer nav > ul { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 16px; margin:0; padding:0; list-style:none; }
.eh-site-footer li { position:relative; }
.eh-site-footer .sub-menu { display:none; }
.eh-offer-hero { padding:78px 0 60px; background:linear-gradient(135deg,#f3e5d8,#fffbf6); }
.eh-offer-intro { max-width:760px; }
.eh-offer-intro .eh-lead { max-width:680px; }
.eh-offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.eh-offer-card { display:flex; min-width:0; flex-direction:column; padding:28px; border:1px solid rgba(232,217,204,.82); border-radius:24px; background:#fffaf5; box-shadow:0 14px 36px rgba(83,57,42,.07); }
.eh-offer-card h2 { margin:8px 0 10px; font:1.65rem/1.3 var(--serif); }
.eh-offer-card p { margin:0; color:var(--muted); font-size:.92rem; line-height:1.8; }
.eh-offer-prices { display:grid; gap:8px; margin:22px 0 24px; padding:0; list-style:none; }
.eh-offer-prices li { padding:8px 11px; border-radius:10px; background:#f5eadf; color:var(--brown); font:1rem var(--serif); }
.eh-offer-card .eh-button { align-self:flex-start; margin-top:auto; }
.eh-page-hero { padding:78px 0 48px; background:var(--sand); }
.eh-page-content { padding:60px 0 92px; }
.eh-article { width:min(780px,100%); margin:auto; }
.eh-article h1 { font:clamp(1.8rem,4vw,3.4rem)/1.25 var(--serif); margin:15px 0 22px; }
.eh-article .entry-content { color:#5e4a3d; font-size:1.05rem; }
.eh-archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.eh-cart-backdrop { position:fixed; inset:0; z-index:100; display:none; background:rgba(62,43,34,.33); backdrop-filter:blur(3px); }
.eh-cart-backdrop.is-open { display:block; }
.eh-cart-drawer { position:absolute; top:0; right:0; display:flex; flex-direction:column; width:min(440px,100%); height:100%; padding:24px; background:var(--cream); color:var(--ink); box-shadow:-15px 0 45px rgba(56,37,27,.2); }
.eh-cart-header, .eh-cart-total { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.eh-cart-header { padding-bottom:18px; border-bottom:1px solid var(--line); }
.eh-cart-header h2 { margin:0; font:1.55rem var(--serif); }
.eh-cart-close { border:0; background:none; color:var(--ink); cursor:pointer; font-size:1.45rem; }
.eh-cart-lines { flex:1; overflow:auto; padding:16px 0; }
.eh-cart-line { padding:13px 0; border-bottom:1px solid #eee2d6; }
.eh-cart-line-title { font-weight:600; }
.eh-cart-line-meta, .eh-cart-empty, .eh-cart-message { color:var(--muted); font-size:.86rem; }
.eh-cart-total { padding:18px 0; border-top:1px solid var(--line); font-size:1.1rem; }
.eh-cart-checkout { width:100%; }
.eh-screen-reader-text { position:absolute!important; overflow:hidden; clip:rect(1px,1px,1px,1px); width:1px; height:1px; }
.eh-wc-service-form { display:flex; flex:1; flex-direction:column; }
.eh-wc-service-form .eh-service-bottom { margin-top:auto; }
.eh-service-detail-link { display:inline-block; margin-top:18px; }
.eh-service-inquiry-card .eh-service-visual { background:linear-gradient(145deg,#ead8ca,#f7ede4 55%,#d9c1ad); }
.eh-course-callout { background:#f2e5d8; }
.eh-course-grid { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.eh-course-hero { position:relative; overflow:hidden; padding:94px 0; background:linear-gradient(118deg,rgba(255,251,246,.98) 0 52%,rgba(243,229,216,.7) 100%); }
.eh-course-hero::before { position:absolute; inset:0; content:""; opacity:.28; background-image:linear-gradient(rgba(168,120,94,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(168,120,94,.12) 1px,transparent 1px); background-size:28px 28px; }
.eh-course-hero-grid { position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.eh-course-copy .eh-lead { max-width:580px; margin:25px 0 0; }
.eh-course-title-accent { color:var(--clay); }
.eh-course-offering { padding:40px; border-radius:32px; background:#f3e6da; box-shadow:0 18px 50px rgba(83,57,42,.1); }
.eh-course-offering h2 { margin:13px 0 15px; font:2rem/1.25 var(--serif); }
.eh-course-offering p { margin:0; color:var(--muted); line-height:1.8; }
.eh-course-offering-footer { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-top:30px; }
.eh-course-offering-footer span { display:block; color:var(--muted); font-size:.8rem; }
.eh-course-offering-footer strong { display:block; margin-top:3px; font:1.95rem var(--serif); }
.eh-course-benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.eh-course-benefit-card { padding:29px; border-radius:25px; background:#f6ede4; }
.eh-course-feature-icon { display:grid; width:27px; height:27px; place-items:center; color:var(--clay); }
.eh-course-feature-icon svg { width:26px; height:26px; }
.eh-course-feature-icon--brand { border:1px solid var(--clay); border-radius:999px; font:400 .94rem var(--brand-script); }
.eh-course-benefit-card h2 { margin:21px 0 9px; font:1.48rem var(--serif); }
.eh-course-benefit-card p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.8; }
.eh-story-page { max-width:820px; padding-top:90px; padding-bottom:90px; }
.eh-story-card { margin:42px 0; padding:28px; border-radius:22px; background:#f5eadf; }
.eh-faq-list { max-width:820px; margin:42px 0 88px; }
.eh-faq-list details { border-bottom:1px solid var(--line); padding:20px 4px; }
.eh-faq-list summary { cursor:pointer; color:var(--ink); font:1.2rem var(--serif); }
.eh-faq-list p { margin:13px 0 0; color:var(--muted); }
.eh-setup-note { margin:24px 0 0; color:var(--muted); font-size:.82rem; text-align:center; }
.eh-payment-badges { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.eh-payment-badges span { padding:7px 11px; border:1px solid rgba(255,249,243,.45); border-radius:999px; color:#f7e7d8; font-size:.8rem; }
.eh-woocommerce-content { margin-top:46px; }
.eh-woocommerce-content .woocommerce-result-count, .eh-woocommerce-content .woocommerce-ordering { color:var(--muted); }
.eh-woocommerce-content ul.products { display:grid; grid-template-columns:repeat(4,1fr); gap:19px; margin:0; }
.eh-woocommerce-content ul.products li.product { float:none; width:auto; margin:0; padding:22px; border-radius:24px; background:#fffaf5; box-shadow:0 14px 36px rgba(83,57,42,.07); }
.eh-woocommerce-content ul.products li.product a img { margin:0 0 18px; border-radius:16px; }
.eh-woocommerce-content ul.products li.product .woocommerce-loop-product__title { font:1.35rem var(--serif); color:var(--ink); }
.eh-woocommerce-content .price { color:var(--brown)!important; }
.eh-woocommerce-content .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { border:0; border-radius:999px; background:var(--clay); color:#fff; padding:11px 18px; font-weight:600; }
.woocommerce div.product .product_title { font:clamp(2rem,4vw,3.7rem)/1.25 var(--serif); }
.woocommerce div.product form.cart .variations select { padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.woocommerce-cart-form, .woocommerce-checkout, .woocommerce-order, .woocommerce-account { padding:28px; border-radius:22px; background:#fffaf5; }
.woocommerce table.shop_table { border-color:var(--line); border-radius:12px; }
.woocommerce-checkout-review-order, .woocommerce-checkout-payment { padding:20px; border-radius:16px; background:#f7ede4; }
.eh-checkout-guidance { display:grid; gap:3px; margin:0 0 20px; padding:16px 18px; border:1px solid #e3cdbb; border-radius:15px; background:#f8ede2; color:var(--brown); }
.eh-checkout-guidance strong { font:1.1rem var(--serif); }
.eh-checkout-guidance span { color:var(--muted); font-size:.88rem; }
 .woocommerce .col2-set { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2 { float:none; width:auto; min-width:0; }
 .woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select { width:100%; min-height:44px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:#fff; }
 .woocommerce .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button { min-height:44px; white-space:normal; }
@media (max-width:900px) { .eh-woocommerce-content ul.products { grid-template-columns:repeat(2,1fr); } }
@media (max-width:580px) { .eh-woocommerce-content ul.products { grid-template-columns:1fr; } }
@media (max-width:760px) { .eh-course-grid { align-items:flex-start; flex-direction:column; } }
@media (max-width:1100px) { .eh-main-menu { display:none; } .eh-mobile-menu { display:block; position:relative; } .eh-mobile-menu summary { display:grid; width:40px; height:40px; place-items:center; border:1px solid #dcc7b5; border-radius:999px; cursor:pointer; color:var(--brown); list-style:none; } .eh-mobile-menu summary::-webkit-details-marker { display:none; } .eh-mobile-menu nav { position:absolute; top:calc(100% + 12px); right:0; width:min(310px, calc(100vw - 28px)); padding:16px; border:1px solid var(--line); border-radius:18px; background:var(--cream); box-shadow:0 18px 42px rgba(83,57,42,.16); } .eh-mobile-menu nav > ul { display:grid; gap:4px; padding:0; margin:0; list-style:none; } .eh-mobile-menu a { display:block; padding:10px 12px; border-radius:10px; color:var(--muted); } .eh-mobile-menu a:hover { background:#f5eadf; color:var(--ink); } .eh-mobile-menu .menu-item-has-children > a { color:var(--ink); font-weight:700; } .eh-mobile-menu .menu-item-has-children > a::after { content:'服務項目'; float:right; color:var(--clay); font-size:.75rem; font-weight:600; } .eh-mobile-menu .sub-menu { display:grid; gap:2px; margin:0 0 5px 12px; padding:4px 0 4px 9px; border-left:1px solid #dcc7b5; list-style:none; } .eh-mobile-menu .sub-menu a { padding:8px 10px; font-size:.9rem; } }
@media (max-width:900px) { .eh-hero__grid,.eh-intention-grid,.eh-booking-grid { grid-template-columns:1fr; gap:34px; } .eh-hero { min-height:auto; } .eh-hero__image { min-height:350px; } .eh-service-grid { grid-template-columns:repeat(2,1fr); } .eh-value-grid { grid-template-columns:1fr; } .eh-journal-grid,.eh-archive-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:900px) { .eh-offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .eh-page-hero { padding:62px 0 38px; } .eh-page-content { padding:44px 0 68px; } .eh-story-page { padding-top:58px; padding-bottom:58px; } .eh-article .entry-content { font-size:1rem; } .woocommerce-cart-form,.woocommerce-checkout,.woocommerce-order,.woocommerce-account { padding:22px; } }
@media (max-width:760px) { body { overflow-wrap:anywhere; } .eh-container { width:min(100% - 32px, 1160px); } .eh-section { padding:64px 0; } .eh-display { letter-spacing:-.035em; } .eh-section-header { align-items:flex-start; flex-direction:column; gap:14px; } .eh-section-header .eh-lead { max-width:none; } .eh-story-card { margin:28px 0; padding:22px; border-radius:18px; } .eh-faq-list { margin:28px 0 56px; } .eh-archive-grid,.eh-journal-grid { grid-template-columns:1fr; } .eh-woocommerce-content { margin-top:30px; } .woocommerce table.shop_table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; position: relative; } .woocommerce table.shop_table::before { content: "左右滑動查看完整表格 →"; display: block; font-size: 0.8rem; color: var(--muted); text-align: right; margin-bottom: 8px; position: sticky; left: 0; } .woocommerce-cart-form,.woocommerce-checkout,.woocommerce-order,.woocommerce-account { padding:18px; border-radius:18px; } .eh-offer-hero { padding:58px 0 44px; } .eh-offer-card { padding:24px; } }
@media (max-width:760px) { .woocommerce .col2-set { grid-template-columns:1fr; } .woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2,.woocommerce div.product div.images,.woocommerce div.product div.summary { float:none; width:100%; } .woocommerce div.product div.summary { margin-top:28px; } .woocommerce .cart .quantity,.woocommerce div.product form.cart .button { margin-bottom:12px; } .woocommerce-cart-form .coupon { display:flex; flex-wrap:wrap; gap:8px; } .woocommerce-cart-form .coupon .input-text { min-height:44px; flex:1 1 180px; } .woocommerce-cart-form .actions { display:flex; flex-wrap:wrap; gap:10px; } .woocommerce-cart-form .actions > .button { margin-left:0!important; } .eh-article .entry-content iframe,.eh-article .entry-content video { width:100%; max-width:100%; } .eh-faq-list summary { padding-right:22px; } }
@media (max-width:580px) { .eh-container { width:min(100% - 28px, 1160px); } .eh-header-row { min-height:65px; gap:10px; } .eh-brand { font-size:1.28rem; } .eh-header-actions { gap:7px; } .eh-header-actions .eh-button { display:none; } .eh-section { padding:56px 0; } .eh-hero__copy { padding:48px 0 4px; } .eh-hero__welcome { max-width:100%; padding:8px 13px; font-size:.64rem; letter-spacing:.13em; } .eh-hero__image { min-height:260px; border-radius:28px; } .eh-hero__note { right:8px; bottom:17px; font-size:.8rem; } .eh-section-header { display:block; } .eh-section-header .eh-lead { margin-top:16px; } .eh-service-grid,.eh-journal-grid,.eh-archive-grid,.eh-offer-grid { grid-template-columns:1fr; } .eh-service-content,.eh-offer-card { padding:21px; } .eh-service-bottom { align-items:flex-start; flex-direction:column; } .eh-duration-row { flex-wrap:wrap; } .eh-booking-panel { padding:22px; border-radius:22px; } .eh-footer-row { align-items:start; flex-direction:column; padding:32px 0; } .eh-site-footer nav > ul { justify-content:flex-start; } .eh-page-hero { padding:48px 0 30px; } .eh-page-content { padding:34px 0 54px; } .eh-story-page { padding-top:42px; padding-bottom:42px; } .eh-offer-intro .eh-lead { font-size:1rem; } .eh-page-actions { align-items:stretch; flex-direction:column; } .eh-page-actions .eh-button { width:100%; } }
@media (max-width:580px) { .eh-button--small { min-height:42px; padding:10px 15px; } .eh-service-bottom .eh-button { width:100%; } .eh-offer-card .eh-button { width:100%; } .woocommerce .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button { width:100%; text-align:center; } .woocommerce-cart-form .actions > .button { width:100%; } .woocommerce-cart-form .coupon .button { flex:1 1 100%; } .eh-article h1 { font-size:clamp(2rem,10vw,2.8rem); } .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { padding: 0 10px; } .woocommerce-checkout-payment .place-order { padding: 20px 0 !important; } }
@media (max-width:900px) { .eh-course-hero { padding:70px 0; } .eh-course-hero-grid { grid-template-columns:1fr; gap:34px; } }
@media (max-width:760px) { .eh-course-benefit-grid { grid-template-columns:1fr; } .eh-course-hero { padding:56px 0; } .eh-course-offering { padding:30px; border-radius:26px; } }
@media (max-width:580px) { .eh-course-offering { padding:24px; } .eh-course-offering-footer { align-items:flex-start; flex-direction:column; } }

/* v1.0.25 — Unified Product Cards (Healing Offer & Related Products) */
.eh-healing-shop { background:linear-gradient(180deg, rgba(243,229,216,.48), rgba(255,251,246,0)); }
.eh-healing-shop__header { margin-bottom:0; }

/* 讓 WooCommerce 的 ul.products 繼承主題的 eh-service-grid 佈局 */
.woocommerce ul.products,
.eh-healing-shop__products ul.products,
.eh-service-grid ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }

/* 針對 Healing Offer 總覽頁，改為 3 欄 */
.eh-healing-shop__products ul.products {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 確保卡片本身佔滿網格 */
.woocommerce ul.products li.product {
  margin: 0 !important;
  float: none !important;
  width: 100% !important;
}

@media (max-width:900px) {
  .woocommerce ul.products,
  .eh-healing-shop__products ul.products,
  .eh-service-grid ul.products { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width:580px) {
  .woocommerce ul.products,
  .eh-healing-shop__products ul.products,
  .eh-service-grid ul.products { grid-template-columns:1fr; gap: 24px; }
  .eh-service-card { margin-bottom: 20px; }
  .eh-service-visual { min-height: 220px; } /* 手機版圖片稍微拉高，避免過扁 */
}


/* v1.0.13 — unified content width and offerings responsive layout */
:root { --eh-content-width: 1240px; --eh-gutter: 32px; }
.eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
.eh-section-header { max-width: 100%; }
.eh-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 24px; }
.eh-service-card { min-width: 0; height: 100%; }
.eh-service-visual { min-height: 205px; }
.eh-service-content { min-width: 0; }
.eh-service-card h3 { overflow-wrap: break-word; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.eh-service-bottom { flex-wrap: wrap; }
.eh-service-bottom .eh-price { min-width: 0; }

@media (max-width: 1024px) {
  :root { --eh-gutter: 24px; }
  .eh-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .eh-service-visual { min-height: 190px; }
}

@media (max-width: 760px) {
  :root { --eh-gutter: 16px; }
  .eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
  .eh-service-grid { grid-template-columns: 1fr; gap: 18px; }
  .eh-service-visual { min-height: clamp(180px, 48vw, 240px); }
  .eh-service-content { padding: 24px; }
  .eh-service-bottom { align-items: flex-start; }
}

@media (max-width: 580px) {
  :root { --eh-gutter: 14px; }
  .eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
  .eh-service-content { padding: 21px; }
}


/* v1.0.14 — match legacy Manus reference proportions */
:root { --eh-content-width: 1280px; --eh-gutter: 24px; }
.eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
.eh-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.eh-service-visual { min-height: 200px; }
.eh-service-content { padding: 22px; }
.eh-service-card h3 { font-size: 1.14rem; }

@media (max-width: 1024px) {
  :root { --eh-gutter: 20px; }
  .eh-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .eh-service-visual { min-height: 190px; }
}

@media (max-width: 760px) {
  :root { --eh-gutter: 16px; }
  .eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
  .eh-service-grid { grid-template-columns: 1fr; gap: 18px; }
  .eh-service-visual { min-height: clamp(180px, 48vw, 240px); }
}

@media (max-width: 580px) {
  :root { --eh-gutter: 14px; }
  .eh-container { width: min(var(--eh-content-width), calc(100% - (var(--eh-gutter) * 2))); }
  .eh-service-content { padding: 21px; }
}

/* v1.0.84 — homepage service image fixed 1240×768 aspect ratio */
.home .eh-service-visual { min-height: 0; aspect-ratio: 1240 / 768; }

/* v1.0.21 — homepage product cards link directly to WooCommerce product pages */
.eh-service-card__visual-link { display:block; }
.eh-service-card h3 a { color:inherit; }
.eh-service-card h3 a:hover { color:var(--clay); }
.eh-service-card__visual-link:focus-visible { display:block; outline:3px solid rgba(168,120,94,.42); outline-offset:4px; }

/* ==========================================================================
   懸浮客服按鈕樣式 (Floating Contact Button)
   ========================================================================== */
.eh-floating-btn {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: var(--clay);
  color: #ffffff;
  padding: 12px 20px;
  border-radius: 99px;
  box-shadow: 0 10px 25px rgba(168, 120, 94, 0.4);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.eh-floating-btn:hover {
  transform: translateY(-5px);
  background-color: var(--brown);
  color: #ffffff;
  box-shadow: 0 15px 35px rgba(111, 78, 59, 0.5);
}

.eh-floating-btn svg {
  display: block;
}

@media (max-width: 760px) {
  .eh-floating-btn {
    bottom: 20px;
    right: 20px;
    padding: 12px;
  }
  .eh-floating-btn span {
    display: none;
  }
}

/* ==========================================================================
   WooCommerce 相關商品與商品列表排版修正 (Related Products & Grid Fixes)
   ========================================================================== */
/* 修正 WooCommerce 預設 ul.products 的浮動錯位問題 */
.woocommerce .related ul.products,
.woocommerce-page .related ul.products,
.woocommerce .upsells ul.products,
.woocommerce-page .upsells ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
}

.woocommerce .related ul.products::before,
.woocommerce .related ul.products::after,
.woocommerce-page .related ul.products::before,
.woocommerce-page .related ul.products::after {
  display: none; /* 移除 WooCommerce 預設的 clear-fix 偽元素，避免干擾 Grid */
}

.woocommerce .related ul.products li.product,
.woocommerce-page .related ul.products li.product,
.woocommerce .upsells ul.products li.product,
.woocommerce-page .upsells ul.products li.product {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column;
}

.woocommerce .related ul.products li.product > a,
.woocommerce-page .related ul.products li.product > a {
  display: block;
  flex: 1;
}

.woocommerce .related ul.products li.product .button,
.woocommerce-page .related ul.products li.product .button {
  margin-top: auto; /* 讓按鈕對齊底部 */
}

@media (max-width: 900px) {
  .woocommerce .related ul.products,
  .woocommerce-page .related ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .woocommerce .related ul.products,
  .woocommerce-page .related ul.products {
    grid-template-columns: 1fr;
  }
}

/* Unified Product Cards End */

/* v1.0.27 — Calendly booking layout */
.calendly-inline-widget {
  width: 100% !important;
  min-height: 920px !important;
  overflow: visible !important;
}
.calendly-inline-widget iframe {
  width: 100% !important;
  min-height: 920px !important;
  border: 0 !important;
}
.eh-booking-panel {
  overflow: visible !important;
}
.eh-booking-page .eh-booking-panel {
  max-width: 920px !important;
}
@media (max-width: 900px) {
  .eh-booking-panel { padding: 24px; }
  .calendly-inline-widget,
  .calendly-inline-widget iframe {
    min-height: 880px !important;
  }
}
@media (max-width: 580px) {
  .eh-booking-panel { padding: 16px; border-radius: 20px; }
  .calendly-inline-widget,
  .calendly-inline-widget iframe {
    min-height: 840px !important;
  }
}

/* v1.0.28 — Checkout Form Optimization */
/* 隱藏不需要的地址欄位 */
#billing_company_field,
#billing_country_field,
#billing_address_1_field,
#billing_address_2_field,
#billing_city_field,
#billing_state_field,
#billing_postcode_field {
    display: none !important;
}

/* 讓姓名與 Email 佔滿整行，排版整齊 */
#billing_first_name_field,
#billing_last_name_field,
#billing_email_field,
#billing_phone_field {
    width: 100% !important;
    float: none !important;
}

/* 結帳頁面雙欄佈局 (桌機版) */
@media (min-width: 901px) {
    .woocommerce-checkout form.checkout {
        display: grid;
        grid-template-columns: 1.1fr 0.9fr;
        gap: 40px;
        align-items: start;
    }
    .woocommerce-checkout #customer_details {
        margin-bottom: 0;
    }
}

/* 結帳頁面手機版優化 */
@media (max-width: 580px) {
    .woocommerce-checkout form.checkout {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }
    .woocommerce-checkout-payment {
        padding: 16px !important;
    }
    .woocommerce-checkout-payment ul.payment_methods li {
        margin-bottom: 12px;
    }
    .woocommerce-checkout-payment .place-order {
        padding: 16px 0 0 !important;
    }
    .woocommerce-checkout-payment .place-order .button {
        width: 100% !important;
        font-size: 1.1rem !important;
        padding: 14px !important;
    }
}

/* v1.0.30 — Product Badges */
.eh-service-visual {
    position: relative;
}
.eh-product-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 12px;
    border-radius: 99px;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    z-index: 10;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.eh-badge-sale {
    background: #d88f71;
    color: #fff;
}
.eh-badge-soldout {
    background: #a49e9a;
    color: #fff;
}

/* v1.0.32 — Post Media Gallery & Thumbnails */
.eh-post-media-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 改為三欄 */
    gap: 20px;
    margin-top: 40px;
}
.eh-journal-card-preview {
    width: 100%;
    height: 220px;
    background-size: cover;
    background-position: center;
    border-radius: 20px 20px 0 0;
}
.eh-journal-card-content {
    padding: 29px;
}
/* 覆蓋原本 .eh-journal-card 的 padding，因為現在有縮圖了 */
.eh-journal-card {
    padding: 0;
    display: flex;
    flex-direction: column;
}
.eh-media-item {
    border-radius: 16px;
    overflow: hidden;
    background: #f5eadf;
}
.eh-media-item img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.eh-video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}
.eh-video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
@media (max-width: 900px) {
    .eh-post-media-gallery {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 580px) {
    .eh-post-media-gallery {
        grid-template-columns: 1fr;
    }
}


/* =====================================================================
   v1.0.33 — WooCommerce 單一商品頁：療癒服務介面統一
   ===================================================================== */
/* 商品頁以圖片與方案資訊分欄，讓預約流程更聚焦。 */
.single-product .eh-shop-content {
    padding-top: clamp(44px, 6vw, 80px);
    background: linear-gradient(180deg, rgba(243, 229, 216, .42) 0, rgba(255, 251, 246, 0) 38%);
}
.single-product .eh-woocommerce-content {
    margin-top: 0;
}
.single-product .woocommerce div.product {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .88fr);
    gap: clamp(34px, 6vw, 78px);
    align-items: start;
}
.single-product .woocommerce div.product div.images,
.single-product .woocommerce div.product div.summary {
    float: none;
    width: auto;
    margin: 0;
}

/* 左側方案圖片：柔和底色、圓角與一致比例。 */
.single-product .woocommerce-product-gallery {
    overflow: hidden;
    padding: 10px;
    border: 1px solid rgba(232, 217, 204, .92);
    border-radius: 32px;
    background: #fffaf5;
    box-shadow: 0 22px 55px rgba(83, 57, 42, .09);
}
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image a {
    display: block;
    overflow: hidden;
    border-radius: 23px;
    background: linear-gradient(145deg, #f3e5d8, #fffaf5);
}
.single-product .woocommerce-product-gallery__image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: flex;
    gap: 9px;
    margin: 10px 0 0;
    padding: 0;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    float: none;
    width: 58px;
    margin: 0;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 10px;
    opacity: .65;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover {
    border-color: var(--clay);
    opacity: 1;
}

/* 右側商品摘要：以服務資訊與預約行動為層級。 */
.single-product .woocommerce div.product .summary {
    padding: clamp(6px, 1vw, 14px) 0;
}
.single-product .woocommerce div.product .product_title {
    margin: 0 0 17px;
    color: var(--ink);
    font-size: clamp(2rem, 4vw, 3.25rem);
    letter-spacing: -.045em;
}
.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
    display: block;
    margin: 0 0 28px;
    color: var(--brown) !important;
    font: 400 clamp(1.7rem, 3vw, 2.35rem)/1.15 var(--serif);
}
.single-product .woocommerce div.product p.price del,
.single-product .woocommerce div.product span.price del {
    margin-right: 9px;
    color: var(--muted) !important;
    font: .95rem var(--sans);
    opacity: .72;
}
.single-product .woocommerce div.product p.price ins,
.single-product .woocommerce div.product span.price ins {
    color: #a35e46;
    text-decoration: none;
}
.single-product .woocommerce div.product .stock {
    display: inline-flex;
    margin: 0 0 18px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #edf3e8;
    color: #567048;
    font-size: .85rem;
    font-weight: 700;
}
.single-product .woocommerce div.product .out-of-stock {
    background: #f5e5e1;
    color: #9e5547;
}

/* 預約/加入購物車區塊：將日期、數量與主要按鈕放入同一個溫和面板。 */
.single-product .woocommerce div.product form.cart {
    display: grid;
    gap: 16px;
    margin: 0 0 24px;
    padding: 24px;
    border: 1px solid #ead8ca;
    border-radius: 22px;
    background: #fdf6ef;
}
.single-product .woocommerce div.product form.cart label,
.single-product .woocommerce div.product form.cart .label {
    display: block;
    margin: 0 0 7px;
    color: var(--brown);
    font-size: .85rem;
    font-weight: 700;
}
.single-product .woocommerce div.product form.cart input:not([type="checkbox"]):not([type="radio"]),
.single-product #wps_booking_single_calendar_form {
    width: 100%;
    min-height: 48px;
    border: 1px solid #dfc8b5;
    border-radius: 12px;
    padding: 10px 13px;
    background: #fff;
    color: var(--ink);
    font: .95rem var(--sans);
    box-shadow: inset 0 1px 2px rgba(83, 57, 42, .03);
}
.single-product .woocommerce div.product form.cart input:focus,
.single-product #wps_booking_single_calendar_form:focus {
    outline: 3px solid rgba(168, 120, 94, .18);
    border-color: var(--clay);
}
.single-product .woocommerce div.product form.cart .quantity {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
}
.single-product .woocommerce div.product form.cart .quantity .qty {
    width: 74px;
    text-align: center;
}
.single-product .woocommerce div.product form.cart .single_add_to_cart_button,
.single-product .woocommerce div.product form.cart button[type="submit"] {
    width: 100%;
    min-height: 50px;
    margin: 3px 0 0 !important;
    border: 0;
    border-radius: 999px;
    padding: 13px 20px;
    background: var(--clay);
    color: #fff;
    box-shadow: 0 10px 20px rgba(168, 120, 94, .23);
    font: 700 .98rem var(--sans);
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.single-product .woocommerce div.product form.cart .single_add_to_cart_button:hover,
.single-product .woocommerce div.product form.cart button[type="submit"]:hover {
    transform: translateY(-2px);
    background: #875b47;
    box-shadow: 0 14px 25px rgba(111, 78, 59, .28);
}
.single-product .woocommerce div.product .product_meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .84rem;
}
.single-product .woocommerce div.product .product_meta a {
    color: var(--clay);
    font-weight: 700;
}

/* 商品描述與評價使用相同卡片視覺，減少 WooCommerce 預設頁籤的生硬感。 */
.single-product .woocommerce div.product .woocommerce-tabs,
.single-product .woocommerce div.product .related,
.single-product .woocommerce div.product .upsells {
    grid-column: 1 / -1;
}
.single-product .woocommerce div.product .woocommerce-tabs {
    margin-top: clamp(16px, 3vw, 32px);
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid rgba(232, 217, 204, .9);
    border-radius: 28px;
    background: #fffaf5;
    box-shadow: 0 14px 36px rgba(83, 57, 42, .05);
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin: 0 0 28px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0;
    border: 0;
    border-radius: 999px;
    padding: 0;
    background: transparent;
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 9px 15px;
    color: var(--muted);
    font-size: .9rem;
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    background: #f0dfd2;
}
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--brown);
}
.single-product .woocommerce div.product .woocommerce-tabs .panel {
    margin: 0;
    color: #5e4a3d;
    line-height: 2;
}
.single-product .woocommerce div.product .woocommerce-tabs .panel h2:first-child {
    margin-top: 0;
    color: var(--ink);
    font: 1.8rem/1.3 var(--serif);
}

/* 相關方案沿用總覽頁的圓角商品卡片，建立一致的選購體驗。 */
.single-product .woocommerce div.product .related,
.single-product .woocommerce div.product .upsells {
    margin-top: clamp(52px, 8vw, 92px);
    padding-top: clamp(35px, 5vw, 56px);
    border-top: 1px solid var(--line);
}
.single-product .woocommerce div.product .related > h2,
.single-product .woocommerce div.product .upsells > h2 {
    margin: 0 0 26px;
    color: var(--ink);
    font: clamp(1.65rem, 3vw, 2.35rem)/1.3 var(--serif);
}
.single-product .woocommerce div.product .related .eh-service-card,
.single-product .woocommerce div.product .upsells .eh-service-card {
    overflow: hidden;
    border: 1px solid rgba(232, 217, 204, .82);
    border-radius: 24px;
    background: #fffaf5;
    box-shadow: 0 14px 36px rgba(83, 57, 42, .07);
    transition: transform .2s ease, box-shadow .2s ease;
}
.single-product .woocommerce div.product .related .eh-service-card:hover,
.single-product .woocommerce div.product .upsells .eh-service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 45px rgba(83, 57, 42, .12);
}

@media (max-width: 900px) {
    .single-product .woocommerce div.product {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .single-product .woocommerce div.product .woocommerce-tabs,
    .single-product .woocommerce div.product .related,
    .single-product .woocommerce div.product .upsells {
        grid-column: auto;
    }
}
@media (max-width: 580px) {
    .single-product .eh-shop-content {
        padding-top: 34px;
    }
    .single-product .woocommerce-product-gallery {
        padding: 7px;
        border-radius: 22px;
    }
    .single-product .woocommerce-product-gallery__wrapper,
    .single-product .woocommerce-product-gallery__image a {
        border-radius: 16px;
    }
    .single-product .woocommerce div.product form.cart {
        padding: 18px;
        border-radius: 18px;
    }
    .single-product .woocommerce div.product .woocommerce-tabs {
        padding: 22px 18px;
        border-radius: 20px;
    }
    .single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
        gap: 6px;
    }
    .single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 8px 12px;
        font-size: .84rem;
    }
}


/* =====================================================================
   v1.0.34 — Checkout Booking Date Field
   ===================================================================== */
#eh_booking_date_checkout_field {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px dashed var(--line);
}
#eh_booking_date_checkout_field h3 {
    margin: 0 0 16px;
    color: var(--ink);
    font: 1.35rem var(--serif);
}
.eh-booking-date-field input[type="date"] {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 14px;
    background: #fff;
    color: var(--ink);
    font: 1rem var(--sans);
}
.eh-booking-date-field input[type="date"]:focus {
    outline: 3px solid rgba(168, 120, 94, .18);
    border-color: var(--clay);
}


.eh-booking-time-field select {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 14px;
    background: #fff;
    color: var(--ink);
    font: 1rem var(--sans);
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 16px;
}
.eh-booking-time-field select:focus {
    outline: 3px solid rgba(168, 120, 94, .18);
    border-color: var(--clay);
}


/* =====================================================================
   v1.0.36 — 商品頁預約日期與時間欄位優化
   ===================================================================== */
/* Booking 外掛預設將欄位鎖定為 150px，以下以較高優先權覆蓋，讓完整日期與時間可見。 */
.single-product .woocommerce div.product form.cart .mbfw-date-picker-section__wrapper,
.single-product .woocommerce div.product form.cart .mbfw-date-picker-section {
    width: 100% !important;
    max-width: none !important;
}
.single-product .woocommerce div.product form.cart .mbfw-date-picker-section {
    display: grid !important;
    grid-template-columns: max-content minmax(300px, 1fr);
    align-items: center;
    gap: 12px 18px;
}
.single-product .woocommerce div.product form.cart .mbfw-date-picker-section label {
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap;
}
.single-product .woocommerce div.product form.cart #wps_booking_single_calendar_form {
    display: block !important;
    width: 100% !important;
    min-width: 300px;
    max-width: none !important;
    min-height: 50px;
    padding: 11px 15px;
    font-size: .98rem;
    letter-spacing: .01em;
}
@media (max-width: 580px) {
    .single-product .woocommerce div.product form.cart .mbfw-date-picker-section {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .single-product .woocommerce div.product form.cart #wps_booking_single_calendar_form {
        min-width: 0;
        width: 100% !important;
    }
}


/* =====================================================================
   v1.0.37 — 商品頁預約日期已滿提示
   ===================================================================== */
/* 預約外掛會在無可用名額的日期加上 .wps-unavailable-day，主題將它轉為清楚的滿額視覺提示。 */
.single-product .flatpickr-calendar .flatpickr-day.wps-unavailable-day,
.single-product .flatpickr-calendar .flatpickr-day.wps-unavailable-day.flatpickr-disabled {
    position: relative;
    border-radius: 8px;
    background: #f6e6e1 !important;
    color: #9a5548 !important;
    font-weight: 700;
    opacity: 1 !important;
    text-decoration: line-through;
    cursor: not-allowed;
}
.single-product .flatpickr-calendar .flatpickr-day.wps-unavailable-day:hover {
    border-color: transparent;
    background: #f6e6e1 !important;
    color: #9a5548 !important;
}
/* 在日期與時間欄位下方顯示固定說明，避免顧客誤以為日曆故障。 */
.single-product .woocommerce div.product form.cart .mbfw-date-picker-section::after {
    content: '已額滿或無時段的日期將以紅色刪除線顯示，請選擇其他可預約日期。';
    grid-column: 1 / -1;
    display: block;
    margin-top: -3px;
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.6;
}
@media (max-width: 580px) {
    .single-product .woocommerce div.product form.cart .mbfw-date-picker-section::after {
        margin-top: 0;
    }
}


/* =====================================================================
   v1.0.38 — 修正 WPS Bookings 日期欄位未命中父層的覆蓋規則
   實際頁面結構不保證含有 .woocommerce 容器，直接從 body.single-product 鎖定。
   ===================================================================== */
body.single-product form.cart .mbfw-date-picker-section__wrapper {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}
body.single-product form.cart .mbfw-date-picker-section {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    column-gap: 18px !important;
    row-gap: 0 !important;
}
body.single-product form.cart .mbfw-date-picker-section > label {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
body.single-product form.cart .mbfw-date-picker-section > #wps_booking_single_calendar_form,
body.single-product form.cart #wps_booking_single_calendar_form {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 50px !important;
    padding: 11px 15px !important;
    text-align: left !important;
    font-size: 1rem !important;
}
body.single-product form.cart .mbfw-date-picker-section::after {
    grid-column: 1 / -1;
    margin-top: 8px;
}
@media (max-width: 580px) {
    body.single-product form.cart .mbfw-date-picker-section {
        grid-template-columns: 1fr !important;
        row-gap: 8px !important;
    }
    body.single-product form.cart .mbfw-date-picker-section > #wps_booking_single_calendar_form {
        width: 100% !important;
    }
}


/* =====================================================================
   v1.0.40 — 強化商品頁售價顯示
   ===================================================================== */
body.single-product .summary .price {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--ink) !important;
    margin-bottom: 24px !important;
}


/* v1.0.45 — 可選首頁課程與工作坊區塊 */
.eh-course-copy { min-width: 0; }
.eh-course-aside { display: flex; flex-direction: column; align-items: flex-end; gap: 22px; min-width: min(100%, 280px); }
.eh-course-callout-image { width: min(100%, 300px); aspect-ratio: 4 / 3; border-radius: 20px; background-position: center; background-size: cover; box-shadow: 0 16px 34px rgba(92, 62, 45, .12); }
@media (max-width: 760px) {
  .eh-course-aside { width: 100%; align-items: flex-start; }
  .eh-course-callout-image { width: 100%; max-width: 420px; }
}


/* v1.0.48 — 首頁預約區可選圖片 */
.eh-booking-image {
  width: min(100%, 460px);
  aspect-ratio: 4 / 3;
  margin-top: 28px;
  border-radius: 22px;
  background-position: center;
  background-size: cover;
  box-shadow: 0 16px 36px rgba(26, 14, 8, .20);
}
@media (max-width: 900px) {
  .eh-booking-image { width: 100%; max-width: 520px; }
}


/* v1.0.49 — 預約區顏色、圓角與圖片 RWD 控制 */
.eh-booking {
  background: var(--eh-booking-background, var(--brown));
}
.eh-booking-panel {
  border-radius: var(--eh-booking-panel-radius, 32px);
}
.eh-booking-image {
  max-width: 100%;
  border-radius: var(--eh-booking-image-radius, 22px);
}
.eh-booking-grid > * {
  min-width: 0;
}
@media (max-width: 900px) {
  .eh-booking-image {
    width: 100%;
    max-width: 520px;
    margin: 28px auto 0;
  }
}
@media (max-width: 580px) {
  .eh-booking-image {
    margin-top: 24px;
  }
}


/* v1.0.50 — 多日曆預約面板、Box Shadow 與全站 RWD 補強 */
.eh-booking-grid--solo {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}
.eh-booking-panel,
.eh-booking-image {
  box-shadow: var(--eh-booking-box-shadow, 0 18px 40px rgba(26, 14, 8, .18));
}
.eh-booking-panel > *,
.eh-booking-shortcode,
.eh-booking-embed,
.eh-booking-embed iframe {
  max-width: 100%;
}
.eh-booking-embed iframe {
  display: block;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 720px;
  border: 0;
  border-radius: calc(var(--eh-booking-panel-radius, 32px) - 6px);
}
.eh-booking-link-panel {
  display: grid;
  place-items: center;
  gap: 20px;
  min-height: 220px;
  text-align: center;
}
.eh-booking-link-panel p {
  max-width: 26rem;
  margin: 0;
  color: var(--muted);
}
.eh-site-footer a:focus-visible,
.eh-booking-panel a:focus-visible,
.eh-booking-panel button:focus-visible,
.eh-booking-panel input:focus-visible,
.eh-booking-panel select:focus-visible {
  outline: 3px solid rgba(168, 120, 94, .42);
  outline-offset: 3px;
}
.eh-booking-panel iframe,
.eh-booking-panel img,
.eh-booking-panel input,
.eh-booking-panel select,
.eh-booking-panel textarea,
.eh-booking-panel button {
  max-width: 100%;
}
.eh-booking-panel input,
.eh-booking-panel select,
.eh-booking-panel textarea {
  min-width: 0;
}
.eh-site-footer nav,
.eh-site-footer .eh-footer-social {
  min-width: 0;
}
@media (max-width: 900px) {
  .eh-booking-grid--solo {
    grid-template-columns: minmax(0, 1fr);
  }
  .eh-booking-panel {
    width: 100%;
  }
}
@media (max-width: 580px) {
  .eh-booking-panel {
    padding: 16px;
  }
  .eh-booking-embed iframe {
    min-height: 640px;
  }
  .eh-booking-link-panel {
    min-height: 180px;
  }
}


/* v1.0.50 — 頁尾社群連結與小螢幕版型 */
.eh-footer-links-area {
  display: grid;
  justify-items: end;
  gap: 18px;
}
.eh-footer-social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 9px 12px;
}
.eh-footer-social__heading {
  color: var(--ink);
  font: 1rem var(--serif);
}
.eh-footer-social ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.eh-footer-social a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid rgba(83, 57, 42, .22);
  border-radius: 999px;
  color: var(--brown);
  background: rgba(255, 250, 245, .5);
  font-size: .8rem;
  text-decoration: none;
}
.eh-footer-social a:hover {
  border-color: var(--clay);
  color: #fff;
  background: var(--clay);
}
.eh-footer-row > *,
.eh-footer-links-area,
.eh-site-footer li,
.eh-course-grid > *,
.eh-section-header > * {
  min-width: 0;
}
@media (max-width: 760px) {
  .eh-footer-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .eh-footer-links-area {
    width: 100%;
    justify-items: start;
  }
  .eh-site-footer nav > ul,
  .eh-footer-social,
  .eh-footer-social ul {
    justify-content: flex-start;
  }
}
@media (max-width: 420px) {
  .eh-footer-social {
    align-items: flex-start;
    flex-direction: column;
  }
  .eh-footer-social ul {
    width: 100%;
  }
  .eh-footer-social li,
  .eh-footer-social a {
    max-width: 100%;
  }
}


/* v1.0.51 — 全站設計自訂與主選單圖示 */
.eh-main-menu > ul > li > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 5px 1px;
}
.eh-menu-icon {
  display: inline-grid;
  width: 1.05em;
  flex: 0 0 1.05em;
  place-items: center;
  color: var(--clay);
  font-family: var(--serif);
  font-size: 1.05em;
  line-height: 1;
  transform: translateY(-.02em);
}
.eh-menu-label {
  min-width: 0;
}
.eh-main-menu a:hover .eh-menu-icon,
.eh-mobile-menu a:hover .eh-menu-icon {
  color: var(--ink);
}
.eh-mobile-menu nav a {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.eh-mobile-menu nav .eh-menu-label {
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 1100px) {
  .eh-mobile-menu nav .eh-menu-icon {
    width: 1.15em;
    flex-basis: 1.15em;
  }
}


/* v1.0.51 — 行動選單與低動態偏好補強 */
@media (max-width: 580px) {
  .eh-mobile-menu nav a {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .eh-mobile-menu nav .eh-menu-icon {
    align-self: flex-start;
    margin-top: .28em;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* v1.0.52 — 首頁預約區：左側圖片／日曆，右側文字 */
.eh-booking-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(36px, 6vw, 88px);
  align-items: start;
}
.eh-booking-media {
  display: grid;
  gap: 24px;
  min-width: 0;
}
.eh-booking-copy {
  min-width: 0;
  align-self: start;
  padding-top: clamp(8px, 2vw, 34px);
}
.eh-booking-copy .eh-display {
  margin-top: 12px;
}
.eh-booking-media .eh-booking-image {
  width: min(100%, 520px);
  max-width: 100%;
  margin: 0;
}
.eh-booking-media .eh-booking-panel {
  width: 100%;
}
.eh-booking-grid--copy-only {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}
@media (max-width: 900px) {
  .eh-booking-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }
  .eh-booking-copy {
    order: 1;
    padding-top: 0;
  }
  .eh-booking-media {
    order: 2;
    width: 100%;
    max-width: 560px;
  }
  .eh-booking-media .eh-booking-image {
    width: 100%;
  }
}
@media (max-width: 580px) {
  .eh-booking-media {
    gap: 18px;
  }
  .eh-booking-copy .eh-display {
    margin-top: 10px;
  }
}


/* v1.0.52 — 頁尾電子報訂閱區 */
.eh-footer-newsletter {
  display: grid;
  justify-items: end;
  gap: 8px;
  max-width: 380px;
}
.eh-footer-newsletter__text {
  max-width: 34ch;
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
  text-align: right;
}
.eh-footer-newsletter__form {
  width: min(100%, 380px);
}
.eh-footer-newsletter__form form,
.eh-footer-newsletter__form .mc4wp-form-fields {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
}
.eh-footer-newsletter__form input[type="email"],
.eh-footer-newsletter__form input[type="text"] {
  min-width: 0;
  flex: 1 1 190px;
  border: 1px solid rgba(81, 58, 44, .2);
  border-radius: 999px;
  padding: 11px 14px;
  font: inherit;
}
.eh-footer-newsletter__form input[type="submit"],
.eh-footer-newsletter__form button {
  border: 0;
  border-radius: 999px;
  padding: 11px 16px;
  background: var(--clay);
  color: #fff;
  cursor: pointer;
  font: 600 .88rem var(--sans);
}
.eh-footer-newsletter .eh-button {
  min-width: 0;
  padding: 10px 16px;
  font-size: .86rem;
}
@media (max-width: 900px) {
  .eh-footer-newsletter {
    justify-items: start;
  }
  .eh-footer-newsletter__text {
    text-align: left;
  }
}
@media (max-width: 580px) {
  .eh-footer-newsletter,
  .eh-footer-newsletter__form {
    width: 100%;
    max-width: none;
  }
  .eh-footer-newsletter__form form,
  .eh-footer-newsletter__form .mc4wp-form-fields {
    align-items: stretch;
    flex-direction: column;
  }
  .eh-footer-newsletter__form input[type="submit"],
  .eh-footer-newsletter__form button,
  .eh-footer-newsletter .eh-button {
    width: 100%;
    text-align: center;
  }
}


/* v1.0.52 — 服務與商品頁行動版 RWD 補強 */
@media (max-width: 760px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .single-product .woocommerce-product-gallery {
    max-width: 560px;
    margin-inline: auto;
  }
  .single-product .woocommerce div.product .summary {
    padding-top: 0;
  }
  .single-product .woocommerce div.product .product_title {
    overflow-wrap: anywhere;
    font-size: clamp(1.9rem, 9vw, 2.65rem);
  }
  .single-product .woocommerce div.product form.cart {
    min-width: 0;
    padding: 20px;
  }
  .single-product .woocommerce div.product .woocommerce-tabs {
    padding: 22px;
  }
  .single-product .woocommerce div.product .related,
  .single-product .woocommerce div.product .upsells {
    min-width: 0;
  }
}
@media (max-width: 390px) {
  .single-product .woocommerce-product-gallery {
    padding: 7px;
    border-radius: 24px;
  }
  .single-product .woocommerce-product-gallery__wrapper,
  .single-product .woocommerce-product-gallery__image a {
    border-radius: 17px;
  }
  .single-product .woocommerce div.product form.cart,
  .single-product .woocommerce div.product .woocommerce-tabs {
    padding: 16px;
    border-radius: 18px;
  }
  .single-product .woocommerce div.product .product_title {
    font-size: clamp(1.78rem, 9.5vw, 2.25rem);
  }
}


/* v1.0.53 — 縮減預約區欄間距並增加文字欄寬度 */
@media (min-width: 901px) {
  .eh-booking-grid {
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: clamp(18px, 3vw, 44px);
  }
  .eh-booking-copy .eh-lead {
    max-width: 56ch;
  }
}


/* v1.0.53 — 頁尾連結與社群可選圖示 */
.eh-site-footer nav a,
.eh-footer-social a,
.eh-footer-newsletter .eh-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.eh-footer-icon {
  display: inline-grid;
  width: 1.05em;
  flex: 0 0 1.05em;
  place-items: center;
  color: var(--clay);
  font-family: var(--serif);
  font-size: .96em;
  line-height: 1;
  transform: translateY(-.03em);
}
.eh-site-footer nav a:hover .eh-footer-icon,
.eh-footer-social a:hover .eh-footer-icon {
  color: var(--ink);
}
.eh-footer-newsletter .eh-button .eh-footer-icon {
  color: currentColor;
}
@media (max-width: 580px) {
  .eh-site-footer nav a,
  .eh-footer-social a {
    gap: 7px;
  }
}


/* v1.0.54 — 服務／部落格 Hero 格子背景與英文切換入口 */
.eh-offer-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.eh-offer-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  opacity: .30;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(168, 120, 94, .13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168, 120, 94, .13) 1px, transparent 1px);
  background-size: 28px 28px;
}
.eh-offer-intro { position: relative; }
.eh-navigation-area {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
}
.eh-language-switcher {
  display: flex;
  min-height: 18px;
  align-items: center;
  justify-content: flex-end;
  padding-right: 2px;
}
.eh-language-switcher a,
.eh-mobile-language-switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--clay);
  font: 700 .66rem/1 var(--sans);
  letter-spacing: .13em;
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.eh-language-switcher a { padding: 4px 8px; }
.eh-language-switcher a:hover,
.eh-language-switcher a:focus-visible,
.eh-mobile-language-switch:hover,
.eh-mobile-language-switch:focus-visible {
  border-color: rgba(168, 120, 94, .38);
  outline: none;
  background: rgba(255, 251, 246, .75);
  color: var(--ink);
}
.eh-mobile-language-switch {
  width: max-content;
  margin: 2px 0 7px 12px;
  padding: 6px 9px;
}
.eh-footer-newsletter--setup {
  border: 1px dashed rgba(81, 58, 44, .25);
  border-radius: 14px;
  padding: 13px 15px;
  background: rgba(255, 251, 246, .46);
}
@media (max-width: 1100px) {
  .eh-navigation-area { display: none; }
}
@media (max-width: 580px) {
  .eh-offer-hero::before { background-size: 24px 24px; }
}


/* v1.0.55 — 首頁與文章頁視覺細節、極小螢幕 Header 微調 */
.eh-hero__copy,
.eh-offer-intro {
  text-wrap: pretty;
}
.eh-healing-shop__header,
.eh-journal-page .eh-offer-intro {
  min-width: 0;
}
.eh-journal-card,
.woocommerce ul.products li.product {
  min-width: 0;
}
@media (max-width: 360px) {
  .eh-header-row {
    gap: 8px;
  }
  .eh-brand {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.24rem;
    letter-spacing: 0;
  }
  .eh-brand em {
    margin-left: -.035em;
  }
  .eh-header-actions {
    flex: 0 0 auto;
    gap: 6px;
  }
  .eh-cart-trigger,
  .eh-mobile-menu summary {
    width: 38px;
    height: 38px;
  }
  .eh-hero__title,
  .eh-offer-intro .eh-display {
    letter-spacing: -.04em;
  }
  .eh-page-actions {
    gap: 10px;
  }
}


/* v1.0.56 — 置中主選單與獨立英文切換按鈕 */
.eh-language-button {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid rgba(168, 120, 94, .44);
  border-radius: 999px;
  padding: 8px 10px;
  color: var(--brown);
  background: rgba(255, 251, 246, .70);
  font: 700 .72rem/1 var(--sans);
  letter-spacing: .09em;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.eh-language-button:hover,
.eh-language-button:focus-visible {
  border-color: var(--clay);
  outline: none;
  background: #f5eadf;
  transform: translateY(-1px);
}
.eh-language-button span[aria-hidden="true"] {
  color: var(--clay);
  font-size: .94rem;
  line-height: 1;
}
@media (min-width: 1101px) {
  .eh-header-row { position: relative; }
  .eh-navigation-area {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: max-content;
    min-width: 0;
    transform: translate(-50%, -50%);
  }
  .eh-main-menu { flex: 0 0 auto; }
  .eh-main-menu > ul { justify-content: center; }
}
@media (max-width: 1100px) {
  .eh-language-button { display: none; }
}


/* v1.0.56 — 首頁區塊間距與柔和進場動畫 */
.home .eh-section {
  padding-block: clamp(72px, 8.1vw, 108px);
}
.home .eh-intention {
  padding-block: clamp(76px, 8.4vw, 112px);
}
.home .eh-booking {
  padding-block: clamp(76px, 8.4vw, 112px);
}
.home .eh-section-header {
  margin-bottom: clamp(22px, 2.2vw, 34px);
}
.home .eh-section-header + .eh-service-grid,
.home .eh-section-header + .eh-journal-grid {
  margin-top: 0;
}
@keyframes eh-soft-rise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .home .eh-intention .eh-container,
  .home .eh-booking .eh-container,
  .home .eh-section:not(.eh-intention):not(.eh-booking) .eh-container {
    animation: eh-soft-rise .62s cubic-bezier(.22, .61, .36, 1) both;
  }
  .home .eh-value-card,
  .home .eh-service-card,
  .home .eh-journal-card {
    transition: transform .24s ease, box-shadow .24s ease;
  }
  .home .eh-value-card:hover,
  .home .eh-service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 42px rgba(83, 57, 42, .12);
  }
}
@media (max-width: 580px) {
  .home .eh-section,
  .home .eh-intention,
  .home .eh-booking {
    padding-block: 62px;
  }
}


/* v1.0.56 — 行動版漢堡選單開合與可讀性優化 */
@media (max-width: 1100px) {
  .eh-mobile-menu summary {
    font-size: 0;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
  }
  .eh-mobile-menu summary::before {
    content: "☰";
    font-size: 1.12rem;
    line-height: 1;
  }
  .eh-mobile-menu[open] summary {
    border-color: rgba(168, 120, 94, .65);
    background: #f5eadf;
    color: var(--ink);
    transform: rotate(90deg);
  }
  .eh-mobile-menu nav {
    transform-origin: top right;
  }
  .eh-mobile-menu[open] nav {
    animation: eh-mobile-menu-in .22s cubic-bezier(.22, .61, .36, 1) both;
  }
  .eh-mobile-menu nav a {
    min-height: 46px;
    align-items: center;
    padding: 12px 13px;
    font-size: .98rem;
    line-height: 1.45;
  }
  .eh-mobile-menu .eh-menu-icon {
    flex: 0 0 1.05em;
    font-size: 1em;
  }
  .eh-mobile-menu .current-menu-item > a,
  .eh-mobile-menu .current-menu-ancestor > a {
    color: var(--ink);
    background: rgba(243, 229, 216, .76);
  }
  .eh-mobile-language-switch {
    min-height: 38px;
    margin: 2px 0 8px 12px;
    padding: 8px 12px;
    font-size: .72rem;
  }
}
@keyframes eh-mobile-menu-in {
  from { opacity: 0; transform: translateY(-7px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .eh-mobile-menu[open] nav { animation: none; }
  .eh-mobile-menu summary { transition: none; }
}


/* =====================================================================
   v1.0.58 — 商品頁購買區、描述與評價 UI 重設
   對應 WooCommerce 核心結構；不依賴 .woocommerce 外層，兼容目前商品頁模板。
   ===================================================================== */
body.single-product .summary form.cart {
  display: grid;
  gap: 16px;
  margin: 0 0 22px;
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid rgba(218, 194, 175, .88);
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(242, 226, 212, .58), transparent 42%),
    #fffaf6;
  box-shadow: 0 16px 34px rgba(83, 57, 42, .055);
}
body.single-product .summary form.cart .quantity {
  display: inline-flex;
  width: fit-content;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  padding: 5px 7px 5px 15px;
  border: 1px solid #dfc8b5;
  border-radius: 15px;
  background: #fff;
  color: var(--brown);
  box-shadow: inset 0 1px 2px rgba(83, 57, 42, .035);
}
body.single-product .summary form.cart .quantity::before {
  content: "預約數量";
  font: 700 .82rem/1 var(--sans);
  letter-spacing: .025em;
}
body.single-product .summary form.cart .quantity::after {
  content: "份";
  margin-left: -5px;
  color: var(--muted);
  font: 600 .8rem/1 var(--sans);
}
body.single-product .summary form.cart .quantity .qty {
  width: 66px;
  min-width: 66px;
  min-height: 42px;
  margin: 0;
  border: 1px solid rgba(168, 120, 94, .28);
  border-radius: 10px;
  padding: 6px 5px 6px 10px;
  background: #fdf7f1;
  color: var(--ink);
  font: 700 1.03rem/1 var(--sans);
  text-align: center;
}
body.single-product .summary form.cart .quantity .qty:focus {
  border-color: var(--clay);
  outline: 3px solid rgba(168, 120, 94, .16);
  background: #fff;
}
/* 主按鈕與快捷付款按鈕維持一致的全寬、高度與圓角節奏。 */
body.single-product .summary form.cart .single_add_to_cart_button,
body.single-product .summary form.cart button[type="submit"] {
  display: inline-flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  margin: 2px 0 0 !important;
  border: 1px solid #151313;
  border-radius: 8px;
  padding: 13px 22px;
  background: #151313;
  color: #fff;
  box-shadow: 0 9px 18px rgba(26, 18, 15, .17);
  font: 700 1rem/1 var(--sans);
  letter-spacing: .02em;
  text-align: center;
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
body.single-product .summary form.cart .single_add_to_cart_button:hover,
body.single-product .summary form.cart .single_add_to_cart_button:focus-visible,
body.single-product .summary form.cart button[type="submit"]:hover,
body.single-product .summary form.cart button[type="submit"]:focus-visible {
  border-color: #473b35;
  outline: none;
  background: #473b35;
  box-shadow: 0 13px 24px rgba(26, 18, 15, .23);
  transform: translateY(-2px);
}
body.single-product .summary form.cart .single_add_to_cart_button.loading::after {
  margin-left: 9px;
}
body.single-product .summary .product_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  margin-top: 2px;
  padding: 16px 2px 0;
  border-top: 1px solid rgba(217, 199, 185, .7);
  color: var(--muted);
  font-size: .85rem;
}

/* 描述與評價：改為柔和容器、清楚分頁和內容卡片，而非 WooCommerce 預設方格。 */
body.single-product .woocommerce-tabs {
  margin-top: clamp(26px, 4vw, 48px);
  padding: clamp(22px, 3.2vw, 40px);
  border: 1px solid rgba(222, 203, 187, .82);
  border-radius: 30px;
  background:
    radial-gradient(circle at 100% 0, rgba(245, 230, 217, .58), transparent 36%),
    #fdf9f5;
  box-shadow: 0 18px 42px rgba(83, 57, 42, .06);
}
body.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  margin: 0 0 clamp(20px, 3vw, 30px);
  padding: 0 0 14px;
  border: 0;
  border-bottom: 1px solid rgba(217, 199, 185, .82);
  white-space: nowrap;
  scrollbar-width: thin;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
  display: none;
}
body.single-product .woocommerce-tabs ul.tabs li {
  margin: 0;
  border: 0;
  border-radius: 999px;
  padding: 0;
  background: transparent;
}
body.single-product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 9px 17px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  font: 700 .9rem/1 var(--sans);
  text-decoration: none;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
body.single-product .woocommerce-tabs ul.tabs li:not(.active) a:hover,
body.single-product .woocommerce-tabs ul.tabs li:not(.active) a:focus-visible {
  border-color: rgba(168, 120, 94, .32);
  outline: none;
  background: rgba(255, 255, 255, .75);
  color: var(--brown);
}
body.single-product .woocommerce-tabs ul.tabs li.active {
  background: transparent;
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  border-color: #b88468;
  background: #b88468;
  color: #fff;
  box-shadow: 0 7px 14px rgba(138, 93, 71, .16);
}
body.single-product .woocommerce-tabs .panel {
  margin: 0;
  padding: clamp(22px, 3.1vw, 34px);
  border: 1px solid rgba(229, 214, 201, .9);
  border-radius: 20px;
  background: rgba(255, 255, 255, .84);
  color: #58473b;
  line-height: 1.9;
}
body.single-product .woocommerce-tabs .panel > :first-child {
  margin-top: 0;
}
body.single-product .woocommerce-tabs .panel > :last-child {
  margin-bottom: 0;
}
body.single-product .woocommerce-tabs .panel h2 {
  margin: 0 0 15px;
  color: var(--ink);
  font: clamp(1.45rem, 2.7vw, 1.9rem)/1.3 var(--serif);
}

/* 評價空狀態、既有評論與撰寫表單。 */
body.single-product #reviews #comments {
  margin: 0 0 22px;
  padding: 20px 22px;
  border: 1px solid rgba(230, 214, 200, .9);
  border-radius: 16px;
  background: #fffdfb;
}
body.single-product #reviews #comments > h2 {
  margin: 0 0 10px;
  color: var(--brown);
  font: 700 1.03rem/1.5 var(--sans);
}
body.single-product #reviews .woocommerce-noreviews {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
}
body.single-product #reviews .woocommerce-noreviews::before {
  content: "✦";
  color: var(--clay);
  font-size: 1.15rem;
}
body.single-product #reviews .commentlist {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single-product #reviews .commentlist li {
  margin: 0;
  padding: 20px;
  border: 1px solid rgba(228, 211, 197, .92);
  border-radius: 16px;
  background: #fffdfb;
}
body.single-product #reviews .comment_container {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 13px;
}
body.single-product #reviews .comment_container img.avatar {
  width: 42px;
  height: 42px;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: #f1e1d4;
}
body.single-product #reviews .comment-text {
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}
body.single-product #reviews .comment-text .meta {
  margin: 0 0 8px;
  color: var(--muted);
}
body.single-product #reviews .comment-text .description > p:last-child {
  margin-bottom: 0;
}
body.single-product #review_form_wrapper {
  margin-top: 24px;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid rgba(218, 194, 175, .85);
  border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #fffaf6 100%);
  box-shadow: 0 12px 28px rgba(83, 57, 42, .045);
}
body.single-product #review_form .comment-reply-title {
  display: block;
  margin: 0 0 7px;
  color: var(--ink);
  font: clamp(1.3rem, 2.4vw, 1.65rem)/1.35 var(--serif);
}
body.single-product #review_form .comment-reply-title small {
  margin-left: 8px;
  font: 700 .78rem/1 var(--sans);
}
body.single-product #review_form .comment-reply-title small a {
  color: var(--clay);
}
body.single-product #review_form .comment-form > p {
  margin: 0;
}
body.single-product #review_form .comment-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}
body.single-product #review_form .comment-form-comment,
body.single-product #review_form .comment-form-rating,
body.single-product #review_form .comment-form-cookies-consent,
body.single-product #review_form .form-submit,
body.single-product #review_form .comment-notes {
  grid-column: 1 / -1;
}
body.single-product #review_form label {
  display: block;
  margin: 0 0 7px;
  color: var(--brown);
  font: 700 .85rem/1.35 var(--sans);
}
body.single-product #review_form textarea,
body.single-product #review_form input:not([type="checkbox"]):not([type="radio"]) {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  margin: 0;
  border: 1px solid #dec8b7;
  border-radius: 12px;
  padding: 12px 13px;
  background: #fff;
  color: var(--ink);
  font: .96rem/1.5 var(--sans);
  box-shadow: inset 0 1px 2px rgba(83, 57, 42, .03);
}
body.single-product #review_form textarea {
  min-height: 138px;
  resize: vertical;
}
body.single-product #review_form textarea:focus,
body.single-product #review_form input:not([type="checkbox"]):not([type="radio"]):focus {
  border-color: var(--clay);
  outline: 3px solid rgba(168, 120, 94, .16);
}
body.single-product #review_form .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--muted);
  font-size: .87rem;
  line-height: 1.55;
}
body.single-product #review_form .comment-form-cookies-consent input {
  width: 16px;
  height: 16px;
  min-height: 0;
  margin: 2px 0 0;
  accent-color: var(--clay);
}
body.single-product #review_form .comment-form-cookies-consent label {
  margin: 0;
  color: var(--muted);
  font: inherit;
}
body.single-product #review_form .stars a {
  color: #bc8a50;
}
body.single-product #review_form .stars a:hover,
body.single-product #review_form .stars a.active {
  color: #8d6045;
}
body.single-product #review_form .form-submit {
  margin-top: 3px;
}
body.single-product #review_form #submit {
  min-width: 132px;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  padding: 12px 20px;
  background: var(--clay);
  color: #fff;
  cursor: pointer;
  font: 700 .93rem/1 var(--sans);
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
body.single-product #review_form #submit:hover,
body.single-product #review_form #submit:focus-visible {
  outline: none;
  background: #875b47;
  box-shadow: 0 10px 20px rgba(111, 78, 59, .2);
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  body.single-product .summary form.cart {
    padding: 18px;
    border-radius: 20px;
  }
  body.single-product .summary form.cart .quantity {
    width: 100%;
    justify-content: space-between;
  }
  body.single-product .woocommerce-tabs {
    margin-top: 26px;
    padding: 18px;
    border-radius: 22px;
  }
  body.single-product .woocommerce-tabs ul.tabs {
    margin-bottom: 18px;
    padding-bottom: 12px;
  }
  body.single-product .woocommerce-tabs ul.tabs li a {
    min-height: 39px;
    padding: 8px 13px;
    font-size: .84rem;
  }
  body.single-product .woocommerce-tabs .panel,
  body.single-product #review_form_wrapper,
  body.single-product #reviews #comments {
    padding: 18px;
    border-radius: 16px;
  }
  body.single-product #review_form .comment-form {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  body.single-product #review_form .comment-form-author,
  body.single-product #review_form .comment-form-email {
    grid-column: 1;
  }
  body.single-product #review_form #submit {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.single-product .summary form.cart .single_add_to_cart_button,
  body.single-product .summary form.cart button[type="submit"],
  body.single-product #review_form #submit {
    transition: none;
  }
}


/* =====================================================================
   v1.0.59 — 商品數量加減器與評價星等統計
   ===================================================================== */
body.single-product .summary form.cart .quantity {
  gap: 4px;
  min-height: 54px;
  padding: 5px 7px;
  border-radius: 999px;
}
body.single-product .summary form.cart .quantity::before {
  margin: 0 5px 0 6px;
  white-space: nowrap;
}
body.single-product .summary form.cart .quantity::after {
  margin: 0 5px 0 1px;
  white-space: nowrap;
}
body.single-product .summary form.cart .quantity .qty {
  width: 42px;
  min-width: 42px;
  min-height: 40px;
  border: 0;
  border-radius: 0;
  padding: 5px 0 5px 6px;
  background: transparent;
  box-shadow: none;
  font-size: 1rem;
}
body.single-product .summary form.cart .quantity .qty:focus {
  border-radius: 9px;
}
body.single-product .summary form.cart .quantity .qty::-webkit-outer-spin-button,
body.single-product .summary form.cart .quantity .qty::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
body.single-product .summary form.cart .quantity .qty {
  -moz-appearance: textfield;
  appearance: textfield;
}
body.single-product .summary form.cart .eh-quantity-button {
  display: inline-grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(168, 120, 94, .25);
  border-radius: 50%;
  padding: 0;
  background: #f3e5d9;
  color: var(--brown);
  cursor: pointer;
  font: 500 1.45rem/1 var(--sans);
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}
body.single-product .summary form.cart .eh-quantity-button:hover,
body.single-product .summary form.cart .eh-quantity-button:focus-visible {
  border-color: var(--clay);
  outline: none;
  background: var(--clay);
  color: #fff;
  transform: translateY(-1px);
}
body.single-product .summary form.cart .eh-quantity-button:disabled {
  border-color: rgba(168, 120, 94, .13);
  background: rgba(243, 229, 217, .56);
  color: rgba(81, 58, 44, .35);
  cursor: not-allowed;
  transform: none;
}

/* 星等標示與實際評分分布。長條寬度由商品評論資料動態計算。 */
body.single-product #reviews .eh-rating-summary {
  display: grid;
  grid-template-columns: minmax(180px, .82fr) minmax(260px, 1.18fr);
  gap: clamp(22px, 4vw, 42px);
  align-items: center;
  margin: 0 0 22px;
  padding: clamp(22px, 3.4vw, 32px);
  border: 1px solid rgba(215, 191, 169, .82);
  border-radius: 20px;
  background:
    radial-gradient(circle at 0% 0%, rgba(244, 226, 210, .75), transparent 47%),
    linear-gradient(135deg, #fffdfb 0%, #fff8f1 100%);
  box-shadow: 0 11px 25px rgba(83, 57, 42, .04);
}
body.single-product #reviews .eh-rating-summary__eyebrow {
  display: block;
  margin-bottom: 7px;
  color: var(--clay);
  font: 700 .72rem/1 var(--sans);
  letter-spacing: .13em;
}
body.single-product #reviews .eh-rating-summary__score {
  display: flex;
  align-items: baseline;
  gap: 11px;
}
body.single-product #reviews .eh-rating-summary__score strong {
  color: var(--ink);
  font: clamp(2.4rem, 5vw, 3.45rem)/1 var(--serif);
}
body.single-product #reviews .eh-rating-summary__stars {
  color: #bc8a50;
  font-size: 1.04rem;
  letter-spacing: .10em;
  text-shadow: 0 2px 7px rgba(158, 112, 56, .14);
}
body.single-product #reviews .eh-rating-summary p {
  max-width: 27ch;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.6;
}
body.single-product #reviews .eh-rating-summary__distribution {
  display: grid;
  gap: 10px;
}
body.single-product #reviews .eh-rating-summary__row {
  display: grid;
  grid-template-columns: 37px minmax(0, 1fr) 36px;
  gap: 10px;
  align-items: center;
}
body.single-product #reviews .eh-rating-summary__label,
body.single-product #reviews .eh-rating-summary__percent {
  color: var(--brown);
  font: 700 .79rem/1 var(--sans);
}
body.single-product #reviews .eh-rating-summary__percent {
  color: var(--muted);
  text-align: right;
}
body.single-product #reviews .eh-rating-summary__track {
  display: block;
  overflow: hidden;
  height: 8px;
  border-radius: 999px;
  background: #eedfd3;
}
body.single-product #reviews .eh-rating-summary__bar {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #c6926d 0%, #b77759 100%);
  box-shadow: 0 1px 4px rgba(128, 81, 56, .18);
  transition: width .35s ease;
}
body.single-product #reviews .star-rating {
  float: none;
  overflow: hidden;
  width: 6.9em;
  height: 1.25em;
  margin: 0 0 7px;
  color: #e6d1bd;
  font-size: 1.02rem;
  letter-spacing: .12em;
}
body.single-product #reviews .star-rating::before {
  color: #e6d1bd;
  content: "★★★★★";
}
body.single-product #reviews .star-rating span::before {
  color: #bc8a50;
  content: "★★★★★";
  text-shadow: 0 2px 6px rgba(158, 112, 56, .15);
}

/* 評價星等輸入：原生選單在 JavaScript 啟用後仍保留於可及性樹，並由星形按鈕操作。 */
body.single-product #review_form .eh-rating-select--enhanced {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
body.single-product #review_form .eh-rating-input {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 13px;
  margin-top: 3px;
}
body.single-product #review_form .eh-rating-input__label {
  color: var(--muted);
  font: 600 .84rem/1 var(--sans);
}
body.single-product #review_form .eh-rating-input__stars {
  display: inline-flex;
  gap: 4px;
}
body.single-product #review_form .eh-rating-input__stars button {
  display: inline-grid;
  width: 35px;
  height: 35px;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(188, 138, 80, .22);
  border-radius: 50%;
  padding: 0;
  background: #fffaf5;
  color: #dfc8b2;
  cursor: pointer;
  font-size: 1.02rem;
  line-height: 1;
  transition: transform .17s ease, color .17s ease, background-color .17s ease, border-color .17s ease;
}
body.single-product #review_form .eh-rating-input__stars button:hover,
body.single-product #review_form .eh-rating-input__stars button:focus-visible,
body.single-product #review_form .eh-rating-input__stars button.is-selected {
  border-color: #c08a52;
  outline: none;
  background: #fff4e5;
  color: #bc8a50;
  transform: translateY(-2px);
}
@media (max-width: 640px) {
  body.single-product .summary form.cart .quantity {
    justify-content: center;
  }
  body.single-product #reviews .eh-rating-summary {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 21px 19px;
  }
  body.single-product #reviews .eh-rating-summary p {
    max-width: none;
  }
  body.single-product #review_form .eh-rating-input__stars button {
    width: 32px;
    height: 32px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.single-product .summary form.cart .eh-quantity-button,
  body.single-product #reviews .eh-rating-summary__bar,
  body.single-product #review_form .eh-rating-input__stars button {
    transition: none;
  }
}


/* =====================================================================
   v1.0.60 — 商品頁資訊層級精簡與手機版 Sticky Bar
   ===================================================================== */
/* 商品標題縮小為原先約 50%，讓圖片與購買資訊更平衡。 */
body.single-product .woocommerce div.product .product_title {
  margin-bottom: 14px;
  font-size: clamp(1.55rem, 2.15vw, 1.85rem);
  letter-spacing: -.028em;
}
/* 分類改為商品圖左上方的簡潔麵包屑：首頁／療癒。 */
body.single-product .woocommerce div.product {
  position: relative;
}
body.single-product .eh-product-breadcrumb {
  position: absolute;
  z-index: 4;
  top: 18px;
  left: 18px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(255, 251, 246, .72);
  border-radius: 999px;
  padding: 7px 11px;
  background: rgba(255, 251, 246, .88);
  box-shadow: 0 5px 12px rgba(83, 57, 42, .08);
  color: var(--brown);
  font: 700 .76rem/1 var(--sans);
  backdrop-filter: blur(7px);
}
body.single-product .eh-product-breadcrumb a {
  color: inherit;
  text-decoration: none;
}
body.single-product .eh-product-breadcrumb a:hover,
body.single-product .eh-product-breadcrumb a:focus-visible {
  color: var(--clay);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.single-product .summary .product_meta.eh-product-meta--moved {
  display: none;
}
/* 保留加減按鈕，但移除「預約數量」外層橢圓框。 */
body.single-product .summary form.cart .quantity {
  min-height: 40px;
  gap: 6px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.single-product .summary form.cart .quantity::before {
  margin: 0 4px 0 0;
}
body.single-product .summary form.cart .quantity::after {
  margin: 0 0 0 1px;
}
body.single-product .summary form.cart .quantity .qty {
  width: 38px;
  min-width: 38px;
  min-height: 40px;
}
body.single-product .summary form.cart .eh-quantity-button {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-color: rgba(81, 58, 44, .14);
  background: #f0e4da;
}
/* 立即預約改為網站深咖啡色，與療癒品牌一致。 */
body.single-product .summary form.cart .single_add_to_cart_button,
body.single-product .summary form.cart button[type="submit"] {
  border-color: #513a2c;
  background: #513a2c;
}
body.single-product .summary form.cart .single_add_to_cart_button:hover,
body.single-product .summary form.cart .single_add_to_cart_button:focus-visible,
body.single-product .summary form.cart button[type="submit"]:hover,
body.single-product .summary form.cart button[type="submit"]:focus-visible {
  border-color: #39251b;
  background: #39251b;
}
/* 描述與評價沿用細線頁籤，不再使用咖啡色膠囊、點綴或最外層白色卡片。 */
body.single-product .woocommerce-tabs {
  margin-top: clamp(26px, 4vw, 44px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.single-product .woocommerce-tabs ul.tabs {
  gap: 0;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(81, 58, 44, .30);
  overflow: visible;
}
body.single-product .woocommerce-tabs ul.tabs li,
body.single-product .woocommerce-tabs ul.tabs li.active {
  border-radius: 0;
  background: transparent;
}
body.single-product .woocommerce-tabs ul.tabs li a,
body.single-product .woocommerce-tabs ul.tabs li.active a {
  min-height: 42px;
  margin: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 10px 18px;
  background: transparent;
  box-shadow: none;
  color: var(--muted);
}
body.single-product .woocommerce-tabs ul.tabs li:not(.active) a:hover,
body.single-product .woocommerce-tabs ul.tabs li:not(.active) a:focus-visible {
  border-color: transparent;
  border-bottom-color: rgba(81, 58, 44, .36);
  background: transparent;
  color: var(--brown);
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  border-bottom-color: #513a2c;
  color: #513a2c;
}
body.single-product .woocommerce-tabs .panel {
  padding: clamp(22px, 3vw, 32px) 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.single-product #reviews .woocommerce-noreviews::before {
  display: none;
}
body.single-product #reviews .woocommerce-noreviews {
  display: block;
}
/* 手機版：將同一表單的立即預約操作固定於底部，避免遮擋內容與安全區域。 */
.eh-mobile-booking-bar {
  display: none;
}
@media (max-width: 640px) {
  body.single-product .woocommerce div.product .product_title {
    font-size: clamp(1.42rem, 6.7vw, 1.78rem);
  }
  body.single-product .eh-product-breadcrumb {
    top: 13px;
    left: 13px;
    padding: 6px 9px;
    font-size: .7rem;
  }
  body.single-product .summary form.cart .quantity {
    justify-content: flex-start;
  }
  body.single-product .summary form.cart .single_add_to_cart_button,
  body.single-product .summary form.cart button[type="submit"] {
    display: none;
  }
  body.single-product .woocommerce-tabs ul.tabs {
    overflow-x: auto;
    white-space: nowrap;
  }
  body.single-product .woocommerce-tabs ul.tabs li a,
  body.single-product .woocommerce-tabs ul.tabs li.active a {
    min-height: 40px;
    padding: 9px 14px;
  }
  body.single-product .woocommerce-tabs .panel {
    padding-top: 20px;
  }
  body.single-product {
    padding-bottom: calc(78px + env(safe-area-inset-bottom));
  }
  .eh-mobile-booking-bar {
    position: fixed;
    z-index: 9999;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(81, 58, 44, .16);
    background: rgba(255, 251, 246, .94);
    box-shadow: 0 -8px 24px rgba(48, 31, 21, .13);
    backdrop-filter: blur(12px);
  }
  .eh-mobile-booking-bar__button {
    display: flex;
    width: min(100%, 560px);
    min-height: 52px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border: 1px solid #513a2c;
    border-radius: 12px;
    padding: 13px 20px;
    background: #513a2c;
    color: #fff;
    cursor: pointer;
    font: 700 1rem/1 var(--sans);
    letter-spacing: .025em;
    transition: background-color .18s ease, transform .18s ease;
  }
  .eh-mobile-booking-bar__button:hover,
  .eh-mobile-booking-bar__button:focus-visible {
    outline: none;
    background: #39251b;
    transform: translateY(-1px);
  }
  .eh-mobile-booking-bar__button:disabled {
    cursor: wait;
    opacity: .74;
  }
}
@media (prefers-reduced-motion: reduce) {
  .eh-mobile-booking-bar__button {
    transition: none;
  }
}


/* =====================================================================
   v1.0.62 — 商品頁極簡內容、評價與延伸區塊統一
   ===================================================================== */
/* 商品名稱縮至舊版約 50%，避免壓縮購買資訊與圖片的呼吸空間。 */
body.single-product .eh-woocommerce-content h1.product_title,
body.single-product .eh-woocommerce-content .summary .product_title {
  margin: 0 0 15px !important;
  font-size: clamp(1.25rem, 1.8vw, 1.6rem) !important;
  line-height: 1.3 !important;
  letter-spacing: -.022em !important;
}
/* 「首頁 / 療癒」固定在商品圖上方，採純文字導覽而不是圖上的膠囊框。 */
body.single-product .eh-woocommerce-content div.product {
  position: relative;
}
body.single-product .eh-woocommerce-content .eh-product-breadcrumb {
  position: absolute;
  z-index: 4;
  top: -32px;
  left: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
  color: #513a2c;
  font: 700 .78rem/1 var(--sans);
  letter-spacing: .015em;
  backdrop-filter: none;
}
body.single-product .eh-woocommerce-content .eh-product-breadcrumb a {
  color: inherit;
  text-decoration: none;
}
body.single-product .eh-woocommerce-content .eh-product-breadcrumb a:hover,
body.single-product .eh-woocommerce-content .eh-product-breadcrumb a:focus-visible {
  color: var(--clay);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* 參考商品頁的矩形細線分頁：不使用圓點、膠囊或厚重外框。 */
body.single-product .eh-woocommerce-content .woocommerce-tabs {
  margin-top: clamp(34px, 5vw, 58px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs {
  display: flex;
  justify-content: flex-start;
  gap: 0;
  overflow: visible;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(81, 58, 44, .27);
  white-space: nowrap;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li,
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li.active {
  position: relative;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li + li {
  margin-left: 7px;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li a,
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li.active a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  padding: 11px 22px;
  background: transparent;
  box-shadow: none;
  color: #74665c;
  font: 700 .9rem/1 var(--sans);
  letter-spacing: .01em;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li:not(.active) a:hover,
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li:not(.active) a:focus-visible {
  border-color: rgba(81, 58, 44, .25);
  border-bottom-color: transparent;
  outline: none;
  background: rgba(255, 255, 255, .38);
  color: #513a2c;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li.active a {
  position: relative;
  z-index: 1;
  margin-bottom: -1px;
  border-color: #513a2c;
  border-bottom-color: #fffaf5;
  background: #fffaf5;
  color: #513a2c;
}
/* 描述如參考圖般直接置於奶油底色，以可閱讀的長文節奏呈現。 */
body.single-product .eh-woocommerce-content .woocommerce-tabs .panel {
  max-width: none;
  margin: 0;
  padding: clamp(25px, 3.4vw, 42px) clamp(1px, .4vw, 6px) 6px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #58473b;
  font-size: clamp(.98rem, 1.25vw, 1.08rem);
  line-height: 2;
}
body.single-product .eh-woocommerce-content .woocommerce-tabs .panel h2 {
  margin: 0 0 18px;
  color: #513a2c;
  font: clamp(1.55rem, 2.5vw, 2rem)/1.25 var(--serif);
}
body.single-product .eh-woocommerce-content .woocommerce-Tabs-panel--description p {
  max-width: 86ch;
  margin: 0 0 15px;
}
body.single-product .eh-woocommerce-content .woocommerce-Tabs-panel--description p:first-of-type,
body.single-product .eh-woocommerce-content .woocommerce-Tabs-panel--description p:last-child {
  color: #49382e;
  font-weight: 700;
}
/* 評價摘要保留資訊性，但移除空評論區的額外白色框。 */
body.single-product .eh-woocommerce-content #reviews #comments {
  margin: 0 0 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.single-product .eh-woocommerce-content #reviews #comments > h2 {
  margin: 0 0 10px;
  color: #513a2c;
  font: 700 1rem/1.5 var(--sans);
}
body.single-product .eh-woocommerce-content #reviews .woocommerce-noreviews,
body.single-product .eh-woocommerce-content #reviews .woocommerce-noreviews::before {
  display: block;
}
body.single-product .eh-woocommerce-content #reviews .woocommerce-noreviews::before {
  content: none;
}
/* 撰寫評價表單採附件圖的清楚外框、圓角輸入欄、雙欄姓名信箱與全寬送出按鈕。 */
body.single-product .eh-woocommerce-content #review_form_wrapper {
  margin-top: 28px;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid rgba(186, 151, 124, .34);
  border-radius: 24px;
  background: rgba(255, 255, 255, .54);
  box-shadow: none;
}
body.single-product .eh-woocommerce-content #review_form .comment-reply-title {
  margin-bottom: 10px;
  color: #513a2c;
  font: clamp(1.42rem, 2.3vw, 1.78rem)/1.3 var(--serif);
}
body.single-product .eh-woocommerce-content #review_form .comment-form {
  gap: 18px;
  margin-top: 22px;
}
body.single-product .eh-woocommerce-content #review_form textarea,
body.single-product .eh-woocommerce-content #review_form input:not([type="checkbox"]):not([type="radio"]) {
  min-height: 50px;
  border-color: rgba(186, 151, 124, .46);
  border-radius: 12px;
  background: rgba(255,255,255,.88);
  box-shadow: none;
}
body.single-product .eh-woocommerce-content #review_form textarea {
  min-height: 138px;
}
body.single-product .eh-woocommerce-content #review_form #submit {
  width: 100%;
  min-height: 50px;
  border-radius: 999px;
  background: #b88468;
  box-shadow: none;
}
body.single-product .eh-woocommerce-content #review_form #submit:hover,
body.single-product .eh-woocommerce-content #review_form #submit:focus-visible {
  background: #96634a;
  box-shadow: none;
}
/* 相關商品採輕量推薦卡：一致圖片、柔和細框與不搶眼的行動按鈕。 */
body.single-product .eh-woocommerce-content .related.products,
body.single-product .eh-woocommerce-content .upsells.products {
  margin-top: clamp(54px, 7vw, 86px);
  padding-top: clamp(28px, 4vw, 44px);
  border-top: 1px solid rgba(81, 58, 44, .22);
}
body.single-product .eh-woocommerce-content .related.products > h2,
body.single-product .eh-woocommerce-content .upsells.products > h2 {
  margin-bottom: 24px;
  color: #513a2c;
  font: clamp(1.5rem, 2.5vw, 1.92rem)/1.3 var(--serif);
}
body.single-product .eh-woocommerce-content .related.products .eh-service-card,
body.single-product .eh-woocommerce-content .upsells.products .eh-service-card {
  border-color: rgba(186, 151, 124, .28);
  border-radius: 16px;
  background: rgba(255, 255, 255, .30);
  box-shadow: none;
}
body.single-product .eh-woocommerce-content .related.products .eh-service-card:hover,
body.single-product .eh-woocommerce-content .upsells.products .eh-service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(83, 57, 42, .08);
}
/* FAQ 頁同步為簡約細線摺疊清單，供服務前的常見疑問閱讀。 */
.eh-faq-page .eh-faq-list {
  max-width: 920px;
  margin-inline: auto;
}
.eh-faq-page .eh-faq-list details {
  border-top: 1px solid rgba(81, 58, 44, .22);
  border-bottom: 0;
  padding: 0;
}
.eh-faq-page .eh-faq-list details:last-child {
  border-bottom: 1px solid rgba(81, 58, 44, .22);
}
.eh-faq-page .eh-faq-list summary {
  position: relative;
  padding: 20px 42px 20px 2px;
  color: #513a2c;
  font: 1.08rem/1.5 var(--serif);
  list-style: none;
}
.eh-faq-page .eh-faq-list summary::-webkit-details-marker { display: none; }
.eh-faq-page .eh-faq-list summary::after {
  position: absolute;
  top: 50%;
  right: 5px;
  content: "+";
  color: #b88468;
  font: 1.45rem/1 var(--sans);
  transform: translateY(-50%);
}
.eh-faq-page .eh-faq-list details[open] summary::after { content: "−"; }
.eh-faq-page .eh-faq-list p {
  max-width: 76ch;
  margin: -4px 0 20px 2px;
  color: #6e5d51;
  line-height: 1.85;
}
@media (max-width: 760px) {
  body.single-product .eh-woocommerce-content h1.product_title,
  body.single-product .eh-woocommerce-content .summary .product_title {
    font-size: clamp(1.2rem, 5.6vw, 1.48rem) !important;
  }
  body.single-product .eh-woocommerce-content .eh-product-breadcrumb {
    top: -27px;
    font-size: .72rem;
  }
  body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs {
    overflow-x: auto;
  }
  body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li a,
  body.single-product .eh-woocommerce-content .woocommerce-tabs ul.tabs li.active a {
    min-height: 41px;
    padding: 10px 15px;
    font-size: .83rem;
  }
  body.single-product .eh-woocommerce-content .woocommerce-tabs .panel {
    padding-top: 24px;
    font-size: .98rem;
  }
  body.single-product .eh-woocommerce-content #review_form_wrapper {
    padding: 21px 17px;
    border-radius: 18px;
  }
}


/* =====================================================================
   v1.0.63 — 商品可編輯摘要、雙購買按鈕與描述媒體
   ===================================================================== */
/* 標題下方的評價：使用 WooCommerce 真實評論資料與清楚的文字連結。 */
body.single-product .eh-product-summary-details {
  margin: -4px 0 18px;
}
body.single-product .eh-product-rating-line {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #8c6a45;
  font: .86rem/1.35 var(--sans);
  text-decoration: none;
}
body.single-product .eh-product-rating-line .star-rating {
  float: none;
  margin: 0;
  color: #b88468;
}
body.single-product .eh-product-rating-line__empty {
  color: #b88468;
  font-size: 1rem;
  letter-spacing: 1px;
}
body.single-product .eh-product-rating-line__count {
  color: #74665c;
  font-size: .82rem;
}
body.single-product .eh-product-rating-line:hover .eh-product-rating-line__count,
body.single-product .eh-product-rating-line:focus-visible .eh-product-rating-line__count {
  color: #513a2c;
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* 售價改為清楚的紅陶色，與深咖啡行動按鈕形成層級。 */
body.single-product .eh-woocommerce-content .summary .price,
body.single-product .eh-woocommerce-content .summary .price .amount {
  color: #b44d48 !important;
  font-weight: 800;
}
body.single-product .eh-woocommerce-content .summary .price {
  margin: 0 0 17px;
  font-size: clamp(1.28rem, 2vw, 1.55rem);
}
/* 可由後台逐行輸入的商品重點。 */
body.single-product .eh-product-highlights {
  display: grid;
  gap: 7px;
  margin: 0 0 22px;
  padding: 0;
  color: #66564c;
  font-size: .93rem;
  line-height: 1.55;
  list-style: none;
}
body.single-product .eh-product-highlights li {
  position: relative;
  padding-left: 17px;
}
body.single-product .eh-product-highlights li::before {
  position: absolute;
  top: .63em;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #b88468;
  content: "";
}
/* 加減器採三欄精準網格：減號、數字、加號置中，不保留多餘外框。 */
body.single-product .summary form.cart .quantity {
  display: inline-grid;
  grid-template-columns: 38px 44px 38px;
  grid-template-rows: 38px;
  align-items: stretch;
  gap: 0;
  min-height: 38px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(81, 58, 44, .20);
  border-radius: 4px;
  background: rgba(255,255,255,.4);
  vertical-align: middle;
}
body.single-product .summary form.cart .quantity::before {
  display: none;
}
body.single-product .summary form.cart .quantity .eh-quantity-button {
  display: grid;
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  place-items: center;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  color: #513a2c;
  font: 400 1.12rem/1 var(--sans);
  line-height: 1;
  transform: none;
}
body.single-product .summary form.cart .quantity .eh-quantity-button:first-child {
  border-right: 1px solid rgba(81, 58, 44, .16);
}
body.single-product .summary form.cart .quantity .eh-quantity-button:last-child {
  border-left: 1px solid rgba(81, 58, 44, .16);
}
body.single-product .summary form.cart .quantity .eh-quantity-button:hover,
body.single-product .summary form.cart .quantity .eh-quantity-button:focus-visible {
  outline: none;
  background: rgba(184, 132, 104, .12);
  color: #8e5943;
}
body.single-product .summary form.cart .quantity .eh-quantity-button[disabled] {
  opacity: .35;
  cursor: not-allowed;
}
body.single-product .summary form.cart .quantity .qty {
  box-sizing: border-box;
  width: 44px;
  min-width: 44px;
  height: 38px;
  min-height: 38px;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 2px !important;
  background: transparent !important;
  color: #513a2c;
  font: 700 .92rem/38px var(--sans);
  text-align: center;
  box-shadow: none !important;
  -moz-appearance: textfield;
}
body.single-product .summary form.cart .quantity .qty::-webkit-outer-spin-button,
body.single-product .summary form.cart .quantity .qty::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
/* 加入購物車與立即預約在同一列；預約使用品牌深咖啡作為主要行動。 */
body.single-product .summary form.cart {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}
body.single-product .summary form.cart .quantity { grid-column: 1; }
body.single-product .summary form.cart .single_add_to_cart_button,
body.single-product .summary form.cart .eh-book-now-button {
  width: 100% !important;
  min-height: 46px;
  margin: 0 !important;
  border: 0;
  border-radius: 5px;
  padding: 11px 13px;
  box-shadow: none;
  font: 800 .88rem/1 var(--sans);
  letter-spacing: .04em;
  transform: none;
}
body.single-product .summary form.cart .single_add_to_cart_button {
  grid-column: 2;
  background: #b88468;
  color: #fff;
}
body.single-product .summary form.cart .single_add_to_cart_button:hover,
body.single-product .summary form.cart .single_add_to_cart_button:focus-visible {
  outline: none;
  background: #a46e54;
  box-shadow: none;
  transform: none;
}
body.single-product .summary form.cart .eh-book-now-button {
  grid-column: 3;
  background: #513a2c;
  color: #fff;
}
body.single-product .summary form.cart .eh-book-now-button:hover,
body.single-product .summary form.cart .eh-book-now-button:focus-visible {
  outline: none;
  background: #38271e;
  box-shadow: none;
  transform: none;
}
/* 描述改用可佔滿內容寬度的長文，並在下方呈現可後台管理的圖片與影片。 */
body.single-product .eh-woocommerce-content .woocommerce-Tabs-panel--description p {
  max-width: none;
}
body.single-product .eh-product-media {
  margin-top: clamp(34px, 5vw, 58px);
  padding-top: clamp(24px, 3.6vw, 38px);
  border-top: 1px solid rgba(81, 58, 44, .20);
}
body.single-product .eh-product-media h3 {
  margin: 0 0 20px;
  color: #513a2c;
  font: clamp(1.35rem, 2.1vw, 1.72rem)/1.3 var(--serif);
}
body.single-product .eh-product-media__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2.4vw, 26px);
}
body.single-product .eh-product-media__item {
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(186, 151, 124, .25);
  border-radius: 16px;
  background: rgba(255,255,255,.42);
}
body.single-product .eh-product-media__item--image img,
body.single-product .eh-product-media__item--video iframe,
body.single-product .eh-product-media__item--video video {
  display: block;
  width: 100%;
  height: auto;
  border: 0;
}
body.single-product .eh-product-media__item--video {
  aspect-ratio: 16 / 9;
}
body.single-product .eh-product-media__item--video iframe {
  height: 100%;
}
@media (max-width: 760px) {
  body.single-product .summary form.cart {
    grid-template-columns: 1fr 1fr;
    gap: 9px;
  }
  body.single-product .summary form.cart .quantity {
    grid-column: 1 / -1;
    justify-self: start;
  }
  body.single-product .summary form.cart .single_add_to_cart_button { grid-column: 1; }
  body.single-product .summary form.cart .eh-book-now-button { grid-column: 2; }
  body.single-product .eh-product-media__grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  body.single-product .summary form.cart {
    grid-template-columns: 1fr;
  }
  body.single-product .summary form.cart .single_add_to_cart_button,
  body.single-product .summary form.cart .eh-book-now-button {
    grid-column: 1;
  }
}


/* v1.0.64 — 修正 v1.0.63 購買列的舊規則衝突 */
/* 完全移除舊版數量標籤與單位，避免造成加減器高度及對位偏移。 */
body.single-product .summary form.cart .quantity::before,
body.single-product .summary form.cart .quantity::after {
  display: none !important;
  content: none !important;
}
body.single-product .summary form.cart .quantity {
  height: 38px !important;
  min-height: 38px !important;
  align-self: center;
}
/* 兩種操作清楚區分：加入購物車為米咖啡色，立即預約為深咖啡色。 */
body.single-product .summary form.cart .single_add_to_cart_button {
  border-color: #b88468 !important;
  background: #b88468 !important;
  color: #fff !important;
}
body.single-product .summary form.cart .single_add_to_cart_button:hover,
body.single-product .summary form.cart .single_add_to_cart_button:focus-visible {
  border-color: #a46e54 !important;
  background: #a46e54 !important;
}
body.single-product .summary form.cart .eh-book-now-button {
  border-color: #513a2c !important;
  background: #513a2c !important;
  color: #fff !important;
}
body.single-product .summary form.cart .eh-book-now-button:hover,
body.single-product .summary form.cart .eh-book-now-button:focus-visible {
  border-color: #38271e !important;
  background: #38271e !important;
}


/* =====================================================================
   v1.0.65 — 商品摘要間距、隱私權與可選社群分享
   ===================================================================== */
/* 星等與商品重點之間增加約 40% 留白，讓服務重點與評價清楚分層。 */
body.single-product .eh-product-summary-details {
  margin-bottom: 25px;
}
body.single-product .eh-product-rating-line {
  margin-bottom: 14px;
}
body.single-product .eh-product-highlights {
  margin-top: 0;
  margin-bottom: 24px;
}
/* 快捷付款下的保障與分享資訊；由前端腳本移至付款容器後方。 */
body.single-product .eh-product-trust-share {
  display: grid;
  gap: 13px;
  margin: 15px 0 0;
  padding: 15px 2px 0;
  border-top: 1px solid rgba(81, 58, 44, .14);
  color: #625248;
  font: 600 .83rem/1.45 var(--sans);
}
body.single-product .eh-product-privacy,
body.single-product .eh-product-share,
body.single-product .eh-product-share__label {
  display: inline-flex;
  align-items: center;
}
body.single-product .eh-product-privacy {
  gap: 8px;
}
body.single-product .eh-product-privacy svg,
body.single-product .eh-product-share__label svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: #a26f55;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
body.single-product .eh-product-privacy a {
  color: inherit;
  text-decoration: none;
}
body.single-product .eh-product-privacy a:hover,
body.single-product .eh-product-privacy a:focus-visible {
  color: #8e5943;
  outline: none;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.single-product .eh-product-share {
  min-height: 28px;
  gap: 14px;
}
body.single-product .eh-product-share__label {
  gap: 8px;
  color: #513a2c;
  font-weight: 800;
}
body.single-product .eh-product-share__button {
  display: inline-grid;
  width: 27px;
  height: 27px;
  place-items: center;
  margin: 0;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  color: #81695b;
  cursor: pointer;
  font: 700 .93rem/1 var(--sans);
  transition: color .18s ease, background-color .18s ease, transform .18s ease;
}
body.single-product .eh-product-share__button svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
body.single-product .eh-product-share__button--facebook { font-family: Arial, sans-serif; font-size: 1.03rem; }
body.single-product .eh-product-share__button--threads { font-size: 1.08rem; }
body.single-product .eh-product-share__button--x { font-size: .9rem; }
body.single-product .eh-product-share__button:hover,
body.single-product .eh-product-share__button:focus-visible,
body.single-product .eh-product-share__button.is-copied {
  outline: none;
  background: rgba(184, 132, 104, .13);
  color: #513a2c;
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  body.single-product .eh-product-trust-share {
    gap: 12px;
    margin-top: 13px;
    padding-top: 13px;
  }
  body.single-product .eh-product-share { gap: 11px; }
}


/* =====================================================================
   v1.0.67 — 移除非首頁 Hero 上方留白與商品 LINE 諮詢
   ===================================================================== */
/* 部落格、預約、FAQ、商城及療癒服務模板均以 .eh-page-content 包住第一個 Hero。
   原本的主內容 padding-top 在 Hero 前形成 60px 白色帶；只針對直接子 Hero 歸零，不影響一般內頁文章。 */
body:not(.home) main.eh-page-content:has(> .eh-offer-hero),
body:not(.home) main.eh-page-content:has(> .eh-page-hero),
body:not(.home) main.eh-page-content:has(> .eh-course-hero) {
  padding-top: 0;
}
/* 未使用 .eh-page-content 的課程頁也保證 Hero 緊貼 Header。 */
body:not(.home) main.eh-course-page > .eh-course-hero:first-child {
  margin-top: 0;
}
/* 商品結帳操作區的 LINE 官方帳號諮詢：由商品編輯頁的開關及網址控制。 */
body.single-product .eh-product-line-inquiry {
  display: inline-flex;
  width: 100%;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 12px;
  border: 1px solid rgba(68, 150, 75, .28);
  border-radius: 12px;
  padding: 10px 16px;
  background: #f4fbf4;
  color: #31763a;
  font: 800 .88rem/1.25 var(--sans);
  letter-spacing: .02em;
  text-decoration: none;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}
body.single-product .eh-product-line-inquiry__icon {
  display: inline-grid;
  min-width: 31px;
  height: 20px;
  place-items: center;
  border-radius: 6px;
  padding: 0 5px;
  background: #3aad45;
  color: #fff;
  font: 800 .56rem/1 Arial, sans-serif;
  letter-spacing: .025em;
}
body.single-product .eh-product-line-inquiry:hover,
body.single-product .eh-product-line-inquiry:focus-visible {
  outline: none;
  border-color: #3aad45;
  background: #eaf7eb;
  color: #23612b;
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  body.single-product .eh-product-line-inquiry {
    min-height: 44px;
    margin-top: 10px;
    font-size: .84rem;
  }
}


/* =====================================================================
   v1.0.68 — 全站公告跑馬燈、全寬 LINE 諮詢與商品諮詢表單
   ===================================================================== */
/* 選單下方的全站公告。內容可由自訂器開關與修改，並尊重減少動態效果設定。 */
.eh-site-marquee {
  position: relative;
  z-index: 45;
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 239, 220, .20);
  background: linear-gradient(90deg, #513a2c, #674735 50%, #513a2c);
  color: #fff4e7;
  box-shadow: 0 7px 18px rgba(70, 45, 32, .10);
}
.eh-site-marquee__track {
  display: flex;
  width: max-content;
  min-width: 100%;
  align-items: center;
  gap: clamp(24px, 4vw, 52px);
  padding: 9px 0;
  color: inherit;
  font: 700 clamp(.74rem, 1.2vw, .86rem)/1.3 var(--sans);
  letter-spacing: .08em;
  text-decoration: none;
  white-space: nowrap;
  animation: eh-marquee-scroll 22s linear infinite;
}
.eh-site-marquee__track span:first-child { margin-left: max(18px, calc((100vw - 1160px) / 2)); }
.eh-site-marquee__track span[aria-hidden="true"] { color: #e9bea0; font-size: .92em; }
.eh-site-marquee a.eh-site-marquee__track:hover,
.eh-site-marquee a.eh-site-marquee__track:focus-visible {
  outline: none;
  color: #fff;
  background: rgba(255, 247, 238, .08);
  animation-play-state: paused;
}
@keyframes eh-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-25%); } }
@media (prefers-reduced-motion: reduce) { .eh-site-marquee__track { animation: none; justify-content: center; } }

/* 將 LINE 改為購買區內的完整橫列，不受三欄加購網格擠壓。 */
body.single-product .summary form.cart .eh-product-line-inquiry {
  display: flex;
  grid-column: 1 / -1;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 3px 0 0;
  border: 1px solid #06ae4e;
  border-radius: 7px;
  padding: 11px 18px;
  background: #06c755;
  color: #fff;
  font: 800 .91rem/1 var(--sans);
  letter-spacing: .035em;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
body.single-product .summary form.cart .eh-product-line-inquiry__icon {
  display: inline-grid;
  min-width: 35px;
  height: 21px;
  place-items: center;
  border-radius: 5px;
  padding: 0 5px;
  background: #fff;
  color: #06b653;
  font: 900 .57rem/1 Arial, sans-serif;
  letter-spacing: .02em;
}
body.single-product .summary form.cart .eh-product-line-inquiry:hover,
body.single-product .summary form.cart .eh-product-line-inquiry:focus-visible {
  outline: none;
  border-color: #059945;
  background: #05af4b;
  color: #fff;
  transform: translateY(-1px);
}
/* 與 LINE 並列的諮詢入口，同樣跨越整個購買區，僅在後台啟用時輸出。 */
body.single-product .summary form.cart .eh-product-inquiry-trigger {
  display: inline-flex;
  grid-column: 1 / -1;
  width: 100%;
  min-height: 45px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 0;
  border: 1px solid rgba(81, 58, 44, .34);
  border-radius: 7px;
  padding: 10px 16px;
  background: #fffaf5;
  color: #513a2c;
  cursor: pointer;
  font: 800 .87rem/1 var(--sans);
  letter-spacing: .035em;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
body.single-product .summary form.cart .eh-product-inquiry-trigger__icon {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: #a8785e;
  color: #fff;
  font: 800 .76rem/1 var(--sans);
}
body.single-product .summary form.cart .eh-product-inquiry-trigger:hover,
body.single-product .summary form.cart .eh-product-inquiry-trigger:focus-visible {
  outline: none;
  border-color: #a8785e;
  background: #f5eadf;
  color: #513a2c;
}
/* 商品諮詢彈窗。 */
.eh-product-inquiry-modal[hidden] { display: none !important; }
.eh-product-inquiry-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
}
.eh-product-inquiry-modal__backdrop { position: absolute; inset: 0; background: rgba(46, 30, 22, .52); backdrop-filter: blur(4px); }
.eh-product-inquiry-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 620px);
  max-height: min(760px, calc(100vh - 40px));
  overflow: auto;
  border: 1px solid rgba(187, 152, 126, .38);
  border-radius: 24px;
  padding: clamp(25px, 4vw, 42px);
  background: #fffaf5;
  box-shadow: 0 28px 80px rgba(44, 26, 17, .28);
}
.eh-product-inquiry-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #f3e5d8;
  color: #513a2c;
  cursor: pointer;
  font: 400 1.6rem/1 var(--sans);
}
.eh-product-inquiry-modal__eyebrow { color: #a8785e; font: 800 .69rem/1 var(--sans); letter-spacing: .16em; }
.eh-product-inquiry-modal h2 { margin: 12px 0 10px; padding-right: 35px; color: #513a2c; font: clamp(1.55rem, 4vw, 2.15rem)/1.28 var(--serif); }
.eh-product-inquiry-modal > .eh-product-inquiry-modal__dialog > p { margin: 0 0 22px; color: #766153; font-size: .92rem; line-height: 1.8; }
.eh-product-inquiry-form p { margin: 0 0 15px; }
.eh-product-inquiry-form label { display: block; margin-bottom: 6px; color: #513a2c; font: 800 .84rem/1.3 var(--sans); }
.eh-product-inquiry-form label span { color: #aa5c4d; }
.eh-product-inquiry-form input[type="text"],
.eh-product-inquiry-form input[type="email"],
.eh-product-inquiry-form input[type="tel"],
.eh-product-inquiry-form textarea {
  display: block;
  width: 100%;
  border: 1px solid rgba(137, 105, 85, .33);
  border-radius: 10px;
  padding: 11px 12px;
  background: #fff;
  color: #513a2c;
  font: 400 .94rem/1.5 var(--sans);
}
.eh-product-inquiry-form textarea { min-height: 126px; resize: vertical; }
.eh-product-inquiry-form input:focus,
.eh-product-inquiry-form textarea:focus { outline: 3px solid rgba(168, 120, 94, .22); border-color: #a8785e; }
.eh-product-inquiry-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.eh-product-inquiry-form__consent label { display: inline; margin: 0; color: #766153; font-weight: 500; line-height: 1.65; }
.eh-product-inquiry-form__consent input { width: 15px; height: 15px; margin: 0 6px 0 0; vertical-align: -2px; accent-color: #a8785e; }
.eh-product-inquiry-form__consent a { color: #8e5943; text-decoration: underline; text-underline-offset: 2px; }
.eh-product-inquiry-form__status { min-height: 1.45em; color: #8e5943; font-size: .86rem; }
.eh-product-inquiry-form__status.is-success { color: #2c7b47; }
.eh-product-inquiry-form__submit { width: 100%; min-height: 48px; border: 0; border-radius: 7px; background: #513a2c; color: #fff; cursor: pointer; font: 800 .9rem/1 var(--sans); letter-spacing: .05em; }
.eh-product-inquiry-form__submit:hover,
.eh-product-inquiry-form__submit:focus-visible { outline: none; background: #38271e; }
.eh-product-inquiry-form__submit:disabled { opacity: .62; cursor: wait; }
.eh-product-inquiry-form__honeypot { position: absolute !important; left: -9999px !important; overflow: hidden !important; width: 1px !important; height: 1px !important; }
body.eh-product-inquiry-open { overflow: hidden; }
@media (max-width: 640px) {
  .eh-site-marquee__track { min-width: max-content; padding: 9px 0; animation-duration: 18s; }
  .eh-site-marquee__track span:first-child { margin-left: 16px; }
  body.single-product .summary form.cart .eh-product-line-inquiry { min-height: 46px; font-size: .86rem; }
  .eh-product-inquiry-modal { align-items: end; padding: 10px; }
  .eh-product-inquiry-modal__dialog { max-height: calc(100vh - 20px); border-radius: 20px; padding: 28px 20px 22px; }
  .eh-product-inquiry-form__grid { grid-template-columns: 1fr; gap: 0; }
}


/* 活動列表與單一活動頁 */
.eh-events-archive__content { padding: clamp(56px, 8vw, 100px) 0; background: #fffaf5; }
.eh-events-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 30px); }
.eh-event-card { overflow: hidden; border: 1px solid rgba(186, 151, 124, .24); border-radius: 22px; background: #fff; box-shadow: 0 14px 34px rgba(83, 57, 42, .06); }
.eh-event-card__visual { display: grid; aspect-ratio: 4 / 3; place-items: center; overflow: hidden; background: linear-gradient(135deg, #eeded1, #f9efe8); color: #a8785e; font: 700 1rem/1.45 var(--serif); letter-spacing: .08em; text-align: center; }
.eh-event-card__visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.eh-event-card:hover .eh-event-card__visual img { transform: scale(1.03); }
.eh-event-card__body { padding: 22px; }
.eh-event-card__date { color: #a8785e; font: 800 .7rem/1.2 var(--sans); letter-spacing: .12em; }
.eh-event-card h2 { margin: 10px 0 9px; color: #513a2c; font: 1.42rem/1.35 var(--serif); }
.eh-event-card h2 a:hover { color: #8e5943; }
.eh-event-card p { margin: 0; color: #766153; font-size: .88rem; line-height: 1.8; }
.eh-event-card__location { display: block; margin-top: 13px; color: #8e5943; font-size: .82rem; }
.eh-event-card .eh-read-link { margin-top: 17px; }
.eh-event-page { background: #fffaf5; }
.eh-event-hero { overflow: hidden; padding: clamp(58px, 8vw, 100px) 0; background: linear-gradient(118deg, rgba(255,251,246,.98) 0 52%, rgba(243,229,216,.72) 100%); }
.eh-event-hero__grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: clamp(32px, 6vw, 76px); align-items: center; }
.eh-event-hero h1 { margin: 13px 0 17px; color: #513a2c; font: clamp(2.05rem, 4.5vw, 4rem)/1.18 var(--serif); letter-spacing: -.04em; }
.eh-event-hero .eh-lead { max-width: 610px; margin: 0; }
.eh-event-hero__visual { min-height: 360px; overflow: hidden; border-radius: 28px; background: linear-gradient(135deg, #d8bca7, #f5e6da); box-shadow: 0 22px 54px rgba(83,57,42,.14); }
.eh-event-hero__visual img { width: 100%; height: 100%; object-fit: cover; }
.eh-event-hero__placeholder { display: grid; min-height: 360px; place-items: center; color: rgba(81,58,44,.62); font: 700 1.35rem/1.6 var(--serif); letter-spacing: .14em; text-align: center; }
.eh-event-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 25px; }
.eh-event-article { padding: clamp(40px, 6vw, 78px) 0 clamp(70px, 9vw, 112px); }
.eh-event-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: clamp(40px, 6vw, 68px); border-top: 1px solid rgba(81,58,44,.17); border-bottom: 1px solid rgba(81,58,44,.17); }
.eh-event-details > div { min-height: 108px; display: grid; align-content: center; gap: 7px; padding: 20px clamp(15px, 2vw, 25px); border-right: 1px solid rgba(81,58,44,.13); }
.eh-event-details > div:last-child { border-right: 0; }
.eh-event-details span { color: #a8785e; font: 800 .68rem/1 var(--sans); letter-spacing: .12em; }
.eh-event-details strong { color: #513a2c; font: 600 1rem/1.5 var(--sans); }
.eh-event-article__content { width: min(100%, 900px); margin: 0 auto; color: #5e4a3d; font-size: 1.04rem; line-height: 2; }
.eh-event-article__content > *:first-child { margin-top: 0; }
.eh-event-article__content h2,.eh-event-article__content h3 { color: #513a2c; font-family: var(--serif); line-height: 1.35; }
.eh-event-article__content h2 { margin: 2.3em 0 .7em; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.eh-event-article__content img,.eh-event-article__content .wp-block-embed { margin: 32px auto; border-radius: 18px; overflow: hidden; }
.eh-event-video { width: min(100%, 900px); margin: clamp(44px, 7vw, 78px) auto 0; padding-top: clamp(27px, 4vw, 40px); border-top: 1px solid rgba(81,58,44,.18); }
.eh-event-video h2,.eh-event-closing-actions h2 { margin: 0 0 17px; color: #513a2c; font: clamp(1.55rem, 3vw, 2.1rem)/1.3 var(--serif); }
.eh-event-video > div { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px; background: #f3e5d8; }
.eh-event-video iframe,.eh-event-video video { display: block; width: 100%; height: 100%; border: 0; }
.eh-event-closing-actions { width: min(100%, 900px); margin: clamp(44px, 7vw, 78px) auto 0; padding: clamp(28px, 5vw, 45px); border-radius: 22px; background: #f3e5d8; text-align: center; }
.eh-event-closing-actions p { max-width: 610px; margin: 0 auto; color: #766153; }
.eh-event-closing-actions .eh-event-actions { justify-content: center; }
@media (max-width: 900px) { .eh-events-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .eh-event-hero__grid { grid-template-columns: 1fr; } .eh-event-hero__visual { min-height: 300px; } .eh-event-details { grid-template-columns: repeat(2, minmax(0, 1fr)); } .eh-event-details > div:nth-child(2) { border-right: 0; } .eh-event-details > div:nth-child(-n+2) { border-bottom: 1px solid rgba(81,58,44,.13); } }
@media (max-width: 600px) { .eh-events-grid { grid-template-columns: 1fr; } .eh-event-hero { padding: 50px 0 56px; } .eh-event-hero__visual,.eh-event-hero__placeholder { min-height: 260px; } .eh-event-actions .eh-button { width: 100%; } .eh-event-details { grid-template-columns: 1fr; } .eh-event-details > div { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(81,58,44,.13); } .eh-event-details > div:last-child { border-bottom: 0; } .eh-event-article__content { font-size: .98rem; } }


/* =====================================================================
   v1.0.69 — 活動頁視覺優化與單則跑馬燈
   ===================================================================== */
/* 活動若未設定特色圖片，主視覺不再顯示空白占位框；內容改為集中閱讀的邀請式版面。 */
.eh-event-hero { position: relative; isolation: isolate; padding: clamp(64px, 9vw, 118px) 0; background: radial-gradient(circle at 78% 22%, rgba(226, 197, 176, .46), transparent 29%), linear-gradient(120deg, #fffaf5 0 48%, #f5e7da 100%); }
.eh-event-hero::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .32; background-image: linear-gradient(rgba(168,120,94,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(168,120,94,.075) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(90deg, #000, transparent 88%); }
.eh-event-hero__grid { gap: clamp(36px, 6vw, 82px); }
.eh-event-hero__copy .eh-eyebrow { display: inline-flex; align-items: center; gap: 8px; min-height: 30px; color: #8e5943; font-size: .68rem; letter-spacing: .18em; }
.eh-event-hero__copy .eh-eyebrow::before { width: 24px; height: 1px; content: ""; background: currentColor; }
.eh-event-hero h1 { max-width: 700px; margin: 16px 0 18px; font-size: clamp(2.25rem, 4.8vw, 4.45rem); letter-spacing: -.055em; text-wrap: balance; }
.eh-event-hero .eh-lead { max-width: 590px; color: #6e594b; font-size: clamp(.98rem, 1.5vw, 1.1rem); }
.eh-event-hero__visual { position: relative; min-height: min(36vw, 460px); margin: 0; border: 10px solid rgba(255,251,246,.76); border-radius: 30px; background: #ead8ca; box-shadow: 0 27px 70px rgba(83,57,42,.16); transform: rotate(1.1deg); }
.eh-event-hero__visual::after { position: absolute; inset: 0; pointer-events: none; content: ""; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(104,73,54,.12); }
.eh-event-hero__visual img { border-radius: 20px; object-position: center; }
.eh-event-hero--text-only .eh-event-hero__grid { grid-template-columns: 1fr; width: min(900px, calc(100% - 40px)); text-align: center; }
.eh-event-hero--text-only .eh-event-hero__copy { display: grid; justify-items: center; }
.eh-event-hero--text-only .eh-event-hero__copy .eh-lead { max-width: 680px; }
.eh-event-hero--text-only .eh-event-actions { justify-content: center; }
.eh-event-actions { margin-top: 30px; }
.eh-event-actions .eh-button { min-width: 132px; }
.eh-event-article { padding-top: clamp(34px, 5vw, 66px); }
.eh-event-details { overflow: hidden; margin-bottom: clamp(44px, 7vw, 76px); border: 1px solid rgba(127,90,66,.16); border-radius: 20px; background: rgba(255,255,255,.56); box-shadow: 0 12px 34px rgba(83,57,42,.055); }
.eh-event-details > div { position: relative; min-height: 112px; padding: 23px clamp(18px, 2vw, 28px); border-right: 1px solid rgba(127,90,66,.12); }
.eh-event-details > div::before { position: absolute; top: 22px; bottom: 22px; left: 0; width: 3px; content: ""; border-radius: 2px; background: #d4ab90; opacity: .68; }
.eh-event-details span { color: #966549; }
.eh-event-details strong { max-width: 24ch; font-size: 1.02rem; }
.eh-event-article__content { font-size: clamp(1rem, 1.45vw, 1.08rem); }
.eh-event-article__content > p:first-of-type { color: #513a2c; font-size: 1.13em; }
.eh-event-closing-actions { position: relative; overflow: hidden; border: 1px solid rgba(173,132,106,.16); background: linear-gradient(135deg, #f5e7da, #fbf5ef); box-shadow: 0 18px 42px rgba(83,57,42,.075); }
.eh-event-closing-actions::before { position: absolute; top: -90px; right: -70px; width: 230px; height: 230px; border: 1px solid rgba(168,120,94,.14); border-radius: 50%; content: ""; }
.eh-event-closing-actions > * { position: relative; }
@media (max-width: 900px) { .eh-event-hero__visual { min-height: 320px; transform: none; } .eh-event-details > div:nth-child(2) { border-right: 0; } }
@media (max-width: 600px) { .eh-event-hero { padding: 58px 0 65px; } .eh-event-hero h1 { font-size: clamp(2rem, 10vw, 3rem); } .eh-event-hero__visual { min-height: 260px; border-width: 7px; border-radius: 22px; } .eh-event-hero__visual img { border-radius: 15px; } .eh-event-hero--text-only .eh-event-hero__grid { width: min(100% - 32px, 900px); } .eh-event-actions .eh-button { min-width: 100%; } .eh-event-details { border-radius: 16px; } .eh-event-details > div::before { top: 17px; bottom: 17px; } }

/* 單一公告由網站右側選單方向往左側 Logo 方向滑過；輸入多行文字時才依序顯示多則。 */
.eh-site-marquee { height: 37px; display: flex; align-items: center; }
.eh-site-marquee__viewport { width: 100%; overflow: hidden; }
.eh-site-marquee__track { min-width: max-content; gap: 0; padding: 0; animation: eh-marquee-right-to-left 18s linear infinite; will-change: transform; }
.eh-site-marquee__item { display: inline-flex; align-items: center; min-height: 37px; padding: 0 max(26px, calc((100vw - 1160px) / 2)); }
/* .eh-site-marquee__item + .eh-site-marquee__item::before { margin-right: max(26px, calc((100vw - 1160px) / 2)); color: #e9bea0; content: "✦"; } */
.eh-site-marquee a.eh-site-marquee__track:hover, .eh-site-marquee a.eh-site-marquee__track:focus-visible { background: transparent; }
@keyframes eh-marquee-right-to-left { from { transform: translateX(100vw); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .eh-site-marquee__track { width: 100%; min-width: 0; justify-content: center; animation: none; } .eh-site-marquee__item { padding: 0 16px; } .eh-site-marquee__item:not(:first-child) { display: none; } }
@media (max-width: 640px) { .eh-site-marquee { height: 35px; } .eh-site-marquee__item { min-height: 35px; padding: 0 20px; font-size: .73rem; letter-spacing: .055em; } /* .eh-site-marquee__item + .eh-site-marquee__item::before { margin-right: 20px; } */ .eh-site-marquee__track { animation-duration: 15s; } }


/* =====================================================================
   v1.0.70 — 對齊 Header 的慢速公告跑馬燈與永久移除預約日曆
   ===================================================================== */
/* 跑馬燈軌道與 Header 的 .eh-container 同寬：由右側查看療癒服務處開始，向左側 Logo 處離場。 */
.eh-site-marquee { --eh-marquee-rail: min(1160px, calc(100vw - 40px)); }
.eh-site-marquee__viewport { width: var(--eh-marquee-rail); margin: 0 auto; }
.eh-site-marquee__track { animation: eh-marquee-header-rail 72s linear infinite; }
.eh-site-marquee__item { padding: 0 30px; }
.eh-site-marquee__item:first-child { padding-left: 0; }
/* .eh-site-marquee__item + .eh-site-marquee__item::before { margin-right: 30px; } */
/* 讓跑馬燈一開始就顯示在可視範圍內，而不是從右側界外慢慢滑入 */
@keyframes eh-marquee-header-rail { from { transform: translateX(50%); } to { transform: translateX(-100%); } }
@media (max-width: 640px) {
  .eh-site-marquee { --eh-marquee-rail: calc(100vw - 32px); }
  .eh-site-marquee__viewport { width: var(--eh-marquee-rail); }
  .eh-site-marquee__track { animation-duration: 60s; }
  .eh-site-marquee__item { padding-right: 20px; }
  /* .eh-site-marquee__item + .eh-site-marquee__item::before { margin-right: 20px; } */
}


/* =====================================================================
   v1.0.73 — 活動頁社群分享與可自訂跑馬燈背景色
   ===================================================================== */
.eh-site-marquee { background: var(--eh-marquee-background, #5a392b); }
.eh-event-share { flex-wrap: wrap; }
.eh-event-share .eh-product-share__button { transition: color .18s ease, transform .18s ease; }
.eh-event-share .eh-product-share__button:hover,
.eh-event-share .eh-product-share__button:focus-visible { color: #a8785e; transform: translateY(-1px); outline: none; }
@media (max-width: 600px) {
  .eh-event-share { gap: 12px !important; font-size: .9rem !important; }
}


/* =====================================================================
   v1.0.74 — 活動主視覺滿版背景圖片／影片與自訂文字顏色
   ===================================================================== */
.eh-event-hero--custom-media {
  display: flex;
  align-items: center;
  min-height: clamp(560px, 72vh, 780px);
  overflow: hidden;
  background: #2d241f;
  color: var(--eh-event-hero-text-color, #fffaf5);
}
.eh-event-hero--custom-media::before {
  z-index: 2;
  background: var(--eh-event-hero-overlay-color, rgba(255, 250, 245, .70));
  opacity: 1;
  mask-image: none;
}
.eh-event-hero__background-image,
.eh-event-hero__background-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.eh-event-hero__background-image {
  z-index: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.eh-event-hero__background-video {
  z-index: 1;
  object-fit: cover;
}
.eh-event-hero--custom-media .eh-event-hero__grid {
  position: relative;
  z-index: 3;
  width: min(900px, calc(100% - 40px));
  grid-template-columns: 1fr;
  margin: 0 auto;
  text-align: center;
}
.eh-event-hero--custom-media .eh-event-hero__copy {
  display: grid;
  justify-items: center;
}
.eh-event-hero--custom-media .eh-event-hero__copy .eh-eyebrow,
.eh-event-hero--custom-media h1,
.eh-event-hero--custom-media .eh-lead,
.eh-event-hero--custom-media .eh-event-share,
.eh-event-hero--custom-media .eh-event-countdown,
.eh-event-hero--custom-media .eh-event-countdown *,
.eh-event-hero--custom-media [class*="countdown"],
.eh-event-hero--custom-media [class*="countdown"] * {
  color: var(--eh-event-hero-text-color, #fffaf5);
}
.eh-event-hero--custom-media .eh-event-hero__copy .eh-eyebrow { justify-content: center; }
.eh-event-hero--custom-media .eh-event-hero__copy .eh-lead { max-width: 680px; }
.eh-event-hero--custom-media .eh-event-actions { justify-content: center; }
.eh-event-hero--custom-media .eh-event-actions .eh-button,
.eh-event-hero--custom-media .eh-event-actions .eh-button.eh-button--outline {
  border: 1px solid currentColor;
  background: rgba(255, 255, 255, .12);
  color: var(--eh-event-hero-text-color, #fffaf5);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .12);
  backdrop-filter: blur(4px);
}
.eh-event-hero--custom-media .eh-event-actions .eh-button:hover,
.eh-event-hero--custom-media .eh-event-actions .eh-button:focus-visible {
  border-color: currentColor;
  background: rgba(255, 255, 255, .22);
  color: var(--eh-event-hero-text-color, #fffaf5);
}
.eh-event-hero--custom-media .eh-event-share .eh-product-share__button:hover,
.eh-event-hero--custom-media .eh-event-share .eh-product-share__button:focus-visible {
  color: inherit;
}
@media (prefers-reduced-motion: reduce) {
  .eh-event-hero__background-video { display: none; }
}
@media (max-width: 600px) {
  .eh-event-hero--custom-media {
    min-height: 500px;
    padding: 54px 0 60px;
  }
  .eh-event-hero--custom-media .eh-event-hero__grid { width: min(100% - 32px, 900px); }
}


/* =====================================================================
   v1.0.75 — 活動主視覺貼齊跑馬燈、縮短媒體並置中文字
   ===================================================================== */
/* 跑馬燈後直接開始活動主視覺，避免其間出現任何留白。 */
.eh-site-marquee + .eh-event-page,
.eh-site-marquee + main.eh-event-page,
.eh-event-page {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.eh-site-marquee + .eh-event-page .eh-event-hero--custom-media {
  margin-top: 0 !important;
}

/* 自訂圖片／影片主視覺維持全寬，並縮至原自訂版高度的約 50%。 */
.eh-event-hero--custom-media {
  display: block;
  min-height: clamp(280px, 36vw, 390px);
  margin: 0;
  padding: 0;
}
.eh-event-hero--custom-media .eh-event-hero__grid {
  display: grid;
  min-height: clamp(280px, 36vw, 390px);
  height: auto;
  align-items: center;
  align-content: center;
  justify-items: center;
  margin: 0 auto;
  padding-top: 0;
  padding-bottom: 0;
}
.eh-event-hero--custom-media .eh-event-hero__copy {
  width: 100%;
  margin: 0;
  text-align: center;
}

/* 後台「文字顏色」一律控制主視覺標題、社群及按鈕的可見文字。 */
.eh-event-hero--custom-media,
.eh-event-hero--custom-media .eh-event-hero__copy,
.eh-event-hero--custom-media .eh-event-hero__copy .eh-eyebrow,
.eh-event-hero--custom-media .eh-event-hero__copy .eh-eyebrow::before,
.eh-event-hero--custom-media h1,
.eh-event-hero--custom-media .eh-lead,
.eh-event-hero--custom-media .eh-event-share,
.eh-event-hero--custom-media .eh-event-share *,
.eh-event-hero--custom-media .eh-event-countdown,
.eh-event-hero--custom-media .eh-event-countdown *,
.eh-event-hero--custom-media [class*="countdown"],
.eh-event-hero--custom-media [class*="countdown"] * {
  color: var(--eh-event-hero-text-color, #fffaf5) !important;
}
.eh-event-hero--custom-media .eh-event-actions .eh-button,
.eh-event-hero--custom-media .eh-event-actions .eh-button.eh-button--outline {
  border-color: var(--eh-event-hero-text-color, #fffaf5) !important;
  background: rgba(255, 255, 255, .12) !important;
  color: var(--eh-event-hero-text-color, #fffaf5) !important;
}
.eh-event-hero--custom-media .eh-event-actions .eh-button:hover,
.eh-event-hero--custom-media .eh-event-actions .eh-button:focus-visible {
  border-color: var(--eh-event-hero-text-color, #fffaf5) !important;
  background: rgba(255, 255, 255, .24) !important;
  color: var(--eh-event-hero-text-color, #fffaf5) !important;
}
.eh-event-hero--custom-media .eh-event-share .eh-product-share__button:hover,
.eh-event-hero--custom-media .eh-event-share .eh-product-share__button:focus-visible {
  color: var(--eh-event-hero-text-color, #fffaf5) !important;
}

@media (max-width: 600px) {
  .eh-event-hero--custom-media,
  .eh-event-hero--custom-media .eh-event-hero__grid {
    min-height: 250px;
  }
}


/* =====================================================================
   v1.0.76 — 活動主視覺可調高度與背景遮罩透明度
   ===================================================================== */
.eh-event-hero--custom-media {
  min-height: var(--eh-event-hero-height, 360px);
}
.eh-event-hero--custom-media::before {
  background: var(--eh-event-hero-overlay-color, #1f1712);
  opacity: var(--eh-event-hero-overlay-opacity, .62);
}
.eh-event-hero--custom-media .eh-event-hero__grid {
  min-height: var(--eh-event-hero-height, 360px);
}
@media (max-width: 600px) {
  .eh-event-hero--custom-media,
  .eh-event-hero--custom-media .eh-event-hero__grid {
    min-height: max(250px, var(--eh-event-hero-height, 360px));
  }
}


/* 活動／商品社群分享操作提示 */
.eh-product-share { position: relative; }
.eh-share-notice {
  position: absolute;
  z-index: 8;
  top: calc(100% + 10px);
  left: 0;
  padding: 7px 10px;
  border: 1px solid rgba(81,58,44,.16);
  border-radius: 8px;
  background: rgba(255,251,246,.96);
  color: #513a2c;
  font: 600 .76rem/1.25 var(--sans);
  letter-spacing: .02em;
  box-shadow: 0 9px 22px rgba(47,31,22,.14);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .18s ease, transform .18s ease;
  white-space: nowrap;
}
.eh-share-notice.is-visible { opacity: 1; transform: translateY(0); }
.eh-event-hero--custom-media .eh-share-notice { color: #513a2c !important; }


/* =====================================================================
   v1.0.77 — 活動列表與歷史活動版面
   ===================================================================== */
.eh-events-archive__content { padding: clamp(62px, 9vw, 120px) 0 clamp(74px, 10vw, 132px); }
.eh-events-archive__section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 26px;
  margin: 0 0 clamp(25px, 4vw, 42px);
}
.eh-events-archive__section-heading .eh-eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #966549; font-size: .67rem; letter-spacing: .16em; }
.eh-events-archive__section-heading .eh-eyebrow::before { width: 25px; height: 1px; content: ""; background: currentColor; }
.eh-events-archive__section-heading h2 { margin: 10px 0 8px; color: #513a2c; font: clamp(1.7rem, 3.2vw, 2.55rem)/1.25 var(--serif); letter-spacing: -.035em; }
.eh-events-archive__section-heading p { max-width: 620px; margin: 0; color: #766153; font-size: .98rem; line-height: 1.85; }
.eh-events-archive__count { flex: 0 0 auto; padding: 8px 12px; border: 1px solid rgba(150,101,73,.23); border-radius: 999px; color: #966549; font: 700 .74rem/1 var(--sans); letter-spacing: .06em; white-space: nowrap; }
.eh-events-archive__past { position: relative; margin-top: clamp(70px, 10vw, 130px); padding-top: clamp(54px, 8vw, 96px); }
.eh-events-archive__past::before { position: absolute; top: 0; left: 50%; width: min(100%, 1160px); height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(150,101,73,.3) 16%, rgba(150,101,73,.3) 84%, transparent); transform: translateX(-50%); }
.eh-events-grid--past .eh-event-card { border-color: rgba(145,113,92,.2); background: rgba(255,255,255,.76); box-shadow: 0 10px 28px rgba(83,57,42,.045); }
.eh-events-grid--past .eh-event-card__visual { position: relative; background: #ddcbbc; }
.eh-events-grid--past .eh-event-card__visual img { filter: saturate(.76) contrast(.96); }
.eh-event-card__archive-badge { position: absolute; top: 13px; left: 13px; z-index: 1; padding: 7px 10px; border: 1px solid rgba(255,255,255,.65); border-radius: 999px; background: rgba(81,58,44,.72); color: #fffaf5; font: 700 .66rem/1 var(--sans); letter-spacing: .08em; box-shadow: 0 4px 12px rgba(26,17,13,.14); }
.eh-events-grid--past .eh-event-card__date { color: #9b7964; }
.eh-events-grid--past .eh-event-card__location { color: #8d6a56; }
.eh-events-archive__empty-past { max-width: 620px; margin: 0; padding: 28px 30px; border: 1px dashed rgba(150,101,73,.28); border-radius: 16px; color: #766153; background: rgba(255,255,255,.38); line-height: 1.85; }
@media (max-width: 700px) {
  .eh-events-archive__section-heading { display: block; }
  .eh-events-archive__count { display: inline-flex; margin-top: 17px; }
  .eh-events-archive__past { margin-top: 62px; padding-top: 52px; }
}


/* =====================================================================
   v1.0.78 — 活動美國／台灣雙時區資訊
   ===================================================================== */
.eh-event-details--dual-time { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.eh-event-details--dual-time > div { min-width: 0; }
.eh-event-details--dual-time span { letter-spacing: .055em; white-space: nowrap; }
.eh-event-details--dual-time strong { font-size: .91rem; overflow-wrap: normal; white-space: nowrap; }
@media (max-width: 1120px) {
  .eh-event-details--dual-time { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eh-event-details--dual-time > div:nth-child(2n) { border-right: 0; }
  .eh-event-details--dual-time > div:nth-child(-n+2) { border-bottom: 1px solid rgba(127,90,66,.12); }
}
@media (max-width: 600px) {
  .eh-event-details--dual-time { grid-template-columns: 1fr; }
  .eh-event-details--dual-time > div,
  .eh-event-details--dual-time > div:nth-child(2n) { border-right: 0; }
  .eh-event-details--dual-time > div:nth-child(-n+2) { border-bottom: 1px solid rgba(127,90,66,.12); }
  .eh-event-details--dual-time > div:last-child { border-bottom: 0; }
}


/* =====================================================================
   v1.0.79 — 活動分類篩選與歷史活動排序標籤
   ===================================================================== */
.eh-events-filter {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 clamp(38px, 5vw, 58px);
  padding: 15px 0 16px;
  border-top: 1px solid rgba(150,101,73,.18);
  border-bottom: 1px solid rgba(150,101,73,.18);
}
.eh-events-filter__label { flex: 0 0 auto; color: #6d4d3d; font: 700 .75rem/1 var(--sans); letter-spacing: .11em; }
.eh-events-filter__links { display: flex; flex-wrap: wrap; gap: 8px; }
.eh-events-filter__links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid rgba(150,101,73,.24);
  border-radius: 999px;
  color: #795c49;
  background: rgba(255,255,255,.45);
  font: 600 .76rem/1 var(--sans);
  letter-spacing: .025em;
  text-decoration: none;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
.eh-events-filter__links a:hover,
.eh-events-filter__links a:focus-visible { border-color: #a8785e; color: #513a2c; background: #fffaf5; transform: translateY(-1px); outline: none; }
.eh-events-filter__links a.is-active { border-color: #6f4938; color: #fffaf5; background: #6f4938; box-shadow: 0 5px 14px rgba(81,58,44,.14); }
.eh-event-card__category-badge {
  position: absolute;
  z-index: 1;
  right: 13px;
  bottom: 13px;
  max-width: calc(100% - 26px);
  overflow: hidden;
  padding: 6px 9px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 999px;
  color: #513a2c;
  background: rgba(255,250,245,.89);
  font: 700 .64rem/1 var(--sans);
  letter-spacing: .06em;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(26,17,13,.1);
}
.eh-event-card--past .eh-event-card__category-badge { color: #513a2c; background: rgba(255,250,245,.92); }
@media (max-width: 700px) {
  .eh-events-filter { display: block; margin-bottom: 34px; }
  .eh-events-filter__label { display: block; margin: 0 0 10px; }
  .eh-events-filter__links { flex-wrap: nowrap; overflow-x: auto; padding: 1px 1px 5px; scrollbar-width: thin; }
  .eh-events-filter__links a { flex: 0 0 auto; }
}


/* =====================================================================
   v1.0.80 — 活動連結複製與 QR Code 分享
   ===================================================================== */
.eh-event-utility-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 18px; }
.eh-event-utility-share__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: inherit;
  background: rgba(255,255,255,.08);
  font: 600 .76rem/1 var(--sans);
  letter-spacing: .025em;
  cursor: pointer;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.eh-event-utility-share__button:hover,
.eh-event-utility-share__button:focus-visible { color: #fffaf5; background: #6f4938; transform: translateY(-1px); outline: none; }
.eh-event-utility-share__notice { flex-basis: 100%; min-height: 1.2em; color: inherit; font: 600 .73rem/1.4 var(--sans); opacity: 0; transition: opacity .18s ease; }
.eh-event-utility-share__notice.is-visible { opacity: .92; }
.eh-event-qr-dialog[hidden] { display: none; }
.eh-event-qr-dialog {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(39,27,20,.62);
  backdrop-filter: blur(5px);
}
.eh-event-qr-dialog__panel {
  position: relative;
  width: min(100%, 410px);
  padding: clamp(28px, 6vw, 42px);
  border: 1px solid rgba(150,101,73,.2);
  border-radius: 20px;
  color: #513a2c;
  background: #fffaf5;
  text-align: center;
  box-shadow: 0 24px 70px rgba(27,17,12,.34);
}
.eh-event-qr-dialog__panel .eh-eyebrow { color: #966549; font-size: .64rem; }
.eh-event-qr-dialog__panel h2 { margin: 13px 0 22px; color: #513a2c; font: clamp(1.7rem, 5vw, 2.25rem)/1.25 var(--serif); letter-spacing: -.035em; }
.eh-event-qr-dialog__panel > p { margin: 18px auto; color: #766153; font-size: .88rem; line-height: 1.7; }
.eh-event-qr-dialog__code {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 272px);
  aspect-ratio: 1;
  margin: 0 auto;
  padding: 10px;
  border: 1px solid rgba(150,101,73,.18);
  border-radius: 14px;
  background: #fff;
}
.eh-event-qr-dialog__code img { display: block; width: 100%; height: 100%; object-fit: contain; }
.eh-event-qr-dialog__code span { position: absolute; inset: 0; display: grid; place-items: center; padding: 25px; color: #795c49; font: 600 .77rem/1.5 var(--sans); }
.eh-event-qr-dialog__code span[hidden] { display: none; }
.eh-event-qr-dialog__panel .eh-event-utility-share__button { border-color: #6f4938; color: #fffaf5; background: #6f4938; }
.eh-event-qr-dialog__panel .eh-event-utility-share__button:hover,
.eh-event-qr-dialog__panel .eh-event-utility-share__button:focus-visible { background: #513a2c; }
.eh-event-qr-dialog__status { display: block; min-height: 1.25em; margin-top: 12px; color: #795c49; font: 600 .73rem/1.4 var(--sans); }
.eh-event-qr-dialog__close {
  position: absolute;
  top: 10px;
  right: 12px;
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #6f4938;
  background: transparent;
  font: 400 1.7rem/1 var(--sans);
  cursor: pointer;
}
.eh-event-qr-dialog__close:hover,
.eh-event-qr-dialog__close:focus-visible { color: #fffaf5; background: #6f4938; outline: none; }
body.eh-qr-dialog-open { overflow: hidden; }
@media (max-width: 600px) {
  .eh-event-utility-share__button { min-height: 38px; padding: 9px 13px; }
  .eh-event-qr-dialog { padding: 14px; }
}


/* =====================================================================
   v1.0.81 — QR Code 對話框全頁層級修正
   ===================================================================== */
.eh-event-page > .eh-event-qr-dialog {
  position: fixed !important;
  z-index: 2147483000 !important;
  inset: 0 !important;
  isolation: isolate;
  overflow: auto;
  background: rgba(39,27,20,.72) !important;
}
.eh-event-page > .eh-event-qr-dialog .eh-event-qr-dialog__panel {
  position: relative;
  z-index: 1;
  isolation: isolate;
  opacity: 1 !important;
  background: #fffaf5 !important;
}
.eh-event-page > .eh-event-qr-dialog .eh-event-qr-dialog__panel::before,
.eh-event-page > .eh-event-qr-dialog .eh-event-qr-dialog__panel::after { content: none !important; }
@media (max-width: 600px) {
  .eh-event-page > .eh-event-qr-dialog { align-items: center; padding: 14px; }
  .eh-event-page > .eh-event-qr-dialog .eh-event-qr-dialog__panel { max-height: calc(100dvh - 28px); overflow-y: auto; }
}


/* =====================================================================
   v1.0.81 — 雙時區資訊列閱讀間距優化
   ===================================================================== */
.eh-event-details--dual-time > div { gap: 12px; padding-top: 27px; padding-bottom: 27px; }
.eh-event-details--dual-time span { letter-spacing: .085em; }
.eh-event-details--dual-time strong { letter-spacing: .028em; word-spacing: .16em; line-height: 1.65; }
@media (max-width: 1120px) {
  .eh-event-details--dual-time > div { padding-top: 25px; padding-bottom: 25px; }
}
@media (max-width: 600px) {
  .eh-event-details--dual-time strong { white-space: normal; }
}


/* 行動裝置：雙時區與分享按鈕觸控最佳化 */
.eh-event-utility-share__button,
.eh-event-share .eh-product-share__button { touch-action: manipulation; }
@media (max-width: 600px) {
  .eh-event-utility-share__button { min-height: 44px; padding: 11px 15px; }
  .eh-event-share { gap: 4px !important; }
  .eh-event-share .eh-product-share__button { display: inline-flex !important; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 10px !important; align-items: center; justify-content: center; }
  .eh-event-page > .eh-event-qr-dialog { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
}


/* v1.0.82 — 手機版美國時間固定單行 */
@media (max-width: 600px) {
  .eh-event-details--dual-time strong {
    overflow-wrap: normal;
    white-space: nowrap !important;
    letter-spacing: .012em;
    word-spacing: .04em;
    font-size: clamp(.78rem, 3.75vw, .96rem);
  }
}


/* =====================================================================
   v1.0.85 — 首頁服務卡、結帳預約時段與最新活動短代碼
   ===================================================================== */

/* 首頁四張療癒服務卡：圖片容器提高 30%，但背景圖固定以卡片寬度顯示，不會因容器增高而放大。 */
.home .eh-service-card {
  border-radius: 18px;
}
.home .eh-service-visual {
  min-height: 0;
  aspect-ratio: 1240 / 998.4;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-color: #f3e5d8;
}

/* 行動版首頁服務卡：一致的內容間距、標題行數與價格／按鈕排列，避免四張卡片顯得凌亂。 */
@media (max-width: 760px) {
  .home .eh-service-grid > ul.products {
    gap: 16px;
  }
  .home .eh-service-card {
    min-height: 100%;
  }
  .home .eh-service-content {
    display: grid;
    grid-template-rows: minmax(0, auto) 1fr auto;
    gap: 12px;
    padding: 18px;
  }
  .home .eh-service-card h3 {
    min-height: 2.9em;
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.42;
  }
  .home .eh-service-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin: 0;
  }
  .home .eh-price {
    min-width: 0;
    font-size: 1.38rem;
    line-height: 1.1;
    white-space: nowrap;
  }
  .home .eh-service-bottom .eh-button {
    width: auto;
    min-height: 40px;
    padding: 9px 13px;
    font-size: .78rem;
  }
}

@media (max-width: 380px) {
  .home .eh-service-content {
    padding: 17px;
  }
  .home .eh-service-bottom {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .home .eh-service-bottom .eh-button {
    width: 100%;
  }
}

/* WooCommerce 結帳頁的希望預約時段：與既有奶茶色系、付款區和手機排版一致。 */
.eh-checkout-booking {
  clear: both;
  margin: 26px 0 8px;
  padding: 22px;
  border: 1px solid #e3cdbb;
  border-radius: 18px;
  background: linear-gradient(135deg, #fffaf5, #f8ede2);
  box-shadow: 0 10px 26px rgba(83, 57, 42, .045);
}
.eh-checkout-booking__intro {
  margin-bottom: 17px;
}
.eh-checkout-booking__intro h3 {
  margin: 0 0 6px;
  color: var(--ink);
  font: 1.38rem/1.35 var(--serif);
}
.eh-checkout-booking__intro p {
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.75;
}
.eh-checkout-booking__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.eh-checkout-booking__fields .form-row {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
.eh-checkout-booking__fields label {
  display: block;
  margin-bottom: 7px;
  color: var(--brown);
  font-size: .86rem;
  font-weight: 700;
}
.eh-checkout-booking__fields input,
.eh-checkout-booking__fields select {
  min-height: 47px !important;
  border-color: #dfc8b5 !important;
  background: rgba(255,255,255,.92) !important;
}
.eh-checkout-booking__fields input:focus,
.eh-checkout-booking__fields select:focus {
  border-color: var(--clay) !important;
  outline: 3px solid rgba(168,120,94,.16);
}
.eh-order-booking-summary {
  margin-top: 28px;
}
.eh-order-booking-summary h2 {
  margin: 0 0 13px;
  color: var(--ink);
  font: 1.6rem/1.35 var(--serif);
}
@media (max-width: 580px) {
  .eh-checkout-booking {
    margin-top: 22px;
    padding: 18px;
    border-radius: 15px;
  }
  .eh-checkout-booking__fields {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* [eh_latest_healing_events]：重用既有活動卡設計，並提供可獨立插入頁面／區塊編輯器的標題與空白狀態。 */
.eh-latest-events {
  margin: clamp(36px, 6vw, 72px) 0;
}
.eh-latest-events__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 clamp(22px, 3vw, 34px);
}
.eh-latest-events__header h2 {
  margin: 9px 0 0;
  color: var(--ink);
  font: clamp(1.8rem, 3.2vw, 2.7rem)/1.25 var(--serif);
  letter-spacing: -.035em;
}
.eh-latest-events__card h3 {
  margin: 10px 0 9px;
  color: var(--ink);
  font: 1.42rem/1.35 var(--serif);
}
.eh-latest-events__card h3 a:hover {
  color: #8e5943;
}
.eh-latest-events__time {
  margin-bottom: 10px !important;
  color: #8e5943 !important;
  font-size: .82rem !important;
  font-weight: 700;
}
.eh-latest-events__empty {
  margin: 0;
  padding: 27px 30px;
  border: 1px dashed rgba(150,101,73,.28);
  border-radius: 16px;
  background: rgba(255,255,255,.45);
  color: var(--muted);
  line-height: 1.85;
}
@media (max-width: 700px) {
  .eh-latest-events__header {
    display: block;
  }
}


/* =====================================================================
   v1.0.86 — 最新療癒活動分類篩選與分頁
   ===================================================================== */
.eh-latest-events__filters {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 clamp(25px, 4vw, 38px);
  padding: 14px 0;
  border-top: 1px solid rgba(150, 101, 73, .18);
  border-bottom: 1px solid rgba(150, 101, 73, .18);
}
.eh-latest-events__filters > span {
  flex: 0 0 auto;
  color: #6d4d3d;
  font: 700 .75rem/1 var(--sans);
  letter-spacing: .11em;
}
.eh-latest-events__filters > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.eh-latest-events__filters a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid rgba(150, 101, 73, .24);
  border-radius: 999px;
  background: rgba(255, 255, 255, .45);
  color: #795c49;
  font: 600 .76rem/1 var(--sans);
  letter-spacing: .025em;
  text-decoration: none;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
.eh-latest-events__filters a:hover,
.eh-latest-events__filters a:focus-visible {
  border-color: #a8785e;
  background: #fffaf5;
  color: #513a2c;
  outline: none;
  transform: translateY(-1px);
}
.eh-latest-events__filters a.is-active {
  border-color: #6f4938;
  background: #6f4938;
  color: #fffaf5;
  box-shadow: 0 5px 14px rgba(81, 58, 44, .14);
}
.eh-latest-events__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: clamp(28px, 4vw, 42px);
  color: var(--muted);
  font-size: .88rem;
}
.eh-latest-events__page-link {
  display: inline-flex;
  align-items: center;
  min-height: 39px;
  padding: 9px 14px;
  border: 1px solid rgba(150, 101, 73, .28);
  border-radius: 999px;
  background: #fffaf5;
  color: #795c49;
  font-weight: 700;
  text-decoration: none;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
.eh-latest-events__page-link:hover,
.eh-latest-events__page-link:focus-visible {
  border-color: var(--clay);
  background: var(--clay);
  color: #fff;
  outline: none;
  transform: translateY(-1px);
}
@media (max-width: 700px) {
  .eh-latest-events__filters {
    display: block;
  }
  .eh-latest-events__filters > span {
    display: block;
    margin: 0 0 10px;
  }
  .eh-latest-events__filters > div {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 1px 1px 5px;
    scrollbar-width: thin;
  }
  .eh-latest-events__filters a {
    flex: 0 0 auto;
  }
  .eh-latest-events__pagination {
    flex-wrap: wrap;
    gap: 10px 12px;
  }
}


/* =====================================================================
   v1.0.87 — 首頁療癒服務圖片填滿修正
   ===================================================================== */
/*
 * v1.0.85 將服務卡圖片容器提高 30%，但以 background-size: 100% auto
 * 固定圖片寬度，導致原始圖片高度不足時露出底色。改為 cover 後，圖片會
 * 維持原始比例並填滿整個容器；上下超出的部分會從中央自然裁切，不再出現空白帶。
 */
.home .eh-service-visual {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


/* =====================================================================
   v1.0.88 — 首頁療癒服務圖片完整比例與窄螢幕修正
   ===================================================================== */
/*
 * 服務商品原始圖稿採 1240 × 768 構圖。v1.0.85 為增加容器高度改為 1240 / 998.4，
 * v1.0.87 再用 cover 填滿，造成直式圖片在窄螢幕被上下裁切。
 * 本版將首頁服務卡恢復為圖稿原始比例，讓圖片完整、正常填滿，不留白也不需放大裁切。
 */
.home .eh-service-visual {
  min-height: 0;
  aspect-ratio: 1240 / 768;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #f3e5d8;
}

/* 平板與手機延續同一個圖稿比例；不要用更高的固定框裁切服務圖片。 */
@media (max-width: 1024px) {
  .home .eh-service-visual {
    min-height: 0;
    aspect-ratio: 1240 / 768;
  }
}

/* 行動裝置的商品卡在 2 欄與單欄切換時，維持圖片與內容上下銜接且卡片高度一致。 */
@media (max-width: 760px) {
  .home .eh-service-grid > ul.products {
    align-items: stretch;
  }
  .home .eh-service-card__visual-link {
    display: block;
    overflow: hidden;
  }
  .home .eh-service-visual {
    aspect-ratio: 1240 / 768;
  }
}


/* =====================================================================
   v1.0.89 — 首頁療癒服務圖片加高與卡片圓角微調
   ===================================================================== */
/*
 * 外框高度比原始 1240:768 圖稿提高 30%（1240:998.4）。
 * 圖稿本身以 contain 完整置中，不會被拉伸或裁切；上下延展區使用同一張圖的
 * 放大柔焦背景補足，避免出現單色空白帶，也不會把主圖內容放大。
 */
.home .eh-service-card {
  border-radius: 14px;
}
.home .eh-service-card__visual-link {
  overflow: hidden;
}
.home .eh-service-visual {
  isolation: isolate;
  overflow: hidden;
  min-height: 0;
  aspect-ratio: 1240 / 998.4;
  background-color: #f3e5d8;
}
.home .eh-service-visual::before,
.home .eh-service-visual::after {
  position: absolute;
  inset: 0;
  display: block;
  content: '';
  pointer-events: none;
}
.home .eh-service-visual::before {
  z-index: -2;
  background-image: inherit;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  filter: blur(16px) saturate(.92);
  transform: scale(1.08);
}
.home .eh-service-visual::after {
  z-index: -1;
  background-image: inherit;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.home .eh-service-visual > .eh-product-badge {
  z-index: 10;
}

/* 平板與手機使用同樣完整圖稿策略，避免較窄畫面重新出現裁切或空白帶。 */
@media (max-width: 1024px) {
  .home .eh-service-visual {
    min-height: 0;
    aspect-ratio: 1240 / 998.4;
  }
}

/* =====================================================================
   v1.0.92 — /healing-offer/ 療癒服務商品卡視覺調整
   ===================================================================== */
/*
 * 商品展示框以原圖稿 1240:768 為基準提高 30% 至 1240:998.4。
 * 清晰主圖使用 contain 維持原始構圖比例；上下延展區使用同張圖片
 * 的柔焦 cover 層補足，不會露出空白、也不會拉伸或裁切清晰主圖。
 */
.eh-healing-offer .eh-service-card {
  border-radius: 18px; /* 原 26px 縮減約 30% */
  overflow: hidden;
}
.eh-healing-offer .eh-service-card__visual-link {
  display: block;
  overflow: hidden;
}
.eh-healing-offer .eh-service-visual {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 0;
  aspect-ratio: 1240 / 998.4;
  background-color: #f3e5d8;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.eh-healing-offer .eh-service-visual::before,
.eh-healing-offer .eh-service-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  background-image: inherit;
  background-position: center;
  background-repeat: no-repeat;
}
.eh-healing-offer .eh-service-visual::before {
  z-index: 0;
  background-size: cover;
  filter: blur(18px) saturate(.9);
  transform: scale(1.08);
}
.eh-healing-offer .eh-service-visual::after {
  z-index: 1;
  background-size: contain;
}
.eh-healing-offer .eh-service-visual > .eh-product-badge {
  position: relative;
  z-index: 2;
}
@media (max-width: 900px) {
  .eh-healing-offer .eh-service-visual { aspect-ratio: 1240 / 998.4; }
}
@media (max-width: 580px) {
  .eh-healing-offer .eh-service-card { border-radius: 16px; }
  .eh-healing-offer .eh-service-visual { aspect-ratio: 1240 / 998.4; }
}

/* 我的預約：取消／改期表單保持易讀，並在窄螢幕自然換行。 */
.eh-int-booking-form { margin: 0 0 18px; padding: 14px; border: 1px solid #ead8ca; border-radius: 12px; background: #fffaf5; }
.eh-int-booking-form h4 { margin: 0 0 10px; color: var(--ink); font: 1rem var(--serif); }
.eh-int-booking-form label { display: block; margin: 0 0 9px; color: var(--muted); font-size: .85rem; }
.eh-int-booking-form input, .eh-int-booking-form select, .eh-int-booking-form textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 5px; padding: 8px 10px; border: 1px solid #dfcabb; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; }
.eh-int-booking-form .button { margin-top: 2px; }
.eh-int-booking-account small { color: #8a5a2b; }

/* =====================================================================
   v1.0.93 — 商品操作與 Healing Offer 圖片框修復
   ===================================================================== */
/*
 * v1.0.92 的 Healing Offer 圖框為原圖加高 30%（1240:998.4）。
 * 本版下修 10 個百分點，改為原圖加高 20%（1240:921.6）。清晰主圖仍
 * 保持 contain 等比例；同圖柔焦延展層繼續填滿上下額外高度。
 */
.eh-healing-offer .eh-service-visual {
  aspect-ratio: 1240 / 921.6;
}
@media (max-width: 900px) {
  .eh-healing-offer .eh-service-visual { aspect-ratio: 1240 / 921.6; }
}
@media (max-width: 580px) {
  .eh-healing-offer .eh-service-visual { aspect-ratio: 1240 / 921.6; }
}

/* WooCommerce sold-individually 商品的 quantity 是 hidden input；不顯示無效空框或加減鈕。 */
.single-product form.cart .quantity[hidden],
.single-product form.cart .quantity:has(input[type="hidden"]) {
  display: none !important;
}
.single-product .eh-product-cart-note {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.55;
}

/* 讓 shortcode 版 Cart/Checkout 與主題內容區一致，不受 Woo Blocks 骨架樣式影響。 */
.woocommerce .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart-form, .cart-collaterals { max-width: 100%; }

/* =====================================================================
   v1.0.94 — 純視覺修復：Checkout 寬度與首頁服務圖片
   本段不修改 PHP、JavaScript、預約、購物車、退款或帳戶功能。
   ===================================================================== */

/*
 * Checkout：以單欄、寬內容容器避免 Billing／Booking／Order Review 被 CSS Grid
 * 壓縮成細欄。桌機、平板、手機皆採同一閱讀順序：帳單資訊 → 預約時段 → 訂單摘要。
 */
body.woocommerce-checkout .eh-page-content .eh-container {
  width: min(100% - 48px, 1240px);
}
body.woocommerce-checkout .eh-woocommerce-content {
  max-width: 1120px;
  margin-inline: auto;
}
body.woocommerce-checkout form.checkout {
  display: block !important;
  width: 100%;
  max-width: none;
}
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
  float: none !important;
  width: 100% !important;
  max-width: none;
  box-sizing: border-box;
}
body.woocommerce-checkout #customer_details {
  margin: 0 0 32px;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(135, 94, 67, .16);
  border-radius: 22px;
  background: rgba(255, 250, 245, .88);
  box-shadow: 0 16px 38px rgba(83, 57, 42, .055);
}
body.woocommerce-checkout #customer_details .col2-set,
body.woocommerce-checkout .col2-set {
  display: block;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
  float: none !important;
  width: 100% !important;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
body.woocommerce-checkout #billing_email_field,
body.woocommerce-checkout #billing_phone_field {
  grid-column: 1 / -1;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper input.input-text,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper select,
body.woocommerce-checkout .eh-checkout-booking__fields input,
body.woocommerce-checkout .eh-checkout-booking__fields select {
  width: 100% !important;
  min-height: 52px !important;
  box-sizing: border-box;
  font-size: 1rem;
}
body.woocommerce-checkout .eh-checkout-booking {
  width: 100%;
  margin: 30px 0 0;
  padding: clamp(22px, 3vw, 32px);
  border-radius: 18px;
  box-sizing: border-box;
}
body.woocommerce-checkout .eh-checkout-booking__fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}
body.woocommerce-checkout #order_review_heading {
  margin: 0 0 14px;
  padding: 0;
  color: var(--ink);
  font: clamp(1.65rem, 2.5vw, 2.2rem)/1.25 var(--serif);
}
body.woocommerce-checkout #order_review {
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(135, 94, 67, .16);
  border-radius: 22px;
  background: #fffaf5;
  box-shadow: 0 16px 38px rgba(83, 57, 42, .055);
}
body.woocommerce-checkout #order_review .shop_table {
  width: 100%;
  margin: 0 0 22px;
}
body.woocommerce-checkout .woocommerce-checkout-payment {
  padding: clamp(18px, 2.5vw, 30px);
  border-radius: 16px;
}
@media (max-width: 680px) {
  body.woocommerce-checkout .eh-page-content .eh-container { width: min(100% - 28px, 1240px); }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review { padding: 20px; border-radius: 16px; }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .eh-checkout-booking__fields { grid-template-columns: 1fr; gap: 15px; }
  body.woocommerce-checkout #billing_email_field,
  body.woocommerce-checkout #billing_phone_field { grid-column: auto; }
}

/*
 * 首頁服務卡：原先圖片框較原圖加高約 30%，本版縮為加高約 22%
 * (1240 × 936.96)。清晰主圖維持 contain，不縮放變形；柔焦背景前移
 * 到可見層，完整覆蓋上下延展區，消除圖像下方露出的單色空白帶。
 */
.home .eh-service-visual {
  aspect-ratio: 1240 / 936.96;
}
.home .eh-service-visual::before {
  z-index: 0;
}
.home .eh-service-visual::after {
  z-index: 1;
}
.home .eh-service-visual > .eh-product-badge {
  z-index: 2;
}
@media (max-width: 1024px) {
  .home .eh-service-visual { aspect-ratio: 1240 / 936.96; }
}


/* =====================================================================
   v1.0.95 — 商品頁主圖、服務卡 fallback 與 CTA 體驗優化
   本段僅調整前端呈現，不修改購物車、付款、預約、退款或帳戶邏輯。
   ===================================================================== */

/* 商品主圖：穩定首屏比例與背景，保留 WooCommerce zoomImg 的隱藏放大層行為。 */
body.single-product .woocommerce-product-gallery {
  overflow: hidden;
  min-width: 0;
  border: 1px solid rgba(218, 194, 175, .72);
  border-radius: 26px;
  background: #fffaf6;
  box-shadow: 0 16px 34px rgba(83, 57, 42, .055);
}
body.single-product .woocommerce-product-gallery .flex-viewport {
  overflow: hidden !important;
  min-height: clamp(300px, 42vw, 560px);
  background: linear-gradient(135deg, #f5e9de, #fffaf6 58%, #ead8ca);
}
body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  display: flex !important;
  min-height: clamp(300px, 42vw, 560px);
  align-items: center;
  justify-content: center;
  background: transparent;
}
body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img.wp-post-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: clamp(300px, 42vw, 560px);
  object-fit: contain;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative;
  z-index: 1;
}
body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image .zoomImg {
  z-index: 2;
  pointer-events: none;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs {
  display: flex;
  gap: 9px;
  margin: 0;
  padding: 13px;
  background: rgba(255, 250, 246, .92);
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs li {
  float: none;
  width: 64px;
  margin: 0;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  width: 64px;
  height: 52px;
  border: 1px solid rgba(168, 120, 94, .24);
  border-radius: 10px;
  object-fit: cover;
  opacity: .66;
  transition: opacity .18s ease, border-color .18s ease;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs .flex-active,
body.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover {
  border-color: var(--clay);
  opacity: 1;
}

/* 缺少商品圖時，使用清楚的品牌 fallback，不讓訪客誤認為內容載入失敗。 */
.eh-service-visual--no-image {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 34%, rgba(255,255,255,.82), transparent 30%),
    linear-gradient(135deg, #ead8ca, #f8eee6 55%, #d9b9a3);
}
.eh-service-visual__fallback {
  display: inline-flex;
  min-width: 116px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(168, 120, 94, .34);
  border-radius: 999px;
  padding: 8px 16px;
  background: rgba(255, 251, 246, .68);
  color: var(--brown);
  font: 700 .78rem/1 var(--sans);
  letter-spacing: .12em;
}

/* 服務卡 CTA：保持既有連結與商品流程，只提升可辨識度和觸控尺寸。 */
.eh-service-content .eh-service-bottom {
  align-items: center;
}
.eh-service-content .eh-button--small {
  min-height: 42px;
  padding-inline: 16px;
  box-shadow: 0 7px 15px rgba(111, 78, 59, .10);
}
.eh-service-content .eh-button--small:focus-visible,
.eh-service-card__visual-link:focus-visible {
  outline: 3px solid rgba(168, 120, 94, .48);
  outline-offset: 3px;
}

@media (max-width: 680px) {
  body.single-product .woocommerce-product-gallery {
    border-radius: 20px;
  }
  body.single-product .woocommerce-product-gallery .flex-viewport,
  body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
    min-height: min(82vw, 420px);
  }
  body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img.wp-post-image {
    max-height: min(82vw, 420px);
  }
  body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    padding: 10px;
  }
  body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
  body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 56px;
  }
  body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    height: 46px;
  }
  .eh-service-content .eh-service-bottom {
    align-items: stretch;
    flex-direction: column;
  }
  .eh-service-content .eh-button--small {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
  .eh-service-content .eh-button--small {
    transition: none;
  }
}
