/* ============================================
   谷逸慢居 GOING MAGIC - 內頁樣式 (gm_inner.css)
   設計來源：Figma「網站全頁面-VI(定稿)」各內頁頁框，電腦版 1920 寬基準
   載入順序在 gm.css 之後；class 前綴 gi_ (gm inner)
   斷點沿用 gm.css：1639 / 1199 / 1023 / 767
   ============================================ */

/* MARK:設計變數 (內頁補充) */
:root {
    --gi-gold: #caa05c;
    --gi-gold-2: #b8975a;
    --gi-beige: #e5d0ae;
    --gi-ink: #191919;
    --gi-text-2: #424242;
    --gi-text-3: #4d4d52;
    --gi-muted: #7d7d7c;
    --gi-green-gray: #3c4a42;
    --gi-line: #e5e7eb;
    --gi-line-warm: #eae6df;
    --gi-bg-gray: #f6f6f6;
    --gi-bg-cream: #fdfbf7;
    --gi-bg-input: #f7f5f0;
    --gi-teal: #3a6880;
    --gi-purple: #4f44a0;
    --gi-container: 1350px;
    --gi-card-shadow: 0 3px 18px rgba(0, 0, 0, 0.03);
    --gi-font-cal: 'Cal Sans', var(--gm-font-sans);
    --gi-font-golos: 'Golos Text', var(--gm-font-sans);
    --gi-font-aboreto: 'Aboreto', var(--gm-font-serif);
}

/* MARK:頁面底色 (紙紋 75% 白 / 淺灰) */
.gi_page {
    padding-bottom: 80px;
}
.gi_page.is_paper {
    background:
        linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.75)),
        url('../images/inner/common/paper_texture.jpg') repeat 0 0 / 1800px auto;
}
.gi_page.is_gray {
    background: var(--gi-bg-gray);
}
.gi_page img {
    max-width: 100%;
}
.gi_page :where(p, h2, h3, h4, ul, ol) {
    margin: 0;
    padding: 0;
}
.gi_page :where(ul, ol) {
    list-style: none;
}
@media (max-width: 767px) {
    .gi_page {
        padding-bottom: 48px;
    }
}

/* MARK:內頁容器 (1350) */
.gi_container {
    width: 100%;
    max-width: calc(var(--gi-container) + 40px);
    margin: 0 auto;
    padding: 0 20px;
}
@media (max-width: 767px) {
    .gi_container {
        padding: 0 16px;
    }
}

/* MARK:內頁頁首底色
   設計稿內頁的 Header 有半透明底色 (首頁的 Header 無底色)：
   一般內頁 rgba(93,116,128,0.8)、邑繁丰順 rgba(97,93,128,0.8)；
   捲動置頂後同色系加深，避免與首頁的深色毛玻璃互相跳色 */
body.gm_inner .gm_header {
    background: rgba(93, 116, 128, 0.8);
}
body.gm_inner .gm_header.is_scrolled {
    background: rgba(93, 116, 128, 0.95);
}
body.gm_inner.is_yifan .gm_header {
    background: rgba(97, 93, 128, 0.8);
}
body.gm_inner.is_yifan .gm_header.is_scrolled {
    background: rgba(97, 93, 128, 0.95);
}

/* MARK:頁首橫幅 (高 464，英文標 | 金線 | 中文標)
   背景圖由元件以 --gi-banner-img (電腦版) 與 --gi-banner-img-m (手機版) 帶入 */
.gi_banner {
    position: relative;
    height: 464px;
    padding-top: 238px;
    background-color: #1d1d1d;
    background-image: var(--gi-banner-img, none);
    background-size: cover;
    background-position: center;
    color: var(--gm-white);
}
.gi_banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(102, 102, 102, 0) 55%, rgba(29, 29, 29, 0.62) 100%);
    pointer-events: none;
}
.gi_banner_title {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin: 0;
    font-weight: 600;
}
.gi_banner_en {
    text-align: right;
    font-size: 56px;
    line-height: 81px;
    text-transform: capitalize;
}
.gi_banner_line {
    width: 3px;
    height: 60px;
    background: var(--gi-gold-2);
}
.gi_banner_zh {
    font-size: 36px;
    line-height: 52px;
}
.gi_banner.is_small_en .gi_banner_en {
    font-size: 48px;
    line-height: 70px;
}
.gi_banner.has_shadow .gi_banner_en,
.gi_banner.has_shadow .gi_banner_zh {
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
.gi_banner.has_shadow .gi_banner_line {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}
@media (max-width: 1199px) {
    .gi_banner {
        height: 400px;
        padding-top: 200px;
    }
    .gi_banner_en,
    .gi_banner.is_small_en .gi_banner_en {
        font-size: 44px;
        line-height: 1.4;
    }
    .gi_banner_zh {
        font-size: 30px;
    }
}
@media (max-width: 767px) {
    .gi_banner {
        height: 280px;
        padding-top: 140px;
        /* 手機版有另外上傳時換圖，沒有則沿用電腦版 */
        background-image: var(--gi-banner-img-m, var(--gi-banner-img, none));
    }
    .gi_banner_title {
        gap: 14px;
        padding: 0 16px;
    }
    .gi_banner_en,
    .gi_banner.is_small_en .gi_banner_en {
        font-size: 26px;
    }
    .gi_banner_zh {
        font-size: 20px;
        line-height: 1.4;
    }
    .gi_banner_line {
        height: 36px;
        width: 2px;
    }
}

/* MARK:分類標籤 + 麵包屑 (標籤 193x44，底線金 50%) */
.gi_crumb {
    padding-top: 80px;
}
.gi_crumb_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 70px;
    padding-bottom: 21px;
    border-bottom: 1px solid rgba(202, 160, 92, 0.5);
}
.gi_crumb_tabs {
    display: flex;
    gap: 10px;
}
.gi_crumb_tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 193px;
    height: 44px;
    border: 1px solid var(--gi-gold-2);
    border-radius: 10px;
    font-size: 20px;
    font-weight: 500;
    line-height: 24px;
    color: var(--gi-text-2);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_crumb_tab:hover,
.gi_crumb_tab:focus-visible {
    color: var(--gi-gold-2);
}
.gi_crumb_tab.is_all {
    background: #b5b5b5;
    border-color: var(--gm-white);
    color: var(--gm-white);
}
.gi_crumb_tab.is_active {
    background: var(--gi-gold);
    border-color: var(--gm-white);
    color: var(--gm-white);
}
.gi_crumb.is_purple .gi_crumb_tab.is_active {
    background: var(--gi-purple);
}
.gi_crumb_path {
    margin: 0 0 0 auto;
    font-size: 18px;
    line-height: 21.6px;
    color: var(--gi-ink);
    white-space: nowrap;
}
.gi_crumb_path a {
    color: var(--gi-ink);
}
.gi_crumb_path a:hover,
.gi_crumb_path a:focus-visible {
    color: var(--gi-gold);
}
.gi_crumb_current {
    color: var(--gi-gold);
}
@media (max-width: 1023px) {
    .gi_crumb {
        padding-top: 40px;
    }
    .gi_crumb_row {
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 16px;
        padding-bottom: 16px;
    }
    .gi_crumb_tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .gi_crumb_tab {
        flex: 1 0 auto;
        width: auto;
        min-width: 120px;
        padding: 0 16px;
        font-size: 17px;
    }
    .gi_crumb_path {
        font-size: 15px;
    }
}

/* MARK:區塊間距 */
.gi_section {
    padding-top: 80px;
    scroll-margin-top: 110px;
}
@media (max-width: 767px) {
    .gi_section {
        padding-top: 48px;
    }
}

/* MARK:區塊標籤 (金框膠囊 + 金點) */
.gi_label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    align-self: flex-start;
    min-width: 167px;
    height: 25px;
    padding: 0 10px;
    border: 1px solid var(--gi-gold);
    border-radius: 100px;
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 1;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--gi-ink);
    white-space: nowrap;
}
.gi_label::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gi-gold);
    flex: 0 0 auto;
}
@media (max-width: 767px) {
    .gi_label {
        min-width: 0;
        font-size: 14px;
    }
}

/* MARK:圖文介紹區塊 (左文 716 / 右圖圓角 24) */
.gi_intro {
    display: flex;
    align-items: flex-start;
    gap: 34px;
}
.gi_intro_text {
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex: 0 0 716px;
    min-width: 0;
}
.gi_intro_heading {
    padding-bottom: 24px;
}
.gi_intro_title {
    font-size: 39px;
    font-weight: 500;
    line-height: 70.2px;
    color: var(--gi-ink);
}
.gi_intro_sub {
    font-size: 32px;
    line-height: 57.6px;
    color: var(--gi-gold-2);
}
.gi_intro_heading.is_loose .gi_intro_title {
    min-height: 91px;
}
.gi_intro_heading.no_sub {
    padding-bottom: 0;
}
.gi_intro_body {
    max-width: 685px;
    padding-left: 28px;
    border-left: 2px solid rgba(202, 160, 92, 0.5);
}
.gi_intro_body.is_solid {
    padding-left: 29px;
    border-left: 1px solid var(--gi-gold);
}
.gi_intro_body p {
    font-size: 18px;
    line-height: 36px;
    color: var(--gi-ink);
}
.gi_intro_body p + p {
    margin-top: 36px;
}
.gi_intro_body.is_lg p {
    font-size: 20px;
    line-height: 40px;
}
.gi_intro_body.is_narrow {
    max-width: 663px;
}
.gi_intro_img {
    position: relative;
    flex: 0 1 auto;
    min-width: 0;
}
.gi_intro_img img {
    display: block;
    height: auto;
    border-radius: 24px;
}
.gi_intro_img.has_shade::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(102, 102, 102, 0) 0%, rgba(29, 29, 29, 0.24) 100%);
    pointer-events: none;
}
@media (max-width: 1199px) {
    .gi_intro_text {
        flex: 1 1 55%;
    }
    .gi_intro_img {
        flex: 1 1 45%;
    }
    .gi_intro_title {
        font-size: 32px;
        line-height: 1.6;
    }
    .gi_intro_heading.is_loose .gi_intro_title {
        min-height: 0;
    }
    .gi_intro_sub {
        font-size: 26px;
        line-height: 1.6;
    }
    .gi_intro_body p {
        font-size: 17px;
        line-height: 32px;
    }
    .gi_intro_body p + p {
        margin-top: 24px;
    }
}
@media (max-width: 1023px) {
    .gi_intro {
        flex-direction: column-reverse;
        gap: 28px;
    }
    .gi_intro_text,
    .gi_intro_img {
        flex: 0 0 auto;
        width: 100%;
    }
    .gi_intro_img img {
        width: 100%;
    }
}
@media (max-width: 767px) {
    .gi_intro_text {
        gap: 14px;
    }
    .gi_intro_heading {
        padding-bottom: 6px;
    }
    .gi_intro_title {
        font-size: 26px;
    }
    .gi_intro_sub {
        font-size: 20px;
    }
    .gi_intro_body {
        padding-left: 16px;
    }
    .gi_intro_body.is_solid {
        padding-left: 17px;
    }
    .gi_intro_body p,
    .gi_intro_body.is_lg p {
        font-size: 16px;
        line-height: 30px;
    }
    .gi_intro_body p + p {
        margin-top: 20px;
    }
    .gi_intro_img img {
        border-radius: 16px;
    }
}

/* MARK:勾選清單 (Golos Text 20，金色 ✓；每列一組 ul) */
.gi_checks_row {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
}
.gi_checks.is_fixed li {
    min-width: 202px;
}
.gi_checks li {
    padding: 8px 0;
    font-family: var(--gi-font-golos);
    font-size: 20px;
    line-height: 36px;
    color: var(--gi-text-3);
}
.gi_checks li::before {
    content: '✓ ';
    color: var(--gi-gold-2);
}
@media (max-width: 767px) {
    .gi_checks li {
        padding: 2px 0;
        font-size: 17px;
        line-height: 30px;
    }
}

