﻿/* ==========================================================================
   Tenpo Page Styles (レスポンシブ完全統合版 / PC 1200px - タブレット 600px - スマホ 599px)
   ========================================================================== */

/* --------------------------------------------------
   1. 店舗パンくずリスト
   -------------------------------------------------- */
.ShopPan_Container {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto 12px auto !important;
    background: linear-gradient(to bottom, #f8f9fa, #ffffff) !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    padding: 6px 12px !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
}

    .ShopPan_Container::-webkit-scrollbar {
        height: 0px !important;
        display: none !important;
    }

    .ShopPan_Container ul {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: auto !important;
    }

.Pan_Item {
    display: inline-flex !important;
    align-items: center !important;
    font-size: 11.5px !important;
    font-weight: bold !important;
    color: #475569 !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

    .Pan_Item a {
        color: #475569 !important;
        text-decoration: none !important;
    }

        .Pan_Item a:hover {
            color: #e11d48 !important;
            text-decoration: underline !important;
        }

.Pan_Separator {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 6px !important;
    color: #94a3b8 !important;
    font-size: 10px !important;
    flex-shrink: 0 !important;
}

    .Pan_Separator::after {
        content: ">" !important;
    }

/* --------------------------------------------------
   2. 見出し・タイトル枠
   -------------------------------------------------- */
.ShopTitleContainer,
.CustomShopTitleContainer,
.CustomShopBasicInfoTitleIndex {
    display: block !important;
    width: 100% !important;
    margin: 0 0 10px 0 !important;
    padding: 10px 14px !important;
    font-size: 15px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    background-color: #f8fafc !important;
    border-left: 5px solid #e11d48 !important;
    line-height: 1.3 !important;
    box-sizing: border-box !important;
    clear: both !important;
}

.CustomShopCommonContentsContainer {
    width: 100% !important;
    padding: 16px !important;
    margin: 0 0 16px 0 !important;
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    clear: both !important;
}

/* --------------------------------------------------
   3. 店舗トップ用 ニュース速報
   -------------------------------------------------- */
.ShopTopNewsBlock {
    margin-bottom: 25px !important;
    width: 100% !important;
}

.ShopTopNewsList {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

.ShopTopNewsCard {
    display: flex !important;
    align-items: stretch !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 14px !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    box-sizing: border-box !important;
}

    .ShopTopNewsCard:hover {
        background: #f8fafc !important;
        border-color: #cbd5e1 !important;
        transform: translateY(-2px) !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    }

.ShopTopNewsThumb {
    flex: 0 0 240px !important;
    width: 240px !important;
    height: 160px !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    background: #e2e8f0 !important;
    margin-right: 16px !important;
}

    .ShopTopNewsThumb img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
    }

.ShopTopNewsBody {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
}

.ShopTopNewsDate {
    font-size: 11px !important;
    color: #64748b !important;
    font-weight: 600 !important;
    margin-bottom: 4px !important;
}

.ShopTopNewsTitle {
    font-size: 15px !important;
    font-weight: bold !important;
    color: #0f172a !important;
    line-height: 1.35 !important;
    margin-bottom: 6px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.ShopTopNewsText {
    font-size: 12.5px !important;
    color: #334155 !important;
    line-height: 1.5 !important;
    word-break: break-all !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* --------------------------------------------------
   4. ピックアップ ＆ オススメキャスト (ShopPickupStaffSection)
   ★300x450縦長比率 ＆ スマホ横スクロール完全対応
   -------------------------------------------------- */
.ShopPickupStaffSection {
    width: 100% !important;
    margin-bottom: 25px !important;
    box-sizing: border-box !important;
}

/* リスト本体（PC: 6列 / スマホ: 横スクロール） */
.ShopPickupStaffList {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 12px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    box-sizing: border-box !important;
}

.ShopPickupStaffListItem {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

    .ShopPickupStaffListItem:hover {
        transform: translateY(-3px) !important;
        box-shadow: 0 6px 16px rgba(230, 0, 92, 0.1) !important;
        border-color: #fbcfe8 !important;
    }

    .ShopPickupStaffListItem a {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        text-decoration: none !important;
        color: inherit !important;
    }

/* ★写真枠: 300 x 450 (1 : 1.5) の縦長比率を完全固定 */
.CustomShopStaffImg {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 300 / 450 !important;
    background-color: #f8fafc !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

    .CustomShopStaffImg img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        transition: transform 0.25s ease !important;
    }

.ShopPickupStaffListItem:hover .CustomShopStaffImg img {
    transform: scale(1.04) !important;
}

/* PICK UP バッジ */
.PickupOverlayBadge {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    z-index: 10 !important;
    background: linear-gradient(135deg, #e6005c, #ff2a70) !important;
    color: #ffffff !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(230, 0, 92, 0.35) !important;
    pointer-events: none !important;
    line-height: 1.2 !important;
}

.CustomShopStaffBody {
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    box-sizing: border-box !important;
    background-color: #ffffff !important;
}

.CustomShopStaffName {
    font-size: 13px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.CustomShopStaffName a{
    color: #1e293b !important;
}

.ShopPickupStaffListItem:hover .CustomShopStaffName {
    color: #e6005c !important;
    text-decoration: underline !important;
}

.CustomShopStaffStatus {
    margin-bottom: 4px !important;
    line-height: 1 !important;
}

.CustomShopStaffProf {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 3px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
}

.ShopStaffMarkIcon {
    display: inline-block !important;
    font-size: 11px !important;
    font-weight: bold !important;
    color: #ffffff !important;
    background-color: #e6005c !important;
    padding: 1px 4px !important;
    border-radius: 2px !important;
    line-height: 1.2 !important;
}


.StatusMarkWorking {
    display: inline-block !important;
    background: #e11d48 !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 1px 5px !important;
    border-radius: 3px !important;
    margin-top: 3px !important;
    line-height: 1.2 !important;
}


/* --------------------------------------------------
   5. 店舗トップ キャストランキング (ShopTopRankingBlock)
   ★300x450縦長比率 ＆ 7列均等 ＆ スマホ横スクロール
   -------------------------------------------------- */
.ShopTopRankingBlock {
    width: 100% !important;
    margin-bottom: 25px !important;
    box-sizing: border-box !important;
}

.ShopTopRankingScrollWrap {
    width: 100% !important;
    box-sizing: border-box !important;
}

.ShopTopRankingRow {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important; /* PC: 7列均等配置 */
    width: 100% !important;
    gap: 8px !important;
    list-style: none !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.ShopTopRankCard {
    position: relative !important;
    width: 100% !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    overflow: hidden !important;
}

    .ShopTopRankCard:hover {
        transform: translateY(-3px) !important;
        box-shadow: 0 6px 14px rgba(230, 0, 92, 0.1) !important;
        border-color: #fbcfe8 !important;
    }

/* ★写真枠: 300 x 450 (1 : 1.5) の縦長比率完全固定 */
.ShopTopRankPhoto {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 300 / 450 !important;
    background-color: #f8fafc !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

    .ShopTopRankPhoto a {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
    }

    .ShopTopRankPhoto img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        transition: transform 0.25s ease !important;
    }

.ShopTopRankCard:hover .ShopTopRankPhoto img {
    transform: scale(1.04) !important;
}

/* 順位バッジ */
.ShopTopRankCrownBadge {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    z-index: 10 !important;
    padding: 2px 7px !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    pointer-events: none !important;
    line-height: 1.1 !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35) !important;
}

.ShopTopRankBadge_1 {
    background: linear-gradient(135deg, #f59e0b, #d97706) !important;
}

.ShopTopRankBadge_2 {
    background: linear-gradient(135deg, #94a3b8, #64748b) !important;
}

.ShopTopRankBadge_3 {
    background: linear-gradient(135deg, #f97316, #c2410c) !important;
}

.ShopTopRankBadge_Normal {
    background: rgba(15, 23, 42, 0.85) !important;
}

.ShopTopRankInfoBody {
    padding: 6px 8px 8px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
}

.ShopTopRankCompName {
    font-size: 12.5px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    margin: 0 0 3px 0 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.ShopTopRankCompName a {
    color: #1e293b !important;
}


.ShopTopRankCard:hover .ShopTopRankCompName a {
    color: #1e293b !important;
    text-decoration: underline !important;
}

.ShopTopRankShuLogo {
    margin-bottom: 4px !important;
    line-height: 1 !important;
}

.ShopTopRankBadgeGroup {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 2px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
}

/* --------------------------------------------------
   6. 店舗トップ 新着ブログ (ShopIndexBlog)
   ★300x450縦長比率 ＆ PC6列 ＆ スマホ横スクロール
   -------------------------------------------------- */
.ShopIndexBlog_Wrapper {
    width: 100% !important;
    margin-bottom: 25px !important;
    box-sizing: border-box !important;
}

.ShopIndexBlog_ScrollWrap {
    width: 100% !important;
    box-sizing: border-box !important;
}

.ShopIndexBlog_Row {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important; /* PC: 6列均等配置 */
    width: 100% !important;
    gap: 12px !important;
    list-style: none !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.ShopIndexBlog_Card {
    position: relative !important;
    width: 100% !important;
    background: #111827 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
}

    .ShopIndexBlog_Card:hover {
        transform: translateY(-3px) !important;
        box-shadow: 0 6px 16px rgba(230, 0, 92, 0.2) !important;
    }

    .ShopIndexBlog_Card a {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        text-decoration: none !important;
        position: relative !important;
    }

/* ★写真枠: 300 x 450 (1 : 1.5) 縦長比率完全固定 */
.ShopIndexBlog_Photo {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 300 / 450 !important;
    overflow: hidden !important;
    background-color: #1e293b !important;
}

    .ShopIndexBlog_Photo img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        transition: transform 0.3s ease !important;
    }

.ShopIndexBlog_Card:hover .ShopIndexBlog_Photo img {
    transform: scale(1.04) !important;
}

.ShopIndexBlog_NewBadge {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    z-index: 10 !important;
    background: linear-gradient(135deg, #ff4b2b, #ff416c) !important;
    color: #ffffff !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    line-height: 1.1 !important;
    box-shadow: 0 2px 6px rgba(255, 65, 108, 0.4) !important;
    pointer-events: none !important;
}

.ShopIndexBlog_OverlayInfo {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    padding: 24px 8px 8px 8px !important;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.5) 60%, transparent 100%) !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    z-index: 5 !important;
    pointer-events: none !important;
}

.ShopIndexBlog_CastDiaryTitle {
    font-size: 11.5px !important;
    color: #ffffff !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important;
}

.ShopIndexBlog_PostTime {
    font-size: 10px !important;
    color: #cbd5e1 !important;
    line-height: 1.1 !important;
}

/* --------------------------------------------------
   7. 店舗女の子一覧 (ShopIndexStaffList)
   ★300x450縦長比率 ＆ PC6列 ＆ スマホ横スクロール
   -------------------------------------------------- */
.ShopIndexStaffList_Wrapper {
    width: 100% !important;
    margin-bottom: 25px !important;
    box-sizing: border-box !important;
}

.ShopIndexStaffList_List {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important; /* PC: 6列均等配置 */
    gap: 12px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    box-sizing: border-box !important;
}

.ShopIndexStaffList_Item {
    width: 100% !important;
    box-sizing: border-box !important;
}

.ShopIndexStaffList_Card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    box-sizing: border-box !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

    .ShopIndexStaffList_Card:hover {
        transform: translateY(-3px) !important;
        box-shadow: 0 6px 16px rgba(230, 0, 92, 0.1) !important;
        border-color: #fbcfe8 !important;
    }

    .ShopIndexStaffList_Card a {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        text-decoration: none !important;
        color: inherit !important;
    }

/* ★写真枠: 300 x 450 (1 : 1.5) 縦長比率完全固定 */
.ShopIndexStaffList_Photo {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 300 / 450 !important;
    background-color: #f8fafc !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

    .ShopIndexStaffList_Photo img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        transition: transform 0.25s ease !important;
    }

.ShopIndexStaffList_Card:hover .ShopIndexStaffList_Photo img {
    transform: scale(1.04) !important;
}

.ShopIndexStaffList_Body {
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    box-sizing: border-box !important;
    background-color: #ffffff !important;
}

.ShopIndexStaffList_Genre {
    font-size: 10px !important;
    color: #64748b !important;
    margin-bottom: 2px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.ShopIndexStaffList_Name {
    font-size: 13px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.ShopIndexStaffList_Card:hover .ShopIndexStaffList_Name {
    color: #e6005c !important;
    text-decoration: underline !important;
}

.ShopIndexStaffList_Status {
    margin-bottom: 4px !important;
    line-height: 1 !important;
}

.ShopIndexStaffList_BadgeGroup {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 3px !important;
    margin-top: auto !important;
    padding-top: 4px !important;
}

.ShopIndexStaffList_PRText {
    font-size: 10.5px !important;
    color: #64748b !important;
    line-height: 1.35 !important;
    margin-top: 4px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* --------------------------------------------------
   8. 営業・イベント予定カレンダー (ShopCalendarBlock)
   -------------------------------------------------- */
.ShopCalendarBlock {
    width: 100% !important;
    margin: 25px 0 !important;
    box-sizing: border-box !important;
}

.ShopCalendarContentWrap {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03) !important;
    box-sizing: border-box !important;
}

.ShopCalendarTbl {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 13px !important;
    box-sizing: border-box !important;
}

.ShopCalRow {
    border-bottom: 1px solid #f1f5f9 !important;
    transition: background-color 0.15s ease !important;
}

    .ShopCalRow:last-child {
        border-bottom: none !important;
    }

    .ShopCalRow:hover {
        background-color: #f8fafc !important;
    }

    .ShopCalRow.is-hidden-row {
        display: none !important;
    }

        .ShopCalRow.is-hidden-row.is-open {
            display: table-row !important;
        }

.ShopCalDateCell {
    width: 30% !important;
    padding: 10px 16px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

.ShopCalRow.weekday_1 .ShopCalDateCell {
    color: #e11d48 !important;
}

.ShopCalRow.weekday_7 .ShopCalDateCell {
    color: #0284c7 !important;
}

.ShopCalStatusCell {
    width: 20% !important;
    padding: 9px 6px !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

.ShopCalBadgeOn {
    display: inline-block !important;
    background-color: #e5004f !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: bold !important;
    padding: 2px 6px !important;
    border-radius: 3px !important;
    line-height: 1.2 !important;
}

.ShopCalBadgeOff {
    display: inline-block !important;
    background-color: #64748b !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: bold !important;
    padding: 2px 6px !important;
    border-radius: 3px !important;
    line-height: 1.2 !important;
}

.ShopCalDetailCell {
    padding: 10px 16px !important;
    color: #334155 !important;
    vertical-align: middle !important;
    line-height: 1.45 !important;
}

.ShopCalStaffCnt {
    display: inline-block !important;
    color: #e5004f !important;
    font-size: 11.5px !important;
    margin-right: 6px !important;
    white-space: nowrap !important;
}

    .ShopCalStaffCnt b {
        font-size: 13.5px !important;
    }

.ShopCalEventTxt {
    display: inline-block !important;
    font-size: 12.5px !important;
    color: #1e293b !important;
}

.ShopCalActionWrap {
    padding: 10px 14px !important;
    background-color: #f8fafc !important;
    border-top: 1px solid #e2e8f0 !important;
    text-align: center !important;
}

.ShopCalExpandBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    font-size: 12px !important;
    font-weight: bold !important;
    padding: 7px 18px !important;
    border-radius: 20px !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
}

    .ShopCalExpandBtn:hover {
        border-color: #e5004f !important;
        color: #e5004f !important;
        background-color: #fffafc !important;
    }

    .ShopCalExpandBtn svg {
        width: 15px !important;
        height: 15px !important;
        fill: currentColor !important;
        transition: transform 0.25s ease !important;
    }

    .ShopCalExpandBtn.is-open svg {
        transform: rotate(180deg) !important;
    }

/* --------------------------------------------------
   9. 店舗トップ もっと見るボタン (統制デザイン)
   -------------------------------------------------- */
.ShopReadMoreContainer {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    margin: 16px 0 8px 0 !important;
    clear: both !important;
}

.ShopReadMoreBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 9px 24px !important;
    font-size: 13.5px !important;
    font-weight: bold !important;
    background: linear-gradient(to bottom, #f02b66, #d80046) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(233, 30, 99, 0.35) !important;
    border: none !important;
    border-radius: 9999px !important;
    text-decoration: none !important;
    transition: opacity 0.2s ease, transform 0.1s ease !important;
    box-sizing: border-box !important;
}

    .ShopReadMoreBtn:hover {
        opacity: 0.92 !important;
        transform: translateY(-1px) !important;
    }

    .ShopReadMoreBtn svg {
        width: 16px !important;
        height: 16px !important;
        fill: #ffffff !important;
        transition: transform 0.2s ease !important;
    }

    .ShopReadMoreBtn:hover svg {
        transform: translateX(3px) !important;
    }


/* ==========================================================================
   10. タブレット対応 (600px - 899px)
   ========================================================================== */
@media screen and (max-width: 899px) and (min-width: 600px) {

    .ShopPickupStaffList,
    .ShopIndexBlog_Row,
    .ShopIndexStaffList_List {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .ShopTopRankingRow {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .ShopTopNewsThumb {
        flex: 0 0 180px !important;
        width: 180px !important;
        height: 120px !important;
    }
}


/* ==========================================================================
   11. ★【スマホ専用 1行横スクロール化 ＆ 300x450比率厳格保持】(599px以下)
   ========================================================================== */
@media screen and (max-width: 599px) {

    .CustomShopCommonContentsContainer {
        padding: 0 !important;
        margin: 0 0 12px 0 !important;
        background-color: transparent !important;
        border: none !important;
    }

    /* ニュース速報：スマホ向けコンパクト化 */
    .ShopTopNewsCard {
        padding: 10px !important;
    }

    .ShopTopNewsThumb {
        flex: 0 0 100px !important;
        width: 100px !important;
        height: 100px !important;
        margin-right: 10px !important;
    }

    .ShopTopNewsTitle {
        font-size: 13px !important;
    }

    .ShopTopNewsText {
        font-size: 11px !important;
        -webkit-line-clamp: 3 !important;
    }

    /* ------------------------------------------------------------------
       ★全キャストモジュール共通：1行横スクロールFlex化 (スワイプ)
       ------------------------------------------------------------------ */
    .ShopPickupStaffList,
    .ShopTopRankingRow,
    .ShopIndexBlog_Row,
    .ShopIndexStaffList_List {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important; /* 折り返しを完全禁止 */
        overflow-x: auto !important; /* 横スクロール対応 */
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x mandatory !important;
        gap: 10px !important;
        padding-bottom: 12px !important;
        padding-right: 12px !important;
        margin: 0 0 10px 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ★カード本体: 幅135pxでスッキリ統一 */
    .ShopPickupStaffListItem,
    .ShopTopRankCard,
    .ShopIndexBlog_Card,
    .ShopIndexStaffList_Item {
        flex: 0 0 135px !important;
        width: 135px !important;
        min-width: 135px !important;
        max-width: 135px !important;
        scroll-snap-align: start !important;
        float: none !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* ★写真枠: 300 x 450 (1 : 1.5) の縦長比率を厳密に保持 (幅135px × 高さ202px) */
    .CustomShopStaffImg,
    .ShopTopRankPhoto,
    .ShopIndexBlog_Photo,
    .ShopIndexStaffList_Photo {
        width: 100% !important;
        height: 202px !important;
        aspect-ratio: 300 / 450 !important; /* 縦長比率完全固定 */
        flex-shrink: 0 !important;
    }

        .CustomShopStaffImg img,
        .ShopTopRankPhoto img,
        .ShopIndexBlog_Photo img,
        .ShopIndexStaffList_Photo img {
            width: 100% !important;
            height: 100% !important;
            object-fit: cover !important;
        }

    /* カードテキスト */
    .CustomShopStaffName,
    .ShopTopRankCompName,
    .ShopIndexStaffList_Name {
        font-size: 12.5px !important;
    }

    /* ★極細横スクロールバー (高さ2.5pxの上品なインジケーター) */
    .ShopPickupStaffList::-webkit-scrollbar,
    .ShopTopRankingRow::-webkit-scrollbar,
    .ShopIndexBlog_Row::-webkit-scrollbar,
    .ShopIndexStaffList_List::-webkit-scrollbar {
        height: 2.5px !important;
        display: block !important;
    }

    .ShopPickupStaffList::-webkit-scrollbar-track,
    .ShopTopRankingRow::-webkit-scrollbar-track,
    .ShopIndexBlog_Row::-webkit-scrollbar-track,
    .ShopIndexStaffList_List::-webkit-scrollbar-track {
        background: #f1f5f9 !important;
    }

    .ShopPickupStaffList::-webkit-scrollbar-thumb,
    .ShopTopRankingRow::-webkit-scrollbar-thumb,
    .ShopIndexBlog_Row::-webkit-scrollbar-thumb,
    .ShopIndexStaffList_List::-webkit-scrollbar-thumb {
        background: #cbd5e1 !important;
        border-radius: 2px !important;
    }
}



/* ==========================================================================
   【完全復旧】BLOCK: Shop Ticket Offer (チケット風・特別割引カード)
   ========================================================================== */
.ShopTicketOfferCard {
    display: flex !important;
    width: 100% !important;
    background-color: #fffafc !important;
    border: 1px solid #e5004f !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    position: relative !important;
    box-shadow: 0 2px 8px rgba(229, 0, 79, 0.08) !important;
    margin: 5px 0 10px 0 !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
}

/* 左側：SPECIAL OFFER帯（幅固定） */
.ShopTicketOfferSide {
    background: linear-gradient(135deg, #f02b66, #d80046) !important;
    color: #ffffff !important;
    width: 54px !important;
    min-width: 54px !important;
    flex: 0 0 54px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 10px 4px !important;
    box-sizing: border-box !important;
    user-select: none !important;
}

    .ShopTicketOfferSide span {
        font-size: 10px !important;
        font-weight: 900 !important;
        letter-spacing: 0.5px !important;
        line-height: 1.25 !important;
        text-transform: uppercase !important;
        display: block !important;
    }

/* 右側メインエリア */
.ShopTicketOfferMain {
    flex: 1 !important;
    min-width: 0 !important;
    padding: 10px 14px !important;
    position: relative !important;
    border-left: 2px dashed #ffd6e0 !important; /* ミシン目ライン */
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
}

    /* チケット上下の半円切り欠き */
    .ShopTicketOfferMain::before,
    .ShopTicketOfferMain::after {
        content: "" !important;
        position: absolute !important;
        left: -6px !important;
        width: 10px !important;
        height: 10px !important;
        background-color: #ffffff !important;
        border: 1px solid #e5004f !important;
        border-radius: 50% !important;
        z-index: 2 !important;
        box-sizing: border-box !important;
    }

    .ShopTicketOfferMain::before {
        top: -6px !important;
    }

    .ShopTicketOfferMain::after {
        bottom: -6px !important;
    }

/* ラベルテキスト */
.ShopTicketOfferLabel {
    margin: 0 0 3px 0 !important;
    font-size: 11px !important;
    color: #e5004f !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
}

/* タイトル見出し（太字赤） */
.ShopTicketOfferTitle {
    margin: 0 !important;
    font-size: 14.5px !important;
    color: #e5004f !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    word-break: break-all !important;
}

/* 下部：詳細説明文 */
.ShopTicketOfferBody {
    margin-top: 8px !important;
    padding-top: 8px !important;
    border-top: 1px dashed #f1f5f9 !important;
    font-size: 12.5px !important;
    color: #334155 !important;
    line-height: 1.6 !important;
    word-break: break-all !important;
}

/* ==========================================================================
   タブレット・PC対応 (600px以上)
   ========================================================================== */
@media screen and (min-width: 600px) {
    .ShopTicketOfferSide {
        width: 65px !important;
        min-width: 65px !important;
        flex: 0 0 65px !important;
        padding: 12px 6px !important;
    }

        .ShopTicketOfferSide span {
            font-size: 11px !important;
        }

    .ShopTicketOfferMain {
        padding: 12px 18px !important;
    }

    .ShopTicketOfferLabel {
        font-size: 12px !important;
    }

    .ShopTicketOfferTitle {
        font-size: 16px !important;
    }

    .ShopTicketOfferBody {
        font-size: 13px !important;
        margin-top: 10px !important;
        padding-top: 10px !important;
    }
}

@media screen and (min-width: 900px) {
    .ShopTicketOfferCard {
        margin: 5px 0 8px 0 !important;
    }
}









/* ==========================================================================
   店舗設備・基本情報スペックテーブル (ShopSpecTable レスポンシブ完全版)
   ========================================================================== */

/* 1. 外枠ブロック */
.ShopSpecBlock {
    width: 100% !important;
    margin: 20px 0 15px 0 !important;
    box-sizing: border-box !important;
    clear: both !important;
}

/* 2. テーブル本体 */
.ShopSpecTable {
    width: 100% !important;
    table-layout: fixed !important; /* テキストあふれを防止 */
    border-collapse: collapse !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
}

    .ShopSpecTable tr {
        border-bottom: 1px solid #f1f5f9 !important;
    }

        .ShopSpecTable tr:last-child {
            border-bottom: none !important;
        }

    /* PC見出しセル (左カラム) */
    .ShopSpecTable th {
        width: 28% !important;
        background-color: #f8fafc !important;
        color: #475569 !important;
        font-weight: bold !important;
        padding: 12px 16px !important;
        text-align: left !important;
        vertical-align: top !important;
        border-right: 1px solid #f1f5f9 !important;
        line-height: 1.5 !important;
        font-size: 13.5px !important;
        box-sizing: border-box !important;
    }

    /* PC内容セル (右カラム) */
    .ShopSpecTable td {
        width: 72% !important;
        color: #1e293b !important;
        padding: 12px 16px !important;
        vertical-align: middle !important;
        line-height: 1.6 !important;
        font-size: 13.5px !important;
        box-sizing: border-box !important;
        word-break: break-all !important;
    }

/* 3. セル内の連絡先リンク (電話・メール) */
.ShopSpecContactList {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

.ShopSpecTelLink,
.ShopSpecMailLink {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: #e11d48 !important;
    text-decoration: none !important;
    font-size: 13.5px !important;
    transition: opacity 0.15s ease !important;
}

    .ShopSpecTelLink:hover,
    .ShopSpecMailLink:hover {
        text-decoration: underline !important;
        opacity: 0.85 !important;
    }

.ShopSpecTelLabel {
    color: #64748b !important;
    font-weight: normal !important;
}

.ShopSpecTelLink strong {
    color: #e11d48 !important;
    font-size: 14.5px !important;
}


/* ==========================================================================
   タブレット ＆ PCワイド対応 (600px以上)
   ========================================================================== */
@media screen and (min-width: 600px) {
    .ShopSpecTable th {
        width: 25% !important;
        padding: 12px 16px !important;
    }

    .ShopSpecTable td {
        width: 75% !important;
        padding: 12px 16px !important;
    }
}

@media screen and (min-width: 900px) {
    .ShopSpecTable th {
        width: 180px !important; /* PCワイド時は左幅をスッキリ固定 */
    }

    .ShopSpecTable td {
        width: calc(100% - 180px) !important;
    }
}


/* ==========================================================================
   ★【スマホ対応】(599px以下: 縦積みブロック化)
   ========================================================================== */
@media screen and (max-width: 599px) {

    .ShopSpecTable,
    .ShopSpecTable tbody,
    .ShopSpecTable tr,
    .ShopSpecTable th,
    .ShopSpecTable td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

        .ShopSpecTable tr {
            border-bottom: 1px solid #e2e8f0 !important;
        }

        /* 1. 見出しセル（薄グレー帯化） */
        .ShopSpecTable th {
            background-color: #f1f5f9 !important;
            color: #334155 !important;
            padding: 8px 12px !important;
            font-size: 12.5px !important;
            font-weight: bold !important;
            border-right: none !important;
            border-bottom: 1px solid #e2e8f0 !important;
        }

        /* 2. 内容セル（白背景・余白調整） */
        .ShopSpecTable td {
            background-color: #ffffff !important;
            padding: 10px 12px !important;
            font-size: 13px !important;
            line-height: 1.55 !important;
        }
}


/* ==========================================================================
   【完全復旧】店舗トップ バースデーモジュール (birthday-module 完全復元版)
   ========================================================================== */

.birthday-module {
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 20px 0 !important;
    box-sizing: border-box !important;
    clear: both !important;
}

    /* タブエリア */
    .birthday-module .birthday-tabs {
        display: flex !important;
        width: 100% !important;
        margin-bottom: 8px !important;
        flex: none !important;
    }

    .birthday-module .birthday-tab {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        text-align: center !important;
        padding: 10px 0 !important;
        font-size: 16px !important;
        font-weight: bold !important;
        background: #ffffff !important;
        color: #333333 !important;
        border: 1px solid #cccccc !important;
        box-sizing: border-box !important;
        cursor: pointer !important;
    }

        .birthday-module .birthday-tab.is-active {
            background: #555555 !important;
            color: #ffffff !important;
            border-color: #555555 !important;
        }

    /* コンテンツ切り替え */
    .birthday-module .birthday-content {
        display: none !important;
        width: 100% !important;
    }

        .birthday-module .birthday-content.is-active {
            display: block !important;
        }

    /* 高さ制御ラッパー (アコーディオン開閉) */
    .birthday-module .birthday-list-wrap {
        width: 100% !important;
        position: relative !important;
    }

        /* 初期（折りたたみ状態: 420px制限） */
        .birthday-module .birthday-list-wrap.is-compact {
            max-height: 420px !important;
            overflow: hidden !important;
        }

        /* 展開（全開状態） */
        .birthday-module .birthday-list-wrap.is-open {
            max-height: none !important;
        }

    /* リストグリッド (2列配置) */
    .birthday-module .birthday-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    /* 個別カードアイテム */
    .birthday-module .birthday-item {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 150px !important;
        padding: 6px !important;
        background: #ffffff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        cursor: pointer !important;
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    }

        .birthday-module .birthday-item:hover {
            transform: translateY(-2px) !important;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
            border-color: #fbcfe8 !important;
        }

    /* サムネイル画像 (100px × 150px = 300x450比率) */
    .birthday-module .birthday-thumb {
        width: 100px !important;
        height: 150px !important;
        margin-right: 8px !important;
        object-fit: cover !important;
        border-radius: 6px !important;
        flex-shrink: 0 !important;
        display: block !important;
    }

    /* テキスト情報エリア */
    .birthday-module .birthday-text {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
        gap: 4px !important;
    }

    /* 店舗名 */
    .birthday-module .birthday-shop {
        font-size: 11.5px !important;
        color: #64748b !important;
        line-height: 1.2 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    /* キャスト名 */
    .birthday-module .birthday-name {
        font-size: 15px !important;
        font-weight: bold !important;
        color: #1e293b !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        line-height: 1.3 !important;
    }

    /* 誕生日 */
    .birthday-module .birthday-date {
        font-size: 13.5px !important;
        font-weight: bold !important;
        color: #e11d48 !important; /* ローズピンク強調 */
        line-height: 1.2 !important;
    }

/* --------------------------------------------------
   もっと見るボタン (開閉トグルボタン)
   -------------------------------------------------- */
.birthday-more-wrap {
    width: 100% !important;
    text-align: center !important;
    margin: 14px 0 6px 0 !important;
    clear: both !important;
}

/* ★指定の統制デザインを完全適用 */
.birthday-more-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 220px !important;
    height: 42px !important;
    padding: 0 24px !important;
    background: linear-gradient(to bottom, #f02b66, #d80046) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(233, 30, 99, 0.35) !important;
    border-radius: 9999px !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease, transform 0.1s ease !important;
    box-sizing: border-box !important;
    border: none !important;
}

    .birthday-more-btn:hover {
        opacity: 0.92 !important;
        transform: translateY(-1px) !important;
    }

    .birthday-more-btn p {
        margin: 0 !important;
        padding: 0 !important;
    }

    .birthday-more-btn span {
        color: #ffffff !important;
        font-size: 13.5px !important;
        font-weight: bold !important;
        text-shadow: none !important;
    }

/* スマホ表示 (599px以下) */
@media screen and (max-width: 599px) {
    .birthday-module .birthday-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .birthday-module .birthday-item {
        height: 120px !important;
        padding: 4px !important;
    }

    .birthday-module .birthday-thumb {
        width: 80px !important;
        height: 120px !important;
        margin-right: 6px !important;
    }

    .birthday-module .birthday-name {
        font-size: 13px !important;
    }

    .birthday-module .birthday-date {
        font-size: 12px !important;
    }

    .birthday-module .birthday-list-wrap.is-compact {
        max-height: 250px !important;
    }

    .birthday-more-btn {
        width: 100% !important;
        max-width: 260px !important;
        height: 38px !important;
    }
}



/* ==========================================================================
   Lightbox拡大モーダル
   ========================================================================== */

/* モーダル背景オーバーレイ (初期状態は完全非表示・クリック無効) */
.SimpleLightboxModal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.88) !important;
    backdrop-filter: blur(4px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 99999 !important; /* 最前面固定 */
    opacity: 0 !important; /* ★初期は完全透明で消す */
    pointer-events: none !important; /* ★クリック判定を無効化 */
    transition: opacity 0.25s ease !important;
    padding: 20px !important;
    box-sizing: border-box !important;
}

    /* ★画像クリックで開いた状態 (.is-open が付与された時のみ表示) */
    .SimpleLightboxModal.is-open {
        opacity: 1 !important;
        pointer-events: auto !important;
    }

/* 拡大画像ラッパー */
.SimpleLightboxImgWrap {
    max-width: 90% !important;
    max-height: 80vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

/* 拡大画像本体 (完全ノーカット・全域表示) */
.SimpleLightboxImg {
    max-width: 100% !important;
    max-height: 80vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 6px !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.6) !important;
    background-color: #000000 !important;
    display: block !important;
}

/* 画像キャプション (写真タイトル) */
.SimpleLightboxCaption {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: bold !important;
    margin-top: 14px !important;
    text-align: center !important;
    max-width: 90% !important;
    line-height: 1.4 !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8) !important;
}

/* ★「×」閉じるボタン (モーダル右上固定) */
.SimpleLightboxClose {
    position: absolute !important;
    top: 15px !important;
    right: 20px !important;
    background: transparent !important;
    border: none !important;
    color: #ffffff !important;
    font-size: 36px !important;
    font-weight: 300 !important;
    cursor: pointer !important;
    line-height: 1 !important;
    padding: 10px !important;
    opacity: 0.85 !important;
    transition: opacity 0.2s ease, transform 0.2s ease !important;
    z-index: 100000 !important;
    outline: none !important;
}

    .SimpleLightboxClose:hover {
        opacity: 1 !important;
        transform: scale(1.1) !important;
    }

/* スマホ表示 (599px以下) */
@media screen and (max-width: 599px) {
    .SimpleLightboxModal {
        padding: 12px !important;
    }

    .SimpleLightboxImgWrap {
        max-width: 95% !important;
        max-height: 75vh !important;
    }

    .SimpleLightboxImg {
        max-height: 75vh !important;
    }

    .SimpleLightboxClose {
        top: 10px !important;
        right: 10px !important;
        font-size: 32px !important;
    }
}




/* ==========================================================================
   常時固定問合せバー
   ========================================================================== */

/* 全画面最下部固定ラッパー */
.ShopRecruitFixedActionWrap,
.ShopFixedActionWrap {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9980 !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-top: 1px solid #e2e8f0 !important;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08) !important;
    padding: 8px 10px !important;
    box-sizing: border-box !important;
    backdrop-filter: blur(6px) !important;
    transition: bottom 0.25s ease !important;
}

/* 内部コンテナ */
.ShopRecruitFixedActionInner,
.ShopFixedActionInner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 650px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* ボタン共通 */
.ShopRecruitActionBtn,
.ShopActionBtn {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    user-select: none !important;
    transition: transform 0.12s ease !important;
}

    .ShopRecruitActionBtn:active,
    .ShopActionBtn:active {
        transform: scale(0.95) !important;
    }

/* SVGアイコン共通 */
.ShopRecruitActionSvg,
.ShopActionSvg {
    width: 18px !important;
    height: 18px !important;
    fill: #ffffff !important;
    display: block !important;
    flex-shrink: 0 !important;
}

/* 1. TELボタン (ブルー) */
.ShopRecruitActionTel,
.ShopActionTel {
    background: linear-gradient(135deg, #0ea5e9, #0284c7) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(2, 132, 199, 0.35) !important;
}

/* 2. LINEボタン (公式グリーン) */
.ShopRecruitActionLine {
    background: linear-gradient(135deg, #06c755, #05b34c) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(6, 199, 85, 0.35) !important;
}

.ShopRecruitLineIconWrap {
    position: relative !important;
    width: 18px !important;
    height: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.ShopRecruitLineLetter {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -55%) !important;
    color: #06c755 !important;
    font-size: 5px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -0.2px !important;
}

/* 3. 地図ボタン (鮮やかオレンジ) */
.ShopActionMap {
    background: linear-gradient(135deg, #f97316, #ea580c) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(234, 88, 12, 0.35) !important;
}

/* 4. Q&Aボタン (スレートグレー) */
.ShopRecruitActionQA {
    background: linear-gradient(135deg, #475569, #334155) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(51, 65, 85, 0.35) !important;
}

/* ==========================================================================
   ★最重要：WEB応募 / MAIL ボタンが「ぼわんぼわん」呼吸するアニメーション
   ========================================================================== */
.ShopRecruitActionWeb,
.ShopActionMail {
    background: linear-gradient(to bottom, #f02b66, #d80046) !important;
    color: #ffffff !important;
    animation: bowanBowanPulse 2.2s infinite ease-in-out !important; /* ぼわんぼわん */
    position: relative !important;
    z-index: 2 !important;
}

/* ぼわんぼわんと膨らみながらピンクの光彩がふわーっと広がる */
@keyframes bowanBowanPulse {
    0% {
        transform: scale(1);
        box-shadow: 0 2px 6px rgba(233, 30, 99, 0.35);
    }

    50% {
        transform: scale(1.05); /* ぐっと大きくなる */
        box-shadow: 0 0 16px rgba(240, 43, 102, 0.75), 0 4px 12px rgba(216, 0, 70, 0.5); /* ぼわんと発光 */
    }

    100% {
        transform: scale(1);
        box-shadow: 0 2px 6px rgba(233, 30, 99, 0.35);
    }
}

/* 無効ボタン（準備中） */
.ShopRecruitActionDisabled,
.ShopActionDisabled {
    background: #e2e8f0 !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    opacity: 0.65 !important;
    animation: none !important; /* 準備中は動かさない */
}

    .ShopRecruitActionDisabled svg,
    .ShopActionDisabled svg {
        fill: #94a3b8 !important;
    }

/* スクロール位置合わせ */
.RecruitQAModule,
#qa,
#recruitqa,
.CustomShopBasicInfoTitleIndex#shopapplication,
.shopcontactform,
.ShopAccessMapBlock,
.ShopMetaItemAddr {
    scroll-margin-top: 110px !important;
}

/* 画面最下部被り防止 */
body {
    padding-bottom: 64px !important;
}

/* ページトップに戻るボタンの底上げ */
#backtotop {
    bottom: 74px !important;
}

/* ==========================================================================
   レスポンシブ対応
   ========================================================================== */

/* スマホ (600px未満) */
@media screen and (max-width: 599px) {
    .ShopRecruitFixedActionWrap,
    .ShopFixedActionWrap {
        padding: 6px 8px !important;
    }

    .ShopRecruitActionBtn,
    .ShopActionBtn {
        height: 42px !important;
        font-size: 12px !important;
        gap: 4px !important;
    }

    .ShopRecruitActionSvg,
    .ShopActionSvg {
        width: 16px !important;
        height: 16px !important;
    }

    .ShopRecruitLineIconWrap {
        width: 16px !important;
        height: 16px !important;
    }

    .ShopRecruitLineLetter {
        font-size: 4.5px !important;
    }
}

/* タブレット (600pxから899px) */
@media screen and (min-width: 600px) and (max-width: 899px) {
    .ShopRecruitFixedActionInner,
    .ShopFixedActionInner {
        max-width: 560px !important;
    }
}

/* PC (900px以上) */
@media screen and (min-width: 900px) {
    .ShopRecruitFixedActionInner,
    .ShopFixedActionInner {
        max-width: 650px !important;
    }

    .ShopRecruitActionBtn:hover,
    .ShopActionBtn:hover {
        opacity: 0.9 !important;
        transform: translateY(-1px) !important;
    }
}








/* ==========================================================================
   店舗イメージ写真 タイルグリッド表示 その他の業種用商品リスト
   PC: 横4列 / タブレット: 横3列 / スマホ: 横2列
   ========================================================================== */

/* グリッド全体枠 (PC: 900px以上 横4列) */
.TenpoInsideGrid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 16px 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* 個別カード */
.TenpoInsideCard {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

    .TenpoInsideCard:hover {
        transform: translateY(-2px) !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
        border-color: #cbd5e1 !important;
    }

/* リンク本体 */
.TenpoInsideLink {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
    color: inherit !important;
    box-sizing: border-box !important;
}

/* 画像枠 (アスペクト比4:3維持) */
.TenpoInsideImgWrap {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    background-color: #f8fafc !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

/* 画像本体 (全域を欠けなく表示) */
.TenpoInsideImg {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    transition: transform 0.2s ease !important;
}

.TenpoInsideCard:hover .TenpoInsideImg {
    transform: scale(1.03) !important;
}

/* タイトル・説明テキスト枠 */
.TenpoInsideTitle {
    padding: 8px 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    line-height: 1.4 !important;
    background: #ffffff !important;
    margin-top: auto !important;
    white-space: pre-line !important;
    word-break: break-word !important;
    box-sizing: border-box !important;
}

/* --------------------------------------------------
   タブレット対応 (600px - 899px: 横3列)
   -------------------------------------------------- */
@media screen and (min-width: 600px) and (max-width: 899px) {
    .TenpoInsideGrid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .TenpoInsideTitle {
        font-size: 11.5px !important;
        padding: 6px 8px !important;
    }
}

/* --------------------------------------------------
   スマホ対応 (600px未満: 横2列)
   -------------------------------------------------- */
@media screen and (max-width: 599px) {
    .TenpoInsideGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin: 12px 0 !important;
    }

    .TenpoInsideTitle {
        font-size: 11px !important;
        padding: 6px 8px !important;
        line-height: 1.35 !important;
    }
}





/* ==========================================================================
   出勤人数表示スタイル（数字強調版）
========================================================================== */

/* 「本日出勤: ○人」バッジ全体 */
.ShopCalendarWorkCnt {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #f8fafc !important; /* 清潔感のある薄グレー背景 */
    border: 1px solid #e2e8f0 !important;
    color: #475569 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    padding: 2px 8px !important;
    border-radius: 4px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

    /* ★数字部分（マゼンタピンク ＆ 太字で視認性MAX） */
    .ShopCalendarWorkCnt .ShopCalendarWorkCntNum {
        font-size: 14px !important;
        font-weight: 900 !important;
        color: #e6005c !important;
        margin: 0 1px 0 2px !important;
        line-height: 1 !important;
    }

/* スマホ対応 (600px未満) */
@media screen and (max-width: 599px) {
    .ShopCalendarWorkCnt {
        font-size: 10px !important;
        padding: 2px 6px !important;
    }

        .ShopCalendarWorkCnt .ShopCalendarWorkCntNum {
            font-size: 12.5px !important;
        }
}



/* ==========================================================================
   BLOCK: Shop Anniversary & Birthday (バースデー・周年情報 完全復旧版)
========================================================================== */

/* 全体外枠コンテナ */
.Shop_Aniv_Container {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 15px auto 25px auto !important;
    box-sizing: border-box !important;
    clear: both !important;
}

/* タイトル見出し */
.Shop_AnivIndexTitleContainer {
    width: 100% !important;
    margin-bottom: 10px !important;
}

.Shop_AnivIndexTitleText {
    font-size: 15px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    padding: 2px 0 4px 10px !important;
    border-left: 4px solid #e5004f !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

/* カード外枠（白背景・角丸・影・枠線） */
.Shop_AnivIndex_frame {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 16px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 14px 18px !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important; /* はみ出し防止 */
}

/* 左側：イベント写真 */
.Shop_AnivIndexImg {
    width: 100px !important;
    min-width: 100px !important;
    flex-shrink: 0 !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    background-color: #f8fafc !important;
}

    .Shop_AnivIndexImg img {
        width: 100% !important;
        height: auto !important;
        display: block !important;
        object-fit: cover !important;
    }

/* 右側：テキスト・リンク情報 */
.Shop_AnivIndexContents {
    flex: 1 !important;
    min-width: 200px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

/* 開催期間（バッジ風） */
.Shop_AnivIndexDate,
.Shop_AnivIndexDateBig {
    display: inline-block !important;
    background-color: #fffafc !important;
    color: #e5004f !important;
    border: 1px solid #ffd6e0 !important;
    padding: 3px 10px !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
    width: fit-content !important;
}

/* イベントタイトルリンク */
.Shop_AnivIndexContentsShopInfo {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.Shop_AnivIndexContentsShopLink a {
    font-size: 14px !important;
    font-weight: bold !important;
    color: #1e293b !important;
    text-decoration: none !important;
    line-height: 1.45 !important;
    transition: color 0.15s ease !important;
}

    .Shop_AnivIndexContentsShopLink a:hover {
        color: #e5004f !important;
        text-decoration: underline !important;
    }

/* 「もっと見る」ボタン（ピル型） */
.AnivToggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: flex-start !important;
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    font-size: 11.5px !important;
    font-weight: bold !important;
    padding: 5px 16px !important;
    border-radius: 20px !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
    user-select: none !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

    .AnivToggle:hover {
        border-color: #e5004f !important;
        color: #e5004f !important;
        background-color: #fffafc !important;
    }

/* ★下部：アコーディオン開閉メッセージ本文（飛び出し完全防止） */
.Shop_AnivIndexContentsMsg {
    width: 100% !important;
    flex: 1 1 100% !important; /* ★強制改行してカード下部に全幅配置 */
    font-size: 13px !important;
    color: #334155 !important;
    line-height: 1.7 !important;
    background-color: #f8fafc !important;
    border-top: 1px dashed #e2e8f0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important; /* ★max-height外の飛び出しを遮断 */
    transition: max-height 0.35s ease, padding 0.35s ease !important;
    word-break: break-all !important;
}

/* ==========================================================================
   スマホ対応 (599px以下)
========================================================================== */
@media screen and (max-width: 599px) {
    .Shop_AnivIndex_frame {
        padding: 12px !important;
        gap: 10px 12px !important;
    }

    .Shop_AnivIndexImg {
        width: 85px !important;
        min-width: 85px !important;
    }

    .Shop_AnivIndexContentsShopLink a {
        font-size: 13px !important;
    }

    .Shop_AnivIndexContentsMsg {
        font-size: 12.5px !important;
    }
}

/* ==========================================================================
   タブレット・PC対応 (600px以上)
========================================================================== */
@media screen and (min-width: 600px) {
    .Shop_AnivIndex_frame {
        padding: 18px 20px !important;
        gap: 16px 20px !important;
    }

    .Shop_AnivIndexImg {
        width: 120px !important;
        min-width: 120px !important;
    }

    .Shop_AnivIndexContentsShopLink a {
        font-size: 15px !important;
    }

    .Shop_AnivIndexContentsMsg {
        font-size: 13.5px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}