/* ============================================
   基礎樣式重置
   ============================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 無障礙：鍵盤焦點樣式 */
:focus-visible {
    outline: 2px solid #c8a24a;
    outline-offset: 2px;
}

/* 無障礙：跳到主內容連結 */
.skip-to-content {
    position: absolute;
    top: -100%;
    left: 50%;
    transform: translateX(-50%);
    background: #3d2817;
    color: #fff;
    padding: 12px 24px;
    border-radius: 0 0 8px 8px;
    z-index: 9999;
    font-size: 14px;
    text-decoration: none;
    transition: top 0.2s ease;
}

.skip-to-content:focus {
    top: 0;
}

/* 整體頁面樣式 */
body {
    font-family: 'Inter', sans-serif;
    color: #3d2817;
    background-color: #f5f3f0;
    line-height: 1.6;
    scroll-behavior: smooth;  /* 平滑滾動 */
}

/* ============================================
   日曆頁面：避免橫向溢出（全站安全）
   ============================================ */
html {
    overflow-x: hidden;
    scrollbar-gutter: stable;
}

/* 日曆頁面專用：允許自然捲動（避免手機視口/縮放抖動與位置漂移） */
body.calendar-page-body {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
    width: 100%;
    max-width: none;
}

/* 容器：限制最大寬度並置中 */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

/* ============================================
   頂部導覽列區域（白色背景）
   ============================================ */
.header {
    position: fixed;  /* 固定導覽列 */
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    padding: 30px 0;
    background-color: #ffffff;  /* 頂層白色背景 */
    border-bottom: 1px solid rgba(61, 40, 23, 0.08);
    z-index: 1000;  /* 確保在最上層 */
    box-shadow: 0 2px 8px rgba(61, 40, 23, 0.05);
    box-sizing: border-box;
    overflow-x: hidden;
}

/* 導覽列容器：品牌名稱和導覽連結的容器 */
.nav-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* 右側導覽區域：包含導覽連結和語言切換 */
.nav-right {
    display: flex;
    align-items: center;
    gap: 24px;
}

/* 社群媒體連結 */
.social-links {
    display: flex;
    align-items: center;
    gap: 12px;
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;  /* 增大社交圖標容器 */
    height: 36px;
    color: #3d2817;
    text-decoration: none;
    border-radius: 50%;
    transition: all 0.3s ease;
    opacity: 0.8;
}

.social-link:hover {
    opacity: 1;
    transform: translateY(-2px);
    background-color: rgba(61, 40, 23, 0.05);
}

.social-icon {
    width: 22px;  /* 增大社交圖標尺寸 */
    height: 22px;
    display: block;
}

/* Logo 品牌名稱樣式 */
.logo {
    font-family: 'Playfair Display', serif;
    font-size: 32px;  /* ⭐ 調整 Logo 字型大小：改這個數字 */
    font-weight: 700;
    color: #3d2817;
    letter-spacing: 0.5px;
    margin-left: -80px; /* 讓品牌更靠左（超出容器padding），給分頁選項更多空間 */
}

.logo a {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    color: inherit;
}

.site-logo {
    width: 78px;
    height: 78px;
    display: block;
    object-fit: contain;
    flex: 0 0 auto;
}

/* 導覽連結容器 */
.nav {
    display: flex;
    align-items: center;
    gap: 26px;  /* 增加間距來分隔導覽連結，讓分頁文字分開更多 */
}

