@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;1,400&family=Outfit:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

:root {
  /* Neutrals */
  --drd-espresso: #1B1714;
  --drd-taupe: #6B5D52;
  --drd-stone: #E6E0D5;
  --drd-cream: #FAF8F5;
  /* Wood accents */
  --drd-bronze: #A67C4E;
  --drd-bronze-light: #C49A6C;
  /* Brand colors */
  --drd-hunter: #3E5641;
  --drd-crimson: #BC0000;
  /* Shade for text over photos */
  --drd-shade: rgba(27, 23, 20, 0.6);
  /* Type */
  --font-display: "Playfair Display", Georgia, serif;
  --font-body: "Lora", Georgia, serif;
  --font-label: "Outfit", "Helvetica Neue", Arial, sans-serif;
}

/* ==================================================================
   Deadwood Revival Design, site styles.
   The tokens block above is pasted verbatim from
   context/brand-guidelines.md; change colors and fonts there.
   Desktop values come from the Paper file "DRD Website Redesign",
   Version 4, artboard "C3 Blend" (1440 wide, 64 px side margins).
   Breakpoints: phone < 768, tablet 768 to 1279, desktop 1280 and up
   (header and hero switch at 1024 too).
   ================================================================== */

:root {
  --gutter: 64px;
  --content: 1312px;
  --line: rgba(27, 23, 20, .2);           /* Espresso 20%: hairlines on light */
  --line-dark: rgba(250, 248, 245, .2);   /* Cream 20%: hairlines on Espresso */
}
@media (max-width: 1279px) { :root { --gutter: 40px; } }
@media (max-width: 767px)  { :root { --gutter: 20px; } }

/* ------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--drd-cream);
  color: var(--drd-espresso);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.65;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, p, figure, blockquote, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; }
em { font-style: italic; }
:focus-visible { outline: 2px solid var(--drd-espresso); outline-offset: 3px; }
.on-dark :focus-visible, .site-footer :focus-visible { outline-color: var(--drd-cream); }

.wrap { width: 100%; max-width: calc(var(--content) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  padding: 12px 16px; background: var(--drd-espresso); color: var(--drd-cream);
  font-family: var(--font-label); font-weight: 500; font-size: 13px; letter-spacing: .14em;
  text-transform: uppercase; text-decoration: none;
}
.skip-link:focus { top: 12px; }

/* ------------------------------------------------------------ type */
.eyebrow {
  display: flex; align-items: center; gap: 16px;
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--drd-taupe);
}
.eyebrow::before { content: ""; flex: 0 0 40px; height: 1px; background: var(--drd-bronze); }
.eyebrow-ink { color: var(--drd-espresso); }
.eyebrow-ink::before { background: var(--drd-espresso); }

.display {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(36px, calc(1rem + 5.56vw), 96px);
  line-height: 1.04; letter-spacing: -.02em;
}
.display .line { display: block; }
.display em { font-style: italic; }
.accent { color: var(--drd-bronze); }

.caps-label {
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px;
  letter-spacing: .16em; text-transform: uppercase;
}

/* Underlined text link with an arrow ("Read the tree's story ->") */
.text-link {
  display: inline-block; align-self: flex-start;
  padding-bottom: 5px; border-bottom: 1px solid var(--drd-bronze);
  font-family: var(--font-label); font-weight: 500; font-size: 14px; line-height: 18px;
  letter-spacing: .02em; text-decoration: none; color: var(--drd-espresso);
  transition: border-color .2s ease;
}
.text-link:hover { border-bottom-color: var(--drd-espresso); }
/* Bigger tap area for the small links (card links already cover the card) */
.text-link:not(.card-link), .caps-link { position: relative; }
.text-link:not(.card-link)::before, .caps-link::before { content: ""; position: absolute; inset: -12px -6px -8px; }
.text-link-lg { font-size: 15px; line-height: 20px; }

/* The arrow after a link. Drawn, because Google's Latin subset of Outfit
   has no right arrow and the fallback glyph looks off. */
.arw {
  display: inline-block; width: .8em; height: .68em; vertical-align: -.02em; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M1 6h11.4M7.6 1.6 12.2 6l-4.6 4.4' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M1 6h11.4M7.6 1.6 12.2 6l-4.6 4.4' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Caps link with a rule under it ("BROWSE THE REGISTER ->") */
.caps-link {
  display: inline-flex; flex-direction: column; gap: 6px; text-decoration: none;
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--drd-espresso);
}
.caps-link::after { content: ""; height: 1px; background: var(--drd-bronze); transition: background-color .2s ease; }
.caps-link:hover::after { background: var(--drd-espresso); }

