/* soda-spring-ashland design-a — Fieldmark design system
   All selectors scoped to [data-design="a"].dq-design
   All keyframes prefixed fm-
   Motion: only transform / opacity / clip-path / stroke-dashoffset / color animate
   Hover transforms gated behind @media (hover: hover) and (pointer: fine)
   Reduced-motion fallbacks on every animation */

/* ── Design tokens ─────────────────────────────────────────────────────────── */
[data-design="a"] {
  --fm-paper:          #EFE6D2;
  --fm-leaf:           #F7F1E1;
  --fm-ink:            #2A2118;
  --fm-ink-soft:       #6E5F47;
  --fm-rule:           #D6C8A6;
  --fm-botanical:      #5B6B39;
  --fm-specimen:       #A23B1E;
  --fm-botanical-deep: #46582C;
  --fm-specimen-deep:  #8C2F18;

  --fm-font-display: "Cochin", "Hoefler Text", "Libre Caslon Display", "Big Caslon", Georgia, serif;
  --fm-font-body:    "Iowan Old Style", "Spectral", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --fm-font-hand:    "Mansalva", "Caveat", "Segoe Script", cursive;
  --fm-font-tag:     "Cochin", "Hoefler Text", "Libre Caslon Display", "Big Caslon", Georgia, serif;
  --fm-font-mono:    "Courier Prime", "Courier New", ui-monospace, monospace;

  --fm-t-cap:  0.875rem;
  --fm-t-body: 1.0625rem;
  --fm-t-lead: 1.25rem;
  --fm-t-h3:   1.5rem;
  --fm-t-h2:   2.0rem;
  --fm-t-h1:   clamp(2.5rem, 6vw, 4.25rem);

  --fm-hair:         4px;
  --fm-rule-gap:     8px;
  --fm-gutter:       16px;
  --fm-specimen-pad: 24px;
  --fm-inset:        32px;
  --fm-folio:        48px;
  --fm-leaf-gap:     72px;
  --fm-spread:       96px;
  --fm-plate-gap:    clamp(72px, 12vh, 128px);

  --fm-settle:  cubic-bezier(0.22, 0.61, 0.36, 1);
  --fm-press:   cubic-bezier(0.3, 0, 0, 1);
  --fm-bloom:   cubic-bezier(0.45, 0, 0.2, 1);

  --fm-r-cut:  0;
  --fm-r-tag:  3px;
  --fm-r-hole: 50%;

  --fm-lift-flat:    none;
  --fm-lift-tipped:  0 1px 0 rgba(255,255,255,0.5) inset, 0 10px 24px -12px rgba(42,33,24,0.32);
  --fm-lift-loupe:   0 24px 60px -18px rgba(20,12,4,0.55);

  box-sizing: border-box;
  background: var(--fm-paper);
  color: var(--fm-ink);
  font-family: var(--fm-font-body);
  font-size: var(--fm-t-body);
  line-height: 1.6;
}

[data-design="a"].dq-design *, [data-design="a"].dq-design *::before, [data-design="a"].dq-design *::after {
  box-sizing: border-box;
}