/* 導覽連結樣式 */
.nav-link {
    font-family: 'Inter', sans-serif;
    font-size: 22px;  /* 調整導覽連結字型大小（中文版更大） */
    font-weight: 400;
    color: #3d2817;
    text-decoration: none;
    letter-spacing: 0.5px;
    transition: opacity 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 圖標導覽連結樣式（首頁） */
.nav-link-icon {
    padding: 2px;  /* 給圖標一點內邊距 */
}

.nav-icon {
    width: 24px;  /* 增大圖標尺寸，首頁和日曆使用相同大小 */
    height: 24px;
    display: block;
    transition: opacity 0.3s ease;
}

/* 導覽連結滑鼠懸停效果 */
.nav-link:hover {
    opacity: 0.7;
}

.nav-link-icon:hover .nav-icon {
    opacity: 0.7;
}

/* 目前頁面導覽狀態（由 JS 加上 aria-current / .is-active） */
.nav-link[aria-current="page"],
.nav-link.is-active {
    opacity: 1;
    font-weight: 500;
    color: #8b6f47;
}

.nav-link-icon.is-active .nav-icon,
.nav-link-icon[aria-current="page"] .nav-icon {
    color: #8b6f47;
    opacity: 1;
}

/* 語言切換器 */
.language-switcher {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 語言切換按鈕 */
.lang-btn {
    font-family: 'Inter', sans-serif;
    font-size: 16px;  /* 增大語言切換按鈕字體 */
    font-weight: 400;
    color: #3d2817;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
}

.lang-btn:hover {
    opacity: 0.7;
}

.lang-btn.active {
    font-weight: 500;
    color: #8b6f47;
}

/* 語言切換分隔符號 */
.lang-separator {
    color: #3d2817;
    font-size: 16px;  /* 增大語言切換分隔符號字體 */
}

/* ============================================
   頁尾
   ============================================ */
.site-footer {
    background-color: transparent;
    border-top: 1px solid rgba(61, 40, 23, 0.1);
    color: #8b6f47;
    padding: 20px 0;
    text-align: center;
}

.footer-content {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-brand {
    font-family: 'Playfair Display', serif;
    font-size: 14px;
    font-weight: 500;
    color: #8b6f47;
    letter-spacing: 0.5px;
}

.footer-copy {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
}

/* ============================================
   主內容區域（米色背景）
   ============================================ */
.main-content {
    /* 補償固定導覽列的高度（由 JS 寫入 --header-h，以因應手機多行 header） */
    margin-top: var(--header-h, 100px);
    padding: 60px 0;
    min-height: calc(100vh - 200px);
    background-color: #f0ede8;  /* 下層米色背景 */
}

/* 首頁：垂直置中內容 */
.home-page .main-content {
    display: flex;
    align-items: center;
}

/* 內容網格：左右兩欄版面配置 */
.content-grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;  /* 左欄較窄，右欄較寬（圖片區域） */
    gap: 60px;
    align-items: center;
}

/* 左側內容區域：標題、描述、按鈕 */
.content-left {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* 主標題樣式 */
.main-headline {
    font-family: 'Playfair Display', serif;
    font-size: 56px;  /* ⭐ 調整主標題字型大小：改這個數字 */
    font-weight: 700;
    color: #3d2817;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

/* 描述文字樣式 */
.description {
    font-family: 'Inter', sans-serif;
    font-size: 18px;  /* ⭐ 調整描述文字字型大小：改這個數字 */
    font-weight: 300;
    color: #3d2817;
    line-height: 1.6;
}

/* 按鈕樣式 */
.cta-button {
    font-family: 'Inter', sans-serif;
    font-size: 16px;  /* ⭐ 調整按鈕文字字型大小：改這個數字 */
    font-weight: 500;
    color: #3d2817;
    background-color: #e8d5c4;
    border: none;
    text-decoration: none;
    display: inline-block;
    padding: 16px 40px;
    border-radius: 30px;
    cursor: pointer;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
    width: fit-content;
    margin-top: 8px;
}

/* 按鈕滑鼠懸停效果 */
.cta-button:hover {
    background-color: #d4c0a8;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(61, 40, 23, 0.15);
}

/* 右側內容區域：圖片容器 */
.content-right {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 圖片外層容器 */
.image-wrapper {
    position: relative;
    width: 100%;
    max-width: 100%;  /* 讓圖片可以佔滿右欄的寬度 */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(61, 40, 23, 0.1);
}

/* 圖片保護：透明遮罩防止右鍵/長按直接存圖 */
.image-wrapper::after,
.gallery-image-wrapper::after,
.image-modal__image-wrapper::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* 圖片保護：禁止拖曳、選取、長按存圖 */
img {
    -webkit-user-drag: none;
    user-select: none;
    -webkit-touch-callout: none;
}

/* 圖片樣式 */
.hero-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* ============================================
   響應式設計（手機和平板適配）
   ============================================ */

/* 平板尺寸（968px 以下）：改為單欄版面配置 */
@media (max-width: 968px) {
    .header {
        padding: 20px 0;
    }

    .main-content {
        margin-top: var(--header-h, 120px);
    }

    .content-grid {
        grid-template-columns: 1fr;  /* 改為單欄 */
        gap: 40px;
    }

    .content-left {
        text-align: center;
        align-items: center;
    }

    .main-headline {
        font-size: 42px;  /* 平板上的主標題字型大小 */
    }

    .nav-wrapper {
        flex-direction: column;
        gap: 20px;
    }

    .nav-right {
        flex-direction: column;
        gap: 16px;
    }

    /* 平板以上導覽改成直排時，品牌區塊仍靠左 */
    .logo {
        width: 100%;
        text-align: left;
        align-self: flex-start;
        margin-left: -8px;
    }

    .logo a {
        justify-content: flex-start;
    }

    .social-links {
        gap: 16px;
    }

    .nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 14px;  /* 平板端適中的導覽間距 */
    }
}

/* 手機尺寸（640px 以下）：進一步縮小字型 */
@media (max-width: 640px) {
    .header {
        padding: 10px 0;
    }

    .main-content {
        margin-top: var(--header-h, 140px);
        padding: 40px 0;
    }

    .container {
        padding: 0 12px;  /* 進一步減少左右padding，讓導覽有更多空間 */
    }

    .main-headline {
        font-size: 28px;  /* 手機上的主標題字型大小（從32px減小） */
        line-height: 1.15;  /* 更緊湊的行高 */
    }

    .description {
        font-size: 15px;  /* 手機上的描述文字字型大小（從16px減小） */
        line-height: 1.5;
    }

    .logo {
        font-size: 22px;  /* 手機上的 Logo 字型大小（從24px減小） */
        margin-left: -6px;
    }

    .site-logo {
        width: 50px;  /* 從57px減小 */
        height: 50px;
    }

    .nav-link {
        font-size: 15px;  /* 手機上的導覽連結字型大小（再增大一點） */
        letter-spacing: 0.1px;
    }

    /* 手機端圖標大小 */
    .nav-icon {
        width: 20px;  /* 手機端也稍微增大 */
        height: 20px;
    }

    .nav {
        gap: 12px;  /* 適中的導覽連結之間的間距，自然分隔 */
        flex-wrap: nowrap;  /* 不換行 */
        justify-content: center;  /* 居中對齊 */
    }

    /* 手機版 header：更緊湊，且把社群 icon + 語言切換放同一行 */
    .nav-wrapper {
        gap: 8px;  /* 進一步減少間距 */
    }

    .nav-right {
        display: grid;
        grid-template-columns: auto auto;
        grid-template-areas:
            "nav nav"
            "social language";
        justify-content: stretch;  /* 讓導覽區域拉伸 */
        align-items: center;
        column-gap: 16px;
        row-gap: 8px;
        width: 100%;  /* 確保導覽區域佔滿寬度 */
    }

    .nav-right .nav {
        grid-area: nav;
        justify-content: center;  /* 居中對齊 */
        width: 100%;  /* 確保導覽有足夠寬度 */
        min-width: 0;  /* 允許flex項目縮小 */
    }

    .nav-right .social-links {
        grid-area: social;
        justify-content: center;
    }

    .nav-right .language-switcher {
        grid-area: language;
        justify-content: center;
    }

    .social-link {
        width: 26px;  /* 從28px減小 */
        height: 26px;
    }

    .social-icon {
        width: 14px;  /* 從16px減小 */
        height: 14px;
    }

    .lang-btn {
        padding: 2px 5px;  /* 從2px 6px減小 */
        font-size: 12px;  /* 明確設定字體大小 */
    }

    .lang-separator {
        font-size: 12px;
    }

    /* 按鈕樣式調整 */
    .cta-button {
        font-size: 14px;  /* 從16px減小 */
        padding: 14px 32px;  /* 從16px 40px減小 */
        letter-spacing: 0.3px;
    }
}

/* 超小屏幕（480px 以下）：進一步優化中英文界面 */
@media (max-width: 480px) {
    .main-headline {
        font-size: 24px;  /* 更小的主標題 */
        line-height: 1.2;
    }

    .description {
        font-size: 14px;
    }

    .nav-link {
        font-size: 14px;  /* 超小屏幕的導覽連結字體（再增大一點） */
        letter-spacing: 0.1px;
    }

    /* 超小屏幕圖標大小 */
    .nav-icon {
        width: 19px;  /* 超小屏幕也稍微增大 */
        height: 19px;
    }

    .nav {
        gap: 10px;  /* 適中的導覽間距，自然分隔 */
        flex-wrap: nowrap;  /* 不換行 */
        justify-content: center;  /* 居中對齊 */
    }

    .cta-button {
        font-size: 13px;
        padding: 12px 28px;  /* 更小的按鈕 */
    }

    .logo {
        font-size: 20px;
    }

    .site-logo {
        width: 45px;
        height: 45px;
    }
}

/* ============================================
   分頁樣式（季節限定、全部品項等）
   ============================================ */

/* 頁面標題區域 */
.page-header {
    text-align: center;
    margin-bottom: 60px;
    padding-top: 40px;
}

.page-title {
    font-family: 'Playfair Display', serif;
    font-size: 48px;
    font-weight: 700;
    color: #3d2817;
    margin-bottom: 16px;
    letter-spacing: -0.5px;
}

.page-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 300;
    color: #3d2817;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

/* 圖片網格布局 */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 30px;
    padding-bottom: 60px;
}

.gallery-item {
    width: 100%;
}

.gallery-image-wrapper {
    position: relative;  /* 為標籤定位提供參考 */
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(61, 40, 23, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    aspect-ratio: 1;
}

/* 載入中 spinner */
.gallery-image-wrapper::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    border: 3px solid rgba(61, 40, 23, 0.15);
    border-top-color: rgba(61, 40, 23, 0.5);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    z-index: 1;
}

.gallery-image-wrapper.loaded::before {
    display: none;
}

.gallery-image-wrapper.loaded {
    background: none;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.gallery-image-wrapper:hover {
    transform: translateY(-4px) scale(1.03);
    box-shadow: 0 8px 24px rgba(61, 40, 23, 0.15);
}

.gallery-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gallery-item-info {
    margin-top: 12px;
    text-align: center;
}

.gallery-item-name {
    font-size: 18px;
    font-weight: 500;
    color: #3d2817;
    margin-bottom: 4px;
    font-family: 'Playfair Display', serif;
}

/* ============================================
   圖片標籤樣式（右下角顯示 - 精緻可愛風格）
   ============================================ */
.gallery-image-tags {
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: flex;
    flex-wrap: wrap-reverse;
    justify-content: flex-end;
    gap: 6px;
    z-index: 5;
}

/* 標籤位置統一：圖片右下角內側（藥丸形不需超出邊界） */

/* ============================================
   共用標籤樣式（便利貼風格）
   .gallery-image-tag / .tag-legend-badge / .image-modal__tag 共用
   ============================================ */
.tag-badge {
    display: inline-block;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 400;
    font-family: 'Playfair Display', serif;
    line-height: 1.3;
    white-space: nowrap;
    border: none;
    transition: all 0.3s ease;
    letter-spacing: 0.3px;
    position: relative;
    border-radius: 2px;
    box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.15);
}

/* 便利貼右下角摺角 */
.tag-badge::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 8px;
    height: 8px;
    background: linear-gradient(135deg, transparent 50%, rgba(0, 0, 0, 0.08) 50%);
    border-radius: 0 0 2px 0;
}

/* ── 圖片標籤（覆蓋差異） ── */
.gallery-image-tag {
    transform: rotate(-2deg);
}

.gallery-image-tag:nth-child(even) {
    transform: rotate(1.5deg);
}

.gallery-image-tag:hover {
    transform: rotate(0deg) translateY(-2px);
    box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.2) !important;
}

/* ============================================
   標籤圖例樣式（頁面上方 - 精緻可愛風格）
   ============================================ */
.tag-legend {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 28px;
    padding: 16px 0;
    flex-wrap: wrap;
}

.tag-legend-label {
    font-size: 15px;
    font-weight: 500;
    color: #3d2817;
    font-family: 'Playfair Display', serif;
    letter-spacing: 0.5px;
}

.tag-legend-items {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.tag-legend-item {
    display: flex;
    align-items: center;
}

.tag-legend-checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

.tag-legend-checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
}

/* ── 圖例標籤（覆蓋差異：稍大尺寸） ── */
.tag-legend-badge {
    padding: 7px 14px;
    font-size: 13px;
}

.tag-legend-checkbox:checked + .tag-legend-badge {
    box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.25) !important;
    transform: translateY(-2px);
}

