/* Hallmark · genre: editorial · tone: trustworthy and direct · anchor: garden green · macrostructure: Narrative Workflow · theme: Garden · enrichment: none · nav: N6 · footer: Ft1 */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass (46–50) · slop: pass (51–60) · mobile: pass (36, 59, 61–69) */
* { box-sizing: border-box; }

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  background: var(--color-paper);
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.58;
}

[hidden] { display: none !important; }
button, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }

:focus-visible {
  outline: var(--rule-heavy) solid var(--color-focus);
  outline-offset: var(--rule-heavy);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.masthead,
main,
.footer-mast {
  width: min(calc(100% - (2 * var(--space-md))), 74rem);
  margin-inline: auto;
}

.masthead {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  min-height: 5.25rem;
  border-bottom: var(--rule-heavy) solid var(--color-ink);
}

.wordmark {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.edition {
  margin: 0 0 0 var(--space-md);
  color: var(--color-leaf);
  font-family: var(--font-display);
  font-style: italic;
}

.masthead nav {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--space-lg);
  border-top: var(--rule-thin) solid var(--color-rule);
}

.masthead nav a,
.jump-link,
.text-button,
details a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  text-decoration: underline;
  text-decoration-thickness: var(--rule-thin);
  text-underline-offset: var(--rule-heavy);
  white-space: nowrap;
}

.masthead nav a {
  color: var(--color-ink-soft);
  font-size: var(--text-sm);
}

.masthead a:hover,
.jump-link:hover,
.text-button:hover,
details a:hover { color: var(--color-leaf); }

.masthead a:active,
.jump-link:active,
.text-button:active,
details a:active { color: var(--color-leaf-dark); }

.hero {
  display: grid;
  gap: var(--space-lg);
  padding-block: var(--space-2xl) var(--space-3xl);
  border-bottom: var(--rule-thin) solid var(--color-rule-strong);
}

.kicker,
.eyebrow,
.section-mast > p {
  margin: 0;
  color: var(--color-leaf);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h1, h2, h3, p, blockquote, dd { overflow-wrap: anywhere; }
h1, h2, h3 { min-width: 0; font-family: var(--font-display); letter-spacing: -0.02em; }

h1 {
  max-width: 18ch;
  margin: 0;
  font-size: var(--text-display);
  line-height: 0.99;
  font-weight: 600;
}

.hero__copy {
  max-width: 61ch;
  margin: 0;
  color: var(--color-ink-soft);
  font-size: var(--text-md);
}

.jump-link {
  width: max-content;
  gap: var(--space-sm);
  font-weight: 600;
}

.checker,
.results,
.measure-index,
.limits { padding-block: var(--space-2xl); }

.assessment-entry {
  display: grid;
  gap: var(--space-lg);
  margin-block: var(--space-lg);
  padding: var(--space-lg);
  border: var(--rule-heavy) solid var(--color-ink);
  background: var(--color-clay-light);
}

.assessment-entry h2 { margin: 0; font-size: var(--text-xl); line-height: 1.05; }
.assessment-entry p:not(.kicker) { max-width: 58ch; margin: var(--space-xs) 0 0; color: var(--color-ink-soft); }
.assessment-entry .primary-button { width: 100%; justify-content: center; }

.section-mast {
  display: grid;
  gap: var(--space-xs);
  margin-block-end: var(--space-xl);
}

.section-mast h2,
.results__heading h2 {
  margin: 0;
  font-size: var(--text-2xl);
  line-height: 1.08;
}

#claim-form {
  border-top: var(--rule-heavy) solid var(--color-ink);
}

.workflow-step {
  min-width: 0;
  margin: 0;
  padding: var(--space-xl) 0;
  border: 0;
  border-bottom: var(--rule-thin) solid var(--color-rule-strong);
}

.workflow-step legend,
.step-label {
  width: 100%;
  margin: 0 0 var(--space-lg);
  padding: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
}

.workflow-step legend span,
.step-label span {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  margin-inline-end: var(--space-sm);
  place-items: center;
  border: var(--rule-thin) solid var(--color-ink);
  border-radius: 50%;
  font-family: var(--font-body);
  font-size: var(--text-sm);
}

