:root { --ink: #002e5b; --teal: #00549e; --sand: #f2f5f8; --line: #d7e0e8; }
body { background: radial-gradient(circle at top right, #dce8f3, transparent 30rem), var(--sand); color: #23384d; font-family: Inter, system-ui, sans-serif; }
.questionnaire-shell { max-width: 960px; }
.brand-header { position:relative; overflow:hidden; color: #fff; background:linear-gradient(120deg, #002e5b 0%, #004c91 100%); border-radius:1.25rem; box-shadow:0 18px 42px rgba(0,46,91,.2); }
.brand-header::before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(30deg, transparent 48%, #fff 49%, transparent 50%); background-size:4.3rem 4.3rem; mask-image:linear-gradient(to left, #000, transparent 67%); }
.brand-header::after { content:""; position:absolute; width:23rem; height:23rem; right:-8rem; bottom:-15rem; border:3rem solid rgba(255,255,255,.12); border-radius:50%; }
.header-topline, .header-content { position:relative; z-index:1; }
.header-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:1px solid rgba(255,255,255,.18); }
.intake-badge { border:1px solid rgba(255,255,255,.48); border-radius:100px; color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.08em; padding:.4rem .7rem; text-transform:uppercase; white-space:nowrap; }
.language-switch-row { display:flex; width:100%; justify-content:flex-end; margin-top:1.15rem; }.language-switch { display:inline-flex; align-items:center; gap:.6rem; border:1px solid rgba(255,255,255,.2); border-radius:100px; padding:.58rem .9rem .58rem .62rem; background:#fff; box-shadow:0 8px 18px rgba(0,25,54,.17); color:var(--ink); font-size:.78rem; font-weight:800; letter-spacing:.01em; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, background .15s ease; }.language-switch::before { display:grid; place-items:center; width:1.55rem; height:1.55rem; border-radius:50%; background:#e7f0f9; color:var(--teal); content:"A文"; font-size:.62rem; font-weight:800; letter-spacing:-.08em; }.language-switch span { color:var(--teal); font-size:1rem; line-height:.7; }.language-switch:hover, .language-switch:focus-visible { background:#edf5fc; box-shadow:0 11px 22px rgba(0,25,54,.24); color:var(--ink); outline:0; transform:translateY(-2px); }
.header-content { padding:.95rem 0 .15rem; max-width:none; }
.brand-header h1 { max-width:43rem; font-size:clamp(1.8rem, 3.5vw, 2.5rem); line-height:1.08; letter-spacing:-.035em; font-weight:750; margin:0; }
.header-intro { color:rgba(255,255,255,.76); font-size:.96rem; line-height:1.5; margin:0; }
.brand-lockup { display:flex; align-items:center; gap:.8rem; }
.brand-mark { display:flex; align-items:center; width:12.5rem; height:3.8rem; padding:.45rem .8rem; background:#fff; border-radius:.35rem; }
.brand-mark img { display:block; max-width:100%; max-height:100%; object-fit:contain; }
.brand-fallback { display:flex; align-items:baseline; gap:.35rem; color:var(--ink); letter-spacing:-.06em; }.brand-fallback strong { font-size:1.7rem; font-weight:900; }.brand-fallback small { color:var(--teal); font-size:.57rem; font-weight:800; letter-spacing:.08em; }
.header-meta { display:flex; flex-wrap:wrap; gap:.55rem; }
.header-meta span { padding:.3rem .6rem; border:1px solid rgba(255,255,255,.22); border-radius:100px; font-size:.75rem; color:rgba(255,255,255,.82); }
.form-card { background:#fff; border-radius:1.25rem; padding:1.5rem; box-shadow:0 8px 28px rgba(21,50,45,.08); }
.form-section { padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.section-heading { display:flex; gap:1rem; margin-bottom:1.4rem; }
.section-heading > span { display:grid; place-items:center; flex:0 0 auto; width:2.15rem; height:2.15rem; border-radius:50%; color:var(--teal); background:#e7f0f9; font-size:.72rem; font-weight:800; letter-spacing:.04em; }
.section-heading h2 { font-size:1.27rem; font-weight:750; letter-spacing:-.015em; margin:0 0 .2rem; color:var(--ink); }
.section-heading p { margin:0; color:#70817b; font-size:.92rem; }
.form-label { color:#173b60; font-size:.86rem; font-weight:400; letter-spacing:normal; margin-bottom:.45rem; text-transform:none; }
.form-label span, .submit-row span { color:#bc4b3d; }
.form-control, .form-select { border-color:#cbd7d0; border-radius:.22rem; padding:.73rem .85rem; }
.form-control::placeholder { color:#9aa9a3; opacity:1; font-size:.92rem; }
.form-control:focus, .form-select:focus { border-color:var(--teal); box-shadow:0 0 0 .22rem rgba(0,84,158,.13); }
.service-options label { display:block; border:1px solid #dce5df; border-radius:.5rem; padding:.7rem .8rem; font-size:.92rem; cursor:pointer; transition:.15s; }
.service-options label:hover { background:#f5f8fb; border-color:#a5bdd5; }
.service-options label:has(input:checked) { background:#edf5fc; border-color:var(--teal); color:var(--ink); }
.service-options .form-check-input { margin-right:.45rem; }
.btn-primary { --bs-btn-bg: var(--teal); --bs-btn-border-color: var(--teal); --bs-btn-hover-bg:#003f7d; --bs-btn-hover-border-color:#003f7d; }
.amogtech-page { --ink:#75000f; --teal:#c51622; }.amogtech-page .brand-header { background:linear-gradient(120deg,#75000f 0%,#ed1c24 100%); }.amogtech-page .section-heading > span { background:#fff0f1; color:#c51622; }.amogtech-page .section-heading h2, .amogtech-page .form-label { color:#75000f; }.amogtech-page .btn-primary { --bs-btn-bg:#c51622; --bs-btn-border-color:#c51622; --bs-btn-hover-bg:#950e16; --bs-btn-hover-border-color:#950e16; }.amogtech-page .brand-name { color:#fff; font-size:1.1rem; font-weight:900; letter-spacing:.04em; text-decoration:none; }.amogtech-page .brand-name span { color:#ffd1d3; font-size:.68rem; font-weight:700; letter-spacing:.08em; }.amogtech-page .language-switch::before { background:#fff0f1; color:#c51622; }
.submit-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.consent-panel { background:#f2f7fc; border:1px solid #d3e1ee; border-radius:.65rem; padding:1rem 1.1rem; }
.consent-panel .form-check-label { font-size:.9rem; line-height:1.5; color:#294b6c; }
.consent-panel span { color:#bc4b3d; }
@media (min-width:768px) { .form-card { padding:2.5rem 2.75rem; } }
@media (max-width:575.98px) { .header-topline { align-items:flex-start; flex-direction:column; } .header-content { padding:.8rem 0 .1rem; } }
