:root {
      color-scheme: light;
      --forest: #173b2b;
      --forest-2: #275b40;
      --moss: #dce9d6;
      --cream: #f6f7ef;
      --text: #1d3428;
      --muted: #516659;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--cream);
      color: var(--text);
      font: 16px/1.6 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }
    a { color: inherit; }
    .wrap { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
    .site-header { background: #fffdf8; border-bottom: 1px solid #e3e9dc; }
    .header-inner {
      display: flex; align-items: center; justify-content: space-between;
      gap: 20px; min-height: 84px;
    }
    .brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; font-size: 1.15rem; font-weight: 800; letter-spacing: -.025em; }
    .brand-icon {
      display: grid; place-items: center; width: 42px; height: 42px;
      border-radius: 13px; background: var(--forest); color: white;
    }
    .header-note { color: var(--muted); font-size: .9rem; }
    .site-nav { display: flex; flex-wrap: wrap; gap: 12px 22px; }
    .site-nav a { color: var(--forest); font-weight: 650; text-underline-offset: 5px; }
    .site-nav a[aria-current="page"] { text-decoration-thickness: 3px; }
    @media (max-width: 450px) {
      .header-inner { flex-wrap: wrap; gap: 12px; padding-block: 14px; }
    }
    .hero {
      position: relative; isolation: isolate; overflow: hidden;
      background: radial-gradient(circle at 82% 18%, #4c855e 0, transparent 32%),
                  linear-gradient(130deg, #173b2b 0%, #285f44 100%);
      color: #fff; padding: clamp(76px, 11vw, 145px) 0;
    }
    .hero::before, .hero::after {
      content: ""; position: absolute; z-index: -1; border: 1px solid #b8dfaa40;
      border-radius: 50%; width: min(70vw, 700px); aspect-ratio: 1;
      right: -16%; top: -56%; transform: rotate(-20deg);
    }
    .hero::after { width: min(50vw, 500px); right: -4%; top: -10%; }
    .hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 32px; align-items: center; }
    .eyebrow { display: inline-block; margin-bottom: 18px; color: #d9edcf; font-size: .85rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
    h1 { max-width: 800px; margin: 0 0 22px; font-size: clamp(2.65rem, 6.4vw, 5.5rem); line-height: 1.07; letter-spacing: -.055em; }
    .lead { max-width: 590px; margin: 0 0 30px; color: #e5f0e3; font-size: clamp(1.08rem, 2vw, 1.3rem); }
    .button { display: inline-block; background: #e8f1d8; color: #173b2b; border-radius: 12px; padding: 13px 19px; font-weight: 750; text-decoration: none; }
    .button:hover, .button:focus-visible { background: #fff; }
    .illustration { display: grid; place-items: center; }
    .illustration svg { display: block; width: min(100%, 370px); height: auto; filter: drop-shadow(0 22px 30px #092b1d55); }
    section.info { padding: 76px 0 88px; }
    .section-kicker { margin: 0 0 9px; color: var(--forest-2); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
    h2 { margin: 0 0 14px; font-size: clamp(1.85rem, 3.4vw, 2.8rem); line-height: 1.2; letter-spacing: -.035em; }
    .intro { max-width: 780px; margin: 0 0 35px; color: var(--muted); font-size: 1.1rem; }
    .features { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
    .feature { min-height: 230px; background: #fff; padding: 28px; border: 1px solid #e1e8d9; border-radius: 19px; box-shadow: 0 10px 35px #193b2710; }
    .feature-icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 19px; border-radius: 14px; background: var(--moss); color: var(--forest); }
    .feature h3 { margin: 0 0 8px; font-size: 1.2rem; }
    .feature p { margin: 0; color: var(--muted); }
    .notice { margin-top: 30px; padding: 21px 24px; border-radius: 15px; background: #e6eee0; color: #2b4d34; }
    .notice strong { display: block; margin-bottom: 4px; }
    footer { padding: 26px 0 34px; background: #e9eee5; color: var(--muted); font-size: .9rem; }
    footer .wrap { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
    @media (max-width: 760px) {
      .hero-grid { grid-template-columns: 1fr; }
      .illustration { display: none; }
      .features { grid-template-columns: 1fr; }
      .header-note { font-size: .76rem; }
      .header-inner { min-height: 75px; }
      section.info { padding-block: 55px; }
    }
    @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }


  .map-section{padding:68px 0;background:#e9f1e8}
  .map-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;align-items:start}
  .map-shell{position:relative;isolation:isolate}
  #map{height:465px;border-radius:17px;z-index:0;isolation:isolate;overflow:hidden;border:1px solid #bdd2bf}
  #map.map-selecting,#map.map-selecting .leaflet-grab{cursor:crosshair!important}
  .plant-map-button{position:absolute;z-index:950;right:13px;top:13px;display:flex;align-items:center;gap:8px;border:2px solid #fff;box-shadow:0 2px 12px #092f2044;border-radius:12px;background:#173b2b;color:#fff;padding:11px 13px;font:700 .94rem/1.2 system-ui,sans-serif;cursor:pointer}
  .plant-map-button:hover,.plant-map-button:focus-visible{background:#285f44}
  .plant-map-button[aria-pressed="true"]{background:#e8f1d8;color:#173b2b;outline:2px solid #173b2b}
  .plant-map-button svg{flex-shrink:0}
  .map-help{font-size:.92rem;font-weight:650;color:#275b40;min-height:1.6em;margin:11px 0 0}
  @media(max-width:450px){.plant-map-button{padding:9px 10px;font-size:.85rem;right:9px;top:9px}}
  .map-card{background:#fff;padding:24px;border-radius:17px;border:1px solid #d8e5d6}
  .map-card p{color:#516659;margin:0 0 17px}
  .map-card label{font-weight:700;display:block;margin:12px 0 5px}
  .photo-picker{margin:15px 0;display:grid;gap:8px}.photo-picker .photo-actions{display:flex;flex-wrap:wrap;gap:8px}.photo-picker .photo-actions label{display:inline-block;border-radius:9px;background:#e8f1df;color:#173b2b;padding:10px 12px;font-weight:700;cursor:pointer}.photo-picker input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.photo-preview{max-width:100%;max-height:230px;object-fit:contain;border-radius:12px;border:1px solid #d5e2d1}.photo-picker small{color:#516659}.photo-picker .remove-photo{background:#f3e8e6;color:#622b27;padding:8px 12px}.map-card textarea{width:100%;border:1px solid #b7caba;border-radius:9px;padding:10px;font:inherit;resize:vertical}
  .map-card button{border:0;border-radius:10px;padding:12px 16px;background:#275b40;color:white;font-weight:700;cursor:pointer}
  .map-card button:disabled{opacity:.5;cursor:not-allowed}
  .map-card .outline{background:#e8f1df;color:#173b2b;margin-bottom:8px}
  .map-card .feedback{margin-top:12px;min-height:38px;font-size:.94rem}
  .map-card .coordinate{margin:10px 0;color:#275b40;font-size:.91rem}
  .map-card .consent{display:flex;gap:8px;align-items:start;margin:14px 0;font-size:.9rem}
  .map-card .consent label{font-weight:400;margin:0}
  .map-card .consent input{margin-top:6px}
  .map-note{color:#516659;font-size:.9rem;margin-top:11px}
  @media(max-width:780px){.map-grid{grid-template-columns:1fr}#map{height:360px}}
