

/* =============================
   :root 全局變數
============================= */
:root {
  /* 字體與色彩 */
  --font-base: 16px;
  --font-heading: 24px;
  --color-primary: #333;
  --color-secondary: #f5f5f5;
  --color-bg: #fff;

  /* 區塊間距 / Section / Header */
  --space-gap: 20px;
  --space-section: 40px;
  --space-header-padding: 10px;

  /* Header / Logo / Cart */
  --header-logo-max-height: 50px;
  --cart-font-size: var(--font-base);
  --cart-icon-size: 2em;

  /* Hero 區 */
  --hero-padding-top: 60px;
  --hero-padding-bottom: 60px;
  --hero-title-font-size: 60px;
  --hero-subtitle-font-size: 50px;
  --hero-margin-top: 0;
  --hero-margin-bottom: 40px;
  --cta-font-size: 40px;
  --cta-padding-y: 35px;
  --cta-padding-x: 55px;

  /* Services 區變數 */
  --services-columns-desktop: 3;
  --services-columns-tablet: 2;
  --services-columns-mobile: 1;
  --service-title-size: 32px;
  --service-desc-size: 28px;
  --service-icon-size: 80px;
  --service-padding: 20px;

  /* Categories 區變數 */
  --categories-columns-desktop: 2;
  --categories-columns-tablet: 2;
  --categories-columns-mobile: 1;
  --category-title-size: 38px;
  --category-padding: 20px 0;
}

/* =============================
   全局重置與基礎
============================= */
body {
  font-family: 'Noto Sans', sans-serif;
  font-size: var(--font-base);
  background-color: var(--color-bg);
  color: var(--color-primary);
  margin: 0;
  padding: 0;
}

h1,h2,h3,h4,h5,h6 {
  font-size: var(--font-heading);
  color: var(--color-primary);
  margin: 0 0 var(--space-gap) 0;
}

p { margin: 0 0 var(--space-gap) 0; }

/* =============================
   Header
============================= */
.site-header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-gap);
  background-color: var(--color-secondary);
}

.desktop-header { display:block; }
.mobile-header { display:none; }

.logo-img {
  max-height: var(--header-logo-max-height);
  width: auto;
  display: block;
}

@media(max-width:768px){
  .desktop-header { display:none; }
  .mobile-header { display:flex; }
  .logo-img { max-height: calc(var(--header-logo-max-height) * 0.9); }
}

/* =============================
   Mobile Header
============================= */
.mobile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-header-padding);
  background-color: var(--color-secondary);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  position: relative;
  z-index: 10000;
}

.mobile-header .side.left {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-left: var(--space-gap);
}

#mobile-menu-toggle {
  font-size: var(--font-toggle, 38px);
  width: var(--toggle-size, 50px);
  height: var(--toggle-size, 50px);
  background: none;
  border: none;
  cursor: pointer;
}

.mobile-header .logo {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cart-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--color-primary);
}
#cart-amount { 
  font-size: var(--cart-font-size); 
  margin-right: 0px;
  line-height: 1;
}
.cart-icon { 
  font-size: var(--cart-icon-size); 
  line-height: 1;
  display: inline-block;
}

.mobile-menu {
  position: fixed;
  top: var(--space-header-padding); 
  left: -250px;
  width: 250px;
  height: calc(100% - var(--space-header-padding));
  background: var(--color-secondary);
  box-shadow: 2px 0 5px rgba(0,0,0,0.2);
  z-index: 10001; /* 高於 header */
  overflow-y: auto;
  transition: left 0.3s ease;
  padding-top: 20px; /* menu 內邊距 */
}
.mobile-menu-list {
  list-style: none;
  padding: 0 20px;
  margin: 0;
}
.mobile-menu-list li { margin-bottom: var(--space-gap); }
.mobile-menu-list li a {
  text-decoration: none;
  color: var(--color-primary);
  font-size: var(--font-base);
  display: block;
  padding: 10px 0;
}

#mobile-menu-overlay {
  position: fixed;
  top: var(--space-header-padding);
  left: 0;
  width: 100%;
  height: calc(100% - var(--space-header-padding));
  background: rgba(0,0,0,0.5);
  z-index: 10000; /* header 下，抽屜上 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}
#mobile-menu-overlay.show { opacity:1; visibility:visible; }

#mobile-menu.open { left:0; }

/* =============================
   Section 通用
============================= */
section {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
  margin-bottom: var(--space-gap);
}

/* =============================
   Hero 區
============================= */
.hero-section {
  text-align: center;
  position: relative;
  padding-top: var(--hero-padding-top);
  padding-bottom: var(--hero-padding-bottom);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}
.hero-title {
  font-size: var(--hero-title-font-size);
  margin-top: var(--hero-margin-top);
  margin-bottom: var(--hero-margin-bottom);
}
.hero-subtitle {
  font-size: var(--hero-subtitle-font-size);
  margin-bottom: 20px;
}
.hero-section .cta-btn {
  display: inline-block;
  margin-top: 15px;
  padding: var(--cta-padding-y) var(--cta-padding-x);
  font-size: var(--cta-font-size);
  background: #ff79c6;
  color: #fff;
  border-radius: 5px;
  text-decoration: none;
}

