.contact-layout { display:grid; grid-template-columns:1fr 420px; gap:72px; align-items:start; }
@media(max-width:960px){ .contact-layout{grid-template-columns:1fr;gap:48px} }

.form-wrap { background:var(--paper); border:1px solid var(--line); padding:44px 44px 50px; }
@media(max-width:560px){ .form-wrap{padding:28px 22px 34px} }

.form-notice { background:color-mix(in oklab,var(--accent) 8%,transparent); border:1px solid color-mix(in oklab,var(--accent) 25%,transparent); padding:16px 20px; margin-bottom:30px; font-size:13px; color:var(--accent); line-height:1.8; border-radius:4px; }

.form-group { margin-bottom:24px; }
.form-group label { display:block; font-size:12.5px; letter-spacing:.1em; margin-bottom:8px; font-weight:500; }
.form-group label.is-required::before { content:"＊"; color:#c30000; margin-right:4px; }
.form-group label .req { font-family: var(--latin); font-weight: 600; font-size:12px; letter-spacing:.14em; color:var(--accent-soft); margin-left:8px; }
.form-group label .opt { font-family: var(--latin); font-weight: 600; font-size:12px; letter-spacing:.14em; color:var(--ink-soft); margin-left:8px; }
.form-group input, .form-group select, .form-group textarea {
  display:block; width:100%; padding:13px 16px; border:1px solid var(--line);
  background:var(--bg); font:inherit; font-size:14px; color:var(--ink);
  border-radius:0; outline:none; transition:border-color .2s; -webkit-appearance:none; appearance:none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--accent); }
.form-group textarea { min-height:140px; resize:vertical; }
.form-group select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0l6 8 6-8z' fill='%234a433b'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; }
.checkbox-group { display:flex; flex-direction:column; gap:10px; }
.checkbox-group label { display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:400; cursor:pointer; }
.checkbox-group input[type="checkbox"] { width:16px; height:16px; border:1.5px solid var(--line); border-radius:0; appearance:none; -webkit-appearance:none; background:var(--bg); flex-shrink:0; position:relative; }
.checkbox-group input[type="checkbox"]:checked { background:var(--accent); border-color:var(--accent); }
.checkbox-group input[type="checkbox"]:checked::after { content:"✓"; color:white; position:absolute; font-size:10px; top:50%; left:50%; transform:translate(-50%,-50%); line-height:1; }
.submit-btn { display:block; width:100%; padding:18px; background:var(--ink); color:var(--paper); font-size:14px; letter-spacing:.16em; border:none; cursor:pointer; transition:background .3s; margin-top:8px; font-family:var(--sans); }
.submit-btn:hover { background:var(--accent); }
.form-note { font-size:11.5px; color:var(--ink-soft); line-height:1.9; margin-top:16px; }

.contact-sidebar { display:flex; flex-direction:column; gap:24px; }
.info-card { background:var(--paper); border:1px solid var(--line); padding:28px 28px 30px; }
.info-card h3 { font-family:var(--serif); font-size:17px; font-weight:500; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.info-card p { font-size:13px; color:var(--ink-soft); line-height:1.95; margin:0 0 10px; }
.info-card .tel-big { font-family: var(--latin); font-weight: 600; font-size:30px; color:var(--ink); letter-spacing:.04em; }
.info-card .tel-hours { font-size:13px; color:var(--ink-soft); margin-top:6px; }
.info-card .step { display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
.info-card .step:last-child { margin-bottom:0; }
.info-card .step .sn { font-family: var(--latin); font-weight: 600; font-size:12px; letter-spacing:.14em; color:var(--accent); min-width:28px; margin-top:2px; }
.info-card .step p { margin:0; font-size:13px; color:var(--ink-soft); line-height:1.8; }
