/* =============================================================================
   永誠國際投顧：加入會員頁 (/join/index.html) 的唯一樣式表。

   每一頁只 link 這一支我們自己的 CSS（客戶規則 7，docs/GOAL-BOOTSTRAP.md）。所以
   共用的樣式在六個頁面檔裡各有一份「複本」，夾在 SHARED BLOCK START / END 之間，
   而且逐位元組相同：改其中一個，就要在同一次修改裡改掉每一份。搜尋
   "SHARED BLOCK" 找得到全部。

   Bootstrap 5.3.3 先載入，這個檔案排在它後面。排版和元件一律先用 Bootstrap 的
   class，這裡只寫和它不同的地方：元件變數 (--bs-*) 優先，沒有變數才寫屬性。
   所有規則都掛在 .yc-* class 上，沒有單獨的元素 selector，也沒有單獨的 Bootstrap
   class selector（搜尋 "yc-" 就找得到每一處改動）。

   共用區塊的標題不編號：每個檔案的節次不同，而區塊內容必須完全相同。

   目錄
     1. 設計變數 (design token)   SHARED
     2. 頁面主題 .yc-page          SHARED
     3. 內容欄 .yc-container       SHARED
     4. 頁首與選單                 SHARED
     5. 麵包屑 .yc-breadcrumb      SHARED
     6. 區塊標題 .yc-title         SHARED
     7. 膠囊按鈕 .yc-btn           SHARED
     8. 提醒框 .yc-alert           SHARED（和 thanks.css 相同）
     9. 頁面底帶                   .yc-join                 184:6323
    10. 標題與引言                 .yc-join__intro          184:6324
    11. 步驟                       .yc-join__step*          184:6333
    12. 聯絡橫幅                   .yc-join__cta*           184:6548
    13. 表單卡片                   .yc-join__card .yc-join__row
    14. 欄位                       .yc-field*               184:6366
    15. 單選選項                   .yc-choice*              184:6373 / 184:6415
    16. 分析師選項格線             .yc-join__analyst*       184:6414
    17. 送出與隱私權               .yc-join__submit*        184:6536
    18. 頁尾                       SHARED

   斷點只有兩個，和 Bootstrap 的 md (768) / xl (1200) 一致。CSS 裡的 media query
   都寫成 max-width，所以每一段也會套用到所有更窄的寬度：
     @media (max-width: 1199.98px)   平板與手機
     @media (max-width:  767.98px)   只有手機
   每一段 media query 都放在它修改的元件旁邊，不集中在檔案最後。
   ============================================================================= */

/* ==== SHARED BLOCK START: 設計變數（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 整站的設計變數 (design token)。這裡只定義 --yc-* 自訂屬性，不設定任何 --bs-*：
   Bootstrap 的全站變數由下一個區塊的 .yc-page 設定，這樣搜尋 "yc-" 就找得到
   每一處改動。

   斷點都寫成 max-width，所以每一段也會套用到所有更窄的寬度：
     @media (max-width: 1199.98px)   平板與手機   Figma 231:14
     @media (max-width:  767.98px)   只有手機     Figma 415:1841 */