/* ------------------------------------------------------------ buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 60px; padding: 0 24px;
  border: 1px solid transparent;
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px;
  letter-spacing: .14em; text-transform: uppercase; text-decoration: none; text-align: center;
  cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn-primary { background: var(--drd-bronze); color: var(--drd-espresso); }
.btn-primary:hover { background: var(--drd-bronze-light); }
.btn-outline { border-color: var(--drd-espresso); color: var(--drd-espresso); }
.btn-outline:hover { background: var(--drd-espresso); color: var(--drd-cream); }
.btn-outline-light { border-color: var(--drd-cream); color: var(--drd-cream); }
.btn-outline-light:hover { background: var(--drd-cream); color: var(--drd-espresso); }
.btn-row { display: flex; flex-wrap: wrap; gap: 16px; }
.btn-hero { width: 240px; }
.btn-closing { width: 260px; }
.btn-auto { min-width: 240px; }
.btn-header { min-height: 48px; padding: 0 26px; flex-shrink: 0; }

@media (max-width: 767px) {
  .btn-row { flex-direction: column; gap: 12px; }
  .btn { min-height: 52px; }
  .btn-row .btn { width: 100%; }
}

/* ------------------------------------------------------------ header */
.site-header {
  position: relative; z-index: 40;
  background: var(--drd-cream); border-bottom: 1px solid var(--line);
}
.header-bar { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-block: 28px; }
.brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; text-decoration: none; color: var(--drd-espresso); }
.brand-logo { width: 342px; height: 74px; }
.brand-name { display: none; font-family: var(--font-display); font-size: 19px; line-height: 23px; white-space: nowrap; }
.brand-plain .brand-name { display: block; }

.site-nav { display: flex; align-items: center; gap: var(--nav-gap, 30px); }
.nav-list { display: flex; align-items: center; gap: var(--nav-gap, 30px); }
.nav-list a {
  display: block; padding-block: 16px; text-decoration: none; white-space: nowrap;
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--drd-espresso);
  background: linear-gradient(var(--drd-bronze), var(--drd-bronze)) 0 calc(100% - 9px) / 0 1px no-repeat;
  transition: background-size .2s ease;
}
.nav-list a:hover, .nav-list a[aria-current] { background-size: 100% 1px; }
.nav-contact, .header-cta, .menu-toggle { display: none; }

.menu-toggle {
  width: 44px; height: 44px; margin-right: -8px; padding: 0;
  background: none; border: 0; cursor: pointer; flex-shrink: 0;
}
.menu-toggle svg { width: 44px; height: 44px; fill: none; stroke: var(--drd-espresso); stroke-width: 1.6; stroke-linecap: round; }
.menu-toggle .icon-close, .menu-toggle[aria-expanded="true"] .icon-open { display: none; }
.menu-toggle[aria-expanded="true"] .icon-close { display: block; }

/* Desktop nav gets tighter before it hands over to the menu button */
@media (max-width: 1439px) and (min-width: 1280px) {
  .site-nav, .nav-list { --nav-gap: 20px; }
  .nav-list a { font-size: 12px; letter-spacing: .14em; }
  .site-nav .btn-header { padding: 0 20px; font-size: 12px; }
}

/* Tablet and phone: the nav becomes the menu panel */
@media (max-width: 1279px) {
  .site-header { position: sticky; top: 0; }
  .header-bar { padding-block: 18px; gap: 16px; }
  .header-cta { display: inline-flex; margin-left: auto; }
  .menu-toggle { display: block; }
  .js .site-nav { display: none; }
  .js .nav-open .site-nav {
    display: flex; flex-direction: column; align-items: stretch; gap: 28px;
    position: fixed; left: 0; right: 0; top: var(--header-h, 111px); bottom: 0; z-index: 39;
    padding: 8px var(--gutter) 40px; overflow-y: auto; overscroll-behavior: contain;
    background: var(--drd-cream); border-top: 1px solid var(--line);
  }
  .js .nav-open .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .js .nav-open .nav-list a {
    padding-block: 18px; font-size: 15px; line-height: 20px; border-bottom: 1px solid var(--line);
    background: none;
  }
  .js .nav-open .nav-list a[aria-current] { color: var(--drd-taupe); }
  .js .nav-open .nav-cta { min-height: 52px; }
  .js .nav-open .nav-contact {
    display: block; font-family: var(--font-label); font-size: 15px; line-height: 28px; color: var(--drd-taupe);
  }
  .nav-contact a { display: block; padding-block: 8px; text-decoration: none; }
  /* Without JavaScript the links simply sit under the header */
  .no-js .site-nav { flex-wrap: wrap; }
  .no-js .header-bar { flex-wrap: wrap; }
  .no-js .menu-toggle, .no-js .header-cta { display: none; }
  .no-js .nav-list { flex-wrap: wrap; gap: 0 20px; }
}
@media (max-width: 767px) {
  .header-bar { padding-block: 10px; }
  .brand { padding-block: 8px; }
  .brand-logo { width: 40px; height: 28px; }
  .brand-name { display: block; }
  .header-cta { display: none; }
  .menu-toggle { margin-left: auto; }
}
@media (max-width: 374px) {
  .hero .eyebrow::before { display: none; }
  .brand { gap: 10px; }
  .brand-name { font-size: 17px; }
}
html.menu-open { overflow: hidden; }

/* ------------------------------------------------------------ hero */
.hero { padding-block: 88px 168px; }
.hero-grid {
  display: grid; column-gap: 32px;
  grid-template-columns: minmax(0, 720fr) minmax(0, 560fr);
}
.hero-copy { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding-block: 8px; }
.hero-title {
  font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em;
  font-size: min(100px, calc((100vw - 160px) * .0805)); line-height: 1.06;
  margin-block: auto;
}
.hero-title span, .hero-title em { display: block; }
.hero-title em { font-style: italic; color: var(--drd-bronze); line-height: 1.12; }
.hero-foot { display: flex; flex-direction: column; gap: 40px; }
.hero-lede { max-width: 500px; font-size: 20px; line-height: 32px; }

