/* Zero World account pages: log in, register, password reset, cart, checkout, orders, profile, wishlist.
   Uses the design tokens defined in style.css. Every rule is scoped to an .acc-* class so other pages are untouched. */

/* ---------- Shared building blocks ---------- */
.acc-page { padding-top: .75rem; padding-bottom: 2.5rem; }
.acc-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .75rem 1.5rem; padding-bottom: 1.5rem; margin-bottom: 2rem; border-bottom: 1px solid var(--zw-line); }
.acc-head .eyebrow { margin: 0 0 .6rem; }
.acc-title { font-family: var(--zw-serif); font-weight: 400; font-size: clamp(2.1rem, 4.4vw, 3rem); line-height: 1.05; margin: 0; }
.acc-head-note { margin: 0; color: var(--zw-muted); font-size: .9rem; }
.acc-head .zw-arrow-link { margin-bottom: .35rem; }

.acc-panel { background: var(--zw-surface); border: 1px solid var(--zw-line); border-radius: 2px; padding: 1.75rem; }
.acc-panel + .acc-panel { margin-top: 1.5rem; }
.acc-panel-title { font-family: var(--zw-serif); font-weight: 500; font-size: 1.55rem; line-height: 1.15; margin: 0 0 1.25rem; padding-bottom: .9rem; border-bottom: 1px solid var(--zw-line); }
.acc-panel-title.is-small { font-size: 1.3rem; margin-bottom: 1rem; padding-bottom: .7rem; }
form.acc-panel { display: flex; flex-direction: column; }

.acc-empty { background: var(--zw-surface); border: 1px solid var(--zw-line); text-align: center; padding: 4rem 1.5rem; }
.acc-empty p { font-family: var(--zw-serif); font-size: 1.6rem; font-weight: 400; color: var(--zw-ink); margin: 0 0 1.5rem; }
.acc-empty .acc-empty-rule { display: block; width: 2.5rem; height: 1px; background: var(--zw-ink); margin: 0 auto 1.75rem; }