:root {
  --yc-red: #c8102e;
  --yc-black: #111;
  --yc-gold: #c8a96b;
  --yc-gold-light: #ffdb92;
  --yc-gray: #888;
  --yc-gray-dark: #333;
  --yc-line: #eaeaea;
  --yc-bg: #f4f4f4;
  --yc-white: #fff;
  /* Figma 的具名樣式「紅效果漸層」（狀態節點 446:3639）。每一顆紅色實心按鈕的
     滑鼠移入 (hover) 底色都是它：頁首的會員按鈕 (182:1657)、帶圖示的膠囊按鈕
     (449:20456)，以及 join 頁的送出按鈕。
     一律用 background-image 套用，不要用 background 簡寫：簡寫會把 background-color
     重設成透明，按鈕又有 transition 的話，滑鼠移開時漸層瞬間消失、紅色才從透明
     慢慢淡入，按鈕就會閃一下。 */
  --yc-red-hover: linear-gradient(180deg, #c8102e 6.25%, #a80f28 100%);
  --yc-font: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --yc-font-en: "Inter", var(--yc-font);
  /* Figma 的桌機版畫在 1440 的畫框裡：80px 的頁首，下面是 1200px 的內容欄，
     左右留白各 120px。 */
  --yc-header-h: 80px;
  --yc-content: 1200px;
  /* 120px 不是固定值，而是 1440 畫框放進 1200px 內容欄後兩側剩下的空間：如果寫成
     固定值，1280 或 1366 的筆電兩側仍各留 120，內容欄就被吃掉（1280 只剩 1040）。
     所以左右留白取剩下的空間，且不小於 24px，也就是整份設計裡最小的邊緣間距。
     百分比以 viewport 為基準計算，因為用到這個設計變數的都是滿版的區塊。
     1440 -> 120、1366 -> 83、1280 -> 40、1200 -> 24。 */
  --yc-gutter: max(24px, (100% - var(--yc-content)) / 2);
}

/* 231:14 是 768 的畫框：內容 688、左右留白 40、頁首 72px。 */
@media (max-width: 1199.98px) {
  :root {
    --yc-gutter: 40px;
    --yc-header-h: 72px;
  }
}

/* 415:1841 是 360 的畫框：內容 328、左右留白 16。頁首維持 72。 */
@media (max-width: 767.98px) {
  :root {
    --yc-gutter: 16px;
  }
}
/* ==== SHARED BLOCK END: 設計變數 ==== */

/* ==== SHARED BLOCK START: 頁面主題（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* .yc-page 是每一頁 <body> 上的 class，也是整站唯一設定 --bs-* 全站變數的地方。
   Bootstrap 的 Reboot 用這些變數畫 <body>，所以在同一個元素上設定就會生效，
   不必再寫 body 的元素 selector。

   連結和圖片沒有對應的 --bs-* 變數（Reboot 的 a 是寫死的 text-decoration: underline），
   所以用 :where(.yc-page) 包住：:where() 的權重是 0，整條 selector 的權重和它取代的
   元素 selector 完全一樣，膠囊按鈕那種「單一 class 設 color」的規則才不會被蓋掉。 */

.yc-page {
  --bs-body-font-family: var(--yc-font);
  --bs-body-color: var(--yc-black);
  --bs-body-bg: var(--yc-white);
  /* 設計稿以 1440 繪製。1200 以下不可以出現水平捲動。 */
  overflow-x: hidden;
  /* 內容比視窗短的頁面，頁尾要貼齊視窗底部、下面不露白：body 最少和視窗一樣高，HTML 上的
     .d-flex .flex-column 和 <main> 的 .flex-grow-1 把多出來的高度交給 <main>。
     Bootstrap 的 .min-vh-100 是 100vh，手機的網址列收合時會多出一段，所以用 dvh；
     不支援 dvh 的舊瀏覽器用前一行的 vh。 */
  min-height: 100vh;
  min-height: 100dvh;
}

/* 這裡刻意不寫 a:hover { color: inherit }：它的權重會比單一 class 的按鈕高，
   滑鼠移入時會蓋掉按鈕自己的文字顏色。Bootstrap 的 a:hover 只改一個 CSS 變數，
   下面的 color: inherit 已經讓它沒有作用。 */
:where(.yc-page) a {
  color: inherit;
  text-decoration: none;
}

:where(.yc-page) img {
  max-width: 100%;
}
/* ==== SHARED BLOCK END: 頁面主題 ==== */

/* ==== SHARED BLOCK START: 內容欄（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 每個區塊的內容欄都是 class="container yc-container"。Bootstrap 的 .container 已經
   給了 width: 100%、左右 auto 的 margin，以及由 --bs-gutter-x 算出來的左右 padding，
   所以這裡只改兩件事：最大寬度，以及隨斷點改變的左右留白。 */

.yc-container {
  /* .container 的 padding 是 --bs-gutter-x 的一半，所以這裡要放兩倍。 */
  --bs-gutter-x: calc(var(--yc-gutter) * 2);
  max-width: calc(var(--yc-content) + var(--yc-gutter) * 2);
}
/* ==== SHARED BLOCK END: 內容欄 ==== */

/* ==== SHARED BLOCK START: 頁首與選單（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* layout.js 渲染到 #yc-header 的頁首列、主選單、兩個下拉選單，以及 1200 以下的
   滑入式選單面板。用到的 Bootstrap 元件：
     .navbar + .navbar-expand-xl   頁首列，以及 1200 這個「橫列變面板」的斷點
     .dropdown / .dropdown-menu    兩個下拉選單（data-bs-toggle="dropdown"）
     .offcanvas                    選單面板（data-bs-toggle="offcanvas"）
     .navbar-toggler               漢堡按鈕
   下面只寫和 Bootstrap 預設值不同的部分；能用元件變數 (--bs-*) 表達的就用變數。

   斷點都寫成 max-width，所以每一段也會套用到所有更窄的寬度：
     @media (max-width: 1199.98px)   平板與手機   Figma 367:3094
     @media (max-width:  767.98px)   只有手機     Figma 372:3598
   只有「桌機才成立」的規則（絕對定位的主選單、滑鼠移入開選單、桌機遮罩）寫成
   min-width: 1200px，因為它們在面板上會造成錯誤的版面。 */

/* 頁首列 --------------------------------------------------------------------- */

/* HTML 上的 .position-relative 加這裡的 z-index，讓頁首自成一個堆疊環境，下拉選單和
   遮罩才會蓋在頁面內容上面；1000 是改版前的值。
   頁首不是 fixed 也不是 sticky，會跟著頁面捲走，和上線中的版本一致。 */
.yc-header {
  z-index: 1000;
}

/* .navbar 已經是 flex、垂直置中、兩端對齊。1200 以上 .navbar-expand-xl 會把
   justify-content 改成 flex-start，但 Figma 的頁首列在每個寬度都是兩端對齊
   （左 logo、右會員按鈕或漢堡按鈕），所以這裡寫回 space-between。 */
.yc-header__bar {
  /* 桌機主選單的連結在 Figma 裡沒有左右 padding。 */
  --bs-navbar-nav-link-padding-x: 0;
  --bs-navbar-color: var(--yc-black);
  --bs-navbar-hover-color: var(--yc-red);
  justify-content: space-between;
  height: var(--yc-header-h);
  padding: 20px var(--yc-gutter);
  background: var(--yc-white);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

/* .navbar-brand 自己帶了上下 padding 和右邊 margin；Figma 的 logo 直接貼齊內容邊緣。 */
.yc-header__logo {
  padding: 0;
  margin: 0;
}

.yc-header__logo img {
  display: block;
  width: 186px;
  height: 32px;
  /* 原始 PNG 帶有透明留邊；cover 把它裁成 Figma 的框。 */
  object-fit: cover;
}

/* 231:14 把頁首列縮成 72px，logo 也跟著縮小。 */
@media (max-width: 1199.98px) {
  .yc-header__bar {
    padding: 16px var(--yc-gutter);
  }

  .yc-header__logo img {
    width: 167px;
    height: 28px;
  }
}

/* 會員按鈕 ------------------------------------------------------------------- */
/* 頁首列裡唯一的按鈕（Figma 182:1655）。1200 以下它改放進選單面板，成為主選單的
   最後一列（.yc-nav__member），兩者由 d-none / d-xl-inline-flex 和 d-xl-none 切換，
   所以無障礙樹裡任何時候都只有其中一個。 */

.yc-header__member {
  /* 改版前這顆按鈕沒有框線，.btn 預設的 1px 框線會讓圓角邊緣多一層去鋸齒。 */
  --bs-btn-border-width: 0;
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-font-size: 14px;
  --bs-btn-font-weight: 700;
  --bs-btn-line-height: 24px;
  --bs-btn-color: var(--yc-white);
  --bs-btn-bg: var(--yc-red);
  --bs-btn-border-color: var(--yc-red);
  --bs-btn-border-radius: 30px;
  --bs-btn-hover-color: var(--yc-white);
  --bs-btn-hover-bg: var(--yc-red);
  --bs-btn-hover-border-color: var(--yc-red);
  /* 按下時 (.btn:active) 的權重比 :hover 高；不設的話，字會繼承成黑色。 */
  --bs-btn-active-color: var(--yc-white);
  --bs-btn-active-bg: var(--yc-red);
  --bs-btn-active-border-color: var(--yc-red);
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 40px;
}

/* Figma 182:1655 -> 182:1657「紅效果漸層」：滑鼠移入 (hover) 的狀態是漸層，不是
   平塗的單色，而漸層沒有對應的 --bs-btn-* 變數。hover 只在有真實指標裝置時生效，
   點一下之後按鈕才不會卡在漸層；鍵盤操作也有同樣的狀態。 */
@media (hover: hover) {
  .yc-header__member:hover {
    background-image: var(--yc-red-hover);
  }
}

.yc-header__member:focus-visible {
  background-image: var(--yc-red-hover);
}

/* .btn:focus-visible 和 .navbar-toggler:focus 都會關掉 outline，改用外發光的
   box-shadow；設計稿裡這兩顆按鈕都沒有外發光的焦點框，所以把瀏覽器預設的焦點
   外框還原，鍵盤操作才看得見。 */
.yc-header__member:focus-visible,
.yc-header__burger:focus-visible {
  outline: revert;
}

/* 主選單 --------------------------------------------------------------------- */
/* 1200 以上是頁首列上置中的一橫列，1200 以下是從右側滑入的選單面板（offcanvas）。
   同一份 HTML，差別只在這裡的 CSS。 */

/* Figma 把這一列對齊 1440 畫框的中線，不是 logo 和會員按鈕之間剩下空間的中線，
   所以用絕對定位，不用 flex 的 flex-grow。
   權重要兩個 class 才蓋得過 .navbar-expand-xl .offcanvas 的 position: static。
   位移用 translate 而不是 transform：.navbar-expand-xl .offcanvas 帶
   transform: none !important。 */
@media (min-width: 1200px) {
  .yc-header__bar .yc-nav {
    position: absolute;
    left: 50%;
    /* 24px 高的連結列在 80px 的頁首列裡垂直置中：(80 - 24) / 2 = 28。 */
    top: 28px;
    /* .offcanvas-end 帶 right: 0、.offcanvas 帶 bottom: 0；和 left / top 同時成立
       會把寬高撐成「從 left 到 right」，選單就不是置中而是靠右半邊。 */
    right: auto;
    bottom: auto;
    translate: -50% 0;
  }
}

.yc-nav__list {
  /* .navbar-nav 預設上下各 0.5rem；桌機的連結列高度就是文字的 24px。 */
  --bs-nav-link-padding-y: 0;
}

/* 標籤和下拉箭頭 (chevron) 併成一列。.dropdown 只給了 position: relative，
   所以這一行是必要的；下拉選單是絕對定位，不算在這一列裡。 */
.yc-nav__group {
  display: flex;
  align-items: center;
  column-gap: 2px;
}

.yc-nav__link {
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  white-space: nowrap;
}

/* 446:3639 沒有畫主選單連結的狀態：紅色是這個版本自己加的。.nav-link 自己的
   :hover 已經吃掉 --bs-navbar-hover-color，這裡補的是「滑鼠停在群組任何一處、
   或鍵盤焦點在群組裡」時，連結也要跟著變紅。1200 以下面板裡不做這個回饋，
   所以兩條都限定在桌機。 */
@media (min-width: 1200px) {
  .yc-nav__group:focus-within > .yc-nav__link {
    color: var(--yc-red);
  }
}

@media (hover: hover) and (min-width: 1200px) {
  .yc-nav__group:hover > .yc-nav__link {
    color: var(--yc-red);
  }
}

/* 只有一個 12px 下拉箭頭 (chevron) 的開關按鈕。不掛 .btn：它會把按鈕的文字顏色
   從瀏覽器預設的 buttontext 換成 --bs-body-color，也會把原生焦點外框換成
   Bootstrap 的外發光，而 .btn 的外觀在這裡一條都用不到。 */
.yc-nav__toggle {
  display: flex;
  align-items: center;
  padding: 6px 0;
  border: 0;
  background: none;
  line-height: 0;
}

/* 改版前這顆按鈕是行內元素，坐在主選單那一行的文字基線上，比整列的中線低 1px。
   現在整列是 flex 並且垂直置中，所以用 1px 把它挪回原本的位置（視覺維持原狀）。
   1200 以下的面板裡，這顆按鈕本來就是自己撐滿 64px 的列，不需要補。 */
@media (min-width: 1200px) {
  .yc-nav__toggle {
    margin-top: 1px;
  }
}

/* 下拉箭頭在所有狀態都朝下。Figma 在選單打開時也是這樣畫（手機 372:3708），
   所以不做旋轉。 */
.yc-nav__chevron {
  display: block;
  width: 12px;
  height: 12px;
}

/* 下拉選單 ------------------------------------------------------------------- */
/* 兩種形狀：分析師選單是姓名卡片的網格，免費專區選單是單欄的文字。
   display 和定位由 Bootstrap 負責：.navbar-nav 裡的 .dropdown-menu 是 static
   （面板裡會把下面的列往下推），1200 以上 .navbar-expand-xl 改成 absolute。 */

.yc-menu {
  --bs-dropdown-min-width: 0;
  --bs-dropdown-padding-x: 0;
  --bs-dropdown-padding-y: 0;
  --bs-dropdown-spacer: 0;
  --bs-dropdown-border-width: 0;
  --bs-dropdown-border-radius: 0;
  --bs-dropdown-bg: var(--yc-white);
  --bs-dropdown-link-color: var(--yc-black);
  --bs-dropdown-link-hover-color: var(--yc-black);
  --bs-dropdown-link-hover-bg: var(--yc-line);
  /* 按下時 (:active) 和滑鼠移入一樣是灰底，不用 Bootstrap 預設的藍底白字。 */
  --bs-dropdown-link-active-color: var(--yc-black);
  --bs-dropdown-link-active-bg: var(--yc-line);
  /* 選單畫在頁首列這個堆疊環境 (stacking context) 裡，照 DOM 順序就已經蓋在
     遮罩上面；給了 z-index 反而會蓋過漢堡按鈕。 */
  --bs-dropdown-zindex: auto;
  /* Figma 336:5 與 336:35：上下各 2px 金邊，沒有陰影。 */
  border-top: 2px solid var(--yc-gold);
  border-bottom: 2px solid var(--yc-gold);
}

/* Bootstrap 在 navbar 裡打開下拉選單時，會在選單上加 data-bs-popper="static"，
   那條規則（.dropdown-menu[data-bs-popper]）的權重是兩個 class，所以這裡也要
   兩個 class 才蓋得過它的 top: 100%。 */
.yc-nav .yc-menu {
  left: 0;
  /* 主選單在 80px 頁首列裡的 y=28，所以 52px 讓下拉選單落在 y=80。 */
  top: 52px;
}

/* 23 位分析師排成三欄的網格，每欄 160px，由左到右排滿一列再換下一列。 */
.yc-menu--analysts {
  width: 480px;
  grid-template-columns: repeat(3, 160px);
  grid-auto-rows: 56px;
}

/* .dropdown-menu.show 是 display: block，權重相同，所以這條要排在它後面。 */
.yc-menu--analysts.show {
  display: grid;
}

/* 1200 以上：滑鼠移入 (hover) 或鍵盤焦點停在群組裡就打開，這是 Bootstrap 的
   dropdown 沒有的機制（它只有 click）。觸控裝置沒有 hover，改用下拉箭頭按鈕
   打開同一個選單，那條路徑走 Bootstrap 的 .show。 */
@media (min-width: 1200px) {
  .yc-nav .dropdown:focus-within > .dropdown-menu {
    display: block;
  }

  .yc-nav .dropdown:focus-within > .yc-menu--analysts {
    display: grid;
  }
}

@media (hover: hover) and (min-width: 1200px) {
  .yc-nav .dropdown:hover > .dropdown-menu {
    display: block;
  }

  .yc-nav .dropdown:hover > .yc-menu--analysts {
    display: grid;
  }
}

/* 點了選單項目之後由 layout.js 設定，即使滑鼠還停在上面，選單也會關閉。它必須
   排在上面那些打開選單的規則之後。 */
.yc-nav .dropdown.is-dismissed > .dropdown-menu {
  display: none;
}

/* 滑鼠移入 (hover) 的橋接區。群組只有 24px 高的連結列（y=28 到 52），下拉選單
   從 y=80 開始，滑鼠中間經過的 28px 不屬於任何一方，還沒碰到選單，選單就關了。
   這條看不見的區域算在選單裡，所以往下移動時群組維持 hover：
   28px 的空隙 + 2px 上邊框 = 30px。
   只用在桌機：平板與手機的選單面板裡，下拉選單在一般文件流中，這條區域會蓋住
   它上面那一列。 */
@media (hover: hover) and (min-width: 1200px) {
  .yc-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -30px;
    height: 30px;
  }
}

.yc-menu__item {
  height: 56px;
  border-bottom: 1px solid var(--yc-line);
  transition: background 0.2s;
}

/* Figma 336:43 -> 336:47 與 336:52 -> 336:55：整列變成 #eaeaea（--bs-dropdown-link-hover-bg）。
   姓名維持原色；只有暱稱變紅。 */
.yc-menu--analysts .yc-menu__item {
  padding: 8px 8px 0 24px;
}

.yc-menu__name {
  display: block;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--yc-black);
}

