/* ========================================
   NEWS AFRICAINES - Widget Styles
   ======================================== */

/* ========================================
   LIST WIDGETS - Base
   ======================================== */
.widget-list { display: flex; flex-direction: column; gap: 0; }

.widget-list--cols-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }

.widget-list-item {
    display: flex; gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
    align-items: flex-start;
}
.widget-list--cols-2 .widget-list-item { border-bottom: 1px solid var(--color-border); }

.widget-list-item-image { flex: 0 0 80px; }
.widget-list-item-image img {
    width: 80px; height: 60px; object-fit: cover;
    border-radius: 4px;
}

.widget-list-item-content { flex: 1; min-width: 0; }

.widget-list-category {
    font-size: 0.7rem; font-weight: 600;
    color: var(--color-primary); text-transform: uppercase;
    letter-spacing: 0.5px;
}
.widget-list-category a { color: inherit; }

.widget-list-title {
    font-size: 0.9rem; font-weight: 600; line-height: 1.3;
    margin: 4px 0;
}
.widget-list-title a { color: var(--color-text); }
.widget-list-title a:hover { color: var(--color-primary); }

.widget-list-date { font-size: 0.75rem; color: var(--color-text-muted); }

/* ========================================
   LIST: Images + Title (compact)
   ======================================== */
.widget-list--style-images .widget-list-item { gap: 10px; }
.widget-list--style-images.widget-list--cols-2 { gap: 0 16px; }

.widget-list-item--compact { gap: 10px; }
.widget-list-item-thumb { flex: 0 0 60px; }
.widget-list-item-thumb img {
    width: 60px; height: 45px; object-fit: cover;
    border-radius: 4px;
}
.widget-list--style-images .widget-list-title { font-size: 0.85rem; margin: 0; }

/* ========================================
   LIST: Numbered
   ======================================== */
.widget-list--numbered .widget-list-item--numbered { gap: 12px; }
.widget-list--numbered.widget-list--cols-2 { gap: 0 20px; }

.widget-list-number {
    flex: 0 0 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    background: var(--color-primary);
    color: #fff; font-size: 0.85rem; font-weight: 700;
    border-radius: 4px;
}

.widget-list--numbered .widget-list-category { margin-bottom: 2px; }
.widget-list--numbered .widget-list-title { font-size: 0.88rem; margin: 0; }

/* ========================================
   GRID WIDGETS - Base
   ======================================== */
.widget-grid { display: grid; gap: 16px; }
.widget-grid--cols-1 { grid-template-columns: 1fr; }
.widget-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }

.widget-grid-item {
    background: var(--color-white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: box-shadow var(--transition), transform var(--transition);
}
.widget-grid-item:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

.widget-grid-item-image { aspect-ratio: 16/10; overflow: hidden; }
.widget-grid-item-image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 0.3s ease;
}
.widget-grid-item:hover .widget-grid-item-image img { transform: scale(1.05); }

.widget-grid-title {
    font-size: 0.9rem; font-weight: 600; line-height: 1.3;
    padding: 12px 14px;
}
.widget-grid-title a { color: var(--color-text); }
.widget-grid-title a:hover { color: var(--color-primary); }

/* ========================================
   GRID: Image + Category + Title (overlay)
   ======================================== */
.widget-grid--with-category .widget-grid-item--overlay { position: relative; }

.widget-grid--with-category .widget-grid-item-image::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 60%;
    background: linear-gradient(transparent, rgba(0,0,0,0.75));
    pointer-events: none;
}

.widget-grid--with-category .widget-grid-item-content {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 16px;
    z-index: 1;
}

.widget-grid--with-category .widget-grid-category {
    color: var(--color-primary);
    font-size: 0.7rem; font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.widget-grid--with-category .widget-grid-category a { color: inherit; }

.widget-grid--with-category .widget-grid-title {
    color: #fff; font-size: 0.95rem;
    padding: 6px 0 0;
}

/* ========================================
   WIDGET SIDEBAR STYLES
   ======================================== */
.widget {
    background: var(--color-white);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: var(--shadow);
}
.widget .widget-title {
    font-size: 1rem; font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-primary);
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
    .widget-list--cols-2 { grid-template-columns: 1fr; }
    .widget-grid--cols-2 { grid-template-columns: 1fr; }
}
