/* Design tokens. Change the RGB values and corner radii here to restyle the site. */
    :root {
      --cream-rgb: 243 238 230;
      --cream-deep-rgb: 230 221 208;
      --ivory-rgb: 251 247 242;
      --ink-rgb: 47 40 34;
      --muted-rgb: 94 81 70;
      --cocoa-rgb: 166 132 98;
      --sage-rgb: 138 160 132;
      --moss-rgb: 78 98 76;
      --mist-rgb: 229 238 227;
      --line-rgb: 224 213 198;

      --color-cream: rgb(var(--cream-rgb));
      --color-cream-deep: rgb(var(--cream-deep-rgb));
      --color-ivory: rgb(var(--ivory-rgb));
      --color-ink: rgb(var(--ink-rgb));
      --color-muted: rgb(var(--muted-rgb));
      --color-cocoa: rgb(var(--cocoa-rgb));
      --color-sage: rgb(var(--sage-rgb));
      --color-moss: rgb(var(--moss-rgb));
      --color-mist: rgb(var(--mist-rgb));
      --color-line: rgb(var(--line-rgb));

      --radius-sm: 0.75rem;
      --radius-md: 1.15rem;
      --radius-lg: 1.6rem;
      --radius-xl: 2rem;

      --shadow-soft: 0 22px 50px -28px rgb(var(--ink-rgb) / 0.45);
      --font-display: "Fraunces", Georgia, serif;
      --font-body: "DM Sans", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
      --header-offset: 5.25rem;
    }

    *,
    *::before,
    *::after { box-sizing: border-box; }

    html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset); }

    body {
      margin: 0;
      background:
        radial-gradient(900px 420px at 0% -10%, rgb(var(--sage-rgb) / 0.18), transparent 55%),
        radial-gradient(700px 380px at 100% 0%, rgb(var(--cocoa-rgb) / 0.14), transparent 50%),
        var(--color-cream);
      color: var(--color-ink);
      font-family: var(--font-body);
      font-size: 1rem;
      line-height: 1.6;
    }

    img { max-width: 100%; display: block; }
    button, input, select, textarea { font: inherit; }
    [hidden] { display: none !important; }

    h1, h2, h3, .display {
      font-family: var(--font-display);
      font-weight: 500;
      letter-spacing: -0.02em;
      line-height: 1.12;
    }

    ::selection {
      background: var(--color-mist);
      color: var(--color-ink);
    }

    :focus-visible {
      outline: 2px solid var(--color-moss);
      outline-offset: 3px;
    }

    .skip-link {
      position: absolute;
      left: 1rem;
      top: -4rem;
      z-index: 80;
      border-radius: var(--radius-sm);
      background: var(--color-ink);
      color: var(--color-ivory);
      padding: 0.6rem 0.9rem;
    }
    .skip-link:focus { top: 1rem; }
    main:focus { outline: none; }

    .sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

    .wrap {
      width: min(72rem, calc(100% - 2.5rem));
      margin-inline: auto;
    }
    .section { padding-block: 4.5rem; }
    #home.section { padding-top: 2.75rem; }
    #products.section { padding-top: 0; }
    section[id] { scroll-margin-top: var(--header-offset); }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 40;
      background: rgb(var(--cream-rgb) / 0.88);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid transparent;
    }
    .site-header.is-scrolled {
      border-bottom-color: var(--color-line);
      box-shadow: 0 12px 30px -24px rgb(var(--ink-rgb) / 0.55);
    }

    .logo-mark {
      display: grid;
      width: 2.5rem;
      height: 2.5rem;
      place-items: center;
      flex: none;
      border-radius: 999px;
      background: var(--color-mist);
      color: var(--color-moss);
    }
    .header-logo {
      width: 3.25rem;
      height: 3.25rem;
      flex: none;
      object-fit: contain;
      border-radius: var(--radius-sm);
      background: var(--color-cream);
    }
    .footer-logo {
      width: min(15rem, 100%);
      height: auto;
      border-radius: var(--radius-md);
      background: var(--color-cream);
    }
    .about-logo {
      width: min(11rem, 70%);
      height: auto;
      margin-bottom: 1.25rem;
      border-radius: var(--radius-md);
    }
    .about-photo figcaption {
      margin-top: 0.65rem;
      color: var(--color-muted);
      font-size: 0.875rem;
      line-height: 1.5;
    }
    .brand-name {
      display: block;
      max-width: 11.5rem;
      font-family: var(--font-body);
      font-size: 0.92rem;
      font-weight: 600;
      line-height: 1.3;
      letter-spacing: 0;
    }
    footer .brand-name { max-width: 18rem; }
    .brand-slogan {
      display: block;
      max-width: 16rem;
      margin-top: 0.15rem;
      color: var(--color-muted);
      font-size: 0.72rem;
      line-height: 1.35;
    }
    .wa-mobile { display: inline-flex; padding-inline: 0.7rem; }
    .wa-mobile .header-wa-number { display: none; }

    .desktop-nav { display: none; align-items: center; gap: 1rem; }
    .header-wa { white-space: nowrap; }
    .header-wa-number { font-variant-numeric: tabular-nums; }
    .nav-link {
      color: var(--color-ink);
      text-decoration: none;
      font-size: 0.95rem;
      font-weight: 500;
    }
    .nav-link:hover,
    .nav-link[aria-current="true"] { color: var(--color-moss); }

    .menu-btn {
      display: inline-flex;
      width: 2.75rem;
      height: 2.75rem;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-sm);
      background: var(--color-ivory);
      color: var(--color-ink);
      cursor: pointer;
    }
    .menu-btn svg { width: 1.25rem; height: 1.25rem; }
    .mobile-menu {
      display: none;
      border-top: 1px solid var(--color-line);
      background: rgb(var(--ivory-rgb) / 0.96);
    }
    .mobile-menu.is-open { display: block; }
    .mobile-menu a {
      display: block;
      padding: 0.85rem 0;
      color: var(--color-ink);
      text-decoration: none;
      font-weight: 500;
      border-bottom: 1px solid var(--color-line);
    }
    .mobile-menu a[aria-current="true"] { color: var(--color-moss); }
    .mobile-menu a.btn {
      display: flex;
      justify-content: center;
      margin-top: 1rem;
      border-bottom: 0;
      color: var(--color-ivory);
    }
    .mobile-menu a.btn:hover { color: var(--color-ivory); }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.45rem;
      min-height: 3rem;
      padding: 0.7rem 1.2rem;
      border: 1px solid transparent;
      border-radius: var(--radius-sm);
      font-weight: 600;
      line-height: 1;
      text-decoration: none;
      cursor: pointer;
      transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    }
    .btn-primary { background: var(--color-ink); color: var(--color-ivory); }
    .btn-primary:hover { background: var(--color-moss); }
    .btn-ghost {
      background: transparent;
      color: var(--color-ink);
      border-color: var(--color-line);
    }
    .btn-ghost:hover { background: var(--color-ivory); }
    .btn-sm { min-height: 2.5rem; padding: 0.4rem 0.9rem; font-size: 0.875rem; }
    .btn-wide { width: 100%; }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin: 0 0 0.9rem;
      color: var(--color-moss);
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .eyebrow::before {
      content: "";
      width: 1.75rem;
      height: 1px;
      background: var(--color-cocoa);
    }

    .lede { color: var(--color-muted); font-size: 1.05rem; }

    .hero-points { display: grid; gap: 1rem; margin: 2rem 0 0; padding: 0; list-style: none; }
    .hero-points li {
      padding-top: 0.85rem;
      border-top: 1px solid var(--color-line);
    }
    .hero-points span {
      display: block;
      color: var(--color-cocoa);
      font-size: 0.75rem;
      letter-spacing: 0.14em;
    }
    .hero-points strong {
      display: block;
      margin-top: 0.25rem;
      font-weight: 600;
    }
    .hero-points p { margin: 0.2rem 0 0; color: var(--color-muted); font-size: 0.92rem; }

    .frame {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-lg);
      background: var(--color-cream-deep);
    }
    .frame-hero { border-radius: var(--radius-xl); }
    .ph-label {
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      padding: 1.25rem;
      text-align: center;
      color: var(--color-muted);
      font-size: 0.8rem;
      letter-spacing: 0.04em;
    }
    .ph {
      position: absolute;
      inset: 0;
      z-index: 1;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .ph.is-broken { opacity: 0; }

    .about-carousel { isolation: isolate; }
    .about-track {
      position: absolute;
      inset: 0;
      display: flex;
      height: 100%;
      transition: transform 0.45s ease;
    }
    .about-slide {
      position: relative;
      flex: 0 0 100%;
      height: 100%;
    }
    .about-carousel-ui { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
    .about-nav {
      pointer-events: auto;
      position: absolute;
      top: 50%;
      display: grid;
      width: 2.4rem;
      height: 2.4rem;
      place-items: center;
      transform: translateY(-50%);
      border: 0;
      border-radius: 999px;
      background: rgb(var(--ivory-rgb) / 0.92);
      color: var(--color-ink);
      cursor: pointer;
    }
    .about-nav:hover { background: rgb(var(--ivory-rgb) / 1); }
    .about-nav,
    .about-dots button { box-shadow: 0 0 0 1px rgb(var(--ink-rgb) / 0.18); }
    .about-nav svg { width: 1.1rem; height: 1.1rem; }
    .about-nav-prev { left: 0.75rem; }
    .about-nav-next { right: 0.75rem; }
    .about-dots {
      pointer-events: auto;
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0.85rem;
      display: flex;
      justify-content: center;
      gap: 0.4rem;
    }
    .about-dots button {
      width: 0.45rem;
      height: 0.45rem;
      padding: 0;
      border: 0;
      border-radius: 999px;
      background: rgb(var(--ivory-rgb) / 0.75);
      cursor: pointer;
    }
    .about-dots button[aria-current="true"] {
      width: 1.15rem;
      background: var(--color-ink);
    }
    @media (prefers-reduced-motion: reduce) {
      .about-track { transition: none; }
    }
    .product-card .frame,
    .story-card .frame { border-radius: 0; }
    .story-card .frame {
      flex-shrink: 0;
      width: 100%;
      aspect-ratio: 16 / 10;
    }
    .story-card time {
      display: block;
      margin-top: 0.4rem;
      color: var(--color-cocoa);
      font-size: 0.875rem;
    }

    .hero-caption {
      position: absolute;
      z-index: 2;
      left: 1rem;
      right: 1rem;
      bottom: 1rem;
      border-radius: var(--radius-md);
      background: rgb(var(--ivory-rgb) / 0.94);
      padding: 0.9rem 1rem;
      box-shadow: var(--shadow-soft);
    }
    .hero-paw {
      position: absolute;
      z-index: 2;
      top: 1.1rem;
      right: 1.1rem;
      color: rgb(var(--moss-rgb) / 0.45);
    }

    .filter-bar { display: flex; flex-wrap: wrap; gap: 0.55rem; }
    .filter-pill {
      border: 1px solid var(--color-line);
      border-radius: var(--radius-lg);
      background: transparent;
      color: var(--color-ink);
      padding: 0.5rem 0.95rem;
      font-size: 0.9rem;
      font-weight: 600;
      line-height: 1.25;
      text-align: left;
      cursor: pointer;
    }
    .filter-pill small {
      display: block;
      font-size: 0.72rem;
      font-weight: 500;
      opacity: 0.75;
    }
    .filter-pill:hover { background: var(--color-ivory); }
    .filter-pill[aria-pressed="true"] {
      border-color: var(--color-ink);
      background: var(--color-ink);
      color: var(--color-ivory);
    }

    .product-card,
    .story-card,
    .panel {
      height: 100%;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-md);
      background: var(--color-ivory);
    }
    .product-card,
    .story-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
    .product-card:hover,
    .story-card:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-soft);
    }
    .story-open {
      display: flex;
      flex: 1;
      flex-direction: column;
      width: 100%;
      margin: 0;
      padding: 0;
      border: 0;
      background: transparent;
      color: inherit;
      font: inherit;
      text-align: left;
      cursor: pointer;
    }
    .story-open:focus-visible {
      outline: 2px solid var(--color-moss);
      outline-offset: -3px;
    }
    .story-title {
      margin: 0.75rem 0 0;
      font-family: var(--font-display);
      font-size: 1.5rem;
      font-weight: 500;
      line-height: 1.25;
      color: var(--color-ink);
    }
    .story-card .story-title {
      margin: 0;
      font-size: 1.25rem;
    }
    .story-dialog {
      width: min(42rem, calc(100vw - 1.5rem));
      max-height: min(90vh, 54rem);
      margin: auto;
      padding: 0;
      border: 0;
      border-radius: var(--radius-lg);
      background: var(--color-ivory);
      color: var(--color-ink);
      overflow: hidden;
    }
    .story-dialog::backdrop { background: rgb(var(--ink-rgb) / 0.46); }
    .story-panel {
      max-height: min(90vh, 54rem);
      overflow: auto;
    }
    .story-hero {
      margin: 0;
      aspect-ratio: 16 / 10;
      background: var(--color-cream-deep);
    }
    .story-hero img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .story-copy { padding: 1.35rem 1.35rem 1.75rem; }
    .story-prose p { margin: 0.9rem 0 0; line-height: 1.65; color: var(--color-muted); }
    .story-prose h2 {
      margin: 2.1rem 0 0;
      font-family: var(--font-display);
      font-size: 1.45rem;
      font-weight: 500;
      line-height: 1.3;
      color: var(--color-ink);
    }
    .story-prose h3 {
      margin: 1.4rem 0 0;
      font-size: 1.05rem;
      font-weight: 650;
      line-height: 1.4;
      color: var(--color-ink);
    }
    .story-prose a { color: var(--color-moss); font-weight: 600; text-underline-offset: 0.15em; }
    .story-prose ul { margin: 1rem 0 0; padding-left: 1.15rem; }
    .story-prose li { margin-top: 0.45rem; line-height: 1.55; }
    article .story-title { font-size: clamp(1.7rem, 3vw, 2.25rem); }
    .story-close {
      position: absolute;
      z-index: 2;
      top: 0.75rem;
      right: 0.75rem;
      display: grid;
      width: 2.4rem;
      height: 2.4rem;
      place-items: center;
      border: 0;
      border-radius: 999px;
      background: rgb(var(--ivory-rgb) / 0.94);
      color: var(--color-ink);
      cursor: pointer;
    }
    .story-close svg { width: 1.1rem; height: 1.1rem; }
    @media (min-width: 640px) {
      .story-copy { padding: 1.6rem 1.75rem 2rem; }
    }
    .tag {
      display: inline-flex;
      border-radius: var(--radius-lg);
      background: var(--color-mist);
      color: var(--color-moss);
      padding: 0.25rem 0.65rem;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.04em;
    }
    .price { font-weight: 600; font-variant-numeric: tabular-nums; }

    .field {
      width: 100%;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-sm);
      background: var(--color-cream);
      color: var(--color-ink);
      padding: 0.8rem 0.9rem;
    }
    .field:focus-visible { border-color: var(--color-moss); }
    textarea.field {
      min-height: 8rem;
      resize: vertical;
      font: inherit;
    }
    .check {
      width: 1rem;
      height: 1rem;
      margin-top: 0.2rem;
      accent-color: var(--color-moss);
      flex: none;
    }
    label .req { color: var(--color-cocoa); }

    .footer-link { color: var(--color-muted); text-decoration: none; }
    .footer-link:hover { color: var(--color-moss); }
    .social {
      display: inline-flex;
      width: 2.5rem;
      height: 2.5rem;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-sm);
      color: var(--color-ink);
    }
    .social:hover { background: var(--color-mist); color: var(--color-moss); }
    .social svg { width: 1.1rem; height: 1.1rem; }

    @media (min-width: 640px) {
      .brand-name { max-width: 18rem; font-size: 1rem; }
      .wrap { width: min(72rem, calc(100% - 3rem)); }
      .hero-points { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
      .hero-caption { right: auto; max-width: 18rem; }
      .btn-wide { width: auto; }
    }

    @media (min-width: 1024px) {
      .wrap { width: min(72rem, calc(100% - 4rem)); }
      .section { padding-block: 6.5rem; }
      #home.section { padding-top: 3.5rem; }
      #products.section { padding-top: 0; }
      .header-logo { width: 3.75rem; height: 3.75rem; }
      .brand-name { max-width: none; }
      .desktop-nav { display: flex; }
      .wa-mobile,
      .menu-btn,
      .mobile-menu,
      .mobile-menu.is-open { display: none; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      .product-card,
      .story-card,
      .btn { transition: none; }
      .product-card:hover,
      .story-card:hover { transform: none; }
    }

.crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  margin: 0 0 1.25rem;
  color: var(--color-muted);
  font-size: 0.875rem;
}
.crumbs a { color: var(--color-moss); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.ratio-45 { aspect-ratio: 4 / 5; }
.ratio-1610 { aspect-ratio: 16 / 10; }
.frame-hero { max-height: 640px; }
a.filter-pill { display: inline-block; text-decoration: none; }
a.filter-pill[aria-current="page"] {
  border-color: var(--color-ink);
  background: var(--color-ink);
  color: var(--color-ivory);
}
.product-card h2,
.product-card h3 { margin: 0.75rem 0 0; }
.product-card h2 a,
.product-card h3 a { color: inherit; text-decoration: none; }
.product-card h2 a:hover,
.product-card h3 a:hover { color: var(--color-moss); }
a.story-open { color: inherit; text-decoration: none; }
.detail-prose p { margin: 0.9rem 0 0; color: var(--color-muted); }
.point { color: var(--color-moss); font-size: 0.95rem; font-weight: 600; }

.section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}
.home-cats {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.home-cat {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.15rem 1.2rem 1.25rem;
  color: inherit;
  text-decoration: none;
}
.home-cat span {
  color: var(--color-cocoa);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.home-cat strong {
  margin-top: 0.35rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.2;
}
.home-cat p {
  margin: 0.45rem 0 0;
  color: var(--color-muted);
  font-size: 0.92rem;
  line-height: 1.45;
}
.home-cat:hover strong { color: var(--color-moss); }
@media (min-width: 768px) {
  .home-cats { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
  #home.section { padding-bottom: 4rem; }
  #range.section { padding-top: 1.5rem; }
}
