.proposal-feature {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: .8rem 2rem;
  margin-block: 0 1.1rem;
  padding: 1rem clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid #cbd8ce;
  border-left: 4px solid #a98a50;
  border-radius: .65rem;
  background: #e7eee5;
}
.proposal-feature h2 {
  font: 600 clamp(1.12rem, 2.1vw, 1.35rem)/1.5 var(--serif);
}
.proposal-feature p:not(.proposal-label) {
  margin-top: .18rem;
  font-size: .9375rem;
}
.proposal-feature a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
}
.proposal-label {
  margin-bottom: .36rem;
  color: #755628;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .065em;
}
.proposal-hero {
  background: #173a30;
  color: #fffcf2;
}
.proposal-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr);
  gap: clamp(1.4rem, 4vw, 4rem);
  align-items: center;
  padding-block: clamp(1.6rem, 4.8vw, 4.4rem);
}
.proposal-hero .proposal-label {
  color: #f0d69e;
}
.proposal-crumb, .proposal-byline, .proposal-links {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .28rem .8rem;
}
.proposal-crumb {
  margin-bottom: clamp(1.2rem, 3vw, 2rem);
  font-size: .875rem;
}
.proposal-hero a {
  color: inherit;
}
.proposal-hero h1 {
  margin: .48rem 0 .72rem;
  font: 600 clamp(1.8rem, 3.65vw, 3.15rem)/1.34 var(--serif);
  letter-spacing: .02em;
}
.proposal-subtitle {
  font-size: clamp(1rem, 1.75vw, 1.25rem);
  font-weight: 650;
}
.proposal-lead {
  max-width: 42rem;
  margin-top: 1rem;
  line-height: 1.9;
  color: #ecf2e9;
}
.proposal-byline {
  margin-top: 1.15rem;
  color: #f0eee0;
  font-size: .875rem;
}
.proposal-byline a {
  font-size: 1rem;
  font-weight: 700;
}
.proposal-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.3rem;
}
.proposal-hero-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .5rem .85rem;
  border: 1px solid #d6e0d6;
  border-radius: .4rem;
  font-weight: 700;
  text-decoration: none;
}
.proposal-hero-actions a:first-child {
  border-color: #f0d69e;
  background: #f0d69e;
  color: #173a30;
}
.proposal-hero-actions a:hover {
  text-decoration: underline;
}
.proposal-figure {
  min-width: 0;
  margin: 0;
}
.proposal-figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #dce5d9;
}
.proposal-hero .proposal-figure img {
  aspect-ratio: 5 / 4;
  border-radius: .8rem;
}
.proposal-figure figcaption {
  margin-top: .46rem;
  font-size: .875rem;
  line-height: 1.55;
  color: var(--sub);
}
.proposal-hero .proposal-figure figcaption {
  color: #e8eee4;
}
.proposal-figure figcaption > span {
  display: block;
}
.proposal-content {
  max-width: 1120px;
  padding-block: clamp(1.3rem, 3.3vw, 2.6rem) 3rem;
}
.proposal-toc {
  padding: 1rem clamp(1rem, 3vw, 1.55rem);
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--white);
}
.proposal-toc p {
  color: var(--forest);
  font-weight: 700;
}
.proposal-toc ol {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 2.2rem;
  margin: .35rem 0 0;
  padding-inline-start: 1.3em;
}
.proposal-toc li {
  padding-inline-start: .15rem;
}
.proposal-toc a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.proposal-section {
  margin-top: clamp(1.65rem, 4.5vw, 3.5rem);
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 1px solid var(--line);
  scroll-margin-top: 1rem;
}
.proposal-section h2 {
  margin-bottom: .8rem;
  color: var(--forest);
  font: 600 clamp(1.42rem, 2.8vw, 2.12rem)/1.42 var(--serif);
}
.proposal-section h3 {
  color: var(--forest);
  font-size: 1.17rem;
  line-height: 1.55;
}
.proposal-section > p:not(.proposal-label) {
  max-width: 52rem;
}
.proposal-section p + p {
  margin-top: .7rem;
}
.proposal-source, .proposal-links {
  font-size: .9375rem;
}
.proposal-source, .proposal-note {
  color: var(--sub);
}
.proposal-resources {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: 1.4rem 2rem;
  align-items: center;
}
.proposal-resources .proposal-figure img {
  border-radius: .75rem;
}
.proposal-family-plan {
  margin-top: 1.25rem;
  padding: clamp(1rem, 2.8vw, 1.7rem);
  border: 1px solid var(--line);
  border-radius: .72rem;
  background: var(--white);
}
.proposal-family-indoor, .proposal-family-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem clamp(1rem, 3vw, 2rem);
}
.proposal-family-indoor {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: start;
}
.proposal-family-fields, .proposal-family-related {
  margin-top: 1rem;
}
.proposal-family-plan :is(h3, h4) + p {
  margin-top: .42rem;
}
.proposal-family-plan h4 {
  color: var(--forest);
  font-size: 1.0625rem;
  line-height: 1.55;
}
.proposal-family-plan figure + h4 {
  margin-top: .85rem;
}
.proposal-family-plan .proposal-figure img {
  border-radius: .5rem;
}
.proposal-family-plan .proposal-callout {
  margin-bottom: 0;
}
.proposal-family-plan .proposal-links {
  gap: .45rem .8rem;
}
.proposal-compare, .proposal-steps {
  margin: 1.15rem 0;
  padding: 0;
  list-style: none;
}
.proposal-compare {
  border: 1px solid var(--line);
  border-radius: .72rem;
  overflow: hidden;
  background: var(--white);
}
.proposal-compare li {
  padding: .85rem clamp(.8rem, 2.7vw, 1.2rem);
}
.proposal-compare li + li {
  border-top: 1px solid var(--line);
}
.proposal-compare dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin-top: .55rem;
}
.proposal-compare dl div {
  border-radius: .4rem;
  padding: .52rem .75rem;
  background: #f3ede1;
}
.proposal-compare dl div + div {
  background: #e7efe7;
}
.proposal-compare dt {
  font-size: .875rem;
  font-weight: 700;
}
.proposal-compare dd {
  margin-top: .2rem;
}
.proposal-cases {
  display: grid;
  gap: 1.05rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1.1rem;
}
.proposal-case {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: .72rem;
  background: var(--white);
}
.proposal-case .proposal-figure {
  padding: .75rem .75rem 0;
}
.proposal-case .proposal-figure img {
  border-radius: .45rem;
}
.proposal-case-body {
  padding: .95rem 1.15rem 1.1rem;
}
.proposal-case-body > p + h3 {
  margin: .2rem 0 .38rem;
}
.proposal-case .proposal-label {
  font-size: .875rem;
}
.proposal-case .proposal-links {
  margin-top: .65rem;
}
.proposal-steps p {
  margin-top: .4rem;
}
.proposal-callout {
  margin-block: 1.2rem;
  padding: 1rem clamp(.85rem, 2.5vw, 1.3rem);
  border-left: 3px solid #a28852;
  background: #e7eee5;
}
.proposal-callout p {
  margin-top: .42rem;
}
.proposal-steps li {
  padding: .6rem 0 .75rem clamp(.7rem, 3vw, 1.2rem);
  border-left: 2px solid #9daf9f;
}
.proposal-diagram {
  margin: 1.35rem 0;
  padding: clamp(.85rem, 3vw, 1.55rem);
  border: 1px solid var(--line);
  border-radius: .72rem;
  background: #eef2e9;
  scroll-margin-top: 1rem;
}
.proposal-diagram figcaption {
  margin-bottom: 1rem;
  color: var(--forest);
}
.proposal-diagram figcaption > * {
  display: block;
}
.proposal-diagram figcaption strong {
  font-size: clamp(1.08rem, 2.1vw, 1.28rem);
  line-height: 1.5;
}
.proposal-model-hub {
  max-width: 39rem;
  margin-inline: auto;
  padding: .9rem clamp(.85rem, 3vw, 1.35rem);
  border-radius: .5rem;
  background: #173a30;
  color: #fffcf2;
}
.proposal-model-hub .proposal-label {
  color: #f0d69e;
}
.proposal-model-hub h3 {
  color: inherit;
}
.proposal-model-hub h3 + p, .proposal-model-roles h3 + p, .proposal-flow h3 + p {
  margin-top: .35rem;
}
.proposal-model-roles, .proposal-flow {
  display: grid;
  gap: .7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.proposal-model-roles {
  position: relative;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-top: 1.45rem;
}
.proposal-model-roles::before {
  position: absolute;
  inset: 0 auto auto 50%;
  height: .72rem;
  border-left: 1px solid #829787;
  content: "";
}
.proposal-model-roles::after {
  position: absolute;
  top: .72rem;
  right: 12%;
  left: 12%;
  border-top: 1px solid #829787;
  content: "";
}
.proposal-model-roles li, .proposal-flow li {
  position: relative;
  min-width: 0;
  padding: .85rem .9rem;
  border: 1px solid var(--line);
  border-radius: .48rem;
  background: var(--white);
}
.proposal-model-roles li::before {
  position: absolute;
  bottom: 100%;
  left: 50%;
  height: .72rem;
  border-left: 1px solid #829787;
  content: "";
}
.proposal-flow {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.proposal-flow .proposal-label {
  display: block;
}
.proposal-flow li + li::before {
  position: absolute;
  top: calc(50% - .2rem);
  right: calc(100% + .45rem);
  width: .42rem;
  height: .42rem;
  border-top: 2px solid #829787;
  border-right: 2px solid #829787;
  transform: rotate(45deg);
  content: "";
}
.proposal-diagram-note {
  margin-top: .65rem;
  color: var(--sub);
  font-size: .9375rem;
}
.proposal-estimate {
  margin: 2rem 0 1.25rem;
  padding-block: 1.35rem .75rem;
  border-top: 2px solid #a28852;
  scroll-margin-top: 1rem;
}
.proposal-estimate > h3 {
  font: 650 clamp(1.35rem, 2.65vw, 2rem)/1.42 var(--serif);
  color: var(--forest);
}
.proposal-estimate-note {
  margin-top: .75rem;
  color: var(--sub);
  font-size: .9375rem;
  line-height: 1.75;
}
.proposal-estimate-note a {
  display: inline-block;
  margin-inline-start: .35em;
}
.proposal-finance-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1.2rem 0;
}
.proposal-finance-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .34rem .8rem;
  border: 1px solid #a8b9ad;
  border-radius: .42rem;
  background: var(--white);
  font-weight: 700;
}
.proposal-finance-flow,
.proposal-finance-note {
  margin: 1.15rem 0;
  padding: clamp(.9rem, 2.75vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: #e7eee5;
}
.proposal-finance-flow figcaption > span,
.proposal-finance-note figcaption > span {
  display: block;
}
.proposal-finance-flow figcaption > strong,
.proposal-finance-note figcaption > strong {
  color: var(--forest);
  font-size: 1.13rem;
  line-height: 1.5;
}
.proposal-finance-flow dl,
.proposal-ops-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
  margin-top: .85rem;
}
.proposal-finance-flow dl > div,
.proposal-ops-notes > div {
  min-width: 0;
  padding: .8rem .95rem;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: var(--white);
}
.proposal-finance-flow dt {
  color: var(--forest);
  font-weight: 700;
}
.proposal-finance-flow dd {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .08rem .65rem;
  margin: .15rem 0 0;
}
.proposal-finance-flow dd strong {
  color: var(--forest);
  font-size: 1.35rem;
}
.proposal-finance-flow dd > span {
  color: var(--sub);
  font-size: .9375rem;
}
.proposal-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.proposal-finance-part {
  margin-top: 1.85rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
  scroll-margin-top: 1rem;
}
.proposal-finance-part > h4 {
  font: 650 clamp(1.15rem, 2.05vw, 1.55rem)/1.45 var(--serif);
  color: var(--forest);
}
.proposal-finance-part h5 {
  font-size: 1.03rem;
  color: var(--forest);
}
.proposal-lodging {
  margin: 1.15rem 0 1.5rem;
  scroll-margin-top: 1rem;
}
.proposal-lodging > h5 {
  font-size: 1.16rem;
}
.proposal-lodging > p {
  margin: .25rem 0 .85rem;
}
.proposal-lodging-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
}
.proposal-lodging-grid .proposal-figure {
  border: 1px solid var(--line);
  border-radius: .6rem;
  background: var(--white);
  overflow: hidden;
}
.proposal-lodging-grid .proposal-figure img {
  aspect-ratio: 4 / 3;
}
.proposal-lodging-grid figcaption {
  margin: 0;
  padding: .75rem .85rem .85rem;
}
.proposal-lodging-grid figcaption > strong {
  display: block;
  color: var(--forest);
  font-size: 1.08rem;
  line-height: 1.45;
}
.proposal-lodging-grid figcaption > span {
  margin-top: .3rem;
}
.proposal-lodging-grid .proposal-lodging-credit {
  margin-top: .5rem;
  padding-top: .45rem;
  border-top: 1px solid var(--line);
  font-size: .875rem;
}
.proposal-bars {
  margin-top: .75rem;
}
.proposal-bars > div {
  display: grid;
  grid-template-columns: 4.5em minmax(0, 1fr);
  align-items: center;
  gap: .5rem;
  padding: .32rem 0;
}
.proposal-bars dd {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 6.5em;
  align-items: center;
  gap: .65rem;
  margin: 0;
  color: var(--forest);
}
.proposal-bars dd strong {
  text-align: right;
}
.proposal-bar {
  height: .75rem;
  border-radius: .15rem;
  background: #436b5c;
}
.bar-full { width: 100%; }
.bar-mid { width: 55%; }
.bar-low { width: 10%; }
.proposal-data {
  width: 100%;
  margin-top: 1.1rem;
  table-layout: fixed;
  border-collapse: collapse;
  background: var(--white);
  font-size: .975rem;
  line-height: 1.6;
}
.proposal-data caption {
  padding-bottom: .5rem;
  color: var(--forest);
  font-size: 1.06rem;
  font-weight: 700;
  text-align: left;
}
.proposal-data th,
.proposal-data td {
  padding: .58rem .75rem;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.proposal-data thead th {
  background: #e7eee5;
  color: var(--forest);
}
.proposal-data tbody th {
  background: #f3ede1;
  font-weight: 650;
}
.proposal-data small {
  display: block;
  color: var(--sub);
  font-size: .91em;
  font-weight: 500;
}
.proposal-data td:nth-child(2),
.proposal-season td:last-child {
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  color: var(--forest);
}
.proposal-season thead th:first-child { width: 40%; }
.proposal-ledger thead th:first-child { width: 30%; }
.proposal-ledger thead th:nth-child(2) { width: 22%; }
.proposal-data tr.proposal-total > * {
  background: #dce9dc;
  color: var(--forest);
}
.proposal-total td:nth-child(2) {
  font-size: 1.05em;
  font-weight: 750;
}
.proposal-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin: .8rem 0;
}
.proposal-metrics div {
  padding: .65rem .8rem;
  border-left: 3px solid #a28852;
  background: var(--white);
}
.proposal-metrics dt {
  color: var(--sub);
}
.proposal-metrics dd {
  color: var(--forest);
  font-size: 1.25rem;
  font-weight: 700;
}
.proposal-participation {
  margin-top: 1.75rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}
