
:root{--green:#0b5c3b;--green2:#0e7d50;--navy:#0d2f4f;--ink:#173a2e;--muted:#5d7169;--line:#d6e2dc;--soft:#f3faf6;--warn:#fff8e6;--danger:#9d352d;--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eef5f1;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Noto Sans KR","Noto Sans Arabic",Arial,sans-serif;font-size:18px;line-height:1.7}.bridge-shell{width:min(760px,100%);margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 0 34px rgba(0,0,0,.06)}.bridge-brandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);background:#fff}.bridge-brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);min-width:0}.bridge-brand img{width:74px;height:46px;object-fit:contain}.bridge-brand span{display:grid}.bridge-brand b{font-size:1.22rem;line-height:1.1}.bridge-brand small{font-size:.82rem;color:#53665e}.official-badge{flex:0 0 auto;background:#eefaf3;color:var(--green);font-weight:900;border-radius:999px;padding:10px 13px;font-size:.84rem}.bridge-tools{display:grid;grid-template-columns:auto auto 1fr;gap:8px;padding:12px 22px;border-bottom:1px solid var(--line);background:#fff}.bridge-tools>a,.lang-switch{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-weight:850;text-decoration:none;padding:7px 13px;font-size:.82rem}.lang-switch{justify-self:end;gap:7px}.lang-switch select{border:0;background:transparent;color:var(--green);font:inherit;font-weight:950;outline:0}.stepbar{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:18px 22px 2px}.step{display:grid;justify-items:center;gap:5px;color:#87958f;font-size:.78rem}.step i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf0ed;font-style:normal;font-weight:950}.step.on i,.step.done i{background:var(--green);color:#fff}.step.on span{color:var(--green);font-weight:950}.screen{padding:22px}.screen h1{font-size:clamp(2.15rem,7vw,3.3rem);line-height:1.18;letter-spacing:-.035em;color:var(--navy);margin:.15em 0 .35em}.lead{font-size:1.12rem;color:var(--muted);margin:0 0 20px}.listen-btn{width:100%;min-height:58px;border:2px solid #b7d7c6;border-radius:18px;background:#effaf3;color:var(--green);font-weight:950;font-size:1rem;margin:6px 0 18px}.mode-jump{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 22px}.mode-jump button{border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px 8px;color:var(--ink);font-weight:900;font-size:.92rem}.mode-jump b{display:block;font-size:1.65rem}.card{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:#fff;margin-top:16px}.card h2{font-size:1.15rem;margin:0 0 12px;color:var(--navy)}.field{margin:16px 0}.field label{display:block;font-weight:900;margin-bottom:6px;color:var(--ink)}.field .req{color:var(--danger);font-size:.78em}.textinput,.select,.textarea{width:100%;border:1.5px solid #cbd9d2;border-radius:15px;background:#fff;padding:14px 15px;color:#1b342b;font:inherit;min-height:54px}.textarea{min-height:155px;resize:vertical}.attach-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:68px;border:2px dashed #a9cbbc;border-radius:18px;background:#f6fbf8;color:var(--green);font-weight:950;padding:12px;text-align:center}.hint{font-size:.85rem;color:var(--muted);margin:8px 0}.record-box{background:#f2faf5;border:1px solid #cce2d5;border-radius:18px;padding:16px;text-align:center}.record-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.record-actions button{min-height:56px;border:0;border-radius:16px;font-weight:950;font-size:.95rem}.record-start{background:var(--green);color:#fff}.record-stop{background:#b43c30;color:#fff}.record-status{font-size:.88rem;color:var(--muted);margin:0 0 12px}.files{display:grid;gap:9px;margin-top:12px}.file{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 12px}.file small{display:block;color:var(--muted)}.file button{border:0;background:#fff1ee;color:#99372e;border-radius:10px;padding:8px 10px;font-weight:850}.consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:.9rem;color:#50655d}.consent input{width:24px;height:24px;flex:0 0 auto;margin-top:3px}.primary{width:100%;min-height:68px;border:0;border-radius:18px;background:var(--navy);color:#fff;font-weight:950;font-size:1.18rem;padding:14px 16px}.primary.send{background:var(--green)}.primary[disabled]{opacity:.6}.secondary{width:100%;min-height:58px;border:2px solid var(--navy);border-radius:18px;background:#fff;color:var(--navy);font-weight:950;font-size:1rem;margin-top:12px}.truth{border-radius:16px;padding:14px 16px;margin:15px 0;background:#eef7ff;border:1px solid #cbddec;color:#315a72;font-weight:750}.error{background:#fff0ed;border:1px solid #efbbb4;color:#8b332b}.review{display:grid;gap:11px}.review-row{border-bottom:1px solid #e3ebe7;padding:10px 0}.review-row b{display:block;color:var(--navy);font-size:.82rem}.review-row p{margin:3px 0;white-space:pre-wrap;word-break:break-word}.success-card{text-align:center;border:2px solid #b9dec9;background:#effaf4;border-radius:24px;padding:28px 20px}.success-card .check{font-size:3.6rem}.receipt{font-size:1.6rem;font-weight:1000;letter-spacing:.06em;color:var(--navy);margin:12px 0}.back-clear{display:inline-flex;align-items:center;gap:5px;color:var(--navy);font-weight:900;text-decoration:none;margin-bottom:10px}.privacy-note{font-size:.82rem;color:#60746b;background:#f6f8f7;border-radius:14px;padding:12px 14px;margin-top:14px}.hidden-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.rtl{direction:rtl}.rtl .bridge-brand,.rtl .bridge-tools,.rtl .record-actions,.rtl .mode-jump{direction:rtl}.rtl .field,.rtl .review-row{text-align:right}
@media(max-width:620px){body{font-size:17px}.bridge-brandbar{padding:14px 15px}.bridge-brand img{width:61px;height:40px}.bridge-brand b{font-size:1.02rem}.bridge-brand small{font-size:.74rem}.official-badge{font-size:.72rem;padding:8px 10px}.bridge-tools{grid-template-columns:1fr 1fr;padding:10px 14px}.lang-switch{grid-column:1/-1;justify-self:stretch}.screen{padding:18px 18px 28px}.stepbar{padding:14px 18px 0}.mode-jump{grid-template-columns:1fr}.mode-jump button{display:grid;grid-template-columns:54px 1fr;align-items:center;text-align:left;padding:13px 16px}.mode-jump b{grid-row:1;grid-column:1}.record-actions{grid-template-columns:1fr}.primary{font-size:1.12rem}}

/* ===== v10.5.5 CONTACT / BRIDGE UI FIX (append-only; scoped to BRIDGE elements) ===== */
/* Top service note: response target + Japanese phone (shown above the brand, as requested) */
.bridge-service-note{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 22px;background:#eef5f1;border-bottom:1px solid var(--line)}
.bridge-service-note>div{background:#fff;border:1px solid #dfe7e2;border-radius:14px;padding:10px 14px;min-width:0}
.bridge-service-note strong{display:block;color:var(--green);font-size:.8rem;font-weight:900;letter-spacing:.02em}
.bridge-service-note span{display:block;margin-top:3px;font-weight:850;color:var(--navy);font-size:1rem;line-height:1.45}
.bridge-service-note small{display:block;font-weight:700;color:var(--muted);font-size:.84rem}
.bridge-service-note .phone-number{color:var(--navy);text-decoration:none;font-size:1.22rem;font-weight:1000;letter-spacing:.03em;direction:ltr;unicode-bidi:isolate;display:inline-block;min-height:44px;line-height:44px;cursor:pointer}
.bridge-service-note .phone-number:hover{text-decoration:underline}
/* Brand: JA reading （ジェンティーフ ブリッジ）; hidden by JS for other languages */
.bridge-brand .brand-ruby{font-size:.9rem;font-weight:900;color:var(--green);line-height:1.2;margin:2px 0 1px;word-break:keep-all;overflow-wrap:normal}
.bridge-brand .brand-ruby[hidden]{display:none}
/* Tools row -> two rows: [← Back][Standard contact] / [Choose language: 5 visible buttons] */
.bridge-tools{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}
.bridge-tools>a{flex:1 1 auto;min-height:48px;font-size:.92rem;padding:8px 16px;cursor:pointer}
.bridge-tools>a:hover{background:var(--soft);border-color:#b7d7c6}
.lang-picker{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px}
.lang-picker-label{flex:0 0 auto;font-weight:900;color:var(--ink);font-size:.92rem;padding:6px 2px}
.lang-options{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto;min-width:0}
.lang-btn{appearance:none;-webkit-appearance:none;min-height:48px;padding:8px 15px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font:inherit;font-weight:900;font-size:1rem;line-height:1.2;cursor:pointer;white-space:nowrap}
.lang-btn:hover{background:var(--soft);border-color:#b7d7c6}
.lang-btn[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:#fff}
/* Larger, clearer listen / write / speak / show controls for older users */
.listen-btn{min-height:60px;font-size:1.15rem;line-height:1.3;padding:12px 16px;cursor:pointer}
.listen-btn:hover{background:#e3f5ea}
.mode-jump button{min-height:60px;font-size:1rem;cursor:pointer}
.mode-jump button:hover{background:var(--soft);border-color:#b7d7c6}
.voice-note{margin:-8px 0 16px;padding:10px 14px;border-radius:12px;background:var(--warn);border:1px solid #efd9a3;color:#6b4b00;font-size:.9rem;line-height:1.55}
.voice-note[hidden]{display:none}
/* Hand cursor for the remaining real controls on the BRIDGE (explicit list, no blanket rule) */
.bridge-brand,.attach-btn,.record-actions button,.file button,.primary,.secondary,.back-clear,.consent,.consent input{cursor:pointer}
.primary[disabled],.record-actions button[disabled]{cursor:default}
/* Keyboard focus that is clearly visible */
.bridge-tools>a:focus-visible,.lang-btn:focus-visible,.listen-btn:focus-visible,.mode-jump button:focus-visible,.bridge-brand:focus-visible,.bridge-service-note .phone-number:focus-visible,.attach-btn:focus-within,.record-actions button:focus-visible,.primary:focus-visible,.secondary:focus-visible,.back-clear:focus-visible{outline:3px solid #0e7d50;outline-offset:3px}
/* RTL (Arabic) */
.rtl .bridge-service-note,.rtl .lang-picker{direction:rtl}
/* ROOT-CAUSE FIX (Arabic blank screen): under body.rtl the off-screen honeypot at left:-9999px becomes ~10000px of
   scrollable overflow on the RTL start side and Chromium paints a blank viewport. In RTL, park it off the RIGHT edge
   instead (clipped, not scrollable). LTR languages are untouched. Delete this rule to revert. */
.rtl .hidden-hp{left:auto!important;right:-9999px!important}
@media(max-width:620px){.bridge-brandbar{flex-wrap:wrap;row-gap:8px}.bridge-brand{flex:1 1 220px}.official-badge{margin-inline-start:auto}.bridge-service-note{grid-template-columns:1fr;padding:10px 14px;gap:8px}.bridge-tools>a{flex:1 1 calc(50% - 4px)}.lang-picker{padding-top:2px}.lang-picker-label{flex:1 1 100%;padding:2px 2px 0}.lang-btn{flex:1 1 auto;min-width:88px;padding:8px 12px;font-size:1rem}.listen-btn{font-size:1.08rem}}
@media(max-width:380px){.bridge-tools>a{flex:1 1 100%}.lang-btn{min-width:80px;padding:8px 10px}}

/* ===== v10.5.6 UX / ACCESSIBILITY (append-only; BRIDGE only) ===== */
/* A: record start/stop — the disabled one is clearly grey + not-allowed; the enabled one keeps its colour + hand cursor. JS toggling unchanged. */
.record-actions button:not([disabled]){cursor:pointer}
.record-actions button[disabled]{background:#cfd8d3;color:#5f6d66;opacity:.75;cursor:not-allowed;box-shadow:none}
.primary[disabled],.secondary[disabled]{cursor:not-allowed;opacity:.6}
.select{cursor:pointer}
/* B: the BRIDGE usage explanation (“書いても、話しても、写真を見せても大丈夫です。全部使ってもかまいません。” and its 4 translations) — larger, darker, heavier, roomier; h1 hierarchy kept */
.screen .lead{font-size:1.24rem;font-weight:650;color:var(--ink);line-height:1.75;margin:0 0 22px}
@media(max-width:620px){.screen .lead{font-size:1.18rem;line-height:1.7}}

/* ===== v10.5.7 SECURITY: Turnstile slot on the review screen; recording status ===== */
.turnstile-slot{margin:0 0 12px}
.turnstile-slot:empty{display:none}
.record-status.limit{color:var(--danger);font-weight:900}

/* ===== v10.5.7.2: attachment picker disabled while a recording is in progress ===== */
.attach-btn.is-disabled,.attach-btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none;border-style:solid}

/* ===== v10.5.7.3: language buttons locked while a recording is in progress ===== */
.lang-btn[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none}
