/* ==========================================================================
   alumni-horizon.css — Modern Horizon-inspired theme for the public alumni portal
   Scoped under .alumni-horizon so it never leaks to admin or landing pages.
   ========================================================================== */

/* ── Design Tokens ─────────────────────────────────────────────────────── */
.alumni-horizon {
    /* Official Australia Awards primary palette (page 10 brand guidelines) */
    --aa-navy: #003150;
    --aa-teal: #00759A;
    --aa-aqua: #3CB6CE;
    --aa-sky: #C1E2E5;
    --aa-sand: #A79E70;
    --aa-cream: #C8B18B;
    --aa-light-grey: #E0E1DD;
    --aa-dark-grey: #747678;
    --aa-white: #FFFFFF;

    /* Semantic aliases */
    --aa-text: var(--aa-navy);
    --aa-text-muted: var(--aa-dark-grey);
    --aa-bg: #F4F8F9;
    --aa-card-bg: var(--aa-white);
    --aa-primary: var(--aa-teal);
    --aa-primary-hover: #00657A;
    --aa-secondary: var(--aa-aqua);
    --aa-danger: #B91C1C;
    --aa-danger-hover: #991B1B;
    --aa-success: #2E7D32;
    --aa-success-bg: #E8F5E9;
    --aa-error: #C62828;
    --aa-error-bg: #FFEBEE;
    --aa-info: var(--aa-teal);
    --aa-info-bg: #E0F2F7;

    /* Shadows (tinted from navy) */
    --aa-shadow-sm: 0 2px 8px rgba(0, 49, 80, 0.06);
    --aa-shadow-md: 0 4px 16px rgba(0, 49, 80, 0.08);
    --aa-shadow-lg: 0 8px 30px rgba(0, 49, 80, 0.10);
    --aa-shadow-focus: 0 0 0 4px rgba(60, 182, 206, 0.18);

    /* Spacing */
    --aa-space-xs: 0.25rem;
    --aa-space-sm: 0.5rem;
    --aa-space-md: 1rem;
    --aa-space-lg: 1.5rem;
    --aa-space-xl: 2rem;
    --aa-space-2xl: 3rem;

    /* Typography */
    --aa-font-heading: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --aa-font-body: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --aa-radius-sm: 8px;
    --aa-radius-md: 12px;
    --aa-radius-lg: 16px;
    --aa-radius-xl: 20px;
    --aa-radius-full: 9999px;
    --aa-transition: 200ms ease;

    /* Layout */
    --aa-header-height: 76px;
    --aa-wrap-max-width: 980px;
}

