/* ── Archive — Programs ─────────────────────────────────────────────────── */

.programs {
    padding: 60px 0 80px;
}

.programs__header {
    text-align:    center;
    margin-bottom: 48px;
}

.programs__heading {
    color:          var(--color-primary);
    font-size:      42px;
    text-transform: uppercase;
    margin:         0 0 12px;
}

.programs__subtitle {
    color:     var(--color-muted);
    font-size: 16px;
    margin:    0;
}

.programs__wrp {
    display:         flex;
    flex-wrap:       wrap;
    gap:             24px;
    justify-content: center;
}

.programs__empty {
    width:      100%;
    text-align: center;
    color:      var(--color-muted);
    font-size:  16px;
    padding:    60px 0;
}

/* ── Program Card ──────────────────────────────────────────────────────── */

.program-card {
    width:           100%;
    max-width:       45%;
    background:      #ffffff;
    border:          1px solid var(--color-border);
    border-radius:   16px;
    overflow:        hidden;
    text-decoration: none;
    color:           inherit;
    display:         flex;
    flex-direction:  column;
    position:        relative;
    transition:      transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.program-card:hover {
    transform:    translateY(-4px);
    border-color: var(--color-secondary);
    box-shadow:   0 8px 24px rgba(10, 37, 30, 0.1);
}

.program-card__media {
    overflow:   hidden;
    min-height: 180px;
}

.program-card__image {
    display:    block;
    width:      100%;
    height:     100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.program-card:hover .program-card__image {
    transform: scale(1.03);
}

.program-card__body {
    padding:     16px 20px 20px;
    display:     flex;
    align-items: center;
    gap:         12px;
}

.program-card__title {
    color:       var(--color-primary);
    font-size:   20px;
    font-weight: 700;
    margin:      0;
    flex:        1;
}

.program-card__excerpt {
    display: none;
}

.program-card__link {
    display:     inline-flex;
    align-items: center;
    gap:         6px;
    color:       var(--color-secondary);
    font-size:   14px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    transition:  gap var(--transition);
}
.program-card:hover .program-card__link {
    gap: 10px;
}

/* ── Single — Program ──────────────────────────────────────────────────── */

/* Shared buttons */
.program-btn {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    gap:             8px;
    font-family:     var(--font-body);
    font-size:       15px;
    font-weight:     600;
    border-radius:   10px;
    padding:         15px 28px;
    cursor:          pointer;
    text-decoration: none;
    transition:      background var(--transition), color var(--transition), border-color var(--transition);
}
.program-btn--primary {
    background: var(--color-secondary);
    color:      #ffffff;
    border:     0;
}
.program-btn--primary:hover { background: #9a7250; }
.program-btn--ghost {
    background: transparent;
    color:      var(--color-primary);
    border:     1px solid var(--color-border);
}
.program-btn--ghost:hover {
    border-color: var(--color-secondary);
    color:        var(--color-secondary);
}

/* Hero — light band, centered */
.program-hero {
    background: var(--color-bg-alt);
    padding:    28px 0 32px;
    text-align: center;
}

.program-hero__breadcrumbs {
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-wrap:       wrap;
    gap:             8px;
    font-size:       14px;
    color:           var(--color-muted);
    margin-bottom:   40px;
}
.program-hero__breadcrumbs a {
    color:           var(--color-muted);
    text-decoration: none;
    transition:      color var(--transition);
}
.program-hero__breadcrumbs a:hover { color: var(--color-secondary); }

.program-hero__eyebrow {
    display:        inline-block;
    color:          var(--color-secondary);
    font-size:      13px;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom:  16px;
}

.program-hero__title {
    color:          var(--color-primary);
    font-size:      52px;
    line-height:    1.05;
    text-transform: uppercase;
    margin:         0 auto 0;
    max-width:      720px;
}

.program-hero__actions {
    display:         flex;
    flex-wrap:       wrap;
    gap:             12px;
    justify-content: center;
}

/* Content — centered reading column */
.program-content {
    padding: 32px 0 80px;
}

.program-content__inner {
    max-width:   820px;
    margin:      0 auto;
    font-size:   16px;
    line-height: 1.8;
    color:       var(--color-text);
}

.program-content__featured {
    margin:        0 0 40px;
    border-radius: 16px;
    overflow:      hidden;
    background:    var(--color-bg-alt);
}
.program-content__featured-img {
    display:    block;
    width:      100%;
    height:     auto;
    object-fit: cover;
}

.program-content__inner > *:first-child { margin-top: 0; }

.program-content__inner p { margin: 0 0 18px; }

.program-content__inner h2,
.program-content__inner h3 {
    color:          var(--color-primary);
    font-size:      24px;
    text-transform: uppercase;
    margin:         40px 0 16px;
}

.program-content__inner ul,
.program-content__inner ol {
    margin:        0 0 24px;
    padding:       20px 24px 20px 44px;
    background:    var(--color-bg-alt);
    border-left:   3px solid var(--color-secondary);
    border-radius: 0 12px 12px 0;
}
.program-content__inner li {
    margin-bottom: 10px;
    line-height:   1.6;
}
.program-content__inner li:last-child { margin-bottom: 0; }
.program-content__inner li::marker { color: var(--color-secondary); }
.program-content__inner strong { color: var(--color-primary); }
.program-content__inner a {
    color:           var(--color-secondary);
    text-decoration: underline;
}
.program-content__inner img {
    border-radius: 12px;
}

/* PDF download — end of content */
.program-content__pdf {
    margin-top:  40px;
    padding-top: 32px;
    border-top:  1px solid var(--color-border);
    text-align:  center;
}

/* Inline form under content — mirrors cta__form styling */
.program-content__form {
    margin-top:      48px;
    display:         flex;
    justify-content: center;
}

.program-content__form .cta-form-inline {
    width:         100%;
    max-width:     500px;
    background:    var(--color-primary);
    border:        1px solid var(--color-secondary);
    border-radius: 20px;
    padding:       32px 40px;
    text-align:    center;
}

.program-content__form .cta-form-inline__title {
    color:          #ffffff;
    font-family:    var(--font-heading);
    font-size:      24px;
    text-transform: uppercase;
    margin:         0;
}
.program-content__form .cta-form-inline__subtitle {
    color: rgba(255, 255, 255, 0.6);
}

/* JetForm layout */
.program-content__form .wp-block-group {
    width:          100%;
    display:        flex;
    flex-direction: column;
    gap:            12px;
}
.program-content__form .wp-block-group > * { width: 100%; }
.program-content__form .jet-form-builder__field-wrap { width: 100%; }

.program-content__form .field-type-checkbox-field {
    flex:       none;
    width:      100%;
    margin-top: 4px;
}
.program-content__form .field-type-checkbox-field label {
    display:     flex;
    align-items: flex-start;
    gap:         8px;
    color:       rgba(255, 255, 255, 0.5);
    font-size:   13px;
    line-height: 1.4;
    cursor:      pointer;
}
.program-content__form .field-type-checkbox-field input[type="checkbox"] {
    width:        16px;
    height:       16px;
    flex-shrink:  0;
    margin-top:   2px;
    accent-color: var(--color-secondary);
}
.program-content__form .jet-form-builder__field-label {
    font-size: 14px;
    color:     rgba(255, 255, 255, 0.6);
}
.program-content__form .field-type-checkbox-field .jet-form-builder__field-label.for-checkbox :checked + span::before {
    border-color:     var(--color-secondary);
    background-color: var(--color-secondary);
}
.program-content__form .jet-form-builder__action-button {
    text-align:      center !important;
    justify-content: center !important;
    display:         flex !important;
}
.program-content__form .jet-form-builder__submit-wrap { flex: none; }

.program-content__form input[type="text"],
.program-content__form input[type="tel"],
.program-content__form input[type="email"],
.program-content__form textarea,
.program-content__form .jet-form-builder__field {
    width:         100%;
    background:    #ffffff !important;
    border:        1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 8px;
    padding:       14px 16px;
    color:         var(--color-primary) !important;
    font-family:   var(--font-body);
    font-size:     15px;
    margin-bottom: 0;
    transition:    border-color var(--transition);
}
.program-content__form input::placeholder,
.program-content__form textarea::placeholder,
.program-content__form .jet-form-builder__field::placeholder,
.program-content__form .jet-form-builder__field::-webkit-input-placeholder,
.program-content__form .jet-form-builder__field::-moz-placeholder {
    color:   var(--color-muted) !important;
    opacity: 1 !important;
}
.program-content__form input:focus,
.program-content__form textarea:focus {
    outline:      none;
    border-color: var(--color-secondary);
}

.program-content__form button[type="submit"],
.program-content__form input[type="submit"],
.program-content__form .jet-form-builder__submit {
    width:          100%;
    background:     var(--color-secondary);
    color:          #ffffff;
    border:         0;
    border-radius:  8px;
    padding:        8px 32px;
    font-family:    var(--font-body);
    font-size:      15px;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor:         pointer;
    transition:     background var(--transition);
}
.program-content__form button[type="submit"]:hover,
.program-content__form input[type="submit"]:hover,
.program-content__form .jet-form-builder__submit:hover {
    background: #9a7250;
}

/* ── Tablet ────────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .programs__heading { font-size: 34px; }

    .program-hero__title { font-size: 40px; }
    .program-content { padding: 28px 0 60px; }
    .program-content__form .cta-form-inline { padding: 28px 32px; }
}

/* ── Mobile ────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .programs { padding: 40px 0 48px; }
    .programs__heading { font-size: 26px; }
    .programs__header { margin-bottom: 32px; }

    .program-card { max-width: 100%; }
    .program-card__body { padding: 12px 16px 16px; }
    .program-card__title { font-size: 16px; }

    .program-hero { padding: 20px 0 24px; }
    .program-hero__breadcrumbs { font-size: 13px; margin-bottom: 20px; }
    .program-hero__eyebrow { margin-bottom: 8px; font-size: 12px; }
    .program-hero__title { font-size: 28px; margin: 0; }

    .program-content { padding: 24px 0 40px; }
    .program-content__inner { font-size: 15px; }
    .program-content__featured { margin-bottom: 24px; }
    .program-content__inner h2,
    .program-content__inner h3 { font-size: 20px; margin: 28px 0 12px; }
    .program-content__pdf { margin-top: 28px; padding-top: 24px; }
    .program-content__pdf .program-btn { width: 100%; }
    .program-content__form { margin-top: 32px; }
    .program-content__form .cta-form-inline {
        padding:       24px 20px;
        border-radius: 16px;
    }
    .program-content__form .cta-form-inline__title { font-size: 20px; }
}