.yc-menu__nick {
  display: block;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--yc-gray);
}

@media (hover: hover) {
  .yc-menu__item:hover .yc-menu__nick {
    color: var(--yc-red);
  }
}

.yc-menu__item:focus-visible .yc-menu__nick {
  color: var(--yc-red);
}

/* 免費專區選單：單欄 160px、每列 56px，文字垂直置中（d-flex align-items-center）。 */
.yc-menu:not(.yc-menu--analysts) {
  --bs-dropdown-item-padding-x: 24px;
  --bs-dropdown-item-padding-y: 0;
  width: 160px;
}

.yc-menu:not(.yc-menu--analysts) .yc-menu__item {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
}

/* 「投資早報」和「研究報告」在第一期 (phase 1) 沒有頁面，config/site.js 裡
   href: null，所以輸出的是 <span>。Figma 仍然用完整的顏色畫它們，只是不會亮起來。 */
@media (hover: hover) {
  .yc-menu__item.is-disabled:hover {
    background: none;
  }
}

/* 漢堡按鈕 ------------------------------------------------------------------- */
/* Figma 231:76：三條 36x4 的紅色橫條，在 40px 的框裡位於 y 8 / 18 / 28。
   打開的狀態 367:3440 是 X。1200 以上由 d-xl-none 隱藏。 */

.yc-header__burger {
  --bs-navbar-toggler-padding-x: 0;
  --bs-navbar-toggler-padding-y: 0;
  --bs-navbar-toggler-border-radius: 0;
  /* 設計稿沒有外發光的焦點框；上面已經把原生焦點外框還原。 */
  --bs-navbar-toggler-focus-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 40px;
  height: 40px;
  border: 0;
}

.yc-header__burger span {
  display: block;
  width: 36px;
  height: 4px;
  background: var(--yc-red);
  transition: transform 0.2s, opacity 0.2s;
}

/* Figma 的 X 佔 36x24，所以兩條橫條以 29deg 相交。用旋轉可以讓橫條長度維持 36，
   而不是 Figma 斜切後的 41，這是唯一的差異。
   10px 是最上面那條和中間那條相距 20px 的一半。
   狀態直接讀 aria-expanded，不另外加 class：layout.js 本來就要在面板開關時
   維護這個屬性（offcanvas 不像 dropdown 會自己維護觸發元素的 aria-expanded）。 */
.yc-header__burger[aria-expanded="true"] span:first-child {
  transform: translateY(10px) rotate(-29deg);
}

.yc-header__burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.yc-header__burger[aria-expanded="true"] span:last-child {
  transform: translateY(-10px) rotate(29deg);
}

/* 遮罩 ----------------------------------------------------------------------- */
/* 一個元素兩種用途，和改版前一樣：1200 以下是選單面板後面變暗的頁面，1200 以上是
   下拉選單打開時頁首以下變暗的頁面。
   面板用的是自己的遮罩，不是 Bootstrap 的 .offcanvas-backdrop（面板設了
   data-bs-backdrop="false"）：這個元素帶 data-testid="menu-overlay"，而且桌機那個
   狀態 Bootstrap 根本沒有。點它會關閉面板，靠的是 data-bs-dismiss="offcanvas"，
   沒有自訂 script。 */

.yc-header__overlay {
  display: none;
}

/* 桌機 Figma 564:6592 與 564:6918：下拉選單打開時，頁首以下的整個頁面（包含頁尾）
   蓋上 25% 的黑，頁首列維持白色，所以從頁首列的下緣開始。條件和上面打開選單的
   規則一樣（hover、鍵盤焦點、Bootstrap 的 .show，被 .is-dismissed 關掉的不算）。
   pointer-events: none：遮罩只是視覺效果，滑鼠移到它上面就等於離開選單。
   display 不能做轉場，所以桌機的遮罩一直在畫面上，用 opacity 淡入淡出。 */
@media (min-width: 1200px) {
  .yc-header__overlay {
    position: fixed;
    inset: var(--yc-header-h) 0 0;
    background: rgba(0, 0, 0, 0.25);
    pointer-events: none;
    display: block;
    opacity: 0;
    transition: opacity 0.25s ease;
  }

  .yc-header:has(.yc-nav__group:not(.is-dismissed):focus-within) .yc-header__overlay,
  .yc-header:has(.yc-nav__group:not(.is-dismissed) > .dropdown-menu.show) .yc-header__overlay {
    opacity: 1;
  }
}

@media (hover: hover) and (min-width: 1200px) {
  .yc-header:has(.yc-nav__group:not(.is-dismissed):hover) .yc-header__overlay {
    opacity: 1;
  }
}

/* 選單面板 ------------------------------------------------------------------- */
/* 1200 以下，同一份主選單 HTML 變成 offcanvas 面板，蓋在變暗的頁面上。頁首列的
   漢堡按鈕留在面板上方，同時當作關閉按鈕；打開的下拉選單會把底下的列往下推，
   不是浮在它們上面。
   Figma：選單面板 367:3094、分析師選單打開 367:3203、免費專區打開 367:3312。 */

@media (max-width: 1199.98px) {
  /* Figma 367:3422：選單面板後面的頁面（包含頁首）會變暗。 */
  .yc-header__bar:has(.yc-nav.show) .yc-header__overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.25);
  }

  .yc-header__burger {
    position: relative;
    z-index: 3;
  }

  .yc-nav {
    --bs-offcanvas-width: 480px;
    /* 遮罩 1 < 面板 2 < 漢堡按鈕 3，都在 .yc-header 這個堆疊環境裡。 */
    --bs-offcanvas-zindex: 2;
    --bs-offcanvas-border-width: 0;
    /* 設計稿裡面板是直接出現的，沒有滑入動畫。 */
    --bs-offcanvas-transition: none;
    /* iOS Safari：上下各為 0 的固定定位會算進底部網址列下方的區域，最後一列
       （會員專區）可能被它擋住。dvh 是實際看得到的高度。 */
    height: 100dvh;
    overflow-y: auto;
    /* 頁首列的漢堡按鈕留在選單面板上方，同時當作面板的關閉按鈕。 */
    padding-top: var(--yc-header-h);
  }

  /* 367:3094：面板裡的列不管滑鼠怎麼動都是黑色，而且 hover 和鍵盤焦點都不可以
     打開子選單：那個狀態只由開關按鈕負責。 */
  .yc-header__bar {
    --bs-navbar-hover-color: var(--yc-black);
  }

  /* 每個主選單項目一列 64px。一般項目的連結本身就是那一列。 */
  .yc-nav__link {
    display: flex;
    align-items: center;
    height: 64px;
    padding: 0 24px;
    border-bottom: 1px solid var(--yc-line);
    font-size: 16px;
    line-height: 26px;
  }

  /* 有下拉選單的項目：標籤和下拉箭頭併排成第一列，選單用 width 換到下一行，
     把後面的列往下推。這一列的左右 padding 和分隔線改由 li 負責，所以連結
     要把這兩項讓出來。 */
  .yc-nav__group {
    flex-wrap: wrap;
    /* 標籤和下拉箭頭之間的距離，比桌機大。 */
    column-gap: 6px;
    padding: 0 24px;
  }

  .yc-nav__group > .yc-nav__link {
    padding: 0;
    border-bottom: 0;
  }

  .yc-nav__group > .yc-nav__toggle {
    height: 64px;
    /* 下方多留 1px：改版前這顆按鈕坐在文字基線上，12px 的箭頭落在 64px 列的
       25.5px 處（比正中央高 0.5px）。置中後靠這 1px 補回同樣的位置。 */
    padding: 0 0 1px;
  }

  /* 分隔線畫在第一列（64px，含 1px 邊框）的底部，不是整個 li 的底部：下拉選單
     打開時它會把後面的列往下推，分隔線必須留在標籤那一列下面。 */
  .yc-nav__group::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 63px;
    height: 1px;
    background: var(--yc-line);
  }

  /* 整列都能展開／收合，不是只有 12px 的箭頭：按鈕的 ::after 蓋滿第一列，點到
     哪裡都是點到這顆按鈕，鍵盤和 aria-expanded 照舊。「分析師團隊」的文字是真的
     連結，疊在這層上面，點文字一樣前往 /analysts/；「免費專區」的文字是 <span>，
     沒有疊上去，點了就是展開。 */
  .yc-nav__toggle::after {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 64px;
  }

  .yc-nav__group > a.yc-nav__link {
    position: relative;
    z-index: 1;
  }

  /* 子選單橫跨整個面板的寬度，抵銷上面那一列的左右 padding。 */
  .yc-nav__group > .yc-menu {
    width: calc(100% + 48px);
    margin-inline: -24px;
  }

  /* 367:3203：三欄、每列 64px，和選單面板一樣寬。 */
  .yc-menu--analysts {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 64px;
  }

  .yc-menu__item {
    height: 64px;
  }

  .yc-menu--analysts .yc-menu__item {
    /* 上方 11px 的 padding 讓 22+20 的姓名／暱稱兩行在 64px 的列裡垂直置中。 */
    padding: 11px 8px 0 24px;
  }

  .yc-menu__name {
    font-size: 16px;
    line-height: 22px;
  }

  .yc-menu__nick {
    font-size: 14px;
  }

  .yc-menu:not(.yc-menu--analysts) .yc-menu__item {
    font-size: 16px;
    line-height: 22px;
  }

  /* Figma 367:3433：會員那一列是紅色橫帶，配白色粗體字，整列 64px 都是紅的。
     改版前這裡有一條 1px 灰線：舊的 .yc-nav__member > .yc-nav__link 權重 (0,2,0)
     輸給列的共用規則 (0,3,1)，border-bottom: 0 從來沒有生效。現在照 Figma 畫。 */
  .yc-nav__link--member {
    border-bottom: 0;
    background: var(--yc-red);
    color: var(--yc-white);
    font-weight: 700;
  }

  .yc-nav__link--member:hover,
  .yc-nav__link--member:focus {
    color: var(--yc-white);
  }
}

