/* --------------------------------------------------------------------------
   HOME DE FORTNITE (ft-home.php) — tienda diaria, noticias y overrides propios
   --------------------------------------------------------------------------
   Extraido del <style> inline. Lo compartido con val-home vive ahora en
   components/game-home.css.
   -------------------------------------------------------------------------- */

/* ── Layout principal (igual que Valorant) ──────────────────── */
.home-main {
    max-width: var(--page-max);
    margin: 0 auto;
    padding: var(--sp-11) var(--sp-9) 80px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-11);
    align-items: start;
}

.search-result { margin-top: var(--sp-7); display: none; }

.search-result-card:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(157,77,255,.2); }

.search-error { margin-top: var(--sp-5); font-size: var(--fs-sm); color: #ff6b7a; display: none; }

.recent-searches { margin-top: var(--sp-8); }

/* ── Panel derecho: tienda diaria ────────────────────────── */
.home-right-panel { display: flex; flex-direction: column; gap: 28px; }

.shop-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-6); }

.shop-section-title { font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--text-muted); text-transform: uppercase; letter-spacing: .08em; }

.shop-source-badge { font-size: var(--fs-2xs); font-weight: var(--fw-semibold); color: var(--text-muted); background: var(--bg-input); padding: 3px 8px; border-radius: var(--radius-sm); }

.shop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-3);
    max-height: 640px;
    overflow-y: auto;
}

.shop-card {
    background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md);
    overflow: hidden; transition: border-color var(--t-fast), transform var(--t-fast);
}

.shop-card:hover { border-color: var(--brand-accent); transform: translateY(-2px); }

.shop-card-img {
    width: 100%; aspect-ratio: 1/1; object-fit: cover;
    background: linear-gradient(135deg, var(--bg-input), #241033);
    display: block;
}

.shop-card-img-placeholder {
    width: 100%; aspect-ratio: 1/1;
    background: linear-gradient(135deg, var(--bg-input), #241033);
    display: flex; align-items: center; justify-content: center; font-size: var(--fs-2xl);
}

.shop-card-body { padding: var(--sp-2) var(--sp-3); }

.shop-card-name { font-size: var(--fs-2xs); font-weight: var(--fw-bold); color: var(--text-white); line-height: 1.25; margin-bottom: 3px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.shop-card-meta { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-1); }

.shop-card-rarity { font-size: var(--fs-3xs); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .03em; color: var(--brand-accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.shop-card-price { font-size: var(--fs-2xs); font-weight: var(--fw-bold); color: var(--text-gray); white-space: nowrap; flex-shrink: 0; }

.shop-card-price::before { content: '💰 '; }

.shop-loading { text-align: center; padding: var(--sp-11); color: var(--text-muted); font-size: var(--fs-md); grid-column: 1 / -1; }

.shop-error   { text-align: center; padding: var(--sp-9); color: var(--text-muted); font-size: var(--fs-sm); grid-column: 1 / -1; }

/* ── Sección noticias (debajo, ancho completo) ───────────── */
.news-divider {
    border: none; border-top: 1px solid var(--border);
    max-width: var(--page-max); margin: 0 auto var(--sp-11);
}

.home-news-section { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--sp-9) 80px; }

.news-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-6); }

.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-6);
}

.news-card {
    background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
    overflow: hidden; transition: border-color var(--t-fast), transform var(--t-fast);
}

.news-card:hover { border-color: var(--brand-accent); transform: translateY(-2px); }

.news-card-img {
    width: 100%; height: 140px; object-fit: cover;
    background: linear-gradient(135deg, var(--bg-input), #241033);
    display: block;
}

.news-card-img-placeholder {
    width: 100%; height: 140px;
    background: linear-gradient(135deg, var(--bg-input), #241033);
    display: flex; align-items: center; justify-content: center; font-size: var(--fs-5xl);
}

.news-card-body { padding: var(--sp-6) var(--sp-7); }

.news-card-tag { font-size: var(--fs-3xs); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .07em; color: var(--brand-accent); margin-bottom: var(--sp-2); }

.news-card-title { font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--text-white); line-height: 1.35; margin-bottom: var(--sp-2); }

.news-card-desc { font-size: var(--fs-sm); color: var(--text-gray); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.news-loading { text-align: center; padding: var(--sp-11); color: var(--text-muted); font-size: var(--fs-md); grid-column: 1 / -1; }

.news-error   { text-align: center; padding: var(--sp-9); color: var(--text-muted); font-size: var(--fs-sm); grid-column: 1 / -1; }

/* Responsive */
@media (max-width: 800px) {
    .home-main { grid-template-columns: 1fr; gap: var(--sp-10); }
    .home-search-panel { position: static; }
    .shop-grid { max-height: none; }
    .news-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .shop-grid { grid-template-columns: repeat(2, 1fr); }
    .news-grid { grid-template-columns: 1fr; }
}
