/* V2 cart/checkout layout. No dependency on the legacy Bootstrap theme. */
.v2-purchase { padding-bottom:48px; color:#333; background:#f2f3f3; }
.v2-purchase-heading { padding:12px 0 28px; }
.v2-purchase-heading>span { border-left:3px solid #f78400; padding-left:10px; font-size:11px; letter-spacing:1px; }
.v2-purchase-heading h1 { font-size:30px; margin:12px 0 8px; }
.v2-purchase-heading p { margin:0; color:#606873; font-size:14px; line-height:1.7; }
.v2-purchase-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }
.v2-cart-content,.v2-checkout-content { min-width:0; }
.v2-cart-items,.v2-order-summary,.v2-checkout-card,.v2-purchase-empty { background:#fff; border:1px solid #dedede; border-radius:10px; }
.v2-cart-item { display:grid; grid-template-columns:90px minmax(0,1fr) 90px 120px; align-items:center; gap:16px; padding:24px 20px; border-bottom:1px solid #dedede; }
.v2-cart-item:last-child { border-bottom:0; }
.v2-cart-image { display:flex; align-items:center; justify-content:center; height:95px; padding:5px; }
.v2-cart-image img { width:100%; height:100%; object-fit:contain; }
.v2-cart-info h2 { font-size:14px; line-height:1.5; margin:0 0 8px; overflow-wrap:anywhere; }
.v2-cart-info a,.v2-checkout-items a { color:#333; }
.v2-cart-info p { margin:5px 0; font-size:12px; line-height:1.6; color:#606873; }
.v2-cart-remove { display:inline-flex; min-height:44px; align-items:center; gap:7px; padding:4px 0; border:0; background:none; color:#333; font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; }
.v2-purchase label { display:grid; gap:8px; font-size:13px; line-height:1.6; }
.v2-purchase input,.v2-purchase select { width:100%; min-width:0; min-height:44px; padding:10px; border:1px solid #606873; border-radius:5px; color:#333; background:#fff; font:inherit; font-size:14px; }
.v2-cart-line-total { font-size:15px; text-align:right; overflow-wrap:anywhere; }
.v2-cart-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; }
.v2-cart-actions>a,.v2-purchase-back { color:#333; font-size:13px; text-decoration:underline; display:inline-flex; align-items:center; min-height:44px; }
.v2-order-summary { padding:24px; position:sticky; top:18px; }
.v2-order-summary h2 { margin:0 0 22px; font-size:19px; }
.v2-order-summary dl { margin:0; }
.v2-order-summary dl>div { display:flex; justify-content:space-between; gap:18px; margin:0 0 18px; font-size:13px; line-height:1.6; }
.v2-order-summary dd { margin:0; text-align:right; font-weight:700; }
.v2-order-summary p { font-size:12px; color:#606873; line-height:1.7; }
.v2-order-summary>.v2-button { width:100%; margin:12px 0; font-size:14px; }
.v2-summary-quote { display:block; padding:12px 0 0; font-size:12px; line-height:1.7; color:#333; text-decoration:underline; }
.v2-summary-total { border-top:1px solid #dedede; padding-top:18px; }
.v2-summary-total dd { font-size:20px; }
.v2-purchase-message { padding:16px 20px; border:1px solid #606873; border-left:4px solid #f78400; border-radius:6px; background:#fff; font-size:14px; line-height:1.7; margin-bottom:20px; }
.v2-purchase-message.is-success { border-color:#24713d; color:#205e34; background:#edf8f0; }
.v2-purchase-message a { color:#333; text-decoration:underline; }
.v2-purchase-empty { padding:54px 20px; text-align:center; }
.v2-purchase-empty>i { font-size:36px; color:#606873; }
.v2-purchase-empty h2 { font-size:23px; }
.v2-purchase-empty p { font-size:14px; line-height:1.7; margin-bottom:24px; }
.v2-purchase-hint { padding:12px 14px; border-left:3px solid #f78400; background:#f2f3f3; font-size:13px; line-height:1.7; }
.v2-purchase-status { font-size:13px; line-height:1.7; }
.v2-purchase-steps { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin:0 0 22px; padding:0; list-style:none; font-size:12px; }
.v2-purchase-steps li { display:flex; align-items:center; gap:8px; }
.v2-purchase-steps span { display:flex; width:28px; height:28px; align-items:center; justify-content:center; border:1px solid #606873; border-radius:50%; background:#fff; }
.v2-purchase-steps [aria-current] span { background:#f78400; border-color:#333; font-weight:700; }
.v2-checkout-card { padding:24px; margin-bottom:22px; }
.v2-checkout-card-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.v2-checkout-card h2 { font-size:20px; margin:0; }
.v2-checkout-card-heading>span { color:#606873; font-size:12px; }
.v2-checkout-card p { font-size:14px; line-height:1.7; }
.v2-checkout-login>i { font-size:28px; margin-bottom:20px; }
.v2-checkout-login .v2-button { margin:12px 6px 0 0; }
.v2-address-cards { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.v2-address-cards address { display:grid; gap:6px; align-content:start; font-style:normal; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.v2-address-cards h3 { font-size:14px; margin:0 0 5px; }
.v2-address-cards span { color:#606873; }
.v2-address-editor { margin-top:20px; }
.v2-address-editor summary { padding:12px 0; min-height:44px; cursor:pointer; font-size:13px; text-decoration:underline; }
.v2-address-editor fieldset { border:0; margin:18px 0; padding:0; min-width:0; }
.v2-address-editor legend { font-size:16px; font-weight:700; padding:0; margin-bottom:16px; }
.v2-address-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.v2-address-field.is-wide { grid-column:1/-1; }
.v2-address-field label { margin-bottom:6px; }
.v2-address-field small { display:block; margin-top:6px; font-size:12px; line-height:1.6; }
.v2-address-field [aria-invalid] { border:2px solid #333; }
#v2-copy-address { margin-bottom:16px; font-size:12px; }
.v2-checkout-items { list-style:none; margin:0 0 22px; padding:0; }
.v2-checkout-items li { display:flex; gap:12px; padding:14px 0; border-bottom:1px solid #dedede; }
.v2-checkout-items img { width:52px; height:60px; object-fit:contain; }
.v2-checkout-items a { font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.v2-checkout-items small { display:block; color:#606873; font-size:12px; margin-top:7px; }
.v2-payment-option { border:1px solid #606873; border-radius:7px; margin:12px 0; padding:0 16px; }
.v2-payment-option summary { padding:16px 0; cursor:pointer; font-size:15px; font-weight:700; }
.v2-payment-option summary>span { display:block; padding:8px 0 0 20px; font-size:12px; font-weight:400; color:#606873; }
.v2-payment-option form { padding:6px 0 18px; }
.v2-checkout-card [data-payment-submit]>.v2-button { margin-top:18px; width:100%; }
.v2-payment-option fieldset { border:0; padding:0; margin:0; }
.v2-payment-option legend { font-size:14px; margin-bottom:10px; }
.v2-purchase .v2-payment-radio { display:flex; min-height:44px; align-items:center; gap:10px; }
.v2-purchase .v2-payment-radio input { width:18px; height:18px; min-height:0; accent-color:#333; }
.v2-payment-processing:not([hidden]) { position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(19,25,33,.8); }
.v2-payment-processing>div { width:min(100%,460px); padding:32px 24px; text-align:center; background:#fff; color:#333; border-radius:12px; }
.v2-payment-processing h2 { font-size:22px; }
.v2-payment-processing p { font-size:14px; line-height:1.7; }
.v2-payment-spinner { display:inline-block; width:38px; height:38px; border:4px solid #dedede; border-top-color:#f78400; border-radius:50%; animation:v2-payment-spin 1s linear infinite; }
@keyframes v2-payment-spin { to { transform:rotate(360deg); } }
.v2-purchase :is(a,button,input,select,summary):focus-visible { outline:3px solid #333; outline-offset:3px; }
.v2-purchase [aria-disabled=true] { opacity:.7; cursor:not-allowed; }
@media(max-width:1150px) { .v2-cart-item { grid-template-columns:70px minmax(0,1fr) 80px; gap:12px; } .v2-cart-line-total { grid-column:2/-1; } .v2-purchase-layout { grid-template-columns:minmax(0,1fr) 300px; gap:18px; } }
@media(max-width:900px) { .v2-purchase-layout { grid-template-columns:minmax(0,1fr); } .v2-order-summary { position:static; } }
@media(max-width:600px) {
    .v2-purchase-heading h1 { font-size:26px; }
    .v2-cart-item { padding:16px 12px; grid-template-columns:65px minmax(0,1fr); }
    .v2-cart-info h2 { font-size:13px; }
    .v2-cart-quantity { grid-column:1; font-size:11px!important; }
    .v2-cart-line-total { grid-column:2; align-self:end; padding-bottom:12px; }
    .v2-cart-actions { flex-direction:column; align-items:stretch; }
    .v2-cart-actions>.v2-button { width:100%; }
    .v2-checkout-card,.v2-order-summary { padding:20px 16px; }
    .v2-address-cards { grid-template-columns:1fr; }
    .v2-address-cards address+address { padding-top:16px; border-top:1px solid #dedede; }
    .v2-address-fields { grid-template-columns:minmax(0,1fr); }
    .v2-purchase input,.v2-purchase select { font-size:16px; }
    .v2-purchase-steps { flex-direction:column; gap:8px; }
}
@media(prefers-reduced-motion:reduce) { .v2-payment-spinner { animation:none; } }

.v2-result-page { padding:48px 0; }
.v2-result-card { max-width:680px; margin:0 auto; padding:40px; text-align:center; background:#fff; border:1px solid #dedede; border-radius:12px; }
.v2-result-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; color:#333; background:#f2f3f3; font-size:28px; }
.v2-result-card.is-success .v2-result-icon { background:#edf8f0; color:#205e34; }
.v2-result-card.is-warning .v2-result-icon { background:#f78400; color:#333; }
.v2-result-eyebrow { font-size:11px; letter-spacing:.8px; margin:22px 0 12px; color:#606873; }
.v2-result-card h1 { margin:0 0 16px; font-size:28px; line-height:1.35; overflow-wrap:anywhere; }
.v2-result-intro,.v2-result-next { font-size:14px; line-height:1.8; }
.v2-result-next { padding:16px; background:#f2f3f3; border-radius:6px; text-align:left; }
.v2-result-details { margin:24px 0; border-top:1px solid #dedede; border-bottom:1px solid #dedede; padding:16px 0; }
.v2-result-details>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin:8px 0; font-size:14px; }
.v2-result-details dd { margin:0; font-weight:700; overflow-wrap:anywhere; }
.v2-result-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:24px; }
.v2-result-actions .v2-button { font-size:13px; }
.v2-result-contact { display:inline-flex; align-items:center; min-height:44px; margin-top:14px; color:#333; text-decoration:underline; font-size:13px; line-height:1.7; }
@media(max-width:600px) { .v2-result-page { padding:28px 0; } .v2-result-card { padding:28px 18px; } .v2-result-card h1 { font-size:23px; } .v2-result-actions { flex-direction:column; } }
