.contact-page{background:#fff;padding:0 0 96px}.contact-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0;align-items:stretch;margin-bottom:80px}.contact-hero__text{display:flex;flex-direction:column;justify-content:center;padding:64px clamp(40px,6vw,96px) 64px clamp(48px,12vw,200px)}.contact-hero__title{margin-top:18px;font-size:4rem;line-height:1.15;font-weight:300;color:var(--color-ink)}.contact-hero__divider{width:64px;height:1px;background:var(--color-rule);margin:32px 0}.contact-hero__lede{color:var(--color-ink-soft);font-size:.95rem;line-height:1.95;font-weight:400}.contact-hero__lede+.contact-hero__lede{margin-top:18px}.contact-hero__image{overflow:hidden;min-height:460px;height:100%}.contact-hero__image img{width:100%;height:100%;object-fit:cover;display:block;mask-image:linear-gradient(to right,transparent 0%,#000 14%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 14%)}.contact-body{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:56px;align-items:start;padding:0 clamp(48px,12vw,200px)}.contact-info{display:flex;flex-direction:column;gap:28px}.contact-info__block{display:flex;gap:16px;align-items:flex-start}.contact-info__icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#0a2a4d14;color:var(--color-keio);display:grid;place-items:center}.contact-info__title{font-size:.95rem;font-weight:500;color:var(--color-ink)}.contact-info__line{margin-top:8px;font-size:.95rem;color:var(--color-ink);font-weight:400;line-height:1.6}.contact-info__sub{margin-top:4px;font-size:.78rem;color:var(--color-muted);line-height:1.7;font-weight:400}.contact-info__divider{height:1px;background:var(--color-rule)}.contact-form{display:flex;flex-direction:column;gap:22px}.contact-form__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.contact-field{display:flex;flex-direction:column;gap:8px}.contact-label{font-size:.85rem;font-weight:500;color:var(--color-ink);display:inline-flex;align-items:center;gap:8px}.contact-required{font-size:.65rem;color:var(--color-keio);background:#0a2a4d14;padding:2px 7px;font-weight:500;letter-spacing:.04em}.contact-input{width:100%;background:var(--color-surface);border:1px solid var(--color-rule);padding:12px 14px;font-size:.9rem;font-weight:400;color:var(--color-ink);transition:border-color .2s ease;font-family:inherit}.contact-input::placeholder{color:var(--color-muted)}.contact-input:focus{outline:none;border-color:var(--color-keio)}.contact-textarea{resize:vertical;min-height:120px;line-height:1.65}.contact-select-wrap{position:relative}.contact-select{appearance:none;-webkit-appearance:none;background:var(--color-surface);padding-right:40px;cursor:pointer}.contact-select__chevron{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--color-muted);pointer-events:none}.contact-agree{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:.85rem;color:var(--color-ink-soft);font-weight:400;cursor:pointer}.contact-agree input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-keio);cursor:pointer}.contact-agree a{color:var(--color-keio);text-decoration:underline;text-underline-offset:3px}.contact-submit{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:18px 24px;background:var(--color-ink);color:#fff;font-size:.95rem;font-weight:500;border:0;cursor:pointer;margin-top:12px;transition:background-color .2s ease}.contact-submit:hover{background:#000}.contact-submit:disabled{opacity:.5;cursor:not-allowed}.contact-note{margin-top:14px;font-size:.72rem;color:var(--color-muted);font-weight:400;line-height:1.7;text-align:center}.contact-status{padding:14px 16px;font-size:.88rem;line-height:1.6;font-weight:400;border:1px solid}.contact-status.is-success{background:#0a2a4d0d;border-color:#0a2a4d40;color:var(--color-keio)}.contact-status.is-error{background:#fdf2f2;border-color:#f3c2c2;color:#9b2c2c}@media(max-width:960px){.contact-page{padding:0 0 64px}.contact-hero{grid-template-columns:1fr}.contact-hero__text{padding:40px 24px}.contact-hero__image{min-height:280px}.contact-hero__title{font-size:2.6rem}.contact-body{grid-template-columns:1fr;gap:40px;padding:0 24px}.contact-form__row{grid-template-columns:1fr}}