.tag-legend-checkbox-label:hover .tag-legend-badge {
    transform: translateY(-2px);
    box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.2) !important;
}

.tag-legend-checkbox:checked + .tag-legend-badge::before {
    content: '✓';
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: #3d2817;
    font-weight: 700;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    z-index: 10;
}

.tag-legend-hint {
    font-size: 13px;
    color: #666;
    white-space: nowrap;
    margin-left: 4px;
    display: flex;
    align-items: center;
}

/* ============================================
   全部品項（all-items）：圖片縮小 + 移除卡片感（僅此頁）
   用 transform: scale 縮小圖片，保持元素邊界一致，選取框才能對齊
   ============================================ */
.all-items-page .gallery-grid {
    gap: 24px;
}

.all-items-page .gallery-image-wrapper {
    box-shadow: none;
    border-radius: 0;
}

.all-items-page .gallery-image {
    transform: scale(0.85);
    transform-origin: center;
}

.all-items-page .gallery-item-name {
    font-size: 16px;
}

/* 響應式���平板 - 分頁樣式 */
@media (max-width: 968px) {
    .page-header {
        padding-top: 0;  /* 已經有 main-content 的 margin-top 了 */
    }

    .page-title {
        font-size: 36px;
    }

    .page-subtitle {
        font-size: 16px;
    }

    .gallery-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 24px;
    }
}

