:root {
  --flour: #EDE6D5;
  --flour-dim: #E1D8C2;
  --walnut: #1C1410;
  --walnut-soft: #251B15;
  --rye: #B8863B;
  --rye-bright: #D3A155;
  --pine: #2B362A;
  --pine-soft: #333F31;
  --beet: #7A2730;
  --beet-bright: #8F3038;
  --brass: #9C8558;
  --ink: #1C1410;
  --line: rgba(156, 133, 88, 0.35);
  --serif: 'Libre Bodoni', 'Didot', 'Bodoni MT', Georgia, serif;
  --sans: 'Karla', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --script: 'buffalo_scriptregular', 'Caveat', cursive;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --flour: #EDE6D5;
    --flour-dim: #E1D8C2;
    --walnut: #16100C;
    --walnut-soft: #1E1611;
    --ink: #EDE6D5;
  }
}

:root[data-theme="dark"] {
  --flour: #EDE6D5;
  --flour-dim: #E1D8C2;
  --walnut: #16100C;
  --walnut-soft: #1E1611;
  --ink: #EDE6D5;
}

@font-face {
  font-family: 'buffalo_scriptregular';
  src: url('buffaloscript-regular-webfont.woff2') format('woff2'),
       url('buffaloscript-regular-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

html {
  cursor: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8cGF0aCBkPSJNMjYsMjggTDcsMyIgc3Ryb2tlPSIjRURFNkQ1IiBzdHJva2Utd2lkdGg9IjUuMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIi8+CiAgPHBhdGggZD0iTTguMSw0LjUgTDIuMywwLjggTTguMSw0LjUgTDUuNSwwLjggTTkuNyw2LjUgTDIuNiwxLjggTTkuNyw2LjUgTDcuMCwwLjggTTcuMCwzLjAgTDIuNSwwLjggTTcuMCwzLjAgTDMuMCwwLjgiIHN0cm9rZT0iI0VERTZENSIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSIvPgogIDxlbGxpcHNlIGN4PSI2LjIiIGN5PSI3LjYiIHJ4PSIzLjAiIHJ5PSIyLjAiIGZpbGw9IiNFREU2RDUiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggNi4yIDcuNikiLz4KICA8ZWxsaXBzZSBjeD0iMTMuMCIgY3k9IjUuMyIgcng9IjMuMCIgcnk9IjIuMCIgZmlsbD0iI0VERTZENSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxMy4wIDUuMykiLz4KICA8ZWxsaXBzZSBjeD0iOS4wIiBjeT0iMTEuMyIgcng9IjMuMCIgcnk9IjIuMCIgZmlsbD0iI0VERTZENSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCA5LjAgMTEuMykiLz4KICA8ZWxsaXBzZSBjeD0iMTUuOSIgY3k9IjkuMSIgcng9IjMuMCIgcnk9IjIuMCIgZmlsbD0iI0VERTZENSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxNS45IDkuMSkiLz4KICA8ZWxsaXBzZSBjeD0iMTEuOSIgY3k9IjE1LjEiIHJ4PSIzLjAiIHJ5PSIyLjAiIGZpbGw9IiNFREU2RDUiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTEuOSAxNS4xKSIvPgogIDxlbGxpcHNlIGN4PSIxOC43IiBjeT0iMTIuOCIgcng9IjMuMCIgcnk9IjIuMCIgZmlsbD0iI0VERTZENSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxOC43IDEyLjgpIi8+CiAgPGVsbGlwc2UgY3g9IjE0LjciIGN5PSIxOC44IiByeD0iMy4wIiByeT0iMi4wIiBmaWxsPSIjRURFNkQ1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDE0LjcgMTguOCkiLz4KICA8ZWxsaXBzZSBjeD0iMjEuNiIgY3k9IjE2LjYiIHJ4PSIzLjAiIHJ5PSIyLjAiIGZpbGw9IiNFREU2RDUiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMjEuNiAxNi42KSIvPgogIDxlbGxpcHNlIGN4PSIxNy42IiBjeT0iMjIuNiIgcng9IjMuMCIgcnk9IjIuMCIgZmlsbD0iI0VERTZENSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxNy42IDIyLjYpIi8+CiAgPHBhdGggZD0iTTI2LDI4IEw3LDMiIHN0cm9rZT0iIzFDMTQxMCIgc3Ryb2tlLXdpZHRoPSIzLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSIvPgogIDxwYXRoIGQ9Ik04LjEsNC41IEwyLjMsMC44IE04LjEsNC41IEw1LjUsMC44IE05LjcsNi41IEwyLjYsMS44IE05LjcsNi41IEw3LjAsMC44IE03LjAsMy4wIEwyLjUsMC44IE03LjAsMy4wIEwzLjAsMC44IiBzdHJva2U9IiMxQzE0MTAiIHN0cm9rZS13aWR0aD0iMS4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiLz4KICA8ZWxsaXBzZSBjeD0iNi4yIiBjeT0iNy42IiByeD0iMi4zIiByeT0iMS41IiBmaWxsPSIjMUMxNDEwIiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDYuMiA3LjYpIi8+CiAgPGVsbGlwc2UgY3g9IjEzLjAiIGN5PSI1LjMiIHJ4PSIyLjMiIHJ5PSIxLjUiIGZpbGw9IiMxQzE0MTAiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTMuMCA1LjMpIi8+CiAgPGVsbGlwc2UgY3g9IjkuMCIgY3k9IjExLjMiIHJ4PSIyLjMiIHJ5PSIxLjUiIGZpbGw9IiMxQzE0MTAiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggOS4wIDExLjMpIi8+CiAgPGVsbGlwc2UgY3g9IjE1LjkiIGN5PSI5LjEiIHJ4PSIyLjMiIHJ5PSIxLjUiIGZpbGw9IiMxQzE0MTAiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTUuOSA5LjEpIi8+CiAgPGVsbGlwc2UgY3g9IjExLjkiIGN5PSIxNS4xIiByeD0iMi4zIiByeT0iMS41IiBmaWxsPSIjMUMxNDEwIiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDExLjkgMTUuMSkiLz4KICA8ZWxsaXBzZSBjeD0iMTguNyIgY3k9IjEyLjgiIHJ4PSIyLjMiIHJ5PSIxLjUiIGZpbGw9IiMxQzE0MTAiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTguNyAxMi44KSIvPgogIDxlbGxpcHNlIGN4PSIxNC43IiBjeT0iMTguOCIgcng9IjIuMyIgcnk9IjEuNSIgZmlsbD0iIzFDMTQxMCIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxNC43IDE4LjgpIi8+CiAgPGVsbGlwc2UgY3g9IjIxLjYiIGN5PSIxNi42IiByeD0iMi4zIiByeT0iMS41IiBmaWxsPSIjMUMxNDEwIiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDIxLjYgMTYuNikiLz4KICA8ZWxsaXBzZSBjeD0iMTcuNiIgY3k9IjIyLjYiIHJ4PSIyLjMiIHJ5PSIxLjUiIGZpbGw9IiMxQzE0MTAiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTcuNiAyMi42KSIvPgogIDxwYXRoIGQ9Ik0yNiwyOCBMNywzIiBzdHJva2U9IiNEM0ExNTUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiLz4KICA8cGF0aCBkPSJNOC4xLDQuNSBMMi4zLDAuOCBNOC4xLDQuNSBMNS41LDAuOCBNOS43LDYuNSBMMi42LDEuOCBNOS43LDYuNSBMNy4wLDAuOCBNNy4wLDMuMCBMMi41LDAuOCBNNy4wLDMuMCBMMy4wLDAuOCIgc3Ryb2tlPSIjRDNBMTU1IiBzdHJva2Utd2lkdGg9IjAuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIi8+CiAgPGVsbGlwc2UgY3g9IjYuMiIgY3k9IjcuNiIgcng9IjEuNiIgcnk9IjEuMCIgZmlsbD0iI0QzQTE1NSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCA2LjIgNy42KSIvPgogIDxlbGxpcHNlIGN4PSIxMy4wIiBjeT0iNS4zIiByeD0iMS42IiByeT0iMS4wIiBmaWxsPSIjRDNBMTU1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDEzLjAgNS4zKSIvPgogIDxlbGxpcHNlIGN4PSI5LjAiIGN5PSIxMS4zIiByeD0iMS42IiByeT0iMS4wIiBmaWxsPSIjRDNBMTU1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDkuMCAxMS4zKSIvPgogIDxlbGxpcHNlIGN4PSIxNS45IiBjeT0iOS4xIiByeD0iMS42IiByeT0iMS4wIiBmaWxsPSIjRDNBMTU1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDE1LjkgOS4xKSIvPgogIDxlbGxpcHNlIGN4PSIxMS45IiBjeT0iMTUuMSIgcng9IjEuNiIgcnk9IjEuMCIgZmlsbD0iI0QzQTE1NSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAxMS45IDE1LjEpIi8+CiAgPGVsbGlwc2UgY3g9IjE4LjciIGN5PSIxMi44IiByeD0iMS42IiByeT0iMS4wIiBmaWxsPSIjRDNBMTU1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDE4LjcgMTIuOCkiLz4KICA8ZWxsaXBzZSBjeD0iMTQuNyIgY3k9IjE4LjgiIHJ4PSIxLjYiIHJ5PSIxLjAiIGZpbGw9IiNEM0ExNTUiIHRyYW5zZm9ybT0icm90YXRlKDUyLjggMTQuNyAxOC44KSIvPgogIDxlbGxpcHNlIGN4PSIyMS42IiBjeT0iMTYuNiIgcng9IjEuNiIgcnk9IjEuMCIgZmlsbD0iI0QzQTE1NSIgdHJhbnNmb3JtPSJyb3RhdGUoNTIuOCAyMS42IDE2LjYpIi8+CiAgPGVsbGlwc2UgY3g9IjE3LjYiIGN5PSIyMi42IiByeD0iMS42IiByeT0iMS4wIiBmaWxsPSIjRDNBMTU1IiB0cmFuc2Zvcm09InJvdGF0ZSg1Mi44IDE3LjYgMjIuNikiLz4KPC9zdmc+') 5 3, auto;
}
input, textarea, select, [contenteditable] {
  cursor: text;
}

body {
  margin: 0;
  background: var(--flour);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; }
a { color: inherit; }

.wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 640px) {
  .wrap { padding: 0 20px; }
}

/* ---------- Nav ---------- */
.nav {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--walnut);
  border-bottom: 1px solid var(--line);
}
.nav .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 92px;
}
.nav-mark {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.nav-windmill { flex-shrink: 0; transform: translateY(-6%); }
.nav-wordmark { height: 78px; width: auto; display: block; flex-shrink: 0; }
.nav-windmill .wheel-group {
  animation: nav-turn 14s linear infinite;
  transform-origin: 0px 0px;
}
@keyframes nav-turn {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .nav-windmill .wheel-group { animation: none; }
}
.nav-mark em { font-style: italic; color: var(--rye-bright); font-weight: 500; }
.nav-links {
  display: flex;
  gap: 28px;
  align-items: center;
}
.nav-links a {
  color: var(--flour-dim);
  text-decoration: none;
  font-size: 0.95rem;
}
.nav-links a:hover { color: var(--rye-bright); }
.nav-cta {
  background: var(--beet);
  color: var(--flour) !important;
  padding: 9px 18px;
  border-radius: 3px;
  font-size: 0.9rem;
  white-space: nowrap;
  transition: background 0.2s ease;
}
.nav-cta:hover { background: var(--beet-bright); }

.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 34px;
  height: 34px;
  background: none;
  border: none;
  padding: 0;
  position: relative;
}
.nav-hamburger span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--flour);
  border-radius: 1px;
  transition: opacity 0.2s ease;
}
.nav.menu-open .nav-hamburger span:nth-child(1) {
  animation: spin-open-1 950ms cubic-bezier(0.08, 0.85, 0.15, 1) forwards;
}
.nav.menu-open .nav-hamburger span:nth-child(2) {
  opacity: 0;
}
.nav.menu-open .nav-hamburger span:nth-child(3) {
  animation: spin-open-3 950ms cubic-bezier(0.08, 0.85, 0.15, 1) forwards;
}
.nav-hamburger.closing span:nth-child(1) {
  animation: spin-close-1 850ms cubic-bezier(0.08, 0.85, 0.15, 1) forwards;
}
.nav-hamburger.closing span:nth-child(3) {
  animation: spin-close-3 850ms cubic-bezier(0.08, 0.85, 0.15, 1) forwards;
}
/* several fast spins that decelerate into place, like a mill sail losing momentum */
@keyframes spin-open-1 {
  from { transform: translateY(0) rotate(0deg); }
  to   { transform: translateY(7px) rotate(1125deg); }
}
@keyframes spin-open-3 {
  from { transform: translateY(0) rotate(0deg); }
  to   { transform: translateY(-7px) rotate(1395deg); }
}
@keyframes spin-close-1 {
  from { transform: translateY(7px) rotate(1125deg); }
  to   { transform: translateY(0) rotate(1440deg); }
}
@keyframes spin-close-3 {
  from { transform: translateY(-7px) rotate(1395deg); }
  to   { transform: translateY(0) rotate(1440deg); }
}
@media (prefers-reduced-motion: reduce) {
  .nav-hamburger span { animation: none !important; }
  .nav.menu-open .nav-hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav.menu-open .nav-hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
.nav-mobile-menu {
  display: none;
  flex-direction: column;
  background: var(--walnut-soft);
  border-top: 1px solid var(--line);
  padding: 8px 0;
}
.nav-mobile-menu a {
  padding: 14px 32px;
  color: var(--flour-dim);
  text-decoration: none;
  font-size: 0.98rem;
  border-bottom: 1px solid var(--line);
}
.nav-mobile-menu a:last-child { border-bottom: none; }
.nav-mobile-menu a:hover { color: var(--rye-bright); }
.nav.menu-open .nav-mobile-menu { display: flex; }

@media (max-width: 720px) {
  .nav-links a:not(.nav-cta) { display: none; }
  .nav-locations { display: none; }
  .nav-hamburger { display: flex; }
  .nav-cta { padding: 7px 12px; font-size: 0.82rem; }
  .nav-links { gap: 12px; }
  .nav-mark { gap: 6px; }
  .nav-windmill { width: 20px; height: 20px; }
  .nav-wordmark { height: 60px; }
}

@media (max-width: 400px) {
  .nav-windmill { width: 17px; height: 17px; }
  .nav-wordmark { height: 50px; }
  .nav-cta { padding: 6px 9px; font-size: 0.76rem; }
}

.nav-locations { position: relative; }
.nav-locations-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid rgba(156, 133, 88, 0.5);
  color: var(--flour-dim);
  font-family: var(--sans);
  font-size: 0.9rem;
  padding: 8px 14px;
  border-radius: 3px;
}
.nav-locations-btn:hover { border-color: var(--rye-bright); color: var(--rye-bright); }
.nav-locations-caret { font-size: 0.7em; transition: transform 0.15s ease; }
.nav-locations.open .nav-locations-caret { transform: rotate(180deg); }
.nav-locations-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 240px;
  background: var(--walnut-soft);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 8px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.35);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.nav-locations.open .nav-locations-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.nav-locations-current {
  display: block;
  padding: 8px 10px;
  font-size: 0.85rem;
  color: var(--flour-dim);
  border-bottom: 1px solid var(--line);
  margin-bottom: 6px;
}
.nav-locations-current strong { color: var(--flour); font-weight: 600; }
.nav-locations-menu a {
  display: block;
  padding: 8px 10px;
  border-radius: 3px;
  color: var(--flour);
  text-decoration: none;
  font-size: 0.9rem;
}
.nav-locations-menu a:hover { background: rgba(184, 134, 59, 0.15); color: var(--rye-bright); }

/* ---------- Sub-page strip ---------- */
.subnav {
  position: sticky;
  top: 92px;
  z-index: 39;
  background: var(--walnut-soft);
  border-bottom: 1px solid var(--line);
}
.subnav .wrap {
  max-width: 1160px;
  height: 44px;
  display: flex;
  align-items: center;
}
.subnav-back { color: var(--flour-dim); text-decoration: none; font-size: 0.85rem; }
.subnav-back:hover { color: var(--rye-bright); }

/* ---------- Footer ---------- */
footer {
  background: var(--walnut-soft);
  color: #9B9184;
  padding: 32px 0;
  font-size: 0.88rem;
}
.footer-social {
  display: flex;
  justify-content: center;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 20px;
}
.social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(156, 133, 88, 0.4);
  color: #9B9184;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.social-icon svg { width: 18px; height: 18px; }
.social-icon:hover { border-color: var(--rye-bright); color: var(--rye-bright); }
footer .wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
footer a { text-decoration: none; color: #9B9184; }
footer a:hover { color: var(--rye-bright); }