/* Candidate toolkit: editorial cards and focused guide reader. */
.resource-reader-head{position:sticky;top:0;z-index:4}
.candidate-resources-page .res-card{overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.candidate-resources-page .res-card:hover{transform:translateY(-7px);box-shadow:0 22px 50px #68244020}
.candidate-resources-page .res-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:#bd437c12;transition:transform .25s}
.candidate-resources-page .res-card:hover .res-icon{transform:rotate(-5deg) scale(1.06)}
.candidate-resources-page .res-more{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #a8758e30;padding-top:18px;margin-top:auto}
.candidate-resources-page .rmodal{padding:24px;background:#101116b8;backdrop-filter:blur(12px);animation:reader-backdrop .2s ease}
.candidate-resources-page .rmodal-card{width:min(90vw,100%);max-height:90vh;max-height:90dvh;padding:0;border-radius:24px;background:#fbf9f6;scroll-behavior:smooth;overscroll-behavior:contain;animation:reader-enter .32s cubic-bezier(.2,.8,.2,1);box-shadow:0 35px 110px #0006}
.resource-reader-head{background:linear-gradient(120deg,#202126,#482337);color:#efb2cf;padding:27px 76px 25px 38px;display:flex;justify-content:space-between;gap:16px;font-size:11px;letter-spacing:1.5px;font-weight:700}
.candidate-resources-page .rmodal-close{position:absolute;right:18px;top:16px;float:none;margin:0;background:#ffffff16;border-color:#ffffff40;color:#fff;z-index:3;width:38px;height:38px}
.candidate-resources-page .rmodal-close:hover{background:#b13d74;color:#fff}
.resource-progress{position:sticky;top:0;height:3px;background:#eddce4;z-index:2}
.resource-progress span{display:block;height:100%;background:#c34480;width:0}
.candidate-resources-page .rmodal-body{padding:36px 52px 28px}
.candidate-resources-page .rmodal-body h2{font-size:clamp(28px,4vw,42px);line-height:1.12;max-width:650px;margin-bottom:26px}
.candidate-resources-page .rmodal-body h3{font-size:23px;margin:32px 0 14px;padding-top:22px;border-top:1px solid #e5dbe0;color:#93345f}
.candidate-resources-page .rmodal-body p,.candidate-resources-page .rmodal-body li{font-size:16px;line-height:1.85}
.candidate-resources-page .rmodal-body li{padding-left:7px;margin-bottom:12px}
.candidate-resources-page .rmodal-body li::marker{color:#ac3b70;font-weight:700}
.candidate-resources-page .rmodal-body blockquote{border-left:3px solid #bd437c;background:#f0e5eb;padding:20px 24px;margin:24px 0;border-radius:0 12px 12px 0}
.resource-reader-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 36px;background:#f0eae5;border-top:1px solid #e4d9df}
.resource-reader-foot button{font:inherit;font-size:13px;font-weight:600;border:1px solid #be9bac;border-radius:30px;padding:12px 18px;background:#fff;color:#8f2d59;cursor:pointer;transition:background .2s}
.resource-reader-foot button:hover:not(:disabled){background:#f2dfe9}
.resource-reader-foot button:disabled{opacity:.4;cursor:default}
.resource-reader-foot span{font-size:12px;color:#76636d;white-space:nowrap}
.candidate-resources-page .rmodal button:focus-visible{outline:3px solid #d86f9f;outline-offset:3px}
@keyframes reader-enter{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
@keyframes reader-backdrop{from{opacity:0}to{opacity:1}}
@media(max-width:600px){.candidate-resources-page .rmodal{padding:10px;align-items:flex-end}.candidate-resources-page .rmodal-card{max-height:94dvh;border-radius:22px 22px 12px 12px}.resource-reader-head{padding:26px 66px 24px 22px;display:block}.resource-reader-head span:last-child{display:block;margin-top:8px}.candidate-resources-page .rmodal-body{padding:28px 24px}.resource-reader-foot{padding:18px 16px;gap:6px}.resource-reader-foot button{padding:10px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.candidate-resources-page .rmodal,.candidate-resources-page .rmodal-card{animation:none}.candidate-resources-page .rmodal-card{scroll-behavior:auto}.candidate-resources-page .res-card,.candidate-resources-page .res-icon{transition:none}.candidate-resources-page .res-card:hover,.candidate-resources-page .res-card:hover .res-icon{transform:none}}


.candidate-resources-page .rmodal-body a[href^='https://interview.appfirm.co.za/'] { display:inline-flex; align-items:center; padding:14px 24px; border-radius:999px; background:#96335f; color:#fff; font-weight:700; text-decoration:none; transition:background .2s, transform .2s; }
.candidate-resources-page .rmodal-body a[href^='https://interview.appfirm.co.za/']:hover { background:#78284e; transform:translateY(-2px); }
@media (prefers-reduced-motion:reduce) { .candidate-resources-page .rmodal-body a[href^='https://interview.appfirm.co.za/'] { transition:none; transform:none; } }

.resource-detail-layout:has(.resource-detail-image) { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,30%); gap:40px; align-items:start; }
.resource-detail-image { display:block; width:100%; height:auto; border-radius:16px; border:1px solid #e5deda; box-shadow:0 12px 30px rgba(42,18,32,.12); }
@media(max-width:760px) { .resource-detail-layout:has(.resource-detail-image) { grid-template-columns:1fr; gap:24px; } .resource-detail-image { max-width:340px; margin:auto; } }

.resource-detail-image[src=''] { display:none; }
.resource-detail-layout:not(:has(.resource-detail-image[src]:not([src='']))) { display:block; }

.resource-tool-badge { position:absolute; top:28px; right:28px; padding:8px 13px; border-radius:999px; color:#fff; background:#96335f; font-size:11px; font-weight:700; letter-spacing:.08em; line-height:1.3; animation:tool-badge-pulse 2.6s ease-in-out infinite; }
.resource-tool-badge:empty { display:none; }
@keyframes tool-badge-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(216,91,148,.12); } 50% { box-shadow:0 0 0 7px rgba(216,91,148,.18); background:#ad3e70; } }
@media(prefers-reduced-motion:reduce) { .resource-tool-badge { animation:none; } }