/* 響應式：手機 - 分頁樣式 */
@media (max-width: 640px) {
    .page-header {
        margin-bottom: 40px;
        padding-top: 0;  /* 已經有 main-content 的 margin-top 了 */
    }

    .page-title {
        font-size: 28px;
    }

    .page-subtitle {
        font-size: 15px;
        padding: 0 20px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding-bottom: 40px;
    }

    /* 季節限定（手機）：圖片縮小為 0.8 倍（整個圖卡縮小並置中） */
    .seasonal-page .gallery-grid {
        gap: 26px; /* 增加垂直間隔（手機） */
    }

    .seasonal-page .gallery-item {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .seasonal-page .gallery-image-wrapper {
        width: 80%;
    }

    .seasonal-page .gallery-item-info {
        width: 80%;
        text-align: center;
    }

    /* 全部品項（手機）：一排兩張 */
    .all-items-page .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    /* 手機版：名稱和價格字體調整 */
    .gallery-item-name {
        font-size: 16px;
    }

    .all-items-page .gallery-item-name {
        font-size: 14px;
    }

    /* 手機版：標籤圖例調整 */
    .tag-legend {
        margin-bottom: 20px;
        padding: 10px 0;
    }

    .tag-legend-label {
        font-size: 13px;
    }

    .gallery-image-tag {
        font-size: 0;
        padding: 0;
        width: 14px;
        height: 14px;
        border-radius: 2px;
        letter-spacing: 0;
        transform: rotate(-2deg);
        box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.15);
    }

    .tag-legend-badge {
        font-size: 12px;
        padding: 6px 12px;
    }
}

