.student-entry {max-width:1180px;margin:auto;padding:36px 40px 64px;width:100%;}
.student-entry>header {padding-bottom:56px;}
.entry-layout {display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.entry-intro h2 {font-size:clamp(32px,3.2vw,46px);line-height:1.13;margin:18px 0 24px;letter-spacing:-.02em;}
.entry-intro p {font-size:17px;line-height:1.7;max-width:440px;}
.entry-eyebrow {display:block;font:700 11px/1.5 var(--font-ui);letter-spacing:.15em;text-transform:uppercase;color:#956a18;}
.entry-intro ol {list-style:none;padding:12px 0;margin:0;}
.entry-intro li {display:flex;gap:18px;align-items:center;padding:15px 0;border-bottom:1px solid var(--color-line);font-size:15px;}
.entry-intro li b {font-family:var(--font-display);font-size:25px;color:var(--color-gold);}
.entry-intro .entry-footnote {font-size:13px;color:var(--color-copy);}
.entry-card {background:var(--color-surface);border:1px solid var(--color-line);border-radius:12px;padding:32px;min-width:0;}
.entry-layout>.entry-card {border-top:3px solid var(--color-gold);box-shadow:0 14px 40px #10245f08;}
.entry-card h1 {font-size:34px;line-height:1.15;margin:12px 0 16px;}
.entry-card h2 {font-size:27px;line-height:1.2;margin:12px 0 16px;}
.entry-card p {line-height:1.6;margin:14px 0;}
.entry-card form {display:flex;flex-direction:column;margin-top:24px;}
.entry-card label {font-size:13px;font-weight:600;margin-bottom:8px;}
.entry-card input {width:100%;min-width:0;min-height:48px;border:1px solid #bfc9dc;border-radius:6px;padding:12px 14px;background:white;margin-bottom:18px;font-size:16px;}
.entry-card small {display:block;font-size:12px;line-height:1.6;color:var(--color-copy);margin-top:12px;}
/* A hint under a field belongs to the field above it. The input already
   carries 18px below, which left the hint sitting nearer the next label than
   its own box, so it read as a heading for the wrong question. */
.entry-card form input+small {margin-top:-12px;margin-bottom:18px;}
.entry-primary,.entry-secondary {min-height:46px;border-radius:6px;padding:12px 18px;font-family:var(--font-display);font-size:16px;line-height:1.35;}
.entry-primary {border:1px solid var(--color-primary);background:var(--color-primary);color:white;}
.entry-secondary {border:1px solid #c7ad6d;background:#fffcf5;color:#795512;}
.entry-card form>.entry-primary {margin-top:18px;}
.entry-card button:disabled {cursor:not-allowed;opacity:.65;}
.entry-switch {font-size:13px;text-align:center;}
.entry-switch button {border:0;padding:7px;background:none;color:var(--color-primary);text-decoration:underline;font-weight:600;}
.entry-error,.entry-notice {padding:14px 16px;border-radius:6px;font-size:14px;line-height:1.6;overflow-wrap:anywhere;}
.entry-error {background:#fff4f1;color:#96342a;border:1px solid #e9c3bd;}
.entry-notice {background:var(--color-gold-soft);color:#665121;border:1px solid #e4d5aa;}
.entry-loading {padding:40px 0;}
/* Consent: two statements the learner ticks before an account exists. */
.entry-consent {display:grid;gap:14px;margin:4px 0 2px;}
.entry-check {display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;margin:0;font-size:13px;font-weight:400;line-height:1.55;cursor:pointer;}
.entry-card .entry-check input[type="checkbox"] {width:20px;min-width:20px;height:20px;min-height:20px;margin:1px 0 0;padding:0;accent-color:var(--color-primary);cursor:pointer;}
.entry-inline-link {border:0;padding:0;background:none;font:inherit;color:var(--color-primary);text-decoration:underline;cursor:pointer;}
.student-entry>.legal-footer {margin-top:56px;}
.student-account {max-width:1180px;}
.entry-account-heading h1 {font-size:clamp(28px,3vw,40px);line-height:1.2;margin:8px 0 12px;overflow-wrap:anywhere;}
.entry-account-heading p {font-family:var(--font-display);font-size:18px;line-height:1.5;}
.entry-account-grid {display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;}
.entry-status {display:inline-block;border:1px solid var(--color-line);border-radius:30px;padding:6px 13px;font-size:12px;color:var(--color-primary);background:#f5f6fa;}
.entry-modules {display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--color-line);padding:16px 0;gap:12px;font-size:12px;}
.entry-modules b {display:block;font-family:var(--font-display);font-size:22px;margin-top:8px;}
.entry-payment-options {display:flex;gap:10px;flex-wrap:wrap;margin:20px 0;}
.entry-next {border:1px solid var(--color-line);background:#f6f4ee;border-radius:12px;padding:24px 32px;margin-top:24px;display:flex;gap:24px;align-items:center;justify-content:space-between;}
.entry-next h2 {font-size:25px;margin:0 0 8px;}.entry-next p {line-height:1.6;margin:0;}.entry-next button {flex-shrink:0;}
.student-session-bar {display:flex;gap:16px;justify-content:flex-end;align-items:center;margin-bottom:24px;font-size:12px;}
.student-session-bar button {border:1px solid var(--color-line);background:white;border-radius:6px;padding:9px 15px;}
[data-role="student"] .notification-button {display:none;}
@media(max-width:1000px){.entry-layout{gap:32px;}.student-entry{padding:28px;}.entry-account-grid{gap:16px;}.entry-card{padding:24px;}.entry-next{align-items:flex-start;flex-direction:column;}}
@media(max-width:650px){.student-entry{padding:24px 20px 40px;}.student-entry>header{padding-bottom:32px;}.entry-layout{grid-template-columns:1fr;gap:24px;}.entry-intro{display:none;}.entry-card{padding:24px 20px;}.entry-card h1{font-size:30px;}.entry-account-grid{grid-template-columns:1fr;margin-top:24px;}.entry-next{padding:24px 20px;}.entry-payment-options{flex-direction:column;}.entry-account-heading h1{font-size:30px;}.student-session-bar{margin-bottom:18px;}.entry-card>.entry-primary{width:100%;}}