/* MARK:卡片列 (共用 4 欄) */
.gi_card_row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin-top: 40px;
}
@media (max-width: 1199px) {
    .gi_card_row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .gi_card_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        margin-top: 28px;
    }
}

/* MARK:關於我們 - 區塊間距 (依設計稿各段實際間距) */
.gi_about_sec_2 {
    padding-top: 158px;
}
.gi_about_sec_3 {
    padding-top: 204px;
}
.gi_about_sec_4 {
    padding-top: 119px;
}
.gi_about_sec_3 .gi_card_row {
    margin-top: 53px;
}
.gi_about_sec_4 .gi_card_row {
    margin-top: 35px;
}
@media (max-width: 1023px) {
    .gi_about_sec_3 .gi_card_row,
    .gi_about_sec_4 .gi_card_row {
        margin-top: 40px;
    }
}
@media (max-width: 767px) {
    .gi_about_sec_3 .gi_card_row,
    .gi_about_sec_4 .gi_card_row {
        margin-top: 28px;
    }
}
@media (max-width: 1023px) {
    .gi_about_sec_2,
    .gi_about_sec_3,
    .gi_about_sec_4 {
        padding-top: 80px;
    }
}
@media (max-width: 767px) {
    .gi_about_sec_2,
    .gi_about_sec_3,
    .gi_about_sec_4 {
        padding-top: 56px;
    }
}

/* MARK:關於我們 - 統計卡 / 願景卡 (白底圓角 24) */
.gi_stat_card,
.gi_vision_card {
    padding: 25px 50px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
}
/* 設計稿願景卡文字框 228 寬 (超出內距)，這裡縮小左右內距對齊斷行 */
.gi_vision_card {
    min-height: 264px;
    padding: 25px 44px;
}
.gi_stat_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 53px;
}
.gi_stat_value {
    font-size: 26px;
    font-weight: 600;
    line-height: 37.6px;
    color: var(--gi-ink);
}
.gi_stat_head img {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
}
.gi_stat_label {
    font-family: var(--gi-font-cal);
    font-size: 18px;
    line-height: 36px;
    color: var(--gi-gold-2);
}
.gi_vision_sub {
    font-family: var(--gi-font-cal);
    font-size: 20px;
    line-height: 40px;
    letter-spacing: 0.4px;
    color: var(--gi-ink);
}
.gi_vision_text {
    margin-top: 13px;
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 32px;
    color: var(--gi-gold-2);
}
@media (max-width: 1639px) {
    .gi_stat_card,
    .gi_vision_card {
        padding: 25px 32px;
    }
}
@media (max-width: 767px) {
    .gi_stat_card,
    .gi_vision_card {
        min-height: 0;
        padding: 20px 24px;
    }
    .gi_stat_value {
        font-size: 22px;
    }
    .gi_stat_label {
        font-size: 16px;
        line-height: 30px;
    }
}

/* MARK:關於我們 - 四季卡 (圖片白色漸層 + 英文/中文季節字) */
.gi_season_cards {
    gap: 21px;
}
.gi_season_card {
    padding: 10px 8px 26px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
    text-align: center;
}
.gi_season_img {
    position: relative;
    overflow: hidden;
    border-radius: 20px 20px 0 0;
}
.gi_season_img img {
    display: block;
    width: 100%;
    height: 223px;
    object-fit: cover;
}
.gi_season_img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 65.5%, rgba(255, 255, 255, 0.94) 100%);
}
.gi_season_en {
    position: absolute;
    top: 15px;
    left: 0;
    right: 0;
    z-index: 1;
    font-family: var(--gi-font-aboreto);
    font-size: 48px;
    line-height: 41.6px;
    text-transform: uppercase;
    color: var(--gm-white);
}
.gi_season_zh {
    position: absolute;
    top: 87px;
    left: 0;
    right: 0;
    z-index: 1;
    font-family: var(--gm-font-serif);
    font-size: 96px;
    line-height: 1;
    letter-spacing: 2.08px;
    color: var(--gm-white);
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.gi_season_title {
    margin-top: 16px;
    font-size: 22px;
    font-weight: 600;
    line-height: 29px;
    letter-spacing: 2.2px;
    color: var(--gi-text-3);
}
.gi_season_desc {
    margin-top: 16px;
    font-size: 20px;
    line-height: 40px;
    letter-spacing: 2.2px;
    color: var(--gi-text-3);
}
.gi_season_desc.is_sm {
    font-size: 16px;
    line-height: 32px;
}
@media (max-width: 767px) {
    .gi_season_en {
        font-size: 40px;
    }
    .gi_season_desc {
        font-size: 17px;
        line-height: 32px;
    }
}

/* MARK:關於我們 - ESG 卡 (標題列底線 #e3e3e8) */
.gi_esg_cards {
    gap: 33px;
}
.gi_esg_card {
    padding: 30px 40px 12px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
}
.gi_esg_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 75px;
    border-bottom: 1px solid #e3e3e8;
}
.gi_esg_title {
    font-size: 22px;
    font-weight: 500;
    line-height: 36px;
    color: var(--gi-ink);
}
.gi_esg_head img {
    flex: 0 0 auto;
    height: 25px;
    width: auto;
}
.gi_esg_text {
    padding-top: 15px;
    font-size: 16px;
    line-height: 24px;
    color: var(--gi-text-3);
}
@media (max-width: 1639px) {
    .gi_esg_card {
        padding: 26px 30px 16px;
    }
}
@media (max-width: 1199px) {
    .gi_esg_cards {
        gap: 20px;
    }
}
@media (max-width: 767px) {
    .gi_esg_cards {
        gap: 16px;
    }
    .gi_esg_card {
        padding: 20px 24px 16px;
    }
    .gi_esg_head {
        min-height: 60px;
    }
}

/* MARK:共用 - 金底 / 金框按鈕 (高 44，圓角 8) */
.gi_btn_gold,
.gi_btn_outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    height: 44px;
    padding: 0 24px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_btn_gold {
    background: var(--gi-gold-2);
    color: var(--gm-white);
    box-shadow: 0 4px 12px rgba(184, 151, 90, 0.25);
}
.gi_btn_gold:hover,
.gi_btn_gold:focus-visible {
    background: var(--gm-gold-dark);
    color: var(--gm-white);
}
.gi_btn_outline {
    border: 1.5px solid var(--gi-gold-2);
    color: var(--gi-gold-2);
}
.gi_btn_outline:hover,
.gi_btn_outline:focus-visible {
    background: var(--gi-gold-2);
    color: var(--gm-white);
}

/* MARK:共用 - 金色短線小標 (4x20 金條 + 18px 金字) */
.gi_line_head {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 18px;
    font-weight: 600;
    line-height: 26px;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}
.gi_line_head::before {
    content: '';
    flex: 0 0 auto;
    width: 4px;
    height: 20px;
    border-radius: 2px;
    background: var(--gi-gold-2);
}

/* MARK:共用 - 金條大標 (5x28 金條 + 24px 金字) */
.gi_bar_title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 24px;
    font-weight: 600;
    line-height: 34.8px;
    color: var(--gi-gold-2);
}
.gi_bar_title::before {
    content: '';
    flex: 0 0 auto;
    width: 5px;
    height: 28px;
    border-radius: 4px;
    background: var(--gi-gold-2);
}
@media (max-width: 767px) {
    .gi_bar_title {
        font-size: 20px;
    }
}

/* MARK:入會介紹 - 主張橫幅 (綠底 + 半透明森林圖) */
.gi_ms_band {
    height: 259px;
    margin: 50px 0 42px;
    padding: 59px 80px 0;
    border-radius: 20px;
    background: #127060 url('../images/inner/membership/intro_band.jpg') center / cover no-repeat;
    color: var(--gm-white);
}
.gi_ms_band_title {
    font-family: var(--gm-font-serif);
    font-size: 36px;
    font-weight: 700;
    line-height: 64.8px;
}
.gi_ms_band_text {
    margin-top: 28px;
    font-size: 17px;
    line-height: 30.6px;
}
@media (max-width: 1199px) {
    .gi_ms_band {
        height: auto;
        padding: 48px 48px 44px;
    }
    .gi_ms_band_title {
        font-size: 30px;
        line-height: 1.6;
    }
}
@media (max-width: 767px) {
    .gi_ms_band {
        margin: 32px 0 8px;
        padding: 32px 20px;
        border-radius: 16px;
    }
    .gi_ms_band_title {
        font-size: 22px;
    }
    .gi_ms_band_text {
        margin-top: 16px;
        font-size: 15px;
        line-height: 1.8;
    }
}

/* MARK:入會介紹 - 區段 (底部灰線分隔) */
.gi_ms_section {
    padding-bottom: 40px;
    border-bottom: 1px solid var(--gi-line);
}
#membership_invest {
    padding-bottom: 75px;
    border-bottom: 0;
}
.gi_ms_section.is_last {
    padding-bottom: 0;
    border-bottom: 0;
}
.gi_intro_img.is_offset {
    margin-top: 40px;
}
@media (max-width: 1023px) {
    .gi_intro_img.is_offset {
        margin-top: 0;
    }
    #membership_invest {
        padding-bottom: 40px;
    }
}

/* MARK:入會介紹 - 山林生活特色卡 (藍圓字 + 金字說明) */
.gi_life_cards {
    gap: 27px;
}
.gi_life_card {
    padding: 24px 40px 19px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
}
.gi_life_head {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 45px;
}
.gi_life_char {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--gi-teal);
    font-size: 26px;
    font-weight: 600;
    color: var(--gm-white);
}
.gi_life_title {
    font-size: 20px;
    font-weight: 600;
    line-height: 29px;
    color: var(--gi-ink);
}
.gi_life_text {
    margin-top: 10px;
    padding-top: 11px;
    border-top: 1px solid var(--gi-beige);
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0.8px;
    color: var(--gi-gold-2);
}
@media (max-width: 1639px) {
    .gi_life_card {
        padding: 24px 28px 19px;
    }
}
@media (max-width: 767px) {
    .gi_life_cards {
        gap: 16px;
    }
    .gi_life_card {
        padding: 20px 24px;
    }
}