/* ── Base / Layout ───────────────────────────────────────────────────── */
.alumni-horizon body {
    font-family: var(--aa-font-body);
    color: var(--aa-text);
    background-color: var(--aa-bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.alumni-horizon h1,
.alumni-horizon h2,
.alumni-horizon h3,
.alumni-horizon h4,
.alumni-horizon h5,
.alumni-horizon h6 {
    font-family: var(--aa-font-heading);
    font-weight: 700;
    color: var(--aa-navy);
    line-height: 1.25;
    margin-top: 0;
}

.alumni-horizon a {
    color: var(--aa-teal);
    text-decoration: none;
    transition: color var(--aa-transition);
}

.alumni-horizon a:hover {
    color: var(--aa-navy);
    text-decoration: underline;
}

.alumni-horizon .alumni-wrap {
    max-width: var(--aa-wrap-max-width);
    margin: 0 auto;
    padding: calc(var(--aa-header-height) + var(--aa-space-xl)) var(--aa-space-md) var(--aa-space-2xl);
}

@media (min-width: 768px) {
    .alumni-horizon .alumni-wrap {
        padding-left: var(--aa-space-xl);
        padding-right: var(--aa-space-xl);
    }
}

/* ── Header ────────────────────────────────────────────────────────────── */
.alumni-horizon .aaa-alumni-header,
.alumni-horizon .header {
    background-color: var(--aa-navy);
    color: var(--aa-white);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--aa-header-height);
    z-index: 1000;
    box-shadow: var(--aa-shadow-md);
    display: flex;
    align-items: center;
}

.alumni-horizon .aaa-alumni-header .header-content,
.alumni-horizon .header .header-content {
    width: 100%;
    max-width: var(--aa-wrap-max-width);
    margin: 0 auto;
    padding: 0 var(--aa-space-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.alumni-horizon .aaa-alumni-header .header-left,
.alumni-horizon .header .header-left {
    display: flex;
    align-items: center;
    gap: var(--aa-space-lg);
    width: 100%;
    justify-content: space-between;
}

.alumni-horizon .aaa-alumni-header .logo,
.alumni-horizon .header .logo {
    height: 52px;
    width: auto;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.alumni-horizon .aaa-alumni-nav,
.alumni-horizon .horizontal-menu {
    display: flex;
    align-items: center;
    gap: var(--aa-space-sm);
}

.alumni-horizon .aaa-alumni-nav a,
.alumni-horizon .horizontal-menu a,
.alumni-horizon .aaa-alumni-nav .menu-item,
.alumni-horizon .horizontal-menu .menu-item {
    display: inline-flex;
    align-items: center;
    padding: var(--aa-space-sm) var(--aa-space-md);
    border-radius: var(--aa-radius-md);
    color: var(--aa-navy);
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color var(--aa-transition), color var(--aa-transition);
    text-decoration: none;
}

.alumni-horizon .aaa-alumni-nav a:hover,
.alumni-horizon .horizontal-menu a:hover,
.alumni-horizon .aaa-alumni-nav .menu-item:hover,
.alumni-horizon .horizontal-menu .menu-item:hover {
    background-color: transparent;
    color: var(--aa-teal);
    text-decoration: none;
}

.alumni-horizon .aaa-alumni-nav a.logout,
.alumni-horizon .horizontal-menu a.logout {
    background-color: var(--aa-navy);
    color: var(--aa-white);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.25);
}

.alumni-horizon .aaa-alumni-nav a.logout:hover,
.alumni-horizon .horizontal-menu a.logout:hover {
    background-color: #AA272F;
    color: var(--aa-white);
    box-shadow: none;
}

/* Mobile header */
.alumni-horizon .aaa-alumni-header-toggle {
    display: none;
    background: none;
    border: none;
    color: var(--aa-white);
    cursor: pointer;
    padding: var(--aa-space-sm);
}

@media (max-width: 767px) {
    .alumni-horizon .aaa-alumni-header-toggle {
        display: inline-flex;
    }

    .alumni-horizon .aaa-alumni-nav,
    .alumni-horizon .horizontal-menu {
        display: none;
        position: absolute;
        top: var(--aa-header-height);
        left: 0;
        right: 0;
        flex-direction: column;
        background-color: var(--aa-white);
        padding: var(--aa-space-md);
        gap: var(--aa-space-xs);
        box-shadow: var(--aa-shadow-lg);
        border-bottom-left-radius: var(--aa-radius-md);
        border-bottom-right-radius: var(--aa-radius-md);
    }

    .alumni-horizon .aaa-alumni-nav.is-open,
    .alumni-horizon .horizontal-menu.is-open {
        display: flex;
    }

    .alumni-horizon .aaa-alumni-nav a,
    .alumni-horizon .horizontal-menu a,
    .alumni-horizon .aaa-alumni-nav .menu-item,
    .alumni-horizon .horizontal-menu .menu-item {
        width: 100%;
        justify-content: center;
        color: var(--aa-navy);
    }

    .alumni-horizon .aaa-alumni-nav a:hover,
    .alumni-horizon .horizontal-menu a:hover,
    .alumni-horizon .aaa-alumni-nav .menu-item:hover,
    .alumni-horizon .horizontal-menu .menu-item:hover {
        background-color: var(--aa-sky);
        color: var(--aa-navy);
    }

    .alumni-horizon .aaa-alumni-nav a.logout,
    .alumni-horizon .horizontal-menu a.logout {
        background-color: var(--aa-navy);
        color: var(--aa-white);
        box-shadow: none;
    }

    .alumni-horizon .aaa-alumni-nav a.logout:hover,
    .alumni-horizon .horizontal-menu a.logout:hover {
        background-color: #AA272F;
        color: var(--aa-white);
    }
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.alumni-horizon .aaa-footer,
.alumni-horizon .aaa-alumni-footer {
    background-color: var(--aa-navy);
    color: rgba(255, 255, 255, 0.85);
    text-align: center;
    padding: var(--aa-space-md);
    font-size: 0.9rem;
    margin-top: auto;
}

/* ── Page Header ───────────────────────────────────────────────────────── */
.alumni-horizon .alumni-page-header,
.alumni-horizon .admin-header {
    margin-bottom: var(--aa-space-lg);
}

.alumni-horizon .alumni-page-title,
.alumni-horizon .admin-title {
    font-family: var(--aa-font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--aa-navy);
    margin: 0 0 var(--aa-space-sm);
    padding-bottom: var(--aa-space-sm);
    border-bottom: 3px solid var(--aa-aqua);
}

.alumni-horizon .alumni-page-subtitle,
.alumni-horizon .admin-subtitle {
    color: var(--aa-text-muted);
    font-size: 0.95rem;
    margin: 0;
}

/* ── Cards ─────────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-card,
.alumni-horizon .alumni-card--narrow {
    background-color: var(--aa-card-bg);
    border-radius: var(--aa-radius-xl);
    box-shadow: var(--aa-shadow-md);
    padding: var(--aa-space-lg);
    margin-bottom: var(--aa-space-lg);
}

@media (min-width: 768px) {
    .alumni-horizon .alumni-card,
    .alumni-horizon .alumni-card--narrow {
        padding: var(--aa-space-xl);
    }
}

.alumni-horizon .alumni-card--narrow {
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}

.alumni-horizon .alumni-card--transparent {
    background-color: transparent;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
}

.alumni-horizon .alumni-card__title {
    font-family: var(--aa-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--aa-navy);
    margin: 0 0 var(--aa-space-sm);
}

.alumni-horizon .alumni-card__description {
    color: var(--aa-text-muted);
    margin: 0 0 var(--aa-space-lg);
}

/* ── Forms ─────────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-form {
    display: flex;
    flex-direction: column;
    gap: var(--aa-space-md);
}

.alumni-horizon .alumni-form__section {
    border: none;
    padding: 0;
    margin: 0 0 var(--aa-space-lg);
}

.alumni-horizon .alumni-form__section-title {
    font-family: var(--aa-font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--aa-navy);
    margin: 0 0 var(--aa-space-md);
    padding-bottom: var(--aa-space-sm);
    border-bottom: 2px solid var(--aa-sky);
}

.alumni-horizon .alumni-form__row,
.alumni-horizon .form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--aa-space-md);
    margin-bottom: var(--aa-space-md);
}

@media (min-width: 640px) {
    .alumni-horizon .alumni-form__row,
    .alumni-horizon .form-row {
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    }
}

.alumni-horizon .alumni-field,
.alumni-horizon .form-group {
    display: flex;
    flex-direction: column;
    gap: var(--aa-space-xs);
    margin-bottom: var(--aa-space-sm);
}

.alumni-horizon .alumni-label,
.alumni-horizon .form-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--aa-navy);
}

.alumni-horizon .alumni-label .optional,
.alumni-horizon .form-label small {
    color: var(--aa-text-muted);
    font-weight: 500;
}

.alumni-horizon .alumni-label-required::after,
.alumni-horizon .form-label-required::after {
    content: ' *';
    color: var(--aa-error);
}

.alumni-horizon .alumni-input,
.alumni-horizon .alumni-select,
.alumni-horizon .alumni-textarea,
.alumni-horizon .form-input,
.alumni-horizon input[type="text"],
.alumni-horizon input[type="email"],
.alumni-horizon input[type="password"],
.alumni-horizon input[type="tel"],
.alumni-horizon input[type="file"],
.alumni-horizon select,
.alumni-horizon textarea {
    width: 100%;
    padding: 0.85rem var(--aa-space-md);
    font-family: var(--aa-font-body);
    font-size: 1rem;
    color: var(--aa-text);
    background-color: #F0F6F7;
    border: 1px solid rgb(204, 204, 204);
    border-radius: var(--aa-radius-md);
    transition: background-color var(--aa-transition), border-color var(--aa-transition), box-shadow var(--aa-transition);
}

.alumni-horizon .alumni-input:hover,
.alumni-horizon .alumni-select:hover,
.alumni-horizon .alumni-textarea:hover,
.alumni-horizon .form-input:hover,
.alumni-horizon input:hover,
.alumni-horizon select:hover,
.alumni-horizon textarea:hover {
    background-color: #E8F1F3;
    border-color: rgb(170, 170, 170);
}

.alumni-horizon .alumni-input:focus,
.alumni-horizon .alumni-select:focus,
.alumni-horizon .alumni-textarea:focus,
.alumni-horizon .form-input:focus,
.alumni-horizon input:focus,
.alumni-horizon select:focus,
.alumni-horizon textarea:focus {
    outline: none;
    background-color: var(--aa-white);
    border-color: var(--aa-aqua);
    border-width: 2px;
    box-shadow: var(--aa-shadow-focus);
}

.alumni-horizon .alumni-input::placeholder,
.alumni-horizon .alumni-textarea::placeholder,
.alumni-horizon input::placeholder,
.alumni-horizon textarea::placeholder {
    color: var(--aa-dark-grey);
    opacity: 0.7;
}

/* Ensure form selects and their options are always readable: navy text on
   white/light background regardless of OS dark mode. */
.alumni-horizon select,
.alumni-horizon select option,
.alumni-horizon select optgroup,
.alumni-horizon datalist option {
    color-scheme: only light;
    color: var(--aa-navy) !important;
    background-color: var(--aa-white) !important;
}

.alumni-horizon select option:hover,
.alumni-horizon select option:focus,
.alumni-horizon select option:checked {
    color: var(--aa-white) !important;
    background-color: var(--aa-teal) !important;
}

.alumni-horizon .alumni-file-hint {
    font-size: 0.85rem;
    color: var(--aa-text-muted);
    margin-top: var(--aa-space-xs);
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-btn,
.alumni-horizon .admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--aa-space-sm);
    padding: 0.85rem var(--aa-space-lg);
    font-family: var(--aa-font-body);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: var(--aa-radius-md);
    cursor: pointer;
    transition: background-color var(--aa-transition), border-color var(--aa-transition), color var(--aa-transition), transform var(--aa-transition), box-shadow var(--aa-transition);
}

.alumni-horizon .alumni-btn:hover,
.alumni-horizon .admin-btn:hover {
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--aa-shadow-sm);
}

.alumni-horizon .alumni-btn:active,
.alumni-horizon .admin-btn:active {
    transform: translateY(0);
}

.alumni-horizon .alumni-btn:focus-visible,
.alumni-horizon .admin-btn:focus-visible {
    outline: none;
    box-shadow: var(--aa-shadow-focus);
}

.alumni-horizon .alumni-btn--primary,
.alumni-horizon .alumni-btn,
.alumni-horizon .admin-btn {
    background-color: var(--aa-primary);
    color: var(--aa-white);
    border-color: var(--aa-primary);
}

.alumni-horizon .alumni-btn--primary:hover,
.alumni-horizon .alumni-btn:hover,
.alumni-horizon .admin-btn:hover {
    background-color: var(--aa-primary-hover);
    border-color: var(--aa-primary-hover);
    color: var(--aa-white);
}

.alumni-horizon .alumni-btn--secondary,
.alumni-horizon .admin-btn--secondary {
    background-color: var(--aa-white);
    color: var(--aa-primary);
    border-color: var(--aa-primary);
}

.alumni-horizon .alumni-btn--secondary:hover,
.alumni-horizon .admin-btn--secondary:hover {
    background-color: #E8F4F7;
    color: var(--aa-navy);
    border-color: var(--aa-navy);
}

.alumni-horizon .alumni-btn--danger,
.alumni-horizon .admin-btn--danger {
    background-color: var(--aa-danger);
    color: var(--aa-white);
    border-color: var(--aa-danger);
}

.alumni-horizon .alumni-btn--danger:hover,
.alumni-horizon .admin-btn--danger:hover {
    background-color: var(--aa-danger-hover);
    border-color: var(--aa-danger-hover);
}

.alumni-horizon .alumni-btn--ghost {
    background-color: transparent;
    color: var(--aa-primary);
    border-color: transparent;
}

.alumni-horizon .alumni-btn--ghost:hover {
    background-color: #E8F4F7;
    color: var(--aa-navy);
}

.alumni-horizon .alumni-btn--block,
.alumni-horizon .alumni-btn--block-mobile,
.alumni-horizon .admin-btn--block,
.alumni-horizon .admin-btn--block-mobile {
    width: 100%;
}

.alumni-horizon .alumni-btn--sm,
.alumni-horizon .admin-btn--sm {
    padding: 0.5rem var(--aa-space-md);
    font-size: 0.875rem;
}

/* ── Alerts ────────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-alert,
.alumni-horizon .admin-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--aa-space-sm);
    padding: var(--aa-space-md);
    border-radius: var(--aa-radius-md);
    font-size: 0.95rem;
    font-weight: 500;
    margin-bottom: var(--aa-space-lg);
    border-left: 4px solid transparent;
}

.alumni-horizon .alumni-alert__icon,
.alumni-horizon .admin-alert-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--aa-radius-full);
    font-weight: 700;
    flex-shrink: 0;
}

.alumni-horizon .alumni-alert--success,
.alumni-horizon .admin-alert--success {
    background-color: var(--aa-success-bg);
    color: #1B5E20;
    border-left-color: var(--aa-success);
}

.alumni-horizon .alumni-alert--success .alumni-alert__icon,
.alumni-horizon .admin-alert--success .admin-alert-icon {
    background-color: var(--aa-success);
    color: var(--aa-white);
}

.alumni-horizon .alumni-alert--error,
.alumni-horizon .admin-alert--error {
    background-color: var(--aa-error-bg);
    color: #B71C1C;
    border-left-color: var(--aa-error);
}

.alumni-horizon .alumni-alert--error .alumni-alert__icon,
.alumni-horizon .admin-alert--error .admin-alert-icon {
    background-color: var(--aa-error);
    color: var(--aa-white);
}

.alumni-horizon .alumni-alert--info,
.alumni-horizon .admin-alert--info {
    background-color: var(--aa-info-bg);
    color: var(--aa-navy);
    border-left-color: var(--aa-info);
}

.alumni-horizon .alumni-alert--info .alumni-alert__icon,
.alumni-horizon .admin-alert--info .admin-alert-icon {
    background-color: var(--aa-info);
    color: var(--aa-white);
}

/* ── Auth-specific helpers ─────────────────────────────────────────────── */
.alumni-horizon .alumni-auth-links {
    display: flex;
    justify-content: center;
    gap: var(--aa-space-md);
    flex-wrap: wrap;
    margin-top: var(--aa-space-lg);
    font-size: 0.95rem;
    font-weight: 600;
}

.alumni-horizon .alumni-auth-links a {
    color: var(--aa-teal);
}

.alumni-horizon .alumni-auth-links a:hover {
    color: var(--aa-navy);
}

.alumni-horizon .alumni-auth-eyebrow {
    text-align: center;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--aa-aqua);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--aa-space-sm);
}