/* ── Header (Element 1) ─────────────────────────────────────────────────────── */
[data-design="a"] .fm-header {
  position: sticky; top: 0; z-index: 40;
  background: var(--fm-paper); border-bottom: 1px solid var(--fm-rule);
  overflow: clip;
}
[data-design="a"] .fm-header__wash {
  position: absolute; inset: -40% -10% auto -10%;
  height: 220%; pointer-events: none; opacity: .5;
  background:
    radial-gradient(60% 80% at 30% 40%, color-mix(in oklab, var(--fm-specimen) 14%, transparent), transparent 70%),
    radial-gradient(50% 70% at 75% 60%, color-mix(in oklab, var(--fm-botanical) 14%, transparent), transparent 70%);
  animation: fm-header-wash 26s ease-in-out infinite alternate;
}
[data-design="a"] .fm-header__rule {
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 1px; background: var(--fm-specimen); transform-origin: left;
  animation: fm-header-rule 22s ease-in-out infinite alternate;
}
[data-design="a"] .fm-header__bar {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--fm-gutter); max-width: 72rem; margin: 0 auto;
  padding: var(--fm-rule-gap) var(--fm-inset);
}
[data-design="a"] .fm-logo {
  font-family: var(--fm-font-display); font-size: 1.4rem;
  letter-spacing: .01em; color: var(--fm-ink); text-decoration: none;
}
[data-design="a"] .fm-burger {
  display: grid; gap: 5px; width: 44px; height: 44px;
  align-content: center; justify-items: end;
  background: none; border: 0; cursor: pointer; padding: 0;
}
[data-design="a"] .fm-burger__line {
  width: 26px; height: 1.5px; background: var(--fm-ink);
  transition: transform 160ms var(--fm-press);
}
[data-design="a"] .fm-burger[aria-expanded="true"] .fm-burger__line:first-child {
  transform: translateY(3.5px) rotate(8deg);
}
[data-design="a"] .fm-burger[aria-expanded="true"] .fm-burger__line:last-child {
  transform: translateY(-3px) rotate(-8deg);
}
[data-design="a"] .fm-burger:focus-visible {
  outline: none; box-shadow: 0 0 0 2px var(--fm-specimen); border-radius: var(--fm-r-tag);
}
[data-design="a"] .fm-index[hidden] { display: none; }
[data-design="a"] .fm-index { position: fixed; inset: 0; z-index: 60; }
[data-design="a"] .fm-index__backdrop {
  position: absolute; inset: 0;
  background: color-mix(in oklab, var(--fm-ink) 30%, transparent);
  opacity: 0; transition: opacity 280ms var(--fm-settle);
}
[data-design="a"] .fm-index__sheet {
  position: absolute; top: 0; right: 0; height: 100%;
  width: min(86vw, 22rem); background: var(--fm-leaf);
  border-left: 1px solid var(--fm-rule); box-shadow: var(--fm-lift-tipped);
  padding: var(--fm-inset); display: flex; flex-direction: column; gap: var(--fm-folio);
  transform: translateX(100%); transition: transform 280ms var(--fm-settle);
}
[data-design="a"] .fm-index[data-open="true"] .fm-index__backdrop { opacity: 1; }
[data-design="a"] .fm-index[data-open="true"] .fm-index__sheet { transform: translateX(0); }
[data-design="a"] .fm-index__head {
  font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .12em; color: var(--fm-specimen);
  border-bottom: 1px solid var(--fm-rule); padding-bottom: var(--fm-rule-gap);
}
[data-design="a"] .fm-index__links {
  display: grid; gap: var(--fm-specimen-pad);
  font-family: var(--fm-font-display); font-size: 1.4rem;
}
[data-design="a"] .fm-index__links a {
  color: var(--fm-ink); text-decoration: none; min-height: 44px;
  display: flex; align-items: center;
}
[data-design="a"] .fm-index__foot {
  margin-top: auto; display: grid; gap: var(--fm-gutter);
  font-family: var(--fm-font-body);
}

@keyframes fm-header-wash {
  from { transform: translate3d(-3%,0,0); }
  to   { transform: translate3d(3%,0,0); }
}
@keyframes fm-header-rule {
  0%   { opacity: .35; transform: scaleX(.4); }
  100% { opacity: .8;  transform: scaleX(1); }
}

/* ── Seal / CTA (Element 2) ─────────────────────────────────────────────────── */
[data-design="a"] .fm-seal {
  position: relative; display: inline-flex; align-items: center;
  gap: var(--fm-rule-gap); padding: var(--fm-gutter) var(--fm-specimen-pad);
  min-height: 44px; font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .08em; font-size: 1rem; color: var(--fm-specimen);
  background: var(--fm-leaf); border: 1px solid var(--fm-specimen);
  border-radius: var(--fm-r-tag); text-decoration: none;
  box-shadow: var(--fm-lift-tipped);
  transition: transform 160ms var(--fm-press), box-shadow 160ms var(--fm-press);
}
[data-design="a"] .fm-seal--large {
  font-size: 1.1rem; padding: var(--fm-specimen-pad) var(--fm-inset);
}
[data-design="a"] .fm-seal__label { position: relative; }
[data-design="a"] .fm-seal__label::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -3px;
  height: 1.5px; background: var(--fm-specimen);
  transform: scaleX(0); transform-origin: left;
  transition: transform 280ms var(--fm-settle);
}
[data-design="a"] .fm-seal__mark {
  display: inline-flex;
  animation: fm-seal-breath 5s ease-in-out infinite;
}
@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .fm-seal:hover { transform: translateY(-1px); }
  [data-design="a"] .fm-seal:hover .fm-seal__label::after { transform: scaleX(1); }
}
[data-design="a"] .fm-seal:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--fm-specimen) 35%, transparent);
}
[data-design="a"] .fm-seal:active {
  transform: translateY(1px) scale(.98); box-shadow: var(--fm-lift-flat);
}
@keyframes fm-seal-breath {
  0%,100% { transform: translate3d(0,0,0); opacity: .85; }
  50%      { transform: translate3d(1px,-1px,0); opacity: 1; }
}