/* Quiet secondary/danger buttons inside account pages */
.acc-page .btn-outline-danger { background: transparent; border: 1px solid var(--zw-line); color: var(--zw-muted); }
.acc-page .btn-outline-danger:hover, .acc-page .btn-outline-danger:focus { background: transparent; border-color: var(--zw-clay); color: var(--zw-clay); }
.acc-page .btn-outline-danger.w-100 { border-color: var(--zw-ink); color: var(--zw-ink); }
.acc-page .btn-outline-danger.w-100:hover { background: var(--zw-clay); border-color: var(--zw-clay); color: #fff; }

/* Status badges in muted, paper-friendly tones */
.acc-page .badge { font-family: var(--zw-sans); font-size: .6rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; padding: .42rem .6rem .38rem; border: 1px solid transparent; vertical-align: middle; }
.acc-page .badge.text-bg-warning { background: #f3e7cf !important; color: #6b4e17 !important; border-color: #e6d3ad; }
.acc-page .badge.text-bg-info { background: #e3e8e4 !important; color: #34493d !important; border-color: #cdd7cf; }
.acc-page .badge.text-bg-primary { background: #e1e5ec !important; color: #2f3d56 !important; border-color: #ccd3df; }
.acc-page .badge.text-bg-success { background: #e2e9dc !important; color: #3a5230 !important; border-color: #cbd8c2; }
.acc-page .badge.text-bg-danger { background: #f2e0d7 !important; color: #8a3f1f !important; border-color: #e5c7b8; }
.acc-page .badge.text-bg-secondary { background: var(--zw-sand) !important; color: #5e5649 !important; border-color: var(--zw-line); }

/* Small-caps totals list used by cart, checkout and order summaries */
.acc-summary { position: relative; }
@media (min-width: 992px) { .acc-summary { position: sticky; top: 7rem; } }
.acc-totals { margin: 0; }
.acc-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--zw-line); }
.acc-totals > div:first-child { padding-top: 0; }
.acc-totals dt { font-size: .68rem; font-weight: 400 !important; letter-spacing: .18em; text-transform: uppercase; color: var(--zw-muted); }
.acc-totals dd { margin: 0; text-align: right; font-weight: 400; }
.acc-totals .is-total { border-top: 1px solid var(--zw-ink); border-bottom: 0; margin-top: .4rem; padding-top: 1rem; padding-bottom: .2rem; }
.acc-totals .is-total dt { color: var(--zw-ink); font-weight: 500 !important; }
.acc-totals .is-total dd { font-family: var(--zw-serif); font-size: 1.65rem; font-weight: 500 !important; line-height: 1; }
.acc-totals .is-vat { border-bottom: 0; padding-top: .25rem; }
.acc-totals .is-vat dt, .acc-totals .is-vat dd { font-size: .64rem; color: var(--zw-muted); }
.acc-totals .is-vat dd { font-size: .82rem; }
.acc-note { font-size: .82rem; color: var(--zw-muted); margin: 1rem 0 0; padding: .75rem .9rem; background: var(--zw-paper); border-left: 2px solid var(--zw-clay); }
.acc-summary .btn-lg { width: 100%; margin-top: 1.5rem; }
.acc-summary .btn-link { display: block; text-align: center; margin-top: 1rem; font-size: .85rem; }

/* ---------- Auth: log in, register, forgot / reset password ---------- */
.acc-auth { display: block; max-width: 32rem; margin: 1.5rem auto 2rem; background: var(--zw-surface); border: 1px solid var(--zw-line); }
.acc-auth-aside { display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; padding: 3rem 2.75rem; background: var(--zw-sand); border-right: 1px solid var(--zw-line); }
.acc-auth-aside .acc-auth-line { font-family: var(--zw-serif); font-weight: 400; font-style: italic; font-size: clamp(1.7rem, 2.6vw, 2.2rem); line-height: 1.15; color: var(--zw-ink); margin: 0; }
.acc-auth-aside .acc-auth-sub { color: var(--zw-muted); font-size: .9rem; margin: 1.25rem 0 0; max-width: 20rem; }
.acc-auth-aside .hero-rule { margin: 0 0 1.75rem; }
.acc-auth-mark { font-family: var(--zw-serif); font-size: 1.1rem; letter-spacing: .28em; text-transform: uppercase; color: var(--zw-ink); margin: 0; }
.acc-auth-panel { padding: 3rem 3rem 2.5rem; }
.acc-auth-panel .eyebrow { margin: 0 0 .75rem; }
.acc-auth-title { font-family: var(--zw-serif); font-weight: 400; font-size: clamp(2rem, 3.6vw, 2.6rem); line-height: 1.05; margin: 0 0 .9rem; }
.acc-auth-lede { color: var(--zw-muted); font-size: .92rem; margin: 0 0 1.75rem; }
.acc-auth-panel form { margin-top: 1.75rem; }
.acc-auth-panel .acc-auth-lede + form, .acc-auth-panel .alert + form { margin-top: 0; }
.acc-auth-panel .alert { margin: 1.25rem 0 1.5rem; }
.acc-auth-panel .alert ul { padding-left: 1.1rem; }
.acc-auth-panel .mb-3 { margin-bottom: 1.25rem !important; }
.acc-auth-panel .form-control { padding: .75rem .9rem; }
.acc-auth-panel .btn.w-100 { margin-top: .5rem; }
.acc-auth-forgot { font-size: .78rem; text-decoration: none; border-bottom: 1px solid var(--zw-line); }
.acc-auth-forgot:hover { border-color: var(--zw-clay); }
.acc-auth-foot { margin: 2rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--zw-line); font-size: .88rem; color: var(--zw-muted); text-align: center; }
.acc-auth-foot a { color: var(--zw-ink); font-weight: 400; }
.acc-auth-foot a:hover { color: var(--zw-clay); }

/* ---------- Cart line items ---------- */
.acc-lines { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--zw-ink); }
.acc-line.acc-lines-head { display: none; }
.acc-line { display: grid; grid-template-columns: 6rem minmax(0, 1fr) 6.5rem 7rem 2.5rem; align-items: center; gap: 1.25rem; padding: 1.4rem 0; border-bottom: 1px solid var(--zw-line); }
@media (min-width: 768px) {
  .acc-line.acc-lines-head { display: grid; padding: 0 0 .8rem; border-bottom: 0; }
  .acc-lines-head span { font-size: .64rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--zw-muted); }
  .acc-lines-head .acc-line-product { grid-column: 1 / span 2; }
}
.acc-line .cart-thumb, .acc-line-thumb { width: 6rem; height: 6rem; object-fit: cover; border: 1px solid var(--zw-line); border-radius: 2px; background: var(--zw-sand); display: block; }
.acc-line-name { font-family: var(--zw-serif); font-size: 1.3rem; font-weight: 500; line-height: 1.2; color: var(--zw-ink); text-decoration: none; }
.acc-line-name:hover { color: var(--zw-clay); }
.acc-line-unit { font-size: .82rem; color: var(--zw-muted); margin-top: .3rem; }
.acc-line-warn { font-size: .8rem; color: var(--zw-clay) !important; margin-top: .4rem; }
.acc-line-qty .form-control { width: 5rem; text-align: center; padding: .5rem .4rem; }
.acc-line-total { text-align: right; font-weight: 400; }
.acc-line-remove { text-align: right; }
.acc-line-remove .btn { padding: .45rem .6rem; }
.acc-lines-actions { display: flex; justify-content: flex-end; padding-top: 1.25rem; }

@media (max-width: 767.98px) {
  .acc-line { grid-template-columns: 5rem minmax(0, 1fr) auto; grid-template-areas: "thumb info info" "thumb qty total" "thumb qty remove"; gap: .5rem 1rem; align-items: start; }
  .acc-line > :nth-child(1) { grid-area: thumb; }
  .acc-line-info { grid-area: info; }
  .acc-line-qty { grid-area: qty; align-self: end; }
  .acc-line-total { grid-area: total; align-self: end; }
  .acc-line-remove { grid-area: remove; }
  .acc-line .cart-thumb { width: 5rem; height: 5rem; }
  .acc-line-name { font-size: 1.15rem; }
  .acc-lines-actions .btn { width: 100%; }
}

/* ---------- Checkout steps ---------- */
.acc-step { background: var(--zw-surface); border: 1px solid var(--zw-line); padding: 2rem 1.75rem; }
.acc-step + .acc-step { margin-top: 1.5rem; }
.acc-step-head { display: flex; align-items: baseline; gap: 1rem; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--zw-line); }
.acc-step-title { font-family: var(--zw-serif); font-weight: 400; font-size: 1.75rem; line-height: 1.1; margin: 0; }
.acc-step-num { font-style: italic; color: var(--zw-clay); margin-right: .35rem; }
.acc-step-note { font-size: .86rem; color: var(--zw-muted); margin: 0 0 1.25rem; }
.acc-options { display: grid; gap: .6rem; margin-bottom: 1rem; }
.acc-option.form-check { margin: 0 !important; padding: .95rem 1rem .95rem 2.75rem; background: #fff; border: 1px solid var(--zw-line); transition: border-color .2s; }
.acc-option.form-check:hover { border-color: var(--zw-muted); }
.acc-option.form-check:has(.form-check-input:checked) { border-color: var(--zw-ink); }
.acc-option .form-check-input { margin-left: -1.75rem; margin-top: .3rem; }
.acc-option .form-check-label { display: block; cursor: pointer; font-size: .93rem; }
.acc-option .form-check-label strong { font-weight: 500; }
.acc-subform { padding-top: .75rem; }
.acc-cardbox { margin-top: 1rem; padding: 1.25rem; background: var(--zw-paper); border: 1px solid var(--zw-line); }
.acc-cardbox .form-text { margin-top: .9rem; font-size: .8rem; line-height: 1.5; }
.acc-checkout-items { list-style: none; margin: 0 0 1.25rem; padding: 0; }
.acc-checkout-items li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; font-size: .88rem; border-bottom: 1px dotted var(--zw-line); }
.acc-checkout-items li span:last-child { white-space: nowrap; }

/* ---------- Orders table / order detail ---------- */
.acc-table { width: 100%; margin: 0; border-top: 1px solid var(--zw-ink); }
.acc-table > :not(caption) > * > * { padding: 1.1rem .75rem; border-bottom-color: var(--zw-line); background: transparent; }
.acc-table > :not(caption) > * > :first-child { padding-left: 0; }
.acc-table > :not(caption) > * > :last-child { padding-right: 0; }
.acc-table thead th { font-size: .64rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--zw-muted); padding-top: .8rem; padding-bottom: .8rem; white-space: nowrap; }
.acc-table tbody th[scope="row"] { font-family: var(--zw-serif); font-size: 1.25rem; font-weight: 500; }
.acc-table .cart-thumb { width: 4.25rem; height: 4.25rem; border: 1px solid var(--zw-line); }
.acc-table td a:not(.btn) { color: var(--zw-ink); text-decoration: none; font-family: var(--zw-serif); font-size: 1.15rem; font-weight: 500; }
.acc-table td a:not(.btn):hover { color: var(--zw-clay); }
.acc-table-wrap { background: var(--zw-surface); border: 1px solid var(--zw-line); padding: .25rem 1.5rem 0; }