.alumni-horizon .alumni-auth-title {
    text-align: center;
    font-size: 1.75rem;
    margin-bottom: var(--aa-space-md);
}

.alumni-horizon .alumni-auth-subtitle {
    text-align: center;
    color: var(--aa-text-muted);
    margin-bottom: var(--aa-space-lg);
}

/* ── Avatar / Profile ──────────────────────────────────────────────────── */
.alumni-horizon .alumni-avatar {
    width: 120px;
    height: 120px;
    border-radius: var(--aa-radius-full);
    object-fit: cover;
    border: 4px solid var(--aa-white);
    box-shadow: var(--aa-shadow-sm);
}

.alumni-horizon .alumni-avatar--xl {
    width: 140px;
    height: 140px;
}

.alumni-horizon .alumni-avatar-placeholder {
    width: 120px;
    height: 120px;
    border-radius: var(--aa-radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--aa-sky), var(--aa-light-grey));
    color: var(--aa-dark-grey);
    font-weight: 600;
    font-size: 0.85rem;
    text-align: center;
}

.alumni-horizon .alumni-profile-header {
    display: flex;
    align-items: center;
    gap: var(--aa-space-lg);
    flex-wrap: wrap;
    margin-bottom: var(--aa-space-lg);
}

.alumni-horizon .alumni-profile-name {
    font-size: 1.5rem;
    margin: 0;
}