/* ── Eyebrow ─────────────────────────────────────────────────────────────────── */
[data-design="a"] .fm-eyebrow {
  font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .14em; color: var(--fm-specimen); font-size: var(--fm-t-cap);
  margin: 0 0 var(--fm-rule-gap);
}

/* ── Place Story ─────────────────────────────────────────────────────────────── */
[data-design="a"] .fm-story {
  padding: var(--fm-spread) var(--fm-gutter);
  max-width: 72rem; margin: 0 auto;
}
[data-design="a"] .fm-story__inner { max-width: 68ch; }
[data-design="a"] .fm-story__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.8rem);
  line-height: 1.12; color: var(--fm-ink); margin: 0 0 var(--fm-folio);
}
[data-design="a"] .fm-story__body {
  font-family: var(--fm-font-body); line-height: 1.6;
  color: var(--fm-ink); margin: 0 0 var(--fm-folio); max-width: 68ch;
}
[data-design="a"] .fm-facts {
  display: grid; gap: 0; margin: 0; padding: 0;
  border-top: 1px solid var(--fm-rule);
}
[data-design="a"] .fm-facts__item {
  display: grid; grid-template-columns: 1fr 2fr;
  gap: var(--fm-gutter); padding: var(--fm-gutter) 0;
  border-bottom: 1px solid var(--fm-rule); align-items: baseline;
}
[data-design="a"] .fm-facts__label {
  font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .1em; color: var(--fm-ink-soft); font-size: var(--fm-t-cap);
}
[data-design="a"] .fm-facts__value {
  font-family: var(--fm-font-body); color: var(--fm-ink);
}

/* ── Pointer (Element 6) ─────────────────────────────────────────────────────── */
[data-design="a"] .fm-pointer {
  display: grid; justify-items: center; gap: var(--fm-rule-gap);
  padding: var(--fm-folio) var(--fm-gutter) var(--fm-inset);
}
[data-design="a"] .fm-pointer__rule { width: 2px; height: 96px; }
[data-design="a"] .fm-pointer__line {
  stroke-dasharray: 96; stroke-dashoffset: 96;
  transition: stroke-dashoffset 1.4s var(--fm-settle);
}
[data-design="a"] .fm-pointer.is-in .fm-pointer__line { stroke-dashoffset: 0; }
[data-design="a"] .fm-pointer__seed { width: 32px; height: auto; }
[data-design="a"] .fm-pointer.is-in .fm-pointer__seed {
  animation: fm-pointer-drift 6s ease-in-out infinite;
}
[data-design="a"] .fm-pointer__label {
  font-family: var(--fm-font-hand); font-size: 1.05rem;
  color: var(--fm-ink-soft); opacity: 0;
  transition: opacity 280ms var(--fm-settle) .6s; cursor: pointer;
}
[data-design="a"] .fm-pointer.is-in .fm-pointer__label { opacity: 1; }
@keyframes fm-pointer-drift {
  0%   { transform: translate3d(0,-4px,0) rotate(-6deg); }
  50%  { transform: translate3d(3px,4px,0) rotate(6deg); }
  100% { transform: translate3d(0,-4px,0) rotate(-6deg); }
}