.hero-figure { position: relative; }
.hero-figure picture { aspect-ratio: 560 / 780; background: var(--drd-stone); }
.hero-figure img { width: 100%; height: 100%; object-fit: cover; }
.specimen {
  position: absolute; left: -104px; bottom: -80px; width: 352px;
  background: var(--drd-cream); border: 1px solid var(--drd-espresso);
  font-family: var(--font-label); color: var(--drd-espresso);
}
.specimen-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px; border-bottom: 1px solid var(--line);
  font-weight: 500; font-size: 12px; line-height: 16px; letter-spacing: .18em; text-transform: uppercase;
}
.specimen-ring { width: 10px; height: 10px; border: 1px solid var(--drd-espresso); border-radius: 50%; }
.specimen-body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; font-size: 15px; line-height: 22px; }
.specimen-name { font-family: var(--font-display); font-size: 30px; line-height: 36px; letter-spacing: -.01em; }
.specimen-foot {
  padding: 12px 20px; border-top: 1px solid var(--line); color: var(--drd-taupe);
  font-weight: 500; font-size: 12px; line-height: 16px; letter-spacing: .18em; text-transform: uppercase;
}

@media (max-width: 1279px) {
  .hero-title { font-size: calc((100vw - 112px) * .0805); }
}
@media (max-width: 1179px) {
  .specimen { left: -24px; }
}
@media (max-width: 1023px) {
  .hero { padding-block: 56px 96px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-copy { gap: 28px; padding-block: 0; }
  .hero-title { font-size: clamp(40px, 7vw, 68px); margin-block: 0; }
  .hero-foot { gap: 32px; }
  .hero-figure { margin-top: 48px; }
  .hero-figure picture { aspect-ratio: 390 / 364; }
  .specimen { position: relative; left: auto; bottom: auto; width: min(352px, calc(100% - 32px)); margin: -64px 0 0 16px; }
}
@media (max-width: 767px) {
  .hero { padding-block: 32px 72px; }
  .hero .eyebrow { font-size: 12px; letter-spacing: .16em; gap: 12px; }
  .hero .eyebrow::before { flex-basis: 24px; }
  .hero-copy { gap: 22px; }
  .hero-foot { gap: 28px; }
  .hero-lede { font-size: 17px; line-height: 28px; }
  .hero-figure { margin-top: 40px; margin-inline: calc(-1 * var(--gutter)); }
  .specimen { margin: -48px 0 0 var(--gutter); width: min(352px, calc(100% - 2 * var(--gutter))); }
  .specimen-body { padding: 14px 16px 16px; }
  .specimen-head, .specimen-foot { padding-inline: 16px; }
  .specimen-name { font-size: 26px; line-height: 32px; }
}

/* ------------------------------------------------------------ section heads */
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; }
.section-head-main { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.section-aside { flex-shrink: 0; font-size: 18px; line-height: 30px; }
@media (max-width: 1023px) {
  .section-head { flex-direction: column; align-items: flex-start; gap: 24px; }
  .section-head-main { gap: 22px; }
  .section-aside { max-width: 520px; padding-bottom: 0 !important; }
}
@media (max-width: 767px) {
  .section-aside { font-size: 17px; line-height: 28px; }
}

/* ------------------------------------------------------------ the register */
.register { padding-block: 56px 144px; }
.register-head { padding-bottom: 72px; }
.register-title { max-width: 8.6em; }
.register .section-aside { width: 360px; padding-bottom: 10px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.no-js .chips { display: none; }
.filter-chip {
  min-height: 36px; padding: 9px 16px; border: 1px solid var(--drd-espresso); border-radius: 999px;
  background: none; cursor: pointer;
  font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px; color: var(--drd-espresso);
  transition: background-color .2s ease, color .2s ease;
}
.filter-chip:hover { background: var(--drd-stone); }
.filter-chip[aria-pressed="true"] { background: var(--drd-espresso); color: var(--drd-cream); }

.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.card { position: relative; display: flex; flex-direction: column; gap: 22px; }
.card[hidden] { display: none; }
.card-photo { position: relative; aspect-ratio: 416 / 520; overflow: hidden; background: var(--drd-stone); }
.card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.card:hover .card-photo img { transform: scale(1.02); }
.photo-chip {
  position: absolute; left: 16px; bottom: 16px; padding: 7px 10px; background: var(--drd-cream);
  font-family: var(--font-label); font-weight: 500; font-size: 11px; line-height: 14px; letter-spacing: .16em;
}
.card-text { display: flex; flex-direction: column; gap: 14px; }
.card-eyebrow {
  font-family: var(--font-label); font-weight: 500; font-size: 12px; line-height: 16px;
  letter-spacing: .18em; color: var(--drd-taupe);
}
.card-title { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 34px; letter-spacing: -.01em; }
.card-body { font-size: 16px; line-height: 26px; }
.card-link::after { content: ""; position: absolute; inset: 0; }   /* the whole card is the link */
.card-link:focus-visible { outline: none; }
.card-link:focus-visible::after { outline: 2px solid var(--drd-espresso); outline-offset: 6px; }

.register-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 40px; }
.register-foot p { font-family: var(--font-label); font-size: 15px; line-height: 22px; color: var(--drd-taupe); }

@media (max-width: 1023px) {
  .register { padding-block: 40px 104px; }
  .register-head { padding-bottom: 48px; }
  .register .section-aside { width: auto; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
  .filter-chip { min-height: 44px; padding-block: 13px; }
}
@media (max-width: 599px) {
  .cards { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .card { gap: 18px; }
  .card-photo { aspect-ratio: 1 / 1; }
  .card-text { gap: 10px; }
  .card-title { font-size: 26px; line-height: 32px; }
  .photo-chip { font-size: 12px; }
  .chips { margin-bottom: 32px; }
  .register-foot { flex-direction: column; align-items: flex-start; gap: 20px; padding-top: 48px; }
}

/* ------------------------------------------------------------ process */
.process { background: var(--drd-stone); padding-block: 128px 136px; }
.process-head { padding-bottom: 88px; }
.process .display { line-height: 1.083; }
.process-aside { width: 300px; padding-bottom: 14px; }
.process-strip { width: 100%; height: auto; }
.steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; padding-top: 28px; }
.step { display: flex; flex-direction: column; align-items: center; gap: 14px; padding-inline: 2px; text-align: center; }
.step-num { font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px; letter-spacing: .18em; }
.step-title { font-family: var(--font-display); font-weight: 400; font-size: 24px; line-height: 30px; }
.step-body { font-size: 16px; line-height: 26px; }
.step-art { display: none; }

/* Below desktop each step shows its own drawing, cut from the same strip */
@media (max-width: 1179px) {
  .process { padding-block: 96px 104px; }
  .process-head { padding-bottom: 56px; }
  .process-strip { display: none; }
  .steps { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 0; --art-w: 200px; }
  .step {
    display: grid; grid-template-columns: var(--art-w) minmax(0, 1fr); grid-template-rows: auto auto 1fr;
    column-gap: 28px; row-gap: 8px; align-items: start; text-align: left; padding: 0;
  }
  .step-art {
    display: block; grid-row: 1 / span 3; position: relative; overflow: hidden;
    width: var(--art-w); aspect-ratio: 243 / 210;
  }
  .step-art img { position: absolute; top: 0; left: calc(var(--i) * -109.877%); height: 100%; width: auto; max-width: none; }
  .step-num { padding-top: 12px; }
}
@media (max-width: 767px) {
  .process { padding-block: 72px 80px; }
  .process-head { padding-bottom: 40px; }
  .process-aside { width: auto; }
  .steps { gap: 24px; --art-w: 120px; }
  .step { column-gap: 18px; row-gap: 6px; }
  .step-num { padding-top: 4px; font-size: 12px; }
  .step-title { font-size: 22px; line-height: 28px; }
}

/* ------------------------------------------------------------ slab shelf */
.shelf { padding-block: 136px 128px; }
.shelf-head { gap: 64px; padding-bottom: 56px; }
.shelf-head .section-head-main { gap: 24px; }
.eyebrow-sm { font-size: 12px; letter-spacing: .2em; }
.shelf-title {
  font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em;
  font-size: clamp(36px, calc(.8rem + 4.65vw), 80px); line-height: 1.05;
}
.shelf-title em { font-style: italic; color: var(--drd-bronze); }
.shelf-aside { display: flex; flex-direction: column; gap: 22px; width: 400px; flex-shrink: 0; padding-bottom: 8px; }
.shelf-aside p { font-size: 18px; line-height: 29px; }

.slabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.slab { display: flex; flex-direction: column; gap: 20px; text-decoration: none; color: var(--drd-espresso); }
.slab-photo { aspect-ratio: 304 / 228; overflow: hidden; background: var(--drd-stone); }
.slab-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.slab:hover .slab-photo img { transform: scale(1.03); }
.slab-text { display: flex; flex-direction: column; gap: 6px; }
.slab-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-family: var(--font-label); }
.slab-id { font-weight: 500; font-size: 12px; line-height: 16px; letter-spacing: .18em; color: var(--drd-taupe); }
.slab-price { font-weight: 500; font-size: 15px; line-height: 20px; }
.slab-name { font-family: var(--font-display); font-weight: 400; font-size: 24px; line-height: 30px; letter-spacing: -.01em; }
.slab-dims { font-family: var(--font-label); font-size: 14px; line-height: 20px; color: var(--drd-taupe); }

@media (max-width: 1023px) {
  .shelf { padding-block: 96px; }
  .shelf-head { gap: 24px; padding-bottom: 40px; }
  .shelf-aside { width: auto; max-width: 520px; padding-bottom: 0; }
  .slabs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (max-width: 599px) {
  .shelf { padding-block: 72px; }
  .shelf-aside p { font-size: 17px; line-height: 28px; }
  .slabs { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .slab { flex-direction: row; align-items: center; gap: 16px; }
  .slab-photo { flex: 0 0 42%; }
  .slab-text { flex: 1; min-width: 0; gap: 4px; }
  .slab-row { flex-direction: column; align-items: flex-start; gap: 2px; }
  .slab-name { font-size: 20px; line-height: 26px; }
  .slab-dims { font-size: 13px; line-height: 18px; }
}

/* ------------------------------------------------------------ founders */
.founders { padding-block: 160px; }
.founders-grid { display: grid; grid-template-columns: 488px minmax(0, 1fr); gap: 80px; }
.film {
  order: -1; height: 680px; display: flex; flex-direction: column; justify-content: space-between;
  padding: 32px; background: var(--drd-espresso); color: var(--drd-cream); overflow: hidden;
}
.film-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-family: var(--font-label); font-size: 12px; line-height: 16px; }
.film-length { font-weight: 500; letter-spacing: .18em; color: var(--drd-bronze-light); }
.film-note { color: var(--drd-stone); }
.film-play {
  align-self: center; display: flex; align-items: center; justify-content: center;
  width: 96px; height: 96px; border-radius: 50%; background: var(--drd-cream);
}
.film-play svg { width: 30px; height: 34px; fill: var(--drd-espresso); }
.film-foot { display: flex; flex-direction: column; gap: 14px; }
.film-quote { font-family: var(--font-display); font-style: italic; font-size: 24px; line-height: 32px; color: var(--drd-cream); }
.film-cta { font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 18px; letter-spacing: .02em; color: var(--drd-stone); }

.founders-story { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding-block: 8px; }
.founders-title {
  font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em;
  font-size: clamp(40px, calc((100vw - 700px) * .106), 76px); line-height: 1.105;
}
.founders-title span, .founders-title em { display: block; }
.founders-title em { font-style: italic; color: var(--drd-bronze); line-height: 1.158; }
.founders-foot { display: flex; flex-direction: column; gap: 28px; }
.founders-body { max-width: 520px; font-size: 18px; line-height: 30px; }

@media (max-width: 1279px) and (min-width: 1024px) {
  .founders-grid { grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 56px; }
  .film { height: auto; aspect-ratio: 488 / 680; }
  .founders-title { font-size: clamp(34px, calc((100vw - 540px) * .104), 76px); }
}

@media (max-width: 1023px) {
  .founders { padding-block: 104px; }
  .founders-grid { grid-template-columns: minmax(0, 1fr); gap: 56px; }
  .film { order: 0; height: auto; aspect-ratio: 488 / 680; max-width: 488px; width: 100%; }
  .founders-story { gap: 28px; padding: 0; }
  .founders-title { font-size: clamp(34px, 6.4vw, 60px); }
}
@media (max-width: 767px) {
  .founders { padding-block: 72px; }
  .founders-grid { gap: 40px; }
  .film { padding: 24px; }
  .film-play { width: 80px; height: 80px; }
  .film-quote { font-size: 21px; line-height: 29px; }
  .founders-body { font-size: 17px; line-height: 28px; }
  .founders-foot { gap: 20px; }
}

/* ------------------------------------------------------------ proof */
.proof { padding-bottom: 168px; }
.stats { display: flex; border-top: 1px solid var(--drd-espresso); }
.stat { flex: 1 1 0; display: flex; flex-direction: column; gap: 22px; padding: 40px 40px 0; }
.stat:first-child { padding-left: 0; }
.stat:last-child { padding-right: 0; }
.stat + .stat { border-left: 1px solid var(--line); }
.stat-num {
  font-family: var(--font-display); font-weight: 400; font-feature-settings: "lnum";
  font-size: min(168px, 11.67vw); line-height: 1; letter-spacing: -.03em; color: var(--drd-bronze);
}
.stat-label { font-family: var(--font-label); font-weight: 500; font-size: 13px; line-height: 16px; letter-spacing: .18em; text-transform: uppercase; }

.review { display: flex; gap: 32px; padding-top: 136px; }
.review .eyebrow { flex: 0 0 405px; height: 56px; }
.review-main { flex: 1; display: flex; flex-direction: column; gap: 32px; }
.review-quote { padding-right: 8px; font-family: var(--font-display); font-weight: 400; font-size: 44px; line-height: 58px; letter-spacing: -.01em; }
.review-by { font-family: var(--font-label); font-size: 15px; line-height: 22px; color: var(--drd-taupe); }

@media (max-width: 1023px) {
  .proof { padding-bottom: 104px; }
  .stat { padding: 32px 24px 0; }
  .review { flex-direction: column; gap: 24px; padding-top: 88px; }
  .review .eyebrow { flex: none; height: auto; }
  .review-quote { font-size: clamp(26px, 3.6vw, 36px); line-height: 1.36; }
}
@media (max-width: 767px) {
  .proof { padding-bottom: 80px; }
  .stats { flex-direction: column; }
  .stat, .stat:first-child, .stat:last-child { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 16px; padding: 20px 0; }
  .stat + .stat { border-left: 0; border-top: 1px solid var(--line); }
  .stat-num { font-size: 72px; }
  .stat-label { text-align: right; font-size: 12px; }
  .review { padding-top: 56px; }
  .review-quote { font-size: 26px; line-height: 36px; }
}

/* ------------------------------------------------------------ footer */
.site-footer { background: var(--drd-espresso); color: var(--drd-cream); }
.footer-cta { padding-top: 152px; }
.footer-row { display: flex; align-items: center; justify-content: space-between; gap: 48px; }
.footer-copy { display: flex; flex-direction: column; gap: 56px; max-width: 880px; padding-right: 8px; }
.footer-title {
  font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em; color: var(--drd-cream);
  font-size: clamp(36px, calc(1rem + 5.56vw), 96px); line-height: 1.083;
}
.footer-title span, .footer-title em { display: block; }
.footer-title em { font-style: italic; color: var(--drd-bronze-light); line-height: 1.125; }
.footer-emblem-circle { width: 280px; height: 280px; flex-shrink: 0; margin-right: 8px; }
.footer-emblem-plain, .footer-tagline { display: none; }
.footer-base { padding-block: 128px 56px; }
.footer-base .wrap::before { content: ""; display: block; height: 1px; background: var(--line-dark); margin-bottom: 28px; }
.footer-line { font-family: var(--font-label); font-size: 14px; line-height: 22px; color: var(--drd-stone); }
.footer-line a { text-decoration: none; }
.footer-line a:hover { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1023px) {
  .footer-cta { padding-top: 104px; }
  .footer-copy { gap: 40px; }
  .footer-title { font-size: clamp(36px, 6vw, 60px); }
  .footer-emblem-circle { width: 200px; height: 200px; }
  .footer-base { padding-block: 88px 48px; }
}
/* Phone: the plain emblem on a Cream band (the Cream-circle file is too big here) */
@media (max-width: 767px) {
  .footer-cta { padding-block: 64px 56px; }
  .footer-copy { gap: 32px; padding: 0; width: 100%; }
  .footer-emblem-circle { display: none; }
  .footer-base { background: var(--drd-cream); color: var(--drd-espresso); padding-block: 40px; text-align: center; }
  .footer-base .wrap { display: flex; flex-direction: column; align-items: center; gap: 16px; }
  .footer-base .wrap::before { display: none; }
  .footer-emblem-plain { display: block; width: 240px; height: 292px; }
  .footer-tagline { display: block; font-family: var(--font-display); font-style: italic; font-size: 18px; line-height: 24px; color: var(--drd-taupe); }
  .footer-line { padding-top: 8px; font-size: 13px; line-height: 19px; color: var(--drd-espresso); }
  .footer-name, .sep-break { display: none; }
  .footer-address { display: block; }
  .footer-line a { display: inline-block; padding-block: 13px; }
  .site-footer :focus-visible { outline-color: var(--drd-espresso); }
  .footer-cta :focus-visible { outline-color: var(--drd-cream); }
}

/* ------------------------------------------------------------ simple pages (404) */
.simple { padding-block: 120px 160px; }
.simple .wrap { display: flex; flex-direction: column; gap: 28px; }
.simple-title {
  max-width: 12em; font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em;
  font-size: clamp(40px, calc(1rem + 4.4vw), 80px); line-height: 1.06;
}
.simple-body { max-width: 560px; font-size: 18px; line-height: 30px; }
@media (max-width: 767px) {
  .simple { padding-block: 56px 80px; }
  .simple-body { font-size: 17px; line-height: 28px; }
}

/* ==================================================================
   Tree origins map ("Where our trees came from").
   Ported from _work/tree-map/index.html, every rule scoped under .tm.
   The theme is set by data-theme on the section (dark on the homepage,
   matching the Paper frame); both themes are kept.
   ================================================================== */
/* ------------------------------------------------------------ themes */
.tm {
  --tm-bg: var(--drd-espresso);
  --tm-head: var(--drd-cream);
  --tm-body: var(--drd-stone);
  --tm-eyebrow: var(--drd-bronze-light);
  --tm-muted: var(--drd-bronze);
  --dot: var(--drd-stone);
  --dot-a: .26; --dot-b: .46; --dot-c: .78;
  --nb-a: .10; --nb-b: .17;
  --line-slo: rgba(230, 224, 213, .16);
  --line-nb: rgba(230, 224, 213, .07);
  --ocean: var(--drd-bronze);
  --label: var(--drd-stone);
  --mill-label: var(--drd-bronze-light);
  --count: var(--drd-cream);
  --route: var(--drd-bronze-light);
  --mark: var(--drd-bronze-light);
  --trunk: var(--drd-bronze);
  --ink: var(--drd-bronze-light);
  --leaf: var(--drd-hunter);
  --leaf-ink: var(--drd-bronze-light);
  --vein: var(--drd-bronze-light);
  --canopy: var(--drd-hunter);
  --bark: var(--drd-bronze);
  --bark-line: rgba(27, 23, 20, .5);
  --grain: var(--drd-stone);
  --grain-ring: var(--drd-bronze);
  --log-ink: var(--drd-bronze-light);
  --disc: var(--drd-cream);
  --disc-ring: rgba(230, 224, 213, 0);
  --dr: var(--drd-crimson);
  --card-bg: var(--drd-cream);
  --card-line: rgba(196, 154, 108, .55);
  --link-line: var(--drd-bronze);
  --link: var(--drd-bronze-light);
  --route-out: rgba(230, 224, 213, .5);
  --dust-a: var(--drd-bronze-light);
  --dust-b: var(--drd-stone);
  --haze-a: var(--drd-bronze-light);
  --haze-b: var(--drd-stone);
  --p-top: var(--drd-bronze-light);
  --p-edge: var(--drd-bronze);
  --p-ink: var(--drd-espresso);
  --p-leg: var(--drd-stone);
  --home: rgba(230, 224, 213, .16);
}
.tm[data-theme="light"] {
  --tm-bg: var(--drd-stone);
  --tm-head: var(--drd-espresso);
  --tm-body: var(--drd-espresso);
  --tm-eyebrow: var(--drd-taupe);
  --tm-muted: var(--drd-taupe);
  --dot: var(--drd-taupe);
  --dot-a: .30; --dot-b: .50; --dot-c: .78;
  --nb-a: .13; --nb-b: .21;
  --line-slo: rgba(107, 93, 82, .24);
  --line-nb: rgba(107, 93, 82, .12);
  --ocean: var(--drd-taupe);
  --label: var(--drd-espresso);
  --mill-label: var(--drd-hunter);
  --count: var(--drd-espresso);
  --route: var(--drd-bronze);
  --mark: var(--drd-bronze);
  --trunk: var(--drd-bronze);
  --ink: var(--drd-espresso);
  --leaf: var(--drd-hunter);
  --leaf-ink: var(--drd-espresso);
  --vein: var(--drd-stone);
  --canopy: var(--drd-hunter);
  --bark: var(--drd-bronze);
  --bark-line: rgba(27, 23, 20, .4);
  --grain: var(--drd-cream);
  --grain-ring: var(--drd-bronze);
  --log-ink: var(--drd-espresso);
  --disc: var(--drd-cream);
  --disc-ring: var(--drd-stone);
  --dr: var(--drd-crimson);
  --card-bg: var(--drd-cream);
  --card-line: rgba(107, 93, 82, .35);
  --link-line: var(--drd-bronze);
  --link: var(--drd-espresso);
  --route-out: rgba(27, 23, 20, .55);
  --dust-a: var(--drd-bronze);
  --dust-b: var(--drd-taupe);
  --haze-a: var(--drd-taupe);
  --haze-b: var(--drd-taupe);
  --p-top: var(--drd-bronze-light);
  --p-edge: var(--drd-bronze);
  --p-ink: var(--drd-espresso);
  --p-leg: var(--drd-espresso);
  --home: rgba(107, 93, 82, .2);
}

/* ------------------------------------------------------------ section */
.tm { background: var(--tm-bg); color: var(--tm-head); transition: background-color .3s ease; }
.tm .tm-wrap {
  max-width: 1440px; margin: 0 auto; padding: 104px 80px;
  display: grid; grid-template-columns: minmax(280px, 420px) minmax(0, 760px);
  justify-content: space-between; align-items: center; column-gap: 56px;
}
.tm .tm-eyebrow {
  margin: 0; font-family: var(--font-label); font-weight: 500; font-size: 12px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--tm-eyebrow);
}
.tm .tm-h {
  margin: 18px 0 0; font-family: var(--font-display); font-weight: 400;
  font-size: 44px; line-height: 52px; color: var(--tm-head); text-wrap: balance;
}
.tm .tm-body { margin: 22px 0 0; font-family: var(--font-body); font-size: 18px; line-height: 30px; color: var(--tm-body); }
.tm .tm-note { margin: 22px 0 0; font-family: var(--font-label); font-size: 14px; line-height: 22px; color: var(--tm-muted); }

.tm .tm-map { position: relative; width: 100%; }
.tm .tm-map svg { display: block; width: 100%; height: auto; overflow: hidden; touch-action: manipulation; }
.tm .tm-foot { display: flex; justify-content: flex-end; margin-top: 6px; min-height: 44px; }
.tm .tm-replay {
  font-family: var(--font-label); font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--link); background: none; border: 0; padding: 12px 2px; min-height: 44px; cursor: pointer;
  opacity: 0; pointer-events: none; transition: opacity .4s ease;
}
.tm .tm-replay span { border-bottom: 1px solid var(--link-line); padding-bottom: 3px; }
.tm .tm-replay.on { opacity: 1; pointer-events: auto; }
.tm.seeking .tm-replay { transition: none; }
.tm .tm-replay:focus-visible, .tm .tm-hit:focus-visible { outline: 2px solid var(--route); outline-offset: 3px; }

