:root {
  --forest: #173f32;
  --forest-deep: #0d2b23;
  --saffron: #e6ad37;
  --rust: #a94d2e;
  --cream: #f7efd9;
  --paper: #fffaf0;
  --ink: #1c2a24;
  --sage: #8ea98e;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: "Segoe UI", ui-sans-serif, system-ui, sans-serif; }
a { color: inherit; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 10px 14px; background: white; color: black; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.site-header { position: sticky; top: 0; z-index: 30; min-height: 86px; padding: 13px clamp(20px, 5vw, 78px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 34px; border-bottom: 1px solid rgba(23,63,50,.18); background: rgba(255,250,240,.94); backdrop-filter: blur(14px); }
.wordmark { display: inline-flex; width: max-content; flex-direction: column; color: var(--forest); line-height: .85; text-decoration: none; }
.wordmark span { font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-style: italic; font-weight: 700; letter-spacing: -.045em; }
.wordmark small { margin-top: 7px; padding-left: 3px; font-size: 9px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }
nav { display: flex; gap: 30px; }
nav a, .footer-links a { font-size: 12px; font-weight: 800; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
nav a:hover, .footer-links a:hover { color: var(--rust); }
.button { min-height: 54px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--forest); background: var(--forest); color: white; box-shadow: 6px 6px 0 var(--saffron); font-size: 12px; font-weight: 850; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: transform .18s, box-shadow .18s; }
.button:hover, .button:focus-visible { transform: translate(-2px,-2px); box-shadow: 9px 9px 0 var(--saffron); }
.button-small { min-height: 43px; padding: 0 18px; justify-self: end; box-shadow: 4px 4px 0 var(--saffron); }
.button-light { border-color: var(--cream); background: var(--cream); color: var(--forest); box-shadow: 6px 6px 0 var(--rust); }
.text-link { font-weight: 800; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.eyebrow { margin: 0 0 18px; color: var(--rust); font-size: 11px; font-weight: 900; letter-spacing: .19em; text-transform: uppercase; }
.hero { min-height: 720px; display: grid; grid-template-columns: 1.05fr .95fr; background: var(--cream); }
.hero-copy { padding: clamp(78px, 9vw, 138px) clamp(26px, 7vw, 110px); padding-right: 42px; }
h1, h2 { margin: 0; color: var(--forest); font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: -.058em; line-height: .94; }
h1 { max-width: 720px; font-size: clamp(62px, 7.5vw, 118px); }
h1 em { color: var(--rust); font-weight: 400; }
.intro { max-width: 660px; margin: 30px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(20px, 2vw, 26px); line-height: 1.5; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; }
.hero-scene { position: relative; min-height: 720px; overflow: hidden; background: var(--forest); }
.sun { position: absolute; top: 10%; right: 8%; width: 170px; aspect-ratio: 1; border-radius: 50%; background: var(--saffron); }
.shelf { position: absolute; left: 8%; right: 8%; bottom: 20%; height: 12px; background: var(--cream); box-shadow: 0 24px 0 rgba(247,239,217,.2); }
.jar { position: absolute; bottom: calc(20% + 12px); display: grid; place-items: center; border: 3px solid var(--cream); border-radius: 12px 12px 22px 22px; color: var(--cream); }
.jar::before { content: ""; position: absolute; top: -18px; left: 11%; right: 11%; height: 16px; border: 3px solid var(--cream); border-bottom: 0; background: var(--forest); }
.jar span { padding: 8px; border: 1px solid currentColor; font-family: Georgia, serif; font-size: 14px; letter-spacing: .16em; }
.jar-one { left: 13%; width: 24%; height: 31%; background: var(--rust); transform: rotate(-2deg); }
.jar-two { left: 39%; width: 27%; height: 39%; background: var(--sage); color: var(--forest-deep); border-color: var(--cream); }
.jar-two::before { border-color: var(--cream); background: var(--forest); }
.jar-three { right: 8%; width: 23%; height: 27%; background: var(--saffron); color: var(--forest-deep); transform: rotate(2deg); }
.stem { position: absolute; width: 5px; height: 220px; background: var(--cream); transform-origin: bottom; }
.stem::before { content: ""; position: absolute; top: -14px; left: -8px; width: 19px; height: 19px; border: 3px solid var(--cream); border-radius: 50%; }
.stem i { position: absolute; width: 43px; height: 18px; border: 3px solid var(--cream); border-radius: 100% 0 100% 0; }
.stem i:nth-child(1) { top: 42px; left: 3px; transform: rotate(-18deg); }.stem i:nth-child(2) { top: 92px; right: 2px; transform: rotate(160deg); }.stem i:nth-child(3) { top: 142px; left: 3px; transform: rotate(-15deg); }
.stem-one { left: 20%; bottom: 54%; transform: rotate(-17deg); }.stem-two { right: 21%; bottom: 48%; height: 190px; transform: rotate(14deg); }
.scene-note { position: absolute; right: 8%; bottom: 7%; margin: 0; color: var(--cream); font-family: Georgia, serif; font-size: 18px; font-style: italic; line-height: 1.4; text-align: right; }
.marquee { min-height: 72px; padding: 14px 4vw; display: flex; align-items: center; justify-content: space-around; gap: 20px; overflow: hidden; background: var(--saffron); color: var(--forest-deep); font-size: 13px; font-weight: 900; letter-spacing: .17em; }
.marquee i { color: var(--rust); font-style: normal; }
.section { padding: clamp(82px, 10vw, 148px) clamp(24px, 7vw, 110px); }
.section-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: end; }
h2 { font-size: clamp(45px, 5.2vw, 80px); }
.section-heading > p { max-width: 520px; margin: 0 0 7px; font-size: 18px; line-height: 1.7; }
.category-grid { margin-top: 72px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.category-card { min-height: 440px; padding: 34px; display: flex; flex-direction: column; border: 2px solid var(--forest); box-shadow: 8px 8px 0 var(--forest); }
.category-card.saffron { background: var(--saffron); }.category-card.cream { background: var(--cream); }.category-card.rust { background: var(--rust); color: white; }
.number { font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.botanical-mark { position: relative; width: 82px; height: 82px; margin: 42px 0 26px; border: 2px solid currentColor; border-radius: 50%; }
.leaf-mark::before, .leaf-mark::after { content: ""; position: absolute; top: 23px; width: 27px; height: 14px; border: 2px solid currentColor; border-radius: 100% 0 100% 0; }.leaf-mark::before { left: 13px; transform: rotate(20deg); }.leaf-mark::after { right: 13px; transform: rotate(160deg); }
.seed-mark::before { content: "✦ ✦ ✦"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 13px; letter-spacing: 3px; }
.sun-mark::before { content: ""; position: absolute; inset: 20px; border: 2px solid currentColor; border-radius: 50%; box-shadow: 0 -29px 0 -12px currentColor, 0 29px 0 -12px currentColor, 29px 0 0 -12px currentColor, -29px 0 0 -12px currentColor; }
.category-card h3 { margin: 0 0 18px; font-family: Georgia, serif; font-size: 34px; line-height: 1; }
.category-card p { margin: 0 0 28px; line-height: 1.65; }
.category-card a { margin-top: auto; font-weight: 850; text-underline-offset: 5px; }
.guidance { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; background: var(--sage); }
.guidance-card { padding: clamp(38px, 5vw, 66px); border: 3px solid var(--forest); background: var(--forest); color: var(--cream); box-shadow: 14px 14px 0 var(--saffron); }
.guidance-card h2 { color: var(--cream); font-size: clamp(43px, 4.6vw, 68px); }.guidance-card .eyebrow { color: var(--saffron); }.guidance-card > p:not(.eyebrow) { margin: 28px 0; font-size: 18px; line-height: 1.7; }
.visit-steps { margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: center; list-style: none; }
.visit-steps li { display: grid; grid-template-columns: 50px 1fr; gap: 22px; padding: 26px 0; border-bottom: 1px solid rgba(13,43,35,.25); }
.visit-steps span { width: 46px; height: 46px; display: grid; place-items: center; border: 2px solid var(--forest); border-radius: 50%; font-weight: 900; }
.visit-steps h3 { margin: 0 0 8px; color: var(--forest-deep); font-family: Georgia, serif; font-size: 27px; }.visit-steps p { margin: 0; line-height: 1.6; }
.story { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; align-items: center; background: var(--paper); }
.story-emblem { position: relative; width: min(38vw, 500px); aspect-ratio: 1; display: grid; place-items: center; border: 3px solid var(--forest); border-radius: 50%; background: var(--saffron); box-shadow: 18px 18px 0 var(--rust); color: var(--forest); }
.story-emblem::before, .story-emblem::after { content: ""; position: absolute; inset: 9%; border: 2px solid var(--forest); border-radius: 50%; }.story-emblem::after { inset: 18%; border-style: dashed; }
.story-emblem span { z-index: 2; font-family: Georgia, serif; font-size: clamp(90px, 13vw, 190px); font-style: italic; }.story-emblem small { position: absolute; z-index: 2; bottom: 17%; font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.story-copy h2 { margin-bottom: 30px; }.story-copy > p:not(.eyebrow) { max-width: 700px; font-size: 18px; line-height: 1.75; }
.visit { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; background: var(--rust); color: white; }
.visit h2, .visit .eyebrow { color: var(--cream); }.visit address { margin: 30px 0 18px; font-family: Georgia, serif; font-size: 29px; font-style: normal; line-height: 1.5; }.hours-note { max-width: 620px; margin: 0 0 32px; line-height: 1.6; opacity: .9; }
.visit .button { border-color: var(--cream); background: var(--cream); color: var(--forest); box-shadow-color: var(--forest); }.visit .text-link { overflow-wrap: anywhere; }
.contact-card { padding: 46px; align-self: center; border: 3px solid var(--cream); background: var(--forest); box-shadow: 13px 13px 0 var(--saffron); }.contact-label { font-size: 11px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }.phone { display: block; margin: 30px 0; color: var(--cream); font-family: Georgia, serif; font-size: clamp(50px, 6vw, 84px); font-weight: 700; letter-spacing: -.05em; line-height: .88; text-decoration: none; }.contact-card p { margin: 0; line-height: 1.6; }
.closing-cta { padding: 115px 24px; background: var(--forest-deep); color: white; text-align: center; }.closing-cta .eyebrow { color: var(--saffron); }.closing-cta h2 { margin-bottom: 42px; color: var(--cream); }
footer { padding: 48px clamp(24px, 7vw, 110px); display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; background: #071d18; color: var(--cream); }.footer-mark { color: var(--cream); }.footer-links { display: flex; flex-wrap: wrap; justify-content: end; gap: 24px; }footer > p { grid-column: 1 / -1; margin: 0; color: rgba(247,239,217,.64); font-size: 12px; }
.mobile-call { display: none; }
:focus-visible { outline: 3px solid var(--saffron); outline-offset: 4px; }

@media (max-width: 920px) {
  .site-header { grid-template-columns: 1fr auto; min-height: 74px; }.site-header nav, .button-small { display: none; }
  .hero { grid-template-columns: 1fr; }.hero-copy { padding: 76px 24px 68px; }.hero-scene { min-height: 590px; }
  .section-heading, .category-grid, .guidance, .story, .visit { grid-template-columns: 1fr; }.section-heading { gap: 30px; }.category-grid { margin-top: 54px; }.category-card { min-height: 360px; }.guidance, .story, .visit { gap: 62px; }
  .story-emblem { width: min(78vw, 470px); margin: auto; }.contact-card { width: 100%; }
  footer { grid-template-columns: 1fr; padding-bottom: 108px; }.footer-links { justify-content: start; }footer > p { grid-column: auto; }
  .mobile-call { position: fixed; z-index: 40; left: 14px; right: 14px; bottom: 12px; min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 12px; border: 2px solid var(--cream); background: var(--forest); color: white; box-shadow: 0 10px 32px rgba(7,29,24,.35); font-size: 13px; font-weight: 900; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
}

@media (max-width: 540px) {
  h1 { font-size: clamp(57px, 17vw, 78px); }.intro { font-size: 19px; }.hero-actions { align-items: flex-start; flex-direction: column; }.hero-scene { min-height: 480px; }.sun { width: 115px; }.stem { transform: scale(.8) rotate(-17deg); }.stem-two { transform: scale(.8) rotate(14deg); }.jar span { font-size: 9px; }.scene-note { font-size: 14px; }
  .marquee { justify-content: flex-start; white-space: nowrap; }.marquee span:nth-of-type(n+4), .marquee i:nth-of-type(n+4) { display: none; }
  .section { padding: 82px 22px; }.category-card, .guidance-card, .contact-card { padding: 30px 24px; }.guidance-card { box-shadow: 9px 9px 0 var(--saffron); }.story-emblem { width: 76vw; }.phone { font-size: 56px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
