/* Purchase journey only: reuse marketplace tokens without altering other screens. */
.journey { color: var(--market-text); font-size: 16px; padding-bottom: 24px; min-width: 0; }
.journey *, .journey *::before, .journey *::after { box-sizing: border-box; }
.journey :is(h1,h2,h3,p,dd,a,strong,code) { overflow-wrap: anywhere; }
.journey h1 { color: var(--market-navy); font-size: clamp(24px,2.3vw,32px); line-height: 1.2; margin: 0 0 16px; letter-spacing: -.025em; }
.journey h2 { font-size: 21px; margin: 0 0 16px; line-height: 1.3; }
.journey h3 { font-size: 17px; line-height: 1.3; margin: 0 0 8px; }
.journey p { line-height: 1.5; margin: 0 0 14px; }
.journey a { color: var(--market-blue); }
.journey :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--market-blue); outline-offset: 3px; box-shadow: none; }
.journey .btn { min-height: 44px; border-radius: 6px; padding: 10px 16px; font-size: 15px; line-height: 1.4; font-weight: 650; white-space: normal; display: inline-flex; justify-content: center; align-items: center; max-width: 100%; box-shadow: none; }
.journey .btn-brand { color: var(--market-navy); background: var(--market-orange); border: 1px solid var(--market-orange); }
.journey .btn-brand:hover { background: var(--market-orange-hover); border-color: var(--market-orange-hover); color: var(--market-navy); }
.journey .btn-soft { color: var(--market-navy); background: var(--market-surface); border: 1px solid var(--market-border); }
.journey .btn-soft:hover { border-color: var(--market-blue); background: #eef3ff; }
.journey .btn-outline-danger { color: #a12626; background: white; border: 1px solid #b45353; }
.journey .btn-outline-danger:hover { background: #fff1f1; }
.journey :is(button,input,select):disabled { opacity: .6; cursor: not-allowed; }
.journey .journey-full { width: 100%; }
.journey label { display: block; font-weight: 600; margin-bottom: 6px; }
.journey :is(.form-control,.form-select) { border: 1px solid #98a2b3; border-radius: 6px; background-color: white; color: var(--market-text); width: 100%; min-width: 0; font-size: 16px; box-shadow: none; }
.journey input.form-control, .journey select.form-select { min-height: 44px; padding: 9px 12px; }
.journey textarea.form-control { padding: 10px 12px; height: auto; min-height: 86px; }
.journey input[readonly] { background: var(--market-background); }
.journey .input-validation-error { border-color: #b42318; }
.journey .text-danger { color: #b42318 !important; }
.journey .alert { border-radius: 8px; padding: 16px; margin: 0 0 20px; }
.journey .validation-summary-valid, .journey .field-validation-valid { display: none; }
.journey-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.journey-heading h1, .journey-heading h3, .journey-heading p { margin: 0; }
.journey-heading > a, .journey-secondary-link { display: inline-flex; align-items: center; min-height: 44px; }
.journey-muted { color: #586477; font-size: 14px; }
.journey .market-breadcrumb { flex-wrap: wrap; font-size: 13px; margin: 0 0 18px; }
.journey-panel, .journey .checkout-form-shell, .journey .account-sidecard { background: white; border: 1px solid var(--market-border); border-radius: 8px; padding: 24px; box-shadow: none; min-width: 0; }
.journey-columns, .journey .checkout-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,340px); gap: 24px; align-items: start; }
.journey-columns > *, .journey .checkout-grid > *, .journey-field-grid > * { min-width: 0; }
.journey-stack { display: grid; gap: 20px; min-width: 0; }
.journey-summary { display: grid; gap: 12px; }
.journey .journey-summary > * { margin: 0; }
.journey-totals { margin: 12px 0 16px; }
.journey-totals > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; }
.journey-totals dt { font-weight: 400; }
.journey-totals dd { margin: 0; font-weight: 650; }
.journey-totals .journey-total { border-top: 1px solid var(--market-border); margin-top: 8px; padding-top: 16px; font-size: 24px; color: var(--market-navy); }
.journey-total dt { font-weight: 650; }
.journey-field { display: grid; gap: 3px; margin-bottom: 18px; min-width: 0; }
.journey-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.journey-payment-selected { border-left: 3px solid var(--market-blue); background: #eef3ff; padding: 12px; }
.journey-actions, .journey .checkout-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 16px 0; }
.journey-actions > *, .journey .checkout-actions > * { max-width: 100%; min-width: 0; }
.journey-quantity-form { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
.journey .journey-quantity { width: 88px; }
.journey-product { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 24px; align-items: start; }
.journey-gallery { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.journey-gallery:has(.journey-thumbs) { grid-template-columns: 72px minmax(0,1fr); }
.journey-product-copy { min-width: 0; position: sticky; top: 16px; padding: 24px; background: white; border: 1px solid var(--market-border); border-radius: 8px; }
.journey-stage { grid-column: -2; grid-row: 1; display: block; width: 100%; aspect-ratio: 1; max-height: 620px; padding: 0; overflow: hidden; background: white; border: 1px solid var(--market-border); border-radius: 8px; }
.journey-stage-zoom { cursor: zoom-in; }
.journey-stage-zoom.is-zoomed { cursor: zoom-out; touch-action: none; }
.journey-main-image { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .18s ease-out; }
.is-zoomed .journey-main-image { transform: scale(2.4); }
.journey-thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 8px; }
.journey-thumbs button { padding: 4px; border-radius: 6px; border: 1px solid var(--market-border); background: white; }
.journey-thumbs [aria-pressed=true] { border: 2px solid var(--market-blue); padding: 3px; }
.journey-thumbs img { width: 56px; height: 56px; object-fit: contain; }
.journey-product-price { font-size: 38px; line-height: 1.1; font-weight: 750; letter-spacing: -.02em; color: var(--market-navy); margin-bottom: 4px; }
.journey-seller { color: #586477; font-size: 14px; }
.journey-seller strong { color: var(--market-navy); font-weight: 650; }
.journey-stock { color: var(--market-success); font-size: 14px; font-weight: 650; margin-top: 12px; }
.journey-stock-low { color: #b54708; }
.journey-stock-empty { color: #9f2525; }
.journey-detail .journey-quantity-form { width: 100%; }
.journey-detail .journey-quantity-form .btn { flex: 1 1 180px; }
.journey-detail .journey-actions > .btn { width: 100%; }
.journey-trust { list-style: none; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--market-border); display: grid; gap: 10px; font-size: 14px; line-height: 1.4; }
.journey-trust li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 10px; align-items: start; }
.journey-trust .market-icon { width: 20px; height: 20px; color: var(--market-navy); }
.journey-related { margin-top: 32px; }
.journey-buybar { display: none; }
.journey-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0 0 20px; padding: 0; font-size: 14px; color: #586477; }
.journey-steps li { display: flex; align-items: center; gap: 8px; }
.journey-steps span { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid #98a2b3; font-size: 13px; font-weight: 650; }
.journey-steps .is-current { color: var(--market-navy); font-weight: 650; }
.journey-steps .is-current span { background: var(--market-navy); border-color: var(--market-navy); color: white; }
.journey-steps .is-done span { background: #edf8f1; border-color: #c2e3ce; color: #126332; }
.journey-payment-options legend { float: left; width: 100%; font-size: 21px; font-weight: 500; line-height: 1.3; margin: 0 0 12px; padding: 0; }
.journey-payment-options legend + * { clear: left; }
.journey .journey-payment-option { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 12px; margin: 0 0 8px; border: 1px solid var(--market-border); border-radius: 6px; font-weight: 500; cursor: pointer; }
.journey .journey-payment-option:has(input:checked) { border-color: var(--market-blue); background: #eef3ff; }
.journey-payment-option input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--market-blue); }
.journey-description { margin-top: 32px; max-width: 72ch; }
.journey-richtext h3 { color: var(--market-navy); margin: 20px 0 8px; }
.journey-richtext :is(ul,ol) { margin: 0 0 14px; padding-left: 22px; line-height: 1.5; }
.journey-richtext li + li { margin-top: 4px; }
.journey-richtext > :last-child { margin-bottom: 0; }
.journey-description .journey-facts { grid-template-columns: repeat(3,minmax(0,1fr)); margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--market-border); }
.journey-badge { display: inline-block; border: 1px solid var(--market-border); background: var(--market-background); border-radius: 4px; padding: 4px 8px; font-size: 13px; line-height: 1.5; text-transform: capitalize; color: var(--market-navy); }
.journey-badge-success { color: #126332; background: #edf8f1; border-color: #c2e3ce; }
.journey-badge-danger { color: #9f2525; background: #fff0ef; border-color: #edc7c3; }
.journey-status-list { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 12px 0; }
.journey-status-list > span { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.journey-status-panel { background: white; border: 1px solid var(--market-border); border-top: 4px solid var(--market-blue); border-radius: 8px; padding: 24px; margin-bottom: 20px; }
.journey-kicker { font-weight: 650; color: var(--market-navy); }
.journey-facts, .journey .detail-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 20px; padding: 0; background: transparent; border: 0; border-radius: 0; }
.journey-facts > div, .journey .detail-meta > div { padding: 0; background: none; border: 0; min-width: 0; }
.journey-facts dt, .journey .detail-meta dt { color: #586477; font-size: 13px; font-weight: 400; }
.journey-facts dd, .journey .detail-meta dd { margin: 4px 0 0; font-size: 15px; }
.journey .info-span-2 { grid-column: 1 / -1; }
.journey-cart-list, .journey-history { display: grid; gap: 16px; }
.journey-cart-line { display: grid; grid-template-columns: 96px minmax(0,1fr) auto; gap: 16px; background: white; border: 1px solid var(--market-border); border-radius: 8px; padding: 20px; }
.journey-cart-image img { width: 96px; height: 96px; object-fit: contain; }
.journey-cart-copy { min-width: 0; }
.journey-cart-copy h2 { font-size: 18px; margin: 0 0 8px; }
.journey-cart-copy h2 a { color: var(--market-text); text-decoration: none; }
.journey-cart-copy p { font-size: 14px; margin: 0 0 10px; }
.journey-line-total { text-align: right; }
.journey-line-total span { display: block; font-size: 12px; color: #586477; }
.journey-line-total strong { font-size: 20px; }
.journey-order-lines > div, .journey .summary-line { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; background: none; border: 0; border-bottom: 1px solid var(--market-border); border-radius: 0; }
.journey-order-lines > div > span, .journey .summary-line > div { min-width: 0; }
.journey-order-lines small, .journey .summary-line span { display: block; font-size: 13px; color: #586477; margin-top: 4px; }
.journey .summary-line > strong, .journey-order-lines > div > strong { flex-shrink: 0; }
.journey-empty { text-align: center; padding: 32px 16px; border: 1px solid var(--market-border); background: white; border-radius: 8px; }
.journey-auth { width: min(100%,560px); margin: 16px auto 32px; }
.journey-auth h1 { font-size: 28px; }
.journey-auth .section-heading { display: block; margin-bottom: 20px; }
.journey-auth-alternative { margin-top: 24px !important; }
.journey-account { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 32px; align-items: start; }
.journey-account-side { position: sticky; top: 16px; padding: 16px; background: white; border: 1px solid var(--market-border); border-radius: 8px; min-width: 0; }
.journey-account-who { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 12px; align-items: center; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--market-border); }
.journey-account-who strong, .journey-account-who span:not(.journey-avatar) { display: block; overflow-wrap: anywhere; line-height: 1.3; }
.journey-account-who strong { color: var(--market-navy); }
.journey-account-who span:not(.journey-avatar) { color: #586477; font-size: 13px; }
.journey-avatar { display: block; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.journey-avatar-empty { display: grid; place-items: center; background: var(--market-navy); color: white; font-size: 20px; font-weight: 650; }
.journey-account-nav { display: grid; gap: 2px; }
.journey .journey-account-nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 10px; border-radius: 6px; color: var(--market-text); text-decoration: none; }
.journey .journey-account-nav a:hover { background: var(--market-background); }
.journey .journey-account-nav a[aria-current=page] { background: #eef3ff; color: var(--market-navy); font-weight: 650; }
.journey-account-nav .market-icon { width: 20px; height: 20px; flex: none; }
.journey-account-logout { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--market-border); }
.journey-account-logout .btn { width: 100%; }
.journey-account-main { min-width: 0; }
.journey-account-attention { border-color: #f5c9a3; }
.journey-account-list { list-style: none; margin: 0; padding: 0; }
.journey-account-row { display: grid; grid-template-columns: minmax(0,1fr) 150px 90px 150px; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--market-border); }
.journey-account-row:first-child { padding-top: 0; }
.journey-account-row:last-child { border-bottom: 0; padding-bottom: 0; }
.journey-account-row-main { min-width: 0; }
.journey-account-row-main > * { display: block; }
.journey-account-row .journey-badge { justify-self: start; text-transform: none; }
.journey-account-row .journey-badge::first-letter { text-transform: uppercase; }
.journey-account-row-total { color: var(--market-navy); text-align: right; }
.journey-badge-warning { color: #93370d; background: #fff4e8; border-color: #f5c9a3; }
.journey-account-photo { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--market-border); }
.journey .journey-account-photo label { display: inline-flex; align-items: center; gap: 12px; margin: 0; padding: 4px 12px 4px 4px; border-radius: 8px; cursor: pointer; }
.journey .journey-account-photo label:hover { background: var(--market-background); }
.journey-account-photo-action { color: var(--market-blue); text-decoration: underline; }
.journey-account-photo small { display: block; font-weight: 400; }
.journey-account-photo input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.journey-account-photo input[type=file]:focus-visible + button, .journey-account-photo:has(input:focus-visible) label { outline: 3px solid var(--market-blue); outline-offset: 3px; }
.journey .journey-account-facts { margin-bottom: 0; }
@media (max-width:991.98px) {
    .journey-account { grid-template-columns: minmax(0,1fr); gap: 16px; }
    .journey-account-side { display: contents; }
    .journey-account-who { border: 0; margin: 0; padding: 0; order: 1; }
    .journey-account-main { order: 3; }
    .journey-account-nav { order: 2; display: flex; gap: 8px; overflow-x: auto; padding: 4px; margin: 0 -4px; scrollbar-width: none; }
    .journey .journey-account-nav a { flex: none; background: white; border: 1px solid var(--market-border); }
    .journey .journey-account-nav a[aria-current=page] { border-color: var(--market-blue); }
    .journey-account-nav .market-icon { display: none; }
    .journey-account-logout { order: 4; margin: 0; padding: 0; border: 0; }
}
@media (max-width:767.98px) {
    .journey-account-row { grid-template-columns: minmax(0,1fr) auto; }
    .journey-account-row-main { grid-column: 1 / -1; }
    .journey-account-row .btn { grid-column: 1 / -1; }
}
@media (max-width:1199.98px) { .journey-cart-line { grid-template-columns: 80px minmax(0,1fr); } .journey-cart-image img { width: 80px; height: 80px; } .journey-line-total { grid-column: 2; text-align: left; } }
@media (max-width:991.98px) {
    .journey-columns, .journey .checkout-grid { grid-template-columns: minmax(0,1fr); }
    .journey-product { grid-template-columns: minmax(0,1fr); gap: 16px; }
    .journey-product-copy { position: static; padding: 20px; }
    .journey-gallery, .journey-gallery:has(.journey-thumbs) { grid-template-columns: minmax(0,1fr); }
    .journey-stage { grid-column: 1; max-height: 460px; aspect-ratio: auto; height: min(100vw,460px); }
    .journey-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto; padding: 4px; }
    .journey-thumbs button { flex: none; }
    .journey-product-price { font-size: 32px; }
    .journey-detail { padding-bottom: 72px; }
    .journey-buybar:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; z-index: 1020; left: 0; right: 0; bottom: var(--journey-mobile-nav, 62px); padding: 8px 16px; background: white; border-top: 1px solid var(--market-border); box-shadow: 0 -4px 12px rgba(20,33,61,.08); }
    .journey-buybar strong { color: var(--market-navy); font-size: 20px; white-space: nowrap; }
}
@media (max-width:575.98px) {
    .journey h1 { font-size: 25px; }
    .journey h2 { font-size: 20px; }
    .journey .market-breadcrumb { margin-bottom: 12px; }
    .journey-product-copy { padding: 16px; }
    .journey-stage { height: 300px; }
    .journey-description .journey-facts { grid-template-columns: minmax(0,1fr); }
    .journey-product-copy h1 { margin-bottom: 12px; }
    .journey-product-copy .journey-muted { margin-bottom: 8px; }
    .journey-panel, .journey .checkout-form-shell, .journey .account-sidecard, .journey-status-panel { padding: 18px; }
    .journey-field-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
    .journey-cart-line { grid-template-columns: 64px minmax(0,1fr); padding: 14px; gap: 8px; }
    .journey-summary { gap: 8px; }
    .journey-summary .journey-totals > div { padding: 6px 0; }
    .journey-summary .journey-totals .journey-total { padding-top: 10px; }
    .journey-cart-image img { width: 64px; height: 64px; }
    .journey-cart-image { grid-column: 1; grid-row: 1 / span 2; }
    .journey-cart-copy { display: contents; }
    .journey-cart-copy h2, .journey-cart-copy > p { grid-column: 2; margin: 0; }
    .journey-cart-copy > .journey-badge { grid-column: 1 / -1; justify-self: start; }
    .journey-cart-copy .journey-actions { grid-column: 1 / -1; margin: 0; }
    .journey-line-total { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
    .journey-cart-copy .journey-actions { margin-bottom: 0; }
    .journey-facts, .journey .detail-meta { gap: 14px; }
    .journey .section-heading { display: block; }
    .journey .section-heading p { margin: 12px 0; }
    .journey .section-heading h1 { font-size: 25px; }
    .journey .section-heading .text-link { display: inline-flex; min-height: 44px; align-items: center; }
}
@media (prefers-reduced-motion: reduce) { .journey-main-image { transition: none; } }