/* ============================================
   日曆頁面樣式
   ============================================ */

/* 日曆頁面專用樣式：不要鎖定一屏，不要縮放；維持水平置中、可清楚閱讀 */
/* 使用 .main-content.calendar-page 提高特異性，取代 !important */
.main-content.calendar-page {
    padding: 0;
    /* 由 JS 寫入 --header-h，以確保不同裝置/字型下準確扣掉 header 高度 */
    margin-top: var(--header-h, 100px);
    min-height: auto; /* 覆蓋 .main-content 的 min-height */
    height: auto;
    overflow: visible;
    box-sizing: border-box;
    width: 100%;

    display: block;
}

.calendar-page .container {
    max-width: 1600px;
    padding: 0 20px;
    width: 100%;
    margin: 0 auto;
    /* 不要裁切日曆本體/陰影 */
    overflow: visible;
    box-sizing: border-box;

    /* 水平置中，垂直從上往下排（需要時可捲動） */
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.calendar-wrapper {
    width: 100%;
    max-width: 760px;
    margin: 24px auto 60px;
    /* 不要裁切日曆本體/陰影 */
    overflow: visible;
    box-sizing: border-box;
    transform: none;
}

.calendar-iframe {
    width: 100%;
    min-height: 900px; /* 初始高度，載入後由 postMessage 自動覆蓋 */
    border: none;
    background: transparent;
    display: block;
    overflow: visible;
}

@media (max-width: 968px) {
    .calendar-page .container {
        padding: 0 15px;
    }
}

@media (max-width: 640px) {
    .calendar-page .container {
        padding: 0 10px;
    }
}

/* ============================================
   訂購說明頁面樣式
   ============================================ */

.order-content {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    padding: 40px 0;
}

.order-card {
    background-color: #ffffff;
    border-radius: 20px;
    padding: 60px 50px;
    max-width: 600px;
    width: 100%;
    text-align: center;
    box-shadow: 0 8px 32px rgba(61, 40, 23, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.order-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 40, 23, 0.15);
}

.order-icon {
    font-size: 64px;
    margin-bottom: 24px;
    line-height: 1;
}

.order-divider {
    width: 60px;
    height: 2px;
    background: linear-gradient(to right, transparent, #e8d5c4, transparent);
    margin: 18px auto 26px;
}

.order-description {
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 300;
    color: #3d2817;
    line-height: 1.8;
    letter-spacing: 0.3px;
}

.order-card p {
    margin: 0;
}

.order-social-hint {
    margin-top: 18px;
    font-family: 'Inter', sans-serif;
    font-size: 19px;
    font-weight: 500;
    color: #3d2817;
    line-height: 1.55;
    letter-spacing: 0.2px;
}

.order-social-links {
    margin-top: 14px;
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.order-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border-radius: 999px;
    background-color: #e8d5c4; /* fallback */
    color: #ffffff;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.4px;
    transition: all 0.25s ease;
}

.order-social-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(61, 40, 23, 0.12);
}

.order-social-link--facebook {
    background-color: #1877F2; /* Facebook blue */
}

.order-social-link--facebook:hover {
    background-color: #166FE5;
}

.order-social-link--instagram {
    /* Instagram brand gradient */
    background: linear-gradient(45deg, #F58529 0%, #DD2A7B 40%, #8134AF 70%, #515BD4 100%);
}

.order-social-link--instagram:hover {
    filter: brightness(0.95);
}

/* 響應式：平板 */
@media (max-width: 968px) {
    .order-card {
        padding: 50px 40px;
        max-width: 500px;
    }

    .order-icon {
        font-size: 56px;
        margin-bottom: 20px;
    }

    .order-description {
        font-size: 18px;
    }

    .order-social-hint {
        font-size: 17px;
    }
}

/* 響應式：手機 */
@media (max-width: 640px) {
    .order-content {
        padding: 20px 0;
        min-height: 50vh;
    }

    .order-card {
        padding: 40px 30px;
        border-radius: 16px;
    }

    .order-icon {
        font-size: 48px;
        margin-bottom: 20px;
    }

    .order-divider {
        width: 50px;
        margin-bottom: 24px;
    }

    .order-description {
        font-size: 16px;
        line-height: 1.6;
    }

    .order-social-hint {
        font-size: 15px;
        margin-top: 14px;
    }

    .order-social-link {
        padding: 9px 14px;
        font-size: 13px;
    }
}

/* ============================================
   地圖頁面樣式
   ============================================ */

.contact-content {
    padding: 40px 0 60px;
}

/* 地圖頁面的容器需要更大的寬度 */
.container.contact-container {
    max-width: 1600px;
    padding: 0 20px;
}

.contact-header {
    text-align: center;
    margin-bottom: 30px;
}

.contact-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 300;
    color: #3d2817;
    opacity: 0.8;
}

.map-wrapper {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(61, 40, 23, 0.15);
    aspect-ratio: 1 / 1;
    background-color: #f5f3f0;
}

.map-wrapper iframe {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
}

/* 響應式：平板 */
@media (max-width: 968px) {
    .contact-content {
        padding: 30px 0 50px;
    }

    .contact-subtitle {
        font-size: 16px;
    }

    .map-wrapper {
        border-radius: 12px;
    }
}

/* 響應式：手機 */
@media (max-width: 640px) {
    .contact-content {
        padding: 20px 0 40px;
    }

    .contact-header {
        margin-bottom: 30px;
    }

    .contact-subtitle {
        font-size: 15px;
    }

    .map-wrapper {
        border-radius: 8px;
    }
}

/* ============================================
   圖片 Modal（訪客頁面點擊圖片顯示）
   ============================================ */
.image-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.image-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    cursor: pointer;
}