/* MARK:入會介紹 - 股東權益面板 (白底，內含級別表格與須知) */
.gi_benefit_panel {
    margin-top: 40px;
    padding: 40px 80px;
    background: var(--gm-white);
}
.gi_benefit_desc {
    margin-top: 16px;
    font-size: 16px;
    line-height: 24px;
    color: var(--gi-muted);
}
.gi_tier_wrap {
    margin-top: 24px;
    border: 1px solid var(--gi-line);
    border-radius: 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    overflow: hidden;
}
.gi_tier_table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    text-align: center;
}
.gi_tier_table th,
.gi_tier_table td {
    padding: 18px;
    vertical-align: middle;
    border-bottom: 1px solid var(--gi-line);
}
.gi_tier_table tbody tr:last-child th,
.gi_tier_table tbody tr:last-child td {
    border-bottom: 0;
}
.gi_tier_table thead th {
    height: 117px;
    background: #fafafa;
    border-bottom-width: 1.5px;
}
.gi_tier_table tbody tr:nth-child(even) {
    background: #fafafa;
}
.gi_tier_table .gi_tier_label {
    width: 180px;
    border-right: 1px solid var(--gi-line);
    font-size: 18px;
    font-weight: 600;
    line-height: 26px;
    color: var(--gm-text);
}
.gi_tier_name {
    display: block;
    font-size: 16px;
    font-weight: 600;
    line-height: 23.2px;
    text-transform: uppercase;
    color: var(--gi-gold-2);
}
.gi_tier_price {
    display: block;
    margin-top: 8px;
    font-size: 20px;
    font-weight: 500;
    line-height: 24px;
    color: var(--gi-muted);
}
.gi_tier_table td {
    font-size: 15px;
    line-height: 20px;
    color: var(--gm-text);
}
.gi_tier_table td.is_empty {
    font-size: 14px;
    color: var(--gi-muted);
}
.gi_tier_table td.is_gold {
    font-weight: 500;
    color: var(--gi-gold-2);
}
.gi_tier_table .is_hot {
    width: 204px;
    background: #fffdf9;
    border-left: 1.5px solid var(--gi-gold-2);
    border-right: 1.5px solid var(--gi-gold-2);
}
.gi_tier_table tbody tr:first-child td.is_hot {
    font-weight: 600;
}
.gi_tier_table th.is_hot .gi_tier_name {
    font-weight: 700;
    line-height: 19.2px;
    text-transform: none;
}
.gi_tier_table th.is_hot .gi_tier_price {
    color: var(--gi-gold-2);
}
.gi_tier_badge {
    display: inline-block;
    margin-bottom: 8px;
    padding: 2px 10px;
    border-radius: 100px;
    background: var(--gi-gold-2);
    font-size: 15px;
    font-weight: 700;
    line-height: 18px;
    color: var(--gm-white);
}
.gi_benefit_note {
    margin-top: 24px;
    font-size: 14px;
    line-height: 16.8px;
    color: var(--gi-muted);
}
.gi_benefit_html {
    margin-top: 24px;
}
.gi_benefit_html_label {
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}
.gi_benefit_html_box {
    margin-top: 12px;
    padding: 24px;
    background: #fafafa;
    border: 1.5px dashed var(--gi-line);
    border-radius: 15px;
}
.gi_benefit_html_title {
    font-size: 18px;
    font-weight: 500;
    line-height: 21.6px;
    color: var(--gm-text);
}
.gi_benefit_html_text {
    margin-top: 18px;
    font-size: 15px;
    line-height: 26px;
    color: var(--gi-muted);
}
@media (max-width: 1199px) {
    .gi_benefit_panel {
        padding: 40px 32px;
    }
    .gi_tier_wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .gi_tier_table {
        min-width: 960px;
    }
}
@media (max-width: 767px) {
    .gi_benefit_panel {
        padding: 28px 16px;
    }
    .gi_benefit_html_box {
        padding: 18px;
    }
}

/* MARK:入會介紹 - 開發時程軸 (淡金橫線 + 金圓點) */
.gi_timeline {
    position: relative;
    display: flex;
    gap: 51px;
    margin-top: 69px;
    padding-left: 62px;
}
.gi_timeline::before {
    content: '';
    position: absolute;
    top: 8px;
    left: 0;
    width: calc(100% - 23px);
    height: 1px;
    background: rgba(184, 151, 90, 0.18);
}
.gi_timeline_item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 28px;
    text-align: center;
}
.gi_timeline_dot {
    position: absolute;
    top: 0;
    left: 50%;
    width: 12px;
    height: 13px;
    margin-left: -6px;
    border-radius: 50%;
    background: var(--gi-gold-2);
}
.gi_timeline_item.is_big {
    padding-top: 31px;
}
.gi_timeline_item.is_big .gi_timeline_dot {
    width: 19px;
    height: 20px;
    margin-left: -9.5px;
}
.gi_timeline_date {
    font-family: var(--gm-font-serif);
    font-size: 18px;
    font-weight: 500;
    line-height: 25.9px;
    letter-spacing: 1.65px;
    color: var(--gi-gold-2);
}
.gi_timeline_item:last-child .gi_timeline_date {
    font-weight: 600;
}
.gi_timeline_text {
    margin-top: 7px;
    font-size: 18px;
    line-height: 29px;
    color: var(--gi-text-2);
    white-space: nowrap;
}
.gi_timeline_item.is_big .gi_timeline_text {
    margin-top: 4px;
}
@media (max-width: 1639px) {
    .gi_timeline {
        justify-content: space-between;
        gap: 16px;
        padding: 0 24px;
    }
}
@media (max-width: 1199px) {
    /* 平板寬度下 5 個節點靠內容決定寬度會讓最後一項被擠窄，改為等寬平分 */
    .gi_timeline_item,
    .gi_timeline_item.is_big {
        flex: 1 1 0;
        min-width: 0;
    }
    .gi_timeline_text {
        font-size: 16px;
        white-space: normal;
    }
}
@media (max-width: 1023px) {
    .gi_timeline {
        margin-top: 40px;
    }
}
@media (max-width: 767px) {
    .gi_timeline {
        flex-direction: column;
        gap: 24px;
        padding: 0 0 0 36px;
    }
    .gi_timeline::before {
        top: 0;
        bottom: 0;
        left: 9px;
        width: 1px;
        height: auto;
    }
    .gi_timeline_item,
    .gi_timeline_item.is_big {
        align-items: flex-start;
        padding-top: 0;
        text-align: left;
    }
    .gi_timeline_dot {
        top: 6px;
        left: -30px;
        margin-left: 0;
    }
    .gi_timeline_item.is_big .gi_timeline_dot {
        top: 3px;
        left: -33.5px;
        margin-left: 0;
    }
    .gi_timeline_text,
    .gi_timeline_item.is_big .gi_timeline_text {
        margin-top: 2px;
    }
}

/* MARK:入會介紹 - 安心投資保障卡 (3 欄) */
.gi_trust_cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 31px;
}
.gi_trust_card {
    padding: 24px 40px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
}
.gi_trust_eyebrow {
    font-size: 14px;
    line-height: 20px;
    color: var(--gi-teal);
}
.gi_trust_title {
    margin-top: 13px;
    font-size: 20px;
    font-weight: 600;
    line-height: 29px;
    color: var(--gi-gold-2);
}
.gi_trust_text {
    margin-top: 16px;
    padding-top: 11px;
    border-top: 1px solid var(--gi-beige);
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0.8px;
    color: var(--gi-text-2);
}
@media (max-width: 1023px) {
    .gi_trust_cards {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        margin-top: 40px;
    }
}
@media (max-width: 767px) {
    .gi_trust_card {
        padding: 20px 24px;
    }
}

/* MARK:入會介紹 - 入會四步驟卡 */
.gi_steps {
    margin-top: 40px;
}
.gi_step_cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin-top: 32px;
}
.gi_step_card {
    padding: 32px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line-warm);
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(28, 27, 26, 0.02);
}
.gi_step_num {
    display: block;
    font-family: var(--gm-font-serif);
    font-size: 36px;
    font-weight: 300;
    line-height: 51.7px;
    color: var(--gi-gold-2);
    opacity: 0.6;
}
.gi_step_title {
    margin-top: 20px;
    font-size: 20px;
    font-weight: 600;
    line-height: 29px;
    color: #1c1b1a;
}
.gi_step_text {
    margin-top: 10px;
    font-size: 15px;
    line-height: 24px;
    color: var(--gi-muted);
}
@media (max-width: 1199px) {
    .gi_step_cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .gi_step_cards {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        margin-top: 20px;
    }
    .gi_step_card {
        padding: 24px;
    }
    .gi_step_title {
        margin-top: 12px;
    }
}

/* MARK:入會介紹 - 入會申請表單 (未登入鎖定) */
.gi_apply_lock_card {
    display: flex;
    min-height: 582px;
    margin-top: 40px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line-warm);
    border-radius: 24px 24px 0 0;
    box-shadow: 0 8px 24px rgba(28, 27, 26, 0.02);
    overflow: hidden;
}
.gi_apply_info {
    flex: 0 0 440px;
    padding: 48px;
    background: var(--gi-bg-cream);
    border-right: 1px solid var(--gi-line-warm);
}
.gi_apply_eyebrow {
    font-size: 14px;
    font-weight: 700;
    line-height: 16.8px;
    letter-spacing: 2px;
    color: var(--gi-gold-2);
}
.gi_apply_title {
    margin-top: 16px;
    font-size: 28px;
    font-weight: 500;
    line-height: 33.6px;
    color: #1c1b1a;
}
.gi_apply_desc {
    margin-top: 16px;
    font-size: 15px;
    line-height: 24px;
    color: var(--gi-muted);
}
.gi_apply_bullets {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 36px;
}
.gi_apply_bullets li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: #1c1b1a;
}
.gi_apply_bullets li::before {
    content: '';
    flex: 0 0 16px;
    height: 16px;
    background: url('../images/inner/icons/check.svg') center / contain no-repeat;
}
.gi_apply_preview {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    padding: 48px;
}
.gi_apply_preview_form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.gi_apply_row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.gi_apply_label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    line-height: 20.3px;
    color: #1c1b1a;
}
.gi_apply_input {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 44px;
    margin-top: 8px;
    padding: 0 16px;
    background: var(--gi-bg-input);
    border: 1px solid var(--gi-line-warm);
    border-radius: 8px;
    font-size: 14px;
    color: var(--gi-muted);
}
.gi_apply_input.is_textarea {
    align-items: flex-start;
    height: 100px;
    padding: 16px;
}
.gi_apply_action {
    display: flex;
    justify-content: flex-end;
}
.gi_apply_submit {
    display: inline-flex;
    align-items: center;
    height: 46px;
    padding: 0 32px;
    border-radius: 8px;
    background: var(--gi-gold-2);
    font-size: 15px;
    font-weight: 600;
    color: var(--gm-white);
}
.gi_apply_overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background: rgba(255, 255, 255, 0.98);
    text-align: center;
}
.gi_apply_lock {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid #e5dec9;
    border-radius: 50%;
    background: var(--gi-bg-cream);
}
.gi_apply_overlay_title {
    margin-top: 24px;
    font-size: 22px;
    font-weight: 600;
    line-height: 31.9px;
    color: #1c1b1a;
}
.gi_apply_overlay_text {
    max-width: 400px;
    margin-top: 12px;
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-muted);
}
.gi_apply_overlay_btns {
    display: flex;
    gap: 16px;
    margin-top: 24px;
}
.gi_apply_overlay_btns .gi_btn_outline {
    min-width: 164px;
}
@media (max-width: 1023px) {
    .gi_apply_lock_card {
        flex-direction: column;
    }
    .gi_apply_info {
        flex: 0 0 auto;
        border-right: 0;
        border-bottom: 1px solid var(--gi-line-warm);
    }
}
@media (max-width: 767px) {
    .gi_apply_info,
    .gi_apply_preview {
        padding: 28px 20px;
    }
    .gi_apply_title {
        font-size: 24px;
    }
    .gi_apply_row {
        grid-template-columns: minmax(0, 1fr);
    }
    .gi_apply_overlay_btns {
        flex-direction: column;
        width: 100%;
    }
    .gi_apply_overlay_btns a {
        width: 100%;
    }
}