/* 手機 372:3598：選單面板蓋滿螢幕，分析師選單重新排列。 */
@media (max-width: 767.98px) {
  .yc-nav {
    --bs-offcanvas-width: 100%;
  }

  /* 372:4148：兩欄，取代平板的三欄。 */
  .yc-menu--analysts {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* ==== SHARED BLOCK END: 頁首與選單 ==== */

/* ==== SHARED BLOCK START: 麵包屑（4 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 規則的來源是客戶的 docs/永誠官網-第一階段頁面麵包屑總表_0921.xlsx：
     範圍      分析師團隊、23 個分析師個人頁、加入會員、感謝頁。首頁不顯示；
               其餘頁面（文章頁）客戶說後續版本再補。
     分隔符號  一律用「›」，前後各一個半形空格。
     可點規則  最後一層是目前頁面：粗體、沒有連結、aria-current="page"。
               其餘各層都是連結。
     連結網址  正式網域 https://www.yong-cheng.com.tw，沒有結尾斜線、沒有 .html。
     手機版    不截斷、不用「…」；一行放不下就自動折行。字級不小於 14px。
               （還沒做：見這個區塊的最後一段。）
     無障礙    外層是 <nav aria-label="麵包屑">。
   位置來自客戶的四張桌機示意圖（沒有 Figma 畫框）：導覽列下方，左緣對齊內容欄。
   字體用 Figma 的 Typography System（461:778）：Body，Noto Sans TC 16/24。
   上層是資訊灰 #888、字重 400；目前頁面是專業黑 #111、字重 700（總表規定粗體）。

   HTML 靜態寫在各頁，放在 #yc-header 和 <main> 之間，底是 Bootstrap 的麵包屑元件：
     nav.yc-breadcrumb > div.container.yc-container
       > ol.breadcrumb.yc-breadcrumb__list > li.breadcrumb-item
   目前頁面那一層再加 .active 和 aria-current="page"。.breadcrumb 已經給了 flex、
   自動換行和 list-style: none，分隔符號也由 .breadcrumb-item + .breadcrumb-item::before
   畫出來，所以下面只設定它的元件變數，不重寫這些。

   示意圖裡標題的位置沒有變：麵包屑是放在灰底區塊原本的上方 padding 裡。做法是
   nav 留在一般的文件流裡，再用負的 margin-bottom 把 <main> 往上拉：
     --yc-crumb-top   清單和頁首的距離
     --yc-crumb-pull  <main> 往上拉多少
   拉回的量等於 nav 的高度，所以版面完全不動。萬一折成兩行，nav 自己長高，
   下面的內容跟著往下，不會疊在一起。 */
.yc-breadcrumb {
  --yc-crumb-top: 24px;
  --yc-crumb-pull: 48px;
  position: relative;
  z-index: 1;
  padding-top: var(--yc-crumb-top);
  margin-bottom: calc(-1 * var(--yc-crumb-pull));
  /* 四個頁面的第一個區塊都是灰底；折行時 nav 會有一段沒有被 <main> 蓋到。 */
  background: var(--yc-bg);
}

/* 分析師個人頁的上方 padding 只有 40（其他頁是 80），24px 高的清單放正中間。 */
.yc-breadcrumb--tight {
  --yc-crumb-top: 8px;
  --yc-crumb-pull: 32px;
}

/* flex-wrap：一行放不下時，整層連同它前面的「›」一起掉到下一行。用 flex 也讓 HTML 裡
   <li> 之間的換行不會變成多出來的空格。 */
/* 分隔符號含前後的半形空格（總表規定），左右再各 8px 才是示意圖的間距：
   --bs-breadcrumb-item-padding-x 同時給項目的左內距和分隔符號的右內距。 */
.yc-breadcrumb__list {
  --bs-breadcrumb-divider: " › ";
  --bs-breadcrumb-divider-color: var(--yc-gray);
  --bs-breadcrumb-item-padding-x: 8px;
  --bs-breadcrumb-item-active-color: var(--yc-black);
  --bs-breadcrumb-font-size: 16px;
  --bs-breadcrumb-margin-bottom: 0;
  line-height: 24px;
  color: var(--yc-gray);
}

/* pre 讓分隔符號前後的半形空格不會被合併掉；字重寫回 400，因為目前頁面那一層是
   粗體，它的 ::before 會跟著繼承。 */
.yc-breadcrumb__list .breadcrumb-item + .breadcrumb-item::before {
  white-space: pre;
  font-weight: 400;
}

/* 總表規定目前頁面要粗體。顏色已經由 --bs-breadcrumb-item-active-color 給了，
   字重沒有對應的變數。 */
.yc-breadcrumb__list .active {
  font-weight: 700;
}

/* 由 script 填入的項目（分析師姓名）：設定檔裡找不到時留空，整個項目就不顯示。 */
.yc-breadcrumb__list .breadcrumb-item:empty {
  display: none;
}

.yc-breadcrumb__list a {
  transition: color 0.2s;
}

@media (hover: hover) {
  .yc-breadcrumb__list a:hover { color: var(--yc-red); }
}

/* 只有桌機顯示（使用者決定，2026-09-21）。平板和手機要等客戶確認版面；總表的
   「手機版」規則已經先顧到了：清單是 flex-wrap，不截斷、會自動折行。確認之後，
   把這一段換成兩個斷點的 --yc-crumb-top / --yc-crumb-pull，字級不小於 14px。 */
@media (max-width: 1199.98px) {
  .yc-breadcrumb {
    display: none;
  }
}
/* ==== SHARED BLOCK END: 麵包屑 ==== */

/* ==== SHARED BLOCK START: 區塊標題（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 英文小標在上，中文標題在下，標題底下有一條金色底線。HTML 靜態寫在各頁裡：
   .yc-title > .yc-title__sub + .yc-title__main。 */

.yc-title {
  text-align: center;
}

.yc-title__sub {
  display: block;
  font-family: var(--yc-font-en);
  font-size: 14px;
  line-height: 24px;
  font-weight: 700;
  color: var(--yc-gray);
  letter-spacing: 0.04em;
}

/* Figma 184:4971 整塊高 74px，不是 24+48+5=77：48px 的標題框從 y=17 開始，和
   24px 的英文小標框重疊 7px；底線在 y=69，在標題框下方 4px。上 -7px、下 9px
   的 margin 同時重現這兩件事。 */
.yc-title__main {
  position: relative;
  display: inline-block;
  margin: -7px 0 9px;
  font-size: 32px;
  line-height: 48px;
  font-weight: 700;
  color: var(--yc-black);
}

/* 184:4974 寬 172，標題寬 160px：底線從標題左邊 4px 開始，比標題寬 12px。 */
.yc-title__main::after {
  content: "";
  position: absolute;
  left: -4px;
  top: calc(100% + 4px);
  width: calc(100% + 12px);
  height: 5px;
  background: url("/assets/img/ui/title-underline.svg") 0 0 / 100% 5px no-repeat;
}

/* 內頁（Figma 184:7994）用同一個標題，但沒有英文小標，貼齊內容欄左緣，底線從
   第一個字開始，而不是往左多出 4px。其他都一樣（字級、顏色、標題框下方 4px 的
   間距），所以這是 modifier，不是第二個元件。 */
.yc-title--left {
  text-align: left;
}

/* 184:7994 與 231:9774：底線從內容欄邊緣開始，標題文字再往內 4px；底線比文字
   寬 8px（文字 96、底線 104）。 */
.yc-title--left .yc-title__main {
  margin-top: 0;
  padding-left: 4px;
}

.yc-title--left .yc-title__main::after {
  left: 0;
  width: calc(100% + 4px);
}

/* 平板與手機 231:80：同樣的重疊，隨較小的字級等比縮小。 */
@media (max-width: 1199.98px) {
  .yc-title__sub {
    font-size: 12px;
    line-height: 20px;
  }

  .yc-title__main {
    margin: -6px 0 6px;
    font-size: 26px;
    line-height: 38px;
  }

  .yc-title__main::after {
    top: calc(100% + 2px);
    left: -4px;
    width: calc(100% + 8px);
    height: 4px;
    background-size: 100% 4px;
  }
}

/* 手機 415:1910：字級 24/32，所以標題框和英文小標重疊 4px。 */
@media (max-width: 767.98px) {
  .yc-title__main {
    margin: -4px 0 6px;
    font-size: 24px;
    line-height: 32px;
  }
}
/* ==== SHARED BLOCK END: 區塊標題 ==== */

/* ==== SHARED BLOCK START: 膠囊按鈕（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 圓角膠囊裡放一個圖示和一段文字。分析師頁結尾的行動呼籲 (184:8274) 和 join 頁的
   聯絡橫幅 (184:6554) 畫的是同一顆按鈕，數值也相同。三個 modifier 對應設計用到的
   三種顏色。平板與手機的尺寸在兩個畫框 (231:3237 與 231:2865) 裡相同。
   32px 的圖示在 assets/img/icons。 */

.yc-btn {
  /* 底是 Bootstrap 的 .btn，所以先把 .btn 自己的狀態關掉，外觀完全由下面這幾條
     規則決定：.btn:hover 和 .btn:active 的權重比單一 class 高，會用
     --bs-btn-hover-* / --bs-btn-active-* 蓋掉膠囊的底色和文字顏色，所以每個
     modifier 都把那些變數設回自己的原色，真正的 hover 效果留給
     @media (hover: hover) 那一段。 */
  --bs-btn-focus-box-shadow: none;
  /* 改版前這顆按鈕沒有轉場，.btn 預設 0.15s 的顏色淡入。 */
  --bs-btn-transition: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  /* 184:8274：圖示那一側 16，文字那一側 24。 */
  padding: 0 24px 0 16px;
  border: 1px solid transparent;
  border-radius: 100px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 700;
  /* 每個按鈕文字都是固定的短句；一換行膠囊形狀就壞了。 */
  white-space: nowrap;
}

.yc-btn img {
  flex: none;
  width: 32px;
  height: 32px;
}

.yc-btn--member {
  --bs-btn-hover-color: var(--yc-white);
  --bs-btn-hover-bg: var(--yc-red);
  --bs-btn-hover-border-color: var(--yc-red);
  --bs-btn-active-color: var(--yc-white);
  --bs-btn-active-bg: var(--yc-red);
  --bs-btn-active-border-color: var(--yc-red);
  background: var(--yc-red);
  border-color: var(--yc-red);
  color: var(--yc-white);
}

/* LINE 綠。這是品牌色，不是本站的設計變數，所以直接寫色碼。 */
.yc-btn--line {
  --bs-btn-hover-color: var(--yc-white);
  --bs-btn-hover-bg: #13d759;
  --bs-btn-active-color: var(--yc-white);
  --bs-btn-active-bg: #12c552;
  background: #13d759;
  color: var(--yc-white);
}

.yc-btn--phone {
  --bs-btn-hover-color: var(--yc-red);
  --bs-btn-hover-bg: var(--yc-white);
  --bs-btn-hover-border-color: var(--yc-red);
  /* 按下時 (.btn:active) 和 hover 一樣填滿紅色、字變白；圖示在下面的 :active 規則轉白。
     設成白底的話，hover 已經轉白的圖示會消失在白底上。 */
  --bs-btn-active-color: var(--yc-white);
  --bs-btn-active-bg: var(--yc-red);
  --bs-btn-active-border-color: var(--yc-red);
  background: var(--yc-white);
  border-color: var(--yc-red);
  color: var(--yc-red);
}

/* 各種狀態，取自狀態節點 446:3639。
   每個滑鼠移入 (hover) 都包在 @media (hover: hover) 裡，手機點一下之後膠囊才不會
   卡在 hover 的顏色；同樣的樣式再寫一次給 :focus-visible，鍵盤操作才看得到一樣的
   效果。media query 沒辦法只包住選擇器清單裡的其中一個，所以兩份清單各寫一次。
     --member  449:20454 -> 449:20456，紅色漸層
     --line    182:1679  -> 182:1681，#13d759 -> #12c552
     --phone   446:3639 沒有這顆（32px 圖示）的 hover variant，所以沿用同一張狀態表裡
               紅色外框按鈕 182:1663 的規則：填滿紅色，文字和圖示變白。圖示是放在
               <img> 裡的紅色單色圖，用 filter 轉成白色，和 .yc-ap__more 的箭頭一樣。 */
@media (hover: hover) {
  .yc-btn--member:hover { background-image: var(--yc-red-hover); }
  .yc-btn--line:hover { background: #12c552; }

  .yc-btn--phone:hover {
    background: var(--yc-red);
    color: var(--yc-white);
  }

  .yc-btn--phone:hover img { filter: brightness(0) invert(1); }
}

/* .btn:focus-visible 會關掉 outline 改用外發光；設計稿沒有外發光的焦點框，
   所以把瀏覽器預設的焦點外框還原，鍵盤操作才看得見。 */
.yc-btn:focus-visible { outline: revert; }

.yc-btn--member:focus-visible { background-image: var(--yc-red-hover); }
.yc-btn--line:focus-visible { background: #12c552; }

.yc-btn--phone:focus-visible {
  background: var(--yc-red);
  color: var(--yc-white);
}

.yc-btn--phone:focus-visible img,
.yc-btn--phone:active img { filter: brightness(0) invert(1); }

/* 231:3237 與 231:2865 把膠囊縮到比桌機的 48 小：27.5 的圖示周圍留 8px，圖示前
   16、文字後 20。手機維持這個尺寸。 */
@media (max-width: 1199.98px) {
  .yc-btn {
    height: 44px;
    gap: 7px;
    padding: 0 20px 0 16px;
  }

  .yc-btn img {
    width: 28px;
    height: 28px;
  }
}
/* ==== SHARED BLOCK END: 膠囊按鈕 ==== */

/* ==== SHARED BLOCK START: 提醒框（2 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* 「安心提醒」防詐騙提醒框。join 頁 (184:6540) 和 thanks 頁 (184:6656) 顯示的是
   完全相同的框。底是 Bootstrap 的 .alert；橫向排列和垂直置中是 HTML 上的工具 class
   （d-flex align-items-center），其餘用元件變數 (--bs-*)。
   這組琥珀色是警示色，設計裡其他地方都沒用到，所以直接寫色碼，不做成設計變數。

   細框線用內陰影，而不是 .alert 自己的 border：Figma 的筆畫畫在 100px 畫框的內側，
   真的加 1px 的 border 會讓框變成 102px 高，所以把 --bs-alert-border 設成 0。 */

.yc-alert {
  --bs-alert-bg: #fffbeb;
  --bs-alert-border: 0;
  --bs-alert-border-radius: 12px;
  --bs-alert-padding-x: 24px;
  --bs-alert-padding-y: 24px;
  /* 和上下區塊的距離由各頁自己的 margin 決定，.alert 預設的下方 margin 用不到。 */
  --bs-alert-margin-bottom: 0;
  /* 平板要縮成 12px，那個值不在 Bootstrap 的間距級距上，而工具 class（gap-*）都帶
     !important、蓋不掉，所以整組間距寫在這裡。 */
  gap: 16px;
  box-shadow: inset 0 0 0 1px #fde68a;
}

/* 184:6541 裡 40px 的圖稿放在 48px 的框內；gap 是從這個框量起。
   置中和「不要被壓縮」由 HTML 的工具 class 負責。 */
.yc-alert__icon {
  width: 48px;
  height: 48px;
}

.yc-alert__icon img {
  width: 40px;
  height: 40px;
}

.yc-alert__title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: var(--yc-red);
}

/* 184:6547 位在 24px 高的標題下方 30px 處，所以間距是 6。 */
.yc-alert__text {
  margin: 6px 0 0;
  font-size: 14px;
  line-height: 22px;
  font-weight: 500;
  color: var(--yc-gray);
}

.yc-alert__text b {
  font-weight: 700;
  color: var(--yc-red);
}

/* 平板 231:2851：40px 的圖示，距文字 12px，標題也較小。 */
@media (max-width: 1199.98px) {
  .yc-alert {
    gap: 12px;
  }

  .yc-alert__icon {
    width: 40px;
    height: 40px;
  }

  .yc-alert__icon img {
    width: 33.33px;
    height: 33.33px;
  }

  .yc-alert__title {
    font-size: 14px;
    line-height: 22px;
  }

  .yc-alert__text {
    margin-top: 2px;
  }
}

/* 手機 231:9684：padding 16px，內文 13px，共四行。 */
@media (max-width: 767.98px) {
  .yc-alert {
    --bs-alert-padding-x: 16px;
    --bs-alert-padding-y: 16px;
  }

  .yc-alert__text {
    font-size: 13px;
    line-height: 20px;
  }
}
/* ==== SHARED BLOCK END: 提醒框 ==== */

/* --------------------------------------------------------------- 頁面底帶 */
/* 184:6323 高 2421，在 80px 的頁首下方：標題從頁首往下 80 開始，
   橫幅結束在頁尾上方 82 的位置。 */

.yc-join {
  padding: 80px 0 82px;
  background: var(--yc-bg);
}

/* 平板 231:2634：上下各 56。 */
@media (max-width: 1199.98px) {
  .yc-join {
    padding: 56px 0;
  }
}

/* 手機 231:9467：上下各 32。 */
@media (max-width: 767.98px) {
  .yc-join {
    padding: 32px 0;
  }
}

/* ----------------------------------------------------------- 標題與引言 */
/* 184:6324：先是 .yc-title 區塊，隔 24px，再一行 16px 的灰字。
   整組在步驟上方 40px。 */

.yc-join__intro {
  margin-bottom: 40px;
  text-align: center;
}

.yc-join__lead {
  margin: 24px 0 0;
  font-size: 16px;
  line-height: 23px;
  font-weight: 500;
  color: var(--yc-gray);
}

/* 平板 231:2635：標題下方 16，步驟上方 32，內文 14px。 */
@media (max-width: 1199.98px) {
  .yc-join__intro {
    margin-bottom: 32px;
  }

  .yc-join__lead {
    margin-top: 16px;
    font-size: 14px;
    line-height: 22px;
  }
}

/* 手機 231:9468：字級相同，步驟上方 24。 */
@media (max-width: 767.98px) {
  .yc-join__intro {
    margin-bottom: 24px;
  }
}

/* ------------------------------------------------------------------- 步驟 */
/* 184:6333：三張等寬的白色卡片，卡片之間是雙箭頭 (chevron)。用 <ol>，
   因為這三項是有順序的步驟，不是連結清單；箭頭也是清單項目，這樣整列仍然是
   同一個格線。版面（等寬欄、間距、手機上下堆疊、垂直置中）全部由 HTML 上的
   row / col 和工具 class 表達，這裡只留 Bootstrap 沒有的值。 */

/* 184:6334 在 1440 時寬 362，設計從 1200 以上是流動寬度，所以卡片不寫死寬度。
   白底和圓角是 .card 的元件變數；padding 24 不在 Bootstrap 的間距級距上。 */
.yc-join__step {
  --bs-card-border-width: 0;
  --bs-card-border-radius: 12px;
  --bs-card-bg: var(--yc-white);
  padding: 24px;
}

.yc-join__step-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--yc-red);
  font-family: var(--yc-font-en);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: var(--yc-white);
}

.yc-join__step-title {
  margin-top: 12px;
  font-size: 18px;
  line-height: 26px;
  font-weight: 700;
  color: var(--yc-black);
}

.yc-join__step-text {
  margin-top: 4px;
  font-size: 14px;
  line-height: 24px;
  color: var(--yc-gray);
}

.yc-join__steps-arrow {
  width: 24px;
  height: 32px;
}

.yc-join__steps-arrow img {
  width: 24px;
  height: 32px;
}

/* 平板 231:2644：同樣一列，所有尺寸各小一級。
   12px 不在 Bootstrap 的間距級距上，所以改寫格線的間距變數，蓋掉 HTML 上的 g-3。
   手機也是 12（這一段的 max-width 同時涵蓋手機）。 */
@media (max-width: 1199.98px) {
  .yc-join__steps {
    --bs-gutter-x: 12px;
    --bs-gutter-y: 12px;
  }

  .yc-join__step {
    --bs-card-border-radius: 8px;
    padding: 16px 24px;
  }

  .yc-join__step-badge {
    font-size: 14px;
    line-height: 22px;
  }

  .yc-join__step-title {
    margin-top: 8px;
    font-size: 16px;
    line-height: 24px;
  }

  .yc-join__step-text {
    margin-top: 3px;
    font-size: 13px;
    line-height: 20px;
  }

  .yc-join__steps-arrow,
  .yc-join__steps-arrow img {
    width: 16px;
    height: 20px;
  }
}

/* 手機 231:9477：三張卡片上下堆疊（HTML 上的 col-12），箭頭轉成朝下。 */
@media (max-width: 767.98px) {
  /* 231:9485 是 20x16 的框：同一張圖轉成橫躺。圖片維持自己的 16x20 尺寸，
     在一個已經是旋轉後形狀的框裡旋轉，所以這一列的高度是 Figma 畫的高度，
     不是旋轉前的高度。 */
  .yc-join__steps-arrow {
    position: relative;
    width: 20px;
    height: 16px;
  }

  .yc-join__steps-arrow img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
  }
}