/* ── Stays Selector (E5 — tabs) ──────────────────────────────────────────────── */
[data-design="a"] .fm-stays {
  padding: var(--fm-spread) var(--fm-gutter);
  max-width: 72rem; margin: 0 auto;
}
[data-design="a"] .fm-stays__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: var(--fm-ink); margin: 0 0 var(--fm-folio); line-height: 1.12;
}
[data-design="a"] .fm-stays__tabs {
  display: flex; gap: var(--fm-rule-gap); flex-wrap: wrap;
  border-bottom: 1px solid var(--fm-rule); margin-bottom: var(--fm-folio);
}
[data-design="a"] .fm-stays__tab {
  font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .08em; font-size: var(--fm-t-cap);
  color: var(--fm-ink-soft); background: none; border: 0;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  padding: var(--fm-rule-gap) var(--fm-specimen-pad);
  min-height: 44px; cursor: pointer;
  transition: color 160ms var(--fm-press), border-color 160ms var(--fm-press);
}
[data-design="a"] .fm-stays__tab--active,
[data-design="a"] .fm-stays__tab[aria-selected="true"] {
  color: var(--fm-specimen); border-bottom-color: var(--fm-specimen);
}
[data-design="a"] .fm-stays__tab:focus-visible {
  outline: none; box-shadow: 0 0 0 2px var(--fm-specimen); border-radius: var(--fm-r-tag);
}
[data-design="a"] .fm-stays__panels { position: relative; }
[data-design="a"] .fm-stay-panel {
  display: none;
}
[data-design="a"] .fm-stay-panel:not([hidden]) {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: var(--fm-inset); align-items: start;
}
[data-design="a"] .fm-stay-panel__plate {
  margin: 0; background: var(--fm-leaf); border: 1px solid var(--fm-rule);
  padding: var(--fm-rule-gap); box-shadow: var(--fm-lift-tipped);
}
[data-design="a"] .fm-stay-panel__plate .fm-mount__open {
  display: block; width: 100%; padding: 0; background: none;
  border: 0; cursor: default;
}
[data-design="a"] .fm-stay-panel__img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 4/3; object-fit: cover;
}
[data-design="a"] .fm-stay-panel__cap {
  font-family: var(--fm-font-hand); font-size: 1rem; line-height: 1.55;
  color: var(--fm-ink-soft); padding: var(--fm-gutter) var(--fm-rule-gap) 0;
}
[data-design="a"] .fm-tag {
  display: inline-block; font-family: var(--fm-font-tag); font-variant: small-caps;
  letter-spacing: .1em; font-size: .8rem; color: var(--fm-botanical);
  border: 1px solid color-mix(in oklab, var(--fm-botanical) 50%, var(--fm-rule));
  border-radius: var(--fm-r-tag); padding: 2px var(--fm-rule-gap);
}
[data-design="a"] .fm-stay-panel__copy {
  display: grid; gap: var(--fm-specimen-pad); align-content: start;
}
[data-design="a"] .fm-stay-panel__title {
  font-family: var(--fm-font-display); font-size: var(--fm-t-h3);
  color: var(--fm-ink); margin: 0; line-height: 1.25;
}
[data-design="a"] .fm-stay-panel__body {
  font-family: var(--fm-font-body); line-height: 1.6; color: var(--fm-ink); margin: 0;
}
[data-design="a"] .fm-stay-panel__list {
  margin: 0; padding: 0; list-style: none;
  display: grid; gap: var(--fm-rule-gap);
  font-family: var(--fm-font-body); color: var(--fm-ink-soft);
}
[data-design="a"] .fm-stay-panel__list li {
  padding-left: var(--fm-gutter); position: relative;
}
[data-design="a"] .fm-stay-panel__list li::before {
  content: "·"; position: absolute; left: 0; color: var(--fm-specimen);
}