/* map layers */
.tm .cl-slo { fill: none; stroke: var(--line-slo); stroke-linejoin: round; }
.tm .cl-nb { fill: none; stroke: var(--line-nb); stroke-linejoin: round; }
.tm .stipple path { fill: none; stroke: var(--dot); stroke-linecap: round; }
.tm .d-slo { stroke-width: var(--dotw, 2.3px); }
.tm .d-nb { stroke-width: var(--dotw-nb, 2px); }
.tm .d-slo.t-a { stroke-opacity: var(--dot-a); }
.tm .d-slo.t-b { stroke-opacity: var(--dot-b); }
.tm .d-slo.t-c { stroke-opacity: var(--dot-c); }
.tm .d-nb.t-a { stroke-opacity: var(--nb-a); }
.tm .d-nb.t-b { stroke-opacity: var(--nb-b); }
.tm .ocean { font-family: var(--font-body); font-style: italic; fill: var(--ocean); letter-spacing: .03em; }
.tm .route { fill: none; stroke: var(--route); stroke-linecap: round; }
.tm .mark-dot { fill: var(--mark); }
.tm .mark-ring, .tm .mark-pop { fill: none; stroke: var(--mark); }
.tm .lbl {
  font-family: var(--font-label); font-weight: 500; letter-spacing: .18em; fill: var(--label);
  paint-order: stroke; stroke: var(--tm-bg); stroke-linejoin: round;
}
.tm .lbl-mill { fill: var(--mill-label); }
.tm .lbl-count { fill: var(--count); font-weight: 400; }
.tm .tm-hit { fill: transparent; cursor: pointer; outline: none; }

