/* Cart controls and navigation share the existing moonlit palette. */
[hidden] { display: none !important; }
.cart-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mobile-cart { display:none; }
.cart-count { display:inline-flex; min-width:1.5rem; min-height:1.5rem; justify-content:center; align-items:center; border-radius:99px; background:rgb(var(--c-violet-300-5)); color:rgb(var(--c-violet-900)); font:700 .78rem/1 var(--lh-sans); padding:.2rem .35rem; }
.nav-cart .lh-icon,.mobile-cart .lh-icon { width:22px; height:22px; }
.test-cart-add { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; margin:1.1rem 0 .5rem; }
.test-cart-add label { margin:0; }
.test-cart-add input { width:4.5rem; min-height:46px; text-align:center; background:var(--lh-field); color:rgb(var(--c-ink)); border:1px solid var(--lh-field-edge); border-radius:8px; font:600 1rem var(--lh-sans); padding:.5rem; }
.test-cart-add button { min-height:46px; font-size:1rem; }
.test-cart-add .cart-add-feedback { flex-basis:100%; color:rgb(var(--c-violet-700-3)); font-size:.95rem; }
.test-cart-add .cart-add-feedback:empty { display:none; }
.cart-added-link { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; font-weight:700; }
.cart-test-price { font-weight:700; text-align:center; }
.haven-cart { max-width:1100px; margin:auto; }
.haven-cart h1 { font:600 clamp(2.5rem,5vw,4rem)/1.1 var(--lh-serif); font-size-adjust: 0.46; color:rgb(var(--c-ink)); margin:.4rem 0 .8rem; }
.haven-cart h2 { font:600 clamp(1.5rem,2.7vw,2rem)/1.2 var(--lh-serif); font-size-adjust: 0.46; color:rgb(var(--c-ink)); margin:0 0 1rem; }
.haven-cart p { line-height:1.65; }
.cart-heading { text-align:center; margin:0 auto 1.8rem; }
.cart-heading > p:not(.cart-eyebrow) { max-width:580px; margin:.6rem auto; color:rgb(var(--c-muted)); }
.cart-eyebrow { margin:.2rem 0 .6rem; color:rgb(var(--c-violet-600-4)); font:700 .74rem/1.4 var(--lh-sans); text-transform:uppercase; letter-spacing:.14em; }
.cart-browse { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; font-weight:650; }
.cart-message { padding:.8rem 1rem; border:1px solid rgb(var(--c-violet-400-5)); background:rgb(var(--c-surface-soft)); border-radius:8px; }
.cart-message:empty { display:none; }
.cart-message.is-error { border-color:rgb(var(--c-rose-500-7)); color:rgb(var(--c-rose-600)); background:rgb(var(--c-rose-100)); }
.cart-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:1.6rem; align-items:start; }
.cart-section-heading { display:flex; align-items:baseline; gap:1rem; justify-content:space-between; margin-bottom:1rem; }
.cart-section-heading h2 { margin:0; }
.cart-section-heading > span { white-space:nowrap; color:rgb(var(--c-muted)); }
.cart-line { padding:1.25rem; border:1px solid rgb(var(--c-violet-400-4)); border-radius:10px; background:linear-gradient(120deg,rgb(var(--c-surface-soft)),rgb(var(--c-surface))); margin-bottom:1rem; box-shadow:0 2px 0 rgb(var(--c-violet-300-2) / 0.2); }
.cart-line-heading { display:flex; align-items:baseline; gap:1rem; justify-content:space-between; }
.cart-line-heading h3 { font:600 1.35rem/1.3 var(--lh-serif); font-size-adjust: 0.46; margin:0; color:rgb(var(--c-ink)); }
.cart-line-heading > strong { flex-shrink:0; font-size:1.1rem; }
.cart-line-unit { font-size:.9rem; color:rgb(var(--c-muted)); margin:.6rem 0 1rem; }
.cart-line-unit [data-line-price-label]:empty { display:none; }
.cart-line-controls { display:flex; gap:.65rem; align-items:end; flex-wrap:wrap; }
.cart-quantity-label { display:grid; gap:.3rem; font:600 .82rem var(--lh-sans); color:rgb(var(--c-violet-700)); }
.cart-quantity { display:inline-flex; align-items:center; border:1px solid rgb(var(--c-violet-400-4)); border-radius:8px; background:rgb(var(--c-white)); overflow:hidden; }
.cart-quantity button { width:44px; min-height:46px; border:0; background:rgb(var(--c-surface-deep)); color:rgb(var(--c-violet-700-3)); font-size:1.4rem; padding:0; }
.cart-quantity button:hover { background:rgb(var(--c-violet-300-5)); }
.cart-quantity input { width:3.7rem; min-height:46px; padding:.4rem .15rem; text-align:center; border:0; border-radius:0; background:transparent; font:600 1rem var(--lh-sans); color:rgb(var(--c-ink)); appearance:textfield; -moz-appearance:textfield; }
.cart-quantity input::-webkit-inner-spin-button { -webkit-appearance:none; }
.cart-update,.cart-remove { min-height:46px; border:1px solid rgb(var(--c-violet-400-5)); border-radius:8px; padding:.6rem .7rem; color:rgb(var(--c-deep)); background:rgb(var(--c-surface)); font:600 .88rem var(--lh-sans); }
.cart-remove { background:transparent; border-color:transparent; text-decoration:underline; text-underline-offset:3px; }
.cart-line-credit { color:rgb(var(--c-violet-700-3)); font-weight:600; margin:.8rem 0 0; font-size:.9rem; }
.cart-reassurance { color:rgb(var(--c-muted)); padding:.25rem .2rem .7rem; font-size:.95rem; }
.cart-credit-card { padding:clamp(1.2rem,2.5vw,1.8rem); border:2px solid rgb(var(--c-violet-600-6)); border-radius:12px; background:radial-gradient(ellipse at top right,rgb(var(--c-violet-100)),rgb(var(--c-surface-soft)) 72%); box-shadow:inset 0 0 0 3px rgb(var(--c-surface-soft) / 0.2); }
.cart-credit-card h2 { margin-bottom:.65rem; }
.cart-credit-card p { margin:.7rem 0; }
.cart-credit-balances { list-style:none; margin:1rem 0; padding:0; }
.cart-credit-balances li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.3rem 1rem; padding:.7rem 0; border-bottom:1px solid rgb(var(--c-violet-300-2)); font-size:.95rem; }
.cart-credit-balances li > span { flex:1 1 160px; }
.cart-credit-balances li > strong { color:rgb(var(--c-deep)); }
.cart-credit-balances small { flex-basis:100%; color:rgb(var(--c-violet-700)); }
.cart-credit-explainer { border-block:1px solid rgb(var(--c-violet-300-2)); padding:.45rem 0; margin:1rem 0; }
.cart-credit-explainer summary,.cart-dilute summary { min-height:44px; padding:.65rem .1rem; font-weight:650; color:rgb(var(--c-violet-700-3)); cursor:pointer; }
.cart-credit-explainer p { font-size:.92rem; }
.cart-buy-credits { margin-top:.6rem; display:flex; justify-content:center; width:100%; min-height:48px; font-size:1rem; }
.cart-credit-card > small { display:block; text-align:center; margin:.85rem 0 0; color:rgb(var(--c-violet-600-7)); line-height:1.5; }
.cart-summary { background:linear-gradient(145deg,rgb(var(--c-surface-soft)),rgb(var(--c-surface))); border:3px double rgb(var(--c-border)); border-radius:12px; padding:clamp(1.1rem,2.3vw,1.6rem); box-shadow:0 8px 25px rgb(var(--c-violet-700-3) / 0.0706); }
.cart-totals { margin:1.5rem 0 1rem; }
.cart-totals > div { display:flex; justify-content:space-between; gap:1rem; margin:0 0 .85rem; font-size:.95rem; }
.cart-totals dd { margin:0; font-weight:650; white-space:nowrap; color:rgb(var(--c-violet-700-3)); }
.cart-totals dt small { display:block; margin-top:.15rem; font-size:.8rem; color:rgb(var(--c-muted)); }
.cart-totals > .cart-due { border-top:1px solid rgb(var(--c-violet-300-2)); padding-top:1rem; margin-top:1rem; font-weight:700; align-items:baseline; }
.cart-due dd { font:700 1.9rem/1.2 var(--lh-serif); font-size-adjust: 0.46; }
.cart-summary-note,.cart-help { font-size:.9rem; color:rgb(var(--c-violet-700)); }
.cart-checkout-button { width:100%; justify-content:center; min-height:50px; font-size:1rem; margin:1rem 0 .7rem; }
.cart-next-steps { padding-left:1.3rem; font-size:.9rem; color:rgb(var(--c-muted)); line-height:1.65; }
.cart-next-steps li { padding:.2rem 0 .2rem .25rem; }
.cart-dilute { background:rgb(var(--c-surface-soft)); border:1px solid rgb(var(--c-violet-300-2)); border-radius:8px; padding:1rem; margin-top:1rem; font-size:.9rem; }
.cart-dilute h3 { font:600 1.25rem var(--lh-serif); font-size-adjust: 0.46; margin:0; }
.cart-check { display:flex; align-items:flex-start; gap:.65rem; line-height:1.5; padding:.6rem 0; cursor:pointer; }
.cart-check input { width:21px; height:21px; flex-shrink:0; margin:.1rem 0 0; accent-color:rgb(var(--c-violet-600-4)); }
.cart-empty { text-align:center; max-width:560px; margin:2rem auto; padding:2rem 1rem; }
.cart-empty > .lh-icon { width:48px; height:48px; margin-bottom:1.25rem; color:rgb(var(--c-violet-500-4)); }
.cart-empty .btn-primary { margin-top:1rem; }
.haven-cart button:disabled { opacity:.65; cursor:wait; }
@media (max-width:1180px) {
 .site-header { gap:.6rem; min-height:76px; padding:.65rem 1.2rem; }
 .brand { margin-right:auto; }
 .mobile-cart { display:inline-flex; gap:.3rem; align-items:center; justify-content:center; min-width:50px; min-height:44px; color:rgb(var(--c-violet-100-2)); text-decoration:none; }
 .mobile-menu-btn { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; border:1px solid rgb(var(--c-violet-400-5)); border-radius:6px; background:rgb(var(--c-ink)); color:rgb(var(--c-violet-100-2)); padding:.6rem .8rem; }
 .menu-icon { display:grid; gap:4px; width:17px; }
 .menu-icon i { height:1px; background:currentColor; }
 .main-nav { display:none; position:absolute; top:100%; right:0; width:min(380px,100vw); max-height:calc(100dvh - 76px); overflow-y:auto; padding:1rem; background:rgb(var(--c-bg-2)); border:1px solid rgb(var(--c-violet-400-4)); box-shadow:-15px 25px 45px rgb(var(--c-black) / 0.4667); z-index:2; }
 .mobile-nav-open .main-nav { display:flex; flex-direction:column; align-items:stretch; }
 .main-nav > a,.nav-dropdown > summary { font-size:1rem; min-height:48px; padding:.8rem; }
 .nav-dropdown-panel { position:static; width:100%; max-height:none; margin-bottom:.5rem; box-shadow:none; }
 .main-nav .nav-order { margin:.7rem 0; }
 .main-nav .nav-cart { display:none; }
 .mobile-nav-open .mobile-nav-overlay:not([hidden]) { display:block; position:fixed; inset:76px 0 0; z-index:1; border:0; background:rgb(var(--c-violet-900) / 0.549); }
 html.mobile-nav-open { overflow:hidden; }
}
@media (max-width:820px) { .cart-layout { grid-template-columns:minmax(0,1fr); } .cart-summary { grid-row:2; } }
@media (max-width:480px) {
 .site-header { padding:.6rem .6rem; gap:.35rem; }
 .site-header .brand { gap:.4rem; min-width:0; flex-shrink:1; }
 .site-header .brand-logo { width:38px; height:38px; }
 .site-header .brand-title { font-size:1.2rem; }
 .site-header .brand-tagline { font-size:.58rem; letter-spacing:.22em; }
 .mobile-menu-btn { padding:.55rem; min-width:44px; gap:.3rem; font-size:.78rem; }
 .mobile-menu-btn > span:last-child { display:inline; }
 .mobile-cart { min-width:48px; }
 .cart-line { padding:1rem .8rem; }
 .cart-line-heading { gap:.6rem; }
 .cart-line-heading h3 { font-size:1.22rem; }
 .cart-line-controls { gap:.35rem; }
 .cart-quantity input { width:3rem; }
 .cart-update,.cart-remove { padding:.5rem; }
 .cart-section-heading { flex-wrap:wrap; gap:.25rem; }
 .cart-credit-card,.cart-summary { padding:1.1rem; }
}

