.tg-contact { --ink:#243c31; --paper:#f4f0e7; --line:#c8cbbb; color:var(--ink); background:var(--paper); padding:clamp(24px,5vw,64px); max-width:820px; margin:auto; font-family:'Noto Sans JP',sans-serif; line-height:1.85; }
.tg-contact * { box-sizing:border-box; }
.tg-contact h1,.tg-contact h2 { font-family:'Shippori Mincho',serif; font-weight:500; line-height:1.5; }
.tg-contact h1 { margin:8px 0 20px; font-size:clamp(28px,4vw,40px); }
.tg-contact .eyebrow { font-size:12px; letter-spacing:.22em; }
.tg-contact .intro { font-size:14px; margin-bottom:32px; }
.tg-contact .field { margin:0 0 22px; }
.tg-contact label { display:block; font-size:14px; font-weight:500; }
.tg-contact .tag { display:inline-block; margin-left:10px; padding:1px 5px; border:1px solid transparent; border-radius:2px; font-size:11px; font-weight:500; line-height:1.5; vertical-align:middle; white-space:nowrap; }
.tg-contact .tag--required { color:#a12d2d; border-color:#a12d2d; background:#fffaf8; }
.tg-contact .tag--optional { color:#666b65; font-weight:400; }
.tg-contact input:not([type=checkbox]),.tg-contact textarea { width:100%; display:block; margin-top:8px; border:1px solid var(--line); background:#fffefb; color:var(--ink); border-radius:2px; padding:12px 14px; font:inherit; font-size:16px; }
.tg-contact textarea { min-height:180px; resize:vertical; }
.tg-contact :focus-visible { outline:3px solid #8a7143; outline-offset:3px; }
.tg-contact [aria-invalid=true] { border-color:#982f2f!important; }
.tg-contact .error { color:#982f2f; font-size:13px; margin-top:4px; display:block; }
.tg-contact .privacy { font-size:13px; padding:18px; border:1px solid var(--line); margin:28px 0 16px; }
.tg-contact .consent { display:flex; align-items:flex-start; gap:10px; padding:10px 0; }
.tg-contact input[type=checkbox] { width:20px; height:20px; flex-shrink:0; margin-top:3px; accent-color:var(--ink); }
.tg-contact button { margin-top:20px; width:100%; min-height:54px; border:1px solid var(--ink); color:white; background:var(--ink); font:inherit; cursor:pointer; }
.tg-contact button:disabled { cursor:default; opacity:.7; }
.tg-contact [data-status] { font-size:14px; padding:12px 0; }
.tg-contact [data-status][data-kind=error] { color:#982f2f; }
.tg-contact .fallback { font-size:13px; overflow-wrap:anywhere; }
.tg-contact a { color:inherit; text-underline-offset:4px; }
.demo-note { max-width:820px; margin:16px auto; font-family:sans-serif; font-size:14px; padding:12px; border:1px dashed #888; }

.tg-contact [hidden]{display:none!important}
.contact-completion{padding:32px 0;min-height:300px;scroll-margin-top:24px}
.contact-completion h2{font-size:clamp(24px,3.5vw,34px);margin:0 0 24px}
.contact-completion p{font-size:15px;line-height:2;max-width:40em}
.contact-completion__home{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);padding:13px 24px;margin-top:24px;text-decoration:none;min-height:48px}
.contact-completion__home:hover{background:var(--ink);color:var(--paper)}
.contact-completion button{max-width:360px;display:block}
