/* Don Marius Press: independent bookshop, real covers and illustrated collections. */
:root { color-scheme: light; --paper:#f8f6ef; --surface:#efece2; --ink:#203d34; --green:#245443; --green-hover:#163c2e; --muted:#59675e; --line:#d5d9ce; --cover-bed:#ece9df; --display:Georgia,'Times New Roman',serif; --body:'Segoe UI',Arial,sans-serif; --radius:6px; --page:1248px; }
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:1rem/1.65 var(--body); }
h1,h2,h3,p { margin:0; }
h1,h2 { font-family:var(--display); font-weight:400; line-height:1.12; text-wrap:balance; }
h1 { font-size:clamp(2.4rem,4.5vw,4rem); letter-spacing:-.025em; }
h2 { font-size:clamp(1.65rem,2.5vw,2.25rem); letter-spacing:-.015em; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button,input,select { font:inherit; }
button,summary,select { cursor:pointer; }
button { color:inherit; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid var(--green); outline-offset:4px; }
.container { width:min(var(--page),calc(100% - 64px)); margin-inline:auto; }
section[id],main { scroll-margin-top:100px; }
.skip-link { position:fixed; top:10px; left:16px; transform:translateY(-180%); z-index:30; padding:12px 20px; background:var(--paper); }
.skip-link:focus { transform:none; }
.announcement-bar { padding:6px 20px; text-align:center; background:var(--green); color:var(--paper); font-size:.8125rem; letter-spacing:.015em; }
header { position:sticky; top:0; z-index:20; background:var(--paper); border-bottom:1px solid var(--line); }
.header-inner { width:min(var(--page),calc(100% - 64px)); margin:auto; min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; }
.logo img { object-fit:contain; border-radius:50%; }
.logo span { font:1.35rem/1.12 var(--display); }
.logo strong { display:block; font-size:.8rem; font-family:var(--body); font-weight:500; letter-spacing:.15em; text-transform:uppercase; margin-top:6px; }
.desktop-nav { display:flex; gap:32px; align-items:center; }
.desktop-nav a,.header-amazon { display:inline-flex; min-height:44px; align-items:center; font-size:.875rem; }
.desktop-nav a:hover,.desktop-nav [aria-current],.text-link:hover { text-decoration:underline; text-underline-offset:6px; }
.header-amazon { gap:12px; border-bottom:1px solid var(--ink); }
.hamburger { display:none; background:transparent; border:1px solid var(--line); border-radius:var(--radius); min-height:44px; padding:8px 14px; }
.mobile-nav { padding:8px 24px 20px; }
.mobile-nav a { display:block; padding:10px 0; }
.hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; padding-block:64px 56px; }
.hero-copy p { margin-top:24px; max-width:38ch; color:var(--muted); font-size:1.0625rem; }
.hero-buttons { display:flex; align-items:center; gap:28px; margin-top:30px; flex-wrap:wrap; }
.btn-primary { display:inline-flex; align-items:center; justify-content:center; gap:30px; min-height:48px; padding:12px 24px; background:var(--green); color:var(--paper); border-radius:var(--radius); font-weight:600; white-space:nowrap; }
.btn-primary:hover { background:var(--green-hover); }
.text-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:.9375rem; font-weight:600; }
.hero-shelf { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:16px; padding:40px 24px; background:var(--green); border-radius:var(--radius); min-height:320px; }
.hero-book { display:flex; align-items:end; min-width:0; padding-block:12px; }
.hero-book:nth-child(2) { padding-bottom:30px; }
.hero-book img { width:100%; max-height:256px; object-fit:contain; filter:drop-shadow(3px 8px 6px rgb(9 33 22 / .3)); }
.hero-book:focus-visible { outline-color:var(--paper); }
.section-heading { margin-bottom:28px; }
.section-heading p { color:var(--muted); margin-top:10px; }
.section-heading--link { display:flex; align-items:end; justify-content:space-between; gap:24px; }
.categories-section { padding-block:36px 52px; border-top:1px solid var(--line); }
.categories-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 24px; }
.category-link { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:10px 16px; border:1px solid var(--line); border-radius:var(--radius); font-size:.9375rem; }
.category-link:hover,.chip-link:hover { background:var(--surface); border-color:var(--green); }
.category-count { color:var(--muted); font-size:.8125rem; font-variant-numeric:tabular-nums; }
.books-section { padding-block:24px 64px; }
/* Empty tracks remain: one book or one filtered result never fills the page. */
.books-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(176px,1fr)); gap:36px 24px; align-items:start; }
.book-card { min-width:0; max-width:216px; width:100%; }
.book-cover-wrap { height:240px; padding:12px; background:var(--cover-bed); display:flex; align-items:center; justify-content:center; border-radius:var(--radius); }
.book-cover-wrap img { width:100%; height:100%; object-fit:contain; }
.book-body { padding-top:16px; }
.book-category { font-size:.8125rem; line-height:1.4; color:var(--muted); display:inline-block; margin-bottom:8px; }
.book-category:hover { text-decoration:underline; }
.book-title { font:600 1rem/1.4 var(--body); min-height:4.2em; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.book-details { margin-top:8px; font-size:.875rem; }
.book-details summary { min-height:40px; padding:8px 0; color:var(--muted); }
.book-details p { margin-bottom:12px; overflow-wrap:anywhere; }
.book-details .full-title { font-weight:600; }
.book-footer { padding-top:10px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:12px; }
.book-price { font-size:.9375rem; font-weight:600; font-variant-numeric:tabular-nums; }
.btn-amazon { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:9px 8px; border:1px solid var(--green); border-radius:var(--radius); font-size:.8125rem; font-weight:600; white-space:nowrap; }
.btn-amazon:hover { background:var(--green); color:var(--paper); }
.cover-missing { font-size:.875rem; color:var(--muted); text-align:center; }
.about-band { display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; padding:52px 0 64px; border-top:1px solid var(--line); }
.about-text p { color:var(--muted); max-width:65ch; margin-bottom:20px; }
.page-hero { padding-block:36px 28px; }
.page-hero h1 { margin-top:24px; }
.page-hero > p { max-width:70ch; margin-top:20px; color:var(--muted); }
.page-hero .collection-count { margin-top:16px; font-size:.875rem; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:.8125rem; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:3px; }
.search-filter-bar { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto; gap:16px; align-items:end; padding-block:0 16px; }
.field { min-width:0; }
.field label { display:block; font-size:.875rem; margin-bottom:6px; font-weight:600; }
.field input,.field select { width:100%; min-height:48px; padding:10px 14px; border:1px solid var(--muted); border-radius:var(--radius); background:var(--paper); color:var(--ink); }
.field input::placeholder { color:var(--muted); opacity:1; }
.btn-reset { min-height:48px; background:transparent; border:1px solid var(--line); border-radius:var(--radius); padding:10px 18px; font-size:.875rem; }
.btn-reset:hover { border-color:var(--green); }
.results-count { grid-column:1 / -1; color:var(--muted); font-size:.8755rem; }
.no-results { padding:32px; background:var(--surface); border-radius:var(--radius); }
.more-categories { padding-bottom:64px; }
.chips-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.chip-link { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid var(--line); border-radius:var(--radius); font-size:.875rem; }
.not-found { padding-block:64px 100px; }
.not-found .btn-primary { margin-top:28px; }
footer { background:var(--surface); border-top:1px solid var(--line); }
.footer-inner { display:grid; grid-template-columns:1.1fr 1.4fr .8fr; gap:48px; padding-block:48px; }
.footer-inner h2 { font:600 .9375rem/1.4 var(--body); margin-bottom:18px; }
.footer-inner p { font-size:.875rem; color:var(--muted); margin-top:16px; max-width:35ch; }
.footer-categories { list-style:none; padding:0; margin:0; columns:2; column-gap:24px; }
.footer-categories li { break-inside:avoid; }
.footer-categories a { display:inline-block; padding-block:6px; font-size:.875rem; }
.footer-categories a:hover { text-decoration:underline; }
.footer-bottom { display:flex; gap:24px; justify-content:space-between; padding-block:20px; border-top:1px solid var(--line); font-size:.8125rem; color:var(--muted); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .book-cover-wrap img,.hero-book img { transition:transform 180ms ease-out; }
  .book-cover-wrap:hover img,.hero-book:hover img { transform:translateY(-4px); }
}
@media (max-width:1050px) {
  .header-amazon { display:none; }
  .hero { gap:32px; }
  .hero-shelf { min-height:280px; padding:28px 16px; gap:10px; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .footer-inner > :last-child { grid-column:1 / -1; }
}
@media (max-width:700px) {
  .container,.header-inner { width:calc(100% - 40px); }
  .header-inner { min-height:72px; }
  .logo img { width:44px; height:44px; }
  .logo span { font-size:1.15rem; }
  .desktop-nav { display:none; }
  .hamburger { display:inline-flex; align-items:center; }
  .hero { grid-template-columns:1fr; gap:32px; padding-block:36px; }
  .hero h1 { font-size:clamp(2.65rem,9.5vw,3.6rem); }
  .hero-copy p { margin-top:18px; font-size:1rem; max-width:42ch; }
  .hero-buttons { margin-top:22px; gap:18px; }
  .hero-shelf { min-height:0; padding:16px; }
  .hero-book img { max-height:185px; }
  .hero-book:nth-child(2) { padding-bottom:20px; }
  .categories-section { padding-block:32px; }
  .categories-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .category-link { padding:10px 12px; font-size:.875rem; line-height:1.4; }
  .books-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 16px; }
  .book-card { max-width:216px; }
  .book-cover-wrap { height:clamp(190px,54vw,240px); padding:8px; }
  .book-title { font-size:.9375rem; }
  .book-body { padding-top:12px; }
  .book-category { font-size:.75rem; min-height:2.8em; }
  .btn-amazon { font-size:.75rem; gap:4px; }
  .section-heading--link { align-items:start; }
  .section-heading--link > .text-link { flex-shrink:0; }
  .section-heading p { font-size:.9375rem; }
  .books-section { padding-block:24px 40px; }
  .about-band { grid-template-columns:1fr; gap:24px; padding-block:36px 40px; }
  .search-filter-bar { grid-template-columns:1fr; gap:12px; }
  .btn-reset { justify-self:start; }
  .footer-inner { grid-template-columns:1fr; gap:28px; padding-block:36px; }
  .footer-bottom { flex-direction:column; gap:12px; }
}
@media (max-width:350px) {
  .container,.header-inner { width:calc(100% - 28px); }
  .books-grid { gap:28px 12px; }
  .book-cover-wrap { height:184px; }
  .categories-grid { grid-template-columns:1fr; }
  .section-heading--link { display:block; }
  .hero-buttons { gap:12px; }
  .hero-buttons .btn-primary { gap:16px; padding-inline:18px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

/* Bookshop revision: an illustrated shop window, rather than a generic landing page. */
:root { --paper:#fffdf8; --surface:#f1eee8; --ink:#302334; --green:#50304f; --green-hover:#392139; --muted:#6a616b; --line:#ded8dc; --cover-bed:#f3eeea; --radius:3px; }
.announcement-bar { background:#302334; color:#fff2dc; padding:7px 20px; letter-spacing:.08em; font-size:.75rem; }
.header-inner { min-height:92px; }
.logo span { font-weight:700; font-size:1.5rem; }
.logo strong { font-size:.65rem; letter-spacing:.35em; }
.desktop-nav a { font-weight:600; }
.header-amazon { border:1px solid var(--line); padding:0 16px; border-radius:3px; }
.shop-window { background:#f3d995; border-bottom:1px solid #d3ba7d; }
.hero { grid-template-columns:1.05fr 1fr; gap:50px; padding-block:52px; min-height:535px; }
.eyebrow { display:block; font:700 .6875rem/1.5 var(--body); letter-spacing:.16em; margin-bottom:18px; }
.hero h1 { font-size:clamp(3.2rem,5.1vw,4.8rem); line-height:1.02; letter-spacing:-.055em; font-weight:700; }
.hero h1 em { font-weight:400; color:#70475a; }
.hero-copy p { color:#51413a; max-width:35ch; font-size:1.0625rem; }
.hero-buttons { gap:20px; }
.btn-primary { background:#302334; color:#fffdf8; border-radius:3px; font-size:.875rem; gap:18px; padding:14px 20px; }
.hero-note { margin-top:28px; font-size:.75rem; color:#655139; }
.hero-note span { margin:0 10px; }
.window-display { position:relative; background:#ecbc78; border-radius:160px 160px 0 0; padding:25px 28px 0; border:1px solid #d4a769; }
.window-caption { text-align:center; font-size:.625rem; letter-spacing:.18em; font-weight:700; padding:10px 0 16px; color:#624029; }
.hero-shelf { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 26px; padding:0 0 22px; background:none; min-height:0; border-radius:0; }
.hero-book,.hero-book:nth-child(2) { height:160px; padding:0 0 10px; border-bottom:7px solid #ae7d50; box-shadow:0 8px 6px -7px #543326; justify-content:center; }
.hero-book img { width:auto; max-width:100%; height:145px; object-fit:contain; filter:drop-shadow(4px 4px 2px #65412755); }
.section-heading h2 { font-size:clamp(1.9rem,3vw,2.6rem); font-weight:700; letter-spacing:-.04em; }
.categories-section { border:0; padding-block:58px; }
.section-heading .eyebrow { margin-bottom:10px; color:#785663; }
.section-heading--link > p { font-size:.875rem; margin-bottom:3px; }
.categories-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:22px 18px; }
.category-link { display:block; padding:0; border:none; min-width:0; background:none; }
.category-link:hover { background:none; }
.category-art { height:174px; display:flex; align-items:end; justify-content:center; padding:18px 22px 0; overflow:hidden; background:#e6dfef; border-radius:4px; }
.category-art img { width:auto; height:153px; max-width:100%; object-fit:contain; object-position:bottom; filter:drop-shadow(4px 5px 3px #30233444); transform:rotate(-7deg) translateY(8px); }
.category-link:nth-child(3n) .category-art img { transform:rotate(7deg) translateY(8px); }
.category-link:nth-child(5n+2) .category-art { background:#ead0c7; }
.category-link:nth-child(5n+3) .category-art { background:#dce8cf; }
.category-link:nth-child(5n+4) .category-art { background:#cddfe6; }
.category-link:nth-child(5n) .category-art { background:#efe1b3; }
.category-label { padding-top:13px; font-weight:650; font-size:.875rem; line-height:1.4; }
.category-count { display:flex; justify-content:space-between; padding-top:5px; font-weight:400; font-size:.75rem; }
.category-count span { font-size:1.15rem; line-height:1; }
.category-link:hover .category-label { text-decoration:underline; text-underline-offset:4px; }
.books-section { padding-block:16px 64px; }
.book-cover-wrap { background:#f3eee9; border-radius:3px; padding:18px; height:224px; }
.book-cover-wrap img { filter:drop-shadow(3px 4px 3px #30233433); }
.book-title { font-weight:650; }
.btn-amazon { background:#302334; color:#fffdf8; border:0; }
.about-band { padding:44px; background:#50304f; color:#fff8eb; border:0; margin-bottom:64px; gap:56px; }
.about-band h2 { font-size:clamp(2.4rem,4vw,3.8rem); font-style:italic; }
.about-text p { color:#ede0eb; }
footer { background:#f0e9e4; }
.page-hero { border-bottom:1px solid var(--line); margin-bottom:28px; padding-bottom:32px; }
.page-hero h1 { font-weight:700; letter-spacing:-.04em; }
@media (max-width:1050px) {
 .hero { gap:28px; }.hero h1 { font-size:3.4rem; }
 .window-display { padding:24px 18px 0; }.hero-shelf { gap:18px 16px; }
 .hero-book,.hero-book:nth-child(2) { height:140px; }.hero-book img { height:125px; }
 .categories-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px) {
 .header-inner { min-height:76px; }.logo span { font-size:1.2rem; }
 .hero { grid-template-columns:1fr; padding-block:30px; gap:28px; min-height:0; }
 .hero h1 { font-size:clamp(2.8rem,11vw,4rem); }.hero .eyebrow { font-size:.6rem; margin-bottom:15px; }
 .hero-copy p { font-size:1rem; margin-top:18px; }.hero-buttons { gap:12px; margin-top:20px; }
 .hero-buttons .text-link { font-size:.8125rem; }.hero-note { margin-top:16px; font-size:.6875rem; }
 .window-display { border-radius:100px 100px 0 0; padding:14px 26px 0; }
 .window-caption { padding:10px 0 16px; font-size:.5625rem; }
 .hero-shelf { gap:14px 18px; padding-bottom:16px; }
 .hero-book,.hero-book:nth-child(2) { height:122px; }.hero-book img { height:107px; }
 .categories-section { padding-block:36px; }.categories-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; }
 .category-art { height:150px; padding:14px 16px 0; }.category-art img { height:135px; }
 .section-heading--link { flex-wrap:wrap; gap:12px; }.section-heading h2 { font-size:2rem; }
 .section-heading--link > p { margin-top:0; }.category-label { font-size:.8125rem; }
 .book-cover-wrap { height:200px; padding:12px; }
 .about-band { padding:28px 24px; gap:24px; margin-bottom:36px; }
}