/* MARK:入會介紹 - 入會申請表單 (會員版：已解鎖) */
.gi_apply_member {
    margin-top: 72px;
}
.gi_apply_member_title {
    margin-top: 14px;
    font-size: 32px;
    font-weight: 700;
    line-height: 48px;
    color: var(--gi-ink);
}
.gi_apply_member_sub {
    margin-top: 14px;
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-muted);
}
/* 已載入草稿的提示 */
.gi_apply_draft_hint {
    margin-top: 14px;
    padding: 10px 16px;
    border-left: 3px solid var(--gi-gold-2);
    background: rgba(184, 151, 90, 0.08);
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-ink);
}
.gi_apply_layout {
    display: flex;
    align-items: flex-start;
    gap: 23px;
    margin-top: 32px;
}
.gi_apply_form {
    flex: 1 1 801px;
    min-width: 0;
    padding: 40px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    border-radius: 12px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.01);
}
.gi_apply_step + .gi_apply_step {
    margin-top: 40px;
}
.gi_apply_step_head {
    margin-bottom: 24px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--gi-line);
}
.gi_apply_step_no {
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 16.8px;
    letter-spacing: 0.5px;
    color: var(--gi-gold-2);
}
.gi_apply_step_title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 6px;
    font-size: 20px;
    font-weight: 700;
    line-height: 32px;
    color: var(--gi-ink);
}
.gi_apply_step_title::before {
    content: '';
    flex: 0 0 auto;
    width: 4px;
    height: 20px;
    border-radius: 2px;
    background: var(--gi-gold-2);
}
.gi_form_field + .gi_form_field,
.gi_form_field + .gi_form_row,
.gi_form_row + .gi_form_field {
    margin-top: 24px;
}
.gi_form_row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.gi_form_row > .gi_form_field {
    margin-top: 0;
}
.gi_form_label {
    display: block;
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 22.4px;
    color: var(--gi-ink);
}
.gi_form_star {
    margin-left: 4px;
    color: #d946ef;
}
.gi_form_input {
    display: block;
    width: 100%;
    height: 44px;
    margin-top: 8px;
    padding: 0 16px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    border-radius: 6px;
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-ink);
}
.gi_form_input::placeholder {
    color: var(--gi-muted);
}
.gi_form_input:focus {
    outline: none;
    border-color: var(--gi-gold);
}
.gi_form_input.is_readonly {
    background: #faf7f2;
}
.gi_form_input.is_textarea {
    height: 120px;
    padding: 16px;
    resize: vertical;
}
.gi_plan_options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.gi_plan_option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 18px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    border-radius: 8px;
    cursor: pointer;
}
.gi_plan_option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.gi_plan_radio {
    position: relative;
    flex: 0 0 20px;
    height: 20px;
    border: 2px solid var(--gi-muted);
    border-radius: 50%;
    background: var(--gm-white);
}
.gi_plan_text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
}
.gi_plan_title {
    font-size: 15px;
    font-weight: 700;
    line-height: 24px;
    color: var(--gi-ink);
}
.gi_plan_desc {
    font-size: 13px;
    line-height: 20.8px;
    color: var(--gi-muted);
}
.gi_plan_badge {
    flex: 0 0 auto;
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--gi-line);
    font-size: 12px;
    font-weight: 700;
    line-height: 16.8px;
    letter-spacing: 0.5px;
    color: var(--gi-muted);
}
.gi_plan_option:has(input:checked) {
    background: #fffdf9;
    border: 1.5px solid var(--gi-gold);
    box-shadow: 0 4px 8px rgba(184, 151, 90, 0.07);
}
.gi_plan_option input:checked + .gi_plan_radio {
    border-color: var(--gi-gold);
}
.gi_plan_option input:checked + .gi_plan_radio::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--gi-gold);
}
.gi_plan_option:has(input:checked) .gi_plan_badge {
    background: var(--gi-gold-2);
    color: var(--gm-white);
}
.gi_plan_option input:focus-visible + .gi_plan_radio {
    outline: 2px solid var(--gi-gold);
    outline-offset: 2px;
}
.gi_consent {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 24px 0 0;
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-ink);
    cursor: pointer;
}
.gi_consent input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.gi_consent_box {
    flex: 0 0 18px;
    height: 18px;
    border: 1.5px solid var(--gi-gold-2);
    border-radius: 3px;
    background: var(--gm-white) center / 10px 8px no-repeat;
}
.gi_consent input:checked + .gi_consent_box {
    background-image: url('../images/inner/icons/check_sm.svg');
}
.gi_consent input:focus-visible + .gi_consent_box {
    outline: 2px solid var(--gi-gold);
    outline-offset: 2px;
}
.gi_consent a {
    font-weight: 600;
    text-decoration: underline;
    color: var(--gi-gold-2);
}
.gi_apply_actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid var(--gi-line);
}
.gi_apply_draft,
.gi_apply_send {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 46px;
    padding: 0 24px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    line-height: 22.4px;
}
.gi_apply_draft {
    background: var(--gm-white);
    border: 1.5px solid var(--gi-gold-2);
    color: var(--gi-gold-2);
    cursor: pointer;
}
.gi_apply_draft:hover,
.gi_apply_draft:focus-visible {
    background: var(--gi-gold-2);
    color: var(--gm-white);
}
.gi_apply_send {
    padding: 0 24px 0 28px;
    background: #efece6;
    border: 0;
    color: var(--gi-muted);
}
.gi_apply_send:disabled {
    cursor: not-allowed;
}
.gi_apply_side {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex: 0 0 526px;
}
.gi_side_card {
    padding: 28px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    border-radius: 12px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.01);
}
.gi_side_head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gi-line);
    font-size: 16px;
    font-weight: 700;
    line-height: 25.6px;
    color: var(--gi-ink);
}
.gi_side_head::before {
    content: '';
    flex: 0 0 auto;
    width: 3px;
    height: 16px;
    border-radius: 1.5px;
    background: var(--gi-gold-2);
}
.gi_summary {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 20px 0 0;
}
.gi_summary div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.gi_summary dt {
    font-size: 14px;
    font-weight: 400;
    line-height: 22.4px;
    color: var(--gi-muted);
}
.gi_summary dd {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 22.4px;
    color: var(--gi-ink);
}
.gi_summary dd.is_amount {
    font-size: 16px;
    line-height: 25.6px;
    color: var(--gi-gold-2);
}
.gi_summary dd.is_roi {
    color: #2aa399;
}
.gi_stepper {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 20px;
}
.gi_stepper li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    line-height: 22.4px;
    color: var(--gi-muted);
}
.gi_stepper_dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    height: 24px;
    border: 1.5px solid var(--gi-line);
    border-radius: 50%;
    background: var(--gm-white);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.5px;
    color: var(--gi-muted);
}
.gi_stepper li.is_done {
    font-weight: 700;
    color: var(--gi-ink);
}
.gi_stepper li.is_done .gi_stepper_dot {
    background: #fffdf9;
    border-color: var(--gi-gold-2);
}
.gi_stepper li.is_active {
    font-weight: 700;
    color: var(--gi-gold-2);
}
.gi_stepper li.is_active .gi_stepper_dot {
    border: 2px solid var(--gi-gold-2);
    font-weight: 700;
    color: var(--gi-gold-2);
}
@media (max-width: 1199px) {
    .gi_apply_layout {
        flex-direction: column;
        align-items: stretch;
    }
    .gi_apply_form,
    .gi_apply_side {
        flex: 0 0 auto;
    }
}
@media (max-width: 767px) {
    .gi_apply_member {
        margin-top: 48px;
    }
    .gi_apply_member_title {
        font-size: 26px;
        line-height: 1.5;
    }
    .gi_apply_form {
        padding: 24px 18px;
    }
    .gi_form_row {
        grid-template-columns: minmax(0, 1fr);
    }
    .gi_plan_option {
        align-items: flex-start;
        gap: 12px;
        padding: 16px;
    }
    .gi_apply_actions {
        padding-top: 28px;
        margin-top: 28px;
    }
    .gi_side_card {
        padding: 22px;
    }
}

/* MARK:入會介紹 - 會員專屬內容 CTA (深色森林底) */
.gi_ms_cta {
    width: calc(100% - 40px);
    max-width: 1444px;
    margin: 0px auto 0;
    padding: 80px 172px;
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.51) 14.8%, rgba(102, 102, 102, 0) 73.2%),
        #2c2c2c url('../images/inner/membership/cta_bg.jpg') center / cover no-repeat;
    text-align: center;
    overflow: hidden;
}
.gi_ms_cta_slogan {
    display: flex;
    align-items: center;
    gap: 33px;
    margin: 0 -172px;
}
.gi_ms_cta_line {
    flex: 1 1 0;
    height: 2px;
    background: rgba(184, 151, 90, 0.2);
}
.gi_ms_cta_slogan p {
    flex: 0 0 auto;
    font-size: 20px;
    line-height: 24px;
    letter-spacing: 4.62px;
    color: #edd19f;
}
.gi_ms_cta_title {
    margin-top: 27px;
    font-size: 39px;
    font-weight: 500;
    line-height: 70.2px;
    color: var(--gm-white);
}
.gi_ms_cta_short {
    display: block;
    width: 58px;
    height: 2px;
    margin: 20px auto 0;
    background: #cca865;
}
.gi_ms_cta_btns {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 40px;
}
.gi_ms_cta_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 311px;
    height: 66px;
    padding: 10px 20px;
    border-radius: 3.3px;
    font-family: 'Inter', var(--gm-font-sans);
    font-size: 21.45px;
    font-weight: 500;
    letter-spacing: 2.57px;
    transition: opacity 0.2s ease;
}
.gi_ms_cta_btn.is_gold {
    background: #cca865;
    color: #1a1a18;
}
.gi_ms_cta_btn.is_dark {
    background: var(--gi-ink);
    color: var(--gi-gold);
}
.gi_ms_cta_btn:hover,
.gi_ms_cta_btn:focus-visible {
    opacity: 0.85;
}
.gi_ms_cta_btn.is_gold:hover,
.gi_ms_cta_btn.is_gold:focus-visible {
    color: #1a1a18;
}
.gi_ms_cta_btn.is_dark:hover,
.gi_ms_cta_btn.is_dark:focus-visible {
    color: var(--gi-gold);
}
@media (max-width: 1199px) {
    .gi_ms_cta {
        padding: 64px 48px;
    }
    .gi_ms_cta_slogan {
        margin: 0 -48px;
    }
}
@media (max-width: 767px) {
    .gi_ms_cta {
        width: calc(100% - 32px);
        padding: 48px 20px;
        border-radius: 16px;
    }
    .gi_ms_cta_slogan {
        gap: 12px;
        margin: 0 -20px;
    }
    .gi_ms_cta_slogan p {
        font-size: 15px;
        letter-spacing: 2px;
    }
    .gi_ms_cta_title {
        font-size: 26px;
        line-height: 1.6;
    }
    .gi_ms_cta_btns {
        flex-direction: column;
        align-items: center;
        gap: 16px;
    }
    .gi_ms_cta_btn {
        width: 100%;
        max-width: 311px;
        height: 56px;
        font-size: 17px;
        letter-spacing: 1.5px;
    }
}

