/* fonts styling */
@import url("https://fonts.googleapis.com/css2?family=Anton&family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");

:root {
  --font-display: "Anton", sans-serif;
  --font-primary: "Cormorant Garamond", serif;
  --font-secondary: "Montserrat", sans-serif;
  --color-white: #fff;
  --color-black: #000;
  --color-grey: #444;
  --color-theme-purple: #9314b3;
  --color-theme-blue: #6408bb;
  --letter-spacing-big: 0.3em;
  --letter-spacing-small: 0.1em;
}

/* css default format setting */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  scroll-behavior: smooth;
  font-family: var(--font-secondary);
}

body {
  background-color: #8ec5fc;
  background-image: linear-gradient(62deg, #8ec5fc 0%, #e0c3fc 43%);
}

.section_title {
  span {
    letter-spacing: 0.3em;
    color: var(--color-grey);
  }
  h1 {
    font-family: var(--font-display);
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 0.9em;
  }
}

.badge {
  font-family: var(--font-secondary);
}

.product-caption a {
  font-family: var(--font-primary);
}

.card-img {
  height: 400px;
  object-fit: cover;
}

.card {
  overflow: hidden;
}

.card:hover .card-img {
  transform: scale(1.1);
  transition: transform 0.5s ease;
}

.card-img-overlay {
  transition: background 0.3s ease;
}

.card:hover .card-img-overlay {
  background: rgba(0, 0, 0, 0.3) !important;
}

.footer-logo {
  filter: brightness(0) invert(1);
}

.card-img-overlay {
  background-color: rgba(0, 0, 0, 0.5);
  transition: background-color 0.3s ease;
}

.hover-link {
  transition: color 0.3s ease;
}

.hover-link:hover {
  color: #ffffff !important;
  cursor: pointer;
}

.footer-bottom {
  border-color: rgba(255, 255, 255, 0.1) !important;
}

.custom-product-card {
  background-color: #fff;
  box-shadow: 10px 10px 15px 1.5px rgba(159, 120, 196, 0.4); /* 使用 RGBA 控制透明度更自然 */
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.custom-product-card:hover {
  transform: translateY(-10px);
  box-shadow: 15px 15px 25px 2px rgba(159, 120, 196, 0.6) !important;
}

.new_product_badge {
  position: absolute;
  top: 10px;
  right: 10px;
}

.product-name a {
  font-size: 1.2rem;
  font-weight: 600;
  transition: color 0.3s ease;
}
.product-name a:hover {
  color: #9f78c4 !important;
}

.bg-light-gray {
  background-color: rgb(241, 240, 240);
}
.section_title h1 {
  text-decoration: underline;
}

/* for cart logo hover effect */
.cart a {
  text-decoration: none;
  list-style: none;
}
.cart a:hover {
  text-decoration: none;
  list-style: none;
}
.bg_cart_1 {
  background-color: #8ec5fc;
  background-image: linear-gradient(62deg, #8ec5fc 0%, #e0c3fc 100%);
}
.list-group-item {
  background-color: inherit !important;
}

/* for product detail page image gallery */
.carousel-indicators li {
  width: auto !important;
  height: auto !important;
}

/* for checkout page */
.bg_checkout_1 {
  background-color: #8ec5fc;
  background-image: linear-gradient(62deg, #8ec5fc 0%, #e0c3fc 100%);
}

/* for product layout design */
.single_product {
  background-color: rgb(241, 240, 240);
}
.product_img {
  position: relative;
}
.product_img .new_product {
  position: absolute;
  top: 5%;
  left: 5%;
}

.contact_form {
  background-color: #8ec5fc;
  background-image: linear-gradient(135deg, #81ffef 10%, #f067b4 100%);
}

/* for services section background gradient */
.feature {
  background-color: #74082c;
  /* background-image: linear-gradient(0deg, #ff4483 0%, #8ce7e4 100%); */
  background-image: linear-gradient(135deg, #81ffef 10%, #f067b4 100%);
}

/* for footer section background gradient */
.footer_section {
  /* background-color: #0093E9;
    background-image: linear-gradient(110deg, #0093E9 19%, #80D0C7 100%); */
  /* background-color: #a9c9ff;
  background-image: linear-gradient(180deg, #a9c9ff 0%, #ffbbec 100%); */
  background-color: #e97dbb;
  background-image: linear-gradient(
    225deg,
    #db7eb3 0%,
    #9869b3 50%,
    #6da6cf 100%
  );
  background: #d3959b; /* fallback for old browsers */
  background: -webkit-linear-gradient(
    to right,
    #8fd686,
    #d4a2a7
  ); /* Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(
    to right,
    #fc93f6,
    #95c6d3
  ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}
.footer_section {
  border-top: 3px solid #007bff;
  border-radius: 10px;
}

/* for footer links  */
.footer_links ul li {
  list-style: none;
  margin-bottom: 1rem;
}
.footer_links ul li a {
  color: #000;
  text-decoration: none;
  transition: all 0.2s linear;
}
.footer_links ul li a:hover {
  text-decoration: none;
  margin-left: 5px;
}

/* for scroll to top button */
#button {
  position: fixed;
  right: 5%;
  bottom: 5%;
  z-index: 100;
}

.mt-small-2 {
  margin-top: 0rem !important;
}
.mt-small-5 {
  margin-top: 0rem !important;
}
.mb-small-2 {
  margin-bottom: 0rem !important;
}
.mb-small-5 {
  margin-bottom: 0rem !important;
}
/* for mobile responsive setting */
@media (max-width: 991.98px) {
  .nav-item {
    padding: 8px 0;
  }

  .nav-link {
    font-size: 1.1rem;
    color: #333 !important;
    font-weight: 500;
  }

  .mobile-nav-tools {
    justify-content: flex-start;
    padding-top: 15px;
  }
  .cart-badge {
    position: absolute;
    top: -5px;
    right: -12px;
    font-size: 0.75rem;
  }
}


@media (max-width: 767px) {
  .mt-small-2 {
    margin-top: 0.5rem !important;
  }
  .mt-small-5 {
    margin-top: 3rem !important;
  }
  .mb-small-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-small-5 {
    margin-bottom: 3rem !important;
  }
  .single_product {
    margin-left: 10px;
    margin-right: 10px;
  }
  .col-6 {
    padding-left: 8px;
    padding-right: 8px;
  }

  /* 縮小手機版標題與價格字體，避免換行太亂 */
  .single_product h5 {
    font-size: 0.85rem;
  }
  .price b {
    font-size: 0.9rem;
  }

  /* 篩選器在手機版增加間距 */
  .filter_sidebar {
    margin-bottom: 30px;
  }

      .custom-about-container {
        padding: 2rem 1.5rem !important;
        margin: 0 10px 30px 10px; /* 手機版增加左右外距 */
    }
        .img-zoom {
        height: 300px; /* 手機版縮小圖片高度 */
    }
}

/* category page */

/* 篩選器連結樣式 */
.filter-link {
  color: #555;
  text-decoration: none !important;
  transition: all 0.3s ease;
  display: inline-block;
}

.filter-link:hover,
.filter-link.active {
  color: #9f78c4 !important; /* 品牌紫色 */
  font-weight: 600;
  transform: translateX(5px); /* 移入時稍微右移 */
}

/* 2. 價格滑桿 (Price Range) 自定義顏色 */
.custom-range::-webkit-slider-thumb {
  background: #9f78c4; /* 讓滑鈕變紫色 */
}
.custom-range::-moz-range-thumb {
  background: #9f78c4;
}

.bg-white-transparent {
  background: rgba(255, 255, 255, 0.25); /* 輕微透明白 */
  backdrop-filter: blur(8px); /* 毛玻璃效果 */
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #333;
}

.single_product h5 a {
  font-size: 1rem;
  color: #2c3e50;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.single_product h5 a:hover {
  color: #9f78c4;
}



/* 1. 分類標題樣式 */
.category-title {
    letter-spacing: 2px;
    color: #333;
}

.title-underline {
    width: 60px;
    height: 4px;
    background: #7f50a8; /* 使用你指定的紫色 */
    border-radius: 2px;
}

/* 2. 分類卡片樣式 (取代原本的 Inline Box-shadow) */
.custom-category-card {
    background-color: #fff;
    box-shadow: 10px 10px 15px 1.5px rgba(127, 80, 168, 0.3); /* 使用你的紫色 #7f50a8 */
    transition: all 0.4s ease;
    border: none;
    height: 100%;
}

.custom-category-card:hover {
    transform: translateY(-10px);
    box-shadow: 15px 20px 30px rgba(127, 80, 168, 0.5) !important;
}

/* 3. 圖片放大動畫 */
.img-zoom {
    transition: transform 0.6s ease;
    height: 350px; /* 建議固定高度以保持卡片對齊 */
    object-fit: cover;
}

.custom-category-card:hover .img-zoom {
    transform: scale(1.1);
}

/* about page */

/* 1. 外層容器：整合你原本的 #b475ee 紫色陰影 */
.custom-about-container {
    background: rgba(255, 255, 255, 0.7); /* 輕微透明背景，讓底色漸層透出來 */
    backdrop-filter: blur(10px);         /* 加入毛玻璃效果提升質感 */
    box-shadow: 0px 0px 20px 2px rgba(180, 117, 238, 0.3) !important;
    border: 1px solid rgba(180, 117, 238, 0.2);
}

/* 2. 標題與裝飾線 */
.about-title {
    letter-spacing: 3px;
    color: #333;
}


/* 3. 圖片效果 */
.about-img-frame {
    transition: transform 0.4s ease;
}
.about-img-frame:hover {
    transform: translateY(-5px);
}

/* offer page */

/* 1. 標題與字距 */
.offer-title {
    letter-spacing: 4px;
    color: #333;
    font-weight: 800 !important;
}

/* 2. 沿用 About Us 的毛玻璃效果與紫色陰影 */
.bg-white-glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.shadow-purple {
    box-shadow: 15px 15px 35px rgba(159, 120, 196, 0.3) !important;
}

/* 3. 優惠項目樣式 (增加閱讀性) */
.offer-item {
    padding: 15px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.5); /* 輕微背景區分 */
    transition: all 0.3s ease;
}

.offer-item:hover {
    transform: translateX(10px); /* 懸停時向右滑動 */
    background: #fff;
}

.offer-icon {
    color: #7f50a8; /* 使用你的品牌紫色 */
    min-width: 50px;
}

/* 4. 手機版優化 */
@media (max-width: 991.98px) {
    .offer-title {
        font-size: 2rem;
        letter-spacing: 2px;
    }
    .offer-img-wrapper {
        max-height: 250px;
    }
}


/* Store Address Page */
/* 1. 標題與字距 */
.address-main-title {
    letter-spacing: 4px;
    color: #333;
    font-weight: 800 !important;
}

.shadow-purple {
    box-shadow: 15px 15px 35px rgba(159, 120, 196, 0.25) !important;
}

/* 3. 地圖區域互動感 */
.map-wrapper {
    transition: transform 0.4s ease;
    border: 4px solid #fff; /* 地圖加個白邊框更有質感 */
}

.map-wrapper:hover {
    transform: scale(1.02);
}

/* 4. 手機版優化 (Mobile) */
@media (max-width: 767.98px) {
    .address-main-title {
        font-size: 2.2rem;
        letter-spacing: 2px;
    }
    .bg-white-glass {
        padding: 2rem !important;
    }
}

/* 1. 響應式地圖容器 (固定比例) */
.responsive-map {
    position: relative;
    padding-bottom: 75%; /* 這代表 4:3 的比例 */
    height: 0;
    overflow: hidden;
    border: 4px solid #fff; /* 延用你的白色質感邊框 */
}

.responsive-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

/* 2. 電腦版稍微調整比例 (可選) */
@media (min-width: 992px) {
    .responsive-map {
        padding-bottom: 65%; /* 電腦版可以稍微扁一點點 */
    }
}

/* FAQ Page */

/* 1. 標題與裝飾 */
.faq-main-title {
    letter-spacing: 5px;
    color: #333;
    font-weight: 800 !important;
}

.shadow-purple {
    box-shadow: 15px 15px 35px rgba(159, 120, 196, 0.3) !important;
}

/* 3. 圖片框線美化 */
.faq-img-wrapper {
    border: 5px solid #fff;
    transition: transform 0.4s ease;
}
.faq-img-wrapper:hover {
    transform: scale(1.02);
}

/* 4. 問題項目的間距 */
.faq-item h5 {
    font-size: 1.1rem;
    transition: color 0.3s ease;
}
.faq-item:hover h5 {
    color: #7f50a8 !important; /* 懸停時變品牌紫色 */
}

/* --- 手機版優化 --- */
@media (max-width: 991.98px) {
    .faq-main-title {
        font-size: 2.5rem;
    }
}


/* T&C Page */

/* 標題與裝飾 */
.terms-main-title {
    letter-spacing: 4px;
    color: #333;
    font-weight: 800 !important;
}


/* 圖片框美化 */
.terms-img-wrapper {
    border: 5px solid #fff;
    transition: transform 0.4s ease;
}
.terms-img-wrapper:hover {
    transform: scale(1.02);
}

/* 手機版優化 */
@media (max-width: 991.98px) {
    .terms-main-title {
        font-size: 2.2rem;
    }
}

/* Policy Page */

.policy-main-title {
    letter-spacing: 4px;
    color: #333;
    font-weight: 800 !important;
}
/* 3. 圖片框美化 */
.policy-img-wrapper {
    border: 5px solid #fff;
    transition: transform 0.4s ease;
}
.policy-img-wrapper:hover {
    transform: scale(1.02);
}

/* 4. 手機版優化 (Mobile) */
@media (max-width: 991.98px) {
    .policy-main-title {
        font-size: 2.2rem;
        letter-spacing: 2px;
    }
}
