:root {
  --greattime-standard-color: #772e2e;
}

body{
  font-family: "Noto Sans TC", sans-serif;
  /* font-family: "Noto Serif TC", serif!important; */
  /* font-optical-sizing: auto; */
}
.bd-navbar,
.bd-navbar .navbar-brand,
.bd-navbar .nav-link,
.offcanvas-custom,
.offcanvas-custom .offcanvas-title,
.offcanvas-custom .nav-link,
.navbar-toggler {
  font-family: "Noto Sans TC", sans-serif !important;
  /* font-family: "Noto Serif TC", serif !important; */
}

h2{
  /* font-weight: 300; */
  background-image: url(/assets/images_greattime/title_bg.png);
  background-repeat: no-repeat;
}
.greattime-standard-bg-color{
  background-color: #772e2e;
}

.greattime-standard-border-color{
  border-color: #772e2e;
}
.greattime-standard-title-color{
  color: #772e2e;
}
.fs-09rem{
  font-size: 0.9rem !important;
}



.line-float-btn{
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9999;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #06C755;
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
}
/*********************************/
/* Global */
/*********************************/
#btn-back-to-top {
    /*display: none;*/ /* Hidden by default */
    position: fixed; /* Fixed/sticky position */
    bottom: 20px; /* Place the button at the bottom of the page */
    right: 30px; /* Place the button 30px from the right */
    z-index: 9999; /* Make sure it does not overlap */
    cursor: pointer; /* Add a mouse pointer on hover */
    /*font-size: 12px;*/ /* Increase font size */
}
.line-float-btn{
  position: fixed;
  right: 30px;
  bottom: 70px;
  z-index: 9999;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #06C755;
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
}

.rslides {
  position: relative;
  list-style: none;
  overflow: hidden;
  width: 100%;
  padding: 0;
  margin: 0;
  }

.rslides li {
  -webkit-backface-visibility: hidden;
  position: absolute;
  display: none;
  width: 100%;
  left: 0;
  top: 0;
  }

.rslides li:first-child {
  position: relative;
  display: block;
  float: left;
  }

.rslides img {
  display: block;
  height: auto;
  float: left;
  width: 100%;
  border: 0;
  }



/*********************************/
/* 首頁Banner動畫效果 */
/*********************************/
/* 圓圈 + 文字整組 */
.hero-banner-wrap {
  position: relative;
  overflow: hidden;
}

.hero-banner-wrap .rslides,
.hero-banner-wrap .rslides li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.hero-banner-wrap .rslides img {
  display: block;
  width: 100%;
  height: auto;
}

/* 整組變數：每張 slide 會動態覆寫 */
.hero-group {
  --hero-circle-color: rgba(255,255,255,0.72);
  --hero-text-color: #ffffff;
  --hero-glow-color: rgba(255,255,255,0.22);

  position: absolute;
  left: 8%;
  top: 50%;
  transform: translateY(-50%);
  width: 220px;
  height: 220px;
  z-index: 6;
  pointer-events: none;
}

.hero-glow {
  position: absolute;
  inset: -18px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    var(--hero-glow-color) 0%,
    rgba(255,255,255,0.08) 35%,
    rgba(255,255,255,0.03) 55%,
    rgba(255,255,255,0) 72%
  );
  opacity: 0;
  transform: scale(0.9);
  filter: blur(8px);
}

.hero-circle {
  position: absolute;
  inset: 0;
  border: 1px solid var(--hero-circle-color);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.8);
  transform-origin: center center;
  box-shadow:
    0 0 10px var(--hero-glow-color),
    0 0 24px var(--hero-glow-color);
}

.hero-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  text-align: center;
  color: var(--hero-text-color);
  font-family: "Noto Serif TC", serif;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
  opacity: 0;
  transform: translateY(20px);
  text-shadow:
    0 0 6px var(--hero-glow-color),
    0 0 18px var(--hero-glow-color),
    0 2px 10px rgba(0,0,0,0.22);
}

/* banner 微遮罩，可保留也可拿掉 */
.hero-banner-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.18) 0%,
    rgba(0, 0, 0, 0.06) 30%,
    rgba(0, 0, 0, 0) 60%
  );
  z-index: 1;
  pointer-events: none;
}

@media (max-width: 991.98px) {
  .hero-group {
    left: 6%;
    width: 170px;
    height: 170px;
  }

  .hero-text {
    padding: 18px;
    font-size: 1rem;
    letter-spacing: 0.04em;
    line-height: 1.5;
  }
}

@media (max-width: 575.98px) {
  .hero-group {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 140px;
    height: 140px;
  }

  .hero-text {
    padding: 14px;
    font-size: 0.9rem;
  }
}












.bd-navbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  min-height: 4rem;
  /* background-color: #712cf9; */
  background-color: #ffffff;
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