/* -------------------------------------------------------- 聯絡橫幅 */
/* 184:6548：銀色底圖，上面兩行文案和兩顆膠囊按鈕。分析師頁畫的是同一種
   膠囊按鈕（.yc-btn，共用區塊「膠囊按鈕」）；但包住按鈕的區塊在每個寬度都不一樣，
   所以它留在這裡當頁面層級的元件。 */

.yc-join__alert {
  /* 184:6540 在表單卡片下方 24px（1668 - 1644）。 */
  margin-top: 24px;
}

.yc-join__cta {
  /* 184:6548 從提示區塊下方 24px 開始（1792 - 1768）。 */
  margin-top: 24px;
  padding: 80px 24px 78px;
  border-radius: 20px;
  background: url("/assets/img/ui/join-cta-pc.png") center / cover no-repeat;
}

.yc-join__cta-line {
  margin: 0;
  font-size: 18px;
  line-height: 32px;
  font-weight: 500;
  color: var(--yc-gray-dark);
}

.yc-join__cta-line--lead {
  margin-bottom: 4px;
  font-size: 20px;
  font-weight: 700;
  color: var(--yc-red);
}

/* 兩顆膠囊按鈕的排列（橫列、換行、置中、手機改成上下堆疊）都在 HTML 的工具
   class 上。32px 的上方間距和每個斷點都不同的 gap 不在 Bootstrap 的間距級距上，
   工具 class（gap-*）又帶 !important、蓋不掉，所以間距寫在這裡。 */
