:root{--cream:#fbf7ec;--surface:#fff;--tint:#f6ecd6;--sand:#efe2c4;--green:#28472e;--green-deep:#1d3522;--green-dark:#142618;--brown:#4f3a22;--brown-mid:#6f5330;--yellow:#e0b853;--yellow-soft:#f7ead0;--yellow-deep:#7d5800;--ink:#2e2a24;--ink-soft:#5c544a;--border:#e6dcc4;--font-display:"Literata", Georgia, "Noto Serif SC", "Noto Serif JP", serif;--font-body:"Manrope", system-ui, -apple-system, "Segoe UI", "Noto Sans SC", "Noto Sans JP", sans-serif;--step--1:clamp(.83rem, .79rem + .18vw, .94rem);--step-0:clamp(1rem, .95rem + .24vw, 1.13rem);--step-1:clamp(1.19rem, 1.11rem + .38vw, 1.41rem);--step-2:clamp(1.42rem, 1.29rem + .63vw, 1.76rem);--step-3:clamp(1.69rem, 1.49rem + 1vw, 2.2rem);--step-4:clamp(2.02rem, 1.71rem + 1.54vw, 2.75rem);--step-5:clamp(2.4rem, 1.94rem + 2.3vw, 3.43rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--r-sm:8px;--r-md:14px;--r-lg:22px;--r-pill:999px;--shadow-sm:0 1px 2px #4f3a220f, 0 2px 8px #4f3a220d;--shadow-md:0 4px 12px #4f3a2214, 0 12px 32px #4f3a2212;--shadow-lg:0 8px 24px #4f3a221a, 0 24px 56px #4f3a2217;--wrap:1180px;--wrap-narrow:760px;--gutter:clamp(1rem, 4vw, 2.5rem);--header-h:72px;--contactbar-h:64px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--sp-4))}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.65}@media (width<=860px){body{padding-bottom:var(--contactbar-h)}}img,picture,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4{font-family:var(--font-display);color:var(--brown);overflow-wrap:break-word;margin:0 0 var(--sp-4);font-weight:700;line-height:1.2}h1{font-size:var(--step-5);letter-spacing:-.02em}h2{font-size:var(--step-4);letter-spacing:-.01em}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p{margin:0 0 var(--sp-4);max-width:68ch}a{color:var(--green-deep);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--green-dark)}ul,ol{margin:0 0 var(--sp-4);padding-left:1.3em}li{margin-bottom:var(--sp-2)}hr{border:0;border-top:1px solid var(--border);margin:var(--sp-7) 0}:focus-visible{outline:3px solid var(--yellow-deep);outline-offset:2px;border-radius:var(--r-sm)}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.wrap-narrow{width:100%;max-width:var(--wrap-narrow);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(3rem,8vw,6rem)}.section--tint{background:var(--tint)}.section--sand{background:var(--sand)}.section--surface{background:var(--surface)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--sp-4);z-index:100;background:var(--surface);color:var(--green-deep);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);box-shadow:var(--shadow-md);font-weight:700;transition:top .15s;position:absolute;top:-100px}.skip-link:focus{top:var(--sp-4)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--step-0);min-height:48px;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-pill);cursor:pointer;text-align:center;border:2px solid #0000;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn--primary{background:var(--green);color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background:var(--green-deep);color:#fff;box-shadow:var(--shadow-md)}.btn--accent{background:var(--yellow);color:var(--ink);box-shadow:var(--shadow-sm)}.btn--accent:hover:not(:disabled){color:var(--ink);box-shadow:var(--shadow-md);background:#cda43c}.btn--outline{color:var(--green-deep);border-color:var(--green);background:0 0}.btn--outline:hover:not(:disabled){background:var(--tint);color:var(--green-dark)}.btn--ghost{background:var(--surface);color:var(--brown);border-color:var(--border)}.btn--ghost:hover:not(:disabled){background:var(--sand);color:var(--brown)}.btn--block{width:100%}.btn--lg{font-size:var(--step-1);min-height:56px;padding:var(--sp-4) var(--sp-6)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.card--link{color:inherit;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:block}.card--link:hover{box-shadow:var(--shadow-md);border-color:var(--green);color:inherit;transform:translateY(-3px)}.grid{gap:var(--sp-5);display:grid}.grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.eyebrow{font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);margin-bottom:var(--sp-3);font-weight:800;display:inline-block}.lead{font-size:var(--step-1);color:var(--ink-soft);line-height:1.6}.pill{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-4);font-size:var(--step--1);color:var(--brown);font-weight:600;display:inline-flex}.pill--tint{background:var(--tint);color:var(--green-deep);border-color:#0000}.field{margin-bottom:var(--sp-5)}.field>label{color:var(--brown);margin-bottom:var(--sp-2);font-weight:700;display:block}.field .hint{font-size:var(--step--1);color:var(--ink-soft);margin-top:var(--sp-1);font-weight:500;display:block}.input,.select,.textarea{width:100%;font-family:var(--font-body);font-size:var(--step-0);color:var(--ink);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);min-height:48px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #28472e2e}.textarea{resize:vertical;min-height:130px}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:#a8341b}.error{color:#a8341b;font-size:var(--step--1);margin-top:var(--sp-2);font-weight:600;display:block}.checkbox-row{align-items:flex-start;gap:var(--sp-3);display:flex}.checkbox-row input[type=checkbox]{width:22px;min-width:22px;height:22px;accent-color:var(--green);margin-top:3px}.checkbox-row label{color:var(--ink-soft);font-weight:500;font-size:var(--step--1);line-height:1.55}@media (width<=860px){.consent-banner{bottom:calc(var(--contactbar-h) + var(--sp-4))!important;margin-left:0!important}}.prose{font-size:var(--step-0);color:var(--ink);line-height:1.75}.prose>*{max-width:68ch}.prose h2{font-size:var(--step-3);margin-top:var(--sp-7);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.prose h3{font-size:var(--step-1);margin-top:var(--sp-6);color:var(--green-deep)}.prose blockquote{margin:var(--sp-5) 0;padding:var(--sp-4) var(--sp-5);background:var(--tint);border-left:4px solid var(--green);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink)}.prose blockquote p:last-child{margin-bottom:0}.prose img{border-radius:var(--r-md);margin:var(--sp-5) 0;width:100%}.prose figure{margin:var(--sp-5) 0}.prose figcaption{font-size:var(--step--1);color:var(--ink-soft);text-align:center;margin-top:var(--sp-2);font-style:italic}.prose .table-scroll{margin:var(--sp-5) 0;max-width:100%;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;margin:var(--sp-5) 0;font-size:var(--step--1)}.prose .table-scroll table{margin:0}.prose th,.prose td{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.prose th{background:var(--tint);color:var(--green-deep);font-weight:700}.prose code{background:var(--sand);border-radius:var(--r-sm);padding:.1em .4em;font-size:.9em}
