/* Prime LMS — Student Portal */

/* Grid */
.plms-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 18px;
}

/* Card */
.plms-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.05);
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.plms-card:hover {
    box-shadow: 0 6px 20px rgba(124,58,237,.14);
    transform: translateY(-2px);
}
.plms-card.plms-expired { opacity: .6; }

/* Purple button */
.plms-btn-purple {
    display: inline-block;
    padding: 9px 20px;
    background: #7c3aed;
    color: #fff !important;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .15s;
}
.plms-btn-purple:hover { background: #6d28d9; }

/* Portal wrapper */
.plms-portal {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 16px 80px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Chapter row hover (inline styles handle base; CSS adds hover) */
a[style*="plms-chapter"] { transition: background .12s; }

@media (max-width: 480px) {
    .plms-grid { grid-template-columns: 1fr; }
}

/* ── Student portal pages: stop the footer from overlapping our content ──
   Cause: the Elementor Shortcode widget is a flex item that shrinks below
   its content (the container is a fixed-height flex box), so our content
   overflows and the footer overlaps it. Force the CONTENT-area Elementor
   containers/widget to normal block flow so they grow to fit. Scoped to
   .prime-portal-page and to .site-content so the footer's own flex layout
   is left untouched. */
.prime-portal-page .site-content .e-con,
.prime-portal-page .site-content .e-con-inner,
.prime-portal-page .site-content .elementor-widget-shortcode,
.prime-portal-page .site-content .elementor-widget-container,
.prime-portal-page .site-content .elementor-shortcode {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    flex: none !important;
    overflow: visible !important;
}
.prime-portal-page .plms-portal { padding-bottom: 70px; }

/* ── Player breadcrumb ── */
.plms-crumb-link:hover { color:#6d28d9 !important; }

/* ── Dashboard stats ── */
.plms-dstats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.plms-dstat { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #ececf1; border-radius:14px; padding:16px 18px; }
.plms-dstat .ic { width:42px; height:42px; border-radius:11px; background:#f1ecfb; color:#8b5cf6; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.plms-dstat .num { font-size:23px; font-weight:800; line-height:1; color:#1a1a2e; }
.plms-dstat .lbl { font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#999; margin-top:4px; }
@media (max-width: 640px) {
    .plms-dstats { gap:8px; margin-bottom:18px; }
    .plms-dstat { padding:11px 12px; }
    .plms-dstat .ic { display:none; }
    .plms-dstat .num { font-size:20px; }
    .plms-dstat .lbl { font-size:9.5px; letter-spacing:0; margin-top:1px; line-height:1.2; }
}

/* ── Student nav (responsive) ── */
.plms-nav { background:#fff; border-bottom:1px solid #ececf1; }
.plms-nav-inner {
    max-width:1100px; margin:0 auto;
    display:flex; align-items:center; gap:16px;
    padding:12px 16px; flex-wrap:wrap;
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
.plms-nav-toggle { display:none; background:none; border:none; font-size:22px; color:#444; cursor:pointer; padding:4px 8px; line-height:1; }
.plms-nav-links { display:flex; gap:4px; flex:1; flex-wrap:wrap; }
.plms-nav-links a {
    padding:8px 14px; border-radius:8px; font-size:14px; font-weight:500;
    color:#555; text-decoration:none;
}
.plms-nav-links a:hover { background:#f7f6fb; color:#444; }
.plms-nav-links a.active { color:#6d28d9; background:#f3f0fb; font-weight:700; }
.plms-nav-right { display:flex; align-items:center; gap:12px; margin-left:auto; }
.plms-nav-name { font-size:13px; color:#888; }
.plms-nav-logout { padding:7px 14px; border:1px solid #e2e2ea; border-radius:8px; font-size:13px; color:#555; text-decoration:none; }
.plms-nav-logout:hover { background:#f7f6fb; }

@media (max-width: 640px) {
    .plms-nav-toggle { display:block; order:1; }
    .plms-nav-right  { order:2; }
    .plms-nav-links  {
        order:3; flex:0 0 100%; flex-direction:column; gap:2px;
        display:none; padding-top:6px;
    }
    .plms-nav-links.open { display:flex; }
    .plms-nav-links a { padding:11px 12px; }
    .plms-nav-name { display:none; }
}

/* ── Login page ──────────────────────────────────────────────────────── */
.plms-login-wrap {
    max-width: 420px; margin: 32px auto; padding: 0 16px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.plms-login-card {
    background:#fff; border:1px solid #ececf1; border-radius:16px;
    padding:34px 30px 30px; box-shadow:0 8px 30px rgba(40,30,80,.05);
}
.plms-login-head { text-align:center; margin-bottom:22px; }
.plms-login-logo { width:54px; height:54px; margin:0 auto 14px; display:block; }
.plms-login-head h1 { font-size:22px; font-weight:700; color:#1a1a2e; margin:0 0 5px; }
.plms-login-head p  { font-size:14px; color:#888; margin:0; }
.plms-login-error {
    background:#fdf2f2; border:1px solid #f5d2d2; color:#b4292f;
    font-size:13px; border-radius:9px; padding:11px 13px; margin-bottom:18px;
}
.plms-login-label {
    display:block; font-size:13px; font-weight:600; color:#444;
    margin:14px 0 6px;
}
.plms-login-input {
    width:100%; box-sizing:border-box; padding:12px 14px;
    border:1px solid #dcdce4; border-radius:9px; font-size:15px;
    color:#222; background:#fff; transition:border-color .15s, box-shadow .15s;
}
.plms-login-input:focus {
    outline:none; border-color:#a78bfa; box-shadow:0 0 0 3px rgba(124,58,237,.12);
}
.plms-login-row {
    display:flex; align-items:center; justify-content:space-between;
    margin:14px 0 20px; font-size:13px;
}
.plms-login-remember { color:#666; display:flex; align-items:center; gap:6px; cursor:pointer; }
.plms-login-remember input { accent-color:#7c3aed; }
.plms-login-lost { color:#7c3aed; text-decoration:none; font-weight:500; }
.plms-login-lost:hover { text-decoration:underline; }
.plms-login-btn {
    width:100%; padding:13px; border:none; border-radius:10px;
    background:#7c3aed; color:#fff; font-size:15px; font-weight:600;
    cursor:pointer; transition:background .15s;
}
.plms-login-btn:hover { background:#6d28d9; }
.plms-login-foot { text-align:center; font-size:13px; color:#9a9aa6; margin:18px 0 0; }

/* ── Course landing page ─────────────────────────────────────────────── */
.plms-landing {
    max-width: 1080px; margin: 12px auto 40px; padding: 0 18px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.plms-landing-hero {
    display: grid; grid-template-columns: 1.02fr 0.98fr;
    gap: 48px; align-items: center; margin-bottom: 40px;
}
.plms-landing-tag {
    font-size: 12px; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: #7c3aed; margin-bottom: 12px;
}
.plms-landing-title {
    font-size: 38px; line-height: 1.16; font-weight: 800;
    color: #1a1a2e; margin: 0 0 18px;
}
.plms-landing-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.plms-landing-chip {
    font-size: 12.5px; font-weight: 600; color: #5b5570;
    background: #f3f0fb; border: 1px solid #e7e0fb;
    padding: 5px 12px; border-radius: 99px;
}
.plms-landing-cta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.plms-landing-price { font-size: 30px; font-weight: 800; color: #1a1a2e; }
.plms-landing-price.plms-landing-free,
.plms-landing-foot-price.plms-landing-free { color: #16a34a; }
.plms-landing-btn {
    display: inline-block; padding: 14px 32px; border-radius: 11px; border: none;
    background: #7c3aed; color: #fff !important; font-size: 16px; font-weight: 700;
    text-decoration: none; cursor: pointer; line-height: 1.2;
    transition: background .15s, transform .1s;
    box-shadow: 0 6px 18px rgba(124,58,237,.25);
}
.plms-landing-btn:hover { background: #6d28d9; transform: translateY(-1px); }
.plms-landing-btn:disabled { opacity: .7; cursor: default; transform: none; }
.plms-landing-soon { font-size: 14px; color: #9a9aa6; font-style: italic; }
.plms-landing-media img {
    width: 100%; height: auto; display: block; border-radius: 16px;
    box-shadow: 0 14px 40px rgba(40,30,80,.14);
}
.plms-landing-media-empty {
    width: 100%; aspect-ratio: 16/10; border-radius: 16px;
    background: #f3f0fb; display: flex; align-items: center;
    justify-content: center; font-size: 64px;
}

.plms-landing-about {
    border-top: 1px solid #ececf1; padding-top: 30px; max-width: 780px;
}
.plms-landing-h2 { font-size: 22px; font-weight: 800; color: #1a1a2e; margin: 0 0 16px; }
.plms-landing-desc { font-size: 15.5px; line-height: 1.8; color: #44424f; }
.plms-landing-desc p { margin: 0 0 14px; }
.plms-landing-desc p:last-child { margin-bottom: 0; }

.plms-landing-foot {
    margin-top: 34px; padding: 22px 26px; border-radius: 16px;
    background: #faf8ff; border: 1px solid #e7e0fb;
    display: flex; align-items: center; justify-content: space-between;
    gap: 18px; flex-wrap: wrap;
}
.plms-landing-foot-price { font-size: 26px; font-weight: 800; color: #1a1a2e; }

@media (max-width: 860px) {
    .plms-landing-hero { grid-template-columns: 1fr; gap: 26px; margin-bottom: 30px; }
    .plms-landing-media { order: -1; }
    .plms-landing-title { font-size: 28px; }
}