/* MARK:邑繁丰順 - 主視覺輪播 (高 900，左側直式數字頁碼) */
.gi_yf_hero {
    position: relative;
    height: 900px;
    overflow: hidden;
    background: #1d1a2e;
    color: var(--gm-white);
}
.gi_yf_slider,
.gi_yf_slider .slick-list,
.gi_yf_slider .slick-track {
    height: 100%;
}
.gi_yf_slide {
    position: relative;
    height: 900px;
    background-size: cover;
    background-position: center;
}
.gi_yf_slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(102, 102, 102, 0) 51.9%, rgba(2, 2, 2, 0.67) 98.9%);
}
.gi_yf_slide_inner {
    position: absolute;
    top: 243px;
    left: 199px;
    right: 171px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
}
/* 文案區塊：主視覺為固定 900 高且 overflow hidden，文字過長時改由此區塊自身垂直捲動，不裁切也不改變主視覺高度 */
.gi_yf_hero_text {
    flex: 0 1 905px;
    min-width: 0;
    max-height: 640px;
    padding-right: 12px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.5) transparent;
}
.gi_yf_hero_text::-webkit-scrollbar {
    width: 4px;
}
.gi_yf_hero_text::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.5);
    border-radius: 2px;
}
.gi_yf_badge {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    height: 46px;
    padding: 0 14px;
    border: 1.4px solid var(--gi-gold);
    border-radius: 139px;
    background: rgba(79, 68, 160, 0.85);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    font-family: var(--gi-font-cal);
    font-size: 22.3px;
    line-height: 20px;
    letter-spacing: 1.39px;
    text-transform: uppercase;
}
.gi_yf_badge::before {
    content: '';
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--gi-gold);
}
.gi_yf_title {
    margin: 30px 0 0;
    font-size: 70px;
    font-weight: 500;
    line-height: 122px;
}
.gi_yf_sub {
    margin: 20px 0 0;
    font-family: var(--gi-font-cal);
    font-size: 38px;
    line-height: 49.4px;
}
.gi_yf_desc {
    margin: 42px 0 0;
    font-size: 18px;
    line-height: 41px;
}
.gi_yf_checks {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}
.gi_yf_checks li {
    padding: 8px 0;
    font-family: var(--gi-font-golos);
    font-size: 20px;
    line-height: 36px;
}
.gi_yf_checks li::before {
    content: '✓ ';
    color: var(--gi-gold-2);
}
.gi_yf_feature {
    display: flex;
    gap: 20px;
    flex: 0 0 auto;
    margin-top: 194px;
}
.gi_yf_glass {
    width: 280px;
    height: 320px;
    padding: 37px 41px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.24);
    backdrop-filter: blur(29px);
    -webkit-backdrop-filter: blur(29px);
    opacity: 0.95;
}
.gi_yf_glass p {
    margin: 0;
}
.gi_yf_glass_deg {
    font-family: var(--gi-font-cal);
    font-size: 50px;
    line-height: 60px;
    letter-spacing: 2.5px;
}
.gi_yf_glass .gi_yf_glass_sub {
    margin-top: 8px;
    font-size: 16px;
    line-height: 26px;
    letter-spacing: 0.96px;
}
.gi_yf_glass .gi_yf_glass_list {
    margin-top: 20px;
    font-family: var(--gi-font-golos);
    font-size: 16px;
    line-height: 28px;
}
.gi_yf_photo {
    display: block;
    width: 280px;
    height: 320px;
    object-fit: cover;
    border-radius: 24px;
}
.gi_yf_pager {
    position: absolute;
    top: 50px;
    left: 28px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 38px;
    width: 50px;
}
.gi_yf_pager_line {
    width: 1px;
    height: 400px;
    background: rgba(141, 215, 253, 0.54);
}
.gi_yf_pager_line:first-child {
    margin-top: -52px;
}
.gi_yf_pager .slick-dots {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: auto;
    margin: 0;
    padding: 0;
    list-style: none;
}
.gi_yf_pager .slick-dots li {
    width: 40px;
    height: 40px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gi_yf_pager .slick-dots li button {
    width: 25px;
    height: 25px;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 20.8px;
    color: var(--gm-white);
    cursor: pointer;
}
.gi_yf_pager .slick-dots li button::before {
    display: none;
}
.gi_yf_pager .slick-dots li.slick-active button {
    background: rgba(112, 82, 194, 0.57);
}
.gi_yf_pager .slick-dots li button:focus-visible {
    outline: 1px solid var(--gm-white);
}
@media (max-width: 1639px) {
    .gi_yf_slide_inner {
        left: 120px;
        right: 60px;
    }
    .gi_yf_title {
        font-size: 58px;
        line-height: 1.6;
    }
    .gi_yf_sub {
        font-size: 32px;
    }
}
@media (max-width: 1199px) {
    .gi_yf_hero,
    .gi_yf_slide {
        height: auto;
        min-height: 900px;
    }
    .gi_yf_slide_inner {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        flex-direction: column;
        align-items: flex-start;
        padding: 180px 60px 80px 110px;
    }
    .gi_yf_hero_text {
        flex: 0 0 auto;
        /* 此寬度以下主視覺高度改為自動，文字會把區塊撐高，不需要捲動 */
        max-height: none;
        padding-right: 0;
        overflow-y: visible;
    }
    .gi_yf_feature {
        margin-top: 0;
    }
}
@media (max-width: 767px) {
    .gi_yf_hero,
    .gi_yf_slide {
        min-height: 0;
    }
    .gi_yf_slide_inner {
        gap: 28px;
        padding: 130px 16px 72px;
    }
    .gi_yf_badge {
        height: 36px;
        font-size: 14px;
        letter-spacing: 0.5px;
    }
    .gi_yf_title {
        margin-top: 18px;
        font-size: 30px;
    }
    .gi_yf_sub {
        margin-top: 8px;
        font-size: 20px;
        line-height: 1.5;
    }
    .gi_yf_desc {
        margin-top: 16px;
        font-size: 15px;
        line-height: 1.9;
    }
    .gi_yf_checks {
        margin-top: 12px;
    }
    .gi_yf_checks li {
        font-size: 16px;
        line-height: 30px;
    }
    .gi_yf_feature {
        width: 100%;
        gap: 12px;
    }
    .gi_yf_glass,
    .gi_yf_photo {
        flex: 1 1 0;
        width: auto;
        height: auto;
        aspect-ratio: 280 / 320;
        min-width: 0;
    }
    .gi_yf_glass {
        padding: 20px 16px;
    }
    .gi_yf_glass_deg {
        font-size: 36px;
        line-height: 44px;
    }
    .gi_yf_glass .gi_yf_glass_sub,
    .gi_yf_glass .gi_yf_glass_list {
        font-size: 14px;
    }
}
@media (max-width: 1023px) {
    .gi_yf_pager {
        top: auto;
        bottom: 20px;
        left: 50%;
        width: auto;
        transform: translateX(-50%);
    }
    .gi_yf_pager_line {
        display: none;
    }
    .gi_yf_pager .slick-dots {
        flex-direction: row;
    }
}

/* MARK:邑繁丰順 - 區段 (僅上方間距，第一段不加底線) */
.gi_yf_section {
    padding-bottom: 0;
}
.gi_yf_page .gi_intro_img.is_offset_sm {
    margin-top: 20px;
}
@media (max-width: 1023px) {
    .gi_yf_page .gi_intro_img.is_offset_sm {
        margin-top: 0;
    }
}
.gi_checks.is_wide_gap .gi_checks_row {
    column-gap: 36px;
}

/* MARK:邑繁丰順 - 園區規劃卡 (地圖 + 圖例 + 四期卡 + 周邊地景) */
.gi_yf_plan_card {
    margin-top: 36px;
    padding: 32px 32px 43px;
    background: var(--gm-white);
    border: 1.5px solid rgba(202, 160, 92, 0.5);
    border-radius: 24px;
    box-shadow: 0 6px 20px rgba(202, 160, 92, 0.03);
}
.gi_yf_map {
    display: block;
    width: 100%;
    height: auto;
}
.gi_yf_legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 30px;
    margin-top: 0;
}
.gi_yf_legend li {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 16px;
    font-weight: 700;
    line-height: 19.2px;
    color: #595757;
}
.gi_yf_legend img {
    height: 19px;
    width: auto;
}
.gi_yf_phases {
    display: grid;
    grid-template-columns: 389fr 254fr 255fr 254fr;
    gap: 20px;
    max-width: 1212px;
    margin: 39px auto 0;
}
.gi_yf_phase {
    padding: 30px 30px 20px;
    background: var(--gm-white);
    border-left: 5px solid;
    border-radius: 24px;
    box-shadow: 0 3px 18px rgba(0, 0, 0, 0.15);
}
.gi_yf_phase.is_phase_1 {
    border-color: #398032;
}
.gi_yf_phase.is_phase_2 {
    border-color: #71a9ce;
}
.gi_yf_phase.is_phase_3 {
    border-color: #eabccb;
}
.gi_yf_phase.is_phase_4 {
    border-color: #dbb281;
}
.gi_yf_phase_label {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 16px;
    font-weight: 500;
    line-height: 19.2px;
}
.gi_yf_phase.is_phase_1 .gi_yf_phase_label {
    color: #57aa4f;
}
.gi_yf_phase.is_phase_2 .gi_yf_phase_label {
    color: #58acca;
}
.gi_yf_phase.is_phase_3 .gi_yf_phase_label {
    color: #e99bc1;
}
.gi_yf_phase.is_phase_4 .gi_yf_phase_label {
    color: #e8a86f;
}
.gi_yf_phase_badge {
    padding: 2px 8px;
    border: 1px solid #c48a44;
    border-radius: 4px;
    background: #fffdf9;
    font-size: 14px;
    line-height: 16.8px;
    color: #c48a44;
}
.gi_yf_phase_title {
    margin-top: 15px;
    font-size: 22px;
    font-weight: 600;
    line-height: 36px;
    color: #595757;
}
.gi_yf_phase_text {
    margin-top: 15px;
    font-size: 16px;
    line-height: 24px;
    color: #595757;
}
.gi_yf_phase.is_phase_2 .gi_yf_phase_text {
    color: var(--gi-green-gray);
}
.gi_yf_landscape {
    max-width: 1228px;
    margin: 39px auto 0;
    padding: 24px;
    background: #faf7f2;
    border-left: 4px solid var(--gi-gold);
    border-radius: 0 8px 8px 0;
    font-size: 15px;
    font-weight: 300;
    line-height: 21.7px;
    color: var(--gi-green-gray);
}
.gi_yf_landscape strong {
    font-weight: 600;
    color: var(--gi-ink);
}
@media (max-width: 1199px) {
    .gi_yf_phases {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .gi_yf_plan_card {
        margin-top: 28px;
        padding: 16px 16px 28px;
        border-radius: 16px;
    }
    .gi_yf_legend {
        gap: 10px 18px;
        margin-top: 16px;
    }
    .gi_yf_legend li {
        font-size: 14px;
    }
    .gi_yf_phases {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        margin-top: 24px;
    }
    .gi_yf_phase {
        padding: 22px 22px 18px;
    }
    .gi_yf_landscape {
        margin-top: 24px;
        padding: 16px;
    }
}

/* MARK:邑繁丰順 - ESG 永續卡 (標題 + 圖示，灰線分隔，金字說明) */
.gi_yf_esg_cards {
    gap: 22px;
    margin-top: 36px;
}
.gi_yf_esg_card {
    padding: 24px 36px;
    background: var(--gm-white);
    border-radius: 24px;
    box-shadow: var(--gi-card-shadow);
}
.gi_yf_esg_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 53px;
}
.gi_yf_esg_title {
    font-size: 22px;
    font-weight: 600;
    line-height: 31.9px;
    color: var(--gi-ink);
}
.gi_yf_esg_head img {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
}
.gi_yf_esg_text {
    margin-top: 16px;
    padding-top: 10px;
    border-top: 1px solid #cecece;
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 32px;
    color: var(--gi-gold-2);
}
@media (max-width: 1639px) {
    .gi_yf_esg_card {
        padding: 24px 28px;
    }
}
@media (max-width: 767px) {
    .gi_yf_esg_cards {
        gap: 16px;
        margin-top: 28px;
    }
    .gi_yf_esg_card {
        padding: 20px 24px;
    }
}

/* MARK:邑繁丰順 - 服務設施分類標籤 (紫色 active) */
.gi_facility_tabs {
    display: flex;
    gap: 16px;
    margin-top: 48px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gi-line);
}
.gi_facility_tab {
    display: inline-flex;
    align-items: center;
    height: 54px;
    padding: 0 40px;
    border: 1px solid rgba(66, 66, 66, 0.25);
    border-radius: 10px;
    font-size: 18px;
    line-height: 21.6px;
    color: var(--gi-green-gray);
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_facility_tab:hover,
.gi_facility_tab:focus-visible {
    color: var(--gi-purple);
}
.gi_facility_tab.is_active {
    height: 58px;
    background: var(--gi-purple);
    font-weight: 600;
    color: var(--gm-white);
}
@media (max-width: 1023px) {
    .gi_facility_tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 10px;
        padding: 12px 0;
    }
    .gi_facility_tab {
        height: 46px;
        padding: 0 22px;
        font-size: 16px;
    }
    .gi_facility_tab.is_active {
        height: 46px;
    }
}