.proposal-participation > h3 {
  font-size: clamp(1.28rem, 2.4vw, 1.6rem);
}
.proposal-participation h4 {
  color: var(--forest);
  font-size: 1.0625rem;
  line-height: 1.55;
}
.proposal-recruitment {
  width: 100%;
  margin-top: 1.15rem;
  table-layout: fixed;
  border-collapse: collapse;
  background: var(--white);
}
.proposal-recruitment caption {
  padding-bottom: .55rem;
  color: var(--forest);
  font-weight: 700;
  text-align: left;
}
.proposal-recruitment th,
.proposal-recruitment td {
  padding: .65rem .82rem;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.proposal-recruitment thead th {
  background: #e7eee5;
  color: var(--forest);
}
.proposal-recruitment thead th:first-child {
  width: 20%;
}
.proposal-recruitment tbody th {
  background: #f3ede1;
}
.proposal-mobile-label {
  display: none;
}
.proposal-contact {
  margin-top: 2.25rem;
}
.proposal-note {
  margin-top: 1.2rem;
  font-size: .875rem;
}

@media (max-width: 820px) {
  .proposal-hero-grid, .proposal-resources {
    grid-template-columns: minmax(0, 1fr);
  }
  .proposal-model-roles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: .7rem;
  }
  .proposal-model-roles::before, .proposal-model-roles::after, .proposal-model-roles li::before {
    content: none;
  }
  .proposal-family-indoor, .proposal-family-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .proposal-hero .proposal-figure img {
    aspect-ratio: 16 / 9;
  }
}
@media (max-width: 610px) {
  .proposal-cases, .proposal-compare dl, .proposal-model-roles, .proposal-flow, .proposal-metrics {
    grid-template-columns: minmax(0, 1fr);
  }
  .proposal-flow li + li::before {
    top: auto;
    right: auto;
    bottom: calc(100% + .52rem);
    left: calc(50% - .2rem);
    transform: rotate(135deg);
  }
  .proposal-recruitment, .proposal-recruitment caption, .proposal-recruitment tbody,
  .proposal-recruitment tr, .proposal-recruitment tbody th, .proposal-recruitment td {
    display: block;
  }
  .proposal-recruitment {
    background: transparent;
  }
  .proposal-recruitment thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  .proposal-recruitment tbody tr {
    margin-bottom: .7rem;
    border: 1px solid var(--line);
    border-radius: .45rem;
    background: var(--white);
  }
  .proposal-recruitment tbody th, .proposal-recruitment td {
    border: 0;
  }
  .proposal-recruitment td + td {
    border-top: 1px solid var(--line);
  }
  .proposal-mobile-label {
    display: block;
    color: var(--forest);
  }
  .proposal-toc ol {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .proposal-finance-flow dl, .proposal-ops-notes {
    grid-template-columns: minmax(0, 1fr);
  }
  .proposal-lodging-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .proposal-data th, .proposal-data td {
    padding: .5rem .55rem;
  }
  .proposal-season {
    font-size: .9375rem;
  }
  .proposal-ledger, .proposal-ledger caption, .proposal-ledger tbody {
    display: block;
  }
  .proposal-ledger {
    background: transparent;
  }
  .proposal-ledger thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  .proposal-data:not(.proposal-season) thead {
    white-space: nowrap;
  }
  .proposal-ledger tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: .45rem;
    border: 1px solid var(--line);
    border-radius: .4rem;
    background: var(--white);
  }
  .proposal-ledger tbody th, .proposal-ledger td {
    border: 0;
  }
  .proposal-ledger tbody th {
    border-top-left-radius: .35rem;
  }
  .proposal-ledger td:nth-child(2) {
    border-top-right-radius: .35rem;
    text-align: right;
  }
  .proposal-ledger td:last-child {
    grid-column: 1 / -1;
    border-top: 1px solid var(--line);
    border-radius: 0 0 .35rem .35rem;
  }
  .proposal-bars dd {
    grid-template-columns: minmax(0, 1fr) 5.7em;
    gap: .4rem;
  }
}