.image-modal__content {
    position: relative;
    background: #ffffff;
    border-radius: 16px;
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 10001;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.image-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    border: none;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: #3d2817;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10002;
    transition: background 0.2s;
}

.image-modal__close:hover {
    background: rgba(0, 0, 0, 0.2);
}

.image-modal__image-wrapper {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 16px 16px 0 0;
}

.image-modal__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-modal__info {
    padding: 24px;
}

.image-modal__name {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    font-weight: 700;
    color: #3d2817;
    margin-bottom: 12px;
}

.image-modal__price {
    font-size: 20px;
    font-weight: 600;
    color: #c8a24a;
    margin-bottom: 16px;
}

.image-modal__price-section {
    margin: 12px 0 16px 0;
}

.image-modal__price-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.image-modal__price-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.image-modal__price-label {
    font-size: 15px;
    color: #8b6f47;
    min-width: 40px;
}

.image-modal__price-value {
    font-size: 16px;
    font-weight: 600;
    color: #c8a24a;
}

.image-modal__description {
    font-size: 16px;
    line-height: 1.6;
    color: #3d2817;
    margin-bottom: 16px;
    white-space: pre-wrap;
}

.image-modal__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ── Modal 標籤（覆蓋差異：稍大字體） ── */
.image-modal__tag {
    font-size: 13px;
    transform: rotate(-1deg);
}

.image-modal__tag:nth-child(even) {
    transform: rotate(1deg);
}

@media (max-width: 768px) {
    .image-modal {
        padding: 10px;
    }
    
    .image-modal__content {
        max-width: 100%;
        border-radius: 12px;
    }
    
    .image-modal__name {
        font-size: 20px;
    }
    
    .image-modal__price {
        font-size: 18px;
    }
    
    .image-modal__description {
        font-size: 14px;
    }
}

