/* Shared practice-to-certification sections, using the existing site typography. */
.practice-hero-statement { max-width:90ch; font-size:1rem; line-height:1.6; margin:16px 0 22px; }
.practice-path, .practice-comparison { margin:40px 0; scroll-margin-top:90px; }
.practice-path h2, .practice-comparison h2 { margin:0 0 20px; }
.practice-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; margin:0 0 20px; }
.practice-steps > li { display:flex; gap:12px; padding:20px; border:1px solid var(--line,#e4ddd2); border-radius:12px; background:var(--bg-2,#f4eee5); min-width:0; }
.practice-step-number { display:inline-flex; flex:0 0 30px; width:30px; height:30px; justify-content:center; align-items:center; border-radius:50%; background:var(--accent,#d9673f); color:#fff; font-weight:700; }
.practice-steps h3 { margin:2px 0 10px; font-size:1.1rem; }
.practice-steps p { margin:0; font-size:.95rem; line-height:1.6; }
.practice-path .btn-row { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.practice-path .btn, .practice-comparison > .btn { display:inline-flex; padding:12px 18px; border-radius:8px; background:var(--accent,#d9673f); color:#fff; font-weight:600; text-decoration:none; }
.practice-booking-link { font-size:.92rem; }
.practice-comparison .table-scroll { overflow-x:auto; border:1px solid var(--line,#e4ddd2); border-radius:12px; }
.practice-comparison table { width:100%; border-collapse:collapse; table-layout:fixed; }
.practice-comparison th, .practice-comparison td { text-align:left; padding:14px; border-bottom:1px solid var(--line,#e4ddd2); vertical-align:top; line-height:1.5; overflow-wrap:break-word; }
.practice-comparison table th:first-child { width:37%; }
.practice-comparison thead { background:var(--bg-2,#f4eee5); }
.practice-comparison .small { font-size:.85rem; line-height:1.6; }
.practice-proof { margin:22px 0 0; }
.practice-proof > p { font-weight:600; }
.practice-badges { display:flex; flex-wrap:wrap; gap:16px; }
.practice-badges img { display:block; width:110px; height:110px; object-fit:contain; }
.practice-guide-link { margin:14px 0 0; font-size:.86rem; }
.practice-result-links { padding-left:20px; }
.practice-result-links li { margin:8px 0; }
.public-exam-page.practice-hub h1 { max-width:none; font-size:clamp(2rem,3.5vw,3.2rem); }
@media(max-width:700px) {
 .practice-steps { grid-template-columns:1fr; }
 .practice-steps > li { padding:16px; }
 .practice-comparison th, .practice-comparison td { padding:10px 8px; font-size:.8rem; }
 .practice-badges { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
 .practice-badges img { width:100%; height:auto; aspect-ratio:1; }
}

/* Reserve the start panel while its catalogue loads, so later sections stay still. */
.public-exam-page #public-exam-app { min-height:300px; }
.public-exam-page.practice-hub .sample-grid h2 { margin:12px 0 10px; }
@media(max-width:640px) { .public-exam-page #public-exam-app { min-height:400px; } }
.practice-comparison th { white-space:normal; letter-spacing:normal; }
.public-exam-page .practice-coverage .table-scroll,
.public-exam-page .worked-review .table-scroll { max-width:100%; overflow-x:auto; }
.public-exam-page .practice-coverage th,
.public-exam-page .practice-coverage td,
.public-exam-page .worked-review th,
.public-exam-page .worked-review td { white-space:normal; overflow-wrap:anywhere; }
.public-exam-page .worked-review table th:first-child { width:36%; }
@media(max-width:640px) {
 .public-exam-page .mock-table-wrap td:nth-child(2)::before { content:"Free practice exam"; }
 .public-exam-page .mock-table-wrap td:nth-child(3)::before { content:"Full-length mock exams (Timo members)"; }
}

/* Keep the official exam code intact and the start action in the desktop hero. */
.public-exam-page .sample-hero h1 { max-width:none; }
.public-exam-page .exam-code { white-space:nowrap; }
.public-exam-page .practice-hero-statement { margin:16px 0 18px; padding:12px 16px; }
.public-exam-page #public-exam-app + .sample-covers { margin:12px 0 6px; }

/* Reserve the wordmark space before the image loads. */
.public-exam-page .mp-brand img { aspect-ratio:600 / 196; }

/* Enrollment route for the six public practice pages (BUILD-SPEC 2.17). */
.practice-enrollment{margin:1.5rem 0;padding:1.5rem;border:1px solid var(--line,#e4ddd2);border-radius:16px;background:var(--bg-2,#f4eee5)}
.practice-enrollment h2{margin:0 0 .75rem;font-size:1.35rem;line-height:1.35}
.practice-enrollment p{margin:0 0 1rem;max-width:70ch}

/* Practice-test LinkedIn offer */
.practice-offer-banner{margin:1rem 0;padding:.85rem 1rem;border:1px solid #d9b45a;border-left:4px solid #c8952a;border-radius:10px;background:#fff8e6;color:#3a2d0c;font-size:.97rem;line-height:1.5}
.practice-offer-banner p{margin:0}
.practice-offer-banner a{font-weight:600;white-space:nowrap}
.practice-offer{margin:1.5rem 0;padding:1.25rem;border:1px solid #d9b45a;border-radius:12px;background:#fffaf0}
.practice-offer h2{margin-top:0}
.practice-offer textarea{width:100%;min-height:11rem;font:inherit;padding:.65rem;border:1px solid #cdbf9c;border-radius:8px;background:#fff;box-sizing:border-box}
.practice-offer .btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.75rem}
.practice-offer-steps{margin:.5rem 0 1rem;padding-left:1.2rem}
.practice-offer-status{min-height:1.2em;font-size:.9rem;color:#5a4a20}
[data-theme="dark"] .practice-offer-banner,[data-theme="dark"] .practice-offer{background:#2a2414;color:#f3e7c7;border-color:#7a6326}
[data-theme="dark"] .practice-offer textarea{background:#1c1a14;color:#f3e7c7;border-color:#7a6326}
[data-theme="dark"] .practice-offer-status{color:#e9d9ae}

.practice-offer-banner p+p{margin-top:.4rem}.practice-post-open{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;text-decoration:underline;cursor:pointer}.practice-post-dialog{max-width:36rem;width:calc(100% - 32px);border:1px solid #d9b45a;border-radius:12px;padding:1.1rem 1.2rem;background:#fffdf7;color:#2a2410}.practice-post-dialog::backdrop{background:rgba(0,0,0,.45)}.practice-post-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.practice-post-head h2{margin:0;font-size:1.15rem}.practice-post-close{background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;color:inherit}.practice-post-dialog textarea{width:100%;min-height:10rem;font:inherit;padding:.65rem;border:1px solid #cdbf9c;border-radius:8px;box-sizing:border-box;background:#fff;color:#2a2410}.practice-post-dialog .btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.75rem}[data-theme="dark"] .practice-post-dialog{background:#1f1b10;color:#f3e7c7;border-color:#7a6326}[data-theme="dark"] .practice-post-dialog textarea{background:#15130d;color:#f3e7c7;border-color:#7a6326}