.navbar-brand {
  color: #fff;
  font-weight: 600;
  font-size: 1.25rem;
  text-decoration: none;
  white-space: nowrap;
}

.navbar-brand:hover {
  color: #fff;
}



/* nav link 基本設定 */
.bd-navbar .nav-link {
  position: relative;
  display: inline-block;
  color: rgb(122 32 32 / 85%);
  font-weight: 500;
  text-decoration: none;
  padding-bottom: 0.45rem;
}

/* hover / focus */
.bd-navbar .nav-link:hover,
.bd-navbar .nav-link:focus {
  color: rgb(0 0 0 / 85%);
}

/* 桌機 / 一般 navbar */
.bd-navbar .nav-link {
  position: relative;
  display: inline-block;
  /* color: rgb(122 32 32 / 85%); */
  color: rgba(123, 58, 21, 0.85);
  font-weight: 500;
  text-decoration: none;
  padding-bottom: 0.45rem;
}

.bd-navbar .nav-link.active::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 4px;
  height: 1px; /*底線的寬度*/
  /* border-radius: 999px; */
  background-color: currentColor;
}
/* 手機版 navbar */
@media (max-width: 991.98px) {
  .offcanvas-custom .nav-item {
    width: 100%;
  }

  .offcanvas-custom .nav-link {
    display: inline-block;
    width: auto;
    padding-left: 0;
    padding-right: 0;
    color: rgba(255, 255, 255, 0.9);
  }

  .offcanvas-custom .nav-link:hover,
  .offcanvas-custom .nav-link:focus,
  .offcanvas-custom .nav-link.active {
    color: #fff;
  }

  .offcanvas-custom .nav-link.active::after {
    left: 0;
    right: 0;
  }
}




.home-main-title {
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.1em;
}

.home-main-title::before,
.home-main-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    #999,
    transparent
  );
  margin: 0 20px;
}



.navbar-toggler {
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
}

.navbar-toggler:focus {
  box-shadow: 0 0 0 .2rem rgba(255,255,255,.15);
}

.navbar-toggler-icon {
  filter: invert(1);
}

.btn-bd-primary {
  background-color: #5a23c8;
  border-color: #5a23c8;
  color: #fff;
}

.btn-bd-primary:hover {
  background-color: #4f1fb3;
  border-color: #4f1fb3;
  color: #fff;
}

/* 右側滑出選單樣式 */
/* .offcanvas-custom {
  background-color: rgba(86, 21, 43, 0.85);
  color: #fff;
  width: 100px;
} */
.offcanvas-custom {
  /* background-color: rgba(81, 39, 43, 0.85); */
  background-color: rgba(101, 49, 49, 0.85);
  color: #fff;
  width: 85vw;
  max-width: 300px;
}

.offcanvas-custom .offcanvas-title {
  font-weight: 700;
  color: #fff;
}

.offcanvas-custom .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.offcanvas-custom .dropdown-menu {
  border: 0;
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
}

.offcanvas-custom hr {
  border-color: rgba(255,255,255,.25);
  opacity: 1;
}

@media (min-width: 992px) {
  .bd-navbar .nav-link {
    /* white-space: nowrap; */
  }

  .navbar-nav {
    /* flex-wrap: nowrap; */
  }
  .offcanvas-custom {
    max-width: none;
  }

  .offcanvas-lg-reset {
    position: static;
    transform: none !important;
    visibility: visible !important;
    background: transparent !important;
    border: 0 !important;
    width: auto !important;
    height: auto !important;
  }

  .offcanvas-lg-reset .offcanvas-header {
    display: none;
  }

  .offcanvas-lg-reset .offcanvas-body {
    display: flex;
    align-items: center;
    padding: 0;
    overflow: visible;
  }
}









tr.row-active {
outline: 1px solid #9a2965;
outline-offset: -1px;
position: relative;
z-index: 1;
}
.table-row-link {
cursor: pointer;
}

.table-row-link:hover {
background: #efe5d9;
}
.btn-gradient{
background: #DA4453;  /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #89216B, #DA4453);  /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #89216B, #DA4453); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}


/*---------------------------------*/
/*-- section title --*/
/*---------------------------------*/
/* 如果上面有 navbar，要留高度 */

.section-title {
/* z-index: 1020; */              /* 比內容高 */
/* padding: 12px 16px; */
/* border-bottom: 1px solid #eee; */
}
.section-title.sticky-top {
top: 62px;                     /* 若有 navbar 改成 56px / 72px */
/* top: 45px;                     若有 navbar 改成 56px / 72px */
}



/* 讓 sticky 標題可淡出 */
.section-title {
  transition: opacity 180ms ease, transform 180ms ease;
  will-change: opacity, transform;
}

/* 消失時：淡出 + 微微上移（更像真的離開） */
.section-title.is-hiding {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none; /* 避免淡出途中還能點到 */
}



/* 每日行程的錨點位移調整*/
#section-daily-itineraries {
  scroll-margin-top: 50px; /* 這裡填你的 navbar+sticky 的總高度 */
}