.alumni-horizon .alumni-profile-meta {
    color: var(--aa-text-muted);
    font-size: 0.95rem;
    margin: var(--aa-space-xs) 0 0;
}

/* Clickable profile photo — opens a full-size modal */
.alumni-horizon .alumni-photo-trigger {
    position: relative;
    display: inline-block;
    padding: 0;
    border: 0;
    border-radius: var(--aa-radius-full);
    background: transparent;
    cursor: zoom-in;
    line-height: 0;
}

.alumni-horizon .alumni-photo-trigger:focus-visible {
    outline: 3px solid var(--aa-aqua);
    outline-offset: 3px;
}

.alumni-horizon .alumni-photo-trigger .alumni-photo-zoom {
    position: absolute;
    right: 4px;
    bottom: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--aa-radius-full);
    background: rgba(0, 49, 80, 0.72);
    color: var(--aa-white);
    box-shadow: var(--aa-shadow-md);
    transition: background var(--aa-transition), transform var(--aa-transition);
}

.alumni-horizon .alumni-photo-trigger:hover .alumni-photo-zoom,
.alumni-horizon .alumni-photo-trigger:focus-visible .alumni-photo-zoom {
    background: var(--aa-teal);
    transform: scale(1.08);
}

/* Full-size photo modal — image scales to fit the viewport */
.alumni-horizon .alumni-photo-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--aa-space-lg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--aa-transition), visibility var(--aa-transition);
}

