/**
 * Cross-Site Posts - Frontend Styles
 */

:root {
    --csp-primary-color: #0073aa;
    --csp-text-color: #333;
    --csp-text-muted: #666;
    --csp-border-color: #e0e0e0;
    --csp-bg-color: #fff;
    --csp-shadow-none: none;
    --csp-shadow-small: 0 2px 4px rgba(0, 0, 0, 0.08);
    --csp-shadow-large: 0 8px 16px rgba(0, 0, 0, 0.12);
    --csp-border-radius: 8px;
    --csp-font-family: inherit;
    --csp-title-size: 1.25rem;
    --csp-title-weight: 600;
    --csp-meta-size: 0.875rem;
    --csp-transition: all 0.3s ease;
    --csp-gap: 24px;
    --csp-card-padding: 20px;
}

.csp-wrapper {
    font-family: var(--csp-font-family);
    color: var(--csp-text-color);
    box-sizing: border-box;
}

.csp-wrapper *,
.csp-wrapper *::before,
.csp-wrapper *::after {
    box-sizing: border-box;
}

.csp-layout-grid .csp-items,
.csp-layout-list .csp-items {
    display: grid;
    gap: var(--csp-gap);
}

.csp-layout-grid.csp-cols-1 .csp-items { grid-template-columns: 1fr; }
.csp-layout-grid.csp-cols-2 .csp-items { grid-template-columns: repeat(2, 1fr); }
.csp-layout-grid.csp-cols-3 .csp-items { grid-template-columns: repeat(3, 1fr); }
.csp-layout-grid.csp-cols-4 .csp-items { grid-template-columns: repeat(4, 1fr); }

.csp-layout-list .csp-items { grid-template-columns: 1fr; }
.csp-layout-list .csp-card { display: flex; flex-direction: row; }
.csp-layout-list .csp-card-image { flex: 0 0 200px; height: 150px; }
.csp-layout-list .csp-card-body { flex: 1; }

@media (max-width: 992px) {
    .csp-layout-grid.csp-cols-4 .csp-items,
    .csp-layout-grid.csp-cols-3 .csp-items {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .csp-layout-grid .csp-items { grid-template-columns: 1fr !important; }
    .csp-layout-list .csp-card { flex-direction: column; }
    .csp-layout-list .csp-card-image { flex: 0 0 auto; height: 200px; }
}

.csp-card {
    background: var(--csp-bg-color);
    border-radius: var(--csp-border-radius);
    overflow: hidden;
    transition: var(--csp-transition);
    border: 1px solid var(--csp-border-color);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.csp-shadow-none .csp-card { box-shadow: var(--csp-shadow-none); }
.csp-shadow-small .csp-card { box-shadow: var(--csp-shadow-small); }
.csp-shadow-large .csp-card { box-shadow: var(--csp-shadow-large); }

.csp-hover-lift .csp-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--csp-shadow-large);
}

.csp-hover-zoom .csp-card:hover .csp-card-image img {
    transform: scale(1.08);
}

.csp-hover-none .csp-card:hover { transform: none; }

.csp-card-image {
    position: relative;
    overflow: hidden;
    height: 200px;
    background: #f5f5f5;
}

.csp-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--csp-transition);
    display: block;
}

.csp-card-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.csp-badge-new {
    position: absolute;
    top: 12px;
    right: 12px;
    background: var(--csp-primary-color);
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
}

.csp-card-body {
    padding: var(--csp-card-padding);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.csp-card-categories { margin-bottom: 10px; }

.csp-category {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--csp-primary-color);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    margin-right: 8px;
}

.csp-category:hover { text-decoration: underline; }

.csp-card-title {
    margin: 0 0 12px 0;
    font-size: var(--csp-title-size);
    font-weight: var(--csp-title-weight);
    line-height: 1.4;
}

.csp-card-title a {
    color: var(--csp-text-color);
    text-decoration: none;
    transition: var(--csp-transition);
}

.csp-card-title a:hover { color: var(--csp-primary-color); }

.csp-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 12px;
    font-size: var(--csp-meta-size);
    color: var(--csp-text-muted);
}

.csp-meta-date,
.csp-meta-author {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.csp-meta-date svg,
.csp-meta-author svg { flex-shrink: 0; }

.csp-card-excerpt { margin-bottom: 16px; flex: 1; }

.csp-card-excerpt p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--csp-text-muted);
}

.csp-read-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--csp-primary-color);
    text-decoration: none;
    transition: var(--csp-transition);
    margin-top: auto;
}

.csp-read-more:hover { gap: 10px; }
.csp-read-more svg { transition: var(--csp-transition); }

.csp-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--csp-border-color);
}

.csp-filter-btn {
    background: transparent;
    border: 1px solid var(--csp-border-color);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--csp-text-color);
    cursor: pointer;
    transition: var(--csp-transition);
}

.csp-filter-btn:hover {
    border-color: var(--csp-primary-color);
    color: var(--csp-primary-color);
}

.csp-filter-btn.active {
    background: var(--csp-primary-color);
    border-color: var(--csp-primary-color);
    color: #fff;
}

.csp-view-all { text-align: center; margin-top: 32px; }

.csp-btn-view-all {
    display: inline-block;
    background: var(--csp-primary-color);
    color: #fff;
    padding: 12px 32px;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: var(--csp-transition);
}

.csp-btn-view-all:hover {
    background: #005a87;
    color: #fff;
}

.csp-carousel { position: relative; padding: 0 40px; }
.csp-carousel .swiper-wrapper { align-items: stretch; }
.csp-carousel .swiper-slide { height: auto; display: flex; }
.csp-carousel .swiper-slide .csp-card { width: 100%; }

.csp-carousel .swiper-button-prev,
.csp-carousel .swiper-button-next {
    color: var(--csp-primary-color);
    width: 36px;
    height: 36px;
    background: #fff;
    border-radius: 50%;
    box-shadow: var(--csp-shadow-small);
}

.csp-carousel .swiper-button-prev::after,
.csp-carousel .swiper-button-next::after {
    font-size: 16px;
    font-weight: bold;
}

.csp-carousel .swiper-pagination-bullet { background: var(--csp-primary-color); }

.csp-loading {
    text-align: center;
    padding: 40px;
    color: var(--csp-text-muted);
}

.csp-loading::before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid var(--csp-border-color);
    border-top-color: var(--csp-primary-color);
    border-radius: 50%;
    animation: csp-spin 0.8s linear infinite;
    margin-bottom: 12px;
}

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

.csp-empty,
.csp-error {
    text-align: center;
    padding: 40px;
    color: var(--csp-text-muted);
    font-style: italic;
}

.csp-error {
    color: #d63638;
    background: #fef1f1;
    border: 1px solid #fccfcf;
    border-radius: var(--csp-border-radius);
}

.csp-widget .csp-card { border: none; box-shadow: none; }
.csp-widget .csp-card-body { padding: 10px 0; }
.csp-widget .csp-card-title { font-size: 1rem; }

.csp-card a:focus,
.csp-filter-btn:focus,
.csp-btn-view-all:focus {
    outline: 2px solid var(--csp-primary-color);
    outline-offset: 2px;
}

.csp-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}