.page-title-border {
position: relative;
display: inline-block;      /* 讓框貼合文字寬度 */
padding: 0.8em 1.2em;
font-weight: 700;
}

/* 外框（粗） */
.page-title-border::before {
content: "";
position: absolute;
inset: 0;
border: 1px solid #8d4a23;
pointer-events: none;
}

/* 內框（細） */
.page-title-border::after {
content: "";
position: absolute;
inset: 3px;                 /* 控制粗細框間距 */
border: 1px dotted #8d4a23;
pointer-events: none;
}

/* 大標題本體 */
.page-title-bg {
position: relative;
isolation: isolate;          /* 保證疊圖層級乾淨（可選但好用） */
overflow: hidden;            /* 讓背景裁切在標題區塊內 */
background: #fff;            /* 你的標題底色 */
}

/* 淡淡背景材質 */
.page-title-bg::before {
content: "";
position: absolute;
inset: 0;                    /* top/right/bottom/left: 0 */
z-index: -1;                 /* 壓到文字後面 */

background-image: url("/assets/images_greattime/title_bg.jpg");
background-repeat: no-repeat;        /* 不重複 */
background-position: center;         /* 置中 */
background-size: cover;              /* 依螢幕自動填滿；超出就裁切（你要的效果） */

opacity: 1.0;               /* 淡淡的材質感：0.05~0.18 常用 */
pointer-events: none;
}

.title_gradient_bg{

background-image: radial-gradient( circle 859px at 10% 20%,  rgba(245,220,154,0.15) 0%, rgba(164,78,51,0.15) 90% );

}
.daily_itinerary_title_bg{
background-color: rgb(124, 96, 63, 0.1) !important;
}


/*-------------------------------------*/
/* 左側直排按鈕容器 start */
/*-------------------------------------*/
.day-nav{
  position: fixed;
  left: 5px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1050;

  display: none;           /* 預設隱藏 */
  flex-direction: column;
  gap: 5px;
}

/* 進入每日行程時加上 .is-visible 才顯示 */
.day-nav.is-visible{
  display: flex;
}

.day-nav-btn{
  width: 64px;
  padding: 10px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.15);
  background: #fff;
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
  cursor: pointer;
}

.day-nav-btn.is-active{
  border-color: rgb(255, 0, 0);
  font-weight: 600;
}

/* 讓捲動到標題時不要被 sticky header 蓋住：
   依你頁首/黏貼區塊高度調整這個值 */
.daily-day{
  scroll-margin-top: 110px;
}

/* 列印時不要讓浮動導航搶版面 */
@media print{
  .day-nav{ display: none !important; }
}

/* 手機想隱藏也可以 */
@media (max-width: 576px){
  /* .day-nav{ display: none !important; } */
}
/*-------------------------------------*/




/* X-Small devices (portrait phones, less than 576px) */
/* No media query for `xs` since this is the default in Bootstrap */

/* Small devices (landscape phones, 576px and up)*/
@media (min-width: 576px) {

}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {

}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {

}

/* X-Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {

}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {

}



/* `xs` returns only a ruleset and no media query */
/* ... { ... } */

/* `sm` applies to x-small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {

}

/* `md` applies to small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {

}

/* `lg` applies to medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {

}

/* `xl` applies to large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {

}

/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
@media (max-width: 1399.98px) {

}


@media print {
  /* 1) 關掉所有 sticky / fixed，避免重疊或跑版 */
  .sticky-top, .fixed-top, .fixed-bottom, .position-fixed, .position-sticky {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
  }

  /* 解除「每日行程」標題 sticky */
  .section-title.sticky-top.gt-sticky-released{
    position: static !important;
    top: auto !important;
  }

  /* 2) 如果你的 section-title 有 z-index / shadow，也一併拿掉更乾淨 */
  .section-title {
    z-index: auto !important;
    box-shadow: none !important;
    background: transparent !important;

    break-after: avoid;            /* 標題後不要立刻斷頁 */
    page-break-after: avoid;       /* 舊版相容 */
  }


  /* sticky 解除時加個淡出動畫 */
  .section-title {
    transition: opacity .2s ease, transform .2s ease;
  }
  .section-title:not(.sticky-top){
    opacity: .6;
    transform: translateY(-6px);
  }


  .section {
    break-inside: avoid;           /* 避免 section 被切開（不保證 100% 但很有用） */
  }
  .no-print {
    display: none !important;
  }
}