.journey-page [hidden] { display: none !important; }
.journey-page .enquiry-layout, .journey-page .booking-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 5vw, 76px); align-items: start; }
.journey-page .enquiry-intro h1, .journey-page .booking-intro h1 { max-width: 10ch; }
.journey-page .enquiry-intro .lead, .journey-page .booking-intro .lead { max-width: 36ch; }
.journey-card { min-width: 0; padding: clamp(24px, 3vw, 40px); background: #101d2d; border: 1px solid #334355; border-radius: 16px; }
.journey-card p:first-child { margin-top: 0; }
.journey-card .form-intro { margin-bottom: 24px; color: #eef3f8; }
.journey-page .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.journey-page .field, .booking-form .row { margin-bottom: 24px; min-width: 0; }
.journey-page label { display: block; color: #eef3f8; font-size: 15px; font-weight: 600; line-height: 1.5; margin-bottom: 8px; }
.journey-page .optional, .journey-page .opt { font-weight: 400; color: #b7c5d5; }
.journey-page input:not([type=hidden]), .journey-page textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #65768a; border-radius: 7px; padding: 12px 14px; background: #071019; color: #eef3f8; font: inherit; font-size: 16px; line-height: 1.5; }
.journey-page textarea { resize: vertical; min-height: 130px; }
.journey-page input::placeholder, .journey-page textarea::placeholder { color: #a8b8cb; opacity: 1; }
.journey-page input:focus-visible, .journey-page textarea:focus-visible, .journey-page button:focus-visible { outline: 3px solid #8fd4ff; outline-offset: 4px; }
.journey-page input[aria-invalid=true], .journey-page textarea[aria-invalid=true] { border-color: #ffaaaa; }
.journey-page .field-help { font-size: 14px; color: #b7c5d5; margin: -3px 0 10px; line-height: 1.5; }
.journey-page .field-error { display: block; color: #ffb5b5; font-size: 14px; margin-top: 8px; }
.journey-page .form-error, .journey-page .status.error, .journey-page .rm-msg.is-err { color: #ffd4d4; background: #3d1b27; border: 1px solid #b66c7b; padding: 14px 16px; border-radius: 8px; line-height: 1.55; font-size: 15px; }
.journey-page .form-error a, .journey-page .status.error a { color: inherit; }
.journey-page .form-success:focus, .journey-page .success-screen:focus, .journey-page #rm-heading:focus, .journey-page #rm-result-title:focus { outline: none; }
.journey-page .form-success h2 { font-size: clamp(28px, 3vw, 38px); }
.journey-page .honeypot, .journey-page .rm-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.journey-page .enquiry-person { display: flex; align-items: center; gap: 16px; margin: 32px 0; }
.journey-page .enquiry-person img { width: 64px; height: 64px; object-fit: cover; object-position: 50% 28%; border-radius: 50%; }
.journey-page .enquiry-person strong, .journey-page .enquiry-person span span { display: block; }
.journey-page .enquiry-person span span { color: #afbdcc; font-size: 14px; line-height: 1.5; margin-top: 4px; }
.journey-page .enquiry-options { margin-top: 32px; padding-top: 8px; border-top: 1px solid #334355; }
.journey-page .enquiry-options p { margin: 24px 0 8px; color: #afbdcc; font-size: 15px; }
.journey-page .enquiry-options a { overflow-wrap: anywhere; }
.journey-page .enquiry-next { border-top: 1px solid #334355; }
.journey-page .button[disabled], .journey-page button[disabled] { cursor: not-allowed; opacity: .65; }
.booking-form .pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.booking-form .ctype { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-form .ctype-opt { display: flex; align-items: center; gap: 12px; padding: 14px; text-align: left; color: #eef3f8; background: #071019; border: 1px solid #65768a; border-radius: 8px; font: inherit; cursor: pointer; }
.booking-form .ctype-opt.selected { border: 2px solid #48b7ff; padding: 13px; background: #142d44; }
.booking-form .ctype-opt svg { width: 23px; height: 23px; flex: none; color: #8fd4ff; }
.booking-form .ct-t { display: block; font-size: 16px; font-weight: 600; }
.booking-form .ct-s { display: block; font-size: 13px; color: #b7c5d5; margin-top: 3px; }
.booking-form .cal-wrap { min-width: 0; border: 1px solid #65768a; border-radius: 10px; padding: 16px; background: #071019; }
.booking-form .cal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.booking-form .cal-head h3 { margin: 0; font-size: 19px; }
.booking-form .cal-nav { display: flex; gap: 6px; }
.booking-form .cal-nav button, .booking-form #calendarRetry { color: #eef3f8; background: #142436; border: 1px solid #65768a; border-radius: 7px; cursor: pointer; min-width: 44px; min-height: 44px; }
.booking-form #calendarStatus { font-size: 13px; line-height: 1.5; color: #b7c5d5; margin: 14px 0; }
.booking-form #calendarRetry { padding: 10px 14px; margin-bottom: 16px; font: inherit; font-size: 14px; }
.booking-form .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; width: 100%; min-width: 0; }
.booking-form .cal-dow { text-align: center; font-size: 12px; color: #afbdcc; padding: 4px 0 8px; }
.booking-form .cal-day { min-width: 0; min-height: 44px; border: 1px solid transparent; border-radius: 5px; font: inherit; font-size: 14px; color: #afbdcc; background: transparent; }
.booking-form .cal-day.available { color: #eef3f8; border-color: #65768a; background: #15283d; cursor: pointer; }
.booking-form .cal-day.selected, .booking-form .slot.selected { color: #071019; background: #8fd4ff; border-color: #8fd4ff; font-weight: 700; }
.booking-form .cal-day.disabled { opacity: .55; }
.booking-form .cal-legend { display: flex; gap: 7px; align-items: center; font-size: 12px; color: #afbdcc; margin: 12px 0 0; }
.booking-form .cal-legend .dot { width: 8px; height: 8px; background: #8fd4ff; border-radius: 50%; }
.booking-form .slots-wrap, .booking-form .cal-chosen, .booking-form .status { display: none; }
.booking-form .slots-wrap.show, .booking-form .cal-chosen.show, .booking-form .status.show { display: block; }
.booking-form .slots-wrap { margin-top: 20px; }
.booking-form .sl-label { font-size: 15px; margin-bottom: 10px; }
.booking-form .slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.booking-form .slot { min-height: 44px; border: 1px solid #65768a; border-radius: 6px; color: #eef3f8; background: #071019; font: inherit; cursor: pointer; }
.booking-form .cal-chosen { margin-top: 16px; font-size: 14px; padding-left: 14px; border-left: 2px solid #48b7ff; color: #b7c5d5; }
.booking-form .cal-chosen b { color: #eef3f8; }
.booking-form .status { margin-top: 20px; }
.booking-form .success-screen h2 { font-size: 32px; }
.roadmap-intro { max-width: 1180px; }
.roadmap-intro h1 { max-width: 17ch; }
.roadmap-intro .lead, .roadmap-intro .note { max-width: 64ch; }
.roadmap-tool { max-width: 880px !important; }
.roadmap-tool .rm-progress { height: 3px; background: #334355; margin-bottom: 24px; overflow: hidden; }
.roadmap-tool .rm-progress-bar { background: #48b7ff; height: 100%; }
.roadmap-tool .rm-qcount { font-size: 13px; color: #8fd4ff; margin: 0 0 12px; }
.roadmap-tool .rm-question { margin: 0 0 26px; font-size: clamp(26px, 3.5vw, 36px); line-height: 1.2; }
.roadmap-tool .rm-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.roadmap-tool .rm-choice { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px; border: 1px solid #65768a; border-radius: 8px; background: #071019; color: #eef3f8; font: inherit; font-size: 17px; text-align: left; cursor: pointer; min-height: 72px; }
.roadmap-tool .rm-choice:hover, .roadmap-tool .rm-choice.is-picked { background: #142d44; border-color: #8fd4ff; }
.roadmap-tool .rm-choice strong { display: block; font-weight: 600; line-height: 1.35; }
.roadmap-tool .rm-choice small { display: block; color: #afbdcc; font-size: 14px; line-height: 1.45; margin-top: 5px; }
.roadmap-tool .rm-choice > span:last-child { color: #8fd4ff; }
.roadmap-tool .rm-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }
.roadmap-tool .rm-back, .roadmap-tool .rm-reset { border: 0; background: transparent; color: #8fd4ff; cursor: pointer; padding: 12px 0; font: inherit; font-size: 15px; text-decoration: underline; text-underline-offset: 5px; }
.roadmap-tool .rm-hint { color: #afbdcc; font-size: 13px; }
.roadmap-tool .rm-result-head h2 { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; }
.roadmap-tool .rm-steps { counter-reset: step; list-style: none; padding: 0; margin: 32px 0; border-top: 1px solid #334355; }
.roadmap-tool .rm-steps li { padding: 25px 0 25px 54px; border-bottom: 1px solid #334355; position: relative; }
.roadmap-tool .rm-steps li:before { counter-increment: step; content: '0' counter(step); font-size: 14px; font-family: monospace; color: #8fd4ff; position: absolute; top: 29px; left: 0; }
.roadmap-tool .rm-steps h3 { font-size: 22px; margin: 0 0 8px; }
.roadmap-tool .rm-steps p { margin: 0; color: #afbdcc; }
.roadmap-tool .rm-summary { margin: 30px 0; }
.roadmap-tool .rm-summary summary { cursor: pointer; min-height: 44px; color: #8fd4ff; }
.roadmap-tool .rm-summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; font-size: 14px; }
.roadmap-tool .rm-summary dt { color: #afbdcc; }
.roadmap-tool .rm-summary dd { margin: 0; }
.roadmap-tool .rm-gate { margin-top: 40px; }
.roadmap-tool .rm-gate h3 { font-size: 28px; margin: 0 0 12px; }
.roadmap-tool .rm-gate .lead { font-size: 17px; }
.roadmap-tool .rm-msg { margin: 16px 0 0; font-size: 15px; }
.roadmap-tool .rm-msg.is-ok { color: #b8e8d3; }
.roadmap-tool [data-rm-turnstile] { overflow: auto; margin-bottom: 18px; }
.roadmap-footer { text-align: center; }
@media (max-width: 900px) { .journey-page .enquiry-layout, .journey-page .booking-layout { grid-template-columns: 1fr; max-width: 700px; } .journey-page .enquiry-intro h1, .journey-page .booking-intro h1 { max-width: 15ch; } .journey-page .enquiry-intro .lead, .journey-page .booking-intro .lead { max-width: 55ch; } .journey-page .enquiry-options { display: none; } }
@media (max-width: 560px) { .journey-page .form-grid, .booking-form .pair { grid-template-columns: 1fr; gap: 0; } .booking-form .pair > div + div { margin-top: 24px; } .journey-card { padding: 24px 20px; } .roadmap-tool .rm-opts { grid-template-columns: 1fr; } .roadmap-tool .rm-summary dl { grid-template-columns: 1fr; gap: 4px; } .roadmap-tool .rm-summary dd { margin-bottom: 12px; } .roadmap-tool .rm-choice { min-height: 68px; } .journey-page .enquiry-person { margin: 24px 0 0; } }
@media (max-width: 390px) { .booking-form.journey-card { padding: 20px 10px; } .booking-form .cal-wrap { padding: 10px 5px; } .booking-form .cal-grid { gap: 3px; } .booking-form .ctype-opt { gap: 8px; padding: 12px 8px; } .booking-form .ctype-opt.selected { padding: 11px 7px; } .booking-form .ct-t { font-size: 14px; } .booking-form .ct-s { font-size: 12px; } .booking-form .cal-head h3 { font-size: 17px; } }