/* ── Gallery (Element 5) ─────────────────────────────────────────────────────── */
[data-design="a"] .fm-gallery {
  max-width: 64rem; margin: 0 auto;
  padding: var(--fm-leaf-gap) var(--fm-gutter);
}
[data-design="a"] .fm-gallery__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: var(--fm-ink); margin-bottom: var(--fm-folio);
}
[data-design="a"] .fm-gallery__seq {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--fm-plate-gap);
}
[data-design="a"] .fm-mount {
  opacity: 0; transform: translateY(22px) rotate(.5deg);
  transition: opacity 280ms var(--fm-settle), transform 280ms var(--fm-settle);
}
[data-design="a"] .fm-mount.is-in { opacity: 1; transform: none; }
[data-design="a"] .fm-mount__fig { margin: 0; }
[data-design="a"] .fm-mount__open {
  display: block; width: 100%; padding: var(--fm-rule-gap);
  background: var(--fm-leaf); border: 1px solid var(--fm-rule);
  cursor: zoom-in; box-shadow: var(--fm-lift-tipped);
}
[data-design="a"] .fm-mount__img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 3/2; object-fit: cover;
}
[data-design="a"] .fm-mount__open:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--fm-specimen) 35%, transparent);
}
[data-design="a"] .fm-mount__cap {
  font-family: var(--fm-font-hand); font-size: 1.05rem; line-height: 1.55;
  color: var(--fm-ink); padding: var(--fm-gutter) var(--fm-rule-gap) 0;
  opacity: 0; transition: opacity 280ms var(--fm-settle) .12s;
}
[data-design="a"] .fm-mount.is-in .fm-mount__cap { opacity: 1; }
[data-design="a"] .fm-gallery__book { margin-top: var(--fm-leaf-gap); }

/* Loupe (lightbox) */
[data-design="a"] .fm-loupe[hidden] { display: none; }
[data-design="a"] .fm-loupe {
  position: fixed; inset: 0; z-index: 80;
  display: grid; place-items: center; padding: var(--fm-inset);
}
[data-design="a"] .fm-loupe__backdrop {
  position: absolute; inset: 0;
  background: color-mix(in oklab, var(--fm-ink) 72%, transparent);
}
[data-design="a"] .fm-loupe__fig {
  position: relative; margin: 0;
  max-width: min(92vw, 60rem); max-height: 88vh;
  background: var(--fm-leaf); padding: var(--fm-gutter);
  border: 1px solid var(--fm-rule); box-shadow: var(--fm-lift-loupe);
  transform: scale(.96); opacity: 0;
  transition: transform 280ms var(--fm-settle), opacity 280ms var(--fm-settle);
}
[data-design="a"] .fm-loupe[data-open="true"] .fm-loupe__fig {
  transform: scale(1); opacity: 1;
}
[data-design="a"] .fm-loupe__img {
  display: block; max-width: 100%; max-height: 72vh; object-fit: contain;
}
[data-design="a"] .fm-loupe__cap {
  font-family: var(--fm-font-hand); font-size: 1.05rem;
  color: var(--fm-ink); padding-top: var(--fm-gutter); max-width: 60ch;
}
[data-design="a"] .fm-loupe__close {
  position: absolute; top: -14px; right: -14px;
  width: 44px; height: 44px; border-radius: var(--fm-r-hole);
  border: 1px solid var(--fm-rule); background: var(--fm-leaf);
  color: var(--fm-specimen); font-size: 1.4rem; cursor: pointer;
  box-shadow: var(--fm-lift-tipped);
  display: flex; align-items: center; justify-content: center;
}
[data-design="a"] .fm-loupe__close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--fm-specimen) 40%, transparent);
}

