:root {
    --jocra-green: #2D5A3D;
    --jocra-green-light: #4A7C59;
    --jocra-green-dark: #1E3D2F;
    --jocra-red: #E63946;
    --jocra-red-dark: #C1121F;
    --jocra-dark: #0A0E13;
    --jocra-gray: #6B7280;
    --jocra-light: #F3F4F6;
}

.pm-page { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; -webkit-font-smoothing: antialiased; overflow-x: clip; }
.container-xl { max-width: 1280px; margin: 0 auto; padding: 0 16px; }

.memberships-section { padding: 40px 0 20px; background: white; }
.membership-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.membership-card {
    display: flex; flex-direction: column; background: var(--jocra-light);
    border: 1px solid rgba(0,0,0,0.04); border-radius: 20px; padding: 28px;
    text-decoration: none; transition: all 0.3s ease;
}
.mem-icon {
    width: 52px; height: 52px; background: rgba(45,90,61,0.1); border-radius: 14px;
    display: flex; align-items: center; justify-content: center; color: var(--jocra-green);
    font-size: 22px; margin-bottom: 20px; transition: all 0.3s ease;
}
.membership-card h4 { font-size: 17px; font-weight: 700; color: var(--jocra-dark); margin-bottom: 6px; line-height: 1.3; }
.mem-abbr { font-size: 13px; font-weight: 600; color: var(--jocra-gray); margin-bottom: 16px; display: block; }
.mem-link { margin-top: auto; font-size: 13px; font-weight: 700; color: inherit; display: flex; align-items: center; gap: 6px; }
.mem-link i { font-size: 11px; }
.pm-note { margin-top: 28px; font-size: 14px; color: var(--jocra-gray); text-align: center; }
.pm-note a { color: inherit; font-weight: 500; text-decoration: none; }

.cta-banner { padding: 60px 0; background: linear-gradient(135deg, var(--jocra-green-dark), var(--jocra-green)); position: relative; overflow: hidden; }
.cta-content { position: relative; z-index: 10; text-align: center; }
.cta-content h2 { font-size: 24px; font-weight: 800; color: white; margin-bottom: 12px; letter-spacing: -0.02em; }
.cta-content h2 .highlight { color: var(--jocra-red); }
.cta-content p { font-size: 15px; color: rgba(255,255,255,0.8); margin-bottom: 28px; }
.cta-actions { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.btn-primary, .btn-outline {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 14px 24px; font-size: 14px; font-weight: 700; border-radius: 10px;
    text-decoration: none; transition: all 0.3s ease; width: 100%; border: 2px solid transparent;
}
.btn-primary { background: var(--jocra-red); color: white; box-shadow: 0 4px 15px rgba(230,57,70,0.3); }
.btn-outline { background: transparent; border-color: rgba(255,255,255,0.3); color: white; }

@media (min-width: 640px) {
    .container-xl { padding: 0 24px; }
    .memberships-section { padding: 60px 0 20px; }
    .membership-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .cta-banner { padding: 80px 0; }
    .cta-content h2 { font-size: 32px; }
    .cta-actions { flex-direction: row; justify-content: center; }
    .btn-primary, .btn-outline { width: auto; min-width: 240px; }
}

@media (min-width: 1024px) {
    .container-xl { padding: 0 32px; }
    .memberships-section { padding: 80px 0 20px; }
    .membership-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .membership-card:hover { transform: translateY(-6px); border-color: rgba(45,90,61,0.15); box-shadow: 0 20px 40px rgba(0,0,0,0.08); }
    .membership-card:hover .mem-icon { background: var(--jocra-green); color: white; }
    .cta-banner { padding: 100px 0; }
    .btn-primary:hover { background: var(--jocra-red-dark); transform: translateY(-2px); }
    .btn-outline:hover { background: white; color: var(--jocra-green); border-color: white; }
}