.alumni-horizon .alumni-photo-modal.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.alumni-horizon .alumni-photo-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 26, 43, 0.88);
}

.alumni-horizon .alumni-photo-modal__content {
    position: relative;
    margin: 0;
    max-width: 92vw;
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.alumni-horizon .alumni-photo-modal__content img {
    display: block;
    max-width: 92vw;
    max-height: 88vh;
    width: auto;
    height: auto;
    border-radius: var(--aa-radius-md);
    box-shadow: var(--aa-shadow-lg);
}

.alumni-horizon .alumni-photo-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: var(--aa-radius-full);
    background: rgba(255, 255, 255, 0.92);
    color: var(--aa-navy);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--aa-shadow-md);
    transition: background var(--aa-transition), transform var(--aa-transition);
}

.alumni-horizon .alumni-photo-modal__close:hover {
    background: var(--aa-white);
    transform: scale(1.06);
}

.alumni-horizon .alumni-photo-modal__close:focus-visible {
    outline: 3px solid var(--aa-aqua);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .alumni-horizon .alumni-photo-modal,
    .alumni-horizon .alumni-photo-trigger .alumni-photo-zoom,
    .alumni-horizon .alumni-photo-modal__close {
        transition: none;
    }
}

/* ── Directory ─────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-member-grid,
.alumni-horizon .member-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--aa-space-lg);
}

@media (min-width: 480px) {
    .alumni-horizon .alumni-member-grid,
    .alumni-horizon .member-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .alumni-horizon .alumni-member-grid,
    .alumni-horizon .member-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.alumni-horizon .alumni-member-card,
.alumni-horizon .member-card {
    background-color: var(--aa-card-bg);
    border-radius: var(--aa-radius-lg);
    box-shadow: var(--aa-shadow-sm);
    padding: var(--aa-space-lg);
    text-align: center;
    transition: transform var(--aa-transition), box-shadow var(--aa-transition);
    border-top: 4px solid var(--aa-aqua);
}

.alumni-horizon .alumni-member-card:hover,
.alumni-horizon .member-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--aa-shadow-md);
}

.alumni-horizon .alumni-member-card img,
.alumni-horizon .member-card img {
    width: 90px;
    height: 90px;
    border-radius: var(--aa-radius-full);
    object-fit: cover;
    margin-bottom: var(--aa-space-md);
    border: 3px solid var(--aa-white);
    box-shadow: var(--aa-shadow-sm);
}

.alumni-horizon .alumni-member-name,
.alumni-horizon .member-card h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--aa-navy);
    margin: 0 0 var(--aa-space-xs);
}

.alumni-horizon .alumni-member-role,
.alumni-horizon .member-card p {
    color: var(--aa-text-muted);
    font-size: 0.9rem;
    margin: 0 0 var(--aa-space-xs);
}

.alumni-horizon .alumni-pagination {
    display: flex;
    justify-content: center;
    gap: var(--aa-space-sm);
    margin-top: var(--aa-space-xl);
}

/* ── Utilities ─────────────────────────────────────────────────────────── */
.alumni-horizon .alumni-text-center {
    text-align: center;
}

