/* ==========================================================================
   內頁樣式 — /booking 主轉換頁、/niches 塔位介紹
   對應：03-page-specs.md 第二部分
   ========================================================================== */

/* ── 精簡導覽（booking：移除主導覽以降低跳離）── */

.site-header--lean {
  position: sticky;
  background: var(--color-surface);
  box-shadow: 0 1px 0 var(--color-border);
}

.site-header--lean .header__inner { gap: var(--space-4); }

.site-header--lean .header__tel {
  display: inline-flex;
  margin-left: auto;
  font-size: var(--text-base);
}

.header__back {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.header__back svg { width: 16px; height: 16px; transform: rotate(180deg); }
.header__back:hover { color: var(--color-text); }

/* ── 麵包屑 ───────────────────────────────── */

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  padding-block: var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.breadcrumb li { display: flex; align-items: center; gap: var(--space-2); }
.breadcrumb li + li::before { content: '／'; opacity: 0.5; }
.breadcrumb a { border-bottom: 1px solid transparent; }
.breadcrumb a:hover { border-bottom-color: var(--color-accent-strong); }
.breadcrumb [aria-current] { color: var(--color-text); }

/* ── 頁首（內頁）──────────────────────────── */

.page-head {
  padding-block: var(--space-7) var(--space-8);
  border-bottom: 1px solid var(--color-border);
}

.page-head__title {
  font-size: var(--text-3xl);
  max-width: 18em;
}

.page-head__lede {
  max-width: 34em;
  margin-top: var(--space-5);
  font-size: var(--text-lg);
  color: var(--color-text-muted);
}

/* ── /booking 版面 ────────────────────────── */

.booking { padding-block: var(--section-tight); }

.booking__layout {
  display: grid;
  gap: var(--space-7);
}

@media (min-width: 960px) {
  .booking__layout {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-9);
    align-items: start;
  }
}

.booking__reasons {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  margin-top: var(--space-6);
}

.reason {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-4);
  align-items: start;
}

.reason__num {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-full);
  font-family: var(--font-numeric);
  font-weight: 600;
  color: var(--color-primary);
}

.reason__title {
  font-size: var(--text-lg);
  margin-bottom: var(--space-2);
}

.reason__desc {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--leading-body);
}

/* 參觀流程 */
.flow {
  margin-top: var(--space-8);
  padding: var(--space-6);
  background: var(--color-surface-raised);
  border-radius: var(--radius-sm);
}

.flow__title {
  font-size: var(--text-lg);
  margin-bottom: var(--space-5);
}

.flow__steps { display: grid; gap: var(--space-4); }

.flow__step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-4);
  align-items: baseline;
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--text-sm);
}

.flow__step:last-child { border-bottom: 0; padding-bottom: 0; }

.flow__step-time {
  font-family: var(--font-numeric);
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-accent-strong);
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.flow__step strong { display: block; margin-bottom: 2px; }
.flow__step span { color: var(--color-text-muted); }

/* 單則好評 */
.booking__review {
  margin-top: var(--space-7);
  padding-left: var(--space-5);
  border-left: 2px solid var(--color-primary);
}

.booking__review p {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  line-height: 1.7;
}

.booking__review cite {
  display: block;
  margin-top: var(--space-3);
  font-style: normal;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* 表單卡 */
.booking__panel {
  padding: var(--space-6);
  background: var(--color-surface);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
}

@media (min-width: 960px) {
  .booking__panel {
    position: sticky;
    top: calc(var(--header-height) + var(--proto-h, 0px) + var(--space-5));
    padding: var(--space-7);
  }
}

.booking__panel-title { font-size: var(--text-xl); }

.booking__panel-note {
  margin-top: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.booking__form {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-6);
}

@media (min-width: 560px) {
  .booking__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
}

.booking__trust {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-5);
  margin-top: var(--space-5);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.booking__trust span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.booking__trust svg { width: 15px; height: 15px; color: var(--color-primary); }

/* ── /niches 比較表 ───────────────────────── */

.compare {
  margin-block: var(--space-7);
  overflow-x: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  -webkit-overflow-scrolling: touch;
}

.compare table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.compare th,
.compare td {
  padding: var(--space-4) var(--space-5);
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  vertical-align: top;
}

.compare thead th {
  position: sticky;
  top: 0;
  background: var(--color-surface-raised);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.compare tbody tr:last-child th,
.compare tbody tr:last-child td { border-bottom: 0; }

.compare tbody tr:hover { background: rgba(210, 226, 220, 0.24); }

.compare tbody th {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 500;
  white-space: nowrap;
}

/* 規格欄位不斷行，僅「特色」欄允許換行 */
.compare tbody td:nth-child(2),
.compare tbody td:nth-child(3),
.compare tbody td:nth-child(4),
.compare tbody td:last-child { white-space: nowrap; }

.compare td .num { color: var(--color-primary); font-weight: 500; }

.compare__hint {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

@media (min-width: 900px) { .compare__hint { display: none; } }

.niches__list {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 640px) { .niches__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .niches__list { grid-template-columns: repeat(3, 1fr); } }

/* 內頁底部內嵌預約區 */
.inline-cta {
  background: var(--color-primary-deep);
  color: var(--color-text-inverse);
}

.inline-cta__layout {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}

@media (min-width: 900px) {
  .inline-cta__layout { grid-template-columns: 1fr auto; gap: var(--space-8); }
}

.inline-cta__title {
  font-size: var(--text-2xl);
  font-weight: 500;
}

.inline-cta__lede {
  max-width: 32em;
  margin-top: var(--space-3);
  color: rgba(248, 245, 240, 0.78);
}

.inline-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
