/* Storefront spacing refinement; original editorial.css, type and artwork stay intact.
   Rhythm: 12–20px inside groups, 24–32px between groups, 40px before footer. */
.shop-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 32px; margin: 0; padding: 6px 0; border-bottom: 1px solid var(--rule); font-size: 13px; line-height: 1.5; }
.shop-nav a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; }
.shop-nav a:hover, .shop-nav a[aria-current] { text-decoration: underline; }
.masthead { padding: 20px 0; }
.masthead-tagline { margin-top: 10px; }
.letter { margin-block: 32px 40px; }
.letter p { margin-bottom: 20px; }
.letter p.story-contact { padding-top: 2lh; }
.letter .signoff { margin-top: 24px; }
.letter .page-title { margin-bottom: 24px; }
.letter h2 { margin-top: 28px; margin-bottom: 12px; }
.site-footer { padding: 16px 0 20px; }
.book-snapshot { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--rule); }
.book-snapshot img { display: block; width: auto; max-width: 100%; height: auto; max-height: min(240px, 45svh); }
.primary-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 23px; background: #315932; color: var(--paper); border: 1px solid #315932; text-decoration: none; line-height: 1.6; }
.primary-link:hover { color: var(--paper); background: #244725; border-color: #244725; }
.shop-page { margin: 32px auto 40px; }

.shop-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 88px; align-items: center; }
.shop-feature + .shop-feature { margin-top: 36px; padding-top: 32px; border-top: 1px solid var(--rule); }
.shop-feature-image { display: grid; place-items: center; padding: 0; background: transparent; }
.shop-feature-image img { display: block; width: auto; max-width: 100%; height: auto; max-height: min(240px, calc(100svh - 360px)); object-fit: contain; object-position: center; }
/* Transparent preview cutouts remove the original matte without tinting books. */
.book-snapshot img, .shop-feature-image img, .product-image, .product-thumbnails img, .cart-line img { background: transparent; filter: none; }
.shop-feature-copy h2 { font: 400 40px/1.15 var(--display-font); letter-spacing: -.025em; margin: 0 0 16px; }
.shop-feature-copy p { margin: 0 0 16px; }
.shop-feature-copy .feature-price { font-size: 20px; font-variant-numeric: normal; margin-bottom: 12px; }
.shop-feature-copy .feature-availability { font-size: 14px; color: var(--muted); }
.publication-copy h2 a { text-decoration: none; }
.publication-copy h2 a:hover { text-decoration: underline; }
.product-page { max-width: 900px; margin: 16px auto 40px; }
.back-link { display: inline-block; margin-bottom: 12px; font-size: 13px; }
.product-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 54px; }
.product-page .page-title { font: 400 45px/1.15 var(--display-font); letter-spacing: -.02em; margin: 0 0 12px; }
.product-figure { margin: 0; }
.product-image { display: block; width: auto; max-width: 100%; height: auto; max-height: min(280px, calc(100svh - 420px)); margin-inline: auto; object-fit: contain; object-position: top center; }
.product-thumbnails { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.product-thumbnails button { background: transparent; padding: 3px; width: 58px; height: 66px; border: 1px solid var(--rule); }
.product-thumbnails img { display: block; width: 100%; height: 100%; object-fit: contain; }
.product-description { white-space: pre-line; margin: 16px 0 20px; }
.product-copy .product-description { margin: 12px 0; }
.price { font-size: 18px; font-variant-numeric: normal; margin: 0 0 12px; }
.availability { color: var(--muted); margin: 12px 0; }
fieldset { border: 0; padding: 0; margin: 16px 0; min-width: 0; }
legend { padding: 0; margin-bottom: 8px; }
.cover-options { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.cover-options label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
input { accent-color: var(--ink); caret-color: var(--ink); }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; background: var(--ink); color: var(--paper); border: 1px solid var(--ink); border-radius: 0; padding: 11px 20px; min-height: 44px; line-height: 1.5; }
button:hover:not(:disabled) { background: var(--muted); border-color: var(--muted); }
button:disabled { cursor: not-allowed; color: var(--muted); border-color: var(--rule); background: transparent; }
button:focus-visible, input:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.quantity-control { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; }
input[type="number"] { width: 68px; min-height: 44px; background: transparent; border: 1px solid var(--rule); padding: 7px 9px; }
.feedback { margin-top: 20px; }
.feedback:empty { display: none; }
.feedback p { margin-bottom: 12px; }
.text-button { background: transparent; color: var(--ink); border: 0; padding: 9px 0; text-decoration: underline; text-underline-offset: .24em; }
.text-button:hover:not(:disabled) { background: transparent; color: var(--muted); }
.cart-line { border-top: 1px solid var(--rule); padding: 20px 0; }
.letter .cart-line h2 { font-family: var(--display-font); font-size: 28px; margin: 0 0 8px; line-height: 1.2; }
.letter .cart-line p { margin: 0 0 15px; }
.cart-line-content { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 26px; }
.cart-line img { display: block; width: 100px; height: 130px; object-fit: contain; }
.cart-line form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.cart-line form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.cart-totals { border-top: 1px solid var(--rule); padding-top: 20px; }
.cart-totals dl { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 0 0 20px; }
.cart-totals dd { margin: 0; font-variant-numeric: normal; }
.cart-shipping { margin: 20px 0; }
.letter .cart-shipping h2 { font: 400 21px/1.2 var(--display-font); margin: 0 0 10px; }
.cart-shipping ul { list-style: none; padding: 0; margin: 0; font-size: 14px; line-height: 1.7; }
.letter .cart-shipping p { font-size: 14px; line-height: 1.6; margin: 10px 0; }
.letter .checkout-note { color: var(--muted); font-size: 13px; }
[data-product], [data-cart] { overflow-wrap: anywhere; }
@media (min-width: 761px) {
  /* Quantity and purchase are one task; keep them together on laptop screens. */
  .product-copy form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
  .product-copy form fieldset { flex: 0 0 100%; margin: 12px 0 0; }
  .product-copy form .quantity-control { margin-bottom: 0; }
}
@media (max-width: 760px) {
  .letter, .shop-page { margin-block: 24px 32px; }
  .letter p { margin-bottom: 20px; }
  .letter .signoff { margin-top: 24px; }
  .site-footer { gap: 12px; padding: 16px 0 20px; }
  .product-page { margin-top: 24px; margin-bottom: 32px; }
  .product-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .product-figure { max-width: 360px; width: 100%; margin-inline: auto; }

  .product-page .page-title { font-size: 36px; }
  .shop-nav { gap: 10px 25px; padding-block: 4px; }
  .masthead { padding: 20px 0; }
  .masthead-tagline { margin-top: 10px; }
  .book-snapshot { margin-top: 28px; padding-top: 24px; }
  .shop-feature { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .shop-feature + .shop-feature { margin-top: 28px; padding-top: 24px; }
  .shop-feature-image { padding: 0; }
  .shop-feature-image img { width: auto; }
  .shop-feature-copy h2 { font-size: 34px; }
}
@media (max-width: 360px) {
  .cart-line-content { grid-template-columns: 70px minmax(0, 1fr); gap: 16px; }
  .cart-line img { width: 70px; height: 100px; }

}

.policy-page h2{font-size:1.15rem;margin-top:2rem}.policy-page ul{padding-left:1.25rem}.policy-review{border-left:2px solid currentColor;padding-left:1rem}.site-footer nav{display:flex;flex-wrap:wrap;gap:.6rem 1rem;justify-content:center}
