/*
Theme Name: Reddy - Bootstrap 5 Online shop HTML CSS Template
Theme URI: https://templatejungle.com/
Author: TemplatesJungle
Author URI: https://templatejungle.com/
Description: Reddy - Bootstrap 5 Online shop HTML CSS Template is specially designed product packaged for Online shop by TemplatesJungle.
Version: 1.1
*/

/*--------------------------------------------------------------
This is main CSS file that contains custom style rules used in this template
--------------------------------------------------------------*/

/*------------------------------------*\
    Table of contents
\*------------------------------------*/

/*------------------------------------------------
CSS STRUCTURE:

1. VARIABLES
2. GENERAL TYPOGRAPHY

--------------------------------------------------------------*/
body {
  --heading-font: "Mirza", Georgia, serif;
  --heading-font-weight: 400;
  --heading-color: #3D3A38;
  --heading-line-height: 1.24;
  --swiper-theme-color: #A58C81;
  --swiper-pagination-color: #A58C81;

  /* bootstrap */
  --bs-body-font-family: "Lora", Roboto, sans-serif;
  --bs-body-font-size: 16px;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: #3D3A38;
  --bs-body-color-rgb: 1.6, 1.6, 1.6;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-body-bg: #FFF;

  --bs-primary: #876B5E;
  --bs-secondary: #DED4D3;
  --bs-black: #111;
  --bs-white: #fff;
  --bs-light: #f8f8f8;
  --bs-dark: #212529;
  --bs-gray: #9aa1a7;
  --bs-gray-100: #F8F8F8;
  --bs-gray-200: #E9E9E9;
  --bs-gray-300: #D1D1D1;
  --bs-gray-800: #3D3A38;

  --bs-primary-rgb: 135, 107, 94;
  --bs-secondary-rgb: 239, 238, 235;
  --bs-black-rgb: 17, 17, 17;
  --bs-light-rgb: 241, 241, 240;
  --bs-dark-rgb: 33, 37, 41;

  --bs-link-color: #111;
  --bs-link-color-rgb: 17, 17, 17;
  --bs-link-decoration: underline;
  --bs-link-hover-color: #111;
  --bs-link-hover-color-rgb: 17, 17, 17;

  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3Csymbol xmlns='http://www.w3.org/2000/svg' id='plus' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M19 12.998h-6v6h-2v-6H5v-2h6v-6h2v6h6z'/%3E%3C/symbol%3E");
}

body {
  letter-spacing: 0.03rem;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--heading-font);
  font-weight: var(--heading-font-weight);
  color: var(--heading-color);
  line-height: var(--heading-line-height);
}

h1.light,
.h1,
h2.light,
.h2,
h3.light,
.h3,
h4.light,
.h4,
h5.light,
.h5,
h6.light,
.h6 {
  color: var(--bs-light);
}

h1,
h2,
h3 {
  margin: 25px 0;
}

h5,
h6 {
  letter-spacing: 1px;
}

h1,
.h1 {
  font-size: 4.5rem;
}

h2,
.h2 {
  font-size: 3.6rem;
}

h3,
.h3 {
  font-size: 2.8rem;
}

h4,
.h4 {
  font-size: 1.8rem;
}

h5,
.h5 {
  font-size: 1.4rem;
}

h6,
.h6 {
  font-size: 1rem;
}

p {
  font-size: 1.2rem;
}

a {
  text-decoration: none;
}

/* container fluid */
.container-fluid {
  max-width: 1800px;
}

@media (min-width: 1600px) {
  .container-lg { max-width: 1350px; }
  .container-md { max-width: 1200px; }
}

@media (max-width: 768px) {
  h1, .h1 { font-size: 2rem; }
  h2, .h2 { font-size: 1.8rem; }
  p { font-size: 1rem; }
  #intro .banner-content p { width: 100%; }
}

@media (prefers-color-scheme: dark) {
  body {
    --bs-body-bg: #111;
    --bs-body-color: #EEE;
  }
}

/* list group */
.list-group-item {
  --bs-list-group-item-padding-x: 0;
  --bs-list-group-border-width: 0;
}

/* btn */
.btn {
  --bs-btn-border-radius: 0;
}

