.parent-journey { --journey-purple:#56336f; }
.journey-introduction { max-width:870px; }
.journey-introduction h1 { line-height:1.12; margin-bottom:1.5rem; }
.journey-reassurance { color:#4a5646; max-width:760px; }
.journey-navigation { margin:2.5rem 0; }
.journey-navigation ol { list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.6rem; padding:0; }
.journey-navigation a { display:flex; align-items:center; gap:.6rem; min-height:52px; padding:.65rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; font-weight:700; background:#fff; }
.journey-navigation a > span,.journey-number { display:inline-flex; align-items:center; justify-content:center; flex:none; width:32px; height:32px; border-radius:50%; background:var(--pale); color:var(--green); font:700 1rem 'DM Sans',sans-serif; }
.journey-navigation a[aria-current="step"] { border-color:var(--green); background:var(--pale); }
.journey-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(270px,1fr); align-items:start; gap:2rem; }
.journey-steps,.journey-sidebar { min-width:0; }
.journey-progress { margin-bottom:1.25rem; padding:1.25rem; background:var(--pale); border-radius:8px; }
.journey-progress[hidden] { display:none; }
.journey-progress h2 { font:700 1.1rem 'DM Sans',sans-serif; margin:0; }
.journey-progress p { font-size:.9rem; margin:.5rem 0; }
.journey-progress progress { display:block; width:100%; height:12px; accent-color:var(--green); margin:1rem 0; }
.journey-clear,.journey-next { background:none; border:0; padding:.65rem 0; color:var(--green); font:700 .95rem 'DM Sans',sans-serif; text-decoration:underline; cursor:pointer; min-height:44px; }
.journey-step { margin:0 0 1rem; border:1px solid var(--line); border-radius:10px; background:#fff; scroll-margin-top:1rem; }
.journey-step > summary { padding:1.25rem; cursor:pointer; list-style:none; border-radius:10px; }
.journey-step > summary::-webkit-details-marker { display:none; }
.journey-step > summary h2 { display:flex; align-items:center; gap:.9rem; margin:0; font-size:1.4rem; }
.journey-step > summary h2 > span:nth-child(2) { flex:1; }
.journey-step > summary small { display:block; margin-top:.35rem; font:400 .9rem/1.5 'DM Sans',sans-serif; color:#52604e; }
.journey-chevron { width:.6rem; height:.6rem; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); flex:none; }
.journey-step[open] .journey-chevron { transform:rotate(225deg); }
.journey-step[open] > summary { border-bottom:1px solid var(--line); border-radius:10px 10px 0 0; background:#f5f8f2; }
.journey-step-body { padding:.5rem 1.5rem 1.5rem; }
.journey-useful-links { padding-left:1.2rem; }
.journey-useful-links li { margin:.6rem 0; }
.journey-notice { padding:1rem; border-left:3px solid var(--journey-purple); background:#f4eff8; }
.journey-checks { min-width:0; margin:1.5rem 0; padding:1rem; border:1px solid var(--line); border-radius:6px; }
.journey-checks legend { padding:0 .3rem; font-weight:700; }
.journey-checks label { display:flex; align-items:flex-start; gap:.7rem; padding:.6rem 0; min-height:44px; cursor:pointer; }
.journey-checks input { flex:none; width:20px; height:20px; margin:.2rem 0 0; accent-color:var(--green); }
.journey-checks small { color:#52604e; font-weight:700; }
.journey-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.journey-actions .button { max-width:100%; white-space:normal; text-align:center; }
.journey-small { font-size:.9rem; }
.journey-next { display:block; margin-top:1.5rem; text-align:left; }
.journey-next[hidden] { display:none; }
.journey-sidebar > section { padding:1.5rem; border-radius:10px; margin-bottom:1rem; }
.journey-sidebar h2 { margin-top:0; font-size:1.6rem; }
.journey-sidebar h3 { font-size:1.15rem; margin-bottom:.5rem; }
.journey-fees { background:var(--pale); border-top:4px solid var(--green); }
.journey-fees form { padding:1rem 0; border-top:1px solid #c9d9c2; border-bottom:1px solid #c9d9c2; }
.journey-fees form[hidden] { display:none; }
.journey-fees label { display:block; font-weight:700; margin-bottom:.4rem; }
.journey-fees input { width:100%; max-width:120px; min-height:44px; padding:.6rem; border:1px solid #819c75; border-radius:5px; font:inherit; background:white; }
.journey-total { margin:.8rem 0 .3rem; }
.journey-total output { font-size:1.8rem; font-weight:700; color:var(--green); }
.journey-total span,#journey-fee-help { font-size:.85rem; }
.journey-help { background:#fff; border:1px solid var(--line); }
.journey-consultation { background:#f4eff8; }
.journey-footer { border-top:1px solid var(--line); margin-top:2rem; padding-top:1rem; max-width:800px; }
.parent-journey a:focus-visible,.parent-journey button:focus-visible,.parent-journey summary:focus-visible,.parent-journey input:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
.parent-journey a { overflow-wrap:anywhere; }
@media(max-width:850px) {
 .journey-layout { grid-template-columns:minmax(0,1fr); }
 .journey-navigation ol { display:flex; flex-wrap:wrap; }
 .journey-navigation li { flex:1 1 130px; }
 .journey-step > summary { padding:1rem; }
 .journey-step > summary h2 { gap:.65rem; font-size:1.2rem; }
 .journey-step-body { padding:.5rem 1rem 1rem; }
 .journey-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
 .journey-sidebar .journey-fees { grid-column:1/-1; }
 .journey-sidebar > section { margin-bottom:0; }
}
@media(max-width:520px) { .journey-sidebar { display:block; } .journey-sidebar > section { margin-bottom:1rem; } .journey-checks { padding:.65rem; } }
.journey-enrolment-graphic { margin-top:2.5rem; padding:1.5rem; background:#fff; border:1px solid var(--line); border-radius:10px; }
.journey-enrolment-graphic h2 { margin-top:0; }
.journey-enrolment-graphic figure { margin:1rem 0; }
.journey-enrolment-graphic img { display:block; width:100%; height:auto; }
.journey-enrolment-graphic figcaption { margin-top:.5rem; color:#52604e; font-size:.9rem; }
.journey-fee-table { width:100%; max-width:650px; border-collapse:collapse; margin:1.5rem 0; }
.journey-fee-table caption { text-align:left; font-weight:700; margin-bottom:.5rem; }
.journey-fee-table th,.journey-fee-table td { text-align:left; padding:.7rem; border-bottom:1px solid var(--line); }
.journey-fee-table thead { background:var(--pale); }
.journey-fee-section { margin-top:3rem; max-width:950px; }
.journey-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.journey-service-grid article { padding:1.25rem; border:1px solid var(--line); border-radius:8px; background:#fff; }
.journey-service-grid h3 { margin-top:0; font-size:1.25rem; }
@media(max-width:600px) { .journey-enrolment-graphic { padding:1rem; } .journey-service-grid { grid-template-columns:1fr; } }

.journey-split-header { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; align-items:center; max-width:none; }
.journey-introduction-copy { min-width:0; }
.journey-split-header h1 { font-size:clamp(2rem,3.5vw,3.4rem); }
.journey-header-graphic { margin:0; padding:1rem; min-width:0; }
@media(max-width:850px) { .journey-split-header { grid-template-columns:minmax(0,1fr); gap:1.5rem; } }
