:root{--navy:#004D80;--blue:#0098DB;--medium-blue:#1D74B3;--soft-blue:#7394B4;--light-blue:#D2E3F0;--paper:#FFFFFF;--text:#1A2A3A;--muted:#5B6B7A;--line:#C9D6E2;--error:#B3261E;--sans:"Noto Sans JP",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.8 var(--sans);overflow-wrap:anywhere}
button,input,textarea,select{font-family:inherit}
button,a,summary,input,textarea,select{-webkit-tap-highlight-color:transparent}
a{color:var(--blue);text-underline-offset:4px}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
[hidden]{display:none!important}
p,h1,h2{margin:0}
.wrap{width:100%;max-width:1120px;margin-inline:auto}
.page-shell{padding:48px}
.site-header{padding-block:24px;margin-bottom:24px}
.site-logo{display:block;width:160px;height:auto}
.contact-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:max-content 1fr;column-gap:72px;row-gap:24px;align-items:start}
.contact-heading{grid-column:1;grid-row:1;min-width:0}
.eyebrow{font:500 12px/16px "Poppins",sans-serif;letter-spacing:.2em;color:var(--muted);margin-bottom:8px}
h1{font-size:min(40px,calc((min(1120px,100vw - 96px) - 72px)*.4/11.2));font-weight:700;line-height:1.4;color:var(--navy);white-space:nowrap}
.contact-offer{font-size:24px;font-weight:500;line-height:1.4;color:var(--blue);margin-top:8px}
.contact-context{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:24px;min-width:0}
.contact-lead{font-size:20px;font-weight:700;line-height:1.8;color:var(--navy);text-indent:-.5em}
.contact-project{font-size:14px;font-weight:500;color:var(--muted);margin-top:24px}
.contact-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.contact-flow li{display:flex;align-items:center;justify-content:center;height:56px;border-radius:8px;background:var(--navy);font-size:14px;font-weight:700;color:var(--paper);text-align:center}
.contact-flow li:nth-child(2){background:var(--medium-blue)}
.contact-flow li:nth-child(3){background:var(--soft-blue)}
.contact-team{margin-top:24px;color:var(--navy);font-size:16px;font-weight:500}
.contact-context-note,.contact-medical-note{font-size:12px;color:var(--muted)}
.contact-medical-note{padding-top:24px;border-top:1px solid var(--line)}
.contact-form-panel{grid-column:2;grid-row:1 / span 2;min-width:0;padding-top:24px}
.contact-notice{font-size:12px;line-height:1.8;background:var(--light-blue);border-left:3px solid var(--blue);padding:12px 16px;margin-bottom:24px}
#contact-form{display:flex;flex-direction:column;gap:24px}
.contact-field{min-width:0}
.contact-field>label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}
.required{display:inline-block;vertical-align:middle;font-size:12px;font-weight:400;color:var(--blue);border:1px solid var(--blue);border-radius:3px;padding:0 6px;margin-left:8px;line-height:1.8}
.contact-field :is(input,textarea,select){display:block;width:100%;max-width:100%;height:48px;border:1px solid var(--line);border-radius:6px;padding:12px 14px;background:var(--paper);color:var(--text);font:400 16px/1.4 var(--sans);box-shadow:none}
.contact-field textarea{height:auto;min-height:120px;line-height:1.8;resize:vertical}
.contact-field :is(input,textarea,select):focus{border:2px solid var(--blue);padding:11px 13px;outline:none}
.contact-field :is(input,textarea,select)[aria-invalid="true"]{border:2px solid var(--error);padding:11px 13px}
.field-help,.field-error{font-size:12px;line-height:1.8;margin-top:8px}
.field-help{color:var(--muted)}
.field-error{color:var(--error)}
.meeting-details{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:24px}
.contact-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-privacy{font-size:12px;line-height:1.8}
.contact-consent{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.contact-consent input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--navy)}
.contact-consent input[aria-invalid="true"]{outline:2px solid var(--error);outline-offset:2px}
.contact-review-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;border:0;border-radius:6px;padding:12px 14px;background:var(--navy);color:var(--paper);font-size:16px;font-weight:500;line-height:1.8}
.contact-review-button:hover:not(:disabled){background:var(--medium-blue)}
button:disabled{opacity:.5;cursor:default}
.contact-review{display:flex;flex-direction:column;gap:24px}
.contact-review h2{font-size:24px;font-weight:700;line-height:1.4;color:var(--navy)}
.contact-review>p{font-size:14px}
.contact-review dl{margin:0;padding:24px;background:var(--light-blue);border-radius:12px}
.contact-review dt{font-size:12px;color:var(--muted);margin-top:24px}
.contact-review dt:first-child{margin-top:0}
.contact-review dd{font-size:16px;margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.contact-review-actions{display:flex;flex-direction:column;gap:24px}
.contact-edit-button{background:none;border:0;color:var(--navy);padding:0;min-height:48px;font-size:16px;font-weight:500;line-height:1.8;text-align:left}
.contact-send-status[data-error="true"]{color:var(--error);font-size:12px}
.contact-receipt{padding-block:24px;border-block:1px solid var(--line)}
.contact-receipt strong{display:block;color:var(--navy);font-size:20px;font-weight:700}
#contact-challenge{max-width:100%;min-height:65px}
.site-footer{background:var(--light-blue);padding:48px;font-size:12px}
.footer-inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:24px 72px;align-items:start}
.privacy-disclosure{min-width:0}
.privacy-disclosure summary{text-align:right;cursor:pointer;color:var(--navy);list-style-position:inside;min-height:24px}
.privacy-disclosure p{margin-top:24px}
.footer-copyright{grid-column:1 / -1}
@media(max-width:900px){
  .page-shell{padding:20px}
  .site-logo{width:120px}
  .contact-layout{display:flex;flex-direction:column;gap:24px}
  .contact-heading{order:1;width:100%}
  .contact-form-panel{order:2;width:100%;padding-top:0}
  .contact-context{order:3;width:100%;margin-top:24px}
  h1{font-size:min(30px,calc((100vw - 40px)/11.2))}
  .contact-offer{font-size:20px}
  .contact-lead{font-size:18px}
  .site-footer{padding:20px}
  .footer-inner{grid-template-columns:minmax(0,1fr)}
  .privacy-disclosure summary{text-align:left}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
