/* Pinterest LMS — frontend (matches approved mockup) */
.plms-wrap { --red:#E60023; --red-dark:#A80019; --yellow:#FFD400; --blush:#FFF0F2; --ink:#17090c;
  --muted:#756064; --line:#f0dbe0; --green:#0d8a4f; --dark:#0f1b2d;
  font-family:'Inter',sans-serif; color:var(--ink); line-height:1.6; }
.plms-wrap *, .plms-wrap *::before, .plms-wrap *::after { box-sizing:border-box; }
.plms-wrap h1,.plms-wrap h2,.plms-wrap h3,.plms-wrap h4 { font-family:'Archivo','Inter',sans-serif; margin:0; }
.plms-mut { color:var(--muted); font-size:13.5px; }
.plms-center { text-align:center; }
.plms-btn { display:inline-block; border-radius:999px; font-weight:700; cursor:pointer; text-decoration:none !important;
  text-align:center; border:none; transition:transform .12s; font-family:inherit; font-size:15px; padding:13px 28px; }
.plms-btn:hover { transform:translateY(-2px); }
/* Literal colours + !important: themes (and some page builders) reset anchor
   backgrounds, which left these buttons rendering white. Variables are kept as
   the first declaration so a custom palette still applies where it can. */
.plms-btn-red { background:var(--red); background-color:#E60023 !important; color:#fff !important;
  box-shadow:0 8px 24px rgba(230,0,35,.3); }
