/* DM Sans and Fraunces variable fonts, served from /fonts/ under the SIL Open Font License
   (the license files are in that folder). /fonts/ is cached for a year, so give a replacement
   font file a new name instead of overwriting it. */
@font-face {
  font-family: 'DM Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url(/fonts/dm-sans-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url(/fonts/dm-sans-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/fraunces-vietnamese-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/fraunces-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/fraunces-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@layer reset, base, components, responsive;
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  body,
  h1,
  h2,
  h3,
  p,
  figure {
    margin: 0;
  }
  img,
  svg {
    display: block;
    max-width: 100%;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
  }
  button,
  a,
  input,
  select,
  textarea,
  summary {
    -webkit-tap-highlight-color: transparent;
  }
  [hidden] {
    display: none !important;
  }
}
@layer base {
  :root {
    --paper: #faf8f2;
    --cream: #f2eee3;
    --white: #fffefa;
    --ink: #292d28;
    --muted: #62675d;
    --red: #7e0000;
    --red-dark: #590000;
    --green: #3d5947;
    --gold: #d5a047;
    --line: #deded2;
    --serif: 'Fraunces Variable', Georgia, serif;
    --sans: 'DM Sans Variable', Arial, sans-serif;
  }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 30px;
  }
  body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }
  h1,
  h2,
  h3 {
    line-height: 1.12;
    font-family: var(--serif);
    font-weight: 500;
    text-wrap: balance;
  }
  h1 {
    font-size: clamp(2.8rem, 5.6vw, 5.2rem);
    letter-spacing: -0.055em;
  }
  h2 {
    font-size: clamp(2rem, 3.7vw, 3.4rem);
    letter-spacing: -0.045em;
  }
  h3 {
    font-size: 1.5rem;
    letter-spacing: -0.025em;
  }
  p {
    text-wrap: pretty;
  }
  a {
    color: var(--red);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
  }
  a:hover {
    color: var(--red-dark);
  }
  button,
  summary {
    cursor: pointer;
  }
  :focus-visible {
    outline: 3px solid #967229;
    outline-offset: 5px;
  }
  ::selection {
    background: #e7d7bc;
    color: var(--ink);
  }
  .container {
    width: min(1192px, calc(100% - 80px));
    margin-inline: auto;
  }
  .section {
    padding-block: 96px;
  }
  .eyebrow {
    font-size: 0.71rem;
    font-weight: 750;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--green);
    margin-bottom: 20px;
  }
  .lead {
    font-size: 1.17rem;
    line-height: 1.75;
    color: var(--muted);
    max-width: 640px;
  }
  .text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    font-weight: 650;
    border-bottom: 1px solid currentColor;
    padding-block: 5px;
  }
  .button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 17px;
    border: 1px solid var(--red);
    border-radius: 5px;
    color: white;
    background: var(--red);
    padding: 15px 24px;
    text-decoration: none;
    font-size: 0.91rem;
    font-weight: 650;
    line-height: 1.3;
    transition:
      background 0.18s,
      transform 0.18s;
  }
  .button:hover {
    color: white;
    background: var(--red-dark);
    transform: translateY(-1px);
  }
  .button svg {
    flex-shrink: 0;
  }
  .button-small {
    padding: 12px 17px;
    font-size: 0.8rem;
  }
  .button-outline {
    background: transparent;
    color: var(--red);
  }
  .button-outline:hover {
    background: var(--red);
  }
  .button-light {
    background: var(--paper);
    border-color: var(--paper);
    color: var(--red);
  }
  .button-light:hover {
    color: var(--red);
    background: #e9e2d3;
    border-color: #e9e2d3;
  }
  .button:disabled {
    opacity: 0.6;
    cursor: wait;
  }
  .actions {
    display: flex;
    align-items: center;
    gap: 27px;
    flex-wrap: wrap;
  }
  .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;
  }
  .skip-link {
    position: fixed;
    z-index: 100;
    top: 10px;
    left: 15px;
    padding: 10px 20px;
    background: var(--white);
    transform: translateY(-200%);
  }
  .skip-link:focus {
    transform: none;
  }
}
@layer components {
  .community-bar {
    background: var(--green);
    color: #f4f3e9;
    font-size: 0.69rem;
    letter-spacing: 0.06em;
    padding: 9px 0;
  }
  .community-bar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .community-bar span span {
    margin-left: 10px;
  }
  .site-header {
    background: var(--white);
    border-bottom: 1px solid var(--line);
  }
  .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    min-height: 109px;
  }
  .brand {
    display: block;
    flex-shrink: 0;
    width: 243px;
  }
  .brand img {
    width: 100%;
    height: auto;
  }
  .desktop-navigation {
    display: flex;
    gap: 29px;
    align-items: center;
  }
  .desktop-navigation a {
    text-decoration: none;
    font-size: 0.86rem;
    color: var(--ink);
    padding: 9px 0;
    border-bottom: 2px solid transparent;
  }
  .desktop-navigation a:hover,
  .desktop-navigation a[aria-current] {
    border-color: var(--red);
    color: var(--red);
  }
  .mobile-navigation {
    display: none;
  }
  .hero {
    overflow: hidden;
    border-bottom: 1px solid var(--line);
  }
  .hero-inner {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    align-items: center;
    gap: 20px;
    min-height: 628px;
    padding-block: 50px 65px;
  }
  .hero h1 {
    font-size: clamp(3.2rem, 5.6vw, 5.2rem);
    line-height: 1.035;
    margin-bottom: 26px;
  }
  .hero h1 em {
    display: block;
    font-style: normal;
    color: var(--red);
  }
  .hero .lead {
    max-width: 430px;
    font-size: 1.06rem;
    margin-bottom: 30px;
  }
  .hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .hero .eyebrow::before {
    content: '';
    width: 21px;
    height: 1px;
    background: currentColor;
  }
  .hero-art {
    position: relative;
    padding-top: 5px;
  }
  .idea-illustration {
    width: 100%;
    height: auto;
    overflow: visible;
  }
  .art-caption {
    position: absolute;
    right: 0;
    bottom: 12px;
    font-family: var(--serif);
    color: var(--green);
    font-size: 1.05rem;
    transform: rotate(-5deg);
    line-height: 1.4;
  }
  .art-caption::before {
    content: '↖';
    font-family: var(--sans);
    display: block;
    font-size: 28px;
  }
  .values-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding-block: 30px;
    border-bottom: 1px solid var(--line);
  }
  .values-strip > div {
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: center;
    padding: 0 20px;
    border-right: 1px solid var(--line);
  }
  .values-strip > div:first-child {
    justify-content: flex-start;
    padding-left: 0;
  }
  .values-strip > div:last-child {
    border: 0;
    justify-content: flex-end;
    padding-right: 0;
  }
  .values-strip svg {
    color: var(--red);
    flex-shrink: 0;
  }
  .values-strip span {
    font-size: 0.87rem;
    font-weight: 550;
  }
  .section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 35px;
    margin-bottom: 40px;
  }
  .section-heading .lead {
    max-width: 350px;
    font-size: 0.96rem;
  }
  .impact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-block: 1px solid var(--line);
  }
  .impact-item {
    padding: 32px 33px 34px;
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .impact-item:first-child {
    padding-left: 0;
  }
  .impact-item:last-child {
    border: 0;
    padding-right: 0;
  }
  .impact-icon {
    width: 49px;
    height: 49px;
    border: 1px solid #c9cfbe;
    color: var(--green);
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
  }
  .impact-item h3 {
    font-size: 1.6rem;
    margin-bottom: 13px;
  }
  .impact-item p {
    color: var(--muted);
    font-size: 0.92rem;
    margin-bottom: 25px;
  }
  .impact-meta {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 15px;
    font-size: 0.7rem;
    color: var(--green);
    font-weight: 650;
    margin-top: auto;
    letter-spacing: 0.04em;
  }
  .section-tail {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    margin-top: 26px;
    font-size: 0.88rem;
  }
  .section-tail p {
    color: var(--muted);
  }
  .mission-band {
    background: var(--cream);
    padding-block: 82px;
  }
  .mission-inner {
    display: grid;
    grid-template-columns: 0.85fr 1fr;
    gap: 90px;
    align-items: center;
  }
  .mission-inner h2 {
    max-width: 460px;
  }
  .mission-inner .lead {
    font-size: 1.05rem;
    margin-bottom: 22px;
  }
  .mission-label {
    display: flex;
    gap: 13px;
    align-items: center;
    color: var(--green);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 25px;
    font-weight: 700;
  }
  .mission-points {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
    color: var(--green);
    font-size: 0.82rem;
  }
  .mission-points li {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .get-involved {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }
  .involved-item {
    display: grid;
    grid-template-columns: 55px 1fr;
    gap: 25px;
    border-top: 1px solid var(--line);
    padding-top: 29px;
  }
  .involved-item > svg {
    color: var(--red);
  }
  .involved-item p {
    color: var(--muted);
    margin: 15px 0 20px;
    font-size: 0.95rem;
  }
  .support-banner {
    background: var(--red);
    color: var(--white);
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 45px;
    border-radius: 6px;
    margin-block: 0 88px;
  }
  .support-banner h2 {
    font-size: 2.3rem;
    margin-bottom: 10px;
  }
  .support-banner p {
    color: #f0d9d3;
    font-size: 0.9rem;
  }
  .support-banner .eyebrow {
    color: #edc5b3;
    font-size: 0.64rem;
    margin-bottom: 14px;
  }
  .support-banner > .button {
    margin-left: auto;
    flex-shrink: 0;
  }
  .support-mark {
    padding-right: 5px;
    color: #e6c9b2;
  }
  .site-footer {
    background: #f1f0e7;
    border-top: 1px solid var(--line);
  }
  .footer-main {
    padding-block: 57px 48px;
    display: grid;
    grid-template-columns: 1.45fr 0.8fr 1fr 1fr;
    gap: 45px;
  }
  .footer-intro .brand {
    width: 228px;
    margin: 0 0 20px;
  }
  .footer-intro p {
    font-size: 0.8rem;
    color: var(--muted);
  }
  .footer-main h2 {
    font: 700 0.72rem var(--sans);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 17px;
  }
  .footer-main > div:not(.footer-intro) > a {
    display: flex;
    gap: 6px;
    align-items: center;
    width: fit-content;
    font-size: 0.83rem;
    color: var(--muted);
    text-decoration: none;
    margin-bottom: 8px;
  }
  .footer-main a:hover {
    text-decoration: underline;
  }
  .footer-note {
    border-left: 1px solid #d0d3c5;
    padding-left: 34px;
    color: var(--green);
  }
  .footer-note p {
    font: 500 1.35rem/1.3 var(--serif);
    margin: 12px 0;
  }
  .footer-note span {
    font-size: 0.72rem;
  }
  .footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-block: 22px;
    border-top: 1px solid #d0d3c5;
    font-size: 0.68rem;
    color: var(--muted);
  }
  .page-intro {
    padding-block: 72px 57px;
    border-bottom: 1px solid var(--line);
  }
  .page-intro h1 {
    margin-bottom: 24px;
    max-width: 850px;
  }
  .page-intro .lead {
    max-width: 680px;
  }
  .intro-split {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 60px;
    align-items: center;
  }
  .intro-aside {
    border-left: 1px solid var(--line);
    padding-left: 45px;
  }
  .intro-aside p {
    font: 500 1.6rem/1.4 var(--serif);
    color: var(--green);
  }
  .intro-aside svg {
    margin-bottom: 18px;
    color: var(--red);
  }
  .prose {
    max-width: 720px;
  }
  .prose h2 {
    font-size: 2.1rem;
    margin-block: 43px 18px;
  }
  .prose h2:first-child {
    margin-top: 0;
  }
  .prose h3 {
    margin-block: 27px 13px;
  }
  .prose p + p {
    margin-top: 18px;
  }
  .prose p,
  .prose li {
    color: var(--muted);
  }
  .prose ul,
  .prose ol {
    padding-left: 23px;
  }
  .prose li {
    margin-bottom: 10px;
    padding-left: 5px;
  }
  .two-column {
    display: grid;
    grid-template-columns: 1.5fr 0.8fr;
    gap: 88px;
  }
  .aside-card {
    padding: 32px;
    background: var(--cream);
    border-top: 3px solid var(--green);
    align-self: start;
  }
  .aside-card > svg {
    color: var(--green);
    margin-bottom: 20px;
  }
  .aside-card h2 {
    font-size: 1.8rem;
    margin-bottom: 18px;
  }
  .aside-card p {
    font-size: 0.92rem;
    color: var(--muted);
    margin-bottom: 20px;
  }
  .aside-card .text-link {
    font-size: 0.86rem;
  }
  .download-list {
    margin-top: 25px;
    display: grid;
    gap: 0;
    border-top: 1px solid var(--line);
  }
  .download-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 20px 0;
    text-decoration: none;
    border-bottom: 1px solid var(--line);
  }
  .download-list strong {
    display: block;
    color: var(--ink);
    font-size: 0.94rem;
    font-weight: 600;
  }
  .download-list small {
    display: block;
    color: var(--muted);
    font-size: 0.76rem;
    margin-top: 3px;
  }
  .archive {
    border-top: 1px solid var(--line);
    padding-top: 70px;
  }
  .archive-controls {
    display: flex;
    gap: 18px;
    align-items: flex-end;
    margin-block: 30px 16px;
  }
  .field {
    display: flex;
    flex-direction: column;
    gap: 7px;
  }
  .field label,
  .field-label {
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--ink);
  }
  .field input,
  .field select,
  .field textarea,
  .select-control {
    border: 1px solid #b6baac;
    border-radius: 4px;
    background: var(--white);
    color: var(--ink);
    width: 100%;
    padding: 12px 14px;
    line-height: 1.4;
    min-height: 46px;
  }
  .field input:focus,
  .field select:focus,
  .field textarea:focus {
    border-color: var(--green);
  }
  .field textarea {
    min-height: 100px;
    resize: vertical;
  }
  .field small {
    color: var(--muted);
    font-size: 0.76rem;
  }
  .archive-controls .field:first-child {
    flex: 1;
  }
  .archive-controls .field:last-child {
    min-width: 180px;
  }
  .archive-count {
    font-size: 0.8rem;
    color: var(--muted);
    margin-block: 20px;
  }
  .grant-list {
    border-top: 1px solid var(--line);
  }
  .grant-row {
    display: grid;
    grid-template-columns: 100px 1fr 115px;
    gap: 30px;
    padding-block: 26px;
    border-bottom: 1px solid var(--line);
  }
  .grant-row .grant-date {
    font-size: 0.75rem;
    color: var(--muted);
    padding-top: 5px;
  }
  .grant-row h3 {
    font: 600 1.08rem/1.5 var(--sans);
    letter-spacing: -0.015em;
    margin-bottom: 6px;
  }
  .grant-row p {
    font-size: 0.84rem;
    color: var(--muted);
  }
  .grant-row .grant-description {
    margin-top: 9px;
    max-width: 740px;
  }
  .grant-amount {
    font: 500 1.25rem/1.5 var(--serif);
    text-align: right;
    color: var(--green);
    padding-top: 2px;
  }
  .empty-state {
    padding: 40px 0;
  }
  .event-card {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 45px;
    border-block: 1px solid var(--line);
    padding-block: 35px;
  }
  .event-year {
    background: var(--green);
    color: var(--paper);
    border-radius: 100px 100px 6px 6px;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }
  .event-year span {
    font: 500 3rem var(--serif);
  }
  .event-year small {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.13em;
  }
  .event-card h2 {
    font-size: 2.2rem;
    margin: 8px 0 15px;
  }
  .event-card p {
    color: var(--muted);
    margin-bottom: 18px;
  }
  .event-facts {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
    font-size: 0.86rem;
  }
  .event-facts span {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .note {
    border-left: 3px solid var(--gold);
    background: #f4eedf;
    padding: 18px 22px;
    font-size: 0.87rem;
    color: #5a5140;
  }
  .donation-box {
    background: var(--white);
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    padding: 40px;
  }
  .donation-box h2 {
    font-size: 2rem;
    margin-bottom: 20px;
  }
  .donation-box p {
    color: var(--muted);
    margin-bottom: 25px;
  }
  .donation-box form .button {
    width: 100%;
  }
  .payment-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
    font-size: 0.73rem;
    color: var(--muted);
  }
  .contact-card {
    padding: 30px 0;
    border-top: 1px solid var(--line);
    margin-top: 35px;
  }
  .contact-card h3 {
    margin-bottom: 12px;
  }
  .contact-card p {
    font-size: 0.94rem;
  }
  .golf-intro {
    background: var(--cream);
  }
  .golf-intro h1 {
    max-width: 890px;
    font-size: clamp(2.8rem, 5.3vw, 4.7rem);
  }
  .golf-details {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 60px;
    padding-block: 36px;
    border-bottom: 1px solid var(--line);
  }
  .golf-location {
    display: flex;
    gap: 17px;
    align-items: center;
  }
  .golf-location > svg {
    color: var(--red);
    flex-shrink: 0;
  }
  .golf-location strong {
    display: block;
    font-size: 0.97rem;
  }
  .golf-location p {
    color: var(--muted);
    font-size: 0.85rem;
  }
  .schedule {
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: space-between;
  }
  .schedule span {
    display: block;
    color: var(--green);
    font: 500 1.6rem var(--serif);
  }
  .schedule small {
    font-size: 0.75rem;
    color: var(--muted);
  }
  .registration-layout {
    display: grid;
    grid-template-columns: 1.45fr 0.7fr;
    gap: 65px;
    align-items: start;
  }
  .registration-form {
    min-width: 0;
  }
  .registration-form fieldset {
    border: 0;
    padding: 0;
    margin: 0 0 35px;
    min-width: 0;
  }
  .registration-form legend {
    font: 500 1.6rem var(--serif);
    margin-bottom: 22px;
  }
  .registration-form legend span {
    color: var(--red);
    font: 700 0.77rem var(--sans);
    margin-right: 12px;
  }
  .option-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .registration-option {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    border: 1px solid #b6baac;
    border-radius: 5px;
    background: var(--white);
    padding: 17px;
    cursor: pointer;
  }
  .registration-option:has(input:checked) {
    border-color: var(--red);
    background: #f5eae5;
    box-shadow: 0 0 0 1px var(--red);
  }
  .registration-option input {
    margin: 6px 0 0;
    accent-color: var(--red);
    flex-shrink: 0;
  }
  .registration-option strong {
    display: block;
    font-size: 0.88rem;
    font-weight: 650;
  }
  .registration-option small {
    display: block;
    font-size: 0.76rem;
    color: var(--muted);
    margin-top: 3px;
  }
  .registration-option:last-child {
    grid-column: 1 / -1;
  }
  .golf-options {
    background: var(--cream);
    border-radius: 4px;
    padding: 22px;
    margin-top: 20px;
    display: grid;
    grid-template-columns: 150px 1fr;
    align-items: center;
    gap: 25px;
  }
  .checkbox-field {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 0.86rem;
    cursor: pointer;
  }
  .checkbox-field input {
    margin-top: 5px;
    accent-color: var(--red);
    width: 17px;
    height: 17px;
    flex-shrink: 0;
  }
  .checkbox-field small {
    display: block;
    font-size: 0.75rem;
    color: var(--muted);
  }
  .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .full-width {
    grid-column: 1 / -1;
  }
  .fieldset-hint {
    color: var(--muted);
    font-size: 0.84rem;
    margin: -8px 0 22px;
  }
  .registration-summary {
    position: sticky;
    top: 30px;
    background: var(--cream);
    border-top: 3px solid var(--green);
    padding: 30px;
  }
  .registration-summary h2 {
    font-size: 1.6rem;
    margin-bottom: 22px;
  }
  .summary-label {
    font-size: 0.94rem;
    font-weight: 600;
  }
  .summary-description {
    font-size: 0.8rem;
    color: var(--muted);
    margin: 12px 0 25px;
  }
  .summary-total {
    border-block: 1px solid #d3d5c6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-block: 17px;
    margin-bottom: 20px;
  }
  .summary-total span {
    font-size: 0.84rem;
  }
  .summary-total strong {
    font: 500 2rem var(--serif);
    color: var(--green);
  }
  .summary-fineprint {
    font-size: 0.74rem;
    color: var(--muted);
  }
  .registration-summary .text-link {
    font-size: 0.77rem;
    margin-top: 20px;
  }
  .form-error {
    color: #9c2028;
    background: #fff0eb;
    padding: 15px 18px;
    margin-bottom: 20px;
    border-left: 3px solid #9c2028;
  }
  .form-bottom {
    border-top: 1px solid var(--line);
    padding-top: 25px;
  }
  .form-bottom p {
    color: var(--muted);
    font-size: 0.78rem;
    margin-bottom: 20px;
  }
  .sponsorships {
    background: var(--cream);
    padding-block: 70px;
    margin-bottom: 80px;
  }
  .sponsorship-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 35px;
  }
  .sponsorship-grid article {
    border-top: 1px solid #b9c1ae;
    padding-top: 22px;
  }
  .sponsorship-grid h3 {
    font-size: 1.5rem;
    margin-bottom: 12px;
  }
  .sponsorship-grid strong {
    display: block;
    font: 500 2rem var(--serif);
    color: var(--red);
    margin-bottom: 14px;
  }
  .sponsorship-grid p {
    color: var(--muted);
    font-size: 0.87rem;
  }
  .thanks {
    max-width: 720px;
    padding-block: 90px 110px;
  }
  .thanks > svg {
    color: var(--green);
    margin-bottom: 27px;
  }
  .thanks h1 {
    font-size: 3.7rem;
    margin-bottom: 25px;
  }
  .thanks .lead {
    margin-bottom: 25px;
  }
  .thanks .actions {
    margin-top: 28px;
  }
}
@layer responsive {
  @media (min-width: 1600px) {
    .hero-inner {
      min-height: 680px;
    }
  }
  @media (max-width: 1100px) {
    .container {
      width: calc(100% - 56px);
    }
    .header-inner {
      gap: 20px;
    }
    .desktop-navigation {
      gap: 20px;
    }
    .header-donate {
      font-size: 0.74rem;
      padding: 12px;
      gap: 8px;
    }
    .brand {
      width: 220px;
    }
    .hero-inner {
      min-height: 570px;
    }
    .hero h1 {
      font-size: clamp(3.1rem, 6.3vw, 4.6rem);
    }
    .hero .actions {
      gap: 20px;
    }
    .hero .actions .text-link {
      font-size: 0.88rem;
    }
    .mission-inner {
      gap: 50px;
    }
    .support-banner {
      padding: 35px;
    }
    .support-mark {
      display: none;
    }
    .footer-main {
      gap: 25px;
    }
    .two-column {
      gap: 45px;
    }
    .registration-layout {
      gap: 35px;
      grid-template-columns: 1.5fr 0.8fr;
    }
  }
  @media (max-width: 850px) {
    .desktop-navigation,
    .header-donate {
      display: none;
    }
    .header-inner {
      min-height: 94px;
    }
    .mobile-navigation {
      display: block;
    }
    .mobile-navigation summary {
      list-style: none;
      display: flex;
      align-items: center;
      gap: 12px;
      border: 1px solid var(--line);
      border-radius: 4px;
      padding: 10px 14px;
      font-size: 0.85rem;
    }
    .mobile-navigation summary::-webkit-details-marker {
      display: none;
    }
    .menu-lines {
      width: 16px;
      height: 9px;
      border-block: 1.5px solid var(--ink);
    }
    .mobile-navigation nav {
      position: absolute;
      z-index: 20;
      top: 122px;
      right: 28px;
      left: 28px;
      background: var(--white);
      border: 1px solid var(--line);
      box-shadow: 0 12px 20px #292d2812;
      padding: 13px 24px;
    }
    .mobile-navigation nav a {
      display: flex;
      justify-content: space-between;
      align-items: center;
      color: var(--ink);
      padding: 12px 0;
      text-decoration: none;
      border-bottom: 1px solid var(--line);
    }
    .mobile-navigation nav a:last-child {
      border: 0;
    }
    .hero-inner {
      grid-template-columns: 1.1fr 1fr;
      gap: 0;
      min-height: 510px;
    }
    .hero h1 {
      font-size: clamp(2.6rem, 6.1vw, 4rem);
    }
    .hero .eyebrow {
      font-size: 0.62rem;
    }
    .hero .lead {
      font-size: 0.95rem;
    }
    .art-caption {
      font-size: 0.86rem;
      bottom: -15px;
    }
    .values-strip > div {
      padding: 0 13px;
      gap: 10px;
    }
    .values-strip span {
      font-size: 0.75rem;
    }
    .section {
      padding-block: 70px;
    }
    .section-heading {
      align-items: flex-start;
    }
    .section-heading .lead {
      max-width: 260px;
    }
    .impact-item {
      padding: 25px 22px;
    }
    .impact-item h3 {
      font-size: 1.35rem;
    }
    .impact-meta {
      flex-direction: column;
      gap: 6px;
    }
    .mission-inner {
      gap: 35px;
    }
    .get-involved {
      gap: 35px;
    }
    .involved-item {
      grid-template-columns: 1fr;
      gap: 18px;
    }
    .support-banner {
      flex-wrap: wrap;
      gap: 24px;
      margin-bottom: 65px;
    }
    .support-banner > .button {
      margin-left: 0;
    }
    .footer-main {
      grid-template-columns: 1.5fr 1fr 1fr;
    }
    .footer-note {
      display: none;
    }
    .footer-bottom {
      flex-direction: column;
      gap: 6px;
    }
    .intro-split {
      gap: 30px;
      grid-template-columns: 1.5fr 1fr;
    }
    .intro-aside {
      padding-left: 25px;
    }
    .intro-aside p {
      font-size: 1.3rem;
    }
    .two-column,
    .registration-layout {
      grid-template-columns: 1fr;
      gap: 40px;
    }
    .registration-summary {
      position: static;
    }
    .registration-layout .registration-summary {
      grid-row: 1;
    }
    .registration-summary .summary-description {
      margin-bottom: 15px;
    }
    .registration-summary {
      padding: 24px;
    }
    .registration-summary h2 {
      margin-bottom: 10px;
    }
    .summary-total {
      padding-block: 10px;
      margin-bottom: 12px;
    }
    .golf-details {
      gap: 25px;
    }
    .schedule {
      gap: 16px;
    }
    .schedule span {
      font-size: 1.3rem;
    }
  }
  @media (max-width: 600px) {
    .container {
      width: calc(100% - 40px);
    }
    .community-bar {
      font-size: 0.59rem;
      padding-block: 8px;
    }
    .community-bar .container > span:last-child {
      font-size: 0;
    }
    .community-bar .container > span:last-child span {
      font-size: 0.8rem;
    }
    .header-inner {
      min-height: 87px;
    }
    .brand {
      width: 216px;
    }
    .header-inner .brand {
      flex-shrink: 1;
      min-width: 0;
    }
    .mobile-navigation {
      flex-shrink: 0;
    }
    .mobile-navigation nav {
      top: 117px;
      left: 20px;
      right: 20px;
    }
    .hero-inner {
      display: flex;
      flex-direction: column;
      padding-block: 45px 30px;
    }
    .hero-copy {
      width: 100%;
    }
    .hero h1 {
      font-size: clamp(3.1rem, 12.8vw, 4.7rem);
      margin-bottom: 23px;
    }
    .hero .eyebrow {
      font-size: 0.63rem;
      margin-bottom: 22px;
    }
    .hero .lead {
      font-size: 1rem;
      max-width: 370px;
    }
    .hero .actions {
      gap: 18px;
    }
    .hero .button {
      font-size: 0.84rem;
      padding: 14px 18px;
    }
    .hero .text-link {
      font-size: 0.82rem !important;
    }
    .hero-art {
      width: min(100%, 400px);
      margin-top: 20px;
    }
    .art-caption {
      bottom: 0;
      right: 0;
    }
    .values-strip {
      grid-template-columns: 1fr;
      gap: 18px;
      padding-block: 27px;
    }
    .values-strip > div,
    .values-strip > div:first-child,
    .values-strip > div:last-child {
      justify-content: flex-start;
      border: 0;
      padding: 0;
    }
    .values-strip span {
      font-size: 0.87rem;
    }
    .values-strip svg {
      width: 22px;
      height: 22px;
    }
    .section {
      padding-block: 56px;
    }
    .section-heading {
      display: block;
      margin-bottom: 28px;
    }
    .section-heading .lead {
      max-width: 100%;
      margin-top: 20px;
    }
    .eyebrow {
      font-size: 0.65rem;
      margin-bottom: 16px;
    }
    .impact-grid {
      grid-template-columns: 1fr;
    }
    .impact-item,
    .impact-item:first-child,
    .impact-item:last-child {
      padding: 26px 0;
      border-right: 0;
      border-bottom: 1px solid var(--line);
    }
    .impact-item:last-child {
      border-bottom: 0;
    }
    .impact-icon {
      margin-bottom: 16px;
      width: 40px;
      height: 40px;
    }
    .impact-item h3 {
      font-size: 1.55rem;
    }
    .impact-item p {
      margin-bottom: 20px;
    }
    .impact-meta {
      flex-direction: row;
    }
    .section-tail {
      align-items: flex-start;
      flex-direction: column;
      gap: 14px;
    }
    .mission-band {
      padding-block: 55px;
    }
    .mission-inner {
      grid-template-columns: 1fr;
      gap: 25px;
    }
    .mission-inner .lead {
      font-size: 0.99rem;
    }
    .mission-points {
      gap: 13px 23px;
    }
    .get-involved {
      grid-template-columns: 1fr;
      gap: 35px;
    }
    .involved-item {
      grid-template-columns: 35px 1fr;
      gap: 20px;
    }
    .involved-item > svg {
      width: 30px;
    }
    .involved-item h3 {
      font-size: 1.5rem;
    }
    .support-banner {
      padding: 30px 24px;
      margin-bottom: 56px;
    }
    .support-banner h2 {
      font-size: 2rem;
    }
    .support-banner .eyebrow {
      font-size: 0.59rem;
    }
    .footer-main {
      grid-template-columns: 1fr 1fr;
      gap: 30px;
      padding-block: 40px;
    }
    .footer-intro {
      grid-column: 1 / -1;
    }
    .footer-intro .brand {
      width: 225px;
    }
    .footer-bottom {
      font-size: 0.64rem;
      padding-block: 20px;
    }
    .page-intro {
      padding-block: 48px 40px;
    }
    .page-intro h1 {
      font-size: clamp(2.8rem, 10vw, 3.8rem);
    }
    .page-intro .lead {
      font-size: 1rem;
    }
    .intro-split {
      grid-template-columns: 1fr;
    }
    .intro-aside {
      padding: 22px 0 0;
      border-left: 0;
      border-top: 1px solid var(--line);
    }
    .intro-aside svg {
      width: 27px;
    }
    .intro-aside p {
      font-size: 1.3rem;
    }
    .aside-card {
      padding: 26px;
    }
    .prose h2 {
      font-size: 1.9rem;
    }
    .prose p,
    .prose li {
      font-size: 0.95rem;
    }
    .archive {
      padding-top: 50px;
    }
    .archive-controls {
      gap: 12px;
      align-items: stretch;
      flex-direction: column;
    }
    .grant-row {
      grid-template-columns: 1fr auto;
      gap: 8px 17px;
      padding-block: 22px;
    }
    .grant-date {
      grid-column: 1 / -1;
    }
    .grant-row h3 {
      font-size: 1rem;
    }
    .grant-amount {
      font-size: 1.08rem;
      padding-top: 0;
    }
    .grant-row p {
      font-size: 0.79rem;
    }
    .event-card {
      grid-template-columns: 1fr;
      gap: 24px;
    }
    .event-year {
      min-height: 100px;
      border-radius: 5px;
      flex-direction: row;
      gap: 25px;
    }
    .event-year span {
      font-size: 2.6rem;
    }
    .event-year svg {
      width: 30px;
    }
    .event-card h2 {
      font-size: 1.9rem;
    }
    .event-facts {
      gap: 12px;
    }
    .donation-box {
      padding: 27px;
    }
    .golf-details {
      grid-template-columns: 1fr;
      gap: 25px;
      padding-block: 28px;
    }
    .schedule {
      border-top: 1px solid var(--line);
      padding-top: 24px;
    }
    .option-grid {
      grid-template-columns: 1fr;
    }
    .option-grid .registration-option {
      padding: 15px;
    }
    .option-grid .registration-option:last-child {
      grid-column: auto;
    }
    .golf-options {
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .form-grid {
      grid-template-columns: 1fr;
    }
    .registration-form legend {
      font-size: 1.45rem;
    }
    .form-bottom .button {
      width: 100%;
    }
    .sponsorships {
      padding-block: 50px;
      margin-bottom: 55px;
    }
    .sponsorship-grid {
      grid-template-columns: 1fr;
      gap: 28px;
    }
    .thanks {
      padding-block: 60px 75px;
    }
    .thanks h1 {
      font-size: 2.9rem;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
      animation: none !important;
      transition: none !important;
    }
  }
}