.tm .trunk { fill: var(--trunk); stroke: var(--ink); stroke-linejoin: round; }
.tm .roots, .tm .tuft { fill: none; stroke: var(--ink); stroke-linecap: round; }
.tm .canopy-back { fill: var(--canopy); }
.tm .leaf path:first-child { fill: var(--leaf); stroke: var(--leaf-ink); stroke-linejoin: round; }
.tm .leaf path + path { fill: none; stroke: var(--vein); stroke-linecap: round; stroke-opacity: .85; }
.tm .bark { fill: var(--bark); stroke: var(--log-ink); stroke-linejoin: round; }
.tm .bark-line { fill: none; stroke: var(--bark-line); stroke-linecap: round; }
.tm .grain { fill: var(--grain); stroke: var(--log-ink); }
.tm .grain-ring { fill: none; stroke: var(--grain-ring); }
.tm .pith { fill: var(--grain-ring); }
.tm .route-out { fill: none; stroke: var(--route-out); stroke-linecap: round; }
.tm .dust-a { fill: var(--dust-a); }
.tm .dust-b { fill: var(--dust-b); fill-opacity: .8; }
.tm .chip { fill: var(--bark); stroke: var(--log-ink); stroke-linejoin: round; }
.tm .haze-stop-a { stop-color: var(--haze-a); }
.tm .haze-stop-b { stop-color: var(--haze-b); }
.tm .p-top { fill: var(--p-top); stroke: var(--p-ink); stroke-linejoin: round; }
.tm .p-edge { fill: var(--p-edge); stroke: var(--p-ink); stroke-linejoin: round; }
.tm .p-leg { fill: none; stroke: var(--p-leg); stroke-linecap: round; }
.tm .p-grain { fill: none; stroke: var(--p-edge); stroke-linecap: round; stroke-opacity: .8; }
.tm .home-pad { fill: var(--home); }
.tm .disc { fill: var(--disc); }
.tm .disc-ring { fill: none; stroke: var(--disc-ring); }
.tm .dr { fill: var(--dr); }