/* MARK:邑繁丰順 - 服務設施面板 (淡紫底，各分類以灰線分隔) */
.gi_facility_panel {
    margin: 48px 25px 0;
    padding: 20px;
    background: rgba(198, 210, 254, 0.15);
    border-radius: 20px;
}
.gi_facility_group {
    padding-bottom: 48px;
    border-bottom: 1px solid var(--gi-line);
    scroll-margin-top: 110px;
}
.gi_facility_group + .gi_facility_group {
    padding-top: 48px;
}
.gi_facility_head {
    display: flex;
    align-items: flex-end;
    min-height: 58px;
}
.gi_facility_title_box {
    flex: 0 0 382px;
}
.gi_facility_head.is_wide_desc .gi_facility_title_box {
    flex-basis: 245px;
}
.gi_facility_eyebrow {
    font-size: 14px;
    font-weight: 700;
    line-height: 16.8px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #c48a44;
}
.gi_facility_title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 6px;
    font-size: 24px;
    font-weight: 600;
    line-height: 34.8px;
    color: var(--gi-ink);
}
.gi_facility_title::before {
    content: '';
    flex: 0 0 auto;
    width: 4px;
    height: 20px;
    border-radius: 2px;
    background: var(--gi-gold-2);
}
.gi_facility_desc {
    flex: 1 1 auto;
    padding-right: 20px;
    font-size: 15px;
    line-height: 22.5px;
    text-align: right;
    color: #666666;
}
.gi_facility_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-top: 24px;
}
.gi_facility_grid.is_leisure {
    gap: 19px;
    margin-top: 32px;
}
.gi_facility_grid.is_dine {
    gap: 16px;
}
.gi_facility_grid.is_camp {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
@media (max-width: 1199px) {
    .gi_facility_panel {
        margin: 40px 0 0;
    }
    .gi_facility_head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .gi_facility_title_box,
    .gi_facility_head.is_wide_desc .gi_facility_title_box {
        flex-basis: auto;
    }
    .gi_facility_desc {
        padding-right: 0;
        text-align: left;
    }
    .gi_facility_grid,
    .gi_facility_grid.is_camp {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .gi_facility_panel {
        margin-top: 28px;
        padding: 16px 12px;
        border-radius: 16px;
    }
    .gi_facility_group {
        padding-bottom: 32px;
    }
    .gi_facility_group + .gi_facility_group {
        padding-top: 32px;
    }
    .gi_facility_title {
        font-size: 22px;
    }
    .gi_facility_grid,
    .gi_facility_grid.is_camp {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        margin-top: 20px;
    }
}

/* MARK:邑繁丰順 - 設施卡 (白底卡片，依分類略有差異) */
.gi_fc_card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--gm-white);
    border: 1px solid var(--gi-beige);
    border-radius: 12px;
}
.gi_fc_img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
}
.gi_fc_body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
}
.gi_fc_tag {
    font-size: 14px;
    font-weight: 700;
    line-height: 16.8px;
    color: #c48a44;
}
.gi_fc_title {
    font-size: 22px;
    font-weight: 600;
    line-height: 31.9px;
    color: var(--gi-ink);
}
.gi_fc_text {
    font-size: 15px;
    font-weight: 300;
    line-height: 22.5px;
    color: var(--gi-green-gray);
}
/* 溫泉卡：圖 214，內容上距 16 */
.gi_fc_card.is_spring {
    border-radius: 16px;
}
.gi_fc_card.is_spring .gi_fc_img {
    height: 214px;
}
.gi_fc_card.is_spring .gi_fc_body {
    padding: 16px 24px 24px;
}
.gi_fc_card.is_spring .gi_fc_tag {
    color: #c5a572;
}
.gi_fc_card.is_spring .gi_fc_text {
    font-size: 14px;
    line-height: 21px;
}
/* 湯屋卡：淡金框，圖 214 */
.gi_fc_card.is_onsen {
    border-color: rgba(196, 138, 68, 0.25);
}
.gi_fc_card.is_onsen .gi_fc_img {
    height: 214px;
}
.gi_fc_card.is_onsen .gi_fc_body {
    padding: 16px 20px 20px;
}
.gi_fc_card.is_onsen .gi_fc_text {
    line-height: 18px;
}
/* 休閒卡：內距 16 24，間距 12 */
.gi_fc_card.is_leisure .gi_fc_body {
    gap: 12px;
    padding: 16px 24px;
}
.gi_fc_card.is_leisure .gi_fc_text {
    line-height: 22px;
}
/* 一泊二食 / 星空露營：圖片內縮圓角 10 */
.gi_fc_card.is_inset {
    gap: 12px;
    padding: 16px 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.01);
}
.gi_fc_card.is_inset .gi_fc_img {
    height: auto;
    aspect-ratio: 255 / 161;
    border-radius: 10px;
}
.gi_facility_grid.is_camp .gi_fc_card.is_inset .gi_fc_img {
    aspect-ratio: 361 / 211;
}
.gi_facility_grid.is_dine .gi_fc_text {
    line-height: 18px;
}
.gi_facility_grid.is_camp .gi_fc_text {
    line-height: 22px;
}

/* MARK:邑繁丰順 - 四季卡 (圖片白色漸層 + 英文/中文季節字) */
.gi_fc_card.is_season {
    padding-bottom: 26px;
    box-shadow: var(--gi-card-shadow);
    text-align: center;
}
.gi_yf_season_img {
    position: relative;
}
.gi_yf_season_img img {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
}
.gi_yf_season_img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 65.5%, rgba(255, 255, 255, 0.4) 100%);
}
.gi_yf_season_en {
    position: absolute;
    top: 15px;
    left: 0;
    right: 0;
    z-index: 1;
    font-family: var(--gm-font-serif);
    font-size: 20px;
    font-weight: 700;
    line-height: 41.6px;
    text-transform: uppercase;
    color: var(--gm-white);
}
.gi_yf_season_zh {
    position: absolute;
    top: 86px;
    left: 0;
    right: 0;
    z-index: 1;
    font-family: var(--gm-font-serif);
    font-size: 64px;
    line-height: 1;
    letter-spacing: 2.08px;
    color: var(--gm-white);
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.gi_yf_season_title {
    margin-top: 24px;
    font-size: 22px;
    font-weight: 600;
    line-height: 31.9px;
    color: var(--gi-ink);
}
.gi_yf_season_text {
    margin-top: 21px;
    padding: 0 20px;
    font-size: 15px;
    font-weight: 300;
    line-height: 18px;
    color: var(--gi-green-gray);
}
.gi_yf_season_head {
    display: flex;
    align-items: center;
    min-height: 74px;
    margin-top: 3px;
    font-size: 20px;
    color: var(--gi-ink);
}
.gi_yf_season_head + .gi_facility_grid {
    margin-top: 3px;
}
@media (max-width: 767px) {
    .gi_yf_season_head {
        min-height: 0;
        margin: 24px 0 -4px;
        font-size: 18px;
    }
}

/* MARK:邑繁丰順 - 360° 全景導覽 (暗角大圖 + 播放鍵) */
.gi_yf_pano {
    position: relative;
    height: 450px;
    margin-top: 24px;
    overflow: hidden;
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(102, 102, 102, 0) 0%, rgba(0, 0, 0, 0.74) 100%),
        url('../images/inner/yifan/pano_bg.jpg') center / cover no-repeat;
    color: var(--gm-white);
}
.gi_yf_pano_play {
    position: absolute;
    top: 169px;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 111px;
    height: 111px;
    margin-left: -55.5px;
    padding: 0;
    border: 0.66px solid rgba(255, 255, 255, 0.36);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: transform 0.2s ease;
}
/* 後台未填影片網址時隱藏播放鈕 (避免點了開啟空白燈箱) */
.gi_yf_pano_play[data-video=""] {
    display: none;
}
.gi_yf_pano_play:hover,
.gi_yf_pano_play:focus-visible {
    transform: scale(1.05);
}
.gi_yf_pano_text {
    position: absolute;
    top: 172px;
    left: 114px;
    right: 114px;
    pointer-events: none;
}
.gi_yf_pano_label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 23px;
    padding: 0 60px 0 52px;
    border: 0.66px solid rgba(202, 160, 92, 0.66);
    border-radius: 66px;
    background: var(--gi-ink);
    font-size: 10.6px;
    line-height: 12.7px;
    letter-spacing: 3.09px;
    text-transform: uppercase;
    color: var(--gi-gold-2);
}
.gi_yf_pano_label::before {
    content: '';
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--gi-gold);
}
.gi_yf_pano_title {
    margin-top: 36px;
    font-size: 79.4px;
    font-weight: 500;
    line-height: 80px;
}
.gi_yf_pano_small {
    font-size: 19.5px;
    vertical-align: baseline;
}
.gi_yf_pano_en {
    font-size: 64px;
}
@media (max-width: 1199px) {
    .gi_yf_pano_text {
        left: 48px;
        right: 48px;
    }
}
@media (max-width: 767px) {
    .gi_yf_pano {
        height: 360px;
        border-radius: 16px;
    }
    .gi_yf_pano_play {
        top: 40px;
        width: 80px;
        height: 80px;
        margin-left: -40px;
    }
    .gi_yf_pano_play img {
        width: 70px;
        height: 70px;
    }
    .gi_yf_pano_text {
        top: auto;
        bottom: 28px;
        left: 20px;
        right: 20px;
    }
    .gi_yf_pano_label {
        padding: 0 16px;
    }
    .gi_yf_pano_title {
        margin-top: 16px;
        font-size: 48px;
        line-height: 1.3;
    }
    .gi_yf_pano_small {
        display: block;
        font-size: 15px;
    }
    .gi_yf_pano_en {
        font-size: 34px;
    }
}

/* MARK:最新消息 - 列表 (3 欄卡片) */
.gi_news_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px 32px;
}
/* 會員中心版：卡片放在較窄的面板內，改為兩欄並縮小間距 */
.gi_news_grid.is_mc {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 24px;
    margin-top: 24px;
}
@media (max-width: 1023px) {
    .gi_news_grid.is_mc {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* 會員中心的進度內頁封面圖 */
.gi_news_cover.is_mc {
    width: 100%;
    height: auto;
    margin-top: 20px;
}
.gi_news_card {
    display: flex;
    flex-direction: column;
    padding-bottom: 30px;
}
.gi_news_thumb {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid var(--gi-gold-2);
    border-radius: 20px;
}
.gi_news_thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 428 / 285;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.gi_news_thumb:hover img,
.gi_news_thumb:focus-visible img {
    transform: scale(1.03);
}
.gi_news_tag {
    position: absolute;
    top: 23px;
    left: 23px;
    padding: 4px 10px;
    border: 1px solid var(--gm-white);
    border-radius: 100px;
    background: var(--gi-gold-2);
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gm-white);
}
.gi_news_tag.is_member {
    background: #65a3c3;
}
.gi_news_date {
    margin-top: 30px;
    font-size: 15px;
    line-height: 18px;
    letter-spacing: 1.65px;
    color: var(--gi-text-3);
}
.gi_news_date span {
    color: var(--gi-gold-2);
}
.gi_news_title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 27px;
    font-size: 22px;
    font-weight: 600;
    line-height: 33px;
}
.gi_news_title a,
.gi_news_title > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: underline;
    color: var(--gi-gold-2);
}
/* 會員限定且未登入：標題與縮圖都不是連結，取消放大與連結感 */
.gi_news_card.is_locked .gi_news_title > span {
    text-decoration: none;
}
.gi_news_card.is_locked .gi_news_thumb,
.gi_news_card.is_locked .gi_news_title > span {
    cursor: default;
}
.gi_news_card.is_locked .gi_news_thumb:hover img {
    transform: none;
}
.gi_news_lock {
    flex: 0 0 auto;
    width: 35px;
    height: 35px;
}
.gi_news_text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: 16px;
    font-size: 16px;
    line-height: 24px;
    text-align: justify;
    color: #1a1a18;
}
.gi_news_more {
    display: block;
    margin-top: 16px;
    font-size: 16px;
    line-height: 34.3px;
    color: var(--gi-gold-2);
}
.gi_news_more::after {
    content: '';
    display: block;
    height: 8px;
    margin-top: 10px;
    background: url('../images/inner/icons/line_more.svg') no-repeat 0 0 / 100% 8px;
}
.gi_news_empty {
    padding: 60px 0;
    text-align: center;
    font-size: 18px;
    color: var(--gi-muted);
}
@media (max-width: 1199px) {
    .gi_news_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 40px 24px;
    }
}
@media (max-width: 767px) {
    .gi_news_grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }
    .gi_news_card {
        padding-bottom: 0;
    }
    .gi_news_date {
        margin-top: 20px;
    }
    .gi_news_title {
        margin-top: 14px;
        font-size: 20px;
    }
}

