:root {
  --commerce-ink: #252525;
  --commerce-line: #dededb;
}
.shop-footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  background: #f7f7f4;
  padding: 48px 5%;
  font-size: 14px;
  align-items: start;
}
.shop-footer .footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 14px 22px;
  max-width: 520px;
}
.footer-contact {
  font-size: 13px;
  line-height: 1.8;
  margin-top: 18px !important;
}
.shop-footer .ai-footer {
  grid-column: 1/-1;
  border-top: 1px solid #ddd;
  padding-top: 20px;
  font-size: 12px;
  line-height: 1.7;
  margin: 0;
  max-width: none;
}
.withdraw-link {
  font-weight: 700;
  border: 1px solid #555;
  border-radius: 6px;
  padding: 8px 12px;
}
.shop-footer a:hover {
  text-decoration: underline;
}
.legal-page {
  max-width: 880px;
  padding: 48px 26px 72px;
  color: #333;
}
.legal-page h1 {
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.15;
  margin: 25px 0;
}
.legal-page h2 {
  font-size: 21px;
  line-height: 1.4;
  margin: 32px 0 12px;
}
.legal-page p,
.legal-page li {
  font-size: 15px;
  line-height: 1.8;
  margin: 12px 0;
}
.legal-page a:not(.primary) {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.legal-page blockquote {
  border-left: 3px solid #bbb;
  padding: 18px;
  background: #f5f5f3;
  line-height: 1.8;
}
.legal-page ul {
  padding-left: 22px;
}
.legal-date {
  border-top: 1px solid #ddd;
  padding-top: 20px;
  color: #666;
}
.legal-page code {
  overflow-wrap: anywhere;
}
.clean-checkout {
  max-width: 1200px;
  padding: 36px 32px 70px;
}
.checkout-heading h1 {
  font-size: 38px;
  margin: 18px 0 8px;
}
.checkout-heading > p {
  color: #666;
}
.checkout-steps {
  display: flex;
  gap: 24px;
  border-bottom: 1px solid #ddd;
  padding: 26px 0 18px;
  margin-bottom: 22px;
  color: #777;
  font-size: 14px;
}
.checkout-steps [aria-current] {
  color: #252525;
  font-weight: 700;
}
.clean-checkout .checkout-layout {
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  gap: 64px;
  align-items: start;
}
.clean-checkout #checkout-form {
  min-width: 0;
}
.clean-checkout h2 {
  font-size: 22px;
  margin: 24px 0 15px;
}
.clean-checkout h3 {
  font-size: 16px;
  margin: 22px 0 8px;
}
.clean-checkout .checkout-notice {
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.6;
  padding: 12px 16px;
  background: #f4f4f1;
  margin-bottom: 24px;
}
.clean-checkout input:not([type="radio"]):not([type="checkbox"]),
.clean-checkout select,
.withdrawal-page input,
.withdrawal-page textarea {
  width: 100%;
  border: 1px solid #bdbdb9;
  border-radius: 7px;
  padding: 14px 12px;
  background: white;
  font-size: 16px;
  margin-top: 7px;
  color: #222;
}
.clean-checkout label,
.withdrawal-page label {
  display: block;
  font-size: 13px;
  font-weight: 500;
}
.address-grid {
  gap: 16px;
}
.checkout-email {
  margin: 15px 0 8px;
}
.clean-checkout .terms {
  display: flex;
  align-items: start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.65;
  margin: 22px 0;
}
.terms input {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: #333;
}
.clean-checkout .primary,
.cart-page .primary,
.withdrawal-page .primary {
  background: #252525;
  border-radius: 7px;
  padding: 17px 22px;
  color: white;
  font-size: 15px;
  justify-content: center;
  min-height: 50px;
}
.clean-checkout .primary {
  width: 100%;
}
.clean-checkout .primary:hover,
.cart-page .primary:hover,
.withdrawal-page .primary:hover {
  background: #444;
}
.clean-checkout .primary:disabled {
  background: #ddd;
  color: #555;
  cursor: not-allowed;
}
.checkout-next {
  margin-top: 24px;
}
.step-actions {
  display: flex;
  gap: 20px;
  align-items: center;
  margin: 25px 0;
}
.step-actions > * {
  flex: 1;
}
.clean-checkout .payment-methods {
  margin: 22px 0;
}
.clean-checkout .material {
  padding: 18px 14px;
}
.payment-label {
  margin-left: auto;
  font-size: 12px;
  font-weight: bold;
  color: #555;
}
.clean-checkout .material small {
  display: block;
  font-size: 12px;
  color: #666;
  margin-top: 4px;
}
.clean-checkout .material:has(input:checked) {
  background: #f7f7f5;
  border-color: #333;
}
.clean-checkout .checkout-summary {
  background: #f7f7f5;
  border: 1px solid #e6e6e2;
  padding: 24px;
  border-radius: 10px;
  position: sticky;
  top: 24px;
}
.order-summary {
  border: 0;
}
.order-summary > summary {
  font-size: 16px;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  padding: 0 0 18px;
  cursor: pointer;
  gap: 15px;
}
.order-summary > summary:after {
  content: "⌄";
}
.checkout-item {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr) auto;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid #ddd;
  font-size: 13px;
}
.checkout-item img {
  width: 60px;
  height: 72px;
  object-fit: cover;
  border: 1px solid #ddd;
  border-radius: 5px;
}
.checkout-item p {
  font-size: 12px;
  color: #626262;
  line-height: 1.7;
  margin-top: 6px;
}
.checkout-item a {
  font-size: 12px;
  text-decoration: underline;
}
.checkout-item > span {
  white-space: nowrap;
}
.clean-checkout .cart-total {
  font-size: 20px;
  padding: 20px 0 10px;
}
.checkout-line {
  font-size: 14px;
  gap: 12px;
}
.clean-checkout .small {
  font-size: 12px;
  line-height: 1.7;
  color: #626262;
}
.custom-notice {
  font-size: 13px;
  line-height: 1.7;
  padding: 16px;
  background: #f6f5ef;
  border-radius: 7px;
  margin-top: 22px;
}
.custom-notice a,
.terms a,
.clean-checkout .small a {
  text-decoration: underline;
}
.clean-checkout .text-button {
  font-size: 13px;
}
.clean-checkout #pay-button {
  margin-top: 20px;
}
#final-total {
  border-top: 1px solid #ddd;
  margin-top: 20px;
}
#billing-address {
  border: 0;
  padding: 0;
  margin: 20px 0;
}
#billing-address legend {
  font-size: 20px;
}
.cart-page {
  max-width: 1200px;
  padding: 40px 32px 70px;
}
.cart-page h1 {
  font-size: 38px;
  margin: 24px 0 35px;
}
.cart-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr);
  gap: 55px;
}
.bag-item {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) auto;
  gap: 22px;
  border-bottom: 1px solid #ddd;
  padding: 0 0 28px;
  margin-bottom: 28px;
}
.bag-item img {
  width: 100px;
  height: 120px;
  object-fit: cover;
  border-radius: 7px;
}
.bag-item h2 {
  font-size: 17px;
  margin: 0 0 8px;
}
.bag-item p {
  font-size: 13px;
  color: #666;
  line-height: 1.7;
  margin-bottom: 10px;
}
.bag-item a,
.remove-item {
  font-size: 12px;
  text-decoration: underline;
}
.bag-item .quantity-controls {
  display: flex;
  width: max-content;
  margin: 16px 0 12px;
}
.bag-item > strong {
  font-size: 15px;
  white-space: nowrap;
}
.bag-summary {
  background: #f7f7f5;
  border: 1px solid #e6e6e2;
  border-radius: 9px;
  padding: 26px;
  align-self: start;
}
.bag-summary h2 {
  font-size: 21px;
  margin-bottom: 25px;
}
.bag-summary .primary {
  display: flex;
  margin-top: 24px;
}
.bag-summary .small {
  font-size: 12px;
  line-height: 1.7;
  color: #626262;
}
.bag-payments {
  text-align: center;
  font-size: 12px;
  padding: 15px 0;
}
.cart-dialog {
  width: min(500px, 100%);
  max-width: 100%;
  border-radius: 0;
  padding: 24px;
}
.cart-dialog .drawer-heading {
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd;
}
.cart-dialog .eyebrow {
  display: none;
}
.cart-dialog h2 {
  font-size: 25px;
}
.cart-dialog .cart-item h3 {
  font-size: 16px;
}
.cart-dialog .primary {
  background: #252525;
  border-radius: 7px;
  justify-content: center;
}
.cart-dialog .view-cart {
  display: block;
  text-align: center;
  padding: 14px;
  font-size: 13px;
  text-decoration: underline;
}
.cart-dialog .cart-footer-note {
  font-size: 12px;
  color: #626262;
}
.withdrawal-page label {
  margin: 20px 0;
}
.withdrawal-page textarea {
  resize: vertical;
}
.withdrawal-page dd {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 4px 0 20px;
}
.withdrawal-page dt {
  font-weight: 600;
  font-size: 13px;
  color: #666;
}
.withdrawal-page #withdrawal-success {
  padding: 22px;
  background: #f2f5f0;
  border-radius: 10px;
}
.withdrawal-page #withdrawal-time {
  overflow-wrap: anywhere;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