/* card */
.tm .tm-card {
  position: absolute; left: 0; top: 0; width: 224px; z-index: 3;
  background: var(--card-bg); border: 1px solid var(--card-line); border-radius: 2px;
  padding: 14px 16px 16px; color: var(--drd-espresso);
  opacity: 0; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.tm .tm-card.on { opacity: 1; transform: none; }
.tm .tm-card .town { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 22px; line-height: 28px; color: var(--drd-espresso); }
.tm .tm-card .rows { margin: 8px 0 0; padding: 0; list-style: none; font-family: var(--font-body); font-size: 15px; line-height: 24px; }
.tm .tm-card .rows li + li { margin-top: 4px; }
.tm .ph {
  font-family: var(--font-label); font-size: 13px; letter-spacing: .04em; color: var(--drd-taupe);
  background: rgba(166, 124, 78, .14); padding: 2px 7px;
}
.tm .tm-card .tag {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 12px;
  font-family: var(--font-label); font-weight: 500; font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--drd-taupe); border: 1px solid rgba(107, 93, 82, .35); border-radius: 999px; padding: 4px 10px 4px 8px;
}
.tm .tm-card .tag svg { width: 11px; height: 11px; overflow: visible; }
.tm .tm-card .tag circle, .tm .tm-card .tag path { fill: none; stroke: var(--drd-bronze); stroke-width: 1.4; stroke-linecap: round; }
.tm .tm-card .ic-piece, .tm .tm-card.is-piece .ic-origin { display: none; }
.tm .tm-card.is-piece .ic-piece { display: inline; }