@media (max-width: 575.98px) {
  .acc-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .acc-table--stack, .acc-table--stack tbody, .acc-table--stack tr, .acc-table--stack th, .acc-table--stack td { display: block; width: 100%; }
  .acc-table--stack tr { padding: 1rem 0; border-bottom: 1px solid var(--zw-line); }
  .acc-table--stack > :not(caption) > * > * { border: 0; padding: .3rem 0 !important; }
  .acc-table--stack td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; text-align: right !important; }
  .acc-table--stack td[data-label]::before { content: attr(data-label); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: var(--zw-muted); text-align: left; }
  .acc-table--stack td.acc-cell-action { justify-content: flex-start; padding-top: .7rem !important; }
  .acc-table--stack td.acc-cell-action .btn { width: 100%; }
  .acc-table-wrap { padding: 0 1rem; }
}

.acc-order-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: var(--zw-muted); font-size: .9rem; margin: -1rem 0 2rem; }
.acc-order-title .badge { font-size: .62rem; position: relative; top: -.35rem; margin-left: .35rem; }
.acc-kv { font-size: .9rem; margin: 0 0 .5rem; }
.acc-kv strong { display: block; font-size: .64rem; font-weight: 500 !important; letter-spacing: .18em; text-transform: uppercase; color: var(--zw-muted); margin-bottom: .2rem; }
.acc-pay-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 0; font-size: .88rem; border-bottom: 1px solid var(--zw-line); }
.acc-pay-row:last-child { border-bottom: 0; padding-bottom: 0; }
.acc-paybox { margin-top: 1.5rem; }
.acc-paybox .btn { align-self: flex-start; }

