@charset "utf-8";
/* ==========================================
   全站統一字型系統 (Viking Uniform Typography)
   ========================================== */

/* 1. 引入 Google Fonts 頂級繁體中文/英文標準字型 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700&family=Noto+Serif+TC:wght@400;600;700&display=swap');

/* 2. 全站預設內文字型 (清晰、平滑、無襯線體) */
body {
    font-family: 'Noto Sans TC', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Microsoft JhengHei", sans-serif !important;
    color: #333333;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased; /* 文字平滑化 */
    -moz-osx-font-smoothing: grayscale;
}

/* 3. 全站統一標題字型 (氣派、古典典雅、襯線體) */
h1, h2, h3, h4, h5, h6, 
.noto-serif-jp-500, 
.section-title, 
.cat-main-title {
    font-family: 'Noto Serif TC', "Times New Roman", PMingLiU, serif !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

/* 4. 英文/數字專用質感加強 (選用) */
.text-gold, .sub-title-gold, .en-title {
    font-family: 'Noto Serif TC', 'Georgia', serif;
}

/* 字型結束 */
.fw-bold {
    font-weight: 600 !important;
}

/* CSS Document */

/* 單元標題 */
.titA {
/*	font-family: 'cwTeXFangSong', sans-serif; */
	padding: 40px 0;
}
.t-icon-box {
	width: 62px;
	margin: 0 auto;
}
.titA h2 {
	color: #af7f4f;
	font-size: 1.6rem;
}
.titA h4 {
	font-size: 1.2rem;
	/* border: solid 1px #e6c286; */
	padding: 10px 25px;
}

/* ==========================================
   維京遊輪產品獨立頁專用樣式 (main.css)
   ========================================== */

/* 1. 基本字型與顏色 */
body {
  font-family: 'Noto Sans TC', sans-serif;
  background-color: #fcfcfc;
  color: #333333;
}

.noto-serif-jp-500 {
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
}

.border-navy {
  border-color: #1a2b49 !important;
}

.text-navy {
  color: #1a2b49 !important;
}

.bg-gold {
  background-color: #c49a45 !important;
}

.border-light-gray {
  border: 1px solid #e2e8f0;
}

/* 2. 標題與 Icon 風格 */
.titA.indp {
  text-align: center;
}

.titA.indp .t-icon-box {
  margin-bottom: 10px;
}

.titA.indp .t-icon-box img {
  width: 40px;
  height: auto;
}

.titA.indp h2 {
  color: #1a2b49;
  font-size: 2rem;
  margin-bottom: 8px;
}

.titA.indp h4 {
  color: #c49a45;
  font-size: 1.1rem;
  font-weight: normal;
}


/* 區塊標題（配合既有網頁風格） */
.section-title-group {
  text-align: center;
  margin-bottom: 30px;
}

.section-subtitle {
  font-size: 13px;
  letter-spacing: 2px;
  color: #b58d4a;
  text-transform: uppercase;
  margin-bottom: 5px;
}


.section-title {
  color: #1a2b49;
  font-size: 1.4rem;
  border-bottom: 1px solid #dee2e6;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.title-diamond {
  color: #c49a45;
  font-size: 12px;
}

/* 航線季節與主題標頭 */
.itinerary-header {
  text-align: center;
  margin-bottom: 40px;
}

.main-season-title {
  font-size: 32px;
  color: #11284b;
  font-weight: bold;
  margin: 0 0 8px 0;
}

.sub-season-title {
  font-size: 15px;
  color: #666666;
  margin: 0 0 20px 0;
}

.theme-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.theme-divider .line {
  display: inline-block;
  width: 60px;
  height: 1px;
  background-color: #333333;
}

.theme-text {
  font-size: 22px;
  color: #222222;
  letter-spacing: 1px;
}

/* 航程卡片列表 */
.itinerary-list {
  display: flex;
  flex-direction: column;
  gap: 30px;
padding-bottom: 40px;	
}

/* 航程卡片 */
.itinerary-card {
  display: flex;
  background-color: #ffffff;
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.itinerary-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}
/* 左側圖片區塊 */
.card-image-wrap {
  position: relative;
  width: 42%;
  flex-shrink: 0;
}

.card-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 右側內容區塊 */
.card-content {
  width: 58%;
  padding: 35px 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

.route-title {
  font-size: 24px;
  color: #1a2b49;
  font-weight: bold;
  margin: 0 0 12px 0;
}

.route-subtitle {
  font-size: 18px;
  color: #4a5568;
  font-weight: bold;
  margin-bottom: 25px;
}

.route-subtitle span {
  color: #cbd5e0;
  margin: 0 8px;
}

/* 行程亮點 */
/* 新的 CSS - 替換上面的舊程式碼 */
.highlight-list {
  padding-left: 0;
  margin-bottom: 0;
}

.highlight-list li {
  position: relative;
  padding-left: 1.25rem; /* 讓換行後的第二行自動對齊文字，不對齊方點 */
  line-height: 1.8;
  color: #4a4a4a;
  margin-bottom: 0.5rem;
}

.highlight-list li:last-child {
  margin-bottom: 0;
}

/* CSS 產生的紅色小方點 */
.highlight-list li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.65em;
  width: 5px;
  height: 5px;
  background-color: #dc3545; /* 價格紅 */
  border-radius: 0;
}

.route-highlights ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.route-highlights li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  color: #4a4a4a;
  line-height: 1.8;
}