.alumni-horizon .alumni-divider,
.alumni-horizon hr {
    border: 0;
    border-top: 1px solid var(--aa-light-grey);
    margin: var(--aa-space-lg) 0;
}

.alumni-horizon .alumni-meta-list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--aa-space-lg);
}

.alumni-horizon .alumni-meta-list li {
    display: flex;
    justify-content: space-between;
    padding: var(--aa-space-sm) 0;
    border-bottom: 1px solid var(--aa-light-grey);
    color: var(--aa-text-muted);
}

.alumni-horizon .alumni-meta-list strong {
    color: var(--aa-navy);
    font-weight: 600;
}

.alumni-horizon .alumni-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;
}

/* ── Reminder banner ───────────────────────────────────────────────────── */
.alumni-horizon .alumni-notices {
    margin-bottom: var(--aa-space-md);
}

.alumni-horizon .alumni-alert--notice {
    background-color: var(--aa-error-bg);
    color: #B71C1C;
    border-left-color: var(--aa-error);
    align-items: center;
    font-size: 1.02rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(198, 40, 40, 0.15);
}

.alumni-horizon .alumni-alert--notice .alumni-alert__icon {
    background-color: var(--aa-error);
    color: var(--aa-white);
}

.alumni-horizon .alumni-notices__body {
    flex: 1 1 auto;
}

.alumni-horizon .alumni-notices__cta {
    margin-left: var(--aa-space-sm);
    white-space: nowrap;
}

.alumni-horizon .alumni-notices__dismiss {
    margin-left: auto;
    flex: 0 0 auto;
}

.alumni-horizon .alumni-notices__dismiss-btn {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font: inherit;
    font-weight: 500;
    color: #B71C1C;
    opacity: 0.7;
    text-decoration: underline;
}

.alumni-horizon .alumni-notices__dismiss-btn:hover,
.alumni-horizon .alumni-notices__dismiss-btn:focus {
    opacity: 1;
}

/* Draw the eye when the banner links straight to the Travel & dietary card. */
.alumni-horizon .alumni-form__section:target {
    outline: 3px solid var(--aa-primary);
    outline-offset: 4px;
    border-radius: var(--aa-radius-md);
}