/* MARK:內頁分頁 (金色圓形頁碼) */
.gi_pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 38px;
    margin-top: 80px;
}
.gi_pager_nums {
    display: flex;
    align-items: center;
    gap: 12px;
}
.gi_pager_num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-family: var(--gi-font-cal);
    font-size: 16px;
    line-height: 20.8px;
    color: var(--gi-ink);
}
.gi_pager_num:hover,
.gi_pager_num:focus-visible {
    background: rgba(202, 160, 92, 0.2);
    color: var(--gi-ink);
}
.gi_pager_num.is_active {
    background: var(--gi-gold);
    color: var(--gm-white);
}
.gi_pager_arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(202, 160, 92, 0.34);
}
.gi_pager_arrow:hover,
.gi_pager_arrow:focus-visible {
    background: var(--gi-gold);
}
.gi_pager_arrow.is_prev img {
    transform: rotate(180deg);
}
@media (max-width: 767px) {
    .gi_pager {
        gap: 20px;
        margin-top: 48px;
    }
}

/* MARK:最新消息 - 內頁 */
.gi_news_article {
    padding: 0 30px;
}
.gi_news_article_title {
    margin-top: 27px;
    font-size: 24px;
    font-weight: 600;
    line-height: 34.3px;
    text-decoration: underline;
    color: var(--gi-gold-2);
}
.gi_news_cover {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1290 / 756;
    margin-top: 18px;
    object-fit: cover;
    border: 1px solid var(--gi-gold-2);
    border-radius: 20px;
}
.gi_news_content {
    margin-top: 18px;
    font-size: 16px;
    line-height: 34.3px;
    text-align: justify;
    color: #1a1a18;
}
.gi_news_content img {
    max-width: 100%;
    height: auto;
}
.gi_news_back {
    display: block;
    width: 164px;
    margin-top: 80px;
    font-size: 16px;
    line-height: 34.3px;
    text-align: center;
    color: var(--gi-gold-2);
}
.gi_news_back::after {
    content: '';
    display: block;
    height: 6px;
    margin-top: 10px;
    background: url('../images/inner/icons/line_back.svg') no-repeat 0 0 / 100% 6px;
}
@media (max-width: 767px) {
    .gi_news_article {
        padding: 0;
    }
    .gi_news_article_title {
        margin-top: 16px;
        font-size: 20px;
        line-height: 1.6;
    }
    .gi_news_content {
        line-height: 30px;
    }
    .gi_news_back {
        margin-top: 48px;
    }
}

/* MARK:聯絡我們 */
.gi_contact_heading {
    margin-top: 5px;
    padding-bottom: 20px;
}
.gi_contact_title {
    font-size: 36px;
    font-weight: 500;
    line-height: 64.8px;
    color: var(--gi-ink);
}
.gi_contact_sub {
    font-size: 24px;
    line-height: 43.2px;
    color: var(--gi-gold-2);
}
.gi_contact_text {
    margin-top: 36px;
    padding-left: 59px;
    border-left: 1px solid #e3e3e3;
    font-size: 16px;
    line-height: 32px;
    text-align: justify;
    color: var(--gi-ink);
}
.gi_contact_text img {
    max-width: 100%;
    height: auto;
}
.gi_contact_navi {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    height: 40px;
    margin-top: 36px;
    padding: 0 5px 0 26px;
    border: 1px solid var(--gi-ink);
    border-radius: 97px;
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 0.8px;
    color: var(--gi-ink);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_contact_navi:hover,
.gi_contact_navi:focus-visible {
    background: var(--gi-ink);
    color: var(--gm-white);
}
.gi_contact_navi_icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--gi-gold);
}
.gi_contact_section {
    padding-bottom: 40px;
}

/* MARK:聯絡我們 - 送出完成頁 (白底卡片置中) */
.gi_done_section {
    padding-bottom: 80px;
}
.gi_done_panel {
    max-width: 900px;
    margin: 0 auto;
    padding: 64px 60px;
    border: 1px solid #e3e3e3;
    border-radius: 8px;
    background: var(--gm-white);
    text-align: center;
}
@media (max-width: 767px) {
    .gi_done_section {
        padding-bottom: 48px;
    }
    .gi_done_panel {
        padding: 40px 20px;
    }
}

/* 完成頁勾勾圖示 (淺金圓底 + 金框，圖示本身為金色) */
.gi_done_mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid var(--gi-gold-2);
    border-radius: 50%;
    background: rgba(184, 151, 90, 0.12);
}

.gi_done_title {
    margin-top: 24px;
    font-size: 36px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--gi-ink);
}
@media (max-width: 767px) {
    .gi_done_title {
        font-size: 26px;
    }
}

/* 標題下的金色短線 */
.gi_done_divider {
    width: 60px;
    height: 2px;
    margin: 20px auto 0;
    background: var(--gi-gold-2);
}

/* 申請編號 */
.gi_done_no {
    margin-top: 20px;
    font-size: 16px;
    line-height: 28px;
    color: var(--gi-ink);
}
.gi_done_no strong {
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}

.gi_done_text {
    margin-top: 28px;
    font-size: 16px;
    line-height: 32px;
    color: var(--gi-ink);
}

.gi_done_btns {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 36px;
}
.gi_contact_map {
    width: calc(100% - 112px);
    max-width: 1807px;
    height: 648px;
    margin: 80px auto 0;
    overflow: hidden;
}
.gi_contact_map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
@media (max-width: 1023px) {
    .gi_contact_map {
        width: calc(100% - 40px);
        height: 480px;
        margin-top: 48px;
    }
}
@media (max-width: 767px) {
    .gi_contact_title {
        font-size: 28px;
        line-height: 1.6;
    }
    .gi_contact_sub {
        font-size: 18px;
        line-height: 1.8;
    }
    .gi_contact_text {
        margin-top: 24px;
        padding-left: 16px;
        line-height: 30px;
    }
    .gi_contact_map {
        width: calc(100% - 32px);
        height: 360px;
    }
}

/* MARK:會員頁 - 表單面板 (左圖右表單，紙紋底) */
.gi_auth_panel,
.gi_mc_panel {
    display: flex;
    min-height: 880px;
    overflow: hidden;
    background:
        linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.75)),
        url('../images/inner/common/paper_texture.jpg') repeat 0 0 / 1200px auto;
    border: 1px solid var(--gi-beige);
    border-radius: 30px;
}
.gi_auth_side {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 533px;
    background: url('../images/inner/member/auth_side.jpg') center / cover no-repeat;
}
.gi_auth_side.is_narrow {
    flex-basis: 399px;
}
.gi_auth_glass {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 232px;
    height: 247px;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.gi_auth_glass img {
    width: 177px;
    height: auto;
    filter: drop-shadow(0 2.57px 13.25px rgba(0, 0, 0, 0.81));
}
.gi_auth_area {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
    padding: 80px 40px;
}
.gi_auth_area.is_wide {
    padding: 60px 120px;
}
.gi_auth_area.is_mid {
    padding: 80px;
}
.gi_auth_form {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: 400px;
    max-width: 100%;
}
.gi_auth_form.is_register {
    gap: 24px;
    width: 711px;
}
.gi_auth_form.is_forgot {
    width: 585px;
}
@media (max-width: 1023px) {
    .gi_auth_panel,
    .gi_mc_panel {
        flex-direction: column;
        min-height: 0;
    }
    .gi_auth_side,
    .gi_auth_side.is_narrow {
        flex: 0 0 240px;
    }
    .gi_auth_area,
    .gi_auth_area.is_wide,
    .gi_auth_area.is_mid {
        padding: 40px 32px;
    }
    .gi_auth_form,
    .gi_auth_form.is_register,
    .gi_auth_form.is_forgot {
        width: 100%;
    }
}
@media (max-width: 767px) {
    .gi_auth_panel,
    .gi_mc_panel {
        border-radius: 20px;
    }
    .gi_auth_side,
    .gi_auth_side.is_narrow {
        flex: 0 0 180px;
    }
    .gi_auth_glass {
        width: 170px;
        height: 180px;
    }
    .gi_auth_glass img {
        width: 128px;
    }
    .gi_auth_area,
    .gi_auth_area.is_wide,
    .gi_auth_area.is_mid {
        padding: 28px 18px;
    }
}

/* MARK:會員頁 - 表單元件 (標題、欄位、按鈕) */
.gi_auth_title {
    font-size: 28px;
    font-weight: 600;
    line-height: 40.5px;
    text-align: center;
    color: var(--gm-text);
}
.gi_auth_bar_title {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 26px;
    font-weight: 600;
    line-height: 37.6px;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}
.gi_auth_bar_title::before {
    content: '';
    flex: 0 0 auto;
    width: 6px;
    height: 32px;
    border-radius: 3px;
    background: var(--gi-gold-2);
}
.gi_auth_bar_title.is_beige::before {
    width: 5px;
    height: 26px;
    border-radius: 2px;
    background: var(--gi-beige);
}
.gi_auth_label {
    display: block;
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gm-text);
}
.gi_auth_input {
    display: block;
    width: 100%;
    height: 40px;
    margin-top: 8px;
    padding: 0 12px;
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    border-radius: 10px;
    font-size: 14px;
    line-height: 16.8px;
    color: var(--gm-text);
}
.gi_auth_input::placeholder {
    color: var(--gi-muted);
}
.gi_auth_input:focus {
    outline: none;
    border-color: var(--gi-gold);
}
.gi_auth_input.is_readonly {
    background: #faf7f2;
}
.gi_auth_row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}
.gi_auth_row .gi_auth_input {
    margin-top: 0;
    flex: 1 1 auto;
}
.gi_auth_code_btn,
.gi_auth_send_btn {
    flex: 0 0 auto;
    height: 40px;
    padding: 0 18px;
    background: var(--gm-white);
    border: 1px solid var(--gi-gold);
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gi-gold-2);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_auth_send_btn {
    border: 1.5px solid var(--gi-gold-2);
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}
.gi_auth_code_btn:hover,
.gi_auth_code_btn:focus-visible,
.gi_auth_send_btn:hover,
.gi_auth_send_btn:focus-visible {
    background: var(--gi-gold-2);
    color: var(--gm-white);
}
/* 倒數中或停用時 */
.gi_auth_code_btn:disabled,
.gi_auth_send_btn:disabled {
    border-color: #cccccc;
    background: #f2f2f2;
    color: #999999;
    cursor: not-allowed;
}

