/* Page section wrapper settings (Page Builder common settings) */
.cm-page-section.cm-section-layout-narrow .container,
.cm-page-section.cm-section-layout-narrow > .container {
    max-width: 720px;
}

.cm-page-section.cm-section-bg-light {
    background-color: var(--theme-light, #f8fafc);
}

.cm-page-section.cm-section-bg-dark {
    background-color: var(--theme-dark, #0f172a);
    color: #fff;
}

.cm-page-section.cm-section-bg-image-cover {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.cm-section-anim-fade-up > * {
    animation: cm-section-fade-up 0.7s ease both;
}

.cm-section-anim-fade-in > * {
    animation: cm-section-fade-in 0.7s ease both;
}

.cm-section-anim-slide-left > * {
    animation: cm-section-slide-left 0.7s ease both;
}

.cm-section-anim-slide-right > * {
    animation: cm-section-slide-right 0.7s ease both;
}

.cm-section-anim-zoom > * {
    animation: cm-section-zoom 0.7s ease both;
}

@keyframes cm-section-fade-up {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cm-section-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes cm-section-slide-left {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes cm-section-slide-right {
    from { opacity: 0; transform: translateX(-24px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes cm-section-zoom {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

/* Portal Access Cards section */
.portal-cards-section {
    padding: 4rem 0 5rem;
    background:
        radial-gradient(ellipse at 20% 0%, rgba(37, 99, 235, 0.1), transparent 50%),
        radial-gradient(ellipse at 80% 100%, rgba(14, 165, 233, 0.08), transparent 45%),
        linear-gradient(180deg, var(--theme-light, #f8fafc) 0%, #eef2ff 100%);
}

.portal-cards-heading {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.portal-cards-subtitle {
    font-size: 1.05rem;
}

.portal-card,
a.portal-card {
    display: flex;
    flex-direction: column;
    border-radius: 1.25rem;
    padding: 2rem 1.75rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

a.portal-card,
a.portal-card-link {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

a.portal-card:hover,
a.portal-card:focus-visible {
    color: inherit;
}

a.portal-card:focus-visible {
    outline: 2px solid var(--theme-primary, #2563eb);
    outline-offset: 3px;
}

.portal-card--modern_glass {
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow:
        0 4px 24px rgba(15, 23, 42, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.portal-card--hover-lift:hover {
    transform: translateY(-8px);
    box-shadow:
        0 20px 40px rgba(15, 23, 42, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.portal-card--hover-glow:hover {
    box-shadow:
        0 0 0 1px rgba(37, 99, 235, 0.25),
        0 16px 36px rgba(37, 99, 235, 0.18);
}

.portal-card__icon-wrap {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.18), rgba(14, 165, 233, 0.12));
    border: 1px solid rgba(37, 99, 235, 0.2);
    color: var(--theme-primary, #2563eb);
    font-size: 1.5rem;
}

.portal-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.portal-card__description {
    color: var(--theme-muted, #64748b);
    font-size: 0.975rem;
    line-height: 1.6;
    flex-grow: 1;
    margin-bottom: 1.5rem;
}

.portal-card__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.portal-card__btn {
    align-self: flex-start;
    margin-top: auto;
    padding: 0.7rem 1.35rem;
    font-weight: 600;
    border: none;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--theme-primary, #2563eb) 0%, #0ea5e9 100%);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.portal-card__btn:hover {
    color: #fff;
    filter: brightness(1.05);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.32);
}

@media (max-width: 991.98px) {
    .portal-cards-section[data-portal-columns="3"] .portal-cards-col {
        max-width: 50%;
    }
}

@media (max-width: 767.98px) {
    .portal-cards-section[data-portal-columns="3"] .portal-cards-col,
    .portal-cards-section[data-portal-columns="2"] .portal-cards-col {
        max-width: 100%;
    }
}