.yc-join__cta-buttons {
  gap: 16px;
  margin-top: 32px;
}

/* 平板 231:2859：高 263，內容區塊高 135，所以上下留白各 64。平板和手機的底圖
   和分析師頁用的是同一個檔案。 */
@media (max-width: 1199.98px) {
  .yc-join__cta {
    padding: 64px 24px;
    border-radius: 12px;
    background-image: url("/assets/img/ui/cta-tb.png");
  }

  .yc-join__cta-line {
    font-size: 16px;
    line-height: 24px;
  }

  .yc-join__cta-line--lead {
    margin-bottom: 3px;
    line-height: 40px;
  }

  .yc-join__cta-buttons {
    gap: 12px;
    margin-top: 24px;
  }
}

/* 手機 231:9692：文案折成兩行，膠囊按鈕上下堆疊，兩顆都寬 194，
   所以區塊維持平板橫幅的 263 高度。 */
@media (max-width: 767.98px) {
  /* 231:9684 和 231:9692 把兩個間距都縮成 16，1440 和 768 則維持 24。 */
  .yc-join__alert,
  .yc-join__cta {
    margin-top: 16px;
  }

  .yc-join__cta {
    padding: 34px 16px;
    background-image: url("/assets/img/ui/cta-mb.png");
  }

  .yc-join__cta-line {
    font-size: 14px;
    line-height: 22px;
  }

  .yc-join__cta-line--lead {
    margin-bottom: 2px;
    font-size: 18px;
    line-height: 38px;
  }

  .yc-join__cta-buttons {
    gap: 8px;
    margin-top: 16px;
  }

  .yc-join__cta-buttons .yc-btn {
    width: 194px;
  }
}

/* --------------------------------------------------------------- 表單卡片 */
/* 184:6361：白色面板，padding 48px，每列之間 32px。每一列不是一個欄位，
   就是兩個欄位並排。 */

/* 底是 Bootstrap 的 .card（本來就是直向的 flex 容器）。白底、圓角和「沒有框線」
   用元件變數；32 和 48 不在 Bootstrap 的間距級距上，所以寫成屬性。 */
.yc-join__card {
  --bs-card-border-width: 0;
  --bs-card-border-radius: 16px;
  --bs-card-bg: var(--yc-white);
  gap: 32px;
  /* 184:6332 把卡片放在步驟下方 24px（170 - 146）。 */
  margin-top: 24px;
  padding: 48px;
}

.yc-join__required-note {
  margin: 0;
  /* 列與列的 gap 是 32，但 184:6364 在一行 20px 文字下方 32，而那行文字從
     內縮 48 的位置開始：這行必填說明本身就算在第一個 gap 裡，
     所以不需要自己的 margin。 */
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--yc-red);
}

/* 兩個等寬的欄，184:6364：內容寬度 1104 裡是 540 + 24 + 540。欄、間距和換行的
   斷點都在 HTML 上（row g-4，欄是 col-12 col-md / col-xl），姓名那一列另外用
   工具 class 把稱謂膠囊選項排在輸入框右邊，所以這裡只剩斷點上的間距差異。 */

/* 平板 231:2672：padding 32/24，列與列之間 24，姓名那一列變成全寬（col-xl），
   手機號碼排到它下面。16 和 20 不在 Bootstrap 的間距級距上，所以改寫格線的
   間距變數，蓋掉 HTML 上的 g-4。 */
@media (max-width: 1199.98px) {
  .yc-join__card {
    --bs-card-border-radius: 12px;
    gap: 24px;
    padding: 32px 24px;
  }

  .yc-join__row {
    --bs-gutter-x: 16px;
    --bs-gutter-y: 16px;
  }

  /* 231:2675：姓名列和手機號碼列之間是 20，比另外兩列大。權重比下面手機那一條
     高，所以手機也維持 20，和改版前一樣。 */
  .yc-join__row:first-of-type {
    --bs-gutter-y: 20px;
  }
}

/* 手機 231:9505：padding 24/16，每一列都變成單欄（col-12）。 */
@media (max-width: 767.98px) {
  /* 231:9505 從最後一個步驟下方 16px 開始（453 - 437）。 */
  .yc-join__card {
    margin-top: 16px;
    padding: 24px 16px;
  }
}

/* ------------------------------------------------------------------- 欄位 */
/* 184:6366：一個 label（.form-label，它自己就有 8px 的下方間距），再一個 56px 高、
   1px 細框線的輸入框（.form-control）。錯誤訊息那一行是 Bootstrap 的
   .invalid-feedback，有文字時才會佔空間。

   label 在 HTML 上用 d-flex align-items-center gap-1 排成一列，和 184:6367 的做法
   完全一樣：星號比 label 小，放在同一個行框裡時，兩種字級的 half-leading 不同，
   會讓行框變成 28px，而不是 Figma 畫的 26，下面每一列都會跟著往下移。拆成各自的
   flex 項目後，每個都保有自己的 26px 行框，整列就是 26。 */