.cart-summary .cart-credit-card { margin-top:1.6rem; padding:1.1rem; }
.cart-summary .cart-credit-card h2 { font-size:1.5rem; }

.cart-pending { padding:1.25rem; margin-bottom:1.5rem; border:1px solid rgb(var(--c-violet-400-5)); border-radius:10px; background:rgb(var(--c-surface)); }
.cart-pending > a { display:inline-flex; min-height:44px; align-items:center; margin-right:1rem; margin-top:.4rem; }

.cart-cancel-payment { min-height:44px; border:0; background:transparent; padding:.5rem 0; text-decoration:underline; color:rgb(var(--c-deep)); font:600 .9rem var(--lh-sans); }
.cart-pending form { margin-top:.65rem; }

@media(max-width:360px) { .site-header .brand-logo { width:30px; height:30px; } .site-header .brand-title { font-size:1.08rem; } .site-header .brand-tagline { font-size:.53rem; } }

.cart-notice { padding:.85rem 1rem; border:1px solid rgb(var(--c-violet-400-4)); background:rgb(var(--c-violet-100-2)); border-radius:8px; }
.cart-notice.error { color:rgb(var(--c-rose-600)); border-color:rgb(var(--c-rose-400-2)); background:rgb(var(--c-surface-soft)); }

/* A sequential review keeps short carts compact and gives credit explanations room. */
.cart-layout { display:block; }
.cart-selections { margin-bottom:1.5rem; }
[data-cart-items] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.cart-line { margin-bottom:0; }
.cart-reassurance { margin:1rem 0 0; }
.cart-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.6rem; align-items:start; }
.cart-summary-main { min-width:0; }
.cart-summary .cart-credit-card { margin-top:0; padding:1.25rem; }
@media(max-width:760px) {
 [data-cart-items],.cart-summary { grid-template-columns:minmax(0,1fr); }
 .cart-summary { gap:1.25rem; }
}
