:root { --green:#174B37; --ivory:#F8F7F2; --gold:#C6A65B; --ink:#173C30; --muted:#52645B; --line:#DEE5DE; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:7rem; }
body { margin:0; font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:var(--ivory); line-height:1.6; }
img { display:block; max-width:100%; height:auto; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #875F17; outline-offset:5px; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h2,h3 { line-height:1.15; }
h2 { margin-bottom:1rem; font-size:clamp(2rem,3.6vw,3.5rem); letter-spacing:-.035em; }
h3 { margin-bottom:.7rem; font-size:1.25rem; }
.page-width { width:min(1280px, calc(100% - clamp(2rem, 7vw, 7.5rem))); margin-inline:auto; }
.skip-link { position:fixed; z-index:10; top:0; left:1rem; transform:translateY(-130%); padding:.75rem 1rem; background:#fff; color:var(--green); font-weight:700; }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; z-index:5; top:0; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:5.6rem; padding:1rem clamp(1rem, 4vw, 4rem); background:#fff; border-bottom:1px solid var(--line); }
.brand { display:inline-block; flex:0 0 auto; }
.brand img { width:112px; }
.menu-toggle { min-height:44px; padding:.65rem .9rem; border:1px solid var(--green); border-radius:7px; background:#fff; color:var(--green); font:inherit; font-weight:700; cursor:pointer; }
.menu-toggle:hover { background:#e9f0eb; }
#primary-nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(.7rem, 2vw, 2rem); flex-wrap:wrap; font-size:.94rem; font-weight:700; }
#primary-nav > a:not(.button) { text-decoration:none; }
#primary-nav > a:not(.button):hover { color:#875F17; }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:.9rem 1.4rem; border:1px solid var(--green); border-radius:7px; background:var(--green); color:white; text-decoration:none; font-weight:700; }
.button:hover { background:#0e3828; }
.header-button { min-height:44px; padding:.7rem 1rem; }
.button-outline { background:transparent; color:var(--green); }
.button-outline:hover { background:#e9f0eb; }
.hero { display:grid; grid-template-columns:1fr 1.05fr; gap:3rem; align-items:center; padding-block:clamp(4rem, 9vw, 8.5rem); }
.eyebrow { margin-bottom:1rem; color:var(--green); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.hero h1 { max-width:10ch; margin-bottom:1.35rem; font-size:clamp(2.5rem,4.6vw,4.75rem); line-height:1.06; letter-spacing:-.045em; }
.lead { max-width:34rem; margin-bottom:2rem; color:var(--muted); font-size:1.12rem; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-photo { margin:0; position:relative; }
.hero-photo::before { position:absolute; z-index:-1; top:1.25rem; right:-1.25rem; width:42%; height:42%; border:1px solid var(--gold); border-radius:16px; content:""; }
.hero-photo img { width:100%; aspect-ratio:1.13; object-fit:cover; border-radius:16px; box-shadow:0 16px 35px rgb(23 75 55 / 12%); }
.hero-photo figcaption { margin-top:.75rem; color:var(--muted); font-size:.88rem; }
.section { padding-block:clamp(4rem, 8vw, 7.5rem); }
.section-surface { background:#fff; border-block:1px solid var(--line); }
.section-heading { margin-bottom:3rem; }
.centered-heading { max-width:46rem; margin-inline:auto; text-align:center; }
.centered-heading p:last-child { color:var(--muted); }
.feature-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1.25rem; }
.feature-card { min-height:100%; padding:2rem; border:1px solid var(--line); border-radius:16px; background:var(--ivory); }
.feature-card svg { width:48px; height:48px; margin-bottom:2rem; fill:none; stroke:var(--green); stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.feature-card p { margin-bottom:0; color:var(--muted); }
.about-layout { display:grid; grid-template-columns:minmax(0, 1fr) minmax(280px, .8fr); gap:clamp(2rem, 8vw, 8rem); align-items:center; }
.about-copy { max-width:38rem; }
.about-copy > p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }
.illustrative-note { margin-top:1.5rem; padding-left:1rem; border-left:3px solid var(--gold); font-size:.94rem !important; }
.leaf-panel { min-height:260px; display:grid; place-items:center; overflow:hidden; border-radius:16px; background:var(--green); }
.leaf-panel svg { width:min(100%, 360px); fill:none; stroke:#e7e5c8; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; max-width:1040px; margin:0 auto; padding:0; list-style:none; counter-reset:steps; }
.steps li { position:relative; padding-top:1rem; border-top:2px solid var(--green); }
.steps span { display:block; margin-bottom:1.25rem; color:#875F17; font-size:.8rem; font-weight:800; letter-spacing:.1em; }
.steps p { margin-bottom:0; color:var(--muted); }
.narrow { max-width:850px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:1.25rem 0; }
summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; font-weight:700; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { flex:0 0 auto; content:"+"; color:var(--green); font-size:1.6rem; font-weight:400; }
details[open] summary::after { content:"−"; }
details p { max-width:44rem; margin:1rem 2.4rem .25rem 0; color:var(--muted); }
.contact-section { background:var(--green); color:#fff; }
.contact-content { max-width:750px; text-align:center; }
.contact-section .eyebrow { color:#e7d49b; }
.contact-section h2 { color:#fff; }
.contact-section p:last-child { max-width:44rem; margin:0 auto; color:#e8eee9; font-size:1.1rem; }
.site-footer { padding-block:2.5rem; background:#113829; color:#e9f0eb; }
.footer-grid { display:grid; grid-template-columns:auto 1fr auto; gap:2rem; align-items:center; }
.footer-brand { padding:.35rem .55rem; border-radius:7px; background:#fff; }
.footer-brand img { width:102px; }
.site-footer nav { display:flex; justify-content:center; gap:1.25rem; flex-wrap:wrap; }
.site-footer nav a { color:#fff; font-size:.92rem; text-decoration:none; }
.site-footer nav a:hover { color:#e7d49b; }
.footer-meta { color:#c4d2cb; font-size:.82rem; text-align:right; }
.footer-meta p { margin-bottom:.2rem; }
@media(max-width:760px) {
  html { scroll-padding-top:5.5rem; }
  .site-header { align-items:center; flex-wrap:wrap; min-height:unset; padding-block:.9rem; }
  .menu-toggle { margin-left:auto; }
  #primary-nav { flex:0 0 100%; align-items:stretch; gap:.45rem; padding-top:.75rem; border-top:1px solid var(--line); }
  #primary-nav > a { min-height:44px; padding:.65rem .75rem; border-radius:7px; }
  #primary-nav > a:not(.button) { display:flex; align-items:center; font-size:.94rem; text-decoration:none; }
  .header-button { justify-content:flex-start; }
  .hero { grid-template-columns:minmax(0,1fr); gap:2rem; padding-block:3.5rem 4rem; }
  .hero h1 { max-width:12ch; }
  .hero-actions { flex-direction:column; }
  .hero-actions .button { width:100%; }
  .hero-photo::before { top:.75rem; right:-.55rem; }
  .feature-grid, .steps, .about-layout { grid-template-columns:1fr; }
  .feature-card { padding:1.5rem; }
  .feature-card svg { margin-bottom:1.25rem; }
  .steps { gap:1.5rem; }
  .leaf-panel { min-height:180px; }
  .footer-grid { grid-template-columns:1fr; text-align:center; }
  .footer-brand { justify-self:center; }
  .footer-meta { text-align:center; }
}
@media(max-width:420px) {
  .site-header { gap:.75rem; }
  .brand img { width:94px; }
  #primary-nav { justify-content:flex-end; gap:.4rem .75rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* --- Registration Form --- */
.registration-section { background-color: var(--ivory); }
.registration-form { 
  max-width: 650px; 
  margin: 0 auto; 
  background: #fff; 
  padding: 2.5rem; 
  border: 1px solid var(--line);
  border-radius: 12px; 
  box-shadow: 0 8px 30px rgba(23,75,55,0.06); 
}
.form-step.hidden { display: none !important; }
.form-step h3 {
  color: var(--green);
  border-bottom: 2px solid var(--line);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
}
.form-row.two-column { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .form-row.two-column { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
.form-group { margin-bottom: 1.5rem; text-align: left; }
.form-group label { display: block; margin-bottom: 0.4rem; font-weight: 700; color: var(--ink); font-size: 0.95rem; }
.form-group input, .form-group select { 
  width: 100%; 
  padding: 0.85rem; 
  border: 1px solid var(--line); 
  border-radius: 6px; 
  font-family: inherit; 
  font-size: 1rem; 
  background-color: #fafafa;
  color: var(--ink);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.form-group input:focus, .form-group select:focus { 
  outline: none; 
  border-color: var(--green); 
  box-shadow: 0 0 0 3px rgba(23,75,55,0.15); 
  background-color: #fff;
}
.field-error { color: #d32f2f; font-size: 0.875rem; margin-top: 0.35rem; font-weight: 600; }
.checkbox-group { display: flex; align-items: flex-start; gap: 0.75rem; margin-top: 1rem; }
.checkbox-group input[type="checkbox"] { width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; accent-color: var(--green); cursor: pointer; }
.checkbox-group label { font-weight: 400; font-size: 0.95rem; line-height: 1.5; color: var(--muted); cursor: pointer; }
.checkbox-group label a { color: var(--green); text-decoration: underline; font-weight: 600; }
.step-actions { display: flex; gap: 1rem; margin-top: 2.5rem; justify-content: flex-end; align-items: center; }
.step-actions .button { min-height: 48px; }
.alert { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border-radius: 6px; font-weight: 600; display: flex; align-items: center; gap: 0.5rem; }
.alert.hidden { display: none !important; }
.alert.error { background-color: #fdeded; color: #5f2120; border-left: 4px solid #d32f2f; }
.alert.success { background-color: #edf7ed; color: #1e4620; border-left: 4px solid #2e7d32; }
.success-message { text-align: center; padding: 2rem 1rem; }
.success-message h3 { color: var(--green); font-size: 1.75rem; margin-bottom: 1rem; border: none; }
.app-id { display: inline-block; background: var(--ivory); padding: 0.75rem 1.5rem; border: 1px dashed var(--gold); border-radius: 8px; font-size: 1.5rem; font-weight: 800; color: var(--green); letter-spacing: 2px; margin: 1.5rem 0; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05); }