/* ------------------------------------------------------------ narrower screens */
@media (max-width: 1180px) {
  .tm .tm-wrap { padding: 88px 48px; column-gap: 40px; }
  .tm .tm-h { font-size: 40px; line-height: 48px; }
}
@media (max-width: 900px) {
  .tm .tm-wrap { grid-template-columns: minmax(0, 1fr); row-gap: 36px; padding: 64px 32px; }
  .tm .tm-copy { max-width: 560px; }
}
@media (max-width: 560px) {
  .tm .tm-wrap { padding: 56px 16px 40px; row-gap: 28px; }
  .tm .tm-h { font-size: 32px; line-height: 40px; margin-top: 14px; }
  .tm .tm-body { font-size: 17px; line-height: 28px; margin-top: 18px; }
  .tm .tm-note { margin-top: 18px; }
  .tm .tm-card { width: 228px; padding: 10px 12px 12px; }
  .tm .tm-card .town { font-size: 19px; line-height: 24px; }
  .tm .tm-card .rows { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
  .tm .tm-card .rows li + li { margin-top: 0; }
  .tm .tm-card .tag { margin-top: 9px; }
}
/* Line the map's side margins up with the rest of the site on tablet and phone */
@media (max-width: 900px) { .tm .tm-wrap { padding-inline: var(--gutter); } }
@media (max-width: 560px) { .tm .tm-wrap { padding-inline: var(--gutter); } }

/* ------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  .card:hover .card-photo img, .slab:hover .slab-photo img { transform: none; }
}

/* Digital Rolodex form embeds (Trade, Millwork, Your Tree): attribution.js swaps the div for the form's iframe */
.fm-embed { min-height: 480px; }
.fm-embed iframe { display: block; width: 100%; border: 0; }
.fm-noscript { padding: 24px 12px; }