.plms-btn-red:hover { background-color:#A80019 !important; color:#fff !important; }
.plms-block { display:block; width:100%; }
.plms-btn-yellow { background:var(--yellow); background-color:#FFD400 !important; color:#111 !important;
  box-shadow:0 8px 24px rgba(0,0,0,.2); }
.plms-btn-yellow:hover { background-color:#FFCF00 !important; color:#111 !important; }
.plms-btn-yellow-sm { background:var(--yellow); background-color:#FFD400 !important; color:#111 !important;
  font-size:12.5px; padding:9px 18px; border-radius:999px;
  font-weight:700; text-decoration:none !important; display:inline-block; }
.plms-btn-yellow-sm:hover { background-color:#FFCF00 !important; color:#111 !important; }

/* Public locked preview (safe for homepage) */
.plms-sitem-locked { cursor:default; opacity:.85; }
.plms-sitem-locked:hover { background:none; }
.plms-sitem-locked.on { background:var(--blush); }
.plms-snum-lock { background:#efe4e7 !important; color:#a08d92 !important; font-size:12px; }
.plms-player-locked { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  padding:20px; text-align:center; }
.plms-lock-circle { width:64px; height:64px; background:rgba(255,255,255,.1); border:2px solid rgba(255,255,255,.3);
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; }
/* Locked overlay: all three lines stacked and centred inside the player frame. */
.plms-lock-l1 { color:var(--yellow); font-size:30px; font-weight:900; font-family:'Archivo',sans-serif;
  text-align:center; line-height:1.2; }
.plms-lock-l2 { color:#fff; font-size:14px; font-weight:700; text-align:center; margin-top:4px; }
.plms-welcome .plms-btn-yellow { flex-shrink:0; }

/* Urgency bar + Hero (LMS preview page) */
.plms-urgency { background:#111; color:#fff; text-align:center; padding:10px 16px; font-size:13.5px; }
.plms-urgency b { color:var(--yellow); }
.plms-hero { background:linear-gradient(120deg,var(--red),#c4001e); color:#fff; padding:0 24px 44px; text-align:center; }
.plms-hero-inner { max-width:760px; margin:0 auto; padding-top:8px; }
.plms-hero-nav { display:flex; align-items:center; justify-content:center; padding:14px 0; margin-bottom:26px;
  border-bottom:1px solid rgba(255,255,255,.18); flex-wrap:wrap; gap:18px; }
.plms-hero-nav .plms-logo { color:#fff; }
.plms-hero-brand { font-family:'Archivo',sans-serif; font-weight:900; font-size:17px; color:#fff; margin-bottom:16px; }
.plms-pv-click { cursor:pointer; transition:background .12s; }
.plms-pv-click:hover { background:var(--blush); }
.plms-login-cta-note { margin-top:16px !important; margin-bottom:8px !important; }
.plms-login-enroll-btn { margin-top:2px; font-size:15px; padding:13px 20px; }
.plms-hero-login { display:inline-block; font-size:13.5px; font-weight:700;
  background:#fff; color:var(--red) !important; text-decoration:none !important;
  padding:9px 20px; border-radius:999px; box-shadow:0 4px 14px rgba(0,0,0,.18);
  transition:transform .12s, background .12s; }
.plms-hero-login:hover { background:#fff0f2; color:var(--red-dark) !important; transform:translateY(-1px); }
.plms-pre-head { display:inline-flex; align-items:center; gap:8px; background:rgba(0,0,0,.25); color:#fff; font-weight:700;
  font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:7px 16px; border-radius:999px; margin-bottom:18px; }
.plms-dot { width:8px; height:8px; background:var(--yellow); border-radius:50%; animation:plms-pulse 1.2s infinite; }
@keyframes plms-pulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.plms-hero h1 { font-size:40px; font-weight:900; max-width:720px; margin:0 auto 16px; color:#fff; line-height:1.12; }
.plms-hero h1 .plms-yl { color:var(--yellow); }
.plms-hero-sub { font-size:15px; color:#ffdce2; max-width:600px; margin:0 auto 26px; }
.plms-hero-cta { display:inline-block; margin:0 auto 16px; }
.plms-hero-cta small { display:block; font-weight:500; font-size:11px; color:#5a4a00; }
.plms-seats { display:block; width:fit-content; max-width:100%; margin:0 auto 22px;
  background:rgba(0,0,0,.25); color:#fff; padding:8px 18px; border-radius:12px;
  font-size:13px; }
.plms-seats b { color:var(--yellow); }
.plms-proof-strip { display:flex; justify-content:center; gap:28px; flex-wrap:wrap; font-size:12.5px; color:#ffdce2; }
.plms-proof-strip b { display:block; font-family:'Archivo',sans-serif; font-size:19px; color:#fff; }
.plms-alert { background:#fde8e8; border:1.5px solid #f5b5b8; color:#b32d2e; border-radius:10px;
  padding:11px 14px; font-size:13.5px; margin-bottom:14px; font-weight:600; }
.plms-alert.plms-good { background:#e2f5e8; border-color:#a9e0bd; color:#0d7a34; }

/* ---------- Login / gate ---------- */
.plms-login-wrap { display:flex; justify-content:center; padding:44px 16px; background:var(--blush); border-radius:18px; }
.plms-login-card { background:#fff; border:1.5px solid var(--line); border-radius:20px; padding:34px 30px;
  max-width:420px; width:100%; text-align:center; box-shadow:0 20px 55px rgba(230,0,35,.1); }
.plms-login-logo { font-size:38px; margin-bottom:8px; }
.plms-login-card h2 { font-size:21px; font-weight:900; margin-bottom:6px; }
.plms-login-card .plms-mut { margin:0 0 18px; }
.plms-label { display:block; text-align:left; font-size:13px; font-weight:700; margin:0 0 6px; }
.plms-label small { font-weight:400; color:var(--muted); }
.plms-input { width:100%; padding:13px 14px; border:1.5px solid #ecd9dd; border-radius:10px; font-size:14px;
  font-family:inherit; background:#fdfafb; margin-bottom:14px; }
.plms-input:focus { outline:none; border-color:var(--red); background:#fff; }
.plms-login-note { font-size:12.5px; color:var(--muted); margin-top:14px; }
.plms-login-note a { color:var(--red); }

/* ---------- Course layout ---------- */
/* Full-bleed: break out of the theme's constrained content column so the course
   page spans the full viewport width with no white gutters on either side. */
.plms-course { background:#faf7f8; border:1px solid var(--line); border-left:0; border-right:0;
  margin-bottom:24px;
  width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.plms-topbar { background:#fff; border-bottom:1px solid var(--line); padding:12px 20px; display:flex;
  align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.plms-logo { font-weight:700; font-size:16px; color:var(--red); font-family:'Archivo',sans-serif; }
.plms-top-right { display:flex; align-items:center; gap:12px; }
/* Small device-session badge (e.g. 1/1) beside the profile avatar. */
.plms-device-pill { background:var(--blush); border:1px solid var(--line); padding:5px 11px; border-radius:999px;
  font-size:12px; font-weight:700; display:inline-flex; align-items:center; gap:5px; line-height:1; cursor:default;
  white-space:nowrap; }
.plms-device-pill .plms-dev-ic { font-size:12px; line-height:1; }
.plms-device-pill .plms-ok { color:var(--green); font-variant-numeric:tabular-nums; }
.plms-avatar { width:32px; height:32px; border-radius:50%; background:var(--red); color:#fff; display:inline-flex;
  align-items:center; justify-content:center; font-weight:700; font-size:12px; }
.plms-logout { font-size:12.5px; color:var(--muted) !important; text-decoration:none !important; font-weight:600; }
.plms-logout:hover { color:var(--red) !important; }

.plms-welcome { background:linear-gradient(120deg,var(--red),#c4001e); color:#fff; padding:22px 24px;
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.plms-welcome h1 { font-size:19px; font-weight:900; color:#fff; }
.plms-welcome p { font-size:13px; color:#ffd9e0; margin:3px 0 0; }
.plms-welcome-center { flex-direction:column; text-align:center; padding:30px 24px; }
.plms-welcome-center h1 { font-size:26px; }
.plms-welcome-center p { font-size:14px; margin:6px 0 4px; }
.plms-welcome-center .plms-progress-wrap { min-width:0; width:100%; max-width:420px; margin-top:14px; }
.plms-progress-wrap { min-width:250px; }
.plms-progress-lbl { display:flex; justify-content:space-between; font-size:12px; color:#ffd9e0; margin-bottom:6px; }
.plms-progress-lbl b { color:var(--yellow); }
.plms-ptrack { height:9px; background:rgba(0,0,0,.25); border-radius:6px; overflow:hidden; }
.plms-pfill { height:9px; background:var(--yellow); border-radius:6px; transition:width .3s; }

.plms-layout { display:flex; min-height:600px; }
.plms-sidebar { width:320px; flex-shrink:0; background:#fff; border-right:1px solid var(--line); padding:14px 0; }
.plms-sb-head { padding:0 18px 10px; display:flex; justify-content:space-between; align-items:center; }
.plms-sb-head b { font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.plms-sb-head span { font-size:11.5px; color:var(--green); font-weight:700; }
.plms-sitem { display:flex; gap:12px; padding:12px 18px; cursor:pointer; border-left:4px solid transparent; align-items:flex-start; }
.plms-sitem:hover { background:#fdf6f7; }
.plms-sitem.on { border-left-color:var(--red); background:var(--blush); }
.plms-snum { width:30px; height:30px; border-radius:9px; background:var(--red); color:#fff; font-weight:700; font-size:12px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'Archivo',sans-serif; }
.plms-snum.done { background:var(--green); }
.plms-sname { font-size:12.5px; font-weight:600; line-height:1.35; }
.plms-smeta { font-size:10.5px; color:var(--muted); margin-top:3px; }
.plms-badge { font-size:9px; font-weight:700; padding:2px 8px; border-radius:999px; margin-left:6px; }
.plms-badge-done { background:#e2f5e8; color:#0d7a34; }
.plms-badge-now { background:var(--red); color:#fff; }

.plms-main { flex:1; padding:22px 26px 44px; min-width:0; }
.plms-player { background:var(--dark); overflow:hidden; position:relative;
  aspect-ratio:16/9; width:100%; max-width:900px; margin:0 auto;
  box-shadow:0 18px 45px rgba(15,27,45,.22); }
/* The player frame is already 16:9. Any embed inside it should simply fill it.
   Bunny's responsive embed ships its own wrapper div using the padding-top ratio
   trick — we let that wrapper size itself naturally and just pin it to the frame,
   rather than forcing it absolute (which would collapse its padding and letterbox
   the video). */
.plms-player:not(.plms-player-locked) > div { position:absolute !important; inset:0 !important;
  width:100% !important; height:100% !important; padding-top:0 !important;
  margin:0 !important; max-width:none !important; }
.plms-player iframe { position:absolute !important; inset:0 !important; display:block;
  width:100% !important; height:100% !important; max-width:none !important; border:0 !important;
  /* Video zoom (Settings → Video Zoom). 1 = untouched. Higher values scale the
     video up to hide padding baked into the source file — at the cost of cropping
     the player controls, which is why it's opt-in and adjustable. */
  transform:scale(var(--plms-video-zoom, 1));
  transform-origin:center center; }
/* The locked overlay is our own markup and must stay in normal flex flow.
   The embed rule above is deliberately scoped away from this element, since
   both selectors have equal specificity and it would otherwise stack all three
   lines on top of each other in the corner. Themes are neutralised here too. */
.plms-player.plms-player-locked > *,
.plms-player-locked > * { position:relative !important; inset:auto !important; top:auto !important;
  left:auto !important; right:auto !important; bottom:auto !important;
  width:auto !important; height:auto !important; float:none !important;
  transform:none !important;
  margin-left:auto !important; margin-right:auto !important; max-width:90% !important; }
.plms-player-locked { background:radial-gradient(circle at 50% 38%, #1a2c47 0%, #101d31 55%, #0a1420 100%);
  position:relative; text-align:center; }
.plms-player-locked::before { content:"▶"; position:absolute; top:50%; left:50%; transform:translate(-50%,-56%);
  font-size:120px; line-height:1; color:rgba(255,255,255,.04); pointer-events:none; }
.plms-lock-circle { position:relative; z-index:1; flex:0 0 auto;
  box-shadow:0 0 0 8px rgba(255,255,255,.04), 0 0 34px rgba(255,212,0,.14); }
.plms-player-locked .plms-lock-l1,
.plms-player-locked .plms-lock-l2,
.plms-player-locked > a { position:relative; z-index:1; }
.plms-sess-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin:20px 0 4px; flex-wrap:wrap; }
.plms-sess-head h2 { font-size:20px; font-weight:900; line-height:1.25; }
.plms-mark-btn { background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:9px 18px; font-size:12.5px;
  font-weight:700; cursor:pointer; color:var(--ink); white-space:nowrap; font-family:inherit; }
.plms-mark-btn:hover { border-color:var(--green); color:var(--green); }
.plms-mark-btn.done { background:#e2f5e8; border-color:#a9e0bd; color:#0d7a34; }
.plms-sess-meta { display:flex; gap:16px; font-size:12.5px; color:var(--muted); margin-bottom:16px; flex-wrap:wrap; }

.plms-card { background:#fff; border:1px solid var(--line); padding:20px 22px; margin-bottom:14px; }
.plms-card h4 { font-size:15px; font-weight:700; margin:0 0 12px; font-family:'Inter',sans-serif; }
.plms-checks { list-style:none; margin:0; padding:0; }
.plms-checks li { padding:7px 0 7px 26px; position:relative; font-size:13.5px; color:#3d2b30; line-height:1.5; }
.plms-checks li::before { content:"✓"; position:absolute; left:0; top:8px; width:17px; height:17px; background:var(--blush);
  color:var(--red); border-radius:50%; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.plms-bonus { background:#faf3ff; border:1px solid #e7d4f5; border-radius:10px; padding:12px 16px; font-size:13px; color:#6b21a8; margin-top:12px; }
.plms-nav-row { display:flex; justify-content:space-between; margin-top:18px; gap:12px; flex-wrap:wrap; }
.plms-nav-btn { background:#fff; border:1.5px solid var(--line); border-radius:12px; padding:12px 18px; font-size:13px;
  font-weight:600; cursor:pointer; color:var(--ink); font-family:inherit; }
.plms-nav-btn:disabled { opacity:.4; cursor:default; }
.plms-nav-primary { background:var(--red); border-color:var(--red); color:#fff; }
.plms-nav-primary:hover:not(:disabled) { background:var(--red-dark); }

.plms-extras { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.plms-tool { display:flex; align-items:flex-start; gap:12px; padding:9px 0; border-bottom:1px solid #f6ebee; font-size:13.5px; }
.plms-tool:last-child { border-bottom:none; }
.plms-tool-ic { width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.plms-tool b { display:block; font-size:13px; }
.plms-tool b a { color:var(--ink) !important; text-decoration:none; }
.plms-tool b a:hover { color:var(--red) !important; }
.plms-tool em { font-style:normal; font-size:11.5px; color:var(--muted); display:block; }
.plms-fb { background:#eef4ff; border:1px solid #d3e2fb; border-radius:10px; padding:13px 15px; font-size:13px; color:#1d4ed8; margin-top:12px; }
.plms-fb a { color:#1d4ed8 !important; }
.plms-protip { background:#fffbea; border:1px solid #fde68a; border-radius:10px; padding:13px 15px; font-size:13px; color:#854d0e; margin-top:12px; }

/* ---------- Enrollment form ---------- */
.plms-enroll-wrap { display:flex; justify-content:center; padding:34px 14px; background:var(--blush); border-radius:18px; }
.plms-form-card { background:#fff; border-radius:20px; padding:30px; border:1.5px solid var(--line);
  box-shadow:0 20px 55px rgba(230,0,35,.1); max-width:560px; width:100%; }
.plms-form-title { font-size:24px; font-weight:900; text-align:center; margin-bottom:4px; }
.plms-form-card .plms-center { margin-bottom:18px; }
.plms-bank { background:var(--blush); border:1.5px solid #f3d2d9; border-radius:12px; padding:16px 18px; font-size:14px; margin-bottom:15px; }
.plms-bank b { color:var(--red); }
.plms-bank table { width:100%; margin-top:10px; border-collapse:collapse; }
.plms-bank td { padding:5px 0; border:none; font-size:15.5px; font-weight:700; color:var(--ink); }
.plms-bank td:first-child { color:var(--muted); width:100px; font-weight:600; font-size:14px; }
.plms-upload { display:block; border:2px dashed var(--red); background:#fff8f9; border-radius:12px; padding:20px;
  text-align:center; color:var(--red); font-size:13.5px; margin-bottom:18px; cursor:pointer; font-weight:600; }
.plms-upload.has-file { border-style:solid; background:#e2f5e8; border-color:var(--green); color:#0d7a34; }
.plms-safe-note { text-align:center; font-size:12px; color:var(--muted); margin-top:12px; }

@media (max-width:900px) {
  .plms-layout { flex-direction:column; }
  .plms-sidebar { width:100%; border-right:none; border-bottom:1px solid var(--line); }
  .plms-extras { grid-template-columns:1fr; }
}

/* ============ CONTENT GATE (teaser page) ============ */
.plms-gate { max-width:820px; margin:0 auto; }
.plms-gate-open { }
/* Partial mode: clip the page to a percentage of its natural height and fade
   the cut-off edge so it reads as "there's more", not as broken content. */
.plms-gate-clip { position:relative; overflow:hidden; max-height:420px;
  -webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 60%,transparent 100%); }
.plms-gate-inner > *:first-child { margin-top:0; }
.plms-gate-fade { position:absolute; left:0; right:0; bottom:0; height:120px; pointer-events:none;
  background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 92%); }
.plms-gate-cta { background:var(--blush); border:1.5px dashed var(--red); border-radius:14px;
  padding:26px 22px; text-align:center; margin-top:-10px; position:relative; z-index:2; }
.plms-gate-cta h3 { font-size:20px; font-weight:900; font-family:'Archivo',sans-serif; color:var(--ink); margin:0 0 8px; }
.plms-gate-cta p { font-size:14px; color:var(--muted); margin:0 0 16px; }
.plms-gate-note { font-size:12.5px; color:var(--muted); margin-top:12px; }
.plms-gate-note a { color:var(--red); text-decoration:none; }
@media (max-width:600px) {
  .plms-gate-cta { padding:20px 16px; }
  .plms-gate-cta h3 { font-size:17px; }
}

/* ============ BONUS RESOURCES (member sidebar, right column) ============ */
.plms-bonus-bar { width:270px; flex-shrink:0; background:#fff; border-left:1px solid var(--line);
  padding:14px 0; align-self:stretch; }
.plms-bonus-list { display:flex; flex-direction:column; }
.plms-bonus-item { display:flex; align-items:flex-start; gap:10px; padding:11px 16px; cursor:pointer;
  text-decoration:none !important; color:var(--ink) !important; border-left:3px solid transparent;
  transition:background .15s ease; }
.plms-bonus-item:hover { background:var(--blush); }
.plms-bonus-item.on { background:var(--blush); border-left-color:var(--red); }
.plms-bonus-ic { flex:0 0 auto; font-size:15px; line-height:1.4; }
.plms-bonus-t { font-size:13px; font-weight:600; line-height:1.4; }
.plms-bonus-note { font-size:11.5px; color:var(--muted); padding:12px 16px 0; margin-top:6px;
  border-top:1px solid var(--line); }
/* Bonus page content rendered inside the player column */
.plms-bonus-content { margin-top:6px; }
.plms-bonus-content img { max-width:100%; height:auto; }
.plms-bonus-content h2 { font-size:20px; font-weight:900; margin:22px 0 8px; }
.plms-bonus-content h3 { font-size:17px; font-weight:800; margin:18px 0 6px; }
.plms-bonus-content p, .plms-bonus-content li { font-size:14.5px; line-height:1.7; }
.plms-bonus-content ul, .plms-bonus-content ol { padding-left:22px; margin:10px 0; }

@media (max-width:1100px) {
  .plms-bonus-bar { width:100%; border-left:none; border-top:1px solid var(--line); }
  .plms-layout { flex-wrap:wrap; }
}

/* ============ PUBLIC PREVIEW: centred main column + locked bonus column ============ */
/* The preview has the session list on the left and the locked bonus list on the
   right, so the middle column centres its own content between them. */
.plms-preview .plms-main { display:flex; flex-direction:column; align-items:center; }
.plms-preview .plms-main > * { width:100%; max-width:900px; }
.plms-preview .plms-sess-head { justify-content:center; text-align:center; }
.plms-preview .plms-sess-head h2 { width:100%; text-align:center; }
.plms-preview .plms-sess-meta { justify-content:center; }
.plms-preview #plms-pv-desc { text-align:left; }
.plms-preview .plms-card { text-align:center; }
.plms-preview .plms-card h4 { text-align:center; }

/* Bonus column on the public preview — links through to each page's own teaser. */
.plms-bonus-bar-locked .plms-bonus-item-locked { cursor:pointer; }
.plms-bonus-bar-locked .plms-bonus-item-locked:hover { background:var(--blush); }
.plms-bonus-peek { display:block; font-style:normal; font-size:11.5px; font-weight:700;
  color:var(--red); margin-top:3px; }

/* ============ STANDALONE LOCKED PAGE (protected bonus page, non-member) ============ */
.plms-locked-page { max-width:860px; margin:0 auto; padding:34px 20px 60px; }
.plms-locked-title { font-size:30px; font-weight:900; font-family:'Archivo',sans-serif;
  line-height:1.2; margin:0 0 22px; color:var(--ink); }
/* The teaser is already truncated server-side, so it must NOT be height-clipped
   again by JS — only the soft fade at the bottom is wanted here. */
.plms-gate-clip-static { max-height:none !important; overflow:visible;
  -webkit-mask-image:none; mask-image:none; position:relative; }
.plms-gate-clip-static .plms-gate-fade { height:90px; }
.plms-locked-page .plms-gate-inner p,
.plms-locked-page .plms-gate-inner li { font-size:15px; line-height:1.75; }
.plms-locked-page .plms-gate-inner h2 { font-size:20px; font-weight:800; margin:20px 0 8px; }
.plms-locked-page .plms-gate-inner h3 { font-size:17px; font-weight:800; margin:16px 0 6px; }
.plms-locked-page .plms-gate-inner img { max-width:100%; height:auto; }
@media (max-width:600px) {
  .plms-locked-page { padding:24px 16px 46px; }
  .plms-locked-title { font-size:23px; }
}

/* ============ UNLOCK BOX BUTTONS (enroll + login, stacked) ============ */
.plms-gate-btns { display:flex; flex-direction:column; align-items:center; gap:10px; }
.plms-gate-btns .plms-gate-btn { min-width:230px; text-align:center; }
.plms-gate-btns .plms-gate-note { margin-top:2px; }

/* ============ GATE BUTTONS — hardened against theme link styles ============ */
/* Themes style anchors globally (colour, background, underline, padding), which
   was turning these into white pills with blue text. Pinned explicitly. */
.plms-gate-btns a.plms-gate-btn,
.plms-gate-cta a.plms-btn {
  display:inline-block !important;
  border:none !important;
  text-decoration:none !important;
  border-radius:999px !important;
  font-weight:700 !important;
  padding:13px 28px !important;
  line-height:1.3 !important;
}
.plms-gate-btns a.plms-btn-yellow,
.plms-gate-cta a.plms-btn-yellow {
  background-color:#FFD400 !important;
  color:#111 !important;
}
.plms-gate-btns a.plms-btn-yellow:hover,
.plms-gate-cta a.plms-btn-yellow:hover {
  background-color:#FFCF00 !important;
  color:#111 !important;
}
.plms-gate-btns a.plms-btn-red,
.plms-gate-cta a.plms-btn-red {
  background-color:#E60023 !important;
  color:#fff !important;
}
.plms-gate-btns a.plms-btn-red:hover,
.plms-gate-cta a.plms-btn-red:hover {
  background-color:#A80019 !important;
  color:#fff !important;
}

/* ============ ENROLL FORM — Back to Course button ============ */
.plms-back-wrap { text-align:center; margin-bottom:18px; }
.plms-back-btn { display:inline-block; background-color:#FFD400 !important; color:#111 !important;
  font-weight:800; font-size:13.5px; text-decoration:none !important; padding:9px 18px;
  border-radius:999px; border:none; transition:transform .12s, background-color .12s; }
.plms-back-btn:hover { background-color:#FFCF00 !important; color:#111 !important; transform:translateY(-1px); }