/* 欄位下方的提示訊息 (驗證碼發送結果、表單檢查) */
.gi_auth_msg {
    margin-top: 8px;
    font-size: 13px;
    line-height: 20px;
    color: #666666;
}
.gi_auth_msg:empty {
    display: none;
}
.gi_auth_msg.is_error {
    color: #c0392b;
}
.gi_auth_msg.is_ok {
    color: var(--gi-gold-2);
}
.gi_auth_forgot {
    text-align: right;
    font-size: 14px;
    line-height: 16.8px;
}
.gi_auth_forgot a {
    color: var(--gi-muted);
}
.gi_auth_forgot a:hover,
.gi_auth_forgot a:focus-visible {
    color: var(--gi-gold-2);
}
.gi_auth_submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px;
    border: 0;
    border-radius: 30px;
    background: var(--gi-gold-2);
    font-size: 16px;
    font-weight: 500;
    line-height: 19.2px;
    color: var(--gm-white);
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.gi_auth_submit:hover,
.gi_auth_submit:focus-visible {
    background: var(--gm-gold-dark);
    color: var(--gm-white);
}
.gi_auth_submit.is_shadow {
    font-weight: 600;
    letter-spacing: 1px;
    box-shadow: 0 4px 16px rgba(184, 151, 90, 0.25);
}
.gi_auth_divider {
    display: flex;
    align-items: center;
    gap: 12px;
}
.gi_auth_divider::before,
.gi_auth_divider::after {
    content: '';
    flex: 1 1 0;
    height: 1px;
    background: var(--gi-line);
}
.gi_auth_divider span {
    font-size: 13px;
    line-height: 15.6px;
    color: var(--gi-muted);
}
.gi_auth_line_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 50px;
    border: 1.5px solid var(--gi-gold-2);
    border-radius: 30px;
    font-size: 16px;
    font-weight: 500;
    color: var(--gi-gold-2);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.gi_auth_line_btn:hover,
.gi_auth_line_btn:focus-visible {
    background: var(--gi-gold-2);
    color: var(--gm-white);
}
/* 會員中心的 LINE 綁定按鈕 (寬度依內容，不撐滿) */
.gi_auth_line_btn.is_bind {
    width: auto;
    padding: 0 28px;
}

/* LINE 綁定說明文字 */
.gi_mc_line_hint {
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 22px;
    color: var(--gi-muted);
}
.gi_auth_bottom,
.gi_auth_back {
    text-align: center;
    font-size: 14px;
    line-height: 16.8px;
    color: var(--gi-muted);
}
.gi_auth_bottom a,
.gi_auth_back a {
    font-weight: 500;
    color: var(--gi-gold-2);
}
.gi_auth_tabs {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: #efece6;
    border-radius: 100px;
}
.gi_auth_tab {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    height: 40px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gi-muted);
}
.gi_auth_tab.is_active {
    background: var(--gi-beige);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
    font-weight: 600;
    color: var(--gm-text);
}
.gi_auth_switch {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: #f6f5f2;
    border: 1px solid var(--gi-line);
    border-radius: 10px;
}
.gi_auth_switch_tab {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 0;
    height: 38px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gi-muted);
}
.gi_auth_switch_tab.is_active {
    background: var(--gm-white);
    border: 1px solid var(--gi-line);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    font-weight: 600;
    color: var(--gi-gold-2);
}
.gi_auth_email_group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.gi_auth_check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 16.8px;
    color: var(--gm-text);
    cursor: pointer;
}
.gi_auth_check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.gi_auth_check_box {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    height: 20px;
    border: 1.5px solid var(--gi-gold);
    border-radius: 4px;
    background: var(--gm-white);
}
.gi_auth_check input:checked + .gi_auth_check_box {
    background: var(--gi-gold-2);
    border-color: var(--gi-gold-2);
}
.gi_auth_check input:checked + .gi_auth_check_box::after {
    content: '';
    width: 10px;
    height: 8px;
    background: var(--gm-white);
    -webkit-mask: url('../images/inner/icons/check_sm.svg') center / contain no-repeat;
    mask: url('../images/inner/icons/check_sm.svg') center / contain no-repeat;
}
.gi_auth_check input:focus-visible + .gi_auth_check_box {
    outline: 2px solid var(--gi-gold);
    outline-offset: 2px;
}
.gi_auth_check_hint {
    font-size: 13px;
    font-weight: 400;
    line-height: 15.6px;
    color: var(--gi-muted);
}
.gi_auth_check.is_terms {
    font-weight: 400;
}
.gi_auth_check.is_terms a {
    font-weight: 600;
    color: var(--gi-gold-2);
}
.gi_auth_pill_btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    height: 40px;
    padding: 5px 5px 5px 26px;
    border: 0;
    border-radius: 97px;
    background: var(--gi-gold-2);
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 0.8px;
    color: var(--gm-white);
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.gi_auth_pill_btn.is_auto {
    width: auto;
}
.gi_auth_pill_btn:hover,
.gi_auth_pill_btn:focus-visible {
    background: var(--gm-gold-dark);
    color: var(--gm-white);
}
.gi_auth_pill_icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--gi-beige);
}
.gi_auth_actions {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-top: 12px;
}
.gi_auth_form.is_register .gi_auth_input,
.gi_auth_form.is_register .gi_auth_row .gi_auth_input {
    max-width: 585px;
}
@media (max-width: 767px) {
    .gi_auth_title {
        font-size: 24px;
    }
    .gi_auth_bar_title {
        font-size: 22px;
    }
    .gi_auth_row {
        flex-wrap: wrap;
    }
    .gi_auth_check {
        flex-wrap: wrap;
    }
    .gi_auth_check_hint {
        flex: 1 1 100%;
        padding-left: 30px;
    }
}

/* MARK:會員中心 - 左側選單 */
.gi_mc_panel {
    padding: 32px;
}
.gi_mc_side {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 0 0 260px;
    align-self: flex-start;
    padding: 16px;
    background: #fafafa;
    border: 1px solid var(--gi-line);
    border-radius: 20px;
}
.gi_mc_level {
    padding: 24px 32px;
    border-radius: 10px;
    background: rgba(198, 235, 254, 0.19);
}
.gi_mc_level_title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 20px;
    font-weight: 700;
    line-height: 24px;
    color: var(--gm-text);
}
.gi_mc_level_value {
    margin-top: 4px;
    font-size: 16px;
    font-weight: 500;
    line-height: 19.2px;
    color: var(--gi-gold-2);
}
.gi_mc_menu {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.gi_mc_menu a {
    position: relative;
    display: flex;
    align-items: center;
    height: 42px;
    padding: 0 16px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 500;
    line-height: 19.2px;
    color: var(--gm-text);
}
.gi_mc_menu a:hover,
.gi_mc_menu a:focus-visible {
    background: rgba(198, 235, 254, 0.19);
    color: var(--gi-gold-2);
}
.gi_mc_menu a.is_active {
    background: rgba(198, 235, 254, 0.19);
    font-weight: 600;
    color: var(--gi-gold-2);
}
.gi_mc_menu a.is_active::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 4px;
    height: 20px;
    margin-top: -10px;
    border-radius: 2px;
    background: var(--gi-gold-2);
}
.gi_mc_menu a.is_logout {
    color: #9ca3af;
}
@media (max-width: 1023px) {
    .gi_mc_panel {
        padding: 20px;
    }
    .gi_mc_side {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* MARK:會員中心 - 內容區 */
.gi_mc_content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 60px 56px;
}
.gi_mc_head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.gi_mc_title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 26px;
    font-weight: 600;
    line-height: 37.6px;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}
.gi_mc_title::before {
    content: '';
    flex: 0 0 auto;
    width: 5px;
    height: 26px;
    border-radius: 10px;
    background: var(--gi-gold-2);
}
.gi_mc_sub {
    margin-top: 4px;
    font-size: 13px;
    line-height: 15.6px;
    color: var(--gi-muted);
}
.gi_mc_badges {
    display: flex;
    gap: 8px;
}
.gi_mc_badge {
    padding: 4px 10px;
    border: 1px solid #d1d5db;
    border-radius: 100px;
    background: #fafafa;
    font-size: 12px;
    font-weight: 500;
    line-height: 14.4px;
    color: #4b5563;
    white-space: nowrap;
}
.gi_mc_badge.is_role {
    border-color: var(--gi-gold-2);
    background: var(--gi-gold-2);
    color: var(--gm-white);
}
.gi_mc_content .gi_auth_field + .gi_auth_field,
.gi_mc_content .gi_auth_email_group {
    margin-top: 16px;
}
.gi_mc_content .gi_auth_input {
    max-width: 585px;
}
.gi_mc_content .gi_auth_input.is_full {
    max-width: none;
}
.gi_mc_content .gi_auth_pill_btn {
    margin-top: 24px;
}
.gi_mc_fields {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 24px;
}
.gi_mc_section {
    margin-top: 16px;
    padding: 10px 0;
}
.gi_mc_sub_title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 26px;
    font-weight: 600;
    line-height: 37.6px;
    letter-spacing: 1px;
    color: var(--gi-gold-2);
}
.gi_mc_sub_title::before {
    content: '';
    flex: 0 0 auto;
    width: 5px;
    height: 26px;
    border-radius: 10px;
    background: var(--gi-beige);
}
.gi_mc_address {
    margin-top: 20px;
}
.gi_mc_address_label {
    display: block;
    margin: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 18px;
    color: var(--gi-gold-2);
}
.gi_mc_address_row {
    display: flex;
    gap: 12px;
    margin-top: 8px;
}
.gi_mc_select,
.gi_mc_address_input {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    height: 43px;
    padding: 0 16px;
    background: #fafafa;
    border: 1.5px solid var(--gi-line);
    border-radius: 10px;
    font-size: 14px;
    line-height: 16.8px;
    color: #a9a9a9;
}
.gi_mc_select {
    flex: 1 1 375px;
    min-width: 0;
}
/* 縣市／鄉鎮市區下拉 (自訂箭頭，維持與切版時相同外觀) */
select.gi_mc_select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 40px;
    background: #fafafa url('../images/inner/icons/chevron_down.svg') no-repeat right 16px center;
    background-size: 14px 14px;
    color: var(--gm-text);
    cursor: pointer;
}
/* 郵遞區號 (唯讀，由所選區域自動帶入) */
input.gi_mc_select {
    color: var(--gm-text);
}
input.gi_mc_select::placeholder {
    color: #a9a9a9;
}
select.gi_mc_select:focus,
input.gi_mc_select:focus {
    outline: none;
    border-color: var(--gi-gold);
}
.gi_mc_select.is_zip {
    flex: 0 0 140px;
}
.gi_mc_address_input {
    width: 100%;
    margin-top: 8px;
    color: var(--gm-text);
}
.gi_mc_address_input::placeholder {
    color: #a9a9a9;
}
.gi_mc_address_input:focus {
    outline: none;
    border-color: var(--gi-gold);
}
.gi_mc_divider {
    height: 1px;
    margin-top: 24px;
    background: var(--gi-line);
}
.gi_mc_editor {
    margin-top: 24px;
    font-size: 16px;
    line-height: 30px;
    text-align: justify;
    color: var(--gi-text-2);
}
.gi_mc_editor img {
    max-width: 100%;
    height: auto;
}
@media (max-width: 1023px) {
    .gi_mc_content {
        padding: 28px 0 0;
    }
}
@media (max-width: 767px) {
    .gi_mc_head {
        flex-direction: column;
        gap: 12px;
    }
    .gi_mc_title,
    .gi_mc_sub_title {
        font-size: 22px;
    }
    .gi_mc_address_row {
        flex-wrap: wrap;
    }
    .gi_mc_select {
        flex: 1 1 100%;
    }
    .gi_mc_select.is_zip {
        flex: 1 1 100%;
    }
}