[hidden] {
  display: none !important;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid #42678e;
  outline-offset: 3px;
}
input,
textarea,
select {
  scroll-margin-top: 25px;
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
@media (max-width: 760px) {
  .shop-footer {
    grid-template-columns: 1fr;
    padding: 35px 6%;
    gap: 24px;
  }
  .shop-footer .footer-links {
    flex-direction: row;
  }
  .shop-footer .ai-footer {
    grid-column: 1;
  }
  .legal-page {
    padding: 30px 6% 50px;
  }
  .clean-checkout,
  .cart-page {
    padding: 25px 5% 45px;
  }
  .checkout-heading h1,
  .cart-page h1 {
    font-size: 30px;
  }
  .checkout-steps {
    gap: 20px;
    font-size: 13px;
  }
  .clean-checkout .checkout-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .clean-checkout .checkout-summary {
    order: -1;
    position: static;
    width: 100%;
    padding: 16px;
  }
  .clean-checkout #checkout-form {
    width: 100%;
  }
  .order-summary > summary {
    padding: 0;
  }
  .order-summary[open] > summary {
    padding-bottom: 15px;
  }
  .clean-checkout h2 {
    font-size: 22px;
  }
  .step-actions {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 18px;
  }
  .address-grid {
    gap: 14px;
  }
  .clean-checkout .checkout-item {
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 10px;
  }
  .clean-checkout .checkout-item img {
    width: 48px;
    height: 60px;
  }
  .cart-page-layout {
    display: block;
  }
  .bag-item {
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 12px;
  }
  .bag-item img {
    width: 70px;
    height: 90px;
  }
  .bag-item h2 {
    font-size: 15px;
  }
  .bag-item > strong {
    font-size: 13px;
  }
  .bag-summary {
    padding: 20px;
  }
  .cart-dialog {
    padding: 20px;
  }
  .withdrawal-page .primary {
    width: 100%;
  }
  .withdrawal-page #withdrawal-success {
    padding: 16px;
  }
}
@media print {
  .header,
  .shop-footer,
  .header-actions,
  .mobile-nav,
  .skip {
    display: none !important;
  }
  .legal-page {
    max-width: none;
    padding: 0;
  }
}
.checkout-shell .header nav,
.checkout-shell .header .search-link,
.checkout-shell #menu-toggle {
  display: none;
}
.checkout-shell .header {
  max-width: 1200px;
  margin: auto;
  padding-left: 32px;
  padding-right: 32px;
}
@media (max-width: 760px) {
  .checkout-shell .header {
    padding-left: 5%;
    padding-right: 5%;
  }
}

