.orientation-page { background:#f5f6f4; }
.orientation-page .page-shell { max-width:1200px; margin-top:22px; }
.ori { --ori-ink:#14395b; --ori-green:#087669; --ori-muted:#536573; --ori-line:#dbe3df; color:var(--ori-ink); }
.ori [hidden] { display:none !important; }
.ori button,.ori input { font:inherit; }
.ori button { cursor:pointer; }
.ori button:disabled { cursor:default; }
.ori button:focus-visible,.ori a:focus-visible,.ori input:focus-visible,.ori summary:focus-visible { outline:3px solid #e5a82c; outline-offset:4px; }
.ori-intro { display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:38px; padding:47px 0 48px; }
.ori-eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 20px; color:var(--ori-green); font-size:.73rem; font-weight:750; letter-spacing:.11em; text-transform:uppercase; }
.ori-eyebrow>span { width:7px; height:7px; background:var(--ori-green); border-radius:50%; }
.ori h1 { margin:0; font-size:clamp(2.35rem,4.3vw,3.55rem); font-weight:650; line-height:1.13; letter-spacing:-.045em; }
.ori h1 em { color:var(--ori-green); font-family:Georgia,serif; font-weight:400; letter-spacing:-.035em; }
.ori-lead { max-width:530px; margin:25px 0 30px; color:var(--ori-muted); font-size:1.08rem; line-height:1.65; }
.ori-start { display:flex; align-items:center; gap:20px; }
.ori-start>span { color:var(--ori-muted); font-size:.77rem; line-height:1.6; }
.ori-button { display:inline-flex; align-items:center; justify-content:center; gap:25px; min-height:52px; border:1px solid var(--ori-ink); border-radius:7px; padding:12px 21px; color:#fff; background:var(--ori-ink); font-weight:650; font-size:.9rem; text-decoration:none; transition:background .15s; }
.ori-button:hover { background:#215072; }
.ori-button>span { font-size:1.2rem; font-weight:400; }
.ori-privacy { display:flex; gap:8px; align-items:center; margin:19px 0 0; color:var(--ori-muted); font-size:.76rem; }
.ori-map { position:relative; min-height:375px; background:radial-gradient(ellipse at center,#e8eeea 0,transparent 68%); }
.ori-map-lines { width:100%; height:100%; position:absolute; inset:0; }
.ori-map-origin { position:absolute; top:21px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:10px; padding:12px 24px; background:var(--ori-ink); color:white; border-radius:30px; box-shadow:0 8px 24px #14395b12; font-size:.82rem; white-space:nowrap; }
.ori-map-dot { width:8px; height:8px; border:2px solid #b9dacf; border-radius:50%; }
.ori-map-card { position:absolute; width:245px; background:white; border:1px solid var(--ori-line); border-radius:10px; padding:20px 22px 19px 52px; box-shadow:0 8px 28px #173d3010; }
.ori-map-card>span { position:absolute; left:18px; top:23px; color:var(--ori-green); font-size:.71rem; }
.ori-map-card strong { display:block; font-size:.88rem; font-weight:650; }
.ori-map-card small { display:block; margin-top:5px; color:var(--ori-muted); font-size:.72rem; line-height:1.5; }
.ori-map-card-one { top:130px; left:0; transform:rotate(-3deg); }
.ori-map-card-two { top:222px; right:0; transform:rotate(3deg); }
.ori-map-destination { position:absolute; left:10px; bottom:19px; color:var(--ori-green); font-size:.74rem; }
.ori-map-destination>span { margin-right:6px; }
.ori-map-note { position:absolute; right:6px; top:107px; color:#72867c; font-family:Georgia,serif; font-style:italic; font-size:.86rem; line-height:1.5; transform:rotate(4deg); }
.ori-how { display:grid; grid-template-columns:repeat(3,1fr); padding:27px 0 32px; border-top:1px solid var(--ori-line); border-bottom:1px solid var(--ori-line); }
.ori-how>div { position:relative; padding:0 25px 0 38px; }
.ori-how>div+div { border-left:1px solid var(--ori-line); padding-left:58px; }
.ori-how>div>span { position:absolute; left:0; top:2px; color:var(--ori-green); font-size:.73rem; }
.ori-how>div+div>span { left:20px; }
.ori-how h2 { margin:0 0 7px; font-size:.91rem; font-weight:650; }
.ori-how p { margin:0; color:var(--ori-muted); font-size:.8rem; line-height:1.6; }
.ori-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 14px; padding:25px 0 12px; font-size:.84rem; }
.ori-bottom p { margin:0; color:var(--ori-muted); }
.ori-bottom a { color:var(--ori-ink); font-weight:600; text-underline-offset:4px; }
.ori-bottom small { width:100%; margin-top:15px; text-align:center; color:#63716d; font-size:.72rem; }
.ori-workspace { display:grid; grid-template-columns:minmax(0,1fr) 265px; gap:28px; max-width:1060px; margin:35px auto 60px; align-items:start; scroll-margin-top:20px; }
.ori-question-panel { padding:32px 38px; background:#fff; border:1px solid var(--ori-line); border-radius:12px; box-shadow:0 8px 35px #13322104; }
.ori-progress-caption { display:flex; justify-content:space-between; gap:16px; color:var(--ori-muted); font-size:.74rem; }
.ori-progress-caption>span:first-child { color:var(--ori-green); font-weight:650; }
.ori-progress { height:4px; background:#eaf0ed; border-radius:8px; overflow:hidden; margin:14px 0 32px; }
.ori-progress>span { display:block; width:0; height:100%; background:var(--ori-green); border-radius:8px; transition:width .2s; }
.ori-fieldset { min-width:0; margin:0; padding:0; border:0; }
.ori-fieldset legend { padding:0; color:var(--ori-ink); font-size:clamp(1.35rem,2.5vw,1.8rem); font-weight:650; line-height:1.3; letter-spacing:-.025em; }
.ori-question-help { margin:13px 0 23px; color:var(--ori-muted); font-size:.86rem; line-height:1.65; }
.ori-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ori-options.ori-options-long { grid-template-columns:1fr; }
.ori-option { position:relative; display:flex; align-items:center; gap:11px; min-height:62px; margin:0; padding:14px 15px; border:1px solid #d8e1de; border-radius:7px; color:var(--ori-ink); cursor:pointer; transition:border-color .15s,background .15s; line-height:1.4; }
.ori-option:hover { background:#f6f9f7; border-color:#8daaa1; }
.ori-option:has(input:checked) { border-color:var(--ori-green); background:#edf6f1; box-shadow:inset 0 0 0 1px var(--ori-green); }
.ori-option:focus-within { outline:3px solid #e5a82c; outline-offset:3px; }
.ori-option input { flex-shrink:0; accent-color:var(--ori-green); width:17px; height:17px; margin:0; }
.ori-option span { display:block; font-size:.86rem; font-weight:550; }
.ori-option small { display:block; color:var(--ori-muted); margin-top:3px; font-size:.74rem; font-weight:400; }
.ori-question-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px; padding-top:22px; border-top:1px solid #e9eeea; }
.ori-back,.ori-text-button { background:transparent; border:0; color:var(--ori-muted); padding:9px 0; font-size:.81rem; text-underline-offset:4px; }
.ori-back:hover,.ori-text-button:hover { color:var(--ori-ink); text-decoration:underline; }
.ori-back:disabled { opacity:.4; cursor:default; }
.ori-error { margin:16px 0 0; color:#a12e2e; font-size:.85rem; }
.ori-companion { padding:27px 10px 15px 5px; }
.ori-companion .ori-eyebrow { margin-bottom:23px; }
.ori-stages { list-style:none; padding:0; margin:0; }
.ori-stages li { display:flex; align-items:flex-start; gap:13px; position:relative; padding:0 0 26px; color:#687970; }
.ori-stages li:not(:last-child):after { content:""; position:absolute; top:32px; left:14px; bottom:4px; width:1px; background:#dbe3df; }
.ori-stages li>span { display:grid; place-items:center; width:29px; height:29px; flex-shrink:0; border:1px solid #cbd8d2; border-radius:50%; font-size:.75rem; background:#f5f6f4; }
.ori-stages li.is-active { color:var(--ori-ink); }
.ori-stages li.is-active>span,.ori-stages li.is-done>span { color:#fff; border-color:var(--ori-green); background:var(--ori-green); }
.ori-stages strong { display:block; font-size:.83rem; font-weight:600; }
.ori-stages small { display:block; font-size:.72rem; margin-top:3px; color:var(--ori-muted); }
.ori-context { border-top:1px solid var(--ori-line); padding-top:15px; margin:2px 0 20px; font-size:.75rem; }
.ori-context p { color:var(--ori-muted); margin:0 0 8px; }
.ori-context ul { list-style:none; padding:0; margin:0; }
.ori-context li { margin-top:5px; }
.ori-context li:before { content:"✓"; color:var(--ori-green); padding-right:7px; }
.ori-companion-note { color:var(--ori-muted); font-size:.76rem; line-height:1.7; margin:0 0 13px; }
.ori-companion .ori-text-button { font-size:.74rem; }
.ori-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; border:1px solid #b9c9c1; border-radius:6px; background:transparent; color:var(--ori-ink); padding:10px 16px; font-size:.83rem; font-weight:600; }
.ori-secondary:hover { background:#edf3ef; }
.ori-secondary:disabled { color:#6d7d76; border-color:#d2dad5; background:#edf0ed; }
.ori-results-header { max-width:760px; margin:45px 0 35px; }
.ori-results-header h1 { font-size:clamp(2.2rem,4.2vw,3.3rem); }
.ori-results-header>p:not(.ori-eyebrow) { max-width:640px; color:var(--ori-muted); font-size:.96rem; }
.ori-result-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.ori-result-tags span { display:inline-block; padding:5px 10px; border:1px solid #d3ded8; border-radius:20px; background:#ecf1ed; color:#486454; font-size:.72rem; }
.ori-result-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; align-items:start; gap:30px; }
.ori-result-card { position:relative; margin:0 0 18px; background:#fff; border:1px solid var(--ori-line); border-radius:10px; overflow:hidden; }
.ori-result-card.is-first { border-top:3px solid var(--ori-green); }
.ori-card-top { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:18px 25px 0; }
.ori-card-kicker { margin:0; color:var(--ori-green); font-size:.7rem; font-weight:650; letter-spacing:.04em; text-transform:uppercase; }
.ori-card-number { color:#7a8e81; font-size:.75rem; }
.ori-card-body { padding:10px 25px 22px; }
.ori-result-card h2 { margin:0 0 10px; color:var(--ori-ink); font-size:1.4rem; font-weight:650; letter-spacing:-.025em; line-height:1.3; }
.ori-card-description { color:var(--ori-muted); font-size:.86rem; margin:0 0 17px; }
.ori-meta { color:#486454; font-size:.75rem; line-height:1.6; margin:0 0 12px; }
.ori-calendar-note { margin:15px 0 0; padding:11px 13px; border-radius:5px; background:#f4f6f3; color:var(--ori-muted); font-size:.76rem; line-height:1.6; }
.ori-horizon-title { color:var(--ori-ink); font-size:1rem; margin:24px 0 12px; }
.ori-alternative { padding:15px 0; color:var(--ori-muted); font-size:.79rem; }
.ori-alternative+.ori-alternative { border-top:1px solid var(--ori-line); }
.ori-alternative>a:first-child { color:var(--ori-ink); font-weight:650; }
.ori-alternative p { margin:7px 0; line-height:1.6; }
.ori-alternative strong { color:#755523; font-size:.74rem; }
.ori-excluded { margin:24px 0; padding:20px; border:1px solid var(--ori-line); border-radius:8px; background:white; }
.ori-excluded summary { cursor:pointer; font-weight:600; font-size:.9rem; }
.ori-excluded p { margin:10px 0; font-size:.81rem; color:var(--ori-muted); }
.ori-excluded ul { padding-left:18px; }
.ori-excluded li { margin:16px 0; }
.ori-excluded li a { color:var(--ori-ink); font-size:.83rem; font-weight:600; }
.ori-excluded li small { display:block; color:var(--ori-muted); font-size:.76rem; line-height:1.6; }
.ori-entry-resources { margin:25px 0; padding:18px; background:#e9f1eb; border-radius:7px; font-size:.8rem; }
.ori-entry-resources a { display:block; color:var(--ori-ink); font-weight:600; margin-bottom:9px; }
.ori-entry-resources span { color:var(--ori-muted); line-height:1.65; }
.ori-reasons { margin:0 0 17px; padding:12px 15px; background:#f0f6f2; border-radius:6px; }
.ori-reasons strong { font-size:.76rem; color:#2c6552; }
.ori-reasons ul { padding:0; margin:6px 0 0; list-style:none; }
.ori-reasons li { color:#3e5d51; font-size:.78rem; line-height:1.6; }
.ori-reasons li:before { content:"✓"; padding-right:7px; color:var(--ori-green); }
.ori-route-label { display:inline-block; border-radius:4px; padding:3px 7px; background:#eef1f6; color:#345274; font-size:.69rem; font-weight:600; }
.ori-route-label.is-conditional { background:#fbf0db; color:#79561d; }
.ori-route-text,.ori-watch { margin:9px 0 0; color:var(--ori-muted); font-size:.8rem; line-height:1.7; }
.ori-access-note { margin:12px 0 0; padding-left:11px; border-left:2px solid #d9b569; color:#755523; font-size:.77rem; line-height:1.65; }
.ori-result-card details { border-top:1px solid #e4eae6; margin-top:16px; padding-top:12px; font-size:.8rem; }
.ori-result-card summary,.ori-limits summary { color:var(--ori-ink); cursor:pointer; font-weight:600; }
.ori-watch-list { color:#755523; padding-left:19px; font-size:.78rem; line-height:1.6; }
.ori-card-links { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:19px; }
.ori-card-links a { color:var(--ori-ink); font-size:.81rem; font-weight:600; text-underline-offset:4px; }
.ori-source-link { display:block; margin-top:14px; color:var(--ori-muted); font-size:.71rem; text-underline-offset:3px; }
.ori-next-step,.ori-email { background:#e9f1eb; padding:25px; border:1px solid #d9e4dc; border-radius:10px; margin-bottom:22px; }
.ori-small-label { color:var(--ori-green); font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; }
.ori-next-step h2,.ori-email h2 { margin:9px 0 17px; font-size:1.2rem; line-height:1.3; font-weight:600; }
.ori-next-step ol { margin:0; padding-left:19px; color:#425e51; font-size:.81rem; }
.ori-next-step li+li { margin-top:13px; }
.ori-next-step>p { font-size:.78rem; color:var(--ori-muted); margin-top:21px; }
.ori-next-step>a { display:block; font-size:.78rem; color:var(--ori-ink); font-weight:600; margin-top:20px; }
.ori-email { background:#fff; }
.ori-email h2 { margin-top:0; }
.ori-email p { font-size:.79rem; color:var(--ori-muted); }
.ori-email fieldset { padding:0; margin:20px 0 0; border:0; min-width:0; }
.ori-email label { font-size:.75rem; }
.ori-email input[type=email] { margin:6px 0 14px; width:100%; border:1px solid #d7dfd9; background:#f5f6f4; border-radius:5px; min-height:43px; padding:8px 10px; font-size:.8rem; }
.ori-consent { display:flex; gap:8px; color:#64736b; line-height:1.55; }
.ori-consent input { margin:3px 0 0; }
.ori-email button { width:100%; margin-top:17px; font-size:.74rem; }
.ori-result-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:28px 0 10px; }
.ori-result-actions .ori-button { font-size:.82rem; }
.ori-conditional>h2 { font-size:1.15rem; margin:30px 0 8px; }
.ori-conditional>p { color:var(--ori-muted); font-size:.82rem; }
.ori-no-results { padding:24px; border:1px solid var(--ori-line); background:white; border-radius:7px; }
.ori-limits { padding:24px 0 0; margin-top:38px; border-top:1px solid var(--ori-line); max-width:825px; }
.ori-limits h2 { font-size:.95rem; font-weight:600; }
.ori-limits p,.ori-limits details { color:var(--ori-muted); font-size:.77rem; line-height:1.75; }
.ori-dialog { max-width:470px; padding:28px; border:1px solid var(--ori-line); border-radius:10px; color:var(--ori-ink); }
.ori-dialog::backdrop { background:#102b3c80; }
.ori-dialog h2 { font-size:1.2rem; margin:0 0 12px; }
.ori-dialog p { font-size:.9rem; color:var(--ori-muted); }
.ori-dialog>div { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
@media(max-width:900px) {
 .ori-intro { gap:10px; grid-template-columns:1.25fr 1fr; }
 .ori-map-card { width:210px; padding-left:43px; }
 .ori-map-note { display:none; }
 .ori-start { align-items:flex-start; flex-direction:column; gap:12px; }
 .ori-workspace { grid-template-columns:minmax(0,1fr) 210px; gap:18px; }
 .ori-question-panel { padding:27px; }
 .ori-result-layout { grid-template-columns:minmax(0,1fr) 250px; gap:20px; }
}
@media(max-width:700px) {
 .ori-intro { grid-template-columns:1fr; padding:26px 0 29px; gap:0; }
 .ori-map { display:none; }
 .ori h1 { font-size:clamp(2rem,7vw,3rem); }
 .ori-lead { font-size:.98rem; margin:20px 0 24px; }
 .ori-start { align-items:flex-start; }
 .ori-eyebrow { margin-bottom:16px; font-size:.67rem; }
 .ori-how { grid-template-columns:1fr; gap:23px; padding:25px 0; }
 .ori-how>div,.ori-how>div+div { padding:0 0 0 36px; border:0; }
 .ori-how>div+div>span { left:0; }
 .ori-how h2 { font-size:.88rem; }
 .ori-how p { font-size:.78rem; }
 .ori-bottom { justify-content:flex-start; font-size:.78rem; gap:5px 12px; padding-top:22px; }
 .ori-bottom small { text-align:left; line-height:1.6; }
 .ori-workspace { grid-template-columns:1fr; margin:22px 0 35px; gap:0; }
 .ori-question-panel { padding:23px 20px; }
 .ori-progress { margin-bottom:25px; }
 .ori-options { gap:9px; }
 .ori-option { padding:12px; min-height:57px; }
 .ori-option span { font-size:.81rem; }
 .ori-option small { font-size:.7rem; }
 .ori-question-actions .ori-button { min-height:47px; padding:10px 16px; gap:14px; }
 .ori-companion { padding:19px 5px 0; }
 .ori-companion .ori-eyebrow,.ori-stages,.ori-context { display:none !important; }
 .ori-companion-note { display:inline; font-size:.73rem; }
 .ori-companion .ori-text-button { display:block; margin-top:6px; }
 .ori-result-layout { grid-template-columns:1fr; gap:20px; }
 .ori-results-header { margin:27px 0; }
 .ori-results-header h1 { font-size:2.2rem; }
 .ori-results-header>p:not(.ori-eyebrow) { font-size:.87rem; }
 .ori-card-top { padding:16px 19px 0; }
 .ori-card-body { padding:9px 19px 20px; }
 .ori-result-card h2 { font-size:1.25rem; }
 .ori-card-description { font-size:.82rem; }
 .ori-result-actions { margin-top:23px; }
 .ori-result-actions .ori-button { width:100%; }
 .ori-result-aside { display:grid; grid-template-columns:1fr; gap:0; }
 .ori-limits { margin-top:16px; }
 .ori-dialog { width:calc(100% - 32px); padding:24px; }
}
@media(max-width:370px) { .ori-options { grid-template-columns:1fr; } .ori-question-panel { padding:20px 16px; } .ori h1 { font-size:2rem; } .ori-fieldset legend { font-size:1.3rem; } }
@media(prefers-reduced-motion:reduce) { .ori * { transition:none!important; scroll-behavior:auto!important; } }
@media print {
 .site-header,.site-footer,.breadcrumbs,.skip-link,.ori-result-aside,.ori-result-actions,.ori-text-button,.ori-bottom,.ori-intro,.ori-how,.ori-workspace,.ori-result-tags { display:none!important; }
 body.orientation-page { background:#fff; font-size:11pt; }
 .orientation-page .page-shell { max-width:none; margin:0; padding:0; }
 .ori-results-header { margin:0 0 20px; }
 .ori-results-header h1 { font-size:25pt; }
 .ori-result-layout { display:block; }
 .ori-result-card { break-inside:avoid; box-shadow:none; }
 .ori-result-card details>*,.ori-limits details>* { display:block!important; }
 .ori-card-links a:after,.ori-source-link:after { content:" (" attr(href) ")"; font-size:8pt; word-break:break-all; }
 .ori-limits { max-width:none; }
}
