@font-face {
  font-family: "DM Sans";
  src: url("assets/fonts/DM-Sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Volume TC Rustic";
  src: url("assets/fonts/Volume%20TC%20Rustic.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #263b32;
  --muted: #000;
  --paper: #f4f0e7;
  --paper-deep: #e8e2d5;
  --moss: #687661;
  --rust: #a45d43;
  --line: rgba(38, 59, 50, .25);
  --serif: "Volume TC Rustic", Georgia, serif;
  --sans: "DM Sans", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 18px; }
a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
.site-header { min-height: 88px; padding: 16px 5.5vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; border-bottom: 1px solid var(--line); }
.wordmark { display: inline-flex; align-items: center; gap: 11px; width: fit-content; text-decoration: none; font: 500 18px/1 var(--serif); }
.wordmark small { display: block; margin-top: 5px; font: 600 9px/1 var(--sans); letter-spacing: .19em; text-transform: uppercase; }
.wordmark-mark { display: grid; place-items: center; width: 36px; aspect-ratio: 1; border: 1px solid var(--ink); border-radius: 50%; font: 19px var(--serif); }
.site-nav { display: flex; justify-content: center; gap: clamp(20px, 3.2vw, 52px); }
.site-nav a { font-size: 12px; text-decoration: none; }
.site-nav a:hover, .site-nav a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.cart-button { justify-self: end; display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.snipcart-items-count { display: grid; place-items: center; min-width: 20px; aspect-ratio: 1; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 10px; }
.hero { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr); align-items: stretch; min-height: min(660px, calc(100svh - 88px)); padding: 6vw 5.5vw 74px; gap: 6vw; overflow: hidden; }
.hero-copy { align-self: center; max-width: 590px; padding: 30px 0 70px; animation: rise-in .7s both; }
.eyebrow { margin: 0 0 23px; color: var(--rust); font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { max-width: 570px; margin-bottom: 27px; font: 400 clamp(44px, 6vw, 83px)/1.01 var(--serif); text-wrap: balance; }
.hero-description { max-width: 430px; margin-bottom: 31px; color: var(--muted); font-size: 18px; line-height: 1.8; }
.text-link { display: inline-flex; align-items: center; gap: 19px; padding-bottom: 8px; border-bottom: 1px solid var(--rust); color: var(--ink); text-decoration: none; font-size: 12px; }
.text-link span, .contact-link span { color: var(--rust); font-size: 17px; }
.hero-art { position: relative; display: grid; place-items: center; min-height: 430px; background: linear-gradient(140deg, rgba(38,59,50,.12), transparent 45%), repeating-linear-gradient(2deg, rgba(67,50,37,.055) 0, rgba(67,50,37,.055) 1px, transparent 1px, transparent 8px), #c8b99d; overflow: hidden; }
.hero-art::before { position: absolute; inset: 9% 12%; content: ""; border: 1px solid rgba(38,59,50,.48); outline: 1px solid rgba(244,240,231,.45); outline-offset: -9px; }
.hero-art::after { position: absolute; inset: 50% 12% auto; height: 1px; content: ""; background: rgba(38,59,50,.3); transform: rotate(-2deg); }
.hero-monogram { color: rgba(38,59,50,.68); font: 400 clamp(120px, 23vw, 310px)/1 var(--serif); }
.hero-art-label { position: absolute; z-index: 1; right: 15%; bottom: 14%; left: 15%; display: flex; justify-content: space-between; gap: 15px; color: var(--ink); font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }
.hero-index { position: absolute; bottom: 30px; left: 5.5vw; display: flex; align-items: center; gap: 15px; color: var(--muted); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.hero-index span:first-child { color: var(--rust); }
.craft-section { display: grid; grid-template-columns: 1.1fr 1fr .8fr; align-items: end; gap: 6vw; padding: 104px 12vw; background: var(--ink); color: var(--paper); }
.craft-section .eyebrow { color: #d29a77; }
.craft-section h2, .contact-section h2 { margin: 0; font: 400 clamp(36px, 4vw, 58px)/1.08 var(--serif); }
.craft-copy p { margin: 0 0 26px; color: rgba(244,240,231,.76); font-size: 18px; line-height: 1.9; }
.craft-copy .text-link { color: var(--paper); border-color: #d29a77; }
.craft-rule { width: 1px; height: 100%; min-height: 120px; justify-self: center; background: rgba(244,240,231,.25); }
.craft-note { margin: 0; color: rgba(244,240,231,.78); font-size: 18px; line-height: 1.8; }
.craft-note span { display: inline-block; width: 34px; color: #d29a77; }
.collection-section { padding: 100px 12vw 110px; }
.collection-heading { display: flex; justify-content: space-between; align-items: end; gap: 35px; margin-bottom: 45px; }
.collection-heading .eyebrow { margin-bottom: 15px; }
.collection-heading h2 { max-width: 520px; margin: 0; font: 400 clamp(36px, 4vw, 56px)/1.08 var(--serif); }
.collection-heading > p { max-width: 330px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.8; }
.collection-empty { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 26px; padding: 30px 0; border-top: 1px solid var(--line); }
.collection-empty:last-child { border-bottom: 1px solid var(--line); }
.collection-number { color: var(--rust); font: 400 36px var(--serif); }
.collection-empty h3 { margin: 0 0 7px; font: 400 24px var(--serif); }
.collection-empty p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.6; }
.product-intro { max-width: 580px; }
.contact-section { padding: 85px 12vw 100px; background: var(--paper-deep); text-align: center; }
.contact-section .eyebrow { margin-bottom: 18px; }
.contact-section h2 { margin-bottom: 17px; }
.contact-section > p:not(.eyebrow) { margin-bottom: 23px; color: var(--muted); font-size: 18px; }
.contact-link { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; font-size: 18px; }
.contact-phone { margin: 18px 0 0; color: var(--muted); font-size: 18px; line-height: 1.8; }
.contact-phone a { color: var(--ink); text-decoration-color: var(--rust); text-underline-offset: 3px; }
.site-footer { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 20px; padding: 24px 5.5vw; }
.footer-wordmark { font-size: 14px; }
.footer-wordmark .wordmark-mark { width: 30px; font-size: 16px; }
.footer-wordmark small { font-size: 8px; }
.site-footer > p, .copyright { margin: 0; color: var(--muted); font-size: 18px; text-align: center; }
.copyright { text-align: right; }
@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes reveal-in { from { opacity: 0; clip-path: inset(8% 0 0 8%); } to { opacity: 1; clip-path: inset(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
@media (max-width: 760px) {
  .site-header { grid-template-columns: 1fr auto; min-height: 74px; padding: 12px 6vw; }
  .site-nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; padding: 5px 0 3px; }
  .cart-button { grid-column: 2; grid-row: 1; }
  .hero { grid-template-columns: 1fr; min-height: auto; padding: 35px 6vw 70px; gap: 22px; }
  .hero-copy { padding: 22px 0 0; }
  .hero h1 { max-width: 540px; font-size: clamp(44px, 12vw, 68px); }
  .hero-description { font-size: 18px; }
  .hero-art { min-height: 300px; }
  .hero-monogram { font-size: 190px; }
  .hero-index { left: 6vw; bottom: 26px; }
  .craft-section { grid-template-columns: 1fr 1fr; padding: 70px 8vw; gap: 30px; }
  .craft-section h2 { font-size: 42px; }
  .craft-rule { display: none; }
  .craft-note { grid-column: 2; }
  .collection-section { padding: 70px 8vw; }
  .collection-heading { display: block; }
  .collection-heading > p { margin-top: 20px; }
  .collection-empty { grid-template-columns: 44px 1fr; gap: 13px; }
  .collection-empty:not(:last-child) { border-bottom: 0; }
  .collection-empty .text-link { grid-column: 2; justify-self: start; }
  .contact-section { padding: 70px 8vw; }
  .site-footer { grid-template-columns: 1fr auto; padding: 22px 6vw; }
  .site-footer > p { grid-column: 1 / -1; grid-row: 2; text-align: left; }
  .copyright { grid-column: 2; grid-row: 1; }
}
@media (max-width: 420px) {
  .site-nav { gap: 12px; }
  .site-nav a { font-size: 11px; }
  .hero-art { min-height: 250px; }
  .hero-art-label { font-size: 8px; }
  .craft-section { grid-template-columns: 1fr; }
  .craft-note { grid-column: 1; }
  .collection-empty { grid-template-columns: 34px 1fr; }
  .collection-empty h3 { font-size: 21px; }
  .copyright { max-width: 120px; line-height: 1.5; }
}

/* Multi-page storefront */
:root { --ink: #263b32; --paper: #f4f0e7; --paper-deep: #e8e2d5; --rust: #a45d43; --line: rgba(38,59,50,.22); }
body { letter-spacing: 0; background: var(--paper); }
a { text-underline-offset: .18em; }
#site-header { position: relative; z-index: 4; background: var(--paper); }
.utility-line { display: flex; justify-content: space-between; gap: 20px; padding: 8px 5.5vw; color: var(--paper); background: var(--ink); font-size: 10px; letter-spacing: .04em; }
.header-main { min-height: 112px; padding: 13px 5.5vw; display: flex; align-items: center; justify-content: space-between; gap: 35px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 13px; color: var(--ink); text-decoration: none; font: 400 21px/1 var(--serif); }
.brand img { width: 220px; height: 86px; object-fit: contain; }
.header-main .brand img { width: 350px; max-width: 100%; height: auto; }
.brand small { display: block; margin-top: 5px; font: 600 9px/1 var(--sans); letter-spacing: .15em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(20px,3vw,44px); }
.site-nav a { color: var(--ink); font-size: 20px; text-decoration: none; }
.footer-main nav a { color: var(--ink); font-size: 12px; text-decoration: none; }
.site-nav a:hover, .footer-main nav a:hover { color: var(--rust); }
.cart-link { padding: 9px 12px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-size: 18px; }
.snipcart-items-count { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-left: 7px; border-radius: 50%; color: var(--paper); background: var(--ink); }
.menu-toggle { display: none; }
main { min-height: 55vh; }
.home-hero { display: flex; flex-direction: column; align-items: center; gap: 38px; padding: 58px 7vw 76px; background: #f9f7f3; }
.home-hero-copy { width: 100%; max-width: 760px; text-align: center; }
.hero-callout { display: grid; justify-items: center; gap: 5px; width: fit-content; margin: 24px auto 0; padding: 14px 0 0; border-top: 1px solid var(--line); color: var(--ink); font-size: 16px; line-height: 1.5; }
.hero-callout a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font-size: 18px; font-weight: 700; text-underline-offset: 4px; }
.eyebrow { margin: 0 0 16px; color: var(--rust); font: 600 10px/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
h1,h2,h3 { color: var(--ink); }
.home-hero h1 { max-width: 760px; margin: 0 auto 20px; color: #405424; font: 400 clamp(46px,5.2vw,60px)/1.04 var(--serif); text-wrap: balance; }
.page-heading h1 { margin: 0 0 20px; font: 400 66px/1.02 var(--serif); }
.hero-description { max-width: 650px; margin: 0 auto 28px; color: var(--muted); font: 18px/1.7 var(--sans); }
.home-hero-image { position: relative; width: min(100%, 1180px); aspect-ratio: 1048 / 588; height: auto; margin: 0; padding: 0; overflow: hidden; border: 12px solid #e9e1e3; background: #fff; box-shadow: 0 14px 34px rgba(38,59,50,.1); }
.home-hero-image picture { display: block; width: 100%; height: 100%; }
.home-hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.button-link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border: 1px solid var(--ink); color: var(--paper); background: var(--ink); text-decoration: none; cursor: pointer; font: 500 16px/1.3 var(--sans); }
.button-link:hover { background: var(--rust); border-color: var(--rust); }
.split-story { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 7vw; padding: 75px 10vw; background: var(--paper-deep); }
.split-story figure { min-height: 330px; margin: 0; background: #d2c5ad; }
.split-story figure img { width: 100%; height: 100%; max-height: 510px; object-fit: cover; }
.split-story .bookcase-photo { min-height: 0; aspect-ratio: 3 / 4; }
.split-story .bookcase-photo img { max-height: none; object-fit: contain; }
.split-story .pine-cross-photo { min-height: 0; aspect-ratio: 3 / 4; }
.split-story .pine-cross-photo img { max-height: none; object-fit: contain; }
.split-story > div { max-width: 620px; }
.split-story h2, .section-heading h2, .ethos-inner h2, .product-care h2, .contact-details h2 { margin: 0 0 22px; font: 400 43px/1.08 var(--serif); }
.split-story p:not(.eyebrow), .ethos-inner > p:not(.eyebrow) { color: var(--muted); font: 18px/1.8 var(--sans); }
.reverse-story { background: var(--paper); }
.reverse-story figure { order: 2; }
.testimonials-section { padding: 84px 8vw 92px; color: var(--paper); background: var(--ink); }
.testimonials-section h2 { max-width: 680px; margin: 0 0 38px; color: var(--paper); font: 400 45px/1.08 var(--serif); }
.testimonials-section .eyebrow { color: #d29a77; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.testimonial-grid blockquote { margin: 0; padding: 26px 0 0; border-top: 1px solid rgba(244,240,231,.36); }
.testimonial-grid blockquote > picture { display: block; width: 100%; aspect-ratio: 4 / 3; margin-bottom: 20px; overflow: hidden; background: rgba(244,240,231,.12); }
.testimonial-grid blockquote > picture img { width: 100%; height: 100%; object-fit: contain; }
.testimonial-grid blockquote p { min-height: 130px; margin: 0 0 24px; color: rgba(244,240,231,.87); font: 18px/1.75 var(--serif); }
.testimonial-grid cite { display: grid; gap: 5px; color: var(--paper); font: 600 16px var(--sans); font-style: normal; }
.testimonial-grid cite span { color: rgba(244,240,231,.65); font-weight: 400; }
.who-we-are { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: 7vw; padding: 76px 10vw; background: #f9f7f3; }
.who-we-are-photo { min-width: 0; }
.who-we-are-photo picture { display: block; width: 100%; aspect-ratio: 4 / 3; margin-bottom: 20px; padding: 10px; overflow: hidden; border: 1px solid #e9e1e3; background: #fff; box-shadow: 0 12px 30px rgba(38,59,50,.08); }
.who-we-are-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.who-we-are-photo .eyebrow { margin-bottom: 8px; }
.who-we-are-names { margin: 0 0 5px; color: var(--ink); font: 400 26px/1.2 var(--serif); }
.who-we-are-caption { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.5; }
.who-we-are-copy { max-width: 680px; }
.who-we-are-copy .eyebrow { margin-bottom: 14px; }
.who-we-are-copy h2 { margin: 0 0 22px; color: #405424; font: 400 43px/1.08 var(--serif); }
.who-we-are-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.8; }
.who-we-are-copy .text-link { margin-top: 2px; }
.home-catalog, .catalog-group { padding: 78px 8vw; }
.home-catalog { border-bottom: 1px solid #d8cfc0; background: var(--paper-deep); }
.home-catalog > h2 { margin: 0 0 36px; font: 400 48px/1.1 var(--serif); }
.home-catalog > .text-link { margin-top: 30px; }
.home-catalog .catalog-item { overflow: hidden; border: 0; background: var(--paper); box-shadow: 0 14px 34px rgba(12, 24, 17, .24); }
.home-catalog .catalog-item-copy { padding: 20px; }
.catalog-price span, .detail-price span { display: block; }
.basswood-placeholder-art { display: grid; box-sizing: border-box; width: 100%; height: 100%; min-height: 220px; align-items: center; justify-items: center; padding: 22px; background: linear-gradient(135deg, #d2c5ad, #e4dccd); }
.basswood-placeholder-art span { padding: 7px 12px; border: 1px solid rgba(38,59,50,.5); color: var(--ink); background: rgba(244,240,231,.9); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.faq-section { display: grid; grid-template-columns: minmax(230px,.7fr) minmax(0,1.3fr); gap: 7vw; padding: 78px 10vw 88px; border-top: 1px solid rgba(255,255,255,.8); background: var(--paper); }
.faq-heading { align-self: start; }
.faq-heading .eyebrow { margin-bottom: 14px; }
.faq-heading h2 { max-width: 400px; margin: 0; color: var(--ink); font: 400 42px/1.1 var(--serif); }
.faq-list { min-width: 0; border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; min-height: 64px; padding: 14px 4px; color: var(--ink); cursor: pointer; font-size: 20px; font-weight: 600; line-height: 1.4; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { flex: 0 0 auto; margin-left: auto; padding-left: 18px; color: var(--rust); content: "+"; font-size: 25px; font-weight: 400; }
.faq-item[open] summary::after { content: "−"; }
.faq-item summary:focus-visible { outline: 3px solid var(--rust); outline-offset: 3px; }
.faq-answer { max-width: 720px; padding: 0 38px 20px 4px; }
.faq-answer p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.faq-answer a { color: var(--ink); text-underline-offset: 3px; }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.catalog-item { display: flex; min-width: 0; flex-direction: column; border-top: 1px solid var(--line); }
.catalog-image { display: block; overflow: hidden; background: #e4dccd; }
.catalog-image picture, .catalog-image img { width: 100%; height: 100%; }
.catalog-image picture { display: block; }
.catalog-image img { display: block; width: 100%; height: auto; object-fit: cover; }
.catalog-image .basswood-placeholder-art { aspect-ratio: 3 / 4; }
.catalog-item-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 18px 4px 4px; }
.catalog-item-copy { position: relative; overflow: hidden; }
.catalog-item-copy > * { position: relative; z-index: 1; }
.catalog-item-copy[style*="--silhouette"]::before { content: ""; position: absolute; inset: 0; background: var(--silhouette) no-repeat right -8px bottom -25px / auto 50%; mix-blend-mode: multiply; opacity: .1; pointer-events: none; }
.catalog-item h3 { margin: 0 0 10px; font: 400 25px/1.1 var(--serif); }
.catalog-item h3 a { text-decoration: none; }
.catalog-item-copy > p:not(.latin-name) { margin: 0 0 16px; color: var(--muted); font: 18px/1.65 var(--sans); }
.latin-name { margin: 0 0 9px; color: var(--rust); font: italic 13px var(--serif); }
.catalog-price { margin-top: auto; padding: 8px 0 13px; font-size: 18px; }
.catalog-item-copy .text-link { font-size: 16px; }
.text-link { display: inline-flex; align-items: center; gap: 15px; padding-bottom: 7px; border-bottom: 1px solid var(--rust); color: var(--ink); text-decoration: none; font-size: 16px; }
.text-link span { color: var(--rust); font-size: 17px; }
.ethos-section { padding: 80px 8vw; color: var(--ink); background: #f9f7f3; }
.ethos-inner { max-width: 1170px; margin: 0 auto; }
.ethos-inner .eyebrow { color: var(--rust); }
.ethos-inner h2 { max-width: 700px; color: #405424; }
.ethos-inner > p:not(.eyebrow) { max-width: 700px; color: var(--muted); }
.ethos-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 38px; }
.ethos-grid article { padding: 24px; border: 1px solid #e9e1e3; background: #fff; }
.ethos-icon { display: grid; width: 54px; height: 54px; margin-bottom: 20px; place-items: center; border: 1px solid #e9e1e3; color: #405424; }
.ethos-icon svg { width: 38px; height: 38px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.ethos-grid h3 { margin: 0 0 10px; color: #405424; font: 400 25px var(--serif); }
.ethos-grid p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.7; }
.page-heading { padding: 74px 8vw 44px; }
.page-heading h1 { margin-bottom: 16px; }
.page-heading > p:not(.eyebrow) { max-width: 660px; color: var(--muted); font: 18px/1.7 var(--sans); }
.catalog-group { padding-top: 32px; }
.catalog-group + .catalog-group { border-top: 1px solid var(--line); }
.section-heading { margin-bottom: 30px; }
.section-heading h2 { margin-bottom: 10px; }
.section-heading > p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.7; }
.iconboards-bridge { display: grid; grid-template-columns: 1fr 180px; align-items: center; gap: 40px; margin: 0 8vw 80px; padding: 30px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.iconboards-bridge h2 { margin: 0 0 10px; font: 400 32px var(--serif); }
.iconboards-bridge p:not(.eyebrow) { color: var(--muted); font-size: 18px; }
.iconboards-bridge picture, .iconboards-bridge img { width: 180px; height: auto; }
.maker-profiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; padding: 65px 10vw; background: var(--paper-deep); }
.maker-profiles article { max-width: 620px; }
.maker-profiles picture { display: block; margin-bottom: 22px; aspect-ratio: 1.2; overflow: hidden; background: #d2c5ad; }
.maker-profiles img { width: 100%; height: 100%; object-fit: cover; }
.maker-profiles h2, .maker-item h2 { margin: 0 0 12px; font: 400 31px/1.1 var(--serif); }
.maker-profiles article > p:not(.eyebrow), .maker-item > p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.7; }
.maker-grid, .resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px 24px; padding: 10px 8vw 90px; }
.maker-item, .resource-item { min-width: 0; }
.maker-item picture, .resource-item picture { display: block; aspect-ratio: 1.25; margin-bottom: 18px; overflow: hidden; background: #e1d8c8; }
.maker-item img, .resource-item img { width: 100%; height: 100%; object-fit: cover; }
.maker-item h2, .resource-item h3 { margin: 0 0 10px; font: 400 25px/1.15 var(--serif); }
.maker-item .text-link, .resource-item .text-link { margin-top: 6px; }
.resource-quote { max-width: 850px; margin: 30px 0 0; padding: 20px 0 20px 25px; border-left: 2px solid var(--rust); color: var(--ink); font: 400 20px/1.65 var(--serif); }
.resource-quote cite { display: block; margin-top: 14px; color: var(--muted); font: 11px var(--sans); font-style: normal; }
.resource-item h3 { font-size: 22px; }
.resource-item > p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.65; }
.contact-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr); gap: 8vw; padding: 0 10vw 90px; }
.contact-form { display: grid; gap: 17px; }
.form-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.contact-form label { display: grid; gap: 7px; color: var(--ink); font-size: 18px; }
.contact-form input, .contact-form textarea { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: rgba(255,255,255,.44); font: 18px var(--sans); }
.contact-form textarea { resize: vertical; }
.contact-form .button-link { justify-self: start; }
.contact-details { align-self: start; padding: 26px; background: var(--paper-deep); }
.contact-details h2 { font-size: 28px; }
.contact-details p { color: var(--muted); font-size: 18px; line-height: 1.8; }
.contact-details a { color: var(--ink); overflow-wrap: anywhere; }
.form-status { min-height: 18px; color: var(--muted); font-size: 18px; }
.sitemap-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 40px 5vw; padding: 0 10vw 90px; }
.sitemap-layout h2 { margin: 0 0 16px; font: 400 28px/1.1 var(--serif); }
.sitemap-layout ul { margin: 0; padding: 0; list-style: none; }
.sitemap-layout li { border-top: 1px solid var(--line); }
.sitemap-layout a { display: block; padding: 11px 0; color: var(--ink); font-size: 18px; text-decoration: none; }
.sitemap-layout a:hover { text-decoration: underline; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; padding: 24px 6vw; color: var(--muted); font-size: 14px; }
.breadcrumbs a { color: var(--ink); text-decoration: none; }
.product-detail { display: grid; grid-template-columns: minmax(320px,.82fr) minmax(0,1.18fr); align-items: start; gap: 5vw; padding: 0 6vw 80px; }
.product-gallery { order: 2; min-width: 0; display: grid; align-content: start; gap: 12px; }
.initial-product-image { display: block; aspect-ratio: 1.3; margin: 0; overflow: hidden; background: #e3dccf; }
.initial-product-image picture, .initial-product-image img { display: block; width: 100%; height: 100%; }
.initial-product-image img { object-fit: contain; }
.gallery-main, .gallery-thumbnail { display: block; overflow: hidden; padding: 0; border: 0; background: #e3dccf; cursor: zoom-in; }
.gallery-main { width: 100%; aspect-ratio: 1.3; }
.gallery-main picture, .gallery-main img, .gallery-thumbnail picture, .gallery-thumbnail img { width: 100%; height: 100%; }
.gallery-main img, .gallery-thumbnail img { object-fit: contain; }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }
.gallery-thumbnail { aspect-ratio: 1.2; border: 1px solid transparent; }
.gallery-thumbnail:hover, .gallery-thumbnail:focus-visible { border-color: var(--rust); outline: none; }
.gallery-lightbox { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 24px; border: 0; color: var(--paper); background: rgba(18,26,22,.96); grid-template-columns: 64px minmax(0,1fr) 64px; grid-template-rows: minmax(0,1fr) auto; align-items: center; gap: 18px; }
.gallery-lightbox[open] { display: grid; }
.gallery-lightbox::backdrop { background: rgba(12,18,15,.88); }
.gallery-lightbox-image { grid-column: 2; grid-row: 1; display: grid; place-items: center; width: 100%; height: 100%; min-width: 0; min-height: 0; margin: 0; }
.gallery-lightbox-image picture { display: grid; place-items: center; width: 100%; height: 100%; }
.gallery-lightbox-image img { width: 100%; height: 100%; max-height: calc(100dvh - 110px); object-fit: contain; }
.gallery-close, .gallery-previous, .gallery-next { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(244,240,231,.45); color: var(--paper); background: rgba(244,240,231,.08); cursor: pointer; font: 400 30px/1 var(--sans); }
.gallery-close:hover, .gallery-previous:hover, .gallery-next:hover { background: rgba(244,240,231,.18); }
.gallery-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; font-size: 32px; }
.gallery-previous { grid-column: 1; grid-row: 1; }
.gallery-next { grid-column: 3; grid-row: 1; }
.gallery-count { grid-column: 1 / -1; grid-row: 2; margin: 0; color: rgba(244,240,231,.78); text-align: center; font-size: 16px; }
.product-purchase { position: sticky; top: 24px; align-self: start; padding: 18px 0; }
.product-purchase { order: 1; }
.product-purchase h1 { margin: 0 0 18px; font: 400 45px/1.07 var(--serif); }
.detail-price { margin: 0 0 18px; color: var(--ink); font: 400 30px/1.25 var(--serif); }
.detail-price span { font-size: 22px; }
.detail-description { color: var(--muted); font-size: 18px; line-height: 1.8; }
.detail-note { margin: 22px 0; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 18px; line-height: 1.6; }
.contact-quick { display: grid; justify-items: start; gap: 4px; margin-top: 22px; padding: 14px 16px; border-left: 3px solid var(--rust); background: var(--paper-deep); color: var(--ink); }
.contact-quick p { margin: 0; color: var(--ink); font-size: 18px; line-height: 1.5; }
.contact-quick .call-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font-size: 18px; font-weight: 700; text-underline-offset: 4px; }
.contact-quick .email-link { color: var(--ink); font-size: 16px; text-underline-offset: 3px; }
.casket-configurator { display: grid; gap: 18px; margin: 0 6vw 65px; padding: 28px clamp(20px, 5vw, 64px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper-deep); }
.casket-configurator h2 { margin: 0; font: 400 34px/1.1 var(--serif); }
.config-intro { max-width: 700px; margin: -8px 0 0; color: var(--muted); line-height: 1.6; }
.casket-option-group { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--line); }
.casket-option-group legend { width: 100%; margin-bottom: 4px; padding: 0; color: var(--ink); font-weight: 600; }
.casket-choice { display: grid; grid-template-columns: 22px minmax(0, 1fr) max-content; align-items: start; gap: 10px; padding: 9px 10px; border: 1px solid transparent; cursor: pointer; }
.casket-choice:hover { border-color: var(--line); background: rgba(255,255,255,.35); }
.casket-choice input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--ink); }
.casket-choice strong { color: var(--rust); font-size: 16px; font-weight: 600; white-space: nowrap; }
.casket-cross-details, .casket-quantity { display: grid; gap: 8px; max-width: 460px; color: var(--ink); font-weight: 600; }
.casket-cross-note, .casket-quantity-input { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 0; background: rgba(255,255,255,.55); color: var(--ink); font: 18px var(--sans); }
.casket-quantity-input { max-width: 120px; }
.casket-total { display: grid; gap: 0; max-width: 620px; margin: 0; border-top: 1px solid var(--line); }
.casket-total div { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.casket-total dt { color: var(--muted); }
.casket-total dd { margin: 0; color: var(--ink); font-weight: 600; text-align: right; }
.deposit-note { max-width: 700px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.6; }
.casket-deposit-button { justify-self: start; }
.config-status { min-height: 1em; margin: 0; color: var(--muted); }
.product-care { padding: 55px 10vw; background: var(--paper-deep); }
.product-care h2 { font-size: 32px; }
.product-care p:last-child { max-width: 650px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.product-specifications, .product-options, .product-shipping { padding: 45px 10vw; border-top: 1px solid var(--line); }
.product-specifications h2, .product-options h2, .product-shipping h2 { margin: 0 0 22px; font: 400 32px/1.1 var(--serif); }
.product-specifications dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 35px; max-width: 850px; margin: 0 0 20px; }
.product-specifications dl div { display: grid; grid-template-columns: minmax(130px,.7fr) 1.3fr; gap: 15px; padding: 13px 0; border-top: 1px solid var(--line); }
.product-specifications dt { color: var(--muted); font-size: 18px; }
.product-specifications dd { margin: 0; font-size: 18px; }
.product-specifications > p, .product-shipping p, .product-shipping li { max-width: 840px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.product-options ul, .product-shipping ul { display: grid; gap: 10px; max-width: 840px; padding-left: 20px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.product-shipping h3 { margin: 25px 0 8px; font: 400 23px var(--serif); }
.image-missing { min-height: 160px; background: repeating-linear-gradient(45deg,#e7e1d5,#e7e1d5 8px,#eee9df 8px,#eee9df 16px); }
#site-footer { color: var(--paper); background: var(--ink); }
#snipcart { color: var(--ink); font-family: var(--sans); }
#snipcart .snipcart-modal__container,
#snipcart .snipcart-cart__content,
#snipcart .snipcart-sidecart,
#snipcart .snipcart-cart,
#snipcart .snipcart-layout,
#snipcart .snipcart-cart__secondary-header,
#snipcart .snipcart-cart__footer { color: var(--ink); background: var(--paper); }
#snipcart .snipcart-cart-header,
#snipcart .snipcart-header,
#snipcart .snipcart-cart__header { color: var(--ink); background: var(--paper-deep); border-bottom: 1px solid var(--line); }
#snipcart .snipcart-cart-header__title,
#snipcart .snipcart-modal__header-title,
#snipcart .snipcart-item-line__title,
#snipcart .snipcart-cart-summary__title,
#snipcart .snipcart-header__title { color: var(--ink); font-family: var(--serif); }
#snipcart .snipcart-cart-summary,
#snipcart .snipcart-cart-summary-fees,
#snipcart .snipcart-summary-box,
#snipcart .snipcart-cart-summary__content { color: var(--ink); background: var(--paper-deep); border: 1px solid var(--line); }
#snipcart .snipcart-item-line { background: transparent; border-bottom: 1px solid var(--line); }
#snipcart .snipcart-item-line:hover { background: rgba(255,255,255,.25); }
#snipcart .snipcart-item-line__description,
#snipcart .snipcart-item-line__description,
#snipcart .snipcart-item-custom-fields__field { color: var(--muted); font: 18px/1.5 var(--sans); }
#snipcart .snipcart-item-quantity__quantity-price,
#snipcart .snipcart-item-line__price,
#snipcart .snipcart-summary-fee__amount,
#snipcart .snipcart-cart-summary-fees__total,
#snipcart .snipcart-cart-summary-fees__item,
#snipcart .snipcart-summary-fee { color: var(--ink); font-weight: 600; }
#snipcart .snipcart-button-primary,
#snipcart .snipcart-cart-button,
#snipcart .snipcart-button-link--highlight { color: var(--paper); background: var(--ink); border: 1px solid var(--ink); border-radius: 0; font: 600 16px/1.3 var(--sans); letter-spacing: .04em; text-transform: uppercase; }
#snipcart .snipcart-base-button__label { color: inherit; background: transparent; border: 0; border-radius: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; }
#snipcart .snipcart-button-primary:hover,
#snipcart .snipcart-button-primary:focus-visible,
#snipcart .snipcart-cart-button:hover,
#snipcart .snipcart-button-link--highlight:hover { color: var(--paper); background: var(--rust); border-color: var(--rust); }
#snipcart .snipcart-button-secondary,
#snipcart .snipcart-button-icon { color: var(--ink); background: transparent; border: 1px solid var(--line); border-radius: 0; font-family: var(--sans); }
#snipcart .snipcart-button-secondary:hover,
#snipcart .snipcart-button-icon:hover { color: var(--paper); background: var(--ink); }
#snipcart .snipcart-button-link { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
#snipcart .snipcart-button-link:hover { color: var(--rust); }
#snipcart .snipcart-input { color: var(--ink); background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: 0; }
#snipcart .snipcart-input:focus { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
#snipcart .snipcart-cart-summary-expanded-icon svg,
#snipcart .snipcart-icon svg path,
#snipcart .snipcart-icon svg,
#snipcart .snipcart-cart-header__close-button svg path,
#snipcart .snipcart-header__close-button svg path { fill: var(--ink); }
#snipcart .snipcart-item-quantity__quantity { color: var(--ink); background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: 0; }
#snipcart .snipcart-item-quantity__quantity span { color: var(--ink) !important; font-size: 15px; font-weight: 600; }
#snipcart .snipcart-badge { color: var(--paper) !important; background: var(--ink); border-radius: 50%; font-weight: 600; }
#snipcart .snipcart-cart-header__option,
#snipcart .snipcart-cart-header__count { display: inline-flex !important; align-items: center !important; gap: 8px !important; padding: 4px 8px !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; font-size: 14px !important; font-weight: 600 !important; }
#snipcart .snipcart-cart-header__icon,
#snipcart .snipcart-cart-header__icon path { width: 20px !important; height: 20px !important; color: var(--ink) !important; fill: var(--ink) !important; }
#snipcart .snipcart-empty-cart__title { display: block; height: auto; flex: 0 1 auto; align-self: center; max-width: 32ch; color: var(--ink); font: 400 28px/1.2 var(--serif); text-align: center; }
#snipcart .snipcart-empty-cart { color: var(--ink); }
.footer-main { display: grid; grid-template-columns: 1.1fr 1.2fr 1.25fr 1.4fr; align-items: start; gap: 35px; padding: 36px 6vw; }
.footer-brand { color: var(--paper); }
.footer-brand img { filter: brightness(0) invert(1); }
.footer-main > p, .footer-contact { color: rgba(244,240,231,.75); font-size: 18px; line-height: 1.8; }
.footer-main nav, .footer-contact { display: grid; gap: 10px; }
.footer-main nav a { color: var(--paper); font-size: 20px; text-decoration: none; }
.footer-contact a { color: var(--paper); font-size: 18px; text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; padding: 13px 6vw; border-top: 1px solid rgba(244,240,231,.23); color: rgba(244,240,231,.65); font-size: 10px; }
.footer-bottom a { color: var(--paper); text-decoration: none; }
@media (max-width: 800px) {
  .utility-line { display: none; }
  .header-main { min-height: 0; padding: 14px 8px 12px; display: grid; grid-template-columns: 1fr; justify-items: center; gap: 8px; }
  .brand { justify-self: center; }
  .header-main .brand img { width: 350px; max-width: 100%; height: auto; }
  .menu-toggle { display: none; }
  .site-nav, .site-nav.is-open { display: flex; width: 100%; flex-basis: auto; align-items: center; justify-content: center; flex-direction: row; flex-wrap: wrap; gap: clamp(20px, 7vw, 34px); padding: 7px 0 4px; }
  .site-nav a { font-size: 20px; }
  .cart-link { font-size: 18px; }
  .site-nav a, .cart-link { padding: 5px 0; border: 0; }
  .home-hero { grid-template-columns: 1fr; min-height: 0; padding: 40px 6vw 54px; gap: 24px; }
  .home-hero h1, .page-heading h1 { font-size: 46px; }
  .home-hero-image { height: auto; min-height: 0; }
  .split-story { grid-template-columns: 1fr; gap: 24px; padding: 52px 7vw; }
  .split-story figure { min-height: 0; aspect-ratio: 1.25; }
  .split-story figure img { height: 100%; }
  .reverse-story figure { order: initial; }
  .split-story h2, .section-heading h2, .ethos-inner h2 { font-size: 35px; }
  .testimonials-section { padding: 58px 7vw; }
  .testimonials-section h2 { font-size: 36px; }
  .testimonial-grid { grid-template-columns: 1fr; gap: 22px; }
  .testimonial-grid blockquote p { min-height: 0; }
  .who-we-are { grid-template-columns: 1fr; gap: 28px; padding: 54px 7vw; }
  .who-we-are-photo { max-width: 560px; }
  .who-we-are-copy h2 { font-size: 36px; }
  .home-catalog, .catalog-group { padding: 55px 6vw; }
  .home-catalog > h2 { font-size: 38px; }
  .faq-section { grid-template-columns: 1fr; gap: 25px; padding: 56px 7vw 64px; }
  .faq-heading h2 { max-width: 540px; font-size: 36px; }
  .faq-item summary { min-height: 64px; padding: 14px 2px; font-size: 19px; }
  .faq-answer { padding-right: 20px; padding-left: 2px; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 14px; }
  .catalog-item h3 { font-size: 21px; }
  .catalog-item-copy > p:not(.latin-name) { font-size: 18px; }
  .ethos-section { padding: 58px 7vw; }
  .ethos-grid { grid-template-columns: 1fr; gap: 19px; }
  .page-heading { padding: 52px 6vw 28px; }
  .iconboards-bridge { grid-template-columns: 1fr 100px; gap: 20px; margin: 0 6vw 55px; }
  .iconboards-bridge picture, .iconboards-bridge img { width: 100px; }
  .maker-profiles { grid-template-columns: 1fr; padding: 48px 7vw; }
  .maker-grid, .resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px 15px; padding: 8px 6vw 58px; }
  .maker-item h2, .resource-item h3 { font-size: 21px; }
  .contact-layout { grid-template-columns: 1fr; gap: 30px; padding: 0 7vw 60px; }
  .product-detail { grid-template-columns: 1fr; gap: 20px; padding: 0 5vw 55px; }
  .product-purchase { grid-row: 1; }
  .product-gallery { grid-row: 2; }
  .gallery-thumbnails { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
  .gallery-lightbox { padding: 16px 10px; grid-template-columns: 42px minmax(0,1fr) 42px; gap: 8px; }
  .gallery-previous, .gallery-next { width: 40px; height: 48px; font-size: 24px; }
  .gallery-close { top: 10px; right: 10px; width: 40px; height: 40px; }
  .gallery-lightbox-image img { max-height: calc(100dvh - 100px); }
  .casket-configurator { margin: 0 5vw 45px; padding: 24px 18px; }
  .casket-configurator h2 { font-size: 30px; }
  .casket-choice { grid-template-columns: 22px minmax(0, 1fr); gap: 8px; }
  .casket-choice strong { grid-column: 2; }
  .product-purchase { position: static; grid-row: 1; }
  .product-specifications, .product-options, .product-shipping { padding: 38px 7vw; }
  .product-specifications dl { grid-template-columns: 1fr; }
  .product-purchase h1 { font-size: 38px; }
  .breadcrumbs { padding: 18px 5vw; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "brand nav" "copy nav" "contact contact"; gap: 20px 16px; padding: 26px 6vw; }
  .footer-brand { grid-area: brand; }
  .footer-brand img { width: min(100%, 170px); height: auto; }
  .footer-main > p { grid-area: copy; margin: 0; }
  .footer-main nav { grid-area: nav; }
  .footer-contact { grid-area: contact; min-width: 0; overflow-wrap: anywhere; }
  .footer-main nav a { font-size: 20px; }
}
@media (max-width: 480px) {
  .utility-line { display: none; }
  .home-hero h1, .page-heading h1 { font-size: 39px; }
  .product-grid, .maker-grid, .resource-grid { grid-template-columns: 1fr; }
  .maker-item picture, .resource-item picture { aspect-ratio: 1.35; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .footer-bottom { gap: 15px; }
  .product-gallery { gap: 8px; }
  .product-purchase h1 { font-size: 34px; }
}
/* Homepage price framing */
.hero-prices { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; margin: 0 auto 28px; padding: 0; list-style: none; }
.hero-prices li { display: grid; gap: 2px; min-width: 150px; padding: 4px 26px; text-align: center; }
.hero-prices li + li { border-left: 1px solid var(--line); }
.hero-prices li > span { color: var(--moss); font: 600 11px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.hero-prices strong { color: var(--ink); font: 400 30px/1.15 var(--serif); }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 18px 30px; }
.casket-lineup { padding: 80px 8vw 86px; background: var(--paper); }
.lineup-heading { max-width: 720px; margin-bottom: 40px; }
.lineup-heading h2 { margin: 0 0 20px; font: 400 45px/1.08 var(--serif); }
.lineup-heading > p:not(.eyebrow) { margin: 0; color: var(--muted); font: 18px/1.75 var(--sans); }
.lineup-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.lineup-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; box-shadow: 0 10px 28px rgba(38,59,50,.12); }
.lineup-image { display: block; aspect-ratio: 4 / 3; }
.lineup-image picture, .lineup-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lineup-copy { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.lineup-copy h3 { margin: 0 0 6px; font: 400 25px/1.15 var(--serif); }
.lineup-copy h3 a { color: var(--ink); text-decoration: none; }
.lineup-copy h3 a:hover { color: var(--rust); }
.lineup-desc { margin: 0 0 14px; color: #6b6b63; font: 14px/1.45 var(--sans); }
.lineup-price { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: auto 0 0; padding-top: 10px; border-top: 1px solid var(--line); }
.lineup-price span { color: var(--ink); font: 500 14px/1.4 var(--sans); }
.lineup-price strong { color: var(--ink); font: 400 26px/1.1 var(--serif); white-space: nowrap; }
.lineup-all { display: inline-block; margin-top: 26px; font-size: 14px; }
@media (max-width: 1000px) {
  .lineup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .casket-lineup { padding: 56px 7vw 60px; }
  .lineup-heading h2 { font-size: 35px; }
}
@media (max-width: 520px) {
  .lineup-grid { grid-template-columns: 1fr; }
}
.ahead-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 4px 0 22px; }
.ahead-compare > div { padding: 16px 18px; border: 1px solid var(--line); }
.ahead-compare > div:last-child { color: var(--paper); background: var(--ink); }
.ahead-compare h3 { margin: 0 0 10px; font: 600 12px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.ahead-compare > div:first-child h3 { color: var(--rust); }
.ahead-compare > div:last-child h3 { color: #d29a77; }
.ahead-compare ul { display: grid; gap: 6px; margin: 0; padding-left: 18px; font: 16px/1.5 var(--sans); }
@media (max-width: 800px) {
  .ahead-compare { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .hero-prices { flex-wrap: nowrap; }
  .hero-prices li { min-width: 0; padding: 4px 10px; }
  .hero-prices li > span { font-size: 9.5px; letter-spacing: .08em; }
  .hero-prices strong { font-size: 24px; }
}
.hero-local { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 28px auto 0; padding: 0; list-style: none; color: var(--ink); font: 500 15px/1.4 var(--sans); }
.hero-local li { display: inline-flex; align-items: center; gap: 8px; }
.hero-local svg { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--rust); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 520px) {
  .hero-local { flex-direction: column; align-items: center; gap: 8px; }
  .hero-local li { max-width: 290px; text-align: left; }
}
.closing-cta > p:not(.eyebrow) { max-width: 640px; margin-left: auto; margin-right: auto; line-height: 1.7; }
.closing-cta .hero-actions { margin-top: 6px; }
.closing-cta > p.closing-urgent { max-width: 560px; margin: 34px auto 0; padding-top: 18px; border-top: 1px solid var(--line); font-size: 16px; }
.bookcase-quote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--rust); }
.bookcase-quote p { margin: 0 0 10px; color: var(--ink); font: 20px/1.6 var(--serif); }
.bookcase-quote cite { color: #6b6b63; font: 600 14px/1.4 var(--sans); font-style: normal; }
.testimonial-grid.two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1000px; }
@media (max-width: 800px) {
  .testimonial-grid.two-up { grid-template-columns: 1fr; }
}
/* Shop casket cards: uniform 4:3 frame for lid-on casket photos */
#caskets .catalog-image img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
#caskets .catalog-image .basswood-placeholder-art { aspect-ratio: 4 / 3; }

/* Product pages: reasons near the price, customer quote */
.product-reasons { margin: 0 0 26px; padding: 16px 18px; border: 1px solid var(--line); background: #fbf9f4; }
.product-reasons ul { display: grid; gap: 8px; margin: 0 0 14px; padding: 0; list-style: none; }
.product-reasons li { position: relative; padding-left: 26px; color: var(--ink); font: 500 15px/1.45 var(--sans); }
.product-reasons li::before { content: ""; position: absolute; left: 2px; top: 4px; width: 12px; height: 7px; border-left: 2px solid var(--rust); border-bottom: 2px solid var(--rust); transform: rotate(-45deg); }
.product-reasons li a { color: var(--ink); }
.product-reasons .text-link { font-size: 13px; }
.product-quote { margin: 26px 0 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--rust); }
.product-quote p { margin: 0 0 10px; color: var(--ink); font: 19px/1.6 var(--serif); }
.product-quote cite { color: #6b6b63; font: 600 14px/1.4 var(--sans); font-style: normal; }
/* Shop: first catalog group sits close under the page heading */
.page-heading + .catalog-group { padding-top: 0; }