.route-highlights li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #4a4a4a;
}

/* 卡片底部價格與按鈕 */
.card-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 30px;
}

.price-box {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.price-current {
  font-size: 28px;
  color: #d9232e;
  font-weight: bold;
}

.price-current small {
  font-size: 16px;
  font-weight: normal;
}

.price-original {
  font-size: 14px;
  color: #999999;
  text-decoration: line-through;
}

.btn-more {
  display: inline-block;
  background-color: #1a2b49;
  color: #ffffff;
  padding: 12px 32px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 2px;
  transition: background-color 0.2s ease;
  width: 60%;
  text-align: center;
  box-sizing: border-box;
}

.btn-more:hover {
  background-color: #0f1c33;
}

/* 行程亮點 */
/* 新的 CSS - 替換上面的舊程式碼 */
.highlight-list {
  padding-left: 0;
  margin-bottom: 0;
}

.highlight-list li {
  position: relative;
  padding-left: 1.25rem; /* 讓換行後的第二行自動對齊文字，不對齊方點 */
  line-height: 1.8;
  color: #4a4a4a;
  margin-bottom: 0.5rem;
}

.highlight-list li:last-child {
  margin-bottom: 0;
}

/* CSS 產生的紅色小方點 */
.highlight-list li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.65em;
  width: 5px;
  height: 5px;
  background-color: #dc3545; /* 價格紅 */
  border-radius: 0;
}

.route-highlights ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.route-highlights li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  color: #4a4a4a;
  line-height: 1.8;
}

.route-highlights li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #4a4a4a;
}

/* 3. 本頁指定元件：直角設定 */
.product-detail-page .card,
.product-detail-page .btn,
.product-detail-page .badge,
.product-detail-page .pd-hero-img,
.product-detail-page .route-map-box,
.product-detail-page .p-3 {
  border-radius: 0;
}

/* 4. 圖片與區塊 */
.pd-hero-img {
  max-height: 420px;
  width: 100%;
  object-fit: cover;
}

.section-title {
  color: #1a2b49;
  font-size: 1.4rem;
  border-bottom: 1px solid #dee2e6;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.highlight-list {
  line-height: 2;
  color: #4a4a4a;
}
/* 5. 行程簡表時間軸 */
.timeline-city {
  color: #1a2b49;
  font-size: 1.05rem;
}

.time-tag {
  font-size: 0.85rem;
  color: #888888;
}
/* 7. 右側側欄與價格卡片 (對齊附圖) */
.booking-sidebar {
  top: 20px;
}

.price-symbol {
  font-size: 1.6rem;
}

.price-amount {
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
}

/* ==========================================
   維京遊輪 優惠 Banner 樣式 (適用列表頁與側邊欄)
   ========================================== */
.viking-promo {
  max-width: 1120px;
  margin: 32px auto;
  background-color: #f8f6f1;
  border-color: #c9a454 !important;
}

.promo-kicker,
.promo-label {
  color: #b08b43 !important;
}

.promo-title,
.promo-more {
  color: #142844 !important;
  white-space: normal !important;
  word-break: break-word;
}

.promo-more {
  text-decoration: underline;
}

.promo-notice li {
  white-space: normal !important;
  word-break: break-word;
  line-height: 1.6;
}

