:root { --navy:#1A2640; --green:#3A6B2E; --gold:#C9A84C; --amber:#C8861A; }
body { font-family:'Inter',sans-serif; overflow-x:hidden; }
.serif  { font-family:'DM Serif Display',serif; }
.display { font-family:'Cormorant Garamond',serif; }

/* NAV */
.glass-nav { background:rgba(255,255,255,0.98); backdrop-filter:blur(16px); }
.nav-scrolled { box-shadow:0 2px 32px rgba(0,0,0,0.08); }
.nav-link { position:relative; padding-bottom:2px; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1.5px; background:#3A6B2E; transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; }
.nav-link:hover::after { transform:scaleX(1); }

.reveal { opacity:0; transform:translateY(36px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal.in { opacity:1; transform:translateY(0); }
.reveal-left { opacity:0; transform:translateX(-40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal-left.in { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal-right.in { opacity:1; transform:translateX(0); }

.eyebrow { font-size:0.62rem; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; }
.gold-line { width:48px; height:2px; background:linear-gradient(to right, #C9A84C, #E2C06A); border-radius:1px; }
.wwa-bg { background: linear-gradient(135deg, #0F1825 0%, #1A2640 40%, #0d1f0f 100%); }
.ga-input { width:100%; background:#F8F9F7; border:1px solid #E2E8DA; color:#1A2640; font-size:0.85rem; padding:0.8rem 1rem; border-radius:0.75rem; outline:none; transition:border-color 0.2s; }
.ga-input:focus { border-color:#3A6B2E; }

.lang-en .ja { display: none !important; }
.lang-ja .en { display: none !important; }

.lang-toggle-pill { background:#f1f5f9; padding:3px; border-radius:9999px; display:flex; align-items:center; border:1px solid #e2e8f0; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05); }
.lang-btn { padding:6px 18px; border-radius:9999px; font-size:11px; font-weight:800; text-transform:uppercase; transition:all 0.3s ease; color:#64748b; cursor:pointer; }
.lang-btn.active { background:#3A6B2E; color:#fff; box-shadow:0 2px 5px rgba(58,107,46,0.3); }

.dirlink { transition: all .2s ease; }
.dirlink:hover { background:#EDF5EA; border-color:#3A6B2E; transform:translateX(2px); }
.vcard-mini { transition: all .3s ease; }
.vcard-mini:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(26,38,64,.10); }

.step-num { font-family:'DM Serif Display',serif; }
.faq-item summary { cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item[open] .faq-chevron { transform:rotate(180deg); }
.related-card { transition: all .25s ease; }
.related-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(26,38,64,.08); }

/* ── Careers / job posting page ── */
.job-meta-pill { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); border-radius:9999px; padding:6px 14px; font-size:11px; font-weight:600; color:#e2e8f0; display:inline-flex; align-items:center; gap:6px; }
.job-toc-link { display:block; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:600; color:#64748b; transition:all .15s ease; }
.job-toc-link:hover, .job-toc-link.active { background:#EDF5EA; color:#3A6B2E; }
.bullet-grid-item { display:flex; align-items:flex-start; gap:10px; font-size:13px; color:#475569; line-height:1.6; padding:8px 0; }
.bullet-grid-item i { color:#3A6B2E; font-size:10px; margin-top:5px; flex-shrink:0; }
.role-card { transition: all .25s ease; }
.role-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(26,38,64,.12); border-color:#3A6B2E; }

/* ── LINE / human-support popup ── */
#ga-popup-overlay { position:fixed; inset:0; background:rgba(10,15,25,0.72); backdrop-filter:blur(3px); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .25s ease; }
#ga-popup-overlay.ga-popup-in { opacity:1; }
#ga-popup-modal { position:relative; background:#fff; border-radius:1.5rem; padding:2rem 1.75rem 1.75rem; max-width:380px; width:100%; text-align:center; box-shadow:0 30px 80px rgba(0,0,0,0.35); transform:scale(0.92) translateY(10px); transition:transform .25s ease; max-height:92vh; overflow-y:auto; }
#ga-popup-overlay.ga-popup-in #ga-popup-modal { transform:scale(1) translateY(0); }
#ga-popup-close-x { position:absolute; top:12px; right:14px; background:none; border:none; font-size:24px; line-height:1; color:#94a3b8; cursor:pointer; padding:4px; }
#ga-popup-close-x:hover { color:#1A2640; }
.ga-popup-emoji { font-size:2.25rem; margin-bottom:.25rem; }
.ga-popup-title { font-family:'DM Serif Display',serif; font-size:1.5rem; color:#1A2640; margin-bottom:.75rem; line-height:1.3; }
.ga-popup-title .ja-lead { display:block; font-size:1.5rem; }
.ga-popup-title .ga-popup-sub { display:block; font-size:.85rem; font-family:'Inter',sans-serif; font-weight:600; color:#64748b; margin-top:2px; }
.ga-popup-body { font-size:.85rem; color:#334155; line-height:1.6; margin-bottom:.75rem; }
.ga-popup-body .ja-lead { display:block; font-weight:600; font-size:.92rem; }
.ga-popup-body .ga-popup-sub { display:block; font-size:.76rem; color:#64748b; margin-top:4px; }
.ga-popup-note { font-size:.75rem; color:#3A6B2E; font-weight:600; margin-bottom:1rem; }
.ga-popup-note .ja-lead { display:block; }
.ga-popup-note .ga-popup-sub { display:block; font-size:.68rem; font-weight:500; color:#6BAF59; margin-top:2px; }
.ga-popup-badge { display:inline-flex; align-items:center; gap:6px; background:#EDF5EA; color:#3A6B2E; font-size:.68rem; font-weight:700; padding:6px 14px; border-radius:9999px; margin-bottom:1rem; }
.ga-popup-badge .ga-popup-sub { font-weight:500; }
.ga-popup-qr { background:#fff; border:1px solid #e2e8f0; border-radius:.75rem; padding:10px; display:inline-block; margin-bottom:.75rem; box-shadow:0 2px 8px rgba(0,0,0,0.06); }
.ga-popup-qr img { width:120px; height:120px; object-fit:contain; }
.ga-popup-cta { font-size:.72rem; color:#64748b; margin-bottom:.5rem; }
.ga-popup-cta .ja-lead { display:block; font-weight:600; color:#1A2640; }
.ga-popup-line-btn { display:inline-block; margin-bottom:.9rem; transition:transform .2s ease; }
.ga-popup-line-btn:hover { transform:scale(1.05); }
.ga-popup-alt { font-size:.75rem; margin-bottom:1rem; }
.ga-popup-alt a { color:#0284c7; font-weight:600; text-decoration:none; }
#ga-popup-close-bottom { width:100%; padding:.65rem; background:#f1f5f9; border:none; border-radius:.65rem; font-size:.75rem; font-weight:700; color:#475569; cursor:pointer; transition:background .2s; }
#ga-popup-close-bottom:hover { background:#e2e8f0; }
@media (max-width:420px) { .ga-popup-qr img { width:100px; height:100px; } #ga-popup-modal { padding:1.5rem 1.25rem 1.25rem; } }
