/* Scoped consultation guidance; no portal or shared-page changes. */
.order-main{--guide-orange:#b7470b;--guide-wash:#fff3e7}
.order-progress{border-width:2px;border-radius:12px;box-shadow:0 5px 0 #20273312}
.order-progress button{position:relative;gap:12px;transition:background .15s;min-width:0}
.order-progress b{display:grid;place-items:center;flex:0 0 32px;height:32px;border:1px solid #cbd2dc;border-radius:50%;color:#566171;background:#f3f5f8;letter-spacing:0}
.order-progress button[aria-current=true]{background:var(--order-blue);color:#fff;box-shadow:none}
.order-progress button[aria-current=true] b{background:#fff;border-color:#fff;color:var(--order-blue)}
.order-progress button[data-visited=true]:not([aria-current=true]) b{background:#edf3ff;border-color:#9bb9ff;color:var(--order-blue)}
.order-progress button:disabled{opacity:.5;cursor:not-allowed}
.order-progress button:not(:disabled):not([aria-current=true]):hover{background:#edf3ff}
.order-panel .pick-card{border-radius:8px;padding-top:40px}
.order-panel .pick-card:has(input:checked){border-color:var(--guide-orange);background:var(--guide-wash);box-shadow:0 0 0 2px var(--guide-orange),4px 4px 0 #edc6a5}
.pick-card:has(input:checked)::after{content:'✓ 선택됨';position:absolute;top:10px;right:12px;font-size:12px;font-weight:800;color:#843107;background:#ffe0c3;border-radius:4px;padding:2px 7px}
html[lang=ja] .pick-card:has(input:checked)::after{content:'✓ 選択中'}
.order-panel .option-list label{border-radius:6px}
.order-panel .option-list label:has(input:checked){border-color:var(--guide-orange);background:var(--guide-wash);box-shadow:inset 3px 0 var(--guide-orange)}
.order-panel .option-list input{accent-color:var(--guide-orange)}
.order-panel .option-list label:has(input:disabled){opacity:.48;cursor:not-allowed}
.order-panel .pick-card:focus-within,.order-panel .option-list label:focus-within,.order-progress button:focus-visible,.step-actions button:focus-visible{outline:2px solid var(--order-blue);outline-offset:-5px}
.order-panel .step-actions .next,.order-panel .step-actions .submit{border-radius:6px;min-height:48px}
.order-panel .step-actions button{cursor:pointer;line-height:1.5}
@media(max-width:620px){.order-progress button{padding:10px 8px;font-size:15px;gap:7px}.order-progress b{flex-basis:28px;height:28px;font-size:12px}.order-progress small{display:block;font-size:10px}.order-guide{padding:12px;font-size:13px}.order-guide strong{font-size:15px}.order-panel .step-actions{flex-direction:column-reverse}.order-panel .step-actions button{width:100%;flex:auto}}
@media(prefers-reduced-motion:reduce){.order-progress button,.pick-card{transition:none}}
/* Non-blocking, temporary guidance. No persistent guide panel. */
.order-coach{position:fixed;z-index:1200;box-sizing:border-box;max-width:calc(100vw - 24px);width:292px;padding:13px 35px 13px 15px;background:#1555e8;color:#fff;border:1px solid #fff;border-radius:10px;box-shadow:0 8px 28px #12316c33;font-size:14px;line-height:1.65;pointer-events:none;opacity:0;transition:opacity .15s;translate:0 0}
.order-coach.is-visible{opacity:1}
.order-coach strong{display:block;font-size:14px;margin:0 0 3px;color:#fff}
.order-coach p{margin:0;color:#fff;font-size:13px}
.order-coach button{position:absolute;right:5px;top:5px;width:28px;height:28px;border:0;border-radius:5px;background:transparent;color:#fff;font-size:22px;cursor:pointer;pointer-events:auto;line-height:1}
.order-coach button:hover,.order-coach button:focus-visible{background:#ffffff26;outline:2px solid white}
.order-coach::after{content:'';position:absolute;left:var(--arrow-x,40px);width:12px;height:12px;background:#1555e8;transform:translateX(-50%) rotate(45deg)}
.order-coach[data-side=below]::after{top:-7px;border-left:1px solid white;border-top:1px solid white}
.order-coach[data-side=above]::after{bottom:-7px;border-right:1px solid white;border-bottom:1px solid white}
.order-coach-target{outline:2px dashed #1555e8!important;outline-offset:-3px}
@media(prefers-reduced-motion:reduce){.order-coach{transition:none}}

/* Keep focus inside cards/fieldset edges: outside outlines are clipped by fieldsets. */
.order-panel :is(button,a,input:not([type=radio]):not([type=checkbox]),textarea,select):focus-visible{outline:2px solid var(--order-blue);outline-offset:-5px}
.order-panel .pick-card input:focus-visible,.order-panel .option-list input:focus-visible{outline:none}
.order-progress button[aria-current=true]:focus-visible{outline-color:#fff}
#message-area #copy-quote:focus-visible{outline:2px solid var(--order-blue);outline-offset:-5px}

/* Step transitions must never leave a clipping mask over interactive content. */
.order-panel .order-section.cut-enter-forward,.order-panel .order-section.cut-enter-back{animation-name:order-step-fade;clip-path:none}
@keyframes order-step-fade{from{opacity:0}to{opacity:1}}
.order-panel .plan-picker,.order-panel .option-list{padding:4px 6px 6px}
.order-panel :is(.order-section,.plan-picker,.pick-card,.choice-grid,.option-list,.customer-grid,.customer-grid label){min-width:0}
.order-panel :is(.description,.pick-card,.option-list label,.quote-lines dd,.customer-grid label){overflow-wrap:anywhere}
.order-panel .pick-card:has(input:checked){box-shadow:inset 0 0 0 1px var(--guide-orange),3px 3px 0 #edc6a5}