/* ---------- Profile ---------- */
.acc-address { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--zw-line); }
.acc-address:last-child { border-bottom: 0; padding-bottom: 0; }
.acc-address-label { font-family: var(--zw-serif); font-size: 1.15rem; font-weight: 500 !important; margin-right: .4rem; }
.acc-address-text { display: block; color: var(--zw-muted); font-size: .88rem; margin-top: .25rem; }
.acc-page .form-control:disabled { background: var(--zw-paper); color: var(--zw-muted); }

/* ---------- Wishlist ---------- */
.acc-wish .product-card .card-body h2 { font-family: var(--zw-serif); font-size: 1.2rem; font-weight: 500; line-height: 1.2; }
.acc-wish .product-card .card-body h2 a { color: var(--zw-ink) !important; }
.acc-wish .product-card .card-body h2 a:hover { color: var(--zw-clay) !important; }
.acc-wish .product-card .ratio { background: var(--zw-sand); overflow: hidden; }
.acc-wish .acc-sold { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; }

/* ---------- Small screens ---------- */
@media (max-width: 767.98px) {
  .acc-auth { margin-top: .5rem; }
  .acc-auth-aside { padding: 1.5rem 1.4rem; border-right: 0; border-bottom: 1px solid var(--zw-line); gap: 0; }
  .acc-auth-aside .acc-auth-line { font-size: 1.35rem; }
  .acc-auth-aside .acc-auth-sub, .acc-auth-aside .hero-rule, .acc-auth-mark { display: none; }
  .acc-auth-panel { padding: 2rem 1.4rem 1.75rem; }
  .acc-panel, .acc-step { padding: 1.4rem 1.15rem; }
  .acc-head { margin-bottom: 1.5rem; padding-bottom: 1.1rem; }
  .acc-order-meta { margin-top: -.5rem; }
}
