: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; }

.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 { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border:1px solid var(--memu-border); text-decoration:none; font-size:20px; }

.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; }
}

/* 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%; }
}