/* Typography and brand values match the existing HySo home page. */
:root{--navy:#011230;--blue:#048cd7;--blue-dark:#007494;--muted:#60708c;--ink:#0a1730;--line:#dce5ee;--bg:#f7f9fc}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,"Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
.c{width:min(1120px,calc(100% - 36px));margin:auto}
.hdr{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);border-bottom:1px solid #e9eef4;backdrop-filter:blur(14px)}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:22px;color:var(--navy)}
.brand img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.back-link{font-size:14px;color:#40506b;display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
main{width:min(800px,calc(100% - 36px));margin:auto;padding:56px 0 32px}
h1{font-size:clamp(32px,4vw,48px);font-weight:700;line-height:1.3;letter-spacing:-.035em;color:var(--navy);margin:14px 0 20px}
h2{font-size:23px;font-weight:700;line-height:1.45;color:var(--navy);margin:0}
.eyebrow{color:var(--blue-dark);font-weight:700;font-size:13px;letter-spacing:.14em;margin:0}
.intro{margin-bottom:32px}
.intro>p{max-width:720px}
.intro>p:not(.eyebrow):not(.small){font-size:17px;line-height:1.95;color:var(--muted)}
.small,.hint{font-size:13px;line-height:1.8;color:var(--muted);margin:8px 0 15px}
.intro .small{font-size:15px;line-height:1.9}
.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;margin:22px 0;box-shadow:0 20px 55px rgba(1,18,48,.07)}
.section-title{display:flex;gap:14px;align-items:center;margin-bottom:20px}
.section-title b{color:var(--blue-dark);font-size:16px;font-weight:700}
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 18px}
.grid>*{min-width:0}
label{display:block;font-size:14px;font-weight:700;line-height:1.6;color:#3b4e68;margin:16px 0 7px}
label span,summary span{font-size:13px;font-weight:400;color:var(--muted);margin-left:7px}
label strong{color:var(--blue-dark);font-size:12px;margin-left:6px}
input,select,textarea,button{font:inherit}
input,select,textarea{font-size:16px;line-height:1.5;width:100%;padding:12px 13px;border:1px solid #d8e2ec;border-radius:10px;background:#fff;color:var(--ink);min-height:48px}
textarea{resize:vertical;min-height:130px}
input::placeholder,textarea::placeholder{color:#77869b;opacity:1}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(4,140,215,.32);border-color:var(--blue);outline-offset:1px}
details{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
summary{cursor:pointer;font-weight:650;font-size:15px;line-height:1.7;color:var(--navy)}
.consent{display:flex;gap:10px;font-weight:400}
.consent input{width:20px;min-height:20px;height:20px;flex:none;margin-top:3px;accent-color:var(--blue-dark)}
.consent span{font-size:13px;line-height:1.8;margin:0;color:#40506b}
button{cursor:pointer;padding:13px 22px;border-radius:11px;min-height:50px;font-size:14px;font-weight:700;line-height:1.7;transition:box-shadow .15s}
.primary{width:100%;background:linear-gradient(90deg,var(--blue-dark),var(--blue));color:#fff;border:0;margin-top:20px}
.primary:not(:disabled):hover,.secondary:not(:disabled):hover{box-shadow:0 5px 18px rgba(4,140,215,.18)}
.secondary{background:#fff;color:var(--blue-dark);border:1px solid var(--line);margin-top:12px}
button:disabled{opacity:.65;cursor:default}
.preview{padding:10px 20px;text-align:center;background:#e8f5fd;color:#175677;font-size:13px;line-height:1.8}
.honeypot{position:absolute;left:-9999px;opacity:0}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8;font-family:inherit;background:var(--bg);padding:16px;border-radius:10px}
#status{color:#254d69;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
#confirmation-title{scroll-margin-top:90px}
#confirmation,#status,#request_text{scroll-margin-top:90px}
footer{font-size:13px;line-height:1.8;color:var(--muted);text-align:center;padding:25px 0}
footer a{color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.skip{position:fixed;top:-80px;left:18px;z-index:100;background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 10px 10px}
.skip:focus{top:0}
.brief-entry{margin-top:24px;border-top:1px solid var(--line);padding-top:12px}.brief-entry .secondary{width:100%}.draft-brief{margin-top:24px;padding-top:24px;border-top:2px solid #bad8e6}.draft-brief h2{font-size:22px;scroll-margin-top:92px}.brief-facts{margin:20px 0}.brief-facts>div{display:grid;grid-template-columns:155px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.85}.brief-facts dt{font-weight:650;color:var(--navy)}.brief-facts dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#40506b}.draft-brief h3,.received-brief h3{font-size:17px;margin:24px 0 12px}.brief-points{padding-left:22px;font-size:15px;line-height:1.9;color:#40506b}.brief-points li+li{margin-top:10px}.brief-notice{padding:12px 15px;background:var(--bg);border-left:3px solid #8db6cc;font-size:14px;line-height:1.85;overflow-wrap:anywhere}.response-boundary{color:var(--muted);font-size:14px;line-height:1.9;padding:12px 4px}.received-brief{margin-bottom:24px}
@media(max-width:540px){.brief-facts>div{grid-template-columns:1fr;gap:4px}.brief-points{font-size:14px}}
[hidden]{display:none!important}
@media(max-width:820px){main{padding-top:36px}.panel{padding:22px}}
@media(max-width:540px){.grid{grid-template-columns:1fr}.panel{padding:22px 18px}h1{font-size:clamp(23px,7.2vw,32px)}.back-link{font-size:13px}label span{margin-left:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}

/* Compact first consultation: details remain optional and preserve all intake fields. */
main{max-width:760px;padding-top:44px}h1{font-size:clamp(30px,4vw,44px);line-height:1.4}.intro{margin-bottom:24px}.intro>p:not(.eyebrow):not(.small){font-size:16px;line-height:1.85}.free-scope{margin:18px 0 0;padding:0;border:0}.free-scope summary{font-size:14px;color:var(--blue-dark)}.free-scope .small{font-size:14px}.panel{box-shadow:0 10px 30px rgba(1,18,48,.035)}.section-title{margin-bottom:10px}.hint,.small,.consent span,label span,summary span{font-size:14px}.panel>details{margin-top:20px}#request_text{min-height:132px}.privacy-note{font-size:13px}.after-intake{padding:26px 4px 0}.after-intake h2{font-size:21px}.after-intake ol{padding-left:24px;margin:20px 0}.after-intake li{padding:0 0 18px 7px;color:var(--blue-dark)}.after-intake strong,.after-intake span{display:block}.after-intake strong{font-size:16px;color:var(--ink)}.after-intake span,.after-intake p{font-size:14px;color:var(--muted);line-height:1.85;margin-top:5px}.after-intake a{color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px}#assistant-result,#status{scroll-margin-top:92px}#assistant-question-list{padding-left:24px;font-size:16px;line-height:1.85}#assistant-question-list li+li{margin-top:8px}#confirmation .primary,#confirmation .secondary{width:100%}input:disabled,textarea:disabled,select:disabled{opacity:1;color:#4a5b71;background:#f4f7fa}#intake-form.is-confirming{display:none}#intake-form.is-submitted .panel>*{display:none}#intake-form.is-submitted .panel{display:none}#intake-form.is-submitted .panel:last-child{display:block}#intake-form.is-submitted #status,#intake-form.is-submitted #new-consultation:not([hidden]){display:block}#intake-form.is-submitted #status{font-size:16px;margin:0;line-height:1.9}#intake-form.is-submitted #new-consultation{font-size:14px}.receipt-title{color:var(--blue-dark)}
@media(max-width:540px){main{padding-top:28px}.panel{margin:16px 0}h1{font-size:clamp(28px,7.5vw,34px)}.section-title h2{font-size:21px}.intro{margin-bottom:20px}label span{display:block;margin-left:0}.consent span{display:inline}.nav{gap:10px}}

/* Final intake flow: optional review stays secondary to consultation. */
.button-note{display:block;font-size:13px;font-weight:400;margin-top:2px}
.brief-missing{margin:14px 0;padding-top:14px}.brief-missing summary{font-size:14px;color:var(--muted)}
#email,#comparison_interest{scroll-margin-top:100px}
.brief-facts:empty{display:none}.brief-entry .hint{margin-bottom:0}
.draft-brief .primary{margin-top:14px}.panel,.draft-brief{min-width:0}
#confirmation-text{line-height:1.9}
@media(max-width:540px){
  .intro>p:not(.eyebrow):not(.small){font-size:16px}
  .intro .small{font-size:14px}.brief-facts>div{padding:10px 0}
  .brief-entry{margin-top:20px}.draft-brief{padding-top:20px}
  .nav{height:64px}.back-link{min-height:44px}
  summary{padding:5px 0;min-height:44px}
  .response-boundary{font-size:13px}.brand{font-size:20px}
}