/* ── Field Notes Band (Element 4) ────────────────────────────────────────────── */
[data-design="a"] .fm-grows {
  position: relative; overflow: clip;
  padding: var(--fm-leaf-gap) var(--fm-gutter);
  display: grid; grid-template-columns: 1fr; gap: var(--fm-folio); align-items: center;
}
[data-design="a"] .fm-grows__wash {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .45;
  background: radial-gradient(60% 70% at 75% 50%,
    color-mix(in oklab, var(--fm-botanical) 22%, transparent), transparent 72%);
  animation: fm-wash-bloom 20s ease-in-out infinite alternate;
  animation-play-state: paused;
}
[data-design="a"] .fm-grows__inner {
  position: relative; z-index: 1; max-width: 60ch;
}
[data-design="a"] .fm-grows__title {
  font-family: var(--fm-font-display); font-size: clamp(1.6rem, 4vw, 2.2rem);
  color: var(--fm-ink); margin: var(--fm-rule-gap) 0;
}
[data-design="a"] .fm-grows__body {
  font-family: var(--fm-font-body); line-height: 1.6; color: var(--fm-ink);
}
[data-design="a"] .fm-grows__species {
  list-style: none; margin: var(--fm-specimen-pad) 0 0; padding: 0;
  display: grid; gap: var(--fm-rule-gap);
  font-family: var(--fm-font-hand); color: var(--fm-ink-soft);
}
[data-design="a"] .fm-grows__sprig {
  position: relative; z-index: 1;
  width: clamp(120px, 26vw, 200px); max-width: 100%; height: auto;
  justify-self: center;
}
[data-design="a"] .fm-grows__sprig path {
  stroke-dasharray: 420; stroke-dashoffset: 420;
  transition: stroke-dashoffset 2s var(--fm-settle);
}
[data-design="a"] .fm-grows__sprig .fm-sprig__bud {
  opacity: 0; transition: opacity 280ms var(--fm-settle) .9s;
}
[data-design="a"] .fm-grows.is-in .fm-grows__sprig path { stroke-dashoffset: 0; }
[data-design="a"] .fm-grows.is-in .fm-grows__sprig .fm-sprig__bud { opacity: 1; }
[data-design="a"] .fm-grows.is-in .fm-grows__sprig {
  transform-origin: 100px 312px;
  animation: fm-sprig-stir 16s ease-in-out 2s infinite;
}
[data-design="a"] .fm-grows.is-in .fm-grows__wash {
  animation-play-state: running;
}
@keyframes fm-sprig-stir {
  0%,100% { transform: rotate(-1.2deg); }
  50%      { transform: rotate(1.4deg); }
}
@keyframes fm-wash-bloom {
  from { opacity: .28; transform: scale(.96); }
  to   { opacity: .5;  transform: scale(1.04); }
}

/* ── What's Nearby ─────────────────────────────────────────────────────────── */
[data-design="a"] .fm-nearby {
  padding: var(--fm-spread) var(--fm-gutter);
  max-width: 72rem; margin: 0 auto;
}
[data-design="a"] .fm-nearby__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: var(--fm-ink); margin: 0 0 var(--fm-folio); line-height: 1.12;
}
[data-design="a"] .fm-nearby__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--fm-folio);
}
[data-design="a"] .fm-nearby__item {
  border-top: 1px solid var(--fm-rule); padding-top: var(--fm-gutter);
  display: grid; gap: var(--fm-rule-gap);
}
[data-design="a"] .fm-nearby__dist {
  font-family: var(--fm-font-mono); font-size: .8rem;
  letter-spacing: .02em; color: var(--fm-specimen);
}
[data-design="a"] .fm-nearby__name {
  font-family: var(--fm-font-display); font-size: var(--fm-t-h3);
  color: var(--fm-ink); margin: 0;
}
[data-design="a"] .fm-nearby__body {
  font-family: var(--fm-font-body); line-height: 1.6;
  color: var(--fm-ink); max-width: 60ch; margin: 0;
}