textarea,
select {
  width: 100%;
  border: var(--rule-thin) solid var(--color-rule-strong);
  border-radius: var(--radius-small);
  background: var(--color-white);
  color: var(--color-ink);
  outline: var(--rule-heavy) solid transparent;
  outline-offset: var(--rule-thin);
  transition: border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}

textarea {
  min-height: 13rem;
  padding: var(--space-lg);
  resize: vertical;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  line-height: 1.45;
}

select {
  min-height: 48px;
  padding-inline: var(--space-sm) var(--space-xl);
}

textarea:hover,
select:hover { border-color: var(--color-ink-soft); }
textarea:active,
select:active { border-color: var(--color-leaf); }
textarea:focus-visible,
select:focus-visible { border-color: var(--color-focus); outline-color: var(--color-focus); box-shadow: 0 0 0 var(--space-3xs) var(--color-paper); }
textarea:disabled,
select:disabled { cursor: not-allowed; background: var(--color-paper-soft); color: var(--color-muted); opacity: 0.72; }
textarea[aria-invalid="true"],
select[aria-invalid="true"] { border-color: var(--color-clay); box-shadow: 0 0 0 var(--space-3xs) var(--color-clay-light); }

.field-foot {
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  margin-block-start: var(--space-xs);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.field-foot p { margin: 0; }
.field-foot span { flex: none; font-family: var(--font-body); font-size: var(--text-xs); }

.area-grid { display: grid; gap: var(--space-lg); }
.field { display: grid; gap: var(--space-xs); }
.field label { font-weight: 600; }
.service-note { min-height: 1lh; max-width: 68ch; margin: var(--space-md) 0 0; color: var(--color-muted); font-size: var(--text-sm); }

.text-button {
  margin-block-start: var(--space-xs);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-ink);
  cursor: pointer;
}

.text-button:disabled { cursor: not-allowed; color: var(--color-muted); opacity: 0.65; }

.workflow-step--action {
  display: grid;
  gap: var(--space-lg);
}

.workflow-step--action p { margin: 0; color: var(--color-muted); }
.workflow-step--action .step-label { margin-block-end: var(--space-xs); color: var(--color-ink); }

.primary-button,
.secondary-button {
  min-height: 48px;
  border: var(--rule-heavy) solid var(--color-ink);
  border-radius: var(--radius-small);
  padding-inline: var(--space-lg);
  cursor: pointer;
  font-weight: 600;
  white-space: nowrap;
  transition: background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}

