:root {
  --memu-container-width: 1200px;
  --memu-text: #33383a;
  --memu-muted: #737b7e;
  --memu-gold: #bfa15a;
  --memu-border: #e8e9e7;
  --memu-background: #fff;
  --memu-soft-background: #f7f8f7;
  --memu-header-bg: #fff;
  --memu-branding-bg: transparent;
  --memu-footer-bg: #fafbfa;
  --memu-footer-bottom-bg: transparent;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--memu-background); color: var(--memu-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
  line-height: 1.75; font-size: 16px;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #9b7c35; }
.container, .header-inner { width: min(calc(100% - 40px), var(--memu-container-width)); margin-inline: auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { clip:auto; width:auto; height:auto; margin:0; padding:12px; background:#fff; z-index:10000; }

/* 頁首與品牌欄位擴充設定 (支援底圖/顏色/半透明) */
.site-header {
  position: relative;
  z-index: 20;
  background: var(--memu-header-bg, #fff);
  border-bottom: 1px solid var(--memu-border);
  isolation: isolate;
}
.site-header-bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.header-inner {
  position: relative;
  z-index: 1;
  min-height: 112px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
  padding-block: 18px;
}
.site-branding {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
  isolation: isolate;
  background: var(--memu-branding-bg, transparent);
}
.site-branding-bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.site-branding-custom-image img {
  display: block;
  max-height: 60px;
  width: auto;
  object-fit: contain;
}
.site-logo img { display:block; width:auto; max-width:min(200px, 30vw); max-height:84px; }
.site-title { margin:0; font-size:clamp(20px, 2.2vw, 28px); font-weight:700; letter-spacing:.04em; line-height:1.25; }
.site-title a { text-decoration:none; }
.site-description { margin:7px 0 0; color:var(--memu-muted); font-size:13px; letter-spacing:.04em; }

.primary-navigation { margin-left:auto; }
.primary-navigation ul { display:flex; align-items:center; justify-content:flex-end; gap:clamp(14px, 2vw, 30px); list-style:none; margin:0; padding:0; }
.primary-navigation li { position:relative; }
.primary-navigation a { display:block; padding:10px 0; text-decoration:none; font-size:14px; font-weight:600; }
.primary-navigation .sub-menu { display:none; position:absolute; top:100%; left:0; min-width:200px; padding:10px 16px; background:#fff; border:1px solid var(--memu-border); box-shadow:0 10px 28px #0000000d; }
.primary-navigation li:hover > .sub-menu, .primary-navigation li:focus-within > .sub-menu { display:block; }
.primary-navigation .sub-menu a { white-space:nowrap; }
.menu-toggle { display:none; border:1px solid var(--memu-border); border-radius:3px; background:#fff; padding:9px 12px; color:inherit; cursor:pointer; }
.menu-toggle-icon { display:inline-flex; flex-direction:column; gap:4px; margin-left:8px; vertical-align:middle; }
.menu-toggle-icon span { width:18px; height:2px; background:currentColor; display:block; }
/* Draggable language island. It is deliberately outside the header so it can live anywhere. */
.aristi-language-switcher { position:fixed; z-index:99999; top:50%; right:22px; width:108px; border:1px solid rgba(216,209,193,.72); border-radius:15px; background:rgba(255,253,249,.56); box-shadow:0 10px 24px rgba(0,0,0,.16); color:var(--memu-text); touch-action:none; backdrop-filter:blur(7px); }
.aristi-island-bar { display:flex; align-items:center; min-height:40px; padding:4px 6px 4px 9px; }
.aristi-drag-handle { width:18px; color:var(--memu-muted); cursor:grab; font-size:18px; letter-spacing:-4px; line-height:1; user-select:none; }
.aristi-drag-handle:active { cursor:grabbing; }
.aristi-language-toggle { flex:1; border:0; background:transparent; color:inherit; padding:7px 8px; cursor:pointer; font:inherit; font-size:13px; font-weight:700; text-align:left; white-space:nowrap; }
.aristi-language-close { width:27px; height:27px; border:0; border-radius:50%; background:transparent; color:var(--memu-muted); cursor:pointer; font-size:22px; line-height:1; }
.aristi-language-close:hover, .aristi-language-close:focus-visible { background:#f0ece4; color:var(--memu-text); }
.aristi-language-menu { max-height:320px; padding:0 8px 9px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.aristi-language-menu button { display:block; width:100%; padding:6px 7px; border:0; border-radius:7px; background:transparent; color:inherit; text-align:left; cursor:pointer; font:inherit; font-size:11px; }
.aristi-language-menu button:hover, .aristi-language-menu button:focus-visible { background:var(--memu-soft-background); }
.aristi-original-language { border:1px solid #d8d1c1 !important; background:#fff !important; margin:2px 0 6px; font-weight:700 !important; }
.aristi-language-primary, .aristi-language-more { display:grid; grid-template-columns:1fr; gap:2px; }
.aristi-language-more { padding-top:4px; border-top:1px solid var(--memu-border); }
.aristi-language-more[hidden] { display:none !important; }
.aristi-more-languages-toggle { margin-top:4px; color:var(--memu-muted) !important; }
.aristi-language-switcher.aristi-is-translated { width:auto; min-width:108px; }
.aristi-language-switcher.aristi-is-translated .aristi-language-toggle { cursor:default; }
.aristi-language-switcher.aristi-is-translated .aristi-language-menu { display:block !important; padding:0 8px 8px; }
.aristi-language-switcher.aristi-is-translated .aristi-language-primary,
.aristi-language-switcher.aristi-is-translated .aristi-more-languages-toggle,
.aristi-language-switcher.aristi-is-translated .aristi-language-more { display:none !important; }
/* Google injects a top banner/iframe. Keep it out of sight and preserve the page position. */
iframe.goog-te-banner-frame, .goog-te-banner-frame.skiptranslate, body > .skiptranslate { display:none !important; }
body { top:0 !important; }

.page-layout { padding-block: clamp(32px, 5vw, 72px); }
.site-main { min-width:0; }
.content-widget-area { margin-block:24px; }
.empty-state { padding:clamp(32px, 6vw, 90px) 20px; text-align:center; background:var(--memu-soft-background); }
.empty-state h1 { margin-top:0; font-size:clamp(28px, 4vw, 48px); }
.button, button.button, input[type="submit"] { display:inline-block; padding:11px 20px; border:0; border-radius:2px; background:var(--memu-text); color:#fff; text-decoration:none; cursor:pointer; }
.post-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.post-card { border:1px solid var(--memu-border); background:#fff; }
.post-thumbnail img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.post-card-content { padding:22px; }
.entry-title { margin:0 0 10px; font-size:clamp(24px, 3vw, 38px); line-height:1.35; }
.post-card .entry-title { font-size:23px; }
.entry-title a { text-decoration:none; }
.entry-meta { color:var(--memu-muted); font-size:13px; }
.entry-content { margin-top:28px; }
.entry-content > * { max-width:100%; }
.entry-content .alignwide { width:min(100% + 120px, calc(var(--memu-container-width) + 120px)); max-width:none; margin-left:50%; transform:translateX(-50%); }
.entry-content .alignfull { width:100vw; max-width:100vw; margin-left:50%; transform:translateX(-50%); }
.featured-image { margin-block:24px; }
.featured-image img { display:block; width:100%; height:auto; }
.pagination { margin-top:36px; }
.pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.pagination a, .pagination span { padding:7px 12px; border:1px solid var(--memu-border); text-decoration:none; }

.site-footer { margin-top:0; background: var(--memu-footer-bg, #fafbfa); border-top:1px solid var(--memu-border); color: var(--memu-muted); font-size:13px; }
.footer-widgets {
  display: grid;
  grid-template-columns: repeat(var(--footer-cols, 4), minmax(0, 1fr));
  gap: 28px;
  padding-block: 44px 24px;
}
.footer-information {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 28px;
  padding-block: 10px 34px;
}
.footer-info-block {
  position: relative;
  overflow: hidden;
}
.footer-info-block.has-bg-image { isolation: isolate; }
.footer-block-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.footer-block-inner { position: relative; z-index: 1; }
.footer-info-block h2 { margin: 0 0 10px; color: inherit; font-size: 15px; }
.footer-info-block p { margin: 0; white-space: normal; }
.footer-block-html iframe { max-width: 100%; border: 0; }
.footer-info-block h2, .widget-title { margin:0 0 10px; color:var(--memu-text); font-size:15px; }
.footer-info-block p { margin:0; white-space:normal; }
.footer-map { grid-column:1/-1; }
.footer-map iframe { display:block; width:100%; max-width:100%; min-height:240px; border:0; }

/* 頁尾版權區擴充設定 (支援底圖/顏色/半透明) */
.footer-bottom {
  position: relative;
  border-top: 1px solid var(--memu-border);
  isolation: isolate;
  background: var(--memu-footer-bottom-bg, transparent);
}
.footer-bottom-bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.footer-bottom-inner { position:relative; z-index:1; min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:14px; }
.copyright { margin:0; }
.footer-navigation ul { display:flex; flex-wrap:wrap; gap:16px; margin:0; padding:0; list-style:none; }
.footer-navigation a { text-decoration:none; }
.back-to-top { position:fixed; z-index:80; right:clamp(16px, 3vw, 34px); bottom:clamp(16px, 3vw, 34px); display:grid; place-items:center; width:54px; height:54px; flex:0 0 54px; border:3px solid rgba(51,56,58,.62); border-radius:50%; background:rgba(255,255,255,.18); box-shadow:0 7px 18px rgba(0,0,0,.13); color:rgba(51,56,58,.82); text-decoration:none; font-size:31px; font-weight:900; line-height:1; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(10px); transition:transform .18s ease, opacity .18s ease, visibility .18s ease, box-shadow .18s ease, background-color .18s ease; }
.back-to-top.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover, .back-to-top:focus-visible { color:var(--memu-text); background:rgba(255,255,255,.38); transform:translateY(-3px) scale(1.04); box-shadow:0 11px 22px rgba(0,0,0,.18); }

/* Recent pages, not a breadcrumb: five independent signposts to prevent getting lost. */
.aristi-browsing-memory { display:flex; width:min(calc(100% - 40px), var(--memu-container-width)); margin:18px auto -10px; align-items:center; flex-wrap:wrap; gap:5px; padding:6px 12px; border:1px solid var(--memu-border); border-radius:12px; background:var(--memu-soft-background); }
.aristi-memory-label { color:var(--memu-muted); font-size:10px; font-weight:700; white-space:nowrap; }
.aristi-memory-list { display:flex; flex:1 1 220px; flex-wrap:wrap; gap:5px; }
.aristi-memory-item { display:inline-flex; max-width:170px; align-items:center; min-height:22px; padding:2px 10px; overflow:hidden; border:1px solid #d8d1c1; border-radius:999px; background:#fff; color:var(--memu-text); font-size:10px; line-height:1.2; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.aristi-memory-item:hover, .aristi-memory-item:focus-visible { border-color:var(--memu-gold); color:var(--memu-text); background:#fffaf0; }
.aristi-memory-item[aria-current="page"] { border-color:var(--memu-text); background:var(--memu-text); color:#fff; }

/* WooCommerce classic and block surfaces: extension-friendly and responsive. */
.woocommerce .woocommerce-notices-wrapper > *, .wc-block-components-notice-banner { border-radius:8px; }
.woocommerce div.product form.cart .button, .wc-block-components-button { border-radius:999px; }
.woocommerce-cart-form, .woocommerce-checkout-review-order, .wc-block-cart, .wc-block-checkout { max-width:100%; }
.woocommerce table.shop_table { border-collapse:separate; border-spacing:0; border-radius:10px; overflow:hidden; }
.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background:var(--memu-text); }
.woocommerce #respond input#submit.alt:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover { background:#1f2425; }

.widget { margin-bottom:24px; }
.widget ul { padding-left:20px; }
.woocommerce-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; }
.woocommerce-layout:has(.shop-sidebar) { grid-template-columns:minmax(180px,240px) minmax(0,1fr); }
.woocommerce-layout > .content-widget-area { grid-column:1/-1; }
.shop-sidebar { grid-column:1; grid-row:2; }
.woocommerce-layout .site-main { grid-column:1/-1; }
.woocommerce-layout:has(.shop-sidebar) .site-main { grid-column:2; grid-row:2; }
.woocommerce ul.products { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display:none !important; }
.woocommerce ul.products li.product { float:none !important; width:auto !important; margin:0 !important; padding:0 0 18px; border:1px solid var(--memu-border); }
.woocommerce ul.products li.product a img { margin:0 0 14px; aspect-ratio:4/5; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .button { margin-left:16px; margin-right:16px; }
.woocommerce div.product div.images img { width:100%; }
.woocommerce div.product .product_title { font-size:clamp(26px, 3vw, 40px); }
.woocommerce .quantity .qty { min-height:42px; }
.woocommerce input, .woocommerce select, .woocommerce textarea { max-width:100%; }

@media (max-width: 900px) {
  .header-inner { gap:12px; }
  .menu-toggle { display:block; margin-left:auto; }
  .primary-navigation { display:none; width:100%; margin:0; }
  .primary-navigation.is-open { display:block; }
  .primary-navigation ul { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .primary-navigation a { padding:12px 4px; border-top:1px solid var(--memu-border); }
  .primary-navigation .sub-menu { display:block; position:static; border:0; box-shadow:none; padding:0 0 0 18px; }
  .footer-widgets { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .woocommerce-layout:has(.shop-sidebar) { grid-template-columns:1fr; }
  .shop-sidebar, .woocommerce-layout:has(.shop-sidebar) .site-main { grid-column:1; grid-row:auto; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .container, .header-inner { width:min(calc(100% - 28px), var(--memu-container-width)); }
  .header-inner { min-height:84px; }
  .site-branding { gap:10px; }
  .site-logo img { max-width:84px; max-height:64px; }
  .site-description { font-size:12px; }
  .post-list, .footer-widgets, .footer-information { grid-template-columns:1fr; }
  .footer-bottom-inner { align-items:flex-start; flex-wrap:wrap; }
  .footer-map { grid-column:auto; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:14px; }
	.aristi-browsing-memory { align-items:flex-start; }
	.aristi-memory-item { max-width:140px; }
	.back-to-top { width:48px; height:48px; border-width:3px; font-size:27px; }
	.aristi-language-switcher { right:14px; width:108px; }
	.aristi-browsing-memory { width:min(calc(100% - 28px), var(--memu-container-width)); }
	.aristi-memory-label { position:relative; top:5px; }
}

/* MEMU visual editor output */
.memu-visual-canvas {
  position: relative;
  width: 100%;
  min-height: 1px;
  overflow: hidden;
  isolation: isolate;
}
.memu-visual-canvas.has-area-bg-image { isolation: isolate; }
.memu-area-bg-el {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.memu-visual-element {
  position: absolute;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  max-width: 100%;
  overflow: hidden;
}
.memu-visual-element.has-bg-image { isolation: isolate; }
.memu-el-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  pointer-events: none;
}
.memu-el-inner { position: relative; z-index: 1; height: 100%; }
.memu-visual-element h2 {
  margin: 0;
  font-size: inherit;
  line-height: 1.35;
}
.memu-visual-element img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.memu-visual-button {
  display: inline-block;
  padding: 8px 14px;
  background: var(--memu-text);
  color: #fff;
  text-decoration: none;
  border-radius: inherit;
}
.memu-visual-button:hover {
  color: #fff;
  opacity: .85;
}
.memu-visual-divider {
  border: 0;
  border-top: 2px solid currentColor;
  margin: 0;
  width: 100%;
  opacity: .35;
}
.memu-device-desktop { display: block; }
.memu-device-tablet,
.memu-device-mobile { display: none; }
@media (max-width: 1024px) {
  .memu-device-desktop { display: none; }
  .memu-device-tablet { display: block; }
}
@media (max-width: 767px) {
  .memu-device-desktop,
  .memu-device-tablet { display: none; }
  .memu-device-mobile { display: block; }
  .memu-visual-element { max-width: 100%; }
}