.btn-primary {
  --bs-btn-color: var(--bs-light);
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: var(--bs-light);
  --bs-btn-hover-bg: var(--bs-dark);
  --bs-btn-hover-border-color: var(--bs-dark);
  --bs-btn-focus-shadow-rgb: 49, 132, 253;
  --bs-btn-active-color: var(--bs-light);
  --bs-btn-active-bg: var(--bs-dark);
  --bs-btn-active-border-color: var(--bs-dark);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--bs-light);
  --bs-btn-disabled-bg: var(--bs-primary);
  --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-outline-dark.btn-bg-light {
  --bs-btn-bg: var(--bs-light);
}

.btn-group-lg>.btn, .btn-lg {
  --bs-btn-padding-y: 1rem;
  --bs-btn-padding-x: 2.8rem;
  --bs-btn-font-size: 1.25rem;
}

.btn.btn-shadow {
  box-shadow: 0px 6px 39px 0px rgba(91, 45, 42, 0.20);
}

/* text white */
.text-white {
  --heading-color: var(--bs-light);
  --bs-breadcrumb-item-active-color: var(--bs-light);
  --bs-breadcrumb-divider-color: var(--bs-light);
  --bs-link-color-rgb: var(--bs-light-rgb);
  --bs-link-hover-color-rgb: var(--bs-light-rgb);
}

.text-white .nav-link {
  --bs-nav-link-color: var(--bs-light);
  --bs-nav-link-hover-color: var(--bs-light);
  --bs-nav-link-active-color: var(--bs-light);
  --bs-navbar-active-color: var(--bs-light);
}


/* preloader */
.preloader {
  position: fixed;
  z-index: 99;
  background: var(--bs-dark);
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: height 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
}

.preloader.loaded {
  height: 0;
}

/* navbar */
.navbar-brand {
  font-size: 30px;
  letter-spacing: -0.07em;
  font-weight: 900;
}
.navbar.fixed-top {
  transition: background-color 0.6s ease-out;
}

/* margin */
.my-lg-6 {
  margin-top: 4.5rem!important;
  margin-bottom: 4.5rem!important;
}
.my-lg-7 {
  margin-top: 6.5rem!important;
  margin-bottom: 6.5rem!important;
}
.my-lg-8 {
  margin-top: 8.5rem!important;
  margin-bottom: 8rem!important;
}
.my-lg-9 {
  margin-top: 10.5rem!important;
  margin-bottom: 10rem!important;
}
.my-lg-10 {
  margin-top: 12.5rem!important;
  margin-bottom: 12.5rem!important;
}

/* padding */
.py-lg-6 {
  padding-top: 4.5rem!important;
  padding-bottom: 4.5rem!important;
}
.py-lg-7 {
  padding-top: 6.5rem!important;
  padding-bottom: 6.5rem!important;
}
.py-lg-8 {
  padding-top: 8.5rem!important;
  padding-bottom: 8rem!important;
}
.py-lg-9 {
  padding-top: 10.5rem!important;
  padding-bottom: 10.5rem!important;
}
.py-lg-10 {
  padding-top: 12.5rem!important;
  padding-bottom: 12.5rem!important;
}
.py-lg-11 {
  padding-top: 14.5rem!important;
  padding-bottom: 14.5rem!important;
}
.py-lg-12 {
  padding-top: 16.5rem!important;
  padding-bottom: 16.5rem!important;
}

/* - Background Color
------------------------------------------------------------- */ 
.bg-gray-1 {
  background-color: var(--bs-gray-100);
}
.bg-gray-2 {
  background-color: var(--bs-gray-200);
}
.bg-gray-3 {
  background-color: var(--bs-gray-300);
}
.bg-gray-8 {
  background-color: var(--bs-gray-800);
}

/* Bottom borders go out */
.offcanvas-body .nav-item a{
    position: relative;
}
.botom-borders-out a:after {
    position: absolute;
    left: 0px;
    width: 100%;
    height: 1px;
    background: var(--bs-dark);
    content: "";
    opacity: 0;
    transition: all 0.3s;
}
.botom-borders-out a:after {
    bottom: 0;
    transform: translateY(-10px);
}
.botom-borders-out a:hover:after{
    opacity: 1;
    transform: translateY(0px);
}

/* - Display Header
------------------------------------------------------------- */ 
@media (min-width: 1200px) {
 .display-1 {
    font-size: 6.4rem;
    line-height: 0.9;
 }
}

