.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--space-5); }
.section--white { background: var(--white); }
.section--green { background: var(--green); color: var(--ivory); }
.section--green p { color: rgba(245,242,233,.82); }
.section--deep { background: var(--green-deep); color: var(--ivory); }
.eyebrow { display: inline-flex; align-items: center; gap: .75rem; font-size: var(--fs-xs); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--gold-dark); margin-bottom: var(--space-2); }
.eyebrow::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; }
.section--green .eyebrow, .section--deep .eyebrow, .hero .eyebrow { color: var(--gold); }
.lead { font-size: var(--fs-lg); color: var(--text-2); }
.section--green .lead { color: rgba(245,242,233,.85); }
.section-head { max-width: 760px; margin-bottom: var(--space-4); }
.grid { display: grid; gap: var(--space-3); }
.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: 1fr; }
.split { display: grid; gap: var(--space-4); align-items: center; grid-template-columns: 1fr; }
.stack > * + * { margin-top: var(--space-2); }

/* Header */
.topbar { background: var(--green-deep); color: var(--ivory); font-size: var(--fs-xs); letter-spacing: .04em; }
.topbar .container { display: flex; justify-content: space-between; gap: 1rem; padding-block: .5rem; flex-wrap: wrap; }
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 100; display: flex; flex-direction: column; align-items: stretch; background: var(--green); color: var(--ivory); border-bottom: 1px solid transparent; transition: background var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease), border-color var(--dur-2); }
.has-hero .site-header { background: transparent; }
.site-header.is-scrolled { background: var(--green); border-color: rgba(197,164,109,.35); box-shadow: 0 6px 24px rgba(10,36,28,.18); }
.site-header .header-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: var(--header-h); }
.site-header.is-scrolled .topbar { display: none; }
.has-hero .site-header:not(.is-scrolled) .topbar { background: rgba(10,36,28,.55); }
.brand small, .nav-list a, .nav-link { white-space: nowrap; }
.brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: .02em; }
.brand-mark { width: 38px; height: 38px; border: 1px solid var(--gold); display: grid; place-items: center; color: var(--gold); font-size: 1.15rem; }
.brand small { display: block; font-family: var(--font-body); font-size: .625rem; letter-spacing: .24em; color: var(--gold); text-transform: uppercase; margin-top: -2px; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: .25rem; }
.nav-list a, .nav-list button.nav-link { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: .5rem .85rem; font-size: var(--fs-sm); font-weight: 600; text-decoration: none; background: none; border: 0; cursor: pointer; position: relative; }
.nav-list a::after, .nav-link::after { content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .35rem; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-2) var(--ease-out); }
.nav-list a:hover::after, .nav-link:hover::after, .nav-list a[aria-current="page"]::after, .nav-link[aria-current="true"]::after { transform: scaleX(1); }
.has-dropdown { position: relative; }
.dropdown { list-style: none; margin: 0; padding: .5rem; position: absolute; top: 100%; left: 0; min-width: 240px; background: var(--white); color: var(--text); box-shadow: 0 18px 40px rgba(10,36,28,.18); border-top: 2px solid var(--gold); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity var(--dur-1), transform var(--dur-2) var(--ease-out), visibility 0s linear var(--dur-2); }
.dropdown a::after { display: none; }
.dropdown a { width: 100%; }
.dropdown a:hover { background: var(--ivory); }
.has-dropdown.is-open .dropdown, .has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav-toggle { display: none; }

/* Footer */
.site-footer { background: var(--green-deep); color: rgba(245,242,233,.8); padding-block: var(--space-5) var(--space-3); font-size: var(--fs-sm); }
.site-footer h2 { font-family: var(--font-body); font-size: var(--fs-xs); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: var(--space-2); font-weight: 700; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .5rem; }
.site-footer a { text-decoration: none; } .site-footer a:hover { color: var(--gold); }
.footer-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
.footer-bottom { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid rgba(245,242,233,.15); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: var(--fs-xs); }
.page-hero { background: var(--green); color: var(--ivory); padding: calc(var(--header-h) + 34px + var(--space-5)) 0 var(--space-5); position: relative; overflow: hidden; }
.page-hero p { color: rgba(245,242,233,.85); font-size: var(--fs-lg); }
.page-hero .eyebrow { color: var(--gold); }

/* Real logo tile (white so the blue/green mark stays legible on dark green) */
.brand-mark { background: #fff; border: 0; width: 40px; height: 44px; padding: 3px; flex: none; }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; }
