/*
 * 招聘样式 - 列表、详情、筛选栏
 *
 * @project  BlazeHibachi - Premium Mobile Hibachi Catering
 * @company  YiShangQi (易商企)
 * @copyright Copyright (c) 2026 YiShangQi. All rights reserved.
 */

/* ===== Base ===== */
.page-partner .site-main {
    flex: 1 0 auto;
}
.page-partner .site-footer {
    flex-shrink: 0;
}

/* ===== Hero (与Hibachi首页一致) ===== */
.hero {
    position: relative;
    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FFFBF5;
    overflow: hidden;
}
.hero-overlay {
    position: absolute;
    inset: 0;
    background: var(--hero-bg, url('/assets/images/hero-bg.jpg')) center/cover no-repeat;
    opacity: var(--hero-opacity, 0.1);
    z-index: 0;
}
.hero-aurora { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.hero-aurora .orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.6;
}
.orb-1 { width:500px; height:500px; background: radial-gradient(circle, rgba(251,146,60,0.5) 0%, transparent 70%); top:-10%; right:10%; animation: partnerOrb1 12s ease-in-out infinite; }
.orb-2 { width:600px; height:600px; background: radial-gradient(circle, rgba(234,88,12,0.35) 0%, transparent 70%); bottom:-15%; left:5%; animation: partnerOrb2 15s ease-in-out infinite; }
.orb-3 { width:400px; height:400px; background: radial-gradient(circle, rgba(251,191,36,0.4) 0%, transparent 70%); top:30%; left:40%; animation: partnerOrb3 10s ease-in-out infinite; }
.orb-4 { width:350px; height:350px; background: radial-gradient(circle, rgba(254,215,170,0.5) 0%, transparent 70%); top:10%; left:15%; animation: partnerOrb4 18s ease-in-out infinite; }

@keyframes partnerOrb1 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-30px,20px) scale(1.1)} }
@keyframes partnerOrb2 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(40px,-15px) scale(1.05)} }
@keyframes partnerOrb3 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-20px,-25px) scale(1.15)} }
@keyframes partnerOrb4 { 0%,100%{transform:translate(0,0) scale(1)} 40%{transform:translate(25px,30px) scale(1.12)} 80%{transform:translate(-15px,-20px) scale(0.95)} }

.hero-content {
    position: relative;
    z-index: 1;
    padding: calc(var(--header-height) + var(--space-6)) 0 var(--space-6);
    max-width: 800px;
    text-align: center;
    margin: 0 auto;
}
.hero-title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    margin-bottom: var(--space-4);
    line-height: var(--lh-heading);
    font-weight: var(--fw-bold);
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, var(--color-primary) 0%, #F59E0B 50%, var(--color-primary-hover) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.hero-subtitle {
    color: var(--gray-600);
    font-size: var(--fs-md);
    line-height: var(--lh-base);
    margin-bottom: var(--space-6);
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}
.hero-actions {
    display: flex;
    gap: var(--space-4);
    justify-content: center;
    flex-wrap: wrap;
}

/* ===== Filter Bar ===== */
.filter-bar {
    display: flex;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}
.filter-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}
.filter-label {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    color: var(--gray-600);
}
.filter-bar .form-select {
    width: auto;
    min-width: 140px;
}

/* ===== Loading / Empty ===== */
.loading-state, .empty-state {
    text-align: center;
    padding: var(--space-7) var(--space-4);
    color: var(--gray-400);
}
.loading-state i, .empty-state i {
    font-size: var(--fs-xxl);
    margin-bottom: var(--space-3);
    display: block;
    opacity: 0.5;
}
.loading-state p, .empty-state p {
    font-size: var(--fs-sm);
    margin: 0;
}