/* =============================
   Services 區
============================= */
.services-grid {
  display: grid;
  gap: var(--space-gap);
  grid-template-columns: repeat(var(--services-columns-desktop), 1fr);
}
.service-item {
  text-align: center;
  padding: var(--service-padding);
}
.service-icon { width: var(--service-icon-size); height: var(--service-icon-size); margin-bottom: 15px; }
.service-title { font-size: var(--service-title-size); }
.service-desc { font-size: var(--service-desc-size); }

@media(max-width:1024px){
  .services-grid { grid-template-columns: repeat(var(--services-columns-tablet),3fr); }
}
@media(max-width:768px){
  .services-grid { grid-template-columns: repeat(var(--services-columns-mobile),3fr); }
}

/* =============================
   Categories 區
============================= */
.categories-section {
  display: grid;
  gap: var(--space-gap);
  grid-template-columns: repeat(var(--categories-columns-desktop), 1fr);
}
.category-item {
  text-align: center;
  padding: var(--category-padding);
  border-radius: 8px;
  color: #fff;
}
.category-link {
  text-decoration: none;
  color: #fff;
  font-size: var(--category-title-size);
  font-weight: 600;
}

@media(max-width:1024px){
  .categories-section { grid-template-columns: repeat(var(--categories-columns-tablet),1fr); }
}
@media(max-width:768px){
  .categories-section { grid-template-columns: repeat(var(--categories-columns-mobile),1fr); }
}

/* =============================
   Footer
============================= */
.site-footer {
  background-color: var(--color-bg);
  padding: var(--space-gap);
  text-align: center;
  font-size: var(--font-base);
  color: var(--color-primary);
}
.footer-text { margin: 0 0 var(--space-gap) 0; }
.footer-links { margin: 0; }
.footer-link {
  color: var(--color-primary);
  text-decoration: none;
  margin: 0 5px;
}
.footer-link:hover { color: var(--color-secondary); }

/* =============================
   響應式文字縮放
============================= */
@media(max-width:768px){
  .hero-title { font-size: calc(var(--hero-title-font-size) * 0.7); }
  .hero-subtitle { font-size: calc(var(--hero-subtitle-font-size) * 0.5); }
  .hero-section .cta-btn {
    font-size: calc(var(--cta-font-size) * 0.5);
    padding: calc(var(--cta-padding-y) * 0.5) calc(var(--cta-padding-x) * 0.5);
  }
  .service-icon { width: calc(var(--service-icon-size) * 0.6); height: calc(var(--service-icon-size) * 0.6); }
  .service-title { font-size: calc(var(--service-title-size) * 0.6); }
  .service-desc { font-size: calc(var(--service-desc-size) * 0.6); }
  .category-link { font-size: calc(var(--category-title-size) * 0.6); }
}



/* ==============================
   WooCommerce 商品區 Grid 排版
============================== */
.woo-products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

/* 單張商品卡片 */
.woo-product-item {
    border:1px solid #eee;
    border-radius:8px;
    padding:15px;
    text-align:center;
    display:flex;
    flex-direction:column;
    justify-content:space-between; /* info 區靠上，按鈕靠下 */
    background:#fff;
    box-sizing:border-box;
}

/* 商品 info 容器 (分類 / 標題 / 價格) */
.woo-product-info {
    display:flex;
    flex-direction:column;
    justify-content:flex-start; /* info 區靠上對齊 */
    margin-bottom:10px;         /* 與按鈕間距 */
}

/* 商品分類文字 */
.woo-product-cats {
    font-size:14px;
    color:#666;
    margin-bottom:5px;
}

/* 商品標題 */
.woo-product-title {
    font-size:20px;
    margin:5px 0;
    color:#333;
}

/* 商品價格 */
.woo-product-price {
    font-size:18px;
    color:#ff4a79;
    margin-bottom:0px;
}

/* 按鈕區塊 */
.woo-product-btn-wrap {
    margin-top:auto; /* 按鈕推到底部 */
}

/* 選擇規格按鈕 */
.woo-product-btn {
    display:inline-block;
    padding:6px 12px;
    font-size:14px;
    background:#ff79c6;
    color:#fff;
    border-radius:5px;
    text-decoration:none;
    font-weight:500;
    text-align:center;
    transition:0.2s;
}

.woo-product-btn:hover {
    background:#ff4fa0;
}

/* =========================
   響應式設定
   ========================= */

/* 平板/小筆電 <=768px */
@media(max-width:768px){
    .woo-products-grid {
        grid-template-columns: repeat(3, 1fr) !important; /* 三欄 */
    }
    .woo-product-title { font-size:16px; }
    .woo-product-price { font-size:14px; }
    .woo-product-btn { padding:5px 10px; font-size:13px; }
}