.yc-field__label {
  font-size: 18px;
  line-height: 26px;
  font-weight: 700;
  color: var(--yc-black);
}

/* 184:6368：18px 的 label 前面有一個 14px 的紅色星號。 */
.yc-field__star {
  font-size: 14px;
  color: var(--yc-red);
}

/* .form-control 已經給了滿寬、白底、內文色和 1px 框線，這裡只改框線顏色、圓角、
   高度、左右內距和字級。 */
.yc-field__input {
  --bs-border-color: #e0e0e0;
  --bs-border-radius: 8px;
  height: 56px;
  padding: 0 16px;
  font-size: 14px;
  line-height: 24px;
}

/* 184:6531：多行輸入框是 160px 高的框，文字靠上。上方 padding 是 13px，
   不是 16px：24px 的行框會讓 14px 的字比 Figma 的文字低 3px，
   因為 Figma 的文字行框很緊。 */
.yc-field__input--area {
  height: 160px;
  padding: 13px 16px 16px;
  resize: vertical;
}

.yc-field__input::placeholder {
  color: var(--yc-gray);
  opacity: 1;
}

/* Figma 沒有畫欄位的鍵盤焦點 (focus) 或錯誤狀態（446:3639 只有按鈕和選單的狀態），
   所以兩者都沿用設計本身的語彙：184:6373 用在已選取膠囊選項上的紅色細框線
   和淡紅底色。Bootstrap 的 .form-control:focus 是藍色外發光，這裡整組換掉。 */
.yc-field__input:focus-visible {
  outline: none;
  border-color: var(--yc-red);
  box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.15);
}

/* .form-control.is-invalid 會放一個驚嘆號圖示當底圖、右側留出它的位置，
   設計稿沒有這個圖示，所以底圖和左右內距都要寫回來。 */
.yc-field__input.is-invalid {
  --bs-form-invalid-border-color: var(--yc-red);
  padding: 0 16px;
  background-image: none;
  background-color: #fdf2f4;
}

/* 權重要蓋過 .form-control.is-invalid:focus 的紅色外發光。 */
.yc-field__input.is-invalid:focus-visible {
  box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.15);
}

/* 底是 .invalid-feedback：沒有文字時它本來就是 display: none，所以訊息出現前
   不佔空間。<p> 的預設下方 margin 要清掉。 */
.yc-field__error {
  --bs-form-invalid-color: var(--yc-red);
  margin-bottom: 0;
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
}

/* 有訊息時才顯示，不必等 Bootstrap 的 .is-invalid ~ 選擇器：分析師那一組的訊息
   不是任何一個輸入框的兄弟元素。這 6px 也在訊息出現時才出現。 */
.yc-field__error:not(:empty) {
  display: block;
  margin-top: 6px;
}

/* 平板 231:2677 和手機 231:9510 用同一個較小的欄位。 */
@media (max-width: 1199.98px) {
  .yc-field__label {
    font-size: 16px;
    line-height: 24px;
  }

  .yc-field__star {
    font-size: 13px;
  }

  .yc-field__input {
    --bs-border-radius: 6px;
    height: 48px;
    font-size: 13px;
    line-height: 20px;
  }

  .yc-field__input--area {
    height: 138px;
  }
}

/* ----------------------------------------------------------- 單選選項 */
/* 兩組單選共用同一種外形：稱謂膠囊選項（184:6373）和分析師卡片（184:6415）。
   兩者都是有框線的框，左邊一個 18px 的圓環。底是 Bootstrap 的表單元件：
     .form-check         外框（label 直接包住 input，整個框都能點）
     .form-check-input   圓環本身
     .form-check-label   文字
   整個狀態都由 :checked 決定，完全不用 script。 */

/* .form-check 預設是 block，左邊留 1.5em 給浮動的圓環，下面還有 2px 的 margin。
   這裡的選項是一整個有框線的盒子，圓環用 flex 排在文字前面（HTML 上的
   d-flex align-items-center），所以這三項都要改掉。 */
.yc-choice {
  gap: 8px;
  height: 56px;
  padding: 0 20px;
  margin-bottom: 0;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: var(--yc-white);
  cursor: pointer;
}

/* .form-check-input 的 appearance: none 已經把平台原生的控制項拿掉，只剩一個
   圓框。尺寸寫死 18px（它的預設是 1em，會跟著 14px 的字級縮小），margin 歸零
   （.form-check 會把它往左移 1.5em），框線也比預設粗。 */
.yc-choice .form-check-input {
  width: 18px;
  height: 18px;
  margin: 0;
  border: 2px solid var(--yc-gray);
  cursor: pointer;
}

/* Bootstrap 的 :focus 是藍色外發光加藍色框線，設計稿沒有這個狀態。 */
.yc-choice .form-check-input:focus {
  border-color: var(--yc-gray);
  box-shadow: none;
}

/* 排在 :focus 後面，已選取又有鍵盤焦點時框線才會是紅的。Bootstrap 的已選取狀態
   是藍底加白點的 SVG；184:6375 是白底、紅框、8px 的紅點，圓點就是這個框自己的
   底圖，所以 HTML 不需要為它多加第二個元素。 */
.yc-choice .form-check-input:checked {
  border-color: var(--yc-red);
  background-color: var(--yc-white);
  background-image: radial-gradient(circle, var(--yc-red) 0 4px, transparent 4px);
}

/* .form-check-input:focus 會把 outline 關掉，鍵盤焦點的外框要自己畫回來。 */
.yc-choice .form-check-input:focus-visible {
  outline: 2px solid var(--yc-red);
  outline-offset: 2px;
}

/* 184:6376 給 label 的寬度剛好是兩個字需要的 28px，所以如果換行，那是小數
   進位誤差，不是設計：膠囊選項讓它維持在一行。 */
.yc-choice__label {
  font-size: 14px;
  line-height: 24px;
  color: var(--yc-gray);
  white-space: nowrap;
}

/* 184:6373：已選取的膠囊選項變成紅色，加上淡紅底色。 */
.yc-choice:has(input:checked) {
  border-color: var(--yc-red);
  background: #fdf2f4;
}

.yc-choice:has(input:checked) .yc-choice__label {
  font-weight: 700;
  color: var(--yc-red);
}

/* 184:6372：兩個稱謂膠囊選項在姓名欄位旁邊，彼此間隔 16px（平板是 14，不在
   Bootstrap 的間距級距上，所以 gap 寫在這裡），在那個畫框裡從 y=34 開始，也就是
   26px 的 label 加上它的 8px 間距。位移量直接寫死，不在那一列用
   align-items: flex-end，因為那樣姓名欄位下方一出現錯誤訊息，膠囊選項就會跟著被
   往下推。<fieldset> 的預設 margin、padding 和框線也要清掉。 */
.yc-join__salutation {
  gap: 16px;
  margin: 34px 0 0;
  padding: 0;
  border: 0;
}

.yc-join__salutation .yc-choice {
  width: 94px;
}

/* 平板 231:2684 和手機 231:9517。 */
@media (max-width: 1199.98px) {
  .yc-choice {
    gap: 6px;
    height: 48px;
    padding: 0 16px;
    border-radius: 6px;
  }

  /* 231:2686 把圓環縮成 16，圓點縮成 6。 */
  .yc-choice .form-check-input {
    width: 16px;
    height: 16px;
    border-width: 1.72px;
  }

  .yc-choice .form-check-input:checked {
    background-image: radial-gradient(circle, var(--yc-red) 0 3px, transparent 3px);
  }

  .yc-choice__label {
    line-height: 22px;
  }

  /* 231:2683 從 y=31.84 開始：24px 的 label 加上它的 8px 間距。 */
  .yc-join__salutation {
    gap: 14px;
    margin-top: 32px;
  }

  .yc-join__salutation .yc-choice {
    width: 82px;
  }
}

/* 手機 231:9516：膠囊選項在姓名欄位下方自成一列，所以欄的 gap 已經把間距
   拉開，它們平分寬度，不再維持固定寬度。 */
@media (max-width: 767.98px) {
  .yc-join__salutation {
    margin-top: 0;
  }

  .yc-join__salutation .yc-choice {
    flex: 1;
    width: auto;
  }
}

/* -------------------------------------------------- 分析師選項格線 */
/* 184:6414：23 張卡片排成四欄。這一組沒有自己的外框，
   所以 <fieldset> 只放 legend 和格線。 */

.yc-join__analysts {
  margin: 0;
  padding: 0;
  border: 0;
}

/* 184:6414 從 26px 的 legend 下方 42px 開始：
   補足剩下的那 16px 是 legend 自己的 margin，不是格線的，因為 legend 不在
   fieldset 的排版流裡，寫在格線上的 margin 會穿過沒有 border 的 fieldset
   發生 margin collapse，而不是把格線往下推。 */
.yc-join__analysts > .yc-field__label {
  margin-bottom: 16px;
}

.yc-join__single-note {
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--yc-gray);
}

/* 欄數和左右間距在 HTML 上（row-cols-2 / -md-3 / -xl-4 和 gx-3）。
   列與列的間距不用 .row 的 --bs-gutter-y：它是「整列往上移、每個欄位往下移」做出來的，
   而 <legend> 不在 fieldset 的排版流裡，第一列會因此比設計稿低一個間距。
   這一組改用 row-gap，欄寬和左右間距仍然由 Bootstrap 的格線決定。 */
.yc-join__analyst-grid {
  row-gap: 16px;
}