.privacy-notice { position:fixed; z-index:100; bottom:20px; left:20px; right:20px; max-width:850px; margin:auto; padding:26px; border:1px solid #e3dfd6; border-radius:20px; background:#fffdf9; color:#292923; box-shadow:0 12px 55px #25251c30; display:flex; align-items:center; gap:28px; }
.privacy-notice[hidden] { display:none; }
.privacy-notice h2 { font-size:21px; margin:8px 0 10px; line-height:1.25; }
.privacy-notice p, .privacy-details p, .privacy-details dd { font-size:14px; line-height:1.6; }
.privacy-notice p { margin:8px 0; }
.privacy-links a, .privacy-details a { text-decoration:underline; text-underline-offset:3px; }
.privacy-actions { display:flex; flex-direction:column; flex-shrink:0; gap:10px; }
.privacy-actions button, .privacy-details button { min-height:46px; border:1px solid #8c9481; border-radius:25px; padding:12px 22px; background:transparent; color:#292923; font:inherit; cursor:pointer; }
.privacy-actions [data-dismiss], .privacy-details button { background:#394633; color:white; border-color:#394633; }
.privacy-details { max-width:650px; width:calc(100% - 32px); max-height:85dvh; overflow:auto; border:1px solid #e3dfd6; border-radius:20px; padding:28px; background:#fffdf9; color:#292923; }
.privacy-details::backdrop { background:#18201266; }
.privacy-details h2 { font-size:25px; margin:0 0 20px; }
.privacy-details dt { font-weight:650; margin-top:20px; }
.privacy-details dd { margin:6px 0 0; }
.privacy-details code { overflow-wrap:anywhere; font-size:12px; }
.privacy-reopen { text-align:left; padding:0; border:0; background:none; color:inherit; font:inherit; cursor:pointer; text-decoration:underline; }
@media(max-width:600px) { .privacy-notice { bottom:10px; left:10px; right:10px; padding:20px; gap:12px; flex-direction:column; align-items:stretch; max-height:75dvh; overflow:auto; } .privacy-actions { flex-direction:row; } .privacy-actions button { flex:1; padding:10px; font-size:13px; } .privacy-notice h2 { font-size:19px; } .privacy-notice p { font-size:13px; } .privacy-details { padding:22px; } }

/* Checkout payment choices: isolated from product material selectors. */
.clean-checkout .payment-methods{display:grid;gap:12px;padding:0;border:0;min-width:0}
.clean-checkout .payment-choice{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) 112px;gap:16px;align-items:center;padding:22px;border:1px solid #dedbd8;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s;line-height:1.45}
.clean-checkout .payment-choice:hover{border-color:#9a9197}
.clean-checkout .payment-choice:has(input:checked){border-color:#b50059;box-shadow:inset 0 0 0 1px #b50059;background:#fff7fb}
.clean-checkout .payment-choice:has(input:focus-visible){outline:3px solid #633fc6;outline-offset:3px}
.clean-checkout .payment-choice:has(input:disabled){opacity:.5;cursor:not-allowed}
.clean-checkout .payment-choice input{position:absolute;opacity:0;width:1px;height:1px;inset:22px auto auto 22px;margin:0;padding:0}
.payment-check{display:block;box-sizing:border-box;width:24px;height:24px;border:2px solid #b5afb3;border-radius:50%;background:#fff;position:relative}
.payment-choice input:checked+.payment-check{background:#b50059;border-color:#b50059}
.payment-choice input:checked+.payment-check:after{content:"";position:absolute;width:9px;height:5px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg);top:6px;left:5px}
.clean-checkout .payment-copy{display:block;min-width:0}.clean-checkout .payment-copy strong{display:block;font-size:17px;font-weight:650;color:#252329}
.clean-checkout .payment-copy small{display:block;margin-top:5px;font-size:13px;color:#615b62;line-height:1.55}
.payment-brand{display:flex;align-items:center;justify-content:center}.payment-brand img{display:block;max-width:100%;object-fit:contain}
.payment-saving{display:inline-block;background:#f3e6ee;color:#8a0044;font-size:12px;font-weight:650;padding:4px 9px;border-radius:5px;margin-top:9px}
@media(max-width:600px){.clean-checkout .payment-choice{grid-template-columns:22px minmax(0,1fr) 82px;gap:12px;padding:17px 14px}.clean-checkout .payment-copy strong{font-size:15px}.clean-checkout .payment-copy small{font-size:12px}.payment-check{width:22px;height:22px}.payment-choice input:checked+.payment-check:after{top:5px;left:4px}.payment-brand img{max-width:82px}.payment-saving{font-size:11px}}
