/**
 * CocoFit タブスタイル
 * v0デザイン準拠
 */

/* ==========================================================================
   基本タブスタイル
   ========================================================================== */

.cocofit-tabs-list {
    display: flex;
    gap: var(--cocofit-space-1);
    background: var(--cocofit-bg);
    padding: var(--cocofit-space-1);
    border-radius: var(--cocofit-radius-lg);
}

.cocofit-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--cocofit-space-2) var(--cocofit-space-4);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--cocofit-gray-600);
    background: transparent;
    border: none;
    border-radius: var(--cocofit-radius-md);
    cursor: pointer;
    transition: all var(--cocofit-transition);
    white-space: nowrap;
}

.cocofit-tab:hover {
    color: var(--cocofit-gray-900);
    background: var(--cocofit-gray-100);
}

.cocofit-tab.is-active {
    color: var(--cocofit-brand);
    background: var(--cocofit-brand-light);
    font-weight: 600;
}

/* ==========================================================================
   ランキングページ: 5列グリッドタブ (エリア選択)
   ========================================================================== */

.cocofit-station-content .cocofit-tabs-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    width: 100%;
    gap: 0;
    padding: 0;
    background: var(--cocofit-gray-100);
    border-radius: var(--cocofit-radius-lg);
    overflow: hidden;
}

.cocofit-station-content .cocofit-tab {
    position: relative;
    border-radius: 0;
    padding: var(--cocofit-space-3) var(--cocofit-space-2);
    font-size: 0.8125rem;
    text-align: center;
}

/* テキストと ::before を同一セルに重ねて中央揃えを維持（レイアウトシフト防止はそのまま） */
.cocofit-station-content .cocofit-tab[data-label] {
    display: inline-grid;
    place-items: center;
}

/* フォントウェイト変化時のレイアウトシフト防止（detail.design） */
.cocofit-station-content .cocofit-tab[data-label]::before {
    content: attr(data-label);
    grid-area: 1/1;
    display: block;
    font-weight: 600;
    height: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

.cocofit-station-content .cocofit-tab.is-active {
    background: var(--cocofit-bg);
    box-shadow: var(--cocofit-shadow-sm);
}

/* モバイル時も4タブ均等配置 */
@media (max-width: 767px) {
    .cocofit-station-content .cocofit-tabs-list {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        overflow: hidden;
    }

    .cocofit-station-content .cocofit-tab {
        min-width: 0;
        padding: var(--cocofit-space-2) 0.25rem;
        font-size: 0.75rem;
    }
}

/* ==========================================================================
   店舗詳細ページ: スティッキータブ (下線インジケーター)
   ========================================================================== */

.cocofit-store-detail .cocofit-tabs-list {
    position: sticky;
    top: var(--cocofit-filterbar-height);
    z-index: 30;
    display: flex;
    gap: 0;
    padding: 0;
    background: var(--cocofit-bg);
    border-bottom: 1px solid var(--cocofit-border);
    border-radius: 0;
    margin: 0 calc(-1 * var(--cocofit-space-4));
    padding: 0 var(--cocofit-space-4);
}

@media (min-width: 768px) {
    .cocofit-store-detail .cocofit-tabs-list {
        margin: 0 calc(-1 * var(--cocofit-space-6));
        padding: 0 var(--cocofit-space-6);
    }
}

.cocofit-store-detail .cocofit-tab {
    position: relative;
    padding: var(--cocofit-space-4) var(--cocofit-space-4);
    border-radius: 0;
    color: var(--cocofit-gray-500);
    background: transparent;
}

.cocofit-store-detail .cocofit-tab::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: transparent;
    transition: background var(--cocofit-transition);
}

.cocofit-store-detail .cocofit-tab:hover {
    color: var(--cocofit-gray-700);
    background: transparent;
}

.cocofit-store-detail .cocofit-tab.is-active {
    color: var(--cocofit-brand);
    background: transparent;
}

.cocofit-store-detail .cocofit-tab.is-active::after {
    background: var(--cocofit-brand);
}

/* ==========================================================================
   タブパネル
   ========================================================================== */

.cocofit-tab-panel {
    display: none;
}

.cocofit-tab-panel.is-active {
    display: block;
}

/* アニメーション付きタブパネル */
.cocofit-tab-panel--animated {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 200ms ease, transform 200ms ease;
}

.cocofit-tab-panel--animated.is-active {
    opacity: 1;
    transform: translateY(0);
}

/* スタガーアニメーション（ランキングカードが順番に表示） */
@keyframes cocofit-card-enter {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card {
    animation: cocofit-card-enter 0.35s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(1) { animation-delay: 0ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(2) { animation-delay: 60ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(3) { animation-delay: 120ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(4) { animation-delay: 180ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(5) { animation-delay: 240ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(6) { animation-delay: 300ms; }
.cocofit-tab-panel--animated.is-active .cocofit-ranking-list > .cocofit-ranking-card:nth-child(n+7) { animation-delay: 360ms; }

/* ==========================================================================
   タブコンテナ
   ========================================================================== */

.cocofit-tabs {
    width: 100%;
}

.cocofit-tabs-header {
    margin-bottom: var(--cocofit-space-4);
}

@media (min-width: 768px) {
    .cocofit-tabs-header {
        margin-bottom: var(--cocofit-space-6);
    }
}