/* 184:6415 是同一種選項框，高度是兩行，寬度拉滿整欄。 */
.yc-join__analyst-grid .yc-choice {
  gap: 12px;
  height: 80px;
  padding: 0 16px;
}

/* 兩行文字各自維持一行，184:6414 裡每張卡片都是這樣。最長的暱稱
   （投資明明很簡單）大約需要 93px，而 144px 的手機卡片只剩 92，所以在那個寬度
   本來會換行並把卡片撐開；改由左右各 12px 的 padding 吸收溢出的部分。 */
.yc-choice__text {
  gap: 2px;
  min-width: 0;
  white-space: nowrap;
}

.yc-choice__name {
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  color: var(--yc-black);
}

/* 184:6425 把暱稱畫成灰色、Regular。只有已選取的卡片會把它變成紅色、Medium
   （184:6420），和稱謂膠囊選項的 label 做法一樣。 */
.yc-choice__nick {
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
  color: var(--yc-gray);
}

.yc-choice:has(input:checked) .yc-choice__nick {
  font-weight: 500;
  color: var(--yc-red);
}

/* 這一組的錯誤訊息放在整個格線下方，不是某一張卡片下方。 */
.yc-join__analysts .yc-field__error:not(:empty) {
  margin-top: 8px;
}

/* 平板 231:2725：三欄，間隔 12px，卡片高 72px。 */
@media (max-width: 1199.98px) {
  .yc-join__single-note {
    font-size: 13px;
    line-height: 20px;
  }

  /* 12px 不在 Bootstrap 的間距級距上，所以改寫格線的間距變數，蓋掉 HTML 上的 gx-3。 */
  .yc-join__analyst-grid {
    --bs-gutter-x: 12px;
    row-gap: 12px;
  }

  .yc-join__analyst-grid .yc-choice {
    height: 72px;
    padding: 0 16px;
  }

  .yc-choice__name {
    font-size: 16px;
    line-height: 20px;
  }

  .yc-choice__nick {
    font-size: 13px;
    line-height: 18px;
  }
}

/* 手機 231:9558：兩欄，間隔 8px，卡片左右 padding 12px，
   這樣 328px 的內容寬度裡仍然放得下兩個名字並排。 */
@media (max-width: 767.98px) {
  .yc-join__analyst-grid {
    --bs-gutter-x: 8px;
    row-gap: 8px;
  }

  .yc-join__analyst-grid .yc-choice {
    padding: 0 12px;
  }
}

/* ------------------------------------------------------- 送出與隱私權 */
/* 184:6536：一顆 320px 的膠囊按鈕，隔 32px，再一行灰字，裡面有一個紅色連結。 */

/* 底是 Bootstrap 的 .btn，外觀全部用它的元件變數表達；.btn 的 :hover / :active
   會用 --bs-btn-hover-* / --bs-btn-active-* 換色，所以那兩組都設回原本的紅色，
   真正的 hover 效果留給下面的 @media (hover: hover)。 */
.yc-join__submit-btn {
  --bs-btn-border-width: 0;
  --bs-btn-padding-x: 16px;
  --bs-btn-padding-y: 0;
  --bs-btn-font-size: 16px;
  --bs-btn-font-weight: 700;
  --bs-btn-line-height: 24px;
  --bs-btn-border-radius: 30px;
  --bs-btn-color: var(--yc-white);
  --bs-btn-bg: var(--yc-red);
  --bs-btn-hover-color: var(--yc-white);
  --bs-btn-hover-bg: var(--yc-red);
  --bs-btn-active-color: var(--yc-white);
  --bs-btn-active-bg: var(--yc-red);
  /* 設計稿沒有外發光的焦點框。 */
  --bs-btn-focus-box-shadow: none;
  /* 改版前這顆按鈕沒有轉場，.btn 預設 0.15s 的顏色淡入。 */
  --bs-btn-transition: none;
  width: 320px;
  max-width: 100%;
  height: 48px;
}

/* 446:3639 的實心紅色按鈕（182:1657 和 449:20456）在滑鼠移入 (hover) 時變成
   Figma 共用樣式「紅效果漸層」；這個設計變數 (design token) 在最上面的「設計變數」區塊。446:3639
   沒有 320px 的送出按鈕 variant，但它是同一種實心紅色按鈕，所以用同一個樣式，
   不另外做自己的淡出效果。hover 只在有真實指標裝置時才生效，
   鍵盤操作也會得到相同的狀態。 */
@media (hover: hover) {
  .yc-join__submit-btn:hover {
    background-image: var(--yc-red-hover);
  }
}

/* .btn:focus-visible 會關掉 outline 改用外發光；設計稿沒有外發光的焦點框，
   所以把瀏覽器預設的焦點外框還原，鍵盤操作才看得見。 */
.yc-join__submit-btn:focus-visible {
  outline: revert;
  background-image: var(--yc-red-hover);
}

.yc-join__privacy {
  margin: 32px 0 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--yc-gray);
}

.yc-join__privacy a {
  font-weight: 700;
  color: var(--yc-red);
  text-decoration: underline;
}

/* 平板 231:2847 和手機 231:9680：240x40 的膠囊按鈕，下方 24px。 */
@media (max-width: 1199.98px) {
  .yc-join__submit-btn {
    --bs-btn-border-radius: 40px;
    --bs-btn-font-size: 14px;
    width: 240px;
    height: 40px;
  }

  .yc-join__privacy {
    margin-top: 24px;
    font-size: 13px;
  }
}

/* ==== SHARED BLOCK START: 頁尾（6 個頁面的 CSS 檔各有一份，內容必須完全相同） ==== */
/* layout.js 依 config/site.js 的 footer 渲染到 #yc-footer。
   桌機 Figma 184:4951、平板 231:16、手機 415:1847。
   版面（直向堆疊、置中、換行、間距）全部由 Bootstrap 的 flex 與 gap 工具 class
   寫在 HTML 裡，這裡只留下顏色、字級和底圖這種沒有工具 class 的東西。

   社群圖示 .yc-social 也放在這個區塊：頁尾每一頁都有，而卡片和分析師頁用的是
   同一個元件，這樣六個檔案都拿得到，不必再多一個共用區塊。

   斷點都寫成 max-width，所以每一段也會套用到所有更窄的寬度：
     @media (max-width: 1199.98px)   平板與手機   Figma 231:16
     @media (max-width:  767.98px)   只有手機     Figma 415:1847 */

/* 每個圖示佔一格 32px。HTML 由 layout.js 的 socialIcons() 產生。 */
.yc-social {
  position: relative;
  display: block;
  width: 32px;
  height: 32px;
}

/* Figma 184:4990 把 36x36 的圖稿放在 32px 的圖示格裡，左 -2px、上 -1px。 */
.yc-social img {
  position: absolute;
  left: -2px;
  top: -1px;
  width: 36px;
  height: 36px;
  max-width: none;
}

/* Figma 沒有定義社群圖示的滑鼠移入 (hover) 狀態，所以圖示不做任何變化。 */

.yc-footer {
  padding: 40px 0;
  background: var(--yc-red);
  color: var(--yc-white);
}

.yc-footer__logo {
  display: block;
  width: 239px;
  height: 40px;
  object-fit: contain;
}

/* 頁尾的圖稿以 32px 繪製，所以剛好填滿圖示格，不需要位移。 */
.yc-footer__socials .yc-social img {
  left: 0;
  top: 0;
  width: 32px;
  height: 32px;
}

.yc-footer__notices {
  /* 寬度夠窄，才能重現 Figma 的換行：先 3 則聲明，再 4 則。 */
  max-width: 800px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 700;
  color: var(--yc-gold-light);
}

/* 有幾個聲明的文字裡有空格。Figma 從不在單一聲明中間換行，所以換行只能落在
   連結之間。 */
.yc-footer__notices a {
  white-space: nowrap;
}

/* 446:3639 沒有畫頁尾連結的狀態。底線是這個版本自己加的，因為完全沒有回饋的
   連結比單純的底線更糟。 */
@media (hover: hover) {
  .yc-footer__notices a:hover {
    color: var(--yc-white);
    text-decoration: underline;
  }
}

.yc-footer__notices a:focus-visible {
  color: var(--yc-white);
  text-decoration: underline;
}

/* ｜ 前後的空格寫在 HTML 裡，和 Figma 一樣。這裡不再另外加 margin。 */
.yc-footer__sep {
  margin: 0;
}

.yc-footer__info {
  font-size: 14px;
  line-height: 24px;
}

.yc-footer__bottom {
  /* 從桌機的實際渲染量出來的：分隔線上方 38px、下方 20px。 */
  margin-top: 38px;
  padding-top: 20px;
  font-size: 14px;
  line-height: 24px;
  background: url("/assets/img/ui/footer-line.svg") 0 0 / 100% 1px no-repeat;
}

@media (hover: hover) {
  .yc-footer__legal a:hover,
  .yc-footer__bottom a:hover {
    text-decoration: underline;
  }
}

.yc-footer__legal a:focus-visible,
.yc-footer__bottom a:focus-visible {
  text-decoration: underline;
}

/* 平板 231:16：各列更緊、字級 13px；logo 縮成 215x36。 */
@media (max-width: 1199.98px) {
  .yc-footer__logo {
    width: 215px;
    height: 36px;
  }

  .yc-footer__notices {
    max-width: 100%;
    font-size: 13px;
    line-height: 26px;
  }

  .yc-footer__info {
    font-size: 13px;
    line-height: 22px;
  }

  .yc-footer__bottom {
    margin-top: 24px;
    padding-top: 16px;
    font-size: 13px;
    line-height: 22px;
  }
}

/* 手機 415:1847：資訊列和最底下那一列改成上下堆疊（HTML 裡的 flex-column）。 */
@media (max-width: 767.98px) {
  .yc-footer {
    padding: 32px 0;
  }
}
/* ==== SHARED BLOCK END: 頁尾 ==== */