/* ===== Job Card ===== */
.job-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-5);
    background: var(--white);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    margin-bottom: var(--space-3);
    text-decoration: none;
    color: inherit;
    transition: all var(--transition);
}
.job-card:hover {
    box-shadow: var(--shadow-sm);
    border-color: var(--color-primary);
}
.job-card-info { flex: 1; }
.job-card-info h3 {
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
    color: var(--gray-900);
    margin: 0 0 var(--space-2);
}
.job-card-meta {
    display: flex;
    gap: var(--space-4);
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    flex-wrap: wrap;
}
.job-card-meta span { display: flex; align-items: center; gap: var(--space-1); }
.job-card-meta i { color: var(--color-primary); font-size: var(--fs-xs); }
.job-card-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
    flex-shrink: 0;
}
.job-card-type {
    padding: var(--space-1) var(--space-3);
    background: var(--amber-50);
    color: var(--color-primary);
    border-radius: var(--border-radius);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    white-space: nowrap;
}
.job-card-salary {
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    color: var(--gray-700);
}

/* ===== Pagination ===== */
.pagination {
    display: flex;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
}
.pagination button {
    min-width: 36px;
    height: 36px;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    background: var(--white);
    cursor: pointer;
    font-size: var(--fs-sm);
    color: var(--gray-700);
    transition: all var(--transition-fast);
}
.pagination button:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.pagination button.active {
    background: var(--color-primary);
    color: var(--white);
    border-color: var(--color-primary);
}

/* ===== Job Detail ===== */
.job-detail-header { margin-bottom: var(--space-5); }
.job-detail-meta {
    display: flex;
    gap: var(--space-4);
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    flex-wrap: wrap;
}
.job-detail-meta span { display: flex; align-items: center; gap: var(--space-1); }
.job-detail-meta i { color: var(--color-primary); }
.job-detail-section { margin-bottom: var(--space-5); }
.job-detail-section h3 {
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
    color: var(--gray-800);
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-border);
}
.job-detail-section p {
    font-size: var(--fs-sm);
    line-height: var(--lh-base);
    color: var(--gray-600);
}
.job-detail-section ul {
    list-style: none;
    padding: 0;
}
.job-detail-section li {
    font-size: var(--fs-sm);
    color: var(--gray-600);
    line-height: var(--lh-base);
    padding: var(--space-2) 0;
    padding-left: var(--space-4);
    position: relative;
}
.job-detail-section li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-primary);
    transform: translateY(-50%);
}
.job-apply-btn { margin-top: var(--space-5); }

/* ===== Partner Sections ===== */
.partner-intro {
    background: var(--color-bg);
    padding: var(--space-7) 0;
}
.partner-intro-content {
    max-width: 800px;
    margin: 0 auto;
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    color: var(--color-text);
    text-align: center;
}
.partner-contact-bar {
    background: var(--color-bg-alt);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
}
.partner-contact-row {
    display: flex;
    justify-content: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    font-size: var(--fs-sm);
    color: var(--color-text-light);
}
.partner-contact-row i {
    color: var(--color-primary);
    margin-right: var(--space-1);
}
.partner-promo-card {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    background: linear-gradient(135deg, var(--amber-50), var(--white));
    border: 1px solid var(--amber-200);
    border-radius: var(--border-radius-lg);
    padding: var(--space-5);
}
.partner-promo-img {
    flex: 0 0 180px;
    border-radius: var(--border-radius);
    overflow: hidden;
}
.partner-promo-img img { width: 100%; display: block; }
.partner-promo-text { flex: 1; }
.partner-promo-text h3 {
    font-size: var(--fs-md);
    font-weight: var(--fw-bold);
    color: var(--color-secondary);
    margin-bottom: var(--space-2);
}
.partner-promo-text p {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: var(--lh-base);
    margin: 0;
}
.partner-promo-action { flex-shrink: 0; }

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .job-card { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
    .job-card-right { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
    .job-card-meta { flex-wrap: wrap; }
    .job-detail-meta { flex-wrap: wrap; gap: var(--space-2); }
    .filter-bar { flex-direction: column; }
    .filter-bar .form-select { width: 100%; }
    .partner-promo-card { flex-direction: column; text-align: center; }
    .partner-promo-img { flex: 0 0 auto; max-width: 100%; }
}
