:root { 
    --gold:#b8901c; 
    --gold-lt:#e8b84b; 
    --dark:#111; 
}

.part-hero {
    background:linear-gradient(160deg,#0a0a0a,#1a1200 50%,#0a0a0a);
    padding:80px 0 60px; 
    text-align:center; 
    position:relative; 
    overflow:hidden;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.part-hero::before {
    content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(184,144,28,.15),transparent 70%);
    pointer-events:none;
}
.eyebrow { font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold); }
.hero-title { font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;color:#fff; }
.gold-bar { width:40px;height:2px;background:var(--gold);border:none;margin:16px auto; }

/* Dynamic Card Styling */
.partner-card {
    background:#fff;
    border-radius:20px;
    border:1px solid #f0f0f0;
    padding:0 0 32px 0;
    text-align:center;
    position:relative;
    overflow:hidden;
    transition:transform .3s, box-shadow .3s, border-color .3s;
    height:100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.partner-card:hover {
    transform:translateY(-8px);
    box-shadow:0 20px 48px rgba(0,0,0,.10);
    border-color:rgba(184,144,28,.2);
}

/* Header de la carte partenaire */
.card-top-header {
    width: 100%;
    background: linear-gradient(135deg, #111111, #1e1708);
    color: #fff;
    padding: 10px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--gold);
}
.card-top-header .header-badge {
    color: var(--gold-lt);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.card-top-header .header-year {
    background: rgba(255, 255, 255, 0.1);
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 10px;
    color: #fff;
}

/* Logo container (Fond blanc garanti) */
.partner-logo-wrap {
    width:110px;
    height:110px;
    border-radius:50%;
    background:#ffffff;
    border:1px solid #eee;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 16px;
    padding: 12px;
    transition:border-color .25s, transform .25s;
}
.partner-card:hover .partner-logo-wrap { 
    border-color:rgba(184,144,28,.4); 
    transform: scale(1.04);
}
.partner-logo-wrap img {
    width:100%;
    height:100%;
    object-fit:contain;
}

.partner-card-body {
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;
    width: 100%;
}

.partner-name { font-weight:700;font-size:1.1rem;color:var(--dark);margin-bottom:4px; }
.partner-role { font-size:12px;color:#888;letter-spacing:.05em;margin-bottom:14px; font-weight: 500; }
.partner-desc { font-size:13px;color:#555;line-height:1.7;margin-bottom:20px; flex-grow: 1; }

.part-tag {
    display:inline-block;
    padding:6px 16px;
    border-radius:20px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.15em;
    text-transform:uppercase;
}
.tag-gold  { background:rgba(184,144,28,.12);color:var(--gold);border:1px solid rgba(184,144,28,.25); }
.tag-dark  { background:#f5f5f5;color:#555;border:1px solid #e5e5e5; }

/* Join Section */
.join-section {
    background:linear-gradient(135deg,#111,#1a1200);
    border-radius:20px;
    padding:48px 32px;
    text-align:center;
    margin-top:48px;
}