a.primary-button {
  width: max-content;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.primary-button { background: var(--color-leaf); color: var(--color-leaf-ink); border-color: var(--color-leaf-dark); }
.primary-button:hover { background: var(--color-leaf-dark); }
.primary-button:active,
.secondary-button:active { transform: translateY(1px); }
.primary-button:focus-visible,
.secondary-button:focus-visible { outline-color: var(--color-focus); box-shadow: 0 0 0 var(--space-2xs) var(--color-paper); }
.primary-button:disabled,
.secondary-button:disabled { cursor: not-allowed; opacity: 0.58; transform: none; }
.primary-button[data-state="loading"] { background: var(--color-ink-soft); }
.primary-button[data-state="error"] { border-color: var(--color-clay); background: var(--color-clay); color: var(--color-leaf-ink); }
.secondary-button[data-state="error"] { border-color: var(--color-clay); color: var(--color-clay); }
.primary-button[data-state="success"] { border-color: var(--color-leaf-dark); background: var(--color-leaf-dark); color: var(--color-leaf-ink); }
.secondary-button[data-state="success"] { border-color: var(--color-leaf); color: var(--color-leaf); }

.secondary-button { background: transparent; color: var(--color-ink); }
.secondary-button:hover { background: var(--color-paper-soft); }

.results { border-top: var(--rule-heavy) solid var(--color-ink); }
.results__heading { display: grid; gap: var(--space-lg); align-items: end; }
.result-count { margin: 0; color: var(--color-muted); font-family: var(--font-body); font-size: var(--text-sm); }
.result-banner { margin-block: var(--space-xl); padding: var(--space-md); border-block: var(--rule-heavy) solid var(--color-blue); background: var(--color-blue-light); font-weight: 600; }
.result-banner[data-status="changes_needed"] { border-block-color: var(--color-clay); background: var(--color-clay-light); }
.result-banner[data-status="supported"] { border-block-color: var(--color-leaf); background: var(--color-leaf-light); }

.finding-list { margin: 0; padding: 0; list-style: none; border-top: var(--rule-thin) solid var(--color-rule-strong); }
.finding { display: grid; gap: var(--space-md); padding-block: var(--space-xl); border-bottom: var(--rule-thin) solid var(--color-rule-strong); }
.finding__mast { display: flex; gap: var(--space-md); align-items: center; color: var(--color-muted); font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; }
.finding__mast strong { color: var(--color-ink); }
.finding--supported .finding__mast strong { color: var(--color-leaf); }
.finding--needs_edit .finding__mast strong { color: var(--color-clay); }
.finding--needs_context .finding__mast strong { color: var(--color-blue); }
.finding__sentence { margin: 0; color: var(--color-muted); font-family: var(--font-display); font-style: italic; }
.finding h3 { max-width: 30ch; margin: 0; font-size: var(--text-xl); line-height: 1.12; }
.finding__reason { max-width: 68ch; margin: 0; color: var(--color-ink-soft); }
.finding__suggestion { padding: var(--space-lg); border-block-start: var(--rule-heavy) solid var(--color-sun); background: var(--color-paper-soft); }
.finding__suggestion span { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.finding__suggestion p { margin: var(--space-xs) 0 0; font-family: var(--font-display); font-size: var(--text-md); }

details { max-width: 46rem; padding-block-start: var(--space-xs); }
details summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; }
details summary:hover { color: var(--color-leaf); }
details summary:active { color: var(--color-leaf-dark); }
details dl { margin: var(--space-sm) 0 0; }
details dl div { display: grid; gap: var(--space-2xs); padding-block: var(--space-xs); border-bottom: var(--rule-thin) solid var(--color-rule); }
details dt { color: var(--color-muted); font-size: var(--text-sm); }
details dd { margin: 0; }

.corrected { display: grid; gap: var(--space-xl); margin-block-start: var(--space-2xl); padding: var(--space-xl); border: var(--rule-heavy) solid var(--color-ink); background: var(--color-paper-soft); box-shadow: var(--space-xs) var(--space-xs) 0 var(--color-shadow); }
.corrected h3 { margin: var(--space-xs) 0 0; font-size: var(--text-xl); }
.corrected blockquote { margin: 0; font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.45; }
.button-row { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.payment-note { min-height: 1lh; max-width: 68ch; margin: calc(-1 * var(--space-md)) 0 0; color: var(--color-muted); font-size: var(--text-sm); }
.result-offers { display: grid; border-top: var(--rule-heavy) solid var(--color-ink); }
.result-offers article { display: grid; align-content: start; gap: var(--space-sm); padding-block: var(--space-lg); border-bottom: var(--rule-thin) solid var(--color-rule-strong); }
.result-offers h4 { margin: 0; font-family: var(--font-display); font-size: var(--text-lg); }
.result-offers article > p:not(.offer-price, .studio-note) { min-height: 3lh; margin: 0; color: var(--color-ink-soft); }
.result-offers button { width: 100%; }
.offer-price { margin: 0; color: var(--color-leaf-dark); font-family: var(--font-mono); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.04em; }
.studio-note { min-height: 2lh; margin: 0; color: var(--color-muted); font-size: var(--text-sm); }

.offer-sheet { padding-block: var(--space-2xl); border-top: var(--rule-thin) solid var(--color-rule-strong); }
.offer-sheet__intro { max-width: 62ch; margin: calc(-1 * var(--space-lg)) 0 var(--space-xl); color: var(--color-ink-soft); }
.offer-sheet__grid { display: grid; border-top: var(--rule-heavy) solid var(--color-ink); }
.offer-sheet__grid article { display: grid; gap: var(--space-xs); padding-block: var(--space-lg); border-bottom: var(--rule-thin) solid var(--color-rule); }
.offer-sheet__grid h3 { margin: 0; font-size: var(--text-lg); }
.offer-sheet__grid article > p:not(.offer-price) { margin: 0; color: var(--color-ink-soft); }
.offer-sheet__foot { max-width: 68ch; margin: var(--space-lg) 0 0; color: var(--color-muted); font-size: var(--text-sm); }

.place-entry,
.data-sheet,
.data-notes,
.location-index { padding-block: var(--space-2xl); border-top: var(--rule-thin) solid var(--color-rule-strong); }
.measure-directory { padding-block: var(--space-2xl); border-top: var(--rule-thin) solid var(--color-rule-strong); }
.measure-directory ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.measure-directory a { display: flex; min-height: 48px; align-items: center; padding: var(--space-sm) var(--space-md); border: var(--rule-thin) solid var(--color-rule-strong); background: var(--color-paper-raised); font-weight: 600; }
.measure-directory a:hover { border-color: var(--color-ink); }
.place-entry__intro { max-width: 63ch; margin: calc(-1 * var(--space-lg)) 0 var(--space-xl); color: var(--color-ink-soft); }
.place-entry ul,
.location-index ul { margin: 0 0 var(--space-lg); padding: 0; list-style: none; border-top: var(--rule-heavy) solid var(--color-ink); }
.place-entry li,
.location-index li { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-bottom: var(--rule-thin) solid var(--color-rule); }
.place-entry li a,
.location-index li a,
.footer-mast a { width: max-content; min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; white-space: nowrap; }
.location-index li span { color: var(--color-muted); font-size: var(--text-sm); }
.metric-hub-list li span strong { color: var(--color-ink); font-variant-numeric: tabular-nums; }
.location-group + .location-group { margin-block-start: var(--space-2xl); }
.location-group h3 { margin: 0 0 var(--space-sm); color: var(--color-leaf-dark); font-family: var(--font-mono); font-size: var(--text-sm); letter-spacing: 0.04em; text-transform: uppercase; }

.data-hero { display: grid; gap: var(--space-lg); padding-block: var(--space-2xl) var(--space-3xl); border-bottom: var(--rule-heavy) solid var(--color-ink); }
.data-hero h1 { max-width: 21ch; }
.data-hero > p:not(.kicker) { max-width: 62ch; margin: 0; color: var(--color-ink-soft); font-size: var(--text-md); }
.data-cta { margin-block-start: var(--space-sm); }
.data-sheet dl { margin: 0; border-top: var(--rule-heavy) solid var(--color-ink); }
.data-row { display: grid; gap: var(--space-md); padding-block: var(--space-lg); border-bottom: var(--rule-thin) solid var(--color-rule-strong); }
.data-row dt,
.data-row dd { display: grid; gap: var(--space-2xs); margin: 0; }
.data-row dt strong { font-family: var(--font-display); font-size: var(--text-lg); }
.data-row dt span,
.data-row dd span { color: var(--color-muted); font-size: var(--text-sm); }
.data-row dd > strong { font-family: var(--font-body); font-size: var(--text-lg); font-variant-numeric: tabular-nums; }
.data-row dd a { width: max-content; min-height: 44px; display: inline-flex; align-items: center; font-size: var(--text-sm); font-weight: 600; white-space: nowrap; }
.data-notes { display: grid; gap: var(--space-lg); }
.data-notes .section-mast { margin-block-end: 0; }
.data-notes > p { max-width: 68ch; margin: 0; color: var(--color-ink-soft); }
.data-notes blockquote { max-width: 50rem; margin: 0; padding: var(--space-lg) 0; border-block: var(--rule-heavy) solid var(--color-ink); font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.45; }
.metric-proof { display: grid; gap: var(--space-xl); padding-block: var(--space-2xl); border-bottom: var(--rule-thin) solid var(--color-rule-strong); }
.metric-proof h2 { margin: var(--space-xs) 0 0; font-size: clamp(2.75rem, 8vw, 5.5rem); font-variant-numeric: tabular-nums; }
.metric-proof > div > p:last-child { margin: var(--space-xs) 0 0; color: var(--color-muted); }
.metric-proof dl { margin: 0; border-top: var(--rule-heavy) solid var(--color-ink); }
.metric-proof dl div { display: grid; gap: var(--space-2xs); padding-block: var(--space-md); border-bottom: var(--rule-thin) solid var(--color-rule); }
.metric-proof dt { color: var(--color-muted); font-size: var(--text-sm); }
.metric-proof dd { margin: 0; }

.policy-page { max-width: 48rem; padding-block: var(--space-2xl) var(--space-3xl); }
.policy-page h1 { margin-block-end: var(--space-2xl); }
.policy-page h2 { margin: var(--space-xl) 0 var(--space-xs); padding-block-start: var(--space-md); border-top: var(--rule-thin) solid var(--color-rule-strong); font-size: var(--text-lg); }
.policy-page p { max-width: 68ch; margin: 0; color: var(--color-ink-soft); }
.policy-page .policy-lede { color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); }

.measure-index { border-top: var(--rule-thin) solid var(--color-rule-strong); }
.measure-index__intro { max-width: 60ch; margin: calc(-1 * var(--space-lg)) 0 var(--space-xl); color: var(--color-ink-soft); }
.measure-list { display: grid; margin: 0; padding: 0; list-style: none; border-top: var(--rule-heavy) solid var(--color-ink); }
.measure-list li { display: grid; gap: var(--space-xs); padding-block: var(--space-md); border-bottom: var(--rule-thin) solid var(--color-rule); }
.measure-list strong { font-family: var(--font-display); font-size: var(--text-lg); }
.measure-list span { color: var(--color-muted); font-size: var(--text-sm); }

.limits { border-top: var(--rule-thin) solid var(--color-rule-strong); }
.limits__columns { display: grid; gap: var(--space-xl); }
.limits__columns p { margin: 0; padding-block-start: var(--space-md); border-top: var(--rule-heavy) solid var(--color-leaf); color: var(--color-ink-soft); }

.footer-mast { display: grid; gap: var(--space-md); padding-block: var(--space-xl); border-top: var(--rule-heavy) solid var(--color-ink); }
.footer-mast p { margin: 0; color: var(--color-muted); font-size: var(--text-sm); }
.footer-mast__name { color: var(--color-ink) !important; font-family: var(--font-body); font-weight: 600; letter-spacing: 0.08em; }

@media (min-width: 23.4375rem) {
  .masthead, main, .footer-mast { width: min(calc(100% - (2 * var(--space-lg))), 74rem); }
  .corrected { padding: var(--space-xl); }
}

@media (min-width: 25.875rem) { .field-foot { align-items: baseline; } }

@media (min-width: 48rem) {
  .masthead { grid-template-columns: auto auto 1fr; }
  .masthead nav { grid-column: auto; justify-content: end; border-top: 0; }
  .hero { grid-template-columns: minmax(0, 0.72fr) minmax(16rem, 0.28fr); }
  .hero .kicker, .hero h1 { grid-column: 1; }
  .hero__copy { grid-column: 1; }
  .jump-link { grid-column: 2; grid-row: 2 / 4; align-self: end; }
  .assessment-entry { grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr) auto; align-items: center; padding: var(--space-xl); }
  .assessment-entry .primary-button { width: max-content; }
  .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field--wide { grid-column: 1 / -1; }
  .workflow-step--action { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .results__heading { grid-template-columns: minmax(0, 1fr) auto; }
  .finding { grid-template-columns: minmax(8rem, 0.28fr) minmax(0, 0.72fr); }
  .finding__mast { grid-column: 1; align-self: start; }
  .finding__sentence, .finding h3, .finding__reason, .finding__suggestion, .finding details { grid-column: 2; }
  details dl div { grid-template-columns: minmax(9rem, 0.35fr) minmax(0, 0.65fr); gap: var(--space-md); }
  .measure-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .measure-list li:nth-child(odd) { padding-inline-end: var(--space-lg); }
  .measure-list li:nth-child(even) { padding-inline-start: var(--space-lg); border-inline-start: var(--rule-thin) solid var(--color-rule); }
  .limits__columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .data-row { grid-template-columns: minmax(0, 0.58fr) minmax(0, 0.42fr); }
  .metric-proof { grid-template-columns: minmax(0, 0.44fr) minmax(0, 0.56fr); align-items: start; }
  .data-row dd { justify-items: start; }
  .location-index li { grid-template-columns: minmax(0, 0.65fr) minmax(0, 0.35fr); align-items: center; }
  .result-offers,
  .offer-sheet__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .result-offers article,
  .offer-sheet__grid article { padding-inline: var(--space-lg); border-inline-start: var(--rule-thin) solid var(--color-rule); }
  .result-offers article:first-child,
  .offer-sheet__grid article:first-child { padding-inline-start: 0; border-inline-start: 0; }
  .result-offers article:last-child,
  .offer-sheet__grid article:last-child { padding-inline-end: 0; }
  .footer-mast { grid-template-columns: 1fr 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