/* 手機板 <=480px 保持三欄 */
@media(max-width:480px){
    .woo-products-grid {
        grid-template-columns: repeat(3, 1fr) !important; /* 不變單欄 */
    }
    .woo-product-title { font-size:14px; }
    .woo-product-price { font-size:13px; }
    .woo-product-btn { padding:4px 8px; font-size:12px; }
}


/* Woo 內容容器修正 */
.woocommerce,
.woocommerce-page {
    width: 100%;
}

.woocommerce div.product,
.woocommerce-page div.product,
.woocommerce .woocommerce-products-header,
.woocommerce .woocommerce-breadcrumb,
.woocommerce .products,
.woocommerce-page .products {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
}

/* 防止橫向爆寬 */
body {
    overflow-x: hidden;
}
.woo-container {
    width:100%;
    max-width:100%;
    padding:0 15px;
    box-sizing:border-box;
}

@media (max-width: 768px) {

  .mobile-header {
    position: relative;
    display: flex;
    align-items: center;
  }

  .mobile-header .logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }

}

/* ---------------------------- */
/* 手機板響應式（小於 768px） */
/* ---------------------------- */
@media (max-width: 768px) {
    .custom-member-wrap {
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding: 10px;
    }

    .custom-member-form {
        border: 1px solid #ccc;      /* 容器框線 */
        padding: 15px;               /* 容器內距 */
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        width: 100%;
    }

    .custom-member-form label {
        display: block;              /* 每個欄位換行 */
        margin-bottom: 15px;
        width: 100%;
    }

    .custom-member-form input[type="text"],
    .custom-member-form input[type="email"],
    .custom-member-form input[type="password"] {
        width: 100%;
        box-sizing: border-box;
        padding: 10px;
        border: 1px solid #ccc;
        border-radius: 4px;
        margin-top: 5px;
    }

    .custom-member-form input[type="submit"] {
        width: 100%;
        padding: 12px;
        background: #333;
        color: #fff;
        border: none;
        border-radius: 4px;
        cursor: pointer;
    }

    .custom-member-form input[type="submit"]:hover {
        background: #555;
    }

    .custom-member-form span {
        display: inline-block;
        margin-left: 5px;
    }
}
.custom-member-wrap,
.custom-member-form,
.custom-member-form input,
.custom-member-form select,
.custom-member-form textarea {
    box-sizing: border-box;
}

/* ---------------------------- */
/* 會員表單標題置中 */
/* ---------------------------- */
.custom-member-form h3 {
    text-align: center;
    font-weight: 600;       /* 可選，讓標題粗一點 */
    margin-bottom: 20px;    /* 與表單欄位距離 */
}

.member-page-container {
    max-width: 500px;
    margin: 0 auto;
    padding: 20px;
}

.member-page-container h3 {
    text-align: center;
    font-weight: 600;
    margin-bottom: 20px;
}

.member-info-box {
    border: 1px solid #ccc;
    padding: 20px;
    border-radius: 10px;
    background: #f9f9f9;
}

.member-info-box p {
    margin: 10px 0;
}

.member-actions {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
}

.member-actions .button {
    padding: 10px 20px;
    background: #0073aa;
    color: #fff;
    text-decoration: none;
    border-radius: 5px;
    text-align: center;
}

.member-actions .button:hover {
    background: #005177;
}

/* 手機板自適應 */
@media (max-width: 480px) {
    .member-actions {
        flex-direction: column;
        gap: 10px;
    }
}

#edit-profile-form {
    max-width: 500px;
    margin: 0 auto;
    padding: 20px;
    border: 1px solid #ccc;
    border-radius: 10px;
    background: #f9f9f9;
}

#edit-profile-form h3 {
    text-align: center;
    font-weight: 600;
    margin-bottom: 20px;
}

#edit-profile-form label {
    display: block;
    margin-bottom: 15px;
}

#edit-profile-form input[type="text"],
#edit-profile-form input[type="email"],
#edit-profile-form input[type="password"] {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    box-sizing: border-box;
}

#edit-profile-form input[type="submit"] {
    display: block;
    width: 100%;
    padding: 10px;
    background: #0073aa;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

#edit-profile-form input[type="submit"]:hover {
    background: #005177;
}


/* WooCommerce 變體選擇器 */
.variations select {
    display: inline-block;
    width: auto;
    min-width: 200px;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fff;
    font-size: 16px;
    color: #333;
    appearance: auto;
    -webkit-appearance: auto;
    box-sizing: border-box;
}

.variations tr {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.variations td,
.variations th {
    display: inline-block;
    padding: 0;
}

.variations label {
    font-weight: 600;
    font-size: 16px;
    white-space: nowrap;
}
/* 商店頁容器 */
.woocommerce-shop .woocommerce,
.woocommerce-page .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 40px;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    .woocommerce-shop .woocommerce,
    .woocommerce-page .woocommerce {
        padding: 15px 20px;
    }
}

/* 商店頁主內容容器 */
.woocommerce-shop #main,
.woocommerce-page #main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 40px;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .woocommerce-shop #main,
    .woocommerce-page #main {
        padding: 15px 20px;
    }
}