/* - Svg Color
------------------------------------------------------------- */ 
.svg-primary {
  fill: var(--bs-primary);
  color: var(--bs-primary);
}
.svg-yellow {
  fill: var(--bs-yellow);
  color: var(--bs-yellow);
}
.svg-gray {
  fill: var(--bs-gray);
  color: var(--bs-gray);
}
.svg-gray-3 {
  fill: var(--bs-gray-300);
  color: var(--bs-gray-300);
}
.svg-gray-3:hover {
  fill: var(--bs-primary);
  color: var(--bs-primary);
}

/* - Banner
------------------------------------------------------------- */ 
/* ==== Responsive Banner (RWD) ==== */
.hero-banner {
  width: 100%;
  min-height: 100vh;
  background-image: url("images/banner-image1.png");
  background-size: cover;
  background-position: right;
  background-repeat: no-repeat;
  display: flex;
  padding: 80px 0;
  color: #000;
}

.banner-content h1 {
  font-size: 3.2rem;
  line-height: 1.2;
}

.banner-content h2 {
  font-size: 1.8rem;
  line-height: 1.4;
}

@media (max-width: 992px) {
  .hero-banner {
    min-height: 70vh;
    padding: 60px 0;
    text-align: center;
  }
  .banner-content h1 {
    font-size: 2.5rem;
  }
  .banner-content h2 {
    font-size: 1.5rem;
  }
}

@media (max-width: 576px) {
  .banner-content h1 {
    font-size: 2rem;
  }
  .banner-content h2 {
    font-size: 1.2rem;
  }
}

/* - Video
------------------------------------------------------------- */ 
.video-wrapper {
  position: relative;
  cursor: pointer;
}

.play-btn-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.play-btn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.video-thumb {
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}

#intro-video {
  border-radius: 10px;
}

/* - Testimonial
------------------------------------------------------------- */ 
#testimonials .swiper.review-swiper {
  overflow-y: inherit;
}
#testimonials .review-swiper .swiper-pagination {
  bottom: -50px;
}
.review-swiper .swiper-pagination span.swiper-pagination-bullet {
  width: 15px;
  height: 15px;
  transition: 0.2s ease-in-out;
}
.review-swiper .swiper-pagination span.swiper-pagination-bullet-active {
  outline: 2px solid var(--bs-primary);
  border: 3px solid var(--bs-white);
  background-color: var(--bs-primary);
}

/* - Featured Product
------------------------------------------------------------- */ 
.product-card .cart-button {
  top: 0;
}
.product-card .cart-button button {
  width: 60px;
  padding: 5px;
  transform: rotatey(-90deg) perspective(100px);
  transform-origin: left;
  cursor: pointer;
  transition: .5s ease-in-out;
  background-color: var(--light-color);
}
.product-card .cart-button button:first-of-type {
  transition-delay: .2s;
}
.product-card .cart-button button:nth-of-type(2) {
  transition-delay: 0.5s;
}
.product-card:hover .cart-button button {
  transform: rotatey(0deg);
}

/* - FAQs
------------------------------------------------------------- */
#faqs .accordion .accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='minus' viewBox='0 0 16 16'%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z'/%3E%3C/svg%3E");
  transform: rotate(0deg);
}
#faqs .accordion .accordion-button::after {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='plus' viewBox='0 0 16 16'%3E%3Cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 2rem;
  width: 1.5rem;
  height: 1.5rem;
}
#faqs  .accordion-button:focus {
  border-color: var(--bs-light);
  box-shadow: var(--bs-light);
}
#faqs .accordion-button:not(.collapsed) {
  color: var(--bs-dark);
}

/* - Single Product
------------------------------------------------------------- */
.product-info .color-product-options .color-item {
  display: inline-block;
  width: 25px;
  height: 25px;
  cursor: pointer;
}
.product-info .color-product-options .color-item span {
  border: 1px solid var(--bs-light);
  width: 100%;
  height: 100%;
  transition: 0.3s ease-in-out;
}

/* - WayPoint
------------------------------------------------------------- */ 
ul.waypoints {
  top: 400px;
  right: 20px;
  z-index: 9;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
ul.waypoints li a {
  display: block;
  width: 12px;
  height: 12px;
  margin: 5px;
  background: var(--bs-primary);
  border-radius: 50%;
}
ul.waypoints li a:hover,
ul.waypoints li a.active {
  background: var(--bs-light);
  outline: 2px solid #876b5e;
}

/* ============================================================
   GLOBAL RWD IMPROVEMENTS
   ============================================================ */

/* 讓圖片永遠不變形 */
img {
  max-width: 100%;
  height: auto;
}

/* 重新調整 section 間距（更舒服的 RWD） */
section {
  padding: 60px 0;
}

@media (max-width: 768px) {
  section {
    padding: 40px 0;
  }
}

/* 讓容器在手機版貼齊兩側保持乾淨 */
.container,
.container-lg,
.container-md {
  padding-left: 15px;
  padding-right: 15px;
}

/* ============================================================
   BANNER / INTRO HERO RWD
   ============================================================ */
#intro {
  width: 100%;
  min-height: 70vh;
  background-image: url("images/banner-image1.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  padding: 100px 0;
}

.banner-content h1,
.banner-content h2 {
  margin: 0 0 20px 0;
  line-height: 1.2;
  text-shadow: 0 10px 16px rgba(0, 0, 0, 1.0);
}


#intro .banner-content p {
  max-width: 480px;
}

/* 平板 */
@media (max-width: 992px) {
  #intro {
    min-height: 60vh;
    padding: 60px 0;
  }
}

/* 手機 */
@media (max-width: 576px) {
  #intro {
    min-height: 55vh;
    background-position: top;
    padding: 40px 0;
  }

  #intro h1 {
    font-size: 2rem !important;
  }
  #intro h2 {
    font-size: 1.6rem !important;
  }

  #intro p {
    font-size: 1rem;
  }

  .btn-lg {
    padding: .8rem 1.8rem !important;
    font-size: 1.1rem !important;
  }
}

/* line icon */
/* -------------------------
   1) 絕對定位（相對於 banner-content）
   - 精準控制位置（建議用於圖要貼在角落或特定位置）
   ------------------------- */
.banner-content {
  position: relative; /* 必須：讓內部絕對定位成為相對於這個容器 */
}

/* 調整 .line-floating 的大小與位置（可微調 right / bottom） */
.line-floating {
  position: left;
  right: 18px;    /* 距離 banner 右側 */
  bottom: 18px;   /* 距離 banner 下面 */
  z-index: 20;
  pointer-events: auto;
}

/* 圖片尺寸與陰影/亮度（可依需求調整） */
.line-floating img {
  display: block;
  width: 300px;        /* 你原本用的尺寸 */
  height: auto;
  max-width: calc(100% - 30px); /* 保證在超小容器時不跑版 */
  box-shadow:
    0 0 18px rgba(0, 200, 80, 0.0),  /* 外光暈 */
    0 10px 20px rgba(0,0,0,0.2);      /* 底部陰影 */
  transition: transform .25s ease, box-shadow .25s ease;
}
.line-floating img:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow:
    0 0 30px rgba(0, 200, 80, 0.0),
    0 14px 28px rgba(0,0,0,0.28);
}

/* -------------------------
   2) 可選：Flex 佈局（若你想讓 icon 跟文字同行並自動換行）
   ------------------------- */
.banner-content.row-like { /* 若你想啟用此方案，額外加這個 class */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}
.banner-content.row-like .line-floating {
  position: static; /* 變回 flow 內的元素 */
  margin-left: auto; /* 推到右邊（可調整） */
}

/* -------------------------
   3) 浮動按鈕（固定在視窗右下）— 如果要改成浮動，取消上面絕對定位
   ------------------------- */
.line-floating.fixed {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: auto;
}

/* -------------------------
   響應式：手機版處理（避免圖太大蓋住文字）
   ------------------------- */
@media (max-width: 767.98px) {
  /* 手機改成在文字下方、置中顯示 */
  .line-floating {
    position: static;       /* 取消絕對定位，回到正常文件流 */
    margin: 12px 0 0 0;
    display: flex;
    justify-content: center;
  }
  .line-floating img {
    width: 220px;           /* 手機用較小尺寸 */
    max-width: 90%;
  }
}

/* 若你的 banner-content 已有 text-shadow 之類樣式，此處也會共存 */