/* ── Host ────────────────────────────────────────────────────────────────────── */
[data-design="a"] .fm-host {
  background: var(--fm-leaf); border-top: 1px solid var(--fm-rule);
  border-bottom: 1px solid var(--fm-rule);
  padding: var(--fm-spread) var(--fm-gutter);
}
[data-design="a"] .fm-host__inner {
  max-width: 72rem; margin: 0 auto;
}
[data-design="a"] .fm-host__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: var(--fm-ink); margin: 0 0 var(--fm-specimen-pad);
}
[data-design="a"] .fm-host__body {
  font-family: var(--fm-font-body); line-height: 1.6;
  color: var(--fm-ink); max-width: 60ch; margin: 0 0 var(--fm-folio);
}
[data-design="a"] .fm-host__reviews {
  display: grid; gap: var(--fm-inset);
}
@media (min-width: 640px) {
  [data-design="a"] .fm-host__reviews {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  [data-design="a"] .fm-host__reviews {
    grid-template-columns: repeat(4, 1fr);
  }
}
[data-design="a"] .fm-review {
  margin: 0; padding: var(--fm-specimen-pad);
  background: var(--fm-paper); border: 1px solid var(--fm-rule);
  box-shadow: var(--fm-lift-tipped);
  display: grid; gap: var(--fm-rule-gap);
}
[data-design="a"] .fm-review p {
  font-family: var(--fm-font-hand); font-size: 1rem; line-height: 1.55;
  color: var(--fm-ink); margin: 0;
}
[data-design="a"] .fm-review cite {
  font-family: var(--fm-font-tag); font-variant: small-caps; font-style: normal;
  letter-spacing: .08em; font-size: var(--fm-t-cap); color: var(--fm-ink-soft);
}

/* ── Closing CTA ─────────────────────────────────────────────────────────────── */
[data-design="a"] .fm-closing {
  padding: var(--fm-spread) var(--fm-gutter);
  text-align: center; border-top: 1px solid var(--fm-rule);
}
[data-design="a"] .fm-closing__inner {
  max-width: 54rem; margin: 0 auto;
  display: grid; justify-items: center; gap: var(--fm-specimen-pad);
}
[data-design="a"] .fm-closing__title {
  font-family: var(--fm-font-display); font-size: clamp(1.8rem, 5vw, 2.8rem);
  line-height: 1.12; color: var(--fm-ink); margin: 0;
}
[data-design="a"] .fm-closing__sub {
  font-family: var(--fm-font-body); color: var(--fm-ink-soft); margin: 0; max-width: 50ch;
}

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (min-width: 768px) {
  [data-design="a"] .fm-grows {
    grid-template-columns: 1.4fr .6fr;
  }
  [data-design="a"] .fm-nearby__list {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 640px) {
  [data-design="a"] .fm-stay-panel:not([hidden]) {
    grid-template-columns: 1fr;
  }
  [data-design="a"] .fm-facts__item {
    grid-template-columns: 1fr;
    gap: var(--fm-hair);
  }
  [data-design="a"] .fm-mount__img { aspect-ratio: 4/5; }
}

@media (max-width: 560px) {
  [data-design="a"] .fm-header__bar {
    padding: var(--fm-rule-gap) var(--fm-gutter);
  }
  [data-design="a"] .fm-logo { font-size: 1.2rem; }
  [data-design="a"] .fm-stays  { padding: var(--fm-leaf-gap) var(--fm-gutter); }
  [data-design="a"] .fm-story  { padding: var(--fm-leaf-gap) var(--fm-gutter); }
  [data-design="a"] .fm-nearby { padding: var(--fm-leaf-gap) var(--fm-gutter); }
  [data-design="a"] .fm-host   { padding: var(--fm-leaf-gap) var(--fm-gutter); }
  [data-design="a"] .fm-closing { padding: var(--fm-leaf-gap) var(--fm-gutter); }
}

/* ── Reduced motion ──────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .fm-header__wash { animation: none; }
  [data-design="a"] .fm-header__rule { animation: none; opacity: .7; transform: scaleX(1); }
  [data-design="a"] .fm-index__sheet,
  [data-design="a"] .fm-index__backdrop,
  [data-design="a"] .fm-burger__line { transition: none; }
  [data-design="a"] .fm-seal__mark { animation: none; }
  [data-design="a"] .fm-seal,
  [data-design="a"] .fm-seal__label::after { transition: none; }
  [data-design="a"] .fm-pointer__line { transition: none; stroke-dashoffset: 0; }
  [data-design="a"] .fm-pointer.is-in .fm-pointer__seed { animation: none; }
  [data-design="a"] .fm-pointer__label { transition: none; opacity: 1; }
  [data-design="a"] .fm-mount { transition: none; opacity: 1; transform: none; }
  [data-design="a"] .fm-mount__cap { transition: none; opacity: 1; }
  [data-design="a"] .fm-loupe__fig { transition: none; transform: none; opacity: 1; }
  [data-design="a"] .fm-grows__sprig path { transition: none; stroke-dashoffset: 0; }
  [data-design="a"] .fm-grows__sprig .fm-sprig__bud { transition: none; opacity: 1; }
  [data-design="a"] .fm-grows.is-in .fm-grows__sprig { animation: none; }
  [data-design="a"] .fm-grows__wash { animation: none; }
}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="a"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="a"] [data-mf-role="cta"] { opacity: 1 !important; }