/* ==========================================
   臻享酒水套餐 Pop-up 按鈕與 Modal 樣式
   ========================================== */

/* 1. 分類下的觸發按鈕 */
.btn-beverage-package {
    background-color: #FAF3E8;
    color: #8C6D31;
    border: 1px solid #C5A059;
    font-size: 0.9375rem;
  /*  font-weight: 500;  */
    padding: 0.5rem 1.25rem;
    border-radius: 50px;
    transition: all 0.3s ease;
}

.btn-beverage-package:hover {
    background-color: #C5A059;
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(197, 160, 89, 0.3);
}

/* 2. Modal 金色輔助元素 */
.bg-gold-light {
    background-color: #FAF5EC;
}

.border-gold {
    border-color: #C5A059 !important;
}

/* 3. Modal 內容字體與調性對齊 */
#beveragePackageModal .modal-header {
    background-color: #0F2232 !important;
}

#beveragePackageModal .table-dark {
    background-color: #0F2232;
    color: #FAF5EC;
}

#beveragePackageModal .table-dark th {
    border-color: #2A3F50;
    font-weight: 500;
}


/* ==========================================
   餐飲區塊獨立視覺風格 (沙色質感 + 高級金線)
   ========================================== */

/* 1. 整個餐飲區背影：改用溫潤的米沙色，跟前後純白單元區隔 */
.dining-section {
    background-color: #FAF8F5 !important;
    border-top: 1px solid #EFECE6;
    border-bottom: 1px solid #EFECE6;
}

/* 2. 主標題下方的精緻金色小分界線 */
.title-gold-line {
    width: 40px;
    height: 2px;
    background-color: #C5A059;
    margin: 0 auto;
}

/* 3. 分類標題樣式 (簡潔英文字 + 中文襯線大字 + 金線) */
.dining-cat-header .sub-title-gold {
    color: #C5A059;
    font-size: 0.75rem;
    letter-spacing: 2px;
    font-weight: 600;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.25rem;
}

.dining-cat-header .cat-main-title {
    color: #0F2232;
    font-size: 1.75rem;
    letter-spacing: 1px;
    margin-bottom: 0.75rem;
}

.dining-cat-header .cat-line {
    width: 60px;
    height: 1px;
    background-color: #C5A059;
    margin: 0 auto;
}

/* 4. 餐廳卡片獨立質感 (純白底色 + 精緻浮雕陰影) */
.restaurant-card {
    background-color: #ffffff !important;
    border: 1px solid #EAE6DF !important;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(15, 34, 50, 0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* 滑鼠移上去時微微浮起，增加層次感 */
.restaurant-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(15, 34, 50, 0.07);
}

/* 圖片與內文調整 */
.rest-img-box img {
    min-height: 280px;
}

.text-gold {
    color: #C5A059 !important;
}

.tag-item {
    display: inline-block;
    font-size: 0.8125rem;
    padding: 0.25rem 0.6rem;
    background-color: #F5F3EF;
    color: #555555;
    margin-right: 0.4rem;
    margin-bottom: 0.4rem;
}

/* 標籤樣式 */
.badge {
	border-radius: 0rem;
}

.badge-gold-outline {
    border: 1px solid #C5A059;
    color: #C5A059;
    background-color: #FAF3E8;
    font-weight: 500;
    padding: 0.35em 0.65em;
}

.badge-dark {
    background-color: #0F2232;
    color: #ffffff;
    font-weight: 400;
    padding: 0.35em 0.65em;
}
/* 黑色典雅邊框標籤 (用於收費項目) */
.badge-dark-outline {
    border: 1px solid #0F2232;
    color: #0F2232;
    background-color: transparent;
    font-weight: 500;
    padding: 0.35em 0.65em;
}
/* RWD 手機版優化 */
@media (max-width: 991.98px) {
    .rest-img-box img {
        height: 220px !important;
    }
    
    .rest-info-box {
        padding: 1.5rem !important;
    }
}

/* RWD 響應式適應（手機端） */
@media (max-width: 768px) {
  .itinerary-card {
    flex-direction: column;
  }
  
  .card-image-wrap,
  .card-content {
    width: 100%;
  }

  .card-image-wrap {
    height: 220px;
  }

  .card-content {
    padding: 25px 20px;
  }

  .card-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }

}
