:root {
  --ink: #173329;
  --forest: #214f3f;
  --leaf: #5f7d55;
  --moss: #a7b88b;
  --cream: #f6f0df;
  --paper: #fffdf7;
  --sun: #e8ad31;
  --rust: #b65f3a;
  --line: rgba(23, 51, 41, .18);
  --shadow: 0 18px 50px rgba(23, 51, 41, .13);
  --serif: "Fraunces", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 400 1rem/1.65 var(--sans); }
img { display: block; width: 100%; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .7rem 1rem; background: var(--paper); }
.skip-link:focus { top: 1rem; }
.site-header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(1.1rem, 4vw, 4.5rem); border-bottom: 1px solid var(--line); background: rgba(255,253,247,.93); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 42px; aspect-ratio: 1; border-radius: 50% 50% 46% 54%; background: var(--forest); color: var(--cream); font: 700 .8rem var(--serif); transform: rotate(-5deg); }
.brand b, .brand small { display: block; line-height: 1.1; }
.brand b { font: 700 1.05rem var(--serif); }
.brand small { margin-top: .2rem; color: var(--leaf); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
nav { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); }
nav a { font-size: .88rem; font-weight: 600; text-decoration: none; }
nav a:hover { color: var(--rust); }
.nav-cta { border-bottom: 2px solid var(--rust); }
.menu-button { display: none; font: 600 .9rem var(--sans); padding: .55rem .8rem; border: 1px solid var(--line); background: transparent; border-radius: 99px; }
.hero { min-height: calc(100vh - 82px); display: grid; grid-template-columns: .92fr 1.08fr; padding: clamp(1.5rem, 4vw, 4.5rem); gap: clamp(2rem, 5vw, 6rem); align-items: center; overflow: hidden; }
.hero-copy { max-width: 680px; }
.eyebrow { margin: 0 0 1rem; color: var(--rust); font-weight: 700; font-size: .77rem; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-family: var(--serif); line-height: 1.04; }
h1 { font-size: clamp(3.7rem, 7.8vw, 8.3rem); letter-spacing: -.055em; }
h1 em { color: var(--rust); font-weight: 600; }
h2 { font-size: clamp(2.5rem, 5.1vw, 5.8rem); letter-spacing: -.045em; }
.hero-lede { max-width: 610px; margin: 1.6rem 0 2rem; font-size: clamp(1.05rem, 1.35vw, 1.3rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1.1rem; border: 1px solid var(--ink); border-radius: 99px; font: 700 .9rem var(--sans); text-decoration: none; cursor: pointer; }
.button.primary { background: var(--ink); color: var(--cream); }
.button.secondary { background: transparent; color: var(--ink); }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(23,51,41,.12); }
.hero-facts { display: grid; grid-template-columns: repeat(3,1fr); list-style: none; padding: 0; margin: 3rem 0 0; border-top: 1px solid var(--line); }
.hero-facts li { padding: 1.1rem .8rem 0 0; }
.hero-facts strong, .hero-facts span { display: block; }
.hero-facts strong { font: 600 1.1rem var(--serif); }
.hero-facts span { font-size: .72rem; color: var(--leaf); }
.hero-image { margin: 0; position: relative; }
.hero-image::before { content: ""; position: absolute; inset: -4% -5% 8% 7%; background: var(--moss); border-radius: 52% 48% 49% 51% / 45% 52% 48% 55%; z-index: -1; transform: rotate(3deg); }
.hero-image img { height: min(73vh, 780px); object-fit: cover; border-radius: 48% 52% 48% 52% / 42% 44% 56% 58%; box-shadow: var(--shadow); }
.hero-image figcaption { position: absolute; right: -1rem; bottom: 2rem; max-width: 190px; padding: 1rem; background: var(--cream); font: 600 1rem var(--serif); box-shadow: var(--shadow); }
.hero-image figcaption span { display: block; color: var(--rust); font: 700 .7rem var(--sans); }
.marquee { overflow: hidden; padding: .8rem 0; background: var(--sun); color: var(--ink); font-weight: 800; letter-spacing: .15em; white-space: nowrap; }
.marquee div { width: max-content; animation: drift 18s linear infinite; }
.marquee span { margin: 0 1.5rem; }
@keyframes drift { to { transform: translateX(-35%); } }
.section { padding: clamp(5rem, 10vw, 10rem) clamp(1.1rem, 6vw, 7rem); }
.section-heading { max-width: 980px; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.section-heading.split { max-width: none; display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 3rem; }
.section-heading.split > p { max-width: 480px; margin: 0; }
.story { background: var(--cream); }
.story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; }
.lead { font-size: clamp(1.25rem, 2vw, 1.8rem); line-height: 1.45; }
blockquote { margin: 2rem 0; padding: 1.4rem 0 1.4rem 1.6rem; border-left: 4px solid var(--rust); font: 600 clamp(1.35rem, 2.3vw, 2.1rem)/1.35 var(--serif); }
.fine-print { color: #52635d; font-size: .84rem; }
.story-photo { margin: 0; }
.story-photo img { aspect-ratio: 4/5; object-fit: cover; border-radius: 50% 50% 2rem 2rem; }
figcaption { margin-top: .7rem; color: #52635d; font-size: .78rem; }
.makers { background: var(--paper); }
.maker-grid { display: grid; gap: clamp(1.5rem, 4vw, 4rem); }
.maker-card { display: grid; grid-template-columns: 1.1fr .9fr; align-items: stretch; background: var(--cream); min-height: 520px; }
.maker-card.reverse { grid-template-columns: .9fr 1.1fr; }
.maker-card.reverse figure { order: 2; }
.maker-card figure { margin: 0; overflow: hidden; }
.maker-card img { height: 100%; min-height: 520px; object-fit: cover; }
.maker-card > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 6vw, 6rem); }
.maker-card span { color: var(--rust); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.maker-card h3 { margin: .5rem 0 1rem; font-size: clamp(2.5rem, 5vw, 5.5rem); }
.maker-card p { max-width: 520px; }
.collection { background: var(--paper); }
.product-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: clamp(1.2rem, 3vw, 3rem); }
.product-card { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.product-card img { aspect-ratio: 4/3; object-fit: cover; border-radius: .4rem 3rem .4rem .4rem; }
.product-card:nth-child(2) img, .product-card:nth-child(3) img { border-radius: 3rem .4rem .4rem .4rem; }
.product-meta { display: flex; justify-content: space-between; margin-top: 1rem; color: var(--rust); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.product-card h3 { margin-top: .45rem; font-size: clamp(1.8rem, 3vw, 3.1rem); }
.product-card p { max-width: 560px; margin-bottom: 0; }
.collection-note { max-width: 800px; margin: 2.5rem auto 0; text-align: center; color: #52635d; }
.process { background: #e5e8d6; }
.process-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 7rem); align-items: start; }
.process-photo { position: sticky; top: 110px; display: grid; grid-template-columns: 1fr .58fr; align-items: end; margin: 0; }
.process-photo figure { margin: 0; }
.process-photo img { aspect-ratio: 4/5; object-fit: cover; border-radius: 50% 50% 1rem 1rem; }
.process-photo .inset-photo { margin: 0 0 -2rem -4rem; }
.process-photo .inset-photo img { aspect-ratio: 1/1.15; border: .55rem solid #e5e8d6; border-radius: 1rem; box-shadow: var(--shadow); }
.steps { list-style: none; padding: 0; margin: 0; }
.steps li { display: grid; grid-template-columns: 55px 1fr; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid var(--line); }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li > span { color: var(--rust); font-size: .75rem; font-weight: 700; }
.steps b { font: 600 1.5rem var(--serif); }
.steps p { margin: .25rem 0 0; }
.work-journal { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: clamp(1rem, 2.5vw, 2.5rem); align-items: end; margin-top: clamp(5rem, 10vw, 10rem); }
.work-journal figure { margin: 0; }
.work-journal img { aspect-ratio: 4/5; object-fit: cover; border-radius: .35rem 2rem .35rem .35rem; }
.work-journal .journal-wide img { aspect-ratio: 4/5.3; }
.journal-heading { align-self: start; grid-column: 1 / -1; max-width: 700px; margin-bottom: 1rem; }
.journal-heading h3 { font-size: clamp(2.2rem, 4vw, 4.2rem); }
.journal-heading p:last-child { max-width: 560px; }
.learning { background: var(--forest); color: var(--cream); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 9rem); }
.eyebrow.light { color: #d8d9a8; }
.learning-intro p:last-child { max-width: 610px; }
.learning-cards { display: grid; grid-template-columns: repeat(2,1fr); }
.learning-cards article { min-height: 235px; padding: 1.5rem; border-top: 1px solid rgba(246,240,223,.25); border-left: 1px solid rgba(246,240,223,.25); }
.learning-cards span { color: var(--sun); font-size: .75rem; }
.learning-cards h3 { margin: 2rem 0 .6rem; font-size: 1.8rem; }
.learning-cards p { margin: 0; color: rgba(246,240,223,.75); }
.event { background: var(--cream); }
.event-card { display: grid; grid-template-columns: 1fr .85fr; background: var(--rust); color: var(--paper); overflow: hidden; }
.event-copy { padding: clamp(2rem, 6vw, 6rem); }
.event-copy .eyebrow { color: #f4d68e; }
.event-copy h2 { font-size: clamp(3.4rem, 7vw, 7.5rem); }
.event-by { margin-top: .5rem; font: 600 1.3rem var(--serif); }
.event-copy dl { margin: 2.5rem 0; }
.event-copy dl div { display: grid; grid-template-columns: 80px 1fr; padding: .9rem 0; border-top: 1px solid rgba(255,255,255,.3); }
.event-copy dt { font-weight: 700; }
.event-copy dd { margin: 0; }
.event-copy .fine-print { color: rgba(255,255,255,.7); }
.event-flyer { margin: 0; padding: clamp(1.5rem, 4vw, 4rem); background: #dfb3b5; display: grid; place-items: center; }
.event-flyer img { max-height: 820px; object-fit: contain; box-shadow: 0 20px 40px rgba(59,24,20,.25); transform: rotate(1.4deg); }
.care { background: var(--paper); }
.care-card { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 10rem); padding: clamp(2rem, 5vw, 5rem); border: 1px solid var(--line); border-radius: 0 6rem 0 6rem; }
.care-card ul { list-style: none; padding: 0; margin: 0; }
.care-card li { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.care-card li span { color: var(--rust); font-size: 1.5rem; }
.care-card li p { margin: .15rem 0 0; }
.print-care { margin-top: 1rem; }
.goal { background: #f1d995; }
.goal-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2rem, 7vw, 8rem); }
.formula { margin-top: 2rem; padding: 1rem 1.2rem; border: 1px solid var(--ink); font-family: var(--serif); font-size: 1.2rem; }
.business-lab { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.business-lab summary { padding: 1.2rem 0; cursor: pointer; font-weight: 700; }
.calculator { display: grid; gap: 1rem; padding: 0 0 1.5rem; }
.calculator label { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.calculator input { width: 90px; padding: .6rem; border: 1px solid var(--ink); background: rgba(255,255,255,.45); font: inherit; }
.calculator-result { margin-top: .5rem; padding: 1.4rem; background: var(--ink); color: var(--cream); display: grid; grid-template-columns: 1fr auto; align-items: center; }
.calculator-result strong { font: 700 3rem var(--serif); }
.calculator-result small { grid-column: 1/-1; color: rgba(246,240,223,.7); }
.visit { background: var(--rust); color: var(--paper); display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; }
.visit .button.cream { background: var(--cream); color: var(--ink); border: 0; margin-top: 1rem; }
footer { display: grid; grid-template-columns: 1fr auto auto; gap: 3rem; align-items: center; padding: 2.5rem clamp(1.1rem, 6vw, 7rem); background: var(--ink); color: var(--cream); }
.footer-brand small { color: var(--moss); }
footer p { margin: 0; font-size: .78rem; color: rgba(246,240,223,.7); }
@media (max-width: 880px) {
  .menu-button { display: block; }
  nav { display: none; position: absolute; top: 82px; left: 0; right: 0; padding: 1.2rem; background: var(--paper); border-bottom: 1px solid var(--line); flex-direction: column; align-items: flex-start; }
  nav.open { display: flex; }
  .hero { grid-template-columns: 1fr; padding-top: 3.5rem; }
  .hero-image img { height: 62vh; }
  .section-heading.split, .story-grid, .process-layout, .learning, .event-card, .care-card, .goal-grid, .visit, .maker-card, .maker-card.reverse { grid-template-columns: 1fr; }
  .maker-card.reverse figure { order: 0; }
  .maker-card, .maker-card img { min-height: 0; }
  .maker-card img { max-height: 680px; }
  .process-photo { position: static; }
  .work-journal { grid-template-columns: 1fr 1fr; }
  .work-journal .journal-wide { grid-column: 1 / -1; }
  .work-journal .journal-wide img { aspect-ratio: 16/10; }
  .event-flyer { order: -1; }
  footer { grid-template-columns: 1fr; gap: 1rem; }
}
@media (max-width: 620px) {
  h1 { font-size: clamp(3.2rem, 17vw, 5rem); }
  .hero-facts, .product-grid, .learning-cards { grid-template-columns: 1fr; }
  .work-journal { grid-template-columns: 1fr; }
  .work-journal .journal-wide { grid-column: auto; }
  .work-journal .journal-wide img, .work-journal img { aspect-ratio: 4/5; }
  .hero-facts { gap: .3rem; }
  .hero-facts li { display: grid; grid-template-columns: 100px 1fr; }
  .hero-image figcaption { right: .3rem; }
  .section { padding-left: 1.2rem; padding-right: 1.2rem; }
  .care-card { border-radius: 0 3rem 0 3rem; }
  .calculator label { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .marquee div { animation: none; } .button:hover { transform: none; } }
@media print {
  body * { visibility: hidden; }
  .care-card, .care-card * { visibility: visible; }
  .care-card { position: absolute; inset: 0; border: 2px solid #173329; display: grid; padding: 2rem; }
  .print-care { display: none; }
}
