/* SHINTARROW — CONTACT form (shared by all 8 languages) */
.cf-root{margin-top:56px}
.cf{display:grid;gap:34px}
.cf .fld{min-width:0}
.cf .fld > label,.cf legend{display:block;font-size:12px;letter-spacing:.14em;text-transform:none;color:var(--ink-2);margin-bottom:10px;padding:0}
.eyebrow.ct-sec{margin-top:64px}
.ct-sec + .cf-root{margin-top:26px}
.cf-root .cf{margin-top:0}
html[lang="ja"] .cf .fld > label,html[lang="ja"] .cf legend,html[lang="zh-Hant-TW"] .cf .fld > label,html[lang="zh-Hant-TW"] .cf legend{font-size:13px;letter-spacing:.1em}
.cf fieldset{border:0;margin:0;padding:0;min-width:0}
.cf .req{font-style:normal;margin-left:10px;font-size:10.5px;letter-spacing:.12em;color:var(--lacquer);vertical-align:1px}
.cf .hint{display:block;margin-top:4px;font-size:12.5px;letter-spacing:.04em;color:var(--muted)}
.cf input[type=text],.cf input[type=email],.cf textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(22,20,15,.28);padding:12px 0;font:inherit;font-size:16px;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;transition:border-color .3s}
.cf textarea{min-height:160px;resize:vertical;line-height:1.9}
.cf input:focus,.cf textarea:focus{border-color:var(--ink)}
.cf input:focus-visible,.cf textarea:focus-visible{box-shadow:0 1px 0 0 var(--ink)}
.cf .fld.err input,.cf .fld.err textarea{border-color:var(--lacquer)}
.cf .ferr{display:none;margin-top:8px;font-size:13px;line-height:1.7;color:var(--lacquer)}
.cf .fld.err .ferr{display:block}

/* topics — chip buttons, one value sent */
.cf-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cf .cf-topics .opt{position:relative;display:block}
.cf .cf-topics input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.cf .cf-topics label{display:flex;align-items:center;min-height:44px;margin:0;text-transform:none;border:1px solid rgba(22,20,15,.22);padding:9px 16px;font-size:13.5px;line-height:1.55;letter-spacing:.03em;color:var(--ink);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
html[lang="ja"] .cf .cf-topics label{letter-spacing:.06em}
.cf .cf-topics label:hover{border-color:var(--ink)}
.cf .cf-topics input:checked + label{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cf .cf-topics input:focus-visible + label{outline:2px solid var(--lacquer);outline-offset:2px}
.cf .fld.err .cf-topics label{border-color:rgba(160,60,40,.45)}
@media (max-width:560px){.cf .cf-topics{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.cf .cf-topics label{padding:11px 14px;font-size:14px}}

/* honeypot */
.cf .hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

/* actions */
.cf-act{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.cf button.send{background:var(--ink);color:var(--paper);border:0;padding:19px 46px;font:inherit;font-size:13px;letter-spacing:.2em;cursor:pointer;transition:background .3s,opacity .3s;min-height:52px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}
.cf button.send:hover{background:var(--lacquer)}
.cf button.send:focus-visible{outline:2px solid var(--lacquer);outline-offset:3px}
.cf button.send[disabled]{opacity:.55;cursor:progress;background:var(--ink)}
.cf .spin{display:none;width:12px;height:12px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:12px;vertical-align:-1px;animation:cfspin .9s linear infinite}
.cf.is-sending .spin{display:inline-block}
@keyframes cfspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cf .spin{animation:none}}
.cf-status{display:none;font-size:14px;line-height:1.85;color:var(--ink-2)}
.cf-status.on{display:block}
.cf-status.bad{color:var(--lacquer)}
.cf-note{font-size:13.5px;line-height:1.95;color:var(--ink-2);max-width:40em}
.cf-note.small{font-size:12.5px;color:#5f594f}
.cf-reply{font-size:13.5px;line-height:1.9;color:var(--ink-2)}
.cf-preview{font-size:11.5px;letter-spacing:.08em;color:var(--muted);border:1px dashed var(--line);padding:8px 12px;justify-self:start}

/* success */
.cf-ok{display:none;padding:34px 0 8px;border-top:1px solid var(--line)}
.cf-ok.on{display:block}
.cf-ok h3{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.4vw,32px);line-height:1.45}
html[lang="ja"] .cf-ok h3,html[lang="zh-Hant-TW"] .cf-ok h3{font-family:var(--jp-serif);font-size:clamp(19px,1.7vw,24px);letter-spacing:.08em;line-height:1.8}
.cf-ok p{margin-top:14px;font-size:14px;line-height:1.95;color:var(--ink-2);max-width:38em}
.cf-ok:focus{outline:none}
.cf-ok .sum{margin-top:22px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 22px;font-size:13px;line-height:1.8;color:var(--ink-2)}
.cf-ok .sum dt{color:var(--muted);letter-spacing:.06em}
.cf-ok .sum dd{margin:0;overflow-wrap:anywhere}

/* direct email + copy */
.cf-alt{margin-top:52px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:8px}
.cf-alt .k{font-size:12px;letter-spacing:.14em;color:var(--ink-2)}
.cf-alt .row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px}
.cf-alt .addr{font-family:var(--serif);font-size:clamp(22px,2vw,30px);word-break:break-all;transition:color .3s}
.cf-alt .addr:hover{color:var(--lacquer)}
.cf-alt .copy{background:none;border:0;border-bottom:1px solid currentColor;padding:6px 0 4px;font:inherit;font-size:12px;letter-spacing:.14em;color:var(--ink-2);cursor:pointer;min-height:32px;white-space:nowrap}
.cf-alt .copy:hover{color:var(--lacquer)}
.cf-alt .copy:focus-visible{outline:2px solid var(--lacquer);outline-offset:3px}
.cf-alt .copied{font-size:12.5px;color:var(--ink-2);opacity:0;transition:opacity .3s}
.cf-alt .copied.on{opacity:1}
.cf-alt small{font-size:13px;line-height:1.85;color:#5f594f}

/* privacy */
.cf-privacy{margin-top:22px;font-size:12.5px;line-height:1.95;color:#5f594f;max-width:42em}

/* CONTACT: back to home (end of the main reading order) */
.ct-home{margin-top:64px;padding-top:20px;border-top:1px solid var(--line)}
.ct-home .more{margin-top:0;font-size:11px}

/* CONTACT: opening reassurance block */
.ct-open{margin-top:40px;padding-top:28px;border-top:1px solid var(--line);max-width:40em}
.ct-open h2{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.3vw,34px);line-height:1.35}
html[lang="ja"] .ct-open h2,html[lang="zh-Hant-TW"] .ct-open h2{font-family:var(--jp-serif);font-size:clamp(19px,1.7vw,25px);letter-spacing:.1em;line-height:1.8}
.ct-open p{margin-top:12px;font-size:15px;line-height:2;color:var(--ink-2)}
html[lang="ja"] .ct-open p{font-size:15px;line-height:2